in packages/attribute-slicer/src/AttributeSlicer.ts [996:1029]
private syncItemVisiblity(forceLoad: boolean = false): void {
let filteredData: ISlicerItem[] = [];
if (this.data && this.data.length) {
filteredData = this.data.filter((n: ISlicerItem, i: number) => {
const item: ISlicerItem = this.data[i];
let isVisible: boolean =
!this.showSelections ||
!(
!!this.selectedItems &&
this.selectedItems.filter((b: ISlicerItem) => b.id === item.id)
.length > 0
);
// update the search
if (isVisible && !this.serverSideSearch && this.searchString) {
isVisible = AttributeSlicer.IS_MATCH(
item,
this.searchString,
this.caseInsensitive,
);
}
return isVisible;
});
}
if (
this.virtualList &&
(forceLoad ||
filteredData.length !== (this.virtualList.items || []).length)
) {
this.virtualList.setItems(filteredData);
// this.virtualList.rerender();
}
}