vuetify
Version:
Vue.js 2 Semantic Component Framework
31 lines (24 loc) • 484 B
JavaScript
export function factory (prop = 'value', event = 'input') {
return {
name: 'toggleable',
model: { prop, event },
props: {
[prop]: { required: false }
},
data () {
return {
isActive: !!this[prop]
}
},
watch: {
[prop] (val) {
this.isActive = !!val
},
isActive (val) {
!!val !== this[prop] && this.$emit(event, val)
}
}
}
}
const Toggleable = factory()
export default Toggleable