{"version":3,"file":"bar.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 { barProps } from './bar'\nimport { scrollbarContextKey } from './constants'\n\nconst props = defineProps(barProps)\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","always"],"mappings":"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"}