@opentiny/utils 1.0.0 → 3.23.0

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.
Files changed (92) hide show
  1. package/README.md +5 -1
  2. package/dist/after-leave/__tests__/index.test.d.ts +1 -0
  3. package/dist/after-leave/index.d.ts +25 -0
  4. package/dist/array/__tests__/index.test.d.ts +1 -0
  5. package/dist/array/index.d.ts +118 -0
  6. package/dist/bigInt/__tests__/index.test.d.ts +1 -0
  7. package/dist/bigInt/index.d.ts +249 -0
  8. package/dist/calendar/__test__/index.test.d.ts +1 -0
  9. package/dist/calendar/index.d.ts +96 -0
  10. package/dist/common/__tests__/index.test.d.ts +1 -0
  11. package/dist/common/index.d.ts +74 -0
  12. package/dist/crypt/__tests__/crypt.test.d.ts +1 -0
  13. package/dist/crypt/index.d.ts +5 -0
  14. package/dist/dataset/index.d.ts +102 -0
  15. package/dist/date/__test__/index.test.d.ts +1 -0
  16. package/dist/date/index.d.ts +95 -0
  17. package/dist/date-util/fecha.d.ts +14 -0
  18. package/dist/date-util/index.d.ts +50 -0
  19. package/dist/debounce/__tests__/debounce.test.d.ts +12 -0
  20. package/dist/debounce/index.d.ts +26 -0
  21. package/dist/decimal/__tests__/index.test.d.ts +1 -0
  22. package/dist/decimal/index.d.ts +92 -0
  23. package/dist/dom/index.d.ts +159 -0
  24. package/dist/espace-ctrl/index.d.ts +2 -0
  25. package/dist/event/index.d.ts +38 -0
  26. package/dist/fastdom/async.d.ts +12 -0
  27. package/dist/fastdom/index.d.ts +4 -0
  28. package/dist/fastdom/sandbox.d.ts +12 -0
  29. package/dist/fastdom/singleton.d.ts +10 -0
  30. package/dist/fecha/index.d.ts +13 -0
  31. package/dist/form/index.d.ts +5 -0
  32. package/dist/fullscreen/apis.d.ts +21 -0
  33. package/dist/fullscreen/index.d.ts +3 -0
  34. package/dist/fullscreen/screenfull.d.ts +35 -0
  35. package/dist/function/index.d.ts +7 -0
  36. package/dist/globalConfig/index.d.ts +20 -0
  37. package/dist/index.d.ts +43 -0
  38. package/dist/index.es.js +5351 -0
  39. package/dist/logger/index.d.ts +3 -0
  40. package/dist/memorize/index.d.ts +22 -0
  41. package/dist/nanoid/index.d.ts +11 -0
  42. package/dist/nanoid/nanoid.d.ts +4 -0
  43. package/dist/object/index.d.ts +137 -0
  44. package/dist/popup-manager/index.d.ts +42 -0
  45. package/dist/resize-event/index.d.ts +13 -0
  46. package/dist/resize-observer/index.d.ts +13 -0
  47. package/dist/scroll-into-view/index.d.ts +12 -0
  48. package/dist/scroll-width/index.d.ts +12 -0
  49. package/dist/string/index.d.ts +376 -0
  50. package/dist/throttle/index.d.ts +35 -0
  51. package/dist/touch/index.d.ts +15 -0
  52. package/dist/touch-emulator/index.d.ts +1 -0
  53. package/dist/tree-model/index.d.ts +3 -0
  54. package/dist/tree-model/node.d.ts +58 -0
  55. package/dist/tree-model/tree-store.d.ts +72 -0
  56. package/dist/tree-model/util.d.ts +14 -0
  57. package/dist/type/__tests__/type.test.d.ts +1 -0
  58. package/dist/type/index.d.ts +212 -0
  59. package/dist/upload-ajax/index.d.ts +12 -0
  60. package/dist/validate/__test__/util.test.d.ts +1 -0
  61. package/dist/validate/index.d.ts +2 -0
  62. package/dist/validate/messages.d.ts +73 -0
  63. package/dist/validate/rules/enum.d.ts +12 -0
  64. package/dist/validate/rules/index.d.ts +15 -0
  65. package/dist/validate/rules/pattern.d.ts +12 -0
  66. package/dist/validate/rules/range.d.ts +1 -0
  67. package/dist/validate/rules/required.d.ts +21 -0
  68. package/dist/validate/rules/type.d.ts +12 -0
  69. package/dist/validate/rules/whitespace.d.ts +12 -0
  70. package/dist/validate/schema.d.ts +22 -0
  71. package/dist/validate/util.d.ts +80 -0
  72. package/dist/validate/validations/__test__/date.test.d.ts +12 -0
  73. package/dist/validate/validations/__test__/integer.test.d.ts +12 -0
  74. package/dist/validate/validations/__test__/number.test.d.ts +12 -0
  75. package/dist/validate/validations/__test__/pattern.test.d.ts +1 -0
  76. package/dist/validate/validations/__test__/required.test.d.ts +1 -0
  77. package/dist/validate/validations/array.d.ts +30 -0
  78. package/dist/validate/validations/date.d.ts +29 -0
  79. package/dist/validate/validations/enum.d.ts +30 -0
  80. package/dist/validate/validations/float.d.ts +29 -0
  81. package/dist/validate/validations/index.d.ts +43 -0
  82. package/dist/validate/validations/integer.d.ts +34 -0
  83. package/dist/validate/validations/method.d.ts +33 -0
  84. package/dist/validate/validations/number.d.ts +30 -0
  85. package/dist/validate/validations/pattern.d.ts +31 -0
  86. package/dist/validate/validations/required.d.ts +24 -0
  87. package/dist/validate/validations/string.d.ts +32 -0
  88. package/dist/validate/validations/type.d.ts +28 -0
  89. package/dist/xss/__tests__/xss.test.d.ts +1 -0
  90. package/dist/xss/index.d.ts +16 -0
  91. package/package.json +11 -6
  92. package/dist/opentiny-utils.es.js +0 -1011
