list.js
Version:
The perfect library for lists. Supports search, sort, filters and flexibility. Built to be invisible and work on existing HTML
29 lines (27 loc) • 748 B
JavaScript
module.exports = function (list) {
// Add handlers
list.handlers.filterStart = list.handlers.filterStart || []
list.handlers.filterComplete = list.handlers.filterComplete || []
return function (filterFunction) {
list.trigger('filterStart')
list.i = 1 // Reset paging
list.reset.filter()
if (filterFunction === undefined) {
list.filtered = false
} else {
list.filtered = true
var is = list.items
for (var i = 0, il = is.length; i < il; i++) {
var item = is[i]
if (filterFunction(item)) {
item.filtered = true
} else {
item.filtered = false
}
}
}
list.update()
list.trigger('filterComplete')
return list.visibleItems
}
}