sculp-js 1.7.2 → 1.8.1

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 (60) hide show
  1. package/README.md +5 -3
  2. package/lib/cjs/array.js +6 -4
  3. package/lib/cjs/async.js +1 -1
  4. package/lib/cjs/base64.js +1 -1
  5. package/lib/cjs/clipboard.js +1 -1
  6. package/lib/cjs/cookie.js +1 -1
  7. package/lib/cjs/date.js +1 -1
  8. package/lib/cjs/dom.js +1 -28
  9. package/lib/cjs/download.js +1 -1
  10. package/lib/cjs/easing.js +1 -1
  11. package/lib/cjs/file.js +1 -1
  12. package/lib/cjs/func.js +1 -1
  13. package/lib/cjs/index.js +3 -4
  14. package/lib/cjs/math.js +1 -1
  15. package/lib/cjs/number.js +1 -1
  16. package/lib/cjs/object.js +133 -4
  17. package/lib/cjs/path.js +3 -3
  18. package/lib/cjs/qs.js +1 -1
  19. package/lib/cjs/random.js +1 -1
  20. package/lib/cjs/string.js +1 -1
  21. package/lib/cjs/tooltip.js +1 -1
  22. package/lib/cjs/tree.js +12 -96
  23. package/lib/cjs/type.js +11 -4
  24. package/lib/cjs/unique.js +1 -1
  25. package/lib/cjs/url.js +1 -1
  26. package/lib/cjs/validator.js +1 -1
  27. package/lib/cjs/variable.js +1 -1
  28. package/lib/cjs/watermark.js +1 -1
  29. package/lib/cjs/we-decode.js +7 -6
  30. package/lib/es/array.js +6 -4
  31. package/lib/es/async.js +1 -1
  32. package/lib/es/base64.js +1 -1
  33. package/lib/es/clipboard.js +1 -1
  34. package/lib/es/cookie.js +1 -1
  35. package/lib/es/date.js +1 -1
  36. package/lib/es/dom.js +2 -27
  37. package/lib/es/download.js +1 -1
  38. package/lib/es/easing.js +1 -1
  39. package/lib/es/file.js +1 -1
  40. package/lib/es/func.js +1 -1
  41. package/lib/es/index.js +5 -5
  42. package/lib/es/math.js +1 -1
  43. package/lib/es/number.js +1 -1
  44. package/lib/es/object.js +133 -5
  45. package/lib/es/path.js +3 -3
  46. package/lib/es/qs.js +1 -1
  47. package/lib/es/random.js +1 -1
  48. package/lib/es/string.js +1 -1
  49. package/lib/es/tooltip.js +1 -1
  50. package/lib/es/tree.js +13 -96
  51. package/lib/es/type.js +11 -5
  52. package/lib/es/unique.js +1 -1
  53. package/lib/es/url.js +1 -1
  54. package/lib/es/validator.js +1 -1
  55. package/lib/es/variable.js +1 -1
  56. package/lib/es/watermark.js +1 -1
  57. package/lib/es/we-decode.js +7 -6
  58. package/lib/index.d.ts +27 -49
  59. package/lib/umd/index.js +166 -139
  60. package/package.json +3 -10
package/lib/es/tree.js CHANGED
@@ -1,9 +1,10 @@
1
1
  /*!
2
- * sculp-js v1.7.2
2
+ * sculp-js v1.8.1
3
3
  * (c) 2023-present chandq
4
4
  * Released under the MIT License.
5
5
  */
6
6
 
7
+ import { arrayEach } from './array.js';
7
8
  import { objectOmit } from './object.js';
8
9
  import { objectHas, isEmpty } from './type.js';
9
10
 
@@ -46,7 +47,7 @@ function forEachDeep(tree, iterator, children = 'children', isReverse = false) {
46
47
  }
47
48
  }
48
49
  else {
49
- for (let i = 0; i < arr.length; i++) {
50
+ for (let i = 0, len = arr.length; i < len; i++) {
50
51
  if (isBreak) {
51
52
  break;
52
53
  }
@@ -172,92 +173,7 @@ function searchTreeById(tree, nodeId, config) {
172
173
  return getIds(toFlatArray(tree));
173
174
  }
174
175
  /**
175
- * 使用迭代函数转换数组
176
- * @param {T} array
177
- * @param {Function} callback 迭代函数
178
- * @returns {Array}
179
- */
180
- function flatMap(array, callback) {
181
- const result = [];
182
- array.forEach((value, index) => {
183
- result.push(...callback(value, index, array));
184
- });
185
- return result;
186
- }
187
- /**
188
- * 根据 idProp 与 parentIdProp 从对象数组中构建对应的树
189
- * 当 A[parentIdProp] === B[idProp] 时,对象A会被移动到对象B的children。
190
- * 当一个对象的 parentIdProp 不与其他对象的 idProp 字段相等时,该对象被作为树的顶层节点
191
- * @param {string} idProp 元素ID
192
- * @param {string} parentIdProp 父元素ID
193
- * @param {object[]} items 一维数组
194
- * @returns {WithChildren<T>[]} 树
195
- * @example
196
- * const array = [
197
- * { id: 'node-1', parent: 'root' },
198
- * { id: 'node-2', parent: 'root' },
199
- * { id: 'node-3', parent: 'node-2' },
200
- * { id: 'node-4', parent: 'node-2' },
201
- * { id: 'node-5', parent: 'node-4' },
202
- * ]
203
- * const tree = buildTree('id', 'parent', array)
204
- * expect(tree).toEqual([
205
- * { id: 'node-1', parent: 'root' },
206
- * {
207
- * id: 'node-2',
208
- * parent: 'root',
209
- * children: [
210
- * { id: 'node-3', parent: 'node-2' },
211
- * {
212
- * id: 'node-4',
213
- * parent: 'node-2',
214
- * children: [{ id: 'node-5', parent: 'node-4' }],
215
- * },
216
- * ],
217
- * },
218
- * ])
219
- */
220
- function buildTree(idProp, parentIdProp, items) {
221
- const wrapperMap = new Map();
222
- const ensure = (id) => {
223
- if (wrapperMap.has(id)) {
224
- return wrapperMap.get(id);
225
- }
226
- //@ts-ignore
227
- const wrapper = { id, parent: null, item: null, children: [] };
228
- wrapperMap.set(id, wrapper);
229
- return wrapper;
230
- };
231
- for (const item of items) {
232
- const parentWrapper = ensure(item[parentIdProp]);
233
- const itemWrapper = ensure(item[idProp]);
234
- //@ts-ignore
235
- itemWrapper.parent = parentWrapper;
236
- //@ts-ignore
237
- parentWrapper.children.push(itemWrapper);
238
- //@ts-ignore
239
- itemWrapper.item = item;
240
- }
241
- const topLevelWrappers = flatMap(Array.from(wrapperMap.values()).filter(wrapper => wrapper.parent === null), wrapper => wrapper.children);
242
- return unwrapRecursively(topLevelWrappers);
243
- function unwrapRecursively(wrapperArray) {
244
- const result = [];
245
- for (const wrapper of wrapperArray) {
246
- if (wrapper.children.length === 0) {
247
- result.push(wrapper.item);
248
- }
249
- else {
250
- result.push({
251
- ...wrapper.item,
252
- children: unwrapRecursively(wrapper.children)
253
- });
254
- }
255
- }
256
- return result;
257
- }
258
- }
259
- /**
260
- * 扁平化数组转换成树(效率高于buildTree)
176
+ * 扁平化数组转换成树
261
177
  * @param {any[]} list
262
178
  * @param {IFieldOptions} options
263
179
  * @returns {any[]}
@@ -266,10 +182,10 @@ function formatTree(list, options = defaultFieldOptions) {
266
182
  const { keyField, childField, pidField } = options;
267
183
  const treeArr = [];
268
184
  const sourceMap = {};
269
- list.forEach(item => {
185
+ arrayEach(list, item => {
270
186
  sourceMap[item[keyField]] = item;
271
187
  });
272
- list.forEach(item => {
188
+ arrayEach(list, item => {
273
189
  const parent = sourceMap[item[pidField]];
274
190
  if (parent) {
275
191
  (parent[childField] || (parent[childField] = [])).push(item);
@@ -288,7 +204,8 @@ function formatTree(list, options = defaultFieldOptions) {
288
204
  */
289
205
  function flatTree(treeList, options = defaultFieldOptions) {
290
206
  const { childField, keyField, pidField } = options;
291
- return treeList.reduce((res, node) => {
207
+ let res = [];
208
+ arrayEach(treeList, node => {
292
209
  const item = {
293
210
  ...node,
294
211
  [childField]: [] // 清空子级
@@ -302,8 +219,8 @@ function flatTree(treeList, options = defaultFieldOptions) {
302
219
  }));
303
220
  res = res.concat(flatTree(children, options));
304
221
  }
305
- return res;
306
- }, []);
222
+ });
223
+ return res;
307
224
  }
308
225
  /**
309
226
  * 模糊搜索函数,返回包含搜索字符的节点及其祖先节点, 适用于树型组件的字符过滤功能
@@ -325,7 +242,7 @@ function fuzzySearchTree(nodes, filterCondition, options = defaultSearchTreeOpti
325
242
  return nodes;
326
243
  }
327
244
  const result = [];
328
- for (const node of nodes) {
245
+ arrayEach(nodes, node => {
329
246
  // 递归检查子节点是否匹配
330
247
  const matchedChildren = node[options.childField] && node[options.childField].length > 0
331
248
  ? fuzzySearchTree(node[options.childField] || [], filterCondition, options)
@@ -365,8 +282,8 @@ function fuzzySearchTree(nodes, filterCondition, options = defaultSearchTreeOpti
365
282
  });
366
283
  }
367
284
  }
368
- }
285
+ });
369
286
  return result;
370
287
  }
371
288
 
372
- export { buildTree, flatTree, forEachDeep, formatTree, fuzzySearchTree, mapDeep, searchTreeById };
289
+ export { flatTree, forEachDeep, formatTree, fuzzySearchTree, mapDeep, searchTreeById };
package/lib/es/type.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.7.2
2
+ * sculp-js v1.8.1
3
3
  * (c) 2023-present chandq
4
4
  * Released under the MIT License.
5
5
  */
@@ -30,11 +30,17 @@ function arrayLike(any) {
30
30
  return objectHas(any, 'length');
31
31
  }
32
32
  /**
33
- * 判断任意值的数据类型
33
+ * 判断任意值的数据类型,检查非对象时不如typeof、instanceof的性能高
34
+ *
35
+ * 当检查类对象时是不可靠的,对象可以通过定义 Symbol.toStringTag 属性来更改检查结果
36
+ *
37
+ * 详见:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/toString
34
38
  * @param {unknown} any
35
- * @returns {string}
39
+ * @returns
36
40
  */
37
- const typeIs = (any) => Object.prototype.toString.call(any).slice(8, -1);
41
+ function typeIs(any) {
42
+ return Object.prototype.toString.call(any).slice(8, -1);
43
+ }
38
44
  // 基本数据类型判断
39
45
  const isString = (any) => typeof any === 'string';
40
46
  const isBoolean = (any) => typeof any === 'boolean';
@@ -114,4 +120,4 @@ function isEmpty(value) {
114
120
  return !Object.keys(value).length;
115
121
  }
116
122
 
117
- export { arrayLike, typeIs as default, isArray, isBigInt, isBoolean, isDate, isEmpty, isError, isFunction, isJsonString, isNaN, isNull, isNullOrUnDef, isNumber, isObject, isPrimitive, isRegExp, isString, isSymbol, isUndefined, objectHas, typeIs };
123
+ export { arrayLike, typeIs as default, isArray, isBigInt, isBoolean, isDate, isEmpty, isError, isFunction, isJsonString, isNaN, isNull, isNullOrUnDef, isNullOrUnDef as isNullish, isNumber, isObject, isPrimitive, isRegExp, isString, isSymbol, isUndefined, objectHas, typeIs };
package/lib/es/unique.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.7.2
2
+ * sculp-js v1.8.1
3
3
  * (c) 2023-present chandq
4
4
  * Released under the MIT License.
5
5
  */
package/lib/es/url.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.7.2
2
+ * sculp-js v1.8.1
3
3
  * (c) 2023-present chandq
4
4
  * Released under the MIT License.
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.7.2
2
+ * sculp-js v1.8.1
3
3
  * (c) 2023-present chandq
4
4
  * Released under the MIT License.
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.7.2
2
+ * sculp-js v1.8.1
3
3
  * (c) 2023-present chandq
4
4
  * Released under the MIT License.
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.7.2
2
+ * sculp-js v1.8.1
3
3
  * (c) 2023-present chandq
4
4
  * Released under the MIT License.
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.7.2
2
+ * sculp-js v1.8.1
3
3
  * (c) 2023-present chandq
4
4
  * Released under the MIT License.
5
5
  */
@@ -8,7 +8,7 @@ const b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
8
8
  // eslint-disable-next-line
9
9
  const b64re = /^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/;
10
10
  /**
11
- * 字符串编码成Base64 (适用于任何环境,包括小程序)
11
+ * 字符串编码成Base64, 平替浏览器的btoa, 不包含中文的处理 (适用于任何环境,包括小程序)
12
12
  * @param {string} string
13
13
  * @returns {string}
14
14
  */
@@ -16,8 +16,9 @@ function weBtoa(string) {
16
16
  // 同window.btoa: 字符串编码成Base64
17
17
  string = String(string);
18
18
  let bitmap, a, b, c, result = '', i = 0;
19
- const rest = string.length % 3;
20
- for (; i < string.length;) {
19
+ const strLen = string.length;
20
+ const rest = strLen % 3;
21
+ for (; i < strLen;) {
21
22
  if ((a = string.charCodeAt(i++)) > 255 || (b = string.charCodeAt(i++)) > 255 || (c = string.charCodeAt(i++)) > 255)
22
23
  throw new TypeError("Failed to execute 'btoa' on 'Window': The string to be encoded contains characters outside of the Latin1 range.");
23
24
  bitmap = (a << 16) | (b << 8) | c;
@@ -30,7 +31,7 @@ function weBtoa(string) {
30
31
  return rest ? result.slice(0, rest - 3) + '==='.substring(rest) : result;
31
32
  }
32
33
  /**
33
- * Base64解码为原始字符串(适用于任何环境,包括小程序)
34
+ * Base64解码为原始字符串,平替浏览器的atob, 不包含中文的处理(适用于任何环境,包括小程序)
34
35
  * @param {string} string
35
36
  * @returns {string}
36
37
  */
@@ -41,7 +42,7 @@ function weAtob(string) {
41
42
  throw new TypeError("Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.");
42
43
  string += '=='.slice(2 - (string.length & 3));
43
44
  let bitmap, result = '', r1, r2, i = 0;
44
- for (; i < string.length;) {
45
+ for (const strLen = string.length; i < strLen;) {
45
46
  bitmap =
46
47
  (b64.indexOf(string.charAt(i++)) << 18) |
47
48
  (b64.indexOf(string.charAt(i++)) << 12) |
package/lib/index.d.ts CHANGED
@@ -24,11 +24,15 @@ declare function objectHas<T extends AnyObject>(obj: T, key: keyof T): boolean;
24
24
  */
25
25
  declare function arrayLike(any: unknown): boolean;
26
26
  /**
27
- * 判断任意值的数据类型
27
+ * 判断任意值的数据类型,检查非对象时不如typeof、instanceof的性能高
28
+ *
29
+ * 当检查类对象时是不可靠的,对象可以通过定义 Symbol.toStringTag 属性来更改检查结果
30
+ *
31
+ * 详见:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/toString
28
32
  * @param {unknown} any
29
- * @returns {string}
33
+ * @returns
30
34
  */
31
- declare const typeIs: (any: unknown) => string;
35
+ declare function typeIs(any: unknown): 'Null' | 'Undefined' | 'Symbol' | 'Boolean' | 'Number' | 'String' | 'Function' | 'Date' | 'RegExp' | 'Map' | 'Set' | 'ArrayBuffer' | 'Object' | 'Array' | 'Error' | 'BigInt' | 'Promise' | 'AsyncFunction' | string;
32
36
  declare const isString: (any: unknown) => any is string;
33
37
  declare const isBoolean: (any: unknown) => any is boolean;
34
38
  declare const isSymbol: (any: unknown) => any is symbol;
@@ -38,6 +42,7 @@ declare const isUndefined: (any: unknown) => any is undefined;
38
42
  declare const isNull: (any: unknown) => any is null;
39
43
  declare const isPrimitive: (any: unknown) => boolean;
40
44
  declare function isNullOrUnDef(val: unknown): val is null | undefined;
45
+
41
46
  declare const isObject: (any: unknown) => any is Record<string, unknown>;
42
47
  declare const isArray: (any: unknown) => any is unknown[];
43
48
  /**
@@ -268,9 +273,6 @@ interface SmoothScrollOptions {
268
273
  easing: EasingName;
269
274
  }
270
275
  declare function smoothScroll(options?: Partial<SmoothScrollOptions>): Promise<void>;
271
- type ReadyCallback = () => void;
272
- declare function isDomReady(): boolean;
273
- declare function onDomReady(callback: ReadyCallback): void;
274
276
  /**
275
277
  * 获取元素样式属性的计算值
276
278
  * @param {HTMLElement} el
@@ -403,6 +405,13 @@ declare function objectAssign<R = AnyObject | AnyArray>(source: ObjectAssignItem
403
405
  * @returns {R}
404
406
  */
405
407
  declare function objectFill<R extends AnyObject = AnyObject>(source: Partial<R>, target: Partial<R>, fillable?: (s: typeof source, t: typeof target, key: keyof R) => boolean): R;
408
+ /**
409
+ * 获取对象指定层级下的属性值(现在可用ES6+的可选链?.来替代)
410
+ * @param {AnyObject} obj
411
+ * @param {string} path
412
+ * @param {boolean} strict
413
+ * @returns
414
+ */
406
415
  declare function objectGet(obj: AnyObject, path: string, strict?: boolean): {
407
416
  p: any | undefined;
408
417
  k: string | undefined;
@@ -419,6 +428,14 @@ declare function objectGet(obj: AnyObject, path: string, strict?: boolean): {
419
428
  * @returns {T}
420
429
  */
421
430
  declare function cloneDeep<T>(source: T, map?: WeakMap<any, any>): T;
431
+ type Comparable = null | undefined | boolean | number | string | Date | RegExp | Map<any, any> | Set<any> | ArrayBuffer | object | Array<any>;
432
+ /**
433
+ * 比较两值是否相等,适用所有数据类型
434
+ * @param {Comparable} a
435
+ * @param {Comparable} b
436
+ * @returns {boolean}
437
+ */
438
+ declare function isEqual(a: Comparable, b: Comparable): boolean;
422
439
 
423
440
  /**
424
441
  * 标准化路径
@@ -809,47 +826,8 @@ interface ITreeConf {
809
826
  * @returns {[IdLike[], ITreeItem<V>[]]} - 由parentId...childId, parentObject-childObject组成的二维数组
810
827
  */
811
828
  declare function searchTreeById<V>(tree: ArrayLike<V>, nodeId: IdLike, config?: ITreeConf): [IdLike[], ArrayLike<V>[]];
812
- type WithChildren<T> = T & {
813
- children?: WithChildren<T>[];
814
- };
815
829
  /**
816
- * 根据 idProp 与 parentIdProp 从对象数组中构建对应的树
817
- * 当 A[parentIdProp] === B[idProp] 时,对象A会被移动到对象B的children。
818
- * 当一个对象的 parentIdProp 不与其他对象的 idProp 字段相等时,该对象被作为树的顶层节点
819
- * @param {string} idProp 元素ID
820
- * @param {string} parentIdProp 父元素ID
821
- * @param {object[]} items 一维数组
822
- * @returns {WithChildren<T>[]} 树
823
- * @example
824
- * const array = [
825
- * { id: 'node-1', parent: 'root' },
826
- * { id: 'node-2', parent: 'root' },
827
- * { id: 'node-3', parent: 'node-2' },
828
- * { id: 'node-4', parent: 'node-2' },
829
- * { id: 'node-5', parent: 'node-4' },
830
- * ]
831
- * const tree = buildTree('id', 'parent', array)
832
- * expect(tree).toEqual([
833
- * { id: 'node-1', parent: 'root' },
834
- * {
835
- * id: 'node-2',
836
- * parent: 'root',
837
- * children: [
838
- * { id: 'node-3', parent: 'node-2' },
839
- * {
840
- * id: 'node-4',
841
- * parent: 'node-2',
842
- * children: [{ id: 'node-5', parent: 'node-4' }],
843
- * },
844
- * ],
845
- * },
846
- * ])
847
- */
848
- declare function buildTree<ID extends string, PID extends string, T extends {
849
- [key in ID | PID]: string;
850
- }>(idProp: ID, parentIdProp: PID, items: T[]): WithChildren<T>[];
851
- /**
852
- * 扁平化数组转换成树(效率高于buildTree)
830
+ * 扁平化数组转换成树
853
831
  * @param {any[]} list
854
832
  * @param {IFieldOptions} options
855
833
  * @returns {any[]}
@@ -914,13 +892,13 @@ type NumberType = number | string;
914
892
  declare function strip(num: NumberType, precision?: number): number;
915
893
 
916
894
  /**
917
- * 字符串编码成Base64 (适用于任何环境,包括小程序)
895
+ * 字符串编码成Base64, 平替浏览器的btoa, 不包含中文的处理 (适用于任何环境,包括小程序)
918
896
  * @param {string} string
919
897
  * @returns {string}
920
898
  */
921
899
  declare function weBtoa(string: string): string;
922
900
  /**
923
- * Base64解码为原始字符串(适用于任何环境,包括小程序)
901
+ * Base64解码为原始字符串,平替浏览器的atob, 不包含中文的处理(适用于任何环境,包括小程序)
924
902
  * @param {string} string
925
903
  * @returns {string}
926
904
  */
@@ -1077,4 +1055,4 @@ declare function replaceVarFromString(sourceStr: string, targetObj: Record<strin
1077
1055
  */
1078
1056
  declare function executeInScope(code: string, scope?: Record<string, any>): any;
1079
1057
 
1080
- export { type AnyArray, type AnyFunc, type AnyObject, type ArrayElements, type DateObj, type DateValue, type DebounceFunc, EMAIL_REGEX, type FileType, HEX_POOL, HTTP_URL_REGEX, type ICanvasWM, type ICompressOptions, type IFieldOptions, type IFilterCondition, IPV4_REGEX, IPV6_REGEX, type ISearchTreeOpts, type ITreeConf, type IdLike, type LooseParamValue, type LooseParams, type ObjectAssignItem, type OnceFunc, PHONE_REGEX, type Params, type PartialDeep, type RandomString, type ReadyCallback, type Replacer, STRING_ARABIC_NUMERALS, STRING_LOWERCASE_ALPHA, STRING_POOL, STRING_UPPERCASE_ALPHA, type SetStyle, type SmoothScrollOptions, type Style, type ThrottleFunc, UNIQUE_NUMBER_SAFE_LENGTH, URL_REGEX, type UniqueString, type Url, type WithChildren, add, addClass, arrayEach, arrayEachAsync, arrayInsertBefore, arrayLike, arrayRemove, asyncMap, buildTree, calculateDate, calculateDateTime, chooseLocalFile, cloneDeep, compressImg, cookieDel, cookieGet, cookieSet, copyText, crossOriginDownload, dateParse, dateToEnd, dateToStart, debounce, decodeFromBase64, divide, downloadBlob, downloadData, downloadHref, downloadURL, encodeToBase64, escapeRegExp, executeInScope, flatTree, forEachDeep, formatDate, formatNumber, formatTree, fuzzySearchTree, genCanvasWM, getComputedCssVal, getGlobal, getStrWidthPx, getStyle, hasClass, isArray, isBigInt, isBoolean, isDate, isDigit, isDomReady, isEmail, isEmpty, isError, isFloat, isFunction, isIdNo, isInteger, isIpV4, isIpV6, isJsonString, isNaN, isNull, isNullOrUnDef, isNumber, isNumerical, isObject, isPhone, isPlainObject, isPrimitive, isRegExp, isString, isSymbol, isUndefined, isUrl, isValidDate, mapDeep, multiply, numberAbbr, numberToHex, objectAssign, objectEach, objectEachAsync, objectFill, objectGet, objectHas, objectMap, objectAssign as objectMerge, objectOmit, objectPick, onDomReady, once, parseQueryParams, parseVarFromString, pathJoin, pathNormalize, qsParse, qsStringify, randomNumber, randomString, randomUuid, removeClass, replaceVarFromString, searchTreeById, setGlobal, setStyle, smoothScroll, stringAssign, stringCamelCase, stringEscapeHtml, stringFill, stringFormat, stringKebabCase, strip, subtract, supportCanvas, throttle, tooltipEvent, typeIs, uniqueNumber, uniqueString, uniqueSymbol, urlDelParams, urlParse, urlSetParams, urlStringify, wait, weAtob, weBtoa };
1058
+ export { type AnyArray, type AnyFunc, type AnyObject, type ArrayElements, type Comparable, type DateObj, type DateValue, type DebounceFunc, EMAIL_REGEX, type FileType, HEX_POOL, HTTP_URL_REGEX, type ICanvasWM, type ICompressOptions, type IFieldOptions, type IFilterCondition, IPV4_REGEX, IPV6_REGEX, type ISearchTreeOpts, type ITreeConf, type IdLike, type LooseParamValue, type LooseParams, type ObjectAssignItem, type OnceFunc, PHONE_REGEX, type Params, type PartialDeep, type RandomString, type Replacer, STRING_ARABIC_NUMERALS, STRING_LOWERCASE_ALPHA, STRING_POOL, STRING_UPPERCASE_ALPHA, type SetStyle, type SmoothScrollOptions, type Style, type ThrottleFunc, UNIQUE_NUMBER_SAFE_LENGTH, URL_REGEX, type UniqueString, type Url, add, addClass, arrayEach, arrayEachAsync, arrayInsertBefore, arrayLike, arrayRemove, asyncMap, calculateDate, calculateDateTime, chooseLocalFile, cloneDeep, compressImg, cookieDel, cookieGet, cookieSet, copyText, crossOriginDownload, dateParse, dateToEnd, dateToStart, debounce, decodeFromBase64, divide, downloadBlob, downloadData, downloadHref, downloadURL, encodeToBase64, escapeRegExp, executeInScope, flatTree, forEachDeep, formatDate, formatNumber, formatTree, fuzzySearchTree, genCanvasWM, getComputedCssVal, getGlobal, getStrWidthPx, getStyle, hasClass, isArray, isBigInt, isBoolean, isDate, isDigit, isEmail, isEmpty, isEqual, isError, isFloat, isFunction, isIdNo, isInteger, isIpV4, isIpV6, isJsonString, isNaN, isNull, isNullOrUnDef, isNullOrUnDef as isNullish, isNumber, isNumerical, isObject, isPhone, isPlainObject, isPrimitive, isRegExp, isString, isSymbol, isUndefined, isUrl, isValidDate, mapDeep, multiply, numberAbbr, numberToHex, objectAssign, objectEach, objectEachAsync, objectFill, objectGet, objectHas, objectMap, objectAssign as objectMerge, objectOmit, objectPick, once, parseQueryParams, parseVarFromString, pathJoin, pathNormalize, qsParse, qsStringify, randomNumber, randomString, randomUuid, removeClass, replaceVarFromString, searchTreeById, setGlobal, setStyle, smoothScroll, stringAssign, stringCamelCase, stringEscapeHtml, stringFill, stringFormat, stringKebabCase, strip, subtract, supportCanvas, throttle, tooltipEvent, typeIs, uniqueNumber, uniqueString, uniqueSymbol, urlDelParams, urlParse, urlSetParams, urlStringify, wait, weAtob, weBtoa };