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