| Server IP : 34.87.99.72 / Your IP : 216.73.217.31 Web Server : Apache/2.4.46 (Unix) OpenSSL/1.1.1n System : Linux zlock-bitnami-lamp-prod-v2-vm 4.19.0-16-cloud-amd64 #1 SMP Debian 4.19.181-1 (2021-03-19) x86_64 User : bitnami ( 1000) PHP Version : 7.4.18 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /opt/bitnami/apache/htdocs/app/node_modules/vuetify/src/components/VHover/ |
Upload File : |
// Mixins
import Delayable from '../../mixins/delayable'
import Toggleable from '../../mixins/toggleable'
// Utilities
import mixins from '../../util/mixins'
import { consoleWarn } from '../../util/console'
// Types
import { VNode, ScopedSlotChildren } from 'vue/types/vnode'
export default mixins(
Delayable,
Toggleable
/* @vue/component */
).extend({
name: 'v-hover',
props: {
disabled: {
type: Boolean,
default: false,
},
value: {
type: Boolean,
default: undefined,
},
},
methods: {
onMouseEnter () {
this.runDelay('open')
},
onMouseLeave () {
this.runDelay('close')
},
},
render (): VNode {
if (!this.$scopedSlots.default && this.value === undefined) {
consoleWarn('v-hover is missing a default scopedSlot or bound value', this)
return null as any
}
let element: VNode | ScopedSlotChildren
/* istanbul ignore else */
if (this.$scopedSlots.default) {
element = this.$scopedSlots.default({ hover: this.isActive })
}
if (Array.isArray(element) && element.length === 1) {
element = element[0]
}
if (!element || Array.isArray(element) || !element.tag) {
consoleWarn('v-hover should only contain a single element', this)
return element as any
}
if (!this.disabled) {
element.data = element.data || {}
this._g(element.data, {
mouseenter: this.onMouseEnter,
mouseleave: this.onMouseLeave,
})
}
return element
},
})