1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- import _extends from 'babel-runtime/helpers/extends';
- import _defineProperty from 'babel-runtime/helpers/defineProperty';
- import _typeof from 'babel-runtime/helpers/typeof';
- import Icon from '../icon';
- import ScrollableInkTabBar from '../vc-tabs/src/ScrollableInkTabBar';
- import { cloneElement } from '../_util/vnode';
- import PropTypes from '../_util/vue-types';
- import { getListeners } from '../_util/props-util';
- var TabBar = {
- name: 'TabBar',
- inheritAttrs: false,
- props: {
- prefixCls: PropTypes.string,
- tabBarStyle: PropTypes.object,
- tabBarExtraContent: PropTypes.any,
- type: PropTypes.oneOf(['line', 'card', 'editable-card']),
- tabPosition: PropTypes.oneOf(['top', 'right', 'bottom', 'left']).def('top'),
- tabBarPosition: PropTypes.oneOf(['top', 'right', 'bottom', 'left']),
- size: PropTypes.oneOf(['default', 'small', 'large']),
- animated: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),
- renderTabBar: PropTypes.func,
- panels: PropTypes.array.def([]),
- activeKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
- tabBarGutter: PropTypes.number
- },
- render: function render() {
- var _cls;
- var h = arguments[0];
- var _$props = this.$props,
- tabBarStyle = _$props.tabBarStyle,
- _$props$animated = _$props.animated,
- animated = _$props$animated === undefined ? true : _$props$animated,
- renderTabBar = _$props.renderTabBar,
- tabBarExtraContent = _$props.tabBarExtraContent,
- tabPosition = _$props.tabPosition,
- prefixCls = _$props.prefixCls,
- _$props$type = _$props.type,
- type = _$props$type === undefined ? 'line' : _$props$type,
- size = _$props.size;
- var inkBarAnimated = (typeof animated === 'undefined' ? 'undefined' : _typeof(animated)) === 'object' ? animated.inkBar : animated;
- var isVertical = tabPosition === 'left' || tabPosition === 'right';
- var prevIconType = isVertical ? 'up' : 'left';
- var nextIconType = isVertical ? 'down' : 'right';
- var prevIcon = h(
- 'span',
- { 'class': prefixCls + '-tab-prev-icon' },
- [h(Icon, {
- attrs: { type: prevIconType },
- 'class': prefixCls + '-tab-prev-icon-target' })]
- );
- var nextIcon = h(
- 'span',
- { 'class': prefixCls + '-tab-next-icon' },
- [h(Icon, {
- attrs: { type: nextIconType },
- 'class': prefixCls + '-tab-next-icon-target' })]
- );
- // Additional className for style usage
- var cls = (_cls = {}, _defineProperty(_cls, prefixCls + '-' + tabPosition + '-bar', true), _defineProperty(_cls, prefixCls + '-' + size + '-bar', !!size), _defineProperty(_cls, prefixCls + '-card-bar', type && type.indexOf('card') >= 0), _cls);
- var renderProps = {
- props: _extends({}, this.$props, this.$attrs, {
- inkBarAnimated: inkBarAnimated,
- extraContent: tabBarExtraContent,
- prevIcon: prevIcon,
- nextIcon: nextIcon
- }),
- style: tabBarStyle,
- on: getListeners(this),
- 'class': cls
- };
- var RenderTabBar = void 0;
- if (renderTabBar) {
- RenderTabBar = renderTabBar(renderProps, ScrollableInkTabBar);
- // https://github.com/vueComponent/ant-design-vue/issues/2157
- return cloneElement(RenderTabBar, renderProps);
- } else {
- return h(ScrollableInkTabBar, renderProps);
- }
- }
- };
- export default TabBar;
|