1
0
Fork 0
mirror of https://gitlab.com/bramw/baserow.git synced 2025-04-30 23:30:02 +00:00
bramw_baserow/web-frontend/modules/core/components/Radio.vue
2021-11-23 16:48:51 +00:00

61 lines
1.2 KiB
Vue

<template>
<div class="radio" :class="classNames" @click="select(value)">
<slot></slot>
</div>
</template>
<script>
export default {
name: 'Radio',
model: {
prop: 'modelValue',
event: 'input',
},
props: {
value: {
type: [String, Number, Boolean, Object],
required: false,
default: '',
},
modelValue: {
type: [String, Number, Boolean, Object],
required: false,
default: '',
},
disabled: {
type: Boolean,
required: false,
default: false,
},
loading: {
type: Boolean,
required: false,
default: false,
},
},
computed: {
classNames() {
return {
'radio--has-content': Object.prototype.hasOwnProperty.call(
this.$slots,
'default'
),
'radio--disabled': this.disabled,
'radio--loading': this.loading,
selected: this.modelValue === this.value,
}
},
selected() {
return this.modelValue === this.value
},
},
methods: {
select(value) {
if (this.disabled || this.selected) {
return
}
this.$emit('input', value)
},
},
}
</script>