UNPKG

@zhsz/cool-design-crud

Version:

159 lines (158 loc) 3.61 kB
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 };