1.0.1 • Published 1 year ago

tree-search-easy v1.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

tree search easy

tree-search-easy is a library to make tree-search easy.

for follow data:

- a
  - b
    - c
- 2

search b will return

- a
  - b
    - c

this means the search will return: 1. matched items 2. parent items of matched items 3. all children items in matched items

install

# use npm
npm install tree-search-easy

# or use yarn 
yarn add tree-search-easy

Usage

import tse from 'tree-search-easy'


const treeData = [
    {
        id:'1',
        title: 'a',
        children: [
            {
                id: '11',
                title: 'b',
                children: [
                    {
                        id: '111',
                        title: 'c'
                    }
                ]
            }
        ]
    },
    {
        id:'2',
        title: '2'
    }
]
var rt = tse.search(treeData,'bb')
console.log(JSON.stringify(rt))

this code will output:

{
  "expandedKeys": ["1"],
  "treeData": [
    {
      "id": "1",
      "title": "a",
      "children": [
        {
          "id": "11",
          "title": "b",
          "children": [{ "id": "111", "title": "c" }]
        }
      ]
    }
  ]
}

we return expandedKeys in order to make UI to show all the matched items, but do not expand the unmatched children. so you need to use treeData to get the tree data.

Field Config

By default we use id, title, children as default fields in tree. It's easy to use your own config via

tse.search(treeData,'bb',{
    id:'userId',
    title:'username',
    children:'cs'
})

the code above is for data as follow:

[{
    userId: '1',
    username: 'a',
    cs:[
        {
            userId: '11',
            username: 'ab',
        }
    ]
}]

Limit

No multiple items with the same id. id is required to be unique.

1.0.1

1 year ago

1.0.0

1 year ago