@bestime/utils_base 1.0.7 → 1.0.8

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.
@@ -72,7 +72,7 @@ declare function isEmpty(data: any): boolean;
72
72
  * @param data - 判断的值
73
73
  * @returns 真假值
74
74
  */
75
- declare function isFunction(data: any): boolean;
75
+ declare function isFunction(data: any): data is Function;
76
76
 
77
77
  /**
78
78
  * 对象序列化为字符串, 用于URL查询字符串或AJAX请求
@@ -186,20 +186,27 @@ declare function deepFindTreePath(
186
186
  ): undefined | any[];
187
187
 
188
188
  /**
189
- * 强制转换数据为字符串
189
+ * 强制转换数据为字符串。支持百分号、千分位
190
190
  * @param data - 值
191
191
  * @returns 数字
192
192
  */
193
- declare function _Number(data: any): number;
193
+ declare function _Number(data?: any): number;
194
194
 
195
195
  type TNull = undefined | null | '';
196
196
  declare function isNull(data: any): data is TNull;
197
197
 
198
+ /**
199
+ * 匹配数字的正则
200
+ * @returns
201
+ */
202
+ declare function getLikeNumberRegExp(): string;
198
203
  /**
199
204
  *
200
- * @param value 看起来是否像一个数字
205
+ * @param value 看起来是否像一个数字。可识别百分号、千分位
201
206
  * @example
202
207
  * ```
208
+ * isLikeNumber('-123,456,789') => true
209
+ * isLikeNumber('1,4,5.912%') => true
203
210
  * isLickNumber(1) => true
204
211
  * isLickNumber('2.36884') => true
205
212
  * isLickNumber(1/0) => false
@@ -216,14 +223,6 @@ declare function isNull(data: any): data is TNull;
216
223
  */
217
224
  declare function isLikeNumber(value: any): boolean;
218
225
 
219
- /**
220
- * 默认值处理函数
221
- * @param data - 需要处理的数据
222
- * @param value - 如果data为undefined,则返回此值
223
- * @returns 实际值
224
- */
225
- declare function defaultValue<T>(data: any, value: T): T;
226
-
227
226
  /**
228
227
  * 循环复制字符串
229
228
  * @param data - 复制目标
@@ -364,14 +363,6 @@ declare function getRandom(min: number, max: number, isInt?: boolean): number;
364
363
  */
365
364
  declare function _Boolean(data: any): boolean;
366
365
 
367
- /**
368
- * 将树形结构转为一维数组
369
- * @param data - 树
370
- * @param childKey - 子项字段。默认 children
371
- * @returns 浅克隆的数组
372
- */
373
- declare function flatTree(data: any[], childKey?: string): any[];
374
-
375
366
  /**
376
367
  * 简易版深度克隆。(仅处理数组、键值对、方法的可克隆)
377
368
  *
@@ -430,6 +421,7 @@ declare function defineEventBus<T extends EventHander>(
430
421
  off: (hander: T) => void;
431
422
  /** 销毁所有订阅 */
432
423
  dispose: () => void;
424
+ eventList: () => EventHander[];
433
425
  };
434
426
 
435
427
  /**
@@ -602,10 +594,12 @@ declare function arrayRowToColumn<T extends Record<string, any>>(
602
594
  };
603
595
  type TArrayRowToColumnCalculateRow = {
604
596
  proportionBaseField?: string;
605
- count: {
606
- field: string;
607
- mode: 'length' | 'uniqLength' | 'notZeroValue';
608
- };
597
+ count:
598
+ | number
599
+ | {
600
+ field: string;
601
+ mode: 'length' | 'uniqLength' | 'notZeroValue';
602
+ };
609
603
  value: {
610
604
  field: string;
611
605
  mode: 'sum' | 'uniqLength' | 'avg';
@@ -626,14 +620,13 @@ type TColSumaryConfig = Record<
626
620
 
627
621
  type ISpanTableItem<T extends TKvPair> = T & {
628
622
  $rowSpan: Record<string, number>;
629
- $colSpan: Record<number, number>;
630
623
  $colField: Record<string | number, number>;
631
624
  };
632
625
  /**
633
626
  * 合并单元格。不改变原数组
634
627
  * @param data - 一维数组
635
628
  * @param fields - 合并的字段
636
- * @returns 合并后的数据。会在每一项中添加两个字段 "$rowSpan" "$colSpan" "$colField"
629
+ * @returns 合并后的数据。会在每一项中添加两个字段 "$rowSpan" "$colField"
637
630
  */
638
631
  declare function spanTable<T extends TKvPair>(data: T[], fields: string[]): ISpanTableItem<T>[];
639
632
 
@@ -708,7 +701,7 @@ type TListGroupKey<T extends TKvPair> = {
708
701
  };
709
702
  type TGetValueField = string;
