From 87ca63d82b5f0608a8ec68306588629329b15b8d Mon Sep 17 00:00:00 2001 From: John Date: Thu, 7 Dec 2017 16:20:56 +0000 Subject: [PATCH 1/2] Now using "focusout" instead of "blur", because IE11. --- README.md | 5 +++ dist/react-tippy.js | 32 +++++++++---------- dist/react-tippy.js.map | 2 +- src/Tooltip/js/core/createTrigger.js | 6 ++-- .../js/core/getEventListenerHandlers.js | 6 ++-- 5 files changed, 27 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index 33cd695..62fb7ad 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,8 @@ +# This is a fork! + +Forked from: https://github.com/tvkhoa/react-tippy The only (intended) change is +a bugfix for IE11 & blur event.relatedTarget. + ## React Tippy A lightweight tooltip for React. Demo at [Demo page here...](https://tvkhoa.github.io/testlib) diff --git a/dist/react-tippy.js b/dist/react-tippy.js index c861191..bdd40ee 100644 --- a/dist/react-tippy.js +++ b/dist/react-tippy.js @@ -119,12 +119,11 @@ var Selectors = exports.Selectors = { ARROW: '[x-arrow]', TOOLTIPPED_EL: '[data-tooltipped]', CONTROLLER: '[data-tippy-controller]' -}; -/** -* The default settings applied to each instance -*/ -var Defaults = exports.Defaults = { + /** + * The default settings applied to each instance + */ +};var Defaults = exports.Defaults = { html: false, position: 'top', animation: 'shift', @@ -159,13 +158,12 @@ var Defaults = exports.Defaults = { popperOptions: {}, open: undefined, onRequestClose: function onRequestClose() {} -}; -/** -* The keys of the defaults object for reducing down into a new object -* Used in `getIndividualSettings()` -*/ -var DefaultsKeys = exports.DefaultsKeys = Browser.SUPPORTED && Object.keys(Defaults); + /** + * The keys of the defaults object for reducing down into a new object + * Used in `getIndividualSettings()` + */ +};var DefaultsKeys = exports.DefaultsKeys = Browser.SUPPORTED && Object.keys(Defaults); /***/ }), /* 1 */ @@ -1399,10 +1397,10 @@ function createTrigger(event, el, handlers, touchHold) { } if (event === 'focus') { - el.addEventListener('blur', handlers.handleBlur); + el.addEventListener('focusout', handlers.handleFocusOut); listeners.push({ - event: 'blur', - handler: handlers.handleBlur + event: 'focusout', + handler: handlers.handleFocusOut }); } @@ -1623,8 +1621,8 @@ function getEventListenerHandlers(el, popper, settings) { hide(); }; - var handleBlur = function handleBlur(event) { - // Ignore blur on touch devices, if there is no `relatedTarget`, hide + var handleFocusOut = function handleFocusOut(event) { + // Ignore focusout on touch devices, if there is no `relatedTarget`, hide // If the related target is a popper, ignore if (!event.relatedTarget || _globals.Browser.touch) return; if ((0, _closest2.default)(event.relatedTarget, _globals.Selectors.POPPER)) return; @@ -1635,7 +1633,7 @@ function getEventListenerHandlers(el, popper, settings) { return { handleTrigger: handleTrigger, handleMouseleave: handleMouseleave, - handleBlur: handleBlur + handleFocusOut: handleFocusOut }; } diff --git a/dist/react-tippy.js.map b/dist/react-tippy.js.map index f133f54..1c8a5da 100644 --- a/dist/react-tippy.js.map +++ b/dist/react-tippy.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 7ee337d31cbb41abd788","webpack:///./src/Tooltip/js/core/globals.js","webpack:///./src/Tooltip/js/utils/prefix.js","webpack:///./src/Tooltip/js/utils/find.js","webpack:///./src/Tooltip/js/utils/getCorePlacement.js","webpack:///./src/Tooltip/js/utils/closest.js","webpack:///./src/Tooltip/js/utils/defer.js","webpack:///./src/Tooltip/js/utils/getInnerElements.js","webpack:///./src/Tooltip/js/utils/isVisible.js","webpack:///./src/Tooltip/js/utils/matches.js","webpack:///./src/Tooltip/component.js","webpack:///./src/Tooltip/js/core/followCursorHandler.js","webpack:///./src/Tooltip/js/utils/getOffsetDistanceInPx.js","webpack:///./src/Tooltip/js/utils/removeTitle.js","webpack:///external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\",\"umd\":\"react\"}","webpack:///./src/Tooltip/hoc.js","webpack:///./src/Tooltip/index.js","webpack:///./src/Tooltip/js/core/bindEventListeners.js","webpack:///./src/Tooltip/js/core/createPopperElement.js","webpack:///./src/Tooltip/js/core/createPopperInstance.js","webpack:///./src/Tooltip/js/core/createTooltips.js","webpack:///./src/Tooltip/js/core/createTrigger.js","webpack:///./src/Tooltip/js/core/evaluateSettings.js","webpack:///./src/Tooltip/js/core/getArrayOfElements.js","webpack:///./src/Tooltip/js/core/getEventListenerHandlers.js","webpack:///./src/Tooltip/js/core/getIndividualSettings.js","webpack:///./src/Tooltip/js/core/hideAllPoppers.js","webpack:///./src/Tooltip/js/core/init.js","webpack:///./src/Tooltip/js/core/makeSticky.js","webpack:///./src/Tooltip/js/core/mountPopper.js","webpack:///./src/Tooltip/js/core/onTransitionEnd.js","webpack:///./src/Tooltip/js/tippy.js","webpack:///./src/Tooltip/js/utils/applyTransitionDuration.js","webpack:///./src/Tooltip/js/utils/cursorIsOutsideInteractiveBorder.js","webpack:///./src/Tooltip/js/utils/elementIsInViewport.js","webpack:///./src/Tooltip/js/utils/findIndex.js","webpack:///./src/Tooltip/js/utils/modifyClassList.js","webpack:///./src/Tooltip/js/utils/noop.js","webpack:///./src/Tooltip/js/utils/triggerReflow.js","webpack:///external {\"root\":\"Popper\",\"commonjs2\":\"popper.js\",\"commonjs\":\"popper.js\",\"amd\":\"popper.js\",\"umd\":\"popper.js\"}","webpack:///external {\"root\":\"ReactDOM\",\"commonjs2\":\"react-dom\",\"commonjs\":\"react-dom\",\"amd\":\"react-dom\",\"umd\":\"react-dom\"}"],"names":["Browser","window","SUPPORTED","SUPPORTS_TOUCH","touch","dynamicInputDetection","iOS","test","navigator","userAgent","MSStream","Store","Selectors","POPPER","TOOLTIP","CONTENT","CIRCLE","ARROW","TOOLTIPPED_EL","CONTROLLER","Defaults","html","position","animation","animateFill","arrow","arrowSize","delay","trigger","duration","interactive","interactiveBorder","theme","size","distance","offset","hideOnClick","multiple","followCursor","inertia","flipDuration","sticky","stickyDuration","appendTo","document","body","zIndex","touchHold","performance","dynamicTitle","useContext","reactInstance","undefined","popperOptions","open","onRequestClose","DefaultsKeys","Object","keys","prefix","property","prefixes","upperProp","charAt","toUpperCase","slice","i","length","prefixedProp","style","find","arr","checkFn","Array","prototype","filter","getCorePlacement","placement","replace","closest","element","parentSelector","_closest","Element","selector","el","call","parentElement","defer","fn","requestAnimationFrame","setTimeout","getInnerElements","popper","tooltip","querySelector","circle","content","isVisible","visibility","defaultMatchSelector","s","matches","ownerDocument","querySelectorAll","item","matchesSelector","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","defaultProps","hideDelay","hideDuration","onShow","onShown","onHide","onHidden","disabled","className","unmountHTMLWhenHide","propKeys","detectPropsChanged","props","prevProps","result","forEach","key","push","Tooltip","initTippy","_initTippy","bind","destroyTippy","_destroyTippy","updateTippy","_updateTippy","updateReactDom","_updateReactDom","showTooltip","_showTooltip","hideTooltip","_hideTooltip","updateSettings","_updateSettings","title","propChanges","tippy","getPopperElement","tooltipDOM","show","hide","name","value","updateForReact","update","setAttribute","reactDOM","rawTemplate","destroy","tabIndex","display","children","followCursorHandler","e","refData","settings","getAttribute","halfPopperWidth","Math","round","offsetWidth","halfPopperHeight","offsetHeight","viewportPadding","pageWidth","documentElement","pageX","pageY","x","y","isRightOverflowing","isLeftOverflowing","getOffsetDistanceInPx","removeTitle","removeAttribute","withTooltip","Component","options","bindEventListeners","touchHandler","classList","add","addEventListener","mousemoveHandler","time","now","removeEventListener","remove","clickHandler","event","target","ref","indexOf","blurHandler","activeElement","blur","maxTouchPoints","msMaxTouchPoints","createPopperElement","id","createElement","split","t","appendChild","templateId","innerHTML","getElementById","createPopperInstance","data","config","modifiers","flip","padding","onUpdate","styles","top","bottom","left","right","MutationObserver","observer","popperInstance","observe","childList","subtree","characterData","_mutationObserver","createTooltips","idCounter","els","reduce","a","handlers","listeners","trim","concat","tippyInstance","createTrigger","handleTrigger","handler","handleMouseleave","handleBlur","evaluateSettings","getArrayOfElements","isArray","getEventListenerHandlers","touchWait","showDelay","clearTimeouts","clearTimeout","_show","_delay","callbacks","wait","mouseenterTouch","type","isClick","isNotPersistent","click","handleMousemove","triggerHide","closestTooltippedEl","isOverPopper","isOverEl","isClickTriggered","isOverOtherTooltippedEl","relatedTarget","getIndividualSettings","instanceSettings","acc","val","toLowerCase","isFinite","isNaN","parseFloat","JSON","parse","assign","hideAllPoppers","exclude","contains","isHideOnClick","isNotCurrentRef","init","done","makeSticky","applyTransitionDuration","removeTransitionDuration","updatePosition","scheduleUpdate","mountPopper","enableEventListeners","disableEventListeners","onTransitionEnd","callback","transitionendFired","listenerCallback","_transitionendTimeout","Tippy","state","destroyed","shown","hidden","console","warn","store","apply","error","newSettings","updatedContent","tooltipContent","unstable_renderSubtreeIntoContainer","render","customDuration","_duration","opacity","list","_onShownFired","focus","isUnmount","getComputedStyle","removeChild","unmountComponentAtNode","_isLast","listener","disconnect","splice","storeLength","index","disableDynamicInputDetection","enableDynamicInputDetection","isContent","cursorIsOutsideInteractiveBorder","clientX","clientY","rect","getBoundingClientRect","corePosition","borderWithDistance","exceeds","elementIsInViewport","innerHeight","clientHeight","innerWidth","clientWidth","findIndex","modifyClassList","noop","triggerReflow"],"mappings":"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","file":"react-tippy.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"popper.js\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"reactTippy\", [\"react\", \"popper.js\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"reactTippy\"] = factory(require(\"react\"), require(\"popper.js\"), require(\"react-dom\"));\n\telse\n\t\troot[\"reactTippy\"] = factory(root[\"React\"], root[\"Popper\"], root[\"ReactDOM\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_13__, __WEBPACK_EXTERNAL_MODULE_38__, __WEBPACK_EXTERNAL_MODULE_39__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 15);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 7ee337d31cbb41abd788","export const Browser = {}\n\nif (typeof window !== 'undefined') {\n Browser.SUPPORTED = 'requestAnimationFrame' in window\n Browser.SUPPORTS_TOUCH = 'ontouchstart' in window\n Browser.touch = false\n Browser.dynamicInputDetection = true\n // Chrome device/touch emulation can make this dynamic\n Browser.iOS = () => /iPhone|iPad|iPod/.test(navigator.userAgent) && !window.MSStream\n}\n\n/**\n* The global storage array which holds all data reference objects\n* from every instance\n* This allows us to hide tooltips from all instances, finding the ref when\n* clicking on the body, and for followCursor\n*/\nexport const Store = []\n\n/**\n* Selector constants used for grabbing elements\n*/\nexport const Selectors = {\n POPPER: '.tippy-popper',\n TOOLTIP: '.tippy-tooltip',\n CONTENT: '.tippy-tooltip-content',\n CIRCLE: '[x-circle]',\n ARROW: '[x-arrow]',\n TOOLTIPPED_EL: '[data-tooltipped]',\n CONTROLLER: '[data-tippy-controller]'\n}\n\n/**\n* The default settings applied to each instance\n*/\nexport const Defaults = {\n html: false,\n position: 'top',\n animation: 'shift',\n animateFill: true,\n arrow: false,\n arrowSize: 'regular',\n delay: 0,\n trigger: 'mouseenter focus',\n duration: 350,\n interactive: false,\n interactiveBorder: 2,\n theme: 'dark',\n size: 'regular',\n distance: 10,\n offset: 0,\n hideOnClick: true,\n multiple: false,\n followCursor: false,\n inertia: false,\n flipDuration: 350,\n sticky: false,\n stickyDuration: 200,\n appendTo: () => document.body,\n zIndex: 9999,\n touchHold: false,\n performance: false,\n dynamicTitle: false,\n useContext: false,\n reactInstance: undefined,\n popperOptions: {},\n open: undefined,\n onRequestClose: () => {},\n}\n\n/**\n* The keys of the defaults object for reducing down into a new object\n* Used in `getIndividualSettings()`\n*/\nexport const DefaultsKeys = Browser.SUPPORTED && Object.keys(Defaults)\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/core/globals.js","/**\n* Returns the supported prefixed property - only `webkit` is needed, `moz`, `ms` and `o` are obsolete\n* @param {String} property\n* @return {String} - browser supported prefixed property\n*/\nexport default function prefix(property) {\n const prefixes = [false, 'webkit']\n const upperProp = property.charAt(0).toUpperCase() + property.slice(1)\n\n for (var i = 0; i < prefixes.length; i++) {\n const prefix = prefixes[i]\n const prefixedProp = prefix ? '' + prefix + upperProp : property\n if (typeof window.document.body.style[prefixedProp] !== 'undefined') {\n return prefixedProp\n }\n }\n \n return null\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/utils/prefix.js","/**\n* Ponyfill for Array.prototype.find\n* @param {Array} arr\n* @param {Function} checkFn\n* @return item in the array\n*/\nexport default function find(arr, checkFn) {\n if (Array.prototype.find) {\n return arr.find(checkFn)\n }\n\n // use `filter` as fallback\n return arr.filter(checkFn)[0]\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/utils/find.js","/**\n* Returns the non-shifted placement (e.g., 'bottom-start' => 'bottom')\n* @param {String} placement\n* @return {String}\n*/\nexport default function getCorePlacement(placement) {\n return placement.replace(/-.+/, '')\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/utils/getCorePlacement.js","import { matches } from './matches'\n\n/**\n* Ponyfill to get the closest parent element\n* @param {Element} element - child of parent to be returned\n* @param {String} parentSelector - selector to match the parent if found\n* @return {Element}\n*/\nexport default function closest(element, parentSelector) {\n const _closest = Element.prototype.closest || function(selector) {\n let el = this\n while (el) {\n if (matches.call(el, selector)) {\n return el\n }\n el = el.parentElement\n }\n }\n\n return _closest.call(element, parentSelector)\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/utils/closest.js","/**\n* Waits until next repaint to execute a fn\n* @param {Function} fn\n*/\nexport default function defer(fn) {\n window.requestAnimationFrame(() => {\n setTimeout(fn, 0)\n })\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/utils/defer.js","import { Selectors } from '../core/globals'\n\n/**\n* Returns inner elements of the popper element\n* @param {Element} popper\n* @return {Object}\n*/\nexport default function getInnerElements(popper) {\n return {\n tooltip: popper.querySelector(Selectors.TOOLTIP),\n circle: popper.querySelector(Selectors.CIRCLE),\n content: popper.querySelector(Selectors.CONTENT)\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/utils/getInnerElements.js","/**\n* Determines if a popper is currently visible\n* @param {Element} popper\n* @return {Boolean}\n*/\nexport default function isVisible(popper) {\n return popper.style.visibility === 'visible'\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/utils/isVisible.js","function defaultMatchSelector(s) {\n var matches = (this.document || this.ownerDocument).querySelectorAll(s),\n i = matches.length;\n while (--i >= 0 && matches.item(i) !== this) {}\n return i > -1;\n}\n\nexport const matches =\n typeof window === 'undefined' ? defaultMatchSelector :\n Element.prototype.matches ||\n Element.prototype.matchesSelector ||\n Element.prototype.webkitMatchesSelector ||\n Element.prototype.mozMatchesSelector ||\n Element.prototype.msMatchesSelector ||\n defaultMatchSelector\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/utils/matches.js","import React, { Component } from 'react';\nimport tippy from './js/tippy';\n\nconst defaultProps = {\n html: null,\n position: 'top',\n animation: 'shift',\n animateFill: true,\n arrow: false,\n delay: 0,\n hideDelay: 0,\n trigger: 'mouseenter focus',\n duration: 375,\n hideDuration: 375,\n interactive: false,\n interactiveBorder: 2,\n theme: 'dark',\n offset: 0,\n hideOnClick: true,\n multiple: false,\n followCursor: false,\n inertia: false,\n popperOptions: {},\n onShow: () => {},\n onShown: () => {},\n onHide: () => {},\n onHidden: () => {},\n disabled: false,\n arrowSize: 'regular',\n size: 'regular',\n className: '',\n style: {},\n distance: 10,\n onRequestClose: () => {},\n sticky: false,\n stickyDuration: 200,\n touchHold: false,\n unmountHTMLWhenHide: false,\n};\n\nconst propKeys = Object.keys(defaultProps)\n\nconst detectPropsChanged = (props, prevProps) => {\n const result = [];\n propKeys.forEach(key => {\n if (props[key] !== prevProps[key]) {\n result.push(key);\n }\n })\n return result;\n}\n\nclass Tooltip extends Component {\n constructor(props) {\n super(props);\n this.initTippy = this._initTippy.bind(this);\n this.destroyTippy = this._destroyTippy.bind(this);\n this.updateTippy = this._updateTippy.bind(this);\n this.updateReactDom = this._updateReactDom.bind(this);\n this.showTooltip = this._showTooltip.bind(this);\n this.hideTooltip = this._hideTooltip.bind(this);\n this.updateSettings = this._updateSettings.bind(this);\n }\n\n componentDidMount() {\n if (typeof window === 'undefined' || typeof document === 'undefined' ) {\n return;\n }\n this.initTippy();\n }\n\n componentWillUnmount() {\n if (typeof window === 'undefined' || typeof document === 'undefined' ) {\n return;\n }\n this.destroyTippy();\n }\n\n componentDidUpdate(prevProps) {\n // enable and disabled\n if (typeof window === 'undefined' || typeof document === 'undefined' ) {\n return;\n }\n if (this.props.disabled === false && prevProps.disabled === true) {\n this.updateSettings('disabled', false);\n this.destroyTippy();\n this.initTippy();\n return;\n }\n\n if (this.props.disabled === true && prevProps.disabled === false) {\n this.updateSettings('disabled', true);\n this.destroyTippy();\n return;\n }\n\n // open\n if (this.props.open === true && !prevProps.open) {\n this.updateSettings('open', true);\n setTimeout(() => {\n this.showTooltip();\n }, 0)\n }\n if (this.props.open === false && prevProps.open === true) {\n this.updateSettings('open', false);\n this.hideTooltip();\n }\n\n if (this.props.html !== prevProps.html) {\n this.updateReactDom();\n }\n\n // Update content\n if (this.props.title !== prevProps.title) {\n this.updateTippy();\n }\n\n // update otherProps\n const propChanges = detectPropsChanged(this.props, prevProps);\n propChanges.forEach(key => {\n this.updateSettings(key, this.props[key]);\n });\n }\n\n _showTooltip() {\n if (typeof window === 'undefined' || typeof document === 'undefined' ) {\n return;\n }\n if (this.tippy) {\n const popper = this.tippy.getPopperElement(this.tooltipDOM);\n this.tippy.show(popper, this.props.duration);\n }\n }\n\n _hideTooltip() {\n if (typeof window === 'undefined' || typeof document === 'undefined' ) {\n return;\n }\n if (this.tippy) {\n const popper = this.tippy.getPopperElement(this.tooltipDOM);\n this.tippy.hide(popper, this.props.hideDuration);\n }\n }\n\n _updateSettings(name, value) {\n if (typeof window === 'undefined' || typeof document === 'undefined' ) {\n return;\n }\n if (this.tippy) {\n const popper = this.tippy.getPopperElement(this.tooltipDOM);\n this.tippy.updateSettings(popper, name, value);\n }\n }\n\n _updateReactDom() {\n if (typeof window === 'undefined' || typeof document === 'undefined' ) {\n return;\n }\n if (this.tippy) {\n this.updateSettings('reactDOM', this.props.html);\n const popper = this.tippy.getPopperElement(this.tooltipDOM);\n const isVisible = popper.style.visibility === 'visible' || this.props.open;\n if (isVisible) {\n this.tippy.updateForReact(popper, this.props.html);\n }\n }\n }\n\n _updateTippy() {\n if (typeof window === 'undefined' || typeof document === 'undefined' ) {\n return;\n }\n if (this.tippy) {\n const popper = this.tippy.getPopperElement(this.tooltipDOM);\n this.tippy.update(popper);\n }\n }\n\n _initTippy() {\n if (typeof window === 'undefined' || typeof document === 'undefined' ) {\n return;\n }\n if (!this.props.disabled) {\n this.tooltipDOM.setAttribute('title', this.props.title);\n this.tippy = tippy(this.tooltipDOM, {\n disabled: this.props.disabled,\n position: this.props.position,\n animation: this.props.animation,\n animateFill: this.props.animateFill,\n arrow: this.props.arrow,\n arrowSize: this.props.arrowSize,\n delay: this.props.delay,\n hideDelay: this.props.hideDelay,\n trigger: this.props.trigger,\n duration: this.props.duration,\n hideDuration: this.props.hideDuration,\n interactive: this.props.interactive,\n interactiveBorder: this.props.interactiveBorder,\n theme: this.props.theme,\n offset: this.props.offset,\n hideOnClick: this.props.hideOnClick,\n multiple: this.props.multiple,\n size: this.props.size,\n followCursor: this.props.followCursor,\n inertia: this.props.inertia,\n popperOptions: this.props.popperOptions,\n onShow: this.props.onShow,\n onShown: this.props.onShown,\n onHide: this.props.onHide,\n onHidden: this.props.onHidden,\n distance: this.props.distance,\n reactDOM: this.props.html,\n unmountHTMLWhenHide: this.props.unmountHTMLWhenHide,\n open: this.props.open,\n sticky: this.props.sticky,\n stickyDuration: this.props.stickyDuration,\n touchHold: this.props.touchHold,\n onRequestClose: this.props.onRequestClose,\n useContext: this.props.useContext,\n reactInstance: this.props.useContext ? this : undefined,\n performance: true,\n html: this.props.rawTemplate ? this.props.rawTemplate : undefined,\n });\n if (this.props.open) {\n this.showTooltip();\n }\n } else {\n this.tippy = null;\n }\n }\n\n _destroyTippy() {\n if (typeof window === 'undefined' || typeof document === 'undefined' ) {\n return;\n }\n if (this.tippy) {\n const popper = this.tippy.getPopperElement(this.tooltipDOM);\n this.updateSettings('open', false);\n this.tippy.hide(popper, 0);\n this.tippy.destroy(popper);\n this.tippy = null;\n }\n }\n\n render() {\n return (\n { this.tooltipDOM = tooltip; }}\n title={this.props.title}\n className={this.props.className}\n tabIndex={this.props.tabIndex}\n style={{\n display: 'inline',\n ...this.props.style\n }}\n >\n {this.props.children}\n \n );\n }\n}\n\n\nTooltip.defaultProps = defaultProps;\n\nexport default Tooltip;\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/component.js","import { Store, Selectors } from './globals'\n\nimport getCorePlacement from '../utils/getCorePlacement'\nimport find from '../utils/find'\nimport prefix from '../utils/prefix'\nimport closest from '../utils/closest'\n\n/**\n* Mousemove event listener callback method for follow cursor setting\n* @param {MouseEvent} e\n*/\nexport default function followCursorHandler(e) {\n const refData = find(Store, refData => refData.el === this)\n\n const {\n popper,\n settings: {\n offset\n }\n } = refData\n\n const position = getCorePlacement(popper.getAttribute('x-placement'))\n const halfPopperWidth = Math.round(popper.offsetWidth / 2)\n const halfPopperHeight = Math.round(popper.offsetHeight / 2)\n const viewportPadding = 5\n const pageWidth = document.documentElement.offsetWidth || document.body.offsetWidth\n\n const { pageX, pageY } = e\n\n let x, y\n\n switch (position) {\n case 'top':\n x = pageX - halfPopperWidth + offset\n y = pageY - 2.25 * halfPopperHeight\n break\n case 'left':\n x = pageX - ( 2 * halfPopperWidth ) - 10\n y = pageY - halfPopperHeight + offset\n break\n case 'right':\n x = pageX + halfPopperHeight\n y = pageY - halfPopperHeight + offset\n break\n case 'bottom':\n x = pageX - halfPopperWidth + offset\n y = pageY + halfPopperHeight/1.5\n break\n }\n\n const isRightOverflowing = pageX + viewportPadding + halfPopperWidth + offset > pageWidth\n const isLeftOverflowing = pageX - viewportPadding - halfPopperWidth + offset < 0\n\n // Prevent left/right overflow\n if (position === 'top' || position === 'bottom') {\n if (isRightOverflowing) {\n x = pageWidth - viewportPadding - ( 2 * halfPopperWidth)\n }\n\n if (isLeftOverflowing) {\n x = viewportPadding\n }\n }\n\n popper.style[prefix('transform')] = `translate3d(${x}px, ${y}px, 0)`\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/core/followCursorHandler.js","import { Defaults } from '../core/globals'\n\n/**\n* Returns the distance taking into account the default distance due to\n* the transform: translate setting in CSS\n* @param {Number} distance\n* @return {String}\n*/\nexport default function getOffsetDistanceInPx(distance) {\n return -(distance - Defaults.distance) + 'px'\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/utils/getOffsetDistanceInPx.js","/**\n* Removes the title from the tooltipped element, setting `data-original-title`\n* appropriately\n* @param {Element} el\n*/\nexport default function removeTitle(el) {\n const title = el.getAttribute('title')\n\n // Only set `data-original-title` attr if there is a title\n if (title) {\n el.setAttribute('data-original-title', title)\n }\n\n el.removeAttribute('title')\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/utils/removeTitle.js","module.exports = __WEBPACK_EXTERNAL_MODULE_13__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\",\"umd\":\"react\"}\n// module id = 13\n// module chunks = 0","import React from 'react';\nimport Tooltip from './component';\n\nconst withTooltip = (Component, options = {}) => ({\n ...props,\n}) => (\n \n \n \n);\n\nexport default withTooltip;\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/hoc.js","import Tooltip from './component';\nimport withTooltip from './hoc';\n\nexport {\n Tooltip,\n withTooltip,\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/index.js","import { Browser, Selectors, Store } from './globals'\n\nimport hideAllPoppers from './hideAllPoppers'\n\nimport closest from '../utils/closest'\nimport find from '../utils/find'\nimport { matches } from '../utils/matches'\n\n/**\n* Adds the needed event listeners\n*/\nexport default function bindEventListeners() {\n const touchHandler = () => {\n Browser.touch = true\n\n if (Browser.iOS()) {\n document.body.classList.add('tippy-touch')\n }\n\n if (Browser.dynamicInputDetection && window.performance) {\n document.addEventListener('mousemove', mousemoveHandler)\n }\n }\n\n const mousemoveHandler = (() => {\n let time\n\n return () => {\n const now = performance.now()\n\n // Chrome 60+ is 1 mousemove per rAF, use 20ms time difference\n if (now - time < 20) {\n Browser.touch = false\n document.removeEventListener('mousemove', mousemoveHandler)\n if (!Browser.iOS()) {\n document.body.classList.remove('tippy-touch')\n }\n }\n\n time = now\n }\n })()\n\n const clickHandler = event => {\n // Simulated events dispatched on the document\n if (!(event.target instanceof Element)) {\n return hideAllPoppers()\n }\n\n const el = closest(event.target, Selectors.TOOLTIPPED_EL)\n const popper = closest(event.target, Selectors.POPPER)\n\n if (popper) {\n const ref = find(Store, ref => ref.popper === popper)\n const { settings: { interactive } } = ref\n if (interactive) return\n }\n\n if (el) {\n const ref = find(Store, ref => ref.el === el)\n const {\n settings: {\n hideOnClick,\n multiple,\n trigger\n }\n } = ref\n\n // Hide all poppers except the one belonging to the element that was clicked IF\n // `multiple` is false AND they are a touch user, OR\n // `multiple` is false AND it's triggered by a click\n if ((!multiple && Browser.touch) || (!multiple && trigger.indexOf('click') !== -1)) {\n return hideAllPoppers(ref)\n }\n\n // If hideOnClick is not strictly true or triggered by a click don't hide poppers\n if (hideOnClick !== true || trigger.indexOf('click') !== -1) return\n }\n\n // Don't trigger a hide for tippy controllers, and don't needlessly run loop\n if (closest(event.target, Selectors.CONTROLLER) || !document.querySelector(Selectors.POPPER)) return\n\n hideAllPoppers()\n }\n\n const blurHandler = event => {\n const { activeElement: el } = document\n if (el && el.blur && matches.call(el, Selectors.TOOLTIPPED_EL)) {\n el.blur()\n }\n }\n\n // Hook events\n document.addEventListener('click', clickHandler)\n document.addEventListener('touchstart', touchHandler)\n window.addEventListener('blur', blurHandler)\n\n if (!Browser.SUPPORTS_TOUCH && (navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0)) {\n document.addEventListener('pointerdown', touchHandler)\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/core/bindEventListeners.js","import getCorePlacement from '../utils/getCorePlacement'\nimport getOffsetDistanceInPx from '../utils/getOffsetDistanceInPx'\n\n/**\n* Creates a popper element then returns it\n* @param {Number} id - the popper id\n* @param {String} title - the tooltip's `title` attribute\n* @param {Object} settings - individual settings\n* @return {Element} - the popper element\n*/\nexport default function createPopperElement(id, title, settings) {\n const {\n position,\n distance,\n arrow,\n animateFill,\n inertia,\n animation,\n arrowSize,\n size,\n theme,\n html,\n zIndex,\n interactive\n } = settings\n\n const popper = document.createElement('div')\n popper.setAttribute('class', 'tippy-popper')\n popper.setAttribute('role', 'tooltip')\n popper.setAttribute('aria-hidden', 'true')\n popper.setAttribute('id', `tippy-tooltip-${id}`)\n popper.style.zIndex = zIndex\n\n const tooltip = document.createElement('div')\n tooltip.setAttribute('class', `tippy-tooltip tippy-tooltip--${size} leave`)\n tooltip.setAttribute('data-animation', animation)\n\n theme.split(' ').forEach(t => {\n tooltip.classList.add(t +'-theme')\n })\n\n if (arrow) {\n // Add an arrow\n const arrow = document.createElement('div')\n arrow.setAttribute('class', `arrow-${arrowSize}`)\n arrow.setAttribute('x-arrow', '')\n tooltip.appendChild(arrow)\n }\n\n if (animateFill) {\n // Create animateFill circle element for animation\n tooltip.setAttribute('data-animatefill', '')\n const circle = document.createElement('div')\n circle.setAttribute('class', 'leave')\n circle.setAttribute('x-circle', '')\n tooltip.appendChild(circle)\n }\n\n if (inertia) {\n // Change transition timing function cubic bezier\n tooltip.setAttribute('data-inertia', '')\n }\n\n if (interactive) {\n tooltip.setAttribute('data-interactive', '')\n }\n\n // Tooltip content (text or HTML)\n const content = document.createElement('div')\n content.setAttribute('class', 'tippy-tooltip-content')\n\n if (html) {\n let templateId\n\n if (html instanceof Element) {\n content.appendChild(html)\n templateId = '#' + html.id || 'tippy-html-template'\n } else {\n content.innerHTML = document.getElementById(html.replace('#', '')).innerHTML\n templateId = html\n }\n\n popper.classList.add('html-template')\n interactive && popper.setAttribute('tabindex', '-1')\n tooltip.setAttribute('data-template-id', templateId)\n\n } else {\n content.innerHTML = title\n }\n\n // Init distance. Further updates are made in the popper instance's `onUpdate()` method\n tooltip.style[getCorePlacement(position)] = getOffsetDistanceInPx(distance)\n\n tooltip.appendChild(content)\n popper.appendChild(tooltip)\n\n return popper\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/core/createPopperElement.js","import Popper from 'popper.js'\n\nimport defer from '../utils/defer'\nimport prefix from '../utils/prefix'\nimport getCorePlacement from '../utils/getCorePlacement'\nimport getInnerElements from '../utils/getInnerElements'\nimport getOffsetDistanceInPx from '../utils/getOffsetDistanceInPx'\n\n/**\n* Creates a new popper instance\n* @param {Object} data\n* @return {Object} - the popper instance\n*/\nexport default function createPopperInstance(data) {\n const {\n el,\n popper,\n settings: {\n position,\n popperOptions,\n offset,\n distance,\n flipDuration\n }\n } = data\n\n const { tooltip } = getInnerElements(popper)\n\n const config = {\n placement: position,\n ...(popperOptions || {}),\n modifiers: {\n ...(popperOptions ? popperOptions.modifiers : {}),\n flip: {\n padding: distance + 5 /* 5px from viewport boundary */,\n ...(popperOptions && popperOptions.modifiers ? popperOptions.modifiers.flip : {})\n },\n offset: {\n offset,\n ...(popperOptions && popperOptions.modifiers ? popperOptions.modifiers.offset : {})\n }\n },\n onUpdate() {\n const styles = tooltip.style\n styles.top = ''\n styles.bottom = ''\n styles.left = ''\n styles.right = ''\n styles[\n getCorePlacement(popper.getAttribute('x-placement'))\n ] = getOffsetDistanceInPx(distance)\n }\n }\n\n // Update the popper's position whenever its content changes\n // Not supported in IE10 unless polyfilled\n if (window.MutationObserver) {\n const styles = popper.style\n\n const observer = new MutationObserver(() => {\n styles[prefix('transitionDuration')] = '0ms'\n data.popperInstance.update()\n defer(() => {\n styles[prefix('transitionDuration')] = flipDuration + 'ms'\n })\n })\n\n observer.observe(popper, {\n childList: true,\n subtree: true,\n characterData: true\n })\n\n data._mutationObserver = observer\n }\n\n return new Popper(el, popper, config)\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/core/createPopperInstance.js","import getIndividualSettings from './getIndividualSettings'\nimport createPopperElement from './createPopperElement'\nimport createTrigger from './createTrigger'\nimport getEventListenerHandlers from './getEventListenerHandlers'\nimport evaluateSettings from './evaluateSettings'\n\nimport removeTitle from '../utils/removeTitle'\n\nimport { Store } from './globals'\n\nlet idCounter = 1\n\n/**\n* Creates tooltips for all el elements that match the instance's selector\n* @param {Element[]} els\n* @return {Object[]} Array of ref data objects\n*/\nexport default function createTooltips(els) {\n return els.reduce((a, el) => {\n const id = idCounter\n\n const settings = evaluateSettings(\n this.settings.performance\n ? this.settings\n : getIndividualSettings(el, this.settings)\n )\n\n const { html, trigger, touchHold } = settings\n\n const title = el.getAttribute('title')\n if (!title && !html) return a\n\n el.setAttribute('data-tooltipped', '')\n el.setAttribute('aria-describedby', `tippy-tooltip-${id}`)\n removeTitle(el)\n\n const popper = createPopperElement(id, title, settings)\n const handlers = getEventListenerHandlers.call(this, el, popper, settings)\n\n let listeners = []\n\n trigger.trim().split(' ').forEach(event =>\n listeners = listeners.concat(createTrigger(event, el, handlers, touchHold))\n )\n\n a.push({\n id,\n el,\n popper,\n settings,\n listeners,\n tippyInstance: this\n })\n\n idCounter++\n\n return a\n }, [])\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/core/createTooltips.js","import { Browser } from './globals'\n\n/**\n* Creates a trigger\n* @param {Object} event - the custom event specified in the `trigger` setting\n* @param {Element} el - tooltipped element\n* @param {Object} handlers - the handlers for each listener\n* @param {Boolean} touchHold\n* @return {Array} - array of listener objects\n*/\nexport default function createTrigger(event, el, handlers, touchHold) {\n const listeners = []\n\n if (event === 'manual') return listeners\n\n // Enter\n el.addEventListener(event, handlers.handleTrigger)\n listeners.push({\n event,\n handler: handlers.handleTrigger\n })\n\n // Leave\n if (event === 'mouseenter') {\n if (Browser.SUPPORTS_TOUCH && touchHold) {\n el.addEventListener('touchstart', handlers.handleTrigger)\n listeners.push({\n event: 'touchstart',\n handler: handlers.handleTrigger\n })\n el.addEventListener('touchend', handlers.handleMouseleave)\n listeners.push({\n event: 'touchend',\n handler: handlers.handleMouseleave\n })\n }\n\n el.addEventListener('mouseleave', handlers.handleMouseleave)\n listeners.push({\n event: 'mouseleave',\n handler: handlers.handleMouseleave\n })\n }\n\n if (event === 'focus') {\n el.addEventListener('blur', handlers.handleBlur)\n listeners.push({\n event: 'blur',\n handler: handlers.handleBlur\n })\n }\n\n return listeners\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/core/createTrigger.js","/**\n* Evaluates/modifies the settings object for appropriate behavior\n* @param {Object} settings\n* @return {Object} modified/evaluated settings\n*/\nexport default function evaluateSettings(settings) {\n // animateFill is disabled if an arrow is true\n if (settings.arrow) {\n settings.animateFill = false\n }\n\n // reassign appendTo into the result of evaluating appendTo\n // if it's set as a function instead of Element\n if (settings.appendTo && typeof settings.appendTo === 'function') {\n settings.appendTo = settings.appendTo()\n }\n\n return settings\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/core/evaluateSettings.js","/**\n* Returns an array of elements based on the selector input\n* @param {String|Element|Element[]} selector\n* @return {Element[]}\n*/\nexport default function getArrayOfElements(selector) {\n if (selector instanceof Element) {\n return [selector]\n }\n\n if (Array.isArray(selector)) {\n return selector\n }\n\n return [].slice.call(document.querySelectorAll(selector))\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/core/getArrayOfElements.js","import { Browser, Selectors } from './globals'\n\nimport isVisible from '../utils/isVisible'\nimport closest from '../utils/closest'\nimport cursorIsOutsideInteractiveBorder from '../utils/cursorIsOutsideInteractiveBorder'\n\n/**\n* Returns relevant listener callbacks for each ref\n* @param {Element} el\n* @param {Element} popper\n* @param {Object} settings\n* @return {Object} - relevant listener handlers\n*/\nexport default function getEventListenerHandlers(el, popper, settings) {\n const {\n position,\n delay,\n duration,\n interactive,\n interactiveBorder,\n distance,\n hideOnClick,\n trigger,\n touchHold,\n touchWait\n } = settings\n\n let showDelay, hideDelay\n\n const clearTimeouts = () => {\n clearTimeout(showDelay)\n clearTimeout(hideDelay)\n }\n\n const _show = () => {\n clearTimeouts()\n\n // Not hidden. For clicking when it also has a `focus` event listener\n if (isVisible(popper)) return\n\n const _delay = Array.isArray(delay) ? delay[0] : delay\n\n if (delay) {\n showDelay = setTimeout(() => this.show(popper), _delay)\n } else {\n this.show(popper)\n }\n }\n\n const show = event =>\n this.callbacks.wait ? this.callbacks.wait.call(popper, _show, event) : _show()\n\n const hide = () => {\n clearTimeouts()\n\n const _delay = Array.isArray(delay) ? delay[1] : delay\n\n if (delay) {\n hideDelay = setTimeout(() => this.hide(popper), _delay)\n } else {\n this.hide(popper)\n }\n }\n\n const handleTrigger = event => {\n const mouseenterTouch = event.type === 'mouseenter' && Browser.SUPPORTS_TOUCH && Browser.touch\n\n if (mouseenterTouch && touchHold) return\n\n // Toggle show/hide when clicking click-triggered tooltips\n const isClick = event.type === 'click'\n const isNotPersistent = hideOnClick !== 'persistent'\n\n isClick && isVisible(popper) && isNotPersistent ? hide() : show(event)\n\n if (mouseenterTouch && Browser.iOS() && el.click) {\n el.click()\n }\n }\n\n const handleMouseleave = event => {\n\n // Don't fire 'mouseleave', use the 'touchend'\n if (event.type === 'mouseleave' && Browser.SUPPORTS_TOUCH &&\n Browser.touch && touchHold) {\n return\n }\n\n if (interactive) {\n // Temporarily handle mousemove to check if the mouse left somewhere\n // other than its popper\n const handleMousemove = event => {\n\n const triggerHide = () => {\n document.body.removeEventListener('mouseleave', hide)\n document.removeEventListener('mousemove', handleMousemove)\n hide()\n }\n\n const closestTooltippedEl = closest(event.target, Selectors.TOOLTIPPED_EL)\n\n const isOverPopper = closest(event.target, Selectors.POPPER) === popper\n const isOverEl = closestTooltippedEl === el\n const isClickTriggered = trigger.indexOf('click') !== -1\n const isOverOtherTooltippedEl = closestTooltippedEl && closestTooltippedEl !== el\n\n if (isOverOtherTooltippedEl) {\n return triggerHide()\n }\n\n if (isOverPopper || isOverEl || isClickTriggered) return\n\n if (cursorIsOutsideInteractiveBorder(event, popper, settings)) {\n triggerHide()\n }\n }\n\n document.body.addEventListener('mouseleave', hide)\n document.addEventListener('mousemove', handleMousemove)\n\n return\n }\n\n // If it's not interactive, just hide it\n hide()\n }\n\n const handleBlur = event => {\n // Ignore blur on touch devices, if there is no `relatedTarget`, hide\n // If the related target is a popper, ignore\n if (!event.relatedTarget || Browser.touch) return\n if (closest(event.relatedTarget, Selectors.POPPER)) return\n\n hide()\n }\n\n return {\n handleTrigger,\n handleMouseleave,\n handleBlur\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/core/getEventListenerHandlers.js","import { DefaultsKeys } from './globals'\n\n/**\n* Returns an object of settings to override global settings\n* @param {Element} el - the tooltipped element\n* @param {Object} instanceSettings\n* @return {Object} - individual settings\n*/\nexport default function getIndividualSettings(el, instanceSettings) {\n const settings = DefaultsKeys.reduce((acc, key) => {\n let val = el.getAttribute(`data-${ key.toLowerCase() }`) || instanceSettings[key]\n\n // Convert strings to booleans\n if (val === 'false') val = false\n if (val === 'true') val = true\n\n // Convert number strings to true numbers\n if (isFinite(val) && !isNaN(parseFloat(val))) {\n val = parseFloat(val)\n }\n\n // Convert array strings to actual arrays\n if (typeof val === 'string' && val.trim().charAt(0) === '[') {\n val = JSON.parse(val)\n }\n\n acc[key] = val\n\n return acc\n }, {})\n\n return Object.assign({}, instanceSettings, settings)\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/core/getIndividualSettings.js","import { Store } from './globals'\n\n/**\n* Hides all poppers\n* @param {Object} exclude - refData to exclude if needed\n*/\nexport default function hideAllPoppers(exclude) {\n Store.forEach(refData => {\n const {\n popper,\n tippyInstance,\n settings: {\n appendTo,\n hideOnClick,\n trigger\n }\n } = refData\n\n // Don't hide already hidden ones\n if (!appendTo.contains(popper)) return\n\n // hideOnClick can have the truthy value of 'persistent', so strict check is needed\n const isHideOnClick = hideOnClick === true || trigger.indexOf('focus') !== -1\n const isNotCurrentRef = !exclude || popper !== exclude.popper\n\n if (isHideOnClick && isNotCurrentRef) {\n refData.settings.onRequestClose();\n tippyInstance.hide(popper)\n }\n })\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/core/hideAllPoppers.js","import bindEventListeners from './bindEventListeners'\n\n/**\n* To run a single time, once DOM is presumed to be ready\n* @return {Boolean} whether the function has run or not\n*/\nexport default function init() {\n if (init.done) return false\n init.done = true\n\n bindEventListeners()\n\n return true\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/core/init.js","import defer from '../utils/defer'\nimport prefix from '../utils/prefix'\nimport isVisible from '../utils/isVisible'\n\n/**\n* Updates a popper's position on each animation frame to make it stick to a moving element\n* @param {Object} refData\n*/\nexport default function makeSticky(refData) {\n const {\n popper,\n popperInstance,\n settings: {\n stickyDuration\n }\n } = refData\n\n const applyTransitionDuration = () =>\n popper.style[prefix('transitionDuration')] = `${stickyDuration}ms`\n\n const removeTransitionDuration = () =>\n popper.style[prefix('transitionDuration')] = ''\n\n const updatePosition = () => {\n popperInstance && popperInstance.scheduleUpdate()\n\n applyTransitionDuration()\n\n isVisible(popper)\n ? window.requestAnimationFrame(updatePosition)\n : removeTransitionDuration()\n }\n\n // Wait until Popper's position has been updated initially\n defer(updatePosition)\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/core/makeSticky.js","import { Selectors, Browser } from './globals'\n\nimport followCursorHandler from './followCursorHandler'\nimport createPopperInstance from './createPopperInstance'\n\nimport prefix from '../utils/prefix'\n\n/**\n* Appends the popper and creates a popper instance if one does not exist\n* Also updates its position if need be and enables event listeners\n* @param {Object} data - the element/popper reference data\n*/\nexport default function mountPopper(data) {\n const {\n el,\n popper,\n settings: {\n appendTo,\n followCursor\n }\n } = data\n\n // Already on the DOM\n if (appendTo.contains(popper)) return\n\n appendTo.appendChild(popper)\n\n if (!data.popperInstance) {\n data.popperInstance = createPopperInstance(data)\n } else {\n data.popperInstance.update()\n if (!followCursor || Browser.touch) {\n data.popperInstance.enableEventListeners()\n }\n }\n\n // Since touch is determined dynamically, followCursor is set on mount\n if (followCursor && !Browser.touch) {\n el.addEventListener('mousemove', followCursorHandler)\n data.popperInstance.disableEventListeners()\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/core/mountPopper.js","import { Selectors } from './globals'\n\nimport getInnerElements from '../utils/getInnerElements'\n\n/**\n* Prepares the callback functions for `show` and `hide` methods\n* @param {Object} data\n* @param {Number} duration\n* @param {Function} callback - callback function to fire once transitions complete\n*/\nexport default function onTransitionEnd(data, duration, callback) {\n // Make callback synchronous if duration is 0\n if (!duration) {\n return callback()\n }\n\n const { tooltip } = getInnerElements(data.popper)\n\n let transitionendFired = false\n\n const listenerCallback = e => {\n if (e.target === tooltip && !transitionendFired) {\n transitionendFired = true\n callback()\n }\n }\n\n // Fire callback upon transition completion\n tooltip.addEventListener('webkitTransitionEnd', listenerCallback)\n tooltip.addEventListener('transitionend', listenerCallback)\n\n // Fallback: transitionend listener sometimes may not fire\n clearTimeout(data._transitionendTimeout)\n data._transitionendTimeout = setTimeout(() => {\n if (!transitionendFired) {\n callback()\n }\n }, duration)\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/core/onTransitionEnd.js","import {\n Browser,\n Store,\n Selectors,\n Defaults\n} from './core/globals'\nimport ReactDOM from 'react-dom'\n\nimport init from './core/init'\n\n/* Utility functions */\nimport defer from './utils/defer'\nimport prefix from './utils/prefix'\nimport find from './utils/find'\nimport findIndex from './utils/findIndex'\nimport removeTitle from './utils/removeTitle'\nimport elementIsInViewport from './utils/elementIsInViewport'\nimport triggerReflow from './utils/triggerReflow'\nimport modifyClassList from './utils/modifyClassList'\nimport getInnerElements from './utils/getInnerElements'\nimport applyTransitionDuration from './utils/applyTransitionDuration'\nimport isVisible from './utils/isVisible'\nimport noop from './utils/noop'\n\n/* Core library functions */\nimport followCursorHandler from './core/followCursorHandler'\nimport getArrayOfElements from './core/getArrayOfElements'\nimport onTransitionEnd from './core/onTransitionEnd'\nimport mountPopper from './core/mountPopper'\nimport makeSticky from './core/makeSticky'\nimport createTooltips from './core/createTooltips'\n\n/**\n* @param {String|Element|Element[]} selector\n* @param {Object} settings (optional) - the object of settings to be applied to the instance\n*/\nclass Tippy {\n constructor(selector, settings = {}) {\n // Use default browser tooltip on unsupported browsers\n if (!Browser.SUPPORTED) return\n\n init()\n\n this.state = {\n destroyed: false\n }\n\n this.selector = selector\n\n this.settings = { ...Defaults, ...settings }\n\n if (settings.show || settings.shown || settings.hide || settings.hidden) {\n console.warn(\n 'Callbacks without the `on` prefix are deprecated (with the exception of `wait`).' +\n ' Use onShow, onShown, onHide, and onHidden instead.'\n )\n }\n\n this.callbacks = {\n wait: settings.wait,\n show: settings.onShow || settings.show || noop,\n shown: settings.onShown || settings.shown || noop,\n hide: settings.onHide || settings.hide || noop,\n hidden: settings.onHidden || settings.hidden || noop\n }\n\n this.store = createTooltips.call(this, getArrayOfElements(selector))\n Store.push.apply(Store, this.store)\n }\n\n /**\n * Returns the reference element's popper element\n * @param {Element} el\n * @return {Element}\n */\n getPopperElement(el) {\n try {\n return find(this.store, data => data.el === el).popper\n } catch (e) {\n console.error('[getPopperElement]: Element passed as the argument does not exist in the instance')\n }\n }\n\n /**\n * Returns a popper's reference element\n * @param {Element} popper\n * @return {Element}\n */\n getReferenceElement(popper) {\n try {\n return find(this.store, data => data.popper === popper).el\n } catch (e) {\n console.error('[getReferenceElement]: Popper passed as the argument does not exist in the instance')\n }\n }\n\n /**\n * Returns the reference data object from either the reference element or popper element\n * @param {Element} x (reference element or popper)\n * @return {Object}\n */\n getReferenceData(x) {\n return find(this.store, data => data.el === x || data.popper === x)\n }\n\n /**\n * Update settings\n * @param {DOMElement} - popper\n * @param {string} - name\n * @param {string} - value\n */\n\n updateSettings(popper, name, value) {\n const data = find(this.store, data => data.popper === popper)\n const newSettings = {\n ...data.settings,\n [name]: value,\n }\n data.settings = newSettings;\n };\n\n /**\n * Update for React\n * @param {DOMElement} - popper\n * @param {ReactElement} - content\n */\n updateForReact(popper, updatedContent) {\n const tooltipContent = popper.querySelector(Selectors.CONTENT)\n const data = find(this.store, data => data.popper === popper)\n\n const {\n useContext,\n reactInstance,\n } = data.settings;\n if (useContext) {\n ReactDOM.unstable_renderSubtreeIntoContainer(\n data.settings.reactInstance,\n updatedContent,\n tooltipContent,\n );\n } else {\n ReactDOM.render(\n updatedContent,\n tooltipContent,\n );\n }\n\n }\n /**\n * Shows a popper\n * @param {Element} popper\n * @param {Number} customDuration (optional)\n */\n show(popper, customDuration) {\n if (this.state.destroyed) return\n\n const data = find(this.store, data => data.popper === popper)\n const { tooltip, circle, content } = getInnerElements(popper)\n\n if (!document.body.contains(data.el)) {\n this.destroy(popper)\n return\n }\n\n this.callbacks.show.call(popper)\n\n // Custom react\n if (data && data.settings && data.settings.open === false) {\n return;\n }\n\n if (data.settings.reactDOM) {\n this.updateForReact(popper, data.settings.reactDOM)\n }\n // end: Custom react\n\n const {\n el,\n settings: {\n appendTo,\n sticky,\n interactive,\n followCursor,\n flipDuration,\n duration,\n dynamicTitle\n }\n } = data\n\n if (dynamicTitle) {\n const title = el.getAttribute('title')\n if (title) {\n content.innerHTML = title\n removeTitle(el)\n }\n }\n\n const _duration = customDuration !== undefined\n ? customDuration\n : Array.isArray(duration) ? duration[0] : duration\n\n // Prevent a transition when popper changes position\n applyTransitionDuration([popper, tooltip, circle], 0)\n\n mountPopper(data)\n\n popper.style.visibility = 'visible'\n popper.setAttribute('aria-hidden', 'false')\n\n // Wait for popper's position to update\n defer(() => {\n // Sometimes the arrow will not be in the correct position, force another update\n if (!followCursor || Browser.touch) {\n data.popperInstance.update()\n applyTransitionDuration([popper], flipDuration)\n }\n\n // Re-apply transition durations\n applyTransitionDuration([tooltip, circle], _duration)\n\n // Make content fade out a bit faster than the tooltip if `animateFill`\n if (circle) content.style.opacity = 1\n\n // Interactive tooltips receive a class of 'active'\n interactive && el.classList.add('active')\n\n // Update popper's position on every animation frame\n sticky && makeSticky(data)\n\n // Repaint/reflow is required for CSS transition when appending\n triggerReflow(tooltip, circle)\n\n modifyClassList([tooltip, circle], list => {\n list.contains('tippy-notransition') && list.remove('tippy-notransition')\n list.remove('leave')\n list.add('enter')\n })\n\n // Wait for transitions to complete\n onTransitionEnd(data, _duration, () => {\n if (!isVisible(popper) || data._onShownFired) return\n\n // Focus interactive tooltips only\n interactive && popper.focus()\n // Remove transitions from tooltip\n tooltip.classList.add('tippy-notransition')\n // Prevents shown() from firing more than once from early transition cancellations\n data._onShownFired = true\n\n this.callbacks.shown.call(popper)\n })\n })\n }\n\n /**\n * Hides a popper\n * @param {Element} popper\n * @param {Number} customDuration (optional)\n */\n hide(popper, customDuration) {\n if (this.state.destroyed) return\n\n this.callbacks.hide.call(popper)\n\n const data = find(this.store, data => data.popper === popper)\n const { tooltip, circle, content } = getInnerElements(popper)\n\n // custom react\n // Prevent hide if open\n if (data.settings.disabled === false && data.settings.open) {\n return;\n }\n\n const isUnmount = data && data.settings && data.settings.unmountHTMLWhenHide && data.settings.reactDOM;\n // end: custom react\n\n const {\n el,\n settings: {\n appendTo,\n sticky,\n interactive,\n followCursor,\n html,\n trigger,\n duration\n }\n } = data\n\n const _duration = customDuration !== undefined\n ? customDuration\n : Array.isArray(duration) ? duration[1] : duration\n\n data._onShownFired = false\n interactive && el.classList.remove('active')\n\n popper.style.visibility = 'hidden'\n popper.setAttribute('aria-hidden', 'true')\n\n applyTransitionDuration([tooltip, circle, circle ? content : null], _duration)\n\n if (circle) content.style.opacity = 0\n\n modifyClassList([tooltip, circle], list => {\n list.contains('tippy-tooltip') && list.remove('tippy-notransition')\n list.remove('enter')\n list.add('leave')\n })\n\n // Re-focus click-triggered html elements\n // and the tooltipped element IS in the viewport (otherwise it causes unsightly scrolling\n // if the tooltip is closed and the element isn't in the viewport anymore)\n if (html && trigger.indexOf('click') !== -1 && elementIsInViewport(el)) {\n el.focus()\n }\n\n // Wait for transitions to complete\n onTransitionEnd(data, _duration, () => {\n // `isVisible` is not completely reliable to determine if we shouldn't\n // run the hidden callback, we need to check the computed opacity style.\n // This prevents glitchy behavior of the transition when quickly showing\n // and hiding a tooltip.\n if (\n isVisible(popper) ||\n !appendTo.contains(popper) ||\n getComputedStyle(tooltip).opacity === '1'\n ) return\n\n el.removeEventListener('mousemove', followCursorHandler)\n data.popperInstance.disableEventListeners()\n appendTo.removeChild(popper)\n\n this.callbacks.hidden.call(popper)\n\n // custom react\n if (isUnmount) {\n ReactDOM.unmountComponentAtNode(content);\n }\n })\n }\n\n /**\n * Updates a popper with new content\n * @param {Element} popper\n */\n update(popper) {\n if (this.state.destroyed) return\n\n const data = find(this.store, data => data.popper === popper)\n const { content } = getInnerElements(popper)\n const { el, settings: { html } } = data\n\n if (html instanceof Element) {\n console.warn('Aborted: update() should not be used if `html` is a DOM element')\n return\n }\n\n content.innerHTML = html\n ? document.getElementById(html.replace('#', '')).innerHTML\n : el.getAttribute('title') || el.getAttribute('data-original-title')\n\n if (!html) removeTitle(el)\n }\n\n /**\n * Destroys a popper\n * @param {Element} popper\n * @param {Boolean} _isLast - private param used by destroyAll to optimize\n */\n destroy(popper, _isLast) {\n if (this.state.destroyed) return\n\n const data = find(this.store, data => data.popper === popper)\n\n const {\n el,\n popperInstance,\n listeners,\n _mutationObserver\n } = data\n\n // Ensure the popper is hidden\n if (isVisible(popper)) {\n this.hide(popper, 0)\n }\n\n // Remove Tippy-only event listeners from tooltipped element\n listeners.forEach(listener => el.removeEventListener(listener.event, listener.handler))\n\n // Restore original title\n el.setAttribute('title', el.getAttribute('data-original-title'))\n\n el.removeAttribute('data-original-title')\n el.removeAttribute('data-tooltipped')\n el.removeAttribute('aria-describedby')\n\n popperInstance && popperInstance.destroy()\n _mutationObserver && _mutationObserver.disconnect()\n\n // Remove from store\n Store.splice(findIndex(Store, data => data.popper === popper), 1)\n\n // Ensure filter is called only once\n if (_isLast === undefined || _isLast) {\n this.store = Store.filter(data => data.tippyInstance === this)\n }\n }\n\n /**\n * Destroys all tooltips created by the instance\n */\n destroyAll() {\n if (this.state.destroyed) return\n\n const storeLength = this.store.length\n\n this.store.forEach(({popper}, index) => {\n this.destroy(popper, index === storeLength - 1)\n })\n\n this.store = null\n this.state.destroyed = true\n }\n}\n\nfunction tippy(selector, settings) {\n return new Tippy(selector, settings)\n}\n\ntippy.Browser = Browser\ntippy.Defaults = Defaults\ntippy.disableDynamicInputDetection = () => Browser.dynamicInputDetection = false\ntippy.enableDynamicInputDetection = () => Browser.dynamicInputDetection = true\n\nexport default tippy\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/tippy.js","import { Selectors } from '../core/globals'\nimport prefix from './prefix'\nimport { matches } from './matches'\n\n/**\n* Applies the transition duration to each element\n* @param {Element[]} els - Array of elements\n* @param {Number} duration\n*/\nexport default function applyTransitionDuration(els, duration) {\n els.forEach(el => {\n if (!el) return\n\n const isContent = matches.call(el, Selectors.CONTENT)\n\n const _duration = isContent\n ? Math.round(duration/1.3)\n : duration\n\n el.style[prefix('transitionDuration')] = _duration + 'ms'\n })\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/utils/applyTransitionDuration.js","import getCorePlacement from '../utils/getCorePlacement'\n\n/**\n* Determines if the mouse's cursor is outside the interactive border\n* @param {MouseEvent} event\n* @param {Element} popper\n* @param {Object} settings\n* @return {Boolean}\n*/\nexport default function cursorIsOutsideInteractiveBorder(event, popper, settings) {\n if (!popper.getAttribute('x-placement')) return true\n\n const { clientX: x, clientY: y } = event\n const { interactiveBorder, distance } = settings\n\n const rect = popper.getBoundingClientRect()\n const corePosition = getCorePlacement(popper.getAttribute('x-placement'))\n const borderWithDistance = interactiveBorder + distance\n\n const exceeds = {\n top: rect.top - y > interactiveBorder,\n bottom: y - rect.bottom > interactiveBorder,\n left: rect.left - x > interactiveBorder,\n right: x - rect.right > interactiveBorder\n }\n\n switch (corePosition) {\n case 'top':\n exceeds.top = rect.top - y > borderWithDistance\n break\n case 'bottom':\n exceeds.bottom = y - rect.bottom > borderWithDistance\n break\n case 'left':\n exceeds.left = rect.left - x > borderWithDistance\n break\n case 'right':\n exceeds.right = x - rect.right > borderWithDistance\n break\n }\n\n return exceeds.top || exceeds.bottom || exceeds.left || exceeds.right\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/utils/cursorIsOutsideInteractiveBorder.js","/**\n* Determines if an element is visible in the viewport\n* @param {Element} el\n* @return {Boolean}\n*/\nexport default function elementIsInViewport(el) {\n const rect = el.getBoundingClientRect()\n\n return (\n rect.top >= 0 &&\n rect.left >= 0 &&\n rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&\n rect.right <= (window.innerWidth || document.documentElement.clientWidth)\n )\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/utils/elementIsInViewport.js","import find from './find'\n\n/**\n* Ponyfill for Array.prototype.findIndex\n* @param {Array} arr\n* @param {Function} checkFn\n* @return index of the item in the array\n*/\nexport default function findIndex(arr, checkFn) {\n if (Array.prototype.findIndex) {\n return arr.findIndex(checkFn)\n }\n\n // fallback\n return arr.indexOf(find(arr, checkFn))\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/utils/findIndex.js","/**\n* Modifies elements' class lists\n* @param {Element[]} els - Array of elements\n* @param {Function} callback\n*/\nexport default function modifyClassList(els, callback) {\n els.forEach(el => {\n if (!el) return\n callback(el.classList)\n })\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/utils/modifyClassList.js","export default function noop() {}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/utils/noop.js","import prefix from '../utils/prefix'\n\n/**\n* Triggers a document repaint or reflow for CSS transition\n* @param {Element} tooltip\n* @param {Element} circle\n*/\nexport default function triggerReflow(tooltip, circle) {\n // Safari needs the specific 'transform' property to be accessed\n circle\n ? window.getComputedStyle(circle)[prefix('transform')]\n : window.getComputedStyle(tooltip).opacity\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/utils/triggerReflow.js","module.exports = __WEBPACK_EXTERNAL_MODULE_38__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"root\":\"Popper\",\"commonjs2\":\"popper.js\",\"commonjs\":\"popper.js\",\"amd\":\"popper.js\",\"umd\":\"popper.js\"}\n// module id = 38\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_39__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"root\":\"ReactDOM\",\"commonjs2\":\"react-dom\",\"commonjs\":\"react-dom\",\"amd\":\"react-dom\",\"umd\":\"react-dom\"}\n// module id = 39\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap fcbdbcb6087dafff5ff0","webpack:///./src/Tooltip/js/core/globals.js","webpack:///./src/Tooltip/js/utils/prefix.js","webpack:///./src/Tooltip/js/utils/find.js","webpack:///./src/Tooltip/js/utils/getCorePlacement.js","webpack:///./src/Tooltip/js/utils/closest.js","webpack:///./src/Tooltip/js/utils/defer.js","webpack:///./src/Tooltip/js/utils/getInnerElements.js","webpack:///./src/Tooltip/js/utils/isVisible.js","webpack:///./src/Tooltip/js/utils/matches.js","webpack:///./src/Tooltip/component.js","webpack:///./src/Tooltip/js/core/followCursorHandler.js","webpack:///./src/Tooltip/js/utils/getOffsetDistanceInPx.js","webpack:///./src/Tooltip/js/utils/removeTitle.js","webpack:///external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\",\"umd\":\"react\"}","webpack:///./src/Tooltip/hoc.js","webpack:///./src/Tooltip/index.js","webpack:///./src/Tooltip/js/core/bindEventListeners.js","webpack:///./src/Tooltip/js/core/createPopperElement.js","webpack:///./src/Tooltip/js/core/createPopperInstance.js","webpack:///./src/Tooltip/js/core/createTooltips.js","webpack:///./src/Tooltip/js/core/createTrigger.js","webpack:///./src/Tooltip/js/core/evaluateSettings.js","webpack:///./src/Tooltip/js/core/getArrayOfElements.js","webpack:///./src/Tooltip/js/core/getEventListenerHandlers.js","webpack:///./src/Tooltip/js/core/getIndividualSettings.js","webpack:///./src/Tooltip/js/core/hideAllPoppers.js","webpack:///./src/Tooltip/js/core/init.js","webpack:///./src/Tooltip/js/core/makeSticky.js","webpack:///./src/Tooltip/js/core/mountPopper.js","webpack:///./src/Tooltip/js/core/onTransitionEnd.js","webpack:///./src/Tooltip/js/tippy.js","webpack:///./src/Tooltip/js/utils/applyTransitionDuration.js","webpack:///./src/Tooltip/js/utils/cursorIsOutsideInteractiveBorder.js","webpack:///./src/Tooltip/js/utils/elementIsInViewport.js","webpack:///./src/Tooltip/js/utils/findIndex.js","webpack:///./src/Tooltip/js/utils/modifyClassList.js","webpack:///./src/Tooltip/js/utils/noop.js","webpack:///./src/Tooltip/js/utils/triggerReflow.js","webpack:///external {\"root\":\"Popper\",\"commonjs2\":\"popper.js\",\"commonjs\":\"popper.js\",\"amd\":\"popper.js\",\"umd\":\"popper.js\"}","webpack:///external {\"root\":\"ReactDOM\",\"commonjs2\":\"react-dom\",\"commonjs\":\"react-dom\",\"amd\":\"react-dom\",\"umd\":\"react-dom\"}"],"names":["Browser","window","SUPPORTED","SUPPORTS_TOUCH","touch","dynamicInputDetection","iOS","test","navigator","userAgent","MSStream","Store","Selectors","POPPER","TOOLTIP","CONTENT","CIRCLE","ARROW","TOOLTIPPED_EL","CONTROLLER","Defaults","html","position","animation","animateFill","arrow","arrowSize","delay","trigger","duration","interactive","interactiveBorder","theme","size","distance","offset","hideOnClick","multiple","followCursor","inertia","flipDuration","sticky","stickyDuration","appendTo","document","body","zIndex","touchHold","performance","dynamicTitle","useContext","reactInstance","undefined","popperOptions","open","onRequestClose","DefaultsKeys","Object","keys","prefix","property","prefixes","upperProp","charAt","toUpperCase","slice","i","length","prefixedProp","style","find","arr","checkFn","Array","prototype","filter","getCorePlacement","placement","replace","closest","element","parentSelector","_closest","Element","selector","el","call","parentElement","defer","fn","requestAnimationFrame","setTimeout","getInnerElements","popper","tooltip","querySelector","circle","content","isVisible","visibility","defaultMatchSelector","s","matches","ownerDocument","querySelectorAll","item","matchesSelector","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","defaultProps","hideDelay","hideDuration","onShow","onShown","onHide","onHidden","disabled","className","unmountHTMLWhenHide","propKeys","detectPropsChanged","props","prevProps","result","forEach","key","push","Tooltip","initTippy","_initTippy","bind","destroyTippy","_destroyTippy","updateTippy","_updateTippy","updateReactDom","_updateReactDom","showTooltip","_showTooltip","hideTooltip","_hideTooltip","updateSettings","_updateSettings","title","propChanges","tippy","getPopperElement","tooltipDOM","show","hide","name","value","updateForReact","update","setAttribute","reactDOM","rawTemplate","destroy","tabIndex","display","children","followCursorHandler","e","refData","settings","getAttribute","halfPopperWidth","Math","round","offsetWidth","halfPopperHeight","offsetHeight","viewportPadding","pageWidth","documentElement","pageX","pageY","x","y","isRightOverflowing","isLeftOverflowing","getOffsetDistanceInPx","removeTitle","removeAttribute","withTooltip","Component","options","bindEventListeners","touchHandler","classList","add","addEventListener","mousemoveHandler","time","now","removeEventListener","remove","clickHandler","event","target","ref","indexOf","blurHandler","activeElement","blur","maxTouchPoints","msMaxTouchPoints","createPopperElement","id","createElement","split","t","appendChild","templateId","innerHTML","getElementById","createPopperInstance","data","config","modifiers","flip","padding","onUpdate","styles","top","bottom","left","right","MutationObserver","observer","popperInstance","observe","childList","subtree","characterData","_mutationObserver","createTooltips","idCounter","els","reduce","a","handlers","listeners","trim","concat","tippyInstance","createTrigger","handleTrigger","handler","handleMouseleave","handleFocusOut","evaluateSettings","getArrayOfElements","isArray","getEventListenerHandlers","touchWait","showDelay","clearTimeouts","clearTimeout","_show","_delay","callbacks","wait","mouseenterTouch","type","isClick","isNotPersistent","click","handleMousemove","triggerHide","closestTooltippedEl","isOverPopper","isOverEl","isClickTriggered","isOverOtherTooltippedEl","relatedTarget","getIndividualSettings","instanceSettings","acc","val","toLowerCase","isFinite","isNaN","parseFloat","JSON","parse","assign","hideAllPoppers","exclude","contains","isHideOnClick","isNotCurrentRef","init","done","makeSticky","applyTransitionDuration","removeTransitionDuration","updatePosition","scheduleUpdate","mountPopper","enableEventListeners","disableEventListeners","onTransitionEnd","callback","transitionendFired","listenerCallback","_transitionendTimeout","Tippy","state","destroyed","shown","hidden","console","warn","store","apply","error","newSettings","updatedContent","tooltipContent","unstable_renderSubtreeIntoContainer","render","customDuration","_duration","opacity","list","_onShownFired","focus","isUnmount","getComputedStyle","removeChild","unmountComponentAtNode","_isLast","listener","disconnect","splice","storeLength","index","disableDynamicInputDetection","enableDynamicInputDetection","isContent","cursorIsOutsideInteractiveBorder","clientX","clientY","rect","getBoundingClientRect","corePosition","borderWithDistance","exceeds","elementIsInViewport","innerHeight","clientHeight","innerWidth","clientWidth","findIndex","modifyClassList","noop","triggerReflow"],"mappings":"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","file":"react-tippy.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"popper.js\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"reactTippy\", [\"react\", \"popper.js\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"reactTippy\"] = factory(require(\"react\"), require(\"popper.js\"), require(\"react-dom\"));\n\telse\n\t\troot[\"reactTippy\"] = factory(root[\"React\"], root[\"Popper\"], root[\"ReactDOM\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_13__, __WEBPACK_EXTERNAL_MODULE_38__, __WEBPACK_EXTERNAL_MODULE_39__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 15);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap fcbdbcb6087dafff5ff0","export const Browser = {}\n\nif (typeof window !== 'undefined') {\n Browser.SUPPORTED = 'requestAnimationFrame' in window\n Browser.SUPPORTS_TOUCH = 'ontouchstart' in window\n Browser.touch = false\n Browser.dynamicInputDetection = true\n // Chrome device/touch emulation can make this dynamic\n Browser.iOS = () => /iPhone|iPad|iPod/.test(navigator.userAgent) && !window.MSStream\n}\n\n/**\n* The global storage array which holds all data reference objects\n* from every instance\n* This allows us to hide tooltips from all instances, finding the ref when\n* clicking on the body, and for followCursor\n*/\nexport const Store = []\n\n/**\n* Selector constants used for grabbing elements\n*/\nexport const Selectors = {\n POPPER: '.tippy-popper',\n TOOLTIP: '.tippy-tooltip',\n CONTENT: '.tippy-tooltip-content',\n CIRCLE: '[x-circle]',\n ARROW: '[x-arrow]',\n TOOLTIPPED_EL: '[data-tooltipped]',\n CONTROLLER: '[data-tippy-controller]'\n}\n\n/**\n* The default settings applied to each instance\n*/\nexport const Defaults = {\n html: false,\n position: 'top',\n animation: 'shift',\n animateFill: true,\n arrow: false,\n arrowSize: 'regular',\n delay: 0,\n trigger: 'mouseenter focus',\n duration: 350,\n interactive: false,\n interactiveBorder: 2,\n theme: 'dark',\n size: 'regular',\n distance: 10,\n offset: 0,\n hideOnClick: true,\n multiple: false,\n followCursor: false,\n inertia: false,\n flipDuration: 350,\n sticky: false,\n stickyDuration: 200,\n appendTo: () => document.body,\n zIndex: 9999,\n touchHold: false,\n performance: false,\n dynamicTitle: false,\n useContext: false,\n reactInstance: undefined,\n popperOptions: {},\n open: undefined,\n onRequestClose: () => {},\n}\n\n/**\n* The keys of the defaults object for reducing down into a new object\n* Used in `getIndividualSettings()`\n*/\nexport const DefaultsKeys = Browser.SUPPORTED && Object.keys(Defaults)\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/core/globals.js","/**\n* Returns the supported prefixed property - only `webkit` is needed, `moz`, `ms` and `o` are obsolete\n* @param {String} property\n* @return {String} - browser supported prefixed property\n*/\nexport default function prefix(property) {\n const prefixes = [false, 'webkit']\n const upperProp = property.charAt(0).toUpperCase() + property.slice(1)\n\n for (var i = 0; i < prefixes.length; i++) {\n const prefix = prefixes[i]\n const prefixedProp = prefix ? '' + prefix + upperProp : property\n if (typeof window.document.body.style[prefixedProp] !== 'undefined') {\n return prefixedProp\n }\n }\n \n return null\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/utils/prefix.js","/**\n* Ponyfill for Array.prototype.find\n* @param {Array} arr\n* @param {Function} checkFn\n* @return item in the array\n*/\nexport default function find(arr, checkFn) {\n if (Array.prototype.find) {\n return arr.find(checkFn)\n }\n\n // use `filter` as fallback\n return arr.filter(checkFn)[0]\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/utils/find.js","/**\n* Returns the non-shifted placement (e.g., 'bottom-start' => 'bottom')\n* @param {String} placement\n* @return {String}\n*/\nexport default function getCorePlacement(placement) {\n return placement.replace(/-.+/, '')\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/utils/getCorePlacement.js","import { matches } from './matches'\n\n/**\n* Ponyfill to get the closest parent element\n* @param {Element} element - child of parent to be returned\n* @param {String} parentSelector - selector to match the parent if found\n* @return {Element}\n*/\nexport default function closest(element, parentSelector) {\n const _closest = Element.prototype.closest || function(selector) {\n let el = this\n while (el) {\n if (matches.call(el, selector)) {\n return el\n }\n el = el.parentElement\n }\n }\n\n return _closest.call(element, parentSelector)\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/utils/closest.js","/**\n* Waits until next repaint to execute a fn\n* @param {Function} fn\n*/\nexport default function defer(fn) {\n window.requestAnimationFrame(() => {\n setTimeout(fn, 0)\n })\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/utils/defer.js","import { Selectors } from '../core/globals'\n\n/**\n* Returns inner elements of the popper element\n* @param {Element} popper\n* @return {Object}\n*/\nexport default function getInnerElements(popper) {\n return {\n tooltip: popper.querySelector(Selectors.TOOLTIP),\n circle: popper.querySelector(Selectors.CIRCLE),\n content: popper.querySelector(Selectors.CONTENT)\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/utils/getInnerElements.js","/**\n* Determines if a popper is currently visible\n* @param {Element} popper\n* @return {Boolean}\n*/\nexport default function isVisible(popper) {\n return popper.style.visibility === 'visible'\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/utils/isVisible.js","function defaultMatchSelector(s) {\n var matches = (this.document || this.ownerDocument).querySelectorAll(s),\n i = matches.length;\n while (--i >= 0 && matches.item(i) !== this) {}\n return i > -1;\n}\n\nexport const matches =\n typeof window === 'undefined' ? defaultMatchSelector :\n Element.prototype.matches ||\n Element.prototype.matchesSelector ||\n Element.prototype.webkitMatchesSelector ||\n Element.prototype.mozMatchesSelector ||\n Element.prototype.msMatchesSelector ||\n defaultMatchSelector\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/utils/matches.js","import React, { Component } from 'react';\nimport tippy from './js/tippy';\n\nconst defaultProps = {\n html: null,\n position: 'top',\n animation: 'shift',\n animateFill: true,\n arrow: false,\n delay: 0,\n hideDelay: 0,\n trigger: 'mouseenter focus',\n duration: 375,\n hideDuration: 375,\n interactive: false,\n interactiveBorder: 2,\n theme: 'dark',\n offset: 0,\n hideOnClick: true,\n multiple: false,\n followCursor: false,\n inertia: false,\n popperOptions: {},\n onShow: () => {},\n onShown: () => {},\n onHide: () => {},\n onHidden: () => {},\n disabled: false,\n arrowSize: 'regular',\n size: 'regular',\n className: '',\n style: {},\n distance: 10,\n onRequestClose: () => {},\n sticky: false,\n stickyDuration: 200,\n touchHold: false,\n unmountHTMLWhenHide: false,\n};\n\nconst propKeys = Object.keys(defaultProps)\n\nconst detectPropsChanged = (props, prevProps) => {\n const result = [];\n propKeys.forEach(key => {\n if (props[key] !== prevProps[key]) {\n result.push(key);\n }\n })\n return result;\n}\n\nclass Tooltip extends Component {\n constructor(props) {\n super(props);\n this.initTippy = this._initTippy.bind(this);\n this.destroyTippy = this._destroyTippy.bind(this);\n this.updateTippy = this._updateTippy.bind(this);\n this.updateReactDom = this._updateReactDom.bind(this);\n this.showTooltip = this._showTooltip.bind(this);\n this.hideTooltip = this._hideTooltip.bind(this);\n this.updateSettings = this._updateSettings.bind(this);\n }\n\n componentDidMount() {\n if (typeof window === 'undefined' || typeof document === 'undefined' ) {\n return;\n }\n this.initTippy();\n }\n\n componentWillUnmount() {\n if (typeof window === 'undefined' || typeof document === 'undefined' ) {\n return;\n }\n this.destroyTippy();\n }\n\n componentDidUpdate(prevProps) {\n // enable and disabled\n if (typeof window === 'undefined' || typeof document === 'undefined' ) {\n return;\n }\n if (this.props.disabled === false && prevProps.disabled === true) {\n this.updateSettings('disabled', false);\n this.destroyTippy();\n this.initTippy();\n return;\n }\n\n if (this.props.disabled === true && prevProps.disabled === false) {\n this.updateSettings('disabled', true);\n this.destroyTippy();\n return;\n }\n\n // open\n if (this.props.open === true && !prevProps.open) {\n this.updateSettings('open', true);\n setTimeout(() => {\n this.showTooltip();\n }, 0)\n }\n if (this.props.open === false && prevProps.open === true) {\n this.updateSettings('open', false);\n this.hideTooltip();\n }\n\n if (this.props.html !== prevProps.html) {\n this.updateReactDom();\n }\n\n // Update content\n if (this.props.title !== prevProps.title) {\n this.updateTippy();\n }\n\n // update otherProps\n const propChanges = detectPropsChanged(this.props, prevProps);\n propChanges.forEach(key => {\n this.updateSettings(key, this.props[key]);\n });\n }\n\n _showTooltip() {\n if (typeof window === 'undefined' || typeof document === 'undefined' ) {\n return;\n }\n if (this.tippy) {\n const popper = this.tippy.getPopperElement(this.tooltipDOM);\n this.tippy.show(popper, this.props.duration);\n }\n }\n\n _hideTooltip() {\n if (typeof window === 'undefined' || typeof document === 'undefined' ) {\n return;\n }\n if (this.tippy) {\n const popper = this.tippy.getPopperElement(this.tooltipDOM);\n this.tippy.hide(popper, this.props.hideDuration);\n }\n }\n\n _updateSettings(name, value) {\n if (typeof window === 'undefined' || typeof document === 'undefined' ) {\n return;\n }\n if (this.tippy) {\n const popper = this.tippy.getPopperElement(this.tooltipDOM);\n this.tippy.updateSettings(popper, name, value);\n }\n }\n\n _updateReactDom() {\n if (typeof window === 'undefined' || typeof document === 'undefined' ) {\n return;\n }\n if (this.tippy) {\n this.updateSettings('reactDOM', this.props.html);\n const popper = this.tippy.getPopperElement(this.tooltipDOM);\n const isVisible = popper.style.visibility === 'visible' || this.props.open;\n if (isVisible) {\n this.tippy.updateForReact(popper, this.props.html);\n }\n }\n }\n\n _updateTippy() {\n if (typeof window === 'undefined' || typeof document === 'undefined' ) {\n return;\n }\n if (this.tippy) {\n const popper = this.tippy.getPopperElement(this.tooltipDOM);\n this.tippy.update(popper);\n }\n }\n\n _initTippy() {\n if (typeof window === 'undefined' || typeof document === 'undefined' ) {\n return;\n }\n if (!this.props.disabled) {\n this.tooltipDOM.setAttribute('title', this.props.title);\n this.tippy = tippy(this.tooltipDOM, {\n disabled: this.props.disabled,\n position: this.props.position,\n animation: this.props.animation,\n animateFill: this.props.animateFill,\n arrow: this.props.arrow,\n arrowSize: this.props.arrowSize,\n delay: this.props.delay,\n hideDelay: this.props.hideDelay,\n trigger: this.props.trigger,\n duration: this.props.duration,\n hideDuration: this.props.hideDuration,\n interactive: this.props.interactive,\n interactiveBorder: this.props.interactiveBorder,\n theme: this.props.theme,\n offset: this.props.offset,\n hideOnClick: this.props.hideOnClick,\n multiple: this.props.multiple,\n size: this.props.size,\n followCursor: this.props.followCursor,\n inertia: this.props.inertia,\n popperOptions: this.props.popperOptions,\n onShow: this.props.onShow,\n onShown: this.props.onShown,\n onHide: this.props.onHide,\n onHidden: this.props.onHidden,\n distance: this.props.distance,\n reactDOM: this.props.html,\n unmountHTMLWhenHide: this.props.unmountHTMLWhenHide,\n open: this.props.open,\n sticky: this.props.sticky,\n stickyDuration: this.props.stickyDuration,\n touchHold: this.props.touchHold,\n onRequestClose: this.props.onRequestClose,\n useContext: this.props.useContext,\n reactInstance: this.props.useContext ? this : undefined,\n performance: true,\n html: this.props.rawTemplate ? this.props.rawTemplate : undefined,\n });\n if (this.props.open) {\n this.showTooltip();\n }\n } else {\n this.tippy = null;\n }\n }\n\n _destroyTippy() {\n if (typeof window === 'undefined' || typeof document === 'undefined' ) {\n return;\n }\n if (this.tippy) {\n const popper = this.tippy.getPopperElement(this.tooltipDOM);\n this.updateSettings('open', false);\n this.tippy.hide(popper, 0);\n this.tippy.destroy(popper);\n this.tippy = null;\n }\n }\n\n render() {\n return (\n { this.tooltipDOM = tooltip; }}\n title={this.props.title}\n className={this.props.className}\n tabIndex={this.props.tabIndex}\n style={{\n display: 'inline',\n ...this.props.style\n }}\n >\n {this.props.children}\n \n );\n }\n}\n\n\nTooltip.defaultProps = defaultProps;\n\nexport default Tooltip;\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/component.js","import { Store, Selectors } from './globals'\n\nimport getCorePlacement from '../utils/getCorePlacement'\nimport find from '../utils/find'\nimport prefix from '../utils/prefix'\nimport closest from '../utils/closest'\n\n/**\n* Mousemove event listener callback method for follow cursor setting\n* @param {MouseEvent} e\n*/\nexport default function followCursorHandler(e) {\n const refData = find(Store, refData => refData.el === this)\n\n const {\n popper,\n settings: {\n offset\n }\n } = refData\n\n const position = getCorePlacement(popper.getAttribute('x-placement'))\n const halfPopperWidth = Math.round(popper.offsetWidth / 2)\n const halfPopperHeight = Math.round(popper.offsetHeight / 2)\n const viewportPadding = 5\n const pageWidth = document.documentElement.offsetWidth || document.body.offsetWidth\n\n const { pageX, pageY } = e\n\n let x, y\n\n switch (position) {\n case 'top':\n x = pageX - halfPopperWidth + offset\n y = pageY - 2.25 * halfPopperHeight\n break\n case 'left':\n x = pageX - ( 2 * halfPopperWidth ) - 10\n y = pageY - halfPopperHeight + offset\n break\n case 'right':\n x = pageX + halfPopperHeight\n y = pageY - halfPopperHeight + offset\n break\n case 'bottom':\n x = pageX - halfPopperWidth + offset\n y = pageY + halfPopperHeight/1.5\n break\n }\n\n const isRightOverflowing = pageX + viewportPadding + halfPopperWidth + offset > pageWidth\n const isLeftOverflowing = pageX - viewportPadding - halfPopperWidth + offset < 0\n\n // Prevent left/right overflow\n if (position === 'top' || position === 'bottom') {\n if (isRightOverflowing) {\n x = pageWidth - viewportPadding - ( 2 * halfPopperWidth)\n }\n\n if (isLeftOverflowing) {\n x = viewportPadding\n }\n }\n\n popper.style[prefix('transform')] = `translate3d(${x}px, ${y}px, 0)`\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/core/followCursorHandler.js","import { Defaults } from '../core/globals'\n\n/**\n* Returns the distance taking into account the default distance due to\n* the transform: translate setting in CSS\n* @param {Number} distance\n* @return {String}\n*/\nexport default function getOffsetDistanceInPx(distance) {\n return -(distance - Defaults.distance) + 'px'\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/utils/getOffsetDistanceInPx.js","/**\n* Removes the title from the tooltipped element, setting `data-original-title`\n* appropriately\n* @param {Element} el\n*/\nexport default function removeTitle(el) {\n const title = el.getAttribute('title')\n\n // Only set `data-original-title` attr if there is a title\n if (title) {\n el.setAttribute('data-original-title', title)\n }\n\n el.removeAttribute('title')\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/utils/removeTitle.js","module.exports = __WEBPACK_EXTERNAL_MODULE_13__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\",\"umd\":\"react\"}\n// module id = 13\n// module chunks = 0","import React from 'react';\nimport Tooltip from './component';\n\nconst withTooltip = (Component, options = {}) => ({\n ...props,\n}) => (\n \n \n \n);\n\nexport default withTooltip;\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/hoc.js","import Tooltip from './component';\nimport withTooltip from './hoc';\n\nexport {\n Tooltip,\n withTooltip,\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/index.js","import { Browser, Selectors, Store } from './globals'\n\nimport hideAllPoppers from './hideAllPoppers'\n\nimport closest from '../utils/closest'\nimport find from '../utils/find'\nimport { matches } from '../utils/matches'\n\n/**\n* Adds the needed event listeners\n*/\nexport default function bindEventListeners() {\n const touchHandler = () => {\n Browser.touch = true\n\n if (Browser.iOS()) {\n document.body.classList.add('tippy-touch')\n }\n\n if (Browser.dynamicInputDetection && window.performance) {\n document.addEventListener('mousemove', mousemoveHandler)\n }\n }\n\n const mousemoveHandler = (() => {\n let time\n\n return () => {\n const now = performance.now()\n\n // Chrome 60+ is 1 mousemove per rAF, use 20ms time difference\n if (now - time < 20) {\n Browser.touch = false\n document.removeEventListener('mousemove', mousemoveHandler)\n if (!Browser.iOS()) {\n document.body.classList.remove('tippy-touch')\n }\n }\n\n time = now\n }\n })()\n\n const clickHandler = event => {\n // Simulated events dispatched on the document\n if (!(event.target instanceof Element)) {\n return hideAllPoppers()\n }\n\n const el = closest(event.target, Selectors.TOOLTIPPED_EL)\n const popper = closest(event.target, Selectors.POPPER)\n\n if (popper) {\n const ref = find(Store, ref => ref.popper === popper)\n const { settings: { interactive } } = ref\n if (interactive) return\n }\n\n if (el) {\n const ref = find(Store, ref => ref.el === el)\n const {\n settings: {\n hideOnClick,\n multiple,\n trigger\n }\n } = ref\n\n // Hide all poppers except the one belonging to the element that was clicked IF\n // `multiple` is false AND they are a touch user, OR\n // `multiple` is false AND it's triggered by a click\n if ((!multiple && Browser.touch) || (!multiple && trigger.indexOf('click') !== -1)) {\n return hideAllPoppers(ref)\n }\n\n // If hideOnClick is not strictly true or triggered by a click don't hide poppers\n if (hideOnClick !== true || trigger.indexOf('click') !== -1) return\n }\n\n // Don't trigger a hide for tippy controllers, and don't needlessly run loop\n if (closest(event.target, Selectors.CONTROLLER) || !document.querySelector(Selectors.POPPER)) return\n\n hideAllPoppers()\n }\n\n const blurHandler = event => {\n const { activeElement: el } = document\n if (el && el.blur && matches.call(el, Selectors.TOOLTIPPED_EL)) {\n el.blur()\n }\n }\n\n // Hook events\n document.addEventListener('click', clickHandler)\n document.addEventListener('touchstart', touchHandler)\n window.addEventListener('blur', blurHandler)\n\n if (!Browser.SUPPORTS_TOUCH && (navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0)) {\n document.addEventListener('pointerdown', touchHandler)\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/core/bindEventListeners.js","import getCorePlacement from '../utils/getCorePlacement'\nimport getOffsetDistanceInPx from '../utils/getOffsetDistanceInPx'\n\n/**\n* Creates a popper element then returns it\n* @param {Number} id - the popper id\n* @param {String} title - the tooltip's `title` attribute\n* @param {Object} settings - individual settings\n* @return {Element} - the popper element\n*/\nexport default function createPopperElement(id, title, settings) {\n const {\n position,\n distance,\n arrow,\n animateFill,\n inertia,\n animation,\n arrowSize,\n size,\n theme,\n html,\n zIndex,\n interactive\n } = settings\n\n const popper = document.createElement('div')\n popper.setAttribute('class', 'tippy-popper')\n popper.setAttribute('role', 'tooltip')\n popper.setAttribute('aria-hidden', 'true')\n popper.setAttribute('id', `tippy-tooltip-${id}`)\n popper.style.zIndex = zIndex\n\n const tooltip = document.createElement('div')\n tooltip.setAttribute('class', `tippy-tooltip tippy-tooltip--${size} leave`)\n tooltip.setAttribute('data-animation', animation)\n\n theme.split(' ').forEach(t => {\n tooltip.classList.add(t +'-theme')\n })\n\n if (arrow) {\n // Add an arrow\n const arrow = document.createElement('div')\n arrow.setAttribute('class', `arrow-${arrowSize}`)\n arrow.setAttribute('x-arrow', '')\n tooltip.appendChild(arrow)\n }\n\n if (animateFill) {\n // Create animateFill circle element for animation\n tooltip.setAttribute('data-animatefill', '')\n const circle = document.createElement('div')\n circle.setAttribute('class', 'leave')\n circle.setAttribute('x-circle', '')\n tooltip.appendChild(circle)\n }\n\n if (inertia) {\n // Change transition timing function cubic bezier\n tooltip.setAttribute('data-inertia', '')\n }\n\n if (interactive) {\n tooltip.setAttribute('data-interactive', '')\n }\n\n // Tooltip content (text or HTML)\n const content = document.createElement('div')\n content.setAttribute('class', 'tippy-tooltip-content')\n\n if (html) {\n let templateId\n\n if (html instanceof Element) {\n content.appendChild(html)\n templateId = '#' + html.id || 'tippy-html-template'\n } else {\n content.innerHTML = document.getElementById(html.replace('#', '')).innerHTML\n templateId = html\n }\n\n popper.classList.add('html-template')\n interactive && popper.setAttribute('tabindex', '-1')\n tooltip.setAttribute('data-template-id', templateId)\n\n } else {\n content.innerHTML = title\n }\n\n // Init distance. Further updates are made in the popper instance's `onUpdate()` method\n tooltip.style[getCorePlacement(position)] = getOffsetDistanceInPx(distance)\n\n tooltip.appendChild(content)\n popper.appendChild(tooltip)\n\n return popper\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/core/createPopperElement.js","import Popper from 'popper.js'\n\nimport defer from '../utils/defer'\nimport prefix from '../utils/prefix'\nimport getCorePlacement from '../utils/getCorePlacement'\nimport getInnerElements from '../utils/getInnerElements'\nimport getOffsetDistanceInPx from '../utils/getOffsetDistanceInPx'\n\n/**\n* Creates a new popper instance\n* @param {Object} data\n* @return {Object} - the popper instance\n*/\nexport default function createPopperInstance(data) {\n const {\n el,\n popper,\n settings: {\n position,\n popperOptions,\n offset,\n distance,\n flipDuration\n }\n } = data\n\n const { tooltip } = getInnerElements(popper)\n\n const config = {\n placement: position,\n ...(popperOptions || {}),\n modifiers: {\n ...(popperOptions ? popperOptions.modifiers : {}),\n flip: {\n padding: distance + 5 /* 5px from viewport boundary */,\n ...(popperOptions && popperOptions.modifiers ? popperOptions.modifiers.flip : {})\n },\n offset: {\n offset,\n ...(popperOptions && popperOptions.modifiers ? popperOptions.modifiers.offset : {})\n }\n },\n onUpdate() {\n const styles = tooltip.style\n styles.top = ''\n styles.bottom = ''\n styles.left = ''\n styles.right = ''\n styles[\n getCorePlacement(popper.getAttribute('x-placement'))\n ] = getOffsetDistanceInPx(distance)\n }\n }\n\n // Update the popper's position whenever its content changes\n // Not supported in IE10 unless polyfilled\n if (window.MutationObserver) {\n const styles = popper.style\n\n const observer = new MutationObserver(() => {\n styles[prefix('transitionDuration')] = '0ms'\n data.popperInstance.update()\n defer(() => {\n styles[prefix('transitionDuration')] = flipDuration + 'ms'\n })\n })\n\n observer.observe(popper, {\n childList: true,\n subtree: true,\n characterData: true\n })\n\n data._mutationObserver = observer\n }\n\n return new Popper(el, popper, config)\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/core/createPopperInstance.js","import getIndividualSettings from './getIndividualSettings'\nimport createPopperElement from './createPopperElement'\nimport createTrigger from './createTrigger'\nimport getEventListenerHandlers from './getEventListenerHandlers'\nimport evaluateSettings from './evaluateSettings'\n\nimport removeTitle from '../utils/removeTitle'\n\nimport { Store } from './globals'\n\nlet idCounter = 1\n\n/**\n* Creates tooltips for all el elements that match the instance's selector\n* @param {Element[]} els\n* @return {Object[]} Array of ref data objects\n*/\nexport default function createTooltips(els) {\n return els.reduce((a, el) => {\n const id = idCounter\n\n const settings = evaluateSettings(\n this.settings.performance\n ? this.settings\n : getIndividualSettings(el, this.settings)\n )\n\n const { html, trigger, touchHold } = settings\n\n const title = el.getAttribute('title')\n if (!title && !html) return a\n\n el.setAttribute('data-tooltipped', '')\n el.setAttribute('aria-describedby', `tippy-tooltip-${id}`)\n removeTitle(el)\n\n const popper = createPopperElement(id, title, settings)\n const handlers = getEventListenerHandlers.call(this, el, popper, settings)\n\n let listeners = []\n\n trigger.trim().split(' ').forEach(event =>\n listeners = listeners.concat(createTrigger(event, el, handlers, touchHold))\n )\n\n a.push({\n id,\n el,\n popper,\n settings,\n listeners,\n tippyInstance: this\n })\n\n idCounter++\n\n return a\n }, [])\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/core/createTooltips.js","import { Browser } from './globals'\n\n/**\n* Creates a trigger\n* @param {Object} event - the custom event specified in the `trigger` setting\n* @param {Element} el - tooltipped element\n* @param {Object} handlers - the handlers for each listener\n* @param {Boolean} touchHold\n* @return {Array} - array of listener objects\n*/\nexport default function createTrigger(event, el, handlers, touchHold) {\n const listeners = []\n\n if (event === 'manual') return listeners\n\n // Enter\n el.addEventListener(event, handlers.handleTrigger)\n listeners.push({\n event,\n handler: handlers.handleTrigger\n })\n\n // Leave\n if (event === 'mouseenter') {\n if (Browser.SUPPORTS_TOUCH && touchHold) {\n el.addEventListener('touchstart', handlers.handleTrigger)\n listeners.push({\n event: 'touchstart',\n handler: handlers.handleTrigger\n })\n el.addEventListener('touchend', handlers.handleMouseleave)\n listeners.push({\n event: 'touchend',\n handler: handlers.handleMouseleave\n })\n }\n\n el.addEventListener('mouseleave', handlers.handleMouseleave)\n listeners.push({\n event: 'mouseleave',\n handler: handlers.handleMouseleave\n })\n }\n\n if (event === 'focus') {\n el.addEventListener('focusout', handlers.handleFocusOut)\n listeners.push({\n event: 'focusout',\n handler: handlers.handleFocusOut\n })\n }\n\n return listeners\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/core/createTrigger.js","/**\n* Evaluates/modifies the settings object for appropriate behavior\n* @param {Object} settings\n* @return {Object} modified/evaluated settings\n*/\nexport default function evaluateSettings(settings) {\n // animateFill is disabled if an arrow is true\n if (settings.arrow) {\n settings.animateFill = false\n }\n\n // reassign appendTo into the result of evaluating appendTo\n // if it's set as a function instead of Element\n if (settings.appendTo && typeof settings.appendTo === 'function') {\n settings.appendTo = settings.appendTo()\n }\n\n return settings\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/core/evaluateSettings.js","/**\n* Returns an array of elements based on the selector input\n* @param {String|Element|Element[]} selector\n* @return {Element[]}\n*/\nexport default function getArrayOfElements(selector) {\n if (selector instanceof Element) {\n return [selector]\n }\n\n if (Array.isArray(selector)) {\n return selector\n }\n\n return [].slice.call(document.querySelectorAll(selector))\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/core/getArrayOfElements.js","import { Browser, Selectors } from './globals'\n\nimport isVisible from '../utils/isVisible'\nimport closest from '../utils/closest'\nimport cursorIsOutsideInteractiveBorder from '../utils/cursorIsOutsideInteractiveBorder'\n\n/**\n* Returns relevant listener callbacks for each ref\n* @param {Element} el\n* @param {Element} popper\n* @param {Object} settings\n* @return {Object} - relevant listener handlers\n*/\nexport default function getEventListenerHandlers(el, popper, settings) {\n const {\n position,\n delay,\n duration,\n interactive,\n interactiveBorder,\n distance,\n hideOnClick,\n trigger,\n touchHold,\n touchWait\n } = settings\n\n let showDelay, hideDelay\n\n const clearTimeouts = () => {\n clearTimeout(showDelay)\n clearTimeout(hideDelay)\n }\n\n const _show = () => {\n clearTimeouts()\n\n // Not hidden. For clicking when it also has a `focus` event listener\n if (isVisible(popper)) return\n\n const _delay = Array.isArray(delay) ? delay[0] : delay\n\n if (delay) {\n showDelay = setTimeout(() => this.show(popper), _delay)\n } else {\n this.show(popper)\n }\n }\n\n const show = event =>\n this.callbacks.wait ? this.callbacks.wait.call(popper, _show, event) : _show()\n\n const hide = () => {\n clearTimeouts()\n\n const _delay = Array.isArray(delay) ? delay[1] : delay\n\n if (delay) {\n hideDelay = setTimeout(() => this.hide(popper), _delay)\n } else {\n this.hide(popper)\n }\n }\n\n const handleTrigger = event => {\n const mouseenterTouch = event.type === 'mouseenter' && Browser.SUPPORTS_TOUCH && Browser.touch\n\n if (mouseenterTouch && touchHold) return\n\n // Toggle show/hide when clicking click-triggered tooltips\n const isClick = event.type === 'click'\n const isNotPersistent = hideOnClick !== 'persistent'\n\n isClick && isVisible(popper) && isNotPersistent ? hide() : show(event)\n\n if (mouseenterTouch && Browser.iOS() && el.click) {\n el.click()\n }\n }\n\n const handleMouseleave = event => {\n\n // Don't fire 'mouseleave', use the 'touchend'\n if (event.type === 'mouseleave' && Browser.SUPPORTS_TOUCH &&\n Browser.touch && touchHold) {\n return\n }\n\n if (interactive) {\n // Temporarily handle mousemove to check if the mouse left somewhere\n // other than its popper\n const handleMousemove = event => {\n\n const triggerHide = () => {\n document.body.removeEventListener('mouseleave', hide)\n document.removeEventListener('mousemove', handleMousemove)\n hide()\n }\n\n const closestTooltippedEl = closest(event.target, Selectors.TOOLTIPPED_EL)\n\n const isOverPopper = closest(event.target, Selectors.POPPER) === popper\n const isOverEl = closestTooltippedEl === el\n const isClickTriggered = trigger.indexOf('click') !== -1\n const isOverOtherTooltippedEl = closestTooltippedEl && closestTooltippedEl !== el\n\n if (isOverOtherTooltippedEl) {\n return triggerHide()\n }\n\n if (isOverPopper || isOverEl || isClickTriggered) return\n\n if (cursorIsOutsideInteractiveBorder(event, popper, settings)) {\n triggerHide()\n }\n }\n\n document.body.addEventListener('mouseleave', hide)\n document.addEventListener('mousemove', handleMousemove)\n\n return\n }\n\n // If it's not interactive, just hide it\n hide()\n }\n\n const handleFocusOut = event => {\n // Ignore focusout on touch devices, if there is no `relatedTarget`, hide\n // If the related target is a popper, ignore\n if (!event.relatedTarget || Browser.touch) return\n if (closest(event.relatedTarget, Selectors.POPPER)) return\n\n hide()\n }\n\n return {\n handleTrigger,\n handleMouseleave,\n handleFocusOut\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/core/getEventListenerHandlers.js","import { DefaultsKeys } from './globals'\n\n/**\n* Returns an object of settings to override global settings\n* @param {Element} el - the tooltipped element\n* @param {Object} instanceSettings\n* @return {Object} - individual settings\n*/\nexport default function getIndividualSettings(el, instanceSettings) {\n const settings = DefaultsKeys.reduce((acc, key) => {\n let val = el.getAttribute(`data-${ key.toLowerCase() }`) || instanceSettings[key]\n\n // Convert strings to booleans\n if (val === 'false') val = false\n if (val === 'true') val = true\n\n // Convert number strings to true numbers\n if (isFinite(val) && !isNaN(parseFloat(val))) {\n val = parseFloat(val)\n }\n\n // Convert array strings to actual arrays\n if (typeof val === 'string' && val.trim().charAt(0) === '[') {\n val = JSON.parse(val)\n }\n\n acc[key] = val\n\n return acc\n }, {})\n\n return Object.assign({}, instanceSettings, settings)\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/core/getIndividualSettings.js","import { Store } from './globals'\n\n/**\n* Hides all poppers\n* @param {Object} exclude - refData to exclude if needed\n*/\nexport default function hideAllPoppers(exclude) {\n Store.forEach(refData => {\n const {\n popper,\n tippyInstance,\n settings: {\n appendTo,\n hideOnClick,\n trigger\n }\n } = refData\n\n // Don't hide already hidden ones\n if (!appendTo.contains(popper)) return\n\n // hideOnClick can have the truthy value of 'persistent', so strict check is needed\n const isHideOnClick = hideOnClick === true || trigger.indexOf('focus') !== -1\n const isNotCurrentRef = !exclude || popper !== exclude.popper\n\n if (isHideOnClick && isNotCurrentRef) {\n refData.settings.onRequestClose();\n tippyInstance.hide(popper)\n }\n })\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/core/hideAllPoppers.js","import bindEventListeners from './bindEventListeners'\n\n/**\n* To run a single time, once DOM is presumed to be ready\n* @return {Boolean} whether the function has run or not\n*/\nexport default function init() {\n if (init.done) return false\n init.done = true\n\n bindEventListeners()\n\n return true\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/core/init.js","import defer from '../utils/defer'\nimport prefix from '../utils/prefix'\nimport isVisible from '../utils/isVisible'\n\n/**\n* Updates a popper's position on each animation frame to make it stick to a moving element\n* @param {Object} refData\n*/\nexport default function makeSticky(refData) {\n const {\n popper,\n popperInstance,\n settings: {\n stickyDuration\n }\n } = refData\n\n const applyTransitionDuration = () =>\n popper.style[prefix('transitionDuration')] = `${stickyDuration}ms`\n\n const removeTransitionDuration = () =>\n popper.style[prefix('transitionDuration')] = ''\n\n const updatePosition = () => {\n popperInstance && popperInstance.scheduleUpdate()\n\n applyTransitionDuration()\n\n isVisible(popper)\n ? window.requestAnimationFrame(updatePosition)\n : removeTransitionDuration()\n }\n\n // Wait until Popper's position has been updated initially\n defer(updatePosition)\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/core/makeSticky.js","import { Selectors, Browser } from './globals'\n\nimport followCursorHandler from './followCursorHandler'\nimport createPopperInstance from './createPopperInstance'\n\nimport prefix from '../utils/prefix'\n\n/**\n* Appends the popper and creates a popper instance if one does not exist\n* Also updates its position if need be and enables event listeners\n* @param {Object} data - the element/popper reference data\n*/\nexport default function mountPopper(data) {\n const {\n el,\n popper,\n settings: {\n appendTo,\n followCursor\n }\n } = data\n\n // Already on the DOM\n if (appendTo.contains(popper)) return\n\n appendTo.appendChild(popper)\n\n if (!data.popperInstance) {\n data.popperInstance = createPopperInstance(data)\n } else {\n data.popperInstance.update()\n if (!followCursor || Browser.touch) {\n data.popperInstance.enableEventListeners()\n }\n }\n\n // Since touch is determined dynamically, followCursor is set on mount\n if (followCursor && !Browser.touch) {\n el.addEventListener('mousemove', followCursorHandler)\n data.popperInstance.disableEventListeners()\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/core/mountPopper.js","import { Selectors } from './globals'\n\nimport getInnerElements from '../utils/getInnerElements'\n\n/**\n* Prepares the callback functions for `show` and `hide` methods\n* @param {Object} data\n* @param {Number} duration\n* @param {Function} callback - callback function to fire once transitions complete\n*/\nexport default function onTransitionEnd(data, duration, callback) {\n // Make callback synchronous if duration is 0\n if (!duration) {\n return callback()\n }\n\n const { tooltip } = getInnerElements(data.popper)\n\n let transitionendFired = false\n\n const listenerCallback = e => {\n if (e.target === tooltip && !transitionendFired) {\n transitionendFired = true\n callback()\n }\n }\n\n // Fire callback upon transition completion\n tooltip.addEventListener('webkitTransitionEnd', listenerCallback)\n tooltip.addEventListener('transitionend', listenerCallback)\n\n // Fallback: transitionend listener sometimes may not fire\n clearTimeout(data._transitionendTimeout)\n data._transitionendTimeout = setTimeout(() => {\n if (!transitionendFired) {\n callback()\n }\n }, duration)\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/core/onTransitionEnd.js","import {\n Browser,\n Store,\n Selectors,\n Defaults\n} from './core/globals'\nimport ReactDOM from 'react-dom'\n\nimport init from './core/init'\n\n/* Utility functions */\nimport defer from './utils/defer'\nimport prefix from './utils/prefix'\nimport find from './utils/find'\nimport findIndex from './utils/findIndex'\nimport removeTitle from './utils/removeTitle'\nimport elementIsInViewport from './utils/elementIsInViewport'\nimport triggerReflow from './utils/triggerReflow'\nimport modifyClassList from './utils/modifyClassList'\nimport getInnerElements from './utils/getInnerElements'\nimport applyTransitionDuration from './utils/applyTransitionDuration'\nimport isVisible from './utils/isVisible'\nimport noop from './utils/noop'\n\n/* Core library functions */\nimport followCursorHandler from './core/followCursorHandler'\nimport getArrayOfElements from './core/getArrayOfElements'\nimport onTransitionEnd from './core/onTransitionEnd'\nimport mountPopper from './core/mountPopper'\nimport makeSticky from './core/makeSticky'\nimport createTooltips from './core/createTooltips'\n\n/**\n* @param {String|Element|Element[]} selector\n* @param {Object} settings (optional) - the object of settings to be applied to the instance\n*/\nclass Tippy {\n constructor(selector, settings = {}) {\n // Use default browser tooltip on unsupported browsers\n if (!Browser.SUPPORTED) return\n\n init()\n\n this.state = {\n destroyed: false\n }\n\n this.selector = selector\n\n this.settings = { ...Defaults, ...settings }\n\n if (settings.show || settings.shown || settings.hide || settings.hidden) {\n console.warn(\n 'Callbacks without the `on` prefix are deprecated (with the exception of `wait`).' +\n ' Use onShow, onShown, onHide, and onHidden instead.'\n )\n }\n\n this.callbacks = {\n wait: settings.wait,\n show: settings.onShow || settings.show || noop,\n shown: settings.onShown || settings.shown || noop,\n hide: settings.onHide || settings.hide || noop,\n hidden: settings.onHidden || settings.hidden || noop\n }\n\n this.store = createTooltips.call(this, getArrayOfElements(selector))\n Store.push.apply(Store, this.store)\n }\n\n /**\n * Returns the reference element's popper element\n * @param {Element} el\n * @return {Element}\n */\n getPopperElement(el) {\n try {\n return find(this.store, data => data.el === el).popper\n } catch (e) {\n console.error('[getPopperElement]: Element passed as the argument does not exist in the instance')\n }\n }\n\n /**\n * Returns a popper's reference element\n * @param {Element} popper\n * @return {Element}\n */\n getReferenceElement(popper) {\n try {\n return find(this.store, data => data.popper === popper).el\n } catch (e) {\n console.error('[getReferenceElement]: Popper passed as the argument does not exist in the instance')\n }\n }\n\n /**\n * Returns the reference data object from either the reference element or popper element\n * @param {Element} x (reference element or popper)\n * @return {Object}\n */\n getReferenceData(x) {\n return find(this.store, data => data.el === x || data.popper === x)\n }\n\n /**\n * Update settings\n * @param {DOMElement} - popper\n * @param {string} - name\n * @param {string} - value\n */\n\n updateSettings(popper, name, value) {\n const data = find(this.store, data => data.popper === popper)\n const newSettings = {\n ...data.settings,\n [name]: value,\n }\n data.settings = newSettings;\n };\n\n /**\n * Update for React\n * @param {DOMElement} - popper\n * @param {ReactElement} - content\n */\n updateForReact(popper, updatedContent) {\n const tooltipContent = popper.querySelector(Selectors.CONTENT)\n const data = find(this.store, data => data.popper === popper)\n\n const {\n useContext,\n reactInstance,\n } = data.settings;\n if (useContext) {\n ReactDOM.unstable_renderSubtreeIntoContainer(\n data.settings.reactInstance,\n updatedContent,\n tooltipContent,\n );\n } else {\n ReactDOM.render(\n updatedContent,\n tooltipContent,\n );\n }\n\n }\n /**\n * Shows a popper\n * @param {Element} popper\n * @param {Number} customDuration (optional)\n */\n show(popper, customDuration) {\n if (this.state.destroyed) return\n\n const data = find(this.store, data => data.popper === popper)\n const { tooltip, circle, content } = getInnerElements(popper)\n\n if (!document.body.contains(data.el)) {\n this.destroy(popper)\n return\n }\n\n this.callbacks.show.call(popper)\n\n // Custom react\n if (data && data.settings && data.settings.open === false) {\n return;\n }\n\n if (data.settings.reactDOM) {\n this.updateForReact(popper, data.settings.reactDOM)\n }\n // end: Custom react\n\n const {\n el,\n settings: {\n appendTo,\n sticky,\n interactive,\n followCursor,\n flipDuration,\n duration,\n dynamicTitle\n }\n } = data\n\n if (dynamicTitle) {\n const title = el.getAttribute('title')\n if (title) {\n content.innerHTML = title\n removeTitle(el)\n }\n }\n\n const _duration = customDuration !== undefined\n ? customDuration\n : Array.isArray(duration) ? duration[0] : duration\n\n // Prevent a transition when popper changes position\n applyTransitionDuration([popper, tooltip, circle], 0)\n\n mountPopper(data)\n\n popper.style.visibility = 'visible'\n popper.setAttribute('aria-hidden', 'false')\n\n // Wait for popper's position to update\n defer(() => {\n // Sometimes the arrow will not be in the correct position, force another update\n if (!followCursor || Browser.touch) {\n data.popperInstance.update()\n applyTransitionDuration([popper], flipDuration)\n }\n\n // Re-apply transition durations\n applyTransitionDuration([tooltip, circle], _duration)\n\n // Make content fade out a bit faster than the tooltip if `animateFill`\n if (circle) content.style.opacity = 1\n\n // Interactive tooltips receive a class of 'active'\n interactive && el.classList.add('active')\n\n // Update popper's position on every animation frame\n sticky && makeSticky(data)\n\n // Repaint/reflow is required for CSS transition when appending\n triggerReflow(tooltip, circle)\n\n modifyClassList([tooltip, circle], list => {\n list.contains('tippy-notransition') && list.remove('tippy-notransition')\n list.remove('leave')\n list.add('enter')\n })\n\n // Wait for transitions to complete\n onTransitionEnd(data, _duration, () => {\n if (!isVisible(popper) || data._onShownFired) return\n\n // Focus interactive tooltips only\n interactive && popper.focus()\n // Remove transitions from tooltip\n tooltip.classList.add('tippy-notransition')\n // Prevents shown() from firing more than once from early transition cancellations\n data._onShownFired = true\n\n this.callbacks.shown.call(popper)\n })\n })\n }\n\n /**\n * Hides a popper\n * @param {Element} popper\n * @param {Number} customDuration (optional)\n */\n hide(popper, customDuration) {\n if (this.state.destroyed) return\n\n this.callbacks.hide.call(popper)\n\n const data = find(this.store, data => data.popper === popper)\n const { tooltip, circle, content } = getInnerElements(popper)\n\n // custom react\n // Prevent hide if open\n if (data.settings.disabled === false && data.settings.open) {\n return;\n }\n\n const isUnmount = data && data.settings && data.settings.unmountHTMLWhenHide && data.settings.reactDOM;\n // end: custom react\n\n const {\n el,\n settings: {\n appendTo,\n sticky,\n interactive,\n followCursor,\n html,\n trigger,\n duration\n }\n } = data\n\n const _duration = customDuration !== undefined\n ? customDuration\n : Array.isArray(duration) ? duration[1] : duration\n\n data._onShownFired = false\n interactive && el.classList.remove('active')\n\n popper.style.visibility = 'hidden'\n popper.setAttribute('aria-hidden', 'true')\n\n applyTransitionDuration([tooltip, circle, circle ? content : null], _duration)\n\n if (circle) content.style.opacity = 0\n\n modifyClassList([tooltip, circle], list => {\n list.contains('tippy-tooltip') && list.remove('tippy-notransition')\n list.remove('enter')\n list.add('leave')\n })\n\n // Re-focus click-triggered html elements\n // and the tooltipped element IS in the viewport (otherwise it causes unsightly scrolling\n // if the tooltip is closed and the element isn't in the viewport anymore)\n if (html && trigger.indexOf('click') !== -1 && elementIsInViewport(el)) {\n el.focus()\n }\n\n // Wait for transitions to complete\n onTransitionEnd(data, _duration, () => {\n // `isVisible` is not completely reliable to determine if we shouldn't\n // run the hidden callback, we need to check the computed opacity style.\n // This prevents glitchy behavior of the transition when quickly showing\n // and hiding a tooltip.\n if (\n isVisible(popper) ||\n !appendTo.contains(popper) ||\n getComputedStyle(tooltip).opacity === '1'\n ) return\n\n el.removeEventListener('mousemove', followCursorHandler)\n data.popperInstance.disableEventListeners()\n appendTo.removeChild(popper)\n\n this.callbacks.hidden.call(popper)\n\n // custom react\n if (isUnmount) {\n ReactDOM.unmountComponentAtNode(content);\n }\n })\n }\n\n /**\n * Updates a popper with new content\n * @param {Element} popper\n */\n update(popper) {\n if (this.state.destroyed) return\n\n const data = find(this.store, data => data.popper === popper)\n const { content } = getInnerElements(popper)\n const { el, settings: { html } } = data\n\n if (html instanceof Element) {\n console.warn('Aborted: update() should not be used if `html` is a DOM element')\n return\n }\n\n content.innerHTML = html\n ? document.getElementById(html.replace('#', '')).innerHTML\n : el.getAttribute('title') || el.getAttribute('data-original-title')\n\n if (!html) removeTitle(el)\n }\n\n /**\n * Destroys a popper\n * @param {Element} popper\n * @param {Boolean} _isLast - private param used by destroyAll to optimize\n */\n destroy(popper, _isLast) {\n if (this.state.destroyed) return\n\n const data = find(this.store, data => data.popper === popper)\n\n const {\n el,\n popperInstance,\n listeners,\n _mutationObserver\n } = data\n\n // Ensure the popper is hidden\n if (isVisible(popper)) {\n this.hide(popper, 0)\n }\n\n // Remove Tippy-only event listeners from tooltipped element\n listeners.forEach(listener => el.removeEventListener(listener.event, listener.handler))\n\n // Restore original title\n el.setAttribute('title', el.getAttribute('data-original-title'))\n\n el.removeAttribute('data-original-title')\n el.removeAttribute('data-tooltipped')\n el.removeAttribute('aria-describedby')\n\n popperInstance && popperInstance.destroy()\n _mutationObserver && _mutationObserver.disconnect()\n\n // Remove from store\n Store.splice(findIndex(Store, data => data.popper === popper), 1)\n\n // Ensure filter is called only once\n if (_isLast === undefined || _isLast) {\n this.store = Store.filter(data => data.tippyInstance === this)\n }\n }\n\n /**\n * Destroys all tooltips created by the instance\n */\n destroyAll() {\n if (this.state.destroyed) return\n\n const storeLength = this.store.length\n\n this.store.forEach(({popper}, index) => {\n this.destroy(popper, index === storeLength - 1)\n })\n\n this.store = null\n this.state.destroyed = true\n }\n}\n\nfunction tippy(selector, settings) {\n return new Tippy(selector, settings)\n}\n\ntippy.Browser = Browser\ntippy.Defaults = Defaults\ntippy.disableDynamicInputDetection = () => Browser.dynamicInputDetection = false\ntippy.enableDynamicInputDetection = () => Browser.dynamicInputDetection = true\n\nexport default tippy\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/tippy.js","import { Selectors } from '../core/globals'\nimport prefix from './prefix'\nimport { matches } from './matches'\n\n/**\n* Applies the transition duration to each element\n* @param {Element[]} els - Array of elements\n* @param {Number} duration\n*/\nexport default function applyTransitionDuration(els, duration) {\n els.forEach(el => {\n if (!el) return\n\n const isContent = matches.call(el, Selectors.CONTENT)\n\n const _duration = isContent\n ? Math.round(duration/1.3)\n : duration\n\n el.style[prefix('transitionDuration')] = _duration + 'ms'\n })\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/utils/applyTransitionDuration.js","import getCorePlacement from '../utils/getCorePlacement'\n\n/**\n* Determines if the mouse's cursor is outside the interactive border\n* @param {MouseEvent} event\n* @param {Element} popper\n* @param {Object} settings\n* @return {Boolean}\n*/\nexport default function cursorIsOutsideInteractiveBorder(event, popper, settings) {\n if (!popper.getAttribute('x-placement')) return true\n\n const { clientX: x, clientY: y } = event\n const { interactiveBorder, distance } = settings\n\n const rect = popper.getBoundingClientRect()\n const corePosition = getCorePlacement(popper.getAttribute('x-placement'))\n const borderWithDistance = interactiveBorder + distance\n\n const exceeds = {\n top: rect.top - y > interactiveBorder,\n bottom: y - rect.bottom > interactiveBorder,\n left: rect.left - x > interactiveBorder,\n right: x - rect.right > interactiveBorder\n }\n\n switch (corePosition) {\n case 'top':\n exceeds.top = rect.top - y > borderWithDistance\n break\n case 'bottom':\n exceeds.bottom = y - rect.bottom > borderWithDistance\n break\n case 'left':\n exceeds.left = rect.left - x > borderWithDistance\n break\n case 'right':\n exceeds.right = x - rect.right > borderWithDistance\n break\n }\n\n return exceeds.top || exceeds.bottom || exceeds.left || exceeds.right\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/utils/cursorIsOutsideInteractiveBorder.js","/**\n* Determines if an element is visible in the viewport\n* @param {Element} el\n* @return {Boolean}\n*/\nexport default function elementIsInViewport(el) {\n const rect = el.getBoundingClientRect()\n\n return (\n rect.top >= 0 &&\n rect.left >= 0 &&\n rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&\n rect.right <= (window.innerWidth || document.documentElement.clientWidth)\n )\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/utils/elementIsInViewport.js","import find from './find'\n\n/**\n* Ponyfill for Array.prototype.findIndex\n* @param {Array} arr\n* @param {Function} checkFn\n* @return index of the item in the array\n*/\nexport default function findIndex(arr, checkFn) {\n if (Array.prototype.findIndex) {\n return arr.findIndex(checkFn)\n }\n\n // fallback\n return arr.indexOf(find(arr, checkFn))\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/utils/findIndex.js","/**\n* Modifies elements' class lists\n* @param {Element[]} els - Array of elements\n* @param {Function} callback\n*/\nexport default function modifyClassList(els, callback) {\n els.forEach(el => {\n if (!el) return\n callback(el.classList)\n })\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/utils/modifyClassList.js","export default function noop() {}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/utils/noop.js","import prefix from '../utils/prefix'\n\n/**\n* Triggers a document repaint or reflow for CSS transition\n* @param {Element} tooltip\n* @param {Element} circle\n*/\nexport default function triggerReflow(tooltip, circle) {\n // Safari needs the specific 'transform' property to be accessed\n circle\n ? window.getComputedStyle(circle)[prefix('transform')]\n : window.getComputedStyle(tooltip).opacity\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tooltip/js/utils/triggerReflow.js","module.exports = __WEBPACK_EXTERNAL_MODULE_38__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"root\":\"Popper\",\"commonjs2\":\"popper.js\",\"commonjs\":\"popper.js\",\"amd\":\"popper.js\",\"umd\":\"popper.js\"}\n// module id = 38\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_39__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"root\":\"ReactDOM\",\"commonjs2\":\"react-dom\",\"commonjs\":\"react-dom\",\"amd\":\"react-dom\",\"umd\":\"react-dom\"}\n// module id = 39\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file diff --git a/src/Tooltip/js/core/createTrigger.js b/src/Tooltip/js/core/createTrigger.js index 9b78a60..e537a20 100644 --- a/src/Tooltip/js/core/createTrigger.js +++ b/src/Tooltip/js/core/createTrigger.js @@ -43,10 +43,10 @@ export default function createTrigger(event, el, handlers, touchHold) { } if (event === 'focus') { - el.addEventListener('blur', handlers.handleBlur) + el.addEventListener('focusout', handlers.handleFocusOut) listeners.push({ - event: 'blur', - handler: handlers.handleBlur + event: 'focusout', + handler: handlers.handleFocusOut }) } diff --git a/src/Tooltip/js/core/getEventListenerHandlers.js b/src/Tooltip/js/core/getEventListenerHandlers.js index 2d9af62..53abe29 100644 --- a/src/Tooltip/js/core/getEventListenerHandlers.js +++ b/src/Tooltip/js/core/getEventListenerHandlers.js @@ -125,8 +125,8 @@ export default function getEventListenerHandlers(el, popper, settings) { hide() } - const handleBlur = event => { - // Ignore blur on touch devices, if there is no `relatedTarget`, hide + const handleFocusOut = event => { + // Ignore focusout on touch devices, if there is no `relatedTarget`, hide // If the related target is a popper, ignore if (!event.relatedTarget || Browser.touch) return if (closest(event.relatedTarget, Selectors.POPPER)) return @@ -137,6 +137,6 @@ export default function getEventListenerHandlers(el, popper, settings) { return { handleTrigger, handleMouseleave, - handleBlur + handleFocusOut } } From b2c09a45cd502b3922217f0fedc9ff9eb88ae8c0 Mon Sep 17 00:00:00 2001 From: John Date: Thu, 7 Dec 2017 16:48:53 +0000 Subject: [PATCH 2/2] Reverted changes to readme. --- README.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/README.md b/README.md index 62fb7ad..33cd695 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,3 @@ -# This is a fork! - -Forked from: https://github.com/tvkhoa/react-tippy The only (intended) change is -a bugfix for IE11 & blur event.relatedTarget. - ## React Tippy A lightweight tooltip for React. Demo at [Demo page here...](https://tvkhoa.github.io/testlib)