UNPKG

tdesign-mobile-vue

Version:
50 lines (44 loc) 1.43 kB
/** * tdesign v1.7.0 * (c) 2024 TDesign Group * @license MIT */ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var vue = require('vue'); var shared_util = require('../util.js'); require('@babel/runtime/helpers/slicedToArray'); require('lodash/isNumber'); require('../../config.js'); var overflowScrollReg = /scroll|auto/i; var defaultRoot = shared_util.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 = vue.ref(); vue.onMounted(function () { if (el.value) { scrollParent.value = getScrollParent(el.value, root); } }); return scrollParent; } exports.getScrollParent = getScrollParent; exports.useScrollParent = useScrollParent; //# sourceMappingURL=index.js.map