adverich-kun-ui
Version:
Una librería de componentes Vue.js con Tailwind CSS
51 lines (50 loc) • 1.2 kB
JavaScript
import { ref as c, watch as T } from "vue";
function V(e, n) {
const u = c(e.modelValue), a = c(null), t = c(null);
T(() => e.modelValue, (l) => {
u.value = l, n("update:modelValue", l);
});
function i() {
console.log(1), !e.disabled && (clearTimeout(t.value), a.value = setTimeout(() => {
u.value = !0, n("update:modelValue", !0);
}, +e.openDelay));
}
function o() {
clearTimeout(a.value), t.value = setTimeout(() => {
u.value = !1, n("update:modelValue", !1);
}, +e.closeDelay);
}
function d() {
u.value ? o() : i();
}
function f() {
e.disabled || !e.openOnClick || d();
}
function m(l) {
if (!e.openOnHover || e.disabled) return;
clearTimeout(a.value), clearTimeout(t.value);
const s = l === "enter" ? e.openDelay : e.closeDelay;
setTimeout(() => {
u.value = l === "enter";
}, +s);
}
function v() {
e.openOnFocus && (u.value = !0);
}
function r() {
o(), n("handleEscape");
}
return {
menuVisible: u,
showMenu: i,
hideMenu: o,
toggleMenu: d,
handleActivatorClick: f,
handleHover: m,
handleFocus: v,
handleEscape: r
};
}
export {
V as useKunMenu
};