vuux
Version:
Vue3 Nuxt3 Nuxt4 组件库
2 lines (1 loc) • 1.05 kB
JavaScript
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const x=require("@vuux/utils"),e=require("vue"),C=(t,l)=>{const o=e.ref(""),c=e.ref(""),u=e.ref(t.modelValue?t.modelValue:""),n=e.ref(!1),r=e.computed(()=>t.type==="textarea"),s=e.computed(()=>t.type==="password"),v=e.computed(()=>t.disabled?t.disabled:!1),i=e.computed(()=>t.clear?t.clear:!1),m=e.computed(()=>t.count?t.count:!1),f=e.computed(()=>({"is-padding":i.value||s.value||v.value||m.value})),b=e.computed(()=>n.value?"text":t.type),w=e.computed(()=>u.value?.length??0),V=a=>{const d=a.target.value;u.value=d,l("input",u.value),l("update:modelValue",d)},g=()=>{l("blur",u.value)},y=()=>{u.value="",l("update:modelValue",""),l("blur",u.value)},I=()=>{n.value=!n.value};return e.watch(()=>t.modelValue,a=>{u.value=a}),e.onMounted(()=>{const a=String(x.Utils.snowflakeId());o.value=a,c.value=a}),{inputId:o,inputName:c,localValue:u,show:n,isTextarea:r,isPassword:s,className:f,currentType:b,textCount:w,onInput:V,onBlur:g,onClear:y,onPassword:I}};exports.useInput=C;