90
}
91
}
93
return false;
94
}
96
>
// Honor ids cached by filters that have not been registered yet, so they remain
97
>
// excluded until the owning filter takes over.
98
>
for (const [filterId, ids] of this._cachedFilteredOutIds) {
99
if (!this._registeredFilterIds.has(filterId) && ids.has(assignment)) {
100
return false;
101
}
102
}
104
>
return true;
105
>
});
106
>
107
>
// Persist the reconciled cache: registered filters contribute exactly what they
108
>
// currently exclude (dropping ids that are no longer filtered out), while entries owned
109
>
// by not-yet-registered filters are preserved.
110
>
const next = new Map<string, Set<string>>();
111
>
for (const [filterId, ids] of this._cachedFilteredOutIds) {
112
if (!this._registeredFilterIds.has(filterId)) {
113
next.set(filterId, ids);
114
}
115
}
117
next.set(filterId, ids);
118
}
120
>
121
>
return filteredAssignments.join(';');
122
>
}
123
124
private _loadFilteredOutIds(): Map<string, Set<string>> {