UNPKG

@mantine/core

Version:

React components library focused on usability, accessibility and developer experience

24 lines (20 loc) 993 B
'use client'; 'use strict'; var getThumbSize = require('./get-thumb-size.cjs'); var linearScale = require('./linear-scale.cjs'); function clamp(value, [min, max]) { return Math.min(max, Math.max(min, value)); } function getThumbOffsetFromScroll(scrollPos, sizes, dir = "ltr") { const thumbSizePx = getThumbSize.getThumbSize(sizes); const scrollbarPadding = sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd; const scrollbar = sizes.scrollbar.size - scrollbarPadding; const maxScrollPos = sizes.content - sizes.viewport; const maxThumbPos = scrollbar - thumbSizePx; const scrollClampRange = dir === "ltr" ? [0, maxScrollPos] : [maxScrollPos * -1, 0]; const scrollWithoutMomentum = clamp(scrollPos, scrollClampRange); const interpolate = linearScale.linearScale([0, maxScrollPos], [0, maxThumbPos]); return interpolate(scrollWithoutMomentum); } exports.getThumbOffsetFromScroll = getThumbOffsetFromScroll; //# sourceMappingURL=get-thumb-offset-from-scroll.cjs.map