UNPKG

@layui/layui-vue

Version:

a component library for Vue 3 base on layui-vue

39 lines (38 loc) 1.38 kB
import { defineComponent as d, inject as m, watch as p, openBlock as v, createBlock as E, unref as h, withCtx as _, renderSlot as k } from "vue"; import x from "./forward-ref.js"; import { POPPER_INJECTION_KEY as w } from "../utils.js"; const j = d({ __name: "trigger", props: { trigger: {}, customEvents: {} }, setup(u) { const { TriggerRef: o, onShow: n, onHidden: s } = m(w), t = u, a = (e) => { o.value = e; }, c = (e, r, f) => { e && Object.entries(r).forEach(([g, l]) => { e[f](g, l); }); }; p(o, (e, r) => { c(e, i, "addEventListener"), c(r, i, "removeEventListener"); }); const i = { click: () => { var e; (e = t.trigger) != null && e.includes("click") && n(); }, mouseenter: () => { var e; (e = t.trigger) != null && e.includes("hover") && n(); }, mouseleave: () => { var e; (e = t.trigger) != null && e.includes("hover") && s(); }, contextmenu: function(e) { var r; (r = t.trigger) != null && r.includes("contextMenu") && (e.preventDefault(), n()); }, focusin: () => { var e; (e = t.trigger) != null && e.includes("focus") && n(); }, focusout: () => { var e; (e = t.trigger) != null && e.includes("focus") && s(); }, ...t.customEvents }; return (e, r) => (v(), E(h(x), { "set-ref": a }, { default: _(() => [k(e.$slots, "default")]), _: 3 })); } }); export { j as default };