diff options
Diffstat (limited to 'docs/static/js/application.js')
| -rw-r--r-- | docs/static/js/application.js | 1577 |
1 files changed, 1577 insertions, 0 deletions
diff --git a/docs/static/js/application.js b/docs/static/js/application.js new file mode 100644 index 00000000..6245bb4f --- /dev/null +++ b/docs/static/js/application.js @@ -0,0 +1,1577 @@ +function pegasus(t, e) { + return ( + (e = new XMLHttpRequest()), + e.open("GET", t), + (t = []), + (e.onreadystatechange = e.then = function (n, o, i, r) { + if ( + (n && n.call && (t = [, n, o]), + 4 == e.readyState && (i = t[0 | (e.status / 200)])) + ) { + try { + r = JSON.parse(e.responseText); + } catch (s) { + r = null; + } + i(r, e); + } + }), + e.send(), + e + ); +} +if ( + ("document" in self && + ("classList" in document.createElement("_") + ? !(function () { + "use strict"; + var t = document.createElement("_"); + if ((t.classList.add("c1", "c2"), !t.classList.contains("c2"))) { + var e = function (t) { + var e = DOMTokenList.prototype[t]; + DOMTokenList.prototype[t] = function (t) { + var n, + o = arguments.length; + for (n = 0; o > n; n++) (t = arguments[n]), e.call(this, t); + }; + }; + e("add"), e("remove"); + } + if ((t.classList.toggle("c3", !1), t.classList.contains("c3"))) { + var n = DOMTokenList.prototype.toggle; + DOMTokenList.prototype.toggle = function (t, e) { + return 1 in arguments && !this.contains(t) == !e + ? e + : n.call(this, t); + }; + } + t = null; + })() + : !(function (t) { + "use strict"; + if ("Element" in t) { + var e = "classList", + n = "prototype", + o = t.Element[n], + i = Object, + r = + String[n].trim || + function () { + return this.replace(/^\s+|\s+$/g, ""); + }, + s = + Array[n].indexOf || + function (t) { + for (var e = 0, n = this.length; n > e; e++) + if (e in this && this[e] === t) return e; + return -1; + }, + a = function (t, e) { + (this.name = t), + (this.code = DOMException[t]), + (this.message = e); + }, + c = function (t, e) { + if ("" === e) + throw new a( + "SYNTAX_ERR", + "An invalid or illegal string was specified" + ); + if (/\s/.test(e)) + throw new a( + "INVALID_CHARACTER_ERR", + "String contains an invalid character" + ); + return s.call(t, e); + }, + l = function (t) { + for ( + var e = r.call(t.getAttribute("class") || ""), + n = e ? e.split(/\s+/) : [], + o = 0, + i = n.length; + i > o; + o++ + ) + this.push(n[o]); + this._updateClassName = function () { + t.setAttribute("class", this.toString()); + }; + }, + u = (l[n] = []), + d = function () { + return new l(this); + }; + if ( + ((a[n] = Error[n]), + (u.item = function (t) { + return this[t] || null; + }), + (u.contains = function (t) { + return (t += ""), -1 !== c(this, t); + }), + (u.add = function () { + var t, + e = arguments, + n = 0, + o = e.length, + i = !1; + do + (t = e[n] + ""), + -1 === c(this, t) && (this.push(t), (i = !0)); + while (++n < o); + i && this._updateClassName(); + }), + (u.remove = function () { + var t, + e, + n = arguments, + o = 0, + i = n.length, + r = !1; + do + for (t = n[o] + "", e = c(this, t); -1 !== e;) + this.splice(e, 1), (r = !0), (e = c(this, t)); + while (++o < i); + r && this._updateClassName(); + }), + (u.toggle = function (t, e) { + t += ""; + var n = this.contains(t), + o = n ? e !== !0 && "remove" : e !== !1 && "add"; + return o && this[o](t), e === !0 || e === !1 ? e : !n; + }), + (u.toString = function () { + return this.join(" "); + }), + i.defineProperty) + ) { + var h = { get: d, enumerable: !0, configurable: !0 }; + try { + i.defineProperty(o, e, h); + } catch (f) { + -2146823252 === f.number && + ((h.enumerable = !1), i.defineProperty(o, e, h)); + } + } else i[n].__defineGetter__ && o.__defineGetter__(e, d); + } + })(self)), + (function () { + "use strict"; + function t(e, o) { + function i(t, e) { + return function () { + return t.apply(e, arguments); + }; + } + var r; + if ( + ((o = o || {}), + (this.trackingClick = !1), + (this.trackingClickStart = 0), + (this.targetElement = null), + (this.touchStartX = 0), + (this.touchStartY = 0), + (this.lastTouchIdentifier = 0), + (this.touchBoundary = o.touchBoundary || 10), + (this.layer = e), + (this.tapDelay = o.tapDelay || 200), + (this.tapTimeout = o.tapTimeout || 700), + !t.notNeeded(e)) + ) { + for ( + var s = [ + "onMouse", + "onClick", + "onTouchStart", + "onTouchMove", + "onTouchEnd", + "onTouchCancel" + ], + a = this, + c = 0, + l = s.length; + l > c; + c++ + ) + a[s[c]] = i(a[s[c]], a); + n && + (e.addEventListener("mouseover", this.onMouse, !0), + e.addEventListener("mousedown", this.onMouse, !0), + e.addEventListener("mouseup", this.onMouse, !0)), + e.addEventListener("click", this.onClick, !0), + e.addEventListener("touchstart", this.onTouchStart, !1), + e.addEventListener("touchmove", this.onTouchMove, !1), + e.addEventListener("touchend", this.onTouchEnd, !1), + e.addEventListener("touchcancel", this.onTouchCancel, !1), + Event.prototype.stopImmediatePropagation || + ((e.removeEventListener = function (t, n, o) { + var i = Node.prototype.removeEventListener; + "click" === t + ? i.call(e, t, n.hijacked || n, o) + : i.call(e, t, n, o); + }), + (e.addEventListener = function (t, n, o) { + var i = Node.prototype.addEventListener; + "click" === t + ? i.call( + e, + t, + n.hijacked || + (n.hijacked = function (t) { + t.propagationStopped || n(t); + }), + o + ) + : i.call(e, t, n, o); + })), + "function" == typeof e.onclick && + ((r = e.onclick), + e.addEventListener( + "click", + function (t) { + r(t); + }, + !1 + ), + (e.onclick = null)); + } + } + var e = navigator.userAgent.indexOf("Windows Phone") >= 0, + n = navigator.userAgent.indexOf("Android") > 0 && !e, + o = /iP(ad|hone|od)/.test(navigator.userAgent) && !e, + i = o && /OS 4_\d(_\d)?/.test(navigator.userAgent), + r = o && /OS [6-7]_\d/.test(navigator.userAgent), + s = navigator.userAgent.indexOf("BB10") > 0; + (t.prototype.needsClick = function (t) { + switch (t.nodeName.toLowerCase()) { + case "button": + case "select": + case "textarea": + if (t.disabled) return !0; + break; + case "input": + if ((o && "file" === t.type) || t.disabled) return !0; + break; + case "label": + case "iframe": + case "video": + return !0; + } + return /\bneedsclick\b/.test(t.className); + }), + (t.prototype.needsFocus = function (t) { + switch (t.nodeName.toLowerCase()) { + case "textarea": + return !0; + case "select": + return !n; + case "input": + switch (t.type) { + case "button": + case "checkbox": + case "file": + case "image": + case "radio": + case "submit": + return !1; + } + return !t.disabled && !t.readOnly; + default: + return /\bneedsfocus\b/.test(t.className); + } + }), + (t.prototype.sendClick = function (t, e) { + var n, o; + document.activeElement && + document.activeElement !== t && + document.activeElement.blur(), + (o = e.changedTouches[0]), + (n = document.createEvent("MouseEvents")), + n.initMouseEvent( + this.determineEventType(t), + !0, + !0, + window, + 1, + o.screenX, + o.screenY, + o.clientX, + o.clientY, + !1, + !1, + !1, + !1, + 0, + null + ), + (n.forwardedTouchEvent = !0), + t.dispatchEvent(n); + }), + (t.prototype.determineEventType = function (t) { + return n && "select" === t.tagName.toLowerCase() + ? "mousedown" + : "click"; + }), + (t.prototype.focus = function (t) { + var e; + o && + t.setSelectionRange && + 0 !== t.type.indexOf("date") && + "time" !== t.type && + "month" !== t.type + ? ((e = t.value.length), t.setSelectionRange(e, e)) + : t.focus(); + }), + (t.prototype.updateScrollParent = function (t) { + var e, n; + if (((e = t.fastClickScrollParent), !e || !e.contains(t))) { + n = t; + do { + if (n.scrollHeight > n.offsetHeight) { + (e = n), (t.fastClickScrollParent = n); + break; + } + n = n.parentElement; + } while (n); + } + e && (e.fastClickLastScrollTop = e.scrollTop); + }), + (t.prototype.getTargetElementFromEventTarget = function (t) { + return t.nodeType === Node.TEXT_NODE ? t.parentNode : t; + }), + (t.prototype.onTouchStart = function (t) { + var e, n, r; + if (t.targetTouches.length > 1) return !0; + if ( + ((e = this.getTargetElementFromEventTarget(t.target)), + (n = t.targetTouches[0]), + o) + ) { + if (((r = window.getSelection()), r.rangeCount && !r.isCollapsed)) + return !0; + if (!i) { + if (n.identifier && n.identifier === this.lastTouchIdentifier) + return t.preventDefault(), !1; + (this.lastTouchIdentifier = n.identifier), + this.updateScrollParent(e); + } + } + return ( + (this.trackingClick = !0), + (this.trackingClickStart = t.timeStamp), + (this.targetElement = e), + (this.touchStartX = n.pageX), + (this.touchStartY = n.pageY), + t.timeStamp - this.lastClickTime < this.tapDelay && + t.preventDefault(), + !0 + ); + }), + (t.prototype.touchHasMoved = function (t) { + var e = t.changedTouches[0], + n = this.touchBoundary; + return Math.abs(e.pageX - this.touchStartX) > n || + Math.abs(e.pageY - this.touchStartY) > n + ? !0 + : !1; + }), + (t.prototype.onTouchMove = function (t) { + return this.trackingClick + ? ((this.targetElement !== + this.getTargetElementFromEventTarget(t.target) || + this.touchHasMoved(t)) && + ((this.trackingClick = !1), (this.targetElement = null)), + !0) + : !0; + }), + (t.prototype.findControl = function (t) { + return void 0 !== t.control + ? t.control + : t.htmlFor + ? document.getElementById(t.htmlFor) + : t.querySelector( + "button, input:not([type=hidden]), keygen, meter, output, progress, select, textarea" + ); + }), + (t.prototype.onTouchEnd = function (t) { + var e, + s, + a, + c, + l, + u = this.targetElement; + if (!this.trackingClick) return !0; + if (t.timeStamp - this.lastClickTime < this.tapDelay) + return (this.cancelNextClick = !0), !0; + if (t.timeStamp - this.trackingClickStart > this.tapTimeout) return !0; + if ( + ((this.cancelNextClick = !1), + (this.lastClickTime = t.timeStamp), + (s = this.trackingClickStart), + (this.trackingClick = !1), + (this.trackingClickStart = 0), + r && + ((l = t.changedTouches[0]), + (u = + document.elementFromPoint( + l.pageX - window.pageXOffset, + l.pageY - window.pageYOffset + ) || u), + (u.fastClickScrollParent = this.targetElement.fastClickScrollParent)), + (a = u.tagName.toLowerCase()), + "label" === a) + ) { + if ((e = this.findControl(u))) { + if ((this.focus(u), n)) return !1; + u = e; + } + } else if (this.needsFocus(u)) + return t.timeStamp - s > 100 || + (o && window.top !== window && "input" === a) + ? ((this.targetElement = null), !1) + : (this.focus(u), + this.sendClick(u, t), + (o && "select" === a) || + ((this.targetElement = null), t.preventDefault()), + !1); + return o && + !i && + ((c = u.fastClickScrollParent), + c && c.fastClickLastScrollTop !== c.scrollTop) + ? !0 + : (this.needsClick(u) || (t.preventDefault(), this.sendClick(u, t)), + !1); + }), + (t.prototype.onTouchCancel = function () { + (this.trackingClick = !1), (this.targetElement = null); + }), + (t.prototype.onMouse = function (t) { + return this.targetElement + ? t.forwardedTouchEvent + ? !0 + : t.cancelable && + (!this.needsClick(this.targetElement) || this.cancelNextClick) + ? (t.stopImmediatePropagation + ? t.stopImmediatePropagation() + : (t.propagationStopped = !0), + t.stopPropagation(), + t.preventDefault(), + !1) + : !0 + : !0; + }), + (t.prototype.onClick = function (t) { + var e; + return this.trackingClick + ? ((this.targetElement = null), (this.trackingClick = !1), !0) + : "submit" === t.target.type && 0 === t.detail + ? !0 + : ((e = this.onMouse(t)), e || (this.targetElement = null), e); + }), + (t.prototype.destroy = function () { + var t = this.layer; + n && + (t.removeEventListener("mouseover", this.onMouse, !0), + t.removeEventListener("mousedown", this.onMouse, !0), + t.removeEventListener("mouseup", this.onMouse, !0)), + t.removeEventListener("click", this.onClick, !0), + t.removeEventListener("touchstart", this.onTouchStart, !1), + t.removeEventListener("touchmove", this.onTouchMove, !1), + t.removeEventListener("touchend", this.onTouchEnd, !1), + t.removeEventListener("touchcancel", this.onTouchCancel, !1); + }), + (t.notNeeded = function (t) { + var e, o, i, r; + if ("undefined" == typeof window.ontouchstart) return !0; + if ((o = +(/Chrome\/([0-9]+)/.exec(navigator.userAgent) || [, 0])[1])) { + if (!n) return !0; + if ((e = document.querySelector("meta[name=viewport]"))) { + if (-1 !== e.content.indexOf("user-scalable=no")) return !0; + if ( + o > 31 && + document.documentElement.scrollWidth <= window.outerWidth + ) + return !0; + } + } + if ( + s && + ((i = navigator.userAgent.match(/Version\/([0-9]*)\.([0-9]*)/)), + i[1] >= 10 && + i[2] >= 3 && + (e = document.querySelector("meta[name=viewport]"))) + ) { + if (-1 !== e.content.indexOf("user-scalable=no")) return !0; + if (document.documentElement.scrollWidth <= window.outerWidth) + return !0; + } + return "none" === t.style.msTouchAction || + "manipulation" === t.style.touchAction + ? !0 + : ((r = +(/Firefox\/([0-9]+)/.exec(navigator.userAgent) || [, 0])[1]), + r >= 27 && + ((e = document.querySelector("meta[name=viewport]")), + e && + (-1 !== e.content.indexOf("user-scalable=no") || + document.documentElement.scrollWidth <= window.outerWidth)) + ? !0 + : "none" === t.style.touchAction || + "manipulation" === t.style.touchAction + ? !0 + : !1); + }), + (t.attach = function (e, n) { + return new t(e, n); + }), + "function" == typeof define && "object" == typeof define.amd && define.amd + ? define(function () { + return t; + }) + : "undefined" != typeof module && module.exports + ? ((module.exports = t.attach), (module.exports.FastClick = t)) + : (window.FastClick = t); + })(), + (function () { + var t = function (e) { + var n = new t.Index(); + return ( + n.pipeline.add(t.trimmer, t.stopWordFilter, t.stemmer), + e && e.call(n, n), + n + ); + }; + (t.version = "0.6.0"), + (t.utils = {}), + (t.utils.warn = (function (t) { + return function (e) { + t.console && console.warn && console.warn(e); + }; + })(this)), + (t.utils.asString = function (t) { + return void 0 === t || null === t ? "" : t.toString(); + }), + (t.EventEmitter = function () { + this.events = {}; + }), + (t.EventEmitter.prototype.addListener = function () { + var t = Array.prototype.slice.call(arguments), + e = t.pop(), + n = t; + if ("function" != typeof e) + throw new TypeError("last argument must be a function"); + n.forEach(function (t) { + this.hasHandler(t) || (this.events[t] = []), this.events[t].push(e); + }, this); + }), + (t.EventEmitter.prototype.removeListener = function (t, e) { + if (this.hasHandler(t)) { + var n = this.events[t].indexOf(e); + this.events[t].splice(n, 1), + this.events[t].length || delete this.events[t]; + } + }), + (t.EventEmitter.prototype.emit = function (t) { + if (this.hasHandler(t)) { + var e = Array.prototype.slice.call(arguments, 1); + this.events[t].forEach(function (t) { + t.apply(void 0, e); + }); + } + }), + (t.EventEmitter.prototype.hasHandler = function (t) { + return t in this.events; + }), + (t.tokenizer = function (e) { + return arguments.length && null != e && void 0 != e + ? Array.isArray(e) + ? e.map(function (e) { + return t.utils.asString(e).toLowerCase(); + }) + : e + .toString() + .trim() + .toLowerCase() + .split(t.tokenizer.seperator) + : []; + }), + (t.tokenizer.seperator = /[\s\-]+/), + (t.Pipeline = function () { + this._stack = []; + }), + (t.Pipeline.registeredFunctions = {}), + (t.Pipeline.registerFunction = function (e, n) { + n in this.registeredFunctions && + t.utils.warn("Overwriting existing registered function: " + n), + (e.label = n), + (t.Pipeline.registeredFunctions[e.label] = e); + }), + (t.Pipeline.warnIfFunctionNotRegistered = function (e) { + var n = e.label && e.label in this.registeredFunctions; + n || + t.utils.warn( + "Function is not registered with pipeline. This may cause problems when serialising the index.\n", + e + ); + }), + (t.Pipeline.load = function (e) { + var n = new t.Pipeline(); + return ( + e.forEach(function (e) { + var o = t.Pipeline.registeredFunctions[e]; + if (!o) throw new Error("Cannot load un-registered function: " + e); + n.add(o); + }), + n + ); + }), + (t.Pipeline.prototype.add = function () { + var e = Array.prototype.slice.call(arguments); + e.forEach(function (e) { + t.Pipeline.warnIfFunctionNotRegistered(e), this._stack.push(e); + }, this); + }), + (t.Pipeline.prototype.after = function (e, n) { + t.Pipeline.warnIfFunctionNotRegistered(n); + var o = this._stack.indexOf(e); + if (-1 == o) throw new Error("Cannot find existingFn"); + (o += 1), this._stack.splice(o, 0, n); + }), + (t.Pipeline.prototype.before = function (e, n) { + t.Pipeline.warnIfFunctionNotRegistered(n); + var o = this._stack.indexOf(e); + if (-1 == o) throw new Error("Cannot find existingFn"); + this._stack.splice(o, 0, n); + }), + (t.Pipeline.prototype.remove = function (t) { + var e = this._stack.indexOf(t); + -1 != e && this._stack.splice(e, 1); + }), + (t.Pipeline.prototype.run = function (t) { + for ( + var e = [], n = t.length, o = this._stack.length, i = 0; + n > i; + i++ + ) { + for ( + var r = t[i], s = 0; + o > s && ((r = this._stack[s](r, i, t)), void 0 !== r && "" !== r); + s++ + ); + void 0 !== r && "" !== r && e.push(r); + } + return e; + }), + (t.Pipeline.prototype.reset = function () { + this._stack = []; + }), + (t.Pipeline.prototype.toJSON = function () { + return this._stack.map(function (e) { + return t.Pipeline.warnIfFunctionNotRegistered(e), e.label; + }); + }), + (t.Vector = function () { + (this._magnitude = null), (this.list = void 0), (this.length = 0); + }), + (t.Vector.Node = function (t, e, n) { + (this.idx = t), (this.val = e), (this.next = n); + }), + (t.Vector.prototype.insert = function (e, n) { + this._magnitude = void 0; + var o = this.list; + if (!o) return (this.list = new t.Vector.Node(e, n, o)), this.length++; + if (e < o.idx) + return (this.list = new t.Vector.Node(e, n, o)), this.length++; + for (var i = o, r = o.next; void 0 != r;) { + if (e < r.idx) + return (i.next = new t.Vector.Node(e, n, r)), this.length++; + (i = r), (r = r.next); + } + return (i.next = new t.Vector.Node(e, n, r)), this.length++; + }), + (t.Vector.prototype.magnitude = function () { + if (this._magnitude) return this._magnitude; + for (var t, e = this.list, n = 0; e;) + (t = e.val), (n += t * t), (e = e.next); + return (this._magnitude = Math.sqrt(n)); + }), + (t.Vector.prototype.dot = function (t) { + for (var e = this.list, n = t.list, o = 0; e && n;) + e.idx < n.idx + ? (e = e.next) + : e.idx > n.idx + ? (n = n.next) + : ((o += e.val * n.val), (e = e.next), (n = n.next)); + return o; + }), + (t.Vector.prototype.similarity = function (t) { + return this.dot(t) / (this.magnitude() * t.magnitude()); + }), + (t.SortedSet = function () { + (this.length = 0), (this.elements = []); + }), + (t.SortedSet.load = function (t) { + var e = new this(); + return (e.elements = t), (e.length = t.length), e; + }), + (t.SortedSet.prototype.add = function () { + var t, e; + for (t = 0; t < arguments.length; t++) + (e = arguments[t]), + ~this.indexOf(e) || this.elements.splice(this.locationFor(e), 0, e); + this.length = this.elements.length; + }), + (t.SortedSet.prototype.toArray = function () { + return this.elements.slice(); + }), + (t.SortedSet.prototype.map = function (t, e) { + return this.elements.map(t, e); + }), + (t.SortedSet.prototype.forEach = function (t, e) { + return this.elements.forEach(t, e); + }), + (t.SortedSet.prototype.indexOf = function (t) { + for ( + var e = 0, + n = this.elements.length, + o = n - e, + i = e + Math.floor(o / 2), + r = this.elements[i]; + o > 1; + + ) { + if (r === t) return i; + t > r && (e = i), + r > t && (n = i), + (o = n - e), + (i = e + Math.floor(o / 2)), + (r = this.elements[i]); + } + return r === t ? i : -1; + }), + (t.SortedSet.prototype.locationFor = function (t) { + for ( + var e = 0, + n = this.elements.length, + o = n - e, + i = e + Math.floor(o / 2), + r = this.elements[i]; + o > 1; + + ) + t > r && (e = i), + r > t && (n = i), + (o = n - e), + (i = e + Math.floor(o / 2)), + (r = this.elements[i]); + return r > t ? i : t > r ? i + 1 : void 0; + }), + (t.SortedSet.prototype.intersect = function (e) { + for ( + var n = new t.SortedSet(), + o = 0, + i = 0, + r = this.length, + s = e.length, + a = this.elements, + c = e.elements; + ; + + ) { + if (o > r - 1 || i > s - 1) break; + a[o] !== c[i] + ? a[o] < c[i] + ? o++ + : a[o] > c[i] && i++ + : (n.add(a[o]), o++ , i++); + } + return n; + }), + (t.SortedSet.prototype.clone = function () { + var e = new t.SortedSet(); + return (e.elements = this.toArray()), (e.length = e.elements.length), e; + }), + (t.SortedSet.prototype.union = function (t) { + var e, n, o; + return ( + this.length >= t.length + ? ((e = this), (n = t)) + : ((e = t), (n = this)), + (o = e.clone()), + o.add.apply(o, n.toArray()), + o + ); + }), + (t.SortedSet.prototype.toJSON = function () { + return this.toArray(); + }), + (t.Index = function () { + (this._fields = []), + (this._ref = "id"), + (this.pipeline = new t.Pipeline()), + (this.documentStore = new t.Store()), + (this.tokenStore = new t.TokenStore()), + (this.corpusTokens = new t.SortedSet()), + (this.eventEmitter = new t.EventEmitter()), + (this._idfCache = {}), + this.on( + "add", + "remove", + "update", + function () { + this._idfCache = {}; + }.bind(this) + ); + }), + (t.Index.prototype.on = function () { + var t = Array.prototype.slice.call(arguments); + return this.eventEmitter.addListener.apply(this.eventEmitter, t); + }), + (t.Index.prototype.off = function (t, e) { + return this.eventEmitter.removeListener(t, e); + }), + (t.Index.load = function (e) { + e.version !== t.version && + t.utils.warn( + "version mismatch: current " + t.version + " importing " + e.version + ); + var n = new this(); + return ( + (n._fields = e.fields), + (n._ref = e.ref), + (n.documentStore = t.Store.load(e.documentStore)), + (n.tokenStore = t.TokenStore.load(e.tokenStore)), + (n.corpusTokens = t.SortedSet.load(e.corpusTokens)), + (n.pipeline = t.Pipeline.load(e.pipeline)), + n + ); + }), + (t.Index.prototype.field = function (t, e) { + var e = e || {}, + n = { name: t, boost: e.boost || 1 }; + return this._fields.push(n), this; + }), + (t.Index.prototype.ref = function (t) { + return (this._ref = t), this; + }), + (t.Index.prototype.add = function (e, n) { + var o = {}, + i = new t.SortedSet(), + r = e[this._ref], + n = void 0 === n ? !0 : n; + this._fields.forEach(function (n) { + var r = this.pipeline.run(t.tokenizer(e[n.name])); + (o[n.name] = r), t.SortedSet.prototype.add.apply(i, r); + }, this), + this.documentStore.set(r, i), + t.SortedSet.prototype.add.apply(this.corpusTokens, i.toArray()); + for (var s = 0; s < i.length; s++) { + var a = i.elements[s], + c = this._fields.reduce(function (t, e) { + var n = o[e.name].length; + if (!n) return t; + var i = o[e.name].filter(function (t) { + return t === a; + }).length; + return t + (i / n) * e.boost; + }, 0); + this.tokenStore.add(a, { ref: r, tf: c }); + } + n && this.eventEmitter.emit("add", e, this); + }), + (t.Index.prototype.remove = function (t, e) { + var n = t[this._ref], + e = void 0 === e ? !0 : e; + if (this.documentStore.has(n)) { + var o = this.documentStore.get(n); + this.documentStore.remove(n), + o.forEach(function (t) { + this.tokenStore.remove(t, n); + }, this), + e && this.eventEmitter.emit("remove", t, this); + } + }), + (t.Index.prototype.update = function (t, e) { + var e = void 0 === e ? !0 : e; + this.remove(t, !1), + this.add(t, !1), + e && this.eventEmitter.emit("update", t, this); + }), + (t.Index.prototype.idf = function (t) { + var e = "@" + t; + if (Object.prototype.hasOwnProperty.call(this._idfCache, e)) + return this._idfCache[e]; + var n = this.tokenStore.count(t), + o = 1; + return ( + n > 0 && (o = 1 + Math.log(this.documentStore.length / n)), + (this._idfCache[e] = o) + ); + }), + (t.Index.prototype.search = function (e) { + var n = this.pipeline.run(t.tokenizer(e)), + o = new t.Vector(), + i = [], + r = this._fields.reduce(function (t, e) { + return t + e.boost; + }, 0), + s = n.some(function (t) { + return this.tokenStore.has(t); + }, this); + if (!s) return []; + n.forEach(function (e, n, s) { + var a = (1 / s.length) * this._fields.length * r, + c = this, + l = this.tokenStore.expand(e).reduce(function (n, i) { + var r = c.corpusTokens.indexOf(i), + s = c.idf(i), + l = 1, + u = new t.SortedSet(); + if (i !== e) { + var d = Math.max(3, i.length - e.length); + l = 1 / Math.log(d); + } + r > -1 && o.insert(r, a * s * l); + for ( + var h = c.tokenStore.get(i), + f = Object.keys(h), + p = f.length, + m = 0; + p > m; + m++ + ) + u.add(h[f[m]].ref); + return n.union(u); + }, new t.SortedSet()); + i.push(l); + }, this); + var a = i.reduce(function (t, e) { + return t.intersect(e); + }); + return a + .map(function (t) { + return { ref: t, score: o.similarity(this.documentVector(t)) }; + }, this) + .sort(function (t, e) { + return e.score - t.score; + }); + }), + (t.Index.prototype.documentVector = function (e) { + for ( + var n = this.documentStore.get(e), + o = n.length, + i = new t.Vector(), + r = 0; + o > r; + r++ + ) { + var s = n.elements[r], + a = this.tokenStore.get(s)[e].tf, + c = this.idf(s); + i.insert(this.corpusTokens.indexOf(s), a * c); + } + return i; + }), + (t.Index.prototype.toJSON = function () { + return { + version: t.version, + fields: this._fields, + ref: this._ref, + documentStore: this.documentStore.toJSON(), + tokenStore: this.tokenStore.toJSON(), + corpusTokens: this.corpusTokens.toJSON(), + pipeline: this.pipeline.toJSON() + }; + }), + (t.Index.prototype.use = function (t) { + var e = Array.prototype.slice.call(arguments, 1); + e.unshift(this), t.apply(this, e); + }), + (t.Store = function () { + (this.store = {}), (this.length = 0); + }), + (t.Store.load = function (e) { + var n = new this(); + return ( + (n.length = e.length), + (n.store = Object.keys(e.store).reduce(function (n, o) { + return (n[o] = t.SortedSet.load(e.store[o])), n; + }, {})), + n + ); + }), + (t.Store.prototype.set = function (t, e) { + this.has(t) || this.length++ , (this.store[t] = e); + }), + (t.Store.prototype.get = function (t) { + return this.store[t]; + }), + (t.Store.prototype.has = function (t) { + return t in this.store; + }), + (t.Store.prototype.remove = function (t) { + this.has(t) && (delete this.store[t], this.length--); + }), + (t.Store.prototype.toJSON = function () { + return { store: this.store, length: this.length }; + }), + (t.stemmer = (function () { + var t = { + ational: "ate", + tional: "tion", + enci: "ence", + anci: "ance", + izer: "ize", + bli: "ble", + alli: "al", + entli: "ent", + eli: "e", + ousli: "ous", + ization: "ize", + ation: "ate", + ator: "ate", + alism: "al", + iveness: "ive", + fulness: "ful", + ousness: "ous", + aliti: "al", + iviti: "ive", + biliti: "ble", + logi: "log" + }, + e = { + icate: "ic", + ative: "", + alize: "al", + iciti: "ic", + ical: "ic", + ful: "", + ness: "" + }, + n = "[^aeiou]", + o = "[aeiouy]", + i = n + "[^aeiouy]*", + r = o + "[aeiou]*", + s = "^(" + i + ")?" + r + i, + a = "^(" + i + ")?" + r + i + "(" + r + ")?$", + c = "^(" + i + ")?" + r + i + r + i, + l = "^(" + i + ")?" + o, + u = new RegExp(s), + d = new RegExp(c), + h = new RegExp(a), + f = new RegExp(l), + p = /^(.+?)(ss|i)es$/, + m = /^(.+?)([^s])s$/, + v = /^(.+?)eed$/, + g = /^(.+?)(ed|ing)$/, + y = /.$/, + w = /(at|bl|iz)$/, + S = new RegExp("([^aeiouylsz])\\1$"), + k = new RegExp("^" + i + o + "[^aeiouwxy]$"), + E = /^(.+?[^aeiou])y$/, + x = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/, + b = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/, + T = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/, + C = /^(.+?)(s|t)(ion)$/, + L = /^(.+?)e$/, + _ = /ll$/, + A = new RegExp("^" + i + o + "[^aeiouwxy]$"), + O = function (n) { + var o, i, r, s, a, c, l; + if (n.length < 3) return n; + if ( + ((r = n.substr(0, 1)), + "y" == r && (n = r.toUpperCase() + n.substr(1)), + (s = p), + (a = m), + s.test(n) + ? (n = n.replace(s, "$1$2")) + : a.test(n) && (n = n.replace(a, "$1$2")), + (s = v), + (a = g), + s.test(n)) + ) { + var O = s.exec(n); + (s = u), s.test(O[1]) && ((s = y), (n = n.replace(s, ""))); + } else if (a.test(n)) { + var O = a.exec(n); + (o = O[1]), + (a = f), + a.test(o) && + ((n = o), + (a = w), + (c = S), + (l = k), + a.test(n) + ? (n += "e") + : c.test(n) + ? ((s = y), (n = n.replace(s, ""))) + : l.test(n) && (n += "e")); + } + if (((s = E), s.test(n))) { + var O = s.exec(n); + (o = O[1]), (n = o + "i"); + } + if (((s = x), s.test(n))) { + var O = s.exec(n); + (o = O[1]), (i = O[2]), (s = u), s.test(o) && (n = o + t[i]); + } + if (((s = b), s.test(n))) { + var O = s.exec(n); + (o = O[1]), (i = O[2]), (s = u), s.test(o) && (n = o + e[i]); + } + if (((s = T), (a = C), s.test(n))) { + var O = s.exec(n); + (o = O[1]), (s = d), s.test(o) && (n = o); + } else if (a.test(n)) { + var O = a.exec(n); + (o = O[1] + O[2]), (a = d), a.test(o) && (n = o); + } + if (((s = L), s.test(n))) { + var O = s.exec(n); + (o = O[1]), + (s = d), + (a = h), + (c = A), + (s.test(o) || (a.test(o) && !c.test(o))) && (n = o); + } + return ( + (s = _), + (a = d), + s.test(n) && a.test(n) && ((s = y), (n = n.replace(s, ""))), + "y" == r && (n = r.toLowerCase() + n.substr(1)), + n + ); + }; + return O; + })()), + t.Pipeline.registerFunction(t.stemmer, "stemmer"), + (t.generateStopWordFilter = function (t) { + var e = t.reduce(function (t, e) { + return (t[e] = e), t; + }, {}); + return function (t) { + return t && e[t] !== t ? t : void 0; + }; + }), + (t.stopWordFilter = t.generateStopWordFilter([ + "a", + "able", + "about", + "across", + "after", + "all", + "almost", + "also", + "am", + "among", + "an", + "and", + "any", + "are", + "as", + "at", + "be", + "because", + "been", + "but", + "by", + "can", + "cannot", + "could", + "dear", + "did", + "do", + "does", + "either", + "else", + "ever", + "every", + "for", + "from", + "get", + "got", + "had", + "has", + "have", + "he", + "her", + "hers", + "him", + "his", + "how", + "however", + "i", + "if", + "in", + "into", + "is", + "it", + "its", + "just", + "least", + "let", + "like", + "likely", + "may", + "me", + "might", + "most", + "must", + "my", + "neither", + "no", + "nor", + "not", + "of", + "off", + "often", + "on", + "only", + "or", + "other", + "our", + "own", + "rather", + "said", + "say", + "says", + "she", + "should", + "since", + "so", + "some", + "than", + "that", + "the", + "their", + "them", + "then", + "there", + "these", + "they", + "this", + "tis", + "to", + "too", + "twas", + "us", + "wants", + "was", + "we", + "were", + "what", + "when", + "where", + "which", + "while", + "who", + "whom", + "why", + "will", + "with", + "would", + "yet", + "you", + "your" + ])), + t.Pipeline.registerFunction(t.stopWordFilter, "stopWordFilter"), + (t.trimmer = function (t) { + return t.replace(/^\W+/, "").replace(/\W+$/, ""); + }), + t.Pipeline.registerFunction(t.trimmer, "trimmer"), + (t.TokenStore = function () { + (this.root = { docs: {} }), (this.length = 0); + }), + (t.TokenStore.load = function (t) { + var e = new this(); + return (e.root = t.root), (e.length = t.length), e; + }), + (t.TokenStore.prototype.add = function (t, e, n) { + var n = n || this.root, + o = t.charAt(0), + i = t.slice(1); + return ( + o in n || (n[o] = { docs: {} }), + 0 === i.length + ? ((n[o].docs[e.ref] = e), void (this.length += 1)) + : this.add(i, e, n[o]) + ); + }), + (t.TokenStore.prototype.has = function (t) { + if (!t) return !1; + for (var e = this.root, n = 0; n < t.length; n++) { + if (!e[t.charAt(n)]) return !1; + e = e[t.charAt(n)]; + } + return !0; + }), + (t.TokenStore.prototype.getNode = function (t) { + if (!t) return {}; + for (var e = this.root, n = 0; n < t.length; n++) { + if (!e[t.charAt(n)]) return {}; + e = e[t.charAt(n)]; + } + return e; + }), + (t.TokenStore.prototype.get = function (t, e) { + return this.getNode(t, e).docs || {}; + }), + (t.TokenStore.prototype.count = function (t, e) { + return Object.keys(this.get(t, e)).length; + }), + (t.TokenStore.prototype.remove = function (t, e) { + if (t) { + for (var n = this.root, o = 0; o < t.length; o++) { + if (!(t.charAt(o) in n)) return; + n = n[t.charAt(o)]; + } + delete n.docs[e]; + } + }), + (t.TokenStore.prototype.expand = function (t, e) { + var n = this.getNode(t), + o = n.docs || {}, + e = e || []; + return ( + Object.keys(o).length && e.push(t), + Object.keys(n).forEach(function (n) { + "docs" !== n && e.concat(this.expand(t + n, e)); + }, this), + e + ); + }), + (t.TokenStore.prototype.toJSON = function () { + return { root: this.root, length: this.length }; + }), + (function (t, e) { + "function" == typeof define && define.amd + ? define(e) + : "object" == typeof exports + ? (module.exports = e()) + : (t.lunr = e()); + })(this, function () { + return t; + }); + })(), + (String.prototype.truncate = function (t) { + if (this.length > t) { + for (; " " != this[t] && --t > 0;); + return this.substring(0, t) + "…"; + } + return this; + }), + (HTMLElement.prototype.wrap = function (t) { + t.length || (t = [t]); + for (var e = t.length - 1; e >= 0; e--) { + var n = e > 0 ? this.cloneNode(!0) : this, + o = t[e], + i = o.parentNode, + r = o.nextSibling; + n.appendChild(o), r ? i.insertBefore(n, r) : i.appendChild(n); + } + }), + document.addEventListener("DOMContentLoaded", function () { + "use strict"; + Modernizr.addTest("ios", function () { + return !!navigator.userAgent.match(/(iPad|iPhone|iPod)/g); + }), + Modernizr.addTest("standalone", function () { + return !!navigator.standalone; + }), + FastClick.attach(document.body); + var t = document.getElementById("toggle-search"), + e = (document.getElementById("reset-search"), + document.querySelector(".drawer")), + n = document.querySelectorAll(".anchor"), + o = document.querySelector(".search .field"), + i = document.querySelector(".query"), + r = document.querySelector(".results .meta"); + Array.prototype.forEach.call(n, function (t) { + t.querySelector("a").addEventListener("click", function () { + (document.getElementById("toggle-drawer").checked = !1), + document.body.classList.remove("toggle-drawer"); + }); + }); + var s = window.pageYOffset, + a = function () { + var t = window.pageYOffset + window.innerHeight, + n = Math.max(0, window.innerHeight - e.offsetHeight); + t > document.body.clientHeight - (96 - n) + ? "absolute" != e.style.position && + ((e.style.position = "absolute"), + (e.style.top = null), + (e.style.bottom = 0)) + : e.offsetHeight < window.innerHeight + ? "fixed" != e.style.position && + ((e.style.position = "fixed"), + (e.style.top = 0), + (e.style.bottom = null)) + : "fixed" != e.style.position + ? t > e.offsetTop + e.offsetHeight + ? ((e.style.position = "fixed"), + (e.style.top = null), + (e.style.bottom = "-96px")) + : window.pageYOffset < e.offsetTop && + ((e.style.position = "fixed"), + (e.style.top = 0), + (e.style.bottom = null)) + : window.pageYOffset > s + ? e.style.top && + ((e.style.position = "absolute"), + (e.style.top = Math.max(0, s) + "px"), + (e.style.bottom = null)) + : e.style.bottom && + ((e.style.position = "absolute"), + (e.style.top = t - e.offsetHeight + "px"), + (e.style.bottom = null)), + (s = Math.max(0, window.pageYOffset)); + }, + c = function () { + var t = document.querySelector(".main"); + window.removeEventListener("scroll", a), + matchMedia("only screen and (max-width: 959px)").matches + ? ((e.style.position = null), + (e.style.top = null), + (e.style.bottom = null)) + : e.offsetHeight + 96 < t.offsetHeight && + (window.addEventListener("scroll", a), a()); + }; + Modernizr.ios || (window.addEventListener("resize", c), c()); + var u = 0; + t.addEventListener("click", function (t) { + var e = document.body.classList, + n = !matchMedia("only screen and (min-width: 960px)").matches; + e.contains("locked") + ? (e.remove("locked"), + n && + setTimeout(function () { + window.scrollTo(0, u); + }, 100)) + : ((u = window.scrollY), + n && + setTimeout(function () { + window.scrollTo(0, 0); + }, 400), + setTimeout( + function () { + this.checked && + (n && e.add("locked"), + setTimeout(function () { + i.focus(); + }, 200)); + }.bind(this), + 450 + )); + }), + o.addEventListener("touchstart", function () { + i.focus(); + }), + window.addEventListener("keyup", function (e) { + var n = e.keyCode || e.which; + 27 == n && + (i.blur(), + document.body.classList.remove("toggle-search"), + document.body.classList.remove("locked"), + (t.checked = !1)); + }); + var d = document.getElementById("reset-search"); + d.addEventListener("click", function () { + for (var t = document.querySelector(".results .list"); t.firstChild;) + t.removeChild(t.firstChild); + var e = document.querySelector(".bar.search"); + e.classList.remove("non-empty"), + (r.innerHTML = ""), + (i.value = ""), + i.focus(); + }); + var h = document.querySelectorAll("h2"); + h = Array.prototype.map.call(h, function (t) { + return t.offsetTop; + }); + var f = null; + document.addEventListener("scroll", function () { + for ( + var t = window.scrollY + window.innerHeight / 3, + e = h.length - 1, + o = 0; + e > o; + o++ + ) + t < h[o + 1] && (e = o); + e != f && + ((f = e), + Array.prototype.forEach.call(n, function (t, e) { + var n = t.querySelector("a"); + (e != f || n.classList.add("current")) && + n.classList.remove("current"); + })); + }); + var p = document.querySelectorAll(".n + .p"); + Array.prototype.forEach.call(p, function (t) { + var e = t.innerText || t.textContent; + e && "(" == e[0] && t.previousSibling.classList.add("f"); + }); + var m = document.querySelectorAll("table"); + if ( + (Array.prototype.forEach.call(m, function (t) { + var e = document.createElement("div"); + e.classList.add("data"), e.wrap(t); + }), + Modernizr.ios) + ) { + var v = document.querySelectorAll(".scrollable, .standalone .article"); + Array.prototype.forEach.call(v, function (t) { + t.addEventListener("touchstart", function () { + var t = this.scrollTop; + 0 == t + ? (this.scrollTop = 1) + : t + this.offsetHeight == this.scrollHeight && + (this.scrollTop = t - 1); + }); + }); + } + var g = document.querySelectorAll(".project, .overlay, .header"); + Array.prototype.forEach.call(g, function (t) { + t.addEventListener("touchmove", function (t) { + t.preventDefault(); + }); + }); + var y = document.querySelectorAll(".toggle"); + Array.prototype.forEach.call(y, function (t) { + t.addEventListener("click", function () { + document.body.classList.toggle(this.id); + }); + }), + repo_id && + pegasus("https://api.github.com/repos/" + repo_id).then( + function (t, e) { + var n = t.stargazers_count; + n > 1e4 + ? (n = (n / 1e3).toFixed(0) + "k") + : n > 1e3 && (n = (n / 1e3).toFixed(1) + "k"); + var o = document.querySelector(".repo-stars .count"); + o.innerHTML = n; + }, + function (t, e) { + console.error(t, e.status); + } + ); + }), + "standalone" in window.navigator && window.navigator.standalone) +) { + var node, + remotes = !1; + document.addEventListener( + "click", + function (t) { + for (node = t.target; "A" !== node.nodeName && "HTML" !== node.nodeName;) + node = node.parentNode; + "href" in node && + -1 !== node.href.indexOf("http") && + (-1 !== node.href.indexOf(document.location.host) || remotes) && + (t.preventDefault(), (document.location.href = node.href)); + }, + !1 + ); +} |
