UNPKG

yqcloud-ui

Version:

An enterprise-class UI design language and React-based implementation

125 lines (102 loc) 4.17 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _defineProperty2 = require('babel-runtime/helpers/defineProperty'); var _defineProperty3 = _interopRequireDefault(_defineProperty2); var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties'); var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); var _extends2 = require('babel-runtime/helpers/extends'); var _extends3 = _interopRequireDefault(_extends2); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _classnames = require('classnames'); var _classnames2 = _interopRequireDefault(_classnames); var _warning = require('warning'); var _warning2 = _interopRequireDefault(_warning); var _utils = require('./utils'); var _ripple = require('../../ripple'); var _ripple2 = _interopRequireDefault(_ripple); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } exports['default'] = { getDefaultProps: function getDefaultProps() { return { styles: {} }; }, onTabClick: function onTabClick(key) { this.props.onTabClick(key); }, getTabs: function getTabs() { var _this = this; var _props = this.props, children = _props.panels, activeKey = _props.activeKey, prefixCls = _props.prefixCls, tabBarGutter = _props.tabBarGutter; var rst = []; _react2['default'].Children.forEach(children, function (child, index) { if (!child) { return; } var key = child.key; var cls = activeKey === key ? prefixCls + '-tab-active' : ''; cls += ' ' + prefixCls + '-tab'; var events = {}; if (child.props.disabled) { cls += ' ' + prefixCls + '-tab-disabled'; } else { events = { onClick: _this.onTabClick.bind(_this, key) }; } var ref = {}; if (activeKey === key) { ref.ref = _this.saveRef('activeTab'); } (0, _warning2['default'])('tab' in child.props, 'There must be `tab` property on children of Tabs.'); rst.push(_react2['default'].createElement(_ripple2['default'], { key: key }, _react2['default'].createElement('div', (0, _extends3['default'])({ role: 'tab', 'aria-disabled': child.props.disabled ? 'true' : 'false', 'aria-selected': activeKey === key ? 'true' : 'false' }, events, { className: cls, style: { marginRight: tabBarGutter && index === children.length - 1 ? 0 : tabBarGutter } }, ref), child.props.tab))); }); return rst; }, getRootNode: function getRootNode(contents) { var _props2 = this.props, prefixCls = _props2.prefixCls, onKeyDown = _props2.onKeyDown, className = _props2.className, extraContent = _props2.extraContent, style = _props2.style, tabBarPosition = _props2.tabBarPosition, restProps = (0, _objectWithoutProperties3['default'])(_props2, ['prefixCls', 'onKeyDown', 'className', 'extraContent', 'style', 'tabBarPosition']); var cls = (0, _classnames2['default'])(prefixCls + '-bar', (0, _defineProperty3['default'])({}, className, !!className)); var topOrBottom = tabBarPosition === 'top' || tabBarPosition === 'bottom'; var tabBarExtraContentStyle = topOrBottom ? { float: 'right' } : {}; var extraContentStyle = extraContent && extraContent.props ? extraContent.props.style : {}; var children = contents; if (extraContent) { children = [(0, _react.cloneElement)(extraContent, { key: 'extra', style: (0, _extends3['default'])({}, tabBarExtraContentStyle, extraContentStyle) }), (0, _react.cloneElement)(contents, { key: 'content' })]; children = topOrBottom ? children : children.reverse(); } return _react2['default'].createElement('div', (0, _extends3['default'])({ role: 'tablist', className: cls, tabIndex: '0', ref: this.saveRef('root'), onKeyDown: onKeyDown, style: style }, (0, _utils.getDataAttr)(restProps)), children); } }; module.exports = exports['default'];