mirror of
https://gitlab.com/bramw/baserow.git
synced 2025-04-12 16:28:06 +00:00
59 lines
1 KiB
Vue
59 lines
1 KiB
Vue
<template>
|
|
<li
|
|
class="select__item"
|
|
:class="{
|
|
hidden: !isVisible(query),
|
|
active: isActive(value),
|
|
}"
|
|
>
|
|
<a class="select__item-link" @click="select(value)">
|
|
<i
|
|
v-if="icon"
|
|
class="select__item-icon fas fa-fw"
|
|
:class="'fa-' + icon"
|
|
></i>
|
|
{{ name }}
|
|
</a>
|
|
</li>
|
|
</template>
|
|
|
|
<script>
|
|
export default {
|
|
name: 'DropdownItem',
|
|
props: {
|
|
value: {
|
|
type: [String, Number, Boolean, Object],
|
|
required: true,
|
|
},
|
|
name: {
|
|
type: String,
|
|
required: true,
|
|
},
|
|
icon: {
|
|
type: String,
|
|
required: false,
|
|
default: null,
|
|
},
|
|
},
|
|
data() {
|
|
return {
|
|
query: '',
|
|
}
|
|
},
|
|
methods: {
|
|
select(value) {
|
|
this.$parent.select(value)
|
|
},
|
|
search(query) {
|
|
this.query = query
|
|
},
|
|
isVisible(query) {
|
|
const regex = new RegExp('(' + query + ')', 'i')
|
|
return this.name.match(regex)
|
|
},
|
|
isActive(value) {
|
|
return this.$parent.value === value
|
|
},
|
|
},
|
|
}
|
|
</script>
|