UNPKG

zmp-vue

Version:

Build full featured iOS & Android apps using ZMP & Vue

59 lines (56 loc) 2.37 kB
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } import { renderSlot as _renderSlot, createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock } from "vue"; function render(_ctx, _cache) { return _openBlock(), _createBlock("div", { class: _ctx.classes, "data-sortable-move-elements": typeof _ctx.sortableMoveElements !== 'undefined' ? _ctx.sortableMoveElements.toString() : undefined }, [_createVNode("ul", null, [_renderSlot(_ctx.$slots, "default")])], 10, ["data-sortable-move-elements"]); } import { computed, provide, inject } from 'vue'; import { classNames } from '../shared/utils'; import { colorClasses, colorProps } from '../shared/mixins'; export default { name: 'zmp-list-group', render: render, props: _extends({ mediaList: Boolean, simpleList: Boolean, sortable: Boolean, sortableOpposite: Boolean, sortableTapHold: Boolean, sortableMoveElements: { type: Boolean, default: undefined } }, colorProps), setup: function setup(props) { var ListContextParent = inject('ListContext', { value: { listIsMedia: props.mediaList, listIsSimple: props.simpleList, listIsSortable: props.sortable, listIsSortableOpposite: props.sortableOpposite } }); var ListContext = computed(function () { return { listIsMedia: props.mediaList || ListContextParent.value.listIsMedia, listIsSimple: props.simpleList || ListContextParent.value.listIsSimple, listIsSortable: props.sortable || ListContextParent.value.listIsSortable, listIsSortableOpposite: props.sortableOpposite || ListContextParent.value.listIsSortableOpposite }; }); provide('ListContext', ListContext); var classes = computed(function () { return classNames('list-group', { 'media-list': props.mediaList, sortable: props.sortable, 'sortable-tap-hold': props.sortableTapHold, 'sortable-opposite': props.sortableOpposite }, colorClasses(props)); }); return { classes: classes }; } };