@qy_better_lib/core 0.0.3 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/@qy_better_lib/core.min.js +1 -1
- package/lib/index.js +34 -27
- package/lib/utils/file.d.ts +17 -0
- package/lib/utils/is.d.ts +10 -0
- package/lib/utils/is.js +23 -9
- package/lib/utils/number.d.ts +12 -0
- package/lib/utils/number.js +11 -2
- package/package.json +50 -54
- package/tsconfig.json +0 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(r,f){typeof exports=="object"&&typeof module<"u"?f(exports):typeof define=="function"&&define.amd?define(["exports"],f):(r=typeof globalThis<"u"?globalThis:r||self,f(r["@qy_better_lib/core"]={}))})(this,function(r){"use strict";function f(){return Math.floor(Math.random()*1e4)}function
|
|
1
|
+
(function(r,f){typeof exports=="object"&&typeof module<"u"?f(exports):typeof define=="function"&&define.amd?define(["exports"],f):(r=typeof globalThis<"u"?globalThis:r||self,f(r["@qy_better_lib/core"]={}))})(this,function(r){"use strict";function f(){return Math.floor(Math.random()*1e4)}function C(e){return Math.floor(Math.random()*Math.floor(e))}function E(){const e=p;return`${e()}${e()}-${e()}-${e()}-${e()}-${e()}${e()}${e()}`}function p(){return Math.floor((1+Math.random())*65536).toString(16).substring(1)}function M(e){return e===void 0}function N(e){return Object.prototype.toString.call(e)==="[object Array]"}function g(e){return typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"}function v(e){return Object.prototype.toString.call(e)==="[object Date]"}function F(e){return!e&&e!==0||N(e)&&e.length===0||g(e)&&!Object.keys(e).length}function h(e){return typeof Element>"u"?!1:e instanceof Element}const b=typeof window<"u",S=e=>typeof e=="number",I=e=>typeof e=="string",A=e=>I(e)?!Number.isNaN(Number(e)):!1;function w(e){return/^1[3-9]\d{9}$/.test(e)}function _(e){return/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test(e)}function B(e){return/^(6553[0-5]|655[0-2]\d|65[0-4]\d{2}|6[0-4]\d{3}|[1-5]\d{4}|[1-9]\d{0,3}|0)$/.test(e)}function H(e,t="key",n="children"){const o={},i=(c,s)=>{for(let u=0;u<c.length;u++){const l=c[u],d=l[t];if(!o[d]){o[d]=l,s&&(o[d].parent=o[s]);const m=l[n];m&&m.length>0&&i(m,l[t])}}};return i(e),o}function P(e){return e?Object.prototype.toString.call(1)!=="[object Number]"?`${e}`:`${e}`.replace(/(\d{1,3})(?=(\d{3})+(?:$|\.))/g,"$1,"):"0"}function R(e,t){return S(e)?Number(t?Number(e).toFixed(t):e):Number.NaN}function J(e,t){return S(e)?Number(e.toFixed(t)):Number.NaN}function L(){const e=localStorage.getItem("token");if(!e)return;const t=JSON.parse(e);if(t!==null)if(t.expirse!=null&&t.expirse<new Date().getTime())localStorage.removeItem("token");else return t.value;return null}function U(e,t){!t&&(t=7*24*60*60*1e3)||(t=t*1e3);const n={value:e,expirse:new Date().getTime()+t};localStorage.setItem("token",JSON.stringify(n))}function j(){localStorage.removeItem("token")}function q(e,t,n="local"){const o=n=="local"?localStorage:sessionStorage;t!=null&&o.setItem(e,JSON.stringify(t))}function V(e,t="local"){let o=(t=="local"?localStorage:sessionStorage).getItem(e);return o&&JSON.parse(o||"")}function Y(e,t="local"){(t=="local"?localStorage:sessionStorage).removeItem(e)}function z(e="local"){(e=="local"?localStorage:sessionStorage).clear()}function O(e){const t=Object.prototype.toString;if(!e||typeof e!="object")return e;if(e.nodeType&&"cloneNode"in e)return e.cloneNode(!0);if(t.call(e)==="[object Date]")return new Date(e.getTime());if(t.call(e)==="[object RegExp]"){const o=[];return e.global&&o.push("g"),e.multiline&&o.push("m"),e.ignoreCase&&o.push("i"),new RegExp(e.source,o.join(""))}if(t.call(e)==="[object FormData]"){const o=new FormData;for(const[i,c]of e.entries())o.append(i,c);return o}const n=Array.isArray(e)?[]:e.constructor?new e.constructor:{};for(const o in e)n[o]=O(e[o]);return n}function T(...e){let t=e.length,n=e[0];g(n)||(n={});for(let o=1;o<t;o++){let i=e[o];if(g(i))for(let c in i)c==="__proto__"||n===i[c]||(g(i[c])?n[c]=T(n[c],i[c]):n[c]=i[c])}return n}function k(e,t){return!e||e.tagName==="BODY"?null:e.classList.contains(t)?e:k(e.parentNode,t)}const a=new Map;let D;b&&(document.addEventListener("mousedown",e=>D=e),document.addEventListener("mouseup",e=>{for(const t of a.values())for(const{documentHandler:n}of t)n(e,D)}));function $(e,t){let n=[];return Array.isArray(t.arg)?n=t.arg:h(t.arg)&&n.push(t.arg),function(o,i){const c=t.instance.popperRef,s=o.target,u=i==null?void 0:i.target,l=!t||!t.instance,d=!s||!u,m=e.contains(s)||e.contains(u),K=e===s,Q=n.length&&n.some(y=>y==null?void 0:y.contains(s))||n.length&&n.includes(u),W=c&&(c.contains(s)||c.contains(u));l||d||m||K||Q||W||t.value(o,i)}}const G={beforeMount(e,t){var n;a.has(e)||a.set(e,[]),(n=a.get(e))==null||n.push({documentHandler:$(e,t),bindingFn:t.value})},updated(e,t){a.has(e)||a.set(e,[]);const n=a.get(e),o=n==null?void 0:n.findIndex(c=>c.bindingFn===t.oldValue),i={documentHandler:$(e,t),bindingFn:t.value};o&&o>=0?n==null||n.splice(o,1,i):n==null||n.push(i)},unmounted(e){a.delete(e)}};r.ClickOutside=G,r.clearStorage=z,r.deepAssign=T,r.deepClone=O,r.generateId=f,r.generateString=p,r.getParentByClass=k,r.getRandomInt=C,r.getStorage=V,r.getToken=L,r.guiID=E,r.isArray=N,r.isClient=b,r.isDate=v,r.isElement=h,r.isEmpty=F,r.isIp=_,r.isMobile=w,r.isNumber=S,r.isObject=g,r.isPort=B,r.isString=I,r.isStringNumber=A,r.isUndefined=M,r.removeStorage=Y,r.removeToken=j,r.setStorage=q,r.setToken=U,r.thousandSeparator=P,r.toFixed=J,r.toNumber=R,r.treeFlat=H,Object.defineProperty(r,Symbol.toStringTag,{value:"Module"})});
|
package/lib/index.js
CHANGED
|
@@ -1,35 +1,42 @@
|
|
|
1
|
-
import { generateId as r, generateString as o, getRandomInt as
|
|
2
|
-
import { isArray as
|
|
3
|
-
import { treeFlat as
|
|
4
|
-
import { thousandSeparator as
|
|
5
|
-
import { clearStorage as
|
|
6
|
-
import { deepAssign as
|
|
7
|
-
import { getParentByClass as
|
|
8
|
-
import { default as
|
|
1
|
+
import { generateId as r, generateString as o, getRandomInt as i, guiID as s } from "./utils/random.js";
|
|
2
|
+
import { isArray as n, isClient as m, isDate as g, isElement as p, isEmpty as d, isIp as f, isMobile as l, isNumber as x, isObject as S, isPort as u, isString as b, isStringNumber as k, isUndefined as C } from "./utils/is.js";
|
|
3
|
+
import { treeFlat as c } from "./utils/tree.js";
|
|
4
|
+
import { thousandSeparator as N, toFixed as T, toNumber as v } from "./utils/number.js";
|
|
5
|
+
import { clearStorage as D, getStorage as E, getToken as F, removeStorage as O, removeToken as P, setStorage as h, setToken as j } from "./utils/storage.js";
|
|
6
|
+
import { deepAssign as M, deepClone as R } from "./utils/object.js";
|
|
7
|
+
import { getParentByClass as q } from "./utils/dom.js";
|
|
8
|
+
import { default as z } from "./directives/click-outside.js";
|
|
9
9
|
export {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
z as ClickOutside,
|
|
11
|
+
D as clearStorage,
|
|
12
|
+
M as deepAssign,
|
|
13
|
+
R as deepClone,
|
|
14
14
|
r as generateId,
|
|
15
15
|
o as generateString,
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
q as getParentByClass,
|
|
17
|
+
i as getRandomInt,
|
|
18
|
+
E as getStorage,
|
|
19
|
+
F as getToken,
|
|
20
20
|
s as guiID,
|
|
21
|
-
|
|
21
|
+
n as isArray,
|
|
22
22
|
m as isClient,
|
|
23
23
|
g as isDate,
|
|
24
24
|
p as isElement,
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
l as
|
|
28
|
-
x as
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
C as
|
|
34
|
-
|
|
25
|
+
d as isEmpty,
|
|
26
|
+
f as isIp,
|
|
27
|
+
l as isMobile,
|
|
28
|
+
x as isNumber,
|
|
29
|
+
S as isObject,
|
|
30
|
+
u as isPort,
|
|
31
|
+
b as isString,
|
|
32
|
+
k as isStringNumber,
|
|
33
|
+
C as isUndefined,
|
|
34
|
+
O as removeStorage,
|
|
35
|
+
P as removeToken,
|
|
36
|
+
h as setStorage,
|
|
37
|
+
j as setToken,
|
|
38
|
+
N as thousandSeparator,
|
|
39
|
+
T as toFixed,
|
|
40
|
+
v as toNumber,
|
|
41
|
+
c as treeFlat
|
|
35
42
|
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 下载文件
|
|
3
|
+
* @param filePath 文件路径
|
|
4
|
+
*/
|
|
5
|
+
export declare function downLoadFile({ path, name }: {
|
|
6
|
+
path: string;
|
|
7
|
+
name?: string;
|
|
8
|
+
}): void;
|
|
9
|
+
/**批量下载文件 */
|
|
10
|
+
export declare function downLoadFiles(fileList: any[]): void;
|
|
11
|
+
/**
|
|
12
|
+
* 将file转换成base64
|
|
13
|
+
* @param file
|
|
14
|
+
* @param callback
|
|
15
|
+
* @returns
|
|
16
|
+
*/
|
|
17
|
+
export declare function toBase64(file: Blob): Promise<string | undefined>;
|
package/lib/utils/is.d.ts
CHANGED
|
@@ -40,3 +40,13 @@ export declare function isElement(e: unknown): e is Element;
|
|
|
40
40
|
export declare const isClient: boolean;
|
|
41
41
|
/**是否未数值 */
|
|
42
42
|
export declare const isNumber: (val: any) => boolean;
|
|
43
|
+
/**是否为字符串 */
|
|
44
|
+
export declare const isString: (val: any) => boolean;
|
|
45
|
+
/**是否为字符串数值 */
|
|
46
|
+
export declare const isStringNumber: (val: string) => boolean;
|
|
47
|
+
/**是否为手机号(国内手机号) */
|
|
48
|
+
export declare function isMobile(str: string): boolean;
|
|
49
|
+
/**是否为有效IP地址 */
|
|
50
|
+
export declare function isIp(val: string): boolean;
|
|
51
|
+
/**是否为有效端口 */
|
|
52
|
+
export declare function isPort(val: string): boolean;
|
package/lib/utils/is.js
CHANGED
|
@@ -7,23 +7,37 @@ function e(t) {
|
|
|
7
7
|
function n(t) {
|
|
8
8
|
return typeof t == "object" && Object.prototype.toString.call(t) === "[object Object]";
|
|
9
9
|
}
|
|
10
|
-
function
|
|
10
|
+
function c(t) {
|
|
11
11
|
return Object.prototype.toString.call(t) === "[object Date]";
|
|
12
12
|
}
|
|
13
|
-
function
|
|
13
|
+
function u(t) {
|
|
14
14
|
return !t && t !== 0 || e(t) && t.length === 0 || n(t) && !Object.keys(t).length;
|
|
15
15
|
}
|
|
16
|
-
function
|
|
16
|
+
function s(t) {
|
|
17
17
|
return typeof Element > "u" ? !1 : t instanceof Element;
|
|
18
18
|
}
|
|
19
|
-
const
|
|
19
|
+
const f = typeof window < "u", b = (t) => typeof t == "number", r = (t) => typeof t == "string", d = (t) => r(t) ? !Number.isNaN(Number(t)) : !1;
|
|
20
|
+
function p(t) {
|
|
21
|
+
return /^1[3-9]\d{9}$/.test(t);
|
|
22
|
+
}
|
|
23
|
+
function y(t) {
|
|
24
|
+
return /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test(t);
|
|
25
|
+
}
|
|
26
|
+
function g(t) {
|
|
27
|
+
return /^(6553[0-5]|655[0-2]\d|65[0-4]\d{2}|6[0-4]\d{3}|[1-5]\d{4}|[1-9]\d{0,3}|0)$/.test(t);
|
|
28
|
+
}
|
|
20
29
|
export {
|
|
21
30
|
e as isArray,
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
31
|
+
f as isClient,
|
|
32
|
+
c as isDate,
|
|
33
|
+
s as isElement,
|
|
34
|
+
u as isEmpty,
|
|
35
|
+
y as isIp,
|
|
36
|
+
p as isMobile,
|
|
37
|
+
b as isNumber,
|
|
27
38
|
n as isObject,
|
|
39
|
+
g as isPort,
|
|
40
|
+
r as isString,
|
|
41
|
+
d as isStringNumber,
|
|
28
42
|
o as isUndefined
|
|
29
43
|
};
|
package/lib/utils/number.d.ts
CHANGED
|
@@ -4,3 +4,15 @@
|
|
|
4
4
|
* @returns
|
|
5
5
|
*/
|
|
6
6
|
export declare function thousandSeparator(num: number | any): string;
|
|
7
|
+
/**
|
|
8
|
+
* 转换成数值
|
|
9
|
+
* @param num 源
|
|
10
|
+
* @param fixed 保留小数点,默认不设置
|
|
11
|
+
*/
|
|
12
|
+
export declare function toNumber(num: string | undefined, fixed?: number): number | undefined;
|
|
13
|
+
/**
|
|
14
|
+
* 保留小数点
|
|
15
|
+
* @param num 数字
|
|
16
|
+
* @param fixed 小数点
|
|
17
|
+
*/
|
|
18
|
+
export declare function toFixed(num: number, fixed: number): number;
|
package/lib/utils/number.js
CHANGED
|
@@ -1,6 +1,15 @@
|
|
|
1
|
-
|
|
1
|
+
import { isNumber as t } from "./is.js";
|
|
2
|
+
function u(r) {
|
|
2
3
|
return r ? Object.prototype.toString.call(1) !== "[object Number]" ? `${r}` : `${r}`.replace(/(\d{1,3})(?=(\d{3})+(?:$|\.))/g, "$1,") : "0";
|
|
3
4
|
}
|
|
5
|
+
function i(r, e) {
|
|
6
|
+
return t(r) ? Number(e ? Number(r).toFixed(e) : r) : Number.NaN;
|
|
7
|
+
}
|
|
8
|
+
function N(r, e) {
|
|
9
|
+
return t(r) ? Number(r.toFixed(e)) : Number.NaN;
|
|
10
|
+
}
|
|
4
11
|
export {
|
|
5
|
-
|
|
12
|
+
u as thousandSeparator,
|
|
13
|
+
N as toFixed,
|
|
14
|
+
i as toNumber
|
|
6
15
|
};
|
package/package.json
CHANGED
|
@@ -1,54 +1,50 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@qy_better_lib/core",
|
|
3
|
-
"private": false,
|
|
4
|
-
"version": "0.0.
|
|
5
|
-
"description": "qy better lib core",
|
|
6
|
-
"author": "luhuiming",
|
|
7
|
-
"license": "ISC",
|
|
8
|
-
"scripts": {
|
|
9
|
-
"build:lib": "vite build --config vite.lib.config.ts",
|
|
10
|
-
"build:dist-min": "vite build --config vite.dist.min.config.ts",
|
|
11
|
-
"build": "yarn build:lib && yarn build:dist-min"
|
|
12
|
-
},
|
|
13
|
-
"main": "lib/index.js",
|
|
14
|
-
"module": "lib/index.js",
|
|
15
|
-
"types": "lib/index.d.ts",
|
|
16
|
-
"typesVersions": {
|
|
17
|
-
"*": {
|
|
18
|
-
"lib/index.js": [
|
|
19
|
-
"lib/index.d.ts"
|
|
20
|
-
],
|
|
21
|
-
"@qy-better-lib/core": [
|
|
22
|
-
"lib/index.d.ts"
|
|
23
|
-
],
|
|
24
|
-
"*": [
|
|
25
|
-
"*",
|
|
26
|
-
"dist/*",
|
|
27
|
-
"lib/*",
|
|
28
|
-
"lib/*.d.ts",
|
|
29
|
-
"lib/*/index.d.ts"
|
|
30
|
-
]
|
|
31
|
-
}
|
|
32
|
-
},
|
|
33
|
-
"exports": {
|
|
34
|
-
".": {
|
|
35
|
-
"import": "./lib/index.js"
|
|
36
|
-
},
|
|
37
|
-
"./directives": "./lib/directives/index.js",
|
|
38
|
-
"./directives/*": "./lib/directives/*/*.js",
|
|
39
|
-
"./utils": "./lib/utils/index.js",
|
|
40
|
-
"./utils/*": "./lib/utils/*.js"
|
|
41
|
-
},
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
"vite-plugin-dts": "^3.9.1",
|
|
52
|
-
"vue": "^3.4.31"
|
|
53
|
-
}
|
|
54
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@qy_better_lib/core",
|
|
3
|
+
"private": false,
|
|
4
|
+
"version": "0.0.4",
|
|
5
|
+
"description": "qy better lib core",
|
|
6
|
+
"author": "luhuiming",
|
|
7
|
+
"license": "ISC",
|
|
8
|
+
"scripts": {
|
|
9
|
+
"build:lib": "vite build --config vite.lib.config.ts",
|
|
10
|
+
"build:dist-min": "vite build --config vite.dist.min.config.ts",
|
|
11
|
+
"build": "yarn build:lib && yarn build:dist-min"
|
|
12
|
+
},
|
|
13
|
+
"main": "lib/index.js",
|
|
14
|
+
"module": "lib/index.js",
|
|
15
|
+
"types": "lib/index.d.ts",
|
|
16
|
+
"typesVersions": {
|
|
17
|
+
"*": {
|
|
18
|
+
"lib/index.js": [
|
|
19
|
+
"lib/index.d.ts"
|
|
20
|
+
],
|
|
21
|
+
"@qy-better-lib/core": [
|
|
22
|
+
"lib/index.d.ts"
|
|
23
|
+
],
|
|
24
|
+
"*": [
|
|
25
|
+
"*",
|
|
26
|
+
"dist/*",
|
|
27
|
+
"lib/*",
|
|
28
|
+
"lib/*.d.ts",
|
|
29
|
+
"lib/*/index.d.ts"
|
|
30
|
+
]
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
"exports": {
|
|
34
|
+
".": {
|
|
35
|
+
"import": "./lib/index.js"
|
|
36
|
+
},
|
|
37
|
+
"./directives": "./lib/directives/index.js",
|
|
38
|
+
"./directives/*": "./lib/directives/*/*.js",
|
|
39
|
+
"./utils": "./lib/utils/index.js",
|
|
40
|
+
"./utils/*": "./lib/utils/*.js"
|
|
41
|
+
},
|
|
42
|
+
"devDependencies": {
|
|
43
|
+
"@types/node": "^20.14.9",
|
|
44
|
+
"@vitejs/plugin-vue": "^5.0.5",
|
|
45
|
+
"element-plus": "^2.7.6",
|
|
46
|
+
"vite": "^5.3.2",
|
|
47
|
+
"vite-plugin-dts": "^3.9.1",
|
|
48
|
+
"vue": "^3.4.31"
|
|
49
|
+
}
|
|
50
|
+
}
|