UNPKG

@vnmfify/core

Version:

```shell npm i @vnmfify/core -S ```

107 lines (88 loc) 3.14 kB
import _split from "lodash/split"; import _isEmpty from "lodash/isEmpty"; import { createSelectorQuery, getCurrentInstance, useRouter } from "@vnxjs/vnmf"; import { inWechat } from "../base"; export var ELEMENT_NODE_TYPE = 1; export function isWindow(val) { return val === window; } export function isBodyElement(val) { return val === document.body; } export function isRootElement(node) { return (node === null || node === void 0 ? void 0 : node.nodeType) === ELEMENT_NODE_TYPE && (node === null || node === void 0 ? void 0 : node.tagName) === "ROOT"; } export function isBlockElement(node) { return (node === null || node === void 0 ? void 0 : node.nodeType) === ELEMENT_NODE_TYPE && (node === null || node === void 0 ? void 0 : node.tagName) === "BLOCK"; } export function elementUnref(elementOrRef) { if (elementOrRef === undefined || elementOrRef === null) { return elementOrRef; } if ("current" in elementOrRef) { return elementOrRef.current; } return elementOrRef; } export function matchSelector(aSelector, bSelector) { return aSelector === bSelector; } export function getElementSelector(id, className) { var selectors = []; if (!_isEmpty(id)) { selectors.push("#".concat(id)); } if (!_isEmpty(className)) { selectors.push(_split(className, " ").join(".")); } return selectors.join("."); } export function prependPageSelector(selector) { var _getCurrentInstance$r; var path = (_getCurrentInstance$r = getCurrentInstance().router) === null || _getCurrentInstance$r === void 0 ? void 0 : _getCurrentInstance$r.path; return path ? "".concat(path, "__").concat(selector) : selector; } export function usePrependPageSelector(selector) { var { path } = useRouter(); return path ? "".concat(path, "__").concat(selector) : selector; } function getAncestorWrapper(element) { if (inWechat) { var ancestor = element; for (var cursor = element; !_isEmpty(cursor.parentNode);) { if (isRootElement(cursor.parentNode)) { break; } if (!isBlockElement(cursor.parentNode)) { ancestor = cursor.parentNode; } cursor = cursor.parentNode; } if (ancestor && ancestor !== element) { return ancestor; } } } export function queryNodesRef(element) { if (isRootElement(element)) { return createSelectorQuery().selectViewport(); } var ancestor = getAncestorWrapper(element); if (ancestor) { return createSelectorQuery().select("#".concat(ancestor.uid, ">>>#").concat(element.uid)); } return createSelectorQuery().select("#" + element.uid); } export function queryAllNodesRef(element, selector) { if (isRootElement(element)) { return createSelectorQuery().selectViewport(); } var ancestor = getAncestorWrapper(element); if (ancestor) { return createSelectorQuery().selectAll("#".concat(ancestor.uid, ">>>#").concat(element.uid).concat(selector)); } return createSelectorQuery().selectAll("#" + element.uid + selector); } //# sourceMappingURL=element.js.map