hy-virtual-tree 2.1.4 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  ## Changelog
2
2
 
3
+ ### 2.2.0
4
+
5
+ _2026-06-01_
6
+
7
+ (1)新增 filterMethod参数的返回参数,可按需判断每一项是否要独立校验
8
+
3
9
  ### 2.1.4
4
10
 
5
11
  _2026-05-28_
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /* hy-virtual-tree v2.1.4 */
1
+ /* hy-virtual-tree v2.2.0 */
2
2
  import './svg_bundle.js';
3
3
  const isString = (e) => typeof e === 'string';
4
4
  const isNumber = (e) => typeof e === 'number';
@@ -8682,6 +8682,13 @@ function useFilter(config, filterMethod, tree = {
8682
8682
  const hiddenNodeKeySet = new Set([]);
8683
8683
  const hiddenExpandIconKeySet = new Set([]);
8684
8684
  let doFilter;
8685
+ function useFilterMethod(filterMethod, filterAll, ...args) {
8686
+ const params = filterMethod(...args);
8687
+ if (isObject(params)) {
8688
+ return { type: params.force ? 'all' : 'default', value: params.value };
8689
+ }
8690
+ return { type: filterAll ? 'all' : 'default', value: params };
8691
+ }
8685
8692
  // 通用过滤方法
8686
8693
  function commitFilter(params, filterAll = true) {
8687
8694
  if (!isFunction(filterMethod)) {
@@ -8702,11 +8709,12 @@ function useFilter(config, filterMethod, tree = {
8702
8709
  let total = 0;
8703
8710
  let hasFilterResult = false;
8704
8711
  nodes.forEach((node) => {
8712
+ const { type: filterType, value: filterValue } = useFilterMethod(filterMethod, filterAll, params, node.data, node);
8705
8713
  family.push(node);
8706
8714
  if (!hasFilterResult) {
8707
- hasFilterResult = !!(filterMethod && filterMethod(params, node.data, node));
8715
+ hasFilterResult = filterValue;
8708
8716
  }
8709
- if (isShow || (filterMethod && filterMethod(params, node.data, node))) {
8717
+ if ((isShow && filterType !== 'all') || filterValue) {
8710
8718
  family.forEach((member) => {
8711
8719
  expandKeySet.add(member.key);
8712
8720
  });
@@ -8793,11 +8801,12 @@ function useFilter(config, filterMethod, tree = {
8793
8801
  let hasFilterResult = false;
8794
8802
  nodes.forEach((node) => {
8795
8803
  const isLeaf = isFilterLeaf(node);
8804
+ const { type: filterType, value: filterValue } = useFilterMethod(filterMethod, filterAll, params, node.data, node);
8796
8805
  family.push(node);
8797
8806
  if (!hasFilterResult) {
8798
- hasFilterResult = !!(filterMethod && filterMethod(params, node.data, node));
8807
+ hasFilterResult = filterValue;
8799
8808
  }
8800
- if (isShow || (filterMethod && filterMethod(params, node.data, node))) {
8809
+ if ((isShow && filterType !== 'all') || filterValue) {
8801
8810
  family.forEach((member) => {
8802
8811
  expandKeySet.add(member.key);
8803
8812
  });
@@ -8886,12 +8895,13 @@ function useFilter(config, filterMethod, tree = {
8886
8895
  let total = 0;
8887
8896
  let hasFilterResult = false;
8888
8897
  nodes.forEach((node) => {
8898
+ const { type: filterType, value: filterValue } = useFilterMethod(filterMethod, filterAll, params, node.data, node);
8889
8899
  family.push(node);
8890
8900
  if (!hasFilterResult) {
8891
- hasFilterResult = !!(filterMethod && filterMethod(params, node.data, node));
8901
+ hasFilterResult = filterValue;
8892
8902
  }
8893
8903
  // if (tree.hiddenNodeKeySet.has(node.key)) return
8894
- if (isShow || (filterMethod && filterMethod(params, node.data, node))) {
8904
+ if ((isShow && filterType !== 'all') || filterValue) {
8895
8905
  family.forEach((member) => {
8896
8906
  expandKeySet.add(member.key);
8897
8907
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hy-virtual-tree",
3
- "version": "2.1.4",
3
+ "version": "2.2.0",
4
4
  "type": "module",
5
5
  "scripts": {
6
6
  "dev": "vite",