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 | 18x 18x 18x 18x 18x 19x 19x 1x 18x 18x 21x 21x 7x 14x 3x 11x 3x 8x 18x 138x 8x 8x 18x 43x 50x 50x 7x 7x 7x 43x 43x 24x 12x 12x 12x 12x 19x 19x 18x 100x 16x 16x 16x 16x 16x 16x 16x 16x 16x 18x | var getAttribute = require('./utils/get-attribute') var classes = require('./utils/classes') var events = require('./utils/events') var sorter = require('./sorter') var getInSensitive = function (btn) { var insensitive = getAttribute(btn, 'data-insensitive') if (insensitive === 'false') { return false } else { return true } } var getNextOrder = function (btn) { var predefinedOrder = getAttribute(btn, 'data-order') if (predefinedOrder == 'asc' || predefinedOrder == 'desc') { return predefinedOrder } else if (classes(btn).has('desc')) { return 'asc' } else if (classes(btn).has('asc')) { return 'desc' } else { return 'asc' } } var clearOrder = function (els) { for (var i = 0, il = els.length; i < il; i++) { classes(els[i]).remove('asc') classes(els[i]).remove('desc') } } var setOrder = function (els, valueName, order) { for (var i = 0, il = els.length; i < il; i++) { var btn = els[i] if (getAttribute(btn, 'data-sort') !== valueName) { classes(btn).remove('asc') classes(btn).remove('desc') continue } var predefinedOrder = getAttribute(btn, 'data-order') if (predefinedOrder == 'asc' || predefinedOrder == 'desc') { if (predefinedOrder == order) { classes(btn).add(order) classes(btn).remove(order === 'asc' ? 'desc' : 'asc') } else { classes(btn).remove('asc') classes(btn).remove('desc') } } else { classes(btn).add(order) classes(btn).remove(order === 'asc' ? 'desc' : 'asc') } } } var addSortListeners = function (elements, { items, sortFunction, alphabet, before, after } = {}) { events.bind(elements, 'click', function () { if (before) before() var target = arguments[0].currentTarget || arguments[0].srcElement || undefined var valueName = getAttribute(target, 'data-sort') var order = getNextOrder(target) var insensitive = getInSensitive(target) var options = { sortFunction, insensitive, alphabet, order, } setOrder(elements, valueName, order) sorter(items, valueName, options) if (after) after() }) } module.exports = { addSortListeners, getInSensitive, getNextOrder, setOrder, clearOrder } |