{"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;;;;;;;;;;;;;;;;;;"}