Dashboard sipadu mbip
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

position.js 1.8KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. exports.__esModule = true;
  4. exports.default = position;
  5. var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
  6. var _offset = _interopRequireDefault(require("./offset"));
  7. var _offsetParent = _interopRequireDefault(require("./offsetParent"));
  8. var _scrollTop = _interopRequireDefault(require("./scrollTop"));
  9. var _scrollLeft = _interopRequireDefault(require("./scrollLeft"));
  10. var _style = _interopRequireDefault(require("../style"));
  11. function nodeName(node) {
  12. return node.nodeName && node.nodeName.toLowerCase();
  13. }
  14. function position(node, offsetParent) {
  15. var parentOffset = {
  16. top: 0,
  17. left: 0
  18. },
  19. offset; // Fixed elements are offset from window (parentOffset = {top:0, left: 0},
  20. // because it is its only offset parent
  21. if ((0, _style.default)(node, 'position') === 'fixed') {
  22. offset = node.getBoundingClientRect();
  23. } else {
  24. offsetParent = offsetParent || (0, _offsetParent.default)(node);
  25. offset = (0, _offset.default)(node);
  26. if (nodeName(offsetParent) !== 'html') parentOffset = (0, _offset.default)(offsetParent);
  27. parentOffset.top += parseInt((0, _style.default)(offsetParent, 'borderTopWidth'), 10) - (0, _scrollTop.default)(offsetParent) || 0;
  28. parentOffset.left += parseInt((0, _style.default)(offsetParent, 'borderLeftWidth'), 10) - (0, _scrollLeft.default)(offsetParent) || 0;
  29. } // Subtract parent offsets and node margins
  30. return (0, _extends2.default)({}, offset, {
  31. top: offset.top - parentOffset.top - (parseInt((0, _style.default)(node, 'marginTop'), 10) || 0),
  32. left: offset.left - parentOffset.left - (parseInt((0, _style.default)(node, 'marginLeft'), 10) || 0)
  33. });
  34. }
  35. module.exports = exports["default"];