UNPKG

@layui/layui-vue

Version:

a component library for Vue 3 base on layui-vue

34 lines (33 loc) 2.52 kB
import { defineComponent as y, ref as l, computed as r, watch as A, provide as C, openBlock as b, createElementBlock as P, Fragment as V, createVNode as d, normalizeProps as B, guardReactiveProps as S, withCtx as u, renderSlot as n, mergeProps as _ } from "vue"; /* empty css */ import k from "./component/trigger.js"; import O from "./component/content.js"; import { POPPER_INJECTION_KEY as T } from "./utils.js"; import E from "./hook/useDelayTrigger.js"; import { isArray as R } from "../utils/arrayUtil.js"; const J = y({ name: "LayPopper", __name: "popper", props: { modelValue: { type: Boolean, default: !1 }, trigger: { default: "hover" }, disabled: { type: Boolean, default: !1 }, placement: { default: "bottom" }, showArrow: { type: Boolean, default: !1 }, offset: { default: 10 }, enterable: { type: Boolean, default: !0 }, showAfter: { default: 0 }, hideAfter: { default: 200 }, popperClass: {}, popperStyle: { type: [Boolean, null, String, Object, Array] }, clickOutsideToClose: { type: Boolean, default: !0 }, middlewares: {}, teleportProps: { default: () => ({ to: "body" }) } }, emits: ["update:modelValue"], setup(i, { expose: f, emit: m }) { const e = i, s = m, t = l(e.modelValue), c = l(null), h = r(() => ({ trigger: p.value })), p = r(() => R(e.trigger) ? e.trigger : [e.trigger]), g = r(() => ({ modelValue: t.value, trigger: p.value, placement: e.placement, disabled: e.disabled, showArrow: e.showArrow, offset: e.offset, enterable: e.enterable, popperClass: e.popperClass, popperStyle: e.popperStyle, clickOutsideToClose: e.clickOutsideToClose, teleportProps: e.teleportProps })); A(() => e.modelValue, () => { t.value = e.modelValue; }); const { onShow: w, onHidden: v } = E({ showAfter: e.showAfter, hideAfter: e.hideAfter, show: () => { e.disabled || (t.value = !0, s("update:modelValue", !0)); }, hidden: () => { t.value = !1, s("update:modelValue", !1); } }); C(T, { TriggerRef: c, onShow: w, onHidden: v }); const a = l(); return f({ show: () => { var o; return (o = a.value) == null ? void 0 : o.show(); }, hidden: () => { var o; return (o = a.value) == null ? void 0 : o.hidden(); }, update: () => { var o; return (o = a.value) == null ? void 0 : o.update(); } }), (o, x) => (b(), P(V, null, [d(k, B(S(h.value)), { default: u(() => [n(o.$slots, "default")]), _: 3 }, 16), d(O, _(g.value, { ref_key: "ContentRef", ref: a }), { default: u(() => [n(o.$slots, "content")]), _: 3 }, 16)], 64)); } }); export { J as default };