// Mixins import { factory as GroupableFactory } from '../../mixins/groupable'; // Utilities import mixins from '../../util/mixins'; import { consoleWarn } from '../../util/console'; // Types import Vue from 'vue'; /* @vue/component */ export const BaseItem = Vue.extend({ props: { activeClass: String, value: { required: false } }, data: () => ({ isActive: false }), methods: { toggle() { this.isActive = !this.isActive; } }, render() { if (!this.$scopedSlots.default) { consoleWarn('v-item is missing a default scopedSlot', this); return null; } let element; /* istanbul ignore else */ if (this.$scopedSlots.default) { element = this.$scopedSlots.default({ active: this.isActive, toggle: this.toggle }); } if (Array.isArray(element) && element.length === 1) { element = element[0]; } if (!element || Array.isArray(element) || !element.tag) { consoleWarn('v-item should only contain a single element', this); return element; } element.data = this._b(element.data || {}, element.tag, { class: { [this.activeClass]: this.isActive } }); return element; } }); export default mixins(BaseItem, GroupableFactory('itemGroup', 'v-item', 'v-item-group')).extend({ name: 'v-item' }); //# sourceMappingURL=VItem.js.map