You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
93 lines
2.1 KiB
93 lines
2.1 KiB
"use strict";
|
|
|
|
exports.__esModule = true;
|
|
exports.default = void 0;
|
|
|
|
var _utils = require("../utils");
|
|
|
|
var _relation = require("../mixins/relation");
|
|
|
|
var _createNamespace = (0, _utils.createNamespace)('row'),
|
|
createComponent = _createNamespace[0],
|
|
bem = _createNamespace[1];
|
|
|
|
var _default = createComponent({
|
|
mixins: [(0, _relation.ParentMixin)('vanRow')],
|
|
props: {
|
|
type: String,
|
|
align: String,
|
|
justify: String,
|
|
tag: {
|
|
type: String,
|
|
default: 'div'
|
|
},
|
|
gutter: {
|
|
type: [Number, String],
|
|
default: 0
|
|
}
|
|
},
|
|
computed: {
|
|
spaces: function spaces() {
|
|
var gutter = Number(this.gutter);
|
|
|
|
if (!gutter) {
|
|
return;
|
|
}
|
|
|
|
var spaces = [];
|
|
var groups = [[]];
|
|
var totalSpan = 0;
|
|
this.children.forEach(function (item, index) {
|
|
totalSpan += Number(item.span);
|
|
|
|
if (totalSpan > 24) {
|
|
groups.push([index]);
|
|
totalSpan -= 24;
|
|
} else {
|
|
groups[groups.length - 1].push(index);
|
|
}
|
|
});
|
|
groups.forEach(function (group) {
|
|
var averagePadding = gutter * (group.length - 1) / group.length;
|
|
group.forEach(function (item, index) {
|
|
if (index === 0) {
|
|
spaces.push({
|
|
right: averagePadding
|
|
});
|
|
} else {
|
|
var left = gutter - spaces[item - 1].right;
|
|
var right = averagePadding - left;
|
|
spaces.push({
|
|
left: left,
|
|
right: right
|
|
});
|
|
}
|
|
});
|
|
});
|
|
return spaces;
|
|
}
|
|
},
|
|
methods: {
|
|
onClick: function onClick(event) {
|
|
this.$emit('click', event);
|
|
}
|
|
},
|
|
render: function render() {
|
|
var _bem;
|
|
|
|
var h = arguments[0];
|
|
var align = this.align,
|
|
justify = this.justify;
|
|
var flex = this.type === 'flex';
|
|
return h(this.tag, {
|
|
"class": bem((_bem = {
|
|
flex: flex
|
|
}, _bem["align-" + align] = flex && align, _bem["justify-" + justify] = flex && justify, _bem)),
|
|
"on": {
|
|
"click": this.onClick
|
|
}
|
|
}, [this.slots()]);
|
|
}
|
|
});
|
|
|
|
exports.default = _default; |