mine-h5-ui
Version:
一款轻量级、模块化基于 Vue3.x 的 H5 前端 UI 组件库 👍
146 lines (145 loc) • 4.23 kB
JavaScript
/*!
* mine-h5-ui v2.15.0
* Copyright (c) 2025 biaov
* @license MIT
*/
const l = (t, n) => Object.prototype.toString.call(n).slice(8, -1).toLowerCase() === t.toLowerCase(), p = (t) => {
const n = l("Object", t) ? {} : l("Array", t) ? [] : l("Date", t) ? new t.constructor(+t) : l("RegExp", t) || l("Error", t) ? new t.constructor(t) : t;
return (l("Object", t) || l("Array", t)) && Object.keys(t).forEach((e) => {
n[e] = p(t[e]);
}), n;
}, y = (t) => {
if (!l("number", t)) throw new Error(`${t} is not number`);
return t % 4 === 0 && t % 100 !== 0 || t % 400 === 0;
}, f = (t = /* @__PURE__ */ new Date()) => {
if (t.trim() === "") throw new Error(`${t} is not null`);
const n = l("number", t) && String(t).length < 13 ? t * 1e3 : t;
l("string", t) && n.replace(/-/g, "/");
const e = new Date(n), s = (b) => b < 10 ? `0${b}` : String(b), i = ["日", "一", "二", "三", "四", "五", "六"], [o, r, c, u, d, h, m] = [
String(e.getFullYear()),
s(e.getMonth() + 1),
s(e.getDate()),
`星期${i[e.getDay()]}`,
s(e.getHours()),
s(e.getMinutes()),
s(e.getSeconds())
], D = `${o}-${r}-${c}`, a = `${d}:${h}:${m}`, w = `${D} ${a}`;
return { Y: o, M: r, D: c, w: u, h: d, m: h, s: m, date: D, time: a, datetime: w };
}, S = (t, n = "hh:mm:ss") => {
if (!l("number", t)) throw new Error(`${t} is not number`);
if (!"DD:hh:mm:ss:ms".includes(n)) throw new Error(`${n} form error`);
const e = ~~(t / (1e3 * 60 * 60 * 24));
let s = ~~(t / (1e3 * 60 * 60) % 24), i = ~~(t / (1e3 * 60) % 60), o = ~~(t / 1e3 % 60), r = ~~(t % 1e3);
const c = {}, u = (d) => d < 10 ? `0${d}` : String(d);
if (n.includes("DD") ? c.DD = u(e) : s += e * 24, n.includes("hh") ? c.hh = u(s) : i += s * 60, n.includes("mm") ? c.mm = u(i) : o += i * 60, n.includes("ss") ? c.ss = u(o) : r += o * 1e3, n.includes("ms")) {
const d = n.includes("mm") ? u(r) : t;
c.ms = +String(d).slice(0, 2);
}
return c;
}, E = (t, n = 1e3) => {
let e = null;
return (s) => {
!e && (e = setTimeout(() => {
t(s), e = null;
}, n));
};
}, T = (t, n = 300) => {
let e;
return (s) => {
e !== void 0 && clearTimeout(e), e = setTimeout(() => {
t(s);
}, n);
};
}, M = (t, n = 5e3) => {
let e = null;
const s = { value: !1 }, i = new Proxy(s, {
get(o, r) {
return o[r];
},
set(o, r, c) {
return o[r] = c, c ? e = setTimeout(() => {
o[r] = !1;
}, n) : clearInterval(e), !0;
}
});
return (o) => {
!i.value && t(o, (r) => {
i.value = r;
});
};
}, $ = (t, n, e) => t + new Array(Math.abs(n - e) + 1).join("0"), j = (t, n) => {
var a, w;
if (!l("number", t) || !l("number", n)) throw new Error(`${t} or ${n} is not number`);
const e = String(t).split("."), s = String(n).split("."), i = ((a = e[1]) == null ? void 0 : a.length) ?? 0, o = ((w = s[1]) == null ? void 0 : w.length) ?? 0;
i < o && (e[1] = $(e[1], i, o)), i > o && (s[1] = $(s[1], i, o));
const r = +e.join(""), c = +s.join(""), u = Math.max(i, o);
return { add: () => (r + c) / 10 ** u, subtract: () => (r - c) / 10 ** u, multiply: () => r * c / 10 ** (u * 2), divide: () => r / c };
}, v = () => +/* @__PURE__ */ new Date() + String.prototype.slice.call(Math.random(), 2, 7), x = (t = 500) => new Promise((n) => {
setTimeout(() => {
n(!0);
}, t);
}), L = {
/**
* 变量类型判断
*/
IsType: l,
/**
* 深拷贝变量 - 递归算法(recursive algorithm)
*/
DeepCopyRA: p,
/**
* 判断是否是闰年
*/
IsLeapyear: y,
/**
* 时间转换
*/
FormatTime: f,
/**
* 倒计时
*/
CountDown: S,
/**
* 节流
*/
Throttle: E,
/**
* 防抖
*/
Debounce: T,
/**
* 锁定
*/
Locked: M,
/**
* 加 0 补位
*/
AddZero: $,
/**
* 加减乘除运算
*/
Calculation: j,
/**
* 生成随机数
*/
GenerateRandom: v,
/**
* 延迟器
*/
Retarder: x
};
export {
$ as AddZero,
j as Calculation,
S as CountDown,
T as Debounce,
p as DeepCopyRA,
f as FormatTime,
v as GenerateRandom,
y as IsLeapyear,
l as IsType,
M as Locked,
x as Retarder,
E as Throttle,
L as default
};