ant-design-vue/components/vc-menu/DOMWrap.jsx

42 lines
769 B
Vue

import omit from 'omit.js'
export default {
name: 'DOMWrap',
props: {
visible: {
type: Boolean,
default: false,
},
tag: {
type: String,
default: 'div',
},
hiddenClassName: {
type: String,
default: '',
},
},
computed: {
class () {
const { visible, hiddenClassName } = this.$props
return {
[hiddenClassName]: !visible,
}
},
},
render () {
const otherProps = omit(this.$props, [
'tag',
'hiddenClassName',
'visible',
])
const Tag = this.$props.tag
const tagProps = {
attr: { ...otherProps, ...this.$attrs },
on: this.$listeners,
}
return <Tag {...tagProps} class={this.class}>{this.$slots.default}</Tag>
},
}