87ca6bc2f88dfbf6e85e37181a72f9b6.json 77.2 KB
{"ast":null,"code":"import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\nimport ReactDOM from 'react-dom';\nimport raf from \"rc-util/es/raf\";\nimport contains from \"rc-util/es/Dom/contains\";\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport { composeRef, supportRef } from \"rc-util/es/ref\";\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport Portal from \"rc-util/es/Portal\";\nimport classNames from 'classnames';\nimport { getAlignFromPlacement, getAlignPopupClassName } from './utils/alignUtil';\nimport Popup from './Popup';\nimport TriggerContext from './context';\n\nfunction noop() {}\n\nfunction returnEmptyString() {\n  return '';\n}\n\nfunction returnDocument(element) {\n  if (element) {\n    return element.ownerDocument;\n  }\n\n  return window.document;\n}\n\nvar ALL_HANDLERS = ['onClick', 'onMouseDown', 'onTouchStart', 'onMouseEnter', 'onMouseLeave', 'onFocus', 'onBlur', 'onContextMenu'];\n/**\n * Internal usage. Do not use in your code since this will be removed.\n */\n\nexport function generateTrigger(PortalComponent) {\n  var Trigger = /*#__PURE__*/function (_React$Component) {\n    _inherits(Trigger, _React$Component);\n\n    var _super = _createSuper(Trigger);\n\n    function Trigger(props) {\n      var _this;\n\n      _classCallCheck(this, Trigger);\n\n      _this = _super.call(this, props);\n      _this.popupRef = React.createRef();\n      _this.triggerRef = React.createRef();\n\n      _this.onMouseEnter = function (e) {\n        var mouseEnterDelay = _this.props.mouseEnterDelay;\n\n        _this.fireEvents('onMouseEnter', e);\n\n        _this.delaySetPopupVisible(true, mouseEnterDelay, mouseEnterDelay ? null : e);\n      };\n\n      _this.onMouseMove = function (e) {\n        _this.fireEvents('onMouseMove', e);\n\n        _this.setPoint(e);\n      };\n\n      _this.onMouseLeave = function (e) {\n        _this.fireEvents('onMouseLeave', e);\n\n        _this.delaySetPopupVisible(false, _this.props.mouseLeaveDelay);\n      };\n\n      _this.onPopupMouseEnter = function () {\n        _this.clearDelayTimer();\n      };\n\n      _this.onPopupMouseLeave = function (e) {\n        var _this$popupRef$curren; // https://github.com/react-component/trigger/pull/13\n        // react bug?\n\n\n        if (e.relatedTarget && !e.relatedTarget.setTimeout && contains((_this$popupRef$curren = _this.popupRef.current) === null || _this$popupRef$curren === void 0 ? void 0 : _this$popupRef$curren.getElement(), e.relatedTarget)) {\n          return;\n        }\n\n        _this.delaySetPopupVisible(false, _this.props.mouseLeaveDelay);\n      };\n\n      _this.onFocus = function (e) {\n        _this.fireEvents('onFocus', e); // incase focusin and focusout\n\n\n        _this.clearDelayTimer();\n\n        if (_this.isFocusToShow()) {\n          _this.focusTime = Date.now();\n\n          _this.delaySetPopupVisible(true, _this.props.focusDelay);\n        }\n      };\n\n      _this.onMouseDown = function (e) {\n        _this.fireEvents('onMouseDown', e);\n\n        _this.preClickTime = Date.now();\n      };\n\n      _this.onTouchStart = function (e) {\n        _this.fireEvents('onTouchStart', e);\n\n        _this.preTouchTime = Date.now();\n      };\n\n      _this.onBlur = function (e) {\n        _this.fireEvents('onBlur', e);\n\n        _this.clearDelayTimer();\n\n        if (_this.isBlurToHide()) {\n          _this.delaySetPopupVisible(false, _this.props.blurDelay);\n        }\n      };\n\n      _this.onContextMenu = function (e) {\n        e.preventDefault();\n\n        _this.fireEvents('onContextMenu', e);\n\n        _this.setPopupVisible(true, e);\n      };\n\n      _this.onContextMenuClose = function () {\n        if (_this.isContextMenuToShow()) {\n          _this.close();\n        }\n      };\n\n      _this.onClick = function (event) {\n        _this.fireEvents('onClick', event); // focus will trigger click\n\n\n        if (_this.focusTime) {\n          var preTime;\n\n          if (_this.preClickTime && _this.preTouchTime) {\n            preTime = Math.min(_this.preClickTime, _this.preTouchTime);\n          } else if (_this.preClickTime) {\n            preTime = _this.preClickTime;\n          } else if (_this.preTouchTime) {\n            preTime = _this.preTouchTime;\n          }\n\n          if (Math.abs(preTime - _this.focusTime) < 20) {\n            return;\n          }\n\n          _this.focusTime = 0;\n        }\n\n        _this.preClickTime = 0;\n        _this.preTouchTime = 0; // Only prevent default when all the action is click.\n        // https://github.com/ant-design/ant-design/issues/17043\n        // https://github.com/ant-design/ant-design/issues/17291\n\n        if (_this.isClickToShow() && (_this.isClickToHide() || _this.isBlurToHide()) && event && event.preventDefault) {\n          event.preventDefault();\n        }\n\n        var nextVisible = !_this.state.popupVisible;\n\n        if (_this.isClickToHide() && !nextVisible || nextVisible && _this.isClickToShow()) {\n          _this.setPopupVisible(!_this.state.popupVisible, event);\n        }\n      };\n\n      _this.onPopupMouseDown = function () {\n        _this.hasPopupMouseDown = true;\n        clearTimeout(_this.mouseDownTimeout);\n        _this.mouseDownTimeout = window.setTimeout(function () {\n          _this.hasPopupMouseDown = false;\n        }, 0);\n\n        if (_this.context) {\n          var _this$context;\n\n          (_this$context = _this.context).onPopupMouseDown.apply(_this$context, arguments);\n        }\n      };\n\n      _this.onDocumentClick = function (event) {\n        if (_this.props.mask && !_this.props.maskClosable) {\n          return;\n        }\n\n        var target = event.target;\n\n        var root = _this.getRootDomNode();\n\n        var popupNode = _this.getPopupDomNode();\n\n        if (!contains(root, target) && !contains(popupNode, target) && !_this.hasPopupMouseDown) {\n          _this.close();\n        }\n      };\n\n      _this.getRootDomNode = function () {\n        var getTriggerDOMNode = _this.props.getTriggerDOMNode;\n\n        if (getTriggerDOMNode) {\n          return getTriggerDOMNode(_this.triggerRef.current);\n        }\n\n        try {\n          var domNode = findDOMNode(_this.triggerRef.current);\n\n          if (domNode) {\n            return domNode;\n          }\n        } catch (err) {// Do nothing\n        }\n\n        return ReactDOM.findDOMNode(_assertThisInitialized(_this));\n      };\n\n      _this.getPopupClassNameFromAlign = function (align) {\n        var className = [];\n        var _this$props = _this.props,\n            popupPlacement = _this$props.popupPlacement,\n            builtinPlacements = _this$props.builtinPlacements,\n            prefixCls = _this$props.prefixCls,\n            alignPoint = _this$props.alignPoint,\n            getPopupClassNameFromAlign = _this$props.getPopupClassNameFromAlign;\n\n        if (popupPlacement && builtinPlacements) {\n          className.push(getAlignPopupClassName(builtinPlacements, prefixCls, align, alignPoint));\n        }\n\n        if (getPopupClassNameFromAlign) {\n          className.push(getPopupClassNameFromAlign(align));\n        }\n\n        return className.join(' ');\n      };\n\n      _this.getComponent = function () {\n        var _this$props2 = _this.props,\n            prefixCls = _this$props2.prefixCls,\n            destroyPopupOnHide = _this$props2.destroyPopupOnHide,\n            popupClassName = _this$props2.popupClassName,\n            onPopupAlign = _this$props2.onPopupAlign,\n            popupMotion = _this$props2.popupMotion,\n            popupAnimation = _this$props2.popupAnimation,\n            popupTransitionName = _this$props2.popupTransitionName,\n            popupStyle = _this$props2.popupStyle,\n            mask = _this$props2.mask,\n            maskAnimation = _this$props2.maskAnimation,\n            maskTransitionName = _this$props2.maskTransitionName,\n            maskMotion = _this$props2.maskMotion,\n            zIndex = _this$props2.zIndex,\n            popup = _this$props2.popup,\n            stretch = _this$props2.stretch,\n            alignPoint = _this$props2.alignPoint,\n            mobile = _this$props2.mobile;\n        var _this$state = _this.state,\n            popupVisible = _this$state.popupVisible,\n            point = _this$state.point;\n\n        var align = _this.getPopupAlign();\n\n        var mouseProps = {};\n\n        if (_this.isMouseEnterToShow()) {\n          mouseProps.onMouseEnter = _this.onPopupMouseEnter;\n        }\n\n        if (_this.isMouseLeaveToHide()) {\n          mouseProps.onMouseLeave = _this.onPopupMouseLeave;\n        }\n\n        mouseProps.onMouseDown = _this.onPopupMouseDown;\n        mouseProps.onTouchStart = _this.onPopupMouseDown;\n        return React.createElement(Popup, Object.assign({\n          prefixCls: prefixCls,\n          destroyPopupOnHide: destroyPopupOnHide,\n          visible: popupVisible,\n          point: alignPoint && point,\n          className: popupClassName,\n          align: align,\n          onAlign: onPopupAlign,\n          animation: popupAnimation,\n          getClassNameFromAlign: _this.getPopupClassNameFromAlign\n        }, mouseProps, {\n          stretch: stretch,\n          getRootDomNode: _this.getRootDomNode,\n          style: popupStyle,\n          mask: mask,\n          zIndex: zIndex,\n          transitionName: popupTransitionName,\n          maskAnimation: maskAnimation,\n          maskTransitionName: maskTransitionName,\n          maskMotion: maskMotion,\n          ref: _this.popupRef,\n          motion: popupMotion,\n          mobile: mobile\n        }), typeof popup === 'function' ? popup() : popup);\n      };\n\n      _this.attachParent = function (popupContainer) {\n        raf.cancel(_this.attachId);\n        var _this$props3 = _this.props,\n            getPopupContainer = _this$props3.getPopupContainer,\n            getDocument = _this$props3.getDocument;\n\n        var domNode = _this.getRootDomNode();\n\n        var mountNode;\n\n        if (!getPopupContainer) {\n          mountNode = getDocument(_this.getRootDomNode()).body;\n        } else if (domNode || getPopupContainer.length === 0) {\n          // Compatible for legacy getPopupContainer with domNode argument.\n          // If no need `domNode` argument, will call directly.\n          // https://codesandbox.io/s/eloquent-mclean-ss93m?file=/src/App.js\n          mountNode = getPopupContainer(domNode);\n        }\n\n        if (mountNode) {\n          mountNode.appendChild(popupContainer);\n        } else {\n          // Retry after frame render in case parent not ready\n          _this.attachId = raf(function () {\n            _this.attachParent(popupContainer);\n          });\n        }\n      };\n\n      _this.getContainer = function () {\n        var getDocument = _this.props.getDocument;\n        var popupContainer = getDocument(_this.getRootDomNode()).createElement('div'); // Make sure default popup container will never cause scrollbar appearing\n        // https://github.com/react-component/trigger/issues/41\n\n        popupContainer.style.position = 'absolute';\n        popupContainer.style.top = '0';\n        popupContainer.style.left = '0';\n        popupContainer.style.width = '100%';\n\n        _this.attachParent(popupContainer);\n\n        return popupContainer;\n      };\n\n      _this.setPoint = function (point) {\n        var alignPoint = _this.props.alignPoint;\n        if (!alignPoint || !point) return;\n\n        _this.setState({\n          point: {\n            pageX: point.pageX,\n            pageY: point.pageY\n          }\n        });\n      };\n\n      _this.handlePortalUpdate = function () {\n        if (_this.state.prevPopupVisible !== _this.state.popupVisible) {\n          _this.props.afterPopupVisibleChange(_this.state.popupVisible);\n        }\n      };\n\n      var popupVisible;\n\n      if ('popupVisible' in props) {\n        popupVisible = !!props.popupVisible;\n      } else {\n        popupVisible = !!props.defaultPopupVisible;\n      }\n\n      _this.state = {\n        prevPopupVisible: popupVisible,\n        popupVisible: popupVisible\n      };\n      ALL_HANDLERS.forEach(function (h) {\n        _this[\"fire\".concat(h)] = function (e) {\n          _this.fireEvents(h, e);\n        };\n      });\n      return _this;\n    }\n\n    _createClass(Trigger, [{\n      key: \"componentDidMount\",\n      value: function componentDidMount() {\n        this.componentDidUpdate();\n      }\n    }, {\n      key: \"componentDidUpdate\",\n      value: function componentDidUpdate() {\n        var props = this.props;\n        var state = this.state; // We must listen to `mousedown` or `touchstart`, edge case:\n        // https://github.com/ant-design/ant-design/issues/5804\n        // https://github.com/react-component/calendar/issues/250\n        // https://github.com/react-component/trigger/issues/50\n\n        if (state.popupVisible) {\n          var currentDocument;\n\n          if (!this.clickOutsideHandler && (this.isClickToHide() || this.isContextMenuToShow())) {\n            currentDocument = props.getDocument(this.getRootDomNode());\n            this.clickOutsideHandler = addEventListener(currentDocument, 'mousedown', this.onDocumentClick);\n          } // always hide on mobile\n\n\n          if (!this.touchOutsideHandler) {\n            currentDocument = currentDocument || props.getDocument(this.getRootDomNode());\n            this.touchOutsideHandler = addEventListener(currentDocument, 'touchstart', this.onDocumentClick);\n          } // close popup when trigger type contains 'onContextMenu' and document is scrolling.\n\n\n          if (!this.contextMenuOutsideHandler1 && this.isContextMenuToShow()) {\n            currentDocument = currentDocument || props.getDocument(this.getRootDomNode());\n            this.contextMenuOutsideHandler1 = addEventListener(currentDocument, 'scroll', this.onContextMenuClose);\n          } // close popup when trigger type contains 'onContextMenu' and window is blur.\n\n\n          if (!this.contextMenuOutsideHandler2 && this.isContextMenuToShow()) {\n            this.contextMenuOutsideHandler2 = addEventListener(window, 'blur', this.onContextMenuClose);\n          }\n\n          return;\n        }\n\n        this.clearOutsideHandler();\n      }\n    }, {\n      key: \"componentWillUnmount\",\n      value: function componentWillUnmount() {\n        this.clearDelayTimer();\n        this.clearOutsideHandler();\n        clearTimeout(this.mouseDownTimeout);\n        raf.cancel(this.attachId);\n      }\n    }, {\n      key: \"getPopupDomNode\",\n      value: function getPopupDomNode() {\n        var _this$popupRef$curren2; // for test\n\n\n        return ((_this$popupRef$curren2 = this.popupRef.current) === null || _this$popupRef$curren2 === void 0 ? void 0 : _this$popupRef$curren2.getElement()) || null;\n      }\n    }, {\n      key: \"getPopupAlign\",\n      value: function getPopupAlign() {\n        var props = this.props;\n        var popupPlacement = props.popupPlacement,\n            popupAlign = props.popupAlign,\n            builtinPlacements = props.builtinPlacements;\n\n        if (popupPlacement && builtinPlacements) {\n          return getAlignFromPlacement(builtinPlacements, popupPlacement, popupAlign);\n        }\n\n        return popupAlign;\n      }\n      /**\n       * @param popupVisible    Show or not the popup element\n       * @param event           SyntheticEvent, used for `pointAlign`\n       */\n\n    }, {\n      key: \"setPopupVisible\",\n      value: function setPopupVisible(popupVisible, event) {\n        var alignPoint = this.props.alignPoint;\n        var prevPopupVisible = this.state.popupVisible;\n        this.clearDelayTimer();\n\n        if (prevPopupVisible !== popupVisible) {\n          if (!('popupVisible' in this.props)) {\n            this.setState({\n              popupVisible: popupVisible,\n              prevPopupVisible: prevPopupVisible\n            });\n          }\n\n          this.props.onPopupVisibleChange(popupVisible);\n        } // Always record the point position since mouseEnterDelay will delay the show\n\n\n        if (alignPoint && event && popupVisible) {\n          this.setPoint(event);\n        }\n      }\n    }, {\n      key: \"delaySetPopupVisible\",\n      value: function delaySetPopupVisible(visible, delayS, event) {\n        var _this2 = this;\n\n        var delay = delayS * 1000;\n        this.clearDelayTimer();\n\n        if (delay) {\n          var point = event ? {\n            pageX: event.pageX,\n            pageY: event.pageY\n          } : null;\n          this.delayTimer = window.setTimeout(function () {\n            _this2.setPopupVisible(visible, point);\n\n            _this2.clearDelayTimer();\n          }, delay);\n        } else {\n          this.setPopupVisible(visible, event);\n        }\n      }\n    }, {\n      key: \"clearDelayTimer\",\n      value: function clearDelayTimer() {\n        if (this.delayTimer) {\n          clearTimeout(this.delayTimer);\n          this.delayTimer = null;\n        }\n      }\n    }, {\n      key: \"clearOutsideHandler\",\n      value: function clearOutsideHandler() {\n        if (this.clickOutsideHandler) {\n          this.clickOutsideHandler.remove();\n          this.clickOutsideHandler = null;\n        }\n\n        if (this.contextMenuOutsideHandler1) {\n          this.contextMenuOutsideHandler1.remove();\n          this.contextMenuOutsideHandler1 = null;\n        }\n\n        if (this.contextMenuOutsideHandler2) {\n          this.contextMenuOutsideHandler2.remove();\n          this.contextMenuOutsideHandler2 = null;\n        }\n\n        if (this.touchOutsideHandler) {\n          this.touchOutsideHandler.remove();\n          this.touchOutsideHandler = null;\n        }\n      }\n    }, {\n      key: \"createTwoChains\",\n      value: function createTwoChains(event) {\n        var childPros = this.props.children.props;\n        var props = this.props;\n\n        if (childPros[event] && props[event]) {\n          return this[\"fire\".concat(event)];\n        }\n\n        return childPros[event] || props[event];\n      }\n    }, {\n      key: \"isClickToShow\",\n      value: function isClickToShow() {\n        var _this$props4 = this.props,\n            action = _this$props4.action,\n            showAction = _this$props4.showAction;\n        return action.indexOf('click') !== -1 || showAction.indexOf('click') !== -1;\n      }\n    }, {\n      key: \"isContextMenuToShow\",\n      value: function isContextMenuToShow() {\n        var _this$props5 = this.props,\n            action = _this$props5.action,\n            showAction = _this$props5.showAction;\n        return action.indexOf('contextMenu') !== -1 || showAction.indexOf('contextMenu') !== -1;\n      }\n    }, {\n      key: \"isClickToHide\",\n      value: function isClickToHide() {\n        var _this$props6 = this.props,\n            action = _this$props6.action,\n            hideAction = _this$props6.hideAction;\n        return action.indexOf('click') !== -1 || hideAction.indexOf('click') !== -1;\n      }\n    }, {\n      key: \"isMouseEnterToShow\",\n      value: function isMouseEnterToShow() {\n        var _this$props7 = this.props,\n            action = _this$props7.action,\n            showAction = _this$props7.showAction;\n        return action.indexOf('hover') !== -1 || showAction.indexOf('mouseEnter') !== -1;\n      }\n    }, {\n      key: \"isMouseLeaveToHide\",\n      value: function isMouseLeaveToHide() {\n        var _this$props8 = this.props,\n            action = _this$props8.action,\n            hideAction = _this$props8.hideAction;\n        return action.indexOf('hover') !== -1 || hideAction.indexOf('mouseLeave') !== -1;\n      }\n    }, {\n      key: \"isFocusToShow\",\n      value: function isFocusToShow() {\n        var _this$props9 = this.props,\n            action = _this$props9.action,\n            showAction = _this$props9.showAction;\n        return action.indexOf('focus') !== -1 || showAction.indexOf('focus') !== -1;\n      }\n    }, {\n      key: \"isBlurToHide\",\n      value: function isBlurToHide() {\n        var _this$props10 = this.props,\n            action = _this$props10.action,\n            hideAction = _this$props10.hideAction;\n        return action.indexOf('focus') !== -1 || hideAction.indexOf('blur') !== -1;\n      }\n    }, {\n      key: \"forcePopupAlign\",\n      value: function forcePopupAlign() {\n        if (this.state.popupVisible) {\n          var _this$popupRef$curren3;\n\n          (_this$popupRef$curren3 = this.popupRef.current) === null || _this$popupRef$curren3 === void 0 ? void 0 : _this$popupRef$curren3.forceAlign();\n        }\n      }\n    }, {\n      key: \"fireEvents\",\n      value: function fireEvents(type, e) {\n        var childCallback = this.props.children.props[type];\n\n        if (childCallback) {\n          childCallback(e);\n        }\n\n        var callback = this.props[type];\n\n        if (callback) {\n          callback(e);\n        }\n      }\n    }, {\n      key: \"close\",\n      value: function close() {\n        this.setPopupVisible(false);\n      }\n    }, {\n      key: \"render\",\n      value: function render() {\n        var popupVisible = this.state.popupVisible;\n        var _this$props11 = this.props,\n            children = _this$props11.children,\n            forceRender = _this$props11.forceRender,\n            alignPoint = _this$props11.alignPoint,\n            className = _this$props11.className,\n            autoDestroy = _this$props11.autoDestroy;\n        var child = React.Children.only(children);\n        var newChildProps = {\n          key: 'trigger'\n        }; // ============================== Visible Handlers ==============================\n        // >>> ContextMenu\n\n        if (this.isContextMenuToShow()) {\n          newChildProps.onContextMenu = this.onContextMenu;\n        } else {\n          newChildProps.onContextMenu = this.createTwoChains('onContextMenu');\n        } // >>> Click\n\n\n        if (this.isClickToHide() || this.isClickToShow()) {\n          newChildProps.onClick = this.onClick;\n          newChildProps.onMouseDown = this.onMouseDown;\n          newChildProps.onTouchStart = this.onTouchStart;\n        } else {\n          newChildProps.onClick = this.createTwoChains('onClick');\n          newChildProps.onMouseDown = this.createTwoChains('onMouseDown');\n          newChildProps.onTouchStart = this.createTwoChains('onTouchStart');\n        } // >>> Hover(enter)\n\n\n        if (this.isMouseEnterToShow()) {\n          newChildProps.onMouseEnter = this.onMouseEnter; // Point align\n\n          if (alignPoint) {\n            newChildProps.onMouseMove = this.onMouseMove;\n          }\n        } else {\n          newChildProps.onMouseEnter = this.createTwoChains('onMouseEnter');\n        } // >>> Hover(leave)\n\n\n        if (this.isMouseLeaveToHide()) {\n          newChildProps.onMouseLeave = this.onMouseLeave;\n        } else {\n          newChildProps.onMouseLeave = this.createTwoChains('onMouseLeave');\n        } // >>> Focus\n\n\n        if (this.isFocusToShow() || this.isBlurToHide()) {\n          newChildProps.onFocus = this.onFocus;\n          newChildProps.onBlur = this.onBlur;\n        } else {\n          newChildProps.onFocus = this.createTwoChains('onFocus');\n          newChildProps.onBlur = this.createTwoChains('onBlur');\n        } // =================================== Render ===================================\n\n\n        var childrenClassName = classNames(child && child.props && child.props.className, className);\n\n        if (childrenClassName) {\n          newChildProps.className = childrenClassName;\n        }\n\n        var cloneProps = _objectSpread({}, newChildProps);\n\n        if (supportRef(child)) {\n          cloneProps.ref = composeRef(this.triggerRef, child.ref);\n        }\n\n        var trigger = React.cloneElement(child, cloneProps);\n        var portal; // prevent unmounting after it's rendered\n\n        if (popupVisible || this.popupRef.current || forceRender) {\n          portal = React.createElement(PortalComponent, {\n            key: \"portal\",\n            getContainer: this.getContainer,\n            didUpdate: this.handlePortalUpdate\n          }, this.getComponent());\n        }\n\n        if (!popupVisible && autoDestroy) {\n          portal = null;\n        }\n\n        return React.createElement(TriggerContext.Provider, {\n          value: {\n            onPopupMouseDown: this.onPopupMouseDown\n          }\n        }, trigger, portal);\n      }\n    }], [{\n      key: \"getDerivedStateFromProps\",\n      value: function getDerivedStateFromProps(_ref, prevState) {\n        var popupVisible = _ref.popupVisible;\n        var newState = {};\n\n        if (popupVisible !== undefined && prevState.popupVisible !== popupVisible) {\n          newState.popupVisible = popupVisible;\n          newState.prevPopupVisible = prevState.popupVisible;\n        }\n\n        return newState;\n      }\n    }]);\n\n    return Trigger;\n  }(React.Component);\n\n  Trigger.contextType = TriggerContext;\n  Trigger.defaultProps = {\n    prefixCls: 'rc-trigger-popup',\n    getPopupClassNameFromAlign: returnEmptyString,\n    getDocument: returnDocument,\n    onPopupVisibleChange: noop,\n    afterPopupVisibleChange: noop,\n    onPopupAlign: noop,\n    popupClassName: '',\n    mouseEnterDelay: 0,\n    mouseLeaveDelay: 0.1,\n    focusDelay: 0,\n    blurDelay: 0.15,\n    popupStyle: {},\n    destroyPopupOnHide: false,\n    popupAlign: {},\n    defaultPopupVisible: false,\n    mask: false,\n    maskClosable: true,\n    action: [],\n    showAction: [],\n    hideAction: [],\n    autoDestroy: false\n  };\n  return Trigger;\n}\nexport default generateTrigger(Portal);","map":{"version":3,"sources":["C:/Users/kkwan_000/Desktop/git/2017110269/minsung/node_modules/rc-trigger/es/index.js"],"names":["_objectSpread","_classCallCheck","_createClass","_assertThisInitialized","_inherits","_createSuper","React","ReactDOM","raf","contains","findDOMNode","composeRef","supportRef","addEventListener","Portal","classNames","getAlignFromPlacement","getAlignPopupClassName","Popup","TriggerContext","noop","returnEmptyString","returnDocument","element","ownerDocument","window","document","ALL_HANDLERS","generateTrigger","PortalComponent","Trigger","_React$Component","_super","props","_this","call","popupRef","createRef","triggerRef","onMouseEnter","e","mouseEnterDelay","fireEvents","delaySetPopupVisible","onMouseMove","setPoint","onMouseLeave","mouseLeaveDelay","onPopupMouseEnter","clearDelayTimer","onPopupMouseLeave","_this$popupRef$curren","relatedTarget","setTimeout","current","getElement","onFocus","isFocusToShow","focusTime","Date","now","focusDelay","onMouseDown","preClickTime","onTouchStart","preTouchTime","onBlur","isBlurToHide","blurDelay","onContextMenu","preventDefault","setPopupVisible","onContextMenuClose","isContextMenuToShow","close","onClick","event","preTime","Math","min","abs","isClickToShow","isClickToHide","nextVisible","state","popupVisible","onPopupMouseDown","hasPopupMouseDown","clearTimeout","mouseDownTimeout","context","_this$context","apply","arguments","onDocumentClick","mask","maskClosable","target","root","getRootDomNode","popupNode","getPopupDomNode","getTriggerDOMNode","domNode","err","getPopupClassNameFromAlign","align","className","_this$props","popupPlacement","builtinPlacements","prefixCls","alignPoint","push","join","getComponent","_this$props2","destroyPopupOnHide","popupClassName","onPopupAlign","popupMotion","popupAnimation","popupTransitionName","popupStyle","maskAnimation","maskTransitionName","maskMotion","zIndex","popup","stretch","mobile","_this$state","point","getPopupAlign","mouseProps","isMouseEnterToShow","isMouseLeaveToHide","createElement","Object","assign","visible","onAlign","animation","getClassNameFromAlign","style","transitionName","ref","motion","attachParent","popupContainer","cancel","attachId","_this$props3","getPopupContainer","getDocument","mountNode","body","length","appendChild","getContainer","position","top","left","width","setState","pageX","pageY","handlePortalUpdate","prevPopupVisible","afterPopupVisibleChange","defaultPopupVisible","forEach","h","concat","key","value","componentDidMount","componentDidUpdate","currentDocument","clickOutsideHandler","touchOutsideHandler","contextMenuOutsideHandler1","contextMenuOutsideHandler2","clearOutsideHandler","componentWillUnmount","_this$popupRef$curren2","popupAlign","onPopupVisibleChange","delayS","_this2","delay","delayTimer","remove","createTwoChains","childPros","children","_this$props4","action","showAction","indexOf","_this$props5","_this$props6","hideAction","_this$props7","_this$props8","_this$props9","_this$props10","forcePopupAlign","_this$popupRef$curren3","forceAlign","type","childCallback","callback","render","_this$props11","forceRender","autoDestroy","child","Children","only","newChildProps","childrenClassName","cloneProps","trigger","cloneElement","portal","didUpdate","Provider","getDerivedStateFromProps","_ref","prevState","newState","undefined","Component","contextType","defaultProps"],"mappings":"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","sourcesContent":["import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\nimport ReactDOM from 'react-dom';\nimport raf from \"rc-util/es/raf\";\nimport contains from \"rc-util/es/Dom/contains\";\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport { composeRef, supportRef } from \"rc-util/es/ref\";\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport Portal from \"rc-util/es/Portal\";\nimport classNames from 'classnames';\nimport { getAlignFromPlacement, getAlignPopupClassName } from './utils/alignUtil';\nimport Popup from './Popup';\nimport TriggerContext from './context';\n\nfunction noop() {}\n\nfunction returnEmptyString() {\n  return '';\n}\n\nfunction returnDocument(element) {\n  if (element) {\n    return element.ownerDocument;\n  }\n\n  return window.document;\n}\n\nvar ALL_HANDLERS = ['onClick', 'onMouseDown', 'onTouchStart', 'onMouseEnter', 'onMouseLeave', 'onFocus', 'onBlur', 'onContextMenu'];\n/**\n * Internal usage. Do not use in your code since this will be removed.\n */\n\nexport function generateTrigger(PortalComponent) {\n  var Trigger = /*#__PURE__*/function (_React$Component) {\n    _inherits(Trigger, _React$Component);\n\n    var _super = _createSuper(Trigger);\n\n    function Trigger(props) {\n      var _this;\n\n      _classCallCheck(this, Trigger);\n\n      _this = _super.call(this, props);\n      _this.popupRef = React.createRef();\n      _this.triggerRef = React.createRef();\n\n      _this.onMouseEnter = function (e) {\n        var mouseEnterDelay = _this.props.mouseEnterDelay;\n\n        _this.fireEvents('onMouseEnter', e);\n\n        _this.delaySetPopupVisible(true, mouseEnterDelay, mouseEnterDelay ? null : e);\n      };\n\n      _this.onMouseMove = function (e) {\n        _this.fireEvents('onMouseMove', e);\n\n        _this.setPoint(e);\n      };\n\n      _this.onMouseLeave = function (e) {\n        _this.fireEvents('onMouseLeave', e);\n\n        _this.delaySetPopupVisible(false, _this.props.mouseLeaveDelay);\n      };\n\n      _this.onPopupMouseEnter = function () {\n        _this.clearDelayTimer();\n      };\n\n      _this.onPopupMouseLeave = function (e) {\n        var _this$popupRef$curren;\n\n        // https://github.com/react-component/trigger/pull/13\n        // react bug?\n        if (e.relatedTarget && !e.relatedTarget.setTimeout && contains((_this$popupRef$curren = _this.popupRef.current) === null || _this$popupRef$curren === void 0 ? void 0 : _this$popupRef$curren.getElement(), e.relatedTarget)) {\n          return;\n        }\n\n        _this.delaySetPopupVisible(false, _this.props.mouseLeaveDelay);\n      };\n\n      _this.onFocus = function (e) {\n        _this.fireEvents('onFocus', e); // incase focusin and focusout\n\n\n        _this.clearDelayTimer();\n\n        if (_this.isFocusToShow()) {\n          _this.focusTime = Date.now();\n\n          _this.delaySetPopupVisible(true, _this.props.focusDelay);\n        }\n      };\n\n      _this.onMouseDown = function (e) {\n        _this.fireEvents('onMouseDown', e);\n\n        _this.preClickTime = Date.now();\n      };\n\n      _this.onTouchStart = function (e) {\n        _this.fireEvents('onTouchStart', e);\n\n        _this.preTouchTime = Date.now();\n      };\n\n      _this.onBlur = function (e) {\n        _this.fireEvents('onBlur', e);\n\n        _this.clearDelayTimer();\n\n        if (_this.isBlurToHide()) {\n          _this.delaySetPopupVisible(false, _this.props.blurDelay);\n        }\n      };\n\n      _this.onContextMenu = function (e) {\n        e.preventDefault();\n\n        _this.fireEvents('onContextMenu', e);\n\n        _this.setPopupVisible(true, e);\n      };\n\n      _this.onContextMenuClose = function () {\n        if (_this.isContextMenuToShow()) {\n          _this.close();\n        }\n      };\n\n      _this.onClick = function (event) {\n        _this.fireEvents('onClick', event); // focus will trigger click\n\n\n        if (_this.focusTime) {\n          var preTime;\n\n          if (_this.preClickTime && _this.preTouchTime) {\n            preTime = Math.min(_this.preClickTime, _this.preTouchTime);\n          } else if (_this.preClickTime) {\n            preTime = _this.preClickTime;\n          } else if (_this.preTouchTime) {\n            preTime = _this.preTouchTime;\n          }\n\n          if (Math.abs(preTime - _this.focusTime) < 20) {\n            return;\n          }\n\n          _this.focusTime = 0;\n        }\n\n        _this.preClickTime = 0;\n        _this.preTouchTime = 0; // Only prevent default when all the action is click.\n        // https://github.com/ant-design/ant-design/issues/17043\n        // https://github.com/ant-design/ant-design/issues/17291\n\n        if (_this.isClickToShow() && (_this.isClickToHide() || _this.isBlurToHide()) && event && event.preventDefault) {\n          event.preventDefault();\n        }\n\n        var nextVisible = !_this.state.popupVisible;\n\n        if (_this.isClickToHide() && !nextVisible || nextVisible && _this.isClickToShow()) {\n          _this.setPopupVisible(!_this.state.popupVisible, event);\n        }\n      };\n\n      _this.onPopupMouseDown = function () {\n        _this.hasPopupMouseDown = true;\n        clearTimeout(_this.mouseDownTimeout);\n        _this.mouseDownTimeout = window.setTimeout(function () {\n          _this.hasPopupMouseDown = false;\n        }, 0);\n\n        if (_this.context) {\n          var _this$context;\n\n          (_this$context = _this.context).onPopupMouseDown.apply(_this$context, arguments);\n        }\n      };\n\n      _this.onDocumentClick = function (event) {\n        if (_this.props.mask && !_this.props.maskClosable) {\n          return;\n        }\n\n        var target = event.target;\n\n        var root = _this.getRootDomNode();\n\n        var popupNode = _this.getPopupDomNode();\n\n        if (!contains(root, target) && !contains(popupNode, target) && !_this.hasPopupMouseDown) {\n          _this.close();\n        }\n      };\n\n      _this.getRootDomNode = function () {\n        var getTriggerDOMNode = _this.props.getTriggerDOMNode;\n\n        if (getTriggerDOMNode) {\n          return getTriggerDOMNode(_this.triggerRef.current);\n        }\n\n        try {\n          var domNode = findDOMNode(_this.triggerRef.current);\n\n          if (domNode) {\n            return domNode;\n          }\n        } catch (err) {// Do nothing\n        }\n\n        return ReactDOM.findDOMNode(_assertThisInitialized(_this));\n      };\n\n      _this.getPopupClassNameFromAlign = function (align) {\n        var className = [];\n        var _this$props = _this.props,\n            popupPlacement = _this$props.popupPlacement,\n            builtinPlacements = _this$props.builtinPlacements,\n            prefixCls = _this$props.prefixCls,\n            alignPoint = _this$props.alignPoint,\n            getPopupClassNameFromAlign = _this$props.getPopupClassNameFromAlign;\n\n        if (popupPlacement && builtinPlacements) {\n          className.push(getAlignPopupClassName(builtinPlacements, prefixCls, align, alignPoint));\n        }\n\n        if (getPopupClassNameFromAlign) {\n          className.push(getPopupClassNameFromAlign(align));\n        }\n\n        return className.join(' ');\n      };\n\n      _this.getComponent = function () {\n        var _this$props2 = _this.props,\n            prefixCls = _this$props2.prefixCls,\n            destroyPopupOnHide = _this$props2.destroyPopupOnHide,\n            popupClassName = _this$props2.popupClassName,\n            onPopupAlign = _this$props2.onPopupAlign,\n            popupMotion = _this$props2.popupMotion,\n            popupAnimation = _this$props2.popupAnimation,\n            popupTransitionName = _this$props2.popupTransitionName,\n            popupStyle = _this$props2.popupStyle,\n            mask = _this$props2.mask,\n            maskAnimation = _this$props2.maskAnimation,\n            maskTransitionName = _this$props2.maskTransitionName,\n            maskMotion = _this$props2.maskMotion,\n            zIndex = _this$props2.zIndex,\n            popup = _this$props2.popup,\n            stretch = _this$props2.stretch,\n            alignPoint = _this$props2.alignPoint,\n            mobile = _this$props2.mobile;\n        var _this$state = _this.state,\n            popupVisible = _this$state.popupVisible,\n            point = _this$state.point;\n\n        var align = _this.getPopupAlign();\n\n        var mouseProps = {};\n\n        if (_this.isMouseEnterToShow()) {\n          mouseProps.onMouseEnter = _this.onPopupMouseEnter;\n        }\n\n        if (_this.isMouseLeaveToHide()) {\n          mouseProps.onMouseLeave = _this.onPopupMouseLeave;\n        }\n\n        mouseProps.onMouseDown = _this.onPopupMouseDown;\n        mouseProps.onTouchStart = _this.onPopupMouseDown;\n        return React.createElement(Popup, Object.assign({\n          prefixCls: prefixCls,\n          destroyPopupOnHide: destroyPopupOnHide,\n          visible: popupVisible,\n          point: alignPoint && point,\n          className: popupClassName,\n          align: align,\n          onAlign: onPopupAlign,\n          animation: popupAnimation,\n          getClassNameFromAlign: _this.getPopupClassNameFromAlign\n        }, mouseProps, {\n          stretch: stretch,\n          getRootDomNode: _this.getRootDomNode,\n          style: popupStyle,\n          mask: mask,\n          zIndex: zIndex,\n          transitionName: popupTransitionName,\n          maskAnimation: maskAnimation,\n          maskTransitionName: maskTransitionName,\n          maskMotion: maskMotion,\n          ref: _this.popupRef,\n          motion: popupMotion,\n          mobile: mobile\n        }), typeof popup === 'function' ? popup() : popup);\n      };\n\n      _this.attachParent = function (popupContainer) {\n        raf.cancel(_this.attachId);\n        var _this$props3 = _this.props,\n            getPopupContainer = _this$props3.getPopupContainer,\n            getDocument = _this$props3.getDocument;\n\n        var domNode = _this.getRootDomNode();\n\n        var mountNode;\n\n        if (!getPopupContainer) {\n          mountNode = getDocument(_this.getRootDomNode()).body;\n        } else if (domNode || getPopupContainer.length === 0) {\n          // Compatible for legacy getPopupContainer with domNode argument.\n          // If no need `domNode` argument, will call directly.\n          // https://codesandbox.io/s/eloquent-mclean-ss93m?file=/src/App.js\n          mountNode = getPopupContainer(domNode);\n        }\n\n        if (mountNode) {\n          mountNode.appendChild(popupContainer);\n        } else {\n          // Retry after frame render in case parent not ready\n          _this.attachId = raf(function () {\n            _this.attachParent(popupContainer);\n          });\n        }\n      };\n\n      _this.getContainer = function () {\n        var getDocument = _this.props.getDocument;\n        var popupContainer = getDocument(_this.getRootDomNode()).createElement('div'); // Make sure default popup container will never cause scrollbar appearing\n        // https://github.com/react-component/trigger/issues/41\n\n        popupContainer.style.position = 'absolute';\n        popupContainer.style.top = '0';\n        popupContainer.style.left = '0';\n        popupContainer.style.width = '100%';\n\n        _this.attachParent(popupContainer);\n\n        return popupContainer;\n      };\n\n      _this.setPoint = function (point) {\n        var alignPoint = _this.props.alignPoint;\n        if (!alignPoint || !point) return;\n\n        _this.setState({\n          point: {\n            pageX: point.pageX,\n            pageY: point.pageY\n          }\n        });\n      };\n\n      _this.handlePortalUpdate = function () {\n        if (_this.state.prevPopupVisible !== _this.state.popupVisible) {\n          _this.props.afterPopupVisibleChange(_this.state.popupVisible);\n        }\n      };\n\n      var popupVisible;\n\n      if ('popupVisible' in props) {\n        popupVisible = !!props.popupVisible;\n      } else {\n        popupVisible = !!props.defaultPopupVisible;\n      }\n\n      _this.state = {\n        prevPopupVisible: popupVisible,\n        popupVisible: popupVisible\n      };\n      ALL_HANDLERS.forEach(function (h) {\n        _this[\"fire\".concat(h)] = function (e) {\n          _this.fireEvents(h, e);\n        };\n      });\n      return _this;\n    }\n\n    _createClass(Trigger, [{\n      key: \"componentDidMount\",\n      value: function componentDidMount() {\n        this.componentDidUpdate();\n      }\n    }, {\n      key: \"componentDidUpdate\",\n      value: function componentDidUpdate() {\n        var props = this.props;\n        var state = this.state; // We must listen to `mousedown` or `touchstart`, edge case:\n        // https://github.com/ant-design/ant-design/issues/5804\n        // https://github.com/react-component/calendar/issues/250\n        // https://github.com/react-component/trigger/issues/50\n\n        if (state.popupVisible) {\n          var currentDocument;\n\n          if (!this.clickOutsideHandler && (this.isClickToHide() || this.isContextMenuToShow())) {\n            currentDocument = props.getDocument(this.getRootDomNode());\n            this.clickOutsideHandler = addEventListener(currentDocument, 'mousedown', this.onDocumentClick);\n          } // always hide on mobile\n\n\n          if (!this.touchOutsideHandler) {\n            currentDocument = currentDocument || props.getDocument(this.getRootDomNode());\n            this.touchOutsideHandler = addEventListener(currentDocument, 'touchstart', this.onDocumentClick);\n          } // close popup when trigger type contains 'onContextMenu' and document is scrolling.\n\n\n          if (!this.contextMenuOutsideHandler1 && this.isContextMenuToShow()) {\n            currentDocument = currentDocument || props.getDocument(this.getRootDomNode());\n            this.contextMenuOutsideHandler1 = addEventListener(currentDocument, 'scroll', this.onContextMenuClose);\n          } // close popup when trigger type contains 'onContextMenu' and window is blur.\n\n\n          if (!this.contextMenuOutsideHandler2 && this.isContextMenuToShow()) {\n            this.contextMenuOutsideHandler2 = addEventListener(window, 'blur', this.onContextMenuClose);\n          }\n\n          return;\n        }\n\n        this.clearOutsideHandler();\n      }\n    }, {\n      key: \"componentWillUnmount\",\n      value: function componentWillUnmount() {\n        this.clearDelayTimer();\n        this.clearOutsideHandler();\n        clearTimeout(this.mouseDownTimeout);\n        raf.cancel(this.attachId);\n      }\n    }, {\n      key: \"getPopupDomNode\",\n      value: function getPopupDomNode() {\n        var _this$popupRef$curren2;\n\n        // for test\n        return ((_this$popupRef$curren2 = this.popupRef.current) === null || _this$popupRef$curren2 === void 0 ? void 0 : _this$popupRef$curren2.getElement()) || null;\n      }\n    }, {\n      key: \"getPopupAlign\",\n      value: function getPopupAlign() {\n        var props = this.props;\n        var popupPlacement = props.popupPlacement,\n            popupAlign = props.popupAlign,\n            builtinPlacements = props.builtinPlacements;\n\n        if (popupPlacement && builtinPlacements) {\n          return getAlignFromPlacement(builtinPlacements, popupPlacement, popupAlign);\n        }\n\n        return popupAlign;\n      }\n      /**\n       * @param popupVisible    Show or not the popup element\n       * @param event           SyntheticEvent, used for `pointAlign`\n       */\n\n    }, {\n      key: \"setPopupVisible\",\n      value: function setPopupVisible(popupVisible, event) {\n        var alignPoint = this.props.alignPoint;\n        var prevPopupVisible = this.state.popupVisible;\n        this.clearDelayTimer();\n\n        if (prevPopupVisible !== popupVisible) {\n          if (!('popupVisible' in this.props)) {\n            this.setState({\n              popupVisible: popupVisible,\n              prevPopupVisible: prevPopupVisible\n            });\n          }\n\n          this.props.onPopupVisibleChange(popupVisible);\n        } // Always record the point position since mouseEnterDelay will delay the show\n\n\n        if (alignPoint && event && popupVisible) {\n          this.setPoint(event);\n        }\n      }\n    }, {\n      key: \"delaySetPopupVisible\",\n      value: function delaySetPopupVisible(visible, delayS, event) {\n        var _this2 = this;\n\n        var delay = delayS * 1000;\n        this.clearDelayTimer();\n\n        if (delay) {\n          var point = event ? {\n            pageX: event.pageX,\n            pageY: event.pageY\n          } : null;\n          this.delayTimer = window.setTimeout(function () {\n            _this2.setPopupVisible(visible, point);\n\n            _this2.clearDelayTimer();\n          }, delay);\n        } else {\n          this.setPopupVisible(visible, event);\n        }\n      }\n    }, {\n      key: \"clearDelayTimer\",\n      value: function clearDelayTimer() {\n        if (this.delayTimer) {\n          clearTimeout(this.delayTimer);\n          this.delayTimer = null;\n        }\n      }\n    }, {\n      key: \"clearOutsideHandler\",\n      value: function clearOutsideHandler() {\n        if (this.clickOutsideHandler) {\n          this.clickOutsideHandler.remove();\n          this.clickOutsideHandler = null;\n        }\n\n        if (this.contextMenuOutsideHandler1) {\n          this.contextMenuOutsideHandler1.remove();\n          this.contextMenuOutsideHandler1 = null;\n        }\n\n        if (this.contextMenuOutsideHandler2) {\n          this.contextMenuOutsideHandler2.remove();\n          this.contextMenuOutsideHandler2 = null;\n        }\n\n        if (this.touchOutsideHandler) {\n          this.touchOutsideHandler.remove();\n          this.touchOutsideHandler = null;\n        }\n      }\n    }, {\n      key: \"createTwoChains\",\n      value: function createTwoChains(event) {\n        var childPros = this.props.children.props;\n        var props = this.props;\n\n        if (childPros[event] && props[event]) {\n          return this[\"fire\".concat(event)];\n        }\n\n        return childPros[event] || props[event];\n      }\n    }, {\n      key: \"isClickToShow\",\n      value: function isClickToShow() {\n        var _this$props4 = this.props,\n            action = _this$props4.action,\n            showAction = _this$props4.showAction;\n        return action.indexOf('click') !== -1 || showAction.indexOf('click') !== -1;\n      }\n    }, {\n      key: \"isContextMenuToShow\",\n      value: function isContextMenuToShow() {\n        var _this$props5 = this.props,\n            action = _this$props5.action,\n            showAction = _this$props5.showAction;\n        return action.indexOf('contextMenu') !== -1 || showAction.indexOf('contextMenu') !== -1;\n      }\n    }, {\n      key: \"isClickToHide\",\n      value: function isClickToHide() {\n        var _this$props6 = this.props,\n            action = _this$props6.action,\n            hideAction = _this$props6.hideAction;\n        return action.indexOf('click') !== -1 || hideAction.indexOf('click') !== -1;\n      }\n    }, {\n      key: \"isMouseEnterToShow\",\n      value: function isMouseEnterToShow() {\n        var _this$props7 = this.props,\n            action = _this$props7.action,\n            showAction = _this$props7.showAction;\n        return action.indexOf('hover') !== -1 || showAction.indexOf('mouseEnter') !== -1;\n      }\n    }, {\n      key: \"isMouseLeaveToHide\",\n      value: function isMouseLeaveToHide() {\n        var _this$props8 = this.props,\n            action = _this$props8.action,\n            hideAction = _this$props8.hideAction;\n        return action.indexOf('hover') !== -1 || hideAction.indexOf('mouseLeave') !== -1;\n      }\n    }, {\n      key: \"isFocusToShow\",\n      value: function isFocusToShow() {\n        var _this$props9 = this.props,\n            action = _this$props9.action,\n            showAction = _this$props9.showAction;\n        return action.indexOf('focus') !== -1 || showAction.indexOf('focus') !== -1;\n      }\n    }, {\n      key: \"isBlurToHide\",\n      value: function isBlurToHide() {\n        var _this$props10 = this.props,\n            action = _this$props10.action,\n            hideAction = _this$props10.hideAction;\n        return action.indexOf('focus') !== -1 || hideAction.indexOf('blur') !== -1;\n      }\n    }, {\n      key: \"forcePopupAlign\",\n      value: function forcePopupAlign() {\n        if (this.state.popupVisible) {\n          var _this$popupRef$curren3;\n\n          (_this$popupRef$curren3 = this.popupRef.current) === null || _this$popupRef$curren3 === void 0 ? void 0 : _this$popupRef$curren3.forceAlign();\n        }\n      }\n    }, {\n      key: \"fireEvents\",\n      value: function fireEvents(type, e) {\n        var childCallback = this.props.children.props[type];\n\n        if (childCallback) {\n          childCallback(e);\n        }\n\n        var callback = this.props[type];\n\n        if (callback) {\n          callback(e);\n        }\n      }\n    }, {\n      key: \"close\",\n      value: function close() {\n        this.setPopupVisible(false);\n      }\n    }, {\n      key: \"render\",\n      value: function render() {\n        var popupVisible = this.state.popupVisible;\n        var _this$props11 = this.props,\n            children = _this$props11.children,\n            forceRender = _this$props11.forceRender,\n            alignPoint = _this$props11.alignPoint,\n            className = _this$props11.className,\n            autoDestroy = _this$props11.autoDestroy;\n        var child = React.Children.only(children);\n        var newChildProps = {\n          key: 'trigger'\n        }; // ============================== Visible Handlers ==============================\n        // >>> ContextMenu\n\n        if (this.isContextMenuToShow()) {\n          newChildProps.onContextMenu = this.onContextMenu;\n        } else {\n          newChildProps.onContextMenu = this.createTwoChains('onContextMenu');\n        } // >>> Click\n\n\n        if (this.isClickToHide() || this.isClickToShow()) {\n          newChildProps.onClick = this.onClick;\n          newChildProps.onMouseDown = this.onMouseDown;\n          newChildProps.onTouchStart = this.onTouchStart;\n        } else {\n          newChildProps.onClick = this.createTwoChains('onClick');\n          newChildProps.onMouseDown = this.createTwoChains('onMouseDown');\n          newChildProps.onTouchStart = this.createTwoChains('onTouchStart');\n        } // >>> Hover(enter)\n\n\n        if (this.isMouseEnterToShow()) {\n          newChildProps.onMouseEnter = this.onMouseEnter; // Point align\n\n          if (alignPoint) {\n            newChildProps.onMouseMove = this.onMouseMove;\n          }\n        } else {\n          newChildProps.onMouseEnter = this.createTwoChains('onMouseEnter');\n        } // >>> Hover(leave)\n\n\n        if (this.isMouseLeaveToHide()) {\n          newChildProps.onMouseLeave = this.onMouseLeave;\n        } else {\n          newChildProps.onMouseLeave = this.createTwoChains('onMouseLeave');\n        } // >>> Focus\n\n\n        if (this.isFocusToShow() || this.isBlurToHide()) {\n          newChildProps.onFocus = this.onFocus;\n          newChildProps.onBlur = this.onBlur;\n        } else {\n          newChildProps.onFocus = this.createTwoChains('onFocus');\n          newChildProps.onBlur = this.createTwoChains('onBlur');\n        } // =================================== Render ===================================\n\n\n        var childrenClassName = classNames(child && child.props && child.props.className, className);\n\n        if (childrenClassName) {\n          newChildProps.className = childrenClassName;\n        }\n\n        var cloneProps = _objectSpread({}, newChildProps);\n\n        if (supportRef(child)) {\n          cloneProps.ref = composeRef(this.triggerRef, child.ref);\n        }\n\n        var trigger = React.cloneElement(child, cloneProps);\n        var portal; // prevent unmounting after it's rendered\n\n        if (popupVisible || this.popupRef.current || forceRender) {\n          portal = React.createElement(PortalComponent, {\n            key: \"portal\",\n            getContainer: this.getContainer,\n            didUpdate: this.handlePortalUpdate\n          }, this.getComponent());\n        }\n\n        if (!popupVisible && autoDestroy) {\n          portal = null;\n        }\n\n        return React.createElement(TriggerContext.Provider, {\n          value: {\n            onPopupMouseDown: this.onPopupMouseDown\n          }\n        }, trigger, portal);\n      }\n    }], [{\n      key: \"getDerivedStateFromProps\",\n      value: function getDerivedStateFromProps(_ref, prevState) {\n        var popupVisible = _ref.popupVisible;\n        var newState = {};\n\n        if (popupVisible !== undefined && prevState.popupVisible !== popupVisible) {\n          newState.popupVisible = popupVisible;\n          newState.prevPopupVisible = prevState.popupVisible;\n        }\n\n        return newState;\n      }\n    }]);\n\n    return Trigger;\n  }(React.Component);\n\n  Trigger.contextType = TriggerContext;\n  Trigger.defaultProps = {\n    prefixCls: 'rc-trigger-popup',\n    getPopupClassNameFromAlign: returnEmptyString,\n    getDocument: returnDocument,\n    onPopupVisibleChange: noop,\n    afterPopupVisibleChange: noop,\n    onPopupAlign: noop,\n    popupClassName: '',\n    mouseEnterDelay: 0,\n    mouseLeaveDelay: 0.1,\n    focusDelay: 0,\n    blurDelay: 0.15,\n    popupStyle: {},\n    destroyPopupOnHide: false,\n    popupAlign: {},\n    defaultPopupVisible: false,\n    mask: false,\n    maskClosable: true,\n    action: [],\n    showAction: [],\n    hideAction: [],\n    autoDestroy: false\n  };\n  return Trigger;\n}\nexport default generateTrigger(Portal);"]},"metadata":{},"sourceType":"module"}