UNPKG

vue-gantt-3

Version:

A gantt component for Vue 3

63 lines (62 loc) 2.12 kB
"use strict"; Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } }); const vue = require("vue"); const _sfc_main = /* @__PURE__ */ vue.defineComponent({ __name: "Thumb", props: { width: {}, height: {}, isHorizontal: { type: Boolean } }, emits: ["triggerScrollFromThumb"], setup(__props, { expose: __expose, emit: __emit }) { const emit = __emit; const props = __props; const thumbRef = vue.ref(); const wrapRef = vue.inject("wrapRef"); const scrollFromThumb = vue.inject("scrollFromThumb"); const scrollFromWrap = vue.ref(false); const mouseHover = vue.ref(false); const handleScroll = (option) => { if (thumbRef.value && !scrollFromThumb.value) { scrollFromWrap.value = true; thumbRef.value.scrollTo(option); } }; const onScroll = () => { if (scrollFromWrap.value) { scrollFromWrap.value = false; return; } if (wrapRef.value && thumbRef.value) { scrollFromThumb.value = true; const { scrollTop, scrollLeft } = thumbRef.value; if (props.isHorizontal) { emit("triggerScrollFromThumb", { left: scrollLeft }); } else { emit("triggerScrollFromThumb", { top: scrollTop }); } } }; __expose({ handleScroll }); return (_ctx, _cache) => { return vue.openBlock(), vue.createElementBlock("div", { ref_key: "thumbRef", ref: thumbRef, class: vue.normalizeClass(["vg-scrollbar-thumb-wrap", _ctx.isHorizontal ? "is-horizontal" : "is-vertical"]), onScroll, onMouseenter: _cache[0] || (_cache[0] = ($event) => mouseHover.value = true), onMouseleave: _cache[1] || (_cache[1] = ($event) => mouseHover.value = false) }, [ vue.createElementVNode("div", { class: "vg-scrollbar-thumb", style: vue.normalizeStyle({ width: _ctx.width + "px", height: _ctx.height + "px" }) }, null, 4) ], 34); }; } }); exports.default = _sfc_main; //# sourceMappingURL=Thumb.vue.js.map