UNPKG

frc-ui

Version:

React Web UI

75 lines (65 loc) 2.13 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.createListContainer = createListContainer; exports.getPosElement = getPosElement; exports.getWindowSize = getWindowSize; exports.isExistedListContainer = isExistedListContainer; exports.isOverFlow = isOverFlow; exports.listContainer = void 0; function getWindowSize() { return { width: window.innerWidth || document.getElementsByClassName('wrap')[0].clientWidth, height: window.innerHeight || document.getElementsByClassName('wrap')[0].clientHeight }; } function getPosElement(el) { var rect = el.getBoundingClientRect(); return { top: rect.top, left: rect.left, width: rect.width, height: rect.height, right: rect.right, bottom: rect.bottom }; } function isOverFlow(parent) { var w = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; var h = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; var winSize = getWindowSize(); var overFlowX; var overFlowY; var parentPos = getPosElement(parent); overFlowX = parentPos.left + w > winSize.width; overFlowY = parentPos.top + parentPos.height + h > winSize.height; return { x: overFlowX, y: overFlowY }; } var listContainer = null; exports.listContainer = listContainer; function isExistedListContainer() { var className = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'list-container'; var isExisted = false; var nodeList = document.body.childNodes; var len = nodeList.length; for (var i = 0; i < len; i++) { var node = nodeList.item(i); if (node && node.nodeName === 'DIV' && node['className'] === className) { isExisted = true; exports.listContainer = listContainer = node; break; } } return isExisted; } function createListContainer() { var className = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'list-container'; var div = document.createElement('div'); div.className = className; exports.listContainer = listContainer = div; document.body.appendChild(listContainer); }