@vnmfify/core
Version:
```shell npm i @vnmfify/core -S ```
107 lines (88 loc) • 3.14 kB
JavaScript
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