@qingbing/ts-v3-utils
Version:
vite + ts 构建的基础函数库
1,641 lines • 57.5 kB
JavaScript
var P = Object.defineProperty;
var N = (i, a, t) => a in i ? P(i, a, { enumerable: !0, configurable: !0, writable: !0, value: t }) : i[a] = t;
var d = (i, a, t) => (N(i, typeof a != "symbol" ? a + "" : a, t), t);
import { Base64 as w } from "js-base64";
import F from "copy-to-clipboard";
import b from "js-cookie";
const ta = (i) => typeof i < "u" && i != null && typeof i.length == "number", T = (i) => "pageSize" in i && "pageNo" in i && "total" in i && "data" in i, U = (i) => "msg" in i && "code" in i && "data" in i, pa = (i) => U(i) && T(i.data), k = () => process.env.NODE_ENV === "development", V = (i) => typeof i > "u", B = (i) => i === null, u = (i) => typeof i == "string", na = (i) => typeof i == "boolean", ea = (i) => typeof i == "number", r = (i) => Object.prototype.toString.call(i) === "[object Array]", R = (i) => i !== null && typeof i == "object", _ = (i) => typeof i == "function", oa = (i) => typeof i == "symbol", ca = (i) => R(i) && _(i.then) && _(i.catch), m = (i) => Object.prototype.toString.call(i) === "[object Object]", D = (i) => V(i) || i === null ? !0 : u(i) ? i.trim() === "" : r(i) ? i.length === 0 : m(i) ? Object.keys(i).length === 0 : !1, J = (i, a) => i.indexOf(a) !== -1, K = () => {
var i = (/* @__PURE__ */ new Date()).getTime(), a = "xxxxxxxxxxxxxxxxyxxxxxxxxxxxxxxx".replace(/[xy]/g, function(t) {
var p = (i + Math.random() * 16) % 16 | 0;
return i = Math.floor(i / 16), (t == "x" ? p : p & 3 | 8).toString(16);
});
return a;
}, la = (i) => {
try {
if (u(i))
return JSON.parse(i);
} catch {
return i;
}
return m(i) || r(i), i;
}, s = (i) => {
if (r(i)) {
const a = [];
return i.forEach((t) => {
a.push(s(t));
}), a;
} else if (m(i)) {
const a = {};
for (const t in i)
Object.prototype.hasOwnProperty.call(i, t) && (a[t] = s(i[t]));
return a;
} else if (i instanceof Set) {
const a = /* @__PURE__ */ new Set();
return i.forEach((t) => {
a.add(s(t));
}), a;
} else if (i instanceof Map) {
const a = /* @__PURE__ */ new Map();
return i.forEach((t, p) => {
a.set(t, s(p));
}), a;
}
return i;
}, y = (i, ...a) => i instanceof Set ? (a.forEach((t) => {
(t instanceof Set || r(t)) && t.forEach((p) => {
i.has(p) || i.add(s(p));
});
}), i) : i instanceof Map ? (a.forEach((t) => {
if (t instanceof Map)
t.forEach((p, n) => {
const e = s(n);
i.has(n) ? i.set(p, y(i.get(p), e)) : i.set(p, e);
});
else if (m(t)) {
for (const p in t)
if (Object.prototype.hasOwnProperty.call(t, p)) {
const n = s(t[p]);
i.has(t[p]) ? i.set(p, y(i.get(p), n)) : i.set(p, n);
}
}
}), i) : r(i) ? (a.forEach((t) => {
(t instanceof Set || r(t)) && t.forEach((p) => {
J(i, p) || i.push(s(p));
});
}), i) : m(i) ? (a.forEach((t) => {
if (t instanceof Map)
t.forEach((p, n) => {
const e = s(n);
i[p] ? i[p] = y(i[p], e) : i[p] = e;
});
else if (m(t)) {
for (const p in t)
if (Object.prototype.hasOwnProperty.call(t, p)) {
const n = s(t[p]);
i[p] ? i[p] = y(i[p], n) : i[p] = n;
}
}
}), i) : a.length > 0 ? a[a.length - 1] : i, L = (i) => i.forEach && _(i.forEach);
class S {
/**
* 遍历集合
*
* @param kvs 需要循环遍历的对象, 主要用于 object, array, set, map
* @param callbackfn 返回 false 表示终止循环, 在 IEach 通道中无效
*/
static each(a, t) {
if (r(a)) {
for (let p = 0; p < a.length; p++)
if (t(a[p], p, a) == !1)
return;
} else if (m(a)) {
for (const p in a)
if (Object.prototype.hasOwnProperty.call(a, p) && t(a[p], p, a) == !1)
return;
} else if (L(a))
a.forEach((p, n) => {
t(p, n, a) != !1;
});
else
for (const p in a)
if (Object.prototype.hasOwnProperty.call(a, p) && t(a[p], p, a) == !1)
return;
}
/**
* 查找集合中字段的值
*
* @param kvs 需要循环遍历的对象, 可是 array, set, map
* @param key 查询的 key
* @param defaultVal 默认值
* @returns
*/
static value(a, t, p = null) {
let n = null;
return S.each(a, (e, o) => o === t ? (n = e, !1) : !0), D(n) ? p : n;
}
/**
* 查找所有匹配的对象, 并构建新的对象
*
* @param kvs 需要循环遍历的对象
* @param keys 查询的 keys
* @returns
*/
static values(a, t) {
const p = {};
return S.each(a, (n, e) => {
if (t.indexOf(e) === -1)
return !0;
p[e] = n;
}), p;
}
/**
* 从二维表中挑选两列,一列作为 key , 一列作为 value, 组成一个 IRecord
*
* @param items 类似 db 的二维数据表
* @param keyName
* @param valueName
* @param defaultVal
* @returns
*/
static column(a, t, p, n = null) {
const e = {};
return a.forEach((o) => {
if (!Object.prototype.hasOwnProperty.call(o, t))
return;
const l = o[t];
Object.prototype.hasOwnProperty.call(o, p) ? e[l] = o[p] : e[l] = n;
}), e;
}
}
class M {
/**
* 打印错误信息
* @param {String} msg 错误消息
*/
static error(a, ...t) {
if (k()) {
if (u(a))
throw new Error(a);
if (a instanceof Error)
throw new Error(a.message);
if (m(a) && a.message)
throw new Error(a.message);
console.log(a);
} else
console.log(a, ...t);
}
/**
* 打印消息
*/
static log(a, ...t) {
k() && console.log(a, ...t);
}
/**
* 打印提示消息
*/
static info(a, ...t) {
k() && console.info(a, ...t);
}
/**
* 打印警告信息
*/
static warn(a, ...t) {
k() && console.warn(a, ...t);
}
/**
* @returns 返回 console 对象
*/
static console() {
return console;
}
}
const H = {
123: "application/vnd.lotus-1-2-3",
"3dml": "text/vnd.in3d.3dml",
"3ds": "image/x-3ds",
"3g2": "video/3gpp2",
"3gp": "video/3gpp",
"7z": "application/x-7z-compressed",
aab: "application/x-authorware-bin",
aac: "audio/x-aac",
aam: "application/x-authorware-map",
aas: "application/x-authorware-seg",
abw: "application/x-abiword",
ac: "application/pkix-attr-cert",
acc: "application/vnd.americandynamics.acc",
ace: "application/x-ace-compressed",
acu: "application/vnd.acucobol",
acutc: "application/vnd.acucorp",
adp: "audio/adpcm",
aep: "application/vnd.audiograph",
afm: "application/x-font-type1",
afp: "application/vnd.ibm.modcap",
ahead: "application/vnd.ahead.space",
ai: "application/postscript",
aif: "audio/x-aiff",
aifc: "audio/x-aiff",
aiff: "audio/x-aiff",
air: "application/vnd.adobe.air-application-installer-package+zip",
ait: "application/vnd.dvb.ait",
ami: "application/vnd.amiga.ami",
apk: "application/vnd.android.package-archive",
apng: "image/apng",
appcache: "text/cache-manifest",
application: "application/x-ms-application",
apr: "application/vnd.lotus-approach",
arc: "application/x-freearc",
asc: "application/pgp-signature",
asf: "video/x-ms-asf",
asm: "text/x-asm",
aso: "application/vnd.accpac.simply.aso",
asx: "video/x-ms-asf",
atc: "application/vnd.acucorp",
atom: "application/atom+xml",
atomcat: "application/atomcat+xml",
atomsvc: "application/atomsvc+xml",
atx: "application/vnd.antix.game-component",
au: "audio/basic",
avi: "video/x-msvideo",
avif: "image/avif",
aw: "application/applixware",
azf: "application/vnd.airzip.filesecure.azf",
azs: "application/vnd.airzip.filesecure.azs",
azw: "application/vnd.amazon.ebook",
bat: "application/x-msdownload",
bcpio: "application/x-bcpio",
bdf: "application/x-font-bdf",
bdm: "application/vnd.syncml.dm+wbxml",
bed: "application/vnd.realvnc.bed",
bh2: "application/vnd.fujitsu.oasysprs",
bin: "application/octet-stream",
blb: "application/x-blorb",
blorb: "application/x-blorb",
bmi: "application/vnd.bmi",
bmp: "image/bmp",
book: "application/vnd.framemaker",
box: "application/vnd.previewsystems.box",
boz: "application/x-bzip2",
bpk: "application/octet-stream",
btif: "image/prs.btif",
bz: "application/x-bzip",
bz2: "application/x-bzip2",
c: "text/x-c",
c11amc: "application/vnd.cluetrust.cartomobile-config",
c11amz: "application/vnd.cluetrust.cartomobile-config-pkg",
c4d: "application/vnd.clonk.c4group",
c4f: "application/vnd.clonk.c4group",
c4g: "application/vnd.clonk.c4group",
c4p: "application/vnd.clonk.c4group",
c4u: "application/vnd.clonk.c4group",
cab: "application/vnd.ms-cab-compressed",
caf: "audio/x-caf",
cap: "application/vnd.tcpdump.pcap",
car: "application/vnd.curl.car",
cat: "application/vnd.ms-pki.seccat",
cb7: "application/x-cbr",
cba: "application/x-cbr",
cbr: "application/x-cbr",
cbt: "application/x-cbr",
cbz: "application/x-cbr",
cc: "text/x-c",
cct: "application/x-director",
ccxml: "application/ccxml+xml",
cdbcmsg: "application/vnd.contact.cmsg",
cdf: "application/x-netcdf",
cdkey: "application/vnd.mediastation.cdkey",
cdmia: "application/cdmi-capability",
cdmic: "application/cdmi-container",
cdmid: "application/cdmi-domain",
cdmio: "application/cdmi-object",
cdmiq: "application/cdmi-queue",
cdx: "chemical/x-cdx",
cdxml: "application/vnd.chemdraw+xml",
cdy: "application/vnd.cinderella",
cer: "application/pkix-cert",
cfs: "application/x-cfs-compressed",
cgm: "image/cgm",
chat: "application/x-chat",
chm: "application/vnd.ms-htmlhelp",
chrt: "application/vnd.kde.kchart",
cif: "chemical/x-cif",
cii: "application/vnd.anser-web-certificate-issue-initiation",
cil: "application/vnd.ms-artgalry",
cla: "application/vnd.claymore",
class: "application/java-vm",
clkk: "application/vnd.crick.clicker.keyboard",
clkp: "application/vnd.crick.clicker.palette",
clkt: "application/vnd.crick.clicker.template",
clkw: "application/vnd.crick.clicker.wordbank",
clkx: "application/vnd.crick.clicker",
clp: "application/x-msclip",
cmc: "application/vnd.cosmocaller",
cmdf: "chemical/x-cmdf",
cml: "chemical/x-cml",
cmp: "application/vnd.yellowriver-custom-menu",
cmx: "image/x-cmx",
cod: "application/vnd.rim.cod",
com: "application/x-msdownload",
conf: "text/plain",
cpio: "application/x-cpio",
cpp: "text/x-c",
cpt: "application/mac-compactpro",
crd: "application/x-mscardfile",
crl: "application/pkix-crl",
crt: "application/x-x509-ca-cert",
cryptonote: "application/vnd.rig.cryptonote",
csh: "application/x-csh",
csml: "chemical/x-csml",
csp: "application/vnd.commonspace",
css: "text/css",
cst: "application/x-director",
csv: "text/csv",
cu: "application/cu-seeme",
curl: "text/vnd.curl",
cww: "application/prs.cww",
cxt: "application/x-director",
cxx: "text/x-c",
dae: "model/vnd.collada+xml",
daf: "application/vnd.mobius.daf",
dart: "application/vnd.dart",
dataless: "application/vnd.fdsn.seed",
davmount: "application/davmount+xml",
dbk: "application/docbook+xml",
dcr: "application/x-director",
dcurl: "text/vnd.curl.dcurl",
dd2: "application/vnd.oma.dd2+xml",
ddd: "application/vnd.fujixerox.ddd",
deb: "application/x-debian-package",
def: "text/plain",
deploy: "application/octet-stream",
der: "application/x-x509-ca-cert",
dfac: "application/vnd.dreamfactory",
dgc: "application/x-dgc-compressed",
dic: "text/x-c",
dir: "application/x-director",
dis: "application/vnd.mobius.dis",
dist: "application/octet-stream",
distz: "application/octet-stream",
djv: "image/vnd.djvu",
djvu: "image/vnd.djvu",
dll: "application/x-msdownload",
dmg: "application/x-apple-diskimage",
dmp: "application/vnd.tcpdump.pcap",
dms: "application/octet-stream",
dna: "application/vnd.dna",
doc: "application/msword",
docm: "application/vnd.ms-word.document.macroenabled.12",
docx: "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
dot: "application/msword",
dotm: "application/vnd.ms-word.template.macroenabled.12",
dotx: "application/vnd.openxmlformats-officedocument.wordprocessingml.template",
dp: "application/vnd.osgi.dp",
dpg: "application/vnd.dpgraph",
dra: "audio/vnd.dra",
dsc: "text/prs.lines.tag",
dssc: "application/dssc+der",
dtb: "application/x-dtbook+xml",
dtd: "application/xml-dtd",
dts: "audio/vnd.dts",
dtshd: "audio/vnd.dts.hd",
dump: "application/octet-stream",
dvb: "video/vnd.dvb.file",
dvi: "application/x-dvi",
dwf: "model/vnd.dwf",
dwg: "image/vnd.dwg",
dxf: "image/vnd.dxf",
dxp: "application/vnd.spotfire.dxp",
dxr: "application/x-director",
ecelp4800: "audio/vnd.nuera.ecelp4800",
ecelp7470: "audio/vnd.nuera.ecelp7470",
ecelp9600: "audio/vnd.nuera.ecelp9600",
ecma: "application/ecmascript",
edm: "application/vnd.novadigm.edm",
edx: "application/vnd.novadigm.edx",
efif: "application/vnd.picsel",
ei6: "application/vnd.pg.osasli",
elc: "application/octet-stream",
emf: "application/x-msmetafile",
eml: "message/rfc822",
emma: "application/emma+xml",
emz: "application/x-msmetafile",
eol: "audio/vnd.digital-winds",
eot: "application/vnd.ms-fontobject",
eps: "application/postscript",
epub: "application/epub+zip",
es3: "application/vnd.eszigno3+xml",
esa: "application/vnd.osgi.subsystem",
esf: "application/vnd.epson.esf",
et3: "application/vnd.eszigno3+xml",
etx: "text/x-setext",
eva: "application/x-eva",
evy: "application/x-envoy",
exe: "application/x-msdownload",
exi: "application/exi",
ext: "application/vnd.novadigm.ext",
ez: "application/andrew-inset",
ez2: "application/vnd.ezpix-album",
ez3: "application/vnd.ezpix-package",
f: "text/x-fortran",
f4v: "video/x-f4v",
f77: "text/x-fortran",
f90: "text/x-fortran",
fbs: "image/vnd.fastbidsheet",
fcdt: "application/vnd.adobe.formscentral.fcdt",
fcs: "application/vnd.isac.fcs",
fdf: "application/vnd.fdf",
fe_launch: "application/vnd.denovo.fcselayout-link",
fg5: "application/vnd.fujitsu.oasysgp",
fgd: "application/x-director",
fh: "image/x-freehand",
fh4: "image/x-freehand",
fh5: "image/x-freehand",
fh7: "image/x-freehand",
fhc: "image/x-freehand",
fig: "application/x-xfig",
flac: "audio/x-flac",
fli: "video/x-fli",
flo: "application/vnd.micrografx.flo",
flv: "video/x-flv",
flw: "application/vnd.kde.kivio",
flx: "text/vnd.fmi.flexstor",
fly: "text/vnd.fly",
fm: "application/vnd.framemaker",
fnc: "application/vnd.frogans.fnc",
for: "text/x-fortran",
fpx: "image/vnd.fpx",
frame: "application/vnd.framemaker",
fsc: "application/vnd.fsc.weblaunch",
fst: "image/vnd.fst",
ftc: "application/vnd.fluxtime.clip",
fti: "application/vnd.anser-web-funds-transfer-initiation",
fvt: "video/vnd.fvt",
fxp: "application/vnd.adobe.fxp",
fxpl: "application/vnd.adobe.fxp",
fzs: "application/vnd.fuzzysheet",
g2w: "application/vnd.geoplan",
g3: "image/g3fax",
g3w: "application/vnd.geospace",
gac: "application/vnd.groove-account",
gam: "application/x-tads",
gbr: "application/rpki-ghostbusters",
gca: "application/x-gca-compressed",
gdl: "model/vnd.gdl",
geo: "application/vnd.dynageo",
gex: "application/vnd.geometry-explorer",
ggb: "application/vnd.geogebra.file",
ggs: "application/vnd.geogebra.slides",
ggt: "application/vnd.geogebra.tool",
ghf: "application/vnd.groove-help",
gif: "image/gif",
gim: "application/vnd.groove-identity-message",
gml: "application/gml+xml",
gmx: "application/vnd.gmx",
gnumeric: "application/x-gnumeric",
gph: "application/vnd.flographit",
gpx: "application/gpx+xml",
gqf: "application/vnd.grafeq",
gqs: "application/vnd.grafeq",
gram: "application/srgs",
gramps: "application/x-gramps-xml",
gre: "application/vnd.geometry-explorer",
grv: "application/vnd.groove-injector",
grxml: "application/srgs+xml",
gsf: "application/x-font-ghostscript",
gtar: "application/x-gtar",
gtm: "application/vnd.groove-tool-message",
gtw: "model/vnd.gtw",
gv: "text/vnd.graphviz",
gxf: "application/gxf",
gxt: "application/vnd.geonext",
h: "text/x-c",
h261: "video/h261",
h263: "video/h263",
h264: "video/h264",
hal: "application/vnd.hal+xml",
hbci: "application/vnd.hbci",
hdf: "application/x-hdf",
hh: "text/x-c",
hlp: "application/winhlp",
hpgl: "application/vnd.hp-hpgl",
hpid: "application/vnd.hp-hpid",
hps: "application/vnd.hp-hps",
hqx: "application/mac-binhex40",
htke: "application/vnd.kenameaapp",
htm: "text/html",
html: "text/html",
hvd: "application/vnd.yamaha.hv-dic",
hvp: "application/vnd.yamaha.hv-voice",
hvs: "application/vnd.yamaha.hv-script",
i2g: "application/vnd.intergeo",
icc: "application/vnd.iccprofile",
ice: "x-conference/x-cooltalk",
icm: "application/vnd.iccprofile",
ico: "image/x-icon",
ics: "text/calendar",
ief: "image/ief",
ifb: "text/calendar",
ifm: "application/vnd.shana.informed.formdata",
iges: "model/iges",
igl: "application/vnd.igloader",
igm: "application/vnd.insors.igm",
igs: "model/iges",
igx: "application/vnd.micrografx.igx",
iif: "application/vnd.shana.informed.interchange",
imp: "application/vnd.accpac.simply.imp",
ims: "application/vnd.ms-ims",
in: "text/plain",
ink: "application/inkml+xml",
inkml: "application/inkml+xml",
install: "application/x-install-instructions",
iota: "application/vnd.astraea-software.iota",
ipfix: "application/ipfix",
ipk: "application/vnd.shana.informed.package",
irm: "application/vnd.ibm.rights-management",
irp: "application/vnd.irepository.package+xml",
iso: "application/x-iso9660-image",
itp: "application/vnd.shana.informed.formtemplate",
ivp: "application/vnd.immervision-ivp",
ivu: "application/vnd.immervision-ivu",
jad: "text/vnd.sun.j2me.app-descriptor",
jam: "application/vnd.jam",
jar: "application/java-archive",
java: "text/x-java-source",
jfif: "image/jpeg",
jisp: "application/vnd.jisp",
jlt: "application/vnd.hp-jlyt",
jnlp: "application/x-java-jnlp-file",
joda: "application/vnd.joost.joda-archive",
jpe: "image/jpeg",
jpeg: "image/jpeg",
jpg: "image/jpeg",
jpgm: "video/jpm",
jpgv: "video/jpeg",
jpm: "video/jpm",
js: "text/javascript",
json: "application/json",
jsonml: "application/jsonml+json",
kar: "audio/midi",
karbon: "application/vnd.kde.karbon",
kfo: "application/vnd.kde.kformula",
kia: "application/vnd.kidspiration",
kml: "application/vnd.google-earth.kml+xml",
kmz: "application/vnd.google-earth.kmz",
kne: "application/vnd.kinar",
knp: "application/vnd.kinar",
kon: "application/vnd.kde.kontour",
kpr: "application/vnd.kde.kpresenter",
kpt: "application/vnd.kde.kpresenter",
kpxx: "application/vnd.ds-keypoint",
ksp: "application/vnd.kde.kspread",
ktr: "application/vnd.kahootz",
ktx: "image/ktx",
ktz: "application/vnd.kahootz",
kwd: "application/vnd.kde.kword",
kwt: "application/vnd.kde.kword",
lasxml: "application/vnd.las.las+xml",
latex: "application/x-latex",
lbd: "application/vnd.llamagraphics.life-balance.desktop",
lbe: "application/vnd.llamagraphics.life-balance.exchange+xml",
les: "application/vnd.hhe.lesson-player",
lha: "application/x-lzh-compressed",
link66: "application/vnd.route66.link66+xml",
list: "text/plain",
list3820: "application/vnd.ibm.modcap",
listafp: "application/vnd.ibm.modcap",
lnk: "application/x-ms-shortcut",
log: "text/plain",
lostxml: "application/lost+xml",
lrf: "application/octet-stream",
lrm: "application/vnd.ms-lrm",
ltf: "application/vnd.frogans.ltf",
lvp: "audio/vnd.lucent.voice",
lwp: "application/vnd.lotus-wordpro",
lzh: "application/x-lzh-compressed",
m13: "application/x-msmediaview",
m14: "application/x-msmediaview",
m1v: "video/mpeg",
m21: "application/mp21",
m2a: "audio/mpeg",
m2v: "video/mpeg",
m3a: "audio/mpeg",
m3u: "audio/x-mpegurl",
m3u8: "application/vnd.apple.mpegurl",
m4a: "audio/mp4",
m4u: "video/vnd.mpegurl",
m4v: "video/x-m4v",
ma: "application/mathematica",
mads: "application/mads+xml",
mag: "application/vnd.ecowin.chart",
maker: "application/vnd.framemaker",
man: "text/troff",
mar: "application/octet-stream",
mathml: "application/mathml+xml",
mb: "application/mathematica",
mbk: "application/vnd.mobius.mbk",
mbox: "application/mbox",
mc1: "application/vnd.medcalcdata",
mcd: "application/vnd.mcd",
mcurl: "text/vnd.curl.mcurl",
mdb: "application/x-msaccess",
mdi: "image/vnd.ms-modi",
me: "text/troff",
mesh: "model/mesh",
meta4: "application/metalink4+xml",
metalink: "application/metalink+xml",
mets: "application/mets+xml",
mfm: "application/vnd.mfmp",
mft: "application/rpki-manifest",
mgp: "application/vnd.osgeo.mapguide.package",
mgz: "application/vnd.proteus.magazine",
mid: "audio/midi",
midi: "audio/midi",
mie: "application/x-mie",
mif: "application/vnd.mif",
mime: "message/rfc822",
mj2: "video/mj2",
mjp2: "video/mj2",
mjs: "text/javascript",
mk3d: "video/x-matroska",
mka: "audio/x-matroska",
mks: "video/x-matroska",
mkv: "video/x-matroska",
mlp: "application/vnd.dolby.mlp",
mmd: "application/vnd.chipnuts.karaoke-mmd",
mmf: "application/vnd.smaf",
mmr: "image/vnd.fujixerox.edmics-mmr",
mng: "video/x-mng",
mny: "application/x-msmoney",
mobi: "application/x-mobipocket-ebook",
mods: "application/mods+xml",
mov: "video/quicktime",
movie: "video/x-sgi-movie",
mp2: "audio/mpeg",
mp21: "application/mp21",
mp2a: "audio/mpeg",
mp3: "audio/mpeg",
mp4: "video/mp4",
mp4a: "audio/mp4",
mp4s: "application/mp4",
mp4v: "video/mp4",
mpc: "application/vnd.mophun.certificate",
mpe: "video/mpeg",
mpeg: "video/mpeg",
mpg: "video/mpeg",
mpg4: "video/mp4",
mpga: "audio/mpeg",
mpkg: "application/vnd.apple.installer+xml",
mpm: "application/vnd.blueice.multipass",
mpn: "application/vnd.mophun.application",
mpp: "application/vnd.ms-project",
mpt: "application/vnd.ms-project",
mpy: "application/vnd.ibm.minipay",
mqy: "application/vnd.mobius.mqy",
mrc: "application/marc",
mrcx: "application/marcxml+xml",
ms: "text/troff",
mscml: "application/mediaservercontrol+xml",
mseed: "application/vnd.fdsn.mseed",
mseq: "application/vnd.mseq",
msf: "application/vnd.epson.msf",
msh: "model/mesh",
msi: "application/x-msdownload",
msl: "application/vnd.mobius.msl",
msty: "application/vnd.muvee.style",
mts: "model/vnd.mts",
mus: "application/vnd.musician",
musicxml: "application/vnd.recordare.musicxml+xml",
mvb: "application/x-msmediaview",
mwf: "application/vnd.mfer",
mxf: "application/mxf",
mxl: "application/vnd.recordare.musicxml",
mxml: "application/xv+xml",
mxs: "application/vnd.triscape.mxs",
mxu: "video/vnd.mpegurl",
"n-gage": "application/vnd.nokia.n-gage.symbian.install",
n3: "text/n3",
nb: "application/mathematica",
nbp: "application/vnd.wolfram.player",
nc: "application/x-netcdf",
ncx: "application/x-dtbncx+xml",
nfo: "text/x-nfo",
ngdat: "application/vnd.nokia.n-gage.data",
nitf: "application/vnd.nitf",
nlu: "application/vnd.neurolanguage.nlu",
nml: "application/vnd.enliven",
nnd: "application/vnd.noblenet-directory",
nns: "application/vnd.noblenet-sealer",
nnw: "application/vnd.noblenet-web",
npx: "image/vnd.net-fpx",
nsc: "application/x-conference",
nsf: "application/vnd.lotus-notes",
ntf: "application/vnd.nitf",
nzb: "application/x-nzb",
oa2: "application/vnd.fujitsu.oasys2",
oa3: "application/vnd.fujitsu.oasys3",
oas: "application/vnd.fujitsu.oasys",
obd: "application/x-msbinder",
obj: "application/x-tgif",
oda: "application/oda",
odb: "application/vnd.oasis.opendocument.database",
odc: "application/vnd.oasis.opendocument.chart",
odf: "application/vnd.oasis.opendocument.formula",
odft: "application/vnd.oasis.opendocument.formula-template",
odg: "application/vnd.oasis.opendocument.graphics",
odi: "application/vnd.oasis.opendocument.image",
odm: "application/vnd.oasis.opendocument.text-master",
odp: "application/vnd.oasis.opendocument.presentation",
ods: "application/vnd.oasis.opendocument.spreadsheet",
odt: "application/vnd.oasis.opendocument.text",
oga: "audio/ogg",
ogg: "audio/ogg",
ogv: "video/ogg",
ogx: "application/ogg",
omdoc: "application/omdoc+xml",
onepkg: "application/onenote",
onetmp: "application/onenote",
onetoc: "application/onenote",
onetoc2: "application/onenote",
opf: "application/oebps-package+xml",
opml: "text/x-opml",
oprc: "application/vnd.palm",
opus: "audio/ogg",
org: "application/vnd.lotus-organizer",
osf: "application/vnd.yamaha.openscoreformat",
osfpvg: "application/vnd.yamaha.openscoreformat.osfpvg+xml",
otc: "application/vnd.oasis.opendocument.chart-template",
otf: "font/otf",
otg: "application/vnd.oasis.opendocument.graphics-template",
oth: "application/vnd.oasis.opendocument.text-web",
oti: "application/vnd.oasis.opendocument.image-template",
otp: "application/vnd.oasis.opendocument.presentation-template",
ots: "application/vnd.oasis.opendocument.spreadsheet-template",
ott: "application/vnd.oasis.opendocument.text-template",
oxps: "application/oxps",
oxt: "application/vnd.openofficeorg.extension",
p: "text/x-pascal",
p10: "application/pkcs10",
p12: "application/x-pkcs12",
p7b: "application/x-pkcs7-certificates",
p7c: "application/pkcs7-mime",
p7m: "application/pkcs7-mime",
p7r: "application/x-pkcs7-certreqresp",
p7s: "application/pkcs7-signature",
p8: "application/pkcs8",
pas: "text/x-pascal",
paw: "application/vnd.pawaafile",
pbd: "application/vnd.powerbuilder6",
pbm: "image/x-portable-bitmap",
pcap: "application/vnd.tcpdump.pcap",
pcf: "application/x-font-pcf",
pcl: "application/vnd.hp-pcl",
pclxl: "application/vnd.hp-pclxl",
pct: "image/x-pict",
pcurl: "application/vnd.curl.pcurl",
pcx: "image/x-pcx",
pdb: "application/vnd.palm",
pdf: "application/pdf",
pfa: "application/x-font-type1",
pfb: "application/x-font-type1",
pfm: "application/x-font-type1",
pfr: "application/font-tdpfr",
pfx: "application/x-pkcs12",
pgm: "image/x-portable-graymap",
pgn: "application/x-chess-pgn",
pgp: "application/pgp-encrypted",
pic: "image/x-pict",
pjp: "image/jpeg",
pjpeg: "image/jpeg",
pkg: "application/octet-stream",
pki: "application/pkixcmp",
pkipath: "application/pkix-pkipath",
plb: "application/vnd.3gpp.pic-bw-large",
plc: "application/vnd.mobius.plc",
plf: "application/vnd.pocketlearn",
pls: "application/pls+xml",
pml: "application/vnd.ctc-posml",
png: "image/png",
pnm: "image/x-portable-anymap",
portpkg: "application/vnd.macports.portpkg",
pot: "application/vnd.ms-powerpoint",
potm: "application/vnd.ms-powerpoint.template.macroenabled.12",
potx: "application/vnd.openxmlformats-officedocument.presentationml.template",
ppam: "application/vnd.ms-powerpoint.addin.macroenabled.12",
ppd: "application/vnd.cups-ppd",
ppm: "image/x-portable-pixmap",
pps: "application/vnd.ms-powerpoint",
ppsm: "application/vnd.ms-powerpoint.slideshow.macroenabled.12",
ppsx: "application/vnd.openxmlformats-officedocument.presentationml.slideshow",
ppt: "application/vnd.ms-powerpoint",
pptm: "application/vnd.ms-powerpoint.presentation.macroenabled.12",
pptx: "application/vnd.openxmlformats-officedocument.presentationml.presentation",
pqa: "application/vnd.palm",
prc: "application/x-mobipocket-ebook",
pre: "application/vnd.lotus-freelance",
prf: "application/pics-rules",
ps: "application/postscript",
psb: "application/vnd.3gpp.pic-bw-small",
psd: "image/vnd.adobe.photoshop",
psf: "application/x-font-linux-psf",
pskcxml: "application/pskc+xml",
ptid: "application/vnd.pvi.ptid1",
pub: "application/x-mspublisher",
pvb: "application/vnd.3gpp.pic-bw-var",
pwn: "application/vnd.3m.post-it-notes",
pya: "audio/vnd.ms-playready.media.pya",
pyv: "video/vnd.ms-playready.media.pyv",
qam: "application/vnd.epson.quickanime",
qbo: "application/vnd.intu.qbo",
qfx: "application/vnd.intu.qfx",
qps: "application/vnd.publishare-delta-tree",
qt: "video/quicktime",
qwd: "application/vnd.quark.quarkxpress",
qwt: "application/vnd.quark.quarkxpress",
qxb: "application/vnd.quark.quarkxpress",
qxd: "application/vnd.quark.quarkxpress",
qxl: "application/vnd.quark.quarkxpress",
qxt: "application/vnd.quark.quarkxpress",
ra: "audio/x-pn-realaudio",
ram: "audio/x-pn-realaudio",
rar: "application/x-rar-compressed",
ras: "image/x-cmu-raster",
rcprofile: "application/vnd.ipunplugged.rcprofile",
rdf: "application/rdf+xml",
rdz: "application/vnd.data-vision.rdz",
rep: "application/vnd.businessobjects",
res: "application/x-dtbresource+xml",
rgb: "image/x-rgb",
rif: "application/reginfo+xml",
rip: "audio/vnd.rip",
ris: "application/x-research-info-systems",
rl: "application/resource-lists+xml",
rlc: "image/vnd.fujixerox.edmics-rlc",
rld: "application/resource-lists-diff+xml",
rm: "application/vnd.rn-realmedia",
rmi: "audio/midi",
rmp: "audio/x-pn-realaudio-plugin",
rms: "application/vnd.jcp.javame.midlet-rms",
rmvb: "application/vnd.rn-realmedia-vbr",
rnc: "application/relax-ng-compact-syntax",
roa: "application/rpki-roa",
roff: "text/troff",
rp9: "application/vnd.cloanto.rp9",
rpss: "application/vnd.nokia.radio-presets",
rpst: "application/vnd.nokia.radio-preset",
rq: "application/sparql-query",
rs: "application/rls-services+xml",
rsd: "application/rsd+xml",
rss: "application/rss+xml",
rtf: "application/rtf",
rtx: "text/richtext",
s: "text/x-asm",
s3m: "audio/s3m",
saf: "application/vnd.yamaha.smaf-audio",
sbml: "application/sbml+xml",
sc: "application/vnd.ibm.secure-container",
scd: "application/x-msschedule",
scm: "application/vnd.lotus-screencam",
scq: "application/scvp-cv-request",
scs: "application/scvp-cv-response",
scurl: "text/vnd.curl.scurl",
sda: "application/vnd.stardivision.draw",
sdc: "application/vnd.stardivision.calc",
sdd: "application/vnd.stardivision.impress",
sdkd: "application/vnd.solent.sdkm+xml",
sdkm: "application/vnd.solent.sdkm+xml",
sdp: "application/sdp",
sdw: "application/vnd.stardivision.writer",
see: "application/vnd.seemail",
seed: "application/vnd.fdsn.seed",
sema: "application/vnd.sema",
semd: "application/vnd.semd",
semf: "application/vnd.semf",
ser: "application/java-serialized-object",
setpay: "application/set-payment-initiation",
setreg: "application/set-registration-initiation",
"sfd-hdstx": "application/vnd.hydrostatix.sof-data",
sfs: "application/vnd.spotfire.sfs",
sfv: "text/x-sfv",
sgi: "image/sgi",
sgl: "application/vnd.stardivision.writer-global",
sgm: "text/sgml",
sgml: "text/sgml",
sh: "application/x-sh",
shar: "application/x-shar",
shf: "application/shf+xml",
sid: "image/x-mrsid-image",
sig: "application/pgp-signature",
sil: "audio/silk",
silo: "model/mesh",
sis: "application/vnd.symbian.install",
sisx: "application/vnd.symbian.install",
sit: "application/x-stuffit",
sitx: "application/x-stuffitx",
skd: "application/vnd.koan",
skm: "application/vnd.koan",
skp: "application/vnd.koan",
skt: "application/vnd.koan",
sldm: "application/vnd.ms-powerpoint.slide.macroenabled.12",
sldx: "application/vnd.openxmlformats-officedocument.presentationml.slide",
slt: "application/vnd.epson.salt",
sm: "application/vnd.stepmania.stepchart",
smf: "application/vnd.stardivision.math",
smi: "application/smil+xml",
smil: "application/smil+xml",
smv: "video/x-smv",
smzip: "application/vnd.stepmania.package",
snd: "audio/basic",
snf: "application/x-font-snf",
so: "application/octet-stream",
spc: "application/x-pkcs7-certificates",
spf: "application/vnd.yamaha.smaf-phrase",
spl: "application/x-futuresplash",
spot: "text/vnd.in3d.spot",
spp: "application/scvp-vp-response",
spq: "application/scvp-vp-request",
spx: "audio/ogg",
sql: "application/x-sql",
src: "application/x-wais-source",
srt: "application/x-subrip",
sru: "application/sru+xml",
srx: "application/sparql-results+xml",
ssdl: "application/ssdl+xml",
sse: "application/vnd.kodak-descriptor",
ssf: "application/vnd.epson.ssf",
ssml: "application/ssml+xml",
st: "application/vnd.sailingtracker.track",
stc: "application/vnd.sun.xml.calc.template",
std: "application/vnd.sun.xml.draw.template",
stf: "application/vnd.wt.stf",
sti: "application/vnd.sun.xml.impress.template",
stk: "application/hyperstudio",
stl: "application/vnd.ms-pki.stl",
str: "application/vnd.pg.format",
stw: "application/vnd.sun.xml.writer.template",
sub: "text/vnd.dvb.subtitle",
sus: "application/vnd.sus-calendar",
susp: "application/vnd.sus-calendar",
sv4cpio: "application/x-sv4cpio",
sv4crc: "application/x-sv4crc",
svc: "application/vnd.dvb.service",
svd: "application/vnd.svd",
svg: "image/svg+xml",
svgz: "image/svg+xml",
swa: "application/x-director",
swf: "application/x-shockwave-flash",
swi: "application/vnd.aristanetworks.swi",
sxc: "application/vnd.sun.xml.calc",
sxd: "application/vnd.sun.xml.draw",
sxg: "application/vnd.sun.xml.writer.global",
sxi: "application/vnd.sun.xml.impress",
sxm: "application/vnd.sun.xml.math",
sxw: "application/vnd.sun.xml.writer",
t: "text/troff",
t3: "application/x-t3vm-image",
taglet: "application/vnd.mynfc",
tao: "application/vnd.tao.intent-module-archive",
tar: "application/x-tar",
tcap: "application/vnd.3gpp2.tcap",
tcl: "application/x-tcl",
teacher: "application/vnd.smart.teacher",
tei: "application/tei+xml",
teicorpus: "application/tei+xml",
tex: "application/x-tex",
texi: "application/x-texinfo",
texinfo: "application/x-texinfo",
text: "text/plain",
tfi: "application/thraud+xml",
tfm: "application/x-tex-tfm",
tga: "image/x-tga",
thmx: "application/vnd.ms-officetheme",
tif: "image/tiff",
tiff: "image/tiff",
tmo: "application/vnd.tmobile-livetv",
torrent: "application/x-bittorrent",
tpl: "application/vnd.groove-tool-template",
tpt: "application/vnd.trid.tpt",
tr: "text/troff",
tra: "application/vnd.trueapp",
trm: "application/x-msterminal",
tsd: "application/timestamped-data",
tsv: "text/tab-separated-values",
ttc: "font/collection",
ttf: "font/ttf",
ttl: "text/turtle",
twd: "application/vnd.simtech-mindmapper",
twds: "application/vnd.simtech-mindmapper",
txd: "application/vnd.genomatix.tuxedo",
txf: "application/vnd.mobius.txf",
txt: "text/plain",
u32: "application/x-authorware-bin",
udeb: "application/x-debian-package",
ufd: "application/vnd.ufdl",
ufdl: "application/vnd.ufdl",
ulx: "application/x-glulx",
umj: "application/vnd.umajin",
unityweb: "application/vnd.unity",
uoml: "application/vnd.uoml+xml",
uri: "text/uri-list",
uris: "text/uri-list",
urls: "text/uri-list",
ustar: "application/x-ustar",
utz: "application/vnd.uiq.theme",
uu: "text/x-uuencode",
uva: "audio/vnd.dece.audio",
uvd: "application/vnd.dece.data",
uvf: "application/vnd.dece.data",
uvg: "image/vnd.dece.graphic",
uvh: "video/vnd.dece.hd",
uvi: "image/vnd.dece.graphic",
uvm: "video/vnd.dece.mobile",
uvp: "video/vnd.dece.pd",
uvs: "video/vnd.dece.sd",
uvt: "application/vnd.dece.ttml+xml",
uvu: "video/vnd.uvvu.mp4",
uvv: "video/vnd.dece.video",
uvva: "audio/vnd.dece.audio",
uvvd: "application/vnd.dece.data",
uvvf: "application/vnd.dece.data",
uvvg: "image/vnd.dece.graphic",
uvvh: "video/vnd.dece.hd",
uvvi: "image/vnd.dece.graphic",
uvvm: "video/vnd.dece.mobile",
uvvp: "video/vnd.dece.pd",
uvvs: "video/vnd.dece.sd",
uvvt: "application/vnd.dece.ttml+xml",
uvvu: "video/vnd.uvvu.mp4",
uvvv: "video/vnd.dece.video",
uvvx: "application/vnd.dece.unspecified",
uvvz: "application/vnd.dece.zip",
uvx: "application/vnd.dece.unspecified",
uvz: "application/vnd.dece.zip",
vcard: "text/vcard",
vcd: "application/x-cdlink",
vcf: "text/x-vcard",
vcg: "application/vnd.groove-vcard",
vcs: "text/x-vcalendar",
vcx: "application/vnd.vcx",
vis: "application/vnd.visionary",
viv: "video/vnd.vivo",
vob: "video/x-ms-vob",
vor: "application/vnd.stardivision.writer",
vox: "application/x-authorware-bin",
vrml: "model/vrml",
vsd: "application/vnd.visio",
vsf: "application/vnd.vsf",
vss: "application/vnd.visio",
vst: "application/vnd.visio",
vsw: "application/vnd.visio",
vtu: "model/vnd.vtu",
vxml: "application/voicexml+xml",
w3d: "application/x-director",
wad: "application/x-doom",
wasm: "application/wasm",
wav: "audio/x-wav",
wax: "audio/x-ms-wax",
wbmp: "image/vnd.wap.wbmp",
wbs: "application/vnd.criticaltools.wbs+xml",
wbxml: "application/vnd.wap.wbxml",
wcm: "application/vnd.ms-works",
wdb: "application/vnd.ms-works",
wdp: "image/vnd.ms-photo",
weba: "audio/webm",
webm: "video/webm",
webp: "image/webp",
wg: "application/vnd.pmi.widget",
wgt: "application/widget",
wks: "application/vnd.ms-works",
wm: "video/x-ms-wm",
wma: "audio/x-ms-wma",
wmd: "application/x-ms-wmd",
wmf: "application/x-msmetafile",
wml: "text/vnd.wap.wml",
wmlc: "application/vnd.wap.wmlc",
wmls: "text/vnd.wap.wmlscript",
wmlsc: "application/vnd.wap.wmlscriptc",
wmv: "video/x-ms-wmv",
wmx: "video/x-ms-wmx",
wmz: "application/x-msmetafile",
woff: "font/woff",
woff2: "font/woff2",
wpd: "application/vnd.wordperfect",
wpl: "application/vnd.ms-wpl",
wps: "application/vnd.ms-works",
wqd: "application/vnd.wqd",
wri: "application/x-mswrite",
wrl: "model/vrml",
wsdl: "application/wsdl+xml",
wspolicy: "application/wspolicy+xml",
wtb: "application/vnd.webturbo",
wvx: "video/x-ms-wvx",
x32: "application/x-authorware-bin",
x3d: "model/x3d+xml",
x3db: "model/x3d+binary",
x3dbz: "model/x3d+binary",
x3dv: "model/x3d+vrml",
x3dvz: "model/x3d+vrml",
x3dz: "model/x3d+xml",
xaml: "application/xaml+xml",
xap: "application/x-silverlight-app",
xar: "application/vnd.xara",
xbap: "application/x-ms-xbap",
xbd: "application/vnd.fujixerox.docuworks.binder",
xbm: "image/x-xbitmap",
xdf: "application/xcap-diff+xml",
xdm: "application/vnd.syncml.dm+xml",
xdp: "application/vnd.adobe.xdp+xml",
xdssc: "application/dssc+xml",
xdw: "application/vnd.fujixerox.docuworks",
xenc: "application/xenc+xml",
xer: "application/patch-ops-error+xml",
xfdf: "application/vnd.adobe.xfdf",
xfdl: "application/vnd.xfdl",
xht: "application/xhtml+xml",
xhtml: "application/xhtml+xml",
xhvml: "application/xv+xml",
xif: "image/vnd.xiff",
xla: "application/vnd.ms-excel",
xlam: "application/vnd.ms-excel.addin.macroenabled.12",
xlc: "application/vnd.ms-excel",
xlf: "application/x-xliff+xml",
xlm: "application/vnd.ms-excel",
xls: "application/vnd.ms-excel",
xlsb: "application/vnd.ms-excel.sheet.binary.macroenabled.12",
xlsm: "application/vnd.ms-excel.sheet.macroenabled.12",
xlsx: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
xlt: "application/vnd.ms-excel",
xltm: "application/vnd.ms-excel.template.macroenabled.12",
xltx: "application/vnd.openxmlformats-officedocument.spreadsheetml.template",
xlw: "application/vnd.ms-excel",
xm: "audio/xm",
xml: "application/xml",
xo: "application/vnd.olpc-sugar",
xop: "application/xop+xml",
xpi: "application/x-xpinstall",
xpl: "application/xproc+xml",
xpm: "image/x-xpixmap",
xpr: "application/vnd.is-xpr",
xps: "application/vnd.ms-xpsdocument",
xpw: "application/vnd.intercon.formnet",
xpx: "application/vnd.intercon.formnet",
xsl: "application/xml",
xslt: "application/xslt+xml",
xsm: "application/vnd.syncml+xml",
xspf: "application/xspf+xml",
xul: "application/vnd.mozilla.xul+xml",
xvm: "application/xv+xml",
xvml: "application/xv+xml",
xwd: "image/x-xwindowdump",
xyz: "chemical/x-xyz",
xz: "application/x-xz",
yang: "application/yang",
yin: "application/yin+xml",
z1: "application/x-zmachine",
z2: "application/x-zmachine",
z3: "application/x-zmachine",
z4: "application/x-zmachine",
z5: "application/x-zmachine",
z6: "application/x-zmachine",
z7: "application/x-zmachine",
z8: "application/x-zmachine",
zaz: "application/vnd.zzazz.deck+xml",
zip: "application/zip",
zir: "application/vnd.zul",
zirz: "application/vnd.zul",
zmm: "application/vnd.handheld-entertainment+xml"
};
class $ {
constructor(a) {
d(this, "_charset", "utf-8");
d(this, "_blobText");
d(this, "_mine", "text/plain");
d(this, "_extension", null);
d(this, "_filename", null);
a && (this._charset = a);
}
/**
* 获取下载实例
* @param charset string 下载文件字符集
* @returns Download
*/
static instance(a) {
return new $(a);
}
/**
* 设置下载文件字符集
* @returns Download
*/
setCharset(a) {
return this._charset = a, this;
}
/**
* 设置下载的 blob 内容
* @param text
* @returns Download
*/
setBlobText(a) {
return this._blobText = a, this;
}
/**
* 设置下载文件后缀
* @param extension
* @returns Download
*/
setExtension(a) {
if (B(a))
return this._extension = null, this._mine = "text/plain", this;
if (a = a.trim(), a.length === 0)
return this._extension = null, this._mine = "text/plain", this;
const p = a.indexOf(".");
return p === -1 ? this._extension = a : p === 0 ? this._extension = a.substring(1) : M.error("文件名后缀必须以.开头"), this._mine = H[this._extension] ?? "text/plain", this;
}
/**
* 设置下载文件名
* @param extension
* @returns Download
*/
setFilename(a) {
if (a = a.trim(), a.indexOf(".") === -1)
return this._filename = a, this;
if (a.indexOf(".") === 0)
return this._filename = null, this.setExtension(a), this;
const t = a.lastIndexOf(".");
return this._filename = a.substring(0, t), this.setExtension(a.substring(t)), this;
}
/**
* 手动创建文件名
* @returns Download
*/
generateFilename() {
return this._filename = K(), this;
}
/**
* @returns string 获取保存文件名
*/
getFilename() {
!u(this._filename) && u(!this._extension) && this.generateFilename();
let a = "";
return this._filename && (a += this._filename), this._extension && (a += "." + this._extension), a;
}
/**
* 文件下载
*/
download() {
const a = new Blob([this._blobText], {
type: `${this._mine};charset=${this._charset}`
}), t = document.createElement("a"), p = window.URL.createObjectURL(a);
t.href = p, t.download = this.getFilename(), document.body.appendChild(t), t.click(), document.body.removeChild(t), window.URL.revokeObjectURL(p);
}
}
class sa {
/**
* base64 编码
* @param str any 需要编码的字符
* @returns string 编码后字符
*/
static encode(a, t) {
return w.encode(a, t);
}
/**
* base64 URI 编码
* @param str any 需要编码的字符
* @returns string 编码后字符
*/
static encodeURI(a) {
return w.encodeURI(a);
}
/**
* base64 URL 编码
* @param str any 需要编码的字符
* @returns string 编码后字符
*/
static encodeURL(a) {
return w.encodeURL(a);
}
/**
* base64 解码
* @param data string
* @returns any
*/
static decode(a) {
return w.decode(a);
}
}
class z {
/**
* json 编码
* @param str any 需要编码的字符
* @returns string 编码后字符
*/
static encode(a) {
return JSON.stringify(a);
}
/**
* json 解码
* @param data string
* @returns any
*/
static decode(a) {
return JSON.parse(a);
}
}
const da = (...i) => {
const a = /%[sdj%]/g;
for (var t = i.length, p = Array(t), n = 0; n < t; n++)
p[n] = i[n];
var e = 1, o = p[0], l = p.length;
if (typeof o == "function")
return o.apply(null, p.slice(1));
if (typeof o == "string") {
for (var f = String(o).replace(a, (h) => {
if (h === "%%")
return "%";
if (e >= l)
return h;
switch (h) {
case "%s":
return String(p[e++]);
case "%d":
return Number(p[e++]);
case "%j":
try {
return JSON.stringify(p[e++]);
} catch {
return "[Circular]";
}
default:
return h;
}
}), g = p[e]; e < l; g = p[++e])
f += " " + g;
return f;
}
return o;
}, Y = (i, a, t = "{", p = "}") => {
if (D(i))
return "";
if (!R(a))
return i;
for (const n in a)
if (Object.prototype.hasOwnProperty.call(a, n)) {
const e = t + n + p;
if (i.indexOf(e) === -1)
continue;
const o = a[n], l = u(o) ? o : JSON.stringify(o);
i = i.replace(new RegExp(e, "g"), l);
}
return i;
}, ra = (i, a = 0, t = "fixed") => {
i == null ? i = 0 : isNaN(i) && (i = parseFloat(i));
const p = Math.pow(10, a);
switch (t) {
case "up":
return Math.ceil(i * p) / p;
case "down":
return Math.floor(i * p) / p;
case "auto":
return Math.round(i * p) / p;
default:
return parseFloat(i.toFixed(a));
}
}, ma = (i, a = 0, t = "fixed") => {
i == null ? i = 0 : isNaN(i) && (i = parseFloat(i));
const p = Math.pow(10, a);
let n;
switch (t) {
case "up":
n = Math.ceil(i * p) / p;
case "down":
n = Math.floor(i * p) / p;
case "auto":
n = Math.round(i * p) / p;
default:
n = parseFloat(i.toFixed(a));
}
return Intl.NumberFormat("en-Us", {
maximumFractionDigits: a,
minimumFractionDigits: a
}).format(n);
}, C = (i) => {
try {
switch (typeof i) {
case "number":
return new Date(i);
case "string":
return new Date(i);
case "object":
return i;
default:
return /* @__PURE__ */ new Date();
}
} catch {
return /* @__PURE__ */ new Date();
}
}, xa = (i, a = "Y-M-D H:I:S") => {
try {
const t = C(i), p = t.getFullYear(), n = t.getMonth() + 1, e = t.getDate(), o = t.getHours(), l = t.getMinutes(), f = t.getSeconds(), g = t.getMilliseconds(), h = {
Y: `${p}`,
y: String(p).substring(2),
M: n > 10 ? `${n}` : `0${n}`,
m: `${n}`,
D: e > 10 ? `${e}` : `0${e}`,
d: `${e}`,
H: o > 10 ? `${o}` : `0${o}`,
h: `${o}`,
I: l > 10 ? `${l}` : `0${l}`,
i: `${l}`,
S: f > 10 ? `${f}` : `0${f}`,
s: `${f}`,
A: g > 10 ? `${g}` : `00${g}`,
a: `${g}`
};
return Y(a, h, "", "");
} catch {
return "";
}
}, va = (i, a = 300) => {
setTimeout(() => {
i();
}, a);
}, ua = (i, a = 1e3, t = !0, p) => {
if (t && i(), a === void 0) {
p && p();
return;
}
const n = setInterval(() => {
i() || (clearInterval(n), p && p());
}, a);
};
class Q {
/**
* string 转变为 number
* @param s 需要转换的字符串
* @returns
*/
static StoI(a) {
return parseInt(a);
}
/**
* number 转变为 string
* @param i number 需要转换的数字
* @returns
*/
static ItoS(a) {
return a.toString();
}
/**
* object 转换成 array
* @param obj 需要转换的 object
* @returns
*/
static OtoA(a) {
const t = [];
for (const p in a)
Object.prototype.hasOwnProperty.call(a, p) && t.push(a[p]);
return t;
}
/**
* array 转变为 map
* @param a 需要转换的数组
* @returns
*/
static AtoO(a) {
const t = {};
return a.forEach((p, n) => {
t[n] = p;
}), t;
}
}
function fa(i, a = ",") {
return r(i) ? i : i.split(a || ",").map((t) => t.trim());
}
const j = (i, a = 0, t = 0) => {
if (V(i))
return Math.random();
if (a == i)
return a;
const p = a + (i - a) * Math.random();
if (t <= 0)
return Math.floor(p);
const n = Math.pow(10, t);
return Math.floor(p * n) / n;
}, ga = (i, a = 7) => {
if (i < 1)
return "";
const t = {
1: "0123456789",
// 数字
2: "abcdedghijklmnopqrstuvwxyz",
// 小写字母
4: "ABCDEFGHIJKLMNOPQRSTUVWXYZ",
// 大写字母
8: "!@#$%^&*-=,.?:;",
// 特殊符号
16: "0123456789ABCDEF"
// 随机 16 进制数时使用
};
let p = "";
for (const o in t) {
const l = parseInt(o);
l === (a & l) && (p += t[o]);
}
const n = p.length;
if (n === 0)
return "";
let e = "";
for (let o = 0; o < i; o++)
e += p[j(n)];
return e;
}, ha = (i = !1) => {
const a = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F"], t = ["#"];
for (let p = 0; p < 6; p++)
t.push(a[j(16, 0)]);
return i && (t.push(a[j(16, 0)]), t.push(a[j(16, 0)])), t.join("");
}, ba = async (i) => {
const a = await Promise.all(Q.OtoA(i)), t = {};
let p = 0;
for (const n in i)
Object.prototype.hasOwnProperty.call(i, n) && (t[n] = a[p++]);
return t;
}, wa = (i, a) => F(i, a), G = (i) => {
if (u(i))
return i;
if (m(i) || r(i)) {
const a = [];
for (const t in i)
if (Object.prototype.hasOwnProperty.call(i, t)) {
const p = i[t];
if (u(i)) {
a.push(p);
continue;
}
G(p) != "" && a.push(p);
}
return a.join(",");
}
return "";
}, ka = {
yesNo: {
false: "否",
true: "是"
},
forbidden: {
false: "启用",
true: "禁用"
},
enabled: {
false: "禁用",
true: "启用"
},
opened: {
false: "关闭",
true: "开启"
},
deleted: {
false: "正常",
true: "已删除"
},
sex: {
1: "秘",
2: "男",
3: "女"
}
}, ya = {
// 是否选择
yesNo: [
{ value: !1, label: "否" },
{ value: !0, label: "是" }
],
// 禁用状态
forbidden: [
{ value: !1, label: "启用" },
{ value: !0, label: "禁用" }
],
// 开启状态
enabled: [
{ value: !1, label: "禁用" },
{ value: !0, label: "启用" }
],
// 开关状态
opened: [
{ value: !1, label: "关闭" },
{ value: !0, label: "开启" }
],
// 删除状态
deleted: [
{ value: !1, label: "正常" },
{ value: !0, label: "已删除" }
],
// 性别
sex: [
{ value: "1", label: "秘" },
{ value: "2", label: "男" },
{ value: "3", label: "女" }
]
};
class A {
constructor() {
d(this, "_isRunning", !1);
}
static instance() {
return new A();
}
/**
* 事件开始执行函数
* @param cb 回调函数
* @param runningTipMessage 执行中的提示信息
*/
start(a) {
this._isRunning || (this._isRunning = !0, a());
}
/**
* @returns boolean 是否正在执行
*/
isRunning() {
return this._isRunning;
}
/**
* 事件结束必须执行
* @param cb 回调函数
*/
over(a) {
this._isRunning && (this._isRunn