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 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 | 17x 90x 174x 39x 39x 10x 10x 5x 5x 1x 4x 1x 3x 10x 10x 10x 33x 33x 33x 33x 33x 22x 11x 11x 90x 33x 33x 33x 33x 10x 10x 10x 23x 23x 23x 23x 33x 33x 33x 33x 33x 3x 32x 30x 191x 191x 191x 144x 191x 33x 33x 33x 90x 90x 90x 90x 90x 90x 90x | module.exports = function (list) { var buttons = { els: undefined, clear: function () { for (var i = 0, il = buttons.els.length; i < il; i++) { list.utils.classes(buttons.els[i]).remove('asc') list.utils.classes(buttons.els[i]).remove('desc') } }, getOrder: function (btn) { var predefinedOrder = list.utils.getAttribute(btn, 'data-order') if (predefinedOrder == 'asc' || predefinedOrder == 'desc') { return predefinedOrder } else if (list.utils.classes(btn).has('desc')) { return 'asc' } else if (list.utils.classes(btn).has('asc')) { return 'desc' } else { return 'asc' } }, getInSensitive: function (btn, options) { var insensitive = list.utils.getAttribute(btn, 'data-insensitive') Iif (insensitive === 'false') { options.insensitive = false } else { options.insensitive = true } }, setOrder: function (options) { for (var i = 0, il = buttons.els.length; i < il; i++) { var btn = buttons.els[i] Iif (list.utils.getAttribute(btn, 'data-sort') !== options.valueName) { continue } var predefinedOrder = list.utils.getAttribute(btn, 'data-order') if (predefinedOrder == 'asc' || predefinedOrder == 'desc') { if (predefinedOrder == options.order) { list.utils.classes(btn).add(options.order) } } else { list.utils.classes(btn).add(options.order) } } }, } var sort = function () { list.trigger('sortStart') var options = {} var target = arguments[0].currentTarget || arguments[0].srcElement || undefined if (target) { options.valueName = list.utils.getAttribute(target, 'data-sort') buttons.getInSensitive(target, options) options.order = buttons.getOrder(target) } else { options = arguments[1] || options options.valueName = arguments[0] options.order = options.order || 'asc' options.insensitive = typeof options.insensitive == 'undefined' ? true : options.insensitive } buttons.clear() buttons.setOrder(options) // caseInsensitive // alphabet var customSortFunction = options.sortFunction || list.sortFunction || null, multi = options.order === 'desc' ? -1 : 1, sortFunction if (customSortFunction) { sortFunction = function (itemA, itemB) { return customSortFunction(itemA, itemB, options) * multi } } else { sortFunction = function (itemA, itemB) { var sort = list.utils.naturalSort sort.alphabet = list.alphabet || options.alphabet || undefined if (!sort.alphabet && options.insensitive) { sort = list.utils.naturalSort.caseInsensitive } return sort(itemA.values()[options.valueName], itemB.values()[options.valueName]) * multi } } list.items.sort(sortFunction) list.update() list.trigger('sortComplete') } // Add handlers list.handlers.sortStart = list.handlers.sortStart || [] list.handlers.sortComplete = list.handlers.sortComplete || [] buttons.els = list.utils.getByClass(list.listContainer, list.sortClass) list.utils.events.bind(buttons.els, 'click', sort) list.on('searchStart', buttons.clear) list.on('filterStart', buttons.clear) return sort } |