UNPKG

@zhsz/cool-design-crud

Version:

158 lines (157 loc) 3.89 kB
"use strict"; Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const cloneDeep = require("clone-deep"); const flat = require("array.prototype.flat"); const merge = require("merge"); const vue = require("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 ? vue.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; } } exports.cloneDeep = cloneDeep; exports.flat = flat; exports.merge = merge; exports.addClass = addClass; exports.contains = contains; exports.dataset = dataset; exports.debounce = debounce; exports.deepMerge = deepMerge; exports.isArray = isArray; exports.isBoolean = isBoolean; exports.isEmpty = isEmpty; exports.isFunction = isFunction; exports.isObject = isObject; exports.isString = isString; exports.mergeConfig = mergeConfig; exports.parseFunction = parseFunction; exports.parseFunctionToString = parseFunctionToString; exports.removeClass = removeClass;