chromium/third_party/blink/perf_tests/speedometer20/resources/todomvc/dependency-examples/flight/flight/app/js/ui/with_filters.js

/*global define, $ */
'use strict';

define(function () {
    return function withFilters() {
        this.attributes({
            filterSelector: '#filters a'
        });

        this.chooseFilter = function (e, data) {
            var filter = data.el.hash.slice(2);

            this.select('filterSelector').removeClass('selected');
            $(data.el).addClass('selected');
            this.trigger('uiFilterRequested', { filter: filter });
        };

        this.markSelected = function (filter) {
            this.$node.find('[href="#/' + filter + '"]').addClass('selected');
        };

        this.after('initialize', function () {
            this.on('click', { filterSelector: this.chooseFilter });
        });
    };
});