UNPKG

@uiw/react-affix

Version:
32 lines (31 loc) 1.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getTargetRect = exports.getOffset = exports.getDefaultTarget = void 0; var _utils = require("@uiw/utils"); var getTargetRect = exports.getTargetRect = function getTargetRect(target) { return target !== window ? target.getBoundingClientRect() : { top: 0, left: 0, bottom: 0 }; }; var getOffset = exports.getOffset = function getOffset(element, target) { var elemRect = element.getBoundingClientRect(); var targetRect = getTargetRect(target); var scrollTop = (0, _utils.getScroll)(target, true); var scrollLeft = (0, _utils.getScroll)(target); var docElem = window.document.body; var clientTop = docElem.clientTop || 0; var clientLeft = docElem.clientLeft || 0; return { top: elemRect.top - targetRect.top + scrollTop - clientTop, left: elemRect.left - targetRect.left + scrollLeft - clientLeft, width: elemRect.width, height: elemRect.height }; }; var getDefaultTarget = exports.getDefaultTarget = function getDefaultTarget() { return typeof window !== 'undefined' ? window : null; };