UNPKG

vuux

Version:

Vue3 Nuxt3 Nuxt4 组件库

2 lines (1 loc) 1.14 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("vue"),f=require("@vuux/utils"),V=(a,u)=>{const e=n.ref(a.multiple?a.modelValue:a.modelValue?[a.modelValue]:[]),d=n.ref(!1),i=n.ref(null),v=()=>{a.disabled||(d.value=!d.value)},r=l=>{if(a.multiple)if(Array.isArray(a.modelValue)){const t=a.modelValue;t.includes(l)?e.value=t.filter(c=>c!==l):e.value=[...t,l],u("update:modelValue",e.value),u("change",e.value)}else e.value=a.modelValue===void 0?[l]:[a.modelValue,l],u("update:modelValue",e.value);else e.value=[l],u("update:modelValue",e.value[0]),u("change",e.value[0]),d.value=!1},s=l=>Array.isArray(e.value)?e.value.includes(l):[e.value].includes(l),o=l=>{Array.isArray(e.value)?(e.value.splice(l,1),u("update:modelValue",e.value)):(e.value="",u("update:modelValue",e.value))},m=l=>a.data?.find(c=>c[a.value]===l)?.[a.label]||"";return n.watch([()=>a.modelValue,()=>a.multiple],([l,t])=>{e.value=t?l:l?[l]:[]}),f.Utils.useClickOutside(i,()=>{d.value=!1}),{items:e,isOpen:d,selectEl:i,handleOpen:v,handleClick:r,handleIsSelected:s,handleRemoveItem:o,handleGetValue:m}};exports.useSelect=V;