Strippets.prototype.filter = function()

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();
        }
    });
};