UNPKG

dtd

Version:

根据数梦工场视觉规范打造的组件库,感谢react-components和ant design

1 lines 5.38 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _defineProperty2=require("babel-runtime/helpers/defineProperty"),_defineProperty3=_interopRequireDefault(_defineProperty2),_extends2=require("babel-runtime/helpers/extends"),_extends3=_interopRequireDefault(_extends2),_classCallCheck2=require("babel-runtime/helpers/classCallCheck"),_classCallCheck3=_interopRequireDefault(_classCallCheck2),_createClass2=require("babel-runtime/helpers/createClass"),_createClass3=_interopRequireDefault(_createClass2),_possibleConstructorReturn2=require("babel-runtime/helpers/possibleConstructorReturn"),_possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2),_inherits2=require("babel-runtime/helpers/inherits"),_inherits3=_interopRequireDefault(_inherits2),_react=require("react"),React=_interopRequireWildcard(_react),_reactDom=require("react-dom"),_rcMenu=require("rc-menu"),_rcMenu2=_interopRequireDefault(_rcMenu),_propTypes=require("prop-types"),PropTypes=_interopRequireWildcard(_propTypes),_classnames=require("classnames"),_classnames2=_interopRequireDefault(_classnames),_openAnimation=require("../_util/openAnimation"),_openAnimation2=_interopRequireDefault(_openAnimation),_warning=require("../_util/warning"),_warning2=_interopRequireDefault(_warning),_SubMenu=require("./SubMenu"),_SubMenu2=_interopRequireDefault(_SubMenu),_MenuItem=require("./MenuItem"),_MenuItem2=_interopRequireDefault(_MenuItem);function _interopRequireWildcard(e){if(e&&e.__esModule)return e;var n={};if(null!=e)for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(n[t]=e[t]);return n.default=e,n}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var Menu=function(e){function i(e){(0,_classCallCheck3.default)(this,i);var t=(0,_possibleConstructorReturn3.default)(this,(i.__proto__||Object.getPrototypeOf(i)).call(this,e));t.inlineOpenKeys=[],t.handleClick=function(e){t.handleOpenChange([]);var n=t.props.onClick;n&&n(e)},t.handleOpenChange=function(e){t.setOpenKeys(e);var n=t.props.onOpenChange;n&&n(e)},(0,_warning2.default)(!("onOpen"in e||"onClose"in e),"`onOpen` and `onClose` are removed, please use `onOpenChange` instead, see: #"),(0,_warning2.default)(!("inlineCollapsed"in e&&"inline"!==e.mode),"`inlineCollapsed` should only be used when Menu's `mode` is inline.");var n=void 0;return"defaultOpenKeys"in e?n=e.defaultOpenKeys:"openKeys"in e&&(n=e.openKeys),t.state={openKeys:n||[]},t}return(0,_inherits3.default)(i,e),(0,_createClass3.default)(i,[{key:"getChildContext",value:function(){return{inlineCollapsed:this.getInlineCollapsed(),dtdMenuTheme:this.props.theme}}},{key:"componentWillReceiveProps",value:function(e,n){var t=this.props.prefixCls;if("inline"===this.props.mode&&"inline"!==e.mode&&(this.switchModeFromInline=!0),"openKeys"in e)this.setState({openKeys:e.openKeys});else{if(e.inlineCollapsed&&!this.props.inlineCollapsed||n.siderCollapsed&&!this.context.siderCollapsed){var i=(0,_reactDom.findDOMNode)(this);this.switchModeFromInline=!!this.state.openKeys.length&&!!i.querySelectorAll("."+t+"-submenu-open").length,this.inlineOpenKeys=this.state.openKeys,this.setState({openKeys:[]})}(!e.inlineCollapsed&&this.props.inlineCollapsed||!n.siderCollapsed&&this.context.siderCollapsed)&&(this.setState({openKeys:this.inlineOpenKeys}),this.inlineOpenKeys=[])}}},{key:"setOpenKeys",value:function(e){"openKeys"in this.props||this.setState({openKeys:e})}},{key:"getRealMenuMode",value:function(){var e=this.getInlineCollapsed();if(this.switchModeFromInline&&e)return"inline";var n=this.props.mode;return e?"vertical":n}},{key:"getInlineCollapsed",value:function(){var e=this.props.inlineCollapsed;return void 0!==this.context.siderCollapsed?this.context.siderCollapsed:e}},{key:"getMenuOpenAnimation",value:function(e){var t=this,n=this.props,i=n.openAnimation,r=n.openTransitionName,s=i||r;if(void 0===i&&void 0===r)switch(e){case"horizontal":s="slide-up";break;case"vertical":case"vertical-left":case"vertical-right":this.switchModeFromInline?(s="",this.switchModeFromInline=!1):s="zoom-big";break;case"inline":s=(0,_extends3.default)({},_openAnimation2.default,{leave:function(e,n){return _openAnimation2.default.leave(e,function(){t.switchModeFromInline=!1,t.setState({}),"vertical"!==t.getRealMenuMode()&&n()})}})}return s}},{key:"render",value:function(){var e=this.props,n=e.prefixCls,t=e.className,i=e.theme,r=this.getRealMenuMode(),s=this.getMenuOpenAnimation(r),l=(0,_classnames2.default)(t,n+"-"+i,(0,_defineProperty3.default)({},n+"-inline-collapsed",this.getInlineCollapsed())),o={openKeys:this.state.openKeys,onOpenChange:this.handleOpenChange,className:l,mode:r};"inline"!==r?(o.onClick=this.handleClick,o.openTransitionName=s):o.openAnimation=s;var a=this.context.collapsedWidth;return!this.getInlineCollapsed()||0!==a&&"0"!==a&&"0px"!==a?React.createElement(_rcMenu2.default,(0,_extends3.default)({},this.props,o)):null}}]),i}(React.Component);(exports.default=Menu).Divider=_rcMenu.Divider,Menu.Item=_MenuItem2.default,Menu.SubMenu=_SubMenu2.default,Menu.ItemGroup=_rcMenu.ItemGroup,Menu.defaultProps={prefixCls:"dt-menu",className:"",theme:"light"},Menu.childContextTypes={inlineCollapsed:PropTypes.bool,dtdMenuTheme:PropTypes.string},Menu.contextTypes={siderCollapsed:PropTypes.bool,collapsedWidth:PropTypes.oneOfType([PropTypes.number,PropTypes.string])},module.exports=exports.default;