Refactor filterable dropdowns to allow intermediate state

This commit is contained in:
Michael Shamoon
2020-12-19 00:13:08 -08:00
parent 61ad452062
commit 469970e7ac
5 changed files with 62 additions and 26 deletions

View File

@@ -1,16 +1,17 @@
import { Pipe, PipeTransform } from '@angular/core';
import { SelectableItem } from 'src/app/components/common/filterable-dropdown/filterable-dropdown.component';
@Pipe({
name: 'filter'
})
export class FilterPipe implements PipeTransform {
transform(items: any[], searchText: string): any[] {
if (!items) return [];
if (!searchText) return items;
transform(selectableItems: SelectableItem[], searchText: string): any[] {
if (!selectableItems) return [];
if (!searchText) return selectableItems;
return items.filter(item => {
return Object.keys(item).some(key => {
return String(item[key]).toLowerCase().includes(searchText.toLowerCase());
return selectableItems.filter(selectableItem => {
return Object.keys(selectableItem.item).some(key => {
return String(selectableItem.item[key]).toLowerCase().includes(searchText.toLowerCase());
});
});
}