lgutils 1.3.10 → 1.3.13

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 CHANGED
@@ -6,12 +6,16 @@ export declare const accMul: (arg1: number, arg2: number) => number
6
6
 
7
7
  export declare const accSub: (arg1: number, arg2: number) => string
8
8
 
9
+ export declare function copyToClipboard(txt: string): void
10
+
9
11
  export declare const cutTimeFn: (n: number) => string
10
12
 
11
13
  export declare const DATE_FORMAT = 'YYYY/MM/DD'
12
14
 
13
15
  export declare function digitCnUppercase(n: number): string
14
16
 
17
+ export declare function disableBrowserZoom(): void
18
+
15
19
  export declare const download: (
16
20
  data: string,
17
21
  strFileName?: string,
@@ -67,8 +71,6 @@ export declare const formatCashNil: (
67
71
  | NIL
68
72
  ) => string
69
73
 
70
- export declare const formatCreditEnhanced: (yes: boolean) => string
71
-
72
74
  export declare function formatDate(
73
75
  d: string | number,
74
76
  formatType?: string
@@ -119,10 +121,6 @@ export declare const getValueWithNil: (val: any) => any
119
121
 
120
122
  export declare const inBrowser: boolean
121
123
 
122
- declare type IndexType = {
123
- [x: string]: any
124
- }
125
-
126
124
  export declare const isArray: (value: any) => boolean
127
125
 
128
126
  export declare const isBlob: (value: any) => any
@@ -162,10 +160,6 @@ declare type NIL = undefined | null | ''
162
160
 
163
161
  export declare const NIL_STRING = '\u2014\u2014'
164
162
 
165
- export declare function normalizeFormValues<T extends IndexType>(values: T): any
166
-
167
- export declare function normalizeSearchParams(params: IndexType): IndexType
168
-
169
163
  export declare const os: () => {
170
164
  isTablet: boolean
171
165
  isPhone: boolean
@@ -4,12 +4,10 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var qs = require('qs');
6
6
  var d3Format = require('d3-format');
7
- var omit = require('lodash/omit');
8
7
  var moment = require('moment');
9
8
 
10
9
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e['default'] : e; }
11
10
 
12
- var omit__default = /*#__PURE__*/_interopDefaultLegacy(omit);
13
11
  var moment__default = /*#__PURE__*/_interopDefaultLegacy(moment);
14
12
 
15
13
  const log = (...rest) => {
@@ -238,49 +236,44 @@ const SERVER_DATE_FROMAT = 'YYYY-MM-DD';
238
236
  const DATE_FORMAT = 'YYYY/MM/DD';
239
237
  const FORMAT_DATE = SERVER_DATE_FROMAT;
240
238
  const FORMAT_TIME = 'YYYY-MM-DD HH:mm:ss';
241
- function normalizeFormValues(values) {
242
- return Object.entries(values)
243
- .filter(([key, value]) => value !== undefined && value !== 'all')
244
- .reduce((mem, [key, value]) => {
245
- // array for [moment, moment]
246
- if (Array.isArray(value) && value.some(val => moment__default.isMoment(val))) {
247
- if (value[0]) {
248
- mem.startDate = value[0].format(SERVER_DATE_FROMAT);
249
- }
250
- if (value[1]) {
251
- mem.endDate = value[1].format(SERVER_DATE_FROMAT);
252
- }
253
- }
254
- else if (moment__default.isMoment(value)) {
255
- mem[key] = value.format(SERVER_DATE_FROMAT);
256
- }
257
- else
258
- mem[key] = value;
259
- return mem;
260
- }, {});
261
- }
262
- function normalizeSearchParams(params) {
263
- if (params.startDate || params.endDate) {
264
- params = Object.assign(Object.assign({}, omit__default(params, ['startDate', 'endDate'])), { dateRange: [
265
- params.startDate && moment__default(params.startDate),
266
- params.endDate && moment__default(params.endDate)
267
- ] });
268
- }
269
- Object.entries(params).forEach(([key, value]) => {
270
- if (typeof value === 'string' && value.includes(',')) {
271
- params[key] = 'all';
272
- }
273
- });
274
- return params;
275
- }
276
- function formatBool(field) {
277
- return function (yes) {
278
- return yes ? field : '不' + field;
279
- };
280
- }
239
+ // type IndexType = { [x: string]: any }
240
+ // export function normalizeFormValues<T extends IndexType>(values: T) {
241
+ // return Object.entries(values)
242
+ // .filter(([key, value]) => value !== undefined && value !== 'all')
243
+ // .reduce((mem: any, [key, value]) => {
244
+ // // array for [moment, moment]
245
+ // if (Array.isArray(value) && value.some((val) => moment.isMoment(val))) {
246
+ // if (value[0]) {
247
+ // mem.startDate = value[0].format(SERVER_DATE_FROMAT)
248
+ // }
249
+ // if (value[1]) {
250
+ // mem.endDate = value[1].format(SERVER_DATE_FROMAT)
251
+ // }
252
+ // } else if (moment.isMoment(value)) {
253
+ // mem[key] = value.format(SERVER_DATE_FROMAT)
254
+ // } else mem[key] = value
255
+ // return mem
256
+ // }, {} as T)
257
+ // }
258
+ // export function normalizeSearchParams(params: IndexType) {
259
+ // if (params.startDate || params.endDate) {
260
+ // params = {
261
+ // ...omit(params, ['startDate', 'endDate']),
262
+ // dateRange: [
263
+ // params.startDate && moment(params.startDate),
264
+ // params.endDate && moment(params.endDate),
265
+ // ],
266
+ // }
267
+ // }
268
+ // Object.entries(params).forEach(([key, value]) => {
269
+ // if (typeof value === 'string' && value.includes(',')) {
270
+ // params[key] = 'all'
271
+ // }
272
+ // })
273
+ // return params
274
+ // }
281
275
  const format10k = (n) => formatCash(n / 10000);
282
276
  const format10kNil = withDefaultNil(format10k);
283
- const formatCreditEnhanced = formatBool('增信');
284
277
  // null == undefined
285
278
  const isNil = (val) => val == null || val === '';
286
279
  const NIL_STRING = '——';
@@ -289,7 +282,10 @@ const getValueWithNil = (val) => (isNil(val) ? NIL_STRING : val);
289
282
  function digitCnUppercase(n) {
290
283
  var fraction = ['角', '分'];
291
284
  var digit = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'];
292
- var unit = [['元', '万', '亿'], ['', '拾', '佰', '仟']];
285
+ var unit = [
286
+ ['元', '万', '亿'],
287
+ ['', '拾', '佰', '仟'],
288
+ ];
293
289
  var head = n < 0 ? '欠' : '';
294
290
  n = Math.abs(n);
295
291
  var s = '';
@@ -319,7 +315,7 @@ const formatDateNil = withDefaultNil(formatDate);
319
315
  const unit = {
320
316
  d: '天',
321
317
  m: '个月',
322
- y: '年'
318
+ y: '年',
323
319
  };
324
320
  function formatDuration(period) {
325
321
  if (!period)
@@ -519,10 +515,53 @@ class WS {
519
515
  return this.socket.readyState;
520
516
  }
521
517
  setHeartTime(time) {
522
- this.heartTime = time;
518
+ const that = this;
519
+ that.heartTime = time;
520
+ that.reset();
523
521
  }
524
522
  }
525
523
 
524
+ function disableBrowserZoom() {
525
+ // @ts-ignore
526
+ document.addEventListener('keydown', function (event) {
527
+ if ((event.ctrlKey === true || event.metaKey === true) &&
528
+ (event.which === 61 ||
529
+ event.which === 107 ||
530
+ event.which === 173 ||
531
+ event.which === 109 ||
532
+ event.which === 187 ||
533
+ event.which === 189)) {
534
+ event.preventDefault();
535
+ }
536
+ }, false);
537
+ // @ts-ignore
538
+ window.addEventListener('mousewheel', function (event) {
539
+ // @ts-ignore
540
+ if (event.ctrlKey === true || event.metaKey) {
541
+ event.preventDefault();
542
+ }
543
+ }, {
544
+ passive: false,
545
+ });
546
+ window.addEventListener('DOMMouseScroll', function (event) {
547
+ // @ts-ignore
548
+ if (event.ctrlKey === true || event.metaKey) {
549
+ event.preventDefault();
550
+ }
551
+ }, {
552
+ passive: false,
553
+ });
554
+ }
555
+
556
+ function copyToClipboard(txt) {
557
+ var textarea = document.createElement('textarea');
558
+ textarea.value = txt;
559
+ document.body.appendChild(textarea);
560
+ textarea.select();
561
+ document.execCommand('copy');
562
+ document.body.removeChild(textarea);
563
+ }
564
+
526
565
  exports.DATE_FORMAT = DATE_FORMAT;
527
566
  exports.FORMAT_DATE = FORMAT_DATE;
528
567
  exports.FORMAT_TIME = FORMAT_TIME;
@@ -532,8 +571,10 @@ exports.accAdd = accAdd;
532
571
  exports.accDiv = accDiv;
533
572
  exports.accMul = accMul;
534
573
  exports.accSub = accSub;
574
+ exports.copyToClipboard = copyToClipboard;
535
575
  exports.cutTimeFn = cutTimeFn;
536
576
  exports.digitCnUppercase = digitCnUppercase;
577
+ exports.disableBrowserZoom = disableBrowserZoom;
537
578
  exports.download = download;
538
579
  exports.fileReaderToBase64 = fileReaderToBase64;
539
580
  exports.format10k = format10k;
@@ -543,7 +584,6 @@ exports.formatCash2 = formatCash2;
543
584
  exports.formatCashInt = formatCashInt;
544
585
  exports.formatCashIntNil = formatCashIntNil;
545
586
  exports.formatCashNil = formatCashNil;
546
- exports.formatCreditEnhanced = formatCreditEnhanced;
547
587
  exports.formatDate = formatDate;
548
588
  exports.formatDateNil = formatDateNil;
549
589
  exports.formatDuration = formatDuration;
@@ -570,8 +610,6 @@ exports.isPhone = isPhone;
570
610
  exports.isSMSCode = isSMSCode;
571
611
  exports.isUndefined = isUndefined;
572
612
  exports.log = log;
573
- exports.normalizeFormValues = normalizeFormValues;
574
- exports.normalizeSearchParams = normalizeSearchParams;
575
613
  exports.os = os;
576
614
  exports.playAudio = playAudio;
577
615
  exports.random = random;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("qs"),e=require("d3-format"),r=require("lodash/omit"),o=require("moment");function s(t){return t&&"object"==typeof t&&"default"in t?t.default:t}var n=s(r),a=s(o);const i=(...t)=>{console.group("====================="),console.info(...t),console.groupEnd()},c="undefined"!=typeof window,l=t=>t&&"number"==typeof t.size&&"string"==typeof t.type&&"function"==typeof t.slice,p=c?localStorage:{};let d={};const m=e.format(",.2f"),u=e.format(","),f=e.format(".2%"),h=y(m),x=y(u),g=y(f);function y(t){return e=>S(e)?Y:t(e)}const M=t=>m(t/1e4),b=y(M),w=(D="增信",function(t){return t?D:"不"+D});var D;const S=t=>null==t||""===t,Y="——";function A(t,e="YYYY-MM-DD"){return a(new Date(t)).format(e)}const v=y(A),T={d:"天",m:"个月",y:"年"};function R(t){return t?`${parseInt(t,10)}${T[t.slice(-1).toLowerCase()]}`:t}const k=y(R);exports.DATE_FORMAT="YYYY/MM/DD",exports.FORMAT_DATE="YYYY-MM-DD",exports.FORMAT_TIME="YYYY-MM-DD HH:mm:ss",exports.NIL_STRING=Y,exports.WS=class{constructor(t,e){this.socket=null,this.timer=null,this.ioUrl="",this.heartTime=1e4;this.ioUrl=t,this.socket=e?new WebSocket(t,e):new WebSocket(t)}init(t){const e=this;e.heartInfo=(null==t?void 0:t.heartInfo)?JSON.stringify(null==t?void 0:t.heartInfo):"ws HeartBeat!",e.socket.addEventListener("open",(()=>{i("ws connect!"),e.start(e.heartInfo),t.open&&t.open()}),!1),e.socket.addEventListener("disconnect",(()=>{console.info("[ws info]: disconnect and reconnect... "),t.disconnect&&t.disconnect(),e.socket=new WebSocket(e.ioUrl)}),!1),e.socket.addEventListener("error",(e=>{console.info("---------------"),console.info("[ws error]: "),console.info(e),console.info("---------------"),t.error&&t.error()}),!1),e.socket.addEventListener("close",t.close,!1),e.socket.addEventListener("message",(r=>{e.reset(),t.msg(r)}),!1)}close(){this.timer&&clearTimeout(this.timer),console.info("[ws close]: close!"),this.socket.close()}start(t){const e=this;e.timer=setTimeout((()=>{e.socket.send(t)}),e.heartTime)}send(t){this.socket.send(t)}reset(){const t=this;clearTimeout(t.timer),t.start(t.heartInfo)}getSocketState(){return this.socket.readyState}setHeartTime(t){this.heartTime=t}},exports.accAdd=(t,e)=>{let r,o,s;try{r=t.toString().split(".")[1].length}catch(n){r=0}try{o=e.toString().split(".")[1].length}catch(n){o=0}return s=Math.pow(10,Math.max(r,o)),(t*s+e*s)/s},exports.accDiv=(t,e)=>{let r,o,s=0,n=0;try{s=t.toString().split(".")[1].length}catch(a){}try{n=e.toString().split(".")[1].length}catch(a){}return r=Number(t.toString().replace(".","")),o=Number(e.toString().replace(".","")),r/o*Math.pow(10,n-s)},exports.accMul=(t,e)=>{let r=0,o=t.toString(),s=e.toString();try{r+=o.split(".")[1].length}catch(n){}try{r+=s.split(".")[1].length}catch(n){}return Number(o.replace(".",""))*Number(s.replace(".",""))/Math.pow(10,r)},exports.accSub=function(t,e){let r,o,s,n;try{r=t.toString().split(".")[1].length}catch(a){r=0}try{o=e.toString().split(".")[1].length}catch(a){o=0}return s=Math.pow(10,Math.max(r,o)),n=r>=o?r:o,((t*s-e*s)/s).toFixed(n)},exports.cutTimeFn=t=>`00‘${0===t?"00":"0"+Math.floor(t/60)}’${0===t?"00":t%60>=10?t%60:"0"+t%60}`,exports.digitCnUppercase=function(t){var e=["角","分"],r=["零","壹","贰","叁","肆","伍","陆","柒","捌","玖"],o=[["元","万","亿"],["","拾","佰","仟"]],s=t<0?"欠":"";t=Math.abs(t);for(var n="",a=0;a<e.length;a++)n+=(r[Math.floor(10*t*Math.pow(10,a))%10]+e[a]).replace(/零./,"");for(n=n||"整",t=Math.floor(t),a=0;a<o[0].length&&t>0;a++){for(var i="",c=0;c<o[1].length&&t>0;c++)i=r[t%10]+o[1][c]+i,t=Math.floor(t/10);n=i.replace(/(零.)*零$/,"").replace(/^$/,"零")+o[0][a]+n}return s+n.replace(/(零.)*零元/,"元").replace(/(零.)+/g,"零").replace(/^整$/,"零元整")},exports.download=(t,e="download",r="application/octet-stream",o)=>{const s=window;let n=r,a=t;const i=document,c=i.createElement("a"),l=t=>String(t),p=s.Blob||l(c),d=e;let m=null,u=null;const f=(e,r)=>{if("download"in c)return c.href=o?t:e,c.setAttribute("download",d),c.innerHTML="downloading...",i.body.appendChild(c),setTimeout((()=>{c.click(),i.body.removeChild(c),!0===r&&setTimeout((()=>{s.URL.revokeObjectURL(c.href)}),250)}),66),!0;const n=i.createElement("iframe");i.body.appendChild(n),r||(e="data:"+e.replace(/^data:([\w\/\-\+]+)/,"application/octet-stream")),n.src=e,setTimeout((()=>{i.body.removeChild(n)}),333)};if(String(a).match(/^data\:[\w+\-]+\/[\w+\-]+[,;]/))return f(a);try{m=a instanceof p?a:new p([a],{type:n})}catch(h){}if(s.URL)f(s.URL.createObjectURL(m),!0);else{if("string"==typeof m||m.constructor===l(c))try{return f("data:"+n+";base64,"+s.btoa(m))}catch(h){return f("data:"+n+","+encodeURIComponent(m))}u=new FileReader,u.onload=function(){f(this.result)},u.readAsDataURL(m)}return!0},exports.fileReaderToBase64=t=>e=>{const r=new FileReader;r.onload=t=>{e&&e(t.target.result)},r.readAsDataURL(t)},exports.format10k=M,exports.format10kNil=b,exports.formatCash=m,exports.formatCash2=t=>(Math.floor(100*t)/100).toFixed(2),exports.formatCashInt=u,exports.formatCashIntNil=x,exports.formatCashNil=h,exports.formatCreditEnhanced=w,exports.formatDate=A,exports.formatDateNil=v,exports.formatDuration=R,exports.formatDurationNil=k,exports.formatRatio=f,exports.formatRatioNil=g,exports.getBase64=t=>new Promise(((e,r)=>{const o=new FileReader;o.readAsDataURL(t),o.onload=()=>e(o.result),o.onerror=t=>r(t)})),exports.getItem=t=>((d[t]||p.getItem(""+t))&&(d[t]=JSON.parse(p.getItem(""+t)||"null")),d[t]),exports.getQueryObject=(e=window.location.href)=>{const r=e.split("?")[1];return t.parse(r||"")},exports.getSearchParams=t=>new URLSearchParams(t),exports.getValOfArr=t=>{const e=t.length,r=t.reduce(((t,e)=>t+e),0),o=t.reduce(((t,e)=>t*e),1);return{min:Math.min.apply(null,t),max:Math.max.apply(null,t),sum:r,average:r/e,mull:o}},exports.getValueWithNil=t=>S(t)?Y:t,exports.inBrowser=c,exports.isArray=t=>Array.isArray(t),exports.isBlob=l,exports.isCardNo=t=>/^(\d{15}$|^\d{18}$|^\d{17}(\d|X|x))$/.test(t),exports.isDate=t=>t instanceof Date,exports.isEmail=t=>/^(.+)@(.+)\.(.+)$/.test(t),exports.isFile=t=>l(t)&&"string"==typeof t.name&&("object"==typeof t.lastModifiedDate||"number"==typeof t.lastModified),exports.isNil=S,exports.isNull=t=>null===t,exports.isObject=t=>t===Object(t),exports.isPhone=t=>/^[1](\d{10})$/.test(t),exports.isSMSCode=t=>t.match(/^\d{6}$/),exports.isUndefined=t=>void 0===t,exports.log=i,exports.normalizeFormValues=function(t){return Object.entries(t).filter((([t,e])=>void 0!==e&&"all"!==e)).reduce(((t,[e,r])=>(Array.isArray(r)&&r.some((t=>a.isMoment(t)))?(r[0]&&(t.startDate=r[0].format("YYYY-MM-DD")),r[1]&&(t.endDate=r[1].format("YYYY-MM-DD"))):t[e]=a.isMoment(r)?r.format("YYYY-MM-DD"):r,t)),{})},exports.normalizeSearchParams=function(t){return(t.startDate||t.endDate)&&(t=Object.assign(Object.assign({},n(t,["startDate","endDate"])),{dateRange:[t.startDate&&a(t.startDate),t.endDate&&a(t.endDate)]})),Object.entries(t).forEach((([e,r])=>{"string"==typeof r&&r.includes(",")&&(t[e]="all")})),t},exports.os=()=>{if(!c)return{isTablet:!1,isPhone:!1,isAndroid:!1,isPc:!1};const t=navigator.userAgent,e=/(?:Windows Phone)/.test(t),r=/(?:SymbianOS)/.test(t)||e,o=/(?:Android)/.test(t),s=/(?:Firefox)/.test(t),n=/(?:iPad|PlayBook)/.test(t)||o&&!/(?:Mobile)/.test(t)||s&&/(?:Tablet)/.test(t),a=/(?:iPhone)/.test(t)&&!n;return{isTablet:n,isPhone:a,isAndroid:o,isPc:!a&&!o&&!r}},exports.playAudio=t=>{const e=document.querySelectorAll("audio");Array.from(e).forEach((t=>{t.pause(),t.currentTime=0})),document.querySelector(`#${t}`).play()},exports.random=(t,e)=>Math.round(Math.random()*(e-t)+t),exports.randomString=(t=32)=>{const e="ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678",r=e.length;let o="";for(let s=0;s<t;s++)o+=e.charAt(Math.floor(Math.random()*r));return o},exports.removeAll=()=>(d={},p.clear()),exports.removeItem=t=>(delete d[t],p.removeItem(""+t)),exports.setItem=(t,e)=>(d[t]=e,p.setItem(""+t,JSON.stringify(e))),exports.setProxyObj=(t,e,r)=>new Proxy(t,{get:(t,r)=>(e(),Reflect.get(t,r)),set:(t,e,o)=>(r(),Reflect.set(t,e,o))}),exports.sortObj=(t,e,r="asc")=>t.sort(((t,o)=>"asc"===r?o[e]-t[e]:t[e]-o[e])),exports.sumObj=(t,e)=>t.reduce(((t,r)=>r[e]+t),0),exports.trimString=t=>t.replace(/(^\s*)|(\s*$)/g,"");
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("qs"),t=require("d3-format");function o(e){return e&&"object"==typeof e&&"default"in e?e.default:e}var r=o(require("moment"));const s=(...e)=>{console.group("====================="),console.info(...e),console.groupEnd()},n="undefined"!=typeof window,a=e=>e&&"number"==typeof e.size&&"string"==typeof e.type&&"function"==typeof e.slice,i=n?localStorage:{};let c={};const l=t.format(",.2f"),p=t.format(","),d=t.format(".2%"),u=f(l),h=f(p),m=f(d);function f(e){return t=>y(t)?w:e(t)}const x=e=>l(e/1e4),g=f(x),y=e=>null==e||""===e,w="——";function b(e,t="YYYY-MM-DD"){return r(new Date(e)).format(t)}const M=f(b),S={d:"天",m:"个月",y:"年"};function v(e){return e?`${parseInt(e,10)}${S[e.slice(-1).toLowerCase()]}`:e}const D=f(v);exports.DATE_FORMAT="YYYY/MM/DD",exports.FORMAT_DATE="YYYY-MM-DD",exports.FORMAT_TIME="YYYY-MM-DD HH:mm:ss",exports.NIL_STRING=w,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",(()=>{s("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),p=s.Blob||l(c),d=t;let u=null,h=null;const m=(t,o)=>{if("download"in c)return c.href=r?e:t,c.setAttribute("download",d),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 p?a:new p([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.format10k=x,exports.format10kNil=g,exports.formatCash=l,exports.formatCash2=e=>(Math.floor(100*e)/100).toFixed(2),exports.formatCashInt=p,exports.formatCashIntNil=h,exports.formatCashNil=u,exports.formatDate=b,exports.formatDateNil=M,exports.formatDuration=v,exports.formatDurationNil=D,exports.formatRatio=d,exports.formatRatioNil=m,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=>((c[e]||i.getItem(""+e))&&(c[e]=JSON.parse(i.getItem(""+e)||"null")),c[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=>y(e)?w:e,exports.inBrowser=n,exports.isArray=e=>Array.isArray(e),exports.isBlob=a,exports.isCardNo=e=>/^(\d{15}$|^\d{18}$|^\d{17}(\d|X|x))$/.test(e),exports.isDate=e=>e instanceof Date,exports.isEmail=e=>/^(.+)@(.+)\.(.+)$/.test(e),exports.isFile=e=>a(e)&&"string"==typeof e.name&&("object"==typeof e.lastModifiedDate||"number"==typeof e.lastModified),exports.isNil=y,exports.isNull=e=>null===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.log=s,exports.os=()=>{if(!n)return{isTablet:!1,isPhone:!1,isAndroid:!1,isPc:!1};const e=navigator.userAgent,t=/(?:Windows Phone)/.test(e),o=/(?:SymbianOS)/.test(e)||t,r=/(?:Android)/.test(e),s=/(?:Firefox)/.test(e),a=/(?:iPad|PlayBook)/.test(e)||r&&!/(?:Mobile)/.test(e)||s&&/(?:Tablet)/.test(e),i=/(?:iPhone)/.test(e)&&!a;return{isTablet:a,isPhone:i,isAndroid:r,isPc:!i&&!r&&!o}},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=()=>(c={},i.clear()),exports.removeItem=e=>(delete c[e],i.removeItem(""+e)),exports.setItem=(e,t)=>(c[e]=t,i.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?r[t]-e[t]:e[t]-r[t])),exports.sumObj=(e,t)=>e.reduce(((e,o)=>o[t]+e),0),exports.trimString=e=>e.replace(/(^\s*)|(\s*$)/g,"");
@@ -1,6 +1,5 @@
1
1
  import { parse } from 'qs';
2
2
  import { format } from 'd3-format';
3
- import omit from 'lodash/omit';
4
3
  import moment from 'moment';
5
4
 
6
5
  const log = (...rest) => {
@@ -229,49 +228,44 @@ const SERVER_DATE_FROMAT = 'YYYY-MM-DD';
229
228
  const DATE_FORMAT = 'YYYY/MM/DD';
230
229
  const FORMAT_DATE = SERVER_DATE_FROMAT;
231
230
  const FORMAT_TIME = 'YYYY-MM-DD HH:mm:ss';
232
- function normalizeFormValues(values) {
233
- return Object.entries(values)
234
- .filter(([key, value]) => value !== undefined && value !== 'all')
235
- .reduce((mem, [key, value]) => {
236
- // array for [moment, moment]
237
- if (Array.isArray(value) && value.some(val => moment.isMoment(val))) {
238
- if (value[0]) {
239
- mem.startDate = value[0].format(SERVER_DATE_FROMAT);
240
- }
241
- if (value[1]) {
242
- mem.endDate = value[1].format(SERVER_DATE_FROMAT);
243
- }
244
- }
245
- else if (moment.isMoment(value)) {
246
- mem[key] = value.format(SERVER_DATE_FROMAT);
247
- }
248
- else
249
- mem[key] = value;
250
- return mem;
251
- }, {});
252
- }
253
- function normalizeSearchParams(params) {
254
- if (params.startDate || params.endDate) {
255
- params = Object.assign(Object.assign({}, omit(params, ['startDate', 'endDate'])), { dateRange: [
256
- params.startDate && moment(params.startDate),
257
- params.endDate && moment(params.endDate)
258
- ] });
259
- }
260
- Object.entries(params).forEach(([key, value]) => {
261
- if (typeof value === 'string' && value.includes(',')) {
262
- params[key] = 'all';
263
- }
264
- });
265
- return params;
266
- }
267
- function formatBool(field) {
268
- return function (yes) {
269
- return yes ? field : '不' + field;
270
- };
271
- }
231
+ // type IndexType = { [x: string]: any }
232
+ // export function normalizeFormValues<T extends IndexType>(values: T) {
233
+ // return Object.entries(values)
234
+ // .filter(([key, value]) => value !== undefined && value !== 'all')
235
+ // .reduce((mem: any, [key, value]) => {
236
+ // // array for [moment, moment]
237
+ // if (Array.isArray(value) && value.some((val) => moment.isMoment(val))) {
238
+ // if (value[0]) {
239
+ // mem.startDate = value[0].format(SERVER_DATE_FROMAT)
240
+ // }
241
+ // if (value[1]) {
242
+ // mem.endDate = value[1].format(SERVER_DATE_FROMAT)
243
+ // }
244
+ // } else if (moment.isMoment(value)) {
245
+ // mem[key] = value.format(SERVER_DATE_FROMAT)
246
+ // } else mem[key] = value
247
+ // return mem
248
+ // }, {} as T)
249
+ // }
250
+ // export function normalizeSearchParams(params: IndexType) {
251
+ // if (params.startDate || params.endDate) {
252
+ // params = {
253
+ // ...omit(params, ['startDate', 'endDate']),
254
+ // dateRange: [
255
+ // params.startDate && moment(params.startDate),
256
+ // params.endDate && moment(params.endDate),
257
+ // ],
258
+ // }
259
+ // }
260
+ // Object.entries(params).forEach(([key, value]) => {
261
+ // if (typeof value === 'string' && value.includes(',')) {
262
+ // params[key] = 'all'
263
+ // }
264
+ // })
265
+ // return params
266
+ // }
272
267
  const format10k = (n) => formatCash(n / 10000);
273
268
  const format10kNil = withDefaultNil(format10k);
274
- const formatCreditEnhanced = formatBool('增信');
275
269
  // null == undefined
276
270
  const isNil = (val) => val == null || val === '';
277
271
  const NIL_STRING = '——';
@@ -280,7 +274,10 @@ const getValueWithNil = (val) => (isNil(val) ? NIL_STRING : val);
280
274
  function digitCnUppercase(n) {
281
275
  var fraction = ['角', '分'];
282
276
  var digit = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'];
283
- var unit = [['元', '万', '亿'], ['', '拾', '佰', '仟']];
277
+ var unit = [
278
+ ['元', '万', '亿'],
279
+ ['', '拾', '佰', '仟'],
280
+ ];
284
281
  var head = n < 0 ? '欠' : '';
285
282
  n = Math.abs(n);
286
283
  var s = '';
@@ -310,7 +307,7 @@ const formatDateNil = withDefaultNil(formatDate);
310
307
  const unit = {
311
308
  d: '天',
312
309
  m: '个月',
313
- y: '年'
310
+ y: '年',
314
311
  };
315
312
  function formatDuration(period) {
316
313
  if (!period)
@@ -510,8 +507,51 @@ class WS {
510
507
  return this.socket.readyState;
511
508
  }
512
509
  setHeartTime(time) {
513
- this.heartTime = time;
510
+ const that = this;
511
+ that.heartTime = time;
512
+ that.reset();
514
513
  }
515
514
  }
516
515
 
517
- export { DATE_FORMAT, FORMAT_DATE, FORMAT_TIME, NIL_STRING, WS, accAdd, accDiv, accMul, accSub, cutTimeFn, digitCnUppercase, download, fileReaderToBase64, format10k, format10kNil, formatCash, formatCash2, formatCashInt, formatCashIntNil, formatCashNil, formatCreditEnhanced, formatDate, formatDateNil, formatDuration, formatDurationNil, formatRatio, formatRatioNil, getBase64, getItem, getQueryObject, getSearchParams, getValOfArr, getValueWithNil, inBrowser, isArray, isBlob, isCardNo, isDate, isEmail, isFile, isNil, isNull, isObject, isPhone, isSMSCode, isUndefined, log, normalizeFormValues, normalizeSearchParams, os, playAudio, random, randomString, removeAll, removeItem, setItem, setProxyObj, sortObj, sumObj, trimString };
516
+ function disableBrowserZoom() {
517
+ // @ts-ignore
518
+ document.addEventListener('keydown', function (event) {
519
+ if ((event.ctrlKey === true || event.metaKey === true) &&
520
+ (event.which === 61 ||
521
+ event.which === 107 ||
522
+ event.which === 173 ||
523
+ event.which === 109 ||
524
+ event.which === 187 ||
525
+ event.which === 189)) {
526
+ event.preventDefault();
527
+ }
528
+ }, false);
529
+ // @ts-ignore
530
+ window.addEventListener('mousewheel', function (event) {
531
+ // @ts-ignore
532
+ if (event.ctrlKey === true || event.metaKey) {
533
+ event.preventDefault();
534
+ }
535
+ }, {
536
+ passive: false,
537
+ });
538
+ window.addEventListener('DOMMouseScroll', function (event) {
539
+ // @ts-ignore
540
+ if (event.ctrlKey === true || event.metaKey) {
541
+ event.preventDefault();
542
+ }
543
+ }, {
544
+ passive: false,
545
+ });
546
+ }
547
+
548
+ function copyToClipboard(txt) {
549
+ var textarea = document.createElement('textarea');
550
+ textarea.value = txt;
551
+ document.body.appendChild(textarea);
552
+ textarea.select();
553
+ document.execCommand('copy');
554
+ document.body.removeChild(textarea);
555
+ }
556
+
557
+ export { DATE_FORMAT, FORMAT_DATE, FORMAT_TIME, NIL_STRING, WS, accAdd, accDiv, accMul, accSub, copyToClipboard, cutTimeFn, digitCnUppercase, disableBrowserZoom, download, fileReaderToBase64, 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, isNil, isNull, isObject, isPhone, isSMSCode, isUndefined, log, 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.10",
3
+ "version": "1.3.13",
4
4
  "description": "lgutils",
5
5
  "main": "index.js",
6
6
  "module": "lib/lgutils.cjs.prod.js",
@@ -35,5 +35,5 @@
35
35
  "@types/moment": "^2.13.0",
36
36
  "@types/qs": "^6.9.0"
37
37
  },
38
- "gitHead": "c332434122393a6ee6e267e4dce6fbabfae884f5"
38
+ "gitHead": "a959d0e30cde5def91971ade7fc0a13640eeb8ed"
39
39
  }