UNPKG

@10yun/cv-js-utils

Version:

常用 js-utils 工具类库

1,302 lines (1,301 loc) 40 kB
function te() { for (var e = arguments.length || 0, t = [], r = 0; r < e; r++) t.push(...arguments[r]); return t; } function re(e, t) { var r = Array.prototype.slice.call(arguments), n = 1, i, o = typeof r[r.length - 1] == "boolean" ? r.pop() : !0; for (r.length === 1 && (e = this, n = 0); t = r[n++]; ) for (i in t) i in e ? typeof t[i] == "object" && typeof e[i] == "object" ? e[i] = Object.assign(e[i], t[i]) : typeof t[i] == "function" && typeof e[i] == "function" && (e[i] = t[i]) : (o || !(i in e)) && (e[i] = t[i]); return e; } function ne(e) { for (var t = Array.prototype.slice.call(arguments, 1), r = 0; r < t.length; r += 1) { var n = t[r]; for (var i in n) n.hasOwnProperty(i) && (e[i] = n[i]); } return e; } function ie(e) { let t = !1; return typeof e == "object" && e.length > 0 && (t = e[e.length - 1]), t; } function oe(e, t, r) { var n = function(u) { return function(d, f) { var y = d[u], b = f[u]; return y < b ? -1 : y > b ? 1 : 0; }; }, i = e.sort(n(t)); if (r = r || !1, r == !0) { for (var o = [], a = 0; a < 26; a++) { var c = String.fromCharCode(65 + a), l = []; for (let u in i) c === i[u][t] && i[u] !== void 0 && i[u] !== null && l.push(i[u]); l !== void 0 && l.length > 0 && o.push({ letter: c, tree: l }); } return o; } else return i; } function se(e, t) { var r = []; return r = e, e.forEach(function(n, i) { for (var o in n) { (n[o] == "true" || n[o] == !0) && (r[i][o] = !0), (n[o] == "false" || n[o] == !1) && (r[i][o] = !1); for (var a in initArr) if (o == a) switch (initArr[a]) { case "[]": (n[o] == "" || n[o] == null) && (r[i][o] = []); } } }), r; } function ae(e, t) { for (s = 0; s < e.length; s++) if (thisEntry = e[s].toString(), thisEntry == t) return !0; return !1; } function ue(e, t, r = !1) { return Array.isArray(t) ? r ? !!t.find((n) => n && n.indexOf("*") && new RegExp("^" + n.replace(/[-\/\\^$+?.()|[\]{}]/g, "\\$&").replace(/\*/g, ".*") + "$", "g").test(e) ? !0 : n == e) : t.includes(e) : !1; } function ce(e, t) { return e.includes(t); } function le(e, t) { let r = []; return typeof t == "string" && t.constructor == String && (t = t.replace(/\s*/g, ""), t = t.split(",")), e.forEach(function(n, i) { r[i] = {}, t.map(function(o) { r[i][o] = "", n[o] !== void 0 && n[o] !== null && (r[i][o] = n[o]); }); }), r; } function fe(e) { return Array.from(new Set(e)); } function de(e) { if (e) try { return e.length; } catch { return 0; } return 0; } function he(e, t) { return e.indexOf(t) != -1; } function pe(e) { if (Array.hasOwnProperty("from")) return Array.from(new Set(e)); for (var t = {}, r = [], n = 0; n < e.length; n++) t[e[n]] || (t[e[n]] = !0, r.push(e[n])); return r; } function j(e = [], t = { id: "id", pid: "pid", children: "children" }) { let r = [], n = {}, i = [0, "0", void 0, "undefined", null, "null", "00000000-0000-0000-0000-000000000000", ""]; return e.forEach((o) => { let a = e.filter((l) => l[t.pid] === o[t.id]); o[t.children] && o[t.children] instanceof Array && o[t.children].length > 0 ? (o[t.children].map((l) => n[l[t.id]] = 1), o[t.children].push(...a.filter((l) => n[l[t.id]] !== 1))) : o[t.children] = a; let c = a.length > 0; (c || !c && i.includes(o[t.pid])) && r.push(o); }), r.every((o) => i.includes(o[t.pid])) ? r : j(r, t); } function v(e = [], t = "children") { return e.reduce((r, n) => r.concat(n, n[t] ? v(n[t], t) : []), []); } function T(e, t = "") { return e.reduce((r, n) => r.concat(n[t] || [], n[t] ? T([n[t]], t) : []), []); } function ge(e = []) { let t = 0; return function r(n, i) { ++i, t = Math.max(i, t); for (let o = 0; o < n.length; o++) { let a = n[o]; a.level = i, a.children && a.children.length > 0 ? r(a.children, i) : delete a.children; } }(e, 0), t; } function _(e = [], t, r = "id", n = "children") { return e.reduce((i, o) => i.concat(o[r] == t ? o : _(o[n] || [], t, r, n)), []); } function D(e, t, r) { e[t] && (r && r(e[t]), D(e[t], t, r)); } function be() { if ($()) return "edge"; if (C()) return "opera"; if (E()) return "firefox"; if (F()) return "weixin"; if (N()) return "safari"; if (I()) return "chrome"; } function ye(e) { const t = e || navigator.userAgent; return t.indexOf("MSIE") >= 0 && t.indexOf("Opera") < 0 || t.indexOf("MSIE") > -1 && t.indexOf("compatible") > -1 || t.indexOf("MSIE") > -1 && t.indexOf("Trident") > -1; } function me(e) { const t = e || navigator.userAgent; return t.indexOf("Trident") > -1 && t.indexOf("rv:11.0") > -1; } function $(e) { return (e || navigator.userAgent).indexOf("Edg") > -1; } function I(e) { return (e || navigator.userAgent).indexOf("Chrome") > -1; } function C(e) { const t = e || navigator.userAgent; return t.indexOf("Opera") > -1 || t.indexOf("OPR") > -1; } function E(e) { return (e || navigator.userAgent).indexOf("Firefox") > -1; } function N(e) { const t = e || navigator.userAgent; return t.indexOf("Safari") > -1 && t.indexOf("Chrome") == -1 && t.indexOf("MicroMessenger") == -1; } function xe(e) { return (e || navigator.userAgent).indexOf("AppleWebKit") > -1; } function F() { if (typeof window > "u" || !window) return !1; const e = window.navigator.userAgent.toLowerCase(); return e.match(/MicroMessenger/i) == "micromessenger" || e.match(/MicroMessenger/i) + "" == "micromessenger" || e.indexOf("MicroMessenger") > -1 || e.match(/micromessenger/i) == "micromessenger"; } function Ae(e) { return (e || navigator.userAgent).match(/\sQQ/i) == " QQ"; } function we(e) { const t = e || navigator.userAgent; return !!/Weibo/i.test(t); } function h(e) { return e.replace(/\s+/g, ""); } function Se(e) { let t = /^[0-9]{12,}$/; return e = e ? h(e) : "", t.test(e); } function Me(e) { let t = /^[0-9]{6}$/; return e = e ? h(e) : "", t.test(e); } function Oe(e) { const t = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}(([0-9]{5}[DF]$)|([DF][A-HJ-NP-Z0-9][0-9]{4}$))/, r = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]{1}$/; return e.length === 7 ? r.test(e) : e.length === 8 ? t.test(e) : !1; } function je(e) { return /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/.test(e); } function ve(e) { return e = e || "", e == "" ? !1 : (e = e ? h(e) : "", e = parseInt(e), !!/^((13[0-9])|(14[5,7,9])|(15[^4])|(16[6])|(17[1,2,3,5,6,7,8])|(18[0-9])|(19[1,3,8,9]))+\d{8}$/.test(e)); } function Te(e) { return !!/^[1-9][0-9]{4,9}$/.test(e); } function _e() { return /<("[^"]*"|'[^']*'|[^'">])*>/.test(str); } function De(e) { return /((?:(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d))/.test(e); } function $e(e) { e = e ? h(e) : ""; let t = /^([0-9]{3,4}-)?[0-9]{7,8}$/, r = /^0?1[3|4|5|8][0-9]\d{8}$/, n = /^400[0-9]{7}$/; return !!(r.test(e) || t.test(e) || n.test(e)); } function Ie(e) { return e = e ? h(e) : "", !!"/^http|https://([w-]+(.[w-]+)+(/[w-./?%@&+=一-龥]*)?)?$/".test(e); } function Ce(e) { return e = e ? h(e) : "", !!"/^(w+://)?w+(.w+)+.*$/".test(e); } function Ee(e) { return /[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF][\u200D|\uFE0F]|[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF]|[0-9|*|#]\uFE0F\u20E3|[0-9|#]\u20E3|[\u203C-\u3299]\uFE0F\u200D|[\u203C-\u3299]\uFE0F|[\u2122-\u2B55]|\u303D|[\A9|\AE]\u3030|\uA9|\uAE|\u3030/gi.test(e); } function Ne(e) { return e = e ? h(e) : "", e.replace(/\s+/g, "") != ""; } function Fe(e) { return e == null || e == null || e == ""; } function Pe(e) { return /^\s*$/g.test(e.replace(/^\s+|\s+$/g, "")); } function Be(e) { for (let t in e) return !1; return !0; } function m(e) { return !!(e !== null && e !== "null" && e !== void 0 && e !== "undefined" && e); } function Le(e) { return !(e || typeof window < "u" && window.navigator.userAgent).match( /(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i ); } function Re(e) { return !!(e || navigator.userAgent).match(/AppleWebKit.*Mobile.*/); } function Ue(e) { const t = e || navigator.userAgent; return !!t.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/) || /iphone|ipad|ipod/i.test(t); } function ke(e) { return (e || navigator.userAgent).indexOf("iPhone") > -1; } function Ze(e) { return (e || navigator.userAgent).indexOf("iPad") > -1; } function qe(e) { const t = e || navigator.userAgent; return t.indexOf("Android") > -1 || t.indexOf("android") > -1 || t.indexOf("Adr") > -1; } function He() { } function Qe(e, t = 2) { var r = `/^(([1-9]{1}\\d*)|(0{1}))(\\.\\d{1,${t}})?$/`; return r.test(e); } function ze(e) { return /^[1-9]\d*(,\d{3})*(\.\d{1,2})?$|^0\.\d{1,2}$/.test(e); } function Ge(e, t = 6) { var r = `/[0-9]{${t}}$/`; return r.test(e); } function We(e) { return e.toString().search(/^[+-]?[0-9.]*$/) >= 0; } function Je(e) { let t = e.toString(); return /^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(t); } function Ye(e) { return Math.floor(e) === e; } function Ke(e) { if (e == "") return !1; var t = /^[1-9]\d*$/; return t.test(e); } function Xe(e) { return /^[\d]{15}$/.test(e) || /^[\d]{17}([Xx\d]{1}$)$/.test(e); } function Ve(e) { var t = /^\d+(?=\.{0,1}\d+$|$)/; return !!t.test(e); } function et(e) { return /[\u4e00-\u9fa5]+$/.test(e); } function tt(e) { return /^[a-zA-Z\u4e00-\u9fa5]+([\u00b7\.\- ]?[a-zA-Z\u4e00-\u9fa5]+)*$/.test(e); } function rt(e) { return /^[a-z0-9A-Z\u4e00-\u9fa5]+$/.test(e); } function nt(e) { return /^[0-9a-zA-Z\u4e00-\u9fa5_-]+$/.test(e); } function it(e) { return /^[\u4e00-\u9fa5]+[\u00b7\.]?[\u4e00-\u9fa5]+$/.test(e); } function ot(e) { return /^[0-9A-Za-z]+$/.test(e); } function st(e, t) { return e.charCodeAt(t) > 255 || e.charCodeAt(t) < 0; } function at(e) { return /^[a-z]+$/.test(e); } function ut(e) { return /^[A-Z]+$/.test(e); } function ct(e) { return Object.prototype.toString.call(e) === "[object Array]"; } function lt(e) { return Object.prototype.toString.call(e) === "[object Boolean]"; } function ft(e) { return Object.prototype.toString.call(e) === "[object Date]"; } function dt(e) { return !/Invalid|NaN/.test(new Date(e).toString()); } function ht(e) { return /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(e); } function pt(e) { return Object.prototype.toString.call(e) === "[object Function]"; } function gt(e) { return Object.prototype.toString.call(e) === "[object Null]"; } function bt(e) { return Object.prototype.toString.call(e) === "[object Number]"; } function yt(e) { return Object.prototype.toString.call(e) === "[object Object]"; } function mt(e) { return Object.prototype.toString.call(e) === "[object String]"; } function xt(e) { return Object.prototype.toString.call(e) === "[object Symbol]"; } function At(e) { return Object.prototype.toString.call(e) === "[object Set]"; } function wt(e) { return Object.prototype.toString.call(e) === "[object Error]"; } function St(e) { return Object.prototype.toString.call(e) === "[object Promise]"; } function Mt(e) { return Object.prototype.toString.call(e) === "[object Undefined]"; } function Ot(e) { return Object.prototype.toString.call(e) === "[object RegExp]"; } function jt(e) { try { JSON.parse(e); } catch { return !1; } return !0; } function vt(e) { return typeof e == "object" && Object.prototype.toString.call(e).toLowerCase() == "[object object]" && typeof e.length > "u"; } const P = function(e) { return { 11: "北京", 12: "天津", 13: "河北", 14: "山西", 15: "内蒙古", 21: "辽宁", 22: "吉林", 23: "黑龙江", 31: "上海", 32: "江苏", 33: "浙江", 34: "安徽", 35: "福建", 36: "江西", 37: "山东", 41: "河南", 42: "湖北", 43: "湖南", 44: "广东", 45: "广西", 46: "海南", 50: "重庆", 51: "四川", 52: "贵州", 53: "云南", 54: "西藏", 61: "陕西", 62: "甘肃", 63: "青海", 64: "宁夏", 65: "新疆", 71: "台湾", 81: "香港", 82: "澳门", 91: "国外" }[parseInt(e.substr(0, 2))]; }, B = function(e) { return /^\d{6}(18|19|20)?\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/i.test(e); }; function L(e) { let t = e.split(""); const r = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1], n = [1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2]; let i = 0; t[17].toLowerCase() == "x" && (t[17] = 10); for (let a = 0; a < 17; a++) i += t[a] * r[a]; let o = i % 11; return t[17] == n[o]; } function R(e) { let t = e.substring(6, 10), r = e.substring(10, 12), n = e.substring(12, 14), i = new Date(t, parseFloat(r) - 1, parseFloat(n)); return !(i.getFullYear() != parseFloat(t) || i.getMonth() != parseFloat(r) - 1 || i.getDate() != parseFloat(n)); } function Tt(e) { if (!e) return !1; e = (e + "").replace(/(^\s*)|(\s*$)/g, ""); let t = e.match(/[^\x00-\xff]/g); return e.length + (t ? t.length : 0) != 18 ? !1 : ( // 格式验证 !!(B(e) && // 区域验证,你的身份证地区非法 P(e) && // 生日验证 R(e) && // 第18位的验证 L(e)) ); } function _t(e = "") { return e ? e.replace(/(^\s*)|(\s*$)/g, "") : ""; } function Dt(e) { return e ? e.replace(/\s|\xA0/g, "") : ""; } function $t(e) { return typeof e == "number" || typeof e == "string" ? (e + "").length : 0; } function It(e, t, r) { var n = strLen(e); return !(n < t || n > r); } function Ct(e) { return e ? e.replace(/↵/g, "<br/>") : ""; } function x(e, t, r = !1) { return e += "", t += "", r !== !0 && (e = e.toLowerCase(), t = t.toLowerCase()), e.indexOf(t) !== -1; } function U(e, t, r = !1) { return e += "", t += "", r !== !0 && (e = e.toLowerCase(), t = t.toLowerCase()), e.substring(0, t.length) === t; } function Et(e, t, r = !1) { return e += "", t += "", U(e, t, r) && (e = e.substring(t.length)), e || ""; } function A(e, t, r = !1) { return e += "", t += "", r !== !0 && (e = e.toLowerCase(), t = t.toLowerCase()), e.substring(e.length - t.length) === t; } function k(e, t, r = !1) { return e += "", t += "", A(e, t, r) && (e = e.substring(0, e.length - t.length)), e || ""; } function Nt(e, t) { var r = e.length - t.length, n = e.substr(r, t.length); return n == t; } function Ft(e, t, r) { return e ? e.replace(new RegExp(t, "g"), r) : ""; } function Pt(t) { var t = t.toString(); return t.indexOf(".") != -1 ? t.replace(/(\d)(?=(\d{3})+\.)/g, function(r, n) { return n + ","; }) : t.replace(/(\d)(?=(\d{3}))/g, function(r, n) { return n + ","; }); } function Bt(e) { return e ? e.replace(/(\s)/g, "").replace(/(\d{4})/g, "$1 ").replace(/\s*$/, "") : ""; } function Lt(e) { return e ? e.replace(/\s/g, "").replace(/(\d{4})\d+(\d{4})$/, "**** **** **** $2") : ""; } function Rt(e) { return e ? e.replace(/^(\d{3})\d{4}(\d+)/, "$1****$2") : ""; } function Ut(e) { for (var t = new Array(), r = 0; r < e.length; r++) ; return e.charsArray = t, t; } function kt(e = "") { return e.replace(/[\u4E00-\u9FA5]/g, ""); } function Zt(e, t, r) { return e += "", m(r) || (r = e.length), e.substring(t, r); } function Z(e, t = null, r = null) { return e = e.toString(), m(t) && x(e, t) && (e = e.substring(e.indexOf(t) + t.length)), m(r) && x(e, r) && (e = e.substring(0, e.indexOf(r))), e; } function qt(e = 0) { if (e = parseFloat(e), !isNaN(e)) { e = Math.round(e * 100); var t = e % 100 == 0, r = ["零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"], n = ["分", "角", "元", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿", "拾", "佰", "仟"], i = "", o, a, c, l = 0; if (e == 0) return "零元整"; e < 0 && (i += "负", e = -e), e = e.toString(), c = e.length; for (var u = 0; u < c; u++) o = parseInt(e.charAt(u)), a = c - 1 - u, o == 0 ? a == 2 || a == 6 || a == 11 ? (i += n[a], l = 0) : l++ : (l > 0 && (i += "零", l = 0), i = i + r[o] + n[a]); return t && (i += "整"), i; } } function Ht(e = 0) { for (var t = new Array("零", "一", "二", "三", "四", "五", "六", "七", "八", "九", "十"), r = new Array("", "十", "百", "仟", "萬", "億", "点", ""), n = ("" + e).replace(/(^0*)/g, "").split("."), i = 0, o = "", a = n[0].length - 1; a >= 0; a--) { switch (i) { case 0: o = r[7] + o; break; case 4: new RegExp("0{4}//d{" + (n[0].length - a - 1) + "}$").test(n[0]) || (o = r[4] + o); break; case 8: o = r[5] + o, r[7] = r[5], i = 0; break; } i % 4 == 2 && n[0].charAt(a + 2) != 0 && n[0].charAt(a + 1) == 0 && (o = t[0] + o), n[0].charAt(a) != 0 && (o = t[n[0].charAt(a)] + r[i % 4] + o), i++; } if (n.length > 1) { o += r[6]; for (var a = 0; a < n[1].length; a++) o += t[n[1].charAt(a)]; } return o == "一十" && (o = "十"), o.match(/^一/) && o.length == 3 && (o = o.replace("一", "")), o; } function Qt(e) { return e == null ? null : (typeof e == "number" && (e = e.toString()), e.replace(/\B(?=(?:\d{3})+\b)/g, ",")); } function zt(e) { return parseFloat(e).toFixed(2).toString().split("").reverse().join("").replace(/(\d{3})/g, "$1,").replace(/\,$/, "").split("").reverse().join(""); } function q(e, t = null) { let r = Number(e); if (r + "" == "NaN" && (r = 0), t && /^[0-9]*[1-9][0-9]*$/.test(t) && (r = r.toFixed(t), r.indexOf(".") < 0)) { r += "."; for (let i = 0; i < t; i++) r += "0"; } return r; } function Gt(e, t) { let r, n = null; return t = t || 500, function() { let i = this, o = arguments, a = +/* @__PURE__ */ new Date(); r && a - r < t ? (clearTimeout(n), n = setTimeout(() => { r = a, e.apply(i, o); }, t)) : (r = a, e.apply(i, o)); }; } function Wt(e, t) { var r = null; return t = t || 500, function() { let n = arguments, i = this; r !== null && clearTimeout(r), r = setTimeout(() => { r = null, e.apply(i, n); }, t); }; } function H(e) { var t = parseFloat(e[3] || 1), r = Math.floor(t * parseInt(e[0]) + (1 - t) * 255), n = Math.floor(t * parseInt(e[1]) + (1 - t) * 255), i = Math.floor(t * parseInt(e[2]) + (1 - t) * 255); return "#" + ("0" + r.toString(16)).slice(-2) + ("0" + n.toString(16)).slice(-2) + ("0" + i.toString(16)).slice(-2); } function Jt() { let e = Math.floor(Math.random() * 256), t = Math.floor(Math.random() * 256), r = Math.floor(Math.random() * 256); return `rgb(${e},${t},${r})`; } function Yt(e, t, r) { for (var n = 1, i = 1, o = 1, a = e, c = 0; c < r; c++) for (var l = 0; l < t; l++) c == 0 ? (n += a[t * c + l], i += a[t * c + l + 1], o += a[t * c + l + 2]) : (n += a[(t * c + l) * 4], i += a[(t * c + l) * 4 + 1], o += a[(t * c + l) * 4 + 2]); n /= t * r, i /= t * r, o /= t * r, n = Math.round(n), i = Math.round(i), o = Math.round(o); let u = [Math.round(n), Math.round(i), Math.round(o)]; return H(u); } function Q(e) { var t, r; return e.indexOf("?") > -1 ? (t = e.split("?"), e = t[0]) : e.indexOf("#") > -1 && (t = e.split("#"), e = t[0]), t = e.split("/"), e = t[t.length - 1], t = e.lastIndexOf("."), r = t > -1 ? e.substr(t + 1).toLowerCase() : "", r; } function Kt(e) { var t = e == "" ? "" : Q(e); return t == "jpg" || t == "jpeg" || t == "png" || t == "gif" || t == "bmp" ? 1 : 0; } function Xt(e, t, r = "image/png") { return new Promise((n, i) => { let o = new Image(); o.src = e, o.onload = function() { let a = this, c = a.width, l = a.height, u = c / l; l >= t.height && (l = t.height), c = l * u; let d = 1, f = document.createElement("canvas"), y = f.getContext("2d"), b = document.createAttribute("width"); b.nodeValue = c; let w = document.createAttribute("height"); w.nodeValue = l, f.setAttributeNode(b), f.setAttributeNode(w), y.drawImage(a, 0, 0, c, l), t.quality && t.quality <= 1 && t.quality > 0 && (d = t.quality); let O = f.toDataURL(r, d); n(O); }, o.onerror = () => { i(); }; }); } function Vt(e) { if (e === 0) return "0 B"; let t = 1024, r = ["B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"], n = Math.floor(Math.log(e) / Math.log(t)); return typeof r[n] > "u" ? "0 B" : q(e / Math.pow(t, n), 2) + " " + r[n]; } function z(e) { for (var t = e.split(","), r = t[0].match(/:(.*?);/)[1], n = atob(t[1]), i = n.length, o = new Uint8Array(i); i--; ) o[i] = n.charCodeAt(i); return new Blob([o], { type: r }); } function G(e, t) { var r = new FileReader(); r.onload = function(n) { t(n.target.result); }, r.readAsDataURL(e); } function er({ b64data: e = "", contentType: t = "", sliceSize: r = 512 } = {}) { return new Promise((n, i) => { let o = atob(e), a = []; for (let l = 0; l < o.length; l += r) { let u = o.slice(l, l + r), d = []; for (let f = 0; f < u.length; f++) d.push(u.charCodeAt(f)); a.push(new Uint8Array(d)); } let c = new Blob(a, { type: t }); c = Object.assign(c, { // jartto: 这里一定要处理一下 URL.createObjectURL preview: URL.createObjectURL(c), name: "图片示例.png" }), n(c); }); } function tr(e) { var t = z(e), r = ""; return G(t, function(n) { r = n; }), r; } function rr(e, t, r, n, i = "") { if (e == "" || t == "") return "未知"; var o = e * Math.PI / 180, a = r * Math.PI / 180, c = o - a, l = t * Math.PI / 180 - n * Math.PI / 180, u = 2 * Math.asin( Math.sqrt(Math.pow(Math.sin(c / 2), 2) + Math.cos(o) * Math.cos(a) * Math.pow(Math.sin(l / 2), 2)) ); switch (u = u * 6378.137, u = u.toFixed(2), i.toLowerCase()) { case "km": u = u + "km"; break; case "m": u = u * 1e3, u = u < 100 ? "<100m" : u + "m"; break; default: u > 1 ? u = u + "km" : (u = u * 1e3, u = u < 100 ? "<100m" : u + "m"); } return u; } function nr(e, t, r) { e = e || 0, t = t || 0; var n, i, o, a; try { n = e.toString().split(".")[1].length; } catch { n = 0; } try { i = t.toString().split(".")[1].length; } catch { i = 0; } if (a = Math.abs(n - i), o = Math.pow(10, Math.max(n, i)), a > 0) { var c = Math.pow(10, a); n > i ? (e = Number(e.toString().replace(".", "")), t = Number(t.toString().replace(".", "")) * c) : (e = Number(e.toString().replace(".", "")) * c, t = Number(t.toString().replace(".", ""))); } else e = Number(e.toString().replace(".", "")), t = Number(t.toString().replace(".", "")); return r || r === 0 ? ((e + t) / o).toFixed(r) : (e + t) / o; } function ir(e, t, r) { e = e || 0, t = t || 0; var n, i, o, a; try { n = e.toString().split(".")[1].length; } catch { n = 0; } try { i = t.toString().split(".")[1].length; } catch { i = 0; } return o = Math.pow(10, Math.max(n, i)), a = n >= i ? n : i, r || r === 0 ? ((e * o - t * o) / o).toFixed(r) : ((e * o - t * o) / o).toFixed(a); } function or(e, t, r) { e = e || 0, t = t || 0; var n = 0, i = e.toString(), o = t.toString(); try { n += i.split(".")[1].length; } catch { } try { n += o.split(".")[1].length; } catch { } return r || r === 0 ? (Number(i.replace(".", "")) * Number(o.replace(".", "")) / Math.pow(10, n)).toFixed(r) : Number(i.replace(".", "")) * Number(o.replace(".", "")) / Math.pow(10, n); } function sr(e, t, r) { var n = 0, i = 0, o, a; try { n = e.toString().split(".")[1].length; } catch { } try { i = t.toString().split(".")[1].length; } catch { } return o = Number(e.toString().replace(".", "")), a = Number(t.toString().replace(".", "")), r || r === 0 ? (o / a * Math.pow(10, i - n)).toFixed(r) : o / a * Math.pow(10, i - n); } function ar(e, t) { return t = t ? parseInt(t) : 0, t <= 0 ? Math.round(e) : (e = Math.round(e * Math.pow(10, t)) / Math.pow(10, t), e = Number(e).toFixed(t), e); } function ur(e, t = []) { return Object.keys(e).sort().reduce(function(r, n) { return t.includes(n) || (r[n] = e[n]), r; }, {}); } function W(e, t) { let r = e instanceof Object, n = t instanceof Object; if (!r || !n) return e === t; if (Object.keys(e).length !== Object.keys(t).length) return !1; for (let i in e) if (e.hasOwnProperty(i)) { let o = e[i] instanceof Object, a = t[i] instanceof Object; if (o && a) { if (!W(e[i], t[i])) return !1; } else if (e[i] != t[i]) return !1; } return !0; } function cr(e, t) { return t ? t in e : Object.keys(e).length > 0; } function lr() { let e = (/* @__PURE__ */ new Date()).getTime(); return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(r) { let n = (e + Math.random() * 16) % 16 | 0; return e = Math.floor(e / 16), (r == "x" ? n : n & 3 | 8).toString(16); }); } function fr(e) { e = e || 32; let t = "ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678oOLl9gqVvUuI1", r = t.length, n = ""; for (let i = 0; i < e; i++) n += t.charAt(Math.floor(Math.random() * r)); return n; } function dr(e, t, r) { let n = "", i = t, o = []; e && (i = Math.round(Math.random() * (r - t)) + t); let a = ""; r = r || "", r == "" && (a = (/* @__PURE__ */ new Date()).getTime()); let c = ""; for (let l = 0; l < i; l++) c = Math.round(Math.random() * (o.length - 1)), n += o[c]; return n + a; } function hr(e, t) { let r = t - e, n = Math.random(); return e + Math.round(n * r); } function pr(e) { let t = /http(s)?:\/\/([^\/]+)/i, r = (e + "").match(t); return r != null && r.length > 0 ? r[2] : ""; } function gr(e) { let t = J(); return typeof e > "u" ? t : t[e]; } function J() { let e = window.location.search || window.location.hash || "", t = []; x(e, "?") && (t = Z(e, "?").split("&")); let r = {}; for (let n = 0; n < t.length; n++) { let i = t[n].split("="); i.length === 2 && (r[i[0]] = i[1]); } return r; } function M(e, t) { if (t instanceof Array) return t.forEach((n) => { e = M(e, n); }), e; let r = e.split("?"); if (r.length >= 2) { let n = encodeURIComponent(t) + "=", i = r[1].split(/[&;]/g); for (let o = i.length; o-- > 0; ) i[o].lastIndexOf(n, 0) !== -1 && i.splice(o, 1); return r[0] + (i.length > 0 ? "?" + i.join("&") : ""); } return e; } function br(e, t) { if (typeof t == "object" && Object.prototype.toString.call(t).toLowerCase() == "[object object]" && typeof t.length > "u") { e && (e = M(e, Object.keys(t))), e += "", e += e.indexOf("?") === -1 ? "?" : ""; for (let r in t) t.hasOwnProperty(r) && (e += "&" + r + "=" + t[r]); } return k(e.replace("?&", "?"), "?"); } function yr(e) { var t = new RegExp("(^|&)" + e + "=([^&]*)(&|$)", "i"), r = window.location.search.slice(1), n = r.match(t); if (n != null) return decodeURIComponent(n[2]); let i = Y(); return i[e] ? i[e] : null; } function Y(e) { e = decodeURIComponent(e); let t = {}; const r = e.split("?")[1]; if (!r) return {}; const n = r.split("&"); for (let i in n) { const a = n[i].split("="); t[a[0]] = a[1]; } return t; } function K(e) { return e += "", e = e.replace(/%/g, "%25").replace(/\+/g, "%2B").replace(/ /g, "%20").replace(/\//g, "%2F").replace(/\?/g, "%3F").replace(/&/g, "%26").replace(/\=/g, "%3D").replace(/#/g, "%23"), e; } function mr(e, t = !1, r = !0) { t = t || !1; let n = t ? "?" : "", i = []; for (let o in e) { let a = e[o], c = `${o}=${K(a)}`; i.push(c); } return i.length ? n + i.join("&") : ""; } function xr(e, t) { var r = t || {}; for (var n in e) { var i = e[n]; i !== r && (typeof i == "object" ? r[n] = i.constructor === Array ? [] : Object.create(i) : r[n] = i); } return r; } function X(e) { let t; if (Object.prototype.toString.call(e) == "[object Array]") { t = []; for (let r in e) t.push(X(e[r])); return t; } if (Object.prototype.toString.call(e) == "[object Object]") { t = {}; for (let r in e) t[r] = e[r]; return t; } } function Ar(e) { if (typeof e != "object" || e === null) return e; if (typeof e.length == "number") { let [...t] = e; return t; } else { let { ...t } = e; return t; } } function S(e) { if (typeof e != "object" || e === null) return e; let t; if (Array.isArray(e)) { t = []; for (let r = 0; r < e.length; r++) t[r] = S(e[r]); } else if (e instanceof Date) t = new Date(e.getTime()); else if (e instanceof RegExp) t = new RegExp(e.source, e.flags); else { t = {}; for (const r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = S(e[r])); } return t; } function wr(e) { var t = parseInt(e), r = 0, n = 0, i = 0; t > 60 && (r = parseInt(t / 60), t = parseInt(t % 60), r > 60 && (n = parseInt(r / 60), r = parseInt(r % 60), n > 24 && (i = parseInt(n / 24), n = parseInt(n % 24)))); var o = ""; return t > 0 && (o = "" + parseInt(t) + "秒"), r > 0 && (o = "" + parseInt(r) + "分" + o), n > 0 && (o = "" + parseInt(n) + "小时" + o), i > 0 && (o = "" + parseInt(i) + "天" + o), o; } function Sr(e, t) { let r = parseInt((t - e) / 1e3), n = Math.floor(r / 86400 / 365); r = r % (86400 * 365); let i = Math.floor(r / 86400 / 30); r = r % (86400 * 30); let o = Math.floor(r / 86400); r = r % 86400; let a = Math.floor(r / 3600); r = r % 3600; let c = Math.floor(r / 60); r = r % 60; let l = r, u = ""; return n > 0 && (u = n + "年"), n <= 0 && i > 0 && (u = i + "月"), n <= 0 && i <= 0 && o > 0 && (u = o + "天"), n <= 0 && i <= 0 && o <= 0 && a > 0 && (u = a + "小时"), n <= 0 && i <= 0 && o <= 0 && a <= 0 && c > 0 && (u = c + "分钟"), n <= 0 && i <= 0 && o <= 0 && a <= 0 && c <= 0 && l > 0 && (u += l + "秒"), u += "前", u; } let p = {}, g = {}; function Mr(e) { return new Promise(async (t, r) => { let n = 0; for (; g[e] === "loading"; ) if (await new Promise((o) => setTimeout(o, 1e3)), n++, n > 30) return r("加载超时"); if (g[e] === "loaded") return t(!1); g[e] = "loading"; const i = document.createElement("link"); i.readyState ? i.onreadystatechange = () => { (i.readyState == "loaded" || i.readyState == "complete") && (i.onreadystatechange = null, g[e] = "loaded", t(!0)); } : (i.onload = () => { g[e] = "loaded", t(!0); }, i.onerror = (o) => { g[e] = "error", r(o); }), i.rel = "stylesheet", A(e, ".css") ? i.href = e + "?hash=" + window.systemInfo.version : i.href = e, document.getElementsByTagName("head").item(0).appendChild(i); }); } function Or(e, t) { let r = document.createElement("script"); r.type = "text/javascript", r.readyState ? r.onreadystatechange = () => { (r.readyState === "loaded" || r.readyState === "complete") && (r.onreadystatechange = null, t()); } : r.onload = () => { t(); }, r.src = e, document.body.appendChild(r); } function jr() { return !0; } function vr(e) { return new Promise(async (t, r) => { let n = 0; for (; p[e] === "loading"; ) if (await new Promise((o) => setTimeout(o, 1e3)), n++, n > 30) return r("加载超时"); if (p[e] === "loaded") return t(!1); p[e] = "loading"; const i = document.createElement("script"); i.type = "text/javascript", i.readyState ? i.onreadystatechange = () => { (i.readyState === "loaded" || i.readyState === "complete") && (i.onreadystatechange = null, p[e] = "loaded", t(!0)); } : (i.onload = () => { p[e] = "loaded", t(!0); }, i.onerror = (o) => { p[e] = "error", r(o); }), A(e, ".js") ? i.src = e + "?t=" + (/* @__PURE__ */ new Date()).getTime() : i.src = e, document.body.appendChild(i); }); } function Tr(e, t = 0) { return new Promise(async (r, n) => { e = $A.originUrl(e); let i = 0; for (; __load_iframe[e] === "loading"; ) if (await new Promise((a) => setTimeout(a, 1e3)), i++, i > 30) return n("加载超时"); if (__load_iframe[e] === "loaded") return r(!1); __load_iframe[e] = "loading"; const o = document.createElement("iframe"); o.style.display = "none", o.src = e, o.onload = () => { __load_iframe[e] = "loaded", r(!0), t > 0 && setTimeout(() => { document.body.removeChild(o), delete __load_iframe[e]; }, t); }, o.onerror = (a) => { __load_iframe[e] = "error", n(a); }, document.body.appendChild(o); }); } const V = function(e, t) { const r = { "y+": e.getFullYear().toString(), // 年 "M+": (e.getMonth() + 1).toString(), // 月份 "d+": e.getDate().toString(), // 日 "h+": e.getHours().toString(), // 小时 "m+": e.getMinutes().toString(), // 分 "s+": e.getSeconds().toString(), // 秒 "q+": Math.floor((e.getMonth() + 3) / 3), // 季度 S: e.getMilliseconds(), // 毫秒 "w+": e.getDay(), // 星期 "a+": e.getDay(), // 星期 W: e.getDay(), // 星期 GMT: e }; for (const n in r) { n == "W" && (r[n] == 0 && (r[n] = "日"), r[n] == 1 && (r[n] = "一"), r[n] == 2 && (r[n] = "二"), r[n] == 3 && (r[n] = "三"), r[n] == 4 && (r[n] = "四"), r[n] == 5 && (r[n] = "五"), r[n] == 6 && (r[n] = "六")); const i = new RegExp("(" + n + ")").exec(t); i && (t = t.replace(i[1], i[1].length === 1 ? r[n] : r[n].padStart(i[1].length, "0"))); } return t; }; class ee { constructor() { let t = /* @__PURE__ */ new Date(); return this.dateObj = t, this._formatType = "yyyy-MM-dd hh:mm:ss", this; } setYear(t = 0) { return t == 0 || t == "" || this.dateObj.setFullYear(this.dateObj.getFullYear() + t), this; } setMonth(t = 0) { return t == 0 || t == "" || this.dateObj.setMonth(this.dateObj.getMonth() + t), this; } setDay(t = 0) { return t == 0 || t == "" || this.dateObj.setDate(this.dateObj.getDate() + t), this; } /** * 设置时间戳 */ setTime(t) { return t = t || "", t != "" && (t.toString().length == 10 && (t = parseInt(t) * 1e3), this.dateObj.setTime(t)), this; } init(t) { return Object.prototype.toString.call(t) == "[object Number]" ? this.setTime(t) : (Object.prototype.toString.call(t) == "[object Date]" || Object.prototype.toString.call(t) == "[object String]") && (this.dateObj = new Date(t)), this; } format(t = "yyyy-MM-dd hh:mm:ss") { return t = t || "", t != "" && (this._formatType = t), this; } /** 返回结果为 string */ _valToString() { return V(this.dateObj, this._formatType); } /** 返回结果为 int */ _valToInt() { let t = this.dateObj.getTime(); return t = parseInt(t) / 1e3, t; } /** 返回结果为 object */ _valToObject() { let t = { year: this.dateObj.getFullYear(), //年 month: this.dateObj.getMonth() + 1, //月 day: this.dateObj.getDate(), //日 hour: this.dateObj.getHours(), //时 minute: this.dateObj.getMinutes(), //分 second: this.dateObj.getSeconds(), //秒 millisecond: this.dateObj.getMilliseconds(), //秒 quarter: Math.floor((this.dateObj.getMonth() + 3) / 3), // 季度 week: this.dateObj.getDay(), // 星期 week_cn: this.dateObj.getDay() // 中文星期 }; for (let r in t) { let n = t[r]; r != "y" && (r === "a" || r == "week" ? t[r] = n : r === "week_cn" ? (n == 0 && (t[r] = "日"), n == 1 && (t[r] = "一"), n == 2 && (t[r] = "二"), n == 3 && (t[r] = "三"), n == 4 && (t[r] = "四"), n == 5 && (t[r] = "五"), n == 6 && (t[r] = "六")) : t[r] = String(n < 10 ? "0" + n : n)); } return t; } _valToArray() { } value(t) { t = t || "string"; let r; return t == "string" ? r = this._valToString() : t == "object" ? r = this._valToObject() : t == "int" && (r = this._valToInt()), r; } } function _r() { return new ee(); } function Dr(e) { let t = 0; const r = (n) => { t = n, e.innerHTML = `count is ${t}`; }; e.addEventListener("click", () => r(++t)), r(0); } export { _r as LibsDate, ee as LibsDateClass, zt as amountRmoney, Qt as amountSplit3, qt as amountToChinese, Ht as amountToChinese2, te as arrayConcat, ne as arrayExtend, le as arrayFilterColumns, ue as arrayInArray, ae as arrayInText, ce as arrayInValue, ie as arrayLast, de as arrayLength, oe as arrayLetterSort, re as arrayMixin, se as arrayParseType, j as arrayToTree, fe as arrayUnique, he as array_contains, pe as array_unique, er as base64_to_blob, tr as base64_to_blobURL, Wt as baseDebounce, Gt as baseThrottle, G as blob_to_dataURL, Ar as cloneData, S as cloneDeep, Jt as colorRandomRgba, H as colorRgbaToHexify, Yt as colorToImgRbg, z as dataURL_to_blob, Vt as fileBytesToSize, Kt as fileCheckImg, Q as fileGetExt, Xt as fileImgCompress, rr as geoCalcDistance, He as hasDevice_internet, Se as isBank, be as isBrowserType, I as isBrowser_chrome, $ as isBrowser_edge, E as isBrowser_firefox, ye as isBrowser_ie, me as isBrowser_ie11, C as isBrowser_opera, Ae as isBrowser_qq, N as isBrowser_safari, xe as isBrowser_webkit, we as isBrowser_weibo, F as isBrowser_weixin, Oe as isCarNo, ht as isDateISO, dt as isDateformat, Qe as isDecimal, ze as isDecimal10, qe as isDevice_android, Le as isDevice_desktop, Ue as isDevice_ios, Ze as isDevice_ipad, ke as isDevice_iphone, Re as isDevice_mobile, je as isEmail, Ee as isEmoji, Fe as isEmpty, Be as isEmptyObject, Pe as isEmptyTrim, m as isHave, _e as isHtml, Tt as isIdCard, De as isIpv4, $e as isLandline, ve as isMobile, Ge as isNumCode, Ye as isNumInt, We as isNumNumber, Je as isNumNumber10, Ke as isNumPosi, Xe as isNumPosiID, Ve as isNumZS, Me as isPostal, Ne as isRequire, st as isStrCHS, it as isStrEN, ot as isStrEnNum, at as isStrLower, ut as isStrUpper, nt as isStrZENUM, et as isStrZh, tt as isStrZhEn, rt as isStrZhEnNum, Te as isTxQQ, ct as isTypeArray, lt as isTypeBoolean, ft as isTypeDate, wt as isTypeError, pt as isTypeFunction, vt as isTypeJson, jt as isTypeJsonString, gt as isTypeNull, bt as isTypeNumber, yt as isTypeObj, St as isTypePromise, Ot as isTypeRegExp, At as isTypeSet, mt as isTypeString, xt as isTypeSymbol, Mt as isTypeUndefined, Ce as isUrl, Ie as isUrlHttp, Mr as loadCssPromise, Tr as loadIframePromise, Or as loadScript, vr as loadScriptPromise, jr as loadScriptSync, nr as numberAccAdd, sr as numberAccDiv, or as numberAccMul, ir as numberAccSub, ar as numberRound, xr as objDeepClone, X as objDeepCopy, W as objectEquals, cr as objectHasKey, ur as objectSort, q as parseNumber, hr as randomNum, fr as randomString, lr as randomUUID, dr as randomWord, wr as secondsFormat, Dr as setupCounter, x as strExists, Ct as strFeed, kt as strFilterCN, Pt as strFormatMoney, Bt as strFourSeparate, Z as strGetMiddle, Lt as strHideBankNo, Rt as strHideMobile, Et as strLeftDelete, U as strLeftExists, It as strLenLimit, $t as strLength, Ft as strReplace, k as strRightDelete, A as strRightExists, Ut as strSplitChars, Zt as strSubString, Dt as strTrimAll, _t as strTrimSide, Nt as str_ends_with, Sr as timeInterval, ge as treeCalcLevel, _ as treeDeepInclude, D as treeRegDeepParents, v as treeToSubFlatten, T as treeToSupFlatten, yr as uriGetParam, br as urlAddParams, pr as urlGetDomain, J as urlGetParameterAll, mr as urlObjToQuery, gr as urlParameter, Y as urlQueryToObj, M as urlRemoveParameter };