overscroll
Version:
43 lines (36 loc) • 1.61 kB
JavaScript
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
import { getOffset, getPosition } from './getOffset';
import getFromRange from './getFromRange';
import getClientSize from './getClientSize';
import getScrollSize from './getScrollSize';
import hasScrollBar from './hasScrollBar';
import contains from './contains';
import domData, { hasData } from './domData';
import getDocument from './getDocument';
import getWindow from './getWindow';
import getParent from './getParent';
export default (function (scope) {
var target = scope.target,
NOBUBBLE = scope.NOBUBBLE;
var hasScrollBarFuncs = hasScrollBar(scope);
var hasScrollY = hasScrollBarFuncs.hasScrollY,
hasScrollX = hasScrollBarFuncs.hasScrollX;
function getNearestScrollable(dom) {
return target === dom || hasData(dom, NOBUBBLE) || hasScrollY(dom) || hasScrollX(dom) ? dom : getParent(dom, function (dom) {
return target === dom || hasData(dom, NOBUBBLE) || hasScrollY(dom) || hasScrollX(dom);
});
}
return _extends({
domData: domData,
contains: contains,
getFromRange: getFromRange,
getWindow: getWindow,
getParent: getParent,
getDocument: getDocument,
getNearestScrollable: getNearestScrollable,
getOffset: getOffset(scope),
getPosition: getPosition(scope),
getClientSize: getClientSize(scope),
getScrollSize: getScrollSize(scope)
}, hasScrollBarFuncs);
});