{"version":3,"file":"get-scroll-position-from-pointer.cjs","names":["getThumbSize","linearScale"],"sources":["../../../../src/components/ScrollArea/utils/get-scroll-position-from-pointer.ts"],"sourcesContent":["import type { Sizes } from '../ScrollArea.types';\nimport { getThumbSize } from './get-thumb-size';\nimport { linearScale } from './linear-scale';\n\nexport function getScrollPositionFromPointer(\n  pointerPos: number,\n  pointerOffset: number,\n  sizes: Sizes,\n  dir: 'ltr' | 'rtl' = 'ltr'\n) {\n  const thumbSizePx = getThumbSize(sizes);\n  const thumbCenter = thumbSizePx / 2;\n  const offset = pointerOffset || thumbCenter;\n  const thumbOffsetFromEnd = thumbSizePx - offset;\n  const minPointerPos = sizes.scrollbar.paddingStart + offset;\n  const maxPointerPos = sizes.scrollbar.size - sizes.scrollbar.paddingEnd - thumbOffsetFromEnd;\n  const maxScrollPos = sizes.content - sizes.viewport;\n  const scrollRange = dir === 'ltr' ? [0, maxScrollPos] : [maxScrollPos * -1, 0];\n  const interpolate = linearScale([minPointerPos, maxPointerPos], scrollRange as [number, number]);\n  return interpolate(pointerPos);\n}\n"],"mappings":";;;;AAIA,SAAgB,6BACd,YACA,eACA,OACA,MAAqB,OACrB;CACA,MAAM,cAAcA,uBAAAA,aAAa,MAAM;CACvC,MAAM,cAAc,cAAc;CAClC,MAAM,SAAS,iBAAiB;CAChC,MAAM,qBAAqB,cAAc;CACzC,MAAM,gBAAgB,MAAM,UAAU,eAAe;CACrD,MAAM,gBAAgB,MAAM,UAAU,OAAO,MAAM,UAAU,aAAa;CAC1E,MAAM,eAAe,MAAM,UAAU,MAAM;CAC3C,MAAM,cAAc,QAAQ,QAAQ,CAAC,GAAG,aAAa,GAAG,CAAC,eAAe,IAAI,EAAE;AAE9E,QADoBC,qBAAAA,YAAY,CAAC,eAAe,cAAc,EAAE,YAAgC,CAC7E,WAAW"}