vuetify eingebunden + erster Versuch Combobox
This commit is contained in:
+56
@@ -0,0 +1,56 @@
|
||||
// Mixins
|
||||
import { factory as GroupableFactory } from '../../mixins/groupable'
|
||||
|
||||
// Utilities
|
||||
import mixins from '../../util/mixins'
|
||||
import { consoleWarn } from '../../util/console'
|
||||
|
||||
// Types
|
||||
import { VNode, ScopedSlotChildren } from 'vue/types/vnode'
|
||||
|
||||
export default mixins(
|
||||
GroupableFactory('itemGroup', 'v-item', 'v-item-group')
|
||||
/* @vue/component */
|
||||
).extend({
|
||||
name: 'v-item',
|
||||
|
||||
props: {
|
||||
value: {
|
||||
required: false
|
||||
}
|
||||
},
|
||||
|
||||
render (): VNode {
|
||||
if (!this.$scopedSlots.default) {
|
||||
consoleWarn('v-item is missing a default scopedSlot', this)
|
||||
|
||||
return null as any
|
||||
}
|
||||
|
||||
let element: VNode | ScopedSlotChildren
|
||||
|
||||
/* 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 as any
|
||||
}
|
||||
|
||||
element.data = this._b(element.data || {}, element.tag!, {
|
||||
class: { [this.activeClass]: this.isActive }
|
||||
})
|
||||
|
||||
return element
|
||||
}
|
||||
})
|
||||
Reference in New Issue
Block a user