UNPKG

tdesign-mobile-vue

Version:
45 lines (41 loc) 1.3 kB
/** * tdesign v1.7.0 * (c) 2024 TDesign Group * @license MIT */ import { ref, onMounted } from 'vue'; import { isBrowser } from '../util.js'; import '@babel/runtime/helpers/slicedToArray'; import 'lodash/isNumber'; import '../../config.js'; var overflowScrollReg = /scroll|auto/i; var defaultRoot = isBrowser ? window : void 0; function isElement(node) { var ELEMENT_NODE_TYPE = 1; return node.tagName !== "HTML" && node.tagName !== "BODY" && node.nodeType === ELEMENT_NODE_TYPE; } function getScrollParent(el) { var root = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultRoot; var node = el; while (node && node !== root && isElement(node)) { var _window$getComputedSt = window.getComputedStyle(node), overflowY = _window$getComputedSt.overflowY; if (overflowScrollReg.test(overflowY)) { return node; } node = node.parentNode; } return root; } function useScrollParent(el) { var root = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultRoot; var scrollParent = ref(); onMounted(function () { if (el.value) { scrollParent.value = getScrollParent(el.value, root); } }); return scrollParent; } export { getScrollParent, useScrollParent }; //# sourceMappingURL=index.js.map