UNPKG

vuux

Version:

Vue3 Nuxt3 Nuxt4 组件库

46 lines (45 loc) 1.47 kB
import { ref as o, computed as i } from "vue"; import { Utils as g } from "@vuux/utils"; import { Message as V } from "../../../Message/index.mjs"; const A = (l, h, r) => { const c = o(!1), a = o(""), s = o(!0), n = i(() => l.max), v = (e) => e.slice(), y = i(() => ({ "is-readonly": l.readonly, "is-disabled": l.disabled })), u = i(() => Array.isArray(l.modelValue) ? l.modelValue || [] : g.isNull(l.modelValue) ? [] : l.modelValue), d = (e) => { r("update:modelValue", e); const t = new CustomEvent("setvalue", { bubbles: !0, cancelable: !0, detail: e }); h.value?.dispatchEvent(t), a.value = ""; }, f = (e) => { if (l.readonly) return; const t = v(u.value); t.splice(e, 1), d(t), r("delete", t), n.value > 0 && (s.value = !(t.length >= n.value)); }, b = (e) => { e.target.value === "" && u.value.length && f(u.value.length - 1); }, m = () => { if (l.readonly || g.isNull(a.value)) return !1; const e = v(u.value); return e.push(a.value), l.max > 0 && e?.length > l.max ? !1 : a.value.length > l.limit ? (V.error("字符长度不能超过" + l.limit), !1) : (d(e), r("save", e), n.value > 0 && (s.value = !(e.length >= n.value)), !0); }; return { onFocus: c, tagValue: a, show: s, classNames: y, values: u, handleRemove: f, onDelete: b, onEnter: m, onBlur: () => { m(), c.value = !1; } }; }; export { A as useInputTag };