vue-gantt-3
Version:
A gantt component for Vue 3
1 lines • 2.44 kB
Source Map (JSON)
{"version":3,"file":"Thumb.vue.mjs","sources":["../../../../src/components/scrollbar/Thumb.vue"],"sourcesContent":["<template>\n <div ref=\"thumbRef\"\n class=\"vg-scrollbar-thumb-wrap\"\n :class=\"isHorizontal ? 'is-horizontal' : 'is-vertical'\"\n @scroll=\"onScroll\"\n @mouseenter=\"mouseHover = true\"\n @mouseleave=\"mouseHover = false\">\n <div class=\"vg-scrollbar-thumb\" :style=\"{width: width + 'px', height: height + 'px'}\"></div>\n </div>\n</template>\n<script lang=\"ts\" setup>\nimport { ref, inject } from 'vue';\nimport type { Ref } from 'vue';\n\nexport interface Props {\n width: number,\n height: number,\n isHorizontal?: boolean\n}\n\nconst emit = defineEmits<{\n (event: 'triggerScrollFromThumb', options: ScrollToOptions): void,\n}>();\n\nconst props = defineProps<Props>();\nconst thumbRef = ref<HTMLDivElement>();\nconst wrapRef = inject('wrapRef') as Ref<HTMLDivElement | undefined>;\nconst scrollFromThumb = inject('scrollFromThumb') as Ref<boolean>;\nconst scrollFromWrap = ref(false);\nconst mouseHover = ref(false);\n\nconst handleScroll = (option: {left: number, top: number}) => {\n if (thumbRef.value && !scrollFromThumb.value) {\n scrollFromWrap.value = true;\n thumbRef.value.scrollTo(option);\n }\n};\n\nconst onScroll = () => {\n if (scrollFromWrap.value) {\n scrollFromWrap.value = false;\n return;\n }\n if (wrapRef.value && thumbRef.value) {\n scrollFromThumb.value = true;\n const { scrollTop, scrollLeft } = thumbRef.value;\n if (props.isHorizontal) {\n emit('triggerScrollFromThumb', { left: scrollLeft });\n } else {\n emit('triggerScrollFromThumb', { top: scrollTop });\n }\n }\n\n};\n\ndefineExpose({\n handleScroll,\n});\n</script>"],"names":[],"mappings":";;;;;;;;;;AAoBA,UAAM,OAAO;AAIb,UAAM,QAAQ;AACd,UAAM,WAAW,IAAoB;AAC/B,UAAA,UAAU,OAAO,SAAS;AAC1B,UAAA,kBAAkB,OAAO,iBAAiB;AAC1C,UAAA,iBAAiB,IAAI,KAAK;AAC1B,UAAA,aAAa,IAAI,KAAK;AAEtB,UAAA,eAAe,CAAC,WAAwC;AAC5D,UAAI,SAAS,SAAS,CAAC,gBAAgB,OAAO;AAC5C,uBAAe,QAAQ;AACd,iBAAA,MAAM,SAAS,MAAM;AAAA,MAAA;AAAA,IAElC;AAEA,UAAM,WAAW,MAAM;AACrB,UAAI,eAAe,OAAO;AACxB,uBAAe,QAAQ;AACvB;AAAA,MAAA;AAEE,UAAA,QAAQ,SAAS,SAAS,OAAO;AACnC,wBAAgB,QAAQ;AACxB,cAAM,EAAE,WAAW,WAAW,IAAI,SAAS;AAC3C,YAAI,MAAM,cAAc;AACtB,eAAK,0BAA0B,EAAE,MAAM,WAAA,CAAY;AAAA,QAAA,OAC9C;AACL,eAAK,0BAA0B,EAAE,KAAK,UAAA,CAAW;AAAA,QAAA;AAAA,MACnD;AAAA,IAGJ;AAEa,aAAA;AAAA,MACX;AAAA,IAAA,CACD;;;;;;;;;;;;;;;;;;"}