121 lines
4.1 KiB
Java
121 lines
4.1 KiB
Java
import _defineProperty from 'babel-runtime/helpers/defineProperty';
|
|
import _extends from 'babel-runtime/helpers/extends';
|
|
import _typeof from 'babel-runtime/helpers/typeof';
|
|
import PropTypes from '../_util/vue-types';
|
|
import { ConfigConsumerProps } from '../config-provider/configConsumerProps';
|
|
import { getListeners } from '../_util/props-util';
|
|
|
|
var stringOrNumber = PropTypes.oneOfType([PropTypes.string, PropTypes.number]);
|
|
|
|
export var ColSize = PropTypes.shape({
|
|
span: stringOrNumber,
|
|
order: stringOrNumber,
|
|
offset: stringOrNumber,
|
|
push: stringOrNumber,
|
|
pull: stringOrNumber
|
|
}).loose;
|
|
|
|
var objectOrNumber = PropTypes.oneOfType([PropTypes.string, PropTypes.number, ColSize]);
|
|
|
|
export var ColProps = {
|
|
span: stringOrNumber,
|
|
order: stringOrNumber,
|
|
offset: stringOrNumber,
|
|
push: stringOrNumber,
|
|
pull: stringOrNumber,
|
|
xs: objectOrNumber,
|
|
sm: objectOrNumber,
|
|
md: objectOrNumber,
|
|
lg: objectOrNumber,
|
|
xl: objectOrNumber,
|
|
xxl: objectOrNumber,
|
|
prefixCls: PropTypes.string,
|
|
flex: stringOrNumber
|
|
};
|
|
|
|
export default {
|
|
name: 'ACol',
|
|
props: ColProps,
|
|
inject: {
|
|
configProvider: { 'default': function _default() {
|
|
return ConfigConsumerProps;
|
|
} },
|
|
rowContext: {
|
|
'default': function _default() {
|
|
return null;
|
|
}
|
|
}
|
|
},
|
|
methods: {
|
|
parseFlex: function parseFlex(flex) {
|
|
if (typeof flex === 'number') {
|
|
return flex + ' ' + flex + ' auto';
|
|
}
|
|
if (/^\d+(\.\d+)?(px|em|rem|%)$/.test(flex)) {
|
|
return '0 0 ' + flex;
|
|
}
|
|
return flex;
|
|
}
|
|
},
|
|
render: function render() {
|
|
var _this = this,
|
|
_extends3;
|
|
|
|
var h = arguments[0];
|
|
var span = this.span,
|
|
order = this.order,
|
|
offset = this.offset,
|
|
push = this.push,
|
|
pull = this.pull,
|
|
flex = this.flex,
|
|
customizePrefixCls = this.prefixCls,
|
|
$slots = this.$slots,
|
|
rowContext = this.rowContext;
|
|
|
|
var getPrefixCls = this.configProvider.getPrefixCls;
|
|
var prefixCls = getPrefixCls('col', customizePrefixCls);
|
|
|
|
var sizeClassObj = {};
|
|
['xs', 'sm', 'md', 'lg', 'xl', 'xxl'].forEach(function (size) {
|
|
var _extends2;
|
|
|
|
var sizeProps = {};
|
|
var propSize = _this[size];
|
|
if (typeof propSize === 'number') {
|
|
sizeProps.span = propSize;
|
|
} else if ((typeof propSize === 'undefined' ? 'undefined' : _typeof(propSize)) === 'object') {
|
|
sizeProps = propSize || {};
|
|
}
|
|
|
|
sizeClassObj = _extends({}, sizeClassObj, (_extends2 = {}, _defineProperty(_extends2, prefixCls + '-' + size + '-' + sizeProps.span, sizeProps.span !== undefined), _defineProperty(_extends2, prefixCls + '-' + size + '-order-' + sizeProps.order, sizeProps.order || sizeProps.order === 0), _defineProperty(_extends2, prefixCls + '-' + size + '-offset-' + sizeProps.offset, sizeProps.offset || sizeProps.offset === 0), _defineProperty(_extends2, prefixCls + '-' + size + '-push-' + sizeProps.push, sizeProps.push || sizeProps.push === 0), _defineProperty(_extends2, prefixCls + '-' + size + '-pull-' + sizeProps.pull, sizeProps.pull || sizeProps.pull === 0), _extends2));
|
|
});
|
|
var classes = _extends((_extends3 = {}, _defineProperty(_extends3, '' + prefixCls, true), _defineProperty(_extends3, prefixCls + '-' + span, span !== undefined), _defineProperty(_extends3, prefixCls + '-order-' + order, order), _defineProperty(_extends3, prefixCls + '-offset-' + offset, offset), _defineProperty(_extends3, prefixCls + '-push-' + push, push), _defineProperty(_extends3, prefixCls + '-pull-' + pull, pull), _extends3), sizeClassObj);
|
|
var divProps = {
|
|
on: getListeners(this),
|
|
'class': classes,
|
|
style: {}
|
|
};
|
|
if (rowContext) {
|
|
var gutter = rowContext.getGutter();
|
|
if (gutter) {
|
|
divProps.style = _extends({}, gutter[0] > 0 ? {
|
|
paddingLeft: gutter[0] / 2 + 'px',
|
|
paddingRight: gutter[0] / 2 + 'px'
|
|
} : {}, gutter[1] > 0 ? {
|
|
paddingTop: gutter[1] / 2 + 'px',
|
|
paddingBottom: gutter[1] / 2 + 'px'
|
|
} : {});
|
|
}
|
|
}
|
|
|
|
if (flex) {
|
|
divProps.style.flex = this.parseFlex(flex);
|
|
}
|
|
|
|
return h(
|
|
'div',
|
|
divProps,
|
|
[$slots['default']]
|
|
);
|
|
}
|
|
}; |