ant-design-x-vue
Version:
Craft AI-driven interfaces effortlessly
25 lines (24 loc) • 848 B
JavaScript
import p from "../../_util/hooks/use-state.mjs";
import { computed as s, watch as f, unref as l, onWatcherCleanup as n } from "vue";
function u(e) {
return typeof e == "string";
}
const h = (e, t, g, m) => {
const [d, o] = p(""), [a, i] = p(1), v = s(() => t.value && u(e.value));
return f(e, () => {
const r = l(d);
o(e.value), !v.value && u(e.value) ? i(e.value.length) : u(e.value) && u(r) && e.value.indexOf(r) !== 0 && i(1);
}), f([a, t, e], () => {
if (v.value && u(e.value) && l(a) < e.value.length) {
const r = setTimeout(() => {
i(l(a) + g.value);
}, m.value);
n(() => {
clearTimeout(r);
});
}
}, { immediate: !0 }), [s(() => v.value && u(e.value) ? e.value.slice(0, l(a)) : e.value), s(() => v.value && u(e.value) && l(a) < e.value.length)];
};
export {
h as default
};