From 79342cec63d7c5e8b429dd1917396177b1e8ab09 Mon Sep 17 00:00:00 2001
From: Robert Gary <robert.m.gary@hpe.com>
Date: Fri, 24 Aug 2018 13:58:43 -0700
Subject: [PATCH 1/2] feat(tooltip): Add ability to hover on tooltip. Provide
 optional delay of updating so if the mouse p

issue 411
---
 README.md                       |   1 +
 example/src/index.js            |  61 ++++++
 example/src/index.scss          |  12 ++
 src/index.js                    | 151 ++++++++++----
 src/index.scss                  |   3 +
 src/style.css                   |   2 +-
 src/style.js                    |   2 +-
 standalone/react-tooltip.js     | 344 ++++++++++++++++----------------
 standalone/react-tooltip.min.js |   4 +-
 9 files changed, 364 insertions(+), 216 deletions(-)

diff --git a/README.md b/README.md
index f12028b0b..d3bff2eae 100644
--- a/README.md
+++ b/README.md
@@ -67,6 +67,7 @@ className	|   data-class  |  String  |   | extra custom class, can use !importan
  html	|   data-html  |  Bool  |  true, false  |  `<p data-tip="<p>HTML tooltip</p>" data-html={true}></p>` or `<ReactTooltip html={true} />`
  delayHide	|   data-delay-hide  |  Number  |   | `<p data-tip="tooltip" data-delay-hide='1000'></p>` or `<ReactTooltip delayHide={1000} />`
  delayShow	|   data-delay-show  |  Number  |   | `<p data-tip="tooltip" data-delay-show='1000'></p>` or `<ReactTooltip delayShow={1000} />`
+ delayUpdate	|   data-delay-update |  Number  |   | `<p data-tip="tooltip" data-delay-update='1000'></p>` or `<ReactTooltip delayUpdate={1000} />` Sets a delay in calling getContent if the tooltip is already shown and you mouse over another target  
  insecure | null | Bool | true, false | Whether to inject the style header into the page dynamically (violates CSP style-src but is a convenient default)
  border  |   data-border  |  Bool  |  true, false | Add one pixel white border
  getContent | null | Func or Array | (dataTip) => {}, [(dataTip) => {}, Interval] | Generate the tip content dynamically
diff --git a/example/src/index.js b/example/src/index.js
index 7a6a32994..62879b158 100755
--- a/example/src/index.js
+++ b/example/src/index.js
@@ -323,6 +323,67 @@ class Test extends React.Component {
                </div>
              </pre>
           </div>
+            <div className="section">
+                <h4 className='title'>Demonstrate using mouse in tooltip. </h4>
+                <p>Notice that the tooltip delays going away so you can get your mouse in it. You must set delayUpdate and delayHide for the tooltip to stay long enough to get your mouse over it.</p>
+                <p className="sub-title"></p>
+                <div className="example-jsx">
+                    <div className="block" >
+                        <a data-for='soclose' data-tip='1'>1 (❂‿❂)</a>
+                    </div>
+                    <div className="block">
+                        <a data-for='soclose' data-tip='2'>2 (❂‿❂)</a>
+                    </div>
+                    <div className="block" >
+                        <a data-for='soclose' data-tip='3'>3(❂‿❂)</a>
+                    </div>
+                    <div className="block">
+                        <a data-for='soclose' data-tip='4'>4(❂‿❂)</a>
+                    </div>
+                    <div className="block" >
+                        <a data-for='soclose' data-tip='5'>5(❂‿❂)</a>
+                    </div>
+                    <div className="block">
+                        <a data-for='soclose' data-tip='6'>6(❂‿❂)</a>
+                    </div>
+                    <div className="block" >
+                        <a data-for='soclose' data-tip='7'>7(❂‿❂)</a>
+                    </div>
+                    <div className="block">
+                        <a data-for='soclose' data-tip='8'>8(❂‿❂)</a>
+                    </div>
+
+                    <ReactTooltip id='soclose'
+                                  getContent={(dataTip) => <div><h3>This little buddy is {dataTip}</h3><p>Put mouse here</p></div> }
+                                  effect='solid'
+                                  delayHide={500}
+                                  delayShow={500}
+                                  delayUpdate={500}
+                                  place={'right'}
+                                  border={true}
+                                  type={'light'}
+
+                    />
+                </div>
+                <br />
+                <pre className='example-pre'>
+              <div>
+                <p>{"<a data-for='soclose' data-tip='sooooo cute'>(❂‿❂)</a>"}<p/>{"<a data-for='soclose' data-tip='2'>(❂‿❂)</a>..."}<p/>{
+                "<a data-for='soclose' data-tip='really high'>(❂‿❂)</a>\n" +
+                "<ReactTooltip id='soclose'\n" +
+                " getContent={(dataTip) => \n"}{
+                "  <div><h3>This little buddy is {dataTip}</h3><p>Put mouse here</p></div> }\n" +
+                " effect='solid'\n" +
+                " delayHide={500}\n" +
+                " delayShow={500}\n" +
+                " delayUpdate={500}\n" +
+                " place={'right'}\n" +
+                " border={true}\n" +
+                " type={'light'}"}</p>
+              </div>
+            </pre>
+            </div>
+
         </section>
       </div>
     )
diff --git a/example/src/index.scss b/example/src/index.scss
index 7af637d32..557c66acf 100755
--- a/example/src/index.scss
+++ b/example/src/index.scss
@@ -157,6 +157,18 @@ html, body{
     height: 0;
     visibility: hidden;
   }
+  .block {
+    float: left;
+    $width: 55px;
+
+    a {
+      text-align: center;
+      width: $width;
+      height: $width;
+      border: 1px solid #999;
+      border-radius: 0px
+    }
+  }
   .side {
     width: 50%;
     float: left;
diff --git a/src/index.js b/src/index.js
index 597e4d432..be7d1843d 100644
--- a/src/index.js
+++ b/src/index.js
@@ -44,6 +44,7 @@ class ReactTooltip extends React.Component {
     id: PropTypes.string,
     html: PropTypes.bool,
     delayHide: PropTypes.number,
+    delayUpdate: PropTypes.number,
     delayShow: PropTypes.number,
     event: PropTypes.string,
     eventOff: PropTypes.string,
@@ -101,12 +102,14 @@ class ReactTooltip extends React.Component {
       'globalRebuild',
       'globalShow',
       'globalHide',
-      'onWindowResize'
+      'onWindowResize',
+      'mouseOnToolTip'
     ])
 
     this.mount = true
     this.delayShowLoop = null
     this.delayHideLoop = null
+    this.delayReshow = null
     this.intervalUpdateContent = null
   }
 
@@ -150,6 +153,22 @@ class ReactTooltip extends React.Component {
     this.unbindWindowEvents()
   }
 
+    /**
+     * Return if the mouse is on the tooltip.
+     * @returns {boolean} true - mouse is on the tooltip
+     */
+  mouseOnToolTip () {
+    const {show} = this.state
+
+    if (show && this.tooltipRef) {
+      /* old IE work around */
+      if (!this.tooltipRef.matches) {
+        this.tooltipRef.matches = this.tooltipRef.msMatchesSelector
+      }
+      return this.tooltipRef.matches(':hover')
+    }
+    return false
+  }
   /**
    * Pick out corresponded target elements
    */
