lgutils 1.3.27 → 1.3.29
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/index.d.ts +5 -1
- package/lib/lgutils.cjs.js +20 -3
- package/lib/lgutils.cjs.prod.js +1 -1
- package/lib/lgutils.esm-bundler.js +19 -4
- package/package.json +2 -2
package/index.d.ts
CHANGED
|
@@ -122,7 +122,7 @@ export declare const isBlob: (value: any) => any
|
|
|
122
122
|
|
|
123
123
|
export declare const isCardNo: (cardNum: any) => boolean
|
|
124
124
|
|
|
125
|
-
export declare const isDate: (value:
|
|
125
|
+
export declare const isDate: (value: string) => boolean
|
|
126
126
|
|
|
127
127
|
export declare const isEmail: (emailStr: string) => boolean
|
|
128
128
|
|
|
@@ -134,6 +134,8 @@ export declare const isNil: (val: any) => val is NIL
|
|
|
134
134
|
|
|
135
135
|
export declare const isNull: (value: any) => boolean
|
|
136
136
|
|
|
137
|
+
export declare const isNumber: (a: number | string) => boolean
|
|
138
|
+
|
|
137
139
|
export declare const isObject: (value: any) => boolean
|
|
138
140
|
|
|
139
141
|
export declare const isPhone: (phone: any) => boolean
|
|
@@ -155,6 +157,8 @@ declare interface IWSObj {
|
|
|
155
157
|
|
|
156
158
|
export declare const log: (...rest: any) => void
|
|
157
159
|
|
|
160
|
+
export declare const loopData: (arr: any[], childkey?: string) => any[]
|
|
161
|
+
|
|
158
162
|
declare type NIL = undefined | null | ''
|
|
159
163
|
|
|
160
164
|
export declare const NIL_STRING = '\u2014\u2014'
|
package/lib/lgutils.cjs.js
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var qs = require('qs');
|
|
6
|
-
var d3Format = require('d3-format');
|
|
7
6
|
var dayjs = require('dayjs');
|
|
7
|
+
var d3Format = require('d3-format');
|
|
8
8
|
|
|
9
9
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e['default'] : e; }
|
|
10
10
|
|
|
@@ -19,6 +19,7 @@ const inBrowser = typeof window !== 'undefined';
|
|
|
19
19
|
const trimString = (str) => {
|
|
20
20
|
return str.replace(/(^\s*)|(\s*$)/g, '');
|
|
21
21
|
};
|
|
22
|
+
const isNumber = (a) => /^[0-9]*(.[0-9]*)?$/.test(a + '');
|
|
22
23
|
const isEmail = (emailStr) => {
|
|
23
24
|
const emailPat = /^(.+)@(.+)\.(.+)$/;
|
|
24
25
|
return emailPat.test(emailStr);
|
|
@@ -65,7 +66,7 @@ const isUndefined = (value) => value === undefined;
|
|
|
65
66
|
const isNull = (value) => value === null;
|
|
66
67
|
const isObject = (value) => value === Object(value);
|
|
67
68
|
const isArray = (value) => Array.isArray(value);
|
|
68
|
-
const isDate = (value) => value
|
|
69
|
+
const isDate = (value) => (!value ? false : dayjs__default(value).isValid());
|
|
69
70
|
const isBlob = (value) => value &&
|
|
70
71
|
typeof value.size === 'number' &&
|
|
71
72
|
typeof value.type === 'string' &&
|
|
@@ -216,6 +217,18 @@ const filterNil = (obj) => {
|
|
|
216
217
|
_obj[k] = v;
|
|
217
218
|
});
|
|
218
219
|
return _obj;
|
|
220
|
+
};
|
|
221
|
+
const loopData = (arr, childkey = 'children') => {
|
|
222
|
+
if (!isArray(arr))
|
|
223
|
+
return [];
|
|
224
|
+
for (const item of arr) {
|
|
225
|
+
if (item[childkey] && item[childkey].length) {
|
|
226
|
+
item.children = [...item[childkey]];
|
|
227
|
+
item === null || item === void 0 ? true : delete item.childList;
|
|
228
|
+
loopData(item.children, childkey);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
return arr;
|
|
219
232
|
};
|
|
220
233
|
|
|
221
234
|
const storage = inBrowser ? localStorage : {};
|
|
@@ -223,7 +236,9 @@ const prefix = '';
|
|
|
223
236
|
let cache = {};
|
|
224
237
|
const getItem = (key) => {
|
|
225
238
|
if (cache[key] || storage.getItem(prefix + key)) {
|
|
226
|
-
cache[key] =
|
|
239
|
+
cache[key] = storage.getItem(prefix + key)
|
|
240
|
+
? JSON.parse(storage.getItem(prefix + key) || 'null')
|
|
241
|
+
: '';
|
|
227
242
|
}
|
|
228
243
|
return cache[key];
|
|
229
244
|
};
|
|
@@ -589,12 +604,14 @@ exports.isFile = isFile;
|
|
|
589
604
|
exports.isMinigram = isMinigram;
|
|
590
605
|
exports.isNil = isNil;
|
|
591
606
|
exports.isNull = isNull;
|
|
607
|
+
exports.isNumber = isNumber;
|
|
592
608
|
exports.isObject = isObject;
|
|
593
609
|
exports.isPhone = isPhone;
|
|
594
610
|
exports.isSMSCode = isSMSCode;
|
|
595
611
|
exports.isUndefined = isUndefined;
|
|
596
612
|
exports.isWX = isWX;
|
|
597
613
|
exports.log = log;
|
|
614
|
+
exports.loopData = loopData;
|
|
598
615
|
exports.os = os;
|
|
599
616
|
exports.playAudio = playAudio;
|
|
600
617
|
exports.random = random;
|
package/lib/lgutils.cjs.prod.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("qs"),t=require("d3-format");function
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("qs"),t=require("dayjs"),o=require("d3-format");function r(e){return e&&"object"==typeof e&&"default"in e?e.default:e}var s=r(t);const n=(...e)=>{console.group("====================="),console.info(...e),console.groupEnd()},a="undefined"!=typeof window,i=e=>Array.isArray(e),c=e=>e&&"number"==typeof e.size&&"string"==typeof e.type&&"function"==typeof e.slice,l=(e,t="children")=>{if(!i(e))return[];for(const o of e)o[t]&&o[t].length&&(o.children=[...o[t]],null==o||delete o.childList,l(o.children,t));return e},d=a?localStorage:{};let p={};const u=o.format(",.2f"),h=o.format(","),m=o.format(".2%"),f=w(u),x=w(h),g=w(m);function w(e){return t=>b(t)?v:e(t)}const y=e=>u(e/1e4),M=w(y),b=e=>null==e||""===e,v="——";function S(e,t="YYYY-MM-DD"){return s(new Date(e)).format(t)}const D=w(S),T={d:"天",m:"个月",y:"年"};function A(e){return e?`${parseInt(e,10)}${T[e.slice(-1).toLowerCase()]}`:e}const k=w(A);exports.DATE_FORMAT="YYYY/MM/DD",exports.FORMAT_DATE="YYYY-MM-DD",exports.FORMAT_TIME="YYYY-MM-DD HH:mm:ss",exports.NIL_STRING=v,exports.WS=class{constructor(e,t){this.socket=null,this.timer=null,this.ioUrl="",this.heartTime=1e4;this.ioUrl=e,this.socket=t?new WebSocket(e,t):new WebSocket(e)}init(e){const t=this;t.heartInfo=(null==e?void 0:e.heartInfo)?JSON.stringify(null==e?void 0:e.heartInfo):"ws HeartBeat!",t.socket.addEventListener("open",(()=>{n("ws connect!"),t.start(t.heartInfo),e.open&&e.open()}),!1),t.socket.addEventListener("disconnect",(()=>{console.info("[ws info]: disconnect and reconnect... "),e.disconnect&&e.disconnect(),t.socket=new WebSocket(t.ioUrl)}),!1),t.socket.addEventListener("error",(t=>{console.info("---------------"),console.info("[ws error]: "),console.info(t),console.info("---------------"),e.error&&e.error()}),!1),t.socket.addEventListener("close",e.close,!1),t.socket.addEventListener("message",(o=>{t.reset(),e.msg(o)}),!1)}close(){this.timer&&clearTimeout(this.timer),console.info("[ws close]: close!"),this.socket.close()}start(e){const t=this;t.timer=setTimeout((()=>{t.socket.send(e)}),t.heartTime)}send(e){this.socket.send(e)}reset(){const e=this;clearTimeout(e.timer),e.start(e.heartInfo)}getSocketState(){return this.socket.readyState}setHeartTime(e){this.heartTime=e,this.reset()}},exports.accAdd=(e,t)=>{let o,r,s;try{o=e.toString().split(".")[1].length}catch(n){o=0}try{r=t.toString().split(".")[1].length}catch(n){r=0}return s=Math.pow(10,Math.max(o,r)),(e*s+t*s)/s},exports.accDiv=(e,t)=>{let o,r,s=0,n=0;try{s=e.toString().split(".")[1].length}catch(a){}try{n=t.toString().split(".")[1].length}catch(a){}return o=Number(e.toString().replace(".","")),r=Number(t.toString().replace(".","")),o/r*Math.pow(10,n-s)},exports.accMul=(e,t)=>{let o=0,r=e.toString(),s=t.toString();try{o+=r.split(".")[1].length}catch(n){}try{o+=s.split(".")[1].length}catch(n){}return Number(r.replace(".",""))*Number(s.replace(".",""))/Math.pow(10,o)},exports.accSub=function(e,t){let o,r,s,n;try{o=e.toString().split(".")[1].length}catch(a){o=0}try{r=t.toString().split(".")[1].length}catch(a){r=0}return s=Math.pow(10,Math.max(o,r)),n=o>=r?o:r,((e*s-t*s)/s).toFixed(n)},exports.copyToClipboard=function(e){var t=document.createElement("textarea");t.value=e,document.body.appendChild(t),t.select(),document.execCommand("copy"),document.body.removeChild(t)},exports.cutTimeFn=e=>`00‘${0===e?"00":"0"+Math.floor(e/60)}’${0===e?"00":e%60>=10?e%60:"0"+e%60}`,exports.digitCnUppercase=function(e){var t=["角","分"],o=["零","壹","贰","叁","肆","伍","陆","柒","捌","玖"],r=[["元","万","亿"],["","拾","佰","仟"]],s=e<0?"欠":"";e=Math.abs(e);for(var n="",a=0;a<t.length;a++)n+=(o[Math.floor(10*e*Math.pow(10,a))%10]+t[a]).replace(/零./,"");for(n=n||"整",e=Math.floor(e),a=0;a<r[0].length&&e>0;a++){for(var i="",c=0;c<r[1].length&&e>0;c++)i=o[e%10]+r[1][c]+i,e=Math.floor(e/10);n=i.replace(/(零.)*零$/,"").replace(/^$/,"零")+r[0][a]+n}return s+n.replace(/(零.)*零元/,"元").replace(/(零.)+/g,"零").replace(/^整$/,"零元整")},exports.disableBrowserZoom=function(){document.addEventListener("keydown",(function(e){!0!==e.ctrlKey&&!0!==e.metaKey||61!==e.which&&107!==e.which&&173!==e.which&&109!==e.which&&187!==e.which&&189!==e.which||e.preventDefault()}),!1),window.addEventListener("mousewheel",(function(e){(!0===e.ctrlKey||e.metaKey)&&e.preventDefault()}),{passive:!1}),window.addEventListener("DOMMouseScroll",(function(e){(!0===e.ctrlKey||e.metaKey)&&e.preventDefault()}),{passive:!1})},exports.download=(e,t="download",o="application/octet-stream",r)=>{const s=window;let n=o,a=e;const i=document,c=i.createElement("a"),l=e=>String(e),d=s.Blob||l(c),p=t;let u=null,h=null;const m=(t,o)=>{if("download"in c)return c.href=r?e:t,c.setAttribute("download",p),c.innerHTML="downloading...",i.body.appendChild(c),setTimeout((()=>{c.click(),i.body.removeChild(c),!0===o&&setTimeout((()=>{s.URL.revokeObjectURL(c.href)}),250)}),66),!0;const n=i.createElement("iframe");i.body.appendChild(n),o||(t="data:"+t.replace(/^data:([\w\/\-\+]+)/,"application/octet-stream")),n.src=t,setTimeout((()=>{i.body.removeChild(n)}),333)};if(String(a).match(/^data\:[\w+\-]+\/[\w+\-]+[,;]/))return m(a);try{u=a instanceof d?a:new d([a],{type:n})}catch(f){}if(s.URL)m(s.URL.createObjectURL(u),!0);else{if("string"==typeof u||u.constructor===l(c))try{return m("data:"+n+";base64,"+s.btoa(u))}catch(f){return m("data:"+n+","+encodeURIComponent(u))}h=new FileReader,h.onload=function(){m(this.result)},h.readAsDataURL(u)}return!0},exports.fileReaderToBase64=e=>t=>{const o=new FileReader;o.onload=e=>{t&&t(e.target.result)},o.readAsDataURL(e)},exports.filterNil=e=>{const t={};return Object.entries(e).forEach((([e,o])=>{o&&0!==o&&(t[e]=o)})),t},exports.format10k=y,exports.format10kNil=M,exports.formatCash=u,exports.formatCash2=e=>(Math.floor(100*e)/100).toFixed(2),exports.formatCashInt=h,exports.formatCashIntNil=x,exports.formatCashNil=f,exports.formatDate=S,exports.formatDateNil=D,exports.formatDuration=A,exports.formatDurationNil=k,exports.formatRatio=m,exports.formatRatioNil=g,exports.getBase64=e=>new Promise(((t,o)=>{const r=new FileReader;r.readAsDataURL(e),r.onload=()=>t(r.result),r.onerror=e=>o(e)})),exports.getItem=e=>((p[e]||d.getItem(""+e))&&(p[e]=d.getItem(""+e)?JSON.parse(d.getItem(""+e)||"null"):""),p[e]),exports.getQueryObject=(t=window.location.href)=>{const o=t.split("?")[1];return e.parse(o||"")},exports.getSearchParams=e=>new URLSearchParams(e),exports.getValOfArr=e=>{const t=e.length,o=e.reduce(((e,t)=>e+t),0),r=e.reduce(((e,t)=>e*t),1);return{min:Math.min.apply(null,e),max:Math.max.apply(null,e),sum:o,average:o/t,mull:r}},exports.getValueWithNil=e=>b(e)?v:e,exports.inBrowser=a,exports.isArray=i,exports.isBlob=c,exports.isCardNo=e=>/^(\d{15}$|^\d{18}$|^\d{17}(\d|X|x))$/.test(e),exports.isDate=e=>!!e&&s(e).isValid(),exports.isEmail=e=>/^(.+)@(.+)\.(.+)$/.test(e),exports.isFile=e=>c(e)&&"string"==typeof e.name&&("object"==typeof e.lastModifiedDate||"number"==typeof e.lastModified),exports.isMinigram=()=>!!(null===window||void 0===window?void 0:window.__wxjs_environment),exports.isNil=b,exports.isNull=e=>null===e,exports.isNumber=e=>/^[0-9]*(.[0-9]*)?$/.test(e+""),exports.isObject=e=>e===Object(e),exports.isPhone=e=>/^[1](\d{10})$/.test(e),exports.isSMSCode=e=>e.match(/^\d{6}$/),exports.isUndefined=e=>void 0===e,exports.isWX=()=>{const e=navigator.userAgent.toLowerCase();return/MicroMessenger/i.test(e)},exports.log=n,exports.loopData=l,exports.os=()=>{if(!a)return{isTablet:!1,isPhone:!1,isAndroid:!1,isPc:!1,isIos:!1,isPad:!1};const e=navigator.userAgent,t=/(?:Windows Phone)/.test(e),o=/(?:SymbianOS)/.test(e)||t,r=/(?:Android)/.test(e),s=/(?:Firefox)/.test(e),n=/(?:iPad|PlayBook)/.test(e)||r&&!/(?:Mobile)/.test(e)||s&&/(?:Tablet)/.test(e),i=/(?:iPhone)/.test(e)&&!n,c=/(?:iPad)/.test(e)&&!n;return{isTablet:n,isPhone:i,isAndroid:r,isPc:!i&&!r&&!o,isPad:c,isIos:i||c}},exports.playAudio=e=>{const t=document.querySelectorAll("audio");Array.from(t).forEach((e=>{e.pause(),e.currentTime=0})),document.querySelector(`#${e}`).play()},exports.random=(e,t)=>Math.round(Math.random()*(t-e)+e),exports.randomString=(e=32)=>{const t="ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678",o=t.length;let r="";for(let s=0;s<e;s++)r+=t.charAt(Math.floor(Math.random()*o));return r},exports.removeAll=()=>(p={},d.clear()),exports.removeItem=e=>(delete p[e],d.removeItem(""+e)),exports.setItem=(e,t)=>(p[e]=t,d.setItem(""+e,JSON.stringify(t))),exports.setProxyObj=(e,t,o)=>new Proxy(e,{get:(e,o)=>(t(),Reflect.get(e,o)),set:(e,t,r)=>(o(),Reflect.set(e,t,r))}),exports.sortObj=(e,t,o="asc")=>e.sort(((e,r)=>"asc"===o?e[t]-r[t]:r[t]-e[t])),exports.sumObj=(e,t)=>e.reduce(((e,o)=>o[t]+e),0),exports.trimString=e=>e.replace(/(^\s*)|(\s*$)/g,"");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { parse } from 'qs';
|
|
2
|
-
import { format } from 'd3-format';
|
|
3
2
|
import dayjs from 'dayjs';
|
|
3
|
+
import { format } from 'd3-format';
|
|
4
4
|
|
|
5
5
|
const log = (...rest) => {
|
|
6
6
|
console.group('=====================');
|
|
@@ -11,6 +11,7 @@ const inBrowser = typeof window !== 'undefined';
|
|
|
11
11
|
const trimString = (str) => {
|
|
12
12
|
return str.replace(/(^\s*)|(\s*$)/g, '');
|
|
13
13
|
};
|
|
14
|
+
const isNumber = (a) => /^[0-9]*(.[0-9]*)?$/.test(a + '');
|
|
14
15
|
const isEmail = (emailStr) => {
|
|
15
16
|
const emailPat = /^(.+)@(.+)\.(.+)$/;
|
|
16
17
|
return emailPat.test(emailStr);
|
|
@@ -57,7 +58,7 @@ const isUndefined = (value) => value === undefined;
|
|
|
57
58
|
const isNull = (value) => value === null;
|
|
58
59
|
const isObject = (value) => value === Object(value);
|
|
59
60
|
const isArray = (value) => Array.isArray(value);
|
|
60
|
-
const isDate = (value) => value
|
|
61
|
+
const isDate = (value) => (!value ? false : dayjs(value).isValid());
|
|
61
62
|
const isBlob = (value) => value &&
|
|
62
63
|
typeof value.size === 'number' &&
|
|
63
64
|
typeof value.type === 'string' &&
|
|
@@ -208,6 +209,18 @@ const filterNil = (obj) => {
|
|
|
208
209
|
_obj[k] = v;
|
|
209
210
|
});
|
|
210
211
|
return _obj;
|
|
212
|
+
};
|
|
213
|
+
const loopData = (arr, childkey = 'children') => {
|
|
214
|
+
if (!isArray(arr))
|
|
215
|
+
return [];
|
|
216
|
+
for (const item of arr) {
|
|
217
|
+
if (item[childkey] && item[childkey].length) {
|
|
218
|
+
item.children = [...item[childkey]];
|
|
219
|
+
item === null || item === void 0 ? true : delete item.childList;
|
|
220
|
+
loopData(item.children, childkey);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
return arr;
|
|
211
224
|
};
|
|
212
225
|
|
|
213
226
|
const storage = inBrowser ? localStorage : {};
|
|
@@ -215,7 +228,9 @@ const prefix = '';
|
|
|
215
228
|
let cache = {};
|
|
216
229
|
const getItem = (key) => {
|
|
217
230
|
if (cache[key] || storage.getItem(prefix + key)) {
|
|
218
|
-
cache[key] =
|
|
231
|
+
cache[key] = storage.getItem(prefix + key)
|
|
232
|
+
? JSON.parse(storage.getItem(prefix + key) || 'null')
|
|
233
|
+
: '';
|
|
219
234
|
}
|
|
220
235
|
return cache[key];
|
|
221
236
|
};
|
|
@@ -536,4 +551,4 @@ function copyToClipboard(txt) {
|
|
|
536
551
|
document.body.removeChild(textarea);
|
|
537
552
|
}
|
|
538
553
|
|
|
539
|
-
export { DATE_FORMAT, FORMAT_DATE, FORMAT_TIME, NIL_STRING, WS, accAdd, accDiv, accMul, accSub, copyToClipboard, cutTimeFn, digitCnUppercase, disableBrowserZoom, download, fileReaderToBase64, filterNil, format10k, format10kNil, formatCash, formatCash2, formatCashInt, formatCashIntNil, formatCashNil, formatDate, formatDateNil, formatDuration, formatDurationNil, formatRatio, formatRatioNil, getBase64, getItem, getQueryObject, getSearchParams, getValOfArr, getValueWithNil, inBrowser, isArray, isBlob, isCardNo, isDate, isEmail, isFile, isMinigram, isNil, isNull, isObject, isPhone, isSMSCode, isUndefined, isWX, log, os, playAudio, random, randomString, removeAll, removeItem, setItem, setProxyObj, sortObj, sumObj, trimString };
|
|
554
|
+
export { DATE_FORMAT, FORMAT_DATE, FORMAT_TIME, NIL_STRING, WS, accAdd, accDiv, accMul, accSub, copyToClipboard, cutTimeFn, digitCnUppercase, disableBrowserZoom, download, fileReaderToBase64, filterNil, format10k, format10kNil, formatCash, formatCash2, formatCashInt, formatCashIntNil, formatCashNil, formatDate, formatDateNil, formatDuration, formatDurationNil, formatRatio, formatRatioNil, getBase64, getItem, getQueryObject, getSearchParams, getValOfArr, getValueWithNil, inBrowser, isArray, isBlob, isCardNo, isDate, isEmail, isFile, isMinigram, isNil, isNull, isNumber, isObject, isPhone, isSMSCode, isUndefined, isWX, log, loopData, os, playAudio, random, randomString, removeAll, removeItem, setItem, setProxyObj, sortObj, sumObj, trimString };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lgutils",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.29",
|
|
4
4
|
"description": "lgutils",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"module": "lib/lgutils.cjs.prod.js",
|
|
@@ -32,5 +32,5 @@
|
|
|
32
32
|
"@types/d3-format": "^1.3.1",
|
|
33
33
|
"@types/qs": "^6.9.0"
|
|
34
34
|
},
|
|
35
|
-
"gitHead": "
|
|
35
|
+
"gitHead": "7b527315e697c56fbf69533983df0a643b3dfa4f"
|
|
36
36
|
}
|