@10yun/cv-js-utils
Version:
常用 js-utils 工具类库
1,302 lines (1,301 loc) • 40 kB
JavaScript
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
};