UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 4.04 kB
{"version":3,"file":"bar.vue2.mjs","sources":["../../../../../../packages/components/scrollbar/src/bar.vue"],"sourcesContent":["<template>\n <thumb :move=\"moveX\" :ratio=\"ratioX\" :size=\"sizeWidth\" :always=\"always\" />\n <thumb\n :move=\"moveY\"\n :ratio=\"ratioY\"\n :size=\"sizeHeight\"\n vertical\n :always=\"always\"\n />\n</template>\n\n<script lang=\"ts\" setup>\nimport { inject, ref } from 'vue'\nimport { GAP } from './util'\nimport Thumb from './thumb.vue'\nimport { scrollbarContextKey } from './constants'\n\nimport type { BarProps } from './bar'\n\nconst props = withDefaults(defineProps<BarProps>(), {\n always: true,\n})\n\nconst scrollbar = inject(scrollbarContextKey)\n\nconst moveX = ref(0)\nconst moveY = ref(0)\nconst sizeWidth = ref('')\nconst sizeHeight = ref('')\nconst ratioY = ref(1)\nconst ratioX = ref(1)\n\nconst handleScroll = (wrap: HTMLDivElement) => {\n if (wrap) {\n const offsetHeight = wrap.offsetHeight - GAP\n const offsetWidth = wrap.offsetWidth - GAP\n\n moveY.value = ((wrap.scrollTop * 100) / offsetHeight) * ratioY.value\n moveX.value = ((wrap.scrollLeft * 100) / offsetWidth) * ratioX.value\n }\n}\n\nconst update = () => {\n const wrap = scrollbar?.wrapElement\n if (!wrap) return\n const offsetHeight = wrap.offsetHeight - GAP\n const offsetWidth = wrap.offsetWidth - GAP\n\n const originalHeight = offsetHeight ** 2 / wrap.scrollHeight\n const originalWidth = offsetWidth ** 2 / wrap.scrollWidth\n const height = Math.max(originalHeight, props.minSize)\n const width = Math.max(originalWidth, props.minSize)\n\n ratioY.value =\n originalHeight /\n (offsetHeight - originalHeight) /\n (height / (offsetHeight - height))\n ratioX.value =\n originalWidth /\n (offsetWidth - originalWidth) /\n (width / (offsetWidth - width))\n\n sizeHeight.value = height + GAP < offsetHeight ? `${height}px` : ''\n sizeWidth.value = width + GAP < offsetWidth ? `${width}px` : ''\n}\n\ndefineExpose({\n handleScroll,\n update,\n})\n</script>\n"],"names":["_createVNode","Thumb"],"mappings":";;;;;;;;;;AAmBA,IAAA,MAAM,KAAA,GAAQ,OAAA;AAId,IAAA,MAAM,SAAA,GAAY,OAAO,mBAAmB,CAAA;AAE5C,IAAA,MAAM,KAAA,GAAQ,IAAI,CAAC,CAAA;AACnB,IAAA,MAAM,KAAA,GAAQ,IAAI,CAAC,CAAA;AACnB,IAAA,MAAM,SAAA,GAAY,IAAI,EAAE,CAAA;AACxB,IAAA,MAAM,UAAA,GAAa,IAAI,EAAE,CAAA;AACzB,IAAA,MAAM,MAAA,GAAS,IAAI,CAAC,CAAA;AACpB,IAAA,MAAM,MAAA,GAAS,IAAI,CAAC,CAAA;AAEpB,IAAA,MAAM,YAAA,GAAe,CAAC,IAAA,KAAyB;AAC7C,MAAA,IAAI,IAAA,EAAM;AACR,QAAA,MAAM,YAAA,GAAe,KAAK,YAAA,GAAe,GAAA;AACzC,QAAA,MAAM,WAAA,GAAc,KAAK,WAAA,GAAc,GAAA;AAEvC,QAAA,KAAA,CAAM,KAAA,GAAU,IAAA,CAAK,SAAA,GAAY,GAAA,GAAO,eAAgB,MAAA,CAAO,KAAA;AAC/D,QAAA,KAAA,CAAM,KAAA,GAAU,IAAA,CAAK,UAAA,GAAa,GAAA,GAAO,cAAe,MAAA,CAAO,KAAA;AAAA,MACjE;AAAA,IACF,CAAA;AAEA,IAAA,MAAM,SAAS,MAAM;AACnB,MAAA,MAAM,OAAO,SAAA,IAAA,IAAA,GAAA,MAAA,GAAA,SAAA,CAAW,WAAA;AACxB,MAAA,IAAI,CAAC,IAAA,EAAM;AACX,MAAA,MAAM,YAAA,GAAe,KAAK,YAAA,GAAe,GAAA;AACzC,MAAA,MAAM,WAAA,GAAc,KAAK,WAAA,GAAc,GAAA;AAEvC,MAAA,MAAM,cAAA,GAAiB,YAAA,IAAgB,CAAA,GAAI,IAAA,CAAK,YAAA;AAChD,MAAA,MAAM,aAAA,GAAgB,WAAA,IAAe,CAAA,GAAI,IAAA,CAAK,WAAA;AAC9C,MAAA,MAAM,MAAA,GAAS,IAAA,CAAK,GAAA,CAAI,cAAA,EAAgB,MAAM,OAAO,CAAA;AACrD,MAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,GAAA,CAAI,aAAA,EAAe,MAAM,OAAO,CAAA;AAEnD,MAAA,MAAA,CAAO,KAAA,GACL,cAAA,IACC,YAAA,GAAe,cAAA,CAAA,IACf,UAAU,YAAA,GAAe,MAAA,CAAA,CAAA;AAC5B,MAAA,MAAA,CAAO,KAAA,GACL,aAAA,IACC,WAAA,GAAc,aAAA,CAAA,IACd,SAAS,WAAA,GAAc,KAAA,CAAA,CAAA;AAE1B,MAAA,UAAA,CAAW,QAAQ,MAAA,GAAS,GAAA,GAAM,YAAA,GAAe,CAAA,EAAG,MAAM,CAAA,EAAA,CAAA,GAAO,EAAA;AACjE,MAAA,SAAA,CAAU,QAAQ,KAAA,GAAQ,GAAA,GAAM,WAAA,GAAc,CAAA,EAAG,KAAK,CAAA,EAAA,CAAA,GAAO,EAAA;AAAA,IAC/D,CAAA;AAEA,IAAA,QAAA,CAAa;AAAA,MACX,YAAA;AAAA,MACA;AAAA,KACD,CAAA;;;;;;UApECA,YAA0EC,WAAA,EAAA;AAAA,YAAlE,MAAM,KAAA,CAAA,KAAA;AAAA,YAAQ,OAAO,MAAA,CAAA,KAAA;AAAA,YAAS,MAAM,SAAA,CAAA,KAAA;AAAA,YAAY,QAAQ,OAAA,CAAA;AAAA;UAChED,YAMEC,WAAA,EAAA;AAAA,YALC,MAAM,KAAA,CAAA,KAAA;AAAA,YACN,OAAO,MAAA,CAAA,KAAA;AAAA,YACP,MAAM,UAAA,CAAA,KAAA;AAAA,YACP,QAAA,EAAA,EAAA;AAAA,YACC,QAAQ,OAAA,CAAA;AAAA;;;;;;;;;;;"}