@@ -0,0 +1,3 @@
1
+ /** 使用 logger.xxx 代替 window.console.xxx, 避免语法警告 */
2
+ export declare const logger: Console;
3
+ export default logger;
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Copyright (c) 2022 - present TinyVue Authors.
3
+ * Copyright (c) 2022 - present Huawei Cloud Computing Technologies Co., Ltd.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license.
6
+ *
7
+ * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL,
8
+ * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR
9
+ * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS.
10
+ *
11
+ */
12
+ export declare class Memorize {
13
+ constructor(value: any, options?: {});
14
+ setKey(storeKey: any): void;
15
+ getValue(isSort?: boolean): any;
16
+ setValue(value: any): void;
17
+ clear(): void;
18
+ add(dataKey: any): void;
19
+ updateByKey(dataKey: any): void;
20
+ sort(list: any): any;
21
+ assemble(list: any): any;
22
+ }
@@ -0,0 +1,11 @@
1
+ type Nanoid = (size?: number) => string;
2
+ type CustomAlphabet = (alphabet: string, defaultSize?: number) => Nanoid;
3
+ type Random = (p?: void) => number;
4
+ interface API {
5
+ urlAlphabet: string;
6
+ nanoid: Nanoid;
7
+ customAlphabet: CustomAlphabet;
8
+ }
9
+ export declare const random: Random;
10
+ export declare const api: API;
11
+ export default api;
@@ -0,0 +1,4 @@
1
+ declare const urlAlphabet: string;
2
+ declare const nanoid: (size?: number) => string;
3
+ declare const customAlphabet: (alphabet: string, defaultSize?: number) => (size?: number) => string;
4
+ export { urlAlphabet, nanoid, customAlphabet };
@@ -0,0 +1,137 @@
1
+ /**
2
+ * Copyright (c) 2022 - present TinyVue Authors.
3
+ * Copyright (c) 2022 - present Huawei Cloud Computing Technologies Co., Ltd.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license.
6
+ *
7
+ * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL,
8
+ * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR
9
+ * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS.
10
+ *
11
+ */
12
+ /**
13
+ * 将对象的每个属性值进行循环处理。
14
+ *
15
+ * let obj = { name: 'jacky', age: 28, job: 'coder', dept: 'it' }
16
+ * each(obj, function (field, value) {
17
+ * if (field === 'name') {
18
+ * // do something
19
+ * }
20
+ * })
21
+ *
22
+ * @param {Object} obj 要处理的对象
23
+ * @param {Function} handle 进行循环处理的函数,函数返回false, 则跳出循环
24
+ */
25
+ export declare const each: (obj: object, handle: (key: string, value?: any) => boolean) => void;
26
+ /** 支持深度合并对象
27
+ * 【首参为true】,则每一层是对象就合并, 但是简单值或数组时,就后面覆盖过来
28
+ * 【首参为对象】,则仅第一层合并, 类似Object.assign
29
+ * 合并对象中,有非object类型的,统统忽略!
30
+ * @returns {Object}
31
+ */
32
+ declare let extend: (deep: boolean | object, ...values: object[]) => object;
33
+ /**
34
+ * 通过路径,获得对象指向位置的值。
35
+ *
36
+ * getObj({ a: { b: 1 } }, 'a.b') // 1
37
+ * getObj({ a: { b: 1 } }, 'data.a.b', true) // 1
38
+ * getObj({ a: { b: undefined } }, 'a.b') // undefined
39
+ *
40
+ * @param {Object} data 查找数据源
41
+ * @param {String} names 查找属性命名空间字符串
42
+ * @param {Boolean} [isExceptRoot] 是否排除 names 的第一个节点,默认 false
43
+ * @returns {Object}
44
+ */
45
+ export declare const getObj: (data: object, names: string, isExceptRoot?: boolean) => any;
46
+ /**
47
+ * 通过路径,设置对象指向位置的值。
48
+ *
49
+ * let obj = { limit: 5, data: { a: 1, b: 2 }, info: { a: 1, b: 2 } }
50
+ * setObj(obj, 'limit', 10) // obj.limit = 10
51
+ * setObj(obj, 'data', { c: 3 }, true) // obj.data = { a: 1, b: 2, c: 3 }
52
+ * setObj(obj, 'info', { c: 3 }) // obj.info = { c: 3 }
53
+ * setObj(obj, 'info.c', { d: 4 }, true) // obj.info = { c: { d: 4 } }
54
+ * setObj(obj, 'info.c', { e: 5 }, true) // obj.info = { c: { d: 4, e: 5 } }
55
+ *
56
+ * @param {Object} data 设置数据源
57
+ * @param {String} names 查找属性命名空间字符串
58
+ * @param {Object} value 设置的值
59
+ * @param {boolean} [isMerge] 是否覆盖还是合并,默认覆盖
60
+ * @returns {Object}
61
+ */
62
+ export declare const setObj: (data: object, names: string, value: any, isMerge: any) => object;
63
+ /**
64
+ * 根据指定的字段属性名,复制对应的数据。
65
+ *
66
+ * let obj = { a: 1, b: '2', c: [3, 4, 5], d: { e: 'good' } }
67
+ * copyField(obj, ['a', 'b']) // { a: 1, b: '2' }
68
+ * copyField(obj, ['a', 'b'], false, true) // { c: [3, 4, 5], d: { e: 'good' } }
69
+ *
70
+ * @param {Object} data 源数据,合并数据源
71
+ * @param {Array} [fields] 指定的值得命名空间字符串的数值。 不传入,默认为克隆一份数据出来
72
+ * @param {Boolean} [isMerge] 是否覆盖还是合并,默认false覆盖
73
+ * @param {Boolean} [isExclude] 是否排除指定的fields复制,默认false
74
+ * @returns {Array}
75
+ */
76
+ export declare const copyField: (data: object, fields?: string[], isMerge?: boolean, isExclude?: boolean) => {};
77
+ /**
78
+ * 复制数组数据,数据如包含对象,则深度复制,并返回一个新数组,如果不是数组则直接返回原对象。
79
+ *
80
+ * let arr1 = [ 1, 2, { name: 'jacky' } ]
81
+ * let arr2 = copyArray(arr1)
82
+ */
83
+ export declare const copyArray: (arr: any[]) => {}[];
84
+ /**
85
+ * 可深层比较两个对象或两个数组是否相等。注意以源对象为比较基础
86
+ *
87
+ * isEachEqual({a: 1}, {a: 1, b: 2}) // true
88
+ * isEachEqual({a: 1, b: 2}, {a: 1}) // false (以源对象为比较基础,所以它是false)
89
+ * isEachEqual({a: 1, b: {c: 3, d: 4}}, {a: 1, b: {c: 3, d: 5}}) // false
90
+ *
91
+ * @param {Object} data1 数据源对象
92
+ * @param {Object} data2 对比目标对象
93
+ * @param {Boolean} [deep] 是否深度遍历,默认为true
94
+ * @returns {Boolean}
95
+ */
96
+ declare let isEachEqual: (data1: any, data2: any, deep?: boolean) => boolean;
97
+ /**
98
+ * 可深层比较两个对象是否相等。
99
+ * 与`isEachEqual` 区别是:
100
+ * 1、2个对象交换位置,判断2次
101
+ * 2、它可以指定要比较的属性分支["a.b","a.c"] (整个系统使用fields这块功能)
102
+ *
103
+ * isEqual({ a: { b: 1 } }, { a: { b: 1, c: 2 } }, false, [ 'a.b' ]) // false
104
+ * isEqual({ a: { b: 1 } }, { a: { b: 1, c: 2 } }, true, [ 'a.b' ]) // true
105
+ *
106
+ * @param {Object} sourceData 源对象
107
+ * @param {Object} targetData 目标对象
108
+ * @param {Boolean} [deep] 是否深度比较,默认为true
109
+ * @param {Array} [fields] 指定需要比较的字段的数组
110
+ * @returns {Boolean}
111
+ */
112
+ export declare const isEqual: (sourceData: object, targetData: object, deep?: boolean, fields?: string[]) => boolean;
113
+ export { isEachEqual, extend };
114
+ /**
115
+ * 将json对象序列化为字符串。 ----------重复实现待移除
116
+ *
117
+ * let obj = { a: 1, b: 2 }
118
+ * toJsonStr(obj) // '{"a":1,"b":2}'
119
+ * obj.prop = obj
120
+ * toJsonStr(obj) // undefined 递归引用自己了,所以catch了
121
+ * toJsonStr(null) // 'null'
122
+ *
123
+ * @param {Object} obj
124
+ * @returns {String}
125
+ */
126
+ export declare const toJsonStr: (obj: any) => string | undefined;
127
+ /**
128
+ * 将一个或多个源对象简单合并到目标对象中,合并时排除非 OwnProperty 及 undefined 属性。
129
+ * 只处理第一层,功能基本等同于 Object.assign
130
+ *
131
+ * merge({ a: 1 }, { b: { c: 2 } }, { d: 3 }) // { a: 1, b: { c: 2 }, d: 3 }
132
+ *
133
+ * @param {Object} target 目标对象
134
+ * @param {Object} [source] 源对象
135
+ * @returns {Object}
136
+ */
137
+ export declare const merge: (target: object, ...rest: object[]) => object;
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Copyright (c) 2022 - present TinyVue Authors.
3
+ * Copyright (c) 2022 - present Huawei Cloud Computing Technologies Co., Ltd.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license.
6
+ *
7
+ * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL,
8
+ * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR
9
+ * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS.
10
+ *
11
+ */
12
+ export interface IModalStack {
13
+ id: string;
14
+ zIndex: number;
15
+ modalClass: string;
16
+ }
17
+ export declare const PopupManager: {
18
+ step: number;
19
+ zIndex: number;
20
+ globalScroll: boolean;
21
+ modalFade: boolean;
22
+ modalStack: IModalStack[];
23
+ modalDom: HTMLElement;
24
+ hasModal: boolean;
25
+ popLockClass: string;
26
+ oldBodyBorder: string;
27
+ viewportWindow: null;
28
+ fixBodyBorder(): void;
29
+ resetBodyBorder(): void;
30
+ /** 全局反注册 */
31
+ deregister: (id: string) => void;
32
+ /** 返回全局实例 */
33
+ getInstance: (id: string) => any;
34
+ /** 全局注册 仅vue-popup.ts中使用,instance就是vm, 把vm注册到 vm._popupId 这个键值上 */
35
+ register: (id: string, instance: any) => void;
36
+ nextZIndex: () => number;
37
+ /** 打开遮罩层, 仅vue-popup.ts中使用。 dom = vm.$el 或者 undefined (appendtoBody时) */
38
+ openModal(id: string, zIndex: number, dom: HTMLElement | undefined, modalClass: string, modalFade: boolean): void;
39
+ /** 点击背景遮罩层时,调用栈顶的popup,调用它的close() */
40
+ doOnModalClick: () => void;
41
+ closeModal(id: string): void;
42
+ };
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Copyright (c) 2022 - present TinyVue Authors.
3
+ * Copyright (c) 2022 - present Huawei Cloud Computing Technologies Co., Ltd.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license.
6
+ *
7
+ * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL,
8
+ * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR
9
+ * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS.
10
+ *
11
+ */
12
+ export declare const addResizeListener: (el: any, fn: any) => void;
13
+ export declare const removeResizeListener: (el: any, fn: any) => void;
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Copyright (c) 2022 - present TinyVue Authors.
3
+ * Copyright (c) 2022 - present Huawei Cloud Computing Technologies Co., Ltd.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license.
6
+ *
7
+ * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL,
8
+ * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR
9
+ * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS.
10
+ *
11
+ */
12
+ declare const index: any;
13
+ export default index;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Copyright (c) 2022 - present TinyVue Authors.
3
+ * Copyright (c) 2022 - present Huawei Cloud Computing Technologies Co., Ltd.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license.
6
+ *
7
+ * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL,
8
+ * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR
9
+ * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS.
10
+ *
11
+ */
12
+ export declare const scrollIntoView: (container: any, selected: any) => void;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Copyright (c) 2022 - present TinyVue Authors.
3
+ * Copyright (c) 2022 - present Huawei Cloud Computing Technologies Co., Ltd.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license.
6
+ *
7
+ * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL,
8
+ * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR
9
+ * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS.
10
+ *
11
+ */
12
+ export declare function calcScrollWidth(): number;
@@ -0,0 +1,376 @@
1
+ /**
2
+ * Copyright (c) 2022 - present TinyVue Authors.
3
+ * Copyright (c) 2022 - present Huawei Cloud Computing Technologies Co., Ltd.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license.
6
+ *
7
+ * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL,
8
+ * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR
9
+ * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS.
10
+ *
11
+ */
12
+ /**
13
+ * 文本替换格式类型
14
+ */
15
+ export declare const formatTypes: {
16
+ text: string;
17
+ url: string;
18
+ html: string;
19
+ tmpl: string;
20
+ };
21
+ /**
22
+ * 字符对应的字符编码
23
+ */
24
+ export declare const escapeChars: {
25
+ '&': string;
26
+ '<': string;
27
+ '>': string;
28
+ '"': string;
29
+ "'": string;
30
+ '[': string;
31
+ ']': string;
32
+ };
33
+ /**
34
+ * 判断是否为null、undefined、空字符串
35
+ *
36
+ * isNullOrEmpty('') // true
37
+ *
38
+ * @param {Object} value 需判断的对象
39
+ * @return {Boolean}
40
+ */
41
+ export declare const isNullOrEmpty: (value: any) => boolean;
42
+ export declare const camelize: (str: any) => any;
43
+ /**
44
+ * 将字符串首写字母大写。
45
+ *
46
+ * capitalize('hello') // "Hello"
47
+ *
48
+ * @param {String} string 要转换的字符串
49
+ * @returns {String}
50
+ */
51
+ export declare const capitalize: (str: any) => any;
52
+ export declare const hyphenate: (str: any) => any;
53
+ /**
54
+ * 解析Json字符串成对象。
55
+ *
56
+ * let str = '{ "value": "v1", "text": "t1" }'
57
+ * toJson(str) // { value: 'v1', text: 't1' }
58
+ *
59
+ * @param {String} string 要解析的Json字符串
60
+ * @returns {Object}
61
+ */
62
+ export declare const toJson: (string: any) => any;
63
+ /**
64
+ * 计算字符串长度或所占的内存字节数。
65
+ * 默认计算方式(中文算两个长度,数字字母算一个),也可指定为 'basic','UTF-16','UTF-8',或自定义的计算规则。
66
+ *
67
+ * getLength('12ED') // => 4
68
+ * getLength('深圳') // => 4
69
+ * getLength('好a','basic') // '好a' => 2,'a' => 1
70
+ * getLength('好a','UTF-8') // 好a' => 4,'a' => 1
71
+ * getLength('好a','UTF-16') //'好a' => 4,'a' => 2
72
+ * getLength(str, function (str) {
73
+ * return (str + 'xx').length
74
+ * })
75
+ *
76
+ * UTF-8 是一种可变长度的 Unicode 编码格式,使用一至四个字节为每个字符编码
77
+ *
78
+ * 000000 - 00007F(128个代码) 0zzzzzzz(00-7F) 一个字节
79
+ * 000080 - 0007FF(1920个代码) 110yyyyy(C0-DF) 10zzzzzz(80-BF) 两个字节
80
+ * 000800 - 00D7FF 注: Unicode在范围 D800-DFFF 中不存在任何字符
81
+ * 00E000 - 00FFFF(61440个代码) 1110xxxx(E0-EF) 10yyyyyy 10zzzzzz 三个字节
82
+ * 010000 - 10FFFF(1048576个代码) 11110www(F0-F7) 10xxxxxx 10yyyyyy 10zzzzzz 四个字节
83
+ *
84
+ *
85
+ * 定义参考 http://zh.wikipedia.org/wiki/UTF-8
86
+ *
87
+ * UTF-16 大部分使用两个字节编码,编码超出 65535 的使用四个字节
88
+ *
89
+ * 000000 - 00FFFF 两个字节
90
+ * 010000 - 10FFFF 四个字节
91
+ *
92
+ * 定义参考 http://zh.wikipedia.org/wiki/UTF-16
93
+ *
94
+ * @param {String} string
95
+ * @param {String|Function} regular 长度规则:'basic'、'UTF-16'、'UTF-8'或自定义的计算规则函数
96
+ * @return {Number}
97
+ */
98
+ export declare const getLength: (string: any, regular: any) => any;
99
+ /**
100
+ * 填充字符串,根据填充模式参数,在字符串前面或后面补充字附到指定的长度。
101
+ *
102
+ * fillChar('1', 3) // "001"
103
+ * fillChar('1', 3, true) // "100"
104
+ * fillChar('1', 3, true, ' ') // "1 "
105
+ *
106
+ * @param {String} string 被填充的字符串
107
+ * @param {Number} length 填充到某个长度
108
+ * @param {Boolean} [append=false] 是否在后面填充,默认为在前面填充
109
+ * @param {String} [chr="0"] 填充的字符,默认为0
110
+ * @returns {String}
111
+ */
112
+ export declare const fillChar: (string: any, length: any, append: any, chr?: string) => string | undefined;
113
+ export declare const random: () => number;
114
+ /**
115
+ * 生成一个guid。
116
+ *
117
+ * guid('#') // #16722423
118
+ *
119
+ * @param {String} [prefix] guid前缀,可选值,默认为空字符串
120
+ * @param {Number} [length] 生成的guid的长度,可选值,默认为8
121
+ * @returns {String}
122
+ */
123
+ export declare const guid: (prefix?: string, length?: number) => string;
124
+ /**
125
+ * 将HTML字符串进行编码。
126
+ *
127
+ * escapeHtml('<div>&&</div>') // "&#60;div&#62;&#38;&#38;&#60;/div&#62;"
128
+ *
129
+ * @param {String} string 要编码的字符串
130
+ * @param {Boolean} [isReplaceSpace] 是否替换空格
131
+ * @returns {String}
132
+ */
133
+ export declare const escapeHtml: (string: any, isReplaceSpace: any) => any;
134
+ /**
135
+ * 将URL字符串进行转义。
136
+ *
137
+ * let str = '< >& []""' + "'"
138
+ * escape(str) // "&#60; &#62;& []&#34;&#34;'"
139
+ * escape(str, 'uri', true) // "%3C%20%3E%26%20%5B%5D%22%22'"
140
+ * escape(str, true) // "&#60;&#160;&#62;&&#160;[]&#34;&#34;'"
141
+ * escape(str, 'html', true) // "&#60;&#160;&#62;&#38;&#160;[]&#34;&#34;&#x27;"
142
+ * escape(str, 'prop', true) // "&#60;&#160;&#62;&#38;&#160;&#91;&#93;&#34;&#34;&#x27;"
143
+ *
144
+ * @param {String} string 需要转换的字符串
145
+ * @param {String} [escapeType] 转换类型,可选值:uri, html, prop
146
+ * @param {Boolean} [isReplaceSpace] 是否替换空格, 默认不替换
147
+ * @returns {String}
148
+ */
149
+ export declare const escape: (string: any, escapeType: any, isReplaceSpace: any) => any;
150
+ /**
151
+ * 使用具体的对象字段代替字符串中的字段占位符。
152
+ *
153
+ * fieldFormat('url:{{url}}', { url: 'http://abc.com/a&b' }) // "url:http://abc.com/a&#38;b"
154
+ * fieldFormat('url:{{#url}}', { url: 'http://abc.com/a&b' }) // "url:http://abc.com/a&b"
155
+ * fieldFormat('url:{{@url}}', { url: 'http://abc.com/a&b' }) // "url:http%3A%2F%2Fabc.com%2Fa%26b"
156
+ * fieldFormat('url:{{$url}}', { url: 'http://abc.com/a&b' }) // "url:http://abc.com/a&#38;b"
157
+ * fieldFormat('url:{{%url}}', { url: 'http://abc.com/a&b' }) // "url:{{http://abc.com/a&b}}"
158
+ *
159
+ * @param {String} string 要替换的字符串模板
160
+ * @param {Object} data 要替换模板的数据
161
+ * @param {String} [type="html"] 替换的类型:"text"、"url"、"tmpl"、"html",默认"html"
162
+ * @returns {String}
163
+ */
164
+ export declare const fieldFormat: (string: any, data: any, type?: string) => string | undefined;
165
+ /**
166
+ * 使用具体的值替换字符串中的数字占位符。
167
+ *
168
+ * format('{0}', 1) // "1"
169
+ * format('{0}', 1, 'text') // "1"
170
+ * format('{0}{1}', [1, 2, 'text']) // "12"
171
+ * format('age:{{age}}', { age: 20 }) // "age:20"
172
+ * format('\\{0\\}{1}', [0, 1]) // "{0}1"
173
+ * format('{0}', [{ age: 20 }]) // "{"age":20}"
174
+ * format('{0}', [ 'http://abc.com/a&b' ], 'url') // "http%3A%2F%2Fabc.com%2Fa%26b"
175
+ * format('{0}', [ '<div>&&</div>' ], 'html') // "&#60;div&#62;&#38;&#38;&#60;/div&#62;"
176
+ *
177
+ * @param {String} string 要替换的字符串模板
178
+ * @param {Object|Array|String} data 要替换模板的数据
179
+ * @param {String} [type="text"] 替换的类型:"text"、"url"、"html",默认"text"
180
+ * @returns {String}
181
+ */
182
+ export declare const format: (string: any, data: any, type?: string) => any;
183
+ /**
184
+ * 将字符串按指定长度截断。
185
+ *
186
+ * truncate('abc', 5) // "abc"
187
+ * truncate('abc', 2) // "ab..."
188
+ *
189
+ * @param {String} string 要截断的字符串
190
+ * @param {Number} length 要截断的长度
191
+ * @param {String} [ellipsis="{0}..."] 截断类型,通常携带{0}占位符
192
+ * @returns {String}
193
+ */
194
+ export declare const truncate: (string: any, length: any, ellipsis?: string) => any;
195
+ /**
196
+ * 尝试按指定函数转换字符串,如果转换结果为 NaN,则返回 defaultValue。
197
+ *
198
+ * tryToConvert(toInt, null, 0) // 0
199
+ *
200
+ * @param {Function} convert 指定的转换的函数
201
+ * @param {Number|String} defaultValue 若为 NaN 时,返回的缺省值
202
+ * @param {Number|String} value 要转换的字符串或多个参数
203
+ * @returns {Number|String}
204
+ */
205
+ export declare const tryToConvert: (convert: any, defaultValue: any, ...args: any[]) => any;
206
+ /**
207
+ * 将字符串解析成十进制整数。
208
+ *
209
+ * toInt(100) // 100
210
+ * toInt('100.01') // 100
211
+ *
212
+ * @param {Number|String} value 要解析的字符串
213
+ * @returns {Number}
214
+ */
215
+ export declare const toInt: (value: any) => number;
216
+ /**
217
+ * 尝试将字符串解析成十进制整数。如果 value 是个无效的整数,则返回 defaultValue。
218
+ *
219
+ * tryToInt(100) // 100
220
+ * tryToInt('100.01') // 100
221
+ * tryToInt(null, 100) // 100
222
+ *
223
+ * @param {Number|String} value 要解析的字符串
224
+ * @param {Number|String} defaultValue 若为 NaN 时,返回的缺省值
225
+ * @returns {Number|String}
226
+ */
227
+ export declare const tryToInt: (value: any, defaultValue: any) => any;
228
+ /**
229
+ * 将字符串解析成数值。
230
+ *
231
+ * toNumber(100) // 100
232
+ * toNumber('100.01') // 100.01
233
+ *
234
+ * @param {Number|String} value 要解析的字符串
235
+ * @returns {Number}
236
+ */
237
+ export declare const toNumber: (value: any) => any;
238
+ /**
239
+ * 尝试将字符串解析成数值。如果 value 是个无效的数字,则返回 defaultValue。
240
+ *
241
+ * tryToNumber(100) // 100
242
+ * tryToNumber('100.01') // 100.01
243
+ * tryToNumber(null, 100) // 100
244
+ *
245
+ * @param {Number|String} value 要解析的字符串
246
+ * @param {Number|String} defaultValue 若为 NaN 时,返回的缺省值
247
+ * @returns {Number|String}
248
+ */
249
+ export declare const tryToNumber: (value: any, defaultValue: any) => any;
250
+ /**
251
+ * 将字符串解析成浮点数。
252
+ *
253
+ * toDecimal(100) // "100.00"
254
+ * toDecimal("100.01", 2) // "100.01"
255
+ * toDecimal(0.8 - 0.6, 2, true) // "0.2"
256
+ * toDecimal(0.8 - 0.6, 2, false) // "0.20"
257
+ *
258
+ * @param {Number|String} value 要解析的数字或字符串
259
+ * @param {Number} [fraction=2] 浮点数的小数部分,默认2位
260
+ * @param {Boolean} [isTruncate=false] 是否截断,默认为四舍五入,不截断
261
+ * @returns {String}
262
+ */
263
+ export declare const toDecimal: (value: any, fraction?: number, isTruncate?: boolean) => number;
264
+ /**
265
+ * 尝试将字符串解析成浮点数。如果 value 是个无效的浮点数,则返回 defaultValue。
266
+ *
267
+ * tryToDecimal(100) // "100.00"
268
+ * tryToDecimal("100.01", 2) // "100.01"
269
+ * tryToDecimal(0.8 - 0.6, 2, true) // "0.2"
270
+ * tryToDecimal(0.8 - 0.6, 2, false) // "0.20"
271
+ * tryToDecimal(null, 2, false, 100) // 100
272
+ *
273
+ * @param {Number|String} value 要解析的数字或字符串
274
+ * @param {Number} [fraction=2] 浮点数的小数部分,默认2位
275
+ * @param {Boolean} [isTruncate=false] 是否截断,默认为四舍五入,不截断
276
+ * @param {Number|String} [defaultValue] 若为 NaN 时,返回的缺省值
277
+ * @returns {Number|String}
278
+ */
279
+ export declare const tryToDecimal: (value: any, fraction: any, isTruncate: any, defaultValue: any) => any;
280
+ /**
281
+ * 将数字或字符串转换成货币格式。
282
+ *
283
+ * toCurrency(100) // "100.00"
284
+ * toCurrency(100, 2) // "100.00"
285
+ * toCurrency(1234.56) // "1,234.56"
286
+ * toCurrency(100, 2, '${0}') // "$100.00"
287
+ *
288
+ * @param {Number|String} value 要解析的数字或字符串
289
+ * @param {Number} [fraction=2] 浮点数的小数部分,默认2位
290
+ * @param {String} [placeholder] 货币符号,占位符格式,例如 "${0}"
291
+ * @param {Boolean} [isTruncate=false] 是否截断,默认为四舍五入,不截断
292
+ * @returns {String}
293
+ */
294
+ export declare const toCurrency: (value: any, fraction: any, placeholder: any, isTruncate: any) => any;
295
+ /**
296
+ * 尝试将数字转换成货币格式。如果 value 是个无效的金额,则返回 defaultValue。
297
+ *
298
+ * tryToCurrency(100) // "100.00"
299
+ * tryToCurrency(100, 2) // "100.00"
300
+ * tryToCurrency(1234.56) // "1,234.56"
301
+ * tryToCurrency(100, 2, '${0}') // "$100.00"
302
+ * tryToCurrency(null, 3, '¥{0}', '金额错误') // "金额错误"
303
+ *
304
+ * @param {Number|String} value 要转换的数值
305
+ * @param {Number} [fraction=2] 浮点数的小数部分,默认2位
306
+ * @param {String} [placeholder] 货币符号,占位符格式,例如 "${0}"
307
+ * @param {Number|String} [defaultValue] 若为 NaN 时,返回的缺省值
308
+ * @returns {Number|String}
309
+ */
310
+ export declare const tryToCurrency: (value: any, fraction: any, placeholder: any, defaultValue: any) => any;
311
+ /**
312
+ * 转换成布尔值或0(表示false),1(表示true)。
313
+ *
314
+ * toBoolValue(1) // 1
315
+ * toBoolValue(true) // true
316
+ * toBoolValue('true') // true
317
+ * toBoolValue({}) // true
318
+ * toBoolValue('') // false
319
+ *
320
+ * @param {Number|String|Boolean} value 要转换的值
321
+ * @returns {Boolean|number}
322
+ */
323
+ export declare const toBoolValue: (value: any) => boolean | 0 | 1;
324
+ /**
325
+ * 将数值按百分比显示。
326
+ *
327
+ * toRate(0.1) // "10.00%"
328
+ * toRate(10, 100, 2) // "10.00%"
329
+ *
330
+ * @param {Number} value 要转换的值
331
+ * @param {Number} [total=1] 百分比基数,默认为1
332
+ * @param {Number} [fraction=2] 数值的小数部分,默认为2
333
+ * @returns {String}
334
+ */
335
+ export declare const toRate: (value: any, total?: number, fraction?: number) => any;
336
+ /**
337
+ * 文件大小值 单位互相转换。
338
+ *
339
+ * toFileSize(1024) // "1.00KB"
340
+ * toFileSize(1024, 'B') // "1024.00B"
341
+ * toFileSize(1024, 'KB', 'B') // "1.00KB"
342
+ * toFileSize(1024, 'MB', 'KB') // "1.00MB"
343
+ *
344
+ * @param {Number} value 文件大小数值
345
+ * @param {String} unit 转换后的单位
346
+ * @param {String} [currUnit] 当前大小单位,默认为B,值可为B、KB、MB、GB、TB、PB、EB、ZB、YB
347
+ * @returns {String}
348
+ */
349
+ export declare const toFileSize: (value: any, unit: any, currUnit: any) => any;
350
+ /**
351
+ * 文件大小值,单位自动转化,最多保留2位小数
352
+ *
353
+ * formatFileSize(17252 * 1024) // "16.84M"
354
+ * formatFileSize(200 * 1024, 'M') // "200G"
355
+ *
356
+ * @param {Number} size 文件大小数值
357
+ * @param {String} [baseUnit] 当前大小单位,默认为 B,值可为 B、K、M、G、T、P、E、Z、Y
358
+ * @returns {String} 转化后的文件大小和单位
359
+ */
360
+ export declare const formatFileSize: (size: any, baseUnit?: string) => string;
361
+ /**
362
+ * 检查文本中是否包含韩文
363
+ * @param {String} text
364
+ */
365
+ export declare const isKorean: (text: any) => boolean;
366
+ /**
367
+ * 对字符串进行省略截取
368
+ * @param {*} text 待处理的字符串
369
+ * @param {*} font 字符集,例如 '14px Arial'
370
+ * @param {*} w 字符串显示最大长度
371
+ * @returns obj obj.t为处理后字符串,obj.o为是否已省略标志
372
+ */
373
+ export declare const omitText: (text: string, font: string, w: number) => {
374
+ t: string;
375
+ o: boolean;
376
+ };