zmp-vue
Version:
Build full featured iOS & Android apps using ZMP & Vue
49 lines (43 loc) • 1.57 kB
JavaScript
import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createBlock as _createBlock, resolveComponent as _resolveComponent, mergeProps as _mergeProps, createCommentVNode as _createCommentVNode, renderSlot as _renderSlot } from "vue";
function render(_ctx, _cache) {
var _ref;
var _component_GridItem = _resolveComponent("GridItem");
return _openBlock(), _createBlock("div", {
class: ["grid", (_ref = {}, _ref["grid-" + _ctx.gridColumns] = true, _ref['grid-no-border'] = _ctx.noBorder, _ref)]
}, [_ctx.data && _ctx.data.length ? (_openBlock(true), _createBlock(_Fragment, {
key: 0
}, _renderList(_ctx.data, function (item, index) {
return _openBlock(), _createBlock(_component_GridItem, _mergeProps({
key: item.key || "grid-item-" + index
}, item), null, 16);
}), 128)) : _renderSlot(_ctx.$slots, "default", {
key: 1
})], 2);
}
import { computed } from 'vue';
import GridItem from './grid-item';
import { MAX_GRID_COLUMNS, MIN_GRID_COLUMNS } from '../../common/constants';
export default {
name: 'zmp-grid',
render: render,
props: {
noBorder: Boolean,
data: Array,
columns: [Number, String]
},
components: {
GridItem: GridItem
},
setup: function setup(props) {
var gridColumns = computed(function () {
var gridColumns = 3;
if (props.columns && props.columns > MIN_GRID_COLUMNS && props.columns < MAX_GRID_COLUMNS) {
gridColumns = props.columns;
}
return gridColumns;
});
return {
gridColumns: gridColumns
};
}
};