Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | 17x 17x 17x 17x 17x 17x 17x 90x 90x 90x 5x 5x 50x 50x 50x 60x 60x 60x 11x 60x 49x 50x 60x 60x 60x 11x 49x 90x 2x 2x 90x 3x | var classes = require('./utils/classes'),
events = require('./utils/events'),
extend = require('./utils/extend'),
toString = require('./utils/to-string'),
getByClass = require('./utils/get-by-class'),
fuzzy = require('./utils/fuzzy')
module.exports = function (list, options) {
options = options || {}
options = extend(
{
location: 0,
distance: 100,
threshold: 0.4,
multiSearch: true,
searchClass: 'fuzzy-search',
},
options
)
var fuzzySearch = {
search: function (searchString, columns) {
// Substract arguments from the searchString or put searchString as only argument
var searchArguments = options.multiSearch ? searchString.replace(/ +$/, '').split(/ +/) : [searchString]
for (var k = 0, kl = list.items.length; k < kl; k++) {
fuzzySearch.item(list.items[k], columns, searchArguments)
}
},
item: function (item, columns, searchArguments) {
var found = true
for (var i = 0; i < searchArguments.length; i++) {
var foundArgument = false
for (var j = 0, jl = columns.length; j < jl; j++) {
if (fuzzySearch.values(item.values(), columns[j], searchArguments[i])) {
foundArgument = true
}
}
if (!foundArgument) {
found = false
}
}
item.found = found
},
values: function (values, value, searchArgument) {
Eif (values.hasOwnProperty(value)) {
var text = toString(values[value]).toLowerCase()
if (fuzzy(text, searchArgument, options)) {
return true
}
}
return false
},
}
events.bind(
getByClass(list.listContainer, options.searchClass),
'keyup',
list.utils.events.debounce(function (e) {
var target = e.target || e.srcElement // IE have srcElement
list.search(target.value, fuzzySearch.search)
}, list.searchDelay)
)
return function (str, columns) {
list.search(str, columns, fuzzySearch.search)
}
}
|