in lib/@uncharted/strippets/src/strippets.js [465:489]
Strippets.prototype.filter = function(filter, onceOnly) {
var t = this;
if (!onceOnly) {
this._globalFilter = filter;
}
var promises = [];
_.each(this._items, function(outline) {
// if filter is null, then show. Otherwise, check if filter is an array, value or function and address accordingly.
var shouldShow = Outline.shouldShow(outline.data, filter);
var hidden = outline.getToState() === 'hidden';
if (shouldShow && hidden) {
promises.push(outline.transitionState('minimal'));
} else if (!shouldShow && !hidden) {
promises.push(outline.transitionState('hidden'));
}
});
return Promise.all(promises).then(function() {
if (t.config.centerAfterFilter) {
t.startAutoCentering();
}
});
};