sculp-js 1.19.5 → 1.19.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/cjs/array.cjs +1 -1
- package/dist/cjs/async.cjs +1 -1
- package/dist/cjs/base64.cjs +1 -1
- package/dist/cjs/clipboard.cjs +1 -1
- package/dist/cjs/cloneDeep.cjs +1 -1
- package/dist/cjs/cookie.cjs +1 -1
- package/dist/cjs/date.cjs +1 -1
- package/dist/cjs/dom.cjs +1 -1
- package/dist/cjs/download.cjs +1 -1
- package/dist/cjs/file.cjs +1 -1
- package/dist/cjs/func.cjs +1 -1
- package/dist/cjs/index.cjs +3 -2
- package/dist/cjs/isEqual.cjs +1 -1
- package/dist/cjs/math.cjs +1 -1
- package/dist/cjs/number.cjs +1 -1
- package/dist/cjs/object.cjs +1 -1
- package/dist/cjs/path.cjs +1 -1
- package/dist/cjs/qs.cjs +1 -1
- package/dist/cjs/random.cjs +1 -1
- package/dist/cjs/string.cjs +1 -1
- package/dist/cjs/tooltip.cjs +1 -1
- package/dist/cjs/tree.cjs +53 -46
- package/dist/cjs/type.cjs +1 -1
- package/dist/cjs/unicodeToolkit.cjs +1 -1
- package/dist/cjs/unique.cjs +1 -1
- package/dist/cjs/url.cjs +1 -1
- package/dist/cjs/validator.cjs +1 -1
- package/dist/cjs/variable.cjs +1 -1
- package/dist/cjs/watermark.cjs +1 -1
- package/dist/esm/array.mjs +1 -1
- package/dist/esm/async.mjs +1 -1
- package/dist/esm/base64.mjs +1 -1
- package/dist/esm/clipboard.mjs +1 -1
- package/dist/esm/cloneDeep.mjs +1 -1
- package/dist/esm/cookie.mjs +1 -1
- package/dist/esm/date.mjs +1 -1
- package/dist/esm/dom.mjs +1 -1
- package/dist/esm/download.mjs +1 -1
- package/dist/esm/file.mjs +1 -1
- package/dist/esm/func.mjs +1 -1
- package/dist/esm/index.mjs +3 -2
- package/dist/esm/isEqual.mjs +1 -1
- package/dist/esm/math.mjs +1 -1
- package/dist/esm/number.mjs +1 -1
- package/dist/esm/object.mjs +1 -1
- package/dist/esm/path.mjs +1 -1
- package/dist/esm/qs.mjs +1 -1
- package/dist/esm/random.mjs +1 -1
- package/dist/esm/string.mjs +1 -1
- package/dist/esm/tooltip.mjs +1 -1
- package/dist/esm/tree.mjs +53 -46
- package/dist/esm/type.mjs +1 -1
- package/dist/esm/unicodeToolkit.mjs +1 -1
- package/dist/esm/unique.mjs +1 -1
- package/dist/esm/url.mjs +1 -1
- package/dist/esm/validator.mjs +1 -1
- package/dist/esm/variable.mjs +1 -1
- package/dist/esm/watermark.mjs +1 -1
- package/dist/types/tree.d.ts +54 -48
- package/dist/umd/index.min.js +2 -2
- package/package.json +8 -5
- package/dist/sculp-js.d.ts +0 -2275
- package/dist/types/tsdoc-metadata.json +0 -11
- /package/{LICENSE.md → LICENSE} +0 -0
package/README.md
CHANGED
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
|
|
5
5
|
**A Modern JavaScript Utility Library for Web**
|
|
6
6
|
|
|
7
|
-
[](https://github.com/chandq/sculp-js/actions/workflows/release.yml)
|
|
8
8
|
[](https://www.npmjs.com/package/sculp-js)
|
|
9
|
-
[](https://github.com/chandq/sculp-js/blob/main/LICENSE
|
|
9
|
+
[](https://github.com/chandq/sculp-js/blob/main/LICENSE)
|
|
10
10
|
[](https://codecov.io/gh/chandq/sculp-js)
|
|
11
11
|
|
|
12
12
|
</div>
|
package/dist/cjs/array.cjs
CHANGED
package/dist/cjs/async.cjs
CHANGED
package/dist/cjs/base64.cjs
CHANGED
package/dist/cjs/clipboard.cjs
CHANGED
package/dist/cjs/cloneDeep.cjs
CHANGED
package/dist/cjs/cookie.cjs
CHANGED
package/dist/cjs/date.cjs
CHANGED
package/dist/cjs/dom.cjs
CHANGED
package/dist/cjs/download.cjs
CHANGED
package/dist/cjs/file.cjs
CHANGED
package/dist/cjs/func.cjs
CHANGED
package/dist/cjs/index.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* sculp-js v1.19.
|
|
2
|
+
* sculp-js v1.19.12
|
|
3
3
|
* (c) 2023-present chandq
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -190,8 +190,9 @@ exports.flatTree = tree.flatTree;
|
|
|
190
190
|
exports.forEachDeep = tree.forEachDeep;
|
|
191
191
|
exports.formatTree = tree.formatTree;
|
|
192
192
|
exports.fuzzySearchTree = tree.fuzzySearchTree;
|
|
193
|
+
exports.getPathById = tree.getPathById;
|
|
193
194
|
exports.mapDeep = tree.mapDeep;
|
|
194
|
-
exports.searchTreeById = tree.
|
|
195
|
+
exports.searchTreeById = tree.getPathById;
|
|
195
196
|
exports.add = math.add;
|
|
196
197
|
exports.divide = math.divide;
|
|
197
198
|
exports.multiply = math.multiply;
|
package/dist/cjs/isEqual.cjs
CHANGED
package/dist/cjs/math.cjs
CHANGED
package/dist/cjs/number.cjs
CHANGED
package/dist/cjs/object.cjs
CHANGED
package/dist/cjs/path.cjs
CHANGED
package/dist/cjs/qs.cjs
CHANGED
package/dist/cjs/random.cjs
CHANGED
package/dist/cjs/string.cjs
CHANGED
package/dist/cjs/tooltip.cjs
CHANGED
package/dist/cjs/tree.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* sculp-js v1.19.
|
|
2
|
+
* sculp-js v1.19.12
|
|
3
3
|
* (c) 2023-present chandq
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -24,10 +24,11 @@ function getChildNodes(item, childField, isDomNode) {
|
|
|
24
24
|
return isDomNode && type.isNodeList(child) ? Array.from(child) : Array.isArray(child) ? child : null;
|
|
25
25
|
}
|
|
26
26
|
/**
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
* @param {
|
|
30
|
-
* @param {
|
|
27
|
+
* Tree traversal function (default DFS, supports continue and break operations).
|
|
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.
|
|
31
|
+
* @param {object} options - Options to customize child element name, reverse traversal, breadth-first traversal. Default: {
|
|
31
32
|
childField: 'children',
|
|
32
33
|
reverse: false,
|
|
33
34
|
breadthFirst: false,
|
|
@@ -102,10 +103,10 @@ function forEachDeep(
|
|
|
102
103
|
tree = null;
|
|
103
104
|
}
|
|
104
105
|
/**
|
|
105
|
-
*
|
|
106
|
-
* @param {
|
|
107
|
-
* @param {Function} predicate
|
|
108
|
-
* @param {
|
|
106
|
+
* Tree search function, can be used to search Array and NodeList type data.
|
|
107
|
+
* @param {V[]} tree - Tree data
|
|
108
|
+
* @param {Function} predicate - Predicate function
|
|
109
|
+
* @param {object} options - Options to customize child element name, reverse traversal, breadth-first traversal. Default: {
|
|
109
110
|
childField: 'children',
|
|
110
111
|
reverse: false,
|
|
111
112
|
breadthFirst: false,
|
|
@@ -137,10 +138,10 @@ function findDeep(
|
|
|
137
138
|
return result;
|
|
138
139
|
}
|
|
139
140
|
/**
|
|
140
|
-
*
|
|
141
|
-
* @param {
|
|
142
|
-
* @param {Function} predicate
|
|
143
|
-
* @param {
|
|
141
|
+
* Tree filter function, can be used to filter Array and NodeList type data.
|
|
142
|
+
* @param {V[]} tree - Tree data
|
|
143
|
+
* @param {Function} predicate - Predicate function
|
|
144
|
+
* @param {object} options - Options to customize child element name, reverse traversal, breadth-first traversal. Default: {
|
|
144
145
|
childField: 'children',
|
|
145
146
|
reverse: false,
|
|
146
147
|
breadthFirst: false,
|
|
@@ -171,16 +172,17 @@ function filterDeep(
|
|
|
171
172
|
return result;
|
|
172
173
|
}
|
|
173
174
|
/**
|
|
174
|
-
*
|
|
175
|
+
* Creates a new array using a depth-first traversal Map function (supports continue and break operations).
|
|
176
|
+
* Can be used for inserting or removing tree items.
|
|
175
177
|
*
|
|
176
|
-
*
|
|
177
|
-
* @param {
|
|
178
|
-
* @param {Function} iterator
|
|
179
|
-
* @param {
|
|
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.
|
|
181
|
+
* @param {object} options - Options to customize child element name, reverse traversal. Default: {
|
|
180
182
|
childField: 'children',
|
|
181
183
|
reverse: false,
|
|
182
184
|
}
|
|
183
|
-
* @returns {any[]}
|
|
185
|
+
* @returns {any[]} A new tree structure
|
|
184
186
|
*/
|
|
185
187
|
function mapDeep(
|
|
186
188
|
tree,
|
|
@@ -238,14 +240,14 @@ function mapDeep(
|
|
|
238
240
|
return newTree;
|
|
239
241
|
}
|
|
240
242
|
/**
|
|
241
|
-
*
|
|
243
|
+
* Retrieves the path (ancestors + self) for a given node ID.
|
|
242
244
|
*
|
|
243
|
-
* @param {ArrayLike<T>} tree -
|
|
244
|
-
* @param {number | string} nodeId -
|
|
245
|
-
* @param {ITreeConf} options -
|
|
246
|
-
* @returns {[(number | string)[], V[]]} -
|
|
245
|
+
* @param {ArrayLike<T>} tree - Tree data
|
|
246
|
+
* @param {number | string} nodeId - Target node ID
|
|
247
|
+
* @param {ITreeConf} options - Configuration. Default: { childField = 'children', keyField = 'id' }
|
|
248
|
+
* @returns {[(number | string)[], V[]]} - Array of IDs and Array of Nodes from root to target
|
|
247
249
|
*/
|
|
248
|
-
function
|
|
250
|
+
function getPathById(tree, nodeId, options = { childField: 'children', keyField: 'id' }) {
|
|
249
251
|
const { childField = 'children', keyField = 'id' } = type.isObject(options) ? options : {};
|
|
250
252
|
const flatMap = {};
|
|
251
253
|
// 扁平化 - 使用迭代而非递归,避免栈溢出
|
|
@@ -283,11 +285,11 @@ function searchTreeById(tree, nodeId, options = { childField: 'children', keyFie
|
|
|
283
285
|
return [ids, nodes];
|
|
284
286
|
}
|
|
285
287
|
/**
|
|
286
|
-
*
|
|
287
|
-
* @param {any[]} list
|
|
288
|
-
* @param {IFieldOptions} options
|
|
288
|
+
* Converts a flat array into a tree structure.
|
|
289
|
+
* @param {any[]} list - Flat list of items
|
|
290
|
+
* @param {IFieldOptions} options - Customizes id field name, child element field name, parent element field name. Default:
|
|
289
291
|
* { keyField: 'key', childField: 'children', pidField: 'pid' }
|
|
290
|
-
* @returns {any[]}
|
|
292
|
+
* @returns {any[]} Tree structure array
|
|
291
293
|
*/
|
|
292
294
|
function formatTree(list, options = defaultFieldOptions) {
|
|
293
295
|
const { keyField = 'key', childField = 'children', pidField = 'pid' } = type.isObject(options) ? options : {};
|
|
@@ -313,11 +315,11 @@ function formatTree(list, options = defaultFieldOptions) {
|
|
|
313
315
|
return treeArr;
|
|
314
316
|
}
|
|
315
317
|
/**
|
|
316
|
-
*
|
|
317
|
-
* @param {any[]} treeList
|
|
318
|
-
* @param {IFieldOptions} options
|
|
318
|
+
* Converts a tree structure into a flat array.
|
|
319
|
+
* @param {any[]} treeList - Tree structure array
|
|
320
|
+
* @param {IFieldOptions} options - Customizes id field name, child element field name, parent element field name. Default:
|
|
319
321
|
* { keyField: 'key', childField: 'children', pidField: 'pid' }
|
|
320
|
-
* @returns {any[]}
|
|
322
|
+
* @returns {any[]} Flat array
|
|
321
323
|
*/
|
|
322
324
|
function flatTree(treeList, options = defaultFieldOptions) {
|
|
323
325
|
const { keyField = 'key', childField = 'children', pidField = 'pid' } = type.isObject(options) ? options : {};
|
|
@@ -344,23 +346,26 @@ function flatTree(treeList, options = defaultFieldOptions) {
|
|
|
344
346
|
return res;
|
|
345
347
|
}
|
|
346
348
|
/**
|
|
347
|
-
*
|
|
348
|
-
*
|
|
349
|
-
* 1. 过滤函数filter, 返回true/false
|
|
350
|
-
* 2. 匹配关键词,支持是否启用忽略大小写来判断
|
|
349
|
+
* Fuzzy search function that returns nodes containing the search character and their ancestor nodes.
|
|
350
|
+
* Suitable for character filtering in tree components.
|
|
351
351
|
*
|
|
352
|
-
*
|
|
353
|
-
* 1.
|
|
354
|
-
* 2.
|
|
355
|
-
*
|
|
356
|
-
*
|
|
357
|
-
*
|
|
352
|
+
* Two search conditions are available, processed in priority order:
|
|
353
|
+
* 1. Filter function `filter`, returning true/false.
|
|
354
|
+
* 2. Keyword matching, supporting case-insensitive check.
|
|
355
|
+
*
|
|
356
|
+
* Features:
|
|
357
|
+
* 1. Configurable `removeEmptyChild` field to decide whether to remove empty children fields in search results.
|
|
358
|
+
* 2. If no filter condition is provided, or keyword mode is used with an empty keyword, the original object is returned; otherwise, a new array is returned.
|
|
359
|
+
*
|
|
360
|
+
* @param {V[]} nodes - Tree nodes
|
|
361
|
+
* @param {IFilterCondition} filterCondition - Filter conditions
|
|
362
|
+
* @param {ISearchTreeOpts} options - Default configuration: {
|
|
358
363
|
childField: 'children',
|
|
359
364
|
nameField: 'name',
|
|
360
365
|
removeEmptyChild: false,
|
|
361
366
|
ignoreCase: true
|
|
362
367
|
}
|
|
363
|
-
* @returns {V[]}
|
|
368
|
+
* @returns {V[]} Filtered tree nodes
|
|
364
369
|
*/
|
|
365
370
|
function fuzzySearchTree(nodes, filterCondition, options = defaultSearchTreeOptions) {
|
|
366
371
|
if (!type.objectHas(filterCondition, 'filter') && !filterCondition.keyword) {
|
|
@@ -415,7 +420,8 @@ var tree = {
|
|
|
415
420
|
findDeep,
|
|
416
421
|
filterDeep,
|
|
417
422
|
mapDeep,
|
|
418
|
-
|
|
423
|
+
getPathById,
|
|
424
|
+
searchTreeById: getPathById,
|
|
419
425
|
formatTree,
|
|
420
426
|
flatTree,
|
|
421
427
|
fuzzySearchTree
|
|
@@ -428,5 +434,6 @@ exports.flatTree = flatTree;
|
|
|
428
434
|
exports.forEachDeep = forEachDeep;
|
|
429
435
|
exports.formatTree = formatTree;
|
|
430
436
|
exports.fuzzySearchTree = fuzzySearchTree;
|
|
437
|
+
exports.getPathById = getPathById;
|
|
431
438
|
exports.mapDeep = mapDeep;
|
|
432
|
-
exports.searchTreeById =
|
|
439
|
+
exports.searchTreeById = getPathById;
|
package/dist/cjs/type.cjs
CHANGED
package/dist/cjs/unique.cjs
CHANGED
package/dist/cjs/url.cjs
CHANGED
package/dist/cjs/validator.cjs
CHANGED
package/dist/cjs/variable.cjs
CHANGED
package/dist/cjs/watermark.cjs
CHANGED
package/dist/esm/array.mjs
CHANGED
package/dist/esm/async.mjs
CHANGED
package/dist/esm/base64.mjs
CHANGED
package/dist/esm/clipboard.mjs
CHANGED
package/dist/esm/cloneDeep.mjs
CHANGED
package/dist/esm/cookie.mjs
CHANGED
package/dist/esm/date.mjs
CHANGED
package/dist/esm/dom.mjs
CHANGED
package/dist/esm/download.mjs
CHANGED
package/dist/esm/file.mjs
CHANGED
package/dist/esm/func.mjs
CHANGED
package/dist/esm/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* sculp-js v1.19.
|
|
2
|
+
* sculp-js v1.19.12
|
|
3
3
|
* (c) 2023-present chandq
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -123,8 +123,9 @@ export {
|
|
|
123
123
|
forEachDeep,
|
|
124
124
|
formatTree,
|
|
125
125
|
fuzzySearchTree,
|
|
126
|
+
getPathById,
|
|
126
127
|
mapDeep,
|
|
127
|
-
searchTreeById
|
|
128
|
+
getPathById as searchTreeById
|
|
128
129
|
} from './tree.mjs';
|
|
129
130
|
import * as math from './math.mjs';
|
|
130
131
|
export { add, divide, multiply, strip, subtract } from './math.mjs';
|
package/dist/esm/isEqual.mjs
CHANGED
package/dist/esm/math.mjs
CHANGED
package/dist/esm/number.mjs
CHANGED
package/dist/esm/object.mjs
CHANGED
package/dist/esm/path.mjs
CHANGED
package/dist/esm/qs.mjs
CHANGED
package/dist/esm/random.mjs
CHANGED
package/dist/esm/string.mjs
CHANGED
package/dist/esm/tooltip.mjs
CHANGED