710
703
  interface ICellSummary {
711
- denominator?: [string, 'length' | 'uniqLength'];
704
+ denominator?: number | [string, 'length' | 'uniqLength'];
712
705
  /**
713
706
  * sum 求和
714
707
  * length 长度
@@ -830,6 +823,14 @@ declare function union<T extends TKvPair>(...args: T[]): T[];
830
823
 
831
824
  declare function getRatio(value: number | undefined, base: number | undefined): number;
832
825
 
826
+ /**
827
+ * 计算一个数据变化的增长率
828
+ * @param from
829
+ * @param to
830
+ * @returns
831
+ */
832
+ declare function getRiseRatio(from?: number, to?: number): number;
833
+
833
834
  /**
834
835
  * 筛选并从原始数组移除符合条件的数据
835
836
  * @param data - 原始数据
@@ -859,7 +860,133 @@ declare function export_default(
859
860
  unit: string;
860
861
  };
861
862
 
863
+ declare function formatTime(millisecond: number): string;
864
+
865
+ interface IInputHeaderItem {
866
+ field: string;
867
+ title: string;
868
+ children: IInputHeaderItem[];
869
+ }
870
+ interface IParsedHeaderInfoItem extends IInputHeaderItem {
871
+ count: number;
872
+ children: IParsedHeaderInfoItem[];
873
+ }
874
+ interface IParsedHeaderDataItem extends Omit<IParsedHeaderInfoItem, 'children'> {
875
+ colStart: number;
876
+ colEnd: number;
877
+ colSpan: number;
878
+ rowSpan: number;
879
+ }
880
+ /**
881
+ * 将树形数据转换为二维数组,并包含合并行列信息
882
+ * @param header 树形列表
883
+ * @returns
884
+ */
885
+ declare function parseTreeToTableHeader(header: IInputHeaderItem[]): {
886
+ columns: string[];
887
+ data: (IParsedHeaderDataItem | undefined)[][];
888
+ };
889
+
890
+ type TEcharts = Record<string, any>;
891
+ interface IConnectConfigItem {
892
+ onXAxisCtegoryClick?: (xAxisData: any[], tickIndex: number, chart: TEcharts) => void;
893
+ }
894
+ interface IListItem {
895
+ config?: IConnectConfigItem;
896
+ instence: TEcharts;
897
+ onAxxisCategoryClick?: (ev: { tickIndex: number; needEmit?: boolean }) => void;
898
+ onAxxisSeriesClick?: (ev: any) => void;
899
+ timer_01: any;
900
+ }
901
+ declare class ConnectEcharts {
902
+ _list: Record<string, IListItem[]>;
903
+ constructor();
904
+ _resetGroupClickXAxisCategory(chartList: IListItem[]): void;
905
+ clickXAsisCategory(chart: TEcharts, index: number, notEmit?: boolean): void;
906
+ add(i: TEcharts, config: IConnectConfigItem): this;
907
+ remove(chart?: TEcharts): void;
908
+ }
909
+ declare const _default: ConnectEcharts;
910
+
911
+ interface IRuleItem {
912
+ min: number;
913
+ max: number;
914
+ color: string;
915
+ }
916
+ interface IResItem {
917
+ gte: number;
918
+ lt: number;
919
+ color: string;
920
+ }
921
+ /**
922
+ * 对数据进行分段处理
923
+ * @param list
924
+ * @param rules
925
+ * @returns
926
+ */
927
+ declare function getPiecesWithIndex(list: number[], rules: IRuleItem[]): IResItem[];
928
+
929
+ declare function difference<T extends TKvPair | string | number | Date>(
930
+ a: T[],
931
+ b: T[],
932
+ compareFn: (a: T, b: T) => boolean
933
+ ): T[];
934
+
935
+ type TreeItem<T extends TKvPair> = T & {
936
+ children?: TreeItem<T>[];
937
+ };
938
+ /**
939
+ * 获取树形结构的叶子节点
940
+ * @param list - 树形结构数据
941
+ * @returns 叶子节点组装的一维数组
942
+ */
943
+ declare function treeLeafs<T extends TKvPair>(list: TreeItem<T>[]): TreeItem<T>[];
944
+
945
+ /**
946
+ * 默认数据处理
947
+ * @param placeValue - 无值时返回什么数据
948
+ * @param value - 需要处理的数据
949
+ * @param formatter - 数据格式化
950
+ * @returns
951
+ */
952
+ declare function defualtFormatter<T, R>(
953
+ placeValue: R,
954
+ value: T,
955
+ formatter?: (value: NonNullable<T>) => R
956
+ ): R;
957
+
958
+ type TEasingHandler = (
959
+ passTime: number,
960
+ fromValue: number,
961
+ changeValue: number,
962
+ duration: number
963
+ ) => number;
964
+ type TChangeCallack<T> = (data: T, progress: number) => void;
965
+ interface IAnimateOptions<T> {
966
+ /** 原始值 */
967
+ from: T;
968
+ /** 最终值 */
969
+ to: T;
970
+ /** 缓动函数 */
971
+ easing: TEasingHandler;
972
+ /** 持续时间:毫秒 */
973
+ duration: number;
974
+ /** 每次值更新的回调 */
975
+ onChange: TChangeCallack<T>;
976
+ }
977
+ declare class Animate<T extends TKvPair> {
978
+ _timer: any;
979
+ _passTime: number;
980
+ _options: IAnimateOptions<T>;
981
+ _middleData: T;
982
+ constructor(options: IAnimateOptions<T>);
983
+ start(): this;
984
+ stop(): this;
985
+ dispose(): void;
986
+ }
987
+
862
988
  export {
989
+ Animate,
863
990
  Polling,
864
991
  TArrayRowToColumnCalculateRow,
865
992
  _Array,
@@ -870,20 +997,25 @@ export {
870
997
  arrayRowToColumn,
871
998
  changeIndex,
872
999
  cloneEasy,
1000
+ _default as connectEcharts,
873
1001
  dataPage,
874
1002
  deepFindItem,
875
1003
  deepFindTreePath,
876
- defaultValue,
877
1004
  defineEventBus,
1005
+ defualtFormatter,
1006
+ difference,
878
1007
  fieldCheck,
879
1008
  filterWithMove,
880
- flatTree,
881
1009
  floorFixed,
882
1010
  forEach,
883
1011
  forEachKvPair,
884
1012
  forEachTree,
1013
+ formatTime,
1014
+ getLikeNumberRegExp,
1015
+ getPiecesWithIndex,
885
1016
  getRandom,
886
1017
  getRatio,
1018
+ getRiseRatio,
887
1019
  getSortIndex,
888
1020
  getType,
889
1021
  isArray,
@@ -902,6 +1034,7 @@ export {
902
1034
  padStart,
903
1035
  param,
904
1036
  parseQuery,
1037
+ parseTreeToTableHeader,
905
1038
  randomColor,
906
1039
  repeatString,
907
1040
  roundFixed,
@@ -912,6 +1045,7 @@ export {
912
1045
  split,
913
1046
  thousands,
914
1047
  flatArrayToTree as tree,
1048
+ treeLeafs,
915
1049
  trim,
916
1050
  union,
917
1051
  urlToGet,
@@ -0,0 +1,5 @@
1
+ /**
2
+ * 纯JS工具库 => jUtilsBase
3
+ * @update 2024-08-27 10:15:09
4
+ */
5
+ var $letters=["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"],$ArrayTypeNameBig="Array",$ClassTypeNameBig="Class",$FunctionTypeNameBig="Function",$ObjectTypeNameBig="Object",$stringTypeNameBig="String",$numberTypeNameBig="Number",$undefinedValue=void 0,$zeroString="0",$falseString="false",$trueString="true",$ObjectTypeNameBigPrototypeToString=Object.prototype.toString,$encodeURI=encodeURI,$decodeURIComponent=decodeURIComponent,$regSpaceStr="\\s\\uFEFF\\xA0",$zeroWidthCode="‎";function isNull(e){return null===e||e===$undefinedValue}function _String(e){return isNull(e)?"":String(e)}var smallFunName=$FunctionTypeNameBig.toLowerCase();function isFunction(e){return typeof e===smallFunName}function isClass(e){return isFunction(e)&&/^class\s/.test(Function.prototype.toString.call(e))}function getType(e){return isClass(e)?$ClassTypeNameBig:$ObjectTypeNameBigPrototypeToString.call(e).slice(8,-1)}function isArray(e){return getType(e)===$ArrayTypeNameBig}function isKvPair(e){return getType(e)===$ObjectTypeNameBig}function isString(e){return getType(e)===$stringTypeNameBig}function hpJsonParse(e,n){var t;try{t=JSON.parse(e)}catch(r){t=n}return t}function _KvPair(e){return e=isKvPair(e)||isKvPair(e=hpJsonParse(e))?e:{}}function isEmpty(e){return isNull(e)||""===e}function param(e){var t=[];function i(e,n){null!=e&&""!==e&&(n=null==(n=isFunction(n)?n():n)?"":n,t[t.length]=$encodeURI(e)+"="+$encodeURI(n))}return function a(e,n){var t,r;if(e)switch(getType(n)){case $ArrayTypeNameBig:for(t=0;t<n.length;t++)a(e+"["+("object"==typeof n[t]&&n[t]?t:"")+"]",n[t]);break;case $ObjectTypeNameBig:for(r in n)a(e+"["+r+"]",n[r]);break;default:i(e,n)}else switch(getType(n)){case $stringTypeNameBig:case $ObjectTypeNameBig:for(r in n)a(r,n[r]);break;case $ArrayTypeNameBig:for(t=0;t<n.length;t++)i(n[t].name,n[t].value)}}("",e),t.join("&")}function _Array(e){return e=isArray(e)||isArray(e=hpJsonParse(e))?e:[]}function isNumber(e){return getType(e)===$numberTypeNameBig}var baseReg="["+$regSpaceStr+"]+";function trim(e,n){var t=getType(e),r=(t===$numberTypeNameBig&&(e=String(e),t=$stringTypeNameBig),"");if(t!==$stringTypeNameBig)return"";switch(n){case 1:r="^"+baseReg;break;case-1:r=baseReg+"$";break;case"*":r=baseReg;break;default:r="^"+baseReg+"|"+baseReg+"$"}return e.replace(new RegExp(r,"g"),"")}function _Number(e){var n=!1,t=0,t=isNumber(e)?e:(isString(e)&&(e=trim(e,"*").replace(/,/g,"").replace(/%$/,function(e){return n=!0,""})),Number(e));return t=Math.abs(t)===Math.abs(Infinity)||isNaN(t)?0:t,n&&(t/=100),t}function hpTryToParseStringToBasicType(e){return null==e?$undefinedValue:$falseString!==e&&($trueString===e||hpJsonParse(e,e))}var defaultSplitArr=[$undefinedValue,$undefinedValue];function handleDeepKey(e,n,t){var n=splitSymbol(n),r=n[0];isPreLikeArray(r)?(r=_Number(r),n[1]==$undefinedValue?e.push(t):(/^\[[\D]+\]/.test(n[1])?e[r]=_KvPair(e[r]):e[r]=_Array(e[r]),handleDeepKey(e[r],n[1],t))):n[1]==$undefinedValue?e[r]=t:(/^\[[\D]+\]/.test(n[1])?e[r]=_KvPair(e[r]):e[r]=_Array(e[r]),handleDeepKey(e[r],n[1],t))}function splitSymbol(e){if(e==$undefinedValue)return defaultSplitArr;var r,i=e;return e.replace(/^\[(.*?)\](.*)?/,function(e,n,t){return i=n,r=t,""}),[i,r]}function isPreLikeArray(e){return""===e||/^\d+$/.test(e)}function parseQuery(e){var a={},o=!1,t="";return(e=isNull(e)?"":e).replace(/([^=&?/#]*?)=([^=&?/#]*)/g,function(e,n,i){i=hpTryToParseStringToBasicType($decodeURIComponent(i)),t=$decodeURIComponent(n),o=!1,""!==t&&(t.replace(/(.*?)(\[.*)/,function(e,n,t){var r=splitSymbol(t);o=!0,isPreLikeArray(r[0])?a[n]=_Array(a[n]):a[n]=_KvPair(a[n]),handleDeepKey(a[n],t,i)}),o||(a[t]=i))}),a}function urlToGet(e,n){e=_String(e);var a=isKvPair(n)?n:parseQuery(n),n=parseQuery(e=e.replace(/({{)(.*?)(}})/g,function(e,n,t,r){t=trim(t);var i=a[t];return delete a[t],i})),n=param(a=Object.assign(n,a));return e=n?(e=e.replace(/\?.*/,""))+"?"+n:e}function hpIsEmptyMap(e){var n,t=!0;for(n in e)if(n!==$undefinedValue){t=!1;break}return t}function forEach(e,n){for(var t=0;t<e.length;t++)n(e[t],t,e)}function cloneEasy(n){switch(getType(n)){case $ClassTypeNameBig:t=Object.assign(Object.create(Object.getPrototypeOf(n)),n);break;case $ArrayTypeNameBig:for(var t=[],e=0;e<n.length;e++)t.push(cloneEasy(n[e]));break;case $ObjectTypeNameBig:t={},forEach(Object.keys(n),function(e){t[e]=cloneEasy(n[e])});break;case $FunctionTypeNameBig:function r(){n.apply(this,arguments)}for(var i in n.prototype)r.prototype[i]=n.prototype[i];t=r;break;default:t=n}return t}function isNoData(e,n){var t=!1;return t=isArray(e)&&n.array&&0===e.length||isKvPair(e)&&n.kvPair&&hpIsEmptyMap(e)||isString(e)&&n.string&&""===e||isNull(e)?!0:t}function hander(e,n){if(isKvPair(e))for(var t in e){var r=e[t];(isArray(r)||isKvPair(r))&&hander(r,n),isNoData(r,n)&&delete e[t]}}function shake(e,n){n=Object.assign({string:!0,array:!0,kvPair:!0},n);return hander(e=cloneEasy(e),n),e}function variableHasValue(e,n,t){var r;t=null==t?60:t,e()?n():(clearTimeout(r),setTimeout(function(){variableHasValue(e,n,t)},t))}variableHasValue["async"]=function(n,t){return new Promise(function(e){variableHasValue(n,e,t)})};var DEFAULT_CONFIG={id:"id",children:"children"};function deepFindTreePath(e,n,t){t=Object.assign(DEFAULT_CONFIG,t);for(var r=[],i=cloneEasy(e),a=new Set,o=t["children"];i.length;){var u=i[0];if(a.has(u))r.pop(),i.shift();else if(a.add(u),u[o]&&i.unshift.apply(i,u[o]),r.push(u),n(u))return r}return undefined}var regStr=/(-|\+)?((\d+)|((\d,?)+\d+))(\.?\d+)?%?/.toString().replace(/(^\/)|(\/$)/g,"");function getLikeNumberRegExp(){return regStr}function isLikeNumber(e){e=trim(e);return new RegExp("^"+regStr+"$").test(e)}function repeatString(e,n){var t="";if((e=_String(e)).length*n<1<<28)for(;1==(1&n)&&(t+=e),0!=(n>>>=1);)e+=e;return t}function hpPadString(e,n,t,r){return(e=_String(e)).length>(n>>=0)?e:(n-=e.length,t.length<n&&(t+=repeatString(t,n/t.length)),-1===r?t.slice(0,n)+e:e+t.slice(0,n))}function padStart(e,n,t){return hpPadString(e,n,t,-1)}function padEnd(e,n,t){return hpPadString(e,n,t,1)}function split(e,n){return""!==e?e.split(n):[]}function floorFixed(e,n,t){var e=split(e=trim(_Number(e)),"."),r=e[1]||"";return r.length<n&&(r=padEnd(r,n,$zeroString),t&&(r=r.replace(/0+$/,""))),n<1||!r?e[0]:e[0]+"."+r.substring(0,n)}function roundFixed(e,n,t){e=_Number(e);var r,i=Math.pow(10,n),e=_String(Math.round(e*i)/i);return 0<n&&(r=(i=split(e,"."))[0],(i=i[1]||"").length<n&&(i=padEnd(i,n,$zeroString),e=(i=t?i.replace(/0+$/,""):i)?r+"."+i:r)),e}function deepFindItem(e,t,n){var r,i,a=isNull(n)?"children":n;return function o(e){if(e)for(var n=0;n<e.length;n++){if(i=t(e[n])){r=e[n];break}if(o(e[n][a]),i)break}}(e),r}function flatArrayToTree(e,n){for(var t=(n=_KvPair(n)).id||"id",r=n.pid||"pid",i=n.children||"children",a=0;a<e.length;a++){var o,u=e[a];(o=deepFindItem(e,function(e){return null!=e[t]&&e[t]!=u[t]&&e[t]===u[r]},i))&&(o[i]=_Array(o[i]),o[i].push(u),e.splice(a--,1))}return e}function changeIndex(e,n,t){if(e<0)return n;e+=1;return(n=(n+t)%e)<0&&(n+=e),-0===n?0:n}function getRandom(e,n,t){t=!1===t?0:1;return e=Math.random()*(n-e+t)+e,t?Math.floor(e):e}function getRandomWord(){return $letters[getRandom(0,$letters.length-1)][0]}function uuid(e){e=_Number(e);for(var n="",t=0;t<13;t++)n+=getRandom(1,9);e=(new Date).getTime()*getRandom(1,100);return padEnd(getRandomWord()+Number(n).toString(32)+e.toString(32),20,getRandomWord()+getRandomWord()+getRandomWord())}function _Boolean(e){return!0===e||"true"===e||"1"===e||1===e}function main(e,i,a,o){o=o||"children";var n=[];return function u(e,n){for(var t=0;t<e.length;t++){var r=a(e[t]);isNull(r)||(n[t]=cloneEasy(r),e[t][o]&&(n[t][i]=[],u(e[t][o],n[t][i])))}}(e,n),n}var events={};function defineEventBus(i){if(events[i])throw'"'+i+'" Has already been registered!';return events[i]=events[i]||[],{on:function(e){events[i].push(e)},emit:function(){for(var e=arguments.length,n=new Array(e),t=0;t<e;t++)n[t]=arguments[t];for(var r=0;r<events[i].length;r++)events[i][r].apply($undefinedValue,n)},off:function(e){if(!e)throw"the hander of off is required!";for(var n=0;n<events[i].length;n++)events[i][n]===e&&events[i].splice(n--,1)},dispose:function(){for(var e=0;e<events[i].length;e++)events[i].splice(e--,1);delete events[i]},eventList:function(){return events[i]}}}function forEachTree(e,i,a){a=a||"children",function o(e,n){for(var t=0;t<e.length;t++){var r=cloneEasy(n);i(e[t],r),isArray(e[t][a])&&(r.push(e[t]),o(e[t][a],r))}}(e,[])}function randomColor(){return"rgba("+getRandom(0,255,!0)+","+getRandom(0,255,!0)+","+getRandom(0,255,!0)+",1)"}function emptyFunc(e,n){}var Polling=function(){function e(e){this._timer=void 0,this._timer_info=void 0,this._stamp=0,this._passStamp=0,this._option=void 0,this._option=Object.assign({timeout:6e3,interval:1e3,handler:emptyFunc},e),this._next=this._next.bind(this),this._doOnce=this._doOnce.bind(this),this.done=this.done.bind(this)}var n=e.prototype;return n._next=function(){return clearInterval(this._timer),this._passStamp=+new Date-this._stamp,this._timer=setTimeout(this._doOnce,this._option.interval),this},n._doOnce=function(){if(this._passStamp>=this._option.timeout)return this._option.onMessage&&this._option.onMessage(0),this.done(),this;this._option.handler(this._next,this.done)},n.start=function(){var e,n=this;this._stamp=+new Date,this.done(),this._doOnce();return this._option.onMessage&&(clearInterval(this._timer_info),this._timer_info=setInterval(function(){e=+new Date-n._stamp,0===(e=Math.max(n._option.timeout-e,0))&&n.done(),n._option.onMessage(e)},100)),this},n.done=function(){return clearTimeout(this._timer),clearTimeout(this._timer_info),this},n.dispose=function(){return this.done(),this},e}();function dataPage(e,n,t){if(t<1)throw"页码必须大于0";var r=(t-1)*n,i=r+n;return{current:t,total:e.length,size:n,pages:Math.ceil(e.length/n),data:cloneEasy(e.slice(r,i))}}function basicCheck(e,n,t,r){if(e="【"+e+"】",t&&isEmpty(n))throw"字段"+e+"不能为空";if(getType(n)!==r)switch(r){case"String":n=String(n);break;case"Number":if(!isLikeNumber(n))throw"字段"+e+"必须为数字";n=Number(n)}return n}var fieldCheck={number:function(e,n){return basicCheck(e,n,!(2<arguments.length&&arguments[2]!==undefined)||arguments[2],"Number")},string:function(e,n){return basicCheck(e,n,2<arguments.length&&arguments[2]!==undefined&&arguments[2],"String")}};function uniq(e){return Array.from(new Set(e))}var defaultSortFun=function(e,n){return Number(e)-Number(n)},_names_count=0,_namesMap={};function getIdMap(e){return _namesMap[e]||(_namesMap[e]={id:++_names_count,label:e}),_namesMap[e]}function createUniqIds(e,n){var t=[],r=[];return e.forEach(function(e){e=getIdMap(n[e]);t.push(e.id),r.push(e.label)}),{id:t.join("_"),label:r.join("→")}}function arrayRowToColumn(e,i){var n,t=[],a=(e.forEach(function(e){e=String(e[i.colField]);t.includes(e)||t.push(e)}),t.sort(null!=(r=i.colSort)?r:defaultSortFun),{}),f=(e.forEach(function(n){var e=createUniqIds(i.uniqueRowId,n),t={},r=(i.uniqueRowId.forEach(function(e){t[e]=n[e]}),a[e.id]=a[e.id]||{value:t,name:e.label,data:{}},i.colCreate(n[i.colField]).field);a[e.id].data[r]=a[e.id].data[r]||[],a[e.id].data[r].push(n)}),[]);for(n in a)f.push({name:a[n].name,value:a[n].value,data:a[n].data,summary:{}});var r=t.map(function(e){var n=i.colCreate(e);return{value:e,label:n.label,field:n.field}}),d={};return i.summaryConfig&&(i.summaryConfig.row&&(f=mergeRowSummary(f,i.summaryConfig.row,i.summaryConfig.averageField)),i.summaryConfig.column&&(d=mergeColSummary(f,i.summaryConfig.column,i.summaryConfig.averageField))),{columns:r,data:f,colSummary:d,getExtRow:function(n,e,t){var r,i=f.find(function(e){return e.name===n}),a={};if(!i){var o=e,u=t,c=d[n],s={};if(c)for(var l in c)s[l]=u(c[l][o]);return s}for(r in i.summary)a[r]=t(i.summary[r][e]);return a}}}function getZengzhngl(e,n){return e===$undefinedValue||n===$undefinedValue?$undefinedValue:(n-e)/Math.abs(e)}function mergeRowSummary(i,a,n){return i.forEach(function(c){var s=a[c.name];if(s){var l,e,f=0,d=0;for(e in c.data)!function(e){d++;var n,t=[],r=0,i=[],a=[],o=(c.data[e].forEach(function(e){isNumber(s.count)||t.push(e[s.count.field]);var n=_Number(e[s.value.field]);switch(s.value.mode){case"uniqLength":i.push(e[s.value.field]),i=uniq(i),r=i.length;break;case"sum":case"avg":r+=n}0!==n&&a.push(n)}),0);if(isNumber(s.count))o=s.count;else switch(s.count.mode){case"length":o=t.length;break;case"uniqLength":o=uniq(t).length;break;case"notZeroValue":o=a.length}var u=r;"avg"===s.value.mode&&(u=r/o),f+=u,c.summary[e]={value:u,proportion:0,riseRatio:l?getZengzhngl(null==(n=c.summary[l])?void 0:n.value,u):void 0},l=e}(e);c.summary[n]={value:f/d,riseRatio:$undefinedValue,proportion:0}}}),i.forEach(function(e){var n=a[e.name];if(n){var t=i.find(function(e){return e.name===n.proportionBaseField});if(n.proportionBaseField&&t)for(var r in e.summary)e.summary[r].proportion=e.summary[r].value/t.summary[r].value}}),i}function mergeColSummary(s,l,f){var e,d={},m={},n=function(i){m[i]={},d[i]={};var e,a=l[i],n=(s.forEach(function(r){for(var e in r.data)!function(e){d[i][e]=d[i][e]||{data:[],sum:0};var n=[],t=0;switch(r.data[e].forEach(function(e){switch(n.push(e[a.field]),a.mode){case"uniqLength":n=uniq(n);break;case"avg":case"sum":t+=e[a.field];break;case"notZeroLength":0!==_Number(e[a.field])&&t++}}),a.mode){case"uniqLength":n=uniq(n);break;case"avg":t/=r.data[e].length}d[i][e].data=d[i][e].data.concat(n),d[i][e].sum+=t}(e)}),void 0);for(e in d[i]){var t,r=0;switch(a.mode){case"avg":r=d[i][e].sum/s.length;break;case"uniqLength":r=uniq(d[i][e].data).length;break;case"notZeroLength":case"sum":r=d[i][e].sum}m[i][e]={value:r,proportion:0,riseRatio:n?getZengzhngl(null==(t=m[i][n])?void 0:t.value,r):void 0},n=e}var o,u=0,c=0;for(o in m[i])u+=m[i][o].value,c++;m[i][f]={value:u/c,riseRatio:$undefinedValue,proportion:0}};for(e in l)n(e);return m}function sameRowCellCount(e,n,t,r){var i=1;for(e++;e<r.length;e++){var a=r[e][n];if(a!==t&&!isEmpty(a))break;i++}return i}function findPrevRowSpanNum(e,n,t){for(var r=0;0<=n&&!(0<(r=e[n].$rowSpan[t]));n--);return r}function sameColSellCount(e,n,t,r){var i=1;for(e++;e<r.length;e++){var a=trim(t[r[e]]);if(a!==n&&!isEmpty(a))break;i++}return i}function spanTable(e,u){var c=cloneEasy(e),s={};return u.forEach(function(e,n){var i,a,o;i=e,a=u[n-1],o=0,c.forEach(function(e,n){e.$rowSpan=null!=(r=e.$rowSpan)?r:{};var t,r=e[i];s[i]=null!=(t=s[i])?t:0,1<s[i]?(e.$rowSpan[i]=0,s[i]--):(t=sameRowCellCount(n,i,r,c),void 0!==a&&(r=findPrevRowSpanNum(c,n,a),0<o?r<=o+t?(t=r-o,o=0):o+=t:t<r?o=t:t=r),s[i]=t,e.$rowSpan[i]=s[i])})}),c.forEach(function(r){r.$colField={};var i=0;u.forEach(function(e,n){var t=r[e];1<i?(r.$colField[e]=0,i--):(i=sameColSellCount(n,t,r,u),r.$colField[e]=i)})}),c}function thousands(e,i,a){return i=i||3,a=a||",",(isString(e)?e:_String(e)).replace(/([^.]*)?(\.)?(.*)?/,function(e,n,t,r){return _String(n).replace(new RegExp("(.(?=(.{"+i+"})+$))","g"),"$1"+a)+_String(t)+_String(r)})}function mapKvPair(e,n){var t,r={};for(t in e)r[t]=n(cloneEasy(e[t]),t);return r}function isFuzzyMatch(e,n,t){var r=!0;return(e=trim(e,"*"))&&(e=split(e,"").join(".*"),r=new RegExp(e,_String(t)).test(n)),r}function mixInZeroWidthUnicode(e){return split(e,"").join($zeroWidthCode)}function forEachKvPair(e,n){var t,r={},i=-1;for(t in e)i++,r[t]=n(e[t],t,i);return r}function getSortList(e){return e.map(function(e,n){return{value:e,index:n}})}function getSortIndex(e,t){var n=getSortList(e),r=getSortList(e);return r.sort(function(e,n){return t(e.value,n.value)}),n.map(function(n){return r.findIndex(function(e){return n.index===e.index})})}function sortWithIndex(e,n){for(var t=[],r=0;r<e.length;r++)t[r]=e[n[r]];return t}function getRatio(e,n){return 0===e||isNull(e)?0:0===n||isNull(n)?1:e/n}function difference(e,t,r){var i=[];return e.forEach(function(n){t.some(function(e){return r(e,n)})||i.push(n)}),t.forEach(function(n){e.some(function(e){return r(e,n)})||i.some(function(e){return r(e,n)})||i.push(n)}),i}function defualtFormatter(e,n,t){return isNull(n)?e:(e=n,t?t(e):e)}function hpObjectKeys(e){return Object.keys(e)}var AVG_FIELD="sys-row-avg";function getUniqId(e,n){var t=[];return isArray(e)?e.forEach(function(e){t.push(n[e])}):t.push(n[e]),t.join("→")}function _rowToColumn(e,n){var u={},t=n.colField;if(!isNull(t)&&e.length){var i=n.cellSummary;if(e.forEach(function(e){var n=e[t];u[n]=u[n]||{data:[],summary:0,_collect:[]},u[n].data.push(e),i&&(e=e[i.numerator[0]],u[n].summary+=e,u[n]._collect.push(e))}),!isNull(i)){var r,a,o;for(r in u)!function(e){var n=u[e],t=1,r=i.denominator;if(r)if(isNumber(r))t=r;else switch(r[1]){case"length":t=n.data.map(function(e){return e[r[0]]}).length;break;case"uniqLength":t=uniq(n.data.map(function(e){return e[r[0]]})).length}switch(i.numerator[1]){case"sum":isNull(n.summary)||(n.summary=n.summary/t);break;case"length":n.summary=n._collect.length/t;break;case"uniqLength":n.summary=uniq(n._collect).length/t}}(r);o=a=0,forEachKvPair(u,function(e){a++;e=isNull(e.summary)?0:e.summary;o+=e}),u[AVG_FIELD]={data:[],summary:o/a,_collect:[]},n.colCustom&&forEachKvPair(n.colCustom,function(e,n){var t=c(e.numerator),e=e.denominator?c(e.denominator):1;u[n]={data:[],summary:getRatio(t,e),_collect:[]}})}}return u;function c(a){var o=0,e=hpObjectKeys(u).filter(function(e){var n=[AVG_FIELD].includes(e),e="*"===a[1]||a[1].includes(e);return!n&&e});return isArray(a[1])&&e.sort(function(e,n){return a[1].indexOf(e)-a[1].indexOf(n)}),e.forEach(function(e,n){var t,r,e=u[e],i=0;isNull(a[2])||"value"===a[2]?i=isNull(e.summary)?0:e.summary:"length"===a[2]?(t=a[3])&&(i=e.data.map(function(e){return e[t]}).length):"uniqLength"===a[2]&&(r=a[3])&&(i=uniq(e.data.map(function(e){return e[r]})).length),"sum"===a[0]?o+=i:"max"===a[0]?o=Math.max(o,i):"diff"===a[0]&&(0===n?o=i:o-=i)}),o}}function _groupToList(e,n,t,r){var i,a=[];for(i in e){var o=n===t,u=_groupToList(e[i].child,n,t+1,r);a.push({uidPath:e[i].uidPath,uid:e[i].uid,data:e[i].data,_columnRiseRatio:{},_columnTotal:{},_columnProportion:{},_columns:_rowToColumn(e[i].data,r),isLeaf:o,children:u})}return a}function deepGroup(e,u){var n={},c=0;!function l(e,n,t){for(var r=0;r<n.length;r++){var i=n[r],a=getUniqId(u.path[c].field,i);e[a]=e[a]||{uidPath:t.concat(a),uid:a,data:[],child:{}},e[a].data.push(i)}if(c<u.path.length-1)for(var o in c++,e)l(e[o].child,e[o].data,e[o].uidPath)}(n,e,[]);var e=_groupToList(n,c,0,u),r=(!function i(e,n){var t;e.sort(null==(t=u.path[n])?void 0:t.sort),e.forEach(function(e){i(e.children,n+1)})}(e,0),!function a(e){e.forEach(function(e){var t={};forEachKvPair(e._columns,function(e,n){e=isNull(e.summary)?0:e.summary;t[n]=t[n]||0,t[n]+=e}),e._columnTotal=t,a(e.children)})}(e),{}),s=(e.forEach(function(t){forEachKvPair(t._columns,function(e,n){r[n]=r[n]||0,r[n]+=t._columnTotal[n]})}),[]);return u.colCustom&&forEachKvPair(u.colCustom,function(e,n){e.riseRatio||s.push(n)}),function t(e){var a={},o={};e.forEach(function(e,i){forEachKvPair(e._columns,function(e,n){var t,r;s.includes(n)||(0<i?isNull(t=e.summary)?o[n]=$undefinedValue:(r=null!=(r=a[n])?r:0,o[n]=getRatio(t-r,r)):o[n]=void 0,a[n]=e.summary)}),e._columnRiseRatio=o,t(e.children)})}(e),function o(e,r){e.forEach(function(e,n){var t={};forEachKvPair(e._columns,function(e,n){t[n]=getRatio(e.summary,r[n])}),e._columnProportion=t,o(e.children,e._columnTotal)})}(e,r),{data:e,total:r}}function listGroup(e,n){var l=deepGroup(e,n);function a(e,n,t,r,i){var a=deepFindItem(l.data,function(e){return 0===difference(e.uidPath,n,function(e,n){return e===n}).length}),o=defualtFormatter("",i);if(a)try{switch(e){case"_columnRiseRatio":case"_columnTotal":case"_columnProportion":var u=a[e][t];return isNull(u)?o:r(u);default:var c=a[e][t].summary;return isNull(c)?o:r(c,a[e][t].data)}}catch(s){return o}return o}function o(e,n,t,r){return a("_columns",e,n,t,r)}function u(e,n,t,r){return a("_columnProportion",e,n,t,r)}return{data:l.data,getCellValue:o,getCellVerticalRiseRatio:function(e,n,t,r){return a("_columnRiseRatio",e,n,t,r)},getCellVerticalTotal:function(e,n,t,r){var i;return"*"===e?isNull(i=l.total[n])?defualtFormatter("",r):t(i):a("_columnTotal",e,n,t,r)},getCellVerticalProportion:u,getRowCellValue:function(n,e,t,r){var i={};return e.forEach(function(e){i[e.id]=o(n,e.field,t,r)}),i},getRowVerticalProportion:function(n,e,t,r){var i={};return e.forEach(function(e){i[e.id]=u(n,e.field,t,r)}),i},getOriginGroupData:function(n,e){var t=deepFindItem(l.data,function(e){return 0===difference(e.uidPath,n,function(e,n){return e===n}).length});return t&&null!=(t=null==(e=t._columns[e])?void 0:e.data)?t:[]},getOriginAllData:function(){return e}}}function union(){for(var e=arguments.length,n=new Array(e),t=0;t<e;t++)n[t]=arguments[t];var r=new Set(n);return Array.from(r)}function isLick0(e){return isNull(e)||0===e}function getRiseRatio(e,n){return isLick0(e)&&isLick0(n)?0:isLick0(e)?1:isLick0(n)?-1:(n-e)/e}function filterWithMove(e,n){for(var t=[],r=0;r<e.length;r++){var i=e[r];n(i,r,e)&&(t.push(i),e.splice(r--,1))}return t}var defaUnits=[[1e4,"万"],[1e8,"亿"]];function shortNumber(e,n,t){for(var r=isNull(t)?defaUnits:t,i=(r.sort(function(e,n){return n[0]-e[0]}),e),a="",o=0;o<r.length;o++){var u=r[o],c=e/u[0];if(1<=Math.abs(c)){i=c,a=u[1];break}}return{value:i,fmtValue:n(i),unit:a}}function zeroWidthNum(e,n){return padStart(e,n,"0")}function formatTime(e){var e=new Date(e),n=e.getFullYear(),t=e.getMonth()+1,r=e.getDate(),i=e.getHours(),a=e.getMinutes(),o=e.getSeconds(),e=e.getMilliseconds();return zeroWidthNum(n,4)+"/"+zeroWidthNum(t,2)+"/"+zeroWidthNum(r,2)+" "+zeroWidthNum(i,2)+":"+zeroWidthNum(a,2)+":"+zeroWidthNum(o,2)+":"+zeroWidthNum(e,3)}function countCol(e){var n=0;return isArray(e.children)?e.children.forEach(function(e){n+=countCol(e)}):n=1,n}function deepParseInfo(e){return main(e,"children",function(e){return{field:e.field,title:e.title,count:countCol(e)}})}function createHeaderRowData(e,i,a,o){return i[a]||(i[a]=[]),o-=1,e.forEach(function(e){var n=o+1,t=(o=n+e.count-1)-n+1,t={colStart:n,colEnd:o,colSpan:t,count:e.count,field:e.field,title:e.title,rowSpan:1};i[a][n]=t;for(var r=1;r<e.count;r++)i[a][n+r]=void 0;isArray(e.children)&&0<e.children.length&&createHeaderRowData(e.children,i,a+1,n)}),i.forEach(function(e){for(var n=0;n<i[0].length;n++)e[n]||(e[n]=void 0)}),i}function getColumnFields(e){for(var t=[],n=e.length-1;0<=n;n--)e[n].forEach(function(e,n){e&&e.field&&isNull(t[n])&&(t[n]=e.field)});return t}function setRowSpan(i){i.forEach(function(e,t){e.forEach(function(e,n){e&&(e.rowSpan=function(e,n){for(var t,r=0;e<i.length&&(null==i||null==(t=i[e])||!t[n]);e++)r++;return r}(t+1,n)+1)})})}function parseTreeToTableHeader(e){e=createHeaderRowData(deepParseInfo(e),[],0,0);return setRowSpan(e),{columns:getColumnFields(e),data:e}}var ConnectEcharts=function(){function e(){this._list={}}var n=e.prototype;return n._resetGroupClickXAxisCategory=function(i){i.forEach(function(n){clearTimeout(n.timer_01),n.instence.off("click",n.onAxxisSeriesClick),n.instence.off("click",n.onAxxisCategoryClick),n.onAxxisCategoryClick=function(e){var t=e.tickIndex,r=!1!==e.needEmit;clearTimeout(n.timer_01),n.timer_01=setTimeout(function(){i.forEach(function(e){var n=cloneEasy(e.instence.getOption());isArray(n.xAxis)&&n.xAxis.length&&r&&e.config&&e.config.onXAxisCtegoryClick&&(n=n.xAxis,e.config.onXAxisCtegoryClick(n.map(function(e){return e.data}),t,e.instence))})},30)},n.onAxxisSeriesClick=function(e){"markLine"!==e.componentType&&null!=n&&n.onAxxisCategoryClick&&n.onAxxisCategoryClick({tickIndex:e.dataIndex})},n.instence.on("click","series",n.onAxxisSeriesClick),n.instence.on("click","xAxis.category",n.onAxxisCategoryClick)})},n.clickXAsisCategory=function(e,n,t){var r,i=!0!==t;for(r in this._list)for(var a=0;a<this._list[r].length;a++){var o=this._list[r][a];o.instence===e&&o.onAxxisCategoryClick&&o.onAxxisCategoryClick({tickIndex:n,needEmit:i})}},n.add=function(e,n){var t=e.group;return t&&(this._list[t]=this._list[t]||[],this._list[t].push({config:n,instence:e,timer_01:-1}),this._resetGroupClickXAxisCategory(this._list[t])),this},n.remove=function(e){if(e)for(var n in this._list)for(var t=0;t<this._list[n].length;t++){var r=this._list[n][t];clearTimeout(r.timer_01),r.instence===e&&(r.instence.off("click",r.onAxxisCategoryClick),this._list[n].splice(t--,1))}},e}(),connectEcharts=new ConnectEcharts;function getPiecesWithIndex(e,r){var i=[];return forEach(e,function(n,e){var t=r.find(function(e){return n>=e.min&&n<e.max});t&&i.push({gte:e,lt:e+1,color:t.color})}),i}function deepFunc(e,n){forEach(e,function(e){isArray(e.children)?deepFunc(e.children,n):n.push(e)})}function treeLeafs(e){var n=[];return deepFunc(e,n),n}var Animate=function(){function e(e){this._timer=void 0,this._passTime=0,this._options=void 0,this._middleData=void 0,this._options=e,this._middleData=cloneEasy(e.to)}var n=e.prototype;return n.start=function(){var n=this,{from:t,to:r,easing:c,duration:s,onChange:i}=this._options,a=(new Date).getTime()-this._passTime;return clearInterval(this._timer),this._timer=setInterval(function(){var o=Math.min((new Date).getTime()-a,s),e=(!function u(r,i,a){function e(e){var n,t;isNumber(i[e])||isNumber(a[e])?(n=_Number(i[e]),t=_Number(a[e]),r[e]=c(o,n,t-n,s)):(isArray(i[e])||isKvPair(i[e]))&&u(r[e],i[e],a[e])}if(isArray(i))for(var n=0;n<i.length;n++)e(n);else if(isKvPair(i))for(var t in r)e(t)}(n._middleData,t,r),o/s);1==e&&(clearInterval(n._timer),o=0),n._passTime=o,i(n._middleData,e)},17),this},n.stop=function(){return clearInterval(this._timer),this},n.dispose=function(){this.stop()},e}();export{Animate,Polling,_Array,_Boolean,_KvPair,_Number,_String,arrayRowToColumn,changeIndex,cloneEasy,connectEcharts,dataPage,deepFindItem,deepFindTreePath,defineEventBus,defualtFormatter,difference,fieldCheck,filterWithMove,floorFixed,forEach,forEachKvPair,forEachTree,formatTime,getLikeNumberRegExp,getPiecesWithIndex,getRandom,getRatio,getRiseRatio,getSortIndex,getType,isArray,isEmpty,isFunction,isFuzzyMatch,isKvPair,isLikeNumber,isNull,isString,listGroup,mapKvPair,main as mapTree,mixInZeroWidthUnicode,padEnd,padStart,param,parseQuery,parseTreeToTableHeader,randomColor,repeatString,roundFixed,shake,shortNumber,sortWithIndex,spanTable,split,thousands,flatArrayToTree as tree,treeLeafs,trim,union,urlToGet,uuid,variableHasValue};
@@ -0,0 +1,53 @@
1
+ interface DomAutoScrollOptions {
2
+ /**
3
+ * 滚动容器dom
4
+ */
5
+ elScroll: HTMLDivElement;
6
+ /**
7
+ * 鼠标移入/移出时的容器
8
+ */
9
+ elMouse?: HTMLDivElement;
10
+ /**
11
+ * 滚动频率(每秒多少次,一次 1px)
12
+ */
13
+ fps?: number;
14
+ enabled?: boolean;
15
+ }
16
+ declare class DomAutoScroll {
17
+ private _oScroll;
18
+ private _oMouse;
19
+ private _timer01;
20
+ private _timer02;
21
+ private _fps;
22
+ private _obvs;
23
+ private _isMouseIn;
24
+ private _enabled;
25
+ /**
26
+ * 原生滚动条自动滚动(改变的是scrollTop)
27
+ * @param options 配置项
28
+ */
29
+ constructor(options: DomAutoScrollOptions);
30
+ _onMouseenter(): void;
31
+ play(): void;
32
+ _onMouseLeave(): void;
33
+ updateFps(value: number): void;
34
+ _onResize(): void;
35
+ /**
36
+ * 回到顶部
37
+ */
38
+ backToTop(): void;
39
+ _playOnce(): void;
40
+ pause(): void;
41
+ dispose(): void;
42
+ }
43
+
44
+ declare global {
45
+ /**
46
+ * 该声明文件用于全局声明(不用npm安装时拷贝到项目中直接使用)
47
+ */
48
+ namespace DomAutoScroll {
49
+ export { DomAutoScrollOptions, DomAutoScroll as default };
50
+ }
51
+ }
52
+
53
+ export default undefined;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * 纯JS工具库 => jUtilsBase
3
+ * @update 2024-08-27 10:15:09
4
+ */
5
+ !function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((n="undefined"!=typeof globalThis?globalThis:n||self).jUtilsBase={})}(this,function(n){"use strict";var t=["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"],a="Array",$="Class",D="Function",u="Object",c="String",N="Number",m=void 0,q="false",V="true",B=Object.prototype.toString,G=encodeURI,X=decodeURIComponent;function h(n){return null===n||n===m}function f(n){return h(n)?"":String(n)}var H=D.toLowerCase();function e(n){return typeof n===H}function s(n){return e(t=n)&&/^class\s/.test(Function.prototype.toString.call(t))?$:B.call(n).slice(8,-1);var t}function d(n){return s(n)===a}function l(n){return s(n)===u}function v(n){return s(n)===c}function i(n,t){var r;try{r=JSON.parse(n)}catch(e){r=t}return r}function g(n){return n=l(n)||l(n=i(n))?n:{}}function p(n){return h(n)||""===n}function K(n){var r=[];function i(n,t){null!=n&&""!==n&&(t=null==(t=e(t)?t():t)?"":t,r[r.length]=G(n)+"="+G(t))}return function o(n,t){var r,e;if(n)switch(s(t)){case a:for(r=0;r<t.length;r++)o(n+"["+("object"==typeof t[r]&&t[r]?r:"")+"]",t[r]);break;case u:for(e in t)o(n+"["+e+"]",t[e]);break;default:i(n,t)}else switch(s(t)){case c:case u:for(e in t)o(e,t[e]);break;case a:for(r=0;r<t.length;r++)i(t[r].name,t[r].value)}}("",n),r.join("&")}function _(n){return n=d(n)||d(n=i(n))?n:[]}function y(n){return s(n)===N}var o="[\\s\\uFEFF\\xA0]+";function b(n,t){var r=s(n),e=(r===N&&(n=String(n),r=c),"");if(r!==c)return"";switch(t){case 1:e="^"+o;break;case-1:e=o+"$";break;case"*":e=o;break;default:e="^"+o+"|"+o+"$"}return n.replace(new RegExp(e,"g"),"")}function x(n){var t=!1,r=0,r=y(n)?n:(v(n)&&(n=b(n,"*").replace(/,/g,"").replace(/%$/,function(n){return t=!0,""})),Number(n));return r=Math.abs(r)===Math.abs(Infinity)||isNaN(r)?0:r,t&&(r/=100),r}var U=[m,m];function W(n){if(n==m)return U;var e,i=n;return n.replace(/^\[(.*?)\](.*)?/,function(n,t,r){return i=t,e=r,""}),[i,e]}function Z(n){return""===n||/^\d+$/.test(n)}function r(n){var a={},u=!1,e="";return(n=h(n)?"":n).replace(/([^=&?/#]*?)=([^=&?/#]*)/g,function(n,t,o){var r;r=X(o),o=null==r?m:q!==r&&(V===r||i(r,r)),e=X(t),u=!1,""!==e&&(e.replace(/(.*?)(\[.*)/,function(n,t,r){var e=W(r);u=!0,Z(e[0])?a[t]=_(a[t]):a[t]=g(a[t]),function i(n,t,r){var t=W(t),e=t[0];Z(e)?(e=x(e),t[1]==m?n.push(r):(/^\[[\D]+\]/.test(t[1])?n[e]=g(n[e]):n[e]=_(n[e]),i(n[e],t[1],r))):t[1]==m?n[e]=r:(/^\[[\D]+\]/.test(t[1])?n[e]=g(n[e]):n[e]=_(n[e]),i(n[e],t[1],r))}(a[t],r,o)}),u||(a[e]=o))}),a}function k(n,t){for(var r=0;r<n.length;r++)t(n[r],r,n)}function w(t){switch(s(t)){case $:r=Object.assign(Object.create(Object.getPrototypeOf(t)),t);break;case a:for(var r=[],n=0;n<t.length;n++)r.push(w(t[n]));break;case u:r={},k(Object.keys(t),function(n){r[n]=w(t[n])});break;case D:function e(){t.apply(this,arguments)}for(var i in t.prototype)e.prototype[i]=t.prototype[i];r=e;break;default:r=t}return r}function z(n,t){var r=!1;return r=d(n)&&t.array&&0===n.length||l(n)&&t.kvPair&&function(n){var t,r=!0;for(t in n)if(t!==m){r=!1;break}return r}(n)||v(n)&&t.string&&""===n||h(n)?!0:r}function C(n,t,r){var e;r=null==r?60:r,n()?t():(clearTimeout(e),setTimeout(function(){C(n,t,r)},r))}C["async"]=function(t,r){return new Promise(function(n){C(t,n,r)})};var J={id:"id",children:"children"};var Q=/(-|\+)?((\d+)|((\d,?)+\d+))(\.?\d+)?%?/.toString().replace(/(^\/)|(\/$)/g,"");function Y(n){n=b(n);return new RegExp("^"+Q+"$").test(n)}function nn(n,t){var r="";if((n=f(n)).length*t<1<<28)for(;1==(1&t)&&(r+=n),0!=(t>>>=1);)n+=n;return r}function tn(n,t,r,e){return(n=f(n)).length>(t>>=0)?n:(t-=n.length,r.length<t&&(r+=nn(r,t/r.length)),-1===e?r.slice(0,t)+n:n+r.slice(0,t))}function rn(n,t,r){return tn(n,t,r,-1)}function E(n,t,r){return tn(n,t,r,1)}function S(n,t){return""!==n?n.split(t):[]}function T(n,r,t){var e,i,o=h(t)?"children":t;return function a(n){if(n)for(var t=0;t<n.length;t++){if(i=r(n[t])){e=n[t];break}if(a(n[t][o]),i)break}}(n),e}function R(n,t,r){r=!1===r?0:1;return n=Math.random()*(t-n+r)+n,r?Math.floor(n):n}function A(){return t[R(0,t.length-1)][0]}function en(n,i,o,a){a=a||"children";var t=[];return function u(n,t){for(var r=0;r<n.length;r++){var e=o(n[r]);h(e)||(t[r]=w(e),n[r][a]&&(t[r][i]=[],u(n[r][a],t[r][i])))}}(n,t),t}var P={};function on(n,t){}var an=function(){function n(n){this._timer=void 0,this._timer_info=void 0,this._stamp=0,this._passStamp=0,this._option=void 0,this._option=Object.assign({timeout:6e3,interval:1e3,handler:on},n),this._next=this._next.bind(this),this._doOnce=this._doOnce.bind(this),this.done=this.done.bind(this)}var t=n.prototype;return t._next=function(){return clearInterval(this._timer),this._passStamp=+new Date-this._stamp,this._timer=setTimeout(this._doOnce,this._option.interval),this},t._doOnce=function(){if(this._passStamp>=this._option.timeout)return this._option.onMessage&&this._option.onMessage(0),this.done(),this;this._option.handler(this._next,this.done)},t.start=function(){var n,t=this;this._stamp=+new Date,this.done(),this._doOnce();return this._option.onMessage&&(clearInterval(this._timer_info),this._timer_info=setInterval(function(){n=+new Date-t._stamp,0===(n=Math.max(t._option.timeout-n,0))&&t.done(),t._option.onMessage(n)},100)),this},t.done=function(){return clearTimeout(this._timer),clearTimeout(this._timer_info),this},t.dispose=function(){return this.done(),this},n}();function un(n,t,r,e){if(n="【"+n+"】",r&&p(t))throw"字段"+n+"不能为空";if(s(t)!==e)switch(e){case"String":t=String(t);break;case"Number":if(!Y(t))throw"字段"+n+"必须为数字";t=Number(t)}return t}var cn={number:function(n,t){return un(n,t,!(2<arguments.length&&arguments[2]!==undefined)||arguments[2],"Number")},string:function(n,t){return un(n,t,2<arguments.length&&arguments[2]!==undefined&&arguments[2],"String")}};function F(n){return Array.from(new Set(n))}var fn=function(n,t){return Number(n)-Number(t)},sn=0,I={};function ln(n,t){var r=[],e=[];return n.forEach(function(n){n=t[n],I[n]||(I[n]={id:++sn,label:n});n=I[n];r.push(n.id),e.push(n.label)}),{id:r.join("_"),label:e.join("→")}}function hn(n,t){return n===m||t===m?m:(t-n)/Math.abs(n)}function O(n,t){var r,e={},i=-1;for(r in n)i++,e[r]=t(n[r],r,i);return e}function dn(n){return n.map(function(n,t){return{value:n,index:t}})}function M(n,t){return 0===n||h(n)?0:0===t||h(t)?1:n/t}function mn(n,r,e){var i=[];return n.forEach(function(t){r.some(function(n){return e(n,t)})||i.push(t)}),r.forEach(function(t){n.some(function(n){return e(n,t)})||i.some(function(n){return e(n,t)})||i.push(t)}),i}function vn(n,t,r){return h(t)?n:(n=t,r?r(n):n)}var gn="sys-row-avg";function pn(n,t){var u={},r=t.colField;if(!h(r)&&n.length){var i=t.cellSummary;if(n.forEach(function(n){var t=n[r];u[t]=u[t]||{data:[],summary:0,_collect:[]},u[t].data.push(n),i&&(n=n[i.numerator[0]],u[t].summary+=n,u[t]._collect.push(n))}),!h(i)){var e,o,a;for(e in u)!function(n){var t=u[n],r=1,e=i.denominator;if(e)if(y(e))r=e;else switch(e[1]){case"length":r=t.data.map(function(n){return n[e[0]]}).length;break;case"uniqLength":r=F(t.data.map(function(n){return n[e[0]]})).length}switch(i.numerator[1]){case"sum":h(t.summary)||(t.summary=t.summary/r);break;case"length":t.summary=t._collect.length/r;break;case"uniqLength":t.summary=F(t._collect).length/r}}(e);a=o=0,O(u,function(n){o++;n=h(n.summary)?0:n.summary;a+=n}),u[gn]={data:[],summary:a/o,_collect:[]},t.colCustom&&O(t.colCustom,function(n,t){var r=c(n.numerator),n=n.denominator?c(n.denominator):1;u[t]={data:[],summary:M(r,n),_collect:[]}})}}return u;function c(o){var a=0,n=Object.keys(u).filter(function(n){var t=[gn].includes(n),n="*"===o[1]||o[1].includes(n);return!t&&n});return d(o[1])&&n.sort(function(n,t){return o[1].indexOf(n)-o[1].indexOf(t)}),n.forEach(function(n,t){var r,e,n=u[n],i=0;h(o[2])||"value"===o[2]?i=h(n.summary)?0:n.summary:"length"===o[2]?(r=o[3])&&(i=n.data.map(function(n){return n[r]}).length):"uniqLength"===o[2]&&(e=o[3])&&(i=F(n.data.map(function(n){return n[e]})).length),"sum"===o[0]?a+=i:"max"===o[0]?a=Math.max(a,i):"diff"===o[0]&&(0===t?a=i:a-=i)}),a}}function _n(n,u){var t={},c=0;!function s(n,t,r){for(var e=0;e<t.length;e++){var i=t[e],o=function(n,t){var r=[];return d(n)?n.forEach(function(n){r.push(t[n])}):r.push(t[n]),r.join("→")}(u.path[c].field,i);n[o]=n[o]||{uidPath:r.concat(o),uid:o,data:[],child:{}},n[o].data.push(i)}if(c<u.path.length-1)for(var a in c++,n)s(n[a].child,n[a].data,n[a].uidPath)}(t,n,[]);var n=function l(n,t,r,e){var i,o=[];for(i in n){var a=t===r,u=l(n[i].child,t,r+1,e);o.push({uidPath:n[i].uidPath,uid:n[i].uid,data:n[i].data,_columnRiseRatio:{},_columnTotal:{},_columnProportion:{},_columns:pn(n[i].data,e),isLeaf:a,children:u})}return o}(t,c,0,u),e=(!function i(n,t){var r;n.sort(null==(r=u.path[t])?void 0:r.sort),n.forEach(function(n){i(n.children,t+1)})}(n,0),!function o(n){n.forEach(function(n){var r={};O(n._columns,function(n,t){n=h(n.summary)?0:n.summary;r[t]=r[t]||0,r[t]+=n}),n._columnTotal=r,o(n.children)})}(n),{}),f=(n.forEach(function(r){O(r._columns,function(n,t){e[t]=e[t]||0,e[t]+=r._columnTotal[t]})}),[]);return u.colCustom&&O(u.colCustom,function(n,t){n.riseRatio||f.push(t)}),function r(n){var o={},a={};n.forEach(function(n,i){O(n._columns,function(n,t){var r,e;f.includes(t)||(0<i?h(r=n.summary)?a[t]=m:(e=null!=(e=o[t])?e:0,a[t]=M(r-e,e)):a[t]=void 0,o[t]=n.summary)}),n._columnRiseRatio=a,r(n.children)})}(n),function a(n,e){n.forEach(function(n,t){var r={};O(n._columns,function(n,t){r[t]=M(n.summary,e[t])}),n._columnProportion=r,a(n.children,n._columnTotal)})}(n,e),{data:n,total:e}}function j(n){return h(n)||0===n}var yn=[[1e4,"万"],[1e8,"亿"]];function L(n,t){return rn(n,t,"0")}function bn(n){return en(n,"children",function(n){return{field:n.field,title:n.title,count:function r(n){var t=0;return d(n.children)?n.children.forEach(function(n){t+=r(n)}):t=1,t}(n)}})}function xn(i){i.forEach(function(n,r){n.forEach(function(n,t){n&&(n.rowSpan=function(n,t){for(var r,e=0;n<i.length&&(null==i||null==(r=i[n])||!r[t]);n++)e++;return e}(r+1,t)+1)})})}var kn=new(function(){function n(){this._list={}}var t=n.prototype;return t._resetGroupClickXAxisCategory=function(i){i.forEach(function(t){clearTimeout(t.timer_01),t.instence.off("click",t.onAxxisSeriesClick),t.instence.off("click",t.onAxxisCategoryClick),t.onAxxisCategoryClick=function(n){var r=n.tickIndex,e=!1!==n.needEmit;clearTimeout(t.timer_01),t.timer_01=setTimeout(function(){i.forEach(function(n){var t=w(n.instence.getOption());d(t.xAxis)&&t.xAxis.length&&e&&n.config&&n.config.onXAxisCtegoryClick&&(t=t.xAxis,n.config.onXAxisCtegoryClick(t.map(function(n){return n.data}),r,n.instence))})},30)},t.onAxxisSeriesClick=function(n){"markLine"!==n.componentType&&null!=t&&t.onAxxisCategoryClick&&t.onAxxisCategoryClick({tickIndex:n.dataIndex})},t.instence.on("click","series",t.onAxxisSeriesClick),t.instence.on("click","xAxis.category",t.onAxxisCategoryClick)})},t.clickXAsisCategory=function(n,t,r){var e,i=!0!==r;for(e in this._list)for(var o=0;o<this._list[e].length;o++){var a=this._list[e][o];a.instence===n&&a.onAxxisCategoryClick&&a.onAxxisCategoryClick({tickIndex:t,needEmit:i})}},t.add=function(n,t){var r=n.group;return r&&(this._list[r]=this._list[r]||[],this._list[r].push({config:t,instence:n,timer_01:-1}),this._resetGroupClickXAxisCategory(this._list[r])),this},t.remove=function(n){if(n)for(var t in this._list)for(var r=0;r<this._list[t].length;r++){var e=this._list[t][r];clearTimeout(e.timer_01),e.instence===n&&(e.instence.off("click",e.onAxxisCategoryClick),this._list[t].splice(r--,1))}},n}());n.Animate=function(){function n(n){this._timer=void 0,this._passTime=0,this._options=void 0,this._middleData=void 0,this._options=n,this._middleData=w(n.to)}var t=n.prototype;return t.start=function(){var t=this,{from:r,to:e,easing:c,duration:f,onChange:i}=this._options,o=(new Date).getTime()-this._passTime;return clearInterval(this._timer),this._timer=setInterval(function(){var a=Math.min((new Date).getTime()-o,f),n=(!function u(e,i,o){function n(n){var t,r;y(i[n])||y(o[n])?(t=x(i[n]),r=x(o[n]),e[n]=c(a,t,r-t,f)):(d(i[n])||l(i[n]))&&u(e[n],i[n],o[n])}if(d(i))for(var t=0;t<i.length;t++)n(t);else if(l(i))for(var r in e)n(r)}(t._middleData,r,e),a/f);1==n&&(clearInterval(t._timer),a=0),t._passTime=a,i(t._middleData,n)},17),this},t.stop=function(){return clearInterval(this._timer),this},t.dispose=function(){this.stop()},n}(),n.Polling=an,n._Array=_,n._Boolean=function(n){return!0===n||"true"===n||"1"===n||1===n},n._KvPair=g,n._Number=x,n._String=f,n.arrayRowToColumn=function(n,i){var t,r=[],o=(n.forEach(function(n){n=String(n[i.colField]);r.includes(n)||r.push(n)}),r.sort(null!=(c=i.colSort)?c:fn),{}),l=(n.forEach(function(t){var n=ln(i.uniqueRowId,t),r={},e=(i.uniqueRowId.forEach(function(n){r[n]=t[n]}),o[n.id]=o[n.id]||{value:r,name:n.label,data:{}},i.colCreate(t[i.colField]).field);o[n.id].data[e]=o[n.id].data[e]||[],o[n.id].data[e].push(t)}),[]);for(t in o)l.push({name:o[t].name,value:o[t].value,data:o[t].data,summary:{}});var a,u,e,c=r.map(function(n){var t=i.colCreate(n);return{value:n,label:t.label,field:t.field}}),h={};return i.summaryConfig&&(i.summaryConfig.row&&(a=l,u=i.summaryConfig.row,e=i.summaryConfig.averageField,a.forEach(function(c){var f=u[c.name];if(f){var s,n,l=0,h=0;for(n in c.data)!function(n){h++;var t,r=[],e=0,i=[],o=[],a=(c.data[n].forEach(function(n){y(f.count)||r.push(n[f.count.field]);var t=x(n[f.value.field]);switch(f.value.mode){case"uniqLength":i.push(n[f.value.field]),i=F(i),e=i.length;break;case"sum":case"avg":e+=t}0!==t&&o.push(t)}),0);if(y(f.count))a=f.count;else switch(f.count.mode){case"length":a=r.length;break;case"uniqLength":a=F(r).length;break;case"notZeroValue":a=o.length}var u=e;"avg"===f.value.mode&&(u=e/a),l+=u,c.summary[n]={value:u,proportion:0,riseRatio:s?hn(null==(t=c.summary[s])?void 0:t.value,u):void 0},s=n}(n);c.summary[e]={value:l/h,riseRatio:m,proportion:0}}}),a.forEach(function(n){var t=u[n.name];if(t){var r=a.find(function(n){return n.name===t.proportionBaseField});if(t.proportionBaseField&&r)for(var e in n.summary)n.summary[e].proportion=n.summary[e].value/r.summary[e].value}}),l=a),i.summaryConfig.column&&(h=function(f,s,l){var n,h={},d={},t=function(i){d[i]={},h[i]={};var n,o=s[i],t=(f.forEach(function(e){for(var n in e.data)!function(n){h[i][n]=h[i][n]||{data:[],sum:0};var t=[],r=0;switch(e.data[n].forEach(function(n){switch(t.push(n[o.field]),o.mode){case"uniqLength":t=F(t);break;case"avg":case"sum":r+=n[o.field];break;case"notZeroLength":0!==x(n[o.field])&&r++}}),o.mode){case"uniqLength":t=F(t);break;case"avg":r/=e.data[n].length}h[i][n].data=h[i][n].data.concat(t),h[i][n].sum+=r}(n)}),void 0);for(n in h[i]){var r,e=0;switch(o.mode){case"avg":e=h[i][n].sum/f.length;break;case"uniqLength":e=F(h[i][n].data).length;break;case"notZeroLength":case"sum":e=h[i][n].sum}d[i][n]={value:e,proportion:0,riseRatio:t?hn(null==(r=d[i][t])?void 0:r.value,e):void 0},t=n}var a,u=0,c=0;for(a in d[i])u+=d[i][a].value,c++;d[i][l]={value:u/c,riseRatio:m,proportion:0}};for(n in s)t(n);return d}(l,i.summaryConfig.column,i.summaryConfig.averageField))),{columns:c,data:l,colSummary:h,getExtRow:function(t,n,r){var e,i=l.find(function(n){return n.name===t}),o={};if(!i){var a=n,u=r,c=h[t],f={};if(c)for(var s in c)f[s]=u(c[s][a]);return f}for(e in i.summary)o[e]=r(i.summary[e][n]);return o}}},n.changeIndex=function(n,t,r){return n<0?t:((t=(t+r)%(n+=1))<0&&(t+=n),-0===t?0:t)},n.cloneEasy=w,n.connectEcharts=kn,n.dataPage=function(n,t,r){if(r<1)throw"页码必须大于0";var e=(r-1)*t,i=e+t;return{current:r,total:n.length,size:t,pages:Math.ceil(n.length/t),data:w(n.slice(e,i))}},n.deepFindItem=T,n.deepFindTreePath=function(n,t,r){r=Object.assign(J,r);for(var e=[],i=w(n),o=new Set,a=r["children"];i.length;){var u=i[0];if(o.has(u))e.pop(),i.shift();else if(o.add(u),u[a]&&i.unshift.apply(i,u[a]),e.push(u),t(u))return e}return undefined},n.defineEventBus=function(i){if(P[i])throw'"'+i+'" Has already been registered!';return P[i]=P[i]||[],{on:function(n){P[i].push(n)},emit:function(){for(var n=arguments.length,t=new Array(n),r=0;r<n;r++)t[r]=arguments[r];for(var e=0;e<P[i].length;e++)P[i][e].apply(m,t)},off:function(n){if(!n)throw"the hander of off is required!";for(var t=0;t<P[i].length;t++)P[i][t]===n&&P[i].splice(t--,1)},dispose:function(){for(var n=0;n<P[i].length;n++)P[i].splice(n--,1);delete P[i]},eventList:function(){return P[i]}}},n.defualtFormatter=vn,n.difference=mn,n.fieldCheck=cn,n.filterWithMove=function(n,t){for(var r=[],e=0;e<n.length;e++){var i=n[e];t(i,e,n)&&(r.push(i),n.splice(e--,1))}return r},n.floorFixed=function(n,t,r){var e=(n=S(n=b(x(n)),"."))[1]||"";return e.length<t&&(e=E(e,t,"0"),r&&(e=e.replace(/0+$/,""))),t<1||!e?n[0]:n[0]+"."+e.substring(0,t)},n.forEach=k,n.forEachKvPair=O,n.forEachTree=function(n,i,o){o=o||"children",function a(n,t){for(var r=0;r<n.length;r++){var e=w(t);i(n[r],e),d(n[r][o])&&(e.push(n[r]),a(n[r][o],e))}}(n,[])},n.formatTime=function(n){var t=(n=new Date(n)).getFullYear(),r=n.getMonth()+1,e=n.getDate(),i=n.getHours(),o=n.getMinutes(),a=n.getSeconds(),n=n.getMilliseconds();return L(t,4)+"/"+L(r,2)+"/"+L(e,2)+" "+L(i,2)+":"+L(o,2)+":"+L(a,2)+":"+L(n,3)},n.getLikeNumberRegExp=function(){return Q},n.getPiecesWithIndex=function(n,e){var i=[];return k(n,function(t,n){var r=e.find(function(n){return t>=n.min&&t<n.max});r&&i.push({gte:n,lt:n+1,color:r.color})}),i},n.getRandom=R,n.getRatio=M,n.getRiseRatio=function(n,t){return j(n)&&j(t)?0:j(n)?1:j(t)?-1:(t-n)/n},n.getSortIndex=function(n,r){var t=dn(n),e=dn(n);return e.sort(function(n,t){return r(n.value,t.value)}),t.map(function(t){return e.findIndex(function(n){return t.index===n.index})})},n.getType=s,n.isArray=d,n.isEmpty=p,n.isFunction=e,n.isFuzzyMatch=function(n,t,r){var e=!0;return(n=b(n,"*"))&&(n=S(n,"").join(".*"),e=new RegExp(n,f(r)).test(t)),e},n.isKvPair=l,n.isLikeNumber=Y,n.isNull=h,n.isString=v,n.listGroup=function(n,t){var s=_n(n,t);function o(n,t,r,e,i){var o=T(s.data,function(n){return 0===mn(n.uidPath,t,function(n,t){return n===t}).length}),a=vn("",i);if(o)try{switch(n){case"_columnRiseRatio":case"_columnTotal":case"_columnProportion":var u=o[n][r];return h(u)?a:e(u);default:var c=o[n][r].summary;return h(c)?a:e(c,o[n][r].data)}}catch(f){return a}return a}function a(n,t,r,e){return o("_columns",n,t,r,e)}function u(n,t,r,e){return o("_columnProportion",n,t,r,e)}return{data:s.data,getCellValue:a,getCellVerticalRiseRatio:function(n,t,r,e){return o("_columnRiseRatio",n,t,r,e)},getCellVerticalTotal:function(n,t,r,e){var i;return"*"===n?h(i=s.total[t])?vn("",e):r(i):o("_columnTotal",n,t,r,e)},getCellVerticalProportion:u,getRowCellValue:function(t,n,r,e){var i={};return n.forEach(function(n){i[n.id]=a(t,n.field,r,e)}),i},getRowVerticalProportion:function(t,n,r,e){var i={};return n.forEach(function(n){i[n.id]=u(t,n.field,r,e)}),i},getOriginGroupData:function(t,n){var r=T(s.data,function(n){return 0===mn(n.uidPath,t,function(n,t){return n===t}).length});return r&&null!=(r=null==(n=r._columns[n])?void 0:n.data)?r:[]},getOriginAllData:function(){return n}}},n.mapKvPair=function(n,t){var r,e={};for(r in n)e[r]=t(w(n[r]),r);return e},n.mapTree=en,n.mixInZeroWidthUnicode=function(n){return S(n,"").join("‎")},n.padEnd=E,n.padStart=rn,n.param=K,n.parseQuery=r,n.parseTreeToTableHeader=function(n){return xn(n=function u(n,i,o,a){return i[o]||(i[o]=[]),--a,n.forEach(function(n){var t=a+1,r=(a=t+n.count-1)-t+1,r={colStart:t,colEnd:a,colSpan:r,count:n.count,field:n.field,title:n.title,rowSpan:1};i[o][t]=r;for(var e=1;e<n.count;e++)i[o][t+e]=void 0;d(n.children)&&0<n.children.length&&u(n.children,i,o+1,t)}),i.forEach(function(n){for(var t=0;t<i[0].length;t++)n[t]||(n[t]=void 0)}),i}(bn(n),[],0,0)),{columns:function(n){for(var r=[],t=n.length-1;0<=t;t--)n[t].forEach(function(n,t){n&&n.field&&h(r[t])&&(r[t]=n.field)});return r}(n),data:n}},n.randomColor=function(){return"rgba("+R(0,255,!0)+","+R(0,255,!0)+","+R(0,255,!0)+",1)"},n.repeatString=nn,n.roundFixed=function(n,t,r){n=x(n);var e,i=Math.pow(10,t),n=f(Math.round(n*i)/i);return 0<t&&(e=(i=S(n,"."))[0],(i=i[1]||"").length<t&&(i=E(i,t,"0"),n=(i=r?i.replace(/0+$/,""):i)?e+"."+i:e)),n},n.shake=function(n,t){return t=Object.assign({string:!0,array:!0,kvPair:!0},t),function i(n,t){if(l(n))for(var r in n){var e=n[r];(d(e)||l(e))&&i(e,t),z(e,t)&&delete n[r]}}(n=w(n),t),n},n.shortNumber=function(n,t,r){for(var e=h(r)?yn:r,i=(e.sort(function(n,t){return t[0]-n[0]}),n),o="",a=0;a<e.length;a++){var u=e[a],c=n/u[0];if(1<=Math.abs(c)){i=c,o=u[1];break}}return{value:i,fmtValue:t(i),unit:o}},n.sortWithIndex=function(n,t){for(var r=[],e=0;e<n.length;e++)r[e]=n[t[e]];return r},n.spanTable=function(n,o){var u=w(n),c={};function r(i,o){var a=0;u.forEach(function(n,t){n.$rowSpan=null!=(e=n.$rowSpan)?e:{};var r,e=n[i];c[i]=null!=(r=c[i])?r:0,1<c[i]?(n.$rowSpan[i]=0,c[i]--):(r=function(n,t,r,e){var i=1;for(n++;n<e.length;n++){var o=e[n][t];if(o!==r&&!p(o))break;i++}return i}(t,i,e,u),void 0!==o&&(e=function(n,t,r){for(var e=0;0<=t&&!(0<(e=n[t].$rowSpan[r]));t--);return e}(u,t,o),0<a?e<=a+r?(r=e-a,a=0):a+=r:r<e?a=r:r=e),c[i]=r,n.$rowSpan[i]=c[i])})}return o.forEach(function(n,t){r(n,o[t-1])}),u.forEach(function(e){e.$colField={};var i=0;o.forEach(function(n,t){var r=e[n];1<i?(e.$colField[n]=0,i--):(i=function(n,t,r,e){var i=1;for(n++;n<e.length;n++){var o=b(r[e[n]]);if(o!==t&&!p(o))break;i++}return i}(t,r,e,o),e.$colField[n]=i)})}),u},n.split=S,n.thousands=function(n,i,o){return i=i||3,o=o||",",(v(n)?n:f(n)).replace(/([^.]*)?(\.)?(.*)?/,function(n,t,r,e){return f(t).replace(new RegExp("(.(?=(.{"+i+"})+$))","g"),"$1"+o)+f(r)+f(e)})},n.tree=function(n,t){for(var r=(t=g(t)).id||"id",e=t.pid||"pid",i=t.children||"children",o=0;o<n.length;o++){var a,u=n[o];(a=T(n,function(n){return null!=n[r]&&n[r]!=u[r]&&n[r]===u[e]},i))&&(a[i]=_(a[i]),a[i].push(u),n.splice(o--,1))}return n},n.treeLeafs=function(n){var t=[];return function r(n,t){k(n,function(n){d(n.children)?r(n.children,t):t.push(n)})}(n,t),t},n.trim=b,n.union=function(){for(var n=arguments.length,t=new Array(n),r=0;r<n;r++)t[r]=arguments[r];var e=new Set(t);return Array.from(e)},n.urlToGet=function(n,t){n=f(n);var o=l(t)?t:r(t),t=r(n=n.replace(/({{)(.*?)(}})/g,function(n,t,r,e){r=b(r);var i=o[r];return delete o[r],i})),t=K(o=Object.assign(t,o));return n=t?(n=n.replace(/\?.*/,""))+"?"+t:n},n.uuid=function(n){n=x(n);for(var t="",r=0;r<13;r++)t+=R(1,9);return n=(new Date).getTime()*R(1,100),E(A()+Number(t).toString(32)+n.toString(32),20,A()+A()+A())},n.variableHasValue=C});
@@ -72,7 +72,7 @@ declare function isEmpty(data: any): boolean;
72
72
  * @param data - 判断的值
73
73
  * @returns 真假值
74
74
  */
75
- declare function isFunction(data: any): boolean;
75
+ declare function isFunction(data: any): data is Function;
76
76
 
77
77
  /**
78
78
  * 对象序列化为字符串, 用于URL查询字符串或AJAX请求
@@ -186,20 +186,27 @@ declare function deepFindTreePath(
186
186
  ): undefined | any[];
187
187
 
188
188
  /**
189
- * 强制转换数据为字符串
189
+ * 强制转换数据为字符串。支持百分号、千分位
190
190
  * @param data - 值
191
191
  * @returns 数字
192
192
  */
193
- declare function _Number(data: any): number;
193
+ declare function _Number(data?: any): number;
194
194
 
195
195
  type TNull = undefined | null | '';
196
196
  declare function isNull(data: any): data is TNull;
197
197
 
198
+ /**
199
+ * 匹配数字的正则
200
+ * @returns
201
+ */
202
+ declare function getLikeNumberRegExp(): string;
198
203
  /**
199
204
  *
200
- * @param value 看起来是否像一个数字
205
+ * @param value 看起来是否像一个数字。可识别百分号、千分位
201
206
  * @example
202
207
  * ```
208
+ * isLikeNumber('-123,456,789') => true
209
+ * isLikeNumber('1,4,5.912%') => true
203
210
  * isLickNumber(1) => true
204
211
  * isLickNumber('2.36884') => true
205
212
  * isLickNumber(1/0) => false
@@ -216,14 +223,6 @@ declare function isNull(data: any): data is TNull;
216
223
  */
217
224
  declare function isLikeNumber(value: any): boolean;
218
225
 
219
- /**
220
- * 默认值处理函数
221
- * @param data - 需要处理的数据
222
- * @param value - 如果data为undefined,则返回此值
223
- * @returns 实际值
224
- */
225
- declare function defaultValue<T>(data: any, value: T): T;
226
-
227
226
  /**
228
227
  * 循环复制字符串
229
228
  * @param data - 复制目标
@@ -364,14 +363,6 @@ declare function getRandom(min: number, max: number, isInt?: boolean): number;
364
363
  */
365
364
  declare function _Boolean(data: any): boolean;
366
365
 
367
- /**
368
- * 将树形结构转为一维数组
369
- * @param data - 树
370
- * @param childKey - 子项字段。默认 children
371
- * @returns 浅克隆的数组
372
- */
373
- declare function flatTree(data: any[], childKey?: string): any[];
374
-
375
366
  /**
376
367
  * 简易版深度克隆。(仅处理数组、键值对、方法的可克隆)
377
368
  *
@@ -430,6 +421,7 @@ declare function defineEventBus<T extends EventHander>(
430
421
  off: (hander: T) => void;
431
422
  /** 销毁所有订阅 */
432
423
  dispose: () => void;
424
+ eventList: () => EventHander[];
433
425
  };
434
426
 
435
427
  /**
@@ -602,10 +594,12 @@ declare function arrayRowToColumn<T extends Record<string, any>>(
602
594
  };
603
595
  type TArrayRowToColumnCalculateRow = {
604
596
  proportionBaseField?: string;
605
- count: {
606
- field: string;
607
- mode: 'length' | 'uniqLength' | 'notZeroValue';
608
- };
597
+ count:
598
+ | number
599
+ | {
600
+ field: string;
601
+ mode: 'length' | 'uniqLength' | 'notZeroValue';
602
+ };
609
603
  value: {
610
604
  field: string;
611
605
  mode: 'sum' | 'uniqLength' | 'avg';
@@ -626,14 +620,13 @@ type TColSumaryConfig = Record<
626
620
 
627
621
  type ISpanTableItem<T extends TKvPair> = T & {
628
622
  $rowSpan: Record<string, number>;
629
- $colSpan: Record<number, number>;
630
623
  $colField: Record<string | number, number>;
631
624
  };
632
625
  /**
633
626
  * 合并单元格。不改变原数组
634
627
  * @param data - 一维数组
635
628
  * @param fields - 合并的字段
636
- * @returns 合并后的数据。会在每一项中添加两个字段 "$rowSpan" "$colSpan" "$colField"
629
+ * @returns 合并后的数据。会在每一项中添加两个字段 "$rowSpan" "$colField"
637
630
  */
638
631
  declare function spanTable<T extends TKvPair>(data: T[], fields: string[]): ISpanTableItem<T>[];
639
632
 
@@ -708,7 +701,7 @@ type TListGroupKey<T extends TKvPair> = {
708
701
  };
709
702
  type TGetValueField = string;
710
703
  interface ICellSummary {
711
- denominator?: [string, 'length' | 'uniqLength'];
704
+ denominator?: number | [string, 'length' | 'uniqLength'];
712
705
  /**
713
706
  * sum 求和
714
707
  * length 长度
@@ -830,6 +823,14 @@ declare function union<T extends TKvPair>(...args: T[]): T[];
830
823
 
831
824
  declare function getRatio(value: number | undefined, base: number | undefined): number;
832
825
 
826
+ /**
827
+ * 计算一个数据变化的增长率
828
+ * @param from
829
+ * @param to
830
+ * @returns
831
+ */
832
+ declare function getRiseRatio(from?: number, to?: number): number;
833
+
833
834
  /**
834
835
  * 筛选并从原始数组移除符合条件的数据
835
836
  * @param data - 原始数据
@@ -859,12 +860,138 @@ declare function export_default(
859
860
  unit: string;
860
861
  };
861
862
 
863
+ declare function formatTime(millisecond: number): string;
864
+
865
+ interface IInputHeaderItem {
866
+ field: string;
867
+ title: string;
868
+ children: IInputHeaderItem[];
869
+ }
870
+ interface IParsedHeaderInfoItem extends IInputHeaderItem {
871
+ count: number;
872
+ children: IParsedHeaderInfoItem[];
873
+ }
874
+ interface IParsedHeaderDataItem extends Omit<IParsedHeaderInfoItem, 'children'> {
875
+ colStart: number;
876
+ colEnd: number;
877
+ colSpan: number;
878
+ rowSpan: number;
879
+ }
880
+ /**
881
+ * 将树形数据转换为二维数组,并包含合并行列信息
882
+ * @param header 树形列表
883
+ * @returns
884
+ */
885
+ declare function parseTreeToTableHeader(header: IInputHeaderItem[]): {
886
+ columns: string[];
887
+ data: (IParsedHeaderDataItem | undefined)[][];
888
+ };
889
+
890
+ type TEcharts = Record<string, any>;
891
+ interface IConnectConfigItem {
892
+ onXAxisCtegoryClick?: (xAxisData: any[], tickIndex: number, chart: TEcharts) => void;
893
+ }
894
+ interface IListItem {
895
+ config?: IConnectConfigItem;
896
+ instence: TEcharts;
897
+ onAxxisCategoryClick?: (ev: { tickIndex: number; needEmit?: boolean }) => void;
898
+ onAxxisSeriesClick?: (ev: any) => void;
899
+ timer_01: any;
900
+ }
901
+ declare class ConnectEcharts {
902
+ _list: Record<string, IListItem[]>;
903
+ constructor();
904
+ _resetGroupClickXAxisCategory(chartList: IListItem[]): void;
905
+ clickXAsisCategory(chart: TEcharts, index: number, notEmit?: boolean): void;
906
+ add(i: TEcharts, config: IConnectConfigItem): this;
907
+ remove(chart?: TEcharts): void;
908
+ }
909
+ declare const _default: ConnectEcharts;
910
+
911
+ interface IRuleItem {
912
+ min: number;
913
+ max: number;
914
+ color: string;
915
+ }
916
+ interface IResItem {
917
+ gte: number;
918
+ lt: number;
919
+ color: string;
920
+ }
921
+ /**
922
+ * 对数据进行分段处理
923
+ * @param list
924
+ * @param rules
925
+ * @returns
926
+ */
927
+ declare function getPiecesWithIndex(list: number[], rules: IRuleItem[]): IResItem[];
928
+
929
+ declare function difference<T extends TKvPair | string | number | Date>(
930
+ a: T[],
931
+ b: T[],
932
+ compareFn: (a: T, b: T) => boolean
933
+ ): T[];
934
+
935
+ type TreeItem<T extends TKvPair> = T & {
936
+ children?: TreeItem<T>[];
937
+ };
938
+ /**
939
+ * 获取树形结构的叶子节点
940
+ * @param list - 树形结构数据
941
+ * @returns 叶子节点组装的一维数组
942
+ */
943
+ declare function treeLeafs<T extends TKvPair>(list: TreeItem<T>[]): TreeItem<T>[];
944
+
945
+ /**
946
+ * 默认数据处理
947
+ * @param placeValue - 无值时返回什么数据
948
+ * @param value - 需要处理的数据
949
+ * @param formatter - 数据格式化
950
+ * @returns
951
+ */
952
+ declare function defualtFormatter<T, R>(
953
+ placeValue: R,
954
+ value: T,
955
+ formatter?: (value: NonNullable<T>) => R
956
+ ): R;
957
+
958
+ type TEasingHandler = (
959
+ passTime: number,
960
+ fromValue: number,
961
+ changeValue: number,
962
+ duration: number
963
+ ) => number;
964
+ type TChangeCallack<T> = (data: T, progress: number) => void;
965
+ interface IAnimateOptions<T> {
966
+ /** 原始值 */
967
+ from: T;
968
+ /** 最终值 */
969
+ to: T;
970
+ /** 缓动函数 */
971
+ easing: TEasingHandler;
972
+ /** 持续时间:毫秒 */
973
+ duration: number;
974
+ /** 每次值更新的回调 */
975
+ onChange: TChangeCallack<T>;
976
+ }
977
+ declare class Animate<T extends TKvPair> {
978
+ _timer: any;
979
+ _passTime: number;
980
+ _options: IAnimateOptions<T>;
981
+ _middleData: T;
982
+ constructor(options: IAnimateOptions<T>);
983
+ start(): this;
984
+ stop(): this;
985
+ dispose(): void;
986
+ }
987
+
862
988
  declare global {
863
989
  /**
864
990
  * 该声明文件用于全局声明(不用npm安装时拷贝到项目中直接使用)
865
991
  */
866
992
  namespace jUtilsBase {
867
993
  export {
994
+ Animate,
868
995
  Polling,
869
996
  TArrayRowToColumnCalculateRow,
870
997
  _Array,
@@ -875,20 +1002,25 @@ declare global {
875
1002
  arrayRowToColumn,
876
1003
  changeIndex,
877
1004
  cloneEasy,
1005
+ _default as connectEcharts,
878
1006
  dataPage,
879
1007
  deepFindItem,
880
1008
  deepFindTreePath,
881
- defaultValue,
882
1009
  defineEventBus,
1010
+ defualtFormatter,
1011
+ difference,
883
1012
  fieldCheck,
884
1013
  filterWithMove,
885
- flatTree,
886
1014
  floorFixed,
887
1015
  forEach,
888
1016
  forEachKvPair,
889
1017
  forEachTree,
1018
+ formatTime,
1019
+ getLikeNumberRegExp,
1020
+ getPiecesWithIndex,
890
1021
  getRandom,
891
1022
  getRatio,
1023
+ getRiseRatio,
892
1024
  getSortIndex,
893
1025
  getType,
894
1026
  isArray,
@@ -907,6 +1039,7 @@ declare global {
907
1039
  padStart,
908
1040
  param,
909
1041
  parseQuery,
1042
+ parseTreeToTableHeader,
910
1043
  randomColor,
911
1044
  repeatString,
912
1045
  roundFixed,
@@ -917,6 +1050,7 @@ declare global {
917
1050
  split,
918
1051
  thousands,
919
1052
  flatArrayToTree as tree,
1053
+ treeLeafs,
920
1054
  trim,
921
1055
  union,
922
1056
  urlToGet,
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@bestime/utils_base",
3
- "version": "1.0.7",
4
- "main": "./dist/jUtilsBase/esm/index.min.mjs",
5
- "module": "./dist/jUtilsBase/esm/index.min.mjs",
6
- "typings": "./dist/jUtilsBase/esm/index.min.d.ts",
3
+ "version": "1.0.8",
4
+ "main": "./dist/esm/index.min.mjs",
5
+ "module": "./dist/esm/index.min.mjs",
6
+ "typings": "./dist/esm/index.min.d.ts",
7
7
  "description": "个人常用工具库",
8
8
  "type": "module",
9
9
  "files": [
@@ -48,8 +48,5 @@
48
48
  "homepage": "https://github.com/bestime/tool",
49
49
  "publishConfig": {
50
50
  "access": "public"
51
- },
52
- "dependencies": {
53
- "lodash-es": "^4.17.21"
54
51
  }
55
52
  }
@@ -1,5 +0,0 @@
1
- /**
2
- * 纯JS工具库 => jUtilsBase
3
- * @update 2024-06-12 15:01:25
4
- */
5
- var $letters=["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"],$ArrayTypeNameBig="Array",$FunctionTypeNameBig="Function",$ObjectTypeNameBig="Object",$stringTypeNameBig="String",$numberTypeNameBig="Number",$undefinedValue=void 0,$zeroString="0",$falseString="false",$trueString="true",$ObjectTypeNameBigPrototypeToString=Object.prototype.toString,$encodeURI=encodeURI,$decodeURIComponent=decodeURIComponent,$regSpaceStr="\\s\\uFEFF\\xA0",$zeroWidthCode="‎";function isNull(e){return null===e||e===$undefinedValue}function _String(e){return isNull(e)?"":String(e)}function getType(e){return $ObjectTypeNameBigPrototypeToString.call(e).slice(8,-1)}function isArray(e){return getType(e)===$ArrayTypeNameBig}function isKvPair(e){return getType(e)===$ObjectTypeNameBig}function isString(e){return getType(e)===$stringTypeNameBig}function hpJsonParse(e,n){var r;try{r=JSON.parse(e)}catch(t){r=n}return r}function _KvPair(e){return e=isKvPair(e)||isKvPair(e=hpJsonParse(e))?e:{}}function isEmpty(e){return isNull(e)||""===e}function isFunction(e){return"function"==typeof e}function param(e){var r=[];function a(e,n){null!=e&&""!==e&&(n=null==(n=isFunction(n)?n():n)?"":n,r[r.length]=$encodeURI(e)+"="+$encodeURI(n))}return function i(e,n){var r,t;if(e)switch(getType(n)){case $ArrayTypeNameBig:for(r=0;r<n.length;r++)i(e+"["+("object"==typeof n[r]&&n[r]?r:"")+"]",n[r]);break;case $ObjectTypeNameBig:for(t in n)i(e+"["+t+"]",n[t]);break;default:a(e,n)}else switch(getType(n)){case $stringTypeNameBig:case $ObjectTypeNameBig:for(t in n)i(t,n[t]);break;case $ArrayTypeNameBig:for(r=0;r<n.length;r++)a(n[r].name,n[r].value)}}("",e),r.join("&")}function _Array(e){return e=isArray(e)||isArray(e=hpJsonParse(e))?e:[]}function _Number(e){return e=Number(e),Math.abs(e)===Math.abs(Infinity)||isNaN(e)?0:e}function hpTryToParseStringToBasicType(e){return null==e?$undefinedValue:$falseString!==e&&($trueString===e||hpJsonParse(e,e))}var defaultSplitArr=[$undefinedValue,$undefinedValue];function handleDeepKey(e,n,r){var n=splitSymbol(n),t=n[0];isPreLikeArray(t)?(t=_Number(t),n[1]==$undefinedValue?e.push(r):(/^\[[\D]+\]/.test(n[1])?e[t]=_KvPair(e[t]):e[t]=_Array(e[t]),handleDeepKey(e[t],n[1],r))):n[1]==$undefinedValue?e[t]=r:(/^\[[\D]+\]/.test(n[1])?e[t]=_KvPair(e[t]):e[t]=_Array(e[t]),handleDeepKey(e[t],n[1],r))}function splitSymbol(e){if(e==$undefinedValue)return defaultSplitArr;var t,a=e;return e.replace(/^\[(.*?)\](.*)?/,function(e,n,r){return a=n,t=r,""}),[a,t]}function isPreLikeArray(e){return""===e||/^\d+$/.test(e)}function parseQuery(e){var i={},o=!1,r="";return(e=isNull(e)?"":e).replace(/([^=&?/#]*?)=([^=&?/#]*)/g,function(e,n,a){a=hpTryToParseStringToBasicType($decodeURIComponent(a)),r=$decodeURIComponent(n),o=!1,""!==r&&(r.replace(/(.*?)(\[.*)/,function(e,n,r){var t=splitSymbol(r);o=!0,isPreLikeArray(t[0])?i[n]=_Array(i[n]):i[n]=_KvPair(i[n]),handleDeepKey(i[n],r,a)}),o||(i[r]=a))}),i}var baseReg="["+$regSpaceStr+"]+";function trim(e,n){var r=getType(e),t=(r===$numberTypeNameBig&&(e=String(e),r=$stringTypeNameBig),"");if(r!==$stringTypeNameBig)return"";switch(n){case 1:t="^"+baseReg;break;case-1:t=baseReg+"$";break;case"*":t=baseReg;break;default:t="^"+baseReg+"|"+baseReg+"$"}return e.replace(new RegExp(t,"g"),"")}function urlToGet(e,n){e=_String(e);var i=isKvPair(n)?n:parseQuery(n),n=parseQuery(e=e.replace(/({{)(.*?)(}})/g,function(e,n,r,t){r=trim(r);var a=i[r];return delete i[r],a})),n=param(i=Object.assign(n,i));return e=n?(e=e.replace(/\?.*/,""))+"?"+n:e}function hpIsEmptyMap(e){var n,r=!0;for(n in e)if(n!==$undefinedValue){r=!1;break}return r}function cloneEasy(e){switch(getType(e)){case $ArrayTypeNameBig:for(var n=[],r=0;r<e.length;r++)n.push(cloneEasy(e[r]));break;case $ObjectTypeNameBig:for(var t in n={},e)n[t]=cloneEasy(e[t]);break;case $FunctionTypeNameBig:function a(){e.apply(this,arguments)}for(var i in e.prototype)a.prototype[i]=e.prototype[i];n=a;break;default:n=e}return n}function isNoData(e,n){var r=!1;return r=isArray(e)&&n.array&&0===e.length||isKvPair(e)&&n.kvPair&&hpIsEmptyMap(e)||isString(e)&&n.string&&""===e||isNull(e)?!0:r}function hander(e,n){if(isKvPair(e))for(var r in e){var t=e[r];(isArray(t)||isKvPair(t))&&hander(t,n),isNoData(t,n)&&delete e[r]}}function shake(e,n){n=Object.assign({string:!0,array:!0,kvPair:!0},n);return hander(e=cloneEasy(e),n),e}function variableHasValue(e,n,r){var t;r=null==r?60:r,e()?n():(clearTimeout(t),setTimeout(function(){variableHasValue(e,n,r)},r))}variableHasValue["async"]=function(n,r){return new Promise(function(e){variableHasValue(n,e,r)})};var DEFAULT_CONFIG={id:"id",children:"children"};function deepFindTreePath(e,n,r){r=Object.assign(DEFAULT_CONFIG,r);for(var t=[],a=cloneEasy(e),i=new Set,o=r["children"];a.length;){var u=a[0];if(i.has(u))t.pop(),a.shift();else if(i.add(u),u[o]&&a.unshift.apply(a,u[o]),t.push(u),n(u))return t}return undefined}function isLikeNumber(e){var n=!1;return"boolean"==typeof e||isArray(e)||null==e||""===e||(e=Number(e),n=!isNaN(e)&&Infinity!=Math.abs(e)),n}function defaultValue(e,n){return isNull(e)?n:e}function repeatString(e,n){var r="";if((e=_String(e)).length*n<1<<28)for(;1==(1&n)&&(r+=e),0!=(n>>>=1);)e+=e;return r}function hpPadString(e,n,r,t){return(e=_String(e)).length>(n>>=0)?e:(n-=e.length,r.length<n&&(r+=repeatString(r,n/r.length)),-1===t?r.slice(0,n)+e:e+r.slice(0,n))}function padStart(e,n,r){return hpPadString(e,n,r,-1)}function padEnd(e,n,r){return hpPadString(e,n,r,1)}function split(e,n){return""!==e?e.split(n):[]}function floorFixed(e,n,r){var e=split(e=trim(_Number(e)),"."),t=e[1]||"";return t.length<n&&(t=padEnd(t,n,$zeroString),r&&(t=t.replace(/0+$/,""))),n<1||!t?e[0]:e[0]+"."+t.substring(0,n)}function roundFixed(e,n,r){e=_Number(e);var t,a=Math.pow(10,n),e=_String(Math.round(e*a)/a);return 0<n&&(t=(a=split(e,"."))[0],(a=a[1]||"").length<n&&(a=padEnd(a,n,$zeroString),e=(a=r?a.replace(/0+$/,""):a)?t+"."+a:t)),e}function deepFindItem(e,r,n){var t,a,i=isNull(n)?"children":n;return function o(e){if(e)for(var n=0;n<e.length;n++){if(a=r(e[n])){t=e[n];break}if(o(e[n][i]),a)break}}(e),t}function flatArrayToTree(e,n){for(var r=(n=_KvPair(n)).id||"id",t=n.pid||"pid",a=n.children||"children",i=0;i<e.length;i++){var o,u=e[i];(o=deepFindItem(e,function(e){return null!=e[r]&&e[r]!=u[r]&&e[r]===u[t]},a))&&(o[a]=_Array(o[a]),o[a].push(u),e.splice(i--,1))}return e}function changeIndex(e,n,r){if(e<0)return n;e+=1;return(n=(n+r)%e)<0&&(n+=e),-0===n?0:n}function getRandom(e,n,r){r=!1===r?0:1;return e=Math.random()*(n-e+r)+e,r?Math.floor(e):e}function getRandomWord(){return $letters[getRandom(0,$letters.length-1)][0]}function uuid(e){e=_Number(e);for(var n="",r=0;r<13;r++)n+=getRandom(1,9);e=(new Date).getTime()*getRandom(1,100);return padEnd(getRandomWord()+Number(n).toString(32)+e.toString(32),20,getRandomWord()+getRandomWord()+getRandomWord())}function _Boolean(e){return!0===e||"true"===e||"1"===e||1===e}function flatTree(e,t){var a=[];return t=defaultValue(t,"children"),function i(e){if(isArray(e))for(var n,r=0;r<e.length;r++)n=e[r],a.push(n),i(n[t])}(e),a}function main(e,a,i,o){o=o||"children";var n=[];return function u(e,n){for(var r=0;r<e.length;r++){var t=i(e[r]);isNull(t)||(n[r]=cloneEasy(t),e[r][o]&&(n[r][a]=[],u(e[r][o],n[r][a])))}}(e,n),n}var events={};function defineEventBus(a){if(events[a])throw'"'+a+'" Has already been registered!';return events[a]=events[a]||[],{on:function(e){events[a].push(e)},emit:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];for(var t=0;t<events[a].length;t++)events[a][t].apply($undefinedValue,n)},off:function(e){if(!e)throw"the hander of off is required!";for(var n=0;n<events[a].length;n++)events[a][n]===e&&events[a].splice(n--,1)},dispose:function(){for(var e=0;e<events[a].length;e++)events[a].splice(e--,1);delete events[a]}}}function forEachTree(e,a,i){i=i||"children",function o(e,n){for(var r=0;r<e.length;r++){var t=cloneEasy(n);a(e[r],t),isArray(e[r][i])&&(t.push(e[r]),o(e[r][i],t))}}(e,[])}function forEach(e,n){for(var r=0;r<e.length;r++)n(e[r],r,e)}function randomColor(){return"rgba("+getRandom(0,255,!0)+","+getRandom(0,255,!0)+","+getRandom(0,255,!0)+",1)"}function emptyFunc(e,n){}var Polling=function(){function e(e){this._timer=void 0,this._timer_info=void 0,this._stamp=0,this._passStamp=0,this._option=void 0,this._option=Object.assign({timeout:6e3,interval:1e3,handler:emptyFunc},e),this._next=this._next.bind(this),this._doOnce=this._doOnce.bind(this),this.done=this.done.bind(this)}var n=e.prototype;return n._next=function(){return clearInterval(this._timer),this._passStamp=+new Date-this._stamp,this._timer=setTimeout(this._doOnce,this._option.interval),this},n._doOnce=function(){if(this._passStamp>=this._option.timeout)return this._option.onMessage&&this._option.onMessage(0),this.done(),this;this._option.handler(this._next,this.done)},n.start=function(){var e,n=this;this._stamp=+new Date,this.done(),this._doOnce();return this._option.onMessage&&(clearInterval(this._timer_info),this._timer_info=setInterval(function(){e=+new Date-n._stamp,0===(e=Math.max(n._option.timeout-e,0))&&n.done(),n._option.onMessage(e)},100)),this},n.done=function(){return clearTimeout(this._timer),clearTimeout(this._timer_info),this},n.dispose=function(){return this.done(),this},e}();function dataPage(e,n,r){if(r<1)throw"页码必须大于0";var t=(r-1)*n,a=t+n;return{current:r,total:e.length,size:n,pages:Math.ceil(e.length/n),data:cloneEasy(e.slice(t,a))}}function basicCheck(e,n,r,t){if(e="【"+e+"】",r&&isEmpty(n))throw"字段"+e+"不能为空";if(getType(n)!==t)switch(t){case"String":n=String(n);break;case"Number":if(!isLikeNumber(n))throw"字段"+e+"必须为数字";n=Number(n)}return n}var fieldCheck={number:function(e,n){return basicCheck(e,n,!(2<arguments.length&&arguments[2]!==undefined)||arguments[2],"Number")},string:function(e,n){return basicCheck(e,n,2<arguments.length&&arguments[2]!==undefined&&arguments[2],"String")}};function uniq(e){return Array.from(new Set(e))}var defaultSortFun=function(e,n){return Number(e)-Number(n)},_names_count=0,_namesMap={};function getIdMap(e){return _namesMap[e]||(_namesMap[e]={id:++_names_count,label:e}),_namesMap[e]}function createUniqIds(e,n){var r=[],t=[];return e.forEach(function(e){e=getIdMap(n[e]);r.push(e.id),t.push(e.label)}),{id:r.join("_"),label:t.join("→")}}function arrayRowToColumn(e,a){var n,r=[],i=(e.forEach(function(e){e=String(e[a.colField]);r.includes(e)||r.push(e)}),r.sort(null!=(t=a.colSort)?t:defaultSortFun),{}),f=(e.forEach(function(n){var e=createUniqIds(a.uniqueRowId,n),r={},t=(a.uniqueRowId.forEach(function(e){r[e]=n[e]}),i[e.id]=i[e.id]||{value:r,name:e.label,data:{}},a.colCreate(n[a.colField]).field);i[e.id].data[t]=i[e.id].data[t]||[],i[e.id].data[t].push(n)}),[]);for(n in i)f.push({name:i[n].name,value:i[n].value,data:i[n].data,summary:{}});var t=r.map(function(e){var n=a.colCreate(e);return{value:e,label:n.label,field:n.field}}),d={};return a.summaryConfig&&(a.summaryConfig.row&&(f=mergeRowSummary(f,a.summaryConfig.row,a.summaryConfig.averageField)),a.summaryConfig.column&&(d=mergeColSummary(f,a.summaryConfig.column,a.summaryConfig.averageField))),{columns:t,data:f,colSummary:d,getExtRow:function(n,e,r){var t,a=f.find(function(e){return e.name===n}),i={};if(!a){var o=e,u=r,c=d[n],l={};if(c)for(var s in c)l[s]=u(c[s][o]);return l}for(t in a.summary)i[t]=r(a.summary[t][e]);return i}}}function getRatio$1(e,n){return e===$undefinedValue||n===$undefinedValue?$undefinedValue:(n-e)/e}function mergeRowSummary(a,i,n){return a.forEach(function(c){var l=i[c.name];if(l){var s,e,f=0,d=0;for(e in c.data)!function(e){d++;var n,r=[],t=0,a=[],i=[],o=(c.data[e].forEach(function(e){r.push(e[l.count.field]);var n=_Number(e[l.value.field]);switch(l.value.mode){case"uniqLength":a.push(e[l.value.field]),a=uniq(a),t=a.length;break;case"sum":case"avg":t+=n}0!==n&&i.push(n)}),0);switch(l.count.mode){case"length":o=r.length;break;case"uniqLength":o=uniq(r).length;break;case"notZeroValue":o=i.length}var u=t;"avg"===l.value.mode&&(u=t/o),f+=u,c.summary[e]={value:u,proportion:0,riseRatio:s?getRatio$1(null==(n=c.summary[s])?void 0:n.value,u):void 0},s=e}(e);c.summary[n]={value:f/d,riseRatio:$undefinedValue,proportion:0}}}),a.forEach(function(e){var n=i[e.name];if(n){var r=a.find(function(e){return e.name===n.proportionBaseField});if(n.proportionBaseField&&r)for(var t in e.summary)e.summary[t].proportion=e.summary[t].value/r.summary[t].value}}),a}function mergeColSummary(l,s,f){var e,d={},m={},n=function(a){m[a]={},d[a]={};var e,i=s[a],n=(l.forEach(function(t){for(var e in t.data)!function(e){d[a][e]=d[a][e]||{data:[],sum:0};var n=[],r=0;switch(t.data[e].forEach(function(e){switch(n.push(e[i.field]),i.mode){case"uniqLength":n=uniq(n);break;case"avg":case"sum":r+=e[i.field];break;case"notZeroLength":0!==_Number(e[i.field])&&r++}}),i.mode){case"uniqLength":n=uniq(n);break;case"avg":r/=t.data[e].length}d[a][e].data=d[a][e].data.concat(n),d[a][e].sum+=r}(e)}),void 0);for(e in d[a]){var r,t=0;switch(i.mode){case"avg":t=d[a][e].sum/l.length;break;case"uniqLength":t=d[a][e].data.length;break;case"notZeroLength":case"sum":t=d[a][e].sum}m[a][e]={value:t,proportion:0,riseRatio:n?getRatio$1(null==(r=m[a][n])?void 0:r.value,t):void 0},n=e}var o,u=0,c=0;for(o in m[a])u+=m[a][o].value,c++;m[a][f]={value:u/c,riseRatio:$undefinedValue,proportion:0}};for(e in s)n(e);return m}function sameRowCellCount(e,n,r,t){var a=1;for(e++;e<t.length;e++){var i=t[e][n];if(i!==r&&!isEmpty(i))break;a++}return a}function findPrevRowSpanNum(e,n,r){for(var t=0;0<=n&&!(0<(t=e[n].$rowSpan[r]));n--);return t}function sameColSellCount(e,n,r,t){var a=1;for(e++;e<t.length;e++){var i=trim(r[t[e]]);if(i!==n&&!isEmpty(i))break;a++}return a}function spanTable(e,u){var c=cloneEasy(e),l={};return u.forEach(function(e,n){var a,i,o;a=e,i=u[n-1],o=0,c.forEach(function(e,n){e.$rowSpan=null!=(t=e.$rowSpan)?t:{};var r,t=e[a];l[a]=null!=(r=l[a])?r:0,1<l[a]?(e.$rowSpan[a]=0,l[a]--):(r=sameRowCellCount(n,a,t,c),void 0!==i&&(t=findPrevRowSpanNum(c,n,i),0<o?t<=o+r?(r=t-o,o=0):o+=r:r<t?o=r:r=t),l[a]=r,e.$rowSpan[a]=l[a])})}),c.forEach(function(t){t.$colSpan={},t.$colField={};var a=0;u.forEach(function(e,n){var r=t[e];1<a?(t.$colSpan[n]=0,t.$colField[e]=0,a--):(a=sameColSellCount(n,r,t,u),t.$colSpan[n]=a,t.$colField[e]=a)})}),c}function thousands(e,a,i){return a=a||3,i=i||",",(isString(e)?e:_String(e)).replace(/([^.]*)?(\.)?(.*)?/,function(e,n,r,t){return _String(n).replace(new RegExp("(.(?=(.{"+a+"})+$))","g"),"$1"+i)+_String(r)+_String(t)})}function mapKvPair(e,n){var r,t={};for(r in e)t[r]=n(cloneEasy(e[r]),r);return t}function isFuzzyMatch(e,n,r){var t=!0;return(e=trim(e,"*"))&&(e=split(e,"").join(".*"),t=new RegExp(e,_String(r)).test(n)),t}function mixInZeroWidthUnicode(e){return split(e,"").join($zeroWidthCode)}function forEachKvPair(e,n){var r,t={},a=-1;for(r in e)a++,t[r]=n(e[r],r,a);return t}function getSortList(e){return e.map(function(e,n){return{value:e,index:n}})}function getSortIndex(e,r){var n=getSortList(e),t=getSortList(e);return t.sort(function(e,n){return r(e.value,n.value)}),n.map(function(n){return t.findIndex(function(e){return n.index===e.index})})}function sortWithIndex(e,n){for(var r=[],t=0;t<e.length;t++)r[t]=e[n[t]];return r}function getRatio(e,n){return 0===e||isNull(e)?0:0===n||isNull(n)?1:e/n}function difference(e,r,t){var a=[];return e.forEach(function(n){r.some(function(e){return t(e,n)})||a.push(n)}),r.forEach(function(n){e.some(function(e){return t(e,n)})||a.some(function(e){return t(e,n)})||a.push(n)}),a}function hpObjectKeys(e){return Object.keys(e)}var AVG_FIELD="sys-row-avg";function getUniqId(e,n){var r=[];return isArray(e)?e.forEach(function(e){r.push(n[e])}):r.push(n[e]),r.join("→")}function _rowToColumn(e,n){var u={},r=n.colField;if(!isNull(r)&&e.length){var a=n.cellSummary;if(e.forEach(function(e){var n=e[r];u[n]=u[n]||{data:[],summary:0,_collect:[]},u[n].data.push(e),a&&(e=e[a.numerator[0]],u[n].summary+=e,u[n]._collect.push(e))}),!isNull(a)){var t,i,o;for(t in u)!function(e){var n=u[e],r=1,t=a.denominator;if(t)switch(t[1]){case"length":r=n.data.map(function(e){return e[t[0]]}).length;break;case"uniqLength":r=uniq(n.data.map(function(e){return e[t[0]]})).length}switch(a.numerator[1]){case"sum":isNull(n.summary)||(n.summary=n.summary/r);break;case"length":n.summary=n._collect.length/r;break;case"uniqLength":n.summary=uniq(n._collect).length/r}}(t);o=i=0,forEachKvPair(u,function(e){i++;e=isNull(e.summary)?0:e.summary;o+=e}),u[AVG_FIELD]={data:[],summary:o/i,_collect:[]},n.colCustom&&forEachKvPair(n.colCustom,function(e,n){var r=c(e.numerator),e=e.denominator?c(e.denominator):1;u[n]={data:[],summary:getRatio(r,e),_collect:[]}})}}return u;function c(i){var o=0,e=hpObjectKeys(u).filter(function(e){var n=[AVG_FIELD].includes(e),e="*"===i[1]||i[1].includes(e);return!n&&e});return isArray(i[1])&&e.sort(function(e,n){return i[1].indexOf(e)-i[1].indexOf(n)}),e.forEach(function(e,n){var r,t,e=u[e],a=0;isNull(i[2])||"value"===i[2]?a=isNull(e.summary)?0:e.summary:"length"===i[2]?(r=i[3])&&(a=e.data.map(function(e){return e[r]}).length):"uniqLength"===i[2]&&(t=i[3])&&(a=uniq(e.data.map(function(e){return e[t]})).length),"sum"===i[0]?o+=a:"max"===i[0]?o=Math.max(o,a):"diff"===i[0]&&(0===n?o=a:o-=a)}),o}}function _groupToList(e,n,r,t){var a,i=[];for(a in e){var o=n===r,u=_groupToList(e[a].child,n,r+1,t);i.push({uidPath:e[a].uidPath,uid:e[a].uid,data:e[a].data,_columnRiseRatio:{},_columnTotal:{},_columnProportion:{},_columns:_rowToColumn(e[a].data,t),isLeaf:o,children:u})}return i}function deepGroup(e,u){var n={},c=0;!function s(e,n,r){for(var t=0;t<n.length;t++){var a=n[t],i=getUniqId(u.path[c].field,a);e[i]=e[i]||{uidPath:r.concat(i),uid:i,data:[],child:{}},e[i].data.push(a)}if(c<u.path.length-1)for(var o in c++,e)s(e[o].child,e[o].data,e[o].uidPath)}(n,e,[]);var e=_groupToList(n,c,0,u),t=(!function a(e,n){var r;e.sort(null==(r=u.path[n])?void 0:r.sort),e.forEach(function(e){a(e.children,n+1)})}(e,0),!function i(e){e.forEach(function(e){var r={};forEachKvPair(e._columns,function(e,n){e=isNull(e.summary)?0:e.summary;r[n]=r[n]||0,r[n]+=e}),e._columnTotal=r,i(e.children)})}(e),{}),l=(e.forEach(function(r){forEachKvPair(r._columns,function(e,n){t[n]=t[n]||0,t[n]+=r._columnTotal[n]})}),[]);return u.colCustom&&forEachKvPair(u.colCustom,function(e,n){e.riseRatio||l.push(n)}),function r(e){var i={},o={};e.forEach(function(e,a){forEachKvPair(e._columns,function(e,n){var r,t;l.includes(n)||(0<a?isNull(r=e.summary)?o[n]=$undefinedValue:(t=null!=(t=i[n])?t:0,o[n]=getRatio(r-t,t)):o[n]=void 0,i[n]=e.summary)}),e._columnRiseRatio=o,r(e.children)})}(e),function o(e,t){e.forEach(function(e,n){var r={};forEachKvPair(e._columns,function(e,n){r[n]=getRatio(e.summary,t[n])}),e._columnProportion=r,o(e.children,e._columnTotal)})}(e,t),{data:e,total:t}}function listGroup(e,n){var s=deepGroup(e,n);function i(e,n,r,t,a){var i=deepFindItem(s.data,function(e){return 0===difference(e.uidPath,n,function(e,n){return e===n}).length}),o=defaultValue(a,"");if(i)try{switch(e){case"_columnRiseRatio":case"_columnTotal":case"_columnProportion":var u=i[e][r];return isNull(u)?o:t(u);default:var c=i[e][r].summary;return isNull(c)?o:t(c,i[e][r].data)}}catch(l){return o}return o}function o(e,n,r,t){return i("_columns",e,n,r,t)}function u(e,n,r,t){return i("_columnProportion",e,n,r,t)}return{data:s.data,getCellValue:o,getCellVerticalRiseRatio:function(e,n,r,t){return i("_columnRiseRatio",e,n,r,t)},getCellVerticalTotal:function(e,n,r,t){var a;return"*"===e?isNull(a=s.total[n])?defaultValue(t,""):r(a):i("_columnTotal",e,n,r,t)},getCellVerticalProportion:u,getRowCellValue:function(n,e,r,t){var a={};return e.forEach(function(e){a[e.id]=o(n,e.field,r,t)}),a},getRowVerticalProportion:function(n,e,r,t){var a={};return e.forEach(function(e){a[e.id]=u(n,e.field,r,t)}),a},getOriginGroupData:function(n,e){var r=deepFindItem(s.data,function(e){return 0===difference(e.uidPath,n,function(e,n){return e===n}).length});return r&&null!=(r=null==(e=r._columns[e])?void 0:e.data)?r:[]},getOriginAllData:function(){return e}}}function union(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];var t=new Set(n);return Array.from(t)}function filterWithMove(e,n){for(var r=[],t=0;t<e.length;t++){var a=e[t];n(a,t,e)&&(r.push(a),e.splice(t--,1))}return r}var defaUnits=[[1e4,"万"],[1e8,"亿"]];function shortNumber(e,n,r){for(var t=isNull(r)?defaUnits:r,a=(t.sort(function(e,n){return n[0]-e[0]}),e),i="",o=0;o<t.length;o++){var u=t[o],c=e/u[0];if(1<=c){a=c,i=u[1];break}}return{value:a,fmtValue:n(a),unit:i}}export{Polling,_Array,_Boolean,_KvPair,_Number,_String,arrayRowToColumn,changeIndex,cloneEasy,dataPage,deepFindItem,deepFindTreePath,defaultValue,defineEventBus,fieldCheck,filterWithMove,flatTree,floorFixed,forEach,forEachKvPair,forEachTree,getRandom,getRatio,getSortIndex,getType,isArray,isEmpty,isFunction,isFuzzyMatch,isKvPair,isLikeNumber,isNull,isString,listGroup,mapKvPair,main as mapTree,mixInZeroWidthUnicode,padEnd,padStart,param,parseQuery,randomColor,repeatString,roundFixed,shake,shortNumber,sortWithIndex,spanTable,split,thousands,flatArrayToTree as tree,trim,union,urlToGet,uuid,variableHasValue};
@@ -1,5 +0,0 @@
1
- /**
2
- * 纯JS工具库 => jUtilsBase
3
- * @update 2024-06-12 15:01:25
4
- */
5
- !function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((n="undefined"!=typeof globalThis?globalThis:n||self).jUtilsBase={})}(this,function(n){"use strict";var t=["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"],o="Array",u="Object",c="String",I="Number",m=void 0,L="false",q="true",V=Object.prototype.toString,e=encodeURI,a=decodeURIComponent;function h(n){return null===n||n===m}function f(n){return h(n)?"":String(n)}function l(n){return V.call(n).slice(8,-1)}function d(n){return l(n)===o}function s(n){return l(n)===u}function v(n){return l(n)===c}function p(n,t){var r;try{r=JSON.parse(n)}catch(e){r=t}return r}function g(n){return n=s(n)||s(n=p(n))?n:{}}function y(n){return h(n)||""===n}function _(n){return"function"==typeof n}function A(n){var r=[];function a(n,t){null!=n&&""!==n&&(t=null==(t=_(t)?t():t)?"":t,r[r.length]=e(n)+"="+e(t))}return function i(n,t){var r,e;if(n)switch(l(t)){case o:for(r=0;r<t.length;r++)i(n+"["+("object"==typeof t[r]&&t[r]?r:"")+"]",t[r]);break;case u:for(e in t)i(n+"["+e+"]",t[e]);break;default:a(n,t)}else switch(l(t)){case c:case u:for(e in t)i(e,t[e]);break;case o:for(r=0;r<t.length;r++)a(t[r].name,t[r].value)}}("",n),r.join("&")}function b(n){return n=d(n)||d(n=p(n))?n:[]}function w(n){return n=Number(n),Math.abs(n)===Math.abs(Infinity)||isNaN(n)?0:n}var D=[m,m];function B(n){if(n==m)return D;var e,a=n;return n.replace(/^\[(.*?)\](.*)?/,function(n,t,r){return a=t,e=r,""}),[a,e]}function K(n){return""===n||/^\d+$/.test(n)}function r(n){var o={},u=!1,e="";return(n=h(n)?"":n).replace(/([^=&?/#]*?)=([^=&?/#]*)/g,function(n,t,i){var r;r=a(i),i=null==r?m:L!==r&&(q===r||p(r,r)),e=a(t),u=!1,""!==e&&(e.replace(/(.*?)(\[.*)/,function(n,t,r){var e=B(r);u=!0,K(e[0])?o[t]=b(o[t]):o[t]=g(o[t]),function a(n,t,r){var t=B(t),e=t[0];K(e)?(e=w(e),t[1]==m?n.push(r):(/^\[[\D]+\]/.test(t[1])?n[e]=g(n[e]):n[e]=b(n[e]),a(n[e],t[1],r))):t[1]==m?n[e]=r:(/^\[[\D]+\]/.test(t[1])?n[e]=g(n[e]):n[e]=b(n[e]),a(n[e],t[1],r))}(o[t],r,i)}),u||(o[e]=i))}),o}var i="[\\s\\uFEFF\\xA0]+";function E(n,t){var r=l(n),e=(r===I&&(n=String(n),r=c),"");if(r!==c)return"";switch(t){case 1:e="^"+i;break;case-1:e=i+"$";break;case"*":e=i;break;default:e="^"+i+"|"+i+"$"}return n.replace(new RegExp(e,"g"),"")}function S(n){switch(l(n)){case o:for(var t=[],r=0;r<n.length;r++)t.push(S(n[r]));break;case u:for(var e in t={},n)t[e]=S(n[e]);break;case"Function":function a(){n.apply(this,arguments)}for(var i in n.prototype)a.prototype[i]=n.prototype[i];t=a;break;default:t=n}return t}function U(n,t){var r=!1;return r=d(n)&&t.array&&0===n.length||s(n)&&t.kvPair&&function(n){var t,r=!0;for(t in n)if(t!==m){r=!1;break}return r}(n)||v(n)&&t.string&&""===n||h(n)?!0:r}function k(n,t,r){var e;r=null==r?60:r,n()?t():(clearTimeout(e),setTimeout(function(){k(n,t,r)},r))}k["async"]=function(t,r){return new Promise(function(n){k(t,n,r)})};var Z={id:"id",children:"children"};function G(n){var t=!1;return"boolean"==typeof n||d(n)||null==n||""===n||(n=Number(n),t=!isNaN(n)&&Infinity!=Math.abs(n)),t}function R(n,t){return h(n)?t:n}function W(n,t){var r="";if((n=f(n)).length*t<1<<28)for(;1==(1&t)&&(r+=n),0!=(t>>>=1);)n+=n;return r}function z(n,t,r,e){return(n=f(n)).length>(t>>=0)?n:(t-=n.length,r.length<t&&(r+=W(r,t/r.length)),-1===e?r.slice(0,t)+n:n+r.slice(0,t))}function x(n,t,r){return z(n,t,r,1)}function T(n,t){return""!==n?n.split(t):[]}function C(n,r,t){var e,a,i=h(t)?"children":t;return function o(n){if(n)for(var t=0;t<n.length;t++){if(a=r(n[t])){e=n[t];break}if(o(n[t][i]),a)break}}(n),e}function P(n,t,r){r=!1===r?0:1;return n=Math.random()*(t-n+r)+n,r?Math.floor(n):n}function F(){return t[P(0,t.length-1)][0]}var N={};function H(n,t){}function J(n,t,r,e){if(n="【"+n+"】",r&&y(t))throw"字段"+n+"不能为空";if(l(t)!==e)switch(e){case"String":t=String(t);break;case"Number":if(!G(t))throw"字段"+n+"必须为数字";t=Number(t)}return t}var Q={number:function(n,t){return J(n,t,!(2<arguments.length&&arguments[2]!==undefined)||arguments[2],"Number")},string:function(n,t){return J(n,t,2<arguments.length&&arguments[2]!==undefined&&arguments[2],"String")}};function O(n){return Array.from(new Set(n))}var X=function(n,t){return Number(n)-Number(t)},Y=0,$={};function nn(n,t){var r=[],e=[];return n.forEach(function(n){n=t[n],$[n]||($[n]={id:++Y,label:n});n=$[n];r.push(n.id),e.push(n.label)}),{id:r.join("_"),label:e.join("→")}}function tn(n,t){return n===m||t===m?m:(t-n)/n}function M(n,t){var r,e={},a=-1;for(r in n)a++,e[r]=t(n[r],r,a);return e}function rn(n){return n.map(function(n,t){return{value:n,index:t}})}function j(n,t){return 0===n||h(n)?0:0===t||h(t)?1:n/t}function en(n,r,e){var a=[];return n.forEach(function(t){r.some(function(n){return e(n,t)})||a.push(t)}),r.forEach(function(t){n.some(function(n){return e(n,t)})||a.some(function(n){return e(n,t)})||a.push(t)}),a}var an="sys-row-avg";function on(n,t){var u={},r=t.colField;if(!h(r)&&n.length){var a=t.cellSummary;if(n.forEach(function(n){var t=n[r];u[t]=u[t]||{data:[],summary:0,_collect:[]},u[t].data.push(n),a&&(n=n[a.numerator[0]],u[t].summary+=n,u[t]._collect.push(n))}),!h(a)){var e,i,o;for(e in u)!function(n){var t=u[n],r=1,e=a.denominator;if(e)switch(e[1]){case"length":r=t.data.map(function(n){return n[e[0]]}).length;break;case"uniqLength":r=O(t.data.map(function(n){return n[e[0]]})).length}switch(a.numerator[1]){case"sum":h(t.summary)||(t.summary=t.summary/r);break;case"length":t.summary=t._collect.length/r;break;case"uniqLength":t.summary=O(t._collect).length/r}}(e);o=i=0,M(u,function(n){i++;n=h(n.summary)?0:n.summary;o+=n}),u[an]={data:[],summary:o/i,_collect:[]},t.colCustom&&M(t.colCustom,function(n,t){var r=c(n.numerator),n=n.denominator?c(n.denominator):1;u[t]={data:[],summary:j(r,n),_collect:[]}})}}return u;function c(i){var o=0,n=Object.keys(u).filter(function(n){var t=[an].includes(n),n="*"===i[1]||i[1].includes(n);return!t&&n});return d(i[1])&&n.sort(function(n,t){return i[1].indexOf(n)-i[1].indexOf(t)}),n.forEach(function(n,t){var r,e,n=u[n],a=0;h(i[2])||"value"===i[2]?a=h(n.summary)?0:n.summary:"length"===i[2]?(r=i[3])&&(a=n.data.map(function(n){return n[r]}).length):"uniqLength"===i[2]&&(e=i[3])&&(a=O(n.data.map(function(n){return n[e]})).length),"sum"===i[0]?o+=a:"max"===i[0]?o=Math.max(o,a):"diff"===i[0]&&(0===t?o=a:o-=a)}),o}}function un(n,u){var t={},c=0;!function l(n,t,r){for(var e=0;e<t.length;e++){var a=t[e],i=function(n,t){var r=[];return d(n)?n.forEach(function(n){r.push(t[n])}):r.push(t[n]),r.join("→")}(u.path[c].field,a);n[i]=n[i]||{uidPath:r.concat(i),uid:i,data:[],child:{}},n[i].data.push(a)}if(c<u.path.length-1)for(var o in c++,n)l(n[o].child,n[o].data,n[o].uidPath)}(t,n,[]);var n=function s(n,t,r,e){var a,i=[];for(a in n){var o=t===r,u=s(n[a].child,t,r+1,e);i.push({uidPath:n[a].uidPath,uid:n[a].uid,data:n[a].data,_columnRiseRatio:{},_columnTotal:{},_columnProportion:{},_columns:on(n[a].data,e),isLeaf:o,children:u})}return i}(t,c,0,u),e=(!function a(n,t){var r;n.sort(null==(r=u.path[t])?void 0:r.sort),n.forEach(function(n){a(n.children,t+1)})}(n,0),!function i(n){n.forEach(function(n){var r={};M(n._columns,function(n,t){n=h(n.summary)?0:n.summary;r[t]=r[t]||0,r[t]+=n}),n._columnTotal=r,i(n.children)})}(n),{}),f=(n.forEach(function(r){M(r._columns,function(n,t){e[t]=e[t]||0,e[t]+=r._columnTotal[t]})}),[]);return u.colCustom&&M(u.colCustom,function(n,t){n.riseRatio||f.push(t)}),function r(n){var i={},o={};n.forEach(function(n,a){M(n._columns,function(n,t){var r,e;f.includes(t)||(0<a?h(r=n.summary)?o[t]=m:(e=null!=(e=i[t])?e:0,o[t]=j(r-e,e)):o[t]=void 0,i[t]=n.summary)}),n._columnRiseRatio=o,r(n.children)})}(n),function o(n,e){n.forEach(function(n,t){var r={};M(n._columns,function(n,t){r[t]=j(n.summary,e[t])}),n._columnProportion=r,o(n.children,n._columnTotal)})}(n,e),{data:n,total:e}}var cn=[[1e4,"万"],[1e8,"亿"]];n.Polling=function(){function n(n){this._timer=void 0,this._timer_info=void 0,this._stamp=0,this._passStamp=0,this._option=void 0,this._option=Object.assign({timeout:6e3,interval:1e3,handler:H},n),this._next=this._next.bind(this),this._doOnce=this._doOnce.bind(this),this.done=this.done.bind(this)}var t=n.prototype;return t._next=function(){return clearInterval(this._timer),this._passStamp=+new Date-this._stamp,this._timer=setTimeout(this._doOnce,this._option.interval),this},t._doOnce=function(){if(this._passStamp>=this._option.timeout)return this._option.onMessage&&this._option.onMessage(0),this.done(),this;this._option.handler(this._next,this.done)},t.start=function(){var n,t=this;this._stamp=+new Date,this.done(),this._doOnce();return this._option.onMessage&&(clearInterval(this._timer_info),this._timer_info=setInterval(function(){n=+new Date-t._stamp,0===(n=Math.max(t._option.timeout-n,0))&&t.done(),t._option.onMessage(n)},100)),this},t.done=function(){return clearTimeout(this._timer),clearTimeout(this._timer_info),this},t.dispose=function(){return this.done(),this},n}(),n._Array=b,n._Boolean=function(n){return!0===n||"true"===n||"1"===n||1===n},n._KvPair=g,n._Number=w,n._String=f,n.arrayRowToColumn=function(n,a){var t,r=[],i=(n.forEach(function(n){n=String(n[a.colField]);r.includes(n)||r.push(n)}),r.sort(null!=(c=a.colSort)?c:X),{}),s=(n.forEach(function(t){var n=nn(a.uniqueRowId,t),r={},e=(a.uniqueRowId.forEach(function(n){r[n]=t[n]}),i[n.id]=i[n.id]||{value:r,name:n.label,data:{}},a.colCreate(t[a.colField]).field);i[n.id].data[e]=i[n.id].data[e]||[],i[n.id].data[e].push(t)}),[]);for(t in i)s.push({name:i[t].name,value:i[t].value,data:i[t].data,summary:{}});var o,u,e,c=r.map(function(n){var t=a.colCreate(n);return{value:n,label:t.label,field:t.field}}),h={};return a.summaryConfig&&(a.summaryConfig.row&&(o=s,u=a.summaryConfig.row,e=a.summaryConfig.averageField,o.forEach(function(c){var f=u[c.name];if(f){var l,n,s=0,h=0;for(n in c.data)!function(n){h++;var t,r=[],e=0,a=[],i=[],o=(c.data[n].forEach(function(n){r.push(n[f.count.field]);var t=w(n[f.value.field]);switch(f.value.mode){case"uniqLength":a.push(n[f.value.field]),a=O(a),e=a.length;break;case"sum":case"avg":e+=t}0!==t&&i.push(t)}),0);switch(f.count.mode){case"length":o=r.length;break;case"uniqLength":o=O(r).length;break;case"notZeroValue":o=i.length}var u=e;"avg"===f.value.mode&&(u=e/o),s+=u,c.summary[n]={value:u,proportion:0,riseRatio:l?tn(null==(t=c.summary[l])?void 0:t.value,u):void 0},l=n}(n);c.summary[e]={value:s/h,riseRatio:m,proportion:0}}}),o.forEach(function(n){var t=u[n.name];if(t){var r=o.find(function(n){return n.name===t.proportionBaseField});if(t.proportionBaseField&&r)for(var e in n.summary)n.summary[e].proportion=n.summary[e].value/r.summary[e].value}}),s=o),a.summaryConfig.column&&(h=function(f,l,s){var n,h={},d={},t=function(a){d[a]={},h[a]={};var n,i=l[a],t=(f.forEach(function(e){for(var n in e.data)!function(n){h[a][n]=h[a][n]||{data:[],sum:0};var t=[],r=0;switch(e.data[n].forEach(function(n){switch(t.push(n[i.field]),i.mode){case"uniqLength":t=O(t);break;case"avg":case"sum":r+=n[i.field];break;case"notZeroLength":0!==w(n[i.field])&&r++}}),i.mode){case"uniqLength":t=O(t);break;case"avg":r/=e.data[n].length}h[a][n].data=h[a][n].data.concat(t),h[a][n].sum+=r}(n)}),void 0);for(n in h[a]){var r,e=0;switch(i.mode){case"avg":e=h[a][n].sum/f.length;break;case"uniqLength":e=h[a][n].data.length;break;case"notZeroLength":case"sum":e=h[a][n].sum}d[a][n]={value:e,proportion:0,riseRatio:t?tn(null==(r=d[a][t])?void 0:r.value,e):void 0},t=n}var o,u=0,c=0;for(o in d[a])u+=d[a][o].value,c++;d[a][s]={value:u/c,riseRatio:m,proportion:0}};for(n in l)t(n);return d}(s,a.summaryConfig.column,a.summaryConfig.averageField))),{columns:c,data:s,colSummary:h,getExtRow:function(t,n,r){var e,a=s.find(function(n){return n.name===t}),i={};if(!a){var o=n,u=r,c=h[t],f={};if(c)for(var l in c)f[l]=u(c[l][o]);return f}for(e in a.summary)i[e]=r(a.summary[e][n]);return i}}},n.changeIndex=function(n,t,r){return n<0?t:((t=(t+r)%(n+=1))<0&&(t+=n),-0===t?0:t)},n.cloneEasy=S,n.dataPage=function(n,t,r){if(r<1)throw"页码必须大于0";var e=(r-1)*t,a=e+t;return{current:r,total:n.length,size:t,pages:Math.ceil(n.length/t),data:S(n.slice(e,a))}},n.deepFindItem=C,n.deepFindTreePath=function(n,t,r){r=Object.assign(Z,r);for(var e=[],a=S(n),i=new Set,o=r["children"];a.length;){var u=a[0];if(i.has(u))e.pop(),a.shift();else if(i.add(u),u[o]&&a.unshift.apply(a,u[o]),e.push(u),t(u))return e}return undefined},n.defaultValue=R,n.defineEventBus=function(a){if(N[a])throw'"'+a+'" Has already been registered!';return N[a]=N[a]||[],{on:function(n){N[a].push(n)},emit:function(){for(var n=arguments.length,t=new Array(n),r=0;r<n;r++)t[r]=arguments[r];for(var e=0;e<N[a].length;e++)N[a][e].apply(m,t)},off:function(n){if(!n)throw"the hander of off is required!";for(var t=0;t<N[a].length;t++)N[a][t]===n&&N[a].splice(t--,1)},dispose:function(){for(var n=0;n<N[a].length;n++)N[a].splice(n--,1);delete N[a]}}},n.fieldCheck=Q,n.filterWithMove=function(n,t){for(var r=[],e=0;e<n.length;e++){var a=n[e];t(a,e,n)&&(r.push(a),n.splice(e--,1))}return r},n.flatTree=function(n,e){var a=[];return e=R(e,"children"),function i(n){if(d(n))for(var t,r=0;r<n.length;r++)t=n[r],a.push(t),i(t[e])}(n),a},n.floorFixed=function(n,t,r){var e=(n=T(n=E(w(n)),"."))[1]||"";return e.length<t&&(e=x(e,t,"0"),r&&(e=e.replace(/0+$/,""))),t<1||!e?n[0]:n[0]+"."+e.substring(0,t)},n.forEach=function(n,t){for(var r=0;r<n.length;r++)t(n[r],r,n)},n.forEachKvPair=M,n.forEachTree=function(n,a,i){i=i||"children",function o(n,t){for(var r=0;r<n.length;r++){var e=S(t);a(n[r],e),d(n[r][i])&&(e.push(n[r]),o(n[r][i],e))}}(n,[])},n.getRandom=P,n.getRatio=j,n.getSortIndex=function(n,r){var t=rn(n),e=rn(n);return e.sort(function(n,t){return r(n.value,t.value)}),t.map(function(t){return e.findIndex(function(n){return t.index===n.index})})},n.getType=l,n.isArray=d,n.isEmpty=y,n.isFunction=_,n.isFuzzyMatch=function(n,t,r){var e=!0;return(n=E(n,"*"))&&(n=T(n,"").join(".*"),e=new RegExp(n,f(r)).test(t)),e},n.isKvPair=s,n.isLikeNumber=G,n.isNull=h,n.isString=v,n.listGroup=function(n,t){var l=un(n,t);function i(n,t,r,e,a){var i=C(l.data,function(n){return 0===en(n.uidPath,t,function(n,t){return n===t}).length}),o=R(a,"");if(i)try{switch(n){case"_columnRiseRatio":case"_columnTotal":case"_columnProportion":var u=i[n][r];return h(u)?o:e(u);default:var c=i[n][r].summary;return h(c)?o:e(c,i[n][r].data)}}catch(f){return o}return o}function o(n,t,r,e){return i("_columns",n,t,r,e)}function u(n,t,r,e){return i("_columnProportion",n,t,r,e)}return{data:l.data,getCellValue:o,getCellVerticalRiseRatio:function(n,t,r,e){return i("_columnRiseRatio",n,t,r,e)},getCellVerticalTotal:function(n,t,r,e){var a;return"*"===n?h(a=l.total[t])?R(e,""):r(a):i("_columnTotal",n,t,r,e)},getCellVerticalProportion:u,getRowCellValue:function(t,n,r,e){var a={};return n.forEach(function(n){a[n.id]=o(t,n.field,r,e)}),a},getRowVerticalProportion:function(t,n,r,e){var a={};return n.forEach(function(n){a[n.id]=u(t,n.field,r,e)}),a},getOriginGroupData:function(t,n){var r=C(l.data,function(n){return 0===en(n.uidPath,t,function(n,t){return n===t}).length});return r&&null!=(r=null==(n=r._columns[n])?void 0:n.data)?r:[]},getOriginAllData:function(){return n}}},n.mapKvPair=function(n,t){var r,e={};for(r in n)e[r]=t(S(n[r]),r);return e},n.mapTree=function(n,a,i,o){o=o||"children";var t=[];return function u(n,t){for(var r=0;r<n.length;r++){var e=i(n[r]);h(e)||(t[r]=S(e),n[r][o]&&(t[r][a]=[],u(n[r][o],t[r][a])))}}(n,t),t},n.mixInZeroWidthUnicode=function(n){return T(n,"").join("‎")},n.padEnd=x,n.padStart=function(n,t,r){return z(n,t,r,-1)},n.param=A,n.parseQuery=r,n.randomColor=function(){return"rgba("+P(0,255,!0)+","+P(0,255,!0)+","+P(0,255,!0)+",1)"},n.repeatString=W,n.roundFixed=function(n,t,r){n=w(n);var e,a=Math.pow(10,t),n=f(Math.round(n*a)/a);return 0<t&&(e=(a=T(n,"."))[0],(a=a[1]||"").length<t&&(a=x(a,t,"0"),n=(a=r?a.replace(/0+$/,""):a)?e+"."+a:e)),n},n.shake=function(n,t){return t=Object.assign({string:!0,array:!0,kvPair:!0},t),function a(n,t){if(s(n))for(var r in n){var e=n[r];(d(e)||s(e))&&a(e,t),U(e,t)&&delete n[r]}}(n=S(n),t),n},n.shortNumber=function(n,t,r){for(var e=h(r)?cn:r,a=(e.sort(function(n,t){return t[0]-n[0]}),n),i="",o=0;o<e.length;o++){var u=e[o],c=n/u[0];if(1<=c){a=c,i=u[1];break}}return{value:a,fmtValue:t(a),unit:i}},n.sortWithIndex=function(n,t){for(var r=[],e=0;e<n.length;e++)r[e]=n[t[e]];return r},n.spanTable=function(n,i){var u=S(n),c={};function r(a,i){var o=0;u.forEach(function(n,t){n.$rowSpan=null!=(e=n.$rowSpan)?e:{};var r,e=n[a];c[a]=null!=(r=c[a])?r:0,1<c[a]?(n.$rowSpan[a]=0,c[a]--):(r=function(n,t,r,e){var a=1;for(n++;n<e.length;n++){var i=e[n][t];if(i!==r&&!y(i))break;a++}return a}(t,a,e,u),void 0!==i&&(e=function(n,t,r){for(var e=0;0<=t&&!(0<(e=n[t].$rowSpan[r]));t--);return e}(u,t,i),0<o?e<=o+r?(r=e-o,o=0):o+=r:r<e?o=r:r=e),c[a]=r,n.$rowSpan[a]=c[a])})}return i.forEach(function(n,t){r(n,i[t-1])}),u.forEach(function(e){e.$colSpan={},e.$colField={};var a=0;i.forEach(function(n,t){var r=e[n];1<a?(e.$colSpan[t]=0,e.$colField[n]=0,a--):(a=function(n,t,r,e){var a=1;for(n++;n<e.length;n++){var i=E(r[e[n]]);if(i!==t&&!y(i))break;a++}return a}(t,r,e,i),e.$colSpan[t]=a,e.$colField[n]=a)})}),u},n.split=T,n.thousands=function(n,a,i){return a=a||3,i=i||",",(v(n)?n:f(n)).replace(/([^.]*)?(\.)?(.*)?/,function(n,t,r,e){return f(t).replace(new RegExp("(.(?=(.{"+a+"})+$))","g"),"$1"+i)+f(r)+f(e)})},n.tree=function(n,t){for(var r=(t=g(t)).id||"id",e=t.pid||"pid",a=t.children||"children",i=0;i<n.length;i++){var o,u=n[i];(o=C(n,function(n){return null!=n[r]&&n[r]!=u[r]&&n[r]===u[e]},a))&&(o[a]=b(o[a]),o[a].push(u),n.splice(i--,1))}return n},n.trim=E,n.union=function(){for(var n=arguments.length,t=new Array(n),r=0;r<n;r++)t[r]=arguments[r];var e=new Set(t);return Array.from(e)},n.urlToGet=function(n,t){n=f(n);var i=s(t)?t:r(t),t=r(n=n.replace(/({{)(.*?)(}})/g,function(n,t,r,e){r=E(r);var a=i[r];return delete i[r],a})),t=A(i=Object.assign(t,i));return n=t?(n=n.replace(/\?.*/,""))+"?"+t:n},n.uuid=function(n){n=w(n);for(var t="",r=0;r<13;r++)t+=P(1,9);return n=(new Date).getTime()*P(1,100),x(F()+Number(t).toString(32)+n.toString(32),20,F()+F()+F())},n.variableHasValue=k});