/** * Created by casic203 on 2016/3/25. */ ! function a(b, c, d) { function e(g, h) { if (!c[g]) { if (!b[g]) { var i = "function" == typeof require && require; if (!h && i) return i(g, !0); if (f) return f(g, !0); var j = new Error("Cannot find module '" + g + "'"); throw j.code = "MODULE_NOT_FOUND", j } var k = c[g] = { exports: {} }; b[g][0].call(k.exports, function(a) { var c = b[g][1][a]; return e(c ? c : a) }, k, k.exports, a, b, c, d) } return c[g].exports } for (var f = "function" == typeof require && require, g = 0; g < d.length; g++) e(d[g]); return e }({ 1: [function(a, b, c) { ! function(c, d) { "use strict"; var e = c.document, f = a("./src/utils/get-by-class"), g = a("./src/utils/extend"), h = a("./src/utils/index-of"), i = a("./src/utils/events"), j = a("./src/utils/to-string"), k = a("./src/utils/natural-sort"), l = a("./src/utils/classes"), m = a("./src/utils/get-attribute"), n = a("./src/utils/to-array"), o = function(b, c, p) { var q, r = this, s = a("./src/item")(r), t = a("./src/add-async")(r); q = { start: function() { r.listClass = "list", r.searchClass = "search", r.sortClass = "sort", r.page = 1e4, r.i = 1, r.items = [], r.visibleItems = [], r.matchingItems = [], r.searched = !1, r.filtered = !1, r.searchColumns = d, r.handlers = { updated: [] }, r.plugins = {}, r.valueNames = [], r.utils = { getByClass: f, extend: g, indexOf: h, events: i, toString: j, naturalSort: k, classes: l, getAttribute: m, toArray: n }, r.utils.extend(r, c), r.listContainer = "string" == typeof b ? e.getElementById(b) : b, r.listContainer && (r.list = f(r.listContainer, r.listClass, !0), r.parse = a("./src/parse")(r), r.templater = a("./src/templater")(r), r.search = a("./src/search")(r), r.filter = a("./src/filter")(r), r.sort = a("./src/sort")(r), this.handlers(), this.items(), r.update(), this.plugins()) }, handlers: function() { for (var a in r.handlers) r[a] && r.on(a, r[a]) }, items: function() { r.parse(r.list), p !== d && r.add(p) }, plugins: function() { for (var a = 0; a < r.plugins.length; a++) { var b = r.plugins[a]; r[b.name] = b, b.init(r, o) } } }, this.reIndex = function() { r.items = [], r.visibleItems = [], r.matchingItems = [], r.searched = !1, r.filtered = !1, r.parse(r.list) }, this.toJSON = function() { for (var a = [], b = 0, c = r.items.length; c > b; b++) a.push(r.items[b].values()); return a }, this.add = function(a, b) { if (0 !== a.length) { if (b) return void t(a, b); var c = [], e = !1; a[0] === d && (a = [a]); for (var f = 0, g = a.length; g > f; f++) { var h = null; e = r.items.length > r.page ? !0 : !1, h = new s(a[f], d, e), r.items.push(h), c.push(h) } return r.update(), c } }, this.show = function(a, b) { return this.i = a, this.page = b, r.update(), r }, this.remove = function(a, b, c) { for (var d = 0, e = 0, f = r.items.length; f > e; e++) r.items[e].values()[a] == b && (r.templater.remove(r.items[e], c), r.items.splice(e, 1), f--, e--, d++); return r.update(), d }, this.get = function(a, b) { for (var c = [], d = 0, e = r.items.length; e > d; d++) { var f = r.items[d]; f.values()[a] == b && c.push(f) } return c }, this.size = function() { return r.items.length }, this.clear = function() { return r.templater.clear(), r.items = [], r }, this.on = function(a, b) { return r.handlers[a].push(b), r }, this.off = function(a, b) { var c = r.handlers[a], d = h(c, b); return d > -1 && c.splice(d, 1), r }, this.trigger = function(a) { for (var b = r.handlers[a].length; b--;) r.handlers[a][b](r); return r }, this.reset = { filter: function() { for (var a = r.items, b = a.length; b--;) a[b].filtered = !1; return r }, search: function() { for (var a = r.items, b = a.length; b--;) a[b].found = !1; return r } }, this.update = function() { var a = r.items, b = a.length; r.visibleItems = [], r.matchingItems = [], r.templater.clear(); for (var c = 0; b > c; c++) a[c].matching() && r.matchingItems.length + 1 >= r.i && r.visibleItems.length < r.page ? (a[c].show(), r.visibleItems.push(a[c]), r.matchingItems.push(a[c])) : a[c].matching() ? (r.matchingItems.push(a[c]), a[c].hide()) : a[c].hide(); return r.trigger("updated"), r }, q.start() }; "function" == typeof define && define.amd && define(function() { return o }), b.exports = o, c.List = o }(window) }, { "./src/add-async": 2, "./src/filter": 3, "./src/item": 4, "./src/parse": 5, "./src/search": 6, "./src/sort": 7, "./src/templater": 8, "./src/utils/classes": 9, "./src/utils/events": 10, "./src/utils/extend": 11, "./src/utils/get-attribute": 12, "./src/utils/get-by-class": 13, "./src/utils/index-of": 14, "./src/utils/natural-sort": 15, "./src/utils/to-array": 16, "./src/utils/to-string": 17 }], 2: [function(a, b, c) { b.exports = function(a) { var b = function(c, d, e) { var f = c.splice(0, 50); e = e || [], e = e.concat(a.add(f)), c.length > 0 ? setTimeout(function() { b(c, d, e) }, 1) : (a.update(), d(e)) }; return b } }, {}], 3: [function(a, b, c) { b.exports = function(a) { return a.handlers.filterStart = a.handlers.filterStart || [], a.handlers.filterComplete = a.handlers.filterComplete || [], function(b) { if (a.trigger("filterStart"), a.i = 1, a.reset.filter(), void 0 === b) a.filtered = !1; else { a.filtered = !0; for (var c = a.items, d = 0, e = c.length; e > d; d++) { var f = c[d]; b(f) ? f.filtered = !0 : f.filtered = !1 } } return a.update(), a.trigger("filterComplete"), a.visibleItems } } }, {}], 4: [function(a, b, c) { b.exports = function(a) { return function(b, c, d) { var e = this; this._values = {}, this.found = !1, this.filtered = !1; var f = function(b, c, d) { if (void 0 === c) d ? e.values(b, d) : e.values(b); else { e.elm = c; var f = a.templater.get(e, b); e.values(f) } }; this.values = function(b, c) { if (void 0 === b) return e._values; for (var d in b) e._values[d] = b[d]; c !== !0 && a.templater.set(e, e.values()) }, this.show = function() { a.templater.show(e) }, this.hide = function() { a.templater.hide(e) }, this.matching = function() { return a.filtered && a.searched && e.found && e.filtered || a.filtered && !a.searched && e.filtered || !a.filtered && a.searched && e.found || !a.filtered && !a.searched }, this.visible = function() { return e.elm && e.elm.parentNode == a.list ? !0 : !1 }, f(b, c, d) } } }, {}], 5: [function(a, b, c) { b.exports = function(b) { var c = a("./item")(b), d = function(a) { for (var b = a.childNodes, c = [], d = 0, e = b.length; e > d; d++) void 0 === b[d].data && c.push(b[d]); return c }, e = function(a, d) { for (var e = 0, f = a.length; f > e; e++) b.items.push(new c(d, a[e])) }, f = function(a, c) { var d = a.splice(0, 50); e(d, c), a.length > 0 ? setTimeout(function() { f(a, c) }, 1) : (b.update(), b.trigger("parseComplete")) }; return b.handlers.parseComplete = b.handlers.parseComplete || [], function() { var a = d(b.list), c = b.valueNames; b.indexAsync ? f(a, c) : e(a, c) } } }, { "./item": 4 }], 6: [function(a, b, c) { b.exports = function(a) { var b, c, d, e, f = { resetList: function() { a.i = 1, a.templater.clear(), e = void 0 }, setOptions: function(a) { 2 == a.length && a[1] instanceof Array ? c = a[1] : 2 == a.length && "function" == typeof a[1] ? e = a[1] : 3 == a.length && (c = a[1], e = a[2]) }, setColumns: function() { 0 !== a.items.length && void 0 === c && (c = void 0 === a.searchColumns ? f.toArray(a.items[0].values()) : a.searchColumns) }, setSearchString: function(b) { b = a.utils.toString(b).toLowerCase(), b = b.replace(/[-[\]{}()*+?.,\\^$|#]/g, "\\$&"), d = b }, toArray: function(a) { var b = []; for (var c in a) b.push(c); return b } }, g = { list: function() { for (var b = 0, c = a.items.length; c > b; b++) g.item(a.items[b]) }, item: function(a) { a.found = !1; for (var b = 0, d = c.length; d > b; b++) if (g.values(a.values(), c[b])) return void(a.found = !0) }, values: function(c, e) { return c.hasOwnProperty(e) && (b = a.utils.toString(c[e]).toLowerCase(), "" !== d && b.search(d) > -1) ? !0 : !1 }, reset: function() { a.reset.search(), a.searched = !1 } }, h = function(b) { return a.trigger("searchStart"), f.resetList(), f.setSearchString(b), f.setOptions(arguments), f.setColumns(), "" === d ? g.reset() : (a.searched = !0, e ? e(d, c) : g.list()), a.update(), a.trigger("searchComplete"), a.visibleItems }; return a.handlers.searchStart = a.handlers.searchStart || [], a.handlers.searchComplete = a.handlers.searchComplete || [], a.utils.events.bind(a.utils.getByClass(a.listContainer, a.searchClass), "keyup", function(b) { var c = b.target || b.srcElement, d = "" === c.value && !a.searched; d || h(c.value) }), a.utils.events.bind(a.utils.getByClass(a.listContainer, a.searchClass), "input", function(a) { var b = a.target || a.srcElement; "" === b.value && h("") }), h } }, {}], 7: [function(a, b, c) { b.exports = function(a) { a.sortFunction = a.sortFunction || function(b, c, d) { return d.desc = "desc" == d.order ? !0 : !1, a.utils.naturalSort(b.values()[d.valueName], c.values()[d.valueName], d) }; var b = { els: void 0, clear: function() { for (var c = 0, d = b.els.length; d > c; c++) a.utils.classes(b.els[c]).remove("asc"), a.utils.classes(b.els[c]).remove("desc") }, getOrder: function(b) { var c = a.utils.getAttribute(b, "data-order"); return "asc" == c || "desc" == c ? c : a.utils.classes(b).has("desc") ? "asc" : a.utils.classes(b).has("asc") ? "desc" : "asc" }, getInSensitive: function(b, c) { var d = a.utils.getAttribute(b, "data-insensitive"); "false" === d ? c.insensitive = !1 : c.insensitive = !0 }, setOrder: function(c) { for (var d = 0, e = b.els.length; e > d; d++) { var f = b.els[d]; if (a.utils.getAttribute(f, "data-sort") === c.valueName) { var g = a.utils.getAttribute(f, "data-order"); "asc" == g || "desc" == g ? g == c.order && a.utils.classes(f).add(c.order) : a.utils.classes(f).add(c.order) } } } }, c = function() { a.trigger("sortStart"); var c = {}, d = arguments[0].currentTarget || arguments[0].srcElement || void 0; d ? (c.valueName = a.utils.getAttribute(d, "data-sort"), b.getInSensitive(d, c), c.order = b.getOrder(d)) : (c = arguments[1] || c, c.valueName = arguments[0], c.order = c.order || "asc", c.insensitive = "undefined" == typeof c.insensitive ? !0 : c.insensitive), b.clear(), b.setOrder(c), c.sortFunction = c.sortFunction || a.sortFunction, a.items.sort(function(a, b) { var d = "desc" === c.order ? -1 : 1; return c.sortFunction(a, b, c) * d }), a.update(), a.trigger("sortComplete") }; return a.handlers.sortStart = a.handlers.sortStart || [], a.handlers.sortComplete = a.handlers.sortComplete || [], b.els = a.utils.getByClass(a.listContainer, a.sortClass), a.utils.events.bind(b.els, "click", c), a.on("searchStart", b.clear), a.on("filterStart", b.clear), c } }, {}], 8: [function(a, b, c) { var d = function(a) { var b, c = this, d = function() { b = c.getItemSource(a.item), b = c.clearSourceItem(b, a.valueNames) }; this.clearSourceItem = function(b, c) { for (var d = 0, e = c.length; e > d; d++) { var f; if (c[d].data) for (var g = 0, h = c[d].data.length; h > g; g++) b.setAttribute("data-" + c[d].data[g], ""); else c[d].attr && c[d].name ? (f = a.utils.getByClass(b, c[d].name, !0), f && f.setAttribute(c[d].attr, "")) : (f = a.utils.getByClass(b, c[d], !0), f && (f.innerHTML = "")); f = void 0 } return b }, this.getItemSource = function(b) { if (void 0 === b) { for (var c = a.list.childNodes, d = 0, e = c.length; e > d; d++) if (void 0 === c[d].data) return c[d].cloneNode(!0) } else { if (/^tr[\s>]/.exec(b)) { var f = document.createElement("table"); return f.innerHTML = b, f.firstChild } if (-1 !== b.indexOf("<")) { var g = document.createElement("div"); return g.innerHTML = b, g.firstChild } var h = document.getElementById(a.item); if (h) return h } throw new Error("The list need to have at list one item on init otherwise you'll have to add a template.") }, this.get = function(b, d) { c.create(b); for (var e = {}, f = 0, g = d.length; g > f; f++) { var h; if (d[f].data) for (var i = 0, j = d[f].data.length; j > i; i++) e[d[f].data[i]] = a.utils.getAttribute(b.elm, "data-" + d[f].data[i]); else d[f].attr && d[f].name ? (h = a.utils.getByClass(b.elm, d[f].name, !0), e[d[f].name] = h ? a.utils.getAttribute(h, d[f].attr) : "") : (h = a.utils.getByClass(b.elm, d[f], !0), e[d[f]] = h ? h.innerHTML : ""); h = void 0 } return e }, this.set = function(b, d) { var e = function(b) { for (var c = 0, d = a.valueNames.length; d > c; c++) if (a.valueNames[c].data) { for (var e = a.valueNames[c].data, f = 0, g = e.length; g > f; f++) if (e[f] === b) return { data: b } } else { if (a.valueNames[c].attr && a.valueNames[c].name && a.valueNames[c].name == b) return a.valueNames[c]; if (a.valueNames[c] === b) return b } }, f = function(c, d) { var f, g = e(c); g && (g.data ? b.elm.setAttribute("data-" + g.data, d) : g.attr && g.name ? (f = a.utils.getByClass(b.elm, g.name, !0), f && f.setAttribute(g.attr, d)) : (f = a.utils.getByClass(b.elm, g, !0), f && (f.innerHTML = d)), f = void 0) }; if (!c.create(b)) for (var g in d) d.hasOwnProperty(g) && f(g, d[g]) }, this.create = function(a) { if (void 0 !== a.elm) return !1; var d = b.cloneNode(!0); return d.removeAttribute("id"), a.elm = d, c.set(a, a.values()), !0 }, this.remove = function(b) { b.elm.parentNode === a.list && a.list.removeChild(b.elm) }, this.show = function(b) { c.create(b), a.list.appendChild(b.elm) }, this.hide = function(b) { void 0 !== b.elm && b.elm.parentNode === a.list && a.list.removeChild(b.elm) }, this.clear = function() { if (a.list.hasChildNodes()) for (; a.list.childNodes.length >= 1;) a.list.removeChild(a.list.firstChild) }, d() }; b.exports = function(a) { return new d(a) } }, {}], 9: [function(a, b, c) { function d(a) { if (!a || !a.nodeType) throw new Error("A DOM element reference is required"); this.el = a, this.list = a.classList } var e = a("./index-of"), f = /\s+/, g = Object.prototype.toString; b.exports = function(a) { return new d(a) }, d.prototype.add = function(a) { if (this.list) return this.list.add(a), this; var b = this.array(), c = e(b, a); return ~c || b.push(a), this.el.className = b.join(" "), this }, d.prototype.remove = function(a) { if ("[object RegExp]" == g.call(a)) return this.removeMatching(a); if (this.list) return this.list.remove(a), this; var b = this.array(), c = e(b, a); return ~c && b.splice(c, 1), this.el.className = b.join(" "), this }, d.prototype.removeMatching = function(a) { for (var b = this.array(), c = 0; c < b.length; c++) a.test(b[c]) && this.remove(b[c]); return this }, d.prototype.toggle = function(a, b) { return this.list ? ("undefined" != typeof b ? b !== this.list.toggle(a, b) && this.list.toggle(a) : this.list.toggle(a), this) : ("undefined" != typeof b ? b ? this.add(a) : this.remove(a) : this.has(a) ? this.remove(a) : this.add(a), this) }, d.prototype.array = function() { var a = this.el.getAttribute("class") || "", b = a.replace(/^\s+|\s+$/g, ""), c = b.split(f); return "" === c[0] && c.shift(), c }, d.prototype.has = d.prototype.contains = function(a) { return this.list ? this.list.contains(a) : !!~e(this.array(), a) } }, { "./index-of": 14 }], 10: [function(a, b, c) { var d = window.addEventListener ? "addEventListener" : "attachEvent", e = window.removeEventListener ? "removeEventListener" : "detachEvent", f = "addEventListener" !== d ? "on" : "", g = a("./to-array"); c.bind = function(a, b, c, e) { a = g(a); for (var h = 0; h < a.length; h++) a[h][d](f + b, c, e || !1) }, c.unbind = function(a, b, c, d) { a = g(a); for (var h = 0; h < a.length; h++) a[h][e](f + b, c, d || !1) } }, { "./to-array": 16 }], 11: [function(a, b, c) { b.exports = function(a) { for (var b, c = Array.prototype.slice.call(arguments, 1), d = 0; b = c[d]; d++) if (b) for (var e in b) a[e] = b[e]; return a } }, {}], 12: [function(a, b, c) { b.exports = function(a, b) { var c = a.getAttribute && a.getAttribute(b) || null; if (!c) for (var d = a.attributes, e = d.length, f = 0; e > f; f++) void 0 !== b[f] && b[f].nodeName === b && (c = b[f].nodeValue); return c } }, {}], 13: [function(a, b, c) { b.exports = function() { return document.getElementsByClassName ? function(a, b, c) { return c ? a.getElementsByClassName(b)[0] : a.getElementsByClassName(b) } : document.querySelector ? function(a, b, c) { return b = "." + b, c ? a.querySelector(b) : a.querySelectorAll(b) } : function(a, b, c) { var d = [], e = "*"; null === a && (a = document); for (var f = a.getElementsByTagName(e), g = f.length, h = new RegExp("(^|\\s)" + b + "(\\s|$)"), i = 0, j = 0; g > i; i++) if (h.test(f[i].className)) { if (c) return f[i]; d[j] = f[i], j++ } return d } }() }, {}], 14: [function(a, b, c) { var d = [].indexOf; b.exports = function(a, b) { if (d) return a.indexOf(b); for (var c = 0; c < a.length; ++c) if (a[c] === b) return c; return -1 } }, {}], 15: [function(a, b, c) { b.exports = function(a, b, c) { var d, e, f = /(^([+\-]?(?:\d*)(?:\.\d*)?(?:[eE][+\-]?\d+)?)?$|^0x[\da-fA-F]+$|\d+)/g, g = /^\s+|\s+$/g, h = /\s+/g, i = /(^([\w ]+,?[\w ]+)?[\w ]+,?[\w ]+\d+:\d+(:\d+)?[\w ]?|^\d{1,4}[\/\-]\d{1,4}[\/\-]\d{1,4}|^\w+, \w+ \d+, \d{4})/, j = /^0x[0-9a-f]+$/i, k = /^0/, l = c || {}, m = function(a) { return l.insensitive && ("" + a).toLowerCase() || "" + a }, n = m(a) || "", o = m(b) || "", p = n.replace(f, "\x00$1\x00").replace(/\0$/, "").replace(/^\0/, "").split("\x00"), q = o.replace(f, "\x00$1\x00").replace(/\0$/, "").replace(/^\0/, "").split("\x00"), r = parseInt(n.match(j), 16) || 1 !== p.length && Date.parse(n), s = parseInt(o.match(j), 16) || r && o.match(i) && Date.parse(o) || null, t = function(a, b) { return (!a.match(k) || 1 == b) && parseFloat(a) || a.replace(h, " ").replace(g, "") || 0 }; if (s) { if (s > r) return -1; if (r > s) return 1 } for (var u = 0, v = p.length, w = q.length, x = Math.max(v, w); x > u; u++) { if (d = t(p[u], v), e = t(q[u], w), isNaN(d) !== isNaN(e)) return isNaN(d) ? 1 : -1; if (typeof d != typeof e && (d += "", e += ""), e > d) return -1; if (d > e) return 1 } return 0 } }, {}], 16: [function(a, b, c) { function d(a) { return "[object Array]" === Object.prototype.toString.call(a) } b.exports = function(a) { if ("undefined" == typeof a) return []; if (null === a) return [null]; if (a === window) return [window]; if ("string" == typeof a) return [a]; if (d(a)) return a; if ("number" != typeof a.length) return [a]; if ("function" == typeof a && a instanceof Function) return [a]; for (var b = [], c = 0; c < a.length; c++)(Object.prototype.hasOwnProperty.call(a, c) || c in a) && b.push(a[c]); return b.length ? b : [] } }, {}], 17: [function(a, b, c) { b.exports = function(a) { return a = void 0 === a ? "" : a, a = null === a ? "" : a, a = a.toString() } }, {}] }, {}, [1]);