@uiw/react-affix
Version:
Affix component
32 lines (31 loc) • 1.12 kB
JavaScript
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;
};
;