Мы обновили корпоративную ag-grid с 16.0.1 до 25.1.0. В результате был изменен алгоритм фильтрации дерева.
Раньше он не включал не совпадающих дочерних элементов, но теперь он показывает ВСЕ дочерние элементы соответствующего родителя.
Например, если у нас есть данные в виде дерева:
[
{
path: ['One'],
},
{
path: ['One', 'Twenty'],
},
{
path: ['One', 'Thirty'],
},
{
path: ['Two'],
},
]
И воспользуйтесь настройками:
autoGroupColumnDef: {
filter: 'agTextColumnFilter',
floatingFilter: true
},
treeData: true,
getDataPath: ({ path }) => path,
Они отображаются как
- One
- Twenty
- Thirty
- Two
После фильтрации по One теперь он выглядит как
- One
- Twenty
- Thirty
- он включает в себя всех дочерних элементов One: Twenty, Thirty, которые не соответствуют фильтрации. Но в версии 16.0.1 этот результат был как
- One
- он включал только совпадающие элементы. В наших фильтрах нам нужен именно этот старомодный алгоритм, но я не нашел, как его настроить. Я пытался
filterValueGetter: ({ data: { path } }) => path[path.length - 1]
но это не работает, потому что потомки соответствующего родителя даже не попадают в эту функцию. Он работает только с одним и двумя родителями.
Как я могу установить эту фильтрацию дерева, если я хочу исключить несоответствующие дочерние элементы соответствующего родителя?