Merge branch 'SI-2938-BUG-Freitextfilter-filtert-nicht-nach-BACKSPACE' of ssh://git.eclipse.org:29418/openk-usermodules/org.eclipse.openk-usermodules.gridFailureInformation.frontend into SI-2944-BUG-Stationsfilter-zeigt-keine-zusammengesetzte-Zellwerte
diff --git a/projects/grid-failure-information-app/src/app/shared/filters/ag-grid/set-filter/set-filter.component.spec.ts b/projects/grid-failure-information-app/src/app/shared/filters/ag-grid/set-filter/set-filter.component.spec.ts
index ca3b547..b0489df 100644
--- a/projects/grid-failure-information-app/src/app/shared/filters/ag-grid/set-filter/set-filter.component.spec.ts
+++ b/projects/grid-failure-information-app/src/app/shared/filters/ag-grid/set-filter/set-filter.component.spec.ts
@@ -62,6 +62,13 @@
     expect(component).toBeTruthy();
   });
 
+  it('should extend the setItems in _extendFilterItem when filterWord is test', () => {
+    const filterItems = { test: { checked: true } };
+    (component as any)._filteredItems = filterItems;
+    (component as any)._extendFilteredItem('test');
+    expect('test' in component.setItems).toBeTruthy();
+  });
+
   it('should filterCheckboxList with setItems', () => {
     component.setItems = [
       { AAA: {}, checked: true },
diff --git a/projects/grid-failure-information-app/src/app/shared/filters/ag-grid/set-filter/set-filter.component.ts b/projects/grid-failure-information-app/src/app/shared/filters/ag-grid/set-filter/set-filter.component.ts
index c26a093..e6db916 100644
--- a/projects/grid-failure-information-app/src/app/shared/filters/ag-grid/set-filter/set-filter.component.ts
+++ b/projects/grid-failure-information-app/src/app/shared/filters/ag-grid/set-filter/set-filter.component.ts
@@ -42,17 +42,17 @@
       .toLowerCase()
       .split(' ')
       .forEach(filterWord => {
-        for (var itemKey in this.setItems) {
-          if (!this._contains(itemKey, filterWord)) {
-            this._filteredItems[itemKey] = this.setItems[itemKey];
-            delete this.setItems[itemKey];
-          } else {
-            for (var filteredItem in this._filteredItems) {
-              if (this._contains(filteredItem, filterWord)) {
-                this.setItems[filteredItem] = this._filteredItems[filteredItem];
-              }
+        if (Object.keys(this.setItems).length > 0) {
+          for (var itemKey in this.setItems) {
+            if (!this._contains(itemKey, filterWord)) {
+              this._filteredItems[itemKey] = this.setItems[itemKey];
+              delete this.setItems[itemKey];
+            } else {
+              this._extendFilteredItem(filterWord);
             }
           }
+        } else {
+          this._extendFilteredItem(filterWord);
         }
         if (this.filterText.length !== 0) {
           this.selectAllChecked = false;
@@ -63,6 +63,14 @@
     this._params.filterChangedCallback();
   }
 
+  private _extendFilteredItem(filterWord: string): void {
+    for (var filteredItem in this._filteredItems) {
+      if (this._contains(filteredItem, filterWord)) {
+        this.setItems[filteredItem] = this._filteredItems[filteredItem];
+      }
+    }
+  }
+
   private _contains(sourceText: string, subString: string): boolean {
     return sourceText.toString().toLowerCase().indexOf(subString.toString().toLowerCase()) >= 0;
   }