v5.0.0 update

This commit is contained in:
Mohit Panjwani
2021-11-30 18:58:19 +05:30
parent d332712c22
commit 082d5cacf2
1253 changed files with 88309 additions and 71741 deletions

View File

@ -0,0 +1,82 @@
import { ref, toRefs, computed } from 'vue'
export default function useMultiselect(props, context, dep) {
const { searchable, disabled } = toRefs(props)
// ============ DEPENDENCIES ============
const input = dep.input
const open = dep.open
const close = dep.close
const clearSearch = dep.clearSearch
// ================ DATA ================
const multiselect = ref(null)
const isActive = ref(false)
// ============== COMPUTED ==============
const tabindex = computed(() => {
return searchable.value || disabled.value ? -1 : 0
})
// =============== METHODS ==============
const blur = () => {
if (searchable.value) {
input.value.blur()
}
multiselect.value.blur()
}
const handleFocus = () => {
if (searchable.value && !disabled.value) {
input.value.focus()
}
}
const activate = () => {
if (disabled.value) {
return
}
isActive.value = true
open()
}
const deactivate = () => {
isActive.value = false
setTimeout(() => {
if (!isActive.value) {
close()
clearSearch()
}
}, 1)
}
const handleCaretClick = () => {
if (isActive.value) {
deactivate()
blur()
} else {
activate()
}
}
return {
multiselect,
tabindex,
isActive,
blur,
handleFocus,
activate,
deactivate,
handleCaretClick,
}
}