treeFindPath()

in src/plugin/plugin-variable-bind-dialog/index.tsx [183:195]


  treeFindPath(tree, func, field = '', path = []) {
    if (!tree) return [];
    for (const data of tree) {
      field === '' ? path.push(data) : path.push(data[field]);
      if (func(data)) return path;
      if (data.children) {
        const findChildren = this.treeFindPath(data.children, func, field, path);
        if (findChildren.length) return findChildren;
      }
      path.pop();
    }
    return [];
  }