@mantine/core
Version:
React components library focused on usability, accessibility and developer experience
20 lines (19 loc) • 1.04 kB
JavaScript
"use client";
const require_get_thumb_size = require("./get-thumb-size.cjs");
const require_linear_scale = require("./linear-scale.cjs");
//#region packages/@mantine/core/src/components/ScrollArea/utils/get-thumb-offset-from-scroll.ts
function clamp(value, [min, max]) {
return Math.min(max, Math.max(min, value));
}
function getThumbOffsetFromScroll(scrollPos, sizes, dir = "ltr") {
const thumbSizePx = require_get_thumb_size.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 scrollWithoutMomentum = clamp(scrollPos, dir === "ltr" ? [0, maxScrollPos] : [maxScrollPos * -1, 0]);
return require_linear_scale.linearScale([0, maxScrollPos], [0, maxThumbPos])(scrollWithoutMomentum);
}
//#endregion
exports.getThumbOffsetFromScroll = getThumbOffsetFromScroll;
//# sourceMappingURL=get-thumb-offset-from-scroll.cjs.map