@zhsz/cool-design-crud
Version:
159 lines (158 loc) • 3.61 kB
JavaScript
import { default as default2 } from "clone-deep";
import flat from "array.prototype.flat";
import { default as default3 } from "array.prototype.flat";
import { default as default4 } from "merge";
import { mergeProps } from "vue";
function isArray(value) {
if (typeof Array.isArray === "function") {
return Array.isArray(value);
} else {
return Object.prototype.toString.call(value) === "[object Array]";
}
}
function isObject(value) {
return Object.prototype.toString.call(value) === "[object Object]";
}
function isFunction(value) {
return typeof value === "function";
}
function isString(value) {
return typeof value === "string";
}
function isBoolean(value) {
return typeof value === "boolean";
}
function isEmpty(value) {
if (isArray(value)) {
return value.length === 0;
}
if (isObject(value)) {
return Object.keys(value).length === 0;
}
return value === "" || value === void 0 || value === null;
}
function dataset(obj, key, value) {
const isGet = value === void 0;
let d = obj;
const arr = flat(
key.split(".").map((e) => {
if (e.includes("[")) {
return e.split("[").map((e2) => e2.replace(/"/g, ""));
} else {
return e;
}
})
);
try {
for (let i = 0; i < arr.length; i++) {
const e = arr[i];
let n = null;
if (e.includes("]")) {
const [k, v] = e.replace("]", "").split(":");
if (v) {
n = d.findIndex((x) => x[k] === v);
} else {
n = Number(k);
}
} else {
n = e;
}
if (i !== arr.length - 1) {
d = d[n];
} else {
if (isGet) {
return d[n];
} else {
if (isObject(value)) {
Object.assign(d[n], value);
} else {
d[n] = value;
}
}
}
}
return obj;
} catch (e) {
console.error("Format error", `${key}`);
return {};
}
}
function contains(parent, node) {
return parent !== node && parent && parent.contains(node);
}
function deepMerge(a, b) {
let k;
for (k in b) {
a[k] = a[k] && a[k].toString() === "[object Object]" ? deepMerge(a[k], b[k]) : a[k] = b[k];
}
return a;
}
function mergeConfig(a, b) {
return b ? mergeProps(a, b) : a;
}
function debounce(fn, delay, immediate) {
let timer;
let result;
return function(...args) {
if (timer)
clearTimeout(timer);
if (immediate) {
if (timer) {
timer = setTimeout(() => timer = null, delay);
} else {
result = fn.apply(this, args);
return result;
}
} else {
timer = setTimeout(() => fn.apply(this, args), delay);
}
};
}
function addClass(el, name) {
if (isString(el == null ? void 0 : el.className)) {
const f = el.className.includes(name);
if (!f) {
el.className = `${el.className} ${name}`;
}
}
}
function removeClass(el, name) {
if (isString(el == null ? void 0 : el.className)) {
el.className = el.className.replace(name, "");
}
}
function parseFunction(value, defaultValue) {
if (isBoolean(value)) {
return value;
} else if (isFunction(value)) {
return value();
}
return defaultValue;
}
function parseFunctionToString(value, scope) {
if (isFunction(value)) {
return value(scope);
} else {
return value;
}
}
export {
addClass,
default2 as cloneDeep,
contains,
dataset,
debounce,
deepMerge,
default3 as flat,
isArray,
isBoolean,
isEmpty,
isFunction,
isObject,
isString,
default4 as merge,
mergeConfig,
parseFunction,
parseFunctionToString,
removeClass
};