import { createNamespace } from '../utils'; import { ParentMixin } from '../mixins/relation'; var _createNamespace = createNamespace('row'), createComponent = _createNamespace[0], bem = _createNamespace[1]; export default createComponent({ mixins: [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()]); } });