UNPKG

azure-devops-ui

Version:

React components for building web UI in Azure DevOps

1 lines 1.86 kB
import{__assign,__extends}from"tslib";import"../../CommonImports";import"../../Core/core.css";import*as React from"react";import{isFunctionalChildren}from"../../Util";var MouseWithin=function(e){function t(){var n=null!==e&&e.apply(this,arguments)||this;return n.enterTimeout=0,n.delayTimeout=0,n.mouse=!1,n.onMouseEnter=function(t){var o;n.mouse||(n.mouse=!0,n.delayTimeout&&(window.clearTimeout(n.delayTimeout),n.delayTimeout=0),n.props.enterDelay?(t.persist(),o=t.currentTarget,n.enterTimeout=window.setTimeout(function(){n.enterTimeout=0;var e=t.currentTarget;t.currentTarget=o,n.mouseEntered(t),t.currentTarget=e},n.props.enterDelay)):n.mouseEntered(t))},n.onMouseLeave=function(e){n.mouse&&(n.mouse=!1,n.enterTimeout&&(window.clearTimeout(n.enterTimeout),n.enterTimeout=0),n.props.leaveDelay?(e.persist(),n.delayTimeout=window.setTimeout(function(){n.delayTimeout=0,n.mouseLeft(e)},n.props.leaveDelay)):n.mouseLeft(e))},n}return __extends(t,e),t.prototype.render=function(){var e,t={onMouseEnter:this.onMouseEnter,onMouseLeave:this.onMouseLeave};return isFunctionalChildren(this.props.children)?(e=this.props.children,t.hasMouse=this.mouse,e(t)):(e=React.Children.only(this.props.children),React.cloneElement(e,__assign(__assign({},e.props),t),e.props.children))},t.prototype.componentWillUnmount=function(){this.enterTimeout&&window.clearTimeout(this.enterTimeout),this.delayTimeout&&window.clearTimeout(this.delayTimeout)},t.prototype.hasMouse=function(){return this.mouse},t.prototype.mouseEntered=function(e){this.props.updateStateOnMouseChange&&this.forceUpdate(),this.props.onMouseEnter&&this.props.onMouseEnter(e)},t.prototype.mouseLeft=function(e){this.props.updateStateOnMouseChange&&this.forceUpdate(),this.props.onMouseLeave&&this.props.onMouseLeave(e)},t.defaultProps={updateStateOnMouseChange:!0},t}(React.Component);export{MouseWithin};