Ответ Citrus Punk работает, но вот некоторые объяснения
HTML:
<input type="text"
[(ngModel)]="searchText" (ngModelChange)="searchTextChanged($event)" />
Ts:
В ngOnInit После этого для каждого магазина forEach скопируйте pubWorkspaces в отдельный массив
workspaces.forEach(workspace => {
if(workspace.type == WorkspaceType.public){
this.pubWorkspaces.push(workspace);
}
});
this.filteredPubWorkSpaces= this.pubWorkspaces;
Функция ниже вызывается при изменении поиска и при условии, что у вас есть свойство name в объекте pubws.
searchTextChanged(searchText){
//return array of workspace only having search text in their names
this.filteredPubWorkSpaces= this.pubWorkspaces.filter(pubws=>pubws.name.includes(searchText));
}
Передайте его компоненту
`<mc-workspace-card-list [workspaces] = "filteredPubWorkSpaces" [editable] = "false"></mc-workspace-card-list>`