Hi Bryntum Team,
I have a requirement to expand the tree group dynamically based on when user searches a topic
let groupResourceNodeData = parentGroups.map((n) => {
if (n.key === "solution_area") {
let solutionAreaGroups = uniqueSolutionAreas.map((solutionArea, index) => {
let solutionAreaTopics = intialSolutionArea.filter((m) => m.solution_area === solutionArea)
if (solutionAreaTopics.length > 0) {
let topicNode = {
id: solutionArea + index,
name: solutionArea,
children: solutionAreaTopics,
expanded: false,
};
return topicNode;
} else {
return null; // Exclude empty groups
}
}).filter(Boolean); // Remove null entries
let parentNode = {
name: n.name,
id:n.key,
children: solutionAreaGroups,
expanded: false,
};
finalArrays.solutionArea.push(parentNode);
}
above is treegroup code.
below is agenda config.js file
columns: [
{
field: "name",
text: "Search Topic",
type: 'tree',
filterable: {
filterFn: ({ record, value }) => {
let returnVal =
record?.name
? record?.name
?.toLowerCase()
?.indexOf(value.toLowerCase()) !== -1 : false || record?.keywords
? record?.keywords
?.toLowerCase()
?.indexOf(value.toLowerCase()) !== -1
: false || record?.solution_area
? record?.solution_area
?.toLowerCase()
?.indexOf(value.toLowerCase()) !== -1
: false || record?.industry
? record?.industry
?.toLowerCase()
?.indexOf(value.toLowerCase()) !== -1
: false || record?.description
? record?.description
?.toLowerCase()
?.indexOf(value.toLowerCase()) !== -1
: false;
console.log(returnVal)