in client/client/app/components/ngbDataSets/internal/utilities.js [358:402]
export function search(pattern, items: Array<Node>) {
let result = false;
for (let i = 0; i < items.length; i++) {
const item = items[i];
let searchFilterPassed = !pattern || !pattern.length;
if (item.isProject) {
let projectItems = item.items;
if (projectItems && projectItems.length && projectItems[0].isPlaceholder) {
projectItems = item._lazyItems;
}
item.childrenFilterPassed = search(pattern, projectItems);
searchFilterPassed = searchFilterPassed || item.childrenFilterPassed;
} else if (item.isTrack && item.format === 'REFERENCE') {
item.searchFilterPassed = false;
continue;
}
if (!item.searchInfo) {
item.searchInfo = new SearchInfo();
}
if (!item.modifiedNameSearchInfo) {
item.modifiedNameSearchInfo = new SearchInfo();
}
if (!item.metadataSearchInfo) {
item.metadataSearchInfo = new SearchInfo();
}
item.searchInfo.test(pattern, item.displayName);
item.modifiedNameSearchInfo.test(pattern, item.modifiedName);
for (const key in item.metadata) {
if (item.metadata.hasOwnProperty(key)) {
item.metadataSearchInfo.test(pattern, item.metadata[key], key);
}
searchFilterPassed = searchFilterPassed || item.metadataSearchInfo.metadata[key];
}
item.searchFilterPassed = searchFilterPassed ||
item.searchInfo.passed ||
item.modifiedNameSearchInfo.passed;
if (item.childrenFilterPassed && item.isProject && pattern.length > 0) {
expandNodeWithChilds(item);
item.__expanded = true;
}
result = result || item.searchFilterPassed;
}
return result;
}