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 106 107 108 109 | 17x 17x 17x 17x 91x 91x 26x 2x 2x 2x 24x 2x 24x 24x 24x 24x 24x 24x 24x 24x 24x 24x 24x 234x 234x 95x 95x 24x 95x 95x 139x 30x 30x 91x 234x 234x 249x 239x 139x 139x 124x 39x 85x 91x 4x 4x 4x 22x 4x | var classes = require('./utils/classes'), events = require('./utils/events'), List = require('./index') module.exports = function (list) { var isHidden = false var refresh = function (pagingList, options) { if (list.page < 1) { list.listContainer.style.display = 'none' isHidden = true return } else if (isHidden) { list.listContainer.style.display = 'block' } var item, l = list.matchingItems.length, index = list.i, page = list.page, pages = Math.ceil(l / page), currentPage = Math.ceil(index / page), innerWindow = options.innerWindow || 2, left = options.left || options.outerWindow || 0, right = options.right || options.outerWindow || 0 right = pages - right pagingList.clear() for (var i = 1; i <= pages; i++) { var className = currentPage === i ? 'active' : '' //console.log(i, left, right, currentPage, (currentPage - innerWindow), (currentPage + innerWindow), className); if (is.number(i, left, right, currentPage, innerWindow)) { item = pagingList.add({ page: i, dotted: false, })[0] if (className) { classes(item.elm).add(className) } item.elm.firstChild.setAttribute('data-i', i) item.elm.firstChild.setAttribute('data-page', page) } else if (is.dotted(pagingList, i, left, right, currentPage, innerWindow, pagingList.size())) { item = pagingList.add({ page: '...', dotted: true, })[0] classes(item.elm).add('disabled') } } } var is = { number: function (i, left, right, currentPage, innerWindow) { return this.left(i, left) || this.right(i, right) || this.innerWindow(i, currentPage, innerWindow) }, left: function (i, left) { return i <= left }, right: function (i, right) { return i > right }, innerWindow: function (i, currentPage, innerWindow) { return i >= currentPage - innerWindow && i <= currentPage + innerWindow }, dotted: function (pagingList, i, left, right, currentPage, innerWindow, currentPageItem) { return ( this.dottedLeft(pagingList, i, left, right, currentPage, innerWindow) || this.dottedRight(pagingList, i, left, right, currentPage, innerWindow, currentPageItem) ) }, dottedLeft: function (pagingList, i, left, right, currentPage, innerWindow) { return i == left + 1 && !this.innerWindow(i, currentPage, innerWindow) && !this.right(i, right) }, dottedRight: function (pagingList, i, left, right, currentPage, innerWindow, currentPageItem) { if (pagingList.items[currentPageItem - 1].values().dotted) { return false } else { return i == right && !this.innerWindow(i, currentPage, innerWindow) && !this.right(i, right) } }, } return function (options) { var pagingList = new List(list.listContainer.id, { listClass: options.paginationClass || 'pagination', item: options.item || "<li><a class='page' href='#'></a></li>", valueNames: ['page', 'dotted'], searchClass: 'pagination-search-that-is-not-supposed-to-exist', sortClass: 'pagination-sort-that-is-not-supposed-to-exist', }) events.bind(pagingList.listContainer, 'click', function (e) { var target = e.target || e.srcElement, page = list.utils.getAttribute(target, 'data-page'), i = list.utils.getAttribute(target, 'data-i') if (i) { list.show((i - 1) * page + 1, page) } }) list.on('updated', function () { refresh(pagingList, options) }) refresh(pagingList, options) } } |