st-common-ui-vue3
Version:
小尾巴通用 Vue3 UI 组件库
47 lines (46 loc) • 2.15 kB
JavaScript
import { defineComponent as f, ref as d, openBlock as O, createElementBlock as m, normalizeStyle as C, unref as i, renderSlot as v } from "vue";
import * as a from "../../node_modules/.pnpm/st-common-ui-utils@0.1.1/node_modules/st-common-ui-utils/es/utils/el-size-util.js";
import { useElementBounding as y } from "../../node_modules/.pnpm/@vueuse_core@12.0.0_typescript@5.6.2/node_modules/@vueuse/core/index.js";
const w = /* @__PURE__ */ f({
name: "StCapturePointerContainer",
__name: "StCapturePointerContainer",
props: {
width: { default: "100%" },
height: { default: "100%" },
captureOnPointerEnter: { type: Boolean, default: !1 },
captureOnPointerLeave: { type: Boolean, default: !1 },
captureOnPointerDown: { type: Boolean, default: !1 },
captureOnPointerUp: { type: Boolean, default: !1 },
captureOnPointerMove: { type: Boolean, default: !1 },
captureOnPointerOver: { type: Boolean, default: !1 },
captureOnPointerOut: { type: Boolean, default: !1 }
},
emits: ["handlePointerEvent"],
setup(B, { emit: l }) {
const u = l, r = d(null), { left: p, top: s } = y(r), o = (n) => {
const e = r.value, t = n.clientX - p.value, P = n.clientY - s.value;
u("handlePointerEvent", t, P, e, n);
};
return (n, e) => (O(), m("div", {
ref_key: "stCapturePointerContainerRef",
ref: r,
class: "st-capture-pointer-container",
style: C({
width: i(a).elSizePreHandler(n.width),
height: i(a).elSizePreHandler(n.height)
}),
onPointerenter: e[0] || (e[0] = (t) => n.captureOnPointerEnter && o(t)),
onPointerleave: e[1] || (e[1] = (t) => n.captureOnPointerLeave && o(t)),
onPointerdown: e[2] || (e[2] = (t) => n.captureOnPointerDown && o(t)),
onPointerup: e[3] || (e[3] = (t) => n.captureOnPointerUp && o(t)),
onPointermove: e[4] || (e[4] = (t) => n.captureOnPointerMove && o(t)),
onPointerover: e[5] || (e[5] = (t) => n.captureOnPointerOver && o(t)),
onPointerout: e[6] || (e[6] = (t) => n.captureOnPointerOut && o(t))
}, [
v(n.$slots, "default")
], 36));
}
});
export {
w as default
};