@@ -280,57 +299,72 @@ class ReactTooltip extends React.Component {
     // To prevent previously created timers from triggering
     this.clearTimer()
 
-    this.setState({
-      originTooltip: originTooltip,
-      isMultiline: isMultiline,
-      desiredPlace: e.currentTarget.getAttribute('data-place') || this.props.place || 'top',
-      place: e.currentTarget.getAttribute('data-place') || this.props.place || 'top',
-      type: e.currentTarget.getAttribute('data-type') || this.props.type || 'dark',
-      effect: switchToSolid && 'solid' || this.getEffect(e.currentTarget),
-      offset: e.currentTarget.getAttribute('data-offset') || this.props.offset || {},
-      html: e.currentTarget.getAttribute('data-html')
-        ? e.currentTarget.getAttribute('data-html') === 'true'
-        : (this.props.html || false),
-      delayShow: e.currentTarget.getAttribute('data-delay-show') || this.props.delayShow || 0,
-      delayHide: e.currentTarget.getAttribute('data-delay-hide') || this.props.delayHide || 0,
-      border: e.currentTarget.getAttribute('data-border')
-        ? e.currentTarget.getAttribute('data-border') === 'true'
-        : (this.props.border || false),
-      extraClass: e.currentTarget.getAttribute('data-class') || this.props.class || this.props.className || '',
-      disable: e.currentTarget.getAttribute('data-tip-disable')
-        ? e.currentTarget.getAttribute('data-tip-disable') === 'true'
-        : (this.props.disable || false),
-      currentTarget: e.currentTarget
-    }, () => {
-      if (scrollHide) this.addScrollListener(this.state.currentTarget)
-      this.updateTooltip(e)
-
-      if (getContent && Array.isArray(getContent)) {
-        this.intervalUpdateContent = setInterval(() => {
-          if (this.mount) {
-            const {getContent} = this.props
-            const placeholder = getTipContent(originTooltip, '', getContent[0](), isMultiline)
-            const isEmptyTip = this.isEmptyTip(placeholder)
-            this.setState({
-              isEmptyTip
-            })
-            this.updatePosition()
-          }
-        }, getContent[1])
-      }
-    })
+    var target = e.currentTarget
+
+    var reshowDelay = this.state.show ? target.getAttribute('data-delay-update') || this.props.delayUpdate : 0
+
+    var self = this
+
+    var updateState = function updateState () {
+      self.setState({
+        originTooltip: originTooltip,
+        isMultiline: isMultiline,
+        desiredPlace: target.getAttribute('data-place') || self.props.place || 'top',
+        place: target.getAttribute('data-place') || self.props.place || 'top',
+        type: target.getAttribute('data-type') || self.props.type || 'dark',
+        effect: switchToSolid && 'solid' || self.getEffect(target),
+        offset: target.getAttribute('data-offset') || self.props.offset || {},
+        html: target.getAttribute('data-html') ? target.getAttribute('data-html') === 'true' : self.props.html || false,
+        delayShow: target.getAttribute('data-delay-show') || self.props.delayShow || 0,
+        delayHide: target.getAttribute('data-delay-hide') || self.props.delayHide || 0,
+        delayUpdate: target.getAttribute('data-delay-update') || self.props.delayUpdate || 0,
+        border: target.getAttribute('data-border') ? target.getAttribute('data-border') === 'true' : self.props.border || false,
+        extraClass: target.getAttribute('data-class') || self.props.class || self.props.className || '',
+        disable: target.getAttribute('data-tip-disable') ? target.getAttribute('data-tip-disable') === 'true' : self.props.disable || false,
+        currentTarget: target
+      }, () => {
+        if (scrollHide) self.addScrollListener(self.state.currentTarget)
+        self.updateTooltip(e)
+
+        if (getContent && Array.isArray(getContent)) {
+          this.intervalUpdateContent = setInterval(() => {
+            if (self.mount) {
+              const {getContent} = this.props
+              const placeholder = getTipContent(originTooltip, '', getContent[0](), isMultiline)
+              const isEmptyTip = this.isEmptyTip(placeholder)
+              self.setState({
+                isEmptyTip
+              })
+              self.updatePosition()
+            }
+          }, getContent[1])
+        }
+      })
+    }
+
+    // If there is no delay call immediately, don't allow events to get in first.
+    if (reshowDelay) {
+      this.delayReshow = setTimeout(updateState, reshowDelay)
+    } else {
+      updateState()
+    }
   }
 
   /**
    * When mouse hover, updatetooltip
    */
   updateTooltip (e) {
-    const {delayShow, show, disable} = this.state
+    const {delayShow, disable} = this.state
     const {afterShow} = this.props
     const placeholder = this.getTooltipContent()
-    const delayTime = show ? 0 : parseInt(delayShow, 10)
+    const delayTime = parseInt(delayShow, 10)
     const eventTarget = e.currentTarget || e.target
 
+    // Check if the mouse is actually over the tooltip, if so don't hide the tooltip
+    if (this.mouseOnToolTip()) {
+      return
+    }
+
     if (this.isEmptyTip(placeholder) || disable) return // if the tooltip is empty, disable the tooltip
     const updateState = () => {
       if (Array.isArray(placeholder) && placeholder.length > 0 || placeholder) {
@@ -354,6 +388,25 @@ class ReactTooltip extends React.Component {
     }
   }
 
+  /*
+  * If we're mousing over the tooltip remove it when we leave.
+   */
+  listenForTooltipExit () {
+    const {show} = this.state
+
+    if (show && this.tooltipRef) {
+      this.tooltipRef.addEventListener('mouseleave', this.hideTooltip)
+    }
+  }
+
+  removeListenerForTooltipExit () {
+    const {show} = this.state
+
+    if (show && this.tooltipRef) {
+      this.tooltipRef.removeEventListener('mouseleave', this.hideTooltip)
+    }
+  }
+
   /**
    * When mouse leave, hide tooltip
    */
@@ -369,8 +422,16 @@ class ReactTooltip extends React.Component {
       const isMyElement = targetArray.some(ele => ele === e.currentTarget)
       if (!isMyElement || !this.state.show) return
     }
+
     const resetState = () => {
       const isVisible = this.state.show
+      // Check if the mouse is actually over the tooltip, if so don't hide the tooltip
+      if (this.mouseOnToolTip()) {
+        this.listenForTooltipExit()
+        return
+      }
+      this.removeListenerForTooltipExit()
+
       this.setState({
         show: false
       }, () => {
@@ -437,6 +498,7 @@ class ReactTooltip extends React.Component {
   clearTimer () {
     clearTimeout(this.delayShowLoop)
     clearTimeout(this.delayHideLoop)
+    clearTimeout(this.delayReshow)
     clearInterval(this.intervalUpdateContent)
   }
 
@@ -457,7 +519,8 @@ class ReactTooltip extends React.Component {
       {'type-warning': this.state.type === 'warning'},
       {'type-error': this.state.type === 'error'},
       {'type-info': this.state.type === 'info'},
-      {'type-light': this.state.type === 'light'}
+      {'type-light': this.state.type === 'light'},
+      {'allow_hover': this.props.delayUpdate}
     )
 
     let Wrapper = this.props.wrapper
@@ -469,6 +532,7 @@ class ReactTooltip extends React.Component {
       return (
         <Wrapper className={`${tooltipClass} ${extraClass}`}
                  id={this.props.id}
+                 ref={ref => this.tooltipRef = ref}
                  {...ariaProps}
                  data-id='tooltip'
                  dangerouslySetInnerHTML={{__html: placeholder}}/>
@@ -478,6 +542,7 @@ class ReactTooltip extends React.Component {
         <Wrapper className={`${tooltipClass} ${extraClass}`}
                  id={this.props.id}
                  {...ariaProps}
+                 ref={ref => this.tooltipRef = ref}
                  data-id='tooltip'>{placeholder}</Wrapper>
       )
     }
diff --git a/src/index.scss b/src/index.scss
index d7d3d8453..5be5ab3b7 100644
--- a/src/index.scss
+++ b/src/index.scss
@@ -67,6 +67,9 @@
   top: -999em;
   visibility: hidden;
   z-index: 999;
+  &.allow_hover {
+    pointer-events:auto;
+  }
   &:before,
   &:after {
     content: "";
diff --git a/src/style.css b/src/style.css
index b56fff184..a4525e168 100644
--- a/src/style.css
+++ b/src/style.css
@@ -1 +1 @@
-.__react_component_tooltip{border-radius:3px;display:inline-block;font-size:13px;left:-999em;opacity:0;padding:8px 21px;position:fixed;pointer-events:none;transition:opacity 0.3s ease-out;top:-999em;visibility:hidden;z-index:999}.__react_component_tooltip:before,.__react_component_tooltip:after{content:"";width:0;height:0;position:absolute}.__react_component_tooltip.show{opacity:0.9;margin-top:0px;margin-left:0px;visibility:visible}.__react_component_tooltip.type-dark{color:#fff;background-color:#222}.__react_component_tooltip.type-dark.place-top:after{border-top-color:#222;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-dark.place-bottom:after{border-bottom-color:#222;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-dark.place-left:after{border-left-color:#222;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-dark.place-right:after{border-right-color:#222;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-dark.border{border:1px solid #fff}.__react_component_tooltip.type-dark.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-dark.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-dark.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-dark.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-success{color:#fff;background-color:#8DC572}.__react_component_tooltip.type-success.place-top:after{border-top-color:#8DC572;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-success.place-bottom:after{border-bottom-color:#8DC572;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-success.place-left:after{border-left-color:#8DC572;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-success.place-right:after{border-right-color:#8DC572;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-success.border{border:1px solid #fff}.__react_component_tooltip.type-success.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-success.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-success.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-success.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-warning{color:#fff;background-color:#F0AD4E}.__react_component_tooltip.type-warning.place-top:after{border-top-color:#F0AD4E;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-warning.place-bottom:after{border-bottom-color:#F0AD4E;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-warning.place-left:after{border-left-color:#F0AD4E;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-warning.place-right:after{border-right-color:#F0AD4E;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-warning.border{border:1px solid #fff}.__react_component_tooltip.type-warning.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-warning.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-warning.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-warning.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-error{color:#fff;background-color:#BE6464}.__react_component_tooltip.type-error.place-top:after{border-top-color:#BE6464;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-error.place-bottom:after{border-bottom-color:#BE6464;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-error.place-left:after{border-left-color:#BE6464;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-error.place-right:after{border-right-color:#BE6464;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-error.border{border:1px solid #fff}.__react_component_tooltip.type-error.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-error.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-error.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-error.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-info{color:#fff;background-color:#337AB7}.__react_component_tooltip.type-info.place-top:after{border-top-color:#337AB7;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-info.place-bottom:after{border-bottom-color:#337AB7;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-info.place-left:after{border-left-color:#337AB7;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-info.place-right:after{border-right-color:#337AB7;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-info.border{border:1px solid #fff}.__react_component_tooltip.type-info.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-info.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-info.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-info.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-light{color:#222;background-color:#fff}.__react_component_tooltip.type-light.place-top:after{border-top-color:#fff;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-light.place-bottom:after{border-bottom-color:#fff;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-light.place-left:after{border-left-color:#fff;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-light.place-right:after{border-right-color:#fff;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-light.border{border:1px solid #222}.__react_component_tooltip.type-light.border.place-top:before{border-top:8px solid #222}.__react_component_tooltip.type-light.border.place-bottom:before{border-bottom:8px solid #222}.__react_component_tooltip.type-light.border.place-left:before{border-left:8px solid #222}.__react_component_tooltip.type-light.border.place-right:before{border-right:8px solid #222}.__react_component_tooltip.place-top{margin-top:-10px}.__react_component_tooltip.place-top:before{border-left:10px solid transparent;border-right:10px solid transparent;bottom:-8px;left:50%;margin-left:-10px}.__react_component_tooltip.place-top:after{border-left:8px solid transparent;border-right:8px solid transparent;bottom:-6px;left:50%;margin-left:-8px}.__react_component_tooltip.place-bottom{margin-top:10px}.__react_component_tooltip.place-bottom:before{border-left:10px solid transparent;border-right:10px solid transparent;top:-8px;left:50%;margin-left:-10px}.__react_component_tooltip.place-bottom:after{border-left:8px solid transparent;border-right:8px solid transparent;top:-6px;left:50%;margin-left:-8px}.__react_component_tooltip.place-left{margin-left:-10px}.__react_component_tooltip.place-left:before{border-top:6px solid transparent;border-bottom:6px solid transparent;right:-8px;top:50%;margin-top:-5px}.__react_component_tooltip.place-left:after{border-top:5px solid transparent;border-bottom:5px solid transparent;right:-6px;top:50%;margin-top:-4px}.__react_component_tooltip.place-right{margin-left:10px}.__react_component_tooltip.place-right:before{border-top:6px solid transparent;border-bottom:6px solid transparent;left:-8px;top:50%;margin-top:-5px}.__react_component_tooltip.place-right:after{border-top:5px solid transparent;border-bottom:5px solid transparent;left:-6px;top:50%;margin-top:-4px}.__react_component_tooltip .multi-line{display:block;padding:2px 0px;text-align:center}
+.__react_component_tooltip{border-radius:3px;display:inline-block;font-size:13px;left:-999em;opacity:0;padding:8px 21px;position:fixed;pointer-events:none;transition:opacity 0.3s ease-out;top:-999em;visibility:hidden;z-index:999}.__react_component_tooltip.allow_hover{pointer-events:auto}.__react_component_tooltip:before,.__react_component_tooltip:after{content:"";width:0;height:0;position:absolute}.__react_component_tooltip.show{opacity:0.9;margin-top:0px;margin-left:0px;visibility:visible}.__react_component_tooltip.type-dark{color:#fff;background-color:#222}.__react_component_tooltip.type-dark.place-top:after{border-top-color:#222;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-dark.place-bottom:after{border-bottom-color:#222;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-dark.place-left:after{border-left-color:#222;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-dark.place-right:after{border-right-color:#222;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-dark.border{border:1px solid #fff}.__react_component_tooltip.type-dark.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-dark.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-dark.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-dark.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-success{color:#fff;background-color:#8DC572}.__react_component_tooltip.type-success.place-top:after{border-top-color:#8DC572;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-success.place-bottom:after{border-bottom-color:#8DC572;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-success.place-left:after{border-left-color:#8DC572;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-success.place-right:after{border-right-color:#8DC572;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-success.border{border:1px solid #fff}.__react_component_tooltip.type-success.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-success.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-success.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-success.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-warning{color:#fff;background-color:#F0AD4E}.__react_component_tooltip.type-warning.place-top:after{border-top-color:#F0AD4E;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-warning.place-bottom:after{border-bottom-color:#F0AD4E;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-warning.place-left:after{border-left-color:#F0AD4E;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-warning.place-right:after{border-right-color:#F0AD4E;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-warning.border{border:1px solid #fff}.__react_component_tooltip.type-warning.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-warning.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-warning.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-warning.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-error{color:#fff;background-color:#BE6464}.__react_component_tooltip.type-error.place-top:after{border-top-color:#BE6464;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-error.place-bottom:after{border-bottom-color:#BE6464;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-error.place-left:after{border-left-color:#BE6464;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-error.place-right:after{border-right-color:#BE6464;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-error.border{border:1px solid #fff}.__react_component_tooltip.type-error.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-error.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-error.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-error.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-info{color:#fff;background-color:#337AB7}.__react_component_tooltip.type-info.place-top:after{border-top-color:#337AB7;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-info.place-bottom:after{border-bottom-color:#337AB7;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-info.place-left:after{border-left-color:#337AB7;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-info.place-right:after{border-right-color:#337AB7;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-info.border{border:1px solid #fff}.__react_component_tooltip.type-info.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-info.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-info.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-info.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-light{color:#222;background-color:#fff}.__react_component_tooltip.type-light.place-top:after{border-top-color:#fff;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-light.place-bottom:after{border-bottom-color:#fff;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-light.place-left:after{border-left-color:#fff;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-light.place-right:after{border-right-color:#fff;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-light.border{border:1px solid #222}.__react_component_tooltip.type-light.border.place-top:before{border-top:8px solid #222}.__react_component_tooltip.type-light.border.place-bottom:before{border-bottom:8px solid #222}.__react_component_tooltip.type-light.border.place-left:before{border-left:8px solid #222}.__react_component_tooltip.type-light.border.place-right:before{border-right:8px solid #222}.__react_component_tooltip.place-top{margin-top:-10px}.__react_component_tooltip.place-top:before{border-left:10px solid transparent;border-right:10px solid transparent;bottom:-8px;left:50%;margin-left:-10px}.__react_component_tooltip.place-top:after{border-left:8px solid transparent;border-right:8px solid transparent;bottom:-6px;left:50%;margin-left:-8px}.__react_component_tooltip.place-bottom{margin-top:10px}.__react_component_tooltip.place-bottom:before{border-left:10px solid transparent;border-right:10px solid transparent;top:-8px;left:50%;margin-left:-10px}.__react_component_tooltip.place-bottom:after{border-left:8px solid transparent;border-right:8px solid transparent;top:-6px;left:50%;margin-left:-8px}.__react_component_tooltip.place-left{margin-left:-10px}.__react_component_tooltip.place-left:before{border-top:6px solid transparent;border-bottom:6px solid transparent;right:-8px;top:50%;margin-top:-5px}.__react_component_tooltip.place-left:after{border-top:5px solid transparent;border-bottom:5px solid transparent;right:-6px;top:50%;margin-top:-4px}.__react_component_tooltip.place-right{margin-left:10px}.__react_component_tooltip.place-right:before{border-top:6px solid transparent;border-bottom:6px solid transparent;left:-8px;top:50%;margin-top:-5px}.__react_component_tooltip.place-right:after{border-top:5px solid transparent;border-bottom:5px solid transparent;left:-6px;top:50%;margin-top:-4px}.__react_component_tooltip .multi-line{display:block;padding:2px 0px;text-align:center}
diff --git a/src/style.js b/src/style.js
index 9f8e31e38..add240605 100644
--- a/src/style.js
+++ b/src/style.js
@@ -1 +1 @@
-export default '.__react_component_tooltip{border-radius:3px;display:inline-block;font-size:13px;left:-999em;opacity:0;padding:8px 21px;position:fixed;pointer-events:none;transition:opacity 0.3s ease-out;top:-999em;visibility:hidden;z-index:999}.__react_component_tooltip:before,.__react_component_tooltip:after{content:"";width:0;height:0;position:absolute}.__react_component_tooltip.show{opacity:0.9;margin-top:0px;margin-left:0px;visibility:visible}.__react_component_tooltip.type-dark{color:#fff;background-color:#222}.__react_component_tooltip.type-dark.place-top:after{border-top-color:#222;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-dark.place-bottom:after{border-bottom-color:#222;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-dark.place-left:after{border-left-color:#222;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-dark.place-right:after{border-right-color:#222;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-dark.border{border:1px solid #fff}.__react_component_tooltip.type-dark.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-dark.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-dark.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-dark.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-success{color:#fff;background-color:#8DC572}.__react_component_tooltip.type-success.place-top:after{border-top-color:#8DC572;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-success.place-bottom:after{border-bottom-color:#8DC572;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-success.place-left:after{border-left-color:#8DC572;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-success.place-right:after{border-right-color:#8DC572;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-success.border{border:1px solid #fff}.__react_component_tooltip.type-success.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-success.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-success.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-success.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-warning{color:#fff;background-color:#F0AD4E}.__react_component_tooltip.type-warning.place-top:after{border-top-color:#F0AD4E;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-warning.place-bottom:after{border-bottom-color:#F0AD4E;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-warning.place-left:after{border-left-color:#F0AD4E;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-warning.place-right:after{border-right-color:#F0AD4E;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-warning.border{border:1px solid #fff}.__react_component_tooltip.type-warning.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-warning.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-warning.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-warning.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-error{color:#fff;background-color:#BE6464}.__react_component_tooltip.type-error.place-top:after{border-top-color:#BE6464;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-error.place-bottom:after{border-bottom-color:#BE6464;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-error.place-left:after{border-left-color:#BE6464;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-error.place-right:after{border-right-color:#BE6464;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-error.border{border:1px solid #fff}.__react_component_tooltip.type-error.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-error.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-error.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-error.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-info{color:#fff;background-color:#337AB7}.__react_component_tooltip.type-info.place-top:after{border-top-color:#337AB7;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-info.place-bottom:after{border-bottom-color:#337AB7;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-info.place-left:after{border-left-color:#337AB7;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-info.place-right:after{border-right-color:#337AB7;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-info.border{border:1px solid #fff}.__react_component_tooltip.type-info.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-info.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-info.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-info.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-light{color:#222;background-color:#fff}.__react_component_tooltip.type-light.place-top:after{border-top-color:#fff;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-light.place-bottom:after{border-bottom-color:#fff;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-light.place-left:after{border-left-color:#fff;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-light.place-right:after{border-right-color:#fff;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-light.border{border:1px solid #222}.__react_component_tooltip.type-light.border.place-top:before{border-top:8px solid #222}.__react_component_tooltip.type-light.border.place-bottom:before{border-bottom:8px solid #222}.__react_component_tooltip.type-light.border.place-left:before{border-left:8px solid #222}.__react_component_tooltip.type-light.border.place-right:before{border-right:8px solid #222}.__react_component_tooltip.place-top{margin-top:-10px}.__react_component_tooltip.place-top:before{border-left:10px solid transparent;border-right:10px solid transparent;bottom:-8px;left:50%;margin-left:-10px}.__react_component_tooltip.place-top:after{border-left:8px solid transparent;border-right:8px solid transparent;bottom:-6px;left:50%;margin-left:-8px}.__react_component_tooltip.place-bottom{margin-top:10px}.__react_component_tooltip.place-bottom:before{border-left:10px solid transparent;border-right:10px solid transparent;top:-8px;left:50%;margin-left:-10px}.__react_component_tooltip.place-bottom:after{border-left:8px solid transparent;border-right:8px solid transparent;top:-6px;left:50%;margin-left:-8px}.__react_component_tooltip.place-left{margin-left:-10px}.__react_component_tooltip.place-left:before{border-top:6px solid transparent;border-bottom:6px solid transparent;right:-8px;top:50%;margin-top:-5px}.__react_component_tooltip.place-left:after{border-top:5px solid transparent;border-bottom:5px solid transparent;right:-6px;top:50%;margin-top:-4px}.__react_component_tooltip.place-right{margin-left:10px}.__react_component_tooltip.place-right:before{border-top:6px solid transparent;border-bottom:6px solid transparent;left:-8px;top:50%;margin-top:-5px}.__react_component_tooltip.place-right:after{border-top:5px solid transparent;border-bottom:5px solid transparent;left:-6px;top:50%;margin-top:-4px}.__react_component_tooltip .multi-line{display:block;padding:2px 0px;text-align:center}'
\ No newline at end of file
+export default '.__react_component_tooltip{border-radius:3px;display:inline-block;font-size:13px;left:-999em;opacity:0;padding:8px 21px;position:fixed;pointer-events:none;transition:opacity 0.3s ease-out;top:-999em;visibility:hidden;z-index:999}.__react_component_tooltip.allow_hover{pointer-events:auto}.__react_component_tooltip:before,.__react_component_tooltip:after{content:"";width:0;height:0;position:absolute}.__react_component_tooltip.show{opacity:0.9;margin-top:0px;margin-left:0px;visibility:visible}.__react_component_tooltip.type-dark{color:#fff;background-color:#222}.__react_component_tooltip.type-dark.place-top:after{border-top-color:#222;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-dark.place-bottom:after{border-bottom-color:#222;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-dark.place-left:after{border-left-color:#222;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-dark.place-right:after{border-right-color:#222;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-dark.border{border:1px solid #fff}.__react_component_tooltip.type-dark.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-dark.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-dark.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-dark.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-success{color:#fff;background-color:#8DC572}.__react_component_tooltip.type-success.place-top:after{border-top-color:#8DC572;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-success.place-bottom:after{border-bottom-color:#8DC572;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-success.place-left:after{border-left-color:#8DC572;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-success.place-right:after{border-right-color:#8DC572;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-success.border{border:1px solid #fff}.__react_component_tooltip.type-success.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-success.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-success.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-success.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-warning{color:#fff;background-color:#F0AD4E}.__react_component_tooltip.type-warning.place-top:after{border-top-color:#F0AD4E;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-warning.place-bottom:after{border-bottom-color:#F0AD4E;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-warning.place-left:after{border-left-color:#F0AD4E;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-warning.place-right:after{border-right-color:#F0AD4E;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-warning.border{border:1px solid #fff}.__react_component_tooltip.type-warning.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-warning.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-warning.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-warning.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-error{color:#fff;background-color:#BE6464}.__react_component_tooltip.type-error.place-top:after{border-top-color:#BE6464;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-error.place-bottom:after{border-bottom-color:#BE6464;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-error.place-left:after{border-left-color:#BE6464;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-error.place-right:after{border-right-color:#BE6464;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-error.border{border:1px solid #fff}.__react_component_tooltip.type-error.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-error.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-error.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-error.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-info{color:#fff;background-color:#337AB7}.__react_component_tooltip.type-info.place-top:after{border-top-color:#337AB7;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-info.place-bottom:after{border-bottom-color:#337AB7;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-info.place-left:after{border-left-color:#337AB7;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-info.place-right:after{border-right-color:#337AB7;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-info.border{border:1px solid #fff}.__react_component_tooltip.type-info.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-info.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-info.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-info.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-light{color:#222;background-color:#fff}.__react_component_tooltip.type-light.place-top:after{border-top-color:#fff;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-light.place-bottom:after{border-bottom-color:#fff;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-light.place-left:after{border-left-color:#fff;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-light.place-right:after{border-right-color:#fff;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-light.border{border:1px solid #222}.__react_component_tooltip.type-light.border.place-top:before{border-top:8px solid #222}.__react_component_tooltip.type-light.border.place-bottom:before{border-bottom:8px solid #222}.__react_component_tooltip.type-light.border.place-left:before{border-left:8px solid #222}.__react_component_tooltip.type-light.border.place-right:before{border-right:8px solid #222}.__react_component_tooltip.place-top{margin-top:-10px}.__react_component_tooltip.place-top:before{border-left:10px solid transparent;border-right:10px solid transparent;bottom:-8px;left:50%;margin-left:-10px}.__react_component_tooltip.place-top:after{border-left:8px solid transparent;border-right:8px solid transparent;bottom:-6px;left:50%;margin-left:-8px}.__react_component_tooltip.place-bottom{margin-top:10px}.__react_component_tooltip.place-bottom:before{border-left:10px solid transparent;border-right:10px solid transparent;top:-8px;left:50%;margin-left:-10px}.__react_component_tooltip.place-bottom:after{border-left:8px solid transparent;border-right:8px solid transparent;top:-6px;left:50%;margin-left:-8px}.__react_component_tooltip.place-left{margin-left:-10px}.__react_component_tooltip.place-left:before{border-top:6px solid transparent;border-bottom:6px solid transparent;right:-8px;top:50%;margin-top:-5px}.__react_component_tooltip.place-left:after{border-top:5px solid transparent;border-bottom:5px solid transparent;right:-6px;top:50%;margin-top:-4px}.__react_component_tooltip.place-right{margin-left:10px}.__react_component_tooltip.place-right:before{border-top:6px solid transparent;border-bottom:6px solid transparent;left:-8px;top:50%;margin-top:-5px}.__react_component_tooltip.place-right:after{border-top:5px solid transparent;border-bottom:5px solid transparent;left:-6px;top:50%;margin-top:-4px}.__react_component_tooltip .multi-line{display:block;padding:2px 0px;text-align:center}'
\ No newline at end of file
diff --git a/standalone/react-tooltip.js b/standalone/react-tooltip.js
index c8a00b5a8..fc665de61 100644
--- a/standalone/react-tooltip.js
+++ b/standalone/react-tooltip.js
@@ -1312,6 +1312,7 @@ var customListeners = {
       var map = target[this.id];
       map[event] = listener;
     } else {
+      // this is workaround for WeakMap, which is not supported in older browsers, such as IE
       Object.defineProperty(target, this.id, {
         configurable: true,
         value: _defineProperty({}, event, listener)
@@ -1652,11 +1653,12 @@ var ReactTooltip = (0, _staticMethods2.default)(_class = (0, _windowListener2.de
       isMultiline: false
     };
 
-    _this.bind(['showTooltip', 'updateTooltip', 'hideTooltip', 'getTooltipContent', 'globalRebuild', 'globalShow', 'globalHide', 'onWindowResize']);
+    _this.bind(['showTooltip', 'updateTooltip', 'hideTooltip', 'getTooltipContent', 'globalRebuild', 'globalShow', 'globalHide', 'onWindowResize', 'mouseOnToolTip']);
 
     _this.mount = true;
     _this.delayShowLoop = null;
     _this.delayHideLoop = null;
+    _this.delayReshow = null;
     _this.intervalUpdateContent = null;
     return _this;
   }
@@ -1714,6 +1716,26 @@ var ReactTooltip = (0, _staticMethods2.default)(_class = (0, _windowListener2.de
       this.unbindWindowEvents();
     }
 
+    /**
+     * Return if the mouse is on the tooltip.
+     * @returns {boolean} true - mouse is on the tooltip
+     */
+
+  }, {
+    key: 'mouseOnToolTip',
+    value: function mouseOnToolTip() {
+      var show = this.state.show;
+
+
+      if (show && this.tooltipRef) {
+        /* old IE work around */
+        if (!this.tooltipRef.matches) {
+          this.tooltipRef.matches = this.tooltipRef.msMatchesSelector;
+        }
+        return this.tooltipRef.matches(':hover');
+      }
+      return false;
+    }
     /**
      * Pick out corresponded target elements
      */
@@ -1848,8 +1870,6 @@ var ReactTooltip = (0, _staticMethods2.default)(_class = (0, _windowListener2.de
   }, {
     key: 'showTooltip',
     value: function showTooltip(e, isGlobalCall) {
-      var _this5 = this;
-
       if (isGlobalCall) {
         // Don't trigger other elements belongs to other ReactTooltip
         var targetArray = this.getTargetArray(this.props.id);
@@ -1881,40 +1901,58 @@ var ReactTooltip = (0, _staticMethods2.default)(_class = (0, _windowListener2.de
       // To prevent previously created timers from triggering
       this.clearTimer();
 
-      this.setState({
-        originTooltip: originTooltip,
-        isMultiline: isMultiline,
-        desiredPlace: e.currentTarget.getAttribute('data-place') || this.props.place || 'top',
-        place: e.currentTarget.getAttribute('data-place') || this.props.place || 'top',
-        type: e.currentTarget.getAttribute('data-type') || this.props.type || 'dark',
-        effect: switchToSolid && 'solid' || this.getEffect(e.currentTarget),
-        offset: e.currentTarget.getAttribute('data-offset') || this.props.offset || {},
-        html: e.currentTarget.getAttribute('data-html') ? e.currentTarget.getAttribute('data-html') === 'true' : this.props.html || false,
-        delayShow: e.currentTarget.getAttribute('data-delay-show') || this.props.delayShow || 0,
-        delayHide: e.currentTarget.getAttribute('data-delay-hide') || this.props.delayHide || 0,
-        border: e.currentTarget.getAttribute('data-border') ? e.currentTarget.getAttribute('data-border') === 'true' : this.props.border || false,
-        extraClass: e.currentTarget.getAttribute('data-class') || this.props.class || this.props.className || '',
-        disable: e.currentTarget.getAttribute('data-tip-disable') ? e.currentTarget.getAttribute('data-tip-disable') === 'true' : this.props.disable || false,
-        currentTarget: e.currentTarget
-      }, function () {
-        if (scrollHide) _this5.addScrollListener(_this5.state.currentTarget);
-        _this5.updateTooltip(e);
-
-        if (getContent && Array.isArray(getContent)) {
-          _this5.intervalUpdateContent = setInterval(function () {
-            if (_this5.mount) {
-              var _getContent = _this5.props.getContent;
-
-              var placeholder = (0, _getTipContent2.default)(originTooltip, '', _getContent[0](), isMultiline);
-              var isEmptyTip = _this5.isEmptyTip(placeholder);
-              _this5.setState({
-                isEmptyTip: isEmptyTip
-              });
-              _this5.updatePosition();
-            }
-          }, getContent[1]);
-        }
-      });
+      var target = e.currentTarget;
+
+      var reshowDelay = this.state.show ? target.getAttribute('data-delay-update') || this.props.delayUpdate : 0;
+
+      var self = this;
+
+      var updateState = function updateState() {
+        var _this5 = this;
+
+        self.setState({
+          originTooltip: originTooltip,
+          isMultiline: isMultiline,
+          desiredPlace: target.getAttribute('data-place') || self.props.place || 'top',
+          place: target.getAttribute('data-place') || self.props.place || 'top',
+          type: target.getAttribute('data-type') || self.props.type || 'dark',
+          effect: switchToSolid && 'solid' || self.getEffect(target),
+          offset: target.getAttribute('data-offset') || self.props.offset || {},
+          html: target.getAttribute('data-html') ? target.getAttribute('data-html') === 'true' : self.props.html || false,
+          delayShow: target.getAttribute('data-delay-show') || self.props.delayShow || 0,
+          delayHide: target.getAttribute('data-delay-hide') || self.props.delayHide || 0,
+          delayUpdate: target.getAttribute('data-delay-update') || self.props.delayUpdate || 0,
+          border: target.getAttribute('data-border') ? target.getAttribute('data-border') === 'true' : self.props.border || false,
+          extraClass: target.getAttribute('data-class') || self.props.class || self.props.className || '',
+          disable: target.getAttribute('data-tip-disable') ? target.getAttribute('data-tip-disable') === 'true' : self.props.disable || false,
+          currentTarget: target
+        }, function () {
+          if (scrollHide) self.addScrollListener(self.state.currentTarget);
+          self.updateTooltip(e);
+
+          if (getContent && Array.isArray(getContent)) {
+            _this5.intervalUpdateContent = setInterval(function () {
+              if (self.mount) {
+                var _getContent = _this5.props.getContent;
+
+                var placeholder = (0, _getTipContent2.default)(originTooltip, '', _getContent[0](), isMultiline);
+                var isEmptyTip = _this5.isEmptyTip(placeholder);
+                self.setState({
+                  isEmptyTip: isEmptyTip
+                });
+                self.updatePosition();
+              }
+            }, getContent[1]);
+          }
+        });
+      };
+
+      // If there is no delay call immediately, don't allow events to get in first.
+      if (reshowDelay) {
+        this.delayReshow = setTimeout(updateState, reshowDelay);
+      } else {
+        updateState();
+      }
     }
 
     /**
@@ -1928,14 +1966,18 @@ var ReactTooltip = (0, _staticMethods2.default)(_class = (0, _windowListener2.de
 
       var _state = this.state,
           delayShow = _state.delayShow,
-          show = _state.show,
           disable = _state.disable;
       var afterShow = this.props.afterShow;
 
       var placeholder = this.getTooltipContent();
-      var delayTime = show ? 0 : parseInt(delayShow, 10);
+      var delayTime = parseInt(delayShow, 10);
       var eventTarget = e.currentTarget || e.target;
 
+      // Check if the mouse is actually over the tooltip, if so don't hide the tooltip
+      if (this.mouseOnToolTip()) {
+        return;
+      }
+
       if (this.isEmptyTip(placeholder) || disable) return; // if the tooltip is empty, disable the tooltip
       var updateState = function updateState() {
         if (Array.isArray(placeholder) && placeholder.length > 0 || placeholder) {
@@ -1959,6 +2001,31 @@ var ReactTooltip = (0, _staticMethods2.default)(_class = (0, _windowListener2.de
       }
     }
 
+    /*
+    * If we're mousing over the tooltip remove it when we leave.
+     */
+
+  }, {
+    key: 'listenForTooltipExit',
+    value: function listenForTooltipExit() {
+      var show = this.state.show;
+
+
+      if (show && this.tooltipRef) {
+        this.tooltipRef.addEventListener('mouseleave', this.hideTooltip);
+      }
+    }
+  }, {
+    key: 'removeListenerForTooltipExit',
+    value: function removeListenerForTooltipExit() {
+      var show = this.state.show;
+
+
+      if (show && this.tooltipRef) {
+        this.tooltipRef.removeEventListener('mouseleave', this.hideTooltip);
+      }
+    }
+
     /**
      * When mouse leave, hide tooltip
      */
@@ -1984,8 +2051,16 @@ var ReactTooltip = (0, _staticMethods2.default)(_class = (0, _windowListener2.de
         });
         if (!isMyElement || !this.state.show) return;
       }
+
       var resetState = function resetState() {
         var isVisible = _this7.state.show;
+        // Check if the mouse is actually over the tooltip, if so don't hide the tooltip
+        if (_this7.mouseOnToolTip()) {
+          _this7.listenForTooltipExit();
+          return;
+        }
+        _this7.removeListenerForTooltipExit();
+
         _this7.setState({
           show: false
         }, function () {
@@ -2074,11 +2149,14 @@ var ReactTooltip = (0, _staticMethods2.default)(_class = (0, _windowListener2.de
     value: function clearTimer() {
       clearTimeout(this.delayShowLoop);
       clearTimeout(this.delayHideLoop);
+      clearTimeout(this.delayReshow);
       clearInterval(this.intervalUpdateContent);
     }
   }, {
     key: 'render',
     value: function render() {
+      var _this9 = this;
+
       var _state4 = this.state,
           extraClass = _state4.extraClass,
           html = _state4.html,
@@ -2087,7 +2165,7 @@ var ReactTooltip = (0, _staticMethods2.default)(_class = (0, _windowListener2.de
 
       var placeholder = this.getTooltipContent();
       var isEmptyTip = this.isEmptyTip(placeholder);
-      var tooltipClass = (0, _classnames2.default)('__react_component_tooltip', { 'show': this.state.show && !disable && !isEmptyTip }, { 'border': this.state.border }, { 'place-top': this.state.place === 'top' }, { 'place-bottom': this.state.place === 'bottom' }, { 'place-left': this.state.place === 'left' }, { 'place-right': this.state.place === 'right' }, { 'type-dark': this.state.type === 'dark' }, { 'type-success': this.state.type === 'success' }, { 'type-warning': this.state.type === 'warning' }, { 'type-error': this.state.type === 'error' }, { 'type-info': this.state.type === 'info' }, { 'type-light': this.state.type === 'light' });
+      var tooltipClass = (0, _classnames2.default)('__react_component_tooltip', { 'show': this.state.show && !disable && !isEmptyTip }, { 'border': this.state.border }, { 'place-top': this.state.place === 'top' }, { 'place-bottom': this.state.place === 'bottom' }, { 'place-left': this.state.place === 'left' }, { 'place-right': this.state.place === 'right' }, { 'type-dark': this.state.type === 'dark' }, { 'type-success': this.state.type === 'success' }, { 'type-warning': this.state.type === 'warning' }, { 'type-error': this.state.type === 'error' }, { 'type-info': this.state.type === 'info' }, { 'type-light': this.state.type === 'light' }, { 'allow_hover': this.props.delayUpdate });
 
       var Wrapper = this.props.wrapper;
       if (ReactTooltip.supportedWrappers.indexOf(Wrapper) < 0) {
@@ -2096,7 +2174,10 @@ var ReactTooltip = (0, _staticMethods2.default)(_class = (0, _windowListener2.de
 
       if (html) {
         return _react2.default.createElement(Wrapper, _extends({ className: tooltipClass + ' ' + extraClass,
-          id: this.props.id
+          id: this.props.id,
+          ref: function ref(_ref) {
+            return _this9.tooltipRef = _ref;
+          }
         }, ariaProps, {
           'data-id': 'tooltip',
           dangerouslySetInnerHTML: { __html: placeholder } }));
@@ -2106,6 +2187,9 @@ var ReactTooltip = (0, _staticMethods2.default)(_class = (0, _windowListener2.de
           _extends({ className: tooltipClass + ' ' + extraClass,
             id: this.props.id
           }, ariaProps, {
+            ref: function ref(_ref2) {
+              return _this9.tooltipRef = _ref2;
+            },
             'data-id': 'tooltip' }),
           placeholder
         );
@@ -2128,6 +2212,7 @@ var ReactTooltip = (0, _staticMethods2.default)(_class = (0, _windowListener2.de
   id: _propTypes2.default.string,
   html: _propTypes2.default.bool,
   delayHide: _propTypes2.default.number,
+  delayUpdate: _propTypes2.default.number,
   delayShow: _propTypes2.default.number,
   event: _propTypes2.default.string,
   eventOff: _propTypes2.default.string,
@@ -2159,7 +2244,7 @@ module.exports = ReactTooltip;
 Object.defineProperty(exports, "__esModule", {
   value: true
 });
-exports.default = '.__react_component_tooltip{border-radius:3px;display:inline-block;font-size:13px;left:-999em;opacity:0;padding:8px 21px;position:fixed;pointer-events:none;transition:opacity 0.3s ease-out;top:-999em;visibility:hidden;z-index:999}.__react_component_tooltip:before,.__react_component_tooltip:after{content:"";width:0;height:0;position:absolute}.__react_component_tooltip.show{opacity:0.9;margin-top:0px;margin-left:0px;visibility:visible}.__react_component_tooltip.type-dark{color:#fff;background-color:#222}.__react_component_tooltip.type-dark.place-top:after{border-top-color:#222;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-dark.place-bottom:after{border-bottom-color:#222;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-dark.place-left:after{border-left-color:#222;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-dark.place-right:after{border-right-color:#222;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-dark.border{border:1px solid #fff}.__react_component_tooltip.type-dark.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-dark.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-dark.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-dark.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-success{color:#fff;background-color:#8DC572}.__react_component_tooltip.type-success.place-top:after{border-top-color:#8DC572;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-success.place-bottom:after{border-bottom-color:#8DC572;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-success.place-left:after{border-left-color:#8DC572;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-success.place-right:after{border-right-color:#8DC572;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-success.border{border:1px solid #fff}.__react_component_tooltip.type-success.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-success.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-success.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-success.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-warning{color:#fff;background-color:#F0AD4E}.__react_component_tooltip.type-warning.place-top:after{border-top-color:#F0AD4E;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-warning.place-bottom:after{border-bottom-color:#F0AD4E;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-warning.place-left:after{border-left-color:#F0AD4E;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-warning.place-right:after{border-right-color:#F0AD4E;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-warning.border{border:1px solid #fff}.__react_component_tooltip.type-warning.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-warning.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-warning.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-warning.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-error{color:#fff;background-color:#BE6464}.__react_component_tooltip.type-error.place-top:after{border-top-color:#BE6464;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-error.place-bottom:after{border-bottom-color:#BE6464;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-error.place-left:after{border-left-color:#BE6464;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-error.place-right:after{border-right-color:#BE6464;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-error.border{border:1px solid #fff}.__react_component_tooltip.type-error.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-error.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-error.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-error.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-info{color:#fff;background-color:#337AB7}.__react_component_tooltip.type-info.place-top:after{border-top-color:#337AB7;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-info.place-bottom:after{border-bottom-color:#337AB7;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-info.place-left:after{border-left-color:#337AB7;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-info.place-right:after{border-right-color:#337AB7;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-info.border{border:1px solid #fff}.__react_component_tooltip.type-info.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-info.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-info.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-info.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-light{color:#222;background-color:#fff}.__react_component_tooltip.type-light.place-top:after{border-top-color:#fff;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-light.place-bottom:after{border-bottom-color:#fff;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-light.place-left:after{border-left-color:#fff;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-light.place-right:after{border-right-color:#fff;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-light.border{border:1px solid #222}.__react_component_tooltip.type-light.border.place-top:before{border-top:8px solid #222}.__react_component_tooltip.type-light.border.place-bottom:before{border-bottom:8px solid #222}.__react_component_tooltip.type-light.border.place-left:before{border-left:8px solid #222}.__react_component_tooltip.type-light.border.place-right:before{border-right:8px solid #222}.__react_component_tooltip.place-top{margin-top:-10px}.__react_component_tooltip.place-top:before{border-left:10px solid transparent;border-right:10px solid transparent;bottom:-8px;left:50%;margin-left:-10px}.__react_component_tooltip.place-top:after{border-left:8px solid transparent;border-right:8px solid transparent;bottom:-6px;left:50%;margin-left:-8px}.__react_component_tooltip.place-bottom{margin-top:10px}.__react_component_tooltip.place-bottom:before{border-left:10px solid transparent;border-right:10px solid transparent;top:-8px;left:50%;margin-left:-10px}.__react_component_tooltip.place-bottom:after{border-left:8px solid transparent;border-right:8px solid transparent;top:-6px;left:50%;margin-left:-8px}.__react_component_tooltip.place-left{margin-left:-10px}.__react_component_tooltip.place-left:before{border-top:6px solid transparent;border-bottom:6px solid transparent;right:-8px;top:50%;margin-top:-5px}.__react_component_tooltip.place-left:after{border-top:5px solid transparent;border-bottom:5px solid transparent;right:-6px;top:50%;margin-top:-4px}.__react_component_tooltip.place-right{margin-left:10px}.__react_component_tooltip.place-right:before{border-top:6px solid transparent;border-bottom:6px solid transparent;left:-8px;top:50%;margin-top:-5px}.__react_component_tooltip.place-right:after{border-top:5px solid transparent;border-bottom:5px solid transparent;left:-6px;top:50%;margin-top:-4px}.__react_component_tooltip .multi-line{display:block;padding:2px 0px;text-align:center}';
+exports.default = '.__react_component_tooltip{border-radius:3px;display:inline-block;font-size:13px;left:-999em;opacity:0;padding:8px 21px;position:fixed;pointer-events:none;transition:opacity 0.3s ease-out;top:-999em;visibility:hidden;z-index:999}.__react_component_tooltip.allow_hover{pointer-events:auto}.__react_component_tooltip:before,.__react_component_tooltip:after{content:"";width:0;height:0;position:absolute}.__react_component_tooltip.show{opacity:0.9;margin-top:0px;margin-left:0px;visibility:visible}.__react_component_tooltip.type-dark{color:#fff;background-color:#222}.__react_component_tooltip.type-dark.place-top:after{border-top-color:#222;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-dark.place-bottom:after{border-bottom-color:#222;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-dark.place-left:after{border-left-color:#222;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-dark.place-right:after{border-right-color:#222;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-dark.border{border:1px solid #fff}.__react_component_tooltip.type-dark.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-dark.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-dark.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-dark.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-success{color:#fff;background-color:#8DC572}.__react_component_tooltip.type-success.place-top:after{border-top-color:#8DC572;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-success.place-bottom:after{border-bottom-color:#8DC572;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-success.place-left:after{border-left-color:#8DC572;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-success.place-right:after{border-right-color:#8DC572;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-success.border{border:1px solid #fff}.__react_component_tooltip.type-success.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-success.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-success.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-success.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-warning{color:#fff;background-color:#F0AD4E}.__react_component_tooltip.type-warning.place-top:after{border-top-color:#F0AD4E;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-warning.place-bottom:after{border-bottom-color:#F0AD4E;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-warning.place-left:after{border-left-color:#F0AD4E;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-warning.place-right:after{border-right-color:#F0AD4E;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-warning.border{border:1px solid #fff}.__react_component_tooltip.type-warning.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-warning.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-warning.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-warning.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-error{color:#fff;background-color:#BE6464}.__react_component_tooltip.type-error.place-top:after{border-top-color:#BE6464;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-error.place-bottom:after{border-bottom-color:#BE6464;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-error.place-left:after{border-left-color:#BE6464;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-error.place-right:after{border-right-color:#BE6464;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-error.border{border:1px solid #fff}.__react_component_tooltip.type-error.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-error.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-error.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-error.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-info{color:#fff;background-color:#337AB7}.__react_component_tooltip.type-info.place-top:after{border-top-color:#337AB7;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-info.place-bottom:after{border-bottom-color:#337AB7;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-info.place-left:after{border-left-color:#337AB7;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-info.place-right:after{border-right-color:#337AB7;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-info.border{border:1px solid #fff}.__react_component_tooltip.type-info.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-info.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-info.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-info.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-light{color:#222;background-color:#fff}.__react_component_tooltip.type-light.place-top:after{border-top-color:#fff;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-light.place-bottom:after{border-bottom-color:#fff;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-light.place-left:after{border-left-color:#fff;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-light.place-right:after{border-right-color:#fff;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-light.border{border:1px solid #222}.__react_component_tooltip.type-light.border.place-top:before{border-top:8px solid #222}.__react_component_tooltip.type-light.border.place-bottom:before{border-bottom:8px solid #222}.__react_component_tooltip.type-light.border.place-left:before{border-left:8px solid #222}.__react_component_tooltip.type-light.border.place-right:before{border-right:8px solid #222}.__react_component_tooltip.place-top{margin-top:-10px}.__react_component_tooltip.place-top:before{border-left:10px solid transparent;border-right:10px solid transparent;bottom:-8px;left:50%;margin-left:-10px}.__react_component_tooltip.place-top:after{border-left:8px solid transparent;border-right:8px solid transparent;bottom:-6px;left:50%;margin-left:-8px}.__react_component_tooltip.place-bottom{margin-top:10px}.__react_component_tooltip.place-bottom:before{border-left:10px solid transparent;border-right:10px solid transparent;top:-8px;left:50%;margin-left:-10px}.__react_component_tooltip.place-bottom:after{border-left:8px solid transparent;border-right:8px solid transparent;top:-6px;left:50%;margin-left:-8px}.__react_component_tooltip.place-left{margin-left:-10px}.__react_component_tooltip.place-left:before{border-top:6px solid transparent;border-bottom:6px solid transparent;right:-8px;top:50%;margin-top:-5px}.__react_component_tooltip.place-left:after{border-top:5px solid transparent;border-bottom:5px solid transparent;right:-6px;top:50%;margin-top:-4px}.__react_component_tooltip.place-right{margin-left:10px}.__react_component_tooltip.place-right:before{border-top:6px solid transparent;border-bottom:6px solid transparent;left:-8px;top:50%;margin-top:-5px}.__react_component_tooltip.place-right:after{border-top:5px solid transparent;border-bottom:5px solid transparent;left:-6px;top:50%;margin-top:-4px}.__react_component_tooltip .multi-line{display:block;padding:2px 0px;text-align:center}';
 
 },{}],21:[function(require,module,exports){
 "use strict";
@@ -2240,146 +2325,67 @@ exports.default = function (e, target, node, place, desiredPlace, effect, offset
     return mouseY + offset_Y + extraOffset_Y;
   };
 
-  // Judge if the tooltip has over the window(screen)
-  var outsideVertical = function outsideVertical() {
-    var result = false;
-    var newPlace = void 0;
-    if (getTipOffsetTop('left') < 0 && getTipOffsetBottom('left') <= windowHeight && getTipOffsetBottom('bottom') <= windowHeight) {
-      result = true;
-      newPlace = 'bottom';
-    } else if (getTipOffsetBottom('left') > windowHeight && getTipOffsetTop('left') >= 0 && getTipOffsetTop('top') >= 0) {
-      result = true;
-      newPlace = 'top';
-    }
-    return { result: result, newPlace: newPlace };
+  //
+  // Functions to test whether the tooltip's sides are inside
+  // the client window for a given orientation p
+  //
+  //  _____________
+  // |             | <-- Right side
+  // | p = 'left'  |\
+  // |             |/  |\
+  // |_____________|   |_\  <-- Mouse
+  //      / \           |
+  //       |
+  //       |
+  //  Bottom side
+  //
+  var outsideLeft = function outsideLeft(p) {
+    return getTipOffsetLeft(p) < 0;
   };
-  var outsideLeft = function outsideLeft() {
-    var _outsideVertical = outsideVertical(),
-        result = _outsideVertical.result,
-        newPlace = _outsideVertical.newPlace; // Deal with vertical as first priority
-
-
-    if (result && outsideHorizontal().result) {
-      return { result: false // No need to change, if change to vertical will out of space
-      };
-    }
-    if (!result && getTipOffsetLeft('left') < 0 && getTipOffsetRight('right') <= windowWidth) {
-      result = true; // If vertical ok, but let out of side and right won't out of side
-      newPlace = 'right';
-    }
-    return { result: result, newPlace: newPlace };
+  var outsideRight = function outsideRight(p) {
+    return getTipOffsetRight(p) > windowWidth;
   };
-  var outsideRight = function outsideRight() {
-    var _outsideVertical2 = outsideVertical(),
-        result = _outsideVertical2.result,
-        newPlace = _outsideVertical2.newPlace;
-
-    if (result && outsideHorizontal().result) {
-      return { result: false // No need to change, if change to vertical will out of space
-      };
-    }
-    if (!result && getTipOffsetRight('right') > windowWidth && getTipOffsetLeft('left') >= 0) {
-      result = true;
-      newPlace = 'left';
-    }
-    return { result: result, newPlace: newPlace };
+  var outsideTop = function outsideTop(p) {
+    return getTipOffsetTop(p) < 0;
   };
-
-  var outsideHorizontal = function outsideHorizontal() {
-    var result = false;
-    var newPlace = void 0;
-    if (getTipOffsetLeft('top') < 0 && getTipOffsetRight('top') <= windowWidth && getTipOffsetRight('right') <= windowWidth) {
-      result = true;
-      newPlace = 'right';
-    } else if (getTipOffsetRight('top') > windowWidth && getTipOffsetLeft('top') >= 0 && getTipOffsetLeft('left') >= 0) {
-      result = true;
-      newPlace = 'left';
-    }
-    return { result: result, newPlace: newPlace };
+  var outsideBottom = function outsideBottom(p) {
+    return getTipOffsetBottom(p) > windowHeight;
   };
-  var outsideTop = function outsideTop() {
-    var _outsideHorizontal = outsideHorizontal(),
-        result = _outsideHorizontal.result,
-        newPlace = _outsideHorizontal.newPlace;
 
-    if (result && outsideVertical().result) {
-      return { result: false };
-    }
-    if (!result && getTipOffsetTop('top') < 0 && getTipOffsetBottom('bottom') <= windowHeight) {
-      result = true;
-      newPlace = 'bottom';
-    }
-    return { result: result, newPlace: newPlace };
+  // Check whether the tooltip with orientation p is completely inside the client window
+  var outside = function outside(p) {
+    return outsideLeft(p) || outsideRight(p) || outsideTop(p) || outsideBottom(p);
+  };
+  var inside = function inside(p) {
+    return !outside(p);
   };
-  var outsideBottom = function outsideBottom() {
-    var _outsideHorizontal2 = outsideHorizontal(),
-        result = _outsideHorizontal2.result,
-        newPlace = _outsideHorizontal2.newPlace;
 
-    if (result && outsideVertical().result) {
-      return { result: false };
-    }
-    if (!result && getTipOffsetBottom('bottom') > windowHeight && getTipOffsetTop('top') >= 0) {
-      result = true;
-      newPlace = 'top';
+  var placesList = ['top', 'bottom', 'left', 'right'];
+  var insideList = [];
+  for (var i = 0; i < 4; i++) {
+    var p = placesList[i];
+    if (inside(p)) {
+      insideList.push(p);
     }
-    return { result: result, newPlace: newPlace };
-  };
+  }
 
-  // Return new state to change the placement to the reverse if possible
-  var outsideLeftResult = outsideLeft();
-  var outsideRightResult = outsideRight();
-  var outsideTopResult = outsideTop();
-  var outsideBottomResult = outsideBottom();
+  var isNewState = false;
+  var newPlace = void 0;
+  if (inside(desiredPlace) && desiredPlace !== place) {
+    isNewState = true;
+    newPlace = desiredPlace;
+  } else if (insideList.length > 0 && outside(desiredPlace) && outside(place)) {
+    isNewState = true;
+    newPlace = insideList[0];
+  }
 
-  if (place === 'left' && outsideLeftResult.result) {
-    return {
-      isNewState: true,
-      newState: { place: outsideLeftResult.newPlace }
-    };
-  } else if (place === 'right' && outsideRightResult.result) {
-    return {
-      isNewState: true,
-      newState: { place: outsideRightResult.newPlace }
-    };
-  } else if (place === 'top' && outsideTopResult.result) {
-    return {
-      isNewState: true,
-      newState: { place: outsideTopResult.newPlace }
-    };
-  } else if (place === 'bottom' && outsideBottomResult.result) {
+  if (isNewState) {
     return {
       isNewState: true,
-      newState: { place: outsideBottomResult.newPlace }
+      newState: { place: newPlace }
     };
   }
 
-  // Change back to original place if possible
-  if (place !== desiredPlace) {
-    if (desiredPlace === 'top' && !outsideTopResult.result) {
-      return {
-        isNewState: true,
-        newState: { place: 'top' }
-      };
-    } else if (desiredPlace === 'left' && !outsideLeftResult.result) {
-      return {
-        isNewState: true,
-        newState: { place: 'left' }
-      };
-    } else if (desiredPlace === 'right' && !outsideRightResult.result) {
-      return {
-        isNewState: true,
-        newState: { place: 'right' }
-      };
-    } else if (desiredPlace === 'bottom' && !outsideBottomResult.result) {
-      return {
-        isNewState: true,
-        newState: { place: 'bottom' }
-      };
-    }
-  }
-
-  // Return tooltip offset position
   return {
     isNewState: false,
     position: {
@@ -2412,10 +2418,10 @@ var getDimensions = function getDimensions(node) {
  * - `effect` {String} float / solid
  * - `offset` {Object} the offset to default position
  *
- * @return {Object
+ * @return {Object}
  * - `isNewState` {Bool} required
  * - `newState` {Object}
- * - `position` {OBject} {left: {Number}, top: {Number}}
+ * - `position` {Object} {left: {Number}, top: {Number}}
  */
 var getCurrentOffset = function getCurrentOffset(e, currentTarget, effect) {
   var boundingClientRect = currentTarget.getBoundingClientRect();
diff --git a/standalone/react-tooltip.min.js b/standalone/react-tooltip.min.js
index 0ada54e2e..781cf9d41 100644
--- a/standalone/react-tooltip.min.js
+++ b/standalone/react-tooltip.min.js
@@ -1,2 +1,2 @@
-(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.ReactTooltip=f()}})(function(){var define,module,exports;return function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r}()({1:[function(require,module,exports){(function(){"use strict";var hasOwn={}.hasOwnProperty;function classNames(){var classes=[];for(var i=0;i<arguments.length;i++){var arg=arguments[i];if(!arg)continue;var argType=typeof arg;if(argType==="string"||argType==="number"){classes.push(arg)}else if(Array.isArray(arg)){classes.push(classNames.apply(null,arg))}else if(argType==="object"){for(var key in arg){if(hasOwn.call(arg,key)&&arg[key]){classes.push(key)}}}}return classes.join(" ")}if(typeof module!=="undefined"&&module.exports){module.exports=classNames}else if(typeof define==="function"&&typeof define.amd==="object"&&define.amd){define("classnames",[],function(){return classNames})}else{window.classNames=classNames}})()},{}],2:[function(require,module,exports){"use strict";function makeEmptyFunction(arg){return function(){return arg}}var emptyFunction=function emptyFunction(){};emptyFunction.thatReturns=makeEmptyFunction;emptyFunction.thatReturnsFalse=makeEmptyFunction(false);emptyFunction.thatReturnsTrue=makeEmptyFunction(true);emptyFunction.thatReturnsNull=makeEmptyFunction(null);emptyFunction.thatReturnsThis=function(){return this};emptyFunction.thatReturnsArgument=function(arg){return arg};module.exports=emptyFunction},{}],3:[function(require,module,exports){(function(process){"use strict";var validateFormat=function validateFormat(format){};if(process.env.NODE_ENV!=="production"){validateFormat=function validateFormat(format){if(format===undefined){throw new Error("invariant requires an error message argument")}}}function invariant(condition,format,a,b,c,d,e,f){validateFormat(format);if(!condition){var error;if(format===undefined){error=new Error("Minified exception occurred; use the non-minified dev environment "+"for the full error message and additional helpful warnings.")}else{var args=[a,b,c,d,e,f];var argIndex=0;error=new Error(format.replace(/%s/g,function(){return args[argIndex++]}));error.name="Invariant Violation"}error.framesToPop=1;throw error}}module.exports=invariant}).call(this,require("_process"))},{_process:6}],4:[function(require,module,exports){(function(process){"use strict";var emptyFunction=require("./emptyFunction");var warning=emptyFunction;if(process.env.NODE_ENV!=="production"){var printWarning=function printWarning(format){for(var _len=arguments.length,args=Array(_len>1?_len-1:0),_key=1;_key<_len;_key++){args[_key-1]=arguments[_key]}var argIndex=0;var message="Warning: "+format.replace(/%s/g,function(){return args[argIndex++]});if(typeof console!=="undefined"){console.error(message)}try{throw new Error(message)}catch(x){}};warning=function warning(condition,format){if(format===undefined){throw new Error("`warning(condition, format, ...args)` requires a warning "+"message argument")}if(format.indexOf("Failed Composite propType: ")===0){return}if(!condition){for(var _len2=arguments.length,args=Array(_len2>2?_len2-2:0),_key2=2;_key2<_len2;_key2++){args[_key2-2]=arguments[_key2]}printWarning.apply(undefined,[format].concat(args))}}}module.exports=warning}).call(this,require("_process"))},{"./emptyFunction":2,_process:6}],5:[function(require,module,exports){"use strict";var getOwnPropertySymbols=Object.getOwnPropertySymbols;var hasOwnProperty=Object.prototype.hasOwnProperty;var propIsEnumerable=Object.prototype.propertyIsEnumerable;function toObject(val){if(val===null||val===undefined){throw new TypeError("Object.assign cannot be called with null or undefined")}return Object(val)}function shouldUseNative(){try{if(!Object.assign){return false}var test1=new String("abc");test1[5]="de";if(Object.getOwnPropertyNames(test1)[0]==="5"){return false}var test2={};for(var i=0;i<10;i++){test2["_"+String.fromCharCode(i)]=i}var order2=Object.getOwnPropertyNames(test2).map(function(n){return test2[n]});if(order2.join("")!=="0123456789"){return false}var test3={};"abcdefghijklmnopqrst".split("").forEach(function(letter){test3[letter]=letter});if(Object.keys(Object.assign({},test3)).join("")!=="abcdefghijklmnopqrst"){return false}return true}catch(err){return false}}module.exports=shouldUseNative()?Object.assign:function(target,source){var from;var to=toObject(target);var symbols;for(var s=1;s<arguments.length;s++){from=Object(arguments[s]);for(var key in from){if(hasOwnProperty.call(from,key)){to[key]=from[key]}}if(getOwnPropertySymbols){symbols=getOwnPropertySymbols(from);for(var i=0;i<symbols.length;i++){if(propIsEnumerable.call(from,symbols[i])){to[symbols[i]]=from[symbols[i]]}}}}return to}},{}],6:[function(require,module,exports){var process=module.exports={};var cachedSetTimeout;var cachedClearTimeout;function defaultSetTimout(){throw new Error("setTimeout has not been defined")}function defaultClearTimeout(){throw new Error("clearTimeout has not been defined")}(function(){try{if(typeof setTimeout==="function"){cachedSetTimeout=setTimeout}else{cachedSetTimeout=defaultSetTimout}}catch(e){cachedSetTimeout=defaultSetTimout}try{if(typeof clearTimeout==="function"){cachedClearTimeout=clearTimeout}else{cachedClearTimeout=defaultClearTimeout}}catch(e){cachedClearTimeout=defaultClearTimeout}})();function runTimeout(fun){if(cachedSetTimeout===setTimeout){return setTimeout(fun,0)}if((cachedSetTimeout===defaultSetTimout||!cachedSetTimeout)&&setTimeout){cachedSetTimeout=setTimeout;return setTimeout(fun,0)}try{return cachedSetTimeout(fun,0)}catch(e){try{return cachedSetTimeout.call(null,fun,0)}catch(e){return cachedSetTimeout.call(this,fun,0)}}}function runClearTimeout(marker){if(cachedClearTimeout===clearTimeout){return clearTimeout(marker)}if((cachedClearTimeout===defaultClearTimeout||!cachedClearTimeout)&&clearTimeout){cachedClearTimeout=clearTimeout;return clearTimeout(marker)}try{return cachedClearTimeout(marker)}catch(e){try{return cachedClearTimeout.call(null,marker)}catch(e){return cachedClearTimeout.call(this,marker)}}}var queue=[];var draining=false;var currentQueue;var queueIndex=-1;function cleanUpNextTick(){if(!draining||!currentQueue){return}draining=false;if(currentQueue.length){queue=currentQueue.concat(queue)}else{queueIndex=-1}if(queue.length){drainQueue()}}function drainQueue(){if(draining){return}var timeout=runTimeout(cleanUpNextTick);draining=true;var len=queue.length;while(len){currentQueue=queue;queue=[];while(++queueIndex<len){if(currentQueue){currentQueue[queueIndex].run()}}queueIndex=-1;len=queue.length}currentQueue=null;draining=false;runClearTimeout(timeout)}process.nextTick=function(fun){var args=new Array(arguments.length-1);if(arguments.length>1){for(var i=1;i<arguments.length;i++){args[i-1]=arguments[i]}}queue.push(new Item(fun,args));if(queue.length===1&&!draining){runTimeout(drainQueue)}};function Item(fun,array){this.fun=fun;this.array=array}Item.prototype.run=function(){this.fun.apply(null,this.array)};process.title="browser";process.browser=true;process.env={};process.argv=[];process.version="";process.versions={};function noop(){}process.on=noop;process.addListener=noop;process.once=noop;process.off=noop;process.removeListener=noop;process.removeAllListeners=noop;process.emit=noop;process.prependListener=noop;process.prependOnceListener=noop;process.listeners=function(name){return[]};process.binding=function(name){throw new Error("process.binding is not supported")};process.cwd=function(){return"/"};process.chdir=function(dir){throw new Error("process.chdir is not supported")};process.umask=function(){return 0}},{}],7:[function(require,module,exports){(function(process){"use strict";if(process.env.NODE_ENV!=="production"){var invariant=require("fbjs/lib/invariant");var warning=require("fbjs/lib/warning");var ReactPropTypesSecret=require("./lib/ReactPropTypesSecret");var loggedTypeFailures={}}function checkPropTypes(typeSpecs,values,location,componentName,getStack){if(process.env.NODE_ENV!=="production"){for(var typeSpecName in typeSpecs){if(typeSpecs.hasOwnProperty(typeSpecName)){var error;try{invariant(typeof typeSpecs[typeSpecName]==="function","%s: %s type `%s` is invalid; it must be a function, usually from "+"the `prop-types` package, but received `%s`.",componentName||"React class",location,typeSpecName,typeof typeSpecs[typeSpecName]);error=typeSpecs[typeSpecName](values,typeSpecName,componentName,location,null,ReactPropTypesSecret)}catch(ex){error=ex}warning(!error||error instanceof Error,"%s: type specification of %s `%s` is invalid; the type checker "+"function must return `null` or an `Error` but returned a %s. "+"You may have forgotten to pass an argument to the type checker "+"creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and "+"shape all require an argument).",componentName||"React class",location,typeSpecName,typeof error);if(error instanceof Error&&!(error.message in loggedTypeFailures)){loggedTypeFailures[error.message]=true;var stack=getStack?getStack():"";warning(false,"Failed %s type: %s%s",location,error.message,stack!=null?stack:"")}}}}}module.exports=checkPropTypes}).call(this,require("_process"))},{"./lib/ReactPropTypesSecret":11,_process:6,"fbjs/lib/invariant":3,"fbjs/lib/warning":4}],8:[function(require,module,exports){"use strict";var emptyFunction=require("fbjs/lib/emptyFunction");var invariant=require("fbjs/lib/invariant");var ReactPropTypesSecret=require("./lib/ReactPropTypesSecret");module.exports=function(){function shim(props,propName,componentName,location,propFullName,secret){if(secret===ReactPropTypesSecret){return}invariant(false,"Calling PropTypes validators directly is not supported by the `prop-types` package. "+"Use PropTypes.checkPropTypes() to call them. "+"Read more at http://fb.me/use-check-prop-types")}shim.isRequired=shim;function getShim(){return shim}var ReactPropTypes={array:shim,bool:shim,func:shim,number:shim,object:shim,string:shim,symbol:shim,any:shim,arrayOf:getShim,element:shim,instanceOf:getShim,node:shim,objectOf:getShim,oneOf:getShim,oneOfType:getShim,shape:getShim,exact:getShim};ReactPropTypes.checkPropTypes=emptyFunction;ReactPropTypes.PropTypes=ReactPropTypes;return ReactPropTypes}},{"./lib/ReactPropTypesSecret":11,"fbjs/lib/emptyFunction":2,"fbjs/lib/invariant":3}],9:[function(require,module,exports){(function(process){"use strict";var emptyFunction=require("fbjs/lib/emptyFunction");var invariant=require("fbjs/lib/invariant");var warning=require("fbjs/lib/warning");var assign=require("object-assign");var ReactPropTypesSecret=require("./lib/ReactPropTypesSecret");var checkPropTypes=require("./checkPropTypes");module.exports=function(isValidElement,throwOnDirectAccess){var ITERATOR_SYMBOL=typeof Symbol==="function"&&Symbol.iterator;var FAUX_ITERATOR_SYMBOL="@@iterator";function getIteratorFn(maybeIterable){var iteratorFn=maybeIterable&&(ITERATOR_SYMBOL&&maybeIterable[ITERATOR_SYMBOL]||maybeIterable[FAUX_ITERATOR_SYMBOL]);if(typeof iteratorFn==="function"){return iteratorFn}}var ANONYMOUS="<<anonymous>>";var ReactPropTypes={array:createPrimitiveTypeChecker("array"),bool:createPrimitiveTypeChecker("boolean"),func:createPrimitiveTypeChecker("function"),number:createPrimitiveTypeChecker("number"),object:createPrimitiveTypeChecker("object"),string:createPrimitiveTypeChecker("string"),symbol:createPrimitiveTypeChecker("symbol"),any:createAnyTypeChecker(),arrayOf:createArrayOfTypeChecker,element:createElementTypeChecker(),instanceOf:createInstanceTypeChecker,node:createNodeChecker(),objectOf:createObjectOfTypeChecker,oneOf:createEnumTypeChecker,oneOfType:createUnionTypeChecker,shape:createShapeTypeChecker,exact:createStrictShapeTypeChecker};function is(x,y){if(x===y){return x!==0||1/x===1/y}else{return x!==x&&y!==y}}function PropTypeError(message){this.message=message;this.stack=""}PropTypeError.prototype=Error.prototype;function createChainableTypeChecker(validate){if(process.env.NODE_ENV!=="production"){var manualPropTypeCallCache={};var manualPropTypeWarningCount=0}function checkType(isRequired,props,propName,componentName,location,propFullName,secret){componentName=componentName||ANONYMOUS;propFullName=propFullName||propName;if(secret!==ReactPropTypesSecret){if(throwOnDirectAccess){invariant(false,"Calling PropTypes validators directly is not supported by the `prop-types` package. "+"Use `PropTypes.checkPropTypes()` to call them. "+"Read more at http://fb.me/use-check-prop-types")}else if(process.env.NODE_ENV!=="production"&&typeof console!=="undefined"){var cacheKey=componentName+":"+propName;if(!manualPropTypeCallCache[cacheKey]&&manualPropTypeWarningCount<3){warning(false,"You are manually calling a React.PropTypes validation "+"function for the `%s` prop on `%s`. This is deprecated "+"and will throw in the standalone `prop-types` package. "+"You may be seeing this warning due to a third-party PropTypes "+"library. See https://fb.me/react-warning-dont-call-proptypes "+"for details.",propFullName,componentName);manualPropTypeCallCache[cacheKey]=true;manualPropTypeWarningCount++}}}if(props[propName]==null){if(isRequired){if(props[propName]===null){return new PropTypeError("The "+location+" `"+propFullName+"` is marked as required "+("in `"+componentName+"`, but its value is `null`."))}return new PropTypeError("The "+location+" `"+propFullName+"` is marked as required in "+("`"+componentName+"`, but its value is `undefined`."))}return null}else{return validate(props,propName,componentName,location,propFullName)}}var chainedCheckType=checkType.bind(null,false);chainedCheckType.isRequired=checkType.bind(null,true);return chainedCheckType}function createPrimitiveTypeChecker(expectedType){function validate(props,propName,componentName,location,propFullName,secret){var propValue=props[propName];var propType=getPropType(propValue);if(propType!==expectedType){var preciseType=getPreciseType(propValue);return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type "+("`"+preciseType+"` supplied to `"+componentName+"`, expected ")+("`"+expectedType+"`."))}return null}return createChainableTypeChecker(validate)}function createAnyTypeChecker(){return createChainableTypeChecker(emptyFunction.thatReturnsNull)}function createArrayOfTypeChecker(typeChecker){function validate(props,propName,componentName,location,propFullName){if(typeof typeChecker!=="function"){return new PropTypeError("Property `"+propFullName+"` of component `"+componentName+"` has invalid PropType notation inside arrayOf.")}var propValue=props[propName];if(!Array.isArray(propValue)){var propType=getPropType(propValue);return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type "+("`"+propType+"` supplied to `"+componentName+"`, expected an array."))}for(var i=0;i<propValue.length;i++){var error=typeChecker(propValue,i,componentName,location,propFullName+"["+i+"]",ReactPropTypesSecret);if(error instanceof Error){return error}}return null}return createChainableTypeChecker(validate)}function createElementTypeChecker(){function validate(props,propName,componentName,location,propFullName){var propValue=props[propName];if(!isValidElement(propValue)){var propType=getPropType(propValue);return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type "+("`"+propType+"` supplied to `"+componentName+"`, expected a single ReactElement."))}return null}return createChainableTypeChecker(validate)}function createInstanceTypeChecker(expectedClass){function validate(props,propName,componentName,location,propFullName){if(!(props[propName]instanceof expectedClass)){var expectedClassName=expectedClass.name||ANONYMOUS;var actualClassName=getClassName(props[propName]);return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type "+("`"+actualClassName+"` supplied to `"+componentName+"`, expected ")+("instance of `"+expectedClassName+"`."))}return null}return createChainableTypeChecker(validate)}function createEnumTypeChecker(expectedValues){if(!Array.isArray(expectedValues)){process.env.NODE_ENV!=="production"?warning(false,"Invalid argument supplied to oneOf, expected an instance of array."):void 0;return emptyFunction.thatReturnsNull}function validate(props,propName,componentName,location,propFullName){var propValue=props[propName];for(var i=0;i<expectedValues.length;i++){if(is(propValue,expectedValues[i])){return null}}var valuesString=JSON.stringify(expectedValues);return new PropTypeError("Invalid "+location+" `"+propFullName+"` of value `"+propValue+"` "+("supplied to `"+componentName+"`, expected one of "+valuesString+"."))}return createChainableTypeChecker(validate)}function createObjectOfTypeChecker(typeChecker){function validate(props,propName,componentName,location,propFullName){if(typeof typeChecker!=="function"){return new PropTypeError("Property `"+propFullName+"` of component `"+componentName+"` has invalid PropType notation inside objectOf.")}var propValue=props[propName];var propType=getPropType(propValue);if(propType!=="object"){return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type "+("`"+propType+"` supplied to `"+componentName+"`, expected an object."))}for(var key in propValue){if(propValue.hasOwnProperty(key)){var error=typeChecker(propValue,key,componentName,location,propFullName+"."+key,ReactPropTypesSecret);if(error instanceof Error){return error}}}return null}return createChainableTypeChecker(validate)}function createUnionTypeChecker(arrayOfTypeCheckers){if(!Array.isArray(arrayOfTypeCheckers)){process.env.NODE_ENV!=="production"?warning(false,"Invalid argument supplied to oneOfType, expected an instance of array."):void 0;return emptyFunction.thatReturnsNull}for(var i=0;i<arrayOfTypeCheckers.length;i++){var checker=arrayOfTypeCheckers[i];if(typeof checker!=="function"){warning(false,"Invalid argument supplied to oneOfType. Expected an array of check functions, but "+"received %s at index %s.",getPostfixForTypeWarning(checker),i);return emptyFunction.thatReturnsNull}}function validate(props,propName,componentName,location,propFullName){for(var i=0;i<arrayOfTypeCheckers.length;i++){var checker=arrayOfTypeCheckers[i];if(checker(props,propName,componentName,location,propFullName,ReactPropTypesSecret)==null){return null}}return new PropTypeError("Invalid "+location+" `"+propFullName+"` supplied to "+("`"+componentName+"`."))}return createChainableTypeChecker(validate)}function createNodeChecker(){function validate(props,propName,componentName,location,propFullName){if(!isNode(props[propName])){return new PropTypeError("Invalid "+location+" `"+propFullName+"` supplied to "+("`"+componentName+"`, expected a ReactNode."))}return null}return createChainableTypeChecker(validate)}function createShapeTypeChecker(shapeTypes){function validate(props,propName,componentName,location,propFullName){var propValue=props[propName];var propType=getPropType(propValue);if(propType!=="object"){return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type `"+propType+"` "+("supplied to `"+componentName+"`, expected `object`."))}for(var key in shapeTypes){var checker=shapeTypes[key];if(!checker){continue}var error=checker(propValue,key,componentName,location,propFullName+"."+key,ReactPropTypesSecret);if(error){return error}}return null}return createChainableTypeChecker(validate)}function createStrictShapeTypeChecker(shapeTypes){function validate(props,propName,componentName,location,propFullName){var propValue=props[propName];var propType=getPropType(propValue);if(propType!=="object"){return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type `"+propType+"` "+("supplied to `"+componentName+"`, expected `object`."))}var allKeys=assign({},props[propName],shapeTypes);for(var key in allKeys){var checker=shapeTypes[key];if(!checker){return new PropTypeError("Invalid "+location+" `"+propFullName+"` key `"+key+"` supplied to `"+componentName+"`."+"\nBad object: "+JSON.stringify(props[propName],null,"  ")+"\nValid keys: "+JSON.stringify(Object.keys(shapeTypes),null,"  "))}var error=checker(propValue,key,componentName,location,propFullName+"."+key,ReactPropTypesSecret);if(error){return error}}return null}return createChainableTypeChecker(validate)}function isNode(propValue){switch(typeof propValue){case"number":case"string":case"undefined":return true;case"boolean":return!propValue;case"object":if(Array.isArray(propValue)){return propValue.every(isNode)}if(propValue===null||isValidElement(propValue)){return true}var iteratorFn=getIteratorFn(propValue);if(iteratorFn){var iterator=iteratorFn.call(propValue);var step;if(iteratorFn!==propValue.entries){while(!(step=iterator.next()).done){if(!isNode(step.value)){return false}}}else{while(!(step=iterator.next()).done){var entry=step.value;if(entry){if(!isNode(entry[1])){return false}}}}}else{return false}return true;default:return false}}function isSymbol(propType,propValue){if(propType==="symbol"){return true}if(propValue["@@toStringTag"]==="Symbol"){return true}if(typeof Symbol==="function"&&propValue instanceof Symbol){return true}return false}function getPropType(propValue){var propType=typeof propValue;if(Array.isArray(propValue)){return"array"}if(propValue instanceof RegExp){return"object"}if(isSymbol(propType,propValue)){return"symbol"}return propType}function getPreciseType(propValue){if(typeof propValue==="undefined"||propValue===null){return""+propValue}var propType=getPropType(propValue);if(propType==="object"){if(propValue instanceof Date){return"date"}else if(propValue instanceof RegExp){return"regexp"}}return propType}function getPostfixForTypeWarning(value){var type=getPreciseType(value);switch(type){case"array":case"object":return"an "+type;case"boolean":case"date":case"regexp":return"a "+type;default:return type}}function getClassName(propValue){if(!propValue.constructor||!propValue.constructor.name){return ANONYMOUS}return propValue.constructor.name}ReactPropTypes.checkPropTypes=checkPropTypes;ReactPropTypes.PropTypes=ReactPropTypes;return ReactPropTypes}}).call(this,require("_process"))},{"./checkPropTypes":7,"./lib/ReactPropTypesSecret":11,_process:6,"fbjs/lib/emptyFunction":2,"fbjs/lib/invariant":3,"fbjs/lib/warning":4,"object-assign":5}],10:[function(require,module,exports){(function(process){if(process.env.NODE_ENV!=="production"){var REACT_ELEMENT_TYPE=typeof Symbol==="function"&&Symbol.for&&Symbol.for("react.element")||60103;var isValidElement=function(object){return typeof object==="object"&&object!==null&&object.$$typeof===REACT_ELEMENT_TYPE};var throwOnDirectAccess=true;module.exports=require("./factoryWithTypeCheckers")(isValidElement,throwOnDirectAccess)}else{module.exports=require("./factoryWithThrowingShims")()}}).call(this,require("_process"))},{"./factoryWithThrowingShims":8,"./factoryWithTypeCheckers":9,_process:6}],11:[function(require,module,exports){"use strict";var ReactPropTypesSecret="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";module.exports=ReactPropTypesSecret},{}],12:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default={GLOBAL:{HIDE:"__react_tooltip_hide_event",REBUILD:"__react_tooltip_rebuild_event",SHOW:"__react_tooltip_show_event"}}},{}],13:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=function(target){target.prototype.isCustomEvent=function(ele){var event=this.state.event;return event||!!ele.getAttribute("data-event")};target.prototype.customBindListener=function(ele){var _this=this;var _state=this.state,event=_state.event,eventOff=_state.eventOff;var dataEvent=ele.getAttribute("data-event")||event;var dataEventOff=ele.getAttribute("data-event-off")||eventOff;dataEvent.split(" ").forEach(function(event){ele.removeEventListener(event,customListener);customListener=checkStatus.bind(_this,dataEventOff);ele.addEventListener(event,customListener,false)});if(dataEventOff){dataEventOff.split(" ").forEach(function(event){ele.removeEventListener(event,_this.hideTooltip);ele.addEventListener(event,_this.hideTooltip,false)})}};target.prototype.customUnbindListener=function(ele){var _state2=this.state,event=_state2.event,eventOff=_state2.eventOff;var dataEvent=event||ele.getAttribute("data-event");var dataEventOff=eventOff||ele.getAttribute("data-event-off");ele.removeEventListener(dataEvent,customListener);if(dataEventOff)ele.removeEventListener(dataEventOff,this.hideTooltip)}};var checkStatus=function checkStatus(dataEventOff,e){var show=this.state.show;var id=this.props.id;var dataIsCapture=e.currentTarget.getAttribute("data-iscapture");var isCapture=dataIsCapture&&dataIsCapture==="true"||this.props.isCapture;var currentItem=e.currentTarget.getAttribute("currentItem");if(!isCapture)e.stopPropagation();if(show&&currentItem==="true"){if(!dataEventOff)this.hideTooltip(e)}else{e.currentTarget.setAttribute("currentItem","true");setUntargetItems(e.currentTarget,this.getTargetArray(id));this.showTooltip(e)}};var setUntargetItems=function setUntargetItems(currentTarget,targetArray){for(var i=0;i<targetArray.length;i++){if(currentTarget!==targetArray[i]){targetArray[i].setAttribute("currentItem","false")}else{targetArray[i].setAttribute("currentItem","true")}}};var customListener=void 0},{}],14:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=function(target){target.prototype.getEffect=function(currentTarget){var dataEffect=currentTarget.getAttribute("data-effect");return dataEffect||this.props.effect||"float"}}},{}],15:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=function(target){target.prototype.isCapture=function(currentTarget){return currentTarget&&currentTarget.getAttribute("data-iscapture")==="true"||this.props.isCapture||false}}},{}],16:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=function(target){target.hide=function(target){dispatchGlobalEvent(_constant2.default.GLOBAL.HIDE,{target:target})};target.rebuild=function(){dispatchGlobalEvent(_constant2.default.GLOBAL.REBUILD)};target.show=function(target){dispatchGlobalEvent(_constant2.default.GLOBAL.SHOW,{target:target})};target.prototype.globalRebuild=function(){if(this.mount){this.unbindListener();this.bindListener()}};target.prototype.globalShow=function(event){if(this.mount){var e={currentTarget:event.detail.target};this.showTooltip(e,true)}};target.prototype.globalHide=function(event){if(this.mount){var hasTarget=event&&event.detail&&event.detail.target&&true||false;this.hideTooltip({currentTarget:hasTarget&&event.detail.target},hasTarget)}}};var _constant=require("../constant");var _constant2=_interopRequireDefault(_constant);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var dispatchGlobalEvent=function dispatchGlobalEvent(eventName,opts){var event=void 0;if(typeof window.CustomEvent==="function"){event=new window.CustomEvent(eventName,{detail:opts})}else{event=document.createEvent("Event");event.initEvent(eventName,false,true);event.detail=opts}window.dispatchEvent(event)}},{"../constant":12}],17:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=function(target){target.prototype.bindRemovalTracker=function(){var _this=this;var MutationObserver=getMutationObserverClass();if(MutationObserver==null)return;var observer=new MutationObserver(function(mutations){for(var m1=0;m1<mutations.length;m1++){var mutation=mutations[m1];for(var m2=0;m2<mutation.removedNodes.length;m2++){var element=mutation.removedNodes[m2];if(element===_this.state.currentTarget){_this.hideTooltip();return}}}});observer.observe(window.document,{childList:true,subtree:true});this.removalTracker=observer};target.prototype.unbindRemovalTracker=function(){if(this.removalTracker){this.removalTracker.disconnect();this.removalTracker=null}}};var getMutationObserverClass=function getMutationObserverClass(){return window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver}},{}],18:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=function(target){target.prototype.bindWindowEvents=function(resizeHide){window.removeEventListener(_constant2.default.GLOBAL.HIDE,this.globalHide);window.addEventListener(_constant2.default.GLOBAL.HIDE,this.globalHide,false);window.removeEventListener(_constant2.default.GLOBAL.REBUILD,this.globalRebuild);window.addEventListener(_constant2.default.GLOBAL.REBUILD,this.globalRebuild,false);window.removeEventListener(_constant2.default.GLOBAL.SHOW,this.globalShow);window.addEventListener(_constant2.default.GLOBAL.SHOW,this.globalShow,false);if(resizeHide){window.removeEventListener("resize",this.onWindowResize);window.addEventListener("resize",this.onWindowResize,false)}};target.prototype.unbindWindowEvents=function(){window.removeEventListener(_constant2.default.GLOBAL.HIDE,this.globalHide);window.removeEventListener(_constant2.default.GLOBAL.REBUILD,this.globalRebuild);window.removeEventListener(_constant2.default.GLOBAL.SHOW,this.globalShow);window.removeEventListener("resize",this.onWindowResize)};target.prototype.onWindowResize=function(){if(!this.mount)return;this.hideTooltip()}};var _constant=require("../constant");var _constant2=_interopRequireDefault(_constant);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}},{"../constant":12}],19:[function(require,module,exports){(function(global){"use strict";var _extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key]}}}return target};var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor}}();var _class,_class2,_temp;var _react=typeof window!=="undefined"?window["React"]:typeof global!=="undefined"?global["React"]:null;var _react2=_interopRequireDefault(_react);var _propTypes=require("prop-types");var _propTypes2=_interopRequireDefault(_propTypes);var _reactDom=typeof window!=="undefined"?window["ReactDOM"]:typeof global!=="undefined"?global["ReactDOM"]:null;var _reactDom2=_interopRequireDefault(_reactDom);var _classnames=require("classnames");var _classnames2=_interopRequireDefault(_classnames);var _staticMethods=require("./decorators/staticMethods");var _staticMethods2=_interopRequireDefault(_staticMethods);var _windowListener=require("./decorators/windowListener");var _windowListener2=_interopRequireDefault(_windowListener);var _customEvent=require("./decorators/customEvent");var _customEvent2=_interopRequireDefault(_customEvent);var _isCapture=require("./decorators/isCapture");var _isCapture2=_interopRequireDefault(_isCapture);var _getEffect=require("./decorators/getEffect")
-;var _getEffect2=_interopRequireDefault(_getEffect);var _trackRemoval=require("./decorators/trackRemoval");var _trackRemoval2=_interopRequireDefault(_trackRemoval);var _getPosition=require("./utils/getPosition");var _getPosition2=_interopRequireDefault(_getPosition);var _getTipContent=require("./utils/getTipContent");var _getTipContent2=_interopRequireDefault(_getTipContent);var _aria=require("./utils/aria");var _nodeListToArray=require("./utils/nodeListToArray");var _nodeListToArray2=_interopRequireDefault(_nodeListToArray);var _style=require("./style");var _style2=_interopRequireDefault(_style);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return call&&(typeof call==="object"||typeof call==="function")?call:self}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function, not "+typeof superClass)}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass}var ReactTooltip=(0,_staticMethods2.default)(_class=(0,_windowListener2.default)(_class=(0,_customEvent2.default)(_class=(0,_isCapture2.default)(_class=(0,_getEffect2.default)(_class=(0,_trackRemoval2.default)(_class=(_temp=_class2=function(_React$Component){_inherits(ReactTooltip,_React$Component);function ReactTooltip(props){_classCallCheck(this,ReactTooltip);var _this=_possibleConstructorReturn(this,(ReactTooltip.__proto__||Object.getPrototypeOf(ReactTooltip)).call(this,props));_this.state={place:"top",type:"dark",effect:"float",show:false,border:false,offset:{},extraClass:"",html:false,delayHide:0,delayShow:0,event:props.event||null,eventOff:props.eventOff||null,currentEvent:null,currentTarget:null,ariaProps:(0,_aria.parseAria)(props),isEmptyTip:false,disable:false,originTooltip:null,isMultiline:false};_this.bind(["showTooltip","updateTooltip","hideTooltip","getTooltipContent","globalRebuild","globalShow","globalHide","onWindowResize"]);_this.mount=true;_this.delayShowLoop=null;_this.delayHideLoop=null;_this.intervalUpdateContent=null;return _this}_createClass(ReactTooltip,[{key:"bind",value:function bind(methodArray){var _this2=this;methodArray.forEach(function(method){_this2[method]=_this2[method].bind(_this2)})}},{key:"componentDidMount",value:function componentDidMount(){var _props=this.props,insecure=_props.insecure,resizeHide=_props.resizeHide;if(insecure){this.setStyleHeader()}this.bindListener();this.bindWindowEvents(resizeHide)}},{key:"componentWillReceiveProps",value:function componentWillReceiveProps(props){var ariaProps=this.state.ariaProps;var newAriaProps=(0,_aria.parseAria)(props);var isChanged=Object.keys(newAriaProps).some(function(props){return newAriaProps[props]!==ariaProps[props]});if(isChanged){this.setState({ariaProps:newAriaProps})}}},{key:"componentWillUnmount",value:function componentWillUnmount(){this.mount=false;this.clearTimer();this.unbindListener();this.removeScrollListener();this.unbindWindowEvents()}},{key:"getTargetArray",value:function getTargetArray(id){var targetArray=void 0;if(!id){targetArray=document.querySelectorAll("[data-tip]:not([data-for])")}else{var escaped=id.replace(/\\/g,"\\\\").replace(/"/g,'\\"');targetArray=document.querySelectorAll('[data-tip][data-for="'+escaped+'"]')}return(0,_nodeListToArray2.default)(targetArray)}},{key:"bindListener",value:function bindListener(){var _this3=this;var _props2=this.props,id=_props2.id,globalEventOff=_props2.globalEventOff;var targetArray=this.getTargetArray(id);targetArray.forEach(function(target){var isCaptureMode=_this3.isCapture(target);var effect=_this3.getEffect(target);if(target.getAttribute("currentItem")===null){target.setAttribute("currentItem","false")}_this3.unbindBasicListener(target);if(_this3.isCustomEvent(target)){_this3.customBindListener(target);return}target.addEventListener("mouseenter",_this3.showTooltip,isCaptureMode);if(effect==="float"){target.addEventListener("mousemove",_this3.updateTooltip,isCaptureMode)}target.addEventListener("mouseleave",_this3.hideTooltip,isCaptureMode)});if(globalEventOff){window.removeEventListener(globalEventOff,this.hideTooltip);window.addEventListener(globalEventOff,this.hideTooltip,false)}this.bindRemovalTracker()}},{key:"unbindListener",value:function unbindListener(){var _this4=this;var _props3=this.props,id=_props3.id,globalEventOff=_props3.globalEventOff;var targetArray=this.getTargetArray(id);targetArray.forEach(function(target){_this4.unbindBasicListener(target);if(_this4.isCustomEvent(target))_this4.customUnbindListener(target)});if(globalEventOff)window.removeEventListener(globalEventOff,this.hideTooltip);this.unbindRemovalTracker()}},{key:"unbindBasicListener",value:function unbindBasicListener(target){var isCaptureMode=this.isCapture(target);target.removeEventListener("mouseenter",this.showTooltip,isCaptureMode);target.removeEventListener("mousemove",this.updateTooltip,isCaptureMode);target.removeEventListener("mouseleave",this.hideTooltip,isCaptureMode)}},{key:"getTooltipContent",value:function getTooltipContent(){var _props4=this.props,getContent=_props4.getContent,children=_props4.children;var content=void 0;if(getContent){if(Array.isArray(getContent)){content=getContent[0]&&getContent[0]()}else{content=getContent()}}return(0,_getTipContent2.default)(this.state.originTooltip,children,content,this.state.isMultiline)}},{key:"isEmptyTip",value:function isEmptyTip(placeholder){return typeof placeholder==="string"&&placeholder===""||placeholder===null}},{key:"showTooltip",value:function showTooltip(e,isGlobalCall){var _this5=this;if(isGlobalCall){var targetArray=this.getTargetArray(this.props.id);var isMyElement=targetArray.some(function(ele){return ele===e.currentTarget});if(!isMyElement)return}var _props5=this.props,multiline=_props5.multiline,getContent=_props5.getContent;var originTooltip=e.currentTarget.getAttribute("data-tip");var isMultiline=e.currentTarget.getAttribute("data-multiline")||multiline||false;var switchToSolid=e instanceof window.FocusEvent||isGlobalCall;var scrollHide=true;if(e.currentTarget.getAttribute("data-scroll-hide")){scrollHide=e.currentTarget.getAttribute("data-scroll-hide")==="true"}else if(this.props.scrollHide!=null){scrollHide=this.props.scrollHide}this.clearTimer();this.setState({originTooltip:originTooltip,isMultiline:isMultiline,desiredPlace:e.currentTarget.getAttribute("data-place")||this.props.place||"top",place:e.currentTarget.getAttribute("data-place")||this.props.place||"top",type:e.currentTarget.getAttribute("data-type")||this.props.type||"dark",effect:switchToSolid&&"solid"||this.getEffect(e.currentTarget),offset:e.currentTarget.getAttribute("data-offset")||this.props.offset||{},html:e.currentTarget.getAttribute("data-html")?e.currentTarget.getAttribute("data-html")==="true":this.props.html||false,delayShow:e.currentTarget.getAttribute("data-delay-show")||this.props.delayShow||0,delayHide:e.currentTarget.getAttribute("data-delay-hide")||this.props.delayHide||0,border:e.currentTarget.getAttribute("data-border")?e.currentTarget.getAttribute("data-border")==="true":this.props.border||false,extraClass:e.currentTarget.getAttribute("data-class")||this.props.class||this.props.className||"",disable:e.currentTarget.getAttribute("data-tip-disable")?e.currentTarget.getAttribute("data-tip-disable")==="true":this.props.disable||false,currentTarget:e.currentTarget},function(){if(scrollHide)_this5.addScrollListener(_this5.state.currentTarget);_this5.updateTooltip(e);if(getContent&&Array.isArray(getContent)){_this5.intervalUpdateContent=setInterval(function(){if(_this5.mount){var _getContent=_this5.props.getContent;var placeholder=(0,_getTipContent2.default)(originTooltip,"",_getContent[0](),isMultiline);var isEmptyTip=_this5.isEmptyTip(placeholder);_this5.setState({isEmptyTip:isEmptyTip});_this5.updatePosition()}},getContent[1])}})}},{key:"updateTooltip",value:function updateTooltip(e){var _this6=this;var _state=this.state,delayShow=_state.delayShow,show=_state.show,disable=_state.disable;var afterShow=this.props.afterShow;var placeholder=this.getTooltipContent();var delayTime=show?0:parseInt(delayShow,10);var eventTarget=e.currentTarget||e.target;if(this.isEmptyTip(placeholder)||disable)return;var updateState=function updateState(){if(Array.isArray(placeholder)&&placeholder.length>0||placeholder){var isInvisible=!_this6.state.show;_this6.setState({currentEvent:e,currentTarget:eventTarget,show:true},function(){_this6.updatePosition();if(isInvisible&&afterShow)afterShow()})}};clearTimeout(this.delayShowLoop);if(delayShow){this.delayShowLoop=setTimeout(updateState,delayTime)}else{updateState()}}},{key:"hideTooltip",value:function hideTooltip(e,hasTarget){var _this7=this;var _state2=this.state,delayHide=_state2.delayHide,disable=_state2.disable;var afterHide=this.props.afterHide;var placeholder=this.getTooltipContent();if(!this.mount)return;if(this.isEmptyTip(placeholder)||disable)return;if(hasTarget){var targetArray=this.getTargetArray(this.props.id);var isMyElement=targetArray.some(function(ele){return ele===e.currentTarget});if(!isMyElement||!this.state.show)return}var resetState=function resetState(){var isVisible=_this7.state.show;_this7.setState({show:false},function(){_this7.removeScrollListener();if(isVisible&&afterHide)afterHide()})};this.clearTimer();if(delayHide){this.delayHideLoop=setTimeout(resetState,parseInt(delayHide,10))}else{resetState()}}},{key:"addScrollListener",value:function addScrollListener(currentTarget){var isCaptureMode=this.isCapture(currentTarget);window.addEventListener("scroll",this.hideTooltip,isCaptureMode)}},{key:"removeScrollListener",value:function removeScrollListener(){window.removeEventListener("scroll",this.hideTooltip)}},{key:"updatePosition",value:function updatePosition(){var _this8=this;var _state3=this.state,currentEvent=_state3.currentEvent,currentTarget=_state3.currentTarget,place=_state3.place,desiredPlace=_state3.desiredPlace,effect=_state3.effect,offset=_state3.offset;var node=_reactDom2.default.findDOMNode(this);var result=(0,_getPosition2.default)(currentEvent,currentTarget,node,place,desiredPlace,effect,offset);if(result.isNewState){return this.setState(result.newState,function(){_this8.updatePosition()})}node.style.left=result.position.left+"px";node.style.top=result.position.top+"px"}},{key:"setStyleHeader",value:function setStyleHeader(){var head=document.getElementsByTagName("head")[0];if(!head.querySelector('style[id="react-tooltip"]')){var tag=document.createElement("style");tag.id="react-tooltip";tag.innerHTML=_style2.default;head.insertBefore(tag,head.firstChild)}}},{key:"clearTimer",value:function clearTimer(){clearTimeout(this.delayShowLoop);clearTimeout(this.delayHideLoop);clearInterval(this.intervalUpdateContent)}},{key:"render",value:function render(){var _state4=this.state,extraClass=_state4.extraClass,html=_state4.html,ariaProps=_state4.ariaProps,disable=_state4.disable;var placeholder=this.getTooltipContent();var isEmptyTip=this.isEmptyTip(placeholder);var tooltipClass=(0,_classnames2.default)("__react_component_tooltip",{show:this.state.show&&!disable&&!isEmptyTip},{border:this.state.border},{"place-top":this.state.place==="top"},{"place-bottom":this.state.place==="bottom"},{"place-left":this.state.place==="left"},{"place-right":this.state.place==="right"},{"type-dark":this.state.type==="dark"},{"type-success":this.state.type==="success"},{"type-warning":this.state.type==="warning"},{"type-error":this.state.type==="error"},{"type-info":this.state.type==="info"},{"type-light":this.state.type==="light"});var Wrapper=this.props.wrapper;if(ReactTooltip.supportedWrappers.indexOf(Wrapper)<0){Wrapper=ReactTooltip.defaultProps.wrapper}if(html){return _react2.default.createElement(Wrapper,_extends({className:tooltipClass+" "+extraClass,id:this.props.id},ariaProps,{"data-id":"tooltip",dangerouslySetInnerHTML:{__html:placeholder}}))}else{return _react2.default.createElement(Wrapper,_extends({className:tooltipClass+" "+extraClass,id:this.props.id},ariaProps,{"data-id":"tooltip"}),placeholder)}}}]);return ReactTooltip}(_react2.default.Component),_class2.propTypes={children:_propTypes2.default.any,place:_propTypes2.default.string,type:_propTypes2.default.string,effect:_propTypes2.default.string,offset:_propTypes2.default.object,multiline:_propTypes2.default.bool,border:_propTypes2.default.bool,insecure:_propTypes2.default.bool,class:_propTypes2.default.string,className:_propTypes2.default.string,id:_propTypes2.default.string,html:_propTypes2.default.bool,delayHide:_propTypes2.default.number,delayShow:_propTypes2.default.number,event:_propTypes2.default.string,eventOff:_propTypes2.default.string,watchWindow:_propTypes2.default.bool,isCapture:_propTypes2.default.bool,globalEventOff:_propTypes2.default.string,getContent:_propTypes2.default.any,afterShow:_propTypes2.default.func,afterHide:_propTypes2.default.func,disable:_propTypes2.default.bool,scrollHide:_propTypes2.default.bool,resizeHide:_propTypes2.default.bool,wrapper:_propTypes2.default.string},_class2.defaultProps={insecure:true,resizeHide:true,wrapper:"div"},_class2.supportedWrappers=["div","span"],_class2.displayName="ReactTooltip",_temp))||_class)||_class)||_class)||_class)||_class)||_class;module.exports=ReactTooltip}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./decorators/customEvent":13,"./decorators/getEffect":14,"./decorators/isCapture":15,"./decorators/staticMethods":16,"./decorators/trackRemoval":17,"./decorators/windowListener":18,"./style":20,"./utils/aria":21,"./utils/getPosition":22,"./utils/getTipContent":23,"./utils/nodeListToArray":24,classnames:1,"prop-types":10}],20:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default='.__react_component_tooltip{border-radius:3px;display:inline-block;font-size:13px;left:-999em;opacity:0;padding:8px 21px;position:fixed;pointer-events:none;transition:opacity 0.3s ease-out;top:-999em;visibility:hidden;z-index:999}.__react_component_tooltip:before,.__react_component_tooltip:after{content:"";width:0;height:0;position:absolute}.__react_component_tooltip.show{opacity:0.9;margin-top:0px;margin-left:0px;visibility:visible}.__react_component_tooltip.type-dark{color:#fff;background-color:#222}.__react_component_tooltip.type-dark.place-top:after{border-top-color:#222;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-dark.place-bottom:after{border-bottom-color:#222;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-dark.place-left:after{border-left-color:#222;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-dark.place-right:after{border-right-color:#222;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-dark.border{border:1px solid #fff}.__react_component_tooltip.type-dark.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-dark.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-dark.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-dark.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-success{color:#fff;background-color:#8DC572}.__react_component_tooltip.type-success.place-top:after{border-top-color:#8DC572;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-success.place-bottom:after{border-bottom-color:#8DC572;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-success.place-left:after{border-left-color:#8DC572;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-success.place-right:after{border-right-color:#8DC572;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-success.border{border:1px solid #fff}.__react_component_tooltip.type-success.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-success.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-success.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-success.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-warning{color:#fff;background-color:#F0AD4E}.__react_component_tooltip.type-warning.place-top:after{border-top-color:#F0AD4E;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-warning.place-bottom:after{border-bottom-color:#F0AD4E;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-warning.place-left:after{border-left-color:#F0AD4E;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-warning.place-right:after{border-right-color:#F0AD4E;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-warning.border{border:1px solid #fff}.__react_component_tooltip.type-warning.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-warning.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-warning.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-warning.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-error{color:#fff;background-color:#BE6464}.__react_component_tooltip.type-error.place-top:after{border-top-color:#BE6464;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-error.place-bottom:after{border-bottom-color:#BE6464;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-error.place-left:after{border-left-color:#BE6464;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-error.place-right:after{border-right-color:#BE6464;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-error.border{border:1px solid #fff}.__react_component_tooltip.type-error.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-error.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-error.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-error.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-info{color:#fff;background-color:#337AB7}.__react_component_tooltip.type-info.place-top:after{border-top-color:#337AB7;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-info.place-bottom:after{border-bottom-color:#337AB7;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-info.place-left:after{border-left-color:#337AB7;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-info.place-right:after{border-right-color:#337AB7;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-info.border{border:1px solid #fff}.__react_component_tooltip.type-info.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-info.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-info.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-info.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-light{color:#222;background-color:#fff}.__react_component_tooltip.type-light.place-top:after{border-top-color:#fff;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-light.place-bottom:after{border-bottom-color:#fff;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-light.place-left:after{border-left-color:#fff;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-light.place-right:after{border-right-color:#fff;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-light.border{border:1px solid #222}.__react_component_tooltip.type-light.border.place-top:before{border-top:8px solid #222}.__react_component_tooltip.type-light.border.place-bottom:before{border-bottom:8px solid #222}.__react_component_tooltip.type-light.border.place-left:before{border-left:8px solid #222}.__react_component_tooltip.type-light.border.place-right:before{border-right:8px solid #222}.__react_component_tooltip.place-top{margin-top:-10px}.__react_component_tooltip.place-top:before{border-left:10px solid transparent;border-right:10px solid transparent;bottom:-8px;left:50%;margin-left:-10px}.__react_component_tooltip.place-top:after{border-left:8px solid transparent;border-right:8px solid transparent;bottom:-6px;left:50%;margin-left:-8px}.__react_component_tooltip.place-bottom{margin-top:10px}.__react_component_tooltip.place-bottom:before{border-left:10px solid transparent;border-right:10px solid transparent;top:-8px;left:50%;margin-left:-10px}.__react_component_tooltip.place-bottom:after{border-left:8px solid transparent;border-right:8px solid transparent;top:-6px;left:50%;margin-left:-8px}.__react_component_tooltip.place-left{margin-left:-10px}.__react_component_tooltip.place-left:before{border-top:6px solid transparent;border-bottom:6px solid transparent;right:-8px;top:50%;margin-top:-5px}.__react_component_tooltip.place-left:after{border-top:5px solid transparent;border-bottom:5px solid transparent;right:-6px;top:50%;margin-top:-4px}.__react_component_tooltip.place-right{margin-left:10px}.__react_component_tooltip.place-right:before{border-top:6px solid transparent;border-bottom:6px solid transparent;left:-8px;top:50%;margin-top:-5px}.__react_component_tooltip.place-right:after{border-top:5px solid transparent;border-bottom:5px solid transparent;left:-6px;top:50%;margin-top:-4px}.__react_component_tooltip .multi-line{display:block;padding:2px 0px;text-align:center}'},{}],21:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.parseAria=parseAria;function parseAria(props){var ariaObj={};Object.keys(props).filter(function(prop){return/(^aria-\w+$|^role$)/.test(prop)}).forEach(function(prop){ariaObj[prop]=props[prop]});return ariaObj}},{}],22:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=function(e,target,node,place,desiredPlace,effect,offset){var _getDimensions=getDimensions(node),tipWidth=_getDimensions.width,tipHeight=_getDimensions.height;var _getDimensions2=getDimensions(target),targetWidth=_getDimensions2.width,targetHeight=_getDimensions2.height;var _getCurrentOffset=getCurrentOffset(e,target,effect),mouseX=_getCurrentOffset.mouseX,mouseY=_getCurrentOffset.mouseY;var defaultOffset=getDefaultPosition(effect,targetWidth,targetHeight,tipWidth,tipHeight);var _calculateOffset=calculateOffset(offset),extraOffset_X=_calculateOffset.extraOffset_X,extraOffset_Y=_calculateOffset.extraOffset_Y;var windowWidth=window.innerWidth;var windowHeight=window.innerHeight;var _getParent=getParent(node),parentTop=_getParent.parentTop,parentLeft=_getParent.parentLeft;var getTipOffsetLeft=function getTipOffsetLeft(place){var offset_X=defaultOffset[place].l;return mouseX+offset_X+extraOffset_X};var getTipOffsetRight=function getTipOffsetRight(place){var offset_X=defaultOffset[place].r;return mouseX+offset_X+extraOffset_X};var getTipOffsetTop=function getTipOffsetTop(place){var offset_Y=defaultOffset[place].t;return mouseY+offset_Y+extraOffset_Y};var getTipOffsetBottom=function getTipOffsetBottom(place){var offset_Y=defaultOffset[place].b;return mouseY+offset_Y+extraOffset_Y};var outsideVertical=function outsideVertical(){var result=false;var newPlace=void 0;if(getTipOffsetTop("left")<0&&getTipOffsetBottom("left")<=windowHeight&&getTipOffsetBottom("bottom")<=windowHeight){result=true;newPlace="bottom"}else if(getTipOffsetBottom("left")>windowHeight&&getTipOffsetTop("left")>=0&&getTipOffsetTop("top")>=0){result=true;newPlace="top"}return{result:result,newPlace:newPlace}};var outsideLeft=function outsideLeft(){var _outsideVertical=outsideVertical(),result=_outsideVertical.result,newPlace=_outsideVertical.newPlace;if(result&&outsideHorizontal().result){return{result:false}}if(!result&&getTipOffsetLeft("left")<0&&getTipOffsetRight("right")<=windowWidth){result=true;newPlace="right"}return{result:result,newPlace:newPlace}};var outsideRight=function outsideRight(){var _outsideVertical2=outsideVertical(),result=_outsideVertical2.result,newPlace=_outsideVertical2.newPlace;if(result&&outsideHorizontal().result){return{result:false}}if(!result&&getTipOffsetRight("right")>windowWidth&&getTipOffsetLeft("left")>=0){result=true;newPlace="left"}return{result:result,newPlace:newPlace}};var outsideHorizontal=function outsideHorizontal(){var result=false;var newPlace=void 0;if(getTipOffsetLeft("top")<0&&getTipOffsetRight("top")<=windowWidth&&getTipOffsetRight("right")<=windowWidth){result=true;newPlace="right"}else if(getTipOffsetRight("top")>windowWidth&&getTipOffsetLeft("top")>=0&&getTipOffsetLeft("left")>=0){result=true;newPlace="left"}return{result:result,newPlace:newPlace}};var outsideTop=function outsideTop(){var _outsideHorizontal=outsideHorizontal(),result=_outsideHorizontal.result,newPlace=_outsideHorizontal.newPlace;if(result&&outsideVertical().result){return{result:false}}if(!result&&getTipOffsetTop("top")<0&&getTipOffsetBottom("bottom")<=windowHeight){result=true;newPlace="bottom"}return{result:result,newPlace:newPlace}};var outsideBottom=function outsideBottom(){var _outsideHorizontal2=outsideHorizontal(),result=_outsideHorizontal2.result,newPlace=_outsideHorizontal2.newPlace;if(result&&outsideVertical().result){return{result:false}}if(!result&&getTipOffsetBottom("bottom")>windowHeight&&getTipOffsetTop("top")>=0){result=true;newPlace="top"}return{result:result,newPlace:newPlace}};var outsideLeftResult=outsideLeft();var outsideRightResult=outsideRight();var outsideTopResult=outsideTop();var outsideBottomResult=outsideBottom();if(place==="left"&&outsideLeftResult.result){return{isNewState:true,newState:{place:outsideLeftResult.newPlace}}}else if(place==="right"&&outsideRightResult.result){return{isNewState:true,newState:{place:outsideRightResult.newPlace}}}else if(place==="top"&&outsideTopResult.result){return{isNewState:true,newState:{place:outsideTopResult.newPlace}}}else if(place==="bottom"&&outsideBottomResult.result){return{isNewState:true,newState:{place:outsideBottomResult.newPlace}}}if(place!==desiredPlace){if(desiredPlace==="top"&&!outsideTopResult.result){return{isNewState:true,newState:{place:"top"}}}else if(desiredPlace==="left"&&!outsideLeftResult.result){return{isNewState:true,newState:{place:"left"}}}else if(desiredPlace==="right"&&!outsideRightResult.result){return{isNewState:true,newState:{place:"right"}}}else if(desiredPlace==="bottom"&&!outsideBottomResult.result){return{isNewState:true,newState:{place:"bottom"}}}}return{isNewState:false,position:{left:parseInt(getTipOffsetLeft(place)-parentLeft,10),top:parseInt(getTipOffsetTop(place)-parentTop,10)}}};var getDimensions=function getDimensions(node){var _node$getBoundingClie=node.getBoundingClientRect(),height=_node$getBoundingClie.height,width=_node$getBoundingClie.width;return{height:parseInt(height,10),width:parseInt(width,10)}};var getCurrentOffset=function getCurrentOffset(e,currentTarget,effect){var boundingClientRect=currentTarget.getBoundingClientRect();var targetTop=boundingClientRect.top;var targetLeft=boundingClientRect.left;var _getDimensions3=getDimensions(currentTarget),targetWidth=_getDimensions3.width,targetHeight=_getDimensions3.height;if(effect==="float"){return{mouseX:e.clientX,mouseY:e.clientY}}return{mouseX:targetLeft+targetWidth/2,mouseY:targetTop+targetHeight/2}};var getDefaultPosition=function getDefaultPosition(effect,targetWidth,targetHeight,tipWidth,tipHeight){var top=void 0;var right=void 0;var bottom=void 0;var left=void 0;var disToMouse=3;var triangleHeight=2;var cursorHeight=12;if(effect==="float"){top={l:-(tipWidth/2),r:tipWidth/2,t:-(tipHeight+disToMouse+triangleHeight),b:-disToMouse};bottom={l:-(tipWidth/2),r:tipWidth/2,t:disToMouse+cursorHeight,b:tipHeight+disToMouse+triangleHeight+cursorHeight};left={l:-(tipWidth+disToMouse+triangleHeight),r:-disToMouse,t:-(tipHeight/2),b:tipHeight/2};right={l:disToMouse,r:tipWidth+disToMouse+triangleHeight,t:-(tipHeight/2),b:tipHeight/2}}else if(effect==="solid"){top={l:-(tipWidth/2),r:tipWidth/2,t:-(targetHeight/2+tipHeight+triangleHeight),b:-(targetHeight/2)};bottom={l:-(tipWidth/2),r:tipWidth/2,t:targetHeight/2,b:targetHeight/2+tipHeight+triangleHeight};left={l:-(tipWidth+targetWidth/2+triangleHeight),r:-(targetWidth/2),t:-(tipHeight/2),b:tipHeight/2};right={l:targetWidth/2,r:tipWidth+targetWidth/2+triangleHeight,t:-(tipHeight/2),b:tipHeight/2}}return{top:top,bottom:bottom,left:left,right:right}};var calculateOffset=function calculateOffset(offset){var extraOffset_X=0;var extraOffset_Y=0;if(Object.prototype.toString.apply(offset)==="[object String]"){offset=JSON.parse(offset.toString().replace(/\'/g,'"'))}for(var key in offset){if(key==="top"){extraOffset_Y-=parseInt(offset[key],10)}else if(key==="bottom"){extraOffset_Y+=parseInt(offset[key],10)}else if(key==="left"){extraOffset_X-=parseInt(offset[key],10)}else if(key==="right"){extraOffset_X+=parseInt(offset[key],10)}}return{extraOffset_X:extraOffset_X,extraOffset_Y:extraOffset_Y}};var getParent=function getParent(currentTarget){var currentParent=currentTarget;while(currentParent){if(window.getComputedStyle(currentParent).getPropertyValue("transform")!=="none")break;currentParent=currentParent.parentElement}var parentTop=currentParent&&currentParent.getBoundingClientRect().top||0;var parentLeft=currentParent&&currentParent.getBoundingClientRect().left||0;return{parentTop:parentTop,parentLeft:parentLeft}}},{}],23:[function(require,module,exports){(function(global){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=function(tip,children,getContent,multiline){if(children)return children;if(getContent!==undefined&&getContent!==null)return getContent;if(getContent===null)return null;var regexp=/<br\s*\/?>/;if(!multiline||multiline==="false"||!regexp.test(tip)){return tip}return tip.split(regexp).map(function(d,i){return _react2.default.createElement("span",{key:i,className:"multi-line"},d)})};var _react=typeof window!=="undefined"?window["React"]:typeof global!=="undefined"?global["React"]:null;var _react2=_interopRequireDefault(_react);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{}],24:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=function(nodeList){var length=nodeList.length;if(nodeList.hasOwnProperty){return Array.prototype.slice.call(nodeList)}return new Array(length).fill().map(function(index){return nodeList[index]})}},{}]},{},[19])(19)});
+(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.ReactTooltip=f()}})(function(){var define,module,exports;return function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r}()({1:[function(require,module,exports){(function(){"use strict";var hasOwn={}.hasOwnProperty;function classNames(){var classes=[];for(var i=0;i<arguments.length;i++){var arg=arguments[i];if(!arg)continue;var argType=typeof arg;if(argType==="string"||argType==="number"){classes.push(arg)}else if(Array.isArray(arg)){classes.push(classNames.apply(null,arg))}else if(argType==="object"){for(var key in arg){if(hasOwn.call(arg,key)&&arg[key]){classes.push(key)}}}}return classes.join(" ")}if(typeof module!=="undefined"&&module.exports){module.exports=classNames}else if(typeof define==="function"&&typeof define.amd==="object"&&define.amd){define("classnames",[],function(){return classNames})}else{window.classNames=classNames}})()},{}],2:[function(require,module,exports){"use strict";function makeEmptyFunction(arg){return function(){return arg}}var emptyFunction=function emptyFunction(){};emptyFunction.thatReturns=makeEmptyFunction;emptyFunction.thatReturnsFalse=makeEmptyFunction(false);emptyFunction.thatReturnsTrue=makeEmptyFunction(true);emptyFunction.thatReturnsNull=makeEmptyFunction(null);emptyFunction.thatReturnsThis=function(){return this};emptyFunction.thatReturnsArgument=function(arg){return arg};module.exports=emptyFunction},{}],3:[function(require,module,exports){(function(process){"use strict";var validateFormat=function validateFormat(format){};if(process.env.NODE_ENV!=="production"){validateFormat=function validateFormat(format){if(format===undefined){throw new Error("invariant requires an error message argument")}}}function invariant(condition,format,a,b,c,d,e,f){validateFormat(format);if(!condition){var error;if(format===undefined){error=new Error("Minified exception occurred; use the non-minified dev environment "+"for the full error message and additional helpful warnings.")}else{var args=[a,b,c,d,e,f];var argIndex=0;error=new Error(format.replace(/%s/g,function(){return args[argIndex++]}));error.name="Invariant Violation"}error.framesToPop=1;throw error}}module.exports=invariant}).call(this,require("_process"))},{_process:6}],4:[function(require,module,exports){(function(process){"use strict";var emptyFunction=require("./emptyFunction");var warning=emptyFunction;if(process.env.NODE_ENV!=="production"){var printWarning=function printWarning(format){for(var _len=arguments.length,args=Array(_len>1?_len-1:0),_key=1;_key<_len;_key++){args[_key-1]=arguments[_key]}var argIndex=0;var message="Warning: "+format.replace(/%s/g,function(){return args[argIndex++]});if(typeof console!=="undefined"){console.error(message)}try{throw new Error(message)}catch(x){}};warning=function warning(condition,format){if(format===undefined){throw new Error("`warning(condition, format, ...args)` requires a warning "+"message argument")}if(format.indexOf("Failed Composite propType: ")===0){return}if(!condition){for(var _len2=arguments.length,args=Array(_len2>2?_len2-2:0),_key2=2;_key2<_len2;_key2++){args[_key2-2]=arguments[_key2]}printWarning.apply(undefined,[format].concat(args))}}}module.exports=warning}).call(this,require("_process"))},{"./emptyFunction":2,_process:6}],5:[function(require,module,exports){"use strict";var getOwnPropertySymbols=Object.getOwnPropertySymbols;var hasOwnProperty=Object.prototype.hasOwnProperty;var propIsEnumerable=Object.prototype.propertyIsEnumerable;function toObject(val){if(val===null||val===undefined){throw new TypeError("Object.assign cannot be called with null or undefined")}return Object(val)}function shouldUseNative(){try{if(!Object.assign){return false}var test1=new String("abc");test1[5]="de";if(Object.getOwnPropertyNames(test1)[0]==="5"){return false}var test2={};for(var i=0;i<10;i++){test2["_"+String.fromCharCode(i)]=i}var order2=Object.getOwnPropertyNames(test2).map(function(n){return test2[n]});if(order2.join("")!=="0123456789"){return false}var test3={};"abcdefghijklmnopqrst".split("").forEach(function(letter){test3[letter]=letter});if(Object.keys(Object.assign({},test3)).join("")!=="abcdefghijklmnopqrst"){return false}return true}catch(err){return false}}module.exports=shouldUseNative()?Object.assign:function(target,source){var from;var to=toObject(target);var symbols;for(var s=1;s<arguments.length;s++){from=Object(arguments[s]);for(var key in from){if(hasOwnProperty.call(from,key)){to[key]=from[key]}}if(getOwnPropertySymbols){symbols=getOwnPropertySymbols(from);for(var i=0;i<symbols.length;i++){if(propIsEnumerable.call(from,symbols[i])){to[symbols[i]]=from[symbols[i]]}}}}return to}},{}],6:[function(require,module,exports){var process=module.exports={};var cachedSetTimeout;var cachedClearTimeout;function defaultSetTimout(){throw new Error("setTimeout has not been defined")}function defaultClearTimeout(){throw new Error("clearTimeout has not been defined")}(function(){try{if(typeof setTimeout==="function"){cachedSetTimeout=setTimeout}else{cachedSetTimeout=defaultSetTimout}}catch(e){cachedSetTimeout=defaultSetTimout}try{if(typeof clearTimeout==="function"){cachedClearTimeout=clearTimeout}else{cachedClearTimeout=defaultClearTimeout}}catch(e){cachedClearTimeout=defaultClearTimeout}})();function runTimeout(fun){if(cachedSetTimeout===setTimeout){return setTimeout(fun,0)}if((cachedSetTimeout===defaultSetTimout||!cachedSetTimeout)&&setTimeout){cachedSetTimeout=setTimeout;return setTimeout(fun,0)}try{return cachedSetTimeout(fun,0)}catch(e){try{return cachedSetTimeout.call(null,fun,0)}catch(e){return cachedSetTimeout.call(this,fun,0)}}}function runClearTimeout(marker){if(cachedClearTimeout===clearTimeout){return clearTimeout(marker)}if((cachedClearTimeout===defaultClearTimeout||!cachedClearTimeout)&&clearTimeout){cachedClearTimeout=clearTimeout;return clearTimeout(marker)}try{return cachedClearTimeout(marker)}catch(e){try{return cachedClearTimeout.call(null,marker)}catch(e){return cachedClearTimeout.call(this,marker)}}}var queue=[];var draining=false;var currentQueue;var queueIndex=-1;function cleanUpNextTick(){if(!draining||!currentQueue){return}draining=false;if(currentQueue.length){queue=currentQueue.concat(queue)}else{queueIndex=-1}if(queue.length){drainQueue()}}function drainQueue(){if(draining){return}var timeout=runTimeout(cleanUpNextTick);draining=true;var len=queue.length;while(len){currentQueue=queue;queue=[];while(++queueIndex<len){if(currentQueue){currentQueue[queueIndex].run()}}queueIndex=-1;len=queue.length}currentQueue=null;draining=false;runClearTimeout(timeout)}process.nextTick=function(fun){var args=new Array(arguments.length-1);if(arguments.length>1){for(var i=1;i<arguments.length;i++){args[i-1]=arguments[i]}}queue.push(new Item(fun,args));if(queue.length===1&&!draining){runTimeout(drainQueue)}};function Item(fun,array){this.fun=fun;this.array=array}Item.prototype.run=function(){this.fun.apply(null,this.array)};process.title="browser";process.browser=true;process.env={};process.argv=[];process.version="";process.versions={};function noop(){}process.on=noop;process.addListener=noop;process.once=noop;process.off=noop;process.removeListener=noop;process.removeAllListeners=noop;process.emit=noop;process.prependListener=noop;process.prependOnceListener=noop;process.listeners=function(name){return[]};process.binding=function(name){throw new Error("process.binding is not supported")};process.cwd=function(){return"/"};process.chdir=function(dir){throw new Error("process.chdir is not supported")};process.umask=function(){return 0}},{}],7:[function(require,module,exports){(function(process){"use strict";if(process.env.NODE_ENV!=="production"){var invariant=require("fbjs/lib/invariant");var warning=require("fbjs/lib/warning");var ReactPropTypesSecret=require("./lib/ReactPropTypesSecret");var loggedTypeFailures={}}function checkPropTypes(typeSpecs,values,location,componentName,getStack){if(process.env.NODE_ENV!=="production"){for(var typeSpecName in typeSpecs){if(typeSpecs.hasOwnProperty(typeSpecName)){var error;try{invariant(typeof typeSpecs[typeSpecName]==="function","%s: %s type `%s` is invalid; it must be a function, usually from "+"the `prop-types` package, but received `%s`.",componentName||"React class",location,typeSpecName,typeof typeSpecs[typeSpecName]);error=typeSpecs[typeSpecName](values,typeSpecName,componentName,location,null,ReactPropTypesSecret)}catch(ex){error=ex}warning(!error||error instanceof Error,"%s: type specification of %s `%s` is invalid; the type checker "+"function must return `null` or an `Error` but returned a %s. "+"You may have forgotten to pass an argument to the type checker "+"creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and "+"shape all require an argument).",componentName||"React class",location,typeSpecName,typeof error);if(error instanceof Error&&!(error.message in loggedTypeFailures)){loggedTypeFailures[error.message]=true;var stack=getStack?getStack():"";warning(false,"Failed %s type: %s%s",location,error.message,stack!=null?stack:"")}}}}}module.exports=checkPropTypes}).call(this,require("_process"))},{"./lib/ReactPropTypesSecret":11,_process:6,"fbjs/lib/invariant":3,"fbjs/lib/warning":4}],8:[function(require,module,exports){"use strict";var emptyFunction=require("fbjs/lib/emptyFunction");var invariant=require("fbjs/lib/invariant");var ReactPropTypesSecret=require("./lib/ReactPropTypesSecret");module.exports=function(){function shim(props,propName,componentName,location,propFullName,secret){if(secret===ReactPropTypesSecret){return}invariant(false,"Calling PropTypes validators directly is not supported by the `prop-types` package. "+"Use PropTypes.checkPropTypes() to call them. "+"Read more at http://fb.me/use-check-prop-types")}shim.isRequired=shim;function getShim(){return shim}var ReactPropTypes={array:shim,bool:shim,func:shim,number:shim,object:shim,string:shim,symbol:shim,any:shim,arrayOf:getShim,element:shim,instanceOf:getShim,node:shim,objectOf:getShim,oneOf:getShim,oneOfType:getShim,shape:getShim,exact:getShim};ReactPropTypes.checkPropTypes=emptyFunction;ReactPropTypes.PropTypes=ReactPropTypes;return ReactPropTypes}},{"./lib/ReactPropTypesSecret":11,"fbjs/lib/emptyFunction":2,"fbjs/lib/invariant":3}],9:[function(require,module,exports){(function(process){"use strict";var emptyFunction=require("fbjs/lib/emptyFunction");var invariant=require("fbjs/lib/invariant");var warning=require("fbjs/lib/warning");var assign=require("object-assign");var ReactPropTypesSecret=require("./lib/ReactPropTypesSecret");var checkPropTypes=require("./checkPropTypes");module.exports=function(isValidElement,throwOnDirectAccess){var ITERATOR_SYMBOL=typeof Symbol==="function"&&Symbol.iterator;var FAUX_ITERATOR_SYMBOL="@@iterator";function getIteratorFn(maybeIterable){var iteratorFn=maybeIterable&&(ITERATOR_SYMBOL&&maybeIterable[ITERATOR_SYMBOL]||maybeIterable[FAUX_ITERATOR_SYMBOL]);if(typeof iteratorFn==="function"){return iteratorFn}}var ANONYMOUS="<<anonymous>>";var ReactPropTypes={array:createPrimitiveTypeChecker("array"),bool:createPrimitiveTypeChecker("boolean"),func:createPrimitiveTypeChecker("function"),number:createPrimitiveTypeChecker("number"),object:createPrimitiveTypeChecker("object"),string:createPrimitiveTypeChecker("string"),symbol:createPrimitiveTypeChecker("symbol"),any:createAnyTypeChecker(),arrayOf:createArrayOfTypeChecker,element:createElementTypeChecker(),instanceOf:createInstanceTypeChecker,node:createNodeChecker(),objectOf:createObjectOfTypeChecker,oneOf:createEnumTypeChecker,oneOfType:createUnionTypeChecker,shape:createShapeTypeChecker,exact:createStrictShapeTypeChecker};function is(x,y){if(x===y){return x!==0||1/x===1/y}else{return x!==x&&y!==y}}function PropTypeError(message){this.message=message;this.stack=""}PropTypeError.prototype=Error.prototype;function createChainableTypeChecker(validate){if(process.env.NODE_ENV!=="production"){var manualPropTypeCallCache={};var manualPropTypeWarningCount=0}function checkType(isRequired,props,propName,componentName,location,propFullName,secret){componentName=componentName||ANONYMOUS;propFullName=propFullName||propName;if(secret!==ReactPropTypesSecret){if(throwOnDirectAccess){invariant(false,"Calling PropTypes validators directly is not supported by the `prop-types` package. "+"Use `PropTypes.checkPropTypes()` to call them. "+"Read more at http://fb.me/use-check-prop-types")}else if(process.env.NODE_ENV!=="production"&&typeof console!=="undefined"){var cacheKey=componentName+":"+propName;if(!manualPropTypeCallCache[cacheKey]&&manualPropTypeWarningCount<3){warning(false,"You are manually calling a React.PropTypes validation "+"function for the `%s` prop on `%s`. This is deprecated "+"and will throw in the standalone `prop-types` package. "+"You may be seeing this warning due to a third-party PropTypes "+"library. See https://fb.me/react-warning-dont-call-proptypes "+"for details.",propFullName,componentName);manualPropTypeCallCache[cacheKey]=true;manualPropTypeWarningCount++}}}if(props[propName]==null){if(isRequired){if(props[propName]===null){return new PropTypeError("The "+location+" `"+propFullName+"` is marked as required "+("in `"+componentName+"`, but its value is `null`."))}return new PropTypeError("The "+location+" `"+propFullName+"` is marked as required in "+("`"+componentName+"`, but its value is `undefined`."))}return null}else{return validate(props,propName,componentName,location,propFullName)}}var chainedCheckType=checkType.bind(null,false);chainedCheckType.isRequired=checkType.bind(null,true);return chainedCheckType}function createPrimitiveTypeChecker(expectedType){function validate(props,propName,componentName,location,propFullName,secret){var propValue=props[propName];var propType=getPropType(propValue);if(propType!==expectedType){var preciseType=getPreciseType(propValue);return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type "+("`"+preciseType+"` supplied to `"+componentName+"`, expected ")+("`"+expectedType+"`."))}return null}return createChainableTypeChecker(validate)}function createAnyTypeChecker(){return createChainableTypeChecker(emptyFunction.thatReturnsNull)}function createArrayOfTypeChecker(typeChecker){function validate(props,propName,componentName,location,propFullName){if(typeof typeChecker!=="function"){return new PropTypeError("Property `"+propFullName+"` of component `"+componentName+"` has invalid PropType notation inside arrayOf.")}var propValue=props[propName];if(!Array.isArray(propValue)){var propType=getPropType(propValue);return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type "+("`"+propType+"` supplied to `"+componentName+"`, expected an array."))}for(var i=0;i<propValue.length;i++){var error=typeChecker(propValue,i,componentName,location,propFullName+"["+i+"]",ReactPropTypesSecret);if(error instanceof Error){return error}}return null}return createChainableTypeChecker(validate)}function createElementTypeChecker(){function validate(props,propName,componentName,location,propFullName){var propValue=props[propName];if(!isValidElement(propValue)){var propType=getPropType(propValue);return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type "+("`"+propType+"` supplied to `"+componentName+"`, expected a single ReactElement."))}return null}return createChainableTypeChecker(validate)}function createInstanceTypeChecker(expectedClass){function validate(props,propName,componentName,location,propFullName){if(!(props[propName]instanceof expectedClass)){var expectedClassName=expectedClass.name||ANONYMOUS;var actualClassName=getClassName(props[propName]);return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type "+("`"+actualClassName+"` supplied to `"+componentName+"`, expected ")+("instance of `"+expectedClassName+"`."))}return null}return createChainableTypeChecker(validate)}function createEnumTypeChecker(expectedValues){if(!Array.isArray(expectedValues)){process.env.NODE_ENV!=="production"?warning(false,"Invalid argument supplied to oneOf, expected an instance of array."):void 0;return emptyFunction.thatReturnsNull}function validate(props,propName,componentName,location,propFullName){var propValue=props[propName];for(var i=0;i<expectedValues.length;i++){if(is(propValue,expectedValues[i])){return null}}var valuesString=JSON.stringify(expectedValues);return new PropTypeError("Invalid "+location+" `"+propFullName+"` of value `"+propValue+"` "+("supplied to `"+componentName+"`, expected one of "+valuesString+"."))}return createChainableTypeChecker(validate)}function createObjectOfTypeChecker(typeChecker){function validate(props,propName,componentName,location,propFullName){if(typeof typeChecker!=="function"){return new PropTypeError("Property `"+propFullName+"` of component `"+componentName+"` has invalid PropType notation inside objectOf.")}var propValue=props[propName];var propType=getPropType(propValue);if(propType!=="object"){return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type "+("`"+propType+"` supplied to `"+componentName+"`, expected an object."))}for(var key in propValue){if(propValue.hasOwnProperty(key)){var error=typeChecker(propValue,key,componentName,location,propFullName+"."+key,ReactPropTypesSecret);if(error instanceof Error){return error}}}return null}return createChainableTypeChecker(validate)}function createUnionTypeChecker(arrayOfTypeCheckers){if(!Array.isArray(arrayOfTypeCheckers)){process.env.NODE_ENV!=="production"?warning(false,"Invalid argument supplied to oneOfType, expected an instance of array."):void 0;return emptyFunction.thatReturnsNull}for(var i=0;i<arrayOfTypeCheckers.length;i++){var checker=arrayOfTypeCheckers[i];if(typeof checker!=="function"){warning(false,"Invalid argument supplied to oneOfType. Expected an array of check functions, but "+"received %s at index %s.",getPostfixForTypeWarning(checker),i);return emptyFunction.thatReturnsNull}}function validate(props,propName,componentName,location,propFullName){for(var i=0;i<arrayOfTypeCheckers.length;i++){var checker=arrayOfTypeCheckers[i];if(checker(props,propName,componentName,location,propFullName,ReactPropTypesSecret)==null){return null}}return new PropTypeError("Invalid "+location+" `"+propFullName+"` supplied to "+("`"+componentName+"`."))}return createChainableTypeChecker(validate)}function createNodeChecker(){function validate(props,propName,componentName,location,propFullName){if(!isNode(props[propName])){return new PropTypeError("Invalid "+location+" `"+propFullName+"` supplied to "+("`"+componentName+"`, expected a ReactNode."))}return null}return createChainableTypeChecker(validate)}function createShapeTypeChecker(shapeTypes){function validate(props,propName,componentName,location,propFullName){var propValue=props[propName];var propType=getPropType(propValue);if(propType!=="object"){return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type `"+propType+"` "+("supplied to `"+componentName+"`, expected `object`."))}for(var key in shapeTypes){var checker=shapeTypes[key];if(!checker){continue}var error=checker(propValue,key,componentName,location,propFullName+"."+key,ReactPropTypesSecret);if(error){return error}}return null}return createChainableTypeChecker(validate)}function createStrictShapeTypeChecker(shapeTypes){function validate(props,propName,componentName,location,propFullName){var propValue=props[propName];var propType=getPropType(propValue);if(propType!=="object"){return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type `"+propType+"` "+("supplied to `"+componentName+"`, expected `object`."))}var allKeys=assign({},props[propName],shapeTypes);for(var key in allKeys){var checker=shapeTypes[key];if(!checker){return new PropTypeError("Invalid "+location+" `"+propFullName+"` key `"+key+"` supplied to `"+componentName+"`."+"\nBad object: "+JSON.stringify(props[propName],null,"  ")+"\nValid keys: "+JSON.stringify(Object.keys(shapeTypes),null,"  "))}var error=checker(propValue,key,componentName,location,propFullName+"."+key,ReactPropTypesSecret);if(error){return error}}return null}return createChainableTypeChecker(validate)}function isNode(propValue){switch(typeof propValue){case"number":case"string":case"undefined":return true;case"boolean":return!propValue;case"object":if(Array.isArray(propValue)){return propValue.every(isNode)}if(propValue===null||isValidElement(propValue)){return true}var iteratorFn=getIteratorFn(propValue);if(iteratorFn){var iterator=iteratorFn.call(propValue);var step;if(iteratorFn!==propValue.entries){while(!(step=iterator.next()).done){if(!isNode(step.value)){return false}}}else{while(!(step=iterator.next()).done){var entry=step.value;if(entry){if(!isNode(entry[1])){return false}}}}}else{return false}return true;default:return false}}function isSymbol(propType,propValue){if(propType==="symbol"){return true}if(propValue["@@toStringTag"]==="Symbol"){return true}if(typeof Symbol==="function"&&propValue instanceof Symbol){return true}return false}function getPropType(propValue){var propType=typeof propValue;if(Array.isArray(propValue)){return"array"}if(propValue instanceof RegExp){return"object"}if(isSymbol(propType,propValue)){return"symbol"}return propType}function getPreciseType(propValue){if(typeof propValue==="undefined"||propValue===null){return""+propValue}var propType=getPropType(propValue);if(propType==="object"){if(propValue instanceof Date){return"date"}else if(propValue instanceof RegExp){return"regexp"}}return propType}function getPostfixForTypeWarning(value){var type=getPreciseType(value);switch(type){case"array":case"object":return"an "+type;case"boolean":case"date":case"regexp":return"a "+type;default:return type}}function getClassName(propValue){if(!propValue.constructor||!propValue.constructor.name){return ANONYMOUS}return propValue.constructor.name}ReactPropTypes.checkPropTypes=checkPropTypes;ReactPropTypes.PropTypes=ReactPropTypes;return ReactPropTypes}}).call(this,require("_process"))},{"./checkPropTypes":7,"./lib/ReactPropTypesSecret":11,_process:6,"fbjs/lib/emptyFunction":2,"fbjs/lib/invariant":3,"fbjs/lib/warning":4,"object-assign":5}],10:[function(require,module,exports){(function(process){if(process.env.NODE_ENV!=="production"){var REACT_ELEMENT_TYPE=typeof Symbol==="function"&&Symbol.for&&Symbol.for("react.element")||60103;var isValidElement=function(object){return typeof object==="object"&&object!==null&&object.$$typeof===REACT_ELEMENT_TYPE};var throwOnDirectAccess=true;module.exports=require("./factoryWithTypeCheckers")(isValidElement,throwOnDirectAccess)}else{module.exports=require("./factoryWithThrowingShims")()}}).call(this,require("_process"))},{"./factoryWithThrowingShims":8,"./factoryWithTypeCheckers":9,_process:6}],11:[function(require,module,exports){"use strict";var ReactPropTypesSecret="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";module.exports=ReactPropTypesSecret},{}],12:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default={GLOBAL:{HIDE:"__react_tooltip_hide_event",REBUILD:"__react_tooltip_rebuild_event",SHOW:"__react_tooltip_show_event"}}},{}],13:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=function(target){target.prototype.isCustomEvent=function(ele){var event=this.state.event;return event||!!ele.getAttribute("data-event")};target.prototype.customBindListener=function(ele){var _this=this;var _state=this.state,event=_state.event,eventOff=_state.eventOff;var dataEvent=ele.getAttribute("data-event")||event;var dataEventOff=ele.getAttribute("data-event-off")||eventOff;dataEvent.split(" ").forEach(function(event){ele.removeEventListener(event,customListeners.get(ele,event));var customListener=checkStatus.bind(_this,dataEventOff);customListeners.set(ele,event,customListener);ele.addEventListener(event,customListener,false)});if(dataEventOff){dataEventOff.split(" ").forEach(function(event){ele.removeEventListener(event,_this.hideTooltip);ele.addEventListener(event,_this.hideTooltip,false)})}};target.prototype.customUnbindListener=function(ele){var _state2=this.state,event=_state2.event,eventOff=_state2.eventOff;var dataEvent=event||ele.getAttribute("data-event");var dataEventOff=eventOff||ele.getAttribute("data-event-off");ele.removeEventListener(dataEvent,customListeners.get(ele,event));if(dataEventOff)ele.removeEventListener(dataEventOff,this.hideTooltip)}};function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}var checkStatus=function checkStatus(dataEventOff,e){var show=this.state.show;var id=this.props.id;var dataIsCapture=e.currentTarget.getAttribute("data-iscapture");var isCapture=dataIsCapture&&dataIsCapture==="true"||this.props.isCapture;var currentItem=e.currentTarget.getAttribute("currentItem");if(!isCapture)e.stopPropagation();if(show&&currentItem==="true"){if(!dataEventOff)this.hideTooltip(e)}else{e.currentTarget.setAttribute("currentItem","true");setUntargetItems(e.currentTarget,this.getTargetArray(id));this.showTooltip(e)}};var setUntargetItems=function setUntargetItems(currentTarget,targetArray){for(var i=0;i<targetArray.length;i++){if(currentTarget!==targetArray[i]){targetArray[i].setAttribute("currentItem","false")}else{targetArray[i].setAttribute("currentItem","true")}}};var customListeners={id:"9b69f92e-d3fe-498b-b1b4-c5e63a51b0cf",set:function set(target,event,listener){if(this.id in target){var map=target[this.id];map[event]=listener}else{Object.defineProperty(target,this.id,{configurable:true,value:_defineProperty({},event,listener)})}},get:function get(target,event){var map=target[this.id];if(map!==undefined){return map[event]}}}},{}],14:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=function(target){target.prototype.getEffect=function(currentTarget){var dataEffect=currentTarget.getAttribute("data-effect");return dataEffect||this.props.effect||"float"}}},{}],15:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=function(target){target.prototype.isCapture=function(currentTarget){return currentTarget&&currentTarget.getAttribute("data-iscapture")==="true"||this.props.isCapture||false}}},{}],16:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=function(target){target.hide=function(target){dispatchGlobalEvent(_constant2.default.GLOBAL.HIDE,{target:target})};target.rebuild=function(){dispatchGlobalEvent(_constant2.default.GLOBAL.REBUILD)};target.show=function(target){dispatchGlobalEvent(_constant2.default.GLOBAL.SHOW,{target:target})};target.prototype.globalRebuild=function(){if(this.mount){this.unbindListener();this.bindListener()}};target.prototype.globalShow=function(event){if(this.mount){var e={currentTarget:event.detail.target};this.showTooltip(e,true)}};target.prototype.globalHide=function(event){if(this.mount){var hasTarget=event&&event.detail&&event.detail.target&&true||false;this.hideTooltip({currentTarget:hasTarget&&event.detail.target},hasTarget)}}};var _constant=require("../constant");var _constant2=_interopRequireDefault(_constant);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var dispatchGlobalEvent=function dispatchGlobalEvent(eventName,opts){var event=void 0;if(typeof window.CustomEvent==="function"){event=new window.CustomEvent(eventName,{detail:opts})}else{event=document.createEvent("Event");event.initEvent(eventName,false,true);event.detail=opts}window.dispatchEvent(event)}},{"../constant":12}],17:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=function(target){target.prototype.bindRemovalTracker=function(){var _this=this;var MutationObserver=getMutationObserverClass();if(MutationObserver==null)return;var observer=new MutationObserver(function(mutations){for(var m1=0;m1<mutations.length;m1++){var mutation=mutations[m1];for(var m2=0;m2<mutation.removedNodes.length;m2++){var element=mutation.removedNodes[m2];if(element===_this.state.currentTarget){_this.hideTooltip();return}}}});observer.observe(window.document,{childList:true,subtree:true});this.removalTracker=observer};target.prototype.unbindRemovalTracker=function(){if(this.removalTracker){this.removalTracker.disconnect();this.removalTracker=null}}};var getMutationObserverClass=function getMutationObserverClass(){return window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver}},{}],18:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=function(target){target.prototype.bindWindowEvents=function(resizeHide){window.removeEventListener(_constant2.default.GLOBAL.HIDE,this.globalHide);window.addEventListener(_constant2.default.GLOBAL.HIDE,this.globalHide,false);window.removeEventListener(_constant2.default.GLOBAL.REBUILD,this.globalRebuild);window.addEventListener(_constant2.default.GLOBAL.REBUILD,this.globalRebuild,false);window.removeEventListener(_constant2.default.GLOBAL.SHOW,this.globalShow);window.addEventListener(_constant2.default.GLOBAL.SHOW,this.globalShow,false);if(resizeHide){window.removeEventListener("resize",this.onWindowResize);window.addEventListener("resize",this.onWindowResize,false)}};target.prototype.unbindWindowEvents=function(){window.removeEventListener(_constant2.default.GLOBAL.HIDE,this.globalHide);window.removeEventListener(_constant2.default.GLOBAL.REBUILD,this.globalRebuild);window.removeEventListener(_constant2.default.GLOBAL.SHOW,this.globalShow);window.removeEventListener("resize",this.onWindowResize)};target.prototype.onWindowResize=function(){if(!this.mount)return;this.hideTooltip()}};var _constant=require("../constant");var _constant2=_interopRequireDefault(_constant);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}},{"../constant":12}],19:[function(require,module,exports){(function(global){"use strict";var _extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key]}}}return target};var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor}}();var _class,_class2,_temp;var _react=typeof window!=="undefined"?window["React"]:typeof global!=="undefined"?global["React"]:null;var _react2=_interopRequireDefault(_react);var _propTypes=require("prop-types");var _propTypes2=_interopRequireDefault(_propTypes);var _reactDom=typeof window!=="undefined"?window["ReactDOM"]:typeof global!=="undefined"?global["ReactDOM"]:null;var _reactDom2=_interopRequireDefault(_reactDom)
+;var _classnames=require("classnames");var _classnames2=_interopRequireDefault(_classnames);var _staticMethods=require("./decorators/staticMethods");var _staticMethods2=_interopRequireDefault(_staticMethods);var _windowListener=require("./decorators/windowListener");var _windowListener2=_interopRequireDefault(_windowListener);var _customEvent=require("./decorators/customEvent");var _customEvent2=_interopRequireDefault(_customEvent);var _isCapture=require("./decorators/isCapture");var _isCapture2=_interopRequireDefault(_isCapture);var _getEffect=require("./decorators/getEffect");var _getEffect2=_interopRequireDefault(_getEffect);var _trackRemoval=require("./decorators/trackRemoval");var _trackRemoval2=_interopRequireDefault(_trackRemoval);var _getPosition=require("./utils/getPosition");var _getPosition2=_interopRequireDefault(_getPosition);var _getTipContent=require("./utils/getTipContent");var _getTipContent2=_interopRequireDefault(_getTipContent);var _aria=require("./utils/aria");var _nodeListToArray=require("./utils/nodeListToArray");var _nodeListToArray2=_interopRequireDefault(_nodeListToArray);var _style=require("./style");var _style2=_interopRequireDefault(_style);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return call&&(typeof call==="object"||typeof call==="function")?call:self}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function, not "+typeof superClass)}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass}var ReactTooltip=(0,_staticMethods2.default)(_class=(0,_windowListener2.default)(_class=(0,_customEvent2.default)(_class=(0,_isCapture2.default)(_class=(0,_getEffect2.default)(_class=(0,_trackRemoval2.default)(_class=(_temp=_class2=function(_React$Component){_inherits(ReactTooltip,_React$Component);function ReactTooltip(props){_classCallCheck(this,ReactTooltip);var _this=_possibleConstructorReturn(this,(ReactTooltip.__proto__||Object.getPrototypeOf(ReactTooltip)).call(this,props));_this.state={place:"top",type:"dark",effect:"float",show:false,border:false,offset:{},extraClass:"",html:false,delayHide:0,delayShow:0,event:props.event||null,eventOff:props.eventOff||null,currentEvent:null,currentTarget:null,ariaProps:(0,_aria.parseAria)(props),isEmptyTip:false,disable:false,originTooltip:null,isMultiline:false};_this.bind(["showTooltip","updateTooltip","hideTooltip","getTooltipContent","globalRebuild","globalShow","globalHide","onWindowResize","mouseOnToolTip"]);_this.mount=true;_this.delayShowLoop=null;_this.delayHideLoop=null;_this.delayReshow=null;_this.intervalUpdateContent=null;return _this}_createClass(ReactTooltip,[{key:"bind",value:function bind(methodArray){var _this2=this;methodArray.forEach(function(method){_this2[method]=_this2[method].bind(_this2)})}},{key:"componentDidMount",value:function componentDidMount(){var _props=this.props,insecure=_props.insecure,resizeHide=_props.resizeHide;if(insecure){this.setStyleHeader()}this.bindListener();this.bindWindowEvents(resizeHide)}},{key:"componentWillReceiveProps",value:function componentWillReceiveProps(props){var ariaProps=this.state.ariaProps;var newAriaProps=(0,_aria.parseAria)(props);var isChanged=Object.keys(newAriaProps).some(function(props){return newAriaProps[props]!==ariaProps[props]});if(isChanged){this.setState({ariaProps:newAriaProps})}}},{key:"componentWillUnmount",value:function componentWillUnmount(){this.mount=false;this.clearTimer();this.unbindListener();this.removeScrollListener();this.unbindWindowEvents()}},{key:"mouseOnToolTip",value:function mouseOnToolTip(){var show=this.state.show;if(show&&this.tooltipRef){if(!this.tooltipRef.matches){this.tooltipRef.matches=this.tooltipRef.msMatchesSelector}return this.tooltipRef.matches(":hover")}return false}},{key:"getTargetArray",value:function getTargetArray(id){var targetArray=void 0;if(!id){targetArray=document.querySelectorAll("[data-tip]:not([data-for])")}else{var escaped=id.replace(/\\/g,"\\\\").replace(/"/g,'\\"');targetArray=document.querySelectorAll('[data-tip][data-for="'+escaped+'"]')}return(0,_nodeListToArray2.default)(targetArray)}},{key:"bindListener",value:function bindListener(){var _this3=this;var _props2=this.props,id=_props2.id,globalEventOff=_props2.globalEventOff;var targetArray=this.getTargetArray(id);targetArray.forEach(function(target){var isCaptureMode=_this3.isCapture(target);var effect=_this3.getEffect(target);if(target.getAttribute("currentItem")===null){target.setAttribute("currentItem","false")}_this3.unbindBasicListener(target);if(_this3.isCustomEvent(target)){_this3.customBindListener(target);return}target.addEventListener("mouseenter",_this3.showTooltip,isCaptureMode);if(effect==="float"){target.addEventListener("mousemove",_this3.updateTooltip,isCaptureMode)}target.addEventListener("mouseleave",_this3.hideTooltip,isCaptureMode)});if(globalEventOff){window.removeEventListener(globalEventOff,this.hideTooltip);window.addEventListener(globalEventOff,this.hideTooltip,false)}this.bindRemovalTracker()}},{key:"unbindListener",value:function unbindListener(){var _this4=this;var _props3=this.props,id=_props3.id,globalEventOff=_props3.globalEventOff;var targetArray=this.getTargetArray(id);targetArray.forEach(function(target){_this4.unbindBasicListener(target);if(_this4.isCustomEvent(target))_this4.customUnbindListener(target)});if(globalEventOff)window.removeEventListener(globalEventOff,this.hideTooltip);this.unbindRemovalTracker()}},{key:"unbindBasicListener",value:function unbindBasicListener(target){var isCaptureMode=this.isCapture(target);target.removeEventListener("mouseenter",this.showTooltip,isCaptureMode);target.removeEventListener("mousemove",this.updateTooltip,isCaptureMode);target.removeEventListener("mouseleave",this.hideTooltip,isCaptureMode)}},{key:"getTooltipContent",value:function getTooltipContent(){var _props4=this.props,getContent=_props4.getContent,children=_props4.children;var content=void 0;if(getContent){if(Array.isArray(getContent)){content=getContent[0]&&getContent[0](this.state.originTooltip)}else{content=getContent(this.state.originTooltip)}}return(0,_getTipContent2.default)(this.state.originTooltip,children,content,this.state.isMultiline)}},{key:"isEmptyTip",value:function isEmptyTip(placeholder){return typeof placeholder==="string"&&placeholder===""||placeholder===null}},{key:"showTooltip",value:function showTooltip(e,isGlobalCall){if(isGlobalCall){var targetArray=this.getTargetArray(this.props.id);var isMyElement=targetArray.some(function(ele){return ele===e.currentTarget});if(!isMyElement)return}var _props5=this.props,multiline=_props5.multiline,getContent=_props5.getContent;var originTooltip=e.currentTarget.getAttribute("data-tip");var isMultiline=e.currentTarget.getAttribute("data-multiline")||multiline||false;var switchToSolid=e instanceof window.FocusEvent||isGlobalCall;var scrollHide=true;if(e.currentTarget.getAttribute("data-scroll-hide")){scrollHide=e.currentTarget.getAttribute("data-scroll-hide")==="true"}else if(this.props.scrollHide!=null){scrollHide=this.props.scrollHide}this.clearTimer();var target=e.currentTarget;var reshowDelay=this.state.show?target.getAttribute("data-delay-update")||this.props.delayUpdate:0;var self=this;var updateState=function updateState(){var _this5=this;self.setState({originTooltip:originTooltip,isMultiline:isMultiline,desiredPlace:target.getAttribute("data-place")||self.props.place||"top",place:target.getAttribute("data-place")||self.props.place||"top",type:target.getAttribute("data-type")||self.props.type||"dark",effect:switchToSolid&&"solid"||self.getEffect(target),offset:target.getAttribute("data-offset")||self.props.offset||{},html:target.getAttribute("data-html")?target.getAttribute("data-html")==="true":self.props.html||false,delayShow:target.getAttribute("data-delay-show")||self.props.delayShow||0,delayHide:target.getAttribute("data-delay-hide")||self.props.delayHide||0,delayUpdate:target.getAttribute("data-delay-update")||self.props.delayUpdate||0,border:target.getAttribute("data-border")?target.getAttribute("data-border")==="true":self.props.border||false,extraClass:target.getAttribute("data-class")||self.props.class||self.props.className||"",disable:target.getAttribute("data-tip-disable")?target.getAttribute("data-tip-disable")==="true":self.props.disable||false,currentTarget:target},function(){if(scrollHide)self.addScrollListener(self.state.currentTarget);self.updateTooltip(e);if(getContent&&Array.isArray(getContent)){_this5.intervalUpdateContent=setInterval(function(){if(self.mount){var _getContent=_this5.props.getContent;var placeholder=(0,_getTipContent2.default)(originTooltip,"",_getContent[0](),isMultiline);var isEmptyTip=_this5.isEmptyTip(placeholder);self.setState({isEmptyTip:isEmptyTip});self.updatePosition()}},getContent[1])}})};if(reshowDelay){this.delayReshow=setTimeout(updateState,reshowDelay)}else{updateState()}}},{key:"updateTooltip",value:function updateTooltip(e){var _this6=this;var _state=this.state,delayShow=_state.delayShow,disable=_state.disable;var afterShow=this.props.afterShow;var placeholder=this.getTooltipContent();var delayTime=parseInt(delayShow,10);var eventTarget=e.currentTarget||e.target;if(this.mouseOnToolTip()){return}if(this.isEmptyTip(placeholder)||disable)return;var updateState=function updateState(){if(Array.isArray(placeholder)&&placeholder.length>0||placeholder){var isInvisible=!_this6.state.show;_this6.setState({currentEvent:e,currentTarget:eventTarget,show:true},function(){_this6.updatePosition();if(isInvisible&&afterShow)afterShow()})}};clearTimeout(this.delayShowLoop);if(delayShow){this.delayShowLoop=setTimeout(updateState,delayTime)}else{updateState()}}},{key:"listenForTooltipExit",value:function listenForTooltipExit(){var show=this.state.show;if(show&&this.tooltipRef){this.tooltipRef.addEventListener("mouseleave",this.hideTooltip)}}},{key:"removeListenerForTooltipExit",value:function removeListenerForTooltipExit(){var show=this.state.show;if(show&&this.tooltipRef){this.tooltipRef.removeEventListener("mouseleave",this.hideTooltip)}}},{key:"hideTooltip",value:function hideTooltip(e,hasTarget){var _this7=this;var _state2=this.state,delayHide=_state2.delayHide,disable=_state2.disable;var afterHide=this.props.afterHide;var placeholder=this.getTooltipContent();if(!this.mount)return;if(this.isEmptyTip(placeholder)||disable)return;if(hasTarget){var targetArray=this.getTargetArray(this.props.id);var isMyElement=targetArray.some(function(ele){return ele===e.currentTarget});if(!isMyElement||!this.state.show)return}var resetState=function resetState(){var isVisible=_this7.state.show;if(_this7.mouseOnToolTip()){_this7.listenForTooltipExit();return}_this7.removeListenerForTooltipExit();_this7.setState({show:false},function(){_this7.removeScrollListener();if(isVisible&&afterHide)afterHide()})};this.clearTimer();if(delayHide){this.delayHideLoop=setTimeout(resetState,parseInt(delayHide,10))}else{resetState()}}},{key:"addScrollListener",value:function addScrollListener(currentTarget){var isCaptureMode=this.isCapture(currentTarget);window.addEventListener("scroll",this.hideTooltip,isCaptureMode)}},{key:"removeScrollListener",value:function removeScrollListener(){window.removeEventListener("scroll",this.hideTooltip)}},{key:"updatePosition",value:function updatePosition(){var _this8=this;var _state3=this.state,currentEvent=_state3.currentEvent,currentTarget=_state3.currentTarget,place=_state3.place,desiredPlace=_state3.desiredPlace,effect=_state3.effect,offset=_state3.offset;var node=_reactDom2.default.findDOMNode(this);var result=(0,_getPosition2.default)(currentEvent,currentTarget,node,place,desiredPlace,effect,offset);if(result.isNewState){return this.setState(result.newState,function(){_this8.updatePosition()})}node.style.left=result.position.left+"px";node.style.top=result.position.top+"px"}},{key:"setStyleHeader",value:function setStyleHeader(){var head=document.getElementsByTagName("head")[0];if(!head.querySelector('style[id="react-tooltip"]')){var tag=document.createElement("style");tag.id="react-tooltip";tag.innerHTML=_style2.default;head.insertBefore(tag,head.firstChild)}}},{key:"clearTimer",value:function clearTimer(){clearTimeout(this.delayShowLoop);clearTimeout(this.delayHideLoop);clearTimeout(this.delayReshow);clearInterval(this.intervalUpdateContent)}},{key:"render",value:function render(){var _this9=this;var _state4=this.state,extraClass=_state4.extraClass,html=_state4.html,ariaProps=_state4.ariaProps,disable=_state4.disable;var placeholder=this.getTooltipContent();var isEmptyTip=this.isEmptyTip(placeholder);var tooltipClass=(0,_classnames2.default)("__react_component_tooltip",{show:this.state.show&&!disable&&!isEmptyTip},{border:this.state.border},{"place-top":this.state.place==="top"},{"place-bottom":this.state.place==="bottom"},{"place-left":this.state.place==="left"},{"place-right":this.state.place==="right"},{"type-dark":this.state.type==="dark"},{"type-success":this.state.type==="success"},{"type-warning":this.state.type==="warning"},{"type-error":this.state.type==="error"},{"type-info":this.state.type==="info"},{"type-light":this.state.type==="light"},{allow_hover:this.props.delayUpdate});var Wrapper=this.props.wrapper;if(ReactTooltip.supportedWrappers.indexOf(Wrapper)<0){Wrapper=ReactTooltip.defaultProps.wrapper}if(html){return _react2.default.createElement(Wrapper,_extends({className:tooltipClass+" "+extraClass,id:this.props.id,ref:function ref(_ref){return _this9.tooltipRef=_ref}},ariaProps,{"data-id":"tooltip",dangerouslySetInnerHTML:{__html:placeholder}}))}else{return _react2.default.createElement(Wrapper,_extends({className:tooltipClass+" "+extraClass,id:this.props.id},ariaProps,{ref:function ref(_ref2){return _this9.tooltipRef=_ref2},"data-id":"tooltip"}),placeholder)}}}]);return ReactTooltip}(_react2.default.Component),_class2.propTypes={children:_propTypes2.default.any,place:_propTypes2.default.string,type:_propTypes2.default.string,effect:_propTypes2.default.string,offset:_propTypes2.default.object,multiline:_propTypes2.default.bool,border:_propTypes2.default.bool,insecure:_propTypes2.default.bool,class:_propTypes2.default.string,className:_propTypes2.default.string,id:_propTypes2.default.string,html:_propTypes2.default.bool,delayHide:_propTypes2.default.number,delayUpdate:_propTypes2.default.number,delayShow:_propTypes2.default.number,event:_propTypes2.default.string,eventOff:_propTypes2.default.string,watchWindow:_propTypes2.default.bool,isCapture:_propTypes2.default.bool,globalEventOff:_propTypes2.default.string,getContent:_propTypes2.default.any,afterShow:_propTypes2.default.func,afterHide:_propTypes2.default.func,disable:_propTypes2.default.bool,scrollHide:_propTypes2.default.bool,resizeHide:_propTypes2.default.bool,wrapper:_propTypes2.default.string},_class2.defaultProps={insecure:true,resizeHide:true,wrapper:"div"},_class2.supportedWrappers=["div","span"],_class2.displayName="ReactTooltip",_temp))||_class)||_class)||_class)||_class)||_class)||_class;module.exports=ReactTooltip}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./decorators/customEvent":13,"./decorators/getEffect":14,"./decorators/isCapture":15,"./decorators/staticMethods":16,"./decorators/trackRemoval":17,"./decorators/windowListener":18,"./style":20,"./utils/aria":21,"./utils/getPosition":22,"./utils/getTipContent":23,"./utils/nodeListToArray":24,classnames:1,"prop-types":10}],20:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default='.__react_component_tooltip{border-radius:3px;display:inline-block;font-size:13px;left:-999em;opacity:0;padding:8px 21px;position:fixed;pointer-events:none;transition:opacity 0.3s ease-out;top:-999em;visibility:hidden;z-index:999}.__react_component_tooltip.allow_hover{pointer-events:auto}.__react_component_tooltip:before,.__react_component_tooltip:after{content:"";width:0;height:0;position:absolute}.__react_component_tooltip.show{opacity:0.9;margin-top:0px;margin-left:0px;visibility:visible}.__react_component_tooltip.type-dark{color:#fff;background-color:#222}.__react_component_tooltip.type-dark.place-top:after{border-top-color:#222;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-dark.place-bottom:after{border-bottom-color:#222;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-dark.place-left:after{border-left-color:#222;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-dark.place-right:after{border-right-color:#222;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-dark.border{border:1px solid #fff}.__react_component_tooltip.type-dark.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-dark.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-dark.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-dark.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-success{color:#fff;background-color:#8DC572}.__react_component_tooltip.type-success.place-top:after{border-top-color:#8DC572;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-success.place-bottom:after{border-bottom-color:#8DC572;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-success.place-left:after{border-left-color:#8DC572;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-success.place-right:after{border-right-color:#8DC572;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-success.border{border:1px solid #fff}.__react_component_tooltip.type-success.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-success.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-success.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-success.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-warning{color:#fff;background-color:#F0AD4E}.__react_component_tooltip.type-warning.place-top:after{border-top-color:#F0AD4E;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-warning.place-bottom:after{border-bottom-color:#F0AD4E;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-warning.place-left:after{border-left-color:#F0AD4E;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-warning.place-right:after{border-right-color:#F0AD4E;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-warning.border{border:1px solid #fff}.__react_component_tooltip.type-warning.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-warning.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-warning.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-warning.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-error{color:#fff;background-color:#BE6464}.__react_component_tooltip.type-error.place-top:after{border-top-color:#BE6464;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-error.place-bottom:after{border-bottom-color:#BE6464;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-error.place-left:after{border-left-color:#BE6464;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-error.place-right:after{border-right-color:#BE6464;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-error.border{border:1px solid #fff}.__react_component_tooltip.type-error.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-error.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-error.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-error.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-info{color:#fff;background-color:#337AB7}.__react_component_tooltip.type-info.place-top:after{border-top-color:#337AB7;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-info.place-bottom:after{border-bottom-color:#337AB7;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-info.place-left:after{border-left-color:#337AB7;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-info.place-right:after{border-right-color:#337AB7;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-info.border{border:1px solid #fff}.__react_component_tooltip.type-info.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-info.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-info.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-info.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-light{color:#222;background-color:#fff}.__react_component_tooltip.type-light.place-top:after{border-top-color:#fff;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-light.place-bottom:after{border-bottom-color:#fff;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-light.place-left:after{border-left-color:#fff;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-light.place-right:after{border-right-color:#fff;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-light.border{border:1px solid #222}.__react_component_tooltip.type-light.border.place-top:before{border-top:8px solid #222}.__react_component_tooltip.type-light.border.place-bottom:before{border-bottom:8px solid #222}.__react_component_tooltip.type-light.border.place-left:before{border-left:8px solid #222}.__react_component_tooltip.type-light.border.place-right:before{border-right:8px solid #222}.__react_component_tooltip.place-top{margin-top:-10px}.__react_component_tooltip.place-top:before{border-left:10px solid transparent;border-right:10px solid transparent;bottom:-8px;left:50%;margin-left:-10px}.__react_component_tooltip.place-top:after{border-left:8px solid transparent;border-right:8px solid transparent;bottom:-6px;left:50%;margin-left:-8px}.__react_component_tooltip.place-bottom{margin-top:10px}.__react_component_tooltip.place-bottom:before{border-left:10px solid transparent;border-right:10px solid transparent;top:-8px;left:50%;margin-left:-10px}.__react_component_tooltip.place-bottom:after{border-left:8px solid transparent;border-right:8px solid transparent;top:-6px;left:50%;margin-left:-8px}.__react_component_tooltip.place-left{margin-left:-10px}.__react_component_tooltip.place-left:before{border-top:6px solid transparent;border-bottom:6px solid transparent;right:-8px;top:50%;margin-top:-5px}.__react_component_tooltip.place-left:after{border-top:5px solid transparent;border-bottom:5px solid transparent;right:-6px;top:50%;margin-top:-4px}.__react_component_tooltip.place-right{margin-left:10px}.__react_component_tooltip.place-right:before{border-top:6px solid transparent;border-bottom:6px solid transparent;left:-8px;top:50%;margin-top:-5px}.__react_component_tooltip.place-right:after{border-top:5px solid transparent;border-bottom:5px solid transparent;left:-6px;top:50%;margin-top:-4px}.__react_component_tooltip .multi-line{display:block;padding:2px 0px;text-align:center}'},{}],21:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.parseAria=parseAria;function parseAria(props){var ariaObj={};Object.keys(props).filter(function(prop){return/(^aria-\w+$|^role$)/.test(prop)}).forEach(function(prop){ariaObj[prop]=props[prop]});return ariaObj}},{}],22:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=function(e,target,node,place,desiredPlace,effect,offset){var _getDimensions=getDimensions(node),tipWidth=_getDimensions.width,tipHeight=_getDimensions.height;var _getDimensions2=getDimensions(target),targetWidth=_getDimensions2.width,targetHeight=_getDimensions2.height;var _getCurrentOffset=getCurrentOffset(e,target,effect),mouseX=_getCurrentOffset.mouseX,mouseY=_getCurrentOffset.mouseY;var defaultOffset=getDefaultPosition(effect,targetWidth,targetHeight,tipWidth,tipHeight);var _calculateOffset=calculateOffset(offset),extraOffset_X=_calculateOffset.extraOffset_X,extraOffset_Y=_calculateOffset.extraOffset_Y;var windowWidth=window.innerWidth;var windowHeight=window.innerHeight;var _getParent=getParent(node),parentTop=_getParent.parentTop,parentLeft=_getParent.parentLeft;var getTipOffsetLeft=function getTipOffsetLeft(place){var offset_X=defaultOffset[place].l;return mouseX+offset_X+extraOffset_X};var getTipOffsetRight=function getTipOffsetRight(place){var offset_X=defaultOffset[place].r;return mouseX+offset_X+extraOffset_X};var getTipOffsetTop=function getTipOffsetTop(place){var offset_Y=defaultOffset[place].t;return mouseY+offset_Y+extraOffset_Y};var getTipOffsetBottom=function getTipOffsetBottom(place){var offset_Y=defaultOffset[place].b;return mouseY+offset_Y+extraOffset_Y};var outsideLeft=function outsideLeft(p){return getTipOffsetLeft(p)<0};var outsideRight=function outsideRight(p){return getTipOffsetRight(p)>windowWidth};var outsideTop=function outsideTop(p){return getTipOffsetTop(p)<0};var outsideBottom=function outsideBottom(p){return getTipOffsetBottom(p)>windowHeight};var outside=function outside(p){return outsideLeft(p)||outsideRight(p)||outsideTop(p)||outsideBottom(p)};var inside=function inside(p){return!outside(p)};var placesList=["top","bottom","left","right"];var insideList=[];for(var i=0;i<4;i++){var p=placesList[i];if(inside(p)){insideList.push(p)}}var isNewState=false;var newPlace=void 0;if(inside(desiredPlace)&&desiredPlace!==place){isNewState=true;newPlace=desiredPlace}else if(insideList.length>0&&outside(desiredPlace)&&outside(place)){isNewState=true;newPlace=insideList[0]}if(isNewState){return{isNewState:true,newState:{place:newPlace}}}return{isNewState:false,position:{left:parseInt(getTipOffsetLeft(place)-parentLeft,10),top:parseInt(getTipOffsetTop(place)-parentTop,10)}}};var getDimensions=function getDimensions(node){var _node$getBoundingClie=node.getBoundingClientRect(),height=_node$getBoundingClie.height,width=_node$getBoundingClie.width;return{height:parseInt(height,10),width:parseInt(width,10)}};var getCurrentOffset=function getCurrentOffset(e,currentTarget,effect){var boundingClientRect=currentTarget.getBoundingClientRect();var targetTop=boundingClientRect.top;var targetLeft=boundingClientRect.left;var _getDimensions3=getDimensions(currentTarget),targetWidth=_getDimensions3.width,targetHeight=_getDimensions3.height;if(effect==="float"){return{mouseX:e.clientX,mouseY:e.clientY}}return{mouseX:targetLeft+targetWidth/2,mouseY:targetTop+targetHeight/2}};var getDefaultPosition=function getDefaultPosition(effect,targetWidth,targetHeight,tipWidth,tipHeight){var top=void 0;var right=void 0;var bottom=void 0;var left=void 0;var disToMouse=3;var triangleHeight=2;var cursorHeight=12;if(effect==="float"){top={l:-(tipWidth/2),r:tipWidth/2,t:-(tipHeight+disToMouse+triangleHeight),b:-disToMouse};bottom={l:-(tipWidth/2),r:tipWidth/2,t:disToMouse+cursorHeight,b:tipHeight+disToMouse+triangleHeight+cursorHeight};left={l:-(tipWidth+disToMouse+triangleHeight),r:-disToMouse,t:-(tipHeight/2),b:tipHeight/2};right={l:disToMouse,r:tipWidth+disToMouse+triangleHeight,t:-(tipHeight/2),b:tipHeight/2}}else if(effect==="solid"){top={l:-(tipWidth/2),r:tipWidth/2,t:-(targetHeight/2+tipHeight+triangleHeight),b:-(targetHeight/2)};bottom={l:-(tipWidth/2),r:tipWidth/2,t:targetHeight/2,b:targetHeight/2+tipHeight+triangleHeight};left={l:-(tipWidth+targetWidth/2+triangleHeight),r:-(targetWidth/2),t:-(tipHeight/2),b:tipHeight/2};right={l:targetWidth/2,r:tipWidth+targetWidth/2+triangleHeight,t:-(tipHeight/2),b:tipHeight/2}}return{top:top,bottom:bottom,left:left,right:right}};var calculateOffset=function calculateOffset(offset){var extraOffset_X=0;var extraOffset_Y=0;if(Object.prototype.toString.apply(offset)==="[object String]"){offset=JSON.parse(offset.toString().replace(/\'/g,'"'))}for(var key in offset){if(key==="top"){extraOffset_Y-=parseInt(offset[key],10)}else if(key==="bottom"){extraOffset_Y+=parseInt(offset[key],10)}else if(key==="left"){extraOffset_X-=parseInt(offset[key],10)}else if(key==="right"){extraOffset_X+=parseInt(offset[key],10)}}return{extraOffset_X:extraOffset_X,extraOffset_Y:extraOffset_Y}};var getParent=function getParent(currentTarget){var currentParent=currentTarget;while(currentParent){if(window.getComputedStyle(currentParent).getPropertyValue("transform")!=="none")break;currentParent=currentParent.parentElement}var parentTop=currentParent&&currentParent.getBoundingClientRect().top||0;var parentLeft=currentParent&&currentParent.getBoundingClientRect().left||0;return{parentTop:parentTop,parentLeft:parentLeft}}},{}],23:[function(require,module,exports){(function(global){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=function(tip,children,getContent,multiline){if(children)return children;if(getContent!==undefined&&getContent!==null)return getContent;if(getContent===null)return null;var regexp=/<br\s*\/?>/;if(!multiline||multiline==="false"||!regexp.test(tip)){return tip}return tip.split(regexp).map(function(d,i){return _react2.default.createElement("span",{key:i,className:"multi-line"},d)})};var _react=typeof window!=="undefined"?window["React"]:typeof global!=="undefined"?global["React"]:null;var _react2=_interopRequireDefault(_react);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{}],24:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=function(nodeList){var length=nodeList.length;if(nodeList.hasOwnProperty){return Array.prototype.slice.call(nodeList)}return new Array(length).fill().map(function(index){return nodeList[index]})}},{}]},{},[19])(19)});

From 19a8a6709c8034f27c80df172c9d2e616227f258 Mon Sep 17 00:00:00 2001
From: Robert Gary <robert.m.gary@hpe.com>
Date: Tue, 28 Aug 2018 10:33:26 -0700
Subject: [PATCH 2/2] feat: Small bug fix to previous commit

Fix an issue in my first commit that caused a dereference of the incorrect "this" object.
---
 src/index.js                    |  6 ++---
 standalone/react-tooltip.js     | 40 ++++++++++++++++-----------------
 standalone/react-tooltip.min.js |  2 +-
 3 files changed, 23 insertions(+), 25 deletions(-)

diff --git a/src/index.js b/src/index.js
index be7d1843d..0af994f0e 100644
--- a/src/index.js
+++ b/src/index.js
@@ -327,11 +327,11 @@ class ReactTooltip extends React.Component {
         self.updateTooltip(e)
 
         if (getContent && Array.isArray(getContent)) {
-          this.intervalUpdateContent = setInterval(() => {
+          self.intervalUpdateContent = setInterval(() => {
             if (self.mount) {
-              const {getContent} = this.props
+              const {getContent} = self.props
               const placeholder = getTipContent(originTooltip, '', getContent[0](), isMultiline)
-              const isEmptyTip = this.isEmptyTip(placeholder)
+              const isEmptyTip = self.isEmptyTip(placeholder)
               self.setState({
                 isEmptyTip
               })
diff --git a/standalone/react-tooltip.js b/standalone/react-tooltip.js
index fc665de61..b6615b641 100644
--- a/standalone/react-tooltip.js
+++ b/standalone/react-tooltip.js
@@ -1908,8 +1908,6 @@ var ReactTooltip = (0, _staticMethods2.default)(_class = (0, _windowListener2.de
       var self = this;
 
       var updateState = function updateState() {
-        var _this5 = this;
-
         self.setState({
           originTooltip: originTooltip,
           isMultiline: isMultiline,
@@ -1931,12 +1929,12 @@ var ReactTooltip = (0, _staticMethods2.default)(_class = (0, _windowListener2.de
           self.updateTooltip(e);
 
           if (getContent && Array.isArray(getContent)) {
-            _this5.intervalUpdateContent = setInterval(function () {
+            self.intervalUpdateContent = setInterval(function () {
               if (self.mount) {
-                var _getContent = _this5.props.getContent;
+                var _getContent = self.props.getContent;
 
                 var placeholder = (0, _getTipContent2.default)(originTooltip, '', _getContent[0](), isMultiline);
-                var isEmptyTip = _this5.isEmptyTip(placeholder);
+                var isEmptyTip = self.isEmptyTip(placeholder);
                 self.setState({
                   isEmptyTip: isEmptyTip
                 });
@@ -1962,7 +1960,7 @@ var ReactTooltip = (0, _staticMethods2.default)(_class = (0, _windowListener2.de
   }, {
     key: 'updateTooltip',
     value: function updateTooltip(e) {
-      var _this6 = this;
+      var _this5 = this;
 
       var _state = this.state,
           delayShow = _state.delayShow,
@@ -1981,13 +1979,13 @@ var ReactTooltip = (0, _staticMethods2.default)(_class = (0, _windowListener2.de
       if (this.isEmptyTip(placeholder) || disable) return; // if the tooltip is empty, disable the tooltip
       var updateState = function updateState() {
         if (Array.isArray(placeholder) && placeholder.length > 0 || placeholder) {
-          var isInvisible = !_this6.state.show;
-          _this6.setState({
+          var isInvisible = !_this5.state.show;
+          _this5.setState({
             currentEvent: e,
             currentTarget: eventTarget,
             show: true
           }, function () {
-            _this6.updatePosition();
+            _this5.updatePosition();
             if (isInvisible && afterShow) afterShow();
           });
         }
@@ -2033,7 +2031,7 @@ var ReactTooltip = (0, _staticMethods2.default)(_class = (0, _windowListener2.de
   }, {
     key: 'hideTooltip',
     value: function hideTooltip(e, hasTarget) {
-      var _this7 = this;
+      var _this6 = this;
 
       var _state2 = this.state,
           delayHide = _state2.delayHide,
@@ -2053,18 +2051,18 @@ var ReactTooltip = (0, _staticMethods2.default)(_class = (0, _windowListener2.de
       }
 
       var resetState = function resetState() {
-        var isVisible = _this7.state.show;
+        var isVisible = _this6.state.show;
         // Check if the mouse is actually over the tooltip, if so don't hide the tooltip
-        if (_this7.mouseOnToolTip()) {
-          _this7.listenForTooltipExit();
+        if (_this6.mouseOnToolTip()) {
+          _this6.listenForTooltipExit();
           return;
         }
-        _this7.removeListenerForTooltipExit();
+        _this6.removeListenerForTooltipExit();
 
-        _this7.setState({
+        _this6.setState({
           show: false
         }, function () {
-          _this7.removeScrollListener();
+          _this6.removeScrollListener();
           if (isVisible && afterHide) afterHide();
         });
       };
@@ -2099,7 +2097,7 @@ var ReactTooltip = (0, _staticMethods2.default)(_class = (0, _windowListener2.de
   }, {
     key: 'updatePosition',
     value: function updatePosition() {
-      var _this8 = this;
+      var _this7 = this;
 
       var _state3 = this.state,
           currentEvent = _state3.currentEvent,
@@ -2115,7 +2113,7 @@ var ReactTooltip = (0, _staticMethods2.default)(_class = (0, _windowListener2.de
       if (result.isNewState) {
         // Switch to reverse placement
         return this.setState(result.newState, function () {
-          _this8.updatePosition();
+          _this7.updatePosition();
         });
       }
       // Set tooltip position
@@ -2155,7 +2153,7 @@ var ReactTooltip = (0, _staticMethods2.default)(_class = (0, _windowListener2.de
   }, {
     key: 'render',
     value: function render() {
-      var _this9 = this;
+      var _this8 = this;
 
       var _state4 = this.state,
           extraClass = _state4.extraClass,
@@ -2176,7 +2174,7 @@ var ReactTooltip = (0, _staticMethods2.default)(_class = (0, _windowListener2.de
         return _react2.default.createElement(Wrapper, _extends({ className: tooltipClass + ' ' + extraClass,
           id: this.props.id,
           ref: function ref(_ref) {
-            return _this9.tooltipRef = _ref;
+            return _this8.tooltipRef = _ref;
           }
         }, ariaProps, {
           'data-id': 'tooltip',
@@ -2188,7 +2186,7 @@ var ReactTooltip = (0, _staticMethods2.default)(_class = (0, _windowListener2.de
             id: this.props.id
           }, ariaProps, {
             ref: function ref(_ref2) {
-              return _this9.tooltipRef = _ref2;
+              return _this8.tooltipRef = _ref2;
             },
             'data-id': 'tooltip' }),
           placeholder
diff --git a/standalone/react-tooltip.min.js b/standalone/react-tooltip.min.js
index 781cf9d41..357fe40a1 100644
--- a/standalone/react-tooltip.min.js
+++ b/standalone/react-tooltip.min.js
@@ -1,2 +1,2 @@
 (function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.ReactTooltip=f()}})(function(){var define,module,exports;return function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r}()({1:[function(require,module,exports){(function(){"use strict";var hasOwn={}.hasOwnProperty;function classNames(){var classes=[];for(var i=0;i<arguments.length;i++){var arg=arguments[i];if(!arg)continue;var argType=typeof arg;if(argType==="string"||argType==="number"){classes.push(arg)}else if(Array.isArray(arg)){classes.push(classNames.apply(null,arg))}else if(argType==="object"){for(var key in arg){if(hasOwn.call(arg,key)&&arg[key]){classes.push(key)}}}}return classes.join(" ")}if(typeof module!=="undefined"&&module.exports){module.exports=classNames}else if(typeof define==="function"&&typeof define.amd==="object"&&define.amd){define("classnames",[],function(){return classNames})}else{window.classNames=classNames}})()},{}],2:[function(require,module,exports){"use strict";function makeEmptyFunction(arg){return function(){return arg}}var emptyFunction=function emptyFunction(){};emptyFunction.thatReturns=makeEmptyFunction;emptyFunction.thatReturnsFalse=makeEmptyFunction(false);emptyFunction.thatReturnsTrue=makeEmptyFunction(true);emptyFunction.thatReturnsNull=makeEmptyFunction(null);emptyFunction.thatReturnsThis=function(){return this};emptyFunction.thatReturnsArgument=function(arg){return arg};module.exports=emptyFunction},{}],3:[function(require,module,exports){(function(process){"use strict";var validateFormat=function validateFormat(format){};if(process.env.NODE_ENV!=="production"){validateFormat=function validateFormat(format){if(format===undefined){throw new Error("invariant requires an error message argument")}}}function invariant(condition,format,a,b,c,d,e,f){validateFormat(format);if(!condition){var error;if(format===undefined){error=new Error("Minified exception occurred; use the non-minified dev environment "+"for the full error message and additional helpful warnings.")}else{var args=[a,b,c,d,e,f];var argIndex=0;error=new Error(format.replace(/%s/g,function(){return args[argIndex++]}));error.name="Invariant Violation"}error.framesToPop=1;throw error}}module.exports=invariant}).call(this,require("_process"))},{_process:6}],4:[function(require,module,exports){(function(process){"use strict";var emptyFunction=require("./emptyFunction");var warning=emptyFunction;if(process.env.NODE_ENV!=="production"){var printWarning=function printWarning(format){for(var _len=arguments.length,args=Array(_len>1?_len-1:0),_key=1;_key<_len;_key++){args[_key-1]=arguments[_key]}var argIndex=0;var message="Warning: "+format.replace(/%s/g,function(){return args[argIndex++]});if(typeof console!=="undefined"){console.error(message)}try{throw new Error(message)}catch(x){}};warning=function warning(condition,format){if(format===undefined){throw new Error("`warning(condition, format, ...args)` requires a warning "+"message argument")}if(format.indexOf("Failed Composite propType: ")===0){return}if(!condition){for(var _len2=arguments.length,args=Array(_len2>2?_len2-2:0),_key2=2;_key2<_len2;_key2++){args[_key2-2]=arguments[_key2]}printWarning.apply(undefined,[format].concat(args))}}}module.exports=warning}).call(this,require("_process"))},{"./emptyFunction":2,_process:6}],5:[function(require,module,exports){"use strict";var getOwnPropertySymbols=Object.getOwnPropertySymbols;var hasOwnProperty=Object.prototype.hasOwnProperty;var propIsEnumerable=Object.prototype.propertyIsEnumerable;function toObject(val){if(val===null||val===undefined){throw new TypeError("Object.assign cannot be called with null or undefined")}return Object(val)}function shouldUseNative(){try{if(!Object.assign){return false}var test1=new String("abc");test1[5]="de";if(Object.getOwnPropertyNames(test1)[0]==="5"){return false}var test2={};for(var i=0;i<10;i++){test2["_"+String.fromCharCode(i)]=i}var order2=Object.getOwnPropertyNames(test2).map(function(n){return test2[n]});if(order2.join("")!=="0123456789"){return false}var test3={};"abcdefghijklmnopqrst".split("").forEach(function(letter){test3[letter]=letter});if(Object.keys(Object.assign({},test3)).join("")!=="abcdefghijklmnopqrst"){return false}return true}catch(err){return false}}module.exports=shouldUseNative()?Object.assign:function(target,source){var from;var to=toObject(target);var symbols;for(var s=1;s<arguments.length;s++){from=Object(arguments[s]);for(var key in from){if(hasOwnProperty.call(from,key)){to[key]=from[key]}}if(getOwnPropertySymbols){symbols=getOwnPropertySymbols(from);for(var i=0;i<symbols.length;i++){if(propIsEnumerable.call(from,symbols[i])){to[symbols[i]]=from[symbols[i]]}}}}return to}},{}],6:[function(require,module,exports){var process=module.exports={};var cachedSetTimeout;var cachedClearTimeout;function defaultSetTimout(){throw new Error("setTimeout has not been defined")}function defaultClearTimeout(){throw new Error("clearTimeout has not been defined")}(function(){try{if(typeof setTimeout==="function"){cachedSetTimeout=setTimeout}else{cachedSetTimeout=defaultSetTimout}}catch(e){cachedSetTimeout=defaultSetTimout}try{if(typeof clearTimeout==="function"){cachedClearTimeout=clearTimeout}else{cachedClearTimeout=defaultClearTimeout}}catch(e){cachedClearTimeout=defaultClearTimeout}})();function runTimeout(fun){if(cachedSetTimeout===setTimeout){return setTimeout(fun,0)}if((cachedSetTimeout===defaultSetTimout||!cachedSetTimeout)&&setTimeout){cachedSetTimeout=setTimeout;return setTimeout(fun,0)}try{return cachedSetTimeout(fun,0)}catch(e){try{return cachedSetTimeout.call(null,fun,0)}catch(e){return cachedSetTimeout.call(this,fun,0)}}}function runClearTimeout(marker){if(cachedClearTimeout===clearTimeout){return clearTimeout(marker)}if((cachedClearTimeout===defaultClearTimeout||!cachedClearTimeout)&&clearTimeout){cachedClearTimeout=clearTimeout;return clearTimeout(marker)}try{return cachedClearTimeout(marker)}catch(e){try{return cachedClearTimeout.call(null,marker)}catch(e){return cachedClearTimeout.call(this,marker)}}}var queue=[];var draining=false;var currentQueue;var queueIndex=-1;function cleanUpNextTick(){if(!draining||!currentQueue){return}draining=false;if(currentQueue.length){queue=currentQueue.concat(queue)}else{queueIndex=-1}if(queue.length){drainQueue()}}function drainQueue(){if(draining){return}var timeout=runTimeout(cleanUpNextTick);draining=true;var len=queue.length;while(len){currentQueue=queue;queue=[];while(++queueIndex<len){if(currentQueue){currentQueue[queueIndex].run()}}queueIndex=-1;len=queue.length}currentQueue=null;draining=false;runClearTimeout(timeout)}process.nextTick=function(fun){var args=new Array(arguments.length-1);if(arguments.length>1){for(var i=1;i<arguments.length;i++){args[i-1]=arguments[i]}}queue.push(new Item(fun,args));if(queue.length===1&&!draining){runTimeout(drainQueue)}};function Item(fun,array){this.fun=fun;this.array=array}Item.prototype.run=function(){this.fun.apply(null,this.array)};process.title="browser";process.browser=true;process.env={};process.argv=[];process.version="";process.versions={};function noop(){}process.on=noop;process.addListener=noop;process.once=noop;process.off=noop;process.removeListener=noop;process.removeAllListeners=noop;process.emit=noop;process.prependListener=noop;process.prependOnceListener=noop;process.listeners=function(name){return[]};process.binding=function(name){throw new Error("process.binding is not supported")};process.cwd=function(){return"/"};process.chdir=function(dir){throw new Error("process.chdir is not supported")};process.umask=function(){return 0}},{}],7:[function(require,module,exports){(function(process){"use strict";if(process.env.NODE_ENV!=="production"){var invariant=require("fbjs/lib/invariant");var warning=require("fbjs/lib/warning");var ReactPropTypesSecret=require("./lib/ReactPropTypesSecret");var loggedTypeFailures={}}function checkPropTypes(typeSpecs,values,location,componentName,getStack){if(process.env.NODE_ENV!=="production"){for(var typeSpecName in typeSpecs){if(typeSpecs.hasOwnProperty(typeSpecName)){var error;try{invariant(typeof typeSpecs[typeSpecName]==="function","%s: %s type `%s` is invalid; it must be a function, usually from "+"the `prop-types` package, but received `%s`.",componentName||"React class",location,typeSpecName,typeof typeSpecs[typeSpecName]);error=typeSpecs[typeSpecName](values,typeSpecName,componentName,location,null,ReactPropTypesSecret)}catch(ex){error=ex}warning(!error||error instanceof Error,"%s: type specification of %s `%s` is invalid; the type checker "+"function must return `null` or an `Error` but returned a %s. "+"You may have forgotten to pass an argument to the type checker "+"creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and "+"shape all require an argument).",componentName||"React class",location,typeSpecName,typeof error);if(error instanceof Error&&!(error.message in loggedTypeFailures)){loggedTypeFailures[error.message]=true;var stack=getStack?getStack():"";warning(false,"Failed %s type: %s%s",location,error.message,stack!=null?stack:"")}}}}}module.exports=checkPropTypes}).call(this,require("_process"))},{"./lib/ReactPropTypesSecret":11,_process:6,"fbjs/lib/invariant":3,"fbjs/lib/warning":4}],8:[function(require,module,exports){"use strict";var emptyFunction=require("fbjs/lib/emptyFunction");var invariant=require("fbjs/lib/invariant");var ReactPropTypesSecret=require("./lib/ReactPropTypesSecret");module.exports=function(){function shim(props,propName,componentName,location,propFullName,secret){if(secret===ReactPropTypesSecret){return}invariant(false,"Calling PropTypes validators directly is not supported by the `prop-types` package. "+"Use PropTypes.checkPropTypes() to call them. "+"Read more at http://fb.me/use-check-prop-types")}shim.isRequired=shim;function getShim(){return shim}var ReactPropTypes={array:shim,bool:shim,func:shim,number:shim,object:shim,string:shim,symbol:shim,any:shim,arrayOf:getShim,element:shim,instanceOf:getShim,node:shim,objectOf:getShim,oneOf:getShim,oneOfType:getShim,shape:getShim,exact:getShim};ReactPropTypes.checkPropTypes=emptyFunction;ReactPropTypes.PropTypes=ReactPropTypes;return ReactPropTypes}},{"./lib/ReactPropTypesSecret":11,"fbjs/lib/emptyFunction":2,"fbjs/lib/invariant":3}],9:[function(require,module,exports){(function(process){"use strict";var emptyFunction=require("fbjs/lib/emptyFunction");var invariant=require("fbjs/lib/invariant");var warning=require("fbjs/lib/warning");var assign=require("object-assign");var ReactPropTypesSecret=require("./lib/ReactPropTypesSecret");var checkPropTypes=require("./checkPropTypes");module.exports=function(isValidElement,throwOnDirectAccess){var ITERATOR_SYMBOL=typeof Symbol==="function"&&Symbol.iterator;var FAUX_ITERATOR_SYMBOL="@@iterator";function getIteratorFn(maybeIterable){var iteratorFn=maybeIterable&&(ITERATOR_SYMBOL&&maybeIterable[ITERATOR_SYMBOL]||maybeIterable[FAUX_ITERATOR_SYMBOL]);if(typeof iteratorFn==="function"){return iteratorFn}}var ANONYMOUS="<<anonymous>>";var ReactPropTypes={array:createPrimitiveTypeChecker("array"),bool:createPrimitiveTypeChecker("boolean"),func:createPrimitiveTypeChecker("function"),number:createPrimitiveTypeChecker("number"),object:createPrimitiveTypeChecker("object"),string:createPrimitiveTypeChecker("string"),symbol:createPrimitiveTypeChecker("symbol"),any:createAnyTypeChecker(),arrayOf:createArrayOfTypeChecker,element:createElementTypeChecker(),instanceOf:createInstanceTypeChecker,node:createNodeChecker(),objectOf:createObjectOfTypeChecker,oneOf:createEnumTypeChecker,oneOfType:createUnionTypeChecker,shape:createShapeTypeChecker,exact:createStrictShapeTypeChecker};function is(x,y){if(x===y){return x!==0||1/x===1/y}else{return x!==x&&y!==y}}function PropTypeError(message){this.message=message;this.stack=""}PropTypeError.prototype=Error.prototype;function createChainableTypeChecker(validate){if(process.env.NODE_ENV!=="production"){var manualPropTypeCallCache={};var manualPropTypeWarningCount=0}function checkType(isRequired,props,propName,componentName,location,propFullName,secret){componentName=componentName||ANONYMOUS;propFullName=propFullName||propName;if(secret!==ReactPropTypesSecret){if(throwOnDirectAccess){invariant(false,"Calling PropTypes validators directly is not supported by the `prop-types` package. "+"Use `PropTypes.checkPropTypes()` to call them. "+"Read more at http://fb.me/use-check-prop-types")}else if(process.env.NODE_ENV!=="production"&&typeof console!=="undefined"){var cacheKey=componentName+":"+propName;if(!manualPropTypeCallCache[cacheKey]&&manualPropTypeWarningCount<3){warning(false,"You are manually calling a React.PropTypes validation "+"function for the `%s` prop on `%s`. This is deprecated "+"and will throw in the standalone `prop-types` package. "+"You may be seeing this warning due to a third-party PropTypes "+"library. See https://fb.me/react-warning-dont-call-proptypes "+"for details.",propFullName,componentName);manualPropTypeCallCache[cacheKey]=true;manualPropTypeWarningCount++}}}if(props[propName]==null){if(isRequired){if(props[propName]===null){return new PropTypeError("The "+location+" `"+propFullName+"` is marked as required "+("in `"+componentName+"`, but its value is `null`."))}return new PropTypeError("The "+location+" `"+propFullName+"` is marked as required in "+("`"+componentName+"`, but its value is `undefined`."))}return null}else{return validate(props,propName,componentName,location,propFullName)}}var chainedCheckType=checkType.bind(null,false);chainedCheckType.isRequired=checkType.bind(null,true);return chainedCheckType}function createPrimitiveTypeChecker(expectedType){function validate(props,propName,componentName,location,propFullName,secret){var propValue=props[propName];var propType=getPropType(propValue);if(propType!==expectedType){var preciseType=getPreciseType(propValue);return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type "+("`"+preciseType+"` supplied to `"+componentName+"`, expected ")+("`"+expectedType+"`."))}return null}return createChainableTypeChecker(validate)}function createAnyTypeChecker(){return createChainableTypeChecker(emptyFunction.thatReturnsNull)}function createArrayOfTypeChecker(typeChecker){function validate(props,propName,componentName,location,propFullName){if(typeof typeChecker!=="function"){return new PropTypeError("Property `"+propFullName+"` of component `"+componentName+"` has invalid PropType notation inside arrayOf.")}var propValue=props[propName];if(!Array.isArray(propValue)){var propType=getPropType(propValue);return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type "+("`"+propType+"` supplied to `"+componentName+"`, expected an array."))}for(var i=0;i<propValue.length;i++){var error=typeChecker(propValue,i,componentName,location,propFullName+"["+i+"]",ReactPropTypesSecret);if(error instanceof Error){return error}}return null}return createChainableTypeChecker(validate)}function createElementTypeChecker(){function validate(props,propName,componentName,location,propFullName){var propValue=props[propName];if(!isValidElement(propValue)){var propType=getPropType(propValue);return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type "+("`"+propType+"` supplied to `"+componentName+"`, expected a single ReactElement."))}return null}return createChainableTypeChecker(validate)}function createInstanceTypeChecker(expectedClass){function validate(props,propName,componentName,location,propFullName){if(!(props[propName]instanceof expectedClass)){var expectedClassName=expectedClass.name||ANONYMOUS;var actualClassName=getClassName(props[propName]);return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type "+("`"+actualClassName+"` supplied to `"+componentName+"`, expected ")+("instance of `"+expectedClassName+"`."))}return null}return createChainableTypeChecker(validate)}function createEnumTypeChecker(expectedValues){if(!Array.isArray(expectedValues)){process.env.NODE_ENV!=="production"?warning(false,"Invalid argument supplied to oneOf, expected an instance of array."):void 0;return emptyFunction.thatReturnsNull}function validate(props,propName,componentName,location,propFullName){var propValue=props[propName];for(var i=0;i<expectedValues.length;i++){if(is(propValue,expectedValues[i])){return null}}var valuesString=JSON.stringify(expectedValues);return new PropTypeError("Invalid "+location+" `"+propFullName+"` of value `"+propValue+"` "+("supplied to `"+componentName+"`, expected one of "+valuesString+"."))}return createChainableTypeChecker(validate)}function createObjectOfTypeChecker(typeChecker){function validate(props,propName,componentName,location,propFullName){if(typeof typeChecker!=="function"){return new PropTypeError("Property `"+propFullName+"` of component `"+componentName+"` has invalid PropType notation inside objectOf.")}var propValue=props[propName];var propType=getPropType(propValue);if(propType!=="object"){return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type "+("`"+propType+"` supplied to `"+componentName+"`, expected an object."))}for(var key in propValue){if(propValue.hasOwnProperty(key)){var error=typeChecker(propValue,key,componentName,location,propFullName+"."+key,ReactPropTypesSecret);if(error instanceof Error){return error}}}return null}return createChainableTypeChecker(validate)}function createUnionTypeChecker(arrayOfTypeCheckers){if(!Array.isArray(arrayOfTypeCheckers)){process.env.NODE_ENV!=="production"?warning(false,"Invalid argument supplied to oneOfType, expected an instance of array."):void 0;return emptyFunction.thatReturnsNull}for(var i=0;i<arrayOfTypeCheckers.length;i++){var checker=arrayOfTypeCheckers[i];if(typeof checker!=="function"){warning(false,"Invalid argument supplied to oneOfType. Expected an array of check functions, but "+"received %s at index %s.",getPostfixForTypeWarning(checker),i);return emptyFunction.thatReturnsNull}}function validate(props,propName,componentName,location,propFullName){for(var i=0;i<arrayOfTypeCheckers.length;i++){var checker=arrayOfTypeCheckers[i];if(checker(props,propName,componentName,location,propFullName,ReactPropTypesSecret)==null){return null}}return new PropTypeError("Invalid "+location+" `"+propFullName+"` supplied to "+("`"+componentName+"`."))}return createChainableTypeChecker(validate)}function createNodeChecker(){function validate(props,propName,componentName,location,propFullName){if(!isNode(props[propName])){return new PropTypeError("Invalid "+location+" `"+propFullName+"` supplied to "+("`"+componentName+"`, expected a ReactNode."))}return null}return createChainableTypeChecker(validate)}function createShapeTypeChecker(shapeTypes){function validate(props,propName,componentName,location,propFullName){var propValue=props[propName];var propType=getPropType(propValue);if(propType!=="object"){return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type `"+propType+"` "+("supplied to `"+componentName+"`, expected `object`."))}for(var key in shapeTypes){var checker=shapeTypes[key];if(!checker){continue}var error=checker(propValue,key,componentName,location,propFullName+"."+key,ReactPropTypesSecret);if(error){return error}}return null}return createChainableTypeChecker(validate)}function createStrictShapeTypeChecker(shapeTypes){function validate(props,propName,componentName,location,propFullName){var propValue=props[propName];var propType=getPropType(propValue);if(propType!=="object"){return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type `"+propType+"` "+("supplied to `"+componentName+"`, expected `object`."))}var allKeys=assign({},props[propName],shapeTypes);for(var key in allKeys){var checker=shapeTypes[key];if(!checker){return new PropTypeError("Invalid "+location+" `"+propFullName+"` key `"+key+"` supplied to `"+componentName+"`."+"\nBad object: "+JSON.stringify(props[propName],null,"  ")+"\nValid keys: "+JSON.stringify(Object.keys(shapeTypes),null,"  "))}var error=checker(propValue,key,componentName,location,propFullName+"."+key,ReactPropTypesSecret);if(error){return error}}return null}return createChainableTypeChecker(validate)}function isNode(propValue){switch(typeof propValue){case"number":case"string":case"undefined":return true;case"boolean":return!propValue;case"object":if(Array.isArray(propValue)){return propValue.every(isNode)}if(propValue===null||isValidElement(propValue)){return true}var iteratorFn=getIteratorFn(propValue);if(iteratorFn){var iterator=iteratorFn.call(propValue);var step;if(iteratorFn!==propValue.entries){while(!(step=iterator.next()).done){if(!isNode(step.value)){return false}}}else{while(!(step=iterator.next()).done){var entry=step.value;if(entry){if(!isNode(entry[1])){return false}}}}}else{return false}return true;default:return false}}function isSymbol(propType,propValue){if(propType==="symbol"){return true}if(propValue["@@toStringTag"]==="Symbol"){return true}if(typeof Symbol==="function"&&propValue instanceof Symbol){return true}return false}function getPropType(propValue){var propType=typeof propValue;if(Array.isArray(propValue)){return"array"}if(propValue instanceof RegExp){return"object"}if(isSymbol(propType,propValue)){return"symbol"}return propType}function getPreciseType(propValue){if(typeof propValue==="undefined"||propValue===null){return""+propValue}var propType=getPropType(propValue);if(propType==="object"){if(propValue instanceof Date){return"date"}else if(propValue instanceof RegExp){return"regexp"}}return propType}function getPostfixForTypeWarning(value){var type=getPreciseType(value);switch(type){case"array":case"object":return"an "+type;case"boolean":case"date":case"regexp":return"a "+type;default:return type}}function getClassName(propValue){if(!propValue.constructor||!propValue.constructor.name){return ANONYMOUS}return propValue.constructor.name}ReactPropTypes.checkPropTypes=checkPropTypes;ReactPropTypes.PropTypes=ReactPropTypes;return ReactPropTypes}}).call(this,require("_process"))},{"./checkPropTypes":7,"./lib/ReactPropTypesSecret":11,_process:6,"fbjs/lib/emptyFunction":2,"fbjs/lib/invariant":3,"fbjs/lib/warning":4,"object-assign":5}],10:[function(require,module,exports){(function(process){if(process.env.NODE_ENV!=="production"){var REACT_ELEMENT_TYPE=typeof Symbol==="function"&&Symbol.for&&Symbol.for("react.element")||60103;var isValidElement=function(object){return typeof object==="object"&&object!==null&&object.$$typeof===REACT_ELEMENT_TYPE};var throwOnDirectAccess=true;module.exports=require("./factoryWithTypeCheckers")(isValidElement,throwOnDirectAccess)}else{module.exports=require("./factoryWithThrowingShims")()}}).call(this,require("_process"))},{"./factoryWithThrowingShims":8,"./factoryWithTypeCheckers":9,_process:6}],11:[function(require,module,exports){"use strict";var ReactPropTypesSecret="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";module.exports=ReactPropTypesSecret},{}],12:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default={GLOBAL:{HIDE:"__react_tooltip_hide_event",REBUILD:"__react_tooltip_rebuild_event",SHOW:"__react_tooltip_show_event"}}},{}],13:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=function(target){target.prototype.isCustomEvent=function(ele){var event=this.state.event;return event||!!ele.getAttribute("data-event")};target.prototype.customBindListener=function(ele){var _this=this;var _state=this.state,event=_state.event,eventOff=_state.eventOff;var dataEvent=ele.getAttribute("data-event")||event;var dataEventOff=ele.getAttribute("data-event-off")||eventOff;dataEvent.split(" ").forEach(function(event){ele.removeEventListener(event,customListeners.get(ele,event));var customListener=checkStatus.bind(_this,dataEventOff);customListeners.set(ele,event,customListener);ele.addEventListener(event,customListener,false)});if(dataEventOff){dataEventOff.split(" ").forEach(function(event){ele.removeEventListener(event,_this.hideTooltip);ele.addEventListener(event,_this.hideTooltip,false)})}};target.prototype.customUnbindListener=function(ele){var _state2=this.state,event=_state2.event,eventOff=_state2.eventOff;var dataEvent=event||ele.getAttribute("data-event");var dataEventOff=eventOff||ele.getAttribute("data-event-off");ele.removeEventListener(dataEvent,customListeners.get(ele,event));if(dataEventOff)ele.removeEventListener(dataEventOff,this.hideTooltip)}};function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}var checkStatus=function checkStatus(dataEventOff,e){var show=this.state.show;var id=this.props.id;var dataIsCapture=e.currentTarget.getAttribute("data-iscapture");var isCapture=dataIsCapture&&dataIsCapture==="true"||this.props.isCapture;var currentItem=e.currentTarget.getAttribute("currentItem");if(!isCapture)e.stopPropagation();if(show&&currentItem==="true"){if(!dataEventOff)this.hideTooltip(e)}else{e.currentTarget.setAttribute("currentItem","true");setUntargetItems(e.currentTarget,this.getTargetArray(id));this.showTooltip(e)}};var setUntargetItems=function setUntargetItems(currentTarget,targetArray){for(var i=0;i<targetArray.length;i++){if(currentTarget!==targetArray[i]){targetArray[i].setAttribute("currentItem","false")}else{targetArray[i].setAttribute("currentItem","true")}}};var customListeners={id:"9b69f92e-d3fe-498b-b1b4-c5e63a51b0cf",set:function set(target,event,listener){if(this.id in target){var map=target[this.id];map[event]=listener}else{Object.defineProperty(target,this.id,{configurable:true,value:_defineProperty({},event,listener)})}},get:function get(target,event){var map=target[this.id];if(map!==undefined){return map[event]}}}},{}],14:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=function(target){target.prototype.getEffect=function(currentTarget){var dataEffect=currentTarget.getAttribute("data-effect");return dataEffect||this.props.effect||"float"}}},{}],15:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=function(target){target.prototype.isCapture=function(currentTarget){return currentTarget&&currentTarget.getAttribute("data-iscapture")==="true"||this.props.isCapture||false}}},{}],16:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=function(target){target.hide=function(target){dispatchGlobalEvent(_constant2.default.GLOBAL.HIDE,{target:target})};target.rebuild=function(){dispatchGlobalEvent(_constant2.default.GLOBAL.REBUILD)};target.show=function(target){dispatchGlobalEvent(_constant2.default.GLOBAL.SHOW,{target:target})};target.prototype.globalRebuild=function(){if(this.mount){this.unbindListener();this.bindListener()}};target.prototype.globalShow=function(event){if(this.mount){var e={currentTarget:event.detail.target};this.showTooltip(e,true)}};target.prototype.globalHide=function(event){if(this.mount){var hasTarget=event&&event.detail&&event.detail.target&&true||false;this.hideTooltip({currentTarget:hasTarget&&event.detail.target},hasTarget)}}};var _constant=require("../constant");var _constant2=_interopRequireDefault(_constant);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var dispatchGlobalEvent=function dispatchGlobalEvent(eventName,opts){var event=void 0;if(typeof window.CustomEvent==="function"){event=new window.CustomEvent(eventName,{detail:opts})}else{event=document.createEvent("Event");event.initEvent(eventName,false,true);event.detail=opts}window.dispatchEvent(event)}},{"../constant":12}],17:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=function(target){target.prototype.bindRemovalTracker=function(){var _this=this;var MutationObserver=getMutationObserverClass();if(MutationObserver==null)return;var observer=new MutationObserver(function(mutations){for(var m1=0;m1<mutations.length;m1++){var mutation=mutations[m1];for(var m2=0;m2<mutation.removedNodes.length;m2++){var element=mutation.removedNodes[m2];if(element===_this.state.currentTarget){_this.hideTooltip();return}}}});observer.observe(window.document,{childList:true,subtree:true});this.removalTracker=observer};target.prototype.unbindRemovalTracker=function(){if(this.removalTracker){this.removalTracker.disconnect();this.removalTracker=null}}};var getMutationObserverClass=function getMutationObserverClass(){return window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver}},{}],18:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=function(target){target.prototype.bindWindowEvents=function(resizeHide){window.removeEventListener(_constant2.default.GLOBAL.HIDE,this.globalHide);window.addEventListener(_constant2.default.GLOBAL.HIDE,this.globalHide,false);window.removeEventListener(_constant2.default.GLOBAL.REBUILD,this.globalRebuild);window.addEventListener(_constant2.default.GLOBAL.REBUILD,this.globalRebuild,false);window.removeEventListener(_constant2.default.GLOBAL.SHOW,this.globalShow);window.addEventListener(_constant2.default.GLOBAL.SHOW,this.globalShow,false);if(resizeHide){window.removeEventListener("resize",this.onWindowResize);window.addEventListener("resize",this.onWindowResize,false)}};target.prototype.unbindWindowEvents=function(){window.removeEventListener(_constant2.default.GLOBAL.HIDE,this.globalHide);window.removeEventListener(_constant2.default.GLOBAL.REBUILD,this.globalRebuild);window.removeEventListener(_constant2.default.GLOBAL.SHOW,this.globalShow);window.removeEventListener("resize",this.onWindowResize)};target.prototype.onWindowResize=function(){if(!this.mount)return;this.hideTooltip()}};var _constant=require("../constant");var _constant2=_interopRequireDefault(_constant);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}},{"../constant":12}],19:[function(require,module,exports){(function(global){"use strict";var _extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key]}}}return target};var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor}}();var _class,_class2,_temp;var _react=typeof window!=="undefined"?window["React"]:typeof global!=="undefined"?global["React"]:null;var _react2=_interopRequireDefault(_react);var _propTypes=require("prop-types");var _propTypes2=_interopRequireDefault(_propTypes);var _reactDom=typeof window!=="undefined"?window["ReactDOM"]:typeof global!=="undefined"?global["ReactDOM"]:null;var _reactDom2=_interopRequireDefault(_reactDom)
-;var _classnames=require("classnames");var _classnames2=_interopRequireDefault(_classnames);var _staticMethods=require("./decorators/staticMethods");var _staticMethods2=_interopRequireDefault(_staticMethods);var _windowListener=require("./decorators/windowListener");var _windowListener2=_interopRequireDefault(_windowListener);var _customEvent=require("./decorators/customEvent");var _customEvent2=_interopRequireDefault(_customEvent);var _isCapture=require("./decorators/isCapture");var _isCapture2=_interopRequireDefault(_isCapture);var _getEffect=require("./decorators/getEffect");var _getEffect2=_interopRequireDefault(_getEffect);var _trackRemoval=require("./decorators/trackRemoval");var _trackRemoval2=_interopRequireDefault(_trackRemoval);var _getPosition=require("./utils/getPosition");var _getPosition2=_interopRequireDefault(_getPosition);var _getTipContent=require("./utils/getTipContent");var _getTipContent2=_interopRequireDefault(_getTipContent);var _aria=require("./utils/aria");var _nodeListToArray=require("./utils/nodeListToArray");var _nodeListToArray2=_interopRequireDefault(_nodeListToArray);var _style=require("./style");var _style2=_interopRequireDefault(_style);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return call&&(typeof call==="object"||typeof call==="function")?call:self}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function, not "+typeof superClass)}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass}var ReactTooltip=(0,_staticMethods2.default)(_class=(0,_windowListener2.default)(_class=(0,_customEvent2.default)(_class=(0,_isCapture2.default)(_class=(0,_getEffect2.default)(_class=(0,_trackRemoval2.default)(_class=(_temp=_class2=function(_React$Component){_inherits(ReactTooltip,_React$Component);function ReactTooltip(props){_classCallCheck(this,ReactTooltip);var _this=_possibleConstructorReturn(this,(ReactTooltip.__proto__||Object.getPrototypeOf(ReactTooltip)).call(this,props));_this.state={place:"top",type:"dark",effect:"float",show:false,border:false,offset:{},extraClass:"",html:false,delayHide:0,delayShow:0,event:props.event||null,eventOff:props.eventOff||null,currentEvent:null,currentTarget:null,ariaProps:(0,_aria.parseAria)(props),isEmptyTip:false,disable:false,originTooltip:null,isMultiline:false};_this.bind(["showTooltip","updateTooltip","hideTooltip","getTooltipContent","globalRebuild","globalShow","globalHide","onWindowResize","mouseOnToolTip"]);_this.mount=true;_this.delayShowLoop=null;_this.delayHideLoop=null;_this.delayReshow=null;_this.intervalUpdateContent=null;return _this}_createClass(ReactTooltip,[{key:"bind",value:function bind(methodArray){var _this2=this;methodArray.forEach(function(method){_this2[method]=_this2[method].bind(_this2)})}},{key:"componentDidMount",value:function componentDidMount(){var _props=this.props,insecure=_props.insecure,resizeHide=_props.resizeHide;if(insecure){this.setStyleHeader()}this.bindListener();this.bindWindowEvents(resizeHide)}},{key:"componentWillReceiveProps",value:function componentWillReceiveProps(props){var ariaProps=this.state.ariaProps;var newAriaProps=(0,_aria.parseAria)(props);var isChanged=Object.keys(newAriaProps).some(function(props){return newAriaProps[props]!==ariaProps[props]});if(isChanged){this.setState({ariaProps:newAriaProps})}}},{key:"componentWillUnmount",value:function componentWillUnmount(){this.mount=false;this.clearTimer();this.unbindListener();this.removeScrollListener();this.unbindWindowEvents()}},{key:"mouseOnToolTip",value:function mouseOnToolTip(){var show=this.state.show;if(show&&this.tooltipRef){if(!this.tooltipRef.matches){this.tooltipRef.matches=this.tooltipRef.msMatchesSelector}return this.tooltipRef.matches(":hover")}return false}},{key:"getTargetArray",value:function getTargetArray(id){var targetArray=void 0;if(!id){targetArray=document.querySelectorAll("[data-tip]:not([data-for])")}else{var escaped=id.replace(/\\/g,"\\\\").replace(/"/g,'\\"');targetArray=document.querySelectorAll('[data-tip][data-for="'+escaped+'"]')}return(0,_nodeListToArray2.default)(targetArray)}},{key:"bindListener",value:function bindListener(){var _this3=this;var _props2=this.props,id=_props2.id,globalEventOff=_props2.globalEventOff;var targetArray=this.getTargetArray(id);targetArray.forEach(function(target){var isCaptureMode=_this3.isCapture(target);var effect=_this3.getEffect(target);if(target.getAttribute("currentItem")===null){target.setAttribute("currentItem","false")}_this3.unbindBasicListener(target);if(_this3.isCustomEvent(target)){_this3.customBindListener(target);return}target.addEventListener("mouseenter",_this3.showTooltip,isCaptureMode);if(effect==="float"){target.addEventListener("mousemove",_this3.updateTooltip,isCaptureMode)}target.addEventListener("mouseleave",_this3.hideTooltip,isCaptureMode)});if(globalEventOff){window.removeEventListener(globalEventOff,this.hideTooltip);window.addEventListener(globalEventOff,this.hideTooltip,false)}this.bindRemovalTracker()}},{key:"unbindListener",value:function unbindListener(){var _this4=this;var _props3=this.props,id=_props3.id,globalEventOff=_props3.globalEventOff;var targetArray=this.getTargetArray(id);targetArray.forEach(function(target){_this4.unbindBasicListener(target);if(_this4.isCustomEvent(target))_this4.customUnbindListener(target)});if(globalEventOff)window.removeEventListener(globalEventOff,this.hideTooltip);this.unbindRemovalTracker()}},{key:"unbindBasicListener",value:function unbindBasicListener(target){var isCaptureMode=this.isCapture(target);target.removeEventListener("mouseenter",this.showTooltip,isCaptureMode);target.removeEventListener("mousemove",this.updateTooltip,isCaptureMode);target.removeEventListener("mouseleave",this.hideTooltip,isCaptureMode)}},{key:"getTooltipContent",value:function getTooltipContent(){var _props4=this.props,getContent=_props4.getContent,children=_props4.children;var content=void 0;if(getContent){if(Array.isArray(getContent)){content=getContent[0]&&getContent[0](this.state.originTooltip)}else{content=getContent(this.state.originTooltip)}}return(0,_getTipContent2.default)(this.state.originTooltip,children,content,this.state.isMultiline)}},{key:"isEmptyTip",value:function isEmptyTip(placeholder){return typeof placeholder==="string"&&placeholder===""||placeholder===null}},{key:"showTooltip",value:function showTooltip(e,isGlobalCall){if(isGlobalCall){var targetArray=this.getTargetArray(this.props.id);var isMyElement=targetArray.some(function(ele){return ele===e.currentTarget});if(!isMyElement)return}var _props5=this.props,multiline=_props5.multiline,getContent=_props5.getContent;var originTooltip=e.currentTarget.getAttribute("data-tip");var isMultiline=e.currentTarget.getAttribute("data-multiline")||multiline||false;var switchToSolid=e instanceof window.FocusEvent||isGlobalCall;var scrollHide=true;if(e.currentTarget.getAttribute("data-scroll-hide")){scrollHide=e.currentTarget.getAttribute("data-scroll-hide")==="true"}else if(this.props.scrollHide!=null){scrollHide=this.props.scrollHide}this.clearTimer();var target=e.currentTarget;var reshowDelay=this.state.show?target.getAttribute("data-delay-update")||this.props.delayUpdate:0;var self=this;var updateState=function updateState(){var _this5=this;self.setState({originTooltip:originTooltip,isMultiline:isMultiline,desiredPlace:target.getAttribute("data-place")||self.props.place||"top",place:target.getAttribute("data-place")||self.props.place||"top",type:target.getAttribute("data-type")||self.props.type||"dark",effect:switchToSolid&&"solid"||self.getEffect(target),offset:target.getAttribute("data-offset")||self.props.offset||{},html:target.getAttribute("data-html")?target.getAttribute("data-html")==="true":self.props.html||false,delayShow:target.getAttribute("data-delay-show")||self.props.delayShow||0,delayHide:target.getAttribute("data-delay-hide")||self.props.delayHide||0,delayUpdate:target.getAttribute("data-delay-update")||self.props.delayUpdate||0,border:target.getAttribute("data-border")?target.getAttribute("data-border")==="true":self.props.border||false,extraClass:target.getAttribute("data-class")||self.props.class||self.props.className||"",disable:target.getAttribute("data-tip-disable")?target.getAttribute("data-tip-disable")==="true":self.props.disable||false,currentTarget:target},function(){if(scrollHide)self.addScrollListener(self.state.currentTarget);self.updateTooltip(e);if(getContent&&Array.isArray(getContent)){_this5.intervalUpdateContent=setInterval(function(){if(self.mount){var _getContent=_this5.props.getContent;var placeholder=(0,_getTipContent2.default)(originTooltip,"",_getContent[0](),isMultiline);var isEmptyTip=_this5.isEmptyTip(placeholder);self.setState({isEmptyTip:isEmptyTip});self.updatePosition()}},getContent[1])}})};if(reshowDelay){this.delayReshow=setTimeout(updateState,reshowDelay)}else{updateState()}}},{key:"updateTooltip",value:function updateTooltip(e){var _this6=this;var _state=this.state,delayShow=_state.delayShow,disable=_state.disable;var afterShow=this.props.afterShow;var placeholder=this.getTooltipContent();var delayTime=parseInt(delayShow,10);var eventTarget=e.currentTarget||e.target;if(this.mouseOnToolTip()){return}if(this.isEmptyTip(placeholder)||disable)return;var updateState=function updateState(){if(Array.isArray(placeholder)&&placeholder.length>0||placeholder){var isInvisible=!_this6.state.show;_this6.setState({currentEvent:e,currentTarget:eventTarget,show:true},function(){_this6.updatePosition();if(isInvisible&&afterShow)afterShow()})}};clearTimeout(this.delayShowLoop);if(delayShow){this.delayShowLoop=setTimeout(updateState,delayTime)}else{updateState()}}},{key:"listenForTooltipExit",value:function listenForTooltipExit(){var show=this.state.show;if(show&&this.tooltipRef){this.tooltipRef.addEventListener("mouseleave",this.hideTooltip)}}},{key:"removeListenerForTooltipExit",value:function removeListenerForTooltipExit(){var show=this.state.show;if(show&&this.tooltipRef){this.tooltipRef.removeEventListener("mouseleave",this.hideTooltip)}}},{key:"hideTooltip",value:function hideTooltip(e,hasTarget){var _this7=this;var _state2=this.state,delayHide=_state2.delayHide,disable=_state2.disable;var afterHide=this.props.afterHide;var placeholder=this.getTooltipContent();if(!this.mount)return;if(this.isEmptyTip(placeholder)||disable)return;if(hasTarget){var targetArray=this.getTargetArray(this.props.id);var isMyElement=targetArray.some(function(ele){return ele===e.currentTarget});if(!isMyElement||!this.state.show)return}var resetState=function resetState(){var isVisible=_this7.state.show;if(_this7.mouseOnToolTip()){_this7.listenForTooltipExit();return}_this7.removeListenerForTooltipExit();_this7.setState({show:false},function(){_this7.removeScrollListener();if(isVisible&&afterHide)afterHide()})};this.clearTimer();if(delayHide){this.delayHideLoop=setTimeout(resetState,parseInt(delayHide,10))}else{resetState()}}},{key:"addScrollListener",value:function addScrollListener(currentTarget){var isCaptureMode=this.isCapture(currentTarget);window.addEventListener("scroll",this.hideTooltip,isCaptureMode)}},{key:"removeScrollListener",value:function removeScrollListener(){window.removeEventListener("scroll",this.hideTooltip)}},{key:"updatePosition",value:function updatePosition(){var _this8=this;var _state3=this.state,currentEvent=_state3.currentEvent,currentTarget=_state3.currentTarget,place=_state3.place,desiredPlace=_state3.desiredPlace,effect=_state3.effect,offset=_state3.offset;var node=_reactDom2.default.findDOMNode(this);var result=(0,_getPosition2.default)(currentEvent,currentTarget,node,place,desiredPlace,effect,offset);if(result.isNewState){return this.setState(result.newState,function(){_this8.updatePosition()})}node.style.left=result.position.left+"px";node.style.top=result.position.top+"px"}},{key:"setStyleHeader",value:function setStyleHeader(){var head=document.getElementsByTagName("head")[0];if(!head.querySelector('style[id="react-tooltip"]')){var tag=document.createElement("style");tag.id="react-tooltip";tag.innerHTML=_style2.default;head.insertBefore(tag,head.firstChild)}}},{key:"clearTimer",value:function clearTimer(){clearTimeout(this.delayShowLoop);clearTimeout(this.delayHideLoop);clearTimeout(this.delayReshow);clearInterval(this.intervalUpdateContent)}},{key:"render",value:function render(){var _this9=this;var _state4=this.state,extraClass=_state4.extraClass,html=_state4.html,ariaProps=_state4.ariaProps,disable=_state4.disable;var placeholder=this.getTooltipContent();var isEmptyTip=this.isEmptyTip(placeholder);var tooltipClass=(0,_classnames2.default)("__react_component_tooltip",{show:this.state.show&&!disable&&!isEmptyTip},{border:this.state.border},{"place-top":this.state.place==="top"},{"place-bottom":this.state.place==="bottom"},{"place-left":this.state.place==="left"},{"place-right":this.state.place==="right"},{"type-dark":this.state.type==="dark"},{"type-success":this.state.type==="success"},{"type-warning":this.state.type==="warning"},{"type-error":this.state.type==="error"},{"type-info":this.state.type==="info"},{"type-light":this.state.type==="light"},{allow_hover:this.props.delayUpdate});var Wrapper=this.props.wrapper;if(ReactTooltip.supportedWrappers.indexOf(Wrapper)<0){Wrapper=ReactTooltip.defaultProps.wrapper}if(html){return _react2.default.createElement(Wrapper,_extends({className:tooltipClass+" "+extraClass,id:this.props.id,ref:function ref(_ref){return _this9.tooltipRef=_ref}},ariaProps,{"data-id":"tooltip",dangerouslySetInnerHTML:{__html:placeholder}}))}else{return _react2.default.createElement(Wrapper,_extends({className:tooltipClass+" "+extraClass,id:this.props.id},ariaProps,{ref:function ref(_ref2){return _this9.tooltipRef=_ref2},"data-id":"tooltip"}),placeholder)}}}]);return ReactTooltip}(_react2.default.Component),_class2.propTypes={children:_propTypes2.default.any,place:_propTypes2.default.string,type:_propTypes2.default.string,effect:_propTypes2.default.string,offset:_propTypes2.default.object,multiline:_propTypes2.default.bool,border:_propTypes2.default.bool,insecure:_propTypes2.default.bool,class:_propTypes2.default.string,className:_propTypes2.default.string,id:_propTypes2.default.string,html:_propTypes2.default.bool,delayHide:_propTypes2.default.number,delayUpdate:_propTypes2.default.number,delayShow:_propTypes2.default.number,event:_propTypes2.default.string,eventOff:_propTypes2.default.string,watchWindow:_propTypes2.default.bool,isCapture:_propTypes2.default.bool,globalEventOff:_propTypes2.default.string,getContent:_propTypes2.default.any,afterShow:_propTypes2.default.func,afterHide:_propTypes2.default.func,disable:_propTypes2.default.bool,scrollHide:_propTypes2.default.bool,resizeHide:_propTypes2.default.bool,wrapper:_propTypes2.default.string},_class2.defaultProps={insecure:true,resizeHide:true,wrapper:"div"},_class2.supportedWrappers=["div","span"],_class2.displayName="ReactTooltip",_temp))||_class)||_class)||_class)||_class)||_class)||_class;module.exports=ReactTooltip}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./decorators/customEvent":13,"./decorators/getEffect":14,"./decorators/isCapture":15,"./decorators/staticMethods":16,"./decorators/trackRemoval":17,"./decorators/windowListener":18,"./style":20,"./utils/aria":21,"./utils/getPosition":22,"./utils/getTipContent":23,"./utils/nodeListToArray":24,classnames:1,"prop-types":10}],20:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default='.__react_component_tooltip{border-radius:3px;display:inline-block;font-size:13px;left:-999em;opacity:0;padding:8px 21px;position:fixed;pointer-events:none;transition:opacity 0.3s ease-out;top:-999em;visibility:hidden;z-index:999}.__react_component_tooltip.allow_hover{pointer-events:auto}.__react_component_tooltip:before,.__react_component_tooltip:after{content:"";width:0;height:0;position:absolute}.__react_component_tooltip.show{opacity:0.9;margin-top:0px;margin-left:0px;visibility:visible}.__react_component_tooltip.type-dark{color:#fff;background-color:#222}.__react_component_tooltip.type-dark.place-top:after{border-top-color:#222;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-dark.place-bottom:after{border-bottom-color:#222;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-dark.place-left:after{border-left-color:#222;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-dark.place-right:after{border-right-color:#222;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-dark.border{border:1px solid #fff}.__react_component_tooltip.type-dark.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-dark.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-dark.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-dark.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-success{color:#fff;background-color:#8DC572}.__react_component_tooltip.type-success.place-top:after{border-top-color:#8DC572;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-success.place-bottom:after{border-bottom-color:#8DC572;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-success.place-left:after{border-left-color:#8DC572;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-success.place-right:after{border-right-color:#8DC572;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-success.border{border:1px solid #fff}.__react_component_tooltip.type-success.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-success.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-success.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-success.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-warning{color:#fff;background-color:#F0AD4E}.__react_component_tooltip.type-warning.place-top:after{border-top-color:#F0AD4E;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-warning.place-bottom:after{border-bottom-color:#F0AD4E;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-warning.place-left:after{border-left-color:#F0AD4E;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-warning.place-right:after{border-right-color:#F0AD4E;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-warning.border{border:1px solid #fff}.__react_component_tooltip.type-warning.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-warning.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-warning.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-warning.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-error{color:#fff;background-color:#BE6464}.__react_component_tooltip.type-error.place-top:after{border-top-color:#BE6464;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-error.place-bottom:after{border-bottom-color:#BE6464;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-error.place-left:after{border-left-color:#BE6464;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-error.place-right:after{border-right-color:#BE6464;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-error.border{border:1px solid #fff}.__react_component_tooltip.type-error.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-error.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-error.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-error.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-info{color:#fff;background-color:#337AB7}.__react_component_tooltip.type-info.place-top:after{border-top-color:#337AB7;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-info.place-bottom:after{border-bottom-color:#337AB7;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-info.place-left:after{border-left-color:#337AB7;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-info.place-right:after{border-right-color:#337AB7;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-info.border{border:1px solid #fff}.__react_component_tooltip.type-info.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-info.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-info.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-info.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-light{color:#222;background-color:#fff}.__react_component_tooltip.type-light.place-top:after{border-top-color:#fff;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-light.place-bottom:after{border-bottom-color:#fff;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-light.place-left:after{border-left-color:#fff;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-light.place-right:after{border-right-color:#fff;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-light.border{border:1px solid #222}.__react_component_tooltip.type-light.border.place-top:before{border-top:8px solid #222}.__react_component_tooltip.type-light.border.place-bottom:before{border-bottom:8px solid #222}.__react_component_tooltip.type-light.border.place-left:before{border-left:8px solid #222}.__react_component_tooltip.type-light.border.place-right:before{border-right:8px solid #222}.__react_component_tooltip.place-top{margin-top:-10px}.__react_component_tooltip.place-top:before{border-left:10px solid transparent;border-right:10px solid transparent;bottom:-8px;left:50%;margin-left:-10px}.__react_component_tooltip.place-top:after{border-left:8px solid transparent;border-right:8px solid transparent;bottom:-6px;left:50%;margin-left:-8px}.__react_component_tooltip.place-bottom{margin-top:10px}.__react_component_tooltip.place-bottom:before{border-left:10px solid transparent;border-right:10px solid transparent;top:-8px;left:50%;margin-left:-10px}.__react_component_tooltip.place-bottom:after{border-left:8px solid transparent;border-right:8px solid transparent;top:-6px;left:50%;margin-left:-8px}.__react_component_tooltip.place-left{margin-left:-10px}.__react_component_tooltip.place-left:before{border-top:6px solid transparent;border-bottom:6px solid transparent;right:-8px;top:50%;margin-top:-5px}.__react_component_tooltip.place-left:after{border-top:5px solid transparent;border-bottom:5px solid transparent;right:-6px;top:50%;margin-top:-4px}.__react_component_tooltip.place-right{margin-left:10px}.__react_component_tooltip.place-right:before{border-top:6px solid transparent;border-bottom:6px solid transparent;left:-8px;top:50%;margin-top:-5px}.__react_component_tooltip.place-right:after{border-top:5px solid transparent;border-bottom:5px solid transparent;left:-6px;top:50%;margin-top:-4px}.__react_component_tooltip .multi-line{display:block;padding:2px 0px;text-align:center}'},{}],21:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.parseAria=parseAria;function parseAria(props){var ariaObj={};Object.keys(props).filter(function(prop){return/(^aria-\w+$|^role$)/.test(prop)}).forEach(function(prop){ariaObj[prop]=props[prop]});return ariaObj}},{}],22:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=function(e,target,node,place,desiredPlace,effect,offset){var _getDimensions=getDimensions(node),tipWidth=_getDimensions.width,tipHeight=_getDimensions.height;var _getDimensions2=getDimensions(target),targetWidth=_getDimensions2.width,targetHeight=_getDimensions2.height;var _getCurrentOffset=getCurrentOffset(e,target,effect),mouseX=_getCurrentOffset.mouseX,mouseY=_getCurrentOffset.mouseY;var defaultOffset=getDefaultPosition(effect,targetWidth,targetHeight,tipWidth,tipHeight);var _calculateOffset=calculateOffset(offset),extraOffset_X=_calculateOffset.extraOffset_X,extraOffset_Y=_calculateOffset.extraOffset_Y;var windowWidth=window.innerWidth;var windowHeight=window.innerHeight;var _getParent=getParent(node),parentTop=_getParent.parentTop,parentLeft=_getParent.parentLeft;var getTipOffsetLeft=function getTipOffsetLeft(place){var offset_X=defaultOffset[place].l;return mouseX+offset_X+extraOffset_X};var getTipOffsetRight=function getTipOffsetRight(place){var offset_X=defaultOffset[place].r;return mouseX+offset_X+extraOffset_X};var getTipOffsetTop=function getTipOffsetTop(place){var offset_Y=defaultOffset[place].t;return mouseY+offset_Y+extraOffset_Y};var getTipOffsetBottom=function getTipOffsetBottom(place){var offset_Y=defaultOffset[place].b;return mouseY+offset_Y+extraOffset_Y};var outsideLeft=function outsideLeft(p){return getTipOffsetLeft(p)<0};var outsideRight=function outsideRight(p){return getTipOffsetRight(p)>windowWidth};var outsideTop=function outsideTop(p){return getTipOffsetTop(p)<0};var outsideBottom=function outsideBottom(p){return getTipOffsetBottom(p)>windowHeight};var outside=function outside(p){return outsideLeft(p)||outsideRight(p)||outsideTop(p)||outsideBottom(p)};var inside=function inside(p){return!outside(p)};var placesList=["top","bottom","left","right"];var insideList=[];for(var i=0;i<4;i++){var p=placesList[i];if(inside(p)){insideList.push(p)}}var isNewState=false;var newPlace=void 0;if(inside(desiredPlace)&&desiredPlace!==place){isNewState=true;newPlace=desiredPlace}else if(insideList.length>0&&outside(desiredPlace)&&outside(place)){isNewState=true;newPlace=insideList[0]}if(isNewState){return{isNewState:true,newState:{place:newPlace}}}return{isNewState:false,position:{left:parseInt(getTipOffsetLeft(place)-parentLeft,10),top:parseInt(getTipOffsetTop(place)-parentTop,10)}}};var getDimensions=function getDimensions(node){var _node$getBoundingClie=node.getBoundingClientRect(),height=_node$getBoundingClie.height,width=_node$getBoundingClie.width;return{height:parseInt(height,10),width:parseInt(width,10)}};var getCurrentOffset=function getCurrentOffset(e,currentTarget,effect){var boundingClientRect=currentTarget.getBoundingClientRect();var targetTop=boundingClientRect.top;var targetLeft=boundingClientRect.left;var _getDimensions3=getDimensions(currentTarget),targetWidth=_getDimensions3.width,targetHeight=_getDimensions3.height;if(effect==="float"){return{mouseX:e.clientX,mouseY:e.clientY}}return{mouseX:targetLeft+targetWidth/2,mouseY:targetTop+targetHeight/2}};var getDefaultPosition=function getDefaultPosition(effect,targetWidth,targetHeight,tipWidth,tipHeight){var top=void 0;var right=void 0;var bottom=void 0;var left=void 0;var disToMouse=3;var triangleHeight=2;var cursorHeight=12;if(effect==="float"){top={l:-(tipWidth/2),r:tipWidth/2,t:-(tipHeight+disToMouse+triangleHeight),b:-disToMouse};bottom={l:-(tipWidth/2),r:tipWidth/2,t:disToMouse+cursorHeight,b:tipHeight+disToMouse+triangleHeight+cursorHeight};left={l:-(tipWidth+disToMouse+triangleHeight),r:-disToMouse,t:-(tipHeight/2),b:tipHeight/2};right={l:disToMouse,r:tipWidth+disToMouse+triangleHeight,t:-(tipHeight/2),b:tipHeight/2}}else if(effect==="solid"){top={l:-(tipWidth/2),r:tipWidth/2,t:-(targetHeight/2+tipHeight+triangleHeight),b:-(targetHeight/2)};bottom={l:-(tipWidth/2),r:tipWidth/2,t:targetHeight/2,b:targetHeight/2+tipHeight+triangleHeight};left={l:-(tipWidth+targetWidth/2+triangleHeight),r:-(targetWidth/2),t:-(tipHeight/2),b:tipHeight/2};right={l:targetWidth/2,r:tipWidth+targetWidth/2+triangleHeight,t:-(tipHeight/2),b:tipHeight/2}}return{top:top,bottom:bottom,left:left,right:right}};var calculateOffset=function calculateOffset(offset){var extraOffset_X=0;var extraOffset_Y=0;if(Object.prototype.toString.apply(offset)==="[object String]"){offset=JSON.parse(offset.toString().replace(/\'/g,'"'))}for(var key in offset){if(key==="top"){extraOffset_Y-=parseInt(offset[key],10)}else if(key==="bottom"){extraOffset_Y+=parseInt(offset[key],10)}else if(key==="left"){extraOffset_X-=parseInt(offset[key],10)}else if(key==="right"){extraOffset_X+=parseInt(offset[key],10)}}return{extraOffset_X:extraOffset_X,extraOffset_Y:extraOffset_Y}};var getParent=function getParent(currentTarget){var currentParent=currentTarget;while(currentParent){if(window.getComputedStyle(currentParent).getPropertyValue("transform")!=="none")break;currentParent=currentParent.parentElement}var parentTop=currentParent&&currentParent.getBoundingClientRect().top||0;var parentLeft=currentParent&&currentParent.getBoundingClientRect().left||0;return{parentTop:parentTop,parentLeft:parentLeft}}},{}],23:[function(require,module,exports){(function(global){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=function(tip,children,getContent,multiline){if(children)return children;if(getContent!==undefined&&getContent!==null)return getContent;if(getContent===null)return null;var regexp=/<br\s*\/?>/;if(!multiline||multiline==="false"||!regexp.test(tip)){return tip}return tip.split(regexp).map(function(d,i){return _react2.default.createElement("span",{key:i,className:"multi-line"},d)})};var _react=typeof window!=="undefined"?window["React"]:typeof global!=="undefined"?global["React"]:null;var _react2=_interopRequireDefault(_react);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{}],24:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=function(nodeList){var length=nodeList.length;if(nodeList.hasOwnProperty){return Array.prototype.slice.call(nodeList)}return new Array(length).fill().map(function(index){return nodeList[index]})}},{}]},{},[19])(19)});
+;var _classnames=require("classnames");var _classnames2=_interopRequireDefault(_classnames);var _staticMethods=require("./decorators/staticMethods");var _staticMethods2=_interopRequireDefault(_staticMethods);var _windowListener=require("./decorators/windowListener");var _windowListener2=_interopRequireDefault(_windowListener);var _customEvent=require("./decorators/customEvent");var _customEvent2=_interopRequireDefault(_customEvent);var _isCapture=require("./decorators/isCapture");var _isCapture2=_interopRequireDefault(_isCapture);var _getEffect=require("./decorators/getEffect");var _getEffect2=_interopRequireDefault(_getEffect);var _trackRemoval=require("./decorators/trackRemoval");var _trackRemoval2=_interopRequireDefault(_trackRemoval);var _getPosition=require("./utils/getPosition");var _getPosition2=_interopRequireDefault(_getPosition);var _getTipContent=require("./utils/getTipContent");var _getTipContent2=_interopRequireDefault(_getTipContent);var _aria=require("./utils/aria");var _nodeListToArray=require("./utils/nodeListToArray");var _nodeListToArray2=_interopRequireDefault(_nodeListToArray);var _style=require("./style");var _style2=_interopRequireDefault(_style);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return call&&(typeof call==="object"||typeof call==="function")?call:self}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function, not "+typeof superClass)}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass}var ReactTooltip=(0,_staticMethods2.default)(_class=(0,_windowListener2.default)(_class=(0,_customEvent2.default)(_class=(0,_isCapture2.default)(_class=(0,_getEffect2.default)(_class=(0,_trackRemoval2.default)(_class=(_temp=_class2=function(_React$Component){_inherits(ReactTooltip,_React$Component);function ReactTooltip(props){_classCallCheck(this,ReactTooltip);var _this=_possibleConstructorReturn(this,(ReactTooltip.__proto__||Object.getPrototypeOf(ReactTooltip)).call(this,props));_this.state={place:"top",type:"dark",effect:"float",show:false,border:false,offset:{},extraClass:"",html:false,delayHide:0,delayShow:0,event:props.event||null,eventOff:props.eventOff||null,currentEvent:null,currentTarget:null,ariaProps:(0,_aria.parseAria)(props),isEmptyTip:false,disable:false,originTooltip:null,isMultiline:false};_this.bind(["showTooltip","updateTooltip","hideTooltip","getTooltipContent","globalRebuild","globalShow","globalHide","onWindowResize","mouseOnToolTip"]);_this.mount=true;_this.delayShowLoop=null;_this.delayHideLoop=null;_this.delayReshow=null;_this.intervalUpdateContent=null;return _this}_createClass(ReactTooltip,[{key:"bind",value:function bind(methodArray){var _this2=this;methodArray.forEach(function(method){_this2[method]=_this2[method].bind(_this2)})}},{key:"componentDidMount",value:function componentDidMount(){var _props=this.props,insecure=_props.insecure,resizeHide=_props.resizeHide;if(insecure){this.setStyleHeader()}this.bindListener();this.bindWindowEvents(resizeHide)}},{key:"componentWillReceiveProps",value:function componentWillReceiveProps(props){var ariaProps=this.state.ariaProps;var newAriaProps=(0,_aria.parseAria)(props);var isChanged=Object.keys(newAriaProps).some(function(props){return newAriaProps[props]!==ariaProps[props]});if(isChanged){this.setState({ariaProps:newAriaProps})}}},{key:"componentWillUnmount",value:function componentWillUnmount(){this.mount=false;this.clearTimer();this.unbindListener();this.removeScrollListener();this.unbindWindowEvents()}},{key:"mouseOnToolTip",value:function mouseOnToolTip(){var show=this.state.show;if(show&&this.tooltipRef){if(!this.tooltipRef.matches){this.tooltipRef.matches=this.tooltipRef.msMatchesSelector}return this.tooltipRef.matches(":hover")}return false}},{key:"getTargetArray",value:function getTargetArray(id){var targetArray=void 0;if(!id){targetArray=document.querySelectorAll("[data-tip]:not([data-for])")}else{var escaped=id.replace(/\\/g,"\\\\").replace(/"/g,'\\"');targetArray=document.querySelectorAll('[data-tip][data-for="'+escaped+'"]')}return(0,_nodeListToArray2.default)(targetArray)}},{key:"bindListener",value:function bindListener(){var _this3=this;var _props2=this.props,id=_props2.id,globalEventOff=_props2.globalEventOff;var targetArray=this.getTargetArray(id);targetArray.forEach(function(target){var isCaptureMode=_this3.isCapture(target);var effect=_this3.getEffect(target);if(target.getAttribute("currentItem")===null){target.setAttribute("currentItem","false")}_this3.unbindBasicListener(target);if(_this3.isCustomEvent(target)){_this3.customBindListener(target);return}target.addEventListener("mouseenter",_this3.showTooltip,isCaptureMode);if(effect==="float"){target.addEventListener("mousemove",_this3.updateTooltip,isCaptureMode)}target.addEventListener("mouseleave",_this3.hideTooltip,isCaptureMode)});if(globalEventOff){window.removeEventListener(globalEventOff,this.hideTooltip);window.addEventListener(globalEventOff,this.hideTooltip,false)}this.bindRemovalTracker()}},{key:"unbindListener",value:function unbindListener(){var _this4=this;var _props3=this.props,id=_props3.id,globalEventOff=_props3.globalEventOff;var targetArray=this.getTargetArray(id);targetArray.forEach(function(target){_this4.unbindBasicListener(target);if(_this4.isCustomEvent(target))_this4.customUnbindListener(target)});if(globalEventOff)window.removeEventListener(globalEventOff,this.hideTooltip);this.unbindRemovalTracker()}},{key:"unbindBasicListener",value:function unbindBasicListener(target){var isCaptureMode=this.isCapture(target);target.removeEventListener("mouseenter",this.showTooltip,isCaptureMode);target.removeEventListener("mousemove",this.updateTooltip,isCaptureMode);target.removeEventListener("mouseleave",this.hideTooltip,isCaptureMode)}},{key:"getTooltipContent",value:function getTooltipContent(){var _props4=this.props,getContent=_props4.getContent,children=_props4.children;var content=void 0;if(getContent){if(Array.isArray(getContent)){content=getContent[0]&&getContent[0](this.state.originTooltip)}else{content=getContent(this.state.originTooltip)}}return(0,_getTipContent2.default)(this.state.originTooltip,children,content,this.state.isMultiline)}},{key:"isEmptyTip",value:function isEmptyTip(placeholder){return typeof placeholder==="string"&&placeholder===""||placeholder===null}},{key:"showTooltip",value:function showTooltip(e,isGlobalCall){if(isGlobalCall){var targetArray=this.getTargetArray(this.props.id);var isMyElement=targetArray.some(function(ele){return ele===e.currentTarget});if(!isMyElement)return}var _props5=this.props,multiline=_props5.multiline,getContent=_props5.getContent;var originTooltip=e.currentTarget.getAttribute("data-tip");var isMultiline=e.currentTarget.getAttribute("data-multiline")||multiline||false;var switchToSolid=e instanceof window.FocusEvent||isGlobalCall;var scrollHide=true;if(e.currentTarget.getAttribute("data-scroll-hide")){scrollHide=e.currentTarget.getAttribute("data-scroll-hide")==="true"}else if(this.props.scrollHide!=null){scrollHide=this.props.scrollHide}this.clearTimer();var target=e.currentTarget;var reshowDelay=this.state.show?target.getAttribute("data-delay-update")||this.props.delayUpdate:0;var self=this;var updateState=function updateState(){self.setState({originTooltip:originTooltip,isMultiline:isMultiline,desiredPlace:target.getAttribute("data-place")||self.props.place||"top",place:target.getAttribute("data-place")||self.props.place||"top",type:target.getAttribute("data-type")||self.props.type||"dark",effect:switchToSolid&&"solid"||self.getEffect(target),offset:target.getAttribute("data-offset")||self.props.offset||{},html:target.getAttribute("data-html")?target.getAttribute("data-html")==="true":self.props.html||false,delayShow:target.getAttribute("data-delay-show")||self.props.delayShow||0,delayHide:target.getAttribute("data-delay-hide")||self.props.delayHide||0,delayUpdate:target.getAttribute("data-delay-update")||self.props.delayUpdate||0,border:target.getAttribute("data-border")?target.getAttribute("data-border")==="true":self.props.border||false,extraClass:target.getAttribute("data-class")||self.props.class||self.props.className||"",disable:target.getAttribute("data-tip-disable")?target.getAttribute("data-tip-disable")==="true":self.props.disable||false,currentTarget:target},function(){if(scrollHide)self.addScrollListener(self.state.currentTarget);self.updateTooltip(e);if(getContent&&Array.isArray(getContent)){self.intervalUpdateContent=setInterval(function(){if(self.mount){var _getContent=self.props.getContent;var placeholder=(0,_getTipContent2.default)(originTooltip,"",_getContent[0](),isMultiline);var isEmptyTip=self.isEmptyTip(placeholder);self.setState({isEmptyTip:isEmptyTip});self.updatePosition()}},getContent[1])}})};if(reshowDelay){this.delayReshow=setTimeout(updateState,reshowDelay)}else{updateState()}}},{key:"updateTooltip",value:function updateTooltip(e){var _this5=this;var _state=this.state,delayShow=_state.delayShow,disable=_state.disable;var afterShow=this.props.afterShow;var placeholder=this.getTooltipContent();var delayTime=parseInt(delayShow,10);var eventTarget=e.currentTarget||e.target;if(this.mouseOnToolTip()){return}if(this.isEmptyTip(placeholder)||disable)return;var updateState=function updateState(){if(Array.isArray(placeholder)&&placeholder.length>0||placeholder){var isInvisible=!_this5.state.show;_this5.setState({currentEvent:e,currentTarget:eventTarget,show:true},function(){_this5.updatePosition();if(isInvisible&&afterShow)afterShow()})}};clearTimeout(this.delayShowLoop);if(delayShow){this.delayShowLoop=setTimeout(updateState,delayTime)}else{updateState()}}},{key:"listenForTooltipExit",value:function listenForTooltipExit(){var show=this.state.show;if(show&&this.tooltipRef){this.tooltipRef.addEventListener("mouseleave",this.hideTooltip)}}},{key:"removeListenerForTooltipExit",value:function removeListenerForTooltipExit(){var show=this.state.show;if(show&&this.tooltipRef){this.tooltipRef.removeEventListener("mouseleave",this.hideTooltip)}}},{key:"hideTooltip",value:function hideTooltip(e,hasTarget){var _this6=this;var _state2=this.state,delayHide=_state2.delayHide,disable=_state2.disable;var afterHide=this.props.afterHide;var placeholder=this.getTooltipContent();if(!this.mount)return;if(this.isEmptyTip(placeholder)||disable)return;if(hasTarget){var targetArray=this.getTargetArray(this.props.id);var isMyElement=targetArray.some(function(ele){return ele===e.currentTarget});if(!isMyElement||!this.state.show)return}var resetState=function resetState(){var isVisible=_this6.state.show;if(_this6.mouseOnToolTip()){_this6.listenForTooltipExit();return}_this6.removeListenerForTooltipExit();_this6.setState({show:false},function(){_this6.removeScrollListener();if(isVisible&&afterHide)afterHide()})};this.clearTimer();if(delayHide){this.delayHideLoop=setTimeout(resetState,parseInt(delayHide,10))}else{resetState()}}},{key:"addScrollListener",value:function addScrollListener(currentTarget){var isCaptureMode=this.isCapture(currentTarget);window.addEventListener("scroll",this.hideTooltip,isCaptureMode)}},{key:"removeScrollListener",value:function removeScrollListener(){window.removeEventListener("scroll",this.hideTooltip)}},{key:"updatePosition",value:function updatePosition(){var _this7=this;var _state3=this.state,currentEvent=_state3.currentEvent,currentTarget=_state3.currentTarget,place=_state3.place,desiredPlace=_state3.desiredPlace,effect=_state3.effect,offset=_state3.offset;var node=_reactDom2.default.findDOMNode(this);var result=(0,_getPosition2.default)(currentEvent,currentTarget,node,place,desiredPlace,effect,offset);if(result.isNewState){return this.setState(result.newState,function(){_this7.updatePosition()})}node.style.left=result.position.left+"px";node.style.top=result.position.top+"px"}},{key:"setStyleHeader",value:function setStyleHeader(){var head=document.getElementsByTagName("head")[0];if(!head.querySelector('style[id="react-tooltip"]')){var tag=document.createElement("style");tag.id="react-tooltip";tag.innerHTML=_style2.default;head.insertBefore(tag,head.firstChild)}}},{key:"clearTimer",value:function clearTimer(){clearTimeout(this.delayShowLoop);clearTimeout(this.delayHideLoop);clearTimeout(this.delayReshow);clearInterval(this.intervalUpdateContent)}},{key:"render",value:function render(){var _this8=this;var _state4=this.state,extraClass=_state4.extraClass,html=_state4.html,ariaProps=_state4.ariaProps,disable=_state4.disable;var placeholder=this.getTooltipContent();var isEmptyTip=this.isEmptyTip(placeholder);var tooltipClass=(0,_classnames2.default)("__react_component_tooltip",{show:this.state.show&&!disable&&!isEmptyTip},{border:this.state.border},{"place-top":this.state.place==="top"},{"place-bottom":this.state.place==="bottom"},{"place-left":this.state.place==="left"},{"place-right":this.state.place==="right"},{"type-dark":this.state.type==="dark"},{"type-success":this.state.type==="success"},{"type-warning":this.state.type==="warning"},{"type-error":this.state.type==="error"},{"type-info":this.state.type==="info"},{"type-light":this.state.type==="light"},{allow_hover:this.props.delayUpdate});var Wrapper=this.props.wrapper;if(ReactTooltip.supportedWrappers.indexOf(Wrapper)<0){Wrapper=ReactTooltip.defaultProps.wrapper}if(html){return _react2.default.createElement(Wrapper,_extends({className:tooltipClass+" "+extraClass,id:this.props.id,ref:function ref(_ref){return _this8.tooltipRef=_ref}},ariaProps,{"data-id":"tooltip",dangerouslySetInnerHTML:{__html:placeholder}}))}else{return _react2.default.createElement(Wrapper,_extends({className:tooltipClass+" "+extraClass,id:this.props.id},ariaProps,{ref:function ref(_ref2){return _this8.tooltipRef=_ref2},"data-id":"tooltip"}),placeholder)}}}]);return ReactTooltip}(_react2.default.Component),_class2.propTypes={children:_propTypes2.default.any,place:_propTypes2.default.string,type:_propTypes2.default.string,effect:_propTypes2.default.string,offset:_propTypes2.default.object,multiline:_propTypes2.default.bool,border:_propTypes2.default.bool,insecure:_propTypes2.default.bool,class:_propTypes2.default.string,className:_propTypes2.default.string,id:_propTypes2.default.string,html:_propTypes2.default.bool,delayHide:_propTypes2.default.number,delayUpdate:_propTypes2.default.number,delayShow:_propTypes2.default.number,event:_propTypes2.default.string,eventOff:_propTypes2.default.string,watchWindow:_propTypes2.default.bool,isCapture:_propTypes2.default.bool,globalEventOff:_propTypes2.default.string,getContent:_propTypes2.default.any,afterShow:_propTypes2.default.func,afterHide:_propTypes2.default.func,disable:_propTypes2.default.bool,scrollHide:_propTypes2.default.bool,resizeHide:_propTypes2.default.bool,wrapper:_propTypes2.default.string},_class2.defaultProps={insecure:true,resizeHide:true,wrapper:"div"},_class2.supportedWrappers=["div","span"],_class2.displayName="ReactTooltip",_temp))||_class)||_class)||_class)||_class)||_class)||_class;module.exports=ReactTooltip}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./decorators/customEvent":13,"./decorators/getEffect":14,"./decorators/isCapture":15,"./decorators/staticMethods":16,"./decorators/trackRemoval":17,"./decorators/windowListener":18,"./style":20,"./utils/aria":21,"./utils/getPosition":22,"./utils/getTipContent":23,"./utils/nodeListToArray":24,classnames:1,"prop-types":10}],20:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default='.__react_component_tooltip{border-radius:3px;display:inline-block;font-size:13px;left:-999em;opacity:0;padding:8px 21px;position:fixed;pointer-events:none;transition:opacity 0.3s ease-out;top:-999em;visibility:hidden;z-index:999}.__react_component_tooltip.allow_hover{pointer-events:auto}.__react_component_tooltip:before,.__react_component_tooltip:after{content:"";width:0;height:0;position:absolute}.__react_component_tooltip.show{opacity:0.9;margin-top:0px;margin-left:0px;visibility:visible}.__react_component_tooltip.type-dark{color:#fff;background-color:#222}.__react_component_tooltip.type-dark.place-top:after{border-top-color:#222;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-dark.place-bottom:after{border-bottom-color:#222;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-dark.place-left:after{border-left-color:#222;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-dark.place-right:after{border-right-color:#222;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-dark.border{border:1px solid #fff}.__react_component_tooltip.type-dark.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-dark.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-dark.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-dark.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-success{color:#fff;background-color:#8DC572}.__react_component_tooltip.type-success.place-top:after{border-top-color:#8DC572;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-success.place-bottom:after{border-bottom-color:#8DC572;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-success.place-left:after{border-left-color:#8DC572;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-success.place-right:after{border-right-color:#8DC572;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-success.border{border:1px solid #fff}.__react_component_tooltip.type-success.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-success.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-success.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-success.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-warning{color:#fff;background-color:#F0AD4E}.__react_component_tooltip.type-warning.place-top:after{border-top-color:#F0AD4E;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-warning.place-bottom:after{border-bottom-color:#F0AD4E;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-warning.place-left:after{border-left-color:#F0AD4E;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-warning.place-right:after{border-right-color:#F0AD4E;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-warning.border{border:1px solid #fff}.__react_component_tooltip.type-warning.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-warning.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-warning.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-warning.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-error{color:#fff;background-color:#BE6464}.__react_component_tooltip.type-error.place-top:after{border-top-color:#BE6464;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-error.place-bottom:after{border-bottom-color:#BE6464;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-error.place-left:after{border-left-color:#BE6464;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-error.place-right:after{border-right-color:#BE6464;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-error.border{border:1px solid #fff}.__react_component_tooltip.type-error.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-error.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-error.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-error.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-info{color:#fff;background-color:#337AB7}.__react_component_tooltip.type-info.place-top:after{border-top-color:#337AB7;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-info.place-bottom:after{border-bottom-color:#337AB7;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-info.place-left:after{border-left-color:#337AB7;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-info.place-right:after{border-right-color:#337AB7;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-info.border{border:1px solid #fff}.__react_component_tooltip.type-info.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-info.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-info.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-info.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-light{color:#222;background-color:#fff}.__react_component_tooltip.type-light.place-top:after{border-top-color:#fff;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-light.place-bottom:after{border-bottom-color:#fff;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-light.place-left:after{border-left-color:#fff;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-light.place-right:after{border-right-color:#fff;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-light.border{border:1px solid #222}.__react_component_tooltip.type-light.border.place-top:before{border-top:8px solid #222}.__react_component_tooltip.type-light.border.place-bottom:before{border-bottom:8px solid #222}.__react_component_tooltip.type-light.border.place-left:before{border-left:8px solid #222}.__react_component_tooltip.type-light.border.place-right:before{border-right:8px solid #222}.__react_component_tooltip.place-top{margin-top:-10px}.__react_component_tooltip.place-top:before{border-left:10px solid transparent;border-right:10px solid transparent;bottom:-8px;left:50%;margin-left:-10px}.__react_component_tooltip.place-top:after{border-left:8px solid transparent;border-right:8px solid transparent;bottom:-6px;left:50%;margin-left:-8px}.__react_component_tooltip.place-bottom{margin-top:10px}.__react_component_tooltip.place-bottom:before{border-left:10px solid transparent;border-right:10px solid transparent;top:-8px;left:50%;margin-left:-10px}.__react_component_tooltip.place-bottom:after{border-left:8px solid transparent;border-right:8px solid transparent;top:-6px;left:50%;margin-left:-8px}.__react_component_tooltip.place-left{margin-left:-10px}.__react_component_tooltip.place-left:before{border-top:6px solid transparent;border-bottom:6px solid transparent;right:-8px;top:50%;margin-top:-5px}.__react_component_tooltip.place-left:after{border-top:5px solid transparent;border-bottom:5px solid transparent;right:-6px;top:50%;margin-top:-4px}.__react_component_tooltip.place-right{margin-left:10px}.__react_component_tooltip.place-right:before{border-top:6px solid transparent;border-bottom:6px solid transparent;left:-8px;top:50%;margin-top:-5px}.__react_component_tooltip.place-right:after{border-top:5px solid transparent;border-bottom:5px solid transparent;left:-6px;top:50%;margin-top:-4px}.__react_component_tooltip .multi-line{display:block;padding:2px 0px;text-align:center}'},{}],21:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.parseAria=parseAria;function parseAria(props){var ariaObj={};Object.keys(props).filter(function(prop){return/(^aria-\w+$|^role$)/.test(prop)}).forEach(function(prop){ariaObj[prop]=props[prop]});return ariaObj}},{}],22:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=function(e,target,node,place,desiredPlace,effect,offset){var _getDimensions=getDimensions(node),tipWidth=_getDimensions.width,tipHeight=_getDimensions.height;var _getDimensions2=getDimensions(target),targetWidth=_getDimensions2.width,targetHeight=_getDimensions2.height;var _getCurrentOffset=getCurrentOffset(e,target,effect),mouseX=_getCurrentOffset.mouseX,mouseY=_getCurrentOffset.mouseY;var defaultOffset=getDefaultPosition(effect,targetWidth,targetHeight,tipWidth,tipHeight);var _calculateOffset=calculateOffset(offset),extraOffset_X=_calculateOffset.extraOffset_X,extraOffset_Y=_calculateOffset.extraOffset_Y;var windowWidth=window.innerWidth;var windowHeight=window.innerHeight;var _getParent=getParent(node),parentTop=_getParent.parentTop,parentLeft=_getParent.parentLeft;var getTipOffsetLeft=function getTipOffsetLeft(place){var offset_X=defaultOffset[place].l;return mouseX+offset_X+extraOffset_X};var getTipOffsetRight=function getTipOffsetRight(place){var offset_X=defaultOffset[place].r;return mouseX+offset_X+extraOffset_X};var getTipOffsetTop=function getTipOffsetTop(place){var offset_Y=defaultOffset[place].t;return mouseY+offset_Y+extraOffset_Y};var getTipOffsetBottom=function getTipOffsetBottom(place){var offset_Y=defaultOffset[place].b;return mouseY+offset_Y+extraOffset_Y};var outsideLeft=function outsideLeft(p){return getTipOffsetLeft(p)<0};var outsideRight=function outsideRight(p){return getTipOffsetRight(p)>windowWidth};var outsideTop=function outsideTop(p){return getTipOffsetTop(p)<0};var outsideBottom=function outsideBottom(p){return getTipOffsetBottom(p)>windowHeight};var outside=function outside(p){return outsideLeft(p)||outsideRight(p)||outsideTop(p)||outsideBottom(p)};var inside=function inside(p){return!outside(p)};var placesList=["top","bottom","left","right"];var insideList=[];for(var i=0;i<4;i++){var p=placesList[i];if(inside(p)){insideList.push(p)}}var isNewState=false;var newPlace=void 0;if(inside(desiredPlace)&&desiredPlace!==place){isNewState=true;newPlace=desiredPlace}else if(insideList.length>0&&outside(desiredPlace)&&outside(place)){isNewState=true;newPlace=insideList[0]}if(isNewState){return{isNewState:true,newState:{place:newPlace}}}return{isNewState:false,position:{left:parseInt(getTipOffsetLeft(place)-parentLeft,10),top:parseInt(getTipOffsetTop(place)-parentTop,10)}}};var getDimensions=function getDimensions(node){var _node$getBoundingClie=node.getBoundingClientRect(),height=_node$getBoundingClie.height,width=_node$getBoundingClie.width;return{height:parseInt(height,10),width:parseInt(width,10)}};var getCurrentOffset=function getCurrentOffset(e,currentTarget,effect){var boundingClientRect=currentTarget.getBoundingClientRect();var targetTop=boundingClientRect.top;var targetLeft=boundingClientRect.left;var _getDimensions3=getDimensions(currentTarget),targetWidth=_getDimensions3.width,targetHeight=_getDimensions3.height;if(effect==="float"){return{mouseX:e.clientX,mouseY:e.clientY}}return{mouseX:targetLeft+targetWidth/2,mouseY:targetTop+targetHeight/2}};var getDefaultPosition=function getDefaultPosition(effect,targetWidth,targetHeight,tipWidth,tipHeight){var top=void 0;var right=void 0;var bottom=void 0;var left=void 0;var disToMouse=3;var triangleHeight=2;var cursorHeight=12;if(effect==="float"){top={l:-(tipWidth/2),r:tipWidth/2,t:-(tipHeight+disToMouse+triangleHeight),b:-disToMouse};bottom={l:-(tipWidth/2),r:tipWidth/2,t:disToMouse+cursorHeight,b:tipHeight+disToMouse+triangleHeight+cursorHeight};left={l:-(tipWidth+disToMouse+triangleHeight),r:-disToMouse,t:-(tipHeight/2),b:tipHeight/2};right={l:disToMouse,r:tipWidth+disToMouse+triangleHeight,t:-(tipHeight/2),b:tipHeight/2}}else if(effect==="solid"){top={l:-(tipWidth/2),r:tipWidth/2,t:-(targetHeight/2+tipHeight+triangleHeight),b:-(targetHeight/2)};bottom={l:-(tipWidth/2),r:tipWidth/2,t:targetHeight/2,b:targetHeight/2+tipHeight+triangleHeight};left={l:-(tipWidth+targetWidth/2+triangleHeight),r:-(targetWidth/2),t:-(tipHeight/2),b:tipHeight/2};right={l:targetWidth/2,r:tipWidth+targetWidth/2+triangleHeight,t:-(tipHeight/2),b:tipHeight/2}}return{top:top,bottom:bottom,left:left,right:right}};var calculateOffset=function calculateOffset(offset){var extraOffset_X=0;var extraOffset_Y=0;if(Object.prototype.toString.apply(offset)==="[object String]"){offset=JSON.parse(offset.toString().replace(/\'/g,'"'))}for(var key in offset){if(key==="top"){extraOffset_Y-=parseInt(offset[key],10)}else if(key==="bottom"){extraOffset_Y+=parseInt(offset[key],10)}else if(key==="left"){extraOffset_X-=parseInt(offset[key],10)}else if(key==="right"){extraOffset_X+=parseInt(offset[key],10)}}return{extraOffset_X:extraOffset_X,extraOffset_Y:extraOffset_Y}};var getParent=function getParent(currentTarget){var currentParent=currentTarget;while(currentParent){if(window.getComputedStyle(currentParent).getPropertyValue("transform")!=="none")break;currentParent=currentParent.parentElement}var parentTop=currentParent&&currentParent.getBoundingClientRect().top||0;var parentLeft=currentParent&&currentParent.getBoundingClientRect().left||0;return{parentTop:parentTop,parentLeft:parentLeft}}},{}],23:[function(require,module,exports){(function(global){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=function(tip,children,getContent,multiline){if(children)return children;if(getContent!==undefined&&getContent!==null)return getContent;if(getContent===null)return null;var regexp=/<br\s*\/?>/;if(!multiline||multiline==="false"||!regexp.test(tip)){return tip}return tip.split(regexp).map(function(d,i){return _react2.default.createElement("span",{key:i,className:"multi-line"},d)})};var _react=typeof window!=="undefined"?window["React"]:typeof global!=="undefined"?global["React"]:null;var _react2=_interopRequireDefault(_react);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{}],24:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=function(nodeList){var length=nodeList.length;if(nodeList.hasOwnProperty){return Array.prototype.slice.call(nodeList)}return new Array(length).fill().map(function(index){return nodeList[index]})}},{}]},{},[19])(19)});