1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.position = exports.height = exports.width = exports.offset = void 0;
- const css_1 = require("./css");
- const elem_1 = require("./elem");
- function offset(elem) {
- const rect = elem.getBoundingClientRect();
- const win = elem.ownerDocument.defaultView;
- return {
- top: rect.top + win.pageYOffset,
- left: rect.left + win.pageXOffset,
- };
- }
- exports.offset = offset;
- function width(elem) {
- const rect = elem.getBoundingClientRect();
- return rect.width;
- }
- exports.width = width;
- function height(elem) {
- const rect = elem.getBoundingClientRect();
- return rect.height;
- }
- exports.height = height;
- function position(elem) {
- const isFixed = (0, css_1.computeStyle)(elem, 'position') === 'fixed';
- let offsetValue;
- if (isFixed) {
- const rect = elem.getBoundingClientRect();
- offsetValue = { left: rect.left, top: rect.top };
- }
- else {
- offsetValue = offset(elem);
- }
- if (!isFixed) {
- const doc = elem.ownerDocument;
- let offsetParent = elem.offsetParent || doc.documentElement;
- while ((offsetParent === doc.body || offsetParent === doc.documentElement) &&
- (0, css_1.computeStyle)(offsetParent, 'position') === 'static') {
- offsetParent = offsetParent.parentNode;
- }
- if (offsetParent !== elem && (0, elem_1.isElement)(offsetParent)) {
- const parentOffset = offset(offsetParent);
- offsetValue.top -=
- parentOffset.top + (0, css_1.computeStyleInt)(offsetParent, 'borderTopWidth');
- offsetValue.left -=
- parentOffset.left + (0, css_1.computeStyleInt)(offsetParent, 'borderLeftWidth');
- }
- }
- return {
- top: offsetValue.top - (0, css_1.computeStyleInt)(elem, 'marginTop'),
- left: offsetValue.left - (0, css_1.computeStyleInt)(elem, 'marginLeft'),
- };
- }
- exports.position = position;
- //# sourceMappingURL=position.js.map
|