tdesign-mobile-vue
Version:
tdesign-mobile-vue
117 lines (113 loc) • 3.42 kB
JavaScript
/**
* tdesign v1.7.0
* (c) 2024 TDesign Group
* @license MIT
*/
import isFunction from 'lodash/isFunction';
import isString from 'lodash/isString';
var trim = function trim(str) {
return (str || "").replace(/^[\s\uFEFF]+|[\s\uFEFF]+$/g, "");
};
var getAttach = function getAttach(node, triggerNode) {
var attachNode = isFunction(node) ? node(triggerNode) : node;
if (!attachNode) {
return document.body;
}
if (isString(attachNode)) {
return document.querySelector(attachNode);
}
if (attachNode instanceof HTMLElement) {
return attachNode;
}
return document.body;
};
var getSSRAttach = function getSSRAttach() {
if (process.env.NODE_ENV === "test-snap") return "body";
};
function stopPropagation(event) {
event.stopPropagation();
}
function preventDefault(event, isStopPropagation) {
if (typeof event.cancelable !== "boolean" || event.cancelable) {
event.preventDefault();
}
if (isStopPropagation) {
stopPropagation(event);
}
}
function hasClass(el, cls) {
if (!el || !cls) return false;
if (cls.indexOf(" ") !== -1) throw new Error("className should not contain space.");
if (el.classList) {
return el.classList.contains(cls);
}
return " ".concat(el.className, " ").indexOf(" ".concat(cls, " ")) > -1;
}
function addClass(el, cls) {
if (!el) return;
var curClass = el.className;
var classes = (cls || "").split(" ");
for (var i = 0, j = classes.length; i < j; i++) {
var clsName = classes[i];
if (!clsName) continue;
if (el.classList) {
el.classList.add(clsName);
} else if (!hasClass(el, clsName)) {
curClass += " ".concat(clsName);
}
}
if (!el.classList) {
el.className = curClass;
}
}
function removeClass(el, cls) {
if (!el || !cls) return;
var classes = cls.split(" ");
var curClass = " ".concat(el.className, " ");
for (var i = 0, j = classes.length; i < j; i++) {
var clsName = classes[i];
if (!clsName) continue;
if (el.classList) {
el.classList.remove(clsName);
} else if (hasClass(el, clsName)) {
curClass = curClass.replace(" ".concat(clsName, " "), " ");
}
}
if (!el.classList) {
el.className = trim(curClass);
}
}
function elementInViewport(elm, parent) {
var rect = elm.getBoundingClientRect();
if (parent) {
var parentRect = parent.getBoundingClientRect();
return rect.top >= parentRect.top && rect.left >= parentRect.left && rect.bottom <= parentRect.bottom && rect.right <= parentRect.right;
}
return rect.top >= 0 && rect.left >= 0 && rect.bottom + 80 <= window.innerHeight && rect.right <= window.innerWidth;
}
function getWindowScroll() {
var _document = document,
body = _document.body;
var docElm = document.documentElement;
var scrollTop = window.pageYOffset || docElm.scrollTop || body.scrollTop;
var scrollLeft = window.pageXOffset || docElm.scrollLeft || body.scrollLeft;
return {
scrollTop: scrollTop,
scrollLeft: scrollLeft
};
}
function getWindowSize() {
if (window.innerWidth !== void 0) {
return {
width: window.innerWidth,
height: window.innerHeight
};
}
var doc = document.documentElement;
return {
width: doc.clientWidth,
height: doc.clientHeight
};
}
export { addClass, elementInViewport, getAttach, getSSRAttach, getWindowScroll, getWindowSize, hasClass, preventDefault, removeClass, stopPropagation };
//# sourceMappingURL=dom.js.map