UNPKG

@vnmfify/core

Version:

```shell npm i @vnmfify/core -S ```

67 lines (60 loc) 1.78 kB
import { inBrowser } from "../base"; import { queryNodesRef, elementUnref, isRootElement, isWindow, queryAllNodesRef } from "./element"; export function makeRect(width, height) { return { top: 0, left: 0, right: width, bottom: height, width, height }; } export function getRect(elementOrRef) { var element = elementUnref(elementOrRef); if (element) { if (inBrowser) { if (isWindow(element)) { var width = element.innerWidth; var height = element.innerHeight; return Promise.resolve(makeRect(width, height)); } return Promise.resolve(element.getBoundingClientRect()); } else { return new Promise(resolve => { queryNodesRef(element).boundingClientRect().exec(_ref => { var [rect] = _ref; if (isRootElement(element)) { var { width: _width, height: _height } = rect; resolve(makeRect(_width, _height)); } else { resolve(rect); } }); }); } } return Promise.resolve(makeRect(0, 0)); } export function getRects(elementOrRef, selector) { var element = elementUnref(elementOrRef); if (element) { if (inBrowser) { var rects = []; element.querySelectorAll(selector).forEach(oneElement => rects.push(oneElement.getBoundingClientRect())); return Promise.resolve(rects); } else { return new Promise(resolve => { queryAllNodesRef(element, selector).boundingClientRect().exec(_ref2 => { var [rects] = _ref2; return resolve(rects); }); }); } } return Promise.resolve([]); } //# sourceMappingURL=rect.js.map