This repository has been archived on 2024-07-27. You can view files and clone it, but cannot push or open issues or pull requests.
keksAccountGUI/node_modulesOLD/vuetify/lib/components/VItemGroup/VItem.js
2019-08-11 20:48:02 +02:00

64 lines
No EOL
1.4 KiB
JavaScript

// 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