om/node_modules/vuetify/src/mixins/picker-button.ts

39 lines
911 B
TypeScript

// Mixins
import Colorable from './colorable'
// Utilities
import mixins from '../util/mixins'
// Types
import { VNodeChildren } from 'vue'
/* @vue/component */
export default mixins(
Colorable
).extend({
methods: {
genPickerButton (
prop: string,
value: any,
content: VNodeChildren,
readonly = false,
staticClass = ''
) {
const active = (this as any)[prop] === value
const click = (event: Event) => {
event.stopPropagation()
this.$emit(`update:${prop}`, value)
}
return this.$createElement('div', {
staticClass: `v-picker__title__btn ${staticClass}`.trim(),
'class': {
'v-picker__title__btn--active': active,
'v-picker__title__btn--readonly': readonly
},
on: (active || readonly) ? undefined : { click }
}, Array.isArray(content) ? content : [content])
}
}
})