UNPKG

birdpaper-ui

Version:

一个通用的 vue3 UI组件库。A common vue3 UI component library.

85 lines (84 loc) 2.5 kB
"use strict"; Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const isElement = (vn) => { return Boolean( vn && vn.shapeFlag & 1 /* ELEMENT */ ); }; const isComponent = (vn, type) => { return Boolean( vn && vn.shapeFlag & 6 /* COMPONENT */ ); }; const isTextChildren = (child, children) => { return Boolean(child && child.shapeFlag & 8); }; const isArrayChildren = (vn, children) => { return Boolean( vn && vn.shapeFlag & 16 /* ARRAY_CHILDREN */ ); }; const opt = Object.prototype.toString; const isArray = (obj) => { return opt.call(obj) === "[object Array]"; }; const isSlotsChildren = (vn, children) => { return Boolean( vn && vn.shapeFlag & 32 /* SLOTS_CHILDREN */ ); }; const getAllElements = (children, includeText = false) => { var _a, _b; const results = []; for (const item of children ?? []) { if (isElement(item) || isComponent(item) || includeText && isTextChildren(item, item.children)) { results.push(item); } else if (isArrayChildren(item, item.children)) { results.push(...getAllElements(item.children, includeText)); } else if (isSlotsChildren(item, item.children)) { results.push(...getAllElements((_b = (_a = item.children).default) == null ? void 0 : _b.call(_a), includeText)); } else if (isArray(item)) { results.push(...getAllElements(item, includeText)); } } return results; }; const isScrollElement = (element) => { return element.scrollHeight > element.offsetHeight || element.scrollWidth > element.offsetWidth; }; const getScrollElements = (el) => { const scrollElements = []; let element = el; while (element && element !== document.documentElement) { if (isScrollElement(element)) { scrollElements.push(element); } element = element.parentElement ?? void 0; } return scrollElements; }; const getChildrenIndex = (ele) => { if (ele.sourceIndex) { return ele.sourceIndex - ele.parentNode.sourceIndex - 1; } var i = 0; while (ele = ele.previousElementSibling) { i++; } return i; }; exports.getAllElements = getAllElements; exports.getChildrenIndex = getChildrenIndex; exports.getScrollElements = getScrollElements; exports.isArray = isArray; exports.isArrayChildren = isArrayChildren; exports.isComponent = isComponent; exports.isElement = isElement; exports.isScrollElement = isScrollElement; exports.isSlotsChildren = isSlotsChildren; exports.isTextChildren = isTextChildren; exports.opt = opt;