sculp-js 1.19.12 → 1.19.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/dist/cjs/array.cjs +1 -1
  2. package/dist/cjs/async.cjs +1 -1
  3. package/dist/cjs/base64.cjs +1 -1
  4. package/dist/cjs/clipboard.cjs +1 -1
  5. package/dist/cjs/cloneDeep.cjs +1 -1
  6. package/dist/cjs/cookie.cjs +1 -1
  7. package/dist/cjs/date.cjs +1 -1
  8. package/dist/cjs/dom.cjs +1 -1
  9. package/dist/cjs/download.cjs +1 -1
  10. package/dist/cjs/file.cjs +1 -1
  11. package/dist/cjs/func.cjs +1 -1
  12. package/dist/cjs/index.cjs +1 -1
  13. package/dist/cjs/isEqual.cjs +1 -1
  14. package/dist/cjs/math.cjs +1 -1
  15. package/dist/cjs/number.cjs +1 -1
  16. package/dist/cjs/object.cjs +1 -1
  17. package/dist/cjs/path.cjs +1 -1
  18. package/dist/cjs/qs.cjs +1 -1
  19. package/dist/cjs/random.cjs +1 -1
  20. package/dist/cjs/string.cjs +1 -1
  21. package/dist/cjs/tooltip.cjs +1 -1
  22. package/dist/cjs/tree.cjs +26 -26
  23. package/dist/cjs/type.cjs +1 -1
  24. package/dist/cjs/unicodeToolkit.cjs +1 -1
  25. package/dist/cjs/unique.cjs +1 -1
  26. package/dist/cjs/url.cjs +1 -1
  27. package/dist/cjs/validator.cjs +1 -1
  28. package/dist/cjs/variable.cjs +1 -1
  29. package/dist/cjs/watermark.cjs +1 -1
  30. package/dist/esm/array.mjs +1 -1
  31. package/dist/esm/async.mjs +1 -1
  32. package/dist/esm/base64.mjs +1 -1
  33. package/dist/esm/clipboard.mjs +1 -1
  34. package/dist/esm/cloneDeep.mjs +1 -1
  35. package/dist/esm/cookie.mjs +1 -1
  36. package/dist/esm/date.mjs +1 -1
  37. package/dist/esm/dom.mjs +1 -1
  38. package/dist/esm/download.mjs +1 -1
  39. package/dist/esm/file.mjs +1 -1
  40. package/dist/esm/func.mjs +1 -1
  41. package/dist/esm/index.mjs +1 -1
  42. package/dist/esm/isEqual.mjs +1 -1
  43. package/dist/esm/math.mjs +1 -1
  44. package/dist/esm/number.mjs +1 -1
  45. package/dist/esm/object.mjs +1 -1
  46. package/dist/esm/path.mjs +1 -1
  47. package/dist/esm/qs.mjs +1 -1
  48. package/dist/esm/random.mjs +1 -1
  49. package/dist/esm/string.mjs +1 -1
  50. package/dist/esm/tooltip.mjs +1 -1
  51. package/dist/esm/tree.mjs +26 -26
  52. package/dist/esm/type.mjs +1 -1
  53. package/dist/esm/unicodeToolkit.mjs +1 -1
  54. package/dist/esm/unique.mjs +1 -1
  55. package/dist/esm/url.mjs +1 -1
  56. package/dist/esm/validator.mjs +1 -1
  57. package/dist/esm/variable.mjs +1 -1
  58. package/dist/esm/watermark.mjs +1 -1
  59. package/dist/types/tree.d.ts +13 -13
  60. package/dist/umd/index.min.js +2 -2
  61. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.19.12
2
+ * sculp-js v1.19.13
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.19.12
2
+ * sculp-js v1.19.13
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.19.12
2
+ * sculp-js v1.19.13
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.19.12
2
+ * sculp-js v1.19.13
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.19.12
2
+ * sculp-js v1.19.13
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.19.12
2
+ * sculp-js v1.19.13
3
3
  * (c) 2023-present chandq
4
4
  * Released under the MIT License.
5
5
  */
package/dist/cjs/date.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.19.12
2
+ * sculp-js v1.19.13
3
3
  * (c) 2023-present chandq
4
4
  * Released under the MIT License.
5
5
  */
package/dist/cjs/dom.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.19.12
2
+ * sculp-js v1.19.13
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.19.12
2
+ * sculp-js v1.19.13
3
3
  * (c) 2023-present chandq
4
4
  * Released under the MIT License.
5
5
  */
package/dist/cjs/file.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.19.12
2
+ * sculp-js v1.19.13
3
3
  * (c) 2023-present chandq
4
4
  * Released under the MIT License.
5
5
  */
package/dist/cjs/func.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.19.12
2
+ * sculp-js v1.19.13
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.19.12
2
+ * sculp-js v1.19.13
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.19.12
2
+ * sculp-js v1.19.13
3
3
  * (c) 2023-present chandq
4
4
  * Released under the MIT License.
5
5
  */
package/dist/cjs/math.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.19.12
2
+ * sculp-js v1.19.13
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.19.12
2
+ * sculp-js v1.19.13
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.19.12
2
+ * sculp-js v1.19.13
3
3
  * (c) 2023-present chandq
4
4
  * Released under the MIT License.
5
5
  */
package/dist/cjs/path.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.19.12
2
+ * sculp-js v1.19.13
3
3
  * (c) 2023-present chandq
4
4
  * Released under the MIT License.
5
5
  */
package/dist/cjs/qs.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.19.12
2
+ * sculp-js v1.19.13
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.19.12
2
+ * sculp-js v1.19.13
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.19.12
2
+ * sculp-js v1.19.13
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.19.12
2
+ * sculp-js v1.19.13
3
3
  * (c) 2023-present chandq
4
4
  * Released under the MIT License.
5
5
  */
package/dist/cjs/tree.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.19.12
2
+ * sculp-js v1.19.13
3
3
  * (c) 2023-present chandq
4
4
  * Released under the MIT License.
5
5
  */
@@ -21,13 +21,13 @@ const defaultSearchTreeOptions = {
21
21
  function getChildNodes(item, childField, isDomNode) {
22
22
  const child = item[childField];
23
23
  if (!child) return null;
24
- return isDomNode && type.isNodeList(child) ? Array.from(child) : Array.isArray(child) ? child : null;
24
+ return isDomNode && type.isNodeList(child) ? child : Array.isArray(child) ? child : null;
25
25
  }
26
26
  /**
27
27
  * Tree traversal function (default DFS, supports continue and break operations).
28
28
  * Can be used to traverse Array and NodeList type data.
29
- * @param {V[]} tree - Tree data
30
- * @param {Function} iterator - Iterator function. Returns true to continue, false to break.
29
+ * @param {ArrayLike<V>} tree - Tree data
30
+ * @param {Function} iteratee - Iteratee function. Returns true to continue, false to break.
31
31
  * @param {object} options - Options to customize child element name, reverse traversal, breadth-first traversal. Default: {
32
32
  childField: 'children',
33
33
  reverse: false,
@@ -38,7 +38,7 @@ function getChildNodes(item, childField, isDomNode) {
38
38
  */
39
39
  function forEachDeep(
40
40
  tree,
41
- iterator,
41
+ iteratee,
42
42
  options = {
43
43
  childField: 'children',
44
44
  reverse: false,
@@ -55,12 +55,12 @@ function forEachDeep(
55
55
  let isBreak = false;
56
56
  const queue = [];
57
57
  const processNode = (item, index, arr, parent, level) => {
58
- const re = iterator(item, index, arr, tree, parent, level);
59
- if (re === false) {
58
+ const result = iteratee(item, index, arr, tree, parent, level);
59
+ if (result === false) {
60
60
  isBreak = true;
61
61
  return;
62
62
  }
63
- if (re === true) return;
63
+ if (result === true) return;
64
64
  const childNodes = getChildNodes(item, childField, isDomNode);
65
65
  if (childNodes) {
66
66
  if (breadthFirst) {
@@ -104,7 +104,7 @@ function forEachDeep(
104
104
  }
105
105
  /**
106
106
  * Tree search function, can be used to search Array and NodeList type data.
107
- * @param {V[]} tree - Tree data
107
+ * @param {ArrayLike<V>} tree - Tree data
108
108
  * @param {Function} predicate - Predicate function
109
109
  * @param {object} options - Options to customize child element name, reverse traversal, breadth-first traversal. Default: {
110
110
  childField: 'children',
@@ -139,7 +139,7 @@ function findDeep(
139
139
  }
140
140
  /**
141
141
  * Tree filter function, can be used to filter Array and NodeList type data.
142
- * @param {V[]} tree - Tree data
142
+ * @param {ArrayLike<V>} tree - Tree data
143
143
  * @param {Function} predicate - Predicate function
144
144
  * @param {object} options - Options to customize child element name, reverse traversal, breadth-first traversal. Default: {
145
145
  childField: 'children',
@@ -176,8 +176,8 @@ function filterDeep(
176
176
  * Can be used for inserting or removing tree items.
177
177
  *
178
178
  * Can traverse any array-like object with a length property and numeric keys.
179
- * @param {V[]} tree - Tree data
180
- * @param {Function} iterator - Iterator function. Returns true to continue, false to break.
179
+ * @param {ArrayLike<V>} tree - Tree data
180
+ * @param {Function} iteratee - Iteratee function. Returns true to continue, false to break.
181
181
  * @param {object} options - Options to customize child element name, reverse traversal. Default: {
182
182
  childField: 'children',
183
183
  reverse: false,
@@ -186,7 +186,7 @@ function filterDeep(
186
186
  */
187
187
  function mapDeep(
188
188
  tree,
189
- iterator,
189
+ iteratee,
190
190
  options = {
191
191
  childField: 'children',
192
192
  reverse: false
@@ -200,13 +200,13 @@ function mapDeep(
200
200
  for (let i = arr.length - 1; i >= 0; i--) {
201
201
  if (isBreak) break;
202
202
  const item = arr[i];
203
- const re = iterator(item, i, arr, tree, parent, level);
204
- if (re === false) {
203
+ const result = iteratee(item, i, arr, tree, parent, level);
204
+ if (result === false) {
205
205
  isBreak = true;
206
206
  break;
207
207
  }
208
- if (re === true) continue;
209
- const newItem = object.objectOmit(re, [childField]);
208
+ if (result === true) continue;
209
+ const newItem = object.objectOmit(result, [childField]);
210
210
  output.push(newItem);
211
211
  const children = item[childField];
212
212
  if (Array.isArray(children)) {
@@ -218,13 +218,13 @@ function mapDeep(
218
218
  for (let i = 0; i < arr.length; i++) {
219
219
  if (isBreak) break;
220
220
  const item = arr[i];
221
- const re = iterator(item, i, arr, tree, parent, level);
222
- if (re === false) {
221
+ const result = iteratee(item, i, arr, tree, parent, level);
222
+ if (result === false) {
223
223
  isBreak = true;
224
224
  break;
225
225
  }
226
- if (re === true) continue;
227
- const newItem = object.objectOmit(re, [childField]);
226
+ if (result === true) continue;
227
+ const newItem = object.objectOmit(result, [childField]);
228
228
  output.push(newItem);
229
229
  const children = item[childField];
230
230
  if (Array.isArray(children)) {
@@ -242,14 +242,14 @@ function mapDeep(
242
242
  /**
243
243
  * Retrieves the path (ancestors + self) for a given node ID.
244
244
  *
245
- * @param {ArrayLike<T>} tree - Tree data
245
+ * @param {ArrayLike<V>} tree - Tree data
246
246
  * @param {number | string} nodeId - Target node ID
247
247
  * @param {ITreeConf} options - Configuration. Default: { childField = 'children', keyField = 'id' }
248
248
  * @returns {[(number | string)[], V[]]} - Array of IDs and Array of Nodes from root to target
249
249
  */
250
250
  function getPathById(tree, nodeId, options = { childField: 'children', keyField: 'id' }) {
251
251
  const { childField = 'children', keyField = 'id' } = type.isObject(options) ? options : {};
252
- const flatMap = {};
252
+ const nodeMap = {};
253
253
  // 扁平化 - 使用迭代而非递归,避免栈溢出
254
254
  const stack = [];
255
255
  const len = tree.length;
@@ -259,7 +259,7 @@ function getPathById(tree, nodeId, options = { childField: 'children', keyField:
259
259
  while (stack.length > 0) {
260
260
  const { node, parentId, parent } = stack.pop();
261
261
  const id = node[keyField];
262
- flatMap[id] = { node, parentId, parent };
262
+ nodeMap[id] = { node, parentId, parent };
263
263
  const children = node[childField];
264
264
  if (Array.isArray(children)) {
265
265
  const childLen = children.length;
@@ -271,13 +271,13 @@ function getPathById(tree, nodeId, options = { childField: 'children', keyField:
271
271
  // 回溯路径
272
272
  const ids = [];
273
273
  const nodes = [];
274
- let current = flatMap[nodeId];
274
+ let current = nodeMap[nodeId];
275
275
  if (!current) return [[], []];
276
276
  ids.push(nodeId);
277
277
  nodes.push(current.node);
278
278
  while (current && current.parentId !== undefined) {
279
279
  ids.unshift(current.parentId);
280
- const parent = flatMap[current.parentId];
280
+ const parent = nodeMap[current.parentId];
281
281
  if (!parent) break;
282
282
  nodes.unshift(parent.node);
283
283
  current = parent;
package/dist/cjs/type.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.19.12
2
+ * sculp-js v1.19.13
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.19.12
2
+ * sculp-js v1.19.13
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.19.12
2
+ * sculp-js v1.19.13
3
3
  * (c) 2023-present chandq
4
4
  * Released under the MIT License.
5
5
  */
package/dist/cjs/url.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.19.12
2
+ * sculp-js v1.19.13
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.19.12
2
+ * sculp-js v1.19.13
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.19.12
2
+ * sculp-js v1.19.13
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.19.12
2
+ * sculp-js v1.19.13
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.19.12
2
+ * sculp-js v1.19.13
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.19.12
2
+ * sculp-js v1.19.13
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.19.12
2
+ * sculp-js v1.19.13
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.19.12
2
+ * sculp-js v1.19.13
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.19.12
2
+ * sculp-js v1.19.13
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.19.12
2
+ * sculp-js v1.19.13
3
3
  * (c) 2023-present chandq
4
4
  * Released under the MIT License.
5
5
  */
package/dist/esm/date.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.19.12
2
+ * sculp-js v1.19.13
3
3
  * (c) 2023-present chandq
4
4
  * Released under the MIT License.
5
5
  */
package/dist/esm/dom.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.19.12
2
+ * sculp-js v1.19.13
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.19.12
2
+ * sculp-js v1.19.13
3
3
  * (c) 2023-present chandq
4
4
  * Released under the MIT License.
5
5
  */
package/dist/esm/file.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.19.12
2
+ * sculp-js v1.19.13
3
3
  * (c) 2023-present chandq
4
4
  * Released under the MIT License.
5
5
  */
package/dist/esm/func.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.19.12
2
+ * sculp-js v1.19.13
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.19.12
2
+ * sculp-js v1.19.13
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.19.12
2
+ * sculp-js v1.19.13
3
3
  * (c) 2023-present chandq
4
4
  * Released under the MIT License.
5
5
  */
package/dist/esm/math.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.19.12
2
+ * sculp-js v1.19.13
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.19.12
2
+ * sculp-js v1.19.13
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.19.12
2
+ * sculp-js v1.19.13
3
3
  * (c) 2023-present chandq
4
4
  * Released under the MIT License.
5
5
  */
package/dist/esm/path.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.19.12
2
+ * sculp-js v1.19.13
3
3
  * (c) 2023-present chandq
4
4
  * Released under the MIT License.
5
5
  */
package/dist/esm/qs.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.19.12
2
+ * sculp-js v1.19.13
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.19.12
2
+ * sculp-js v1.19.13
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.19.12
2
+ * sculp-js v1.19.13
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.19.12
2
+ * sculp-js v1.19.13
3
3
  * (c) 2023-present chandq
4
4
  * Released under the MIT License.
5
5
  */
package/dist/esm/tree.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.19.12
2
+ * sculp-js v1.19.13
3
3
  * (c) 2023-present chandq
4
4
  * Released under the MIT License.
5
5
  */
@@ -17,13 +17,13 @@ const defaultSearchTreeOptions = {
17
17
  function getChildNodes(item, childField, isDomNode) {
18
18
  const child = item[childField];
19
19
  if (!child) return null;
20
- return isDomNode && isNodeList(child) ? Array.from(child) : Array.isArray(child) ? child : null;
20
+ return isDomNode && isNodeList(child) ? child : Array.isArray(child) ? child : null;
21
21
  }
22
22
  /**
23
23
  * Tree traversal function (default DFS, supports continue and break operations).
24
24
  * Can be used to traverse Array and NodeList type data.
25
- * @param {V[]} tree - Tree data
26
- * @param {Function} iterator - Iterator function. Returns true to continue, false to break.
25
+ * @param {ArrayLike<V>} tree - Tree data
26
+ * @param {Function} iteratee - Iteratee function. Returns true to continue, false to break.
27
27
  * @param {object} options - Options to customize child element name, reverse traversal, breadth-first traversal. Default: {
28
28
  childField: 'children',
29
29
  reverse: false,
@@ -34,7 +34,7 @@ function getChildNodes(item, childField, isDomNode) {
34
34
  */
35
35
  function forEachDeep(
36
36
  tree,
37
- iterator,
37
+ iteratee,
38
38
  options = {
39
39
  childField: 'children',
40
40
  reverse: false,
@@ -51,12 +51,12 @@ function forEachDeep(
51
51
  let isBreak = false;
52
52
  const queue = [];
53
53
  const processNode = (item, index, arr, parent, level) => {
54
- const re = iterator(item, index, arr, tree, parent, level);
55
- if (re === false) {
54
+ const result = iteratee(item, index, arr, tree, parent, level);
55
+ if (result === false) {
56
56
  isBreak = true;
57
57
  return;
58
58
  }
59
- if (re === true) return;
59
+ if (result === true) return;
60
60
  const childNodes = getChildNodes(item, childField, isDomNode);
61
61
  if (childNodes) {
62
62
  if (breadthFirst) {
@@ -100,7 +100,7 @@ function forEachDeep(
100
100
  }
101
101
  /**
102
102
  * Tree search function, can be used to search Array and NodeList type data.
103
- * @param {V[]} tree - Tree data
103
+ * @param {ArrayLike<V>} tree - Tree data
104
104
  * @param {Function} predicate - Predicate function
105
105
  * @param {object} options - Options to customize child element name, reverse traversal, breadth-first traversal. Default: {
106
106
  childField: 'children',
@@ -135,7 +135,7 @@ function findDeep(
135
135
  }
136
136
  /**
137
137
  * Tree filter function, can be used to filter Array and NodeList type data.
138
- * @param {V[]} tree - Tree data
138
+ * @param {ArrayLike<V>} tree - Tree data
139
139
  * @param {Function} predicate - Predicate function
140
140
  * @param {object} options - Options to customize child element name, reverse traversal, breadth-first traversal. Default: {
141
141
  childField: 'children',
@@ -172,8 +172,8 @@ function filterDeep(
172
172
  * Can be used for inserting or removing tree items.
173
173
  *
174
174
  * Can traverse any array-like object with a length property and numeric keys.
175
- * @param {V[]} tree - Tree data
176
- * @param {Function} iterator - Iterator function. Returns true to continue, false to break.
175
+ * @param {ArrayLike<V>} tree - Tree data
176
+ * @param {Function} iteratee - Iteratee function. Returns true to continue, false to break.
177
177
  * @param {object} options - Options to customize child element name, reverse traversal. Default: {
178
178
  childField: 'children',
179
179
  reverse: false,
@@ -182,7 +182,7 @@ function filterDeep(
182
182
  */
183
183
  function mapDeep(
184
184
  tree,
185
- iterator,
185
+ iteratee,
186
186
  options = {
187
187
  childField: 'children',
188
188
  reverse: false
@@ -196,13 +196,13 @@ function mapDeep(
196
196
  for (let i = arr.length - 1; i >= 0; i--) {
197
197
  if (isBreak) break;
198
198
  const item = arr[i];
199
- const re = iterator(item, i, arr, tree, parent, level);
200
- if (re === false) {
199
+ const result = iteratee(item, i, arr, tree, parent, level);
200
+ if (result === false) {
201
201
  isBreak = true;
202
202
  break;
203
203
  }
204
- if (re === true) continue;
205
- const newItem = objectOmit(re, [childField]);
204
+ if (result === true) continue;
205
+ const newItem = objectOmit(result, [childField]);
206
206
  output.push(newItem);
207
207
  const children = item[childField];
208
208
  if (Array.isArray(children)) {
@@ -214,13 +214,13 @@ function mapDeep(
214
214
  for (let i = 0; i < arr.length; i++) {
215
215
  if (isBreak) break;
216
216
  const item = arr[i];
217
- const re = iterator(item, i, arr, tree, parent, level);
218
- if (re === false) {
217
+ const result = iteratee(item, i, arr, tree, parent, level);
218
+ if (result === false) {
219
219
  isBreak = true;
220
220
  break;
221
221
  }
222
- if (re === true) continue;
223
- const newItem = objectOmit(re, [childField]);
222
+ if (result === true) continue;
223
+ const newItem = objectOmit(result, [childField]);
224
224
  output.push(newItem);
225
225
  const children = item[childField];
226
226
  if (Array.isArray(children)) {
@@ -238,14 +238,14 @@ function mapDeep(
238
238
  /**
239
239
  * Retrieves the path (ancestors + self) for a given node ID.
240
240
  *
241
- * @param {ArrayLike<T>} tree - Tree data
241
+ * @param {ArrayLike<V>} tree - Tree data
242
242
  * @param {number | string} nodeId - Target node ID
243
243
  * @param {ITreeConf} options - Configuration. Default: { childField = 'children', keyField = 'id' }
244
244
  * @returns {[(number | string)[], V[]]} - Array of IDs and Array of Nodes from root to target
245
245
  */
246
246
  function getPathById(tree, nodeId, options = { childField: 'children', keyField: 'id' }) {
247
247
  const { childField = 'children', keyField = 'id' } = isObject(options) ? options : {};
248
- const flatMap = {};
248
+ const nodeMap = {};
249
249
  // 扁平化 - 使用迭代而非递归,避免栈溢出
250
250
  const stack = [];
251
251
  const len = tree.length;
@@ -255,7 +255,7 @@ function getPathById(tree, nodeId, options = { childField: 'children', keyField:
255
255
  while (stack.length > 0) {
256
256
  const { node, parentId, parent } = stack.pop();
257
257
  const id = node[keyField];
258
- flatMap[id] = { node, parentId, parent };
258
+ nodeMap[id] = { node, parentId, parent };
259
259
  const children = node[childField];
260
260
  if (Array.isArray(children)) {
261
261
  const childLen = children.length;
@@ -267,13 +267,13 @@ function getPathById(tree, nodeId, options = { childField: 'children', keyField:
267
267
  // 回溯路径
268
268
  const ids = [];
269
269
  const nodes = [];
270
- let current = flatMap[nodeId];
270
+ let current = nodeMap[nodeId];
271
271
  if (!current) return [[], []];
272
272
  ids.push(nodeId);
273
273
  nodes.push(current.node);
274
274
  while (current && current.parentId !== undefined) {
275
275
  ids.unshift(current.parentId);
276
- const parent = flatMap[current.parentId];
276
+ const parent = nodeMap[current.parentId];
277
277
  if (!parent) break;
278
278
  nodes.unshift(parent.node);
279
279
  current = parent;
package/dist/esm/type.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.19.12
2
+ * sculp-js v1.19.13
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.19.12
2
+ * sculp-js v1.19.13
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.19.12
2
+ * sculp-js v1.19.13
3
3
  * (c) 2023-present chandq
4
4
  * Released under the MIT License.
5
5
  */
package/dist/esm/url.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.19.12
2
+ * sculp-js v1.19.13
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.19.12
2
+ * sculp-js v1.19.13
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.19.12
2
+ * sculp-js v1.19.13
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.19.12
2
+ * sculp-js v1.19.13
3
3
  * (c) 2023-present chandq
4
4
  * Released under the MIT License.
5
5
  */
@@ -11,13 +11,13 @@ export interface ISearchTreeOpts {
11
11
  }
12
12
  export interface IFilterCondition<V> {
13
13
  keyword?: string;
14
- filter?: (args: V) => boolean;
14
+ filter?: (val: V) => boolean;
15
15
  }
16
16
  /**
17
17
  * Tree traversal function (default DFS, supports continue and break operations).
18
18
  * Can be used to traverse Array and NodeList type data.
19
- * @param {V[]} tree - Tree data
20
- * @param {Function} iterator - Iterator function. Returns true to continue, false to break.
19
+ * @param {ArrayLike<V>} tree - Tree data
20
+ * @param {Function} iteratee - Iteratee function. Returns true to continue, false to break.
21
21
  * @param {object} options - Options to customize child element name, reverse traversal, breadth-first traversal. Default: {
22
22
  childField: 'children',
23
23
  reverse: false,
@@ -26,7 +26,7 @@ export interface IFilterCondition<V> {
26
26
  }
27
27
  * @returns {*}
28
28
  */
29
- export declare function forEachDeep<V>(tree: V[], iterator: (val: V, index: number, currentArr: V[], tree: V[], parent: V | null, level: number) => boolean | void, options?: {
29
+ export declare function forEachDeep<V>(tree: ArrayLike<V>, iteratee: (val: V, index: number, currentArr: ArrayLike<V>, tree: ArrayLike<V>, parent: V | null, level: number) => boolean | void, options?: {
30
30
  childField?: string;
31
31
  reverse?: boolean;
32
32
  breadthFirst?: boolean;
@@ -34,7 +34,7 @@ export declare function forEachDeep<V>(tree: V[], iterator: (val: V, index: numb
34
34
  }): void;
35
35
  /**
36
36
  * Tree search function, can be used to search Array and NodeList type data.
37
- * @param {V[]} tree - Tree data
37
+ * @param {ArrayLike<V>} tree - Tree data
38
38
  * @param {Function} predicate - Predicate function
39
39
  * @param {object} options - Options to customize child element name, reverse traversal, breadth-first traversal. Default: {
40
40
  childField: 'children',
@@ -44,7 +44,7 @@ export declare function forEachDeep<V>(tree: V[], iterator: (val: V, index: numb
44
44
  }
45
45
  * @returns {V|null}
46
46
  */
47
- export declare function findDeep<V>(tree: V[], predicate: (val: V, index: number, currentArr: V[], tree: V[], parent: V | null, level: number) => boolean | void, options?: {
47
+ export declare function findDeep<V>(tree: ArrayLike<V>, predicate: (val: V, index: number, currentArr: ArrayLike<V>, tree: ArrayLike<V>, parent: V | null, level: number) => boolean | void, options?: {
48
48
  childField?: string;
49
49
  reverse?: boolean;
50
50
  breadthFirst?: boolean;
@@ -52,7 +52,7 @@ export declare function findDeep<V>(tree: V[], predicate: (val: V, index: number
52
52
  }): V | null;
53
53
  /**
54
54
  * Tree filter function, can be used to filter Array and NodeList type data.
55
- * @param {V[]} tree - Tree data
55
+ * @param {ArrayLike<V>} tree - Tree data
56
56
  * @param {Function} predicate - Predicate function
57
57
  * @param {object} options - Options to customize child element name, reverse traversal, breadth-first traversal. Default: {
58
58
  childField: 'children',
@@ -62,7 +62,7 @@ export declare function findDeep<V>(tree: V[], predicate: (val: V, index: number
62
62
  }
63
63
  * @returns {V[]}
64
64
  */
65
- export declare function filterDeep<V>(tree: V[], predicate: (val: V, index: number, currentArr: V[], tree: V[], parent: V | null, level: number) => boolean | void, options?: {
65
+ export declare function filterDeep<V>(tree: ArrayLike<V>, predicate: (val: V, index: number, currentArr: ArrayLike<V>, tree: ArrayLike<V>, parent: V | null, level: number) => boolean | void, options?: {
66
66
  childField?: string;
67
67
  reverse?: boolean;
68
68
  breadthFirst?: boolean;
@@ -73,15 +73,15 @@ export declare function filterDeep<V>(tree: V[], predicate: (val: V, index: numb
73
73
  * Can be used for inserting or removing tree items.
74
74
  *
75
75
  * Can traverse any array-like object with a length property and numeric keys.
76
- * @param {V[]} tree - Tree data
77
- * @param {Function} iterator - Iterator function. Returns true to continue, false to break.
76
+ * @param {ArrayLike<V>} tree - Tree data
77
+ * @param {Function} iteratee - Iteratee function. Returns true to continue, false to break.
78
78
  * @param {object} options - Options to customize child element name, reverse traversal. Default: {
79
79
  childField: 'children',
80
80
  reverse: false,
81
81
  }
82
82
  * @returns {any[]} A new tree structure
83
83
  */
84
- export declare function mapDeep<T>(tree: T[], iterator: (val: T, index: number, currentArr: T[], tree: T[], parent: T | null, level: number) => {
84
+ export declare function mapDeep<V>(tree: ArrayLike<V>, iteratee: (val: V, index: number, currentArr: ArrayLike<V>, tree: ArrayLike<V>, parent: V | null, level: number) => {
85
85
  [k: string | number]: any;
86
86
  } | boolean, options?: {
87
87
  childField?: string;
@@ -92,12 +92,12 @@ export type ITreeConf = Omit<IFieldOptions, 'pidField'>;
92
92
  /**
93
93
  * Retrieves the path (ancestors + self) for a given node ID.
94
94
  *
95
- * @param {ArrayLike<T>} tree - Tree data
95
+ * @param {ArrayLike<V>} tree - Tree data
96
96
  * @param {number | string} nodeId - Target node ID
97
97
  * @param {ITreeConf} options - Configuration. Default: { childField = 'children', keyField = 'id' }
98
98
  * @returns {[(number | string)[], V[]]} - Array of IDs and Array of Nodes from root to target
99
99
  */
100
- export declare function getPathById<V>(tree: V[], nodeId: IdLike, options?: ITreeConf): [(number | string)[], any[]];
100
+ export declare function getPathById<V>(tree: ArrayLike<V>, nodeId: IdLike, options?: ITreeConf): [(number | string)[], any[]];
101
101
  export { getPathById as searchTreeById };
102
102
  /**
103
103
  * Converts a flat array into a tree structure.
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * sculp-js v1.19.12
2
+ * sculp-js v1.19.13
3
3
  * (c) 2023-present chandq
4
4
  * Released under the MIT License.
5
5
  */
6
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).sculpJs={})}(this,(function(e){"use strict";function t(e,t,r=!1){if(r)for(let r=e.length-1;r>=0;r--){const n=t(e[r],r,e);if(!1===n)break}else for(let r=0,n=e.length;r<n;r++){const n=t(e[r],r,e);if(!1===n)break}e=null}async function r(e,t,r=!1){if(r)for(let r=e.length-1;r>=0&&!1!==await t(e[r],r);r--);else for(let r=0,n=e.length;r<n&&!1!==await t(e[r],r);r++);}function n(e,t,r){if(t===r||t+1===r)return;const[n]=e.splice(t,1),o=r<t?r:r-1;e.splice(o,0,n)}function o(e,r){const n=[],o=r;return t(e,((e,t)=>{o(e,t)&&n.push(t)})),n.forEach(((t,r)=>{e.splice(t-r,1)})),e}function i(e,t,r){const n=e=>{if(r)return r(e);if("string"==typeof e||"number"==typeof e||"symbol"==typeof e)return e;throw new Error("diffArray: getKey is required when item is not a primitive value")},o=new Map,i=new Map;for(const t of e)o.set(n(t),t);for(const e of t)i.set(n(e),e);const s=[],a=[];for(const[e,t]of i)o.has(e)||s.push(t);for(const[e,t]of o)i.has(e)||a.push(t);return{added:s,removed:a}}var s={arrayEach:t,arrayEachAsync:r,arrayInsertBefore:n,arrayRemove:o,diffArray:i},a=Object.freeze({__proto__:null,arrayEach:t,arrayEachAsync:r,arrayInsertBefore:n,arrayRemove:o,default:s,diffArray:i});const{toString:l,hasOwnProperty:c}=Object.prototype;function u(e,t){return c.call(e,t)}function d(e){return!!x(e)||(!!h(e)||!!_(e)&&u(e,"length"))}function f(e){return l.call(e).slice(8,-1)}function p(e,t){return f(e)===t}const h=e=>"string"==typeof e,g=e=>"boolean"==typeof e,m=e=>"symbol"==typeof e,y=e=>"bigint"==typeof e,b=e=>"number"==typeof e&&!Number.isNaN(e),A=e=>void 0===e,S=e=>null===e,w=e=>null===e||"object"!=typeof e;function E(e){return A(e)||S(e)}const _=e=>"Object"===f(e),x=e=>Array.isArray(e),v=e=>"function"==typeof e,C=e=>Number.isNaN(e),T=e=>"Date"===f(e),j=e=>"Error"===f(e),F=e=>"RegExp"===f(e),P=e=>"Promise"===f(e),N=e=>"Map"===f(e),R=e=>"Set"===f(e),O=e=>{const t=f(e);return"Int8Array"===t||"Uint8Array"===t||"Uint8ClampedArray"===t||"Int16Array"===t||"Uint16Array"===t||"Int32Array"===t||"Uint32Array"===t||"Float32Array"===t||"Float64Array"===t||"BigInt64Array"===t||"BigUint64Array"===t},I=e=>"DataView"===f(e),D=e=>"ArrayBuffer"===f(e),$=e=>"Arguments"===f(e),M=e=>"AsyncFunction"===f(e);function L(e){try{const t=JSON.parse(e);return"object"==typeof t&&null!==t&&t}catch(e){return!1}}function U(e){if(E(e)||Number.isNaN(e))return!0;const t=f(e);return d(e)||"Arguments"===t?!e.length:"Set"===t||"Map"===t?!e.size:!Object.keys(e).length}function B(e){return!A(NodeList)&&NodeList.prototype.isPrototypeOf(e)}var k={typeIs:f,is:p,TypeMapping:void 0,TypeTag:void 0,objectHas:u,arrayLike:d,isString:h,isBoolean:g,isSymbol:m,isBigInt:y,isNumber:b,isUndefined:A,isNull:S,isPrimitive:w,isNullOrUnDef:E,isNullish:E,isObject:_,isArray:x,isFunction:v,isNaN:C,isDate:T,isError:j,isRegExp:F,isPromise:P,isMap:N,isSet:R,isTypedArray:O,isDataView:I,isArrayBuffer:D,isArguments:$,isAsyncFunction:M,isJsonString:L,isEmpty:U,isNodeList:B},z=Object.freeze({__proto__:null,arrayLike:d,default:k,is:p,isArguments:$,isArray:x,isArrayBuffer:D,isAsyncFunction:M,isBigInt:y,isBoolean:g,isDataView:I,isDate:T,isEmpty:U,isError:j,isFunction:v,isJsonString:L,isMap:N,isNaN:C,isNodeList:B,isNull:S,isNullOrUnDef:E,isNullish:E,isNumber:b,isObject:_,isPrimitive:w,isPromise:P,isRegExp:F,isSet:R,isString:h,isSymbol:m,isTypedArray:O,isUndefined:A,objectHas:u,typeIs:f});const H=f,G=e=>{if(!_(e))return!1;const t=Object.getPrototypeOf(e);return!t||t===Object.prototype};function q(e,t){for(const r in e)if(u(e,r)&&!1===t(e[r],r))break;e=null}async function V(e,t){for(const r in e)if(u(e,r)&&!1===await t(e[r],r))break}function W(e,t){const r={};for(const n in e)u(e,n)&&(r[n]=t(e[n],n));return e=null,r}function X(e,t){const r={};return q(e,((e,n)=>{t.includes(n)&&(r[n]=e)})),e=null,r}function Y(e,t){const r={};return q(e,((e,n)=>{t.includes(n)||(r[n]=e)})),e=null,r}const K=(e,t,r)=>{if(A(r))return t;if(H(t)!==H(r))return x(r)?K(e,[],r):_(r)?K(e,{},r):r;if(G(r)){const n=e.get(r);return n||(e.set(r,t),q(r,((r,n)=>{t[n]=K(e,t[n],r)})),t)}if(x(r)){const n=e.get(r);return n||(e.set(r,t),r.forEach(((r,n)=>{t[n]=K(e,t[n],r)})),t)}return r};function J(e,...t){const r=new Map;for(let n=0,o=t.length;n<o;n++){const o=t[n];e=K(r,e,o)}return r.clear(),e}function Z(e,t,r){const n=r||((e,t,r)=>void 0===e[r]);return q(t,((r,o)=>{n(e,t,o)&&(e[o]=r)})),e}function Q(e,t,r=!1){const n=(t=(t=t.replace(/\[(\w+)\]/g,".$1")).replace(/^\./,"")).split(".");let o=e,i=0;for(let e=n.length;i<e-1;++i){const e=n[i];if(b(Number(e))&&Array.isArray(o))o=o[e];else{if(!_(o)||!u(o,e)){if(o=void 0,r)throw new Error("[Object] objectGet path 路径不正确");break}o=o[e]}}return{p:o,k:o?n[i]:void 0,v:o?o[n[i]]:void 0}}var ee={isPlainObject:G,objectEach:q,objectEachAsync:V,objectMap:W,objectPick:X,objectOmit:Y,objectAssign:J,objectMerge:J,objectFill:Z,objectGet:Q},te=Object.freeze({__proto__:null,default:ee,isPlainObject:G,objectAssign:J,objectEach:q,objectEachAsync:V,objectFill:Z,objectGet:Q,objectMap:W,objectMerge:J,objectOmit:Y,objectPick:X});function re(e,t){let r=e;t&&(r=e.replace(/^./,(e=>e.toUpperCase())));return r.replace(/[\s_-](.)/g,((e,t)=>t.toUpperCase()))}function ne(e,t="-"){return e.replace(/^./,(e=>e.toLowerCase())).replace(/[A-Z]/g,(e=>`${t}${e.toLowerCase()}`))}const oe="0123456789",ie="abcdefghijklmnopqrstuvwxyz",se="ABCDEFGHIJKLMNOPQRSTUVWXYZ",ae=/%[%sdo]/g;function le(e,...t){let r=0;return[e.replace(ae,(e=>{const n=t[r++];switch(e){case"%%":return r--,"%";default:case"%s":return String(n);case"%d":return String(Number(n));case"%o":return JSON.stringify(n)}})),...t.splice(r).map(String)].join(" ")}const ce=/\${(.*?)}/g,ue=(e,t)=>e.replace(ce,((e,r)=>((e,t)=>{try{return new Function(`with(arguments[0]){if(arguments[0].${e} === undefined)throw "";return String(arguments[0].${e})}`)(t)}catch(t){throw new SyntaxError(`无法执行表达式:${e}`)}})(r,t))),de=e=>{const t={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"};return e.replace(/[&<>"]/g,(e=>t[e]))},fe=(e,t=" ")=>new Array(e).fill(t).join("");function pe(e=location.search){const t={};return Array.from(e.matchAll(/[&?]?([^=&]+)=?([^=&]*)/g)).forEach((e=>{const r=e[1],n=e[2],o=t[r];o?Array.isArray(o)?o.push(n):t[r]=[o,n]:t[r]=n})),t}var he={stringCamelCase:re,stringKebabCase:ne,STRING_ARABIC_NUMERALS:oe,STRING_LOWERCASE_ALPHA:ie,STRING_UPPERCASE_ALPHA:se,stringFormat:le,stringAssign:ue,stringEscapeHtml:de,stringFill:fe,parseQueryParams:pe},ge=Object.freeze({__proto__:null,STRING_ARABIC_NUMERALS:oe,STRING_LOWERCASE_ALPHA:ie,STRING_UPPERCASE_ALPHA:se,default:he,parseQueryParams:pe,stringAssign:ue,stringCamelCase:re,stringEscapeHtml:de,stringFill:fe,stringFormat:le,stringKebabCase:ne});function me(e,t){if(-1!==t.indexOf(" "))throw new Error("className should not contain space.");return e.classList.contains(t)}const ye=(e,t)=>{e.split(/\s+/g).forEach(t)};function be(e,t){ye(t,(t=>e.classList.add(t)))}function Ae(e,t){ye(t,(t=>e.classList.remove(t)))}const Se=(e,t,r)=>{_(t)?q(t,((t,r)=>{Se(e,r,t)})):e.style.setProperty(ne(t),r)};function we(e,t){return getComputedStyle(e).getPropertyValue(t)}function Ee(e,t,r=!0){const n=getComputedStyle(e).getPropertyValue(t)??"";return r?Number(n.replace(/([0-9]*)(.*)/g,"$1")):n}function _e(e,t=14,r=!0){let n=0;if(console.assert(h(e),`${e} 不是有效的字符串`),h(e)&&e.length>0){const o="getStrWidth1494304949567";let i=document.querySelector(`#${o}`);if(!i){const r=document.createElement("span");r.id=o,r.style.fontSize=t+"px",r.style.whiteSpace="nowrap",r.style.visibility="hidden",r.style.position="absolute",r.style.top="-9999px",r.style.left="-9999px",r.textContent=e,document.body.appendChild(r),i=r}i.textContent=e,n=i.offsetWidth,r&&i.remove()}return n}function xe(e){let t;if("SELECT"===e.nodeName)e.focus(),t=e.value;else if("INPUT"===e.nodeName||"TEXTAREA"===e.nodeName){const r=e.hasAttribute("readonly");r||e.setAttribute("readonly",""),e.select(),e.setSelectionRange(0,e.value.length),r||e.removeAttribute("readonly"),t=e.value}else{e.hasAttribute("contenteditable")&&e.focus();const r=window.getSelection(),n=document.createRange();n.selectNodeContents(e),r.removeAllRanges(),r.addRange(n),t=r.toString()}return t}var ve={hasClass:me,addClass:be,removeClass:Ae,setStyle:Se,getStyle:we,getComputedCssVal:Ee,getStrWidthPx:_e,select:xe},Ce=Object.freeze({__proto__:null,addClass:be,default:ve,getComputedCssVal:Ee,getStrWidthPx:_e,getStyle:we,hasClass:me,removeClass:Ae,select:xe,setStyle:Se});function Te(e,t){const{successCallback:r,failCallback:n}=E(t)?{}:t;navigator.clipboard?navigator.clipboard.writeText(e).then((()=>{v(r)&&r()})).catch((r=>{je(e,t)})):je(e,t)}function je(e,t){const{successCallback:r,failCallback:n,container:o=document.body}=E(t)?{}:t;let i=function(e){const t="rtl"===document.documentElement.getAttribute("dir"),r=document.createElement("textarea");r.style.fontSize="12pt",r.style.border="0",r.style.padding="0",r.style.margin="0",r.style.position="absolute",r.style[t?"right":"left"]="-9999px";const n=window.pageYOffset||document.documentElement.scrollTop;return r.style.top=`${n}px`,r.setAttribute("readonly",""),r.value=e,r}(e);o.appendChild(i),xe(i);try{document.execCommand("copy")&&v(r)&&r()}catch(e){v(n)&&n(e)}finally{o.removeChild(i),i=null,window.getSelection()?.removeAllRanges()}}var Fe={copyText:Te,fallbackCopyText:je},Pe=Object.freeze({__proto__:null,copyText:Te,default:Fe,fallbackCopyText:je});function Ne(e){const{cookie:t}=document;if(!t)return"";const r=t.split(";");for(let t=0;t<r.length;t++){const n=r[t],[o,i=""]=n.split("=");if(o===e)return decodeURIComponent(i)}return""}function Re(e,t,r){const n=[],o="expires";if(n.push([e,encodeURIComponent(t)]),b(r)){const e=new Date;e.setTime(e.getTime()+r),n.push([o,e.toUTCString()])}else T(r)&&n.push([o,r.toUTCString()]);n.push(["path","/"]),document.cookie=n.map((e=>{const[t,r]=e;return`${t}=${r}`})).join(";")}const Oe=e=>Re(e,"",-1);var Ie={cookieSet:Re,cookieGet:Ne,cookieDel:Oe},De=Object.freeze({__proto__:null,cookieDel:Oe,cookieGet:Ne,cookieSet:Re,default:Ie});const $e=e=>T(e)&&!C(e.getTime()),Me=e=>{if(!h(e))return;const t=e.replace(/-/g,"/");return new Date(t)},Le=e=>{if(!h(e))return;const t=/([+-])(\d\d)(\d\d)$/,r=t.exec(e);if(!r)return;const n=e.replace(t,"Z"),o=new Date(n);if(!$e(o))return;const[,i,s,a]=r,l=parseInt(s,10),c=parseInt(a,10),u=(e,t)=>"+"===i?e-t:e+t;return o.setHours(u(o.getHours(),l)),o.setMinutes(u(o.getMinutes(),c)),o};function Ue(e){const t=new Date(e);if($e(t))return t;const r=Me(e);if($e(r))return r;const n=Le(e);if($e(n))return n;throw new SyntaxError(`${e.toString()} 不是一个合法的日期描述`)}function Be(e){const t=Ue(e);return new Date(t.getFullYear(),t.getMonth(),t.getDate(),0,0,0,0)}function ke(e){const t=Be(e);return t.setDate(t.getDate()+1),Ue(t.getTime()-1)}function ze(e,t="YYYY-MM-DD HH:mm:ss"){const r=Ue(e);let n,o=t;const i={"Y+":`${r.getFullYear()}`,"y+":`${r.getFullYear()}`,"M+":`${r.getMonth()+1}`,"D+":`${r.getDate()}`,"d+":`${r.getDate()}`,"H+":`${r.getHours()}`,"m+":`${r.getMinutes()}`,"s+":`${r.getSeconds()}`,"S+":`${r.getMilliseconds()}`,"w+":["周日","周一","周二","周三","周四","周五","周六"][r.getDay()]};for(const e in i)n=new RegExp("("+e+")").exec(o),n&&(o=o.replace(n[1],1===n[1].length?i[e]:i[e].padStart(n[1].length,"0")));return o}function He(e,t={}){const{format:r,returnDate:n=!1,years:o=0,months:i=0,weeks:s=0,days:a=0,hours:l=0,minutes:c=0,seconds:u=0,milliseconds:d=0}=t,f=Ue(e),p=new Date(f),h=f.getDate(),g=h===new Date(f.getFullYear(),f.getMonth()+1,0).getDate();if(p.setFullYear(p.getFullYear()+o),0!==i){const e=p.getMonth()+i,t=new Date(p.getFullYear(),e+1,0).getDate();p.setDate(1),p.setMonth(e),g||h>t?p.setDate(t):p.setDate(h)}if(0===a&&0===s||p.setDate(p.getDate()+a+7*s),p.setHours(p.getHours()+l),p.setMinutes(p.getMinutes()+c),p.setSeconds(p.getSeconds()+u),p.setMilliseconds(p.getMilliseconds()+d),n)return p;if(r)return ze(p,r);const m=p.getFullYear(),y=String(p.getMonth()+1).padStart(2,"0"),b=String(p.getDate()).padStart(2,"0"),A=String(p.getHours()).padStart(2,"0"),S=String(p.getMinutes()).padStart(2,"0"),w=String(p.getSeconds()).padStart(2,"0");if(t.hasOwnProperty("hours")||t.hasOwnProperty("minutes")||t.hasOwnProperty("seconds")||t.hasOwnProperty("milliseconds")){if(t.hasOwnProperty("milliseconds")){return`${m}-${y}-${b} ${A}:${S}:${w}.${String(p.getMilliseconds()).padStart(3,"0")}`}return t.hasOwnProperty("seconds")?`${m}-${y}-${b} ${A}:${S}:${w}`:`${m}-${y}-${b} ${A}:${S}`}return`${m}-${y}-${b}`}var Ge={isValidDate:$e,dateParse:Ue,dateToStart:Be,dateToEnd:ke,formatDate:ze,adjustDate:He,calculateDate:He},qe=Object.freeze({__proto__:null,adjustDate:He,dateParse:Ue,dateToEnd:ke,dateToStart:Be,default:Ge,formatDate:ze,isValidDate:$e});const Ve=e=>{const t=e.replace(/\\/g,"/").replace(/\/{2,}/g,"/").replace(/\.{3,}/g,"..").replace(/\/\.\//g,"/").split("/").map((e=>e.trim())),r=e=>".."===e,n=[];let o=!1;const i=e=>{n.push(e)};return t.forEach((e=>{const t=(e=>"."===e)(e),s=r(e);return o?t?void 0:s?(()=>{if(0===n.length)return;const e=n[n.length-1];r(e)?n.push(".."):n.pop()})():void i(e):(i(e),void(o=!t&&!s))})),n.join("/")},We=(e,...t)=>Ve([e,...t].join("/"));var Xe={pathJoin:We,pathNormalize:Ve},Ye=Object.freeze({__proto__:null,default:Xe,pathJoin:We,pathNormalize:Ve});function Ke(e){const t=new URLSearchParams(e),r={};for(const[e,n]of t.entries())A(r[e])?r[e]=n:x(r[e])||(r[e]=t.getAll(e));return r}const Je=e=>h(e)?e:b(e)?String(e):g(e)?e?"true":"false":T(e)?e.toISOString():null;function Ze(e,t=Je){const r=new URLSearchParams;return q(e,((e,n)=>{if(x(e))e.forEach((e=>{const o=t(e);null!==o&&r.append(n.toString(),o)}));else{const o=t(e);if(null===o)return;r.set(n.toString(),o)}})),r.toString()}var Qe={qsParse:Ke,qsStringify:Ze},et=Object.freeze({__proto__:null,default:Qe,qsParse:Ke,qsStringify:Ze});const tt=(e,t=!0)=>{let r=null;v(URL)&&t?r=new URL(e):(r=document.createElement("a"),r.href=e);const{protocol:n,username:o,password:i,host:s,port:a,hostname:l,hash:c,search:u,pathname:d}=r,f=We("/",d),p=o&&i?`${o}:${i}`:"",h=u.replace(/^\?/,"");return r=null,{protocol:n,auth:p,username:o,password:i,host:s,port:a,hostname:l,hash:c,search:u,searchParams:Ke(h),query:h,pathname:f,path:`${f}${u}`,href:e}},rt=e=>{const{protocol:t,auth:r,host:n,pathname:o,searchParams:i,hash:s}=e,a=r?`${r}@`:"",l=Ze(i),c=l?`?${l}`:"";let u=s.replace(/^#/,"");return u=u?"#"+u:"",`${t}//${a}${n}${o}${c}${u}`},nt=(e,t)=>{const r=tt(e);return Object.assign(r.searchParams,t),rt(r)},ot=(e,t)=>{const r=tt(e);return t.forEach((e=>delete r.searchParams[e])),rt(r)};var it={urlParse:tt,urlStringify:rt,urlSetParams:nt,urlDelParams:ot},st=Object.freeze({__proto__:null,default:it,urlDelParams:ot,urlParse:tt,urlSetParams:nt,urlStringify:rt});function at(e,t){window.open(t?nt(e,t):e)}function lt(e,t,r){let n=document.createElement("a");n.download=t,n.style.display="none",n.href=e,document.body.appendChild(n),n.click(),setTimeout((()=>{document.body.removeChild(n),n=null,v(r)&&r()}))}function ct(e,t,r){const n=URL.createObjectURL(e);lt(n,t),setTimeout((()=>{URL.revokeObjectURL(n),v(r)&&r()}))}function ut(e,t,r){const{successCode:n=200,successCallback:o,failCallback:i}=E(r)?{successCode:200,successCallback:void 0,failCallback:void 0}:r,s=new XMLHttpRequest;s.open("GET",e,!0),s.responseType="blob",s.onload=function(){if(s.status===n)ct(s.response,t,o);else if(v(i)){const e=s.status,t=s.getResponseHeader("Content-Type");if(h(t)&&t.includes("application/json")){const t=new FileReader;t.onload=()=>{i({status:e,response:t.result})},t.readAsText(s.response)}else i(s)}},s.onerror=e=>{v(i)&&i({status:0,code:"ERROR_CONNECTION_REFUSED"})},s.send()}function dt(e,t,r,n){if(r=r.replace(`.${t}`,"")+`.${t}`,"json"===t){ct(new Blob([JSON.stringify(e,null,4)]),r)}else{if(!n||!n.length)throw new Error("未传入表头数据");if(!Array.isArray(e))throw new Error("data error! expected array!");const o=n.join(",")+"\n";let i="";e.forEach((e=>{i+=Object.values(e).join(",\t")+",\n"}));lt("data:"+{csv:"text/csv",xls:"application/vnd.ms-excel",xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}[t]+";charset=utf-8,\ufeff"+encodeURIComponent(o+i),r)}}var ft={downloadURL:at,downloadHref:lt,downloadBlob:ct,crossOriginDownload:ut,downloadData:dt},pt=Object.freeze({__proto__:null,crossOriginDownload:ut,default:ft,downloadBlob:ct,downloadData:dt,downloadHref:lt,downloadURL:at});function ht(e=1){return new Promise((t=>setTimeout(t,e)))}function gt(e,t,r=1/0){return new Promise(((n,o)=>{const i=e[Symbol.iterator](),s=Math.min(e.length,r),a=[];let l,c=0,u=0;const d=()=>{if(l)return o(l);const r=i.next();if(r.done)return void(c===e.length&&n(a));const s=u++;t(r.value,s,e).then((e=>{c++,a[s]=e,d()})).catch((e=>{l=e,d()}))};for(let e=0;e<s;e++)d()}))}function mt(e,t){return e.then((e=>[null,e])).catch((e=>{if(t){return[Object.assign({},e,t),void 0]}return[e,void 0]}))}var yt={wait:ht,asyncMap:gt,safeAwait:mt},bt=Object.freeze({__proto__:null,asyncMap:gt,default:yt,safeAwait:mt,wait:ht});function At(){return!!document.createElement("canvas").getContext}function St(e,t){let r=document.createElement("input");r.setAttribute("id",String(Date.now())),r.setAttribute("type","file"),r.setAttribute("style","visibility:hidden"),r.setAttribute("accept",e),document.body.appendChild(r),r.click(),r.onchange=e=>{t(e.target.files),setTimeout((()=>{document.body.removeChild(r),r=null}))}}function wt({maxWidth:e,maxHeight:t,originWidth:r,originHeight:n}){let o=r,i=n;return(r>e||n>t)&&(r/n>e/t?(o=e,i=Math.round(e*(n/r))):(i=t,o=Math.round(t*(r/n)))),{width:o,height:i}}function Et(e,t={mime:"image/jpeg",minFileSizeKB:50}){if(!(e instanceof File||e instanceof FileList))throw new Error(`${e} require be File or FileList`);if(!At())throw new Error("Current runtime environment not support Canvas");const{quality:r,mime:n="image/jpeg",maxSize:o,minFileSizeKB:i=50}=_(t)?t:{};let s,a=r;if(r)a=r;else if(e instanceof File){const t=+parseInt((e.size/1024).toFixed(2));a=t<i?1:t<1024?.85:t<5120?.8:.75}return b(o)&&(s=o>=1200?o:1200),e instanceof FileList?Promise.all(Array.from(e).map((e=>Et(e,{maxSize:s,mime:n,quality:a})))):e instanceof File?new Promise((t=>{const r=[...e.name.split(".").slice(0,-1),{"image/webp":"webp","image/jpeg":"jpg","image/png":"png"}[n]].join("."),o=+parseInt((e.size/1024).toFixed(2));if(o<i)t({file:e});else{const i=new FileReader;i.onload=({target:{result:i}})=>{const l=new Image;l.onload=()=>{const c=document.createElement("canvas"),u=c.getContext("2d"),d=l.width,f=l.height,{width:p,height:h}=function({sizeKB:e,maxSize:t,originWidth:r,originHeight:n}){let o=r,i=n;if(b(t)){const{width:e,height:s}=wt({maxWidth:t,maxHeight:t,originWidth:r,originHeight:n});o=e,i=s}else if(e<500){const e=1200,t=1200,{width:s,height:a}=wt({maxWidth:e,maxHeight:t,originWidth:r,originHeight:n});o=s,i=a}else if(e<5120){const e=1400,t=1400,{width:s,height:a}=wt({maxWidth:e,maxHeight:t,originWidth:r,originHeight:n});o=s,i=a}else if(e<10240){const e=1600,t=1600,{width:s,height:a}=wt({maxWidth:e,maxHeight:t,originWidth:r,originHeight:n});o=s,i=a}else if(10240<=e){const e=r>15e3?8192:r>1e4?4096:2048,t=n>15e3?8192:n>1e4?4096:2048,{width:s,height:a}=wt({maxWidth:e,maxHeight:t,originWidth:r,originHeight:n});o=s,i=a}return{width:o,height:i}}({sizeKB:o,maxSize:s,originWidth:d,originHeight:f});c.width=p,c.height=h,u.clearRect(0,0,p,h),u.drawImage(l,0,0,p,h);const g=c.toDataURL(n,a),m=atob(g.split(",")[1]);let y=m.length;const A=new Uint8Array(new ArrayBuffer(y));for(;y--;)A[y]=m.charCodeAt(y);const S=new File([A],r,{type:n});t({file:S,bufferArray:A,origin:e,beforeSrc:i,afterSrc:g,beforeKB:o,afterKB:Number((Number(S.size)/1024).toFixed(2))})},l.src=i},i.readAsDataURL(e)}})):Promise.resolve(null)}var _t={supportCanvas:At,chooseLocalFile:St,compressImg:Et},xt=Object.freeze({__proto__:null,chooseLocalFile:St,compressImg:Et,default:_t,supportCanvas:At});function vt(e="请勿外传",t){const{rootContainer:r=document.body,width:n="300px",height:o="150px",textAlign:i="center",textBaseline:s="middle",font:a="20px PingFangSC-Medium,PingFang SC",fillStyle:l="rgba(189, 177, 167, .3)",rotate:c=-20,zIndex:u=2147483647,watermarkId:d="__wm"}=E(t)?{}:t,f=h(r)?document.querySelector(r):r;if(!f)throw new Error(`${r} is not valid Html Element or element selector`);const p=document.createElement("canvas");p.setAttribute("width",n),p.setAttribute("height",o);const g=p.getContext("2d");g.textAlign=i,g.textBaseline=s,g.font=a,g.fillStyle=l,g.rotate(Math.PI/180*c),g.fillText(e,parseFloat(n)/4,parseFloat(o)/2);const m=p.toDataURL(),y=document.querySelector(`#${d}`),b=y||document.createElement("div"),A=`opacity: 1 !important; display: block !important; visibility: visible !important; position:absolute; left:0; top:0; width:100%; height:100%; z-index:${u}; pointer-events:none; background-repeat:repeat; background-image:url('${m}')`;b.setAttribute("style",A),b.setAttribute("id",d),b.classList.add("nav-height"),y||(f.style.position="relative",f.appendChild(b));const S=window.MutationObserver||window.WebKitMutationObserver;if(S){let r=new S((function(){let n=document.querySelector(`#${d}`);if(n){const{opacity:o,zIndex:i,display:s,visibility:a}=(e=>{const t=getComputedStyle(e);return{opacity:t.getPropertyValue("opacity"),zIndex:t.getPropertyValue("z-index"),display:t.getPropertyValue("display"),visibility:t.getPropertyValue("visibility")}})(n);(n&&n.getAttribute("style")!==A||!n||"1"!==o||"2147483647"!==i||"block"!==s||"visible"!==a)&&(r.disconnect(),r=null,f.removeChild(n),n=null,vt(e,t))}else r.disconnect(),r=null,vt(e,t)}));r.observe(f,{attributes:!0,subtree:!0,childList:!0})}}var Ct={genCanvasWM:vt},Tt=Object.freeze({__proto__:null,default:Ct,genCanvasWM:vt});const jt=(e,t)=>{let r,n=!1;const o=function(...o){n||(clearTimeout(r),r=setTimeout((()=>{e.call(this,...o)}),t))};return o.cancel=()=>{clearTimeout(r),n=!0},o},Ft=(e,t,r)=>{let n,o=!1,i=0;const s=function(...s){if(o)return;const a=Date.now(),l=()=>{i=a,e.call(this,...s)};if(0===i)return r?l():void(i=a);i+t-a>0?(clearTimeout(n),n=setTimeout((()=>l()),t)):l()};return s.cancel=()=>{clearTimeout(n),o=!0},s},Pt=e=>{let t,r=!1;return function(...n){return r||(r=!0,t=e.call(this,...n)),t}};function Nt(e,t){if("undefined"!=typeof globalThis)globalThis[e]=t;else if("undefined"!=typeof window)window[e]=t;else if("undefined"!=typeof global)global[e]=t;else{if("undefined"==typeof self)throw new SyntaxError("当前环境下无法设置全局属性");self[e]=t}}function Rt(e){return"undefined"!=typeof globalThis?globalThis[e]:"undefined"!=typeof window?window[e]:"undefined"!=typeof global?global[e]:"undefined"!=typeof self?self[e]:void 0}var Ot={debounce:jt,throttle:Ft,once:Pt,getGlobal:Rt,setGlobal:Nt},It=Object.freeze({__proto__:null,debounce:jt,default:Ot,getGlobal:Rt,once:Pt,setGlobal:Nt,throttle:Ft});const Dt=(e,t)=>Math.floor(Math.random()*(t-e+1)+e),$t=`${oe}${se}${ie}`,Mt=(e,t)=>{let r=0,n=$t;h(t)?(r=e,n=t):b(e)?r=e:h(e)&&(n=e);let o=Math.max(r,1),i="";const s=n.length-1;if(s<2)throw new Error("字符串池长度不能少于 2");for(;o--;){i+=n[Dt(0,s)]}return i};function Lt(){if("undefined"==typeof URL||!URL.createObjectURL||"undefined"==typeof Blob){const e="0123456789abcdef",t="xxxxxxxx-xxxx-4xxx-xxxx-xxxxxxxxxxxx";let r="";for(let n=0;n<t.length;n++){const o=Dt(0,15);r+="-"==t[n]||"4"==t[n]?t[n]:e[o]}return r}return/[^/]+$/.exec(URL.createObjectURL(new Blob).slice())[0]}var Ut={STRING_POOL:$t,randomNumber:Dt,randomString:Mt,randomUuid:Lt},Bt=Object.freeze({__proto__:null,STRING_POOL:$t,default:Ut,randomNumber:Dt,randomString:Mt,randomUuid:Lt});const kt=`${oe}${se}${ie}`,zt="undefined"!=typeof BigInt,Ht=()=>Rt("JSBI"),Gt=e=>zt?BigInt(e):Ht().BigInt(e);function qt(e,t=kt){if(t.length<2)throw new Error("进制池长度不能少于 2");if(!zt)throw new Error('需要安装 jsbi 模块并将 JSBI 设置为全局变量:\nimport JSBI from "jsbi"; window.JSBI = JSBI;');let r=Gt(e);const n=[],{length:o}=t,i=Gt(o),s=()=>{const e=Number(((e,t)=>zt?e%t:Ht().remainder(e,t))(r,i));r=((e,t)=>zt?e/t:Ht().divide(e,t))(r,i),n.unshift(t[e]),r>0&&s()};return s(),n.join("")}const Vt=(e,t,r={ratio:1e3,decimals:0,separator:" "})=>{const{ratio:n=1e3,decimals:o=0,separator:i=" "}=r,{length:s}=t;if(0===s)throw new Error("At least one unit is required");let a=Number(e),l=0;for(;a>=n&&l<s-1;)a/=n,l++;const c=a.toFixed(o),u=t[l];return String(c)+i+u};function Wt(e,t={decimals:0,si:!1,separator:" "}){const{decimals:r=0,si:n=!1,separator:o=" ",baseUnit:i,maxUnit:s}=t;let a=n?["B","kB","MB","GB","TB","PB","EB","ZB","YB"]:["Byte","KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"];if(!E(i)){const e=a.findIndex((e=>e===i));-1!==e&&(a=a.slice(e))}if(!E(s)){const e=a.findIndex((e=>e===s));-1!==e&&a.splice(e+1)}return Vt(e,a,{ratio:n?1e3:1024,decimals:r,separator:o})}function Xt(e,t){if(E(t))return parseInt(String(e)).toLocaleString();let r=0;return t>0&&(r=t),Number(Number(e).toFixed(r)).toLocaleString("en-US")}var Yt={HEX_POOL:kt,numberToHex:qt,numberAbbr:Vt,humanFileSize:Wt,formatNumber:Xt,formatMoney:Xt},Kt=Object.freeze({__proto__:null,HEX_POOL:kt,default:Yt,formatMoney:Xt,formatNumber:Xt,humanFileSize:Wt,numberAbbr:Vt,numberToHex:qt});let Jt=0,Zt=0;const Qt=(e=18)=>{const t=Date.now();e=Math.max(e,18),t!==Zt&&(Zt=t,Jt=0);const r=`${t}`;let n="";const o=e-5-13;if(o>0){n=`${Dt(10**(o-1),10**o-1)}`}const i=((e,t=2)=>String(e).padStart(t,"0"))(Jt,5);return Jt++,`${r}${n}${i}`},er=e=>e[Dt(0,e.length-1)],tr=(e,t)=>{let r=0,n=kt;h(t)?(r=e,n=t):b(e)?r=e:h(e)&&(n=e);let o=qt(Qt(),n),i=r-o.length;if(i<=0)return o;for(;i--;)o+=er(n);return o};var rr={UNIQUE_NUMBER_SAFE_LENGTH:18,uniqueNumber:Qt,uniqueString:tr},nr=Object.freeze({__proto__:null,UNIQUE_NUMBER_SAFE_LENGTH:18,default:rr,uniqueNumber:Qt,uniqueString:tr});function or(e,t,r){let n=250,o=13;const i=e.children[0];_e(t,12)<230?(i.style.maxWidth=_e(t,12)+20+50+"px",n=r.clientX+(_e(t,12)+50)-document.body.offsetWidth):(i.style.maxWidth="250px",n=r.clientX+230-document.body.offsetWidth),i.innerHTML=t,n>0&&(o-=n),e.style.top=r.clientY+23+"px",e.style.left=r.clientX+o+"px",e.style.maxWidth="250px";const s=e.getBoundingClientRect().top+i.offsetHeight-document.body.offsetHeight;s>0&&(e.style.top=r.clientY-s+"px")}const ir={handleMouseEnter:function({rootContainer:e="#root",title:t,event:r,bgColor:n="#000",color:o="#fff"}){try{const i=h(e)?document.querySelector(e):e;if(!i)throw new Error(`${e} is not valid Html Element or element selector`);let s=null;const a="style-tooltip-inner1494304949567";if(!document.querySelector(`#${a}`)){const e=document.createElement("style");e.type="text/css",e.id=a,e.innerHTML=`\n .tooltip-inner1494304949567 {\n max-width: 250px;\n padding: 3px 8px;\n color: ${o};\n text-decoration: none;\n border-radius: 4px;\n text-align: left;\n background-color: ${n};\n }\n `,document.querySelector("head").appendChild(e)}if(s=document.querySelector("#customTitle1494304949567"),s)or(s,t,r);else{const e=document.createElement("div");e.id="customTitle1494304949567",e.style.cssText="z-index: 99999999; visibility: hidden; position: absolute;",e.innerHTML='<div class="tooltip-inner1494304949567" style="word-wrap: break-word; max-width: 44px;">皮肤</div>',i.appendChild(e),s=document.querySelector("#customTitle1494304949567"),t&&(or(s,t,r),s.style.visibility="visible")}}catch(e){console.error(e.message)}},handleMouseLeave:function(e="#root"){const t=h(e)?document.querySelector(e):e;let r=document.querySelector("#customTitle1494304949567");t&&r&&(t.removeChild(r),r=null)}};var sr={tooltipEvent:ir},ar=Object.freeze({__proto__:null,default:sr,tooltipEvent:ir});const lr={keyField:"key",childField:"children",pidField:"pid"},cr={childField:"children",nameField:"name",removeEmptyChild:!1,ignoreCase:!0};function ur(e,t,r={childField:"children",reverse:!1,breadthFirst:!1,isDomNode:!1}){const{childField:n="children",reverse:o=!1,breadthFirst:i=!1,isDomNode:s=!1}=_(r)?r:{};let a=!1;const l=[],c=(r,o,c,d,f)=>{const p=t(r,o,c,e,d,f);if(!1===p)return void(a=!0);if(!0===p)return;const h=function(e,t,r){const n=e[t];return n?r&&B(n)?Array.from(n):Array.isArray(n)?n:null:null}(r,n,s);if(h)if(i){const t=h.length;for(let n=0;n<t;n++)l.push({item:h[n],index:n,array:h,tree:e,parent:r,level:f+1})}else u(h,r,f+1)},u=(e,t,r)=>{const n=e.length;if(o)for(let o=n-1;o>=0&&!a;o--)c(e[o],o,e,t,r);else for(let o=0;o<n&&!a;o++)c(e[o],o,e,t,r)};if(u(e,null,0),i){let e=0;for(;e<l.length&&!a;){const{item:t,index:r,array:n,parent:o,level:i}=l[e++];c(t,r,n,o,i)}}e=null}function dr(e,t,r={childField:"children",reverse:!1,breadthFirst:!1,isDomNode:!1}){let n=null;return ur(e,((...e)=>{if(t(...e))return n=e[0],!1}),r),n}function fr(e,t,r={childField:"children",reverse:!1,breadthFirst:!1,isDomNode:!1}){const n=[];return ur(e,((...e)=>{t(...e)&&n.push(e[0])}),r),n}function pr(e,t,r={childField:"children",reverse:!1}){const{childField:n="children",reverse:o=!1}=_(r)?r:{};let i=!1;const s=[],a=(r,s,l,c)=>{if(o)for(let o=r.length-1;o>=0&&!i;o--){const u=r[o],d=t(u,o,r,e,s,c);if(!1===d){i=!0;break}if(!0===d)continue;const f=Y(d,[n]);l.push(f);const p=u[n];Array.isArray(p)&&(f[n]=[],a(p,u,f[n],c+1))}else for(let o=0;o<r.length&&!i;o++){const u=r[o],d=t(u,o,r,e,s,c);if(!1===d){i=!0;break}if(!0===d)continue;const f=Y(d,[n]);l.push(f);const p=u[n];Array.isArray(p)&&(f[n]=[],a(p,u,f[n],c+1))}};return a(e,null,s,0),e=null,s}function hr(e,t,r={childField:"children",keyField:"id"}){const{childField:n="children",keyField:o="id"}=_(r)?r:{},i={},s=[],a=e.length;for(let t=0;t<a;t++)s.push({node:e[t]});for(;s.length>0;){const{node:e,parentId:t,parent:r}=s.pop(),a=e[o];i[a]={node:e,parentId:t,parent:r};const l=e[n];if(Array.isArray(l)){const t=l.length;for(let r=0;r<t;r++)s.push({node:l[r],parentId:a,parent:e})}}const l=[],c=[];let u=i[t];if(!u)return[[],[]];for(l.push(t),c.push(u.node);u&&void 0!==u.parentId;){l.unshift(u.parentId);const e=i[u.parentId];if(!e)break;c.unshift(e.node),u=e}return[l,c]}function gr(e,t=lr){const{keyField:r="key",childField:n="children",pidField:o="pid"}=_(t)?t:{},i=[],s={},a=e.length;for(let t=0;t<a;t++){const n=e[t];s[n[r]]=n}for(let t=0;t<a;t++){const r=e[t],a=s[r[o]];a?(a[n]||(a[n]=[])).push(r):i.push(r)}return e=null,i}function mr(e,t=lr){const{keyField:r="key",childField:n="children",pidField:o="pid"}=_(t)?t:{},i=[],s=e=>{const t=e.length;for(let a=0;a<t;a++){const t=e[a],l={...t};delete l[n],i.push(l);const c=t[n];if(Array.isArray(c)){const e=c.map((e=>({...e,[o]:void 0!==t[r]?t[r]:e.pid})));s(e)}}};return s(e),i}function yr(e,t,r=cr){if(!u(t,"filter")&&!t.keyword)return e;const n=[],{childField:o,nameField:i,removeEmptyChild:s,ignoreCase:a}=r,l=u(t,"filter"),c=t.filter,d=t.keyword;for(let u=0,f=e.length;u<f;u++){const f=e[u],p=f[o],h=p&&p.length>0?yr(p,t,r):[];let g=!1;if(l&&c)g=c(f);else if(null!=d){const e=String(f[i]||""),t=String(d);g=a?e.toLowerCase().includes(t.toLowerCase()):e.includes(t)}if(g||h.length>0)if(o in f)if(h.length>0)n.push({...f,[o]:h});else if(s){const{[o]:e,...t}=f;n.push(t)}else n.push({...f,[o]:[]});else n.push(f)}return n}var br={forEachDeep:ur,findDeep:dr,filterDeep:fr,mapDeep:pr,getPathById:hr,searchTreeById:hr,formatTree:gr,flatTree:mr,fuzzySearchTree:yr},Ar=Object.freeze({__proto__:null,default:br,filterDeep:fr,findDeep:dr,flatTree:mr,forEachDeep:ur,formatTree:gr,fuzzySearchTree:yr,getPathById:hr,mapDeep:pr,searchTreeById:hr});const Sr=(e,t)=>{let r=0;const n=e.toString(),o=t.toString();return void 0!==n.split(".")[1]&&(r+=n.split(".")[1].length),void 0!==o.split(".")[1]&&(r+=o.split(".")[1].length),Number(n.replace(".",""))*Number(o.replace(".",""))/Math.pow(10,r)},wr=(e,t)=>{let r=0,n=0,o=0;try{r=e.toString().split(".")[1].length}catch(e){r=0}try{n=t.toString().split(".")[1].length}catch(e){n=0}return o=10**Math.max(r,n),(Sr(e,o)+Sr(t,o))/o},Er=(e,t)=>wr(e,-t),_r=(e,t)=>{let r=0,n=0,o=0,i=0;return void 0!==e.toString().split(".")[1]&&(r=e.toString().split(".")[1].length),void 0!==t.toString().split(".")[1]&&(n=t.toString().split(".")[1].length),o=Number(e.toString().replace(".","")),i=Number(t.toString().replace(".","")),o/i*Math.pow(10,n-r)};function xr(e,t=15){return+parseFloat(Number(e).toPrecision(t))}var vr={add:wr,subtract:Er,multiply:Sr,divide:_r,strip:xr},Cr=Object.freeze({__proto__:null,add:wr,default:vr,divide:_r,multiply:Sr,strip:xr,subtract:Er});const Tr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",jr=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/;function Fr(e){const t=e.length;let r="",n=0;for(;n<t-2;n+=3){const t=e.charCodeAt(n)<<16|e.charCodeAt(n+1)<<8|e.charCodeAt(n+2);r+=Tr.charAt(t>>18)+Tr.charAt(t>>12&63)+Tr.charAt(t>>6&63)+Tr.charAt(63&t)}const o=t-n;if(1===o){const t=e.charCodeAt(n);r+=Tr.charAt(t>>2)+Tr.charAt(t<<4&63)+"=="}else if(2===o){const t=e.charCodeAt(n)<<8|e.charCodeAt(n+1);r+=Tr.charAt(t>>10)+Tr.charAt(t>>4&63)+Tr.charAt(t<<2&63)+"="}return r}function Pr(e){if(e=String(e).replace(/[\t\n\f\r ]+/g,""),!jr.test(e))throw new TypeError("Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.");const t=e.length,r=e.endsWith("==")?2:e.endsWith("=")?1:0,n=new Array(.75*t-r);let o=0;for(let i=0;i<t;i+=4){const s=Tr.indexOf(e.charAt(i))<<18|Tr.indexOf(e.charAt(i+1))<<12|(63&Tr.indexOf(e.charAt(i+2)))<<6|63&Tr.indexOf(e.charAt(i+3));n[o++]=String.fromCharCode(s>>16&255),(i+2<t-r||r<2)&&(n[o++]=String.fromCharCode(s>>8&255)),(i+3<t-r||r<1)&&(n[o++]=String.fromCharCode(255&s))}return n.join("")}function Nr(e){const t=(e=String(e)).length;for(let r=0;r<t;r++)if(e.charCodeAt(r)>255)throw new TypeError("Failed to execute 'btoa' on 'Window': The string to be encoded contains characters outside of the Latin1 range.");return Fr(e)}function Rr(e){return Pr(e)}function Or(e){if(!E(Rt("atob"))&&!E(Rt("TextDecoder")))try{const t=Rt("atob")(e),r=t.length,n=new Uint8Array(r);for(let e=0;e<r;e++)n[e]=t.charCodeAt(e);return new(Rt("TextDecoder"))("utf-8").decode(n)}catch(e){}const t=Pr(e),r=t.length,n=new Uint8Array(r);for(let e=0;e<r;e++)n[e]=t.charCodeAt(e);return function(e){const t=e.length;let r="",n=0;for(;n<t;){const t=e[n++];if(t<128)r+=String.fromCharCode(t);else if(t<224){const o=63&e[n++];r+=String.fromCharCode((31&t)<<6|o)}else if(t<240){const o=63&e[n++],i=63&e[n++];r+=String.fromCharCode((15&t)<<12|o<<6|i)}else{let o=(7&t)<<18|(63&e[n++])<<12|(63&e[n++])<<6|63&e[n++];o-=65536,r+=String.fromCharCode(55296+(o>>10&1023),56320+(1023&o))}}return r}(n)}function Ir(e){if(!E(Rt("btoa"))&&!E(Rt("TextEncoder")))try{const t=(new(Rt("TextEncoder"))).encode(e);let r="";const n=t.length;for(let e=0;e<n;e++)r+=String.fromCharCode(t[e]);return Rt("btoa")(r)}catch(e){}const t=function(e){const t=e.length,r=new Uint8Array(3*t);let n=0;for(let o=0;o<t;o++){let t=e.charCodeAt(o);t<128?r[n++]=t:t<2048?(r[n++]=192|t>>6,r[n++]=128|63&t):t<55296||t>=57344?(r[n++]=224|t>>12,r[n++]=128|t>>6&63,r[n++]=128|63&t):(o++,t=65536+((1023&t)<<10|1023&e.charCodeAt(o)),r[n++]=240|t>>18,r[n++]=128|t>>12&63,r[n++]=128|t>>6&63,r[n++]=128|63&t)}return r.subarray(0,n)}(e);let r="";const n=t.length;for(let e=0;e<n;e++)r+=String.fromCharCode(t[e]);return Fr(r)}var Dr={weBtoa:Nr,weAtob:Rr,b64decode:Or,b64encode:Ir},$r=Object.freeze({__proto__:null,b64decode:Or,b64encode:Ir,default:Dr,weAtob:Rr,weBtoa:Nr});const Mr=/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/,Lr=e=>Mr.test(e),Ur=/^(?:(?:\+|00)86)?1\d{10}$/,Br=e=>Ur.test(e),kr=/^(1[1-5]|2[1-3]|3[1-7]|4[1-6]|5[0-4]|6[1-5]|7[1]|8[1-2]|9[1])\d{4}(18|19|20)\d{2}[01]\d[0123]\d{4}[\dxX]$/,zr=e=>{if(!kr.test(e))return!1;const t=Number(e.slice(6,10)),r=Number(e.slice(10,12)),n=Number(e.slice(12,14)),o=new Date(t,r-1,n);if(!(o.getFullYear()===t&&o.getMonth()+1===r&&o.getDate()===n))return!1;const i=[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2];let s=0;for(let t=0;t<17;t++)s+=Number(e.slice(t,t+1))*i[t];return["1","0","X","9","8","7","6","5","4","3","2"][s%11]===e.slice(-1)},Hr=/^(https?|ftp):\/\/([^\s/$.?#].[^\s]*)$/i,Gr=/^https?:\/\/([^\s/$.?#].[^\s]*)$/i,qr=(e,t=!1)=>(t?Hr:Gr).test(e),Vr=/^(?:(?:\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.){3}(?:\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])$/,Wr=/^(([\da-fA-F]{1,4}:){7}[\da-fA-F]{1,4}|([\da-fA-F]{1,4}:){1,7}:|([\da-fA-F]{1,4}:){1,6}:[\da-fA-F]{1,4}|([\da-fA-F]{1,4}:){1,5}(:[\da-fA-F]{1,4}){1,2}|([\da-fA-F]{1,4}:){1,4}(:[\da-fA-F]{1,4}){1,3}|([\da-fA-F]{1,4}:){1,3}(:[\da-fA-F]{1,4}){1,4}|([\da-fA-F]{1,4}:){1,2}(:[\da-fA-F]{1,4}){1,5}|[\da-fA-F]{1,4}:((:[\da-fA-F]{1,4}){1,6})|:((:[\da-fA-F]{1,4}){1,7}|:)|fe80:(:[\da-fA-F]{0,4}){0,4}%[\da-zA-Z]+|::(ffff(:0{1,4})?:)?((25[0-5]|(2[0-4]|1?\d)?\d)\.){3}(25[0-5]|(2[0-4]|1?\d)?\d)|([\da-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1?\d)?\d)\.){3}(25[0-5]|(2[0-4]|1?\d)?\d))$/i,Xr=e=>Vr.test(e),Yr=e=>Wr.test(e),Kr=/^(-?[1-9]\d*|0)$/,Jr=e=>Kr.test(e),Zr=/^-?([1-9]\d*|0)\.\d*[1-9]$/,Qr=e=>Zr.test(e),en=e=>Jr(e)||Qr(e),tn=/^\d+$/,rn=e=>tn.test(e);var nn={EMAIL_REGEX:Mr,HTTP_URL_REGEX:Gr,IPV4_REGEX:Vr,IPV6_REGEX:Wr,PHONE_REGEX:Ur,URL_REGEX:Hr,isDigit:rn,isEmail:Lr,isFloat:Qr,isIdNo:zr,isInteger:Jr,isIpV4:Xr,isIpV6:Yr,isNumerical:en,isPhone:Br,isUrl:qr},on=Object.freeze({__proto__:null,EMAIL_REGEX:Mr,HTTP_URL_REGEX:Gr,IPV4_REGEX:Vr,IPV6_REGEX:Wr,PHONE_REGEX:Ur,URL_REGEX:Hr,default:nn,isDigit:rn,isEmail:Lr,isFloat:Qr,isIdNo:zr,isInteger:Jr,isIpV4:Xr,isIpV6:Yr,isNumerical:en,isPhone:Br,isUrl:qr});function sn(e){return[...new Set(e.trim().split(""))].join("")}function an(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function ln(e,t){return new RegExp(`${an(e.trim())}\\s*([^${an(sn(e))}${an(sn(t))}\\s]*)\\s*${t.trim()}`,"g")}function cn(e,t="{",r="}"){return Array.from(e.matchAll(ln(t,r))).map((e=>E(e)?void 0:e[1]))}function un(e,t,r="{",n="}"){return e.replace(new RegExp(ln(r,n)),(function(e,r){return u(t,r)?t[r]:e}))}function dn(e,t={}){const r=Object.keys(t),n=r.map((e=>t[e]));try{return new Function(...r,`return (() => { ${e} })()`)(...n)}catch(e){throw new Error(`代码执行失败: ${e.message}`)}}var fn={escapeRegExp:an,executeInScope:dn,parseVarFromString:cn,replaceVarFromString:un,uniqueSymbol:sn},pn=Object.freeze({__proto__:null,default:fn,escapeRegExp:an,executeInScope:dn,parseVarFromString:cn,replaceVarFromString:un,uniqueSymbol:sn});function hn(e,t=new WeakMap){if(null===e||"object"!=typeof e)return e;if(t.has(e))return t.get(e);if(e instanceof ArrayBuffer){const r=new ArrayBuffer(e.byteLength);return new Uint8Array(r).set(new Uint8Array(e)),t.set(e,r),r}if(ArrayBuffer.isView(e)){return new(0,e.constructor)(hn(e.buffer,t),e.byteOffset,e.length)}if(e instanceof Date){const r=new Date(e.getTime());return t.set(e,r),r}if(e instanceof RegExp){const r=new RegExp(e.source,e.flags);return r.lastIndex=e.lastIndex,t.set(e,r),r}if(e instanceof Map){const r=new Map;return t.set(e,r),e.forEach(((e,n)=>{r.set(hn(n,t),hn(e,t))})),r}if(e instanceof Set){const r=new Set;return t.set(e,r),e.forEach((e=>{r.add(hn(e,t))})),r}if(Array.isArray(e)){const r=new Array(e.length);t.set(e,r);for(let n=0,o=e.length;n<o;n++)n in e&&(r[n]=hn(e[n],t));const n=Object.getOwnPropertyDescriptors(e);for(const e of Reflect.ownKeys(n))Object.defineProperty(r,e,{...n[e],value:hn(n[e].value,t)});return r}const r=Object.create(Object.getPrototypeOf(e));t.set(e,r);const n=Object.getOwnPropertyDescriptors(e);for(const e of Reflect.ownKeys(n)){const o=n[e];"value"in o?o.value=hn(o.value,t):(o.get&&(o.get=hn(o.get,t)),o.set&&(o.set=hn(o.set,t))),Object.defineProperty(r,e,o)}return r}var gn={cloneDeep:hn},mn=Object.freeze({__proto__:null,cloneDeep:hn,default:gn});const yn={MAP:"[object Map]",SET:"[object Set]",DATE:"[object Date]",REGEXP:"[object RegExp]",SYMBOL:"[object Symbol]",ARRAY_BUFFER:"[object ArrayBuffer]",DATA_VIEW:"[object DataView]",ARGUMENTS:"[object Arguments]"},{toString:bn,hasOwnProperty:An}=Object.prototype,Sn=e=>bn.call(e);function wn(e,t){return En(e,t)}function En(e,t,r=void 0){if(e===t)return!0;if(e!=e&&t!=t)return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;if(e.constructor!==t.constructor)return!1;if(r||(r=new WeakMap),r.has(e))return r.get(e)===t;r.set(e,t);const n=Sn(e);if(n!==Sn(t))return!1;let o=!1;switch(n){case yn.DATE:o=+e==+t;break;case yn.REGEXP:o=""+e==""+t;break;case yn.SYMBOL:o=Symbol.prototype.valueOf.call(e)===Symbol.prototype.valueOf.call(t);break;case yn.ARRAY_BUFFER:o=_n(e,t);break;case yn.DATA_VIEW:s=t,o=(i=e).byteLength===s.byteLength&&i.byteOffset===s.byteOffset&&_n(i.buffer,s.buffer);break;case yn.MAP:o=function(e,t,r){if(e.size!==t.size)return!1;for(const[n,o]of e){const e=t.get(n);if(void 0===e&&!t.has(n))return!1;if(!En(o,e,r))return!1}return!0}(e,t,r);break;case yn.SET:o=function(e,t,r){if(e.size!==t.size)return!1;for(const n of e){if(t.has(n))continue;let e=!1;for(const o of t)if(En(n,o,r)){e=!0;break}if(!e)return!1}return!0}(e,t,r);break;case yn.ARGUMENTS:default:o=Array.isArray(e)||ArrayBuffer.isView(e)?function(e,t,r){const n=e.length;if(n!==t.length)return!1;let o=n;for(;o--;)if(!En(e[o],t[o],r))return!1;return!0}(e,t,r):function(e,t,r){const n=Reflect.ownKeys(e),o=Reflect.ownKeys(t);if(n.length!==o.length)return!1;for(let o=0;o<n.length;o++){const i=n[o];if(!An.call(t,i)||!En(e[i],t[i],r))return!1}return!0}(e,t,r)}var i,s;return o}function _n(e,t){if(e.byteLength!==t.byteLength)return!1;const r=new Uint8Array(e),n=new Uint8Array(t);let o=e.byteLength;for(;o--;)if(r[o]!==n[o])return!1;return!0}var xn={isEqual:wn},vn=Object.freeze({__proto__:null,default:xn,isEqual:wn});class Cn{static encode(e,t="unicode",r=!1){const n=[];for(const o of e){const e=o.codePointAt(0);"html"===t&&this.ENTITY_MAP[o]?n.push(this.ENTITY_MAP[o]):!r&&e>=32&&e<=126?n.push(o):"unicode"===t?e>65535?n.push(`\\u{${e.toString(16).toUpperCase()}}`):n.push(`\\u${e.toString(16).toUpperCase().padStart(4,"0")}`):n.push(`&#${e};`)}return n.join("")}static decode(e,t=!1){if(!e)return"";let r=e.replace(/\\u(?:\{([0-9a-fA-F]+)\}|([0-9a-fA-F]{4}))/g,((e,t,r)=>String.fromCodePoint(parseInt(t||r,16)))).replace(/&#(x?)([0-9a-fA-F]+);/g,((e,t,r)=>String.fromCodePoint(parseInt(r,t?16:10)))).replace(/&[a-z0-9]+;/gi,(e=>this.NAMED_ENTITIES[e]||e));return t&&(r=r.replace(/\u00A0/g," ")),r}}Cn.ENTITY_MAP={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},Cn.NAMED_ENTITIES={"&quot;":'"',"&amp;":"&","&lt;":"<","&gt;":">","&nbsp;":" ","&copy;":"©","&trade;":"™","&reg;":"®"};var Tn={UnicodeToolkit:Cn},jn={...a,...Pe,...De,...qe,...Ce,...pt,...te,...Ye,...et,...ge,...z,...st,...bt,...xt,...Tt,...It,...Bt,...Kt,...nr,...ar,...Ar,...Cr,...$r,...on,...pn,...mn,...vn,...Object.freeze({__proto__:null,UnicodeToolkit:Cn,default:Tn})};e.EMAIL_REGEX=Mr,e.HEX_POOL=kt,e.HTTP_URL_REGEX=Gr,e.IPV4_REGEX=Vr,e.IPV6_REGEX=Wr,e.PHONE_REGEX=Ur,e.STRING_ARABIC_NUMERALS=oe,e.STRING_LOWERCASE_ALPHA=ie,e.STRING_POOL=$t,e.STRING_UPPERCASE_ALPHA=se,e.UNIQUE_NUMBER_SAFE_LENGTH=18,e.URL_REGEX=Hr,e.UnicodeToolkit=Cn,e.add=wr,e.addClass=be,e.adjustDate=He,e.arrayEach=t,e.arrayEachAsync=r,e.arrayInsertBefore=n,e.arrayLike=d,e.arrayRemove=o,e.asyncMap=gt,e.b64decode=Or,e.b64encode=Ir,e.chooseLocalFile=St,e.cloneDeep=hn,e.compressImg=Et,e.cookieDel=Oe,e.cookieGet=Ne,e.cookieSet=Re,e.copyText=Te,e.crossOriginDownload=ut,e.dateParse=Ue,e.dateToEnd=ke,e.dateToStart=Be,e.debounce=jt,e.default=jn,e.diffArray=i,e.divide=_r,e.downloadBlob=ct,e.downloadData=dt,e.downloadHref=lt,e.downloadURL=at,e.escapeRegExp=an,e.executeInScope=dn,e.fallbackCopyText=je,e.filterDeep=fr,e.findDeep=dr,e.flatTree=mr,e.forEachDeep=ur,e.formatDate=ze,e.formatMoney=Xt,e.formatNumber=Xt,e.formatTree=gr,e.fuzzySearchTree=yr,e.genCanvasWM=vt,e.getComputedCssVal=Ee,e.getGlobal=Rt,e.getPathById=hr,e.getStrWidthPx=_e,e.getStyle=we,e.hasClass=me,e.humanFileSize=Wt,e.is=p,e.isArguments=$,e.isArray=x,e.isArrayBuffer=D,e.isAsyncFunction=M,e.isBigInt=y,e.isBoolean=g,e.isDataView=I,e.isDate=T,e.isDigit=rn,e.isEmail=Lr,e.isEmpty=U,e.isEqual=wn,e.isError=j,e.isFloat=Qr,e.isFunction=v,e.isIdNo=zr,e.isInteger=Jr,e.isIpV4=Xr,e.isIpV6=Yr,e.isJsonString=L,e.isMap=N,e.isNaN=C,e.isNodeList=B,e.isNull=S,e.isNullOrUnDef=E,e.isNullish=E,e.isNumber=b,e.isNumerical=en,e.isObject=_,e.isPhone=Br,e.isPlainObject=G,e.isPrimitive=w,e.isPromise=P,e.isRegExp=F,e.isSet=R,e.isString=h,e.isSymbol=m,e.isTypedArray=O,e.isUndefined=A,e.isUrl=qr,e.isValidDate=$e,e.mapDeep=pr,e.multiply=Sr,e.numberAbbr=Vt,e.numberToHex=qt,e.objectAssign=J,e.objectEach=q,e.objectEachAsync=V,e.objectFill=Z,e.objectGet=Q,e.objectHas=u,e.objectMap=W,e.objectMerge=J,e.objectOmit=Y,e.objectPick=X,e.once=Pt,e.parseQueryParams=pe,e.parseVarFromString=cn,e.pathJoin=We,e.pathNormalize=Ve,e.qsParse=Ke,e.qsStringify=Ze,e.randomNumber=Dt,e.randomString=Mt,e.randomUuid=Lt,e.removeClass=Ae,e.replaceVarFromString=un,e.safeAwait=mt,e.searchTreeById=hr,e.select=xe,e.setGlobal=Nt,e.setStyle=Se,e.stringAssign=ue,e.stringCamelCase=re,e.stringEscapeHtml=de,e.stringFill=fe,e.stringFormat=le,e.stringKebabCase=ne,e.strip=xr,e.subtract=Er,e.supportCanvas=At,e.throttle=Ft,e.tooltipEvent=ir,e.typeIs=f,e.uniqueNumber=Qt,e.uniqueString=tr,e.uniqueSymbol=sn,e.urlDelParams=ot,e.urlParse=tt,e.urlSetParams=nt,e.urlStringify=rt,e.wait=ht,e.weAtob=Rr,e.weBtoa=Nr,Object.defineProperty(e,"__esModule",{value:!0})}));
6
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).sculpJs={})}(this,(function(e){"use strict";function t(e,t,r=!1){if(r)for(let r=e.length-1;r>=0;r--){const n=t(e[r],r,e);if(!1===n)break}else for(let r=0,n=e.length;r<n;r++){const n=t(e[r],r,e);if(!1===n)break}e=null}async function r(e,t,r=!1){if(r)for(let r=e.length-1;r>=0&&!1!==await t(e[r],r);r--);else for(let r=0,n=e.length;r<n&&!1!==await t(e[r],r);r++);}function n(e,t,r){if(t===r||t+1===r)return;const[n]=e.splice(t,1),o=r<t?r:r-1;e.splice(o,0,n)}function o(e,r){const n=[],o=r;return t(e,((e,t)=>{o(e,t)&&n.push(t)})),n.forEach(((t,r)=>{e.splice(t-r,1)})),e}function i(e,t,r){const n=e=>{if(r)return r(e);if("string"==typeof e||"number"==typeof e||"symbol"==typeof e)return e;throw new Error("diffArray: getKey is required when item is not a primitive value")},o=new Map,i=new Map;for(const t of e)o.set(n(t),t);for(const e of t)i.set(n(e),e);const s=[],a=[];for(const[e,t]of i)o.has(e)||s.push(t);for(const[e,t]of o)i.has(e)||a.push(t);return{added:s,removed:a}}var s={arrayEach:t,arrayEachAsync:r,arrayInsertBefore:n,arrayRemove:o,diffArray:i},a=Object.freeze({__proto__:null,arrayEach:t,arrayEachAsync:r,arrayInsertBefore:n,arrayRemove:o,default:s,diffArray:i});const{toString:l,hasOwnProperty:c}=Object.prototype;function u(e,t){return c.call(e,t)}function d(e){return!!x(e)||(!!h(e)||!!_(e)&&u(e,"length"))}function f(e){return l.call(e).slice(8,-1)}function p(e,t){return f(e)===t}const h=e=>"string"==typeof e,g=e=>"boolean"==typeof e,m=e=>"symbol"==typeof e,y=e=>"bigint"==typeof e,b=e=>"number"==typeof e&&!Number.isNaN(e),A=e=>void 0===e,S=e=>null===e,w=e=>null===e||"object"!=typeof e;function E(e){return A(e)||S(e)}const _=e=>"Object"===f(e),x=e=>Array.isArray(e),v=e=>"function"==typeof e,C=e=>Number.isNaN(e),T=e=>"Date"===f(e),j=e=>"Error"===f(e),F=e=>"RegExp"===f(e),P=e=>"Promise"===f(e),N=e=>"Map"===f(e),R=e=>"Set"===f(e),O=e=>{const t=f(e);return"Int8Array"===t||"Uint8Array"===t||"Uint8ClampedArray"===t||"Int16Array"===t||"Uint16Array"===t||"Int32Array"===t||"Uint32Array"===t||"Float32Array"===t||"Float64Array"===t||"BigInt64Array"===t||"BigUint64Array"===t},I=e=>"DataView"===f(e),D=e=>"ArrayBuffer"===f(e),$=e=>"Arguments"===f(e),M=e=>"AsyncFunction"===f(e);function L(e){try{const t=JSON.parse(e);return"object"==typeof t&&null!==t&&t}catch(e){return!1}}function U(e){if(E(e)||Number.isNaN(e))return!0;const t=f(e);return d(e)||"Arguments"===t?!e.length:"Set"===t||"Map"===t?!e.size:!Object.keys(e).length}function B(e){return!A(NodeList)&&NodeList.prototype.isPrototypeOf(e)}var k={typeIs:f,is:p,TypeMapping:void 0,TypeTag:void 0,objectHas:u,arrayLike:d,isString:h,isBoolean:g,isSymbol:m,isBigInt:y,isNumber:b,isUndefined:A,isNull:S,isPrimitive:w,isNullOrUnDef:E,isNullish:E,isObject:_,isArray:x,isFunction:v,isNaN:C,isDate:T,isError:j,isRegExp:F,isPromise:P,isMap:N,isSet:R,isTypedArray:O,isDataView:I,isArrayBuffer:D,isArguments:$,isAsyncFunction:M,isJsonString:L,isEmpty:U,isNodeList:B},z=Object.freeze({__proto__:null,arrayLike:d,default:k,is:p,isArguments:$,isArray:x,isArrayBuffer:D,isAsyncFunction:M,isBigInt:y,isBoolean:g,isDataView:I,isDate:T,isEmpty:U,isError:j,isFunction:v,isJsonString:L,isMap:N,isNaN:C,isNodeList:B,isNull:S,isNullOrUnDef:E,isNullish:E,isNumber:b,isObject:_,isPrimitive:w,isPromise:P,isRegExp:F,isSet:R,isString:h,isSymbol:m,isTypedArray:O,isUndefined:A,objectHas:u,typeIs:f});const H=f,G=e=>{if(!_(e))return!1;const t=Object.getPrototypeOf(e);return!t||t===Object.prototype};function q(e,t){for(const r in e)if(u(e,r)&&!1===t(e[r],r))break;e=null}async function V(e,t){for(const r in e)if(u(e,r)&&!1===await t(e[r],r))break}function W(e,t){const r={};for(const n in e)u(e,n)&&(r[n]=t(e[n],n));return e=null,r}function X(e,t){const r={};return q(e,((e,n)=>{t.includes(n)&&(r[n]=e)})),e=null,r}function Y(e,t){const r={};return q(e,((e,n)=>{t.includes(n)||(r[n]=e)})),e=null,r}const K=(e,t,r)=>{if(A(r))return t;if(H(t)!==H(r))return x(r)?K(e,[],r):_(r)?K(e,{},r):r;if(G(r)){const n=e.get(r);return n||(e.set(r,t),q(r,((r,n)=>{t[n]=K(e,t[n],r)})),t)}if(x(r)){const n=e.get(r);return n||(e.set(r,t),r.forEach(((r,n)=>{t[n]=K(e,t[n],r)})),t)}return r};function J(e,...t){const r=new Map;for(let n=0,o=t.length;n<o;n++){const o=t[n];e=K(r,e,o)}return r.clear(),e}function Z(e,t,r){const n=r||((e,t,r)=>void 0===e[r]);return q(t,((r,o)=>{n(e,t,o)&&(e[o]=r)})),e}function Q(e,t,r=!1){const n=(t=(t=t.replace(/\[(\w+)\]/g,".$1")).replace(/^\./,"")).split(".");let o=e,i=0;for(let e=n.length;i<e-1;++i){const e=n[i];if(b(Number(e))&&Array.isArray(o))o=o[e];else{if(!_(o)||!u(o,e)){if(o=void 0,r)throw new Error("[Object] objectGet path 路径不正确");break}o=o[e]}}return{p:o,k:o?n[i]:void 0,v:o?o[n[i]]:void 0}}var ee={isPlainObject:G,objectEach:q,objectEachAsync:V,objectMap:W,objectPick:X,objectOmit:Y,objectAssign:J,objectMerge:J,objectFill:Z,objectGet:Q},te=Object.freeze({__proto__:null,default:ee,isPlainObject:G,objectAssign:J,objectEach:q,objectEachAsync:V,objectFill:Z,objectGet:Q,objectMap:W,objectMerge:J,objectOmit:Y,objectPick:X});function re(e,t){let r=e;t&&(r=e.replace(/^./,(e=>e.toUpperCase())));return r.replace(/[\s_-](.)/g,((e,t)=>t.toUpperCase()))}function ne(e,t="-"){return e.replace(/^./,(e=>e.toLowerCase())).replace(/[A-Z]/g,(e=>`${t}${e.toLowerCase()}`))}const oe="0123456789",ie="abcdefghijklmnopqrstuvwxyz",se="ABCDEFGHIJKLMNOPQRSTUVWXYZ",ae=/%[%sdo]/g;function le(e,...t){let r=0;return[e.replace(ae,(e=>{const n=t[r++];switch(e){case"%%":return r--,"%";default:case"%s":return String(n);case"%d":return String(Number(n));case"%o":return JSON.stringify(n)}})),...t.splice(r).map(String)].join(" ")}const ce=/\${(.*?)}/g,ue=(e,t)=>e.replace(ce,((e,r)=>((e,t)=>{try{return new Function(`with(arguments[0]){if(arguments[0].${e} === undefined)throw "";return String(arguments[0].${e})}`)(t)}catch(t){throw new SyntaxError(`无法执行表达式:${e}`)}})(r,t))),de=e=>{const t={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"};return e.replace(/[&<>"]/g,(e=>t[e]))},fe=(e,t=" ")=>new Array(e).fill(t).join("");function pe(e=location.search){const t={};return Array.from(e.matchAll(/[&?]?([^=&]+)=?([^=&]*)/g)).forEach((e=>{const r=e[1],n=e[2],o=t[r];o?Array.isArray(o)?o.push(n):t[r]=[o,n]:t[r]=n})),t}var he={stringCamelCase:re,stringKebabCase:ne,STRING_ARABIC_NUMERALS:oe,STRING_LOWERCASE_ALPHA:ie,STRING_UPPERCASE_ALPHA:se,stringFormat:le,stringAssign:ue,stringEscapeHtml:de,stringFill:fe,parseQueryParams:pe},ge=Object.freeze({__proto__:null,STRING_ARABIC_NUMERALS:oe,STRING_LOWERCASE_ALPHA:ie,STRING_UPPERCASE_ALPHA:se,default:he,parseQueryParams:pe,stringAssign:ue,stringCamelCase:re,stringEscapeHtml:de,stringFill:fe,stringFormat:le,stringKebabCase:ne});function me(e,t){if(-1!==t.indexOf(" "))throw new Error("className should not contain space.");return e.classList.contains(t)}const ye=(e,t)=>{e.split(/\s+/g).forEach(t)};function be(e,t){ye(t,(t=>e.classList.add(t)))}function Ae(e,t){ye(t,(t=>e.classList.remove(t)))}const Se=(e,t,r)=>{_(t)?q(t,((t,r)=>{Se(e,r,t)})):e.style.setProperty(ne(t),r)};function we(e,t){return getComputedStyle(e).getPropertyValue(t)}function Ee(e,t,r=!0){const n=getComputedStyle(e).getPropertyValue(t)??"";return r?Number(n.replace(/([0-9]*)(.*)/g,"$1")):n}function _e(e,t=14,r=!0){let n=0;if(console.assert(h(e),`${e} 不是有效的字符串`),h(e)&&e.length>0){const o="getStrWidth1494304949567";let i=document.querySelector(`#${o}`);if(!i){const r=document.createElement("span");r.id=o,r.style.fontSize=t+"px",r.style.whiteSpace="nowrap",r.style.visibility="hidden",r.style.position="absolute",r.style.top="-9999px",r.style.left="-9999px",r.textContent=e,document.body.appendChild(r),i=r}i.textContent=e,n=i.offsetWidth,r&&i.remove()}return n}function xe(e){let t;if("SELECT"===e.nodeName)e.focus(),t=e.value;else if("INPUT"===e.nodeName||"TEXTAREA"===e.nodeName){const r=e.hasAttribute("readonly");r||e.setAttribute("readonly",""),e.select(),e.setSelectionRange(0,e.value.length),r||e.removeAttribute("readonly"),t=e.value}else{e.hasAttribute("contenteditable")&&e.focus();const r=window.getSelection(),n=document.createRange();n.selectNodeContents(e),r.removeAllRanges(),r.addRange(n),t=r.toString()}return t}var ve={hasClass:me,addClass:be,removeClass:Ae,setStyle:Se,getStyle:we,getComputedCssVal:Ee,getStrWidthPx:_e,select:xe},Ce=Object.freeze({__proto__:null,addClass:be,default:ve,getComputedCssVal:Ee,getStrWidthPx:_e,getStyle:we,hasClass:me,removeClass:Ae,select:xe,setStyle:Se});function Te(e,t){const{successCallback:r,failCallback:n}=E(t)?{}:t;navigator.clipboard?navigator.clipboard.writeText(e).then((()=>{v(r)&&r()})).catch((r=>{je(e,t)})):je(e,t)}function je(e,t){const{successCallback:r,failCallback:n,container:o=document.body}=E(t)?{}:t;let i=function(e){const t="rtl"===document.documentElement.getAttribute("dir"),r=document.createElement("textarea");r.style.fontSize="12pt",r.style.border="0",r.style.padding="0",r.style.margin="0",r.style.position="absolute",r.style[t?"right":"left"]="-9999px";const n=window.pageYOffset||document.documentElement.scrollTop;return r.style.top=`${n}px`,r.setAttribute("readonly",""),r.value=e,r}(e);o.appendChild(i),xe(i);try{document.execCommand("copy")&&v(r)&&r()}catch(e){v(n)&&n(e)}finally{o.removeChild(i),i=null,window.getSelection()?.removeAllRanges()}}var Fe={copyText:Te,fallbackCopyText:je},Pe=Object.freeze({__proto__:null,copyText:Te,default:Fe,fallbackCopyText:je});function Ne(e){const{cookie:t}=document;if(!t)return"";const r=t.split(";");for(let t=0;t<r.length;t++){const n=r[t],[o,i=""]=n.split("=");if(o===e)return decodeURIComponent(i)}return""}function Re(e,t,r){const n=[],o="expires";if(n.push([e,encodeURIComponent(t)]),b(r)){const e=new Date;e.setTime(e.getTime()+r),n.push([o,e.toUTCString()])}else T(r)&&n.push([o,r.toUTCString()]);n.push(["path","/"]),document.cookie=n.map((e=>{const[t,r]=e;return`${t}=${r}`})).join(";")}const Oe=e=>Re(e,"",-1);var Ie={cookieSet:Re,cookieGet:Ne,cookieDel:Oe},De=Object.freeze({__proto__:null,cookieDel:Oe,cookieGet:Ne,cookieSet:Re,default:Ie});const $e=e=>T(e)&&!C(e.getTime()),Me=e=>{if(!h(e))return;const t=e.replace(/-/g,"/");return new Date(t)},Le=e=>{if(!h(e))return;const t=/([+-])(\d\d)(\d\d)$/,r=t.exec(e);if(!r)return;const n=e.replace(t,"Z"),o=new Date(n);if(!$e(o))return;const[,i,s,a]=r,l=parseInt(s,10),c=parseInt(a,10),u=(e,t)=>"+"===i?e-t:e+t;return o.setHours(u(o.getHours(),l)),o.setMinutes(u(o.getMinutes(),c)),o};function Ue(e){const t=new Date(e);if($e(t))return t;const r=Me(e);if($e(r))return r;const n=Le(e);if($e(n))return n;throw new SyntaxError(`${e.toString()} 不是一个合法的日期描述`)}function Be(e){const t=Ue(e);return new Date(t.getFullYear(),t.getMonth(),t.getDate(),0,0,0,0)}function ke(e){const t=Be(e);return t.setDate(t.getDate()+1),Ue(t.getTime()-1)}function ze(e,t="YYYY-MM-DD HH:mm:ss"){const r=Ue(e);let n,o=t;const i={"Y+":`${r.getFullYear()}`,"y+":`${r.getFullYear()}`,"M+":`${r.getMonth()+1}`,"D+":`${r.getDate()}`,"d+":`${r.getDate()}`,"H+":`${r.getHours()}`,"m+":`${r.getMinutes()}`,"s+":`${r.getSeconds()}`,"S+":`${r.getMilliseconds()}`,"w+":["周日","周一","周二","周三","周四","周五","周六"][r.getDay()]};for(const e in i)n=new RegExp("("+e+")").exec(o),n&&(o=o.replace(n[1],1===n[1].length?i[e]:i[e].padStart(n[1].length,"0")));return o}function He(e,t={}){const{format:r,returnDate:n=!1,years:o=0,months:i=0,weeks:s=0,days:a=0,hours:l=0,minutes:c=0,seconds:u=0,milliseconds:d=0}=t,f=Ue(e),p=new Date(f),h=f.getDate(),g=h===new Date(f.getFullYear(),f.getMonth()+1,0).getDate();if(p.setFullYear(p.getFullYear()+o),0!==i){const e=p.getMonth()+i,t=new Date(p.getFullYear(),e+1,0).getDate();p.setDate(1),p.setMonth(e),g||h>t?p.setDate(t):p.setDate(h)}if(0===a&&0===s||p.setDate(p.getDate()+a+7*s),p.setHours(p.getHours()+l),p.setMinutes(p.getMinutes()+c),p.setSeconds(p.getSeconds()+u),p.setMilliseconds(p.getMilliseconds()+d),n)return p;if(r)return ze(p,r);const m=p.getFullYear(),y=String(p.getMonth()+1).padStart(2,"0"),b=String(p.getDate()).padStart(2,"0"),A=String(p.getHours()).padStart(2,"0"),S=String(p.getMinutes()).padStart(2,"0"),w=String(p.getSeconds()).padStart(2,"0");if(t.hasOwnProperty("hours")||t.hasOwnProperty("minutes")||t.hasOwnProperty("seconds")||t.hasOwnProperty("milliseconds")){if(t.hasOwnProperty("milliseconds")){return`${m}-${y}-${b} ${A}:${S}:${w}.${String(p.getMilliseconds()).padStart(3,"0")}`}return t.hasOwnProperty("seconds")?`${m}-${y}-${b} ${A}:${S}:${w}`:`${m}-${y}-${b} ${A}:${S}`}return`${m}-${y}-${b}`}var Ge={isValidDate:$e,dateParse:Ue,dateToStart:Be,dateToEnd:ke,formatDate:ze,adjustDate:He,calculateDate:He},qe=Object.freeze({__proto__:null,adjustDate:He,dateParse:Ue,dateToEnd:ke,dateToStart:Be,default:Ge,formatDate:ze,isValidDate:$e});const Ve=e=>{const t=e.replace(/\\/g,"/").replace(/\/{2,}/g,"/").replace(/\.{3,}/g,"..").replace(/\/\.\//g,"/").split("/").map((e=>e.trim())),r=e=>".."===e,n=[];let o=!1;const i=e=>{n.push(e)};return t.forEach((e=>{const t=(e=>"."===e)(e),s=r(e);return o?t?void 0:s?(()=>{if(0===n.length)return;const e=n[n.length-1];r(e)?n.push(".."):n.pop()})():void i(e):(i(e),void(o=!t&&!s))})),n.join("/")},We=(e,...t)=>Ve([e,...t].join("/"));var Xe={pathJoin:We,pathNormalize:Ve},Ye=Object.freeze({__proto__:null,default:Xe,pathJoin:We,pathNormalize:Ve});function Ke(e){const t=new URLSearchParams(e),r={};for(const[e,n]of t.entries())A(r[e])?r[e]=n:x(r[e])||(r[e]=t.getAll(e));return r}const Je=e=>h(e)?e:b(e)?String(e):g(e)?e?"true":"false":T(e)?e.toISOString():null;function Ze(e,t=Je){const r=new URLSearchParams;return q(e,((e,n)=>{if(x(e))e.forEach((e=>{const o=t(e);null!==o&&r.append(n.toString(),o)}));else{const o=t(e);if(null===o)return;r.set(n.toString(),o)}})),r.toString()}var Qe={qsParse:Ke,qsStringify:Ze},et=Object.freeze({__proto__:null,default:Qe,qsParse:Ke,qsStringify:Ze});const tt=(e,t=!0)=>{let r=null;v(URL)&&t?r=new URL(e):(r=document.createElement("a"),r.href=e);const{protocol:n,username:o,password:i,host:s,port:a,hostname:l,hash:c,search:u,pathname:d}=r,f=We("/",d),p=o&&i?`${o}:${i}`:"",h=u.replace(/^\?/,"");return r=null,{protocol:n,auth:p,username:o,password:i,host:s,port:a,hostname:l,hash:c,search:u,searchParams:Ke(h),query:h,pathname:f,path:`${f}${u}`,href:e}},rt=e=>{const{protocol:t,auth:r,host:n,pathname:o,searchParams:i,hash:s}=e,a=r?`${r}@`:"",l=Ze(i),c=l?`?${l}`:"";let u=s.replace(/^#/,"");return u=u?"#"+u:"",`${t}//${a}${n}${o}${c}${u}`},nt=(e,t)=>{const r=tt(e);return Object.assign(r.searchParams,t),rt(r)},ot=(e,t)=>{const r=tt(e);return t.forEach((e=>delete r.searchParams[e])),rt(r)};var it={urlParse:tt,urlStringify:rt,urlSetParams:nt,urlDelParams:ot},st=Object.freeze({__proto__:null,default:it,urlDelParams:ot,urlParse:tt,urlSetParams:nt,urlStringify:rt});function at(e,t){window.open(t?nt(e,t):e)}function lt(e,t,r){let n=document.createElement("a");n.download=t,n.style.display="none",n.href=e,document.body.appendChild(n),n.click(),setTimeout((()=>{document.body.removeChild(n),n=null,v(r)&&r()}))}function ct(e,t,r){const n=URL.createObjectURL(e);lt(n,t),setTimeout((()=>{URL.revokeObjectURL(n),v(r)&&r()}))}function ut(e,t,r){const{successCode:n=200,successCallback:o,failCallback:i}=E(r)?{successCode:200,successCallback:void 0,failCallback:void 0}:r,s=new XMLHttpRequest;s.open("GET",e,!0),s.responseType="blob",s.onload=function(){if(s.status===n)ct(s.response,t,o);else if(v(i)){const e=s.status,t=s.getResponseHeader("Content-Type");if(h(t)&&t.includes("application/json")){const t=new FileReader;t.onload=()=>{i({status:e,response:t.result})},t.readAsText(s.response)}else i(s)}},s.onerror=e=>{v(i)&&i({status:0,code:"ERROR_CONNECTION_REFUSED"})},s.send()}function dt(e,t,r,n){if(r=r.replace(`.${t}`,"")+`.${t}`,"json"===t){ct(new Blob([JSON.stringify(e,null,4)]),r)}else{if(!n||!n.length)throw new Error("未传入表头数据");if(!Array.isArray(e))throw new Error("data error! expected array!");const o=n.join(",")+"\n";let i="";e.forEach((e=>{i+=Object.values(e).join(",\t")+",\n"}));lt("data:"+{csv:"text/csv",xls:"application/vnd.ms-excel",xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}[t]+";charset=utf-8,\ufeff"+encodeURIComponent(o+i),r)}}var ft={downloadURL:at,downloadHref:lt,downloadBlob:ct,crossOriginDownload:ut,downloadData:dt},pt=Object.freeze({__proto__:null,crossOriginDownload:ut,default:ft,downloadBlob:ct,downloadData:dt,downloadHref:lt,downloadURL:at});function ht(e=1){return new Promise((t=>setTimeout(t,e)))}function gt(e,t,r=1/0){return new Promise(((n,o)=>{const i=e[Symbol.iterator](),s=Math.min(e.length,r),a=[];let l,c=0,u=0;const d=()=>{if(l)return o(l);const r=i.next();if(r.done)return void(c===e.length&&n(a));const s=u++;t(r.value,s,e).then((e=>{c++,a[s]=e,d()})).catch((e=>{l=e,d()}))};for(let e=0;e<s;e++)d()}))}function mt(e,t){return e.then((e=>[null,e])).catch((e=>{if(t){return[Object.assign({},e,t),void 0]}return[e,void 0]}))}var yt={wait:ht,asyncMap:gt,safeAwait:mt},bt=Object.freeze({__proto__:null,asyncMap:gt,default:yt,safeAwait:mt,wait:ht});function At(){return!!document.createElement("canvas").getContext}function St(e,t){let r=document.createElement("input");r.setAttribute("id",String(Date.now())),r.setAttribute("type","file"),r.setAttribute("style","visibility:hidden"),r.setAttribute("accept",e),document.body.appendChild(r),r.click(),r.onchange=e=>{t(e.target.files),setTimeout((()=>{document.body.removeChild(r),r=null}))}}function wt({maxWidth:e,maxHeight:t,originWidth:r,originHeight:n}){let o=r,i=n;return(r>e||n>t)&&(r/n>e/t?(o=e,i=Math.round(e*(n/r))):(i=t,o=Math.round(t*(r/n)))),{width:o,height:i}}function Et(e,t={mime:"image/jpeg",minFileSizeKB:50}){if(!(e instanceof File||e instanceof FileList))throw new Error(`${e} require be File or FileList`);if(!At())throw new Error("Current runtime environment not support Canvas");const{quality:r,mime:n="image/jpeg",maxSize:o,minFileSizeKB:i=50}=_(t)?t:{};let s,a=r;if(r)a=r;else if(e instanceof File){const t=+parseInt((e.size/1024).toFixed(2));a=t<i?1:t<1024?.85:t<5120?.8:.75}return b(o)&&(s=o>=1200?o:1200),e instanceof FileList?Promise.all(Array.from(e).map((e=>Et(e,{maxSize:s,mime:n,quality:a})))):e instanceof File?new Promise((t=>{const r=[...e.name.split(".").slice(0,-1),{"image/webp":"webp","image/jpeg":"jpg","image/png":"png"}[n]].join("."),o=+parseInt((e.size/1024).toFixed(2));if(o<i)t({file:e});else{const i=new FileReader;i.onload=({target:{result:i}})=>{const l=new Image;l.onload=()=>{const c=document.createElement("canvas"),u=c.getContext("2d"),d=l.width,f=l.height,{width:p,height:h}=function({sizeKB:e,maxSize:t,originWidth:r,originHeight:n}){let o=r,i=n;if(b(t)){const{width:e,height:s}=wt({maxWidth:t,maxHeight:t,originWidth:r,originHeight:n});o=e,i=s}else if(e<500){const e=1200,t=1200,{width:s,height:a}=wt({maxWidth:e,maxHeight:t,originWidth:r,originHeight:n});o=s,i=a}else if(e<5120){const e=1400,t=1400,{width:s,height:a}=wt({maxWidth:e,maxHeight:t,originWidth:r,originHeight:n});o=s,i=a}else if(e<10240){const e=1600,t=1600,{width:s,height:a}=wt({maxWidth:e,maxHeight:t,originWidth:r,originHeight:n});o=s,i=a}else if(10240<=e){const e=r>15e3?8192:r>1e4?4096:2048,t=n>15e3?8192:n>1e4?4096:2048,{width:s,height:a}=wt({maxWidth:e,maxHeight:t,originWidth:r,originHeight:n});o=s,i=a}return{width:o,height:i}}({sizeKB:o,maxSize:s,originWidth:d,originHeight:f});c.width=p,c.height=h,u.clearRect(0,0,p,h),u.drawImage(l,0,0,p,h);const g=c.toDataURL(n,a),m=atob(g.split(",")[1]);let y=m.length;const A=new Uint8Array(new ArrayBuffer(y));for(;y--;)A[y]=m.charCodeAt(y);const S=new File([A],r,{type:n});t({file:S,bufferArray:A,origin:e,beforeSrc:i,afterSrc:g,beforeKB:o,afterKB:Number((Number(S.size)/1024).toFixed(2))})},l.src=i},i.readAsDataURL(e)}})):Promise.resolve(null)}var _t={supportCanvas:At,chooseLocalFile:St,compressImg:Et},xt=Object.freeze({__proto__:null,chooseLocalFile:St,compressImg:Et,default:_t,supportCanvas:At});function vt(e="请勿外传",t){const{rootContainer:r=document.body,width:n="300px",height:o="150px",textAlign:i="center",textBaseline:s="middle",font:a="20px PingFangSC-Medium,PingFang SC",fillStyle:l="rgba(189, 177, 167, .3)",rotate:c=-20,zIndex:u=2147483647,watermarkId:d="__wm"}=E(t)?{}:t,f=h(r)?document.querySelector(r):r;if(!f)throw new Error(`${r} is not valid Html Element or element selector`);const p=document.createElement("canvas");p.setAttribute("width",n),p.setAttribute("height",o);const g=p.getContext("2d");g.textAlign=i,g.textBaseline=s,g.font=a,g.fillStyle=l,g.rotate(Math.PI/180*c),g.fillText(e,parseFloat(n)/4,parseFloat(o)/2);const m=p.toDataURL(),y=document.querySelector(`#${d}`),b=y||document.createElement("div"),A=`opacity: 1 !important; display: block !important; visibility: visible !important; position:absolute; left:0; top:0; width:100%; height:100%; z-index:${u}; pointer-events:none; background-repeat:repeat; background-image:url('${m}')`;b.setAttribute("style",A),b.setAttribute("id",d),b.classList.add("nav-height"),y||(f.style.position="relative",f.appendChild(b));const S=window.MutationObserver||window.WebKitMutationObserver;if(S){let r=new S((function(){let n=document.querySelector(`#${d}`);if(n){const{opacity:o,zIndex:i,display:s,visibility:a}=(e=>{const t=getComputedStyle(e);return{opacity:t.getPropertyValue("opacity"),zIndex:t.getPropertyValue("z-index"),display:t.getPropertyValue("display"),visibility:t.getPropertyValue("visibility")}})(n);(n&&n.getAttribute("style")!==A||!n||"1"!==o||"2147483647"!==i||"block"!==s||"visible"!==a)&&(r.disconnect(),r=null,f.removeChild(n),n=null,vt(e,t))}else r.disconnect(),r=null,vt(e,t)}));r.observe(f,{attributes:!0,subtree:!0,childList:!0})}}var Ct={genCanvasWM:vt},Tt=Object.freeze({__proto__:null,default:Ct,genCanvasWM:vt});const jt=(e,t)=>{let r,n=!1;const o=function(...o){n||(clearTimeout(r),r=setTimeout((()=>{e.call(this,...o)}),t))};return o.cancel=()=>{clearTimeout(r),n=!0},o},Ft=(e,t,r)=>{let n,o=!1,i=0;const s=function(...s){if(o)return;const a=Date.now(),l=()=>{i=a,e.call(this,...s)};if(0===i)return r?l():void(i=a);i+t-a>0?(clearTimeout(n),n=setTimeout((()=>l()),t)):l()};return s.cancel=()=>{clearTimeout(n),o=!0},s},Pt=e=>{let t,r=!1;return function(...n){return r||(r=!0,t=e.call(this,...n)),t}};function Nt(e,t){if("undefined"!=typeof globalThis)globalThis[e]=t;else if("undefined"!=typeof window)window[e]=t;else if("undefined"!=typeof global)global[e]=t;else{if("undefined"==typeof self)throw new SyntaxError("当前环境下无法设置全局属性");self[e]=t}}function Rt(e){return"undefined"!=typeof globalThis?globalThis[e]:"undefined"!=typeof window?window[e]:"undefined"!=typeof global?global[e]:"undefined"!=typeof self?self[e]:void 0}var Ot={debounce:jt,throttle:Ft,once:Pt,getGlobal:Rt,setGlobal:Nt},It=Object.freeze({__proto__:null,debounce:jt,default:Ot,getGlobal:Rt,once:Pt,setGlobal:Nt,throttle:Ft});const Dt=(e,t)=>Math.floor(Math.random()*(t-e+1)+e),$t=`${oe}${se}${ie}`,Mt=(e,t)=>{let r=0,n=$t;h(t)?(r=e,n=t):b(e)?r=e:h(e)&&(n=e);let o=Math.max(r,1),i="";const s=n.length-1;if(s<2)throw new Error("字符串池长度不能少于 2");for(;o--;){i+=n[Dt(0,s)]}return i};function Lt(){if("undefined"==typeof URL||!URL.createObjectURL||"undefined"==typeof Blob){const e="0123456789abcdef",t="xxxxxxxx-xxxx-4xxx-xxxx-xxxxxxxxxxxx";let r="";for(let n=0;n<t.length;n++){const o=Dt(0,15);r+="-"==t[n]||"4"==t[n]?t[n]:e[o]}return r}return/[^/]+$/.exec(URL.createObjectURL(new Blob).slice())[0]}var Ut={STRING_POOL:$t,randomNumber:Dt,randomString:Mt,randomUuid:Lt},Bt=Object.freeze({__proto__:null,STRING_POOL:$t,default:Ut,randomNumber:Dt,randomString:Mt,randomUuid:Lt});const kt=`${oe}${se}${ie}`,zt="undefined"!=typeof BigInt,Ht=()=>Rt("JSBI"),Gt=e=>zt?BigInt(e):Ht().BigInt(e);function qt(e,t=kt){if(t.length<2)throw new Error("进制池长度不能少于 2");if(!zt)throw new Error('需要安装 jsbi 模块并将 JSBI 设置为全局变量:\nimport JSBI from "jsbi"; window.JSBI = JSBI;');let r=Gt(e);const n=[],{length:o}=t,i=Gt(o),s=()=>{const e=Number(((e,t)=>zt?e%t:Ht().remainder(e,t))(r,i));r=((e,t)=>zt?e/t:Ht().divide(e,t))(r,i),n.unshift(t[e]),r>0&&s()};return s(),n.join("")}const Vt=(e,t,r={ratio:1e3,decimals:0,separator:" "})=>{const{ratio:n=1e3,decimals:o=0,separator:i=" "}=r,{length:s}=t;if(0===s)throw new Error("At least one unit is required");let a=Number(e),l=0;for(;a>=n&&l<s-1;)a/=n,l++;const c=a.toFixed(o),u=t[l];return String(c)+i+u};function Wt(e,t={decimals:0,si:!1,separator:" "}){const{decimals:r=0,si:n=!1,separator:o=" ",baseUnit:i,maxUnit:s}=t;let a=n?["B","kB","MB","GB","TB","PB","EB","ZB","YB"]:["Byte","KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"];if(!E(i)){const e=a.findIndex((e=>e===i));-1!==e&&(a=a.slice(e))}if(!E(s)){const e=a.findIndex((e=>e===s));-1!==e&&a.splice(e+1)}return Vt(e,a,{ratio:n?1e3:1024,decimals:r,separator:o})}function Xt(e,t){if(E(t))return parseInt(String(e)).toLocaleString();let r=0;return t>0&&(r=t),Number(Number(e).toFixed(r)).toLocaleString("en-US")}var Yt={HEX_POOL:kt,numberToHex:qt,numberAbbr:Vt,humanFileSize:Wt,formatNumber:Xt,formatMoney:Xt},Kt=Object.freeze({__proto__:null,HEX_POOL:kt,default:Yt,formatMoney:Xt,formatNumber:Xt,humanFileSize:Wt,numberAbbr:Vt,numberToHex:qt});let Jt=0,Zt=0;const Qt=(e=18)=>{const t=Date.now();e=Math.max(e,18),t!==Zt&&(Zt=t,Jt=0);const r=`${t}`;let n="";const o=e-5-13;if(o>0){n=`${Dt(10**(o-1),10**o-1)}`}const i=((e,t=2)=>String(e).padStart(t,"0"))(Jt,5);return Jt++,`${r}${n}${i}`},er=e=>e[Dt(0,e.length-1)],tr=(e,t)=>{let r=0,n=kt;h(t)?(r=e,n=t):b(e)?r=e:h(e)&&(n=e);let o=qt(Qt(),n),i=r-o.length;if(i<=0)return o;for(;i--;)o+=er(n);return o};var rr={UNIQUE_NUMBER_SAFE_LENGTH:18,uniqueNumber:Qt,uniqueString:tr},nr=Object.freeze({__proto__:null,UNIQUE_NUMBER_SAFE_LENGTH:18,default:rr,uniqueNumber:Qt,uniqueString:tr});function or(e,t,r){let n=250,o=13;const i=e.children[0];_e(t,12)<230?(i.style.maxWidth=_e(t,12)+20+50+"px",n=r.clientX+(_e(t,12)+50)-document.body.offsetWidth):(i.style.maxWidth="250px",n=r.clientX+230-document.body.offsetWidth),i.innerHTML=t,n>0&&(o-=n),e.style.top=r.clientY+23+"px",e.style.left=r.clientX+o+"px",e.style.maxWidth="250px";const s=e.getBoundingClientRect().top+i.offsetHeight-document.body.offsetHeight;s>0&&(e.style.top=r.clientY-s+"px")}const ir={handleMouseEnter:function({rootContainer:e="#root",title:t,event:r,bgColor:n="#000",color:o="#fff"}){try{const i=h(e)?document.querySelector(e):e;if(!i)throw new Error(`${e} is not valid Html Element or element selector`);let s=null;const a="style-tooltip-inner1494304949567";if(!document.querySelector(`#${a}`)){const e=document.createElement("style");e.type="text/css",e.id=a,e.innerHTML=`\n .tooltip-inner1494304949567 {\n max-width: 250px;\n padding: 3px 8px;\n color: ${o};\n text-decoration: none;\n border-radius: 4px;\n text-align: left;\n background-color: ${n};\n }\n `,document.querySelector("head").appendChild(e)}if(s=document.querySelector("#customTitle1494304949567"),s)or(s,t,r);else{const e=document.createElement("div");e.id="customTitle1494304949567",e.style.cssText="z-index: 99999999; visibility: hidden; position: absolute;",e.innerHTML='<div class="tooltip-inner1494304949567" style="word-wrap: break-word; max-width: 44px;">皮肤</div>',i.appendChild(e),s=document.querySelector("#customTitle1494304949567"),t&&(or(s,t,r),s.style.visibility="visible")}}catch(e){console.error(e.message)}},handleMouseLeave:function(e="#root"){const t=h(e)?document.querySelector(e):e;let r=document.querySelector("#customTitle1494304949567");t&&r&&(t.removeChild(r),r=null)}};var sr={tooltipEvent:ir},ar=Object.freeze({__proto__:null,default:sr,tooltipEvent:ir});const lr={keyField:"key",childField:"children",pidField:"pid"},cr={childField:"children",nameField:"name",removeEmptyChild:!1,ignoreCase:!0};function ur(e,t,r={childField:"children",reverse:!1,breadthFirst:!1,isDomNode:!1}){const{childField:n="children",reverse:o=!1,breadthFirst:i=!1,isDomNode:s=!1}=_(r)?r:{};let a=!1;const l=[],c=(r,o,c,d,f)=>{const p=t(r,o,c,e,d,f);if(!1===p)return void(a=!0);if(!0===p)return;const h=function(e,t,r){const n=e[t];return n&&(r&&B(n)||Array.isArray(n))?n:null}(r,n,s);if(h)if(i){const t=h.length;for(let n=0;n<t;n++)l.push({item:h[n],index:n,array:h,tree:e,parent:r,level:f+1})}else u(h,r,f+1)},u=(e,t,r)=>{const n=e.length;if(o)for(let o=n-1;o>=0&&!a;o--)c(e[o],o,e,t,r);else for(let o=0;o<n&&!a;o++)c(e[o],o,e,t,r)};if(u(e,null,0),i){let e=0;for(;e<l.length&&!a;){const{item:t,index:r,array:n,parent:o,level:i}=l[e++];c(t,r,n,o,i)}}e=null}function dr(e,t,r={childField:"children",reverse:!1,breadthFirst:!1,isDomNode:!1}){let n=null;return ur(e,((...e)=>{if(t(...e))return n=e[0],!1}),r),n}function fr(e,t,r={childField:"children",reverse:!1,breadthFirst:!1,isDomNode:!1}){const n=[];return ur(e,((...e)=>{t(...e)&&n.push(e[0])}),r),n}function pr(e,t,r={childField:"children",reverse:!1}){const{childField:n="children",reverse:o=!1}=_(r)?r:{};let i=!1;const s=[],a=(r,s,l,c)=>{if(o)for(let o=r.length-1;o>=0&&!i;o--){const u=r[o],d=t(u,o,r,e,s,c);if(!1===d){i=!0;break}if(!0===d)continue;const f=Y(d,[n]);l.push(f);const p=u[n];Array.isArray(p)&&(f[n]=[],a(p,u,f[n],c+1))}else for(let o=0;o<r.length&&!i;o++){const u=r[o],d=t(u,o,r,e,s,c);if(!1===d){i=!0;break}if(!0===d)continue;const f=Y(d,[n]);l.push(f);const p=u[n];Array.isArray(p)&&(f[n]=[],a(p,u,f[n],c+1))}};return a(e,null,s,0),e=null,s}function hr(e,t,r={childField:"children",keyField:"id"}){const{childField:n="children",keyField:o="id"}=_(r)?r:{},i={},s=[],a=e.length;for(let t=0;t<a;t++)s.push({node:e[t]});for(;s.length>0;){const{node:e,parentId:t,parent:r}=s.pop(),a=e[o];i[a]={node:e,parentId:t,parent:r};const l=e[n];if(Array.isArray(l)){const t=l.length;for(let r=0;r<t;r++)s.push({node:l[r],parentId:a,parent:e})}}const l=[],c=[];let u=i[t];if(!u)return[[],[]];for(l.push(t),c.push(u.node);u&&void 0!==u.parentId;){l.unshift(u.parentId);const e=i[u.parentId];if(!e)break;c.unshift(e.node),u=e}return[l,c]}function gr(e,t=lr){const{keyField:r="key",childField:n="children",pidField:o="pid"}=_(t)?t:{},i=[],s={},a=e.length;for(let t=0;t<a;t++){const n=e[t];s[n[r]]=n}for(let t=0;t<a;t++){const r=e[t],a=s[r[o]];a?(a[n]||(a[n]=[])).push(r):i.push(r)}return e=null,i}function mr(e,t=lr){const{keyField:r="key",childField:n="children",pidField:o="pid"}=_(t)?t:{},i=[],s=e=>{const t=e.length;for(let a=0;a<t;a++){const t=e[a],l={...t};delete l[n],i.push(l);const c=t[n];if(Array.isArray(c)){const e=c.map((e=>({...e,[o]:void 0!==t[r]?t[r]:e.pid})));s(e)}}};return s(e),i}function yr(e,t,r=cr){if(!u(t,"filter")&&!t.keyword)return e;const n=[],{childField:o,nameField:i,removeEmptyChild:s,ignoreCase:a}=r,l=u(t,"filter"),c=t.filter,d=t.keyword;for(let u=0,f=e.length;u<f;u++){const f=e[u],p=f[o],h=p&&p.length>0?yr(p,t,r):[];let g=!1;if(l&&c)g=c(f);else if(null!=d){const e=String(f[i]||""),t=String(d);g=a?e.toLowerCase().includes(t.toLowerCase()):e.includes(t)}if(g||h.length>0)if(o in f)if(h.length>0)n.push({...f,[o]:h});else if(s){const{[o]:e,...t}=f;n.push(t)}else n.push({...f,[o]:[]});else n.push(f)}return n}var br={forEachDeep:ur,findDeep:dr,filterDeep:fr,mapDeep:pr,getPathById:hr,searchTreeById:hr,formatTree:gr,flatTree:mr,fuzzySearchTree:yr},Ar=Object.freeze({__proto__:null,default:br,filterDeep:fr,findDeep:dr,flatTree:mr,forEachDeep:ur,formatTree:gr,fuzzySearchTree:yr,getPathById:hr,mapDeep:pr,searchTreeById:hr});const Sr=(e,t)=>{let r=0;const n=e.toString(),o=t.toString();return void 0!==n.split(".")[1]&&(r+=n.split(".")[1].length),void 0!==o.split(".")[1]&&(r+=o.split(".")[1].length),Number(n.replace(".",""))*Number(o.replace(".",""))/Math.pow(10,r)},wr=(e,t)=>{let r=0,n=0,o=0;try{r=e.toString().split(".")[1].length}catch(e){r=0}try{n=t.toString().split(".")[1].length}catch(e){n=0}return o=10**Math.max(r,n),(Sr(e,o)+Sr(t,o))/o},Er=(e,t)=>wr(e,-t),_r=(e,t)=>{let r=0,n=0,o=0,i=0;return void 0!==e.toString().split(".")[1]&&(r=e.toString().split(".")[1].length),void 0!==t.toString().split(".")[1]&&(n=t.toString().split(".")[1].length),o=Number(e.toString().replace(".","")),i=Number(t.toString().replace(".","")),o/i*Math.pow(10,n-r)};function xr(e,t=15){return+parseFloat(Number(e).toPrecision(t))}var vr={add:wr,subtract:Er,multiply:Sr,divide:_r,strip:xr},Cr=Object.freeze({__proto__:null,add:wr,default:vr,divide:_r,multiply:Sr,strip:xr,subtract:Er});const Tr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",jr=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/;function Fr(e){const t=e.length;let r="",n=0;for(;n<t-2;n+=3){const t=e.charCodeAt(n)<<16|e.charCodeAt(n+1)<<8|e.charCodeAt(n+2);r+=Tr.charAt(t>>18)+Tr.charAt(t>>12&63)+Tr.charAt(t>>6&63)+Tr.charAt(63&t)}const o=t-n;if(1===o){const t=e.charCodeAt(n);r+=Tr.charAt(t>>2)+Tr.charAt(t<<4&63)+"=="}else if(2===o){const t=e.charCodeAt(n)<<8|e.charCodeAt(n+1);r+=Tr.charAt(t>>10)+Tr.charAt(t>>4&63)+Tr.charAt(t<<2&63)+"="}return r}function Pr(e){if(e=String(e).replace(/[\t\n\f\r ]+/g,""),!jr.test(e))throw new TypeError("Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.");const t=e.length,r=e.endsWith("==")?2:e.endsWith("=")?1:0,n=new Array(.75*t-r);let o=0;for(let i=0;i<t;i+=4){const s=Tr.indexOf(e.charAt(i))<<18|Tr.indexOf(e.charAt(i+1))<<12|(63&Tr.indexOf(e.charAt(i+2)))<<6|63&Tr.indexOf(e.charAt(i+3));n[o++]=String.fromCharCode(s>>16&255),(i+2<t-r||r<2)&&(n[o++]=String.fromCharCode(s>>8&255)),(i+3<t-r||r<1)&&(n[o++]=String.fromCharCode(255&s))}return n.join("")}function Nr(e){const t=(e=String(e)).length;for(let r=0;r<t;r++)if(e.charCodeAt(r)>255)throw new TypeError("Failed to execute 'btoa' on 'Window': The string to be encoded contains characters outside of the Latin1 range.");return Fr(e)}function Rr(e){return Pr(e)}function Or(e){if(!E(Rt("atob"))&&!E(Rt("TextDecoder")))try{const t=Rt("atob")(e),r=t.length,n=new Uint8Array(r);for(let e=0;e<r;e++)n[e]=t.charCodeAt(e);return new(Rt("TextDecoder"))("utf-8").decode(n)}catch(e){}const t=Pr(e),r=t.length,n=new Uint8Array(r);for(let e=0;e<r;e++)n[e]=t.charCodeAt(e);return function(e){const t=e.length;let r="",n=0;for(;n<t;){const t=e[n++];if(t<128)r+=String.fromCharCode(t);else if(t<224){const o=63&e[n++];r+=String.fromCharCode((31&t)<<6|o)}else if(t<240){const o=63&e[n++],i=63&e[n++];r+=String.fromCharCode((15&t)<<12|o<<6|i)}else{let o=(7&t)<<18|(63&e[n++])<<12|(63&e[n++])<<6|63&e[n++];o-=65536,r+=String.fromCharCode(55296+(o>>10&1023),56320+(1023&o))}}return r}(n)}function Ir(e){if(!E(Rt("btoa"))&&!E(Rt("TextEncoder")))try{const t=(new(Rt("TextEncoder"))).encode(e);let r="";const n=t.length;for(let e=0;e<n;e++)r+=String.fromCharCode(t[e]);return Rt("btoa")(r)}catch(e){}const t=function(e){const t=e.length,r=new Uint8Array(3*t);let n=0;for(let o=0;o<t;o++){let t=e.charCodeAt(o);t<128?r[n++]=t:t<2048?(r[n++]=192|t>>6,r[n++]=128|63&t):t<55296||t>=57344?(r[n++]=224|t>>12,r[n++]=128|t>>6&63,r[n++]=128|63&t):(o++,t=65536+((1023&t)<<10|1023&e.charCodeAt(o)),r[n++]=240|t>>18,r[n++]=128|t>>12&63,r[n++]=128|t>>6&63,r[n++]=128|63&t)}return r.subarray(0,n)}(e);let r="";const n=t.length;for(let e=0;e<n;e++)r+=String.fromCharCode(t[e]);return Fr(r)}var Dr={weBtoa:Nr,weAtob:Rr,b64decode:Or,b64encode:Ir},$r=Object.freeze({__proto__:null,b64decode:Or,b64encode:Ir,default:Dr,weAtob:Rr,weBtoa:Nr});const Mr=/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/,Lr=e=>Mr.test(e),Ur=/^(?:(?:\+|00)86)?1\d{10}$/,Br=e=>Ur.test(e),kr=/^(1[1-5]|2[1-3]|3[1-7]|4[1-6]|5[0-4]|6[1-5]|7[1]|8[1-2]|9[1])\d{4}(18|19|20)\d{2}[01]\d[0123]\d{4}[\dxX]$/,zr=e=>{if(!kr.test(e))return!1;const t=Number(e.slice(6,10)),r=Number(e.slice(10,12)),n=Number(e.slice(12,14)),o=new Date(t,r-1,n);if(!(o.getFullYear()===t&&o.getMonth()+1===r&&o.getDate()===n))return!1;const i=[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2];let s=0;for(let t=0;t<17;t++)s+=Number(e.slice(t,t+1))*i[t];return["1","0","X","9","8","7","6","5","4","3","2"][s%11]===e.slice(-1)},Hr=/^(https?|ftp):\/\/([^\s/$.?#].[^\s]*)$/i,Gr=/^https?:\/\/([^\s/$.?#].[^\s]*)$/i,qr=(e,t=!1)=>(t?Hr:Gr).test(e),Vr=/^(?:(?:\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.){3}(?:\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])$/,Wr=/^(([\da-fA-F]{1,4}:){7}[\da-fA-F]{1,4}|([\da-fA-F]{1,4}:){1,7}:|([\da-fA-F]{1,4}:){1,6}:[\da-fA-F]{1,4}|([\da-fA-F]{1,4}:){1,5}(:[\da-fA-F]{1,4}){1,2}|([\da-fA-F]{1,4}:){1,4}(:[\da-fA-F]{1,4}){1,3}|([\da-fA-F]{1,4}:){1,3}(:[\da-fA-F]{1,4}){1,4}|([\da-fA-F]{1,4}:){1,2}(:[\da-fA-F]{1,4}){1,5}|[\da-fA-F]{1,4}:((:[\da-fA-F]{1,4}){1,6})|:((:[\da-fA-F]{1,4}){1,7}|:)|fe80:(:[\da-fA-F]{0,4}){0,4}%[\da-zA-Z]+|::(ffff(:0{1,4})?:)?((25[0-5]|(2[0-4]|1?\d)?\d)\.){3}(25[0-5]|(2[0-4]|1?\d)?\d)|([\da-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1?\d)?\d)\.){3}(25[0-5]|(2[0-4]|1?\d)?\d))$/i,Xr=e=>Vr.test(e),Yr=e=>Wr.test(e),Kr=/^(-?[1-9]\d*|0)$/,Jr=e=>Kr.test(e),Zr=/^-?([1-9]\d*|0)\.\d*[1-9]$/,Qr=e=>Zr.test(e),en=e=>Jr(e)||Qr(e),tn=/^\d+$/,rn=e=>tn.test(e);var nn={EMAIL_REGEX:Mr,HTTP_URL_REGEX:Gr,IPV4_REGEX:Vr,IPV6_REGEX:Wr,PHONE_REGEX:Ur,URL_REGEX:Hr,isDigit:rn,isEmail:Lr,isFloat:Qr,isIdNo:zr,isInteger:Jr,isIpV4:Xr,isIpV6:Yr,isNumerical:en,isPhone:Br,isUrl:qr},on=Object.freeze({__proto__:null,EMAIL_REGEX:Mr,HTTP_URL_REGEX:Gr,IPV4_REGEX:Vr,IPV6_REGEX:Wr,PHONE_REGEX:Ur,URL_REGEX:Hr,default:nn,isDigit:rn,isEmail:Lr,isFloat:Qr,isIdNo:zr,isInteger:Jr,isIpV4:Xr,isIpV6:Yr,isNumerical:en,isPhone:Br,isUrl:qr});function sn(e){return[...new Set(e.trim().split(""))].join("")}function an(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function ln(e,t){return new RegExp(`${an(e.trim())}\\s*([^${an(sn(e))}${an(sn(t))}\\s]*)\\s*${t.trim()}`,"g")}function cn(e,t="{",r="}"){return Array.from(e.matchAll(ln(t,r))).map((e=>E(e)?void 0:e[1]))}function un(e,t,r="{",n="}"){return e.replace(new RegExp(ln(r,n)),(function(e,r){return u(t,r)?t[r]:e}))}function dn(e,t={}){const r=Object.keys(t),n=r.map((e=>t[e]));try{return new Function(...r,`return (() => { ${e} })()`)(...n)}catch(e){throw new Error(`代码执行失败: ${e.message}`)}}var fn={escapeRegExp:an,executeInScope:dn,parseVarFromString:cn,replaceVarFromString:un,uniqueSymbol:sn},pn=Object.freeze({__proto__:null,default:fn,escapeRegExp:an,executeInScope:dn,parseVarFromString:cn,replaceVarFromString:un,uniqueSymbol:sn});function hn(e,t=new WeakMap){if(null===e||"object"!=typeof e)return e;if(t.has(e))return t.get(e);if(e instanceof ArrayBuffer){const r=new ArrayBuffer(e.byteLength);return new Uint8Array(r).set(new Uint8Array(e)),t.set(e,r),r}if(ArrayBuffer.isView(e)){return new(0,e.constructor)(hn(e.buffer,t),e.byteOffset,e.length)}if(e instanceof Date){const r=new Date(e.getTime());return t.set(e,r),r}if(e instanceof RegExp){const r=new RegExp(e.source,e.flags);return r.lastIndex=e.lastIndex,t.set(e,r),r}if(e instanceof Map){const r=new Map;return t.set(e,r),e.forEach(((e,n)=>{r.set(hn(n,t),hn(e,t))})),r}if(e instanceof Set){const r=new Set;return t.set(e,r),e.forEach((e=>{r.add(hn(e,t))})),r}if(Array.isArray(e)){const r=new Array(e.length);t.set(e,r);for(let n=0,o=e.length;n<o;n++)n in e&&(r[n]=hn(e[n],t));const n=Object.getOwnPropertyDescriptors(e);for(const e of Reflect.ownKeys(n))Object.defineProperty(r,e,{...n[e],value:hn(n[e].value,t)});return r}const r=Object.create(Object.getPrototypeOf(e));t.set(e,r);const n=Object.getOwnPropertyDescriptors(e);for(const e of Reflect.ownKeys(n)){const o=n[e];"value"in o?o.value=hn(o.value,t):(o.get&&(o.get=hn(o.get,t)),o.set&&(o.set=hn(o.set,t))),Object.defineProperty(r,e,o)}return r}var gn={cloneDeep:hn},mn=Object.freeze({__proto__:null,cloneDeep:hn,default:gn});const yn={MAP:"[object Map]",SET:"[object Set]",DATE:"[object Date]",REGEXP:"[object RegExp]",SYMBOL:"[object Symbol]",ARRAY_BUFFER:"[object ArrayBuffer]",DATA_VIEW:"[object DataView]",ARGUMENTS:"[object Arguments]"},{toString:bn,hasOwnProperty:An}=Object.prototype,Sn=e=>bn.call(e);function wn(e,t){return En(e,t)}function En(e,t,r=void 0){if(e===t)return!0;if(e!=e&&t!=t)return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;if(e.constructor!==t.constructor)return!1;if(r||(r=new WeakMap),r.has(e))return r.get(e)===t;r.set(e,t);const n=Sn(e);if(n!==Sn(t))return!1;let o=!1;switch(n){case yn.DATE:o=+e==+t;break;case yn.REGEXP:o=""+e==""+t;break;case yn.SYMBOL:o=Symbol.prototype.valueOf.call(e)===Symbol.prototype.valueOf.call(t);break;case yn.ARRAY_BUFFER:o=_n(e,t);break;case yn.DATA_VIEW:s=t,o=(i=e).byteLength===s.byteLength&&i.byteOffset===s.byteOffset&&_n(i.buffer,s.buffer);break;case yn.MAP:o=function(e,t,r){if(e.size!==t.size)return!1;for(const[n,o]of e){const e=t.get(n);if(void 0===e&&!t.has(n))return!1;if(!En(o,e,r))return!1}return!0}(e,t,r);break;case yn.SET:o=function(e,t,r){if(e.size!==t.size)return!1;for(const n of e){if(t.has(n))continue;let e=!1;for(const o of t)if(En(n,o,r)){e=!0;break}if(!e)return!1}return!0}(e,t,r);break;case yn.ARGUMENTS:default:o=Array.isArray(e)||ArrayBuffer.isView(e)?function(e,t,r){const n=e.length;if(n!==t.length)return!1;let o=n;for(;o--;)if(!En(e[o],t[o],r))return!1;return!0}(e,t,r):function(e,t,r){const n=Reflect.ownKeys(e),o=Reflect.ownKeys(t);if(n.length!==o.length)return!1;for(let o=0;o<n.length;o++){const i=n[o];if(!An.call(t,i)||!En(e[i],t[i],r))return!1}return!0}(e,t,r)}var i,s;return o}function _n(e,t){if(e.byteLength!==t.byteLength)return!1;const r=new Uint8Array(e),n=new Uint8Array(t);let o=e.byteLength;for(;o--;)if(r[o]!==n[o])return!1;return!0}var xn={isEqual:wn},vn=Object.freeze({__proto__:null,default:xn,isEqual:wn});class Cn{static encode(e,t="unicode",r=!1){const n=[];for(const o of e){const e=o.codePointAt(0);"html"===t&&this.ENTITY_MAP[o]?n.push(this.ENTITY_MAP[o]):!r&&e>=32&&e<=126?n.push(o):"unicode"===t?e>65535?n.push(`\\u{${e.toString(16).toUpperCase()}}`):n.push(`\\u${e.toString(16).toUpperCase().padStart(4,"0")}`):n.push(`&#${e};`)}return n.join("")}static decode(e,t=!1){if(!e)return"";let r=e.replace(/\\u(?:\{([0-9a-fA-F]+)\}|([0-9a-fA-F]{4}))/g,((e,t,r)=>String.fromCodePoint(parseInt(t||r,16)))).replace(/&#(x?)([0-9a-fA-F]+);/g,((e,t,r)=>String.fromCodePoint(parseInt(r,t?16:10)))).replace(/&[a-z0-9]+;/gi,(e=>this.NAMED_ENTITIES[e]||e));return t&&(r=r.replace(/\u00A0/g," ")),r}}Cn.ENTITY_MAP={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},Cn.NAMED_ENTITIES={"&quot;":'"',"&amp;":"&","&lt;":"<","&gt;":">","&nbsp;":" ","&copy;":"©","&trade;":"™","&reg;":"®"};var Tn={UnicodeToolkit:Cn},jn={...a,...Pe,...De,...qe,...Ce,...pt,...te,...Ye,...et,...ge,...z,...st,...bt,...xt,...Tt,...It,...Bt,...Kt,...nr,...ar,...Ar,...Cr,...$r,...on,...pn,...mn,...vn,...Object.freeze({__proto__:null,UnicodeToolkit:Cn,default:Tn})};e.EMAIL_REGEX=Mr,e.HEX_POOL=kt,e.HTTP_URL_REGEX=Gr,e.IPV4_REGEX=Vr,e.IPV6_REGEX=Wr,e.PHONE_REGEX=Ur,e.STRING_ARABIC_NUMERALS=oe,e.STRING_LOWERCASE_ALPHA=ie,e.STRING_POOL=$t,e.STRING_UPPERCASE_ALPHA=se,e.UNIQUE_NUMBER_SAFE_LENGTH=18,e.URL_REGEX=Hr,e.UnicodeToolkit=Cn,e.add=wr,e.addClass=be,e.adjustDate=He,e.arrayEach=t,e.arrayEachAsync=r,e.arrayInsertBefore=n,e.arrayLike=d,e.arrayRemove=o,e.asyncMap=gt,e.b64decode=Or,e.b64encode=Ir,e.chooseLocalFile=St,e.cloneDeep=hn,e.compressImg=Et,e.cookieDel=Oe,e.cookieGet=Ne,e.cookieSet=Re,e.copyText=Te,e.crossOriginDownload=ut,e.dateParse=Ue,e.dateToEnd=ke,e.dateToStart=Be,e.debounce=jt,e.default=jn,e.diffArray=i,e.divide=_r,e.downloadBlob=ct,e.downloadData=dt,e.downloadHref=lt,e.downloadURL=at,e.escapeRegExp=an,e.executeInScope=dn,e.fallbackCopyText=je,e.filterDeep=fr,e.findDeep=dr,e.flatTree=mr,e.forEachDeep=ur,e.formatDate=ze,e.formatMoney=Xt,e.formatNumber=Xt,e.formatTree=gr,e.fuzzySearchTree=yr,e.genCanvasWM=vt,e.getComputedCssVal=Ee,e.getGlobal=Rt,e.getPathById=hr,e.getStrWidthPx=_e,e.getStyle=we,e.hasClass=me,e.humanFileSize=Wt,e.is=p,e.isArguments=$,e.isArray=x,e.isArrayBuffer=D,e.isAsyncFunction=M,e.isBigInt=y,e.isBoolean=g,e.isDataView=I,e.isDate=T,e.isDigit=rn,e.isEmail=Lr,e.isEmpty=U,e.isEqual=wn,e.isError=j,e.isFloat=Qr,e.isFunction=v,e.isIdNo=zr,e.isInteger=Jr,e.isIpV4=Xr,e.isIpV6=Yr,e.isJsonString=L,e.isMap=N,e.isNaN=C,e.isNodeList=B,e.isNull=S,e.isNullOrUnDef=E,e.isNullish=E,e.isNumber=b,e.isNumerical=en,e.isObject=_,e.isPhone=Br,e.isPlainObject=G,e.isPrimitive=w,e.isPromise=P,e.isRegExp=F,e.isSet=R,e.isString=h,e.isSymbol=m,e.isTypedArray=O,e.isUndefined=A,e.isUrl=qr,e.isValidDate=$e,e.mapDeep=pr,e.multiply=Sr,e.numberAbbr=Vt,e.numberToHex=qt,e.objectAssign=J,e.objectEach=q,e.objectEachAsync=V,e.objectFill=Z,e.objectGet=Q,e.objectHas=u,e.objectMap=W,e.objectMerge=J,e.objectOmit=Y,e.objectPick=X,e.once=Pt,e.parseQueryParams=pe,e.parseVarFromString=cn,e.pathJoin=We,e.pathNormalize=Ve,e.qsParse=Ke,e.qsStringify=Ze,e.randomNumber=Dt,e.randomString=Mt,e.randomUuid=Lt,e.removeClass=Ae,e.replaceVarFromString=un,e.safeAwait=mt,e.searchTreeById=hr,e.select=xe,e.setGlobal=Nt,e.setStyle=Se,e.stringAssign=ue,e.stringCamelCase=re,e.stringEscapeHtml=de,e.stringFill=fe,e.stringFormat=le,e.stringKebabCase=ne,e.strip=xr,e.subtract=Er,e.supportCanvas=At,e.throttle=Ft,e.tooltipEvent=ir,e.typeIs=f,e.uniqueNumber=Qt,e.uniqueString=tr,e.uniqueSymbol=sn,e.urlDelParams=ot,e.urlParse=tt,e.urlSetParams=nt,e.urlStringify=rt,e.wait=ht,e.weAtob=Rr,e.weBtoa=Nr,Object.defineProperty(e,"__esModule",{value:!0})}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sculp-js",
3
- "version": "1.19.12",
3
+ "version": "1.19.13",
4
4
  "author": "chandq",
5
5
  "description": "Typescript utils function library for modern javascript",
6
6
  "scripts": {