vue-gantt-3
Version:
A gantt component for Vue 3
1 lines • 2.76 kB
Source Map (JSON)
{"version":3,"file":"Bar.vue.mjs","sources":["../../../../src/components/scrollbar/Bar.vue"],"sourcesContent":["<template>\n <Thumb v-show=\"horizontalVisible\"\n ref=\"horizontalThumbRef\"\n :isHorizontal=\"true\"\n :width=\"horizontalWidth\"\n :height=\"scrollbarHeight\"\n :style=\"{maxHeight: scrollbarHeight + 'px', width: `calc(100% - ${verticalVisible ? scrollbarWidth : 0}px)`}\"\n @triggerScrollFromThumb=\"triggerScrollFromThumb\"/>\n <Thumb v-show=\"verticalVisible\"\n ref=\"verticalThumbRef\"\n :isHorizontal=\"false\"\n :height=\"verticalHeight\"\n :width=\"scrollbarWidth\"\n :style=\"{maxWidth: scrollbarWidth + 'px', height: `calc(100% - ${horizontalVisible ? scrollbarHeight : 0}px)`}\"\n @triggerScrollFromThumb=\"triggerScrollFromThumb\"/>\n</template>\n<script lang=\"ts\" setup>\nimport Thumb from './Thumb.vue';\nimport { ref } from 'vue';\nimport type ThumbInstance from './Thumb.vue';\n\nexport interface Props {\n horizontalWidth: number,\n verticalHeight: number,\n horizontalVisible: boolean,\n verticalVisible: boolean,\n scrollbarHeight?: number,\n scrollbarWidth?: number\n}\nwithDefaults(defineProps<Props>(), {\n scrollbarHeight: 0,\n scrollbarWidth: 0\n});\nconst emit = defineEmits<{\n (event: 'triggerScrollFromThumb', options: ScrollToOptions): void,\n}>();\nconst horizontalThumbRef = ref<InstanceType<typeof ThumbInstance>>();\nconst verticalThumbRef = ref<InstanceType<typeof ThumbInstance>>();\n\nconst handleScroll = (wrap: HTMLDivElement) => {\n const { scrollTop, scrollLeft } = wrap;\n if (horizontalThumbRef.value) {\n horizontalThumbRef.value.handleScroll({ top: 0, left: scrollLeft });\n\n }\n if (verticalThumbRef.value) {\n verticalThumbRef.value.handleScroll({ top: scrollTop, left: 0 });\n\n }\n};\n\nconst triggerScrollFromThumb = (options: ScrollToOptions) => {\n emit('triggerScrollFromThumb', options);\n};\n\ndefineExpose({\n handleScroll,\n});\n\n</script>\n<style lang=\"scss\" >\n.vg-scrollbar-thumb-wrap {\n position: absolute;\n overflow: auto;\n &.is-horizontal {\n left: 0;\n bottom: 0;\n overflow-y: hidden;\n }\n &.is-vertical {\n top: 0;\n right: 0;\n overflow-x: hidden;\n\n }\n}\n</style>"],"names":[],"mappings":";;;;;;;;;;;;;;AAiCA,UAAM,OAAO;AAGb,UAAM,qBAAqB,IAAwC;AACnE,UAAM,mBAAmB,IAAwC;AAE3D,UAAA,eAAe,CAAC,SAAyB;AACvC,YAAA,EAAE,WAAW,WAAA,IAAe;AAClC,UAAI,mBAAmB,OAAO;AAC5B,2BAAmB,MAAM,aAAa,EAAE,KAAK,GAAG,MAAM,YAAY;AAAA,MAAA;AAGpE,UAAI,iBAAiB,OAAO;AAC1B,yBAAiB,MAAM,aAAa,EAAE,KAAK,WAAW,MAAM,GAAG;AAAA,MAAA;AAAA,IAGnE;AAEM,UAAA,yBAAyB,CAAC,YAA6B;AAC3D,WAAK,0BAA0B,OAAO;AAAA,IACxC;AAEa,aAAA;AAAA,MACX;AAAA,IAAA,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}