9c18c3adc518f88cdfe7b624b729e673.json 65.9 KB
{"ast":null,"code":"import _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 _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport Trigger from 'rc-trigger';\nimport raf from \"rc-util/es/raf\";\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport CSSMotion from 'rc-motion';\nimport classNames from 'classnames';\nimport { connect } from 'mini-store';\nimport SubPopupMenu from './SubPopupMenu';\nimport { placements, placementsRtl } from './placements';\nimport { noop, loopMenuItemRecursively, getMenuIdFromSubMenuEventKey, menuAllProps } from './util';\nvar guid = 0;\nvar popupPlacementMap = {\n  horizontal: 'bottomLeft',\n  vertical: 'rightTop',\n  'vertical-left': 'rightTop',\n  'vertical-right': 'leftTop'\n};\n\nvar updateDefaultActiveFirst = function updateDefaultActiveFirst(store, eventKey, defaultActiveFirst) {\n  var menuId = getMenuIdFromSubMenuEventKey(eventKey);\n  var state = store.getState();\n  store.setState({\n    defaultActiveFirst: _objectSpread(_objectSpread({}, state.defaultActiveFirst), {}, _defineProperty({}, menuId, defaultActiveFirst))\n  });\n};\n\nexport var SubMenu = /*#__PURE__*/function (_React$Component) {\n  _inherits(SubMenu, _React$Component);\n\n  var _super = _createSuper(SubMenu);\n\n  function SubMenu(props) {\n    var _this;\n\n    _classCallCheck(this, SubMenu);\n\n    _this = _super.call(this, props);\n\n    _this.onDestroy = function (key) {\n      _this.props.onDestroy(key);\n    };\n    /**\n     * note:\n     *  This legacy code that `onKeyDown` is called by parent instead of dom self.\n     *  which need return code to check if this event is handled\n     */\n\n\n    _this.onKeyDown = function (e) {\n      var keyCode = e.keyCode;\n      var menu = _this.menuInstance;\n      var store = _this.props.store;\n\n      var visible = _this.getVisible();\n\n      if (keyCode === KeyCode.ENTER) {\n        _this.onTitleClick(e);\n\n        updateDefaultActiveFirst(store, _this.props.eventKey, true);\n        return true;\n      }\n\n      if (keyCode === KeyCode.RIGHT) {\n        if (visible) {\n          menu.onKeyDown(e);\n        } else {\n          _this.triggerOpenChange(true); // need to update current menu's defaultActiveFirst value\n\n\n          updateDefaultActiveFirst(store, _this.props.eventKey, true);\n        }\n\n        return true;\n      }\n\n      if (keyCode === KeyCode.LEFT) {\n        var handled;\n\n        if (visible) {\n          handled = menu.onKeyDown(e);\n        } else {\n          return undefined;\n        }\n\n        if (!handled) {\n          _this.triggerOpenChange(false);\n\n          handled = true;\n        }\n\n        return handled;\n      }\n\n      if (visible && (keyCode === KeyCode.UP || keyCode === KeyCode.DOWN)) {\n        return menu.onKeyDown(e);\n      }\n\n      return undefined;\n    };\n\n    _this.onOpenChange = function (e) {\n      _this.props.onOpenChange(e);\n    };\n\n    _this.onPopupVisibleChange = function (visible) {\n      _this.triggerOpenChange(visible, visible ? 'mouseenter' : 'mouseleave');\n    };\n\n    _this.onMouseEnter = function (e) {\n      var _this$props = _this.props,\n          key = _this$props.eventKey,\n          onMouseEnter = _this$props.onMouseEnter,\n          store = _this$props.store;\n      updateDefaultActiveFirst(store, _this.props.eventKey, false);\n      onMouseEnter({\n        key: key,\n        domEvent: e\n      });\n    };\n\n    _this.onMouseLeave = function (e) {\n      var _this$props2 = _this.props,\n          parentMenu = _this$props2.parentMenu,\n          eventKey = _this$props2.eventKey,\n          onMouseLeave = _this$props2.onMouseLeave;\n      parentMenu.subMenuInstance = _assertThisInitialized(_this);\n      onMouseLeave({\n        key: eventKey,\n        domEvent: e\n      });\n    };\n\n    _this.onTitleMouseEnter = function (domEvent) {\n      var _this$props3 = _this.props,\n          key = _this$props3.eventKey,\n          onItemHover = _this$props3.onItemHover,\n          onTitleMouseEnter = _this$props3.onTitleMouseEnter;\n      onItemHover({\n        key: key,\n        hover: true\n      });\n      onTitleMouseEnter({\n        key: key,\n        domEvent: domEvent\n      });\n    };\n\n    _this.onTitleMouseLeave = function (e) {\n      var _this$props4 = _this.props,\n          parentMenu = _this$props4.parentMenu,\n          eventKey = _this$props4.eventKey,\n          onItemHover = _this$props4.onItemHover,\n          onTitleMouseLeave = _this$props4.onTitleMouseLeave;\n      parentMenu.subMenuInstance = _assertThisInitialized(_this);\n      onItemHover({\n        key: eventKey,\n        hover: false\n      });\n      onTitleMouseLeave({\n        key: eventKey,\n        domEvent: e\n      });\n    };\n\n    _this.onTitleClick = function (e) {\n      var _assertThisInitialize = _assertThisInitialized(_this),\n          props = _assertThisInitialize.props;\n\n      props.onTitleClick({\n        key: props.eventKey,\n        domEvent: e\n      });\n\n      if (props.triggerSubMenuAction === 'hover') {\n        return;\n      }\n\n      _this.triggerOpenChange(!_this.getVisible(), 'click');\n\n      updateDefaultActiveFirst(props.store, _this.props.eventKey, false);\n    };\n\n    _this.onSubMenuClick = function (info) {\n      // in the case of overflowed submenu\n      // onClick is not copied over\n      if (typeof _this.props.onClick === 'function') {\n        _this.props.onClick(_this.addKeyPath(info));\n      }\n    };\n\n    _this.onSelect = function (info) {\n      _this.props.onSelect(info);\n    };\n\n    _this.onDeselect = function (info) {\n      _this.props.onDeselect(info);\n    };\n\n    _this.getPrefixCls = function () {\n      return \"\".concat(_this.props.rootPrefixCls, \"-submenu\");\n    };\n\n    _this.getActiveClassName = function () {\n      return \"\".concat(_this.getPrefixCls(), \"-active\");\n    };\n\n    _this.getDisabledClassName = function () {\n      return \"\".concat(_this.getPrefixCls(), \"-disabled\");\n    };\n\n    _this.getSelectedClassName = function () {\n      return \"\".concat(_this.getPrefixCls(), \"-selected\");\n    };\n\n    _this.getOpenClassName = function () {\n      return \"\".concat(_this.props.rootPrefixCls, \"-submenu-open\");\n    };\n\n    _this.getVisible = function () {\n      return _this.state.isOpen;\n    };\n\n    _this.getMode = function () {\n      return _this.state.mode;\n    };\n\n    _this.saveMenuInstance = function (c) {\n      // children menu instance\n      _this.menuInstance = c;\n    };\n\n    _this.addKeyPath = function (info) {\n      return _objectSpread(_objectSpread({}, info), {}, {\n        keyPath: (info.keyPath || []).concat(_this.props.eventKey)\n      });\n    };\n\n    _this.triggerOpenChange = function (open, type) {\n      var key = _this.props.eventKey;\n\n      var openChange = function openChange() {\n        _this.onOpenChange({\n          key: key,\n          item: _assertThisInitialized(_this),\n          trigger: type,\n          open: open\n        });\n      };\n\n      if (type === 'mouseenter') {\n        // make sure mouseenter happen after other menu item's mouseleave\n        _this.mouseenterTimeout = setTimeout(function () {\n          openChange();\n        }, 0);\n      } else {\n        openChange();\n      }\n    };\n\n    _this.isChildrenSelected = function () {\n      var ret = {\n        find: false\n      };\n      loopMenuItemRecursively(_this.props.children, _this.props.selectedKeys, ret);\n      return ret.find;\n    };\n\n    _this.isInlineMode = function () {\n      return _this.getMode() === 'inline';\n    };\n\n    _this.adjustWidth = function () {\n      /* istanbul ignore if */\n      if (!_this.subMenuTitle || !_this.menuInstance) {\n        return;\n      }\n\n      var popupMenu = ReactDOM.findDOMNode(_this.menuInstance);\n\n      if (popupMenu.offsetWidth >= _this.subMenuTitle.offsetWidth) {\n        return;\n      }\n      /* istanbul ignore next */\n\n\n      popupMenu.style.minWidth = \"\".concat(_this.subMenuTitle.offsetWidth, \"px\");\n    };\n\n    _this.saveSubMenuTitle = function (subMenuTitle) {\n      _this.subMenuTitle = subMenuTitle;\n    };\n\n    _this.getBaseProps = function () {\n      var _assertThisInitialize2 = _assertThisInitialized(_this),\n          props = _assertThisInitialize2.props;\n\n      var mergedMode = _this.getMode();\n\n      return {\n        mode: mergedMode === 'horizontal' ? 'vertical' : mergedMode,\n        visible: _this.getVisible(),\n        level: props.level + 1,\n        inlineIndent: props.inlineIndent,\n        focusable: false,\n        onClick: _this.onSubMenuClick,\n        onSelect: _this.onSelect,\n        onDeselect: _this.onDeselect,\n        onDestroy: _this.onDestroy,\n        selectedKeys: props.selectedKeys,\n        eventKey: \"\".concat(props.eventKey, \"-menu-\"),\n        openKeys: props.openKeys,\n        motion: props.motion,\n        onOpenChange: _this.onOpenChange,\n        subMenuOpenDelay: props.subMenuOpenDelay,\n        parentMenu: _assertThisInitialized(_this),\n        subMenuCloseDelay: props.subMenuCloseDelay,\n        forceSubMenuRender: props.forceSubMenuRender,\n        triggerSubMenuAction: props.triggerSubMenuAction,\n        builtinPlacements: props.builtinPlacements,\n        defaultActiveFirst: props.store.getState().defaultActiveFirst[getMenuIdFromSubMenuEventKey(props.eventKey)],\n        multiple: props.multiple,\n        prefixCls: props.rootPrefixCls,\n        id: _this.internalMenuId,\n        manualRef: _this.saveMenuInstance,\n        itemIcon: props.itemIcon,\n        expandIcon: props.expandIcon,\n        direction: props.direction\n      };\n    };\n\n    _this.getMotion = function (mode, visible) {\n      var _assertThisInitialize3 = _assertThisInitialized(_this),\n          haveRendered = _assertThisInitialize3.haveRendered;\n\n      var _this$props5 = _this.props,\n          motion = _this$props5.motion,\n          rootPrefixCls = _this$props5.rootPrefixCls; // don't show transition on first rendering (no animation for opened menu)\n      // show appear transition if it's not visible (not sure why)\n      // show appear transition if it's not inline mode\n\n      var mergedMotion = _objectSpread(_objectSpread({}, motion), {}, {\n        leavedClassName: \"\".concat(rootPrefixCls, \"-hidden\"),\n        removeOnLeave: false,\n        motionAppear: haveRendered || !visible || mode !== 'inline'\n      });\n\n      return mergedMotion;\n    };\n\n    var store = props.store,\n        eventKey = props.eventKey;\n\n    var _store$getState = store.getState(),\n        defaultActiveFirst = _store$getState.defaultActiveFirst;\n\n    _this.isRootMenu = false;\n    var value = false;\n\n    if (defaultActiveFirst) {\n      value = defaultActiveFirst[eventKey];\n    }\n\n    updateDefaultActiveFirst(store, eventKey, value);\n    _this.state = {\n      mode: props.mode,\n      isOpen: props.isOpen\n    };\n    return _this;\n  }\n\n  _createClass(SubMenu, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this.componentDidUpdate();\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate() {\n      var _this2 = this;\n\n      var _this$props6 = this.props,\n          mode = _this$props6.mode,\n          parentMenu = _this$props6.parentMenu,\n          manualRef = _this$props6.manualRef,\n          isOpen = _this$props6.isOpen;\n\n      var updateState = function updateState() {\n        _this2.setState({\n          mode: mode,\n          isOpen: isOpen\n        });\n      }; // Delay sync when mode changed in case openKeys change not sync\n\n\n      var isOpenChanged = isOpen !== this.state.isOpen;\n      var isModeChanged = mode !== this.state.mode;\n\n      if (isModeChanged || isOpenChanged) {\n        raf.cancel(this.updateStateRaf);\n\n        if (isModeChanged) {\n          this.updateStateRaf = raf(updateState);\n        } else {\n          updateState();\n        }\n      } // invoke customized ref to expose component to mixin\n\n\n      if (manualRef) {\n        manualRef(this);\n      }\n\n      if (mode !== 'horizontal' || !(parentMenu === null || parentMenu === void 0 ? void 0 : parentMenu.isRootMenu) || !isOpen) {\n        return;\n      }\n\n      this.minWidthTimeout = setTimeout(function () {\n        return _this2.adjustWidth();\n      }, 0);\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      var _this$props7 = this.props,\n          onDestroy = _this$props7.onDestroy,\n          eventKey = _this$props7.eventKey;\n\n      if (onDestroy) {\n        onDestroy(eventKey);\n      }\n      /* istanbul ignore if */\n\n\n      if (this.minWidthTimeout) {\n        clearTimeout(this.minWidthTimeout);\n      }\n      /* istanbul ignore if */\n\n\n      if (this.mouseenterTimeout) {\n        clearTimeout(this.mouseenterTimeout);\n      }\n\n      raf.cancel(this.updateStateRaf);\n    }\n  }, {\n    key: \"renderPopupMenu\",\n    value: function renderPopupMenu(className, style) {\n      var baseProps = this.getBaseProps();\n      /**\n       * zombiej: Why SubPopupMenu here?\n       * Seems whatever popup or inline mode both will render SubPopupMenu.\n       * It's controlled by Trigger for popup or not.\n       */\n\n      return React.createElement(SubPopupMenu, Object.assign({}, baseProps, {\n        id: this.internalMenuId,\n        className: className,\n        style: style\n      }), this.props.children);\n    }\n  }, {\n    key: \"renderChildren\",\n    value: function renderChildren() {\n      var _this3 = this;\n\n      var baseProps = this.getBaseProps();\n      var mode = baseProps.mode,\n          visible = baseProps.visible,\n          forceSubMenuRender = baseProps.forceSubMenuRender,\n          direction = baseProps.direction; // [Legacy] getMotion must be called before `haveRendered`\n\n      var mergedMotion = this.getMotion(mode, visible);\n      this.haveRendered = true;\n      this.haveOpened = this.haveOpened || visible || forceSubMenuRender; // never rendered not planning to, don't render\n\n      if (!this.haveOpened) {\n        return React.createElement(\"div\", null);\n      }\n\n      var sharedClassName = classNames(\"\".concat(baseProps.prefixCls, \"-sub\"), _defineProperty({}, \"\".concat(baseProps.prefixCls, \"-rtl\"), direction === 'rtl'));\n\n      if (!this.isInlineMode()) {\n        return this.renderPopupMenu(sharedClassName);\n      }\n\n      return React.createElement(CSSMotion, Object.assign({\n        visible: baseProps.visible\n      }, mergedMotion), function (_ref) {\n        var className = _ref.className,\n            style = _ref.style;\n        var mergedClassName = classNames(sharedClassName, className);\n        return _this3.renderPopupMenu(mergedClassName, style);\n      });\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _classNames2, _props$parentMenu, _classNames3;\n\n      var props = _objectSpread({}, this.props);\n\n      var visible = this.getVisible();\n      var prefixCls = this.getPrefixCls();\n      var inline = this.isInlineMode();\n      var mergedMode = this.getMode();\n      var className = classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(mergedMode), (_classNames2 = {}, _defineProperty(_classNames2, props.className, !!props.className), _defineProperty(_classNames2, this.getOpenClassName(), visible), _defineProperty(_classNames2, this.getActiveClassName(), props.active || visible && !inline), _defineProperty(_classNames2, this.getDisabledClassName(), props.disabled), _defineProperty(_classNames2, this.getSelectedClassName(), this.isChildrenSelected()), _classNames2));\n\n      if (!this.internalMenuId) {\n        if (props.eventKey) {\n          this.internalMenuId = \"\".concat(props.eventKey, \"$Menu\");\n        } else {\n          guid += 1;\n          this.internalMenuId = \"$__$\".concat(guid, \"$Menu\");\n        }\n      }\n\n      var mouseEvents = {};\n      var titleClickEvents = {};\n      var titleMouseEvents = {};\n\n      if (!props.disabled) {\n        mouseEvents = {\n          onMouseLeave: this.onMouseLeave,\n          onMouseEnter: this.onMouseEnter\n        }; // only works in title, not outer li\n\n        titleClickEvents = {\n          onClick: this.onTitleClick\n        };\n        titleMouseEvents = {\n          onMouseEnter: this.onTitleMouseEnter,\n          onMouseLeave: this.onTitleMouseLeave\n        };\n      }\n\n      var style = {};\n      var direction = props.direction;\n      var isRTL = direction === 'rtl';\n\n      if (inline) {\n        if (isRTL) {\n          style.paddingRight = props.inlineIndent * props.level;\n        } else {\n          style.paddingLeft = props.inlineIndent * props.level;\n        }\n      }\n\n      var ariaOwns = {}; // only set aria-owns when menu is open\n      // otherwise it would be an invalid aria-owns value\n      // since corresponding node cannot be found\n\n      if (this.getVisible()) {\n        ariaOwns = {\n          'aria-owns': this.internalMenuId\n        };\n      } // expand custom icon should NOT be displayed in menu with horizontal mode.\n\n\n      var icon = null;\n\n      if (mergedMode !== 'horizontal') {\n        icon = this.props.expandIcon; // ReactNode\n\n        if (typeof this.props.expandIcon === 'function') {\n          icon = React.createElement(this.props.expandIcon, _objectSpread({}, this.props));\n        }\n      }\n\n      var title = React.createElement(\"div\", Object.assign({\n        ref: this.saveSubMenuTitle,\n        style: style,\n        className: \"\".concat(prefixCls, \"-title\"),\n        role: \"button\"\n      }, titleMouseEvents, titleClickEvents, {\n        \"aria-expanded\": visible\n      }, ariaOwns, {\n        \"aria-haspopup\": \"true\",\n        title: typeof props.title === 'string' ? props.title : undefined\n      }), props.title, icon || React.createElement(\"i\", {\n        className: \"\".concat(prefixCls, \"-arrow\")\n      }));\n      var children = this.renderChildren();\n      var getPopupContainer = ((_props$parentMenu = props.parentMenu) === null || _props$parentMenu === void 0 ? void 0 : _props$parentMenu.isRootMenu) ? props.parentMenu.props.getPopupContainer : function (triggerNode) {\n        return triggerNode.parentNode;\n      };\n      var popupPlacement = popupPlacementMap[mergedMode];\n      var popupAlign = props.popupOffset ? {\n        offset: props.popupOffset\n      } : {};\n      var popupClassName = classNames((_classNames3 = {}, _defineProperty(_classNames3, props.popupClassName, props.popupClassName && !inline), _defineProperty(_classNames3, \"\".concat(prefixCls, \"-rtl\"), isRTL), _classNames3));\n      var disabled = props.disabled,\n          triggerSubMenuAction = props.triggerSubMenuAction,\n          subMenuOpenDelay = props.subMenuOpenDelay,\n          forceSubMenuRender = props.forceSubMenuRender,\n          subMenuCloseDelay = props.subMenuCloseDelay,\n          builtinPlacements = props.builtinPlacements;\n      menuAllProps.forEach(function (key) {\n        return delete props[key];\n      }); // Set onClick to null, to ignore propagated onClick event\n\n      delete props.onClick;\n      var placement = isRTL ? Object.assign({}, placementsRtl, builtinPlacements) : Object.assign({}, placements, builtinPlacements);\n      delete props.direction; // [Legacy] It's a fast fix,\n      // but we should check if we can refactor this to make code more easy to understand\n\n      var baseProps = this.getBaseProps();\n      var mergedMotion = inline ? null : this.getMotion(baseProps.mode, baseProps.visible);\n      return React.createElement(\"li\", Object.assign({}, props, mouseEvents, {\n        className: className,\n        role: \"menuitem\"\n      }), React.createElement(Trigger, {\n        prefixCls: prefixCls,\n        popupClassName: classNames(\"\".concat(prefixCls, \"-popup\"), popupClassName),\n        getPopupContainer: getPopupContainer,\n        builtinPlacements: placement,\n        popupPlacement: popupPlacement,\n        popupVisible: inline ? false : visible,\n        popupAlign: popupAlign,\n        popup: inline ? null : children,\n        action: disabled || inline ? [] : [triggerSubMenuAction],\n        mouseEnterDelay: subMenuOpenDelay,\n        mouseLeaveDelay: subMenuCloseDelay,\n        onPopupVisibleChange: this.onPopupVisibleChange,\n        forceRender: forceSubMenuRender,\n        popupMotion: mergedMotion\n      }, title), inline ? children : null);\n    }\n  }]);\n\n  return SubMenu;\n}(React.Component);\nSubMenu.defaultProps = {\n  onMouseEnter: noop,\n  onMouseLeave: noop,\n  onTitleMouseEnter: noop,\n  onTitleMouseLeave: noop,\n  onTitleClick: noop,\n  manualRef: noop,\n  mode: 'vertical',\n  title: ''\n};\nvar connected = connect(function (_ref2, _ref3) {\n  var openKeys = _ref2.openKeys,\n      activeKey = _ref2.activeKey,\n      selectedKeys = _ref2.selectedKeys;\n  var eventKey = _ref3.eventKey,\n      subMenuKey = _ref3.subMenuKey;\n  return {\n    isOpen: openKeys.indexOf(eventKey) > -1,\n    active: activeKey[subMenuKey] === eventKey,\n    selectedKeys: selectedKeys\n  };\n})(SubMenu);\nconnected.isSubMenu = true;\nexport default connected;","map":{"version":3,"sources":["C:/Users/kkwan_000/Desktop/git/2017110269/minsung/node_modules/rc-menu/es/SubMenu.js"],"names":["_classCallCheck","_createClass","_assertThisInitialized","_inherits","_createSuper","_defineProperty","_objectSpread","React","ReactDOM","Trigger","raf","KeyCode","CSSMotion","classNames","connect","SubPopupMenu","placements","placementsRtl","noop","loopMenuItemRecursively","getMenuIdFromSubMenuEventKey","menuAllProps","guid","popupPlacementMap","horizontal","vertical","updateDefaultActiveFirst","store","eventKey","defaultActiveFirst","menuId","state","getState","setState","SubMenu","_React$Component","_super","props","_this","call","onDestroy","key","onKeyDown","e","keyCode","menu","menuInstance","visible","getVisible","ENTER","onTitleClick","RIGHT","triggerOpenChange","LEFT","handled","undefined","UP","DOWN","onOpenChange","onPopupVisibleChange","onMouseEnter","_this$props","domEvent","onMouseLeave","_this$props2","parentMenu","subMenuInstance","onTitleMouseEnter","_this$props3","onItemHover","hover","onTitleMouseLeave","_this$props4","_assertThisInitialize","triggerSubMenuAction","onSubMenuClick","info","onClick","addKeyPath","onSelect","onDeselect","getPrefixCls","concat","rootPrefixCls","getActiveClassName","getDisabledClassName","getSelectedClassName","getOpenClassName","isOpen","getMode","mode","saveMenuInstance","c","keyPath","open","type","openChange","item","trigger","mouseenterTimeout","setTimeout","isChildrenSelected","ret","find","children","selectedKeys","isInlineMode","adjustWidth","subMenuTitle","popupMenu","findDOMNode","offsetWidth","style","minWidth","saveSubMenuTitle","getBaseProps","_assertThisInitialize2","mergedMode","level","inlineIndent","focusable","openKeys","motion","subMenuOpenDelay","subMenuCloseDelay","forceSubMenuRender","builtinPlacements","multiple","prefixCls","id","internalMenuId","manualRef","itemIcon","expandIcon","direction","getMotion","_assertThisInitialize3","haveRendered","_this$props5","mergedMotion","leavedClassName","removeOnLeave","motionAppear","_store$getState","isRootMenu","value","componentDidMount","componentDidUpdate","_this2","_this$props6","updateState","isOpenChanged","isModeChanged","cancel","updateStateRaf","minWidthTimeout","componentWillUnmount","_this$props7","clearTimeout","renderPopupMenu","className","baseProps","createElement","Object","assign","renderChildren","_this3","haveOpened","sharedClassName","_ref","mergedClassName","render","_classNames2","_props$parentMenu","_classNames3","inline","active","disabled","mouseEvents","titleClickEvents","titleMouseEvents","isRTL","paddingRight","paddingLeft","ariaOwns","icon","title","ref","role","getPopupContainer","triggerNode","parentNode","popupPlacement","popupAlign","popupOffset","offset","popupClassName","forEach","placement","popupVisible","popup","action","mouseEnterDelay","mouseLeaveDelay","forceRender","popupMotion","Component","defaultProps","connected","_ref2","_ref3","activeKey","subMenuKey","indexOf","isSubMenu"],"mappings":"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","sourcesContent":["import _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 _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport Trigger from 'rc-trigger';\nimport raf from \"rc-util/es/raf\";\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport CSSMotion from 'rc-motion';\nimport classNames from 'classnames';\nimport { connect } from 'mini-store';\nimport SubPopupMenu from './SubPopupMenu';\nimport { placements, placementsRtl } from './placements';\nimport { noop, loopMenuItemRecursively, getMenuIdFromSubMenuEventKey, menuAllProps } from './util';\nvar guid = 0;\nvar popupPlacementMap = {\n  horizontal: 'bottomLeft',\n  vertical: 'rightTop',\n  'vertical-left': 'rightTop',\n  'vertical-right': 'leftTop'\n};\n\nvar updateDefaultActiveFirst = function updateDefaultActiveFirst(store, eventKey, defaultActiveFirst) {\n  var menuId = getMenuIdFromSubMenuEventKey(eventKey);\n  var state = store.getState();\n  store.setState({\n    defaultActiveFirst: _objectSpread(_objectSpread({}, state.defaultActiveFirst), {}, _defineProperty({}, menuId, defaultActiveFirst))\n  });\n};\n\nexport var SubMenu = /*#__PURE__*/function (_React$Component) {\n  _inherits(SubMenu, _React$Component);\n\n  var _super = _createSuper(SubMenu);\n\n  function SubMenu(props) {\n    var _this;\n\n    _classCallCheck(this, SubMenu);\n\n    _this = _super.call(this, props);\n\n    _this.onDestroy = function (key) {\n      _this.props.onDestroy(key);\n    };\n    /**\n     * note:\n     *  This legacy code that `onKeyDown` is called by parent instead of dom self.\n     *  which need return code to check if this event is handled\n     */\n\n\n    _this.onKeyDown = function (e) {\n      var keyCode = e.keyCode;\n      var menu = _this.menuInstance;\n      var store = _this.props.store;\n\n      var visible = _this.getVisible();\n\n      if (keyCode === KeyCode.ENTER) {\n        _this.onTitleClick(e);\n\n        updateDefaultActiveFirst(store, _this.props.eventKey, true);\n        return true;\n      }\n\n      if (keyCode === KeyCode.RIGHT) {\n        if (visible) {\n          menu.onKeyDown(e);\n        } else {\n          _this.triggerOpenChange(true); // need to update current menu's defaultActiveFirst value\n\n\n          updateDefaultActiveFirst(store, _this.props.eventKey, true);\n        }\n\n        return true;\n      }\n\n      if (keyCode === KeyCode.LEFT) {\n        var handled;\n\n        if (visible) {\n          handled = menu.onKeyDown(e);\n        } else {\n          return undefined;\n        }\n\n        if (!handled) {\n          _this.triggerOpenChange(false);\n\n          handled = true;\n        }\n\n        return handled;\n      }\n\n      if (visible && (keyCode === KeyCode.UP || keyCode === KeyCode.DOWN)) {\n        return menu.onKeyDown(e);\n      }\n\n      return undefined;\n    };\n\n    _this.onOpenChange = function (e) {\n      _this.props.onOpenChange(e);\n    };\n\n    _this.onPopupVisibleChange = function (visible) {\n      _this.triggerOpenChange(visible, visible ? 'mouseenter' : 'mouseleave');\n    };\n\n    _this.onMouseEnter = function (e) {\n      var _this$props = _this.props,\n          key = _this$props.eventKey,\n          onMouseEnter = _this$props.onMouseEnter,\n          store = _this$props.store;\n      updateDefaultActiveFirst(store, _this.props.eventKey, false);\n      onMouseEnter({\n        key: key,\n        domEvent: e\n      });\n    };\n\n    _this.onMouseLeave = function (e) {\n      var _this$props2 = _this.props,\n          parentMenu = _this$props2.parentMenu,\n          eventKey = _this$props2.eventKey,\n          onMouseLeave = _this$props2.onMouseLeave;\n      parentMenu.subMenuInstance = _assertThisInitialized(_this);\n      onMouseLeave({\n        key: eventKey,\n        domEvent: e\n      });\n    };\n\n    _this.onTitleMouseEnter = function (domEvent) {\n      var _this$props3 = _this.props,\n          key = _this$props3.eventKey,\n          onItemHover = _this$props3.onItemHover,\n          onTitleMouseEnter = _this$props3.onTitleMouseEnter;\n      onItemHover({\n        key: key,\n        hover: true\n      });\n      onTitleMouseEnter({\n        key: key,\n        domEvent: domEvent\n      });\n    };\n\n    _this.onTitleMouseLeave = function (e) {\n      var _this$props4 = _this.props,\n          parentMenu = _this$props4.parentMenu,\n          eventKey = _this$props4.eventKey,\n          onItemHover = _this$props4.onItemHover,\n          onTitleMouseLeave = _this$props4.onTitleMouseLeave;\n      parentMenu.subMenuInstance = _assertThisInitialized(_this);\n      onItemHover({\n        key: eventKey,\n        hover: false\n      });\n      onTitleMouseLeave({\n        key: eventKey,\n        domEvent: e\n      });\n    };\n\n    _this.onTitleClick = function (e) {\n      var _assertThisInitialize = _assertThisInitialized(_this),\n          props = _assertThisInitialize.props;\n\n      props.onTitleClick({\n        key: props.eventKey,\n        domEvent: e\n      });\n\n      if (props.triggerSubMenuAction === 'hover') {\n        return;\n      }\n\n      _this.triggerOpenChange(!_this.getVisible(), 'click');\n\n      updateDefaultActiveFirst(props.store, _this.props.eventKey, false);\n    };\n\n    _this.onSubMenuClick = function (info) {\n      // in the case of overflowed submenu\n      // onClick is not copied over\n      if (typeof _this.props.onClick === 'function') {\n        _this.props.onClick(_this.addKeyPath(info));\n      }\n    };\n\n    _this.onSelect = function (info) {\n      _this.props.onSelect(info);\n    };\n\n    _this.onDeselect = function (info) {\n      _this.props.onDeselect(info);\n    };\n\n    _this.getPrefixCls = function () {\n      return \"\".concat(_this.props.rootPrefixCls, \"-submenu\");\n    };\n\n    _this.getActiveClassName = function () {\n      return \"\".concat(_this.getPrefixCls(), \"-active\");\n    };\n\n    _this.getDisabledClassName = function () {\n      return \"\".concat(_this.getPrefixCls(), \"-disabled\");\n    };\n\n    _this.getSelectedClassName = function () {\n      return \"\".concat(_this.getPrefixCls(), \"-selected\");\n    };\n\n    _this.getOpenClassName = function () {\n      return \"\".concat(_this.props.rootPrefixCls, \"-submenu-open\");\n    };\n\n    _this.getVisible = function () {\n      return _this.state.isOpen;\n    };\n\n    _this.getMode = function () {\n      return _this.state.mode;\n    };\n\n    _this.saveMenuInstance = function (c) {\n      // children menu instance\n      _this.menuInstance = c;\n    };\n\n    _this.addKeyPath = function (info) {\n      return _objectSpread(_objectSpread({}, info), {}, {\n        keyPath: (info.keyPath || []).concat(_this.props.eventKey)\n      });\n    };\n\n    _this.triggerOpenChange = function (open, type) {\n      var key = _this.props.eventKey;\n\n      var openChange = function openChange() {\n        _this.onOpenChange({\n          key: key,\n          item: _assertThisInitialized(_this),\n          trigger: type,\n          open: open\n        });\n      };\n\n      if (type === 'mouseenter') {\n        // make sure mouseenter happen after other menu item's mouseleave\n        _this.mouseenterTimeout = setTimeout(function () {\n          openChange();\n        }, 0);\n      } else {\n        openChange();\n      }\n    };\n\n    _this.isChildrenSelected = function () {\n      var ret = {\n        find: false\n      };\n      loopMenuItemRecursively(_this.props.children, _this.props.selectedKeys, ret);\n      return ret.find;\n    };\n\n    _this.isInlineMode = function () {\n      return _this.getMode() === 'inline';\n    };\n\n    _this.adjustWidth = function () {\n      /* istanbul ignore if */\n      if (!_this.subMenuTitle || !_this.menuInstance) {\n        return;\n      }\n\n      var popupMenu = ReactDOM.findDOMNode(_this.menuInstance);\n\n      if (popupMenu.offsetWidth >= _this.subMenuTitle.offsetWidth) {\n        return;\n      }\n      /* istanbul ignore next */\n\n\n      popupMenu.style.minWidth = \"\".concat(_this.subMenuTitle.offsetWidth, \"px\");\n    };\n\n    _this.saveSubMenuTitle = function (subMenuTitle) {\n      _this.subMenuTitle = subMenuTitle;\n    };\n\n    _this.getBaseProps = function () {\n      var _assertThisInitialize2 = _assertThisInitialized(_this),\n          props = _assertThisInitialize2.props;\n\n      var mergedMode = _this.getMode();\n\n      return {\n        mode: mergedMode === 'horizontal' ? 'vertical' : mergedMode,\n        visible: _this.getVisible(),\n        level: props.level + 1,\n        inlineIndent: props.inlineIndent,\n        focusable: false,\n        onClick: _this.onSubMenuClick,\n        onSelect: _this.onSelect,\n        onDeselect: _this.onDeselect,\n        onDestroy: _this.onDestroy,\n        selectedKeys: props.selectedKeys,\n        eventKey: \"\".concat(props.eventKey, \"-menu-\"),\n        openKeys: props.openKeys,\n        motion: props.motion,\n        onOpenChange: _this.onOpenChange,\n        subMenuOpenDelay: props.subMenuOpenDelay,\n        parentMenu: _assertThisInitialized(_this),\n        subMenuCloseDelay: props.subMenuCloseDelay,\n        forceSubMenuRender: props.forceSubMenuRender,\n        triggerSubMenuAction: props.triggerSubMenuAction,\n        builtinPlacements: props.builtinPlacements,\n        defaultActiveFirst: props.store.getState().defaultActiveFirst[getMenuIdFromSubMenuEventKey(props.eventKey)],\n        multiple: props.multiple,\n        prefixCls: props.rootPrefixCls,\n        id: _this.internalMenuId,\n        manualRef: _this.saveMenuInstance,\n        itemIcon: props.itemIcon,\n        expandIcon: props.expandIcon,\n        direction: props.direction\n      };\n    };\n\n    _this.getMotion = function (mode, visible) {\n      var _assertThisInitialize3 = _assertThisInitialized(_this),\n          haveRendered = _assertThisInitialize3.haveRendered;\n\n      var _this$props5 = _this.props,\n          motion = _this$props5.motion,\n          rootPrefixCls = _this$props5.rootPrefixCls; // don't show transition on first rendering (no animation for opened menu)\n      // show appear transition if it's not visible (not sure why)\n      // show appear transition if it's not inline mode\n\n      var mergedMotion = _objectSpread(_objectSpread({}, motion), {}, {\n        leavedClassName: \"\".concat(rootPrefixCls, \"-hidden\"),\n        removeOnLeave: false,\n        motionAppear: haveRendered || !visible || mode !== 'inline'\n      });\n\n      return mergedMotion;\n    };\n\n    var store = props.store,\n        eventKey = props.eventKey;\n\n    var _store$getState = store.getState(),\n        defaultActiveFirst = _store$getState.defaultActiveFirst;\n\n    _this.isRootMenu = false;\n    var value = false;\n\n    if (defaultActiveFirst) {\n      value = defaultActiveFirst[eventKey];\n    }\n\n    updateDefaultActiveFirst(store, eventKey, value);\n    _this.state = {\n      mode: props.mode,\n      isOpen: props.isOpen\n    };\n    return _this;\n  }\n\n  _createClass(SubMenu, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this.componentDidUpdate();\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate() {\n      var _this2 = this;\n\n      var _this$props6 = this.props,\n          mode = _this$props6.mode,\n          parentMenu = _this$props6.parentMenu,\n          manualRef = _this$props6.manualRef,\n          isOpen = _this$props6.isOpen;\n\n      var updateState = function updateState() {\n        _this2.setState({\n          mode: mode,\n          isOpen: isOpen\n        });\n      }; // Delay sync when mode changed in case openKeys change not sync\n\n\n      var isOpenChanged = isOpen !== this.state.isOpen;\n      var isModeChanged = mode !== this.state.mode;\n\n      if (isModeChanged || isOpenChanged) {\n        raf.cancel(this.updateStateRaf);\n\n        if (isModeChanged) {\n          this.updateStateRaf = raf(updateState);\n        } else {\n          updateState();\n        }\n      } // invoke customized ref to expose component to mixin\n\n\n      if (manualRef) {\n        manualRef(this);\n      }\n\n      if (mode !== 'horizontal' || !(parentMenu === null || parentMenu === void 0 ? void 0 : parentMenu.isRootMenu) || !isOpen) {\n        return;\n      }\n\n      this.minWidthTimeout = setTimeout(function () {\n        return _this2.adjustWidth();\n      }, 0);\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      var _this$props7 = this.props,\n          onDestroy = _this$props7.onDestroy,\n          eventKey = _this$props7.eventKey;\n\n      if (onDestroy) {\n        onDestroy(eventKey);\n      }\n      /* istanbul ignore if */\n\n\n      if (this.minWidthTimeout) {\n        clearTimeout(this.minWidthTimeout);\n      }\n      /* istanbul ignore if */\n\n\n      if (this.mouseenterTimeout) {\n        clearTimeout(this.mouseenterTimeout);\n      }\n\n      raf.cancel(this.updateStateRaf);\n    }\n  }, {\n    key: \"renderPopupMenu\",\n    value: function renderPopupMenu(className, style) {\n      var baseProps = this.getBaseProps();\n      /**\n       * zombiej: Why SubPopupMenu here?\n       * Seems whatever popup or inline mode both will render SubPopupMenu.\n       * It's controlled by Trigger for popup or not.\n       */\n\n      return React.createElement(SubPopupMenu, Object.assign({}, baseProps, {\n        id: this.internalMenuId,\n        className: className,\n        style: style\n      }), this.props.children);\n    }\n  }, {\n    key: \"renderChildren\",\n    value: function renderChildren() {\n      var _this3 = this;\n\n      var baseProps = this.getBaseProps();\n      var mode = baseProps.mode,\n          visible = baseProps.visible,\n          forceSubMenuRender = baseProps.forceSubMenuRender,\n          direction = baseProps.direction; // [Legacy] getMotion must be called before `haveRendered`\n\n      var mergedMotion = this.getMotion(mode, visible);\n      this.haveRendered = true;\n      this.haveOpened = this.haveOpened || visible || forceSubMenuRender; // never rendered not planning to, don't render\n\n      if (!this.haveOpened) {\n        return React.createElement(\"div\", null);\n      }\n\n      var sharedClassName = classNames(\"\".concat(baseProps.prefixCls, \"-sub\"), _defineProperty({}, \"\".concat(baseProps.prefixCls, \"-rtl\"), direction === 'rtl'));\n\n      if (!this.isInlineMode()) {\n        return this.renderPopupMenu(sharedClassName);\n      }\n\n      return React.createElement(CSSMotion, Object.assign({\n        visible: baseProps.visible\n      }, mergedMotion), function (_ref) {\n        var className = _ref.className,\n            style = _ref.style;\n        var mergedClassName = classNames(sharedClassName, className);\n        return _this3.renderPopupMenu(mergedClassName, style);\n      });\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _classNames2, _props$parentMenu, _classNames3;\n\n      var props = _objectSpread({}, this.props);\n\n      var visible = this.getVisible();\n      var prefixCls = this.getPrefixCls();\n      var inline = this.isInlineMode();\n      var mergedMode = this.getMode();\n      var className = classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(mergedMode), (_classNames2 = {}, _defineProperty(_classNames2, props.className, !!props.className), _defineProperty(_classNames2, this.getOpenClassName(), visible), _defineProperty(_classNames2, this.getActiveClassName(), props.active || visible && !inline), _defineProperty(_classNames2, this.getDisabledClassName(), props.disabled), _defineProperty(_classNames2, this.getSelectedClassName(), this.isChildrenSelected()), _classNames2));\n\n      if (!this.internalMenuId) {\n        if (props.eventKey) {\n          this.internalMenuId = \"\".concat(props.eventKey, \"$Menu\");\n        } else {\n          guid += 1;\n          this.internalMenuId = \"$__$\".concat(guid, \"$Menu\");\n        }\n      }\n\n      var mouseEvents = {};\n      var titleClickEvents = {};\n      var titleMouseEvents = {};\n\n      if (!props.disabled) {\n        mouseEvents = {\n          onMouseLeave: this.onMouseLeave,\n          onMouseEnter: this.onMouseEnter\n        }; // only works in title, not outer li\n\n        titleClickEvents = {\n          onClick: this.onTitleClick\n        };\n        titleMouseEvents = {\n          onMouseEnter: this.onTitleMouseEnter,\n          onMouseLeave: this.onTitleMouseLeave\n        };\n      }\n\n      var style = {};\n      var direction = props.direction;\n      var isRTL = direction === 'rtl';\n\n      if (inline) {\n        if (isRTL) {\n          style.paddingRight = props.inlineIndent * props.level;\n        } else {\n          style.paddingLeft = props.inlineIndent * props.level;\n        }\n      }\n\n      var ariaOwns = {}; // only set aria-owns when menu is open\n      // otherwise it would be an invalid aria-owns value\n      // since corresponding node cannot be found\n\n      if (this.getVisible()) {\n        ariaOwns = {\n          'aria-owns': this.internalMenuId\n        };\n      } // expand custom icon should NOT be displayed in menu with horizontal mode.\n\n\n      var icon = null;\n\n      if (mergedMode !== 'horizontal') {\n        icon = this.props.expandIcon; // ReactNode\n\n        if (typeof this.props.expandIcon === 'function') {\n          icon = React.createElement(this.props.expandIcon, _objectSpread({}, this.props));\n        }\n      }\n\n      var title = React.createElement(\"div\", Object.assign({\n        ref: this.saveSubMenuTitle,\n        style: style,\n        className: \"\".concat(prefixCls, \"-title\"),\n        role: \"button\"\n      }, titleMouseEvents, titleClickEvents, {\n        \"aria-expanded\": visible\n      }, ariaOwns, {\n        \"aria-haspopup\": \"true\",\n        title: typeof props.title === 'string' ? props.title : undefined\n      }), props.title, icon || React.createElement(\"i\", {\n        className: \"\".concat(prefixCls, \"-arrow\")\n      }));\n      var children = this.renderChildren();\n      var getPopupContainer = ((_props$parentMenu = props.parentMenu) === null || _props$parentMenu === void 0 ? void 0 : _props$parentMenu.isRootMenu) ? props.parentMenu.props.getPopupContainer : function (triggerNode) {\n        return triggerNode.parentNode;\n      };\n      var popupPlacement = popupPlacementMap[mergedMode];\n      var popupAlign = props.popupOffset ? {\n        offset: props.popupOffset\n      } : {};\n      var popupClassName = classNames((_classNames3 = {}, _defineProperty(_classNames3, props.popupClassName, props.popupClassName && !inline), _defineProperty(_classNames3, \"\".concat(prefixCls, \"-rtl\"), isRTL), _classNames3));\n      var disabled = props.disabled,\n          triggerSubMenuAction = props.triggerSubMenuAction,\n          subMenuOpenDelay = props.subMenuOpenDelay,\n          forceSubMenuRender = props.forceSubMenuRender,\n          subMenuCloseDelay = props.subMenuCloseDelay,\n          builtinPlacements = props.builtinPlacements;\n      menuAllProps.forEach(function (key) {\n        return delete props[key];\n      }); // Set onClick to null, to ignore propagated onClick event\n\n      delete props.onClick;\n      var placement = isRTL ? Object.assign({}, placementsRtl, builtinPlacements) : Object.assign({}, placements, builtinPlacements);\n      delete props.direction; // [Legacy] It's a fast fix,\n      // but we should check if we can refactor this to make code more easy to understand\n\n      var baseProps = this.getBaseProps();\n      var mergedMotion = inline ? null : this.getMotion(baseProps.mode, baseProps.visible);\n      return React.createElement(\"li\", Object.assign({}, props, mouseEvents, {\n        className: className,\n        role: \"menuitem\"\n      }), React.createElement(Trigger, {\n        prefixCls: prefixCls,\n        popupClassName: classNames(\"\".concat(prefixCls, \"-popup\"), popupClassName),\n        getPopupContainer: getPopupContainer,\n        builtinPlacements: placement,\n        popupPlacement: popupPlacement,\n        popupVisible: inline ? false : visible,\n        popupAlign: popupAlign,\n        popup: inline ? null : children,\n        action: disabled || inline ? [] : [triggerSubMenuAction],\n        mouseEnterDelay: subMenuOpenDelay,\n        mouseLeaveDelay: subMenuCloseDelay,\n        onPopupVisibleChange: this.onPopupVisibleChange,\n        forceRender: forceSubMenuRender,\n        popupMotion: mergedMotion\n      }, title), inline ? children : null);\n    }\n  }]);\n\n  return SubMenu;\n}(React.Component);\nSubMenu.defaultProps = {\n  onMouseEnter: noop,\n  onMouseLeave: noop,\n  onTitleMouseEnter: noop,\n  onTitleMouseLeave: noop,\n  onTitleClick: noop,\n  manualRef: noop,\n  mode: 'vertical',\n  title: ''\n};\nvar connected = connect(function (_ref2, _ref3) {\n  var openKeys = _ref2.openKeys,\n      activeKey = _ref2.activeKey,\n      selectedKeys = _ref2.selectedKeys;\n  var eventKey = _ref3.eventKey,\n      subMenuKey = _ref3.subMenuKey;\n  return {\n    isOpen: openKeys.indexOf(eventKey) > -1,\n    active: activeKey[subMenuKey] === eventKey,\n    selectedKeys: selectedKeys\n  };\n})(SubMenu);\nconnected.isSubMenu = true;\nexport default connected;"]},"metadata":{},"sourceType":"module"}