antd-tablefixed-drag
Version:
drag list view and table view component for react
54 lines (47 loc) • 1.6 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
/* global Element */
if (Element && !Element.prototype.matches) {
var proto = Element.prototype;
proto.matches = proto.matchesSelector || proto.mozMatchesSelector || proto.msMatchesSelector || proto.oMatchesSelector || proto.webkitMatchesSelector;
}
var closest = function closest(el, selector, rootNode) {
var element = el;
while (element) {
var isRoot = element === rootNode || element === document.body;
if (isRoot || element.matches(selector)) {
if (isRoot) {
element = null;
}
break;
}
element = element.parentNode;
}
return element;
};
var getScrollElement = function getScrollElement(el) {
var element = el;
do {
var _window$getComputedSt = window.getComputedStyle(element),
overflow = _window$getComputedSt.overflow;
if ((overflow === 'auto' || overflow === 'scroll') && element && element.nodeType && (element.offsetWidth < element.scrollWidth || element.offsetHeight < element.scrollHeight)) {
break;
}
if (!element || !element.nodeType || element === document.body) {
element = null;
break;
}
element = element.parentNode;
} while (element);
return element;
};
var getDomIndex = function getDomIndex(el, ignoreSelectors) {
return Array.from(el.parentNode.children).filter(function (e) {
return ignoreSelectors === '' ? true : !e.matches(ignoreSelectors);
}).indexOf(el);
};
exports.getScrollElement = getScrollElement;
exports.closest = closest;
exports.getDomIndex = getDomIndex;