@layui/layui-vue
Version:
a component library for Vue 3 base on layui-vue
39 lines (38 loc) • 1.38 kB
JavaScript
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
};