UNPKG

choerodon-ui

Version:

An enterprise-class UI design language and React-based implementation

115 lines (93 loc) 2.64 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"]; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; exports.findIFrame = findIFrame; exports.getDocument = getDocument; exports.getDocuments = getDocuments; exports.getMousePosition = getMousePosition; var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); function getDocument(self) { try { var parent = self.parent, top = self.top; if (parent !== top) { return getDocument(parent); } return parent.document; } catch (e) { return self.document; } } function getDocuments(self) { var list = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; try { var parent = self.parent, top = self.top; if (parent !== top) { return getDocuments(parent, list); } return list.concat(parent.document); } catch (e) { return list.concat(self.document); } } function findIFrame(self) { return (0, _toConsumableArray2["default"])(self.parent.document.querySelectorAll('iframe')).find(function (frame) { return frame.contentWindow === self; }); } function getPageMousePosition(x, y, self, client) { var _self$document$docume = self.document.documentElement, scrollTop = _self$document$docume.scrollTop, scrollLeft = _self$document$docume.scrollLeft, clientWidth = _self$document$docume.clientWidth, clientHeight = _self$document$docume.clientHeight; if (client) { return { x: x, y: y, vw: clientWidth, vh: clientHeight }; } return { x: x + scrollLeft, y: y + scrollTop, vw: clientWidth, vh: clientHeight }; } function getMousePosition(x, y, self, client) { try { if (self.top === self) { return getPageMousePosition(x, y, self, client); } var parent = self.parent; var iframe = findIFrame(self); var _ref = iframe ? iframe.getBoundingClientRect() : { top: 0, left: 0 }, top = _ref.top, left = _ref.left; var newX = x + left; var newY = y + top; if (parent === self.top) { return getPageMousePosition(newX, newY, parent, client); } return getMousePosition(newX, newY, parent); } catch (e) { return getPageMousePosition(x, y, self, client); } } var _default = { getDocument: getDocument, getDocuments: getDocuments, findIFrame: findIFrame, getMousePosition: getMousePosition }; exports["default"] = _default; //# sourceMappingURL=index.js.map