Created
May 20, 2014 04:49
-
-
Save cdata/d5147771a94c4f5ae766 to your computer and use it in GitHub Desktop.
This file has been truncated, but you can view the full file.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| ! function (t) { | |
| var e = window.Bugsnag; | |
| window.Bugsnag = t(window, document, navigator, e) | |
| }(function (t, e, n, r) { | |
| function o(t, e) { | |
| try { | |
| if ("function" != typeof t) return t; | |
| if (!t.bugsnag) { | |
| var n = s(); | |
| t.bugsnag = function (r) { | |
| if (e && e.eventHandler && (x = r), k = n, !E) { | |
| var o = t.apply(this, arguments); | |
| return k = null, o | |
| } | |
| try { | |
| return t.apply(this, arguments) | |
| } catch (i) { | |
| throw h("autoNotify", !0) && (C.notifyException(i, null, null, "error"), _()), i | |
| } finally { | |
| k = null | |
| } | |
| }, t.bugsnag.bugsnag = t.bugsnag | |
| } | |
| return t.bugsnag | |
| } catch (r) { | |
| return t | |
| } | |
| } | |
| function i() { | |
| R = !1 | |
| } | |
| function s() { | |
| var t = e.currentScript || k; | |
| if (!t && R) { | |
| var n = e.getElementsByTagName("script"); | |
| t = n[n.length - 1] | |
| } | |
| return t | |
| } | |
| function a(t) { | |
| var e = s(); | |
| e && (t.script = { | |
| src: e.src, | |
| content: h("inlineScript", !0) ? e.innerHTML : "" | |
| }) | |
| } | |
| function u(e) { | |
| var n = t.console; | |
| void 0 !== n && void 0 !== n.log && n.log("[Bugsnag] " + e) | |
| } | |
| function l(t, e) { | |
| var n = []; | |
| for (var r in t) | |
| if (t.hasOwnProperty(r) && null != r && null != t[r]) { | |
| var o = e ? e + "[" + r + "]" : r, | |
| i = t[r]; | |
| n.push("object" == typeof i ? l(i, o) : encodeURIComponent(o) + "=" + encodeURIComponent(i)) | |
| } | |
| return n.join("&") | |
| } | |
| function c(t, e) { | |
| if (null == e) return t; | |
| t = t || {}; | |
| for (var n in e) | |
| if (e.hasOwnProperty(n)) try { | |
| t[n] = e[n].constructor === Object ? c(t[n], e[n]) : e[n] | |
| } catch (r) { | |
| t[n] = e[n] | |
| } | |
| return t | |
| } | |
| function p(t, e) { | |
| if ("undefined" != typeof BUGSNAG_TESTING && C.testRequest) C.testRequest(t, e); | |
| else { | |
| var n = new Image; | |
| n.src = t + "?" + l(e) + "&ct=img&cb=" + (new Date).getTime() | |
| } | |
| } | |
| function d(t) { | |
| for (var e = {}, n = /^data\-([\w\-]+)$/, r = t.attributes, o = 0; o < r.length; o++) { | |
| var i = r[o]; | |
| if (n.test(i.nodeName)) { | |
| var s = i.nodeName.match(n)[1]; | |
| e[s] = i.nodeValue | |
| } | |
| } | |
| return e | |
| } | |
| function h(t, e) { | |
| M = M || d(D); | |
| var n = void 0 !== C[t] ? C[t] : M[t.toLowerCase()]; | |
| return "false" === n && (n = !1), void 0 !== n ? n : e | |
| } | |
| function f(t) { | |
| return null != t && t.match(N) ? !0 : (u("Invalid API key '" + t + "'"), !1) | |
| } | |
| function m(e, r) { | |
| var o = h("apiKey"); | |
| if (f(o) && S) { | |
| S -= 1; | |
| var i = h("releaseStage"), | |
| s = h("notifyReleaseStages"); | |
| if (s) { | |
| for (var a = !1, u = 0; u < s.length; u++) | |
| if (i === s[u]) { | |
| a = !0; | |
| break | |
| } | |
| if (!a) return | |
| } | |
| var l = [e.name, e.message, e.stacktrace].join("|"); | |
| if (l !== T) { | |
| T = l, x && (r = r || {}, r["Last Event"] = y(x)); | |
| var d = c(c({}, h("metaData")), r), | |
| m = C.beforeNotify; | |
| if ("function" == typeof m) { | |
| var g = m(e, d); | |
| if (g === !1) return | |
| } | |
| var v = t.location; | |
| p(h("endpoint") || A, { | |
| notifierVersion: I, | |
| apiKey: o, | |
| projectRoot: h("projectRoot") || v.protocol + "//" + v.host, | |
| context: h("context") || v.pathname, | |
| userId: h("userId"), | |
| user: h("user"), | |
| metaData: d, | |
| releaseStage: i, | |
| appVersion: h("appVersion"), | |
| url: t.location.href, | |
| userAgent: n.userAgent, | |
| language: n.language || n.userLanguage, | |
| severity: e.severity, | |
| name: e.name, | |
| message: e.message, | |
| stacktrace: e.stacktrace, | |
| file: e.file, | |
| lineNumber: e.lineNumber, | |
| columnNumber: e.columnNumber, | |
| payloadVersion: "2" | |
| }) | |
| } | |
| } | |
| } | |
| function g() { | |
| var t, e = 10, | |
| n = "[anonymous]"; | |
| try { | |
| throw new Error("") | |
| } catch (r) { | |
| t = v(r) | |
| } | |
| if (!t) { | |
| var o = []; | |
| try { | |
| for (var i = arguments.callee.caller.caller; i && o.length < e;) { | |
| var s = O.test(i.toString()) ? RegExp.$1 || n : n; | |
| o.push(s), i = i.caller | |
| } | |
| } catch (a) { | |
| u(a) | |
| } | |
| t = o.join("\n") | |
| } | |
| return "<generated>\n" + t | |
| } | |
| function v(t) { | |
| return t.stack || t.backtrace || t.stacktrace | |
| } | |
| function y(t) { | |
| var e = { | |
| millisecondsAgo: new Date - t.timeStamp, | |
| type: t.type, | |
| which: t.which, | |
| target: w(t.target) | |
| }; | |
| return e | |
| } | |
| function w(t) { | |
| if (t) { | |
| var e = t.attributes; | |
| if (e) { | |
| for (var n = "<" + t.nodeName.toLowerCase(), r = 0; r < e.length; r++) e[r].value && "null" != e[r].value.toString() && (n += " " + e[r].name + '="' + e[r].value + '"'); | |
| return n + ">" | |
| } | |
| return t.nodeName | |
| } | |
| } | |
| function _() { | |
| P += 1, t.setTimeout(function () { | |
| P -= 1 | |
| }) | |
| } | |
| function b(e, n, r) { | |
| var o = e[n], | |
| i = r(o); | |
| e[n] = i, "undefined" != typeof BUGSNAG_TESTING && t.undo && t.undo.push(function () { | |
| e[n] = o | |
| }) | |
| } | |
| var x, k, T, C = {}, | |
| E = !0, | |
| P = 0, | |
| S = 10; | |
| C.noConflict = function () { | |
| return t.Bugsnag = r, C | |
| }, C.notifyException = function (t, e, n, r) { | |
| e && "string" != typeof e && (n = e), n || (n = {}), a(n), m({ | |
| name: e || t.name, | |
| message: t.message || t.description, | |
| stacktrace: v(t) || g(), | |
| file: t.fileName || t.sourceURL, | |
| lineNumber: t.lineNumber || t.line, | |
| columnNumber: t.columnNumber ? t.columnNumber + 1 : void 0, | |
| severity: r || "error" | |
| }, n) | |
| }, C.notify = function (t, e, n) { | |
| m({ | |
| name: t, | |
| message: e, | |
| stacktrace: g(), | |
| severity: "warning" | |
| }, n) | |
| }; | |
| var R = "complete" !== e.readyState; | |
| e.addEventListener ? (e.addEventListener("DOMContentLoaded", i, !0), t.addEventListener("load", i, !0)) : t.attachEvent("onload", i); | |
| var M, N = /^[0-9a-f]{32}$/i, | |
| O = /function\s*([\w\-$]+)?\s*\(/i, | |
| F = "https://notify.bugsnag.com/", | |
| A = F + "js", | |
| I = "2.3.3", | |
| $ = e.getElementsByTagName("script"), | |
| D = $[$.length - 1]; | |
| if (t.atob) { | |
| if (t.ErrorEvent) try { | |
| 0 === new t.ErrorEvent("test").colno && (E = !1) | |
| } catch (L) {} | |
| } else E = !1; if (h("autoNotify", !0)) { | |
| b(t, "onerror", function (e) { | |
| return "undefined" != typeof BUGSNAG_TESTING && (C._onerror = e), | |
| function (n, r, o, i, s) { | |
| var u = h("autoNotify", !0), | |
| l = {}; | |
| !i && t.event && (i = t.event.errorCharacter), a(l), k = null, u && !P && m({ | |
| name: s && s.name || "window.onerror", | |
| message: n, | |
| file: r, | |
| lineNumber: o, | |
| columnNumber: i, | |
| stacktrace: s && v(s) || g(), | |
| severity: "error" | |
| }, l), "undefined" != typeof BUGSNAG_TESTING && (e = C._onerror), e && e(n, r, o, i, s) | |
| } | |
| }); | |
| var U = function (t) { | |
| return function (e, n) { | |
| if ("function" == typeof e) { | |
| e = o(e); | |
| var r = Array.prototype.slice.call(arguments, 2); | |
| return t(function () { | |
| e.apply(this, r) | |
| }, n) | |
| } | |
| return t(e, n) | |
| } | |
| }; | |
| b(t, "setTimeout", U), b(t, "setInterval", U), t.requestAnimationFrame && b(t, "requestAnimationFrame", U); | |
| var H = function (t) { | |
| return function (e, n, r, i) { | |
| return n && n.handleEvent && (n.handleEvent = o(n.handleEvent, { | |
| eventHandler: !0 | |
| })), t.call(this, e, o(n, { | |
| eventHandler: !0 | |
| }), r, i) | |
| } | |
| }; | |
| "EventTarget Window Node ApplicationCache AudioTrackList ChannelMergerNode CryptoOperation EventSource FileReader HTMLUnknownElement IDBDatabase IDBRequest IDBTransaction KeyOperation MediaController MessagePort ModalWindow Notification SVGElementInstance Screen TextTrack TextTrackCue TextTrackList WebSocket WebSocketWorker Worker XMLHttpRequest XMLHttpRequestEventTarget XMLHttpRequestUpload".replace(/\w+/g, function (e) { | |
| var n = t[e] && t[e].prototype; | |
| n && n.hasOwnProperty && n.hasOwnProperty("addEventListener") && (b(n, "addEventListener", H), b(n, "removeEventListener", H)) | |
| }) | |
| } | |
| return C | |
| }); /*! Socket.IO.js build:0.9.11, development. Copyright(c) 2011 LearnBoost <dev@learnboost.com> MIT Licensed */ | |
| var io = "undefined" == typeof module ? {} : module.exports; | |
| ! function () { | |
| /** | |
| * socket.io | |
| * Copyright(c) 2011 LearnBoost <dev@learnboost.com> | |
| * MIT Licensed | |
| */ | |
| ! function (t, e) { | |
| var n = t; | |
| n.version = "0.9.11", n.protocol = 1, n.transports = [], n.j = [], n.sockets = {}, n.connect = function (t, r) { | |
| var o, i, s = n.util.parseUri(t); | |
| e && e.location && (s.protocol = s.protocol || e.location.protocol.slice(0, -1), s.host = s.host || (e.document ? e.document.domain : e.location.hostname), s.port = s.port || e.location.port), o = n.util.uniqueUri(s); | |
| var a = { | |
| host: s.host, | |
| secure: "https" == s.protocol, | |
| port: s.port || ("https" == s.protocol ? 443 : 80), | |
| query: s.query || "" | |
| }; | |
| return n.util.merge(a, r), (a["force new connection"] || !n.sockets[o]) && (i = new n.Socket(a)), !a["force new connection"] && i && (n.sockets[o] = i), i = i || n.sockets[o], i.of(s.path.length > 1 ? s.path : "") | |
| } | |
| }("object" == typeof module ? module.exports : this.io = {}, this), | |
| /** | |
| * socket.io | |
| * Copyright(c) 2011 LearnBoost <dev@learnboost.com> | |
| * MIT Licensed | |
| */ | |
| function (t, e) { | |
| var n = t.util = {}, | |
| r = /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/, | |
| o = ["source", "protocol", "authority", "userInfo", "user", "password", "host", "port", "relative", "path", "directory", "file", "query", "anchor"]; | |
| n.parseUri = function (t) { | |
| for (var e = r.exec(t || ""), n = {}, i = 14; i--;) n[o[i]] = e[i] || ""; | |
| return n | |
| }, n.uniqueUri = function (t) { | |
| var n = t.protocol, | |
| r = t.host, | |
| o = t.port; | |
| return "document" in e ? (r = r || document.domain, o = o || ("https" == n && "https:" !== document.location.protocol ? 443 : document.location.port)) : (r = r || "localhost", o || "https" != n || (o = 443)), (n || "http") + "://" + r + ":" + (o || 80) | |
| }, n.query = function (t, e) { | |
| var r = n.chunkQuery(t || ""), | |
| o = []; | |
| n.merge(r, n.chunkQuery(e || "")); | |
| for (var i in r) r.hasOwnProperty(i) && o.push(i + "=" + r[i]); | |
| return o.length ? "?" + o.join("&") : "" | |
| }, n.chunkQuery = function (t) { | |
| for (var e, n = {}, r = t.split("&"), o = 0, i = r.length; i > o; ++o) e = r[o].split("="), e[0] && (n[e[0]] = e[1]); | |
| return n | |
| }; | |
| var i = !1; | |
| n.load = function (t) { | |
| return "document" in e && "complete" === document.readyState || i ? t() : void n.on(e, "load", t, !1) | |
| }, n.on = function (t, e, n, r) { | |
| t.attachEvent ? t.attachEvent("on" + e, n) : t.addEventListener && t.addEventListener(e, n, r) | |
| }, n.request = function (t) { | |
| if (t && "undefined" != typeof XDomainRequest && !n.ua.hasCORS) return new XDomainRequest; | |
| if ("undefined" != typeof XMLHttpRequest && (!t || n.ua.hasCORS)) return new XMLHttpRequest; | |
| if (!t) try { | |
| return new(window[["Active"].concat("Object").join("X")])("Microsoft.XMLHTTP") | |
| } catch (e) {} | |
| return null | |
| }, "undefined" != typeof window && n.load(function () { | |
| i = !0 | |
| }), n.defer = function (t) { | |
| return n.ua.webkit && "undefined" == typeof importScripts ? void n.load(function () { | |
| setTimeout(t, 100) | |
| }) : t() | |
| }, n.merge = function (t, e, r, o) { | |
| var i, s = o || [], | |
| a = "undefined" == typeof r ? 2 : r; | |
| for (i in e) e.hasOwnProperty(i) && n.indexOf(s, i) < 0 && ("object" == typeof t[i] && a ? n.merge(t[i], e[i], a - 1, s) : (t[i] = e[i], s.push(e[i]))); | |
| return t | |
| }, n.mixin = function (t, e) { | |
| n.merge(t.prototype, e.prototype) | |
| }, n.inherit = function (t, e) { | |
| function n() {} | |
| n.prototype = e.prototype, t.prototype = new n | |
| }, n.isArray = Array.isArray || function (t) { | |
| return "[object Array]" === Object.prototype.toString.call(t) | |
| }, n.intersect = function (t, e) { | |
| for (var r = [], o = t.length > e.length ? t : e, i = t.length > e.length ? e : t, s = 0, a = i.length; a > s; s++)~ n.indexOf(o, i[s]) && r.push(i[s]); | |
| return r | |
| }, n.indexOf = function (t, e, n) { | |
| for (var r = t.length, n = 0 > n ? 0 > n + r ? 0 : n + r : n || 0; r > n && t[n] !== e; n++); | |
| return n >= r ? -1 : n | |
| }, n.toArray = function (t) { | |
| for (var e = [], n = 0, r = t.length; r > n; n++) e.push(t[n]); | |
| return e | |
| }, n.ua = {}, n.ua.hasCORS = "undefined" != typeof XMLHttpRequest && function () { | |
| try { | |
| var t = new XMLHttpRequest | |
| } catch (e) { | |
| return !1 | |
| } | |
| return void 0 != t.withCredentials | |
| }(), n.ua.webkit = "undefined" != typeof navigator && /webkit/i.test(navigator.userAgent), n.ua.iDevice = "undefined" != typeof navigator && /iPad|iPhone|iPod/i.test(navigator.userAgent) | |
| }("undefined" != typeof io ? io : module.exports, this), | |
| /** | |
| * socket.io | |
| * Copyright(c) 2011 LearnBoost <dev@learnboost.com> | |
| * MIT Licensed | |
| */ | |
| function (t, e) { | |
| function n() {} | |
| t.EventEmitter = n, n.prototype.on = function (t, n) { | |
| return this.$events || (this.$events = {}), this.$events[t] ? e.util.isArray(this.$events[t]) ? this.$events[t].push(n) : this.$events[t] = [this.$events[t], n] : this.$events[t] = n, this | |
| }, n.prototype.addListener = n.prototype.on, n.prototype.once = function (t, e) { | |
| function n() { | |
| r.removeListener(t, n), e.apply(this, arguments) | |
| } | |
| var r = this; | |
| return n.listener = e, this.on(t, n), this | |
| }, n.prototype.removeListener = function (t, n) { | |
| if (this.$events && this.$events[t]) { | |
| var r = this.$events[t]; | |
| if (e.util.isArray(r)) { | |
| for (var o = -1, i = 0, s = r.length; s > i; i++) | |
| if (r[i] === n || r[i].listener && r[i].listener === n) { | |
| o = i; | |
| break | |
| } | |
| if (0 > o) return this; | |
| r.splice(o, 1), r.length || delete this.$events[t] | |
| } else(r === n || r.listener && r.listener === n) && delete this.$events[t] | |
| } | |
| return this | |
| }, n.prototype.removeAllListeners = function (t) { | |
| return void 0 === t ? (this.$events = {}, this) : (this.$events && this.$events[t] && (this.$events[t] = null), this) | |
| }, n.prototype.listeners = function (t) { | |
| return this.$events || (this.$events = {}), this.$events[t] || (this.$events[t] = []), e.util.isArray(this.$events[t]) || (this.$events[t] = [this.$events[t]]), this.$events[t] | |
| }, n.prototype.emit = function (t) { | |
| if (!this.$events) return !1; | |
| var n = this.$events[t]; | |
| if (!n) return !1; | |
| var r = Array.prototype.slice.call(arguments, 1); | |
| if ("function" == typeof n) n.apply(this, r); | |
| else { | |
| if (!e.util.isArray(n)) return !1; | |
| for (var o = n.slice(), i = 0, s = o.length; s > i; i++) o[i].apply(this, r) | |
| } | |
| return !0 | |
| } | |
| }("undefined" != typeof io ? io : module.exports, "undefined" != typeof io ? io : module.parent.exports), | |
| /** | |
| * socket.io | |
| * Copyright(c) 2011 LearnBoost <dev@learnboost.com> | |
| * MIT Licensed | |
| */ | |
| function (exports, nativeJSON) { | |
| "use strict"; | |
| function f(t) { | |
| return 10 > t ? "0" + t : t | |
| } | |
| function date(t) { | |
| return isFinite(t.valueOf()) ? t.getUTCFullYear() + "-" + f(t.getUTCMonth() + 1) + "-" + f(t.getUTCDate()) + "T" + f(t.getUTCHours()) + ":" + f(t.getUTCMinutes()) + ":" + f(t.getUTCSeconds()) + "Z" : null | |
| } | |
| function quote(t) { | |
| return escapable.lastIndex = 0, escapable.test(t) ? '"' + t.replace(escapable, function (t) { | |
| var e = meta[t]; | |
| return "string" == typeof e ? e : "\\u" + ("0000" + t.charCodeAt(0).toString(16)).slice(-4) | |
| }) + '"' : '"' + t + '"' | |
| } | |
| function str(t, e) { | |
| var n, r, o, i, s, a = gap, | |
| u = e[t]; | |
| switch (u instanceof Date && (u = date(t)), "function" == typeof rep && (u = rep.call(e, t, u)), typeof u) { | |
| case "string": | |
| return quote(u); | |
| case "number": | |
| return isFinite(u) ? String(u) : "null"; | |
| case "boolean": | |
| case "null": | |
| return String(u); | |
| case "object": | |
| if (!u) return "null"; | |
| if (gap += indent, s = [], "[object Array]" === Object.prototype.toString.apply(u)) { | |
| for (i = u.length, n = 0; i > n; n += 1) s[n] = str(n, u) || "null"; | |
| return o = 0 === s.length ? "[]" : gap ? "[\n" + gap + s.join(",\n" + gap) + "\n" + a + "]" : "[" + s.join(",") + "]", gap = a, o | |
| } | |
| if (rep && "object" == typeof rep) | |
| for (i = rep.length, n = 0; i > n; n += 1) "string" == typeof rep[n] && (r = rep[n], o = str(r, u), o && s.push(quote(r) + (gap ? ": " : ":") + o)); | |
| else | |
| for (r in u) Object.prototype.hasOwnProperty.call(u, r) && (o = str(r, u), o && s.push(quote(r) + (gap ? ": " : ":") + o)); | |
| return o = 0 === s.length ? "{}" : gap ? "{\n" + gap + s.join(",\n" + gap) + "\n" + a + "}" : "{" + s.join(",") + "}", gap = a, o | |
| } | |
| } | |
| if (nativeJSON && nativeJSON.parse) return exports.JSON = { | |
| parse: nativeJSON.parse, | |
| stringify: nativeJSON.stringify | |
| }; | |
| var JSON = exports.JSON = {}, | |
| cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, | |
| escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, | |
| gap, indent, meta = { | |
| "\b": "\\b", | |
| " ": "\\t", | |
| "\n": "\\n", | |
| "\f": "\\f", | |
| "\r": "\\r", | |
| '"': '\\"', | |
| "\\": "\\\\" | |
| }, | |
| rep; | |
| JSON.stringify = function (t, e, n) { | |
| var r; | |
| if (gap = "", indent = "", "number" == typeof n) | |
| for (r = 0; n > r; r += 1) indent += " "; | |
| else "string" == typeof n && (indent = n); if (rep = e, e && "function" != typeof e && ("object" != typeof e || "number" != typeof e.length)) throw new Error("JSON.stringify"); | |
| return str("", { | |
| "": t | |
| }) | |
| }, JSON.parse = function (text, reviver) { | |
| function walk(t, e) { | |
| var n, r, o = t[e]; | |
| if (o && "object" == typeof o) | |
| for (n in o) Object.prototype.hasOwnProperty.call(o, n) && (r = walk(o, n), void 0 !== r ? o[n] = r : delete o[n]); | |
| return reviver.call(t, e, o) | |
| } | |
| var j; | |
| if (text = String(text), cx.lastIndex = 0, cx.test(text) && (text = text.replace(cx, function (t) { | |
| return "\\u" + ("0000" + t.charCodeAt(0).toString(16)).slice(-4) | |
| })), /^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, "@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]").replace(/(?:^|:|,)(?:\s*\[)+/g, ""))) return j = eval("(" + text + ")"), "function" == typeof reviver ? walk({ | |
| "": j | |
| }, "") : j; | |
| throw new SyntaxError("JSON.parse") | |
| } | |
| }("undefined" != typeof io ? io : module.exports, "undefined" != typeof JSON ? JSON : void 0), | |
| /** | |
| * socket.io | |
| * Copyright(c) 2011 LearnBoost <dev@learnboost.com> | |
| * MIT Licensed | |
| */ | |
| function (t, e) { | |
| var n = t.parser = {}, | |
| r = n.packets = ["disconnect", "connect", "heartbeat", "message", "json", "event", "ack", "error", "noop"], | |
| o = n.reasons = ["transport not supported", "client not handshaken", "unauthorized"], | |
| i = n.advice = ["reconnect"], | |
| s = e.JSON, | |
| a = e.util.indexOf; | |
| n.encodePacket = function (t) { | |
| var e = a(r, t.type), | |
| n = t.id || "", | |
| u = t.endpoint || "", | |
| l = t.ack, | |
| c = null; | |
| switch (t.type) { | |
| case "error": | |
| var p = t.reason ? a(o, t.reason) : "", | |
| d = t.advice ? a(i, t.advice) : ""; | |
| ("" !== p || "" !== d) && (c = p + ("" !== d ? "+" + d : "")); | |
| break; | |
| case "message": | |
| "" !== t.data && (c = t.data); | |
| break; | |
| case "event": | |
| var h = { | |
| name: t.name | |
| }; | |
| t.args && t.args.length && (h.args = t.args), c = s.stringify(h); | |
| break; | |
| case "json": | |
| c = s.stringify(t.data); | |
| break; | |
| case "connect": | |
| t.qs && (c = t.qs); | |
| break; | |
| case "ack": | |
| c = t.ackId + (t.args && t.args.length ? "+" + s.stringify(t.args) : "") | |
| } | |
| var f = [e, n + ("data" == l ? "+" : ""), u]; | |
| return null !== c && void 0 !== c && f.push(c), f.join(":") | |
| }, n.encodePayload = function (t) { | |
| var e = ""; | |
| if (1 == t.length) return t[0]; | |
| for (var n = 0, r = t.length; r > n; n++) { | |
| var o = t[n]; | |
| e += "\ufffd" + o.length + "\ufffd" + t[n] | |
| } | |
| return e | |
| }; | |
| var u = /([^:]+):([0-9]+)?(\+)?:([^:]+)?:?([\s\S]*)?/; | |
| n.decodePacket = function (t) { | |
| var e = t.match(u); | |
| if (!e) return {}; | |
| var n = e[2] || "", | |
| t = e[5] || "", | |
| a = { | |
| type: r[e[1]], | |
| endpoint: e[4] || "" | |
| }; | |
| switch (n && (a.id = n, a.ack = e[3] ? "data" : !0), a.type) { | |
| case "error": | |
| var e = t.split("+"); | |
| a.reason = o[e[0]] || "", a.advice = i[e[1]] || ""; | |
| break; | |
| case "message": | |
| a.data = t || ""; | |
| break; | |
| case "event": | |
| try { | |
| var l = s.parse(t); | |
| a.name = l.name, a.args = l.args | |
| } catch (c) {} | |
| a.args = a.args || []; | |
| break; | |
| case "json": | |
| try { | |
| a.data = s.parse(t) | |
| } catch (c) {} | |
| break; | |
| case "connect": | |
| a.qs = t || ""; | |
| break; | |
| case "ack": | |
| var e = t.match(/^([0-9]+)(\+)?(.*)/); | |
| if (e && (a.ackId = e[1], a.args = [], e[3])) try { | |
| a.args = e[3] ? s.parse(e[3]) : [] | |
| } catch (c) {} | |
| break; | |
| case "disconnect": | |
| case "heartbeat": | |
| } | |
| return a | |
| }, n.decodePayload = function (t) { | |
| if ("\ufffd" == t.charAt(0)) { | |
| for (var e = [], r = 1, o = ""; r < t.length; r++) "\ufffd" == t.charAt(r) ? (e.push(n.decodePacket(t.substr(r + 1).substr(0, o))), r += Number(o) + 1, o = "") : o += t.charAt(r); | |
| return e | |
| } | |
| return [n.decodePacket(t)] | |
| } | |
| }("undefined" != typeof io ? io : module.exports, "undefined" != typeof io ? io : module.parent.exports), | |
| /** | |
| * socket.io | |
| * Copyright(c) 2011 LearnBoost <dev@learnboost.com> | |
| * MIT Licensed | |
| */ | |
| function (t, e) { | |
| function n(t, e) { | |
| this.socket = t, this.sessid = e | |
| } | |
| t.Transport = n, e.util.mixin(n, e.EventEmitter), n.prototype.heartbeats = function () { | |
| return !0 | |
| }, n.prototype.onData = function (t) { | |
| if (this.clearCloseTimeout(), (this.socket.connected || this.socket.connecting || this.socket.reconnecting) && this.setCloseTimeout(), "" !== t) { | |
| var n = e.parser.decodePayload(t); | |
| if (n && n.length) | |
| for (var r = 0, o = n.length; o > r; r++) this.onPacket(n[r]) | |
| } | |
| return this | |
| }, n.prototype.onPacket = function (t) { | |
| return this.socket.setHeartbeatTimeout(), "heartbeat" == t.type ? this.onHeartbeat() : ("connect" == t.type && "" == t.endpoint && this.onConnect(), "error" == t.type && "reconnect" == t.advice && (this.isOpen = !1), this.socket.onPacket(t), this) | |
| }, n.prototype.setCloseTimeout = function () { | |
| if (!this.closeTimeout) { | |
| var t = this; | |
| this.closeTimeout = setTimeout(function () { | |
| t.onDisconnect() | |
| }, this.socket.closeTimeout) | |
| } | |
| }, n.prototype.onDisconnect = function () { | |
| return this.isOpen && this.close(), this.clearTimeouts(), this.socket.onDisconnect(), this | |
| }, n.prototype.onConnect = function () { | |
| return this.socket.onConnect(), this | |
| }, n.prototype.clearCloseTimeout = function () { | |
| this.closeTimeout && (clearTimeout(this.closeTimeout), this.closeTimeout = null) | |
| }, n.prototype.clearTimeouts = function () { | |
| this.clearCloseTimeout(), this.reopenTimeout && clearTimeout(this.reopenTimeout) | |
| }, n.prototype.packet = function (t) { | |
| this.send(e.parser.encodePacket(t)) | |
| }, n.prototype.onHeartbeat = function () { | |
| this.packet({ | |
| type: "heartbeat" | |
| }) | |
| }, n.prototype.onOpen = function () { | |
| this.isOpen = !0, this.clearCloseTimeout(), this.socket.onOpen() | |
| }, n.prototype.onClose = function () { | |
| this.isOpen = !1, this.socket.onClose(), this.onDisconnect() | |
| }, n.prototype.prepareUrl = function () { | |
| var t = this.socket.options; | |
| return this.scheme() + "://" + t.host + ":" + t.port + "/" + t.resource + "/" + e.protocol + "/" + this.name + "/" + this.sessid | |
| }, n.prototype.ready = function (t, e) { | |
| e.call(this) | |
| } | |
| }("undefined" != typeof io ? io : module.exports, "undefined" != typeof io ? io : module.parent.exports), | |
| /** | |
| * socket.io | |
| * Copyright(c) 2011 LearnBoost <dev@learnboost.com> | |
| * MIT Licensed | |
| */ | |
| function (t, e, n) { | |
| function r(t) { | |
| if (this.options = { | |
| port: 80, | |
| secure: !1, | |
| document: "document" in n ? document : !1, | |
| resource: "socket.io", | |
| transports: e.transports, | |
| "connect timeout": 1e4, | |
| "try multiple transports": !0, | |
| reconnect: !0, | |
| "reconnection delay": 500, | |
| "reconnection limit": 1 / 0, | |
| "reopen delay": 3e3, | |
| "max reconnection attempts": 10, | |
| "sync disconnect on unload": !1, | |
| "auto connect": !0, | |
| "flash policy port": 10843, | |
| manualFlush: !1 | |
| }, e.util.merge(this.options, t), this.connected = !1, this.open = !1, this.connecting = !1, this.reconnecting = !1, this.namespaces = {}, this.buffer = [], this.doBuffer = !1, this.options["sync disconnect on unload"] && (!this.isXDomain() || e.util.ua.hasCORS)) { | |
| var r = this; | |
| e.util.on(n, "beforeunload", function () { | |
| r.disconnectSync() | |
| }, !1) | |
| } | |
| this.options["auto connect"] && this.connect() | |
| } | |
| function o() {} | |
| t.Socket = r, e.util.mixin(r, e.EventEmitter), r.prototype.of = function (t) { | |
| return this.namespaces[t] || (this.namespaces[t] = new e.SocketNamespace(this, t), "" !== t && this.namespaces[t].packet({ | |
| type: "connect" | |
| })), this.namespaces[t] | |
| }, r.prototype.publish = function () { | |
| this.emit.apply(this, arguments); | |
| var t; | |
| for (var e in this.namespaces) this.namespaces.hasOwnProperty(e) && (t = this.of(e), t.$emit.apply(t, arguments)) | |
| }, r.prototype.handshake = function (t) { | |
| function n(e) { | |
| e instanceof Error ? (r.connecting = !1, r.onError(e.message)) : t.apply(null, e.split(":")) | |
| } | |
| var r = this, | |
| i = this.options, | |
| s = ["http" + (i.secure ? "s" : "") + ":/", i.host + ":" + i.port, i.resource, e.protocol, e.util.query(this.options.query, "t=" + +new Date)].join("/"); | |
| if (this.isXDomain() && !e.util.ua.hasCORS) { | |
| var a = document.getElementsByTagName("script")[0], | |
| u = document.createElement("script"); | |
| u.src = s + "&jsonp=" + e.j.length, a.parentNode.insertBefore(u, a), e.j.push(function (t) { | |
| n(t), u.parentNode.removeChild(u) | |
| }) | |
| } else { | |
| var l = e.util.request(); | |
| l.open("GET", s, !0), this.isXDomain() && (l.withCredentials = !0), l.onreadystatechange = function () { | |
| 4 == l.readyState && (l.onreadystatechange = o, 200 == l.status ? n(l.responseText) : 403 == l.status ? r.onError(l.responseText) : (r.connecting = !1, !r.reconnecting && r.onError(l.responseText))) | |
| }, l.send(null) | |
| } | |
| }, r.prototype.getTransport = function (t) { | |
| for (var n, r = t || this.transports, o = 0; n = r[o]; o++) | |
| if (e.Transport[n] && e.Transport[n].check(this) && (!this.isXDomain() || e.Transport[n].xdomainCheck(this))) return new e.Transport[n](this, this.sessionid); | |
| return null | |
| }, r.prototype.connect = function (t) { | |
| if (this.connecting) return this; | |
| var n = this; | |
| return n.connecting = !0, this.handshake(function (r, o, i, s) { | |
| function a(t) { | |
| return n.transport && n.transport.clearTimeouts(), n.transport = n.getTransport(t), n.transport ? void n.transport.ready(n, function () { | |
| n.connecting = !0, n.publish("connecting", n.transport.name), n.transport.open(), n.options["connect timeout"] && (n.connectTimeoutTimer = setTimeout(function () { | |
| if (!n.connected && (n.connecting = !1, n.options["try multiple transports"])) { | |
| for (var t = n.transports; t.length > 0 && t.splice(0, 1)[0] != n.transport.name;); | |
| t.length ? a(t) : n.publish("connect_failed") | |
| } | |
| }, n.options["connect timeout"])) | |
| }) : n.publish("connect_failed") | |
| } | |
| n.sessionid = r, n.closeTimeout = 1e3 * i, n.heartbeatTimeout = 1e3 * o, n.transports || (n.transports = n.origTransports = s ? e.util.intersect(s.split(","), n.options.transports) : n.options.transports), n.setHeartbeatTimeout(), a(n.transports), n.once("connect", function () { | |
| clearTimeout(n.connectTimeoutTimer), t && "function" == typeof t && t() | |
| }) | |
| }), this | |
| }, r.prototype.setHeartbeatTimeout = function () { | |
| if (clearTimeout(this.heartbeatTimeoutTimer), !this.transport || this.transport.heartbeats()) { | |
| var t = this; | |
| this.heartbeatTimeoutTimer = setTimeout(function () { | |
| t.transport.onClose() | |
| }, this.heartbeatTimeout) | |
| } | |
| }, r.prototype.packet = function (t) { | |
| return this.connected && !this.doBuffer ? this.transport.packet(t) : this.buffer.push(t), this | |
| }, r.prototype.setBuffer = function (t) { | |
| this.doBuffer = t, !t && this.connected && this.buffer.length && (this.options.manualFlush || this.flushBuffer()) | |
| }, r.prototype.flushBuffer = function () { | |
| this.transport.payload(this.buffer), this.buffer = [] | |
| }, r.prototype.disconnect = function () { | |
| return (this.connected || this.connecting) && (this.open && this.of("").packet({ | |
| type: "disconnect" | |
| }), this.onDisconnect("booted")), this | |
| }, r.prototype.disconnectSync = function () { | |
| var t = e.util.request(), | |
| n = ["http" + (this.options.secure ? "s" : "") + ":/", this.options.host + ":" + this.options.port, this.options.resource, e.protocol, "", this.sessionid].join("/") + "/?disconnect=1"; | |
| t.open("GET", n, !1), t.send(null), this.onDisconnect("booted") | |
| }, r.prototype.isXDomain = function () { | |
| var t = n.location.port || ("https:" == n.location.protocol ? 443 : 80); | |
| return this.options.host !== n.location.hostname || this.options.port != t | |
| }, r.prototype.onConnect = function () { | |
| this.connected || (this.connected = !0, this.connecting = !1, this.emit("connect"), this.doBuffer || this.setBuffer(!1)) | |
| }, r.prototype.onOpen = function () { | |
| this.open = !0 | |
| }, r.prototype.onClose = function () { | |
| this.open = !1, clearTimeout(this.heartbeatTimeoutTimer) | |
| }, r.prototype.onPacket = function (t) { | |
| this.of(t.endpoint).onPacket(t) | |
| }, r.prototype.onError = function (t) { | |
| t && t.advice && "reconnect" === t.advice && (this.connected || this.connecting) && (this.disconnect(), this.options.reconnect && this.reconnect()), this.publish("error", t && t.reason ? t.reason : t) | |
| }, r.prototype.onDisconnect = function (t) { | |
| var e = this.connected, | |
| n = this.connecting; | |
| this.connected = !1, this.connecting = !1, this.open = !1, (e || n) && (this.transport.close(), this.transport.clearTimeouts(), e && (this.publish("disconnect", t), "booted" != t && this.options.reconnect && !this.reconnecting && this.reconnect())) | |
| }, r.prototype.reconnect = function () { | |
| function t() { | |
| if (n.connected) { | |
| for (var t in n.namespaces) n.namespaces.hasOwnProperty(t) && "" !== t && n.namespaces[t].packet({ | |
| type: "connect" | |
| }); | |
| n.publish("reconnect", n.transport.name, n.reconnectionAttempts) | |
| } | |
| clearTimeout(n.reconnectionTimer), n.removeListener("connect_failed", e), n.removeListener("connect", e), n.reconnecting = !1, delete n.reconnectionAttempts, delete n.reconnectionDelay, delete n.reconnectionTimer, delete n.redoTransports, n.options["try multiple transports"] = o | |
| } | |
| function e() { | |
| return n.reconnecting ? n.connected ? t() : n.connecting && n.reconnecting ? n.reconnectionTimer = setTimeout(e, 1e3) : void(n.reconnectionAttempts++ >= r ? n.redoTransports ? (n.publish("reconnect_failed"), t()) : (n.on("connect_failed", e), n.options["try multiple transports"] = !0, n.transports = n.origTransports, n.transport = n.getTransport(), n.redoTransports = !0, n.connect()) : (n.reconnectionDelay < i && (n.reconnectionDelay *= 2), n.connect(), n.publish("reconnecting", n.reconnectionDelay, n.reconnectionAttempts), n.reconnectionTimer = setTimeout(e, n.reconnectionDelay))) : void 0 | |
| } | |
| this.reconnecting = !0, this.reconnectionAttempts = 0, this.reconnectionDelay = this.options["reconnection delay"]; | |
| var n = this, | |
| r = this.options["max reconnection attempts"], | |
| o = this.options["try multiple transports"], | |
| i = this.options["reconnection limit"]; | |
| this.options["try multiple transports"] = !1, this.reconnectionTimer = setTimeout(e, this.reconnectionDelay), this.on("connect", e) | |
| } | |
| }("undefined" != typeof io ? io : module.exports, "undefined" != typeof io ? io : module.parent.exports, this), | |
| /** | |
| * socket.io | |
| * Copyright(c) 2011 LearnBoost <dev@learnboost.com> | |
| * MIT Licensed | |
| */ | |
| function (t, e) { | |
| function n(t, e) { | |
| this.socket = t, this.name = e || "", this.flags = {}, this.json = new r(this, "json"), this.ackPackets = 0, this.acks = {} | |
| } | |
| function r(t, e) { | |
| this.namespace = t, this.name = e | |
| } | |
| t.SocketNamespace = n, e.util.mixin(n, e.EventEmitter), n.prototype.$emit = e.EventEmitter.prototype.emit, n.prototype.of = function () { | |
| return this.socket.of.apply(this.socket, arguments) | |
| }, n.prototype.packet = function (t) { | |
| return t.endpoint = this.name, this.socket.packet(t), this.flags = {}, this | |
| }, n.prototype.send = function (t, e) { | |
| var n = { | |
| type: this.flags.json ? "json" : "message", | |
| data: t | |
| }; | |
| return "function" == typeof e && (n.id = ++this.ackPackets, n.ack = !0, this.acks[n.id] = e), this.packet(n) | |
| }, n.prototype.emit = function (t) { | |
| var e = Array.prototype.slice.call(arguments, 1), | |
| n = e[e.length - 1], | |
| r = { | |
| type: "event", | |
| name: t | |
| }; | |
| return "function" == typeof n && (r.id = ++this.ackPackets, r.ack = "data", this.acks[r.id] = n, e = e.slice(0, e.length - 1)), r.args = e, this.packet(r) | |
| }, n.prototype.disconnect = function () { | |
| return "" === this.name ? this.socket.disconnect() : (this.packet({ | |
| type: "disconnect" | |
| }), this.$emit("disconnect")), this | |
| }, n.prototype.onPacket = function (t) { | |
| function n() { | |
| r.packet({ | |
| type: "ack", | |
| args: e.util.toArray(arguments), | |
| ackId: t.id | |
| }) | |
| } | |
| var r = this; | |
| switch (t.type) { | |
| case "connect": | |
| this.$emit("connect"); | |
| break; | |
| case "disconnect": | |
| "" === this.name ? this.socket.onDisconnect(t.reason || "booted") : this.$emit("disconnect", t.reason); | |
| break; | |
| case "message": | |
| case "json": | |
| var o = ["message", t.data]; | |
| "data" == t.ack ? o.push(n) : t.ack && this.packet({ | |
| type: "ack", | |
| ackId: t.id | |
| }), this.$emit.apply(this, o); | |
| break; | |
| case "event": | |
| var o = [t.name].concat(t.args); | |
| "data" == t.ack && o.push(n), this.$emit.apply(this, o); | |
| break; | |
| case "ack": | |
| this.acks[t.ackId] && (this.acks[t.ackId].apply(this, t.args), delete this.acks[t.ackId]); | |
| break; | |
| case "error": | |
| t.advice ? this.socket.onError(t) : "unauthorized" == t.reason ? this.$emit("connect_failed", t.reason) : this.$emit("error", t.reason) | |
| } | |
| }, r.prototype.send = function () { | |
| this.namespace.flags[this.name] = !0, this.namespace.send.apply(this.namespace, arguments) | |
| }, r.prototype.emit = function () { | |
| this.namespace.flags[this.name] = !0, this.namespace.emit.apply(this.namespace, arguments) | |
| } | |
| }("undefined" != typeof io ? io : module.exports, "undefined" != typeof io ? io : module.parent.exports), | |
| /** | |
| * socket.io | |
| * Copyright(c) 2011 LearnBoost <dev@learnboost.com> | |
| * MIT Licensed | |
| */ | |
| function (t, e, n) { | |
| function r() { | |
| e.Transport.apply(this, arguments) | |
| } | |
| t.websocket = r, e.util.inherit(r, e.Transport), r.prototype.name = "websocket", r.prototype.open = function () { | |
| var t, r = e.util.query(this.socket.options.query), | |
| o = this; | |
| return t || (t = n.MozWebSocket || n.WebSocket), this.websocket = new t(this.prepareUrl() + r), this.websocket.onopen = function () { | |
| o.onOpen(), o.socket.setBuffer(!1) | |
| }, this.websocket.onmessage = function (t) { | |
| o.onData(t.data) | |
| }, this.websocket.onclose = function () { | |
| o.onClose(), o.socket.setBuffer(!0) | |
| }, this.websocket.onerror = function (t) { | |
| o.onError(t) | |
| }, this | |
| }, r.prototype.send = e.util.ua.iDevice ? function (t) { | |
| var e = this; | |
| return setTimeout(function () { | |
| try { | |
| e.websocket.send(t) | |
| } catch (n) { | |
| e.onError(n) | |
| } | |
| }, 0), this | |
| } : function (t) { | |
| try { | |
| this.websocket.send(t) | |
| } catch (e) { | |
| this.onError(e) | |
| } | |
| return this | |
| }, r.prototype.payload = function (t) { | |
| for (var e = 0, n = t.length; n > e; e++) this.packet(t[e]); | |
| return this | |
| }, r.prototype.close = function () { | |
| return this.websocket.close(), this | |
| }, r.prototype.onError = function (t) { | |
| this.socket.onError(t) | |
| }, r.prototype.scheme = function () { | |
| return this.socket.options.secure ? "wss" : "ws" | |
| }, r.check = function () { | |
| return "WebSocket" in n && !("__addTask" in WebSocket) || "MozWebSocket" in n | |
| }, r.xdomainCheck = function () { | |
| return !0 | |
| }, e.transports.push("websocket") | |
| }("undefined" != typeof io ? io.Transport : module.exports, "undefined" != typeof io ? io : module.parent.exports, this), | |
| /** | |
| * socket.io | |
| * Copyright(c) 2011 LearnBoost <dev@learnboost.com> | |
| * MIT Licensed | |
| */ | |
| function (t, e, n) { | |
| function r(t) { | |
| t && (e.Transport.apply(this, arguments), this.sendBuffer = []) | |
| } | |
| function o() {} | |
| t.XHR = r, e.util.inherit(r, e.Transport), r.prototype.open = function () { | |
| return this.socket.setBuffer(!1), this.onOpen(), this.get(), this.setCloseTimeout(), this | |
| }, r.prototype.payload = function (t) { | |
| for (var n = [], r = 0, o = t.length; o > r; r++) n.push(e.parser.encodePacket(t[r])); | |
| this.send(e.parser.encodePayload(n)) | |
| }, r.prototype.send = function (t) { | |
| return this.post(t), this | |
| }, r.prototype.post = function (t) { | |
| function e() { | |
| 4 == this.readyState && (this.onreadystatechange = o, i.posting = !1, 200 == this.status ? i.socket.setBuffer(!1) : i.onClose()) | |
| } | |
| function r() { | |
| this.onload = o, i.socket.setBuffer(!1) | |
| } | |
| var i = this; | |
| this.socket.setBuffer(!0), this.sendXHR = this.request("POST"), n.XDomainRequest && this.sendXHR instanceof XDomainRequest ? this.sendXHR.onload = this.sendXHR.onerror = r : this.sendXHR.onreadystatechange = e, this.sendXHR.send(t) | |
| }, r.prototype.close = function () { | |
| return this.onClose(), this | |
| }, r.prototype.request = function (t) { | |
| var n = e.util.request(this.socket.isXDomain()), | |
| r = e.util.query(this.socket.options.query, "t=" + +new Date); | |
| if (n.open(t || "GET", this.prepareUrl() + r, !0), "POST" == t) try { | |
| n.setRequestHeader ? n.setRequestHeader("Content-type", "text/plain;charset=UTF-8") : n.contentType = "text/plain" | |
| } catch (o) {} | |
| return n | |
| }, r.prototype.scheme = function () { | |
| return this.socket.options.secure ? "https" : "http" | |
| }, r.check = function (t, r) { | |
| try { | |
| var o = e.util.request(r), | |
| i = n.XDomainRequest && o instanceof XDomainRequest, | |
| s = t && t.options && t.options.secure ? "https:" : "http:", | |
| a = n.location && s != n.location.protocol; | |
| if (o && (!i || !a)) return !0 | |
| } catch (u) {} | |
| return !1 | |
| }, r.xdomainCheck = function (t) { | |
| return r.check(t, !0) | |
| } | |
| }("undefined" != typeof io ? io.Transport : module.exports, "undefined" != typeof io ? io : module.parent.exports, this), | |
| /** | |
| * socket.io | |
| * Copyright(c) 2011 LearnBoost <dev@learnboost.com> | |
| * MIT Licensed | |
| */ | |
| function (t, e, n) { | |
| function r() { | |
| e.Transport.XHR.apply(this, arguments) | |
| } | |
| function o() {} | |
| t["xhr-polling"] = r, e.util.inherit(r, e.Transport.XHR), e.util.merge(r, e.Transport.XHR), r.prototype.name = "xhr-polling", r.prototype.heartbeats = function () { | |
| return !1 | |
| }, r.prototype.open = function () { | |
| var t = this; | |
| return e.Transport.XHR.prototype.open.call(t), !1 | |
| }, r.prototype.get = function () { | |
| function t() { | |
| 4 == this.readyState && (this.onreadystatechange = o, 200 == this.status ? (i.onData(this.responseText), i.get()) : i.onClose()) | |
| } | |
| function e() { | |
| this.onload = o, this.onerror = o, i.retryCounter = 1, i.onData(this.responseText), i.get() | |
| } | |
| function r() { | |
| i.retryCounter++, !i.retryCounter || i.retryCounter > 3 ? i.onClose() : i.get() | |
| } | |
| if (this.isOpen) { | |
| var i = this; | |
| this.xhr = this.request(), n.XDomainRequest && this.xhr instanceof XDomainRequest ? (this.xhr.onload = e, this.xhr.onerror = r) : this.xhr.onreadystatechange = t, this.xhr.send(null) | |
| } | |
| }, r.prototype.onClose = function () { | |
| if (e.Transport.XHR.prototype.onClose.call(this), this.xhr) { | |
| this.xhr.onreadystatechange = this.xhr.onload = this.xhr.onerror = o; | |
| try { | |
| this.xhr.abort() | |
| } catch (t) {} | |
| this.xhr = null | |
| } | |
| }, r.prototype.ready = function (t, n) { | |
| var r = this; | |
| e.util.defer(function () { | |
| n.call(r) | |
| }) | |
| }, e.transports.push("xhr-polling") | |
| }("undefined" != typeof io ? io.Transport : module.exports, "undefined" != typeof io ? io : module.parent.exports, this), | |
| /** | |
| * socket.io | |
| * Copyright(c) 2011 LearnBoost <dev@learnboost.com> | |
| * MIT Licensed | |
| */ | |
| function (t, e) { | |
| function n() { | |
| e.Transport.XHR.apply(this, arguments) | |
| } | |
| t.htmlfile = n, e.util.inherit(n, e.Transport.XHR), n.prototype.name = "htmlfile", n.prototype.get = function () { | |
| this.doc = new(window[["Active"].concat("Object").join("X")])("htmlfile"), this.doc.open(), this.doc.write("<html></html>"), this.doc.close(), this.doc.parentWindow.s = this; | |
| var t = this.doc.createElement("div"); | |
| t.className = "socketio", this.doc.body.appendChild(t), this.iframe = this.doc.createElement("iframe"), t.appendChild(this.iframe); | |
| var n = this, | |
| r = e.util.query(this.socket.options.query, "t=" + +new Date); | |
| this.iframe.src = this.prepareUrl() + r, e.util.on(window, "unload", function () { | |
| n.destroy() | |
| }) | |
| }, n.prototype._ = function (t, e) { | |
| this.onData(t); | |
| try { | |
| var n = e.getElementsByTagName("script")[0]; | |
| n.parentNode.removeChild(n) | |
| } catch (r) {} | |
| }, n.prototype.destroy = function () { | |
| if (this.iframe) { | |
| try { | |
| this.iframe.src = "about:blank" | |
| } catch (t) {} | |
| this.doc = null, this.iframe.parentNode.removeChild(this.iframe), this.iframe = null, CollectGarbage() | |
| } | |
| }, n.prototype.close = function () { | |
| return this.destroy(), e.Transport.XHR.prototype.close.call(this) | |
| }, n.check = function (t) { | |
| if ("undefined" != typeof window && ["Active"].concat("Object").join("X") in window) try { | |
| var n = new(window[["Active"].concat("Object").join("X")])("htmlfile"); | |
| return n && e.Transport.XHR.check(t) | |
| } catch (r) {} | |
| return !1 | |
| }, n.xdomainCheck = function () { | |
| return !1 | |
| }, e.transports.push("htmlfile") | |
| }("undefined" != typeof io ? io.Transport : module.exports, "undefined" != typeof io ? io : module.parent.exports) | |
| }(), | |
| function () { | |
| var t = this, | |
| e = t._, | |
| n = {}, | |
| r = Array.prototype, | |
| o = Object.prototype, | |
| i = Function.prototype, | |
| s = r.push, | |
| a = r.slice, | |
| u = r.concat, | |
| l = o.toString, | |
| c = o.hasOwnProperty, | |
| p = r.forEach, | |
| d = r.map, | |
| h = r.reduce, | |
| f = r.reduceRight, | |
| m = r.filter, | |
| g = r.every, | |
| v = r.some, | |
| y = r.indexOf, | |
| w = r.lastIndexOf, | |
| _ = Array.isArray, | |
| b = Object.keys, | |
| x = i.bind, | |
| k = function (t) { | |
| return t instanceof k ? t : this instanceof k ? void(this._wrapped = t) : new k(t) | |
| }; | |
| "undefined" != typeof exports ? ("undefined" != typeof module && module.exports && (exports = module.exports = k), exports._ = k) : t._ = k, k.VERSION = "1.6.0"; | |
| var T = k.each = k.forEach = function (t, e, r) { | |
| if (null == t) return t; | |
| if (p && t.forEach === p) t.forEach(e, r); | |
| else if (t.length === +t.length) { | |
| for (var o = 0, i = t.length; i > o; o++) | |
| if (e.call(r, t[o], o, t) === n) return | |
| } else | |
| for (var s = k.keys(t), o = 0, i = s.length; i > o; o++) | |
| if (e.call(r, t[s[o]], s[o], t) === n) return; return t | |
| }; | |
| k.map = k.collect = function (t, e, n) { | |
| var r = []; | |
| return null == t ? r : d && t.map === d ? t.map(e, n) : (T(t, function (t, o, i) { | |
| r.push(e.call(n, t, o, i)) | |
| }), r) | |
| }; | |
| var C = "Reduce of empty array with no initial value"; | |
| k.reduce = k.foldl = k.inject = function (t, e, n, r) { | |
| var o = arguments.length > 2; | |
| if (null == t && (t = []), h && t.reduce === h) return r && (e = k.bind(e, r)), o ? t.reduce(e, n) : t.reduce(e); | |
| if (T(t, function (t, i, s) { | |
| o ? n = e.call(r, n, t, i, s) : (n = t, o = !0) | |
| }), !o) throw new TypeError(C); | |
| return n | |
| }, k.reduceRight = k.foldr = function (t, e, n, r) { | |
| var o = arguments.length > 2; | |
| if (null == t && (t = []), f && t.reduceRight === f) return r && (e = k.bind(e, r)), o ? t.reduceRight(e, n) : t.reduceRight(e); | |
| var i = t.length; | |
| if (i !== +i) { | |
| var s = k.keys(t); | |
| i = s.length | |
| } | |
| if (T(t, function (a, u, l) { | |
| u = s ? s[--i] : --i, o ? n = e.call(r, n, t[u], u, l) : (n = t[u], o = !0) | |
| }), !o) throw new TypeError(C); | |
| return n | |
| }, k.find = k.detect = function (t, e, n) { | |
| var r; | |
| return E(t, function (t, o, i) { | |
| return e.call(n, t, o, i) ? (r = t, !0) : void 0 | |
| }), r | |
| }, k.filter = k.select = function (t, e, n) { | |
| var r = []; | |
| return null == t ? r : m && t.filter === m ? t.filter(e, n) : (T(t, function (t, o, i) { | |
| e.call(n, t, o, i) && r.push(t) | |
| }), r) | |
| }, k.reject = function (t, e, n) { | |
| return k.filter(t, function (t, r, o) { | |
| return !e.call(n, t, r, o) | |
| }, n) | |
| }, k.every = k.all = function (t, e, r) { | |
| e || (e = k.identity); | |
| var o = !0; | |
| return null == t ? o : g && t.every === g ? t.every(e, r) : (T(t, function (t, i, s) { | |
| return (o = o && e.call(r, t, i, s)) ? void 0 : n | |
| }), !!o) | |
| }; | |
| var E = k.some = k.any = function (t, e, r) { | |
| e || (e = k.identity); | |
| var o = !1; | |
| return null == t ? o : v && t.some === v ? t.some(e, r) : (T(t, function (t, i, s) { | |
| return o || (o = e.call(r, t, i, s)) ? n : void 0 | |
| }), !!o) | |
| }; | |
| k.contains = k.include = function (t, e) { | |
| return null == t ? !1 : y && t.indexOf === y ? -1 != t.indexOf(e) : E(t, function (t) { | |
| return t === e | |
| }) | |
| }, k.invoke = function (t, e) { | |
| var n = a.call(arguments, 2), | |
| r = k.isFunction(e); | |
| return k.map(t, function (t) { | |
| return (r ? e : t[e]).apply(t, n) | |
| }) | |
| }, k.pluck = function (t, e) { | |
| return k.map(t, k.property(e)) | |
| }, k.where = function (t, e) { | |
| return k.filter(t, k.matches(e)) | |
| }, k.findWhere = function (t, e) { | |
| return k.find(t, k.matches(e)) | |
| }, k.max = function (t, e, n) { | |
| if (!e && k.isArray(t) && t[0] === +t[0] && t.length < 65535) return Math.max.apply(Math, t); | |
| var r = -1 / 0, | |
| o = -1 / 0; | |
| return T(t, function (t, i, s) { | |
| var a = e ? e.call(n, t, i, s) : t; | |
| a > o && (r = t, o = a) | |
| }), r | |
| }, k.min = function (t, e, n) { | |
| if (!e && k.isArray(t) && t[0] === +t[0] && t.length < 65535) return Math.min.apply(Math, t); | |
| var r = 1 / 0, | |
| o = 1 / 0; | |
| return T(t, function (t, i, s) { | |
| var a = e ? e.call(n, t, i, s) : t; | |
| o > a && (r = t, o = a) | |
| }), r | |
| }, k.shuffle = function (t) { | |
| var e, n = 0, | |
| r = []; | |
| return T(t, function (t) { | |
| e = k.random(n++), r[n - 1] = r[e], r[e] = t | |
| }), r | |
| }, k.sample = function (t, e, n) { | |
| return null == e || n ? (t.length !== +t.length && (t = k.values(t)), t[k.random(t.length - 1)]) : k.shuffle(t).slice(0, Math.max(0, e)) | |
| }; | |
| var P = function (t) { | |
| return null == t ? k.identity : k.isFunction(t) ? t : k.property(t) | |
| }; | |
| k.sortBy = function (t, e, n) { | |
| return e = P(e), k.pluck(k.map(t, function (t, r, o) { | |
| return { | |
| value: t, | |
| index: r, | |
| criteria: e.call(n, t, r, o) | |
| } | |
| }).sort(function (t, e) { | |
| var n = t.criteria, | |
| r = e.criteria; | |
| if (n !== r) { | |
| if (n > r || void 0 === n) return 1; | |
| if (r > n || void 0 === r) return -1 | |
| } | |
| return t.index - e.index | |
| }), "value") | |
| }; | |
| var S = function (t) { | |
| return function (e, n, r) { | |
| var o = {}; | |
| return n = P(n), T(e, function (i, s) { | |
| var a = n.call(r, i, s, e); | |
| t(o, a, i) | |
| }), o | |
| } | |
| }; | |
| k.groupBy = S(function (t, e, n) { | |
| k.has(t, e) ? t[e].push(n) : t[e] = [n] | |
| }), k.indexBy = S(function (t, e, n) { | |
| t[e] = n | |
| }), k.countBy = S(function (t, e) { | |
| k.has(t, e) ? t[e]++ : t[e] = 1 | |
| }), k.sortedIndex = function (t, e, n, r) { | |
| n = P(n); | |
| for (var o = n.call(r, e), i = 0, s = t.length; s > i;) { | |
| var a = i + s >>> 1; | |
| n.call(r, t[a]) < o ? i = a + 1 : s = a | |
| } | |
| return i | |
| }, k.toArray = function (t) { | |
| return t ? k.isArray(t) ? a.call(t) : t.length === +t.length ? k.map(t, k.identity) : k.values(t) : [] | |
| }, k.size = function (t) { | |
| return null == t ? 0 : t.length === +t.length ? t.length : k.keys(t).length | |
| }, k.first = k.head = k.take = function (t, e, n) { | |
| return null == t ? void 0 : null == e || n ? t[0] : 0 > e ? [] : a.call(t, 0, e) | |
| }, k.initial = function (t, e, n) { | |
| return a.call(t, 0, t.length - (null == e || n ? 1 : e)) | |
| }, k.last = function (t, e, n) { | |
| return null == t ? void 0 : null == e || n ? t[t.length - 1] : a.call(t, Math.max(t.length - e, 0)) | |
| }, k.rest = k.tail = k.drop = function (t, e, n) { | |
| return a.call(t, null == e || n ? 1 : e) | |
| }, k.compact = function (t) { | |
| return k.filter(t, k.identity) | |
| }; | |
| var R = function (t, e, n) { | |
| return e && k.every(t, k.isArray) ? u.apply(n, t) : (T(t, function (t) { | |
| k.isArray(t) || k.isArguments(t) ? e ? s.apply(n, t) : R(t, e, n) : n.push(t) | |
| }), n) | |
| }; | |
| k.flatten = function (t, e) { | |
| return R(t, e, []) | |
| }, k.without = function (t) { | |
| return k.difference(t, a.call(arguments, 1)) | |
| }, k.partition = function (t, e) { | |
| var n = [], | |
| r = []; | |
| return T(t, function (t) { | |
| (e(t) ? n : r).push(t) | |
| }), [n, r] | |
| }, k.uniq = k.unique = function (t, e, n, r) { | |
| k.isFunction(e) && (r = n, n = e, e = !1); | |
| var o = n ? k.map(t, n, r) : t, | |
| i = [], | |
| s = []; | |
| return T(o, function (n, r) { | |
| (e ? r && s[s.length - 1] === n : k.contains(s, n)) || (s.push(n), i.push(t[r])) | |
| }), i | |
| }, k.union = function () { | |
| return k.uniq(k.flatten(arguments, !0)) | |
| }, k.intersection = function (t) { | |
| var e = a.call(arguments, 1); | |
| return k.filter(k.uniq(t), function (t) { | |
| return k.every(e, function (e) { | |
| return k.contains(e, t) | |
| }) | |
| }) | |
| }, k.difference = function (t) { | |
| var e = u.apply(r, a.call(arguments, 1)); | |
| return k.filter(t, function (t) { | |
| return !k.contains(e, t) | |
| }) | |
| }, k.zip = function () { | |
| for (var t = k.max(k.pluck(arguments, "length").concat(0)), e = new Array(t), n = 0; t > n; n++) e[n] = k.pluck(arguments, "" + n); | |
| return e | |
| }, k.object = function (t, e) { | |
| if (null == t) return {}; | |
| for (var n = {}, r = 0, o = t.length; o > r; r++) e ? n[t[r]] = e[r] : n[t[r][0]] = t[r][1]; | |
| return n | |
| }, k.indexOf = function (t, e, n) { | |
| if (null == t) return -1; | |
| var r = 0, | |
| o = t.length; | |
| if (n) { | |
| if ("number" != typeof n) return r = k.sortedIndex(t, e), t[r] === e ? r : -1; | |
| r = 0 > n ? Math.max(0, o + n) : n | |
| } | |
| if (y && t.indexOf === y) return t.indexOf(e, n); | |
| for (; o > r; r++) | |
| if (t[r] === e) return r; | |
| return -1 | |
| }, k.lastIndexOf = function (t, e, n) { | |
| if (null == t) return -1; | |
| var r = null != n; | |
| if (w && t.lastIndexOf === w) return r ? t.lastIndexOf(e, n) : t.lastIndexOf(e); | |
| for (var o = r ? n : t.length; o--;) | |
| if (t[o] === e) return o; | |
| return -1 | |
| }, k.range = function (t, e, n) { | |
| arguments.length <= 1 && (e = t || 0, t = 0), n = arguments[2] || 1; | |
| for (var r = Math.max(Math.ceil((e - t) / n), 0), o = 0, i = new Array(r); r > o;) i[o++] = t, t += n; | |
| return i | |
| }; | |
| var M = function () {}; | |
| k.bind = function (t, e) { | |
| var n, r; | |
| if (x && t.bind === x) return x.apply(t, a.call(arguments, 1)); | |
| if (!k.isFunction(t)) throw new TypeError; | |
| return n = a.call(arguments, 2), r = function () { | |
| if (!(this instanceof r)) return t.apply(e, n.concat(a.call(arguments))); | |
| M.prototype = t.prototype; | |
| var o = new M; | |
| M.prototype = null; | |
| var i = t.apply(o, n.concat(a.call(arguments))); | |
| return Object(i) === i ? i : o | |
| } | |
| }, k.partial = function (t) { | |
| var e = a.call(arguments, 1); | |
| return function () { | |
| for (var n = 0, r = e.slice(), o = 0, i = r.length; i > o; o++) r[o] === k && (r[o] = arguments[n++]); | |
| for (; n < arguments.length;) r.push(arguments[n++]); | |
| return t.apply(this, r) | |
| } | |
| }, k.bindAll = function (t) { | |
| var e = a.call(arguments, 1); | |
| if (0 === e.length) throw new Error("bindAll must be passed function names"); | |
| return T(e, function (e) { | |
| t[e] = k.bind(t[e], t) | |
| }), t | |
| }, k.memoize = function (t, e) { | |
| var n = {}; | |
| return e || (e = k.identity), | |
| function () { | |
| var r = e.apply(this, arguments); | |
| return k.has(n, r) ? n[r] : n[r] = t.apply(this, arguments) | |
| } | |
| }, k.delay = function (t, e) { | |
| var n = a.call(arguments, 2); | |
| return setTimeout(function () { | |
| return t.apply(null, n) | |
| }, e) | |
| }, k.defer = function (t) { | |
| return k.delay.apply(k, [t, 1].concat(a.call(arguments, 1))) | |
| }, k.throttle = function (t, e, n) { | |
| var r, o, i, s = null, | |
| a = 0; | |
| n || (n = {}); | |
| var u = function () { | |
| a = n.leading === !1 ? 0 : k.now(), s = null, i = t.apply(r, o), r = o = null | |
| }; | |
| return function () { | |
| var l = k.now(); | |
| a || n.leading !== !1 || (a = l); | |
| var c = e - (l - a); | |
| return r = this, o = arguments, 0 >= c ? (clearTimeout(s), s = null, a = l, i = t.apply(r, o), r = o = null) : s || n.trailing === !1 || (s = setTimeout(u, c)), i | |
| } | |
| }, k.debounce = function (t, e, n) { | |
| var r, o, i, s, a, u = function () { | |
| var l = k.now() - s; | |
| e > l ? r = setTimeout(u, e - l) : (r = null, n || (a = t.apply(i, o), i = o = null)) | |
| }; | |
| return function () { | |
| i = this, o = arguments, s = k.now(); | |
| var l = n && !r; | |
| return r || (r = setTimeout(u, e)), l && (a = t.apply(i, o), i = o = null), a | |
| } | |
| }, k.once = function (t) { | |
| var e, n = !1; | |
| return function () { | |
| return n ? e : (n = !0, e = t.apply(this, arguments), t = null, e) | |
| } | |
| }, k.wrap = function (t, e) { | |
| return k.partial(e, t) | |
| }, k.compose = function () { | |
| var t = arguments; | |
| return function () { | |
| for (var e = arguments, n = t.length - 1; n >= 0; n--) e = [t[n].apply(this, e)]; | |
| return e[0] | |
| } | |
| }, k.after = function (t, e) { | |
| return function () { | |
| return --t < 1 ? e.apply(this, arguments) : void 0 | |
| } | |
| }, k.keys = function (t) { | |
| if (!k.isObject(t)) return []; | |
| if (b) return b(t); | |
| var e = []; | |
| for (var n in t) k.has(t, n) && e.push(n); | |
| return e | |
| }, k.values = function (t) { | |
| for (var e = k.keys(t), n = e.length, r = new Array(n), o = 0; n > o; o++) r[o] = t[e[o]]; | |
| return r | |
| }, k.pairs = function (t) { | |
| for (var e = k.keys(t), n = e.length, r = new Array(n), o = 0; n > o; o++) r[o] = [e[o], t[e[o]]]; | |
| return r | |
| }, k.invert = function (t) { | |
| for (var e = {}, n = k.keys(t), r = 0, o = n.length; o > r; r++) e[t[n[r]]] = n[r]; | |
| return e | |
| }, k.functions = k.methods = function (t) { | |
| var e = []; | |
| for (var n in t) k.isFunction(t[n]) && e.push(n); | |
| return e.sort() | |
| }, k.extend = function (t) { | |
| return T(a.call(arguments, 1), function (e) { | |
| if (e) | |
| for (var n in e) t[n] = e[n] | |
| }), t | |
| }, k.pick = function (t) { | |
| var e = {}, | |
| n = u.apply(r, a.call(arguments, 1)); | |
| return T(n, function (n) { | |
| n in t && (e[n] = t[n]) | |
| }), e | |
| }, k.omit = function (t) { | |
| var e = {}, | |
| n = u.apply(r, a.call(arguments, 1)); | |
| for (var o in t) k.contains(n, o) || (e[o] = t[o]); | |
| return e | |
| }, k.defaults = function (t) { | |
| return T(a.call(arguments, 1), function (e) { | |
| if (e) | |
| for (var n in e) void 0 === t[n] && (t[n] = e[n]) | |
| }), t | |
| }, k.clone = function (t) { | |
| return k.isObject(t) ? k.isArray(t) ? t.slice() : k.extend({}, t) : t | |
| }, k.tap = function (t, e) { | |
| return e(t), t | |
| }; | |
| var N = function (t, e, n, r) { | |
| if (t === e) return 0 !== t || 1 / t == 1 / e; | |
| if (null == t || null == e) return t === e; | |
| t instanceof k && (t = t._wrapped), e instanceof k && (e = e._wrapped); | |
| var o = l.call(t); | |
| if (o != l.call(e)) return !1; | |
| switch (o) { | |
| case "[object String]": | |
| return t == String(e); | |
| case "[object Number]": | |
| return t != +t ? e != +e : 0 == t ? 1 / t == 1 / e : t == +e; | |
| case "[object Date]": | |
| case "[object Boolean]": | |
| return +t == +e; | |
| case "[object RegExp]": | |
| return t.source == e.source && t.global == e.global && t.multiline == e.multiline && t.ignoreCase == e.ignoreCase | |
| } | |
| if ("object" != typeof t || "object" != typeof e) return !1; | |
| for (var i = n.length; i--;) | |
| if (n[i] == t) return r[i] == e; | |
| var s = t.constructor, | |
| a = e.constructor; | |
| if (s !== a && !(k.isFunction(s) && s instanceof s && k.isFunction(a) && a instanceof a) && "constructor" in t && "constructor" in e) return !1; | |
| n.push(t), r.push(e); | |
| var u = 0, | |
| c = !0; | |
| if ("[object Array]" == o) { | |
| if (u = t.length, c = u == e.length) | |
| for (; u-- && (c = N(t[u], e[u], n, r));); | |
| } else { | |
| for (var p in t) | |
| if (k.has(t, p) && (u++, !(c = k.has(e, p) && N(t[p], e[p], n, r)))) break; | |
| if (c) { | |
| for (p in e) | |
| if (k.has(e, p) && !u--) break; | |
| c = !u | |
| } | |
| } | |
| return n.pop(), r.pop(), c | |
| }; | |
| k.isEqual = function (t, e) { | |
| return N(t, e, [], []) | |
| }, k.isEmpty = function (t) { | |
| if (null == t) return !0; | |
| if (k.isArray(t) || k.isString(t)) return 0 === t.length; | |
| for (var e in t) | |
| if (k.has(t, e)) return !1; | |
| return !0 | |
| }, k.isElement = function (t) { | |
| return !(!t || 1 !== t.nodeType) | |
| }, k.isArray = _ || function (t) { | |
| return "[object Array]" == l.call(t) | |
| }, k.isObject = function (t) { | |
| return t === Object(t) | |
| }, T(["Arguments", "Function", "String", "Number", "Date", "RegExp"], function (t) { | |
| k["is" + t] = function (e) { | |
| return l.call(e) == "[object " + t + "]" | |
| } | |
| }), k.isArguments(arguments) || (k.isArguments = function (t) { | |
| return !(!t || !k.has(t, "callee")) | |
| }), "function" != typeof / . / && (k.isFunction = function (t) { | |
| return "function" == typeof t | |
| }), k.isFinite = function (t) { | |
| return isFinite(t) && !isNaN(parseFloat(t)) | |
| }, k.isNaN = function (t) { | |
| return k.isNumber(t) && t != +t | |
| }, k.isBoolean = function (t) { | |
| return t === !0 || t === !1 || "[object Boolean]" == l.call(t) | |
| }, k.isNull = function (t) { | |
| return null === t | |
| }, k.isUndefined = function (t) { | |
| return void 0 === t | |
| }, k.has = function (t, e) { | |
| return c.call(t, e) | |
| }, k.noConflict = function () { | |
| return t._ = e, this | |
| }, k.identity = function (t) { | |
| return t | |
| }, k.constant = function (t) { | |
| return function () { | |
| return t | |
| } | |
| }, k.property = function (t) { | |
| return function (e) { | |
| return e[t] | |
| } | |
| }, k.matches = function (t) { | |
| return function (e) { | |
| if (e === t) return !0; | |
| for (var n in t) | |
| if (t[n] !== e[n]) return !1; | |
| return !0 | |
| } | |
| }, k.times = function (t, e, n) { | |
| for (var r = Array(Math.max(0, t)), o = 0; t > o; o++) r[o] = e.call(n, o); | |
| return r | |
| }, k.random = function (t, e) { | |
| return null == e && (e = t, t = 0), t + Math.floor(Math.random() * (e - t + 1)) | |
| }, k.now = Date.now || function () { | |
| return (new Date).getTime() | |
| }; | |
| var O = { | |
| escape: { | |
| "&": "&", | |
| "<": "<", | |
| ">": ">", | |
| '"': """, | |
| "'": "'" | |
| } | |
| }; | |
| O.unescape = k.invert(O.escape); | |
| var F = { | |
| escape: new RegExp("[" + k.keys(O.escape).join("") + "]", "g"), | |
| unescape: new RegExp("(" + k.keys(O.unescape).join("|") + ")", "g") | |
| }; | |
| k.each(["escape", "unescape"], function (t) { | |
| k[t] = function (e) { | |
| return null == e ? "" : ("" + e).replace(F[t], function (e) { | |
| return O[t][e] | |
| }) | |
| } | |
| }), k.result = function (t, e) { | |
| if (null == t) return void 0; | |
| var n = t[e]; | |
| return k.isFunction(n) ? n.call(t) : n | |
| }, k.mixin = function (t) { | |
| T(k.functions(t), function (e) { | |
| var n = k[e] = t[e]; | |
| k.prototype[e] = function () { | |
| var t = [this._wrapped]; | |
| return s.apply(t, arguments), L.call(this, n.apply(k, t)) | |
| } | |
| }) | |
| }; | |
| var A = 0; | |
| k.uniqueId = function (t) { | |
| var e = ++A + ""; | |
| return t ? t + e : e | |
| }, k.templateSettings = { | |
| evaluate: /<%([\s\S]+?)%>/g, | |
| interpolate: /<%=([\s\S]+?)%>/g, | |
| escape: /<%-([\s\S]+?)%>/g | |
| }; | |
| var I = /(.)^/, | |
| $ = { | |
| "'": "'", | |
| "\\": "\\", | |
| "\r": "r", | |
| "\n": "n", | |
| " ": "t", | |
| "\u2028": "u2028", | |
| "\u2029": "u2029" | |
| }, | |
| D = /\\|'|\r|\n|\t|\u2028|\u2029/g; | |
| k.template = function (t, e, n) { | |
| var r; | |
| n = k.defaults({}, n, k.templateSettings); | |
| var o = new RegExp([(n.escape || I).source, (n.interpolate || I).source, (n.evaluate || I).source].join("|") + "|$", "g"), | |
| i = 0, | |
| s = "__p+='"; | |
| t.replace(o, function (e, n, r, o, a) { | |
| return s += t.slice(i, a).replace(D, function (t) { | |
| return "\\" + $[t] | |
| }), n && (s += "'+\n((__t=(" + n + "))==null?'':_.escape(__t))+\n'"), r && (s += "'+\n((__t=(" + r + "))==null?'':__t)+\n'"), o && (s += "';\n" + o + "\n__p+='"), i = a + e.length, e | |
| }), s += "';\n", n.variable || (s = "with(obj||{}){\n" + s + "}\n"), s = "var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n" + s + "return __p;\n"; | |
| try { | |
| r = new Function(n.variable || "obj", "_", s) | |
| } catch (a) { | |
| throw a.source = s, a | |
| } | |
| if (e) return r(e, k); | |
| var u = function (t) { | |
| return r.call(this, t, k) | |
| }; | |
| return u.source = "function(" + (n.variable || "obj") + "){\n" + s + "}", u | |
| }, k.chain = function (t) { | |
| return k(t).chain() | |
| }; | |
| var L = function (t) { | |
| return this._chain ? k(t).chain() : t | |
| }; | |
| k.mixin(k), T(["pop", "push", "reverse", "shift", "sort", "splice", "unshift"], function (t) { | |
| var e = r[t]; | |
| k.prototype[t] = function () { | |
| var n = this._wrapped; | |
| return e.apply(n, arguments), "shift" != t && "splice" != t || 0 !== n.length || delete n[0], L.call(this, n) | |
| } | |
| }), T(["concat", "join", "slice"], function (t) { | |
| var e = r[t]; | |
| k.prototype[t] = function () { | |
| return L.call(this, e.apply(this._wrapped, arguments)) | |
| } | |
| }), k.extend(k.prototype, { | |
| chain: function () { | |
| return this._chain = !0, this | |
| }, | |
| value: function () { | |
| return this._wrapped | |
| } | |
| }), "function" == typeof define && define.amd && define("underscore", [], function () { | |
| return k | |
| }) | |
| }.call(this), | |
| function (t, e) { | |
| if ("function" == typeof define && define.amd) define(["underscore", "jquery", "exports"], function (n, r, o) { | |
| t.Backbone = e(t, o, n, r) | |
| }); | |
| else if ("undefined" != typeof exports) { | |
| var n = require("underscore"); | |
| e(t, exports, n) | |
| } else t.Backbone = e(t, {}, t._, t.jQuery || t.Zepto || t.ender || t.$) | |
| }(this, function (t, e, n, r) { | |
| { | |
| var o = t.Backbone, | |
| i = [], | |
| s = (i.push, i.slice); | |
| i.splice | |
| } | |
| e.VERSION = "1.1.2", e.$ = r, e.noConflict = function () { | |
| return t.Backbone = o, this | |
| }, e.emulateHTTP = !1, e.emulateJSON = !1; | |
| var a = e.Events = { | |
| on: function (t, e, n) { | |
| if (!l(this, "on", t, [e, n]) || !e) return this; | |
| this._events || (this._events = {}); | |
| var r = this._events[t] || (this._events[t] = []); | |
| return r.push({ | |
| callback: e, | |
| context: n, | |
| ctx: n || this | |
| }), this | |
| }, | |
| once: function (t, e, r) { | |
| if (!l(this, "once", t, [e, r]) || !e) return this; | |
| var o = this, | |
| i = n.once(function () { | |
| o.off(t, i), e.apply(this, arguments) | |
| }); | |
| return i._callback = e, this.on(t, i, r) | |
| }, | |
| off: function (t, e, r) { | |
| var o, i, s, a, u, c, p, d; | |
| if (!this._events || !l(this, "off", t, [e, r])) return this; | |
| if (!t && !e && !r) return this._events = void 0, this; | |
| for (a = t ? [t] : n.keys(this._events), u = 0, c = a.length; c > u; u++) | |
| if (t = a[u], s = this._events[t]) { | |
| if (this._events[t] = o = [], e || r) | |
| for (p = 0, d = s.length; d > p; p++) i = s[p], (e && e !== i.callback && e !== i.callback._callback || r && r !== i.context) && o.push(i); | |
| o.length || delete this._events[t] | |
| } | |
| return this | |
| }, | |
| trigger: function (t) { | |
| if (!this._events) return this; | |
| var e = s.call(arguments, 1); | |
| if (!l(this, "trigger", t, e)) return this; | |
| var n = this._events[t], | |
| r = this._events.all; | |
| return n && c(n, e), r && c(r, arguments), this | |
| }, | |
| stopListening: function (t, e, r) { | |
| var o = this._listeningTo; | |
| if (!o) return this; | |
| var i = !e && !r; | |
| r || "object" != typeof e || (r = this), t && ((o = {})[t._listenId] = t); | |
| for (var s in o) t = o[s], t.off(e, r, this), (i || n.isEmpty(t._events)) && delete this._listeningTo[s]; | |
| return this | |
| } | |
| }, | |
| u = /\s+/, | |
| l = function (t, e, n, r) { | |
| if (!n) return !0; | |
| if ("object" == typeof n) { | |
| for (var o in n) t[e].apply(t, [o, n[o]].concat(r)); | |
| return !1 | |
| } | |
| if (u.test(n)) { | |
| for (var i = n.split(u), s = 0, a = i.length; a > s; s++) t[e].apply(t, [i[s]].concat(r)); | |
| return !1 | |
| } | |
| return !0 | |
| }, | |
| c = function (t, e) { | |
| var n, r = -1, | |
| o = t.length, | |
| i = e[0], | |
| s = e[1], | |
| a = e[2]; | |
| switch (e.length) { | |
| case 0: | |
| for (; ++r < o;)(n = t[r]).callback.call(n.ctx); | |
| return; | |
| case 1: | |
| for (; ++r < o;)(n = t[r]).callback.call(n.ctx, i); | |
| return; | |
| case 2: | |
| for (; ++r < o;)(n = t[r]).callback.call(n.ctx, i, s); | |
| return; | |
| case 3: | |
| for (; ++r < o;)(n = t[r]).callback.call(n.ctx, i, s, a); | |
| return; | |
| default: | |
| for (; ++r < o;)(n = t[r]).callback.apply(n.ctx, e); | |
| return | |
| } | |
| }, | |
| p = { | |
| listenTo: "on", | |
| listenToOnce: "once" | |
| }; | |
| n.each(p, function (t, e) { | |
| a[e] = function (e, r, o) { | |
| var i = this._listeningTo || (this._listeningTo = {}), | |
| s = e._listenId || (e._listenId = n.uniqueId("l")); | |
| return i[s] = e, o || "object" != typeof r || (o = this), e[t](r, o, this), this | |
| } | |
| }), a.bind = a.on, a.unbind = a.off, n.extend(e, a); | |
| var d = e.Model = function (t, e) { | |
| var r = t || {}; | |
| e || (e = {}), this.cid = n.uniqueId("c"), this.attributes = {}, e.collection && (this.collection = e.collection), e.parse && (r = this.parse(r, e) || {}), r = n.defaults({}, r, n.result(this, "defaults")), this.set(r, e), this.changed = {}, this.initialize.apply(this, arguments) | |
| }; | |
| n.extend(d.prototype, a, { | |
| changed: null, | |
| validationError: null, | |
| idAttribute: "id", | |
| initialize: function () {}, | |
| toJSON: function () { | |
| return n.clone(this.attributes) | |
| }, | |
| sync: function () { | |
| return e.sync.apply(this, arguments) | |
| }, | |
| get: function (t) { | |
| return this.attributes[t] | |
| }, | |
| escape: function (t) { | |
| return n.escape(this.get(t)) | |
| }, | |
| has: function (t) { | |
| return null != this.get(t) | |
| }, | |
| set: function (t, e, r) { | |
| var o, i, s, a, u, l, c, p; | |
| if (null == t) return this; | |
| if ("object" == typeof t ? (i = t, r = e) : (i = {})[t] = e, r || (r = {}), !this._validate(i, r)) return !1; | |
| s = r.unset, u = r.silent, a = [], l = this._changing, this._changing = !0, l || (this._previousAttributes = n.clone(this.attributes), this.changed = {}), p = this.attributes, c = this._previousAttributes, this.idAttribute in i && (this.id = i[this.idAttribute]); | |
| for (o in i) e = i[o], n.isEqual(p[o], e) || a.push(o), n.isEqual(c[o], e) ? delete this.changed[o] : this.changed[o] = e, s ? delete p[o] : p[o] = e; | |
| if (!u) { | |
| a.length && (this._pending = r); | |
| for (var d = 0, h = a.length; h > d; d++) this.trigger("change:" + a[d], this, p[a[d]], r) | |
| } | |
| if (l) return this; | |
| if (!u) | |
| for (; this._pending;) r = this._pending, this._pending = !1, this.trigger("change", this, r); | |
| return this._pending = !1, this._changing = !1, this | |
| }, | |
| unset: function (t, e) { | |
| return this.set(t, void 0, n.extend({}, e, { | |
| unset: !0 | |
| })) | |
| }, | |
| clear: function (t) { | |
| var e = {}; | |
| for (var r in this.attributes) e[r] = void 0; | |
| return this.set(e, n.extend({}, t, { | |
| unset: !0 | |
| })) | |
| }, | |
| hasChanged: function (t) { | |
| return null == t ? !n.isEmpty(this.changed) : n.has(this.changed, t) | |
| }, | |
| changedAttributes: function (t) { | |
| if (!t) return this.hasChanged() ? n.clone(this.changed) : !1; | |
| var e, r = !1, | |
| o = this._changing ? this._previousAttributes : this.attributes; | |
| for (var i in t) n.isEqual(o[i], e = t[i]) || ((r || (r = {}))[i] = e); | |
| return r | |
| }, | |
| previous: function (t) { | |
| return null != t && this._previousAttributes ? this._previousAttributes[t] : null | |
| }, | |
| previousAttributes: function () { | |
| return n.clone(this._previousAttributes) | |
| }, | |
| fetch: function (t) { | |
| t = t ? n.clone(t) : {}, void 0 === t.parse && (t.parse = !0); | |
| var e = this, | |
| r = t.success; | |
| return t.success = function (n) { | |
| return e.set(e.parse(n, t), t) ? (r && r(e, n, t), void e.trigger("sync", e, n, t)) : !1 | |
| }, D(this, t), this.sync("read", this, t) | |
| }, | |
| save: function (t, e, r) { | |
| var o, i, s, a = this.attributes; | |
| if (null == t || "object" == typeof t ? (o = t, r = e) : (o = {})[t] = e, r = n.extend({ | |
| validate: !0 | |
| }, r), o && !r.wait) { | |
| if (!this.set(o, r)) return !1 | |
| } else if (!this._validate(o, r)) return !1; | |
| o && r.wait && (this.attributes = n.extend({}, a, o)), void 0 === r.parse && (r.parse = !0); | |
| var u = this, | |
| l = r.success; | |
| return r.success = function (t) { | |
| u.attributes = a; | |
| var e = u.parse(t, r); | |
| return r.wait && (e = n.extend(o || {}, e)), n.isObject(e) && !u.set(e, r) ? !1 : (l && l(u, t, r), void u.trigger("sync", u, t, r)) | |
| }, D(this, r), i = this.isNew() ? "create" : r.patch ? "patch" : "update", "patch" === i && (r.attrs = o), s = this.sync(i, this, r), o && r.wait && (this.attributes = a), s | |
| }, | |
| destroy: function (t) { | |
| t = t ? n.clone(t) : {}; | |
| var e = this, | |
| r = t.success, | |
| o = function () { | |
| e.trigger("destroy", e, e.collection, t) | |
| }; | |
| if (t.success = function (n) { | |
| (t.wait || e.isNew()) && o(), r && r(e, n, t), e.isNew() || e.trigger("sync", e, n, t) | |
| }, this.isNew()) return t.success(), !1; | |
| D(this, t); | |
| var i = this.sync("delete", this, t); | |
| return t.wait || o(), i | |
| }, | |
| url: function () { | |
| var t = n.result(this, "urlRoot") || n.result(this.collection, "url") || $(); | |
| return this.isNew() ? t : t.replace(/([^\/])$/, "$1/") + encodeURIComponent(this.id) | |
| }, | |
| parse: function (t) { | |
| return t | |
| }, | |
| clone: function () { | |
| return new this.constructor(this.attributes) | |
| }, | |
| isNew: function () { | |
| return !this.has(this.idAttribute) | |
| }, | |
| isValid: function (t) { | |
| return this._validate({}, n.extend(t || {}, { | |
| validate: !0 | |
| })) | |
| }, | |
| _validate: function (t, e) { | |
| if (!e.validate || !this.validate) return !0; | |
| t = n.extend({}, this.attributes, t); | |
| var r = this.validationError = this.validate(t, e) || null; | |
| return r ? (this.trigger("invalid", this, r, n.extend(e, { | |
| validationError: r | |
| })), !1) : !0 | |
| } | |
| }); | |
| var h = ["keys", "values", "pairs", "invert", "pick", "omit"]; | |
| n.each(h, function (t) { | |
| d.prototype[t] = function () { | |
| var e = s.call(arguments); | |
| return e.unshift(this.attributes), n[t].apply(n, e) | |
| } | |
| }); | |
| var f = e.Collection = function (t, e) { | |
| e || (e = {}), e.model && (this.model = e.model), void 0 !== e.comparator && (this.comparator = e.comparator), this._reset(), this.initialize.apply(this, arguments), t && this.reset(t, n.extend({ | |
| silent: !0 | |
| }, e)) | |
| }, | |
| m = { | |
| add: !0, | |
| remove: !0, | |
| merge: !0 | |
| }, | |
| g = { | |
| add: !0, | |
| remove: !1 | |
| }; | |
| n.extend(f.prototype, a, { | |
| model: d, | |
| initialize: function () {}, | |
| toJSON: function (t) { | |
| return this.map(function (e) { | |
| return e.toJSON(t) | |
| }) | |
| }, | |
| sync: function () { | |
| return e.sync.apply(this, arguments) | |
| }, | |
| add: function (t, e) { | |
| return this.set(t, n.extend({ | |
| merge: !1 | |
| }, e, g)) | |
| }, | |
| remove: function (t, e) { | |
| var r = !n.isArray(t); | |
| t = r ? [t] : n.clone(t), e || (e = {}); | |
| var o, i, s, a; | |
| for (o = 0, i = t.length; i > o; o++) a = t[o] = this.get(t[o]), a && (delete this._byId[a.id], delete this._byId[a.cid], s = this.indexOf(a), this.models.splice(s, 1), this.length--, e.silent || (e.index = s, a.trigger("remove", a, this, e)), this._removeReference(a, e)); | |
| return r ? t[0] : t | |
| }, | |
| set: function (t, e) { | |
| e = n.defaults({}, e, m), e.parse && (t = this.parse(t, e)); | |
| var r = !n.isArray(t); | |
| t = r ? t ? [t] : [] : n.clone(t); | |
| var o, i, s, a, u, l, c, p = e.at, | |
| h = this.model, | |
| f = this.comparator && null == p && e.sort !== !1, | |
| g = n.isString(this.comparator) ? this.comparator : null, | |
| v = [], | |
| y = [], | |
| w = {}, | |
| _ = e.add, | |
| b = e.merge, | |
| x = e.remove, | |
| k = !f && _ && x ? [] : !1; | |
| for (o = 0, i = t.length; i > o; o++) { | |
| if (u = t[o] || {}, s = u instanceof d ? a = u : u[h.prototype.idAttribute || "id"], l = this.get(s)) x && (w[l.cid] = !0), b && (u = u === a ? a.attributes : u, e.parse && (u = l.parse(u, e)), l.set(u, e), f && !c && l.hasChanged(g) && (c = !0)), t[o] = l; | |
| else if (_) { | |
| if (a = t[o] = this._prepareModel(u, e), !a) continue; | |
| v.push(a), this._addReference(a, e) | |
| } | |
| a = l || a, a && (!k || !a.isNew() && w[a.id] || k.push(a), w[a.id] = !0) | |
| } | |
| if (x) { | |
| for (o = 0, i = this.length; i > o; ++o) w[(a = this.models[o]).cid] || y.push(a); | |
| y.length && this.remove(y, e) | |
| } | |
| if (v.length || k && k.length) | |
| if (f && (c = !0), this.length += v.length, null != p) | |
| for (o = 0, i = v.length; i > o; o++) this.models.splice(p + o, 0, v[o]); | |
| else { | |
| k && (this.models.length = 0); | |
| var T = k || v; | |
| for (o = 0, i = T.length; i > o; o++) this.models.push(T[o]) | |
| } | |
| if (c && this.sort({ | |
| silent: !0 | |
| }), !e.silent) { | |
| for (o = 0, i = v.length; i > o; o++)(a = v[o]).trigger("add", a, this, e); | |
| (c || k && k.length) && this.trigger("sort", this, e) | |
| } | |
| return r ? t[0] : t | |
| }, | |
| reset: function (t, e) { | |
| e || (e = {}); | |
| for (var r = 0, o = this.models.length; o > r; r++) this._removeReference(this.models[r], e); | |
| return e.previousModels = this.models, this._reset(), t = this.add(t, n.extend({ | |
| silent: !0 | |
| }, e)), e.silent || this.trigger("reset", this, e), t | |
| }, | |
| push: function (t, e) { | |
| return this.add(t, n.extend({ | |
| at: this.length | |
| }, e)) | |
| }, | |
| pop: function (t) { | |
| var e = this.at(this.length - 1); | |
| return this.remove(e, t), e | |
| }, | |
| unshift: function (t, e) { | |
| return this.add(t, n.extend({ | |
| at: 0 | |
| }, e)) | |
| }, | |
| shift: function (t) { | |
| var e = this.at(0); | |
| return this.remove(e, t), e | |
| }, | |
| slice: function () { | |
| return s.apply(this.models, arguments) | |
| }, | |
| get: function (t) { | |
| return null == t ? void 0 : this._byId[t] || this._byId[t.id] || this._byId[t.cid] | |
| }, | |
| at: function (t) { | |
| return this.models[t] | |
| }, | |
| where: function (t, e) { | |
| return n.isEmpty(t) ? e ? void 0 : [] : this[e ? "find" : "filter"](function (e) { | |
| for (var n in t) | |
| if (t[n] !== e.get(n)) return !1; | |
| return !0 | |
| }) | |
| }, | |
| findWhere: function (t) { | |
| return this.where(t, !0) | |
| }, | |
| sort: function (t) { | |
| if (!this.comparator) throw new Error("Cannot sort a set without a comparator"); | |
| return t || (t = {}), n.isString(this.comparator) || 1 === this.comparator.length ? this.models = this.sortBy(this.comparator, this) : this.models.sort(n.bind(this.comparator, this)), t.silent || this.trigger("sort", this, t), this | |
| }, | |
| pluck: function (t) { | |
| return n.invoke(this.models, "get", t) | |
| }, | |
| fetch: function (t) { | |
| t = t ? n.clone(t) : {}, void 0 === t.parse && (t.parse = !0); | |
| var e = t.success, | |
| r = this; | |
| return t.success = function (n) { | |
| var o = t.reset ? "reset" : "set"; | |
| r[o](n, t), e && e(r, n, t), r.trigger("sync", r, n, t) | |
| }, D(this, t), this.sync("read", this, t) | |
| }, | |
| create: function (t, e) { | |
| if (e = e ? n.clone(e) : {}, !(t = this._prepareModel(t, e))) return !1; | |
| e.wait || this.add(t, e); | |
| var r = this, | |
| o = e.success; | |
| return e.success = function (t, n) { | |
| e.wait && r.add(t, e), o && o(t, n, e) | |
| }, t.save(null, e), t | |
| }, | |
| parse: function (t) { | |
| return t | |
| }, | |
| clone: function () { | |
| return new this.constructor(this.models) | |
| }, | |
| _reset: function () { | |
| this.length = 0, this.models = [], this._byId = {} | |
| }, | |
| _prepareModel: function (t, e) { | |
| if (t instanceof d) return t; | |
| e = e ? n.clone(e) : {}, e.collection = this; | |
| var r = new this.model(t, e); | |
| return r.validationError ? (this.trigger("invalid", this, r.validationError, e), !1) : r | |
| }, | |
| _addReference: function (t) { | |
| this._byId[t.cid] = t, null != t.id && (this._byId[t.id] = t), t.collection || (t.collection = this), t.on("all", this._onModelEvent, this) | |
| }, | |
| _removeReference: function (t) { | |
| this === t.collection && delete t.collection, t.off("all", this._onModelEvent, this) | |
| }, | |
| _onModelEvent: function (t, e, n, r) { | |
| ("add" !== t && "remove" !== t || n === this) && ("destroy" === t && this.remove(e, r), e && t === "change:" + e.idAttribute && (delete this._byId[e.previous(e.idAttribute)], null != e.id && (this._byId[e.id] = e)), this.trigger.apply(this, arguments)) | |
| } | |
| }); | |
| var v = ["forEach", "each", "map", "collect", "reduce", "foldl", "inject", "reduceRight", "foldr", "find", "detect", "filter", "select", "reject", "every", "all", "some", "any", "include", "contains", "invoke", "max", "min", "toArray", "size", "first", "head", "take", "initial", "rest", "tail", "drop", "last", "without", "difference", "indexOf", "shuffle", "lastIndexOf", "isEmpty", "chain", "sample"]; | |
| n.each(v, function (t) { | |
| f.prototype[t] = function () { | |
| var e = s.call(arguments); | |
| return e.unshift(this.models), n[t].apply(n, e) | |
| } | |
| }); | |
| var y = ["groupBy", "countBy", "sortBy", "indexBy"]; | |
| n.each(y, function (t) { | |
| f.prototype[t] = function (e, r) { | |
| var o = n.isFunction(e) ? e : function (t) { | |
| return t.get(e) | |
| }; | |
| return n[t](this.models, o, r) | |
| } | |
| }); | |
| var w = e.View = function (t) { | |
| this.cid = n.uniqueId("view"), t || (t = {}), n.extend(this, n.pick(t, b)), this._ensureElement(), this.initialize.apply(this, arguments), this.delegateEvents() | |
| }, | |
| _ = /^(\S+)\s*(.*)$/, | |
| b = ["model", "collection", "el", "id", "attributes", "className", "tagName", "events"]; | |
| n.extend(w.prototype, a, { | |
| tagName: "div", | |
| $: function (t) { | |
| return this.$el.find(t) | |
| }, | |
| initialize: function () {}, | |
| render: function () { | |
| return this | |
| }, | |
| remove: function () { | |
| return this.$el.remove(), this.stopListening(), this | |
| }, | |
| setElement: function (t, n) { | |
| return this.$el && this.undelegateEvents(), this.$el = t instanceof e.$ ? t : e.$(t), this.el = this.$el[0], n !== !1 && this.delegateEvents(), this | |
| }, | |
| delegateEvents: function (t) { | |
| if (!t && !(t = n.result(this, "events"))) return this; | |
| this.undelegateEvents(); | |
| for (var e in t) { | |
| var r = t[e]; | |
| if (n.isFunction(r) || (r = this[t[e]]), r) { | |
| var o = e.match(_), | |
| i = o[1], | |
| s = o[2]; | |
| r = n.bind(r, this), i += ".delegateEvents" + this.cid, "" === s ? this.$el.on(i, r) : this.$el.on(i, s, r) | |
| } | |
| } | |
| return this | |
| }, | |
| undelegateEvents: function () { | |
| return this.$el.off(".delegateEvents" + this.cid), this | |
| }, | |
| _ensureElement: function () { | |
| if (this.el) this.setElement(n.result(this, "el"), !1); | |
| else { | |
| var t = n.extend({}, n.result(this, "attributes")); | |
| this.id && (t.id = n.result(this, "id")), this.className && (t["class"] = n.result(this, "className")); | |
| var r = e.$("<" + n.result(this, "tagName") + ">").attr(t); | |
| this.setElement(r, !1) | |
| } | |
| } | |
| }), e.sync = function (t, r, o) { | |
| var i = k[t]; | |
| n.defaults(o || (o = {}), { | |
| emulateHTTP: e.emulateHTTP, | |
| emulateJSON: e.emulateJSON | |
| }); | |
| var s = { | |
| type: i, | |
| dataType: "json" | |
| }; | |
| if (o.url || (s.url = n.result(r, "url") || $()), null != o.data || !r || "create" !== t && "update" !== t && "patch" !== t || (s.contentType = "application/json", s.data = JSON.stringify(o.attrs || r.toJSON(o))), o.emulateJSON && (s.contentType = "application/x-www-form-urlencoded", s.data = s.data ? { | |
| model: s.data | |
| } : {}), o.emulateHTTP && ("PUT" === i || "DELETE" === i || "PATCH" === i)) { | |
| s.type = "POST", o.emulateJSON && (s.data._method = i); | |
| var a = o.beforeSend; | |
| o.beforeSend = function (t) { | |
| return t.setRequestHeader("X-HTTP-Method-Override", i), a ? a.apply(this, arguments) : void 0 | |
| } | |
| } | |
| "GET" === s.type || o.emulateJSON || (s.processData = !1), "PATCH" === s.type && x && (s.xhr = function () { | |
| return new ActiveXObject("Microsoft.XMLHTTP") | |
| }); | |
| var u = o.xhr = e.ajax(n.extend(s, o)); | |
| return r.trigger("request", r, u, o), u | |
| }; | |
| var x = !("undefined" == typeof window || !window.ActiveXObject || window.XMLHttpRequest && (new XMLHttpRequest).dispatchEvent), | |
| k = { | |
| create: "POST", | |
| update: "PUT", | |
| patch: "PATCH", | |
| "delete": "DELETE", | |
| read: "GET" | |
| }; | |
| e.ajax = function () { | |
| return e.$.ajax.apply(e.$, arguments) | |
| }; | |
| var T = e.Router = function (t) { | |
| t || (t = {}), t.routes && (this.routes = t.routes), this._bindRoutes(), this.initialize.apply(this, arguments) | |
| }, | |
| C = /\((.*?)\)/g, | |
| E = /(\(\?)?:\w+/g, | |
| P = /\*\w+/g, | |
| S = /[\-{}\[\]+?.,\\\^$|#\s]/g; | |
| n.extend(T.prototype, a, { | |
| initialize: function () {}, | |
| route: function (t, r, o) { | |
| n.isRegExp(t) || (t = this._routeToRegExp(t)), n.isFunction(r) && (o = r, r = ""), o || (o = this[r]); | |
| var i = this; | |
| return e.history.route(t, function (n) { | |
| var s = i._extractParameters(t, n); | |
| i.execute(o, s) !== !1 && (i.trigger.apply(i, ["route:" + r].concat(s)), i.trigger("route", r, s), e.history.trigger("route", i, r, s)) | |
| }), this | |
| }, | |
| execute: function (t, e) { | |
| t && t.apply(this, e) | |
| }, | |
| navigate: function (t, n) { | |
| return e.history.navigate(t, n), this | |
| }, | |
| _bindRoutes: function () { | |
| if (this.routes) { | |
| this.routes = n.result(this, "routes"); | |
| for (var t, e = n.keys(this.routes); null != (t = e.pop());) this.route(t, this.routes[t]) | |
| } | |
| }, | |
| _routeToRegExp: function (t) { | |
| return t = t.replace(S, "\\$&").replace(C, "(?:$1)?").replace(E, function (t, e) { | |
| return e ? t : "([^/?]+)" | |
| }).replace(P, "([^?]*?)"), new RegExp("^" + t + "(?:\\?([\\s\\S]*))?$") | |
| }, | |
| _extractParameters: function (t, e) { | |
| var r = t.exec(e).slice(1); | |
| return n.map(r, function (t, e) { | |
| return e === r.length - 1 ? t || null : t ? decodeURIComponent(t) : null | |
| }) | |
| } | |
| }); | |
| var R = e.History = function () { | |
| this.handlers = [], n.bindAll(this, "checkUrl"), "undefined" != typeof window && (this.location = window.location, this.history = window.history) | |
| }, | |
| M = /^[#\/]|\s+$/g, | |
| N = /^\/+|\/+$/g, | |
| O = /msie [\w.]+/, | |
| F = /\/$/, | |
| A = /#.*$/; | |
| R.started = !1, n.extend(R.prototype, a, { | |
| interval: 50, | |
| atRoot: function () { | |
| return this.location.pathname.replace(/[^\/]$/, "$&/") === this.root | |
| }, | |
| getHash: function (t) { | |
| var e = (t || this).location.href.match(/#(.*)$/); | |
| return e ? e[1] : "" | |
| }, | |
| getFragment: function (t, e) { | |
| if (null == t) | |
| if (this._hasPushState || !this._wantsHashChange || e) { | |
| t = decodeURI(this.location.pathname + this.location.search); | |
| var n = this.root.replace(F, ""); | |
| t.indexOf(n) || (t = t.slice(n.length)) | |
| } else t = this.getHash(); | |
| return t.replace(M, "") | |
| }, | |
| start: function (t) { | |
| if (R.started) throw new Error("Backbone.history has already been started"); | |
| R.started = !0, this.options = n.extend({ | |
| root: "/" | |
| }, this.options, t), this.root = this.options.root, this._wantsHashChange = this.options.hashChange !== !1, this._wantsPushState = !!this.options.pushState, this._hasPushState = !!(this.options.pushState && this.history && this.history.pushState); | |
| var r = this.getFragment(), | |
| o = document.documentMode, | |
| i = O.exec(navigator.userAgent.toLowerCase()) && (!o || 7 >= o); | |
| if (this.root = ("/" + this.root + "/").replace(N, "/"), i && this._wantsHashChange) { | |
| var s = e.$('<iframe src="javascript:0" tabindex="-1">'); | |
| this.iframe = s.hide().appendTo("body")[0].contentWindow, this.navigate(r) | |
| } | |
| this._hasPushState ? e.$(window).on("popstate", this.checkUrl) : this._wantsHashChange && "onhashchange" in window && !i ? e.$(window).on("hashchange", this.checkUrl) : this._wantsHashChange && (this._checkUrlInterval = setInterval(this.checkUrl, this.interval)), this.fragment = r; | |
| var a = this.location; | |
| if (this._wantsHashChange && this._wantsPushState) { | |
| if (!this._hasPushState && !this.atRoot()) return this.fragment = this.getFragment(null, !0), this.location.replace(this.root + "#" + this.fragment), !0; | |
| this._hasPushState && this.atRoot() && a.hash && (this.fragment = this.getHash().replace(M, ""), this.history.replaceState({}, document.title, this.root + this.fragment)) | |
| } | |
| return this.options.silent ? void 0 : this.loadUrl() | |
| }, | |
| stop: function () { | |
| e.$(window).off("popstate", this.checkUrl).off("hashchange", this.checkUrl), this._checkUrlInterval && clearInterval(this._checkUrlInterval), R.started = !1 | |
| }, | |
| route: function (t, e) { | |
| this.handlers.unshift({ | |
| route: t, | |
| callback: e | |
| }) | |
| }, | |
| checkUrl: function () { | |
| var t = this.getFragment(); | |
| return t === this.fragment && this.iframe && (t = this.getFragment(this.getHash(this.iframe))), t === this.fragment ? !1 : (this.iframe && this.navigate(t), void this.loadUrl()) | |
| }, | |
| loadUrl: function (t) { | |
| return t = this.fragment = this.getFragment(t), n.any(this.handlers, function (e) { | |
| return e.route.test(t) ? (e.callback(t), !0) : void 0 | |
| }) | |
| }, | |
| navigate: function (t, e) { | |
| if (!R.started) return !1; | |
| e && e !== !0 || (e = { | |
| trigger: !!e | |
| }); | |
| var n = this.root + (t = this.getFragment(t || "")); | |
| if (t = t.replace(A, ""), this.fragment !== t) { | |
| if (this.fragment = t, "" === t && "/" !== n && (n = n.slice(0, -1)), this._hasPushState) this.history[e.replace ? "replaceState" : "pushState"]({}, document.title, n); | |
| else { | |
| if (!this._wantsHashChange) return this.location.assign(n); | |
| this._updateHash(this.location, t, e.replace), this.iframe && t !== this.getFragment(this.getHash(this.iframe)) && (e.replace || this.iframe.document.open().close(), this._updateHash(this.iframe.location, t, e.replace)) | |
| } | |
| return e.trigger ? this.loadUrl(t) : void 0 | |
| } | |
| }, | |
| _updateHash: function (t, e, n) { | |
| if (n) { | |
| var r = t.href.replace(/(javascript:|#).*$/, ""); | |
| t.replace(r + "#" + e) | |
| } else t.hash = "#" + e | |
| } | |
| }), e.history = new R; | |
| var I = function (t, e) { | |
| var r, o = this; | |
| r = t && n.has(t, "constructor") ? t.constructor : function () { | |
| return o.apply(this, arguments) | |
| }, n.extend(r, o, e); | |
| var i = function () { | |
| this.constructor = r | |
| }; | |
| return i.prototype = o.prototype, r.prototype = new i, t && n.extend(r.prototype, t), r.__super__ = o.prototype, r | |
| }; | |
| d.extend = f.extend = T.extend = w.extend = R.extend = I; | |
| var $ = function () { | |
| throw new Error('A "url" property or function must be specified') | |
| }, | |
| D = function (t, e) { | |
| var n = e.error; | |
| e.error = function (r) { | |
| n && n(t, r, e), t.trigger("error", t, r, e) | |
| } | |
| }; | |
| return e | |
| }), Backbone.History.prototype.navigate = function (t, e) { | |
| if (!Backbone.History.started) return !1; | |
| e && e !== !0 || (e = { | |
| trigger: !!e | |
| }); | |
| var n = this.root + (t = this.getFragment(t || "")); | |
| if (this.fragment !== t) { | |
| if (this.fragment = t, "" === t && "/" !== n && (n = n.slice(0, -1)), this._hasPushState) this.history[e.replace ? "replaceState" : "pushState"]({}, document.title, n); | |
| else { | |
| if (!this._wantsHashChange) return this.location.assign(n); | |
| this._updateHash(this.location, t, e.replace), this.iframe && t !== this.getFragment(this.getHash(this.iframe)) && (e.replace || this.iframe.document.open().close(), this._updateHash(this.iframe.location, t, e.replace)) | |
| } | |
| return e.trigger ? this.loadUrl(t) : void 0 | |
| } | |
| }, | |
| function (t, e) { | |
| "object" == typeof exports && t.require ? module.exports = e(require("underscore"), require("backbone")) : "function" == typeof define && define.amd ? define(["underscore", "backbone"], function (n, r) { | |
| return e(n || t._, r || t.Backbone) | |
| }) : e(_, Backbone) | |
| }(this, function (t, e) { | |
| function n(r, o) { | |
| function i(t) { | |
| return String(t).replace(s, encodeURIComponent(s)) | |
| } | |
| var s = e.Router.arrayValueSplit; | |
| if (!r) return ""; | |
| o = o || ""; | |
| var a = []; | |
| return t.each(r, function (e, r) { | |
| if (r = o + r, t.isString(e) || t.isNumber(e) || t.isBoolean(e) || t.isDate(e)) null != e && a.push(r + "=" + i(encodeURIComponent(e))); | |
| else if (t.isArray(e)) { | |
| for (var u = "", l = 0; l < e.length; l++) { | |
| var c = e[l]; | |
| null != c && (u += s + i(c)) | |
| } | |
| u && a.push(r + "=" + u) | |
| } else { | |
| var p = n(e, r + "."); | |
| p && a.push(p) | |
| } | |
| }), a.join("&") | |
| } | |
| function r(t) { | |
| try { | |
| return decodeURIComponent(t.replace(/\+/g, " ")) | |
| } catch (e) { | |
| return t | |
| } | |
| } | |
| function o(e, n) { | |
| var r = e.split("&"); | |
| t.each(r, function (t) { | |
| var e = t.split("="); | |
| n(e.shift(), e.join("=")) | |
| }) | |
| } | |
| var i = /^\?(.*)/, | |
| s = /\((.*?)\)/g, | |
| a = /(\(\?)?:\w+/g, | |
| u = /\*\w+/g, | |
| l = /[\-{}\[\]+?.,\\\^$|#\s]/g, | |
| c = /^([^\?]*)/, | |
| p = /[\:\*]([^\:\?\/]+)/g, | |
| d = /^[#\/]|\s+$/g, | |
| h = /\/$/; | |
| e.Router.arrayValueSplit = "|", t.extend(e.History.prototype, { | |
| getFragment: function (t, e) { | |
| if (null == t) | |
| if (this._hasPushState || !this._wantsHashChange || e) { | |
| t = this.location.pathname; | |
| var n = this.root.replace(h, ""), | |
| r = this.location.search; | |
| t.indexOf(n) || (t = t.substr(n.length)), r && this._hasPushState && (t += r) | |
| } else t = this.getHash(); | |
| return t.replace(d, "") | |
| }, | |
| getQueryParameters: function (e, n) { | |
| e = this.getFragment(e, n); | |
| var s = e.replace(c, ""), | |
| a = s.match(i); | |
| if (a) { | |
| s = a[1]; | |
| var u = {}; | |
| return o(s, function (e, n) { | |
| n = r(n), u[e] ? t.isString(u[e]) ? u[e] = [u[e], n] : u[e].push(n) : u[e] = n | |
| }), u | |
| } | |
| return {} | |
| } | |
| }), t.extend(e.Router.prototype, { | |
| initialize: function (t) { | |
| this.encodedSplatParts = t && t.encodedSplatParts | |
| }, | |
| _routeToRegExp: function (e) { | |
| var n = u.exec(e) || { | |
| index: -1 | |
| }, | |
| r = a.exec(e) || { | |
| index: -1 | |
| }, | |
| o = e.match(p) || []; | |
| e = e.replace(l, "\\$&").replace(s, "(?:$1)?").replace(a, function (t, e) { | |
| return e ? t : "([^\\/\\?]+)" | |
| }).replace(u, "([^??]*?)"), e += "(\\?.*)?"; | |
| var i = new RegExp("^" + e + "$"); | |
| return n.index >= 0 && (i.splatMatch = r >= 0 ? n.index - r.index : -1), i.paramNames = t.map(o, function (t) { | |
| return t.substring(1) | |
| }), i.namedParameters = this.namedParameters, i | |
| }, | |
| _extractParameters: function (n, s) { | |
| var a = n.exec(s).slice(1), | |
| u = {}; | |
| a.length > 0 && t.isUndefined(a[a.length - 1]) && a.splice(a.length - 1, 1); | |
| var l = a.length && a[a.length - 1] && a[a.length - 1].match(i); | |
| if (l) { | |
| var c = l[1], | |
| p = {}; | |
| if (c) { | |
| var d = this; | |
| o(c, function (t, e) { | |
| d._setParamValue(t, e, p) | |
| }) | |
| } | |
| a[a.length - 1] = p, t.extend(u, p) | |
| } | |
| var h = a.length; | |
| if (n.splatMatch && this.encodedSplatParts) { | |
| if (n.splatMatch < 0) return a; | |
| h -= 1 | |
| } | |
| for (var f = 0; h > f; f++) t.isString(a[f]) && (a[f] = r(a[f]), n.paramNames && n.paramNames.length >= f - 1 && (u[n.paramNames[f]] = a[f])); | |
| return e.Router.namedParameters || n.namedParameters ? [u] : a | |
| }, | |
| _setParamValue: function (t, e, n) { | |
| t = t.replace("[]", ""), t = t.replace("%5B%5D", ""); | |
| for (var r = t.split("."), o = n, i = 0; i < r.length; i++) { | |
| var s = r[i]; | |
| i === r.length - 1 ? o[s] = this._decodeParamValue(e, o[s]) : o = o[s] = o[s] || {} | |
| } | |
| }, | |
| _decodeParamValue: function (n, o) { | |
| var i = e.Router.arrayValueSplit; | |
| if (i && n.indexOf(i) >= 0) { | |
| for (var s = n.split(i), a = s.length - 1; a >= 0; a--) s[a] ? s[a] = r(s[a]) : s.splice(a, 1); | |
| return s | |
| } | |
| return n = r(n), o ? t.isArray(o) ? (o.push(n), o) : [o, n] : n | |
| }, | |
| toFragment: function (e, r) { | |
| return r && (t.isString(r) || (r = n(r)), r && (e += "?" + r)), e | |
| } | |
| }) | |
| }), | |
| function (t) { | |
| if ("function" == typeof bootstrap) bootstrap("backboneprojections", t); | |
| else if ("object" == typeof exports) module.exports = t(); | |
| else if ("function" == typeof define && define.amd) define(t); | |
| else if ("undefined" != typeof ses) { | |
| if (!ses.ok()) return; | |
| ses.makeBackboneProjections = t | |
| } else "undefined" != typeof window ? window.BackboneProjections = t() : global.BackboneProjections = t() | |
| }(function () { | |
| return function (t, e, n) { | |
| function r(n, i) { | |
| if (!e[n]) { | |
| if (!t[n]) { | |
| var s = "function" == typeof require && require; | |
| if (!i && s) return s(n, !0); | |
| if (o) return o(n, !0); | |
| throw new Error("Cannot find module '" + n + "'") | |
| } | |
| var a = e[n] = { | |
| exports: {} | |
| }; | |
| t[n][0].call(a.exports, function (e) { | |
| var o = t[n][1][e]; | |
| return r(o ? o : e) | |
| }, a, a.exports) | |
| } | |
| return e[n].exports | |
| } | |
| for (var o = "function" == typeof require && require, i = 0; i < n.length; i++) r(n[i]); | |
| return r | |
| }({ | |
| "lib/index.js": [ | |
| function (t, e) { | |
| var n; | |
| n = (("undefined" != typeof window && null !== window ? window._ : void 0) || t("underscore")).extend, e.exports = n({}, t("./capped"), t("./filtered"), t("./sorted")) | |
| }, { | |
| "./capped": "lib/capped.js", | |
| "./filtered": "lib/filtered.js", | |
| "./sorted": "lib/sorted.js", | |
| underscore: "underscore" | |
| } | |
| ], | |
| "lib/capped.js": [ | |
| function (t, e, n) { | |
| var r, o, i, s, a, u = {}.hasOwnProperty, | |
| l = function (t, e) { | |
| function n() { | |
| this.constructor = t | |
| } | |
| for (var r in e) u.call(e, r) && (t[r] = e[r]); | |
| return n.prototype = e.prototype, t.prototype = new n, t.__super__ = e.prototype, t | |
| }; | |
| r = (("undefined" != typeof window && null !== window ? window.Backbone : void 0) || t("backbone")).Collection, a = ("undefined" != typeof window && null !== window ? window._ : void 0) || t("underscore"), s = a.toArray, o = a.extend, i = function (t) { | |
| var e; | |
| return e = function (e) { | |
| return t.indexOf(e) | |
| }, e.induced = !0, e | |
| }, n.Capped = function (t) { | |
| function e(t, n) { | |
| var r = this; | |
| null == n && (n = {}), this.underlying = t, this.model = t.model, this.comparator = n.comparator || i(t), this.options = o({ | |
| cap: 5 | |
| }, t.options, n), e.__super__.constructor.call(this, this._capped(this.underlying.models), n), this.listenTo(this.underlying, { | |
| reset: function () { | |
| return r.reset(r._capped(r.underlying.models)) | |
| }, | |
| remove: function (t) { | |
| var e; | |
| return r.contains(t) ? (r.remove(t), e = r._capped(r.underlying.models), r.add(e[r.options.cap - 1])) : void 0 | |
| }, | |
| add: function (t) { | |
| return r.length < r.options.cap ? r.add(t) : r.comparator(t) < r.comparator(r.last()) ? (r.add(t), r.remove(r.at(r.options.cap))) : void 0 | |
| }, | |
| sort: function () { | |
| return r.comparator.induced ? r.reset(r._capped(r.underlying.models)) : void 0 | |
| } | |
| }) | |
| } | |
| return l(e, t), e.prototype._capped = function (t) { | |
| var e = this; | |
| return t = s(t), t.sort(function (t, n) { | |
| return t = e.comparator(t), n = e.comparator(n), t > n ? 1 : n > t ? -1 : 0 | |
| }), t.slice(0, this.options.cap) | |
| }, e.prototype.resize = function (t) { | |
| var e, n, r, o, i; | |
| if (this.options.cap > t) | |
| for (this.options.cap = t, i = this.models, n = o = i.length - 1; o >= 0 && (r = i[n], !(t > n)); n = o += -1) this.remove(r); | |
| else this.options.cap < t && (this.options.cap = t, e = this._capped(this.underlying.models), this.add(e.slice(this.length, this.options.cap))); | |
| return this.trigger("resize") | |
| }, e | |
| }(r), n.CappedCollection = n.Capped | |
| }, { | |
| backbone: "backbone", | |
| underscore: "underscore" | |
| } | |
| ], | |
| "lib/filtered.js": [ | |
| function (t, e, n) { | |
| var r, o, i, s = {}.hasOwnProperty, | |
| a = function (t, e) { | |
| function n() { | |
| this.constructor = t | |
| } | |
| for (var r in e) s.call(e, r) && (t[r] = e[r]); | |
| return n.prototype = e.prototype, t.prototype = new n, t.__super__ = e.prototype, t | |
| }; | |
| r = (("undefined" != typeof window && null !== window ? window.Backbone : void 0) || t("backbone")).Collection, o = (("undefined" != typeof window && null !== window ? window._ : void 0) || t("underscore")).extend, i = function (t) { | |
| var e; | |
| return e = function (e) { | |
| return t.indexOf(e) | |
| }, e.induced = !0, e | |
| }, n.Filtered = function (t) { | |
| function e(t, n) { | |
| var r = this; | |
| null == n && (n = {}), this.underlying = t, this.model = t.model, this.comparator = n.comparator || i(t), this.options = o({}, t.options, n), e.__super__.constructor.call(this, this.underlying.models.filter(this.options.filter), n), this.listenTo(this.underlying, { | |
| reset: function () { | |
| return r.reset(r.underlying.models.filter(r.options.filter)) | |
| }, | |
| remove: function (t) { | |
| return r.contains(t) ? r.remove(t) : void 0 | |
| }, | |
| add: function (t) { | |
| return r.options.filter(t) ? r.add(t) : void 0 | |
| }, | |
| change: function (t) { | |
| return r.decideOn(t) | |
| }, | |
| sort: function () { | |
| return r.comparator.induced ? r.sort() : void 0 | |
| } | |
| }) | |
| } | |
| return a(e, t), e.prototype.update = function () { | |
| var t, e, n, r, o; | |
| for (r = this.underlying.models, o = [], e = 0, n = r.length; n > e; e++) t = r[e], o.push(this.decideOn(t)); | |
| return o | |
| }, e.prototype.decideOn = function (t) { | |
| if (this.contains(t)) { | |
| if (!this.options.filter(t)) return this.remove(t) | |
| } else if (this.options.filter(t)) return this.add(t) | |
| }, e | |
| }(r), n.FilteredCollection = n.Filtered | |
| }, { | |
| backbone: "backbone", | |
| underscore: "underscore" | |
| } | |
| ], | |
| "lib/sorted.js": [ | |
| function (t, e, n) { | |
| var r, o, i = {}.hasOwnProperty, | |
| s = function (t, e) { | |
| function n() { | |
| this.constructor = t | |
| } | |
| for (var r in e) i.call(e, r) && (t[r] = e[r]); | |
| return n.prototype = e.prototype, t.prototype = new n, t.__super__ = e.prototype, t | |
| }; | |
| r = (("undefined" != typeof window && null !== window ? window.Backbone : void 0) || t("backbone")).Collection, o = (("undefined" != typeof window && null !== window ? window._ : void 0) || t("underscore")).extend, n.Sorted = function (t) { | |
| function e(t, n) { | |
| var r = this; | |
| if (null == n && (n = {}), !n.comparator) throw new Error("provide a comparator"); | |
| this.underlying = t, this.model = t.model, this.comparator = n.comparator, this.options = o({}, t.options, n), e.__super__.constructor.call(this, this.underlying.models, n), this.listenTo(this.underlying, { | |
| reset: function () { | |
| return r.reset(r.underlying.models) | |
| }, | |
| remove: function (t) { | |
| return r.remove(t) | |
| }, | |
| add: function (t) { | |
| return r.add(t) | |
| } | |
| }) | |
| } | |
| return s(e, t), e | |
| }(r), n.Reversed = function (t) { | |
| function e(t, n) { | |
| null == n && (n = {}), n.comparator = function (e) { | |
| return -t.indexOf(e) | |
| }, e.__super__.constructor.call(this, t, n), this.listenTo(this.underlying, { | |
| sort: this.sort | |
| }) | |
| } | |
| return s(e, t), e | |
| }(n.Sorted), n.SortedCollection = n.Sorted, n.ReversedCollection = n.Reversed | |
| }, { | |
| backbone: "backbone", | |
| underscore: "underscore" | |
| } | |
| ] | |
| }, {}, ["lib/index.js"])("lib/index.js") | |
| }), | |
| function (t, e) { | |
| "function" == typeof define && define.amd ? define(e) : "object" == typeof exports ? module.exports = e() : t.returnExports = e() | |
| }(this, function () { | |
| function t() {} | |
| function e(t) { | |
| return t = +t, t !== t ? t = 0 : 0 !== t && t !== 1 / 0 && t !== -(1 / 0) && (t = (t > 0 || -1) * Math.floor(Math.abs(t))), t | |
| } | |
| function n(t) { | |
| var e = typeof t; | |
| return null === t || "undefined" === e || "boolean" === e || "number" === e || "string" === e | |
| } | |
| function r(t) { | |
| var e, r, o; | |
| if (n(t)) return t; | |
| if (r = t.valueOf, p(r) && (e = r.call(t), n(e))) return e; | |
| if (o = t.toString, p(o) && (e = o.call(t), n(e))) return e; | |
| throw new TypeError | |
| } | |
| var o = Function.prototype.call, | |
| i = Array.prototype, | |
| s = Object.prototype, | |
| a = i.slice, | |
| u = Array.prototype.splice, | |
| l = Array.prototype.push, | |
| c = Array.prototype.unshift, | |
| p = function (t) { | |
| return "[object Function]" === s.toString.call(t) | |
| }, | |
| d = function (t) { | |
| return "[object RegExp]" === s.toString.call(t) | |
| }; | |
| Function.prototype.bind || (Function.prototype.bind = function (e) { | |
| var n = this; | |
| if (!p(n)) throw new TypeError("Function.prototype.bind called on incompatible " + n); | |
| for (var r = a.call(arguments, 1), o = function () { | |
| if (this instanceof l) { | |
| var t = n.apply(this, r.concat(a.call(arguments))); | |
| return Object(t) === t ? t : this | |
| } | |
| return n.apply(e, r.concat(a.call(arguments))) | |
| }, i = Math.max(0, n.length - r.length), s = [], u = 0; i > u; u++) s.push("$" + u); | |
| var l = Function("binder", "return function(" + s.join(",") + "){return binder.apply(this,arguments)}")(o); | |
| return n.prototype && (t.prototype = n.prototype, l.prototype = new t, t.prototype = null), l | |
| }); | |
| var h, f, m, g, v, y = o.bind(s.hasOwnProperty), | |
| w = o.bind(s.toString); | |
| (v = y(s, "__defineGetter__")) && (h = o.bind(s.__defineGetter__), f = o.bind(s.__defineSetter__), m = o.bind(s.__lookupGetter__), g = o.bind(s.__lookupSetter__)), 2 !== [1, 2].splice(0).length && (Array.prototype.splice = function () { | |
| function t(t) { | |
| for (var e = []; t--;) e.unshift(t); | |
| return e | |
| } | |
| var e, n = []; | |
| return n.splice.bind(n, 0, 0).apply(null, t(20)), n.splice.bind(n, 0, 0).apply(null, t(26)), e = n.length, n.splice(5, 0, "XXX"), e + 1 === n.length ? !0 : void 0 | |
| }() ? function (t, e) { | |
| return arguments.length ? u.apply(this, [void 0 === t ? 0 : t, void 0 === e ? this.length - t : e].concat(a.call(arguments, 2))) : [] | |
| } : function (t, e) { | |
| var n, r = a.call(arguments, 2), | |
| o = r.length; | |
| if (!arguments.length) return []; | |
| if (void 0 === t && (t = 0), void 0 === e && (e = this.length - t), o > 0) { | |
| if (0 >= e) { | |
| if (t === this.length) return l.apply(this, r), []; | |
| if (0 === t) return c.apply(this, r), [] | |
| } | |
| return n = a.call(this, t, t + e), r.push.apply(r, a.call(this, t + e, this.length)), r.unshift.apply(r, a.call(this, 0, t)), r.unshift(0, this.length), u.apply(this, r), n | |
| } | |
| return u.call(this, t, e) | |
| }), 1 !== [].unshift(0) && (Array.prototype.unshift = function () { | |
| return c.apply(this, arguments), this.length | |
| }), Array.isArray || (Array.isArray = function (t) { | |
| return "[object Array]" === w(t) | |
| }); | |
| var _ = Object("a"), | |
| b = "a" !== _[0] || !(0 in _), | |
| x = function (t) { | |
| var e = !0; | |
| return t && t.call("foo", function (t, n, r) { | |
| "object" != typeof r && (e = !1) | |
| }), !!t && e | |
| }; | |
| Array.prototype.forEach && x(Array.prototype.forEach) || (Array.prototype.forEach = function (t) { | |
| var e = B(this), | |
| n = b && "[object String]" === w(this) ? this.split("") : e, | |
| r = arguments[1], | |
| o = -1, | |
| i = n.length >>> 0; | |
| if (!p(t)) throw new TypeError; | |
| for (; ++o < i;) o in n && t.call(r, n[o], o, e) | |
| }), Array.prototype.map && x(Array.prototype.map) || (Array.prototype.map = function (t) { | |
| var e = B(this), | |
| n = b && "[object String]" === w(this) ? this.split("") : e, | |
| r = n.length >>> 0, | |
| o = Array(r), | |
| i = arguments[1]; | |
| if (!p(t)) throw new TypeError(t + " is not a function"); | |
| for (var s = 0; r > s; s++) s in n && (o[s] = t.call(i, n[s], s, e)); | |
| return o | |
| }), Array.prototype.filter && x(Array.prototype.filter) || (Array.prototype.filter = function (t) { | |
| var e, n = B(this), | |
| r = b && "[object String]" === w(this) ? this.split("") : n, | |
| o = r.length >>> 0, | |
| i = [], | |
| s = arguments[1]; | |
| if (!p(t)) throw new TypeError(t + " is not a function"); | |
| for (var a = 0; o > a; a++) a in r && (e = r[a], t.call(s, e, a, n) && i.push(e)); | |
| return i | |
| }), Array.prototype.every && x(Array.prototype.every) || (Array.prototype.every = function (t) { | |
| var e = B(this), | |
| n = b && "[object String]" === w(this) ? this.split("") : e, | |
| r = n.length >>> 0, | |
| o = arguments[1]; | |
| if (!p(t)) throw new TypeError(t + " is not a function"); | |
| for (var i = 0; r > i; i++) | |
| if (i in n && !t.call(o, n[i], i, e)) return !1; | |
| return !0 | |
| }), Array.prototype.some && x(Array.prototype.some) || (Array.prototype.some = function (t) { | |
| var e = B(this), | |
| n = b && "[object String]" === w(this) ? this.split("") : e, | |
| r = n.length >>> 0, | |
| o = arguments[1]; | |
| if (!p(t)) throw new TypeError(t + " is not a function"); | |
| for (var i = 0; r > i; i++) | |
| if (i in n && t.call(o, n[i], i, e)) return !0; | |
| return !1 | |
| }); | |
| var k = !1; | |
| if (Array.prototype.reduce && (k = "object" == typeof Array.prototype.reduce.call("a", function (t, e, n, r) { | |
| return r | |
| })), Array.prototype.reduce && k || (Array.prototype.reduce = function (t) { | |
| var e = B(this), | |
| n = b && "[object String]" === w(this) ? this.split("") : e, | |
| r = n.length >>> 0; | |
| if (!p(t)) throw new TypeError(t + " is not a function"); | |
| if (!r && 1 === arguments.length) throw new TypeError("reduce of empty array with no initial value"); | |
| var o, i = 0; | |
| if (arguments.length >= 2) o = arguments[1]; | |
| else | |
| for (;;) { | |
| if (i in n) { | |
| o = n[i++]; | |
| break | |
| } | |
| if (++i >= r) throw new TypeError("reduce of empty array with no initial value") | |
| } | |
| for (; r > i; i++) i in n && (o = t.call(void 0, o, n[i], i, e)); | |
| return o | |
| }), Array.prototype.reduceRight || (Array.prototype.reduceRight = function (t) { | |
| var e = B(this), | |
| n = b && "[object String]" === w(this) ? this.split("") : e, | |
| r = n.length >>> 0; | |
| if (!p(t)) throw new TypeError(t + " is not a function"); | |
| if (!r && 1 === arguments.length) throw new TypeError("reduceRight of empty array with no initial value"); | |
| var o, i = r - 1; | |
| if (arguments.length >= 2) o = arguments[1]; | |
| else | |
| for (;;) { | |
| if (i in n) { | |
| o = n[i--]; | |
| break | |
| } | |
| if (--i < 0) throw new TypeError("reduceRight of empty array with no initial value") | |
| } | |
| if (0 > i) return o; | |
| do i in this && (o = t.call(void 0, o, n[i], i, e)); while (i--); | |
| return o | |
| }), Array.prototype.indexOf && -1 === [0, 1].indexOf(1, 2) || (Array.prototype.indexOf = function (t) { | |
| var n = b && "[object String]" === w(this) ? this.split("") : B(this), | |
| r = n.length >>> 0; | |
| if (!r) return -1; | |
| var o = 0; | |
| for (arguments.length > 1 && (o = e(arguments[1])), o = o >= 0 ? o : Math.max(0, r + o); r > o; o++) | |
| if (o in n && n[o] === t) return o; | |
| return -1 | |
| }), Array.prototype.lastIndexOf && -1 === [0, 1].lastIndexOf(0, -3) || (Array.prototype.lastIndexOf = function (t) { | |
| var n = b && "[object String]" === w(this) ? this.split("") : B(this), | |
| r = n.length >>> 0; | |
| if (!r) return -1; | |
| var o = r - 1; | |
| for (arguments.length > 1 && (o = Math.min(o, e(arguments[1]))), o = o >= 0 ? o : r - Math.abs(o); o >= 0; o--) | |
| if (o in n && t === n[o]) return o; | |
| return -1 | |
| }), !Object.keys) { | |
| var T = !{ | |
| toString: null | |
| }.propertyIsEnumerable("toString"), | |
| C = function () {}.propertyIsEnumerable("prototype"), | |
| E = ["toString", "toLocaleString", "valueOf", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "constructor"], | |
| P = E.length, | |
| S = function (t) { | |
| var e = w(t), | |
| n = "[object Arguments]" === e; | |
| return n || (n = !Array.isArray(e) && null !== t && "object" == typeof t && "number" == typeof t.length && t.length >= 0 && p(t.callee)), n | |
| }; | |
| Object.keys = function (t) { | |
| var e = p(t), | |
| n = S(t), | |
| r = null !== t && "object" == typeof t, | |
| o = r && "[object String]" === w(t); | |
| if (!r && !e && !n) throw new TypeError("Object.keys called on a non-object"); | |
| var i = [], | |
| s = C && e; | |
| if (o || n) | |
| for (var a = 0; a < t.length; ++a) i.push(String(a)); | |
| else | |
| for (var u in t) s && "prototype" === u || !y(t, u) || i.push(String(u)); if (T) | |
| for (var l = t.constructor, c = l && l.prototype === t, d = 0; P > d; d++) { | |
| var h = E[d]; | |
| c && "constructor" === h || !y(t, h) || i.push(h) | |
| } | |
| return i | |
| } | |
| } | |
| var R = -621987552e5, | |
| M = "-000001"; | |
| Date.prototype.toISOString && -1 !== new Date(R).toISOString().indexOf(M) || (Date.prototype.toISOString = function () { | |
| var t, e, n, r, o; | |
| if (!isFinite(this)) throw new RangeError("Date.prototype.toISOString called on non-finite value."); | |
| for (r = this.getUTCFullYear(), o = this.getUTCMonth(), r += Math.floor(o / 12), o = (o % 12 + 12) % 12, t = [o + 1, this.getUTCDate(), this.getUTCHours(), this.getUTCMinutes(), this.getUTCSeconds()], r = (0 > r ? "-" : r > 9999 ? "+" : "") + ("00000" + Math.abs(r)).slice(r >= 0 && 9999 >= r ? -4 : -6), e = t.length; e--;) n = t[e], 10 > n && (t[e] = "0" + n); | |
| return r + "-" + t.slice(0, 2).join("-") + "T" + t.slice(2).join(":") + "." + ("000" + this.getUTCMilliseconds()).slice(-3) + "Z" | |
| }); | |
| var N = !1; | |
| try { | |
| N = Date.prototype.toJSON && null === new Date(0 / 0).toJSON() && -1 !== new Date(R).toJSON().indexOf(M) && Date.prototype.toJSON.call({ | |
| toISOString: function () { | |
| return !0 | |
| } | |
| }) | |
| } catch (O) {} | |
| N || (Date.prototype.toJSON = function () { | |
| var t, e = Object(this), | |
| n = r(e); | |
| if ("number" == typeof n && !isFinite(n)) return null; | |
| if (t = e.toISOString, "function" != typeof t) throw new TypeError("toISOString property is not callable"); | |
| return t.call(e) | |
| }); | |
| var F = 1e15 === Date.parse("+033658-09-27T01:46:40.000Z"), | |
| A = !isNaN(Date.parse("2012-04-04T24:00:00.500Z")) || !isNaN(Date.parse("2012-11-31T23:59:59.000Z")), | |
| I = isNaN(Date.parse("2000-01-01T00:00:00.000Z")); | |
| (!Date.parse || I || A || !F) && (Date = function (t) { | |
| function e(n, r, o, i, s, a, u) { | |
| var l = arguments.length; | |
| if (this instanceof t) { | |
| var c = 1 === l && String(n) === n ? new t(e.parse(n)) : l >= 7 ? new t(n, r, o, i, s, a, u) : l >= 6 ? new t(n, r, o, i, s, a) : l >= 5 ? new t(n, r, o, i, s) : l >= 4 ? new t(n, r, o, i) : l >= 3 ? new t(n, r, o) : l >= 2 ? new t(n, r) : l >= 1 ? new t(n) : new t; | |
| return c.constructor = e, c | |
| } | |
| return t.apply(this, arguments) | |
| } | |
| function n(t, e) { | |
| var n = e > 1 ? 1 : 0; | |
| return i[e] + Math.floor((t - 1969 + n) / 4) - Math.floor((t - 1901 + n) / 100) + Math.floor((t - 1601 + n) / 400) + 365 * (t - 1970) | |
| } | |
| function r(e) { | |
| return Number(new t(1970, 0, 1, 0, 0, 0, e)) | |
| } | |
| var o = new RegExp("^(\\d{4}|[+-]\\d{6})(?:-(\\d{2})(?:-(\\d{2})(?:T(\\d{2}):(\\d{2})(?::(\\d{2})(?:(\\.\\d{1,}))?)?(Z|(?:([-+])(\\d{2}):(\\d{2})))?)?)?)?$"), | |
| i = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365]; | |
| for (var s in t) e[s] = t[s]; | |
| return e.now = t.now, e.UTC = t.UTC, e.prototype = t.prototype, e.prototype.constructor = e, e.parse = function (e) { | |
| var i = o.exec(e); | |
| if (i) { | |
| var s, a = Number(i[1]), | |
| u = Number(i[2] || 1) - 1, | |
| l = Number(i[3] || 1) - 1, | |
| c = Number(i[4] || 0), | |
| p = Number(i[5] || 0), | |
| d = Number(i[6] || 0), | |
| h = Math.floor(1e3 * Number(i[7] || 0)), | |
| f = Boolean(i[4] && !i[8]), | |
| m = "-" === i[9] ? 1 : -1, | |
| g = Number(i[10] || 0), | |
| v = Number(i[11] || 0); | |
| return (p > 0 || d > 0 || h > 0 ? 24 : 25) > c && 60 > p && 60 > d && 1e3 > h && u > -1 && 12 > u && 24 > g && 60 > v && l > -1 && l < n(a, u + 1) - n(a, u) && (s = 60 * (24 * (n(a, u) + l) + c + g * m), s = 1e3 * (60 * (s + p + v * m) + d) + h, f && (s = r(s)), s >= -864e13 && 864e13 >= s) ? s : 0 / 0 | |
| } | |
| return t.parse.apply(this, arguments) | |
| }, e | |
| }(Date)), Date.now || (Date.now = function () { | |
| return (new Date).getTime() | |
| }), Number.prototype.toFixed && "0.000" === 8e-5.toFixed(3) && "0" !== .9.toFixed(0) && "1.25" === 1.255.toFixed(2) && "1000000000000000128" === 0xde0b6b3a7640080.toFixed(0) || ! function () { | |
| function t(t, e) { | |
| for (var n = -1; ++n < s;) e += t * a[n], a[n] = e % i, e = Math.floor(e / i) | |
| } | |
| function e(t) { | |
| for (var e = s, n = 0; --e >= 0;) n += a[e], a[e] = Math.floor(n / t), n = n % t * i | |
| } | |
| function n() { | |
| for (var t = s, e = ""; --t >= 0;) | |
| if ("" !== e || 0 === t || 0 !== a[t]) { | |
| var n = String(a[t]); | |
| "" === e ? e = n : e += "0000000".slice(0, 7 - n.length) + n | |
| } | |
| return e | |
| } | |
| function r(t, e, n) { | |
| return 0 === e ? n : e % 2 === 1 ? r(t, e - 1, n * t) : r(t * t, e / 2, n) | |
| } | |
| function o(t) { | |
| for (var e = 0; t >= 4096;) e += 12, t /= 4096; | |
| for (; t >= 2;) e += 1, t /= 2; | |
| return e | |
| } | |
| var i, s, a; | |
| i = 1e7, s = 6, a = [0, 0, 0, 0, 0, 0], Number.prototype.toFixed = function (i) { | |
| var s, a, u, l, c, p, d, h; | |
| if (s = Number(i), s = s !== s ? 0 : Math.floor(s), 0 > s || s > 20) throw new RangeError("Number.toFixed called with invalid number of decimals"); | |
| if (a = Number(this), a !== a) return "NaN"; | |
| if (-1e21 >= a || a >= 1e21) return String(a); | |
| if (u = "", 0 > a && (u = "-", a = -a), l = "0", a > 1e-21) | |
| if (c = o(a * r(2, 69, 1)) - 69, p = 0 > c ? a * r(2, -c, 1) : a / r(2, c, 1), p *= 4503599627370496, c = 52 - c, c > 0) { | |
| for (t(0, p), d = s; d >= 7;) t(1e7, 0), d -= 7; | |
| for (t(r(10, d, 1), 0), d = c - 1; d >= 23;) e(1 << 23), d -= 23; | |
| e(1 << d), t(1, 1), e(2), l = n() | |
| } else t(0, p), t(1 << -c, 0), l = n() + "0.00000000000000000000".slice(2, 2 + s); | |
| return s > 0 ? (h = l.length, l = s >= h ? u + "0.0000000000000000000".slice(0, s - h + 2) + l : u + l.slice(0, h - s) + "." + l.slice(h - s)) : l = u + l, l | |
| } | |
| }(); | |
| var $ = String.prototype.split; | |
| 2 !== "ab".split(/(?:ab)*/).length || 4 !== ".".split(/(.?)(.?)/).length || "t" === "tesst".split(/(s)*/)[1] || "".split(/.?/).length || ".".split(/()()/).length > 1 ? ! function () { | |
| var t = void 0 === /()??/.exec("")[1]; | |
| String.prototype.split = function (e, n) { | |
| var r = this; | |
| if (void 0 === e && 0 === n) return []; | |
| if ("[object RegExp]" !== Object.prototype.toString.call(e)) return $.apply(this, arguments); | |
| var o, i, s, a, u = [], | |
| l = (e.ignoreCase ? "i" : "") + (e.multiline ? "m" : "") + (e.extended ? "x" : "") + (e.sticky ? "y" : ""), | |
| c = 0; | |
| for (e = new RegExp(e.source, l + "g"), r += "", t || (o = new RegExp("^" + e.source + "$(?!\\s)", l)), n = void 0 === n ? -1 >>> 0 : n >>> 0; | |
| (i = e.exec(r)) && (s = i.index + i[0].length, !(s > c && (u.push(r.slice(c, i.index)), !t && i.length > 1 && i[0].replace(o, function () { | |
| for (var t = 1; t < arguments.length - 2; t++) void 0 === arguments[t] && (i[t] = void 0) | |
| }), i.length > 1 && i.index < r.length && Array.prototype.push.apply(u, i.slice(1)), a = i[0].length, c = s, u.length >= n)));) e.lastIndex === i.index && e.lastIndex++; | |
| return c === r.length ? (a || !e.test("")) && u.push("") : u.push(r.slice(c)), u.length > n ? u.slice(0, n) : u | |
| } | |
| }() : "0".split(void 0, 0).length && (String.prototype.split = function (t, e) { | |
| return void 0 === t && 0 === e ? [] : $.apply(this, arguments) | |
| }); | |
| var D = String.prototype.replace, | |
| L = function () { | |
| var t = []; | |
| return "x".replace(/x(.)?/g, function (e, n) { | |
| t.push(n) | |
| }), 1 === t.length && "undefined" == typeof t[0] | |
| }(); | |
| if (L || (String.prototype.replace = function (t, e) { | |
| var n = p(e), | |
| r = d(t) && /\)[*?]/.test(t.source); | |
| if (n && r) { | |
| var o = function (n) { | |
| var r = arguments.length, | |
| o = t.lastIndex; | |
| t.lastIndex = 0; | |
| var i = t.exec(n); | |
| return t.lastIndex = o, i.push(arguments[r - 2], arguments[r - 1]), e.apply(this, i) | |
| }; | |
| return D.call(this, t, o) | |
| } | |
| return D.apply(this, arguments) | |
| }), "".substr && "b" !== "0b".substr(-1)) { | |
| var U = String.prototype.substr; | |
| String.prototype.substr = function (t, e) { | |
| return U.call(this, 0 > t && (t = this.length + t) < 0 ? 0 : t, e) | |
| } | |
| } | |
| var H = " \n\f\r \xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff", | |
| V = "\u200b"; | |
| if (!String.prototype.trim || H.trim() || !V.trim()) { | |
| H = "[" + H + "]"; | |
| var z = new RegExp("^" + H + H + "*"), | |
| j = new RegExp(H + H + "*$"); | |
| String.prototype.trim = function () { | |
| if (void 0 === this || null === this) throw new TypeError("can't convert " + this + " to object"); | |
| return String(this).replace(z, "").replace(j, "") | |
| } | |
| }(8 !== parseInt(H + "08") || 22 !== parseInt(H + "0x16")) && (parseInt = function (t) { | |
| var e = /^0[xX]/; | |
| return function (n, r) { | |
| return n = String(n).trim(), Number(r) || (r = e.test(n) ? 16 : 10), t(n, r) | |
| } | |
| }(parseInt)); | |
| var B = function (t) { | |
| if (null == t) throw new TypeError("can't convert " + t + " to object"); | |
| return Object(t) | |
| } | |
| }), | |
| /** | |
| * React v0.10.0 | |
| * | |
| * Copyright 2013-2014 Facebook, Inc. | |
| * | |
| * Licensed under the Apache License, Version 2.0 (the "License"); | |
| * you may not use this file except in compliance with the License. | |
| * You may obtain a copy of the License at | |
| * | |
| * http://www.apache.org/licenses/LICENSE-2.0 | |
| * | |
| * Unless required by applicable law or agreed to in writing, software | |
| * distributed under the License is distributed on an "AS IS" BASIS, | |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| * See the License for the specific language governing permissions and | |
| * limitations under the License. | |
| */ | |
| ! function (t) { | |
| if ("object" == typeof exports) module.exports = t(); | |
| else if ("function" == typeof define && define.amd) define(t); | |
| else { | |
| var e; | |
| "undefined" != typeof window ? e = window : "undefined" != typeof global ? e = global : "undefined" != typeof self && (e = self), e.React = t() | |
| } | |
| }(function () { | |
| return function t(e, n, r) { | |
| function o(s, a) { | |
| if (!n[s]) { | |
| if (!e[s]) { | |
| var u = "function" == typeof require && require; | |
| if (!a && u) return u(s, !0); | |
| if (i) return i(s, !0); | |
| throw new Error("Cannot find module '" + s + "'") | |
| } | |
| var l = n[s] = { | |
| exports: {} | |
| }; | |
| e[s][0].call(l.exports, function (t) { | |
| var n = e[s][1][t]; | |
| return o(n ? n : t) | |
| }, l, l.exports, t, e, n, r) | |
| } | |
| return n[s].exports | |
| } | |
| for (var i = "function" == typeof require && require, s = 0; s < r.length; s++) o(r[s]); | |
| return o | |
| }({ | |
| 1: [ | |
| function (t, e) { | |
| "use strict"; | |
| var n = t("./focusNode"), | |
| r = { | |
| componentDidMount: function () { | |
| this.props.autoFocus && n(this.getDOMNode()) | |
| } | |
| }; | |
| e.exports = r | |
| }, { | |
| "./focusNode": 98 | |
| } | |
| ], | |
| 2: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t, e) { | |
| return t + e.charAt(0).toUpperCase() + e.substring(1) | |
| } | |
| var r = { | |
| columnCount: !0, | |
| fillOpacity: !0, | |
| flex: !0, | |
| flexGrow: !0, | |
| flexShrink: !0, | |
| fontWeight: !0, | |
| lineClamp: !0, | |
| lineHeight: !0, | |
| opacity: !0, | |
| order: !0, | |
| orphans: !0, | |
| widows: !0, | |
| zIndex: !0, | |
| zoom: !0 | |
| }, | |
| o = ["Webkit", "ms", "Moz", "O"]; | |
| Object.keys(r).forEach(function (t) { | |
| o.forEach(function (e) { | |
| r[n(e, t)] = r[t] | |
| }) | |
| }); | |
| var i = { | |
| background: { | |
| backgroundImage: !0, | |
| backgroundPosition: !0, | |
| backgroundRepeat: !0, | |
| backgroundColor: !0 | |
| }, | |
| border: { | |
| borderWidth: !0, | |
| borderStyle: !0, | |
| borderColor: !0 | |
| }, | |
| borderBottom: { | |
| borderBottomWidth: !0, | |
| borderBottomStyle: !0, | |
| borderBottomColor: !0 | |
| }, | |
| borderLeft: { | |
| borderLeftWidth: !0, | |
| borderLeftStyle: !0, | |
| borderLeftColor: !0 | |
| }, | |
| borderRight: { | |
| borderRightWidth: !0, | |
| borderRightStyle: !0, | |
| borderRightColor: !0 | |
| }, | |
| borderTop: { | |
| borderTopWidth: !0, | |
| borderTopStyle: !0, | |
| borderTopColor: !0 | |
| }, | |
| font: { | |
| fontStyle: !0, | |
| fontVariant: !0, | |
| fontWeight: !0, | |
| fontSize: !0, | |
| lineHeight: !0, | |
| fontFamily: !0 | |
| } | |
| }, | |
| s = { | |
| isUnitlessNumber: r, | |
| shorthandPropertyExpansions: i | |
| }; | |
| e.exports = s | |
| }, {} | |
| ], | |
| 3: [ | |
| function (t, e) { | |
| "use strict"; | |
| var n = t("./CSSProperty"), | |
| r = t("./dangerousStyleValue"), | |
| o = t("./escapeTextForBrowser"), | |
| i = t("./hyphenate"), | |
| s = t("./memoizeStringOnly"), | |
| a = s(function (t) { | |
| return o(i(t)) | |
| }), | |
| u = { | |
| createMarkupForStyles: function (t) { | |
| var e = ""; | |
| for (var n in t) | |
| if (t.hasOwnProperty(n)) { | |
| var o = t[n]; | |
| null != o && (e += a(n) + ":", e += r(n, o) + ";") | |
| } | |
| return e || null | |
| }, | |
| setValueForStyles: function (t, e) { | |
| var o = t.style; | |
| for (var i in e) | |
| if (e.hasOwnProperty(i)) { | |
| var s = r(i, e[i]); | |
| if (s) o[i] = s; | |
| else { | |
| var a = n.shorthandPropertyExpansions[i]; | |
| if (a) | |
| for (var u in a) o[u] = ""; | |
| else o[i] = "" | |
| } | |
| } | |
| } | |
| }; | |
| e.exports = u | |
| }, { | |
| "./CSSProperty": 2, | |
| "./dangerousStyleValue": 93, | |
| "./escapeTextForBrowser": 96, | |
| "./hyphenate": 108, | |
| "./memoizeStringOnly": 118 | |
| } | |
| ], | |
| 4: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t) { | |
| return "SELECT" === t.nodeName || "INPUT" === t.nodeName && "file" === t.type | |
| } | |
| function r(t) { | |
| var e = x.getPooled(P.change, R, t); | |
| w.accumulateTwoPhaseDispatches(e), b.batchedUpdates(o, e) | |
| } | |
| function o(t) { | |
| y.enqueueEvents(t), y.processEventQueue() | |
| } | |
| function i(t, e) { | |
| S = t, R = e, S.attachEvent("onchange", r) | |
| } | |
| function s() { | |
| S && (S.detachEvent("onchange", r), S = null, R = null) | |
| } | |
| function a(t, e, n) { | |
| return t === E.topChange ? n : void 0 | |
| } | |
| function u(t, e, n) { | |
| t === E.topFocus ? (s(), i(e, n)) : t === E.topBlur && s() | |
| } | |
| function l(t, e) { | |
| S = t, R = e, M = t.value, N = Object.getOwnPropertyDescriptor(t.constructor.prototype, "value"), Object.defineProperty(S, "value", A), S.attachEvent("onpropertychange", p) | |
| } | |
| function c() { | |
| S && (delete S.value, S.detachEvent("onpropertychange", p), S = null, R = null, M = null, N = null) | |
| } | |
| function p(t) { | |
| if ("value" === t.propertyName) { | |
| var e = t.srcElement.value; | |
| e !== M && (M = e, r(t)) | |
| } | |
| } | |
| function d(t, e, n) { | |
| return t === E.topInput ? n : void 0 | |
| } | |
| function h(t, e, n) { | |
| t === E.topFocus ? (c(), l(e, n)) : t === E.topBlur && c() | |
| } | |
| function f(t) { | |
| return t !== E.topSelectionChange && t !== E.topKeyUp && t !== E.topKeyDown || !S || S.value === M ? void 0 : (M = S.value, R) | |
| } | |
| function m(t) { | |
| return "INPUT" === t.nodeName && ("checkbox" === t.type || "radio" === t.type) | |
| } | |
| function g(t, e, n) { | |
| return t === E.topClick ? n : void 0 | |
| } | |
| var v = t("./EventConstants"), | |
| y = t("./EventPluginHub"), | |
| w = t("./EventPropagators"), | |
| _ = t("./ExecutionEnvironment"), | |
| b = t("./ReactUpdates"), | |
| x = t("./SyntheticEvent"), | |
| k = t("./isEventSupported"), | |
| T = t("./isTextInputElement"), | |
| C = t("./keyOf"), | |
| E = v.topLevelTypes, | |
| P = { | |
| change: { | |
| phasedRegistrationNames: { | |
| bubbled: C({ | |
| onChange: null | |
| }), | |
| captured: C({ | |
| onChangeCapture: null | |
| }) | |
| }, | |
| dependencies: [E.topBlur, E.topChange, E.topClick, E.topFocus, E.topInput, E.topKeyDown, E.topKeyUp, E.topSelectionChange] | |
| } | |
| }, | |
| S = null, | |
| R = null, | |
| M = null, | |
| N = null, | |
| O = !1; | |
| _.canUseDOM && (O = k("change") && (!("documentMode" in document) || document.documentMode > 8)); | |
| var F = !1; | |
| _.canUseDOM && (F = k("input") && (!("documentMode" in document) || document.documentMode > 9)); | |
| var A = { | |
| get: function () { | |
| return N.get.call(this) | |
| }, | |
| set: function (t) { | |
| M = "" + t, N.set.call(this, t) | |
| } | |
| }, | |
| I = { | |
| eventTypes: P, | |
| extractEvents: function (t, e, r, o) { | |
| var i, s; | |
| if (n(e) ? O ? i = a : s = u : T(e) ? F ? i = d : (i = f, s = h) : m(e) && (i = g), i) { | |
| var l = i(t, e, r); | |
| if (l) { | |
| var c = x.getPooled(P.change, l, o); | |
| return w.accumulateTwoPhaseDispatches(c), c | |
| } | |
| } | |
| s && s(t, e, r) | |
| } | |
| }; | |
| e.exports = I | |
| }, { | |
| "./EventConstants": 14, | |
| "./EventPluginHub": 16, | |
| "./EventPropagators": 19, | |
| "./ExecutionEnvironment": 20, | |
| "./ReactUpdates": 69, | |
| "./SyntheticEvent": 76, | |
| "./isEventSupported": 111, | |
| "./isTextInputElement": 113, | |
| "./keyOf": 117 | |
| } | |
| ], | |
| 5: [ | |
| function (t, e) { | |
| "use strict"; | |
| var n = 0, | |
| r = { | |
| createReactRootIndex: function () { | |
| return n++ | |
| } | |
| }; | |
| e.exports = r | |
| }, {} | |
| ], | |
| 6: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t) { | |
| switch (t) { | |
| case v.topCompositionStart: | |
| return w.compositionStart; | |
| case v.topCompositionEnd: | |
| return w.compositionEnd; | |
| case v.topCompositionUpdate: | |
| return w.compositionUpdate | |
| } | |
| } | |
| function r(t, e) { | |
| return t === v.topKeyDown && e.keyCode === f | |
| } | |
| function o(t, e) { | |
| switch (t) { | |
| case v.topKeyUp: | |
| return -1 !== h.indexOf(e.keyCode); | |
| case v.topKeyDown: | |
| return e.keyCode !== f; | |
| case v.topKeyPress: | |
| case v.topMouseDown: | |
| case v.topBlur: | |
| return !0; | |
| default: | |
| return !1 | |
| } | |
| } | |
| function i(t) { | |
| this.root = t, this.startSelection = l.getSelection(t), this.startValue = this.getText() | |
| } | |
| var s = t("./EventConstants"), | |
| a = t("./EventPropagators"), | |
| u = t("./ExecutionEnvironment"), | |
| l = t("./ReactInputSelection"), | |
| c = t("./SyntheticCompositionEvent"), | |
| p = t("./getTextContentAccessor"), | |
| d = t("./keyOf"), | |
| h = [9, 13, 27, 32], | |
| f = 229, | |
| m = u.canUseDOM && "CompositionEvent" in window, | |
| g = !m || "documentMode" in document && document.documentMode > 8, | |
| v = s.topLevelTypes, | |
| y = null, | |
| w = { | |
| compositionEnd: { | |
| phasedRegistrationNames: { | |
| bubbled: d({ | |
| onCompositionEnd: null | |
| }), | |
| captured: d({ | |
| onCompositionEndCapture: null | |
| }) | |
| }, | |
| dependencies: [v.topBlur, v.topCompositionEnd, v.topKeyDown, v.topKeyPress, v.topKeyUp, v.topMouseDown] | |
| }, | |
| compositionStart: { | |
| phasedRegistrationNames: { | |
| bubbled: d({ | |
| onCompositionStart: null | |
| }), | |
| captured: d({ | |
| onCompositionStartCapture: null | |
| }) | |
| }, | |
| dependencies: [v.topBlur, v.topCompositionStart, v.topKeyDown, v.topKeyPress, v.topKeyUp, v.topMouseDown] | |
| }, | |
| compositionUpdate: { | |
| phasedRegistrationNames: { | |
| bubbled: d({ | |
| onCompositionUpdate: null | |
| }), | |
| captured: d({ | |
| onCompositionUpdateCapture: null | |
| }) | |
| }, | |
| dependencies: [v.topBlur, v.topCompositionUpdate, v.topKeyDown, v.topKeyPress, v.topKeyUp, v.topMouseDown] | |
| } | |
| }; | |
| i.prototype.getText = function () { | |
| return this.root.value || this.root[p()] | |
| }, i.prototype.getData = function () { | |
| var t = this.getText(), | |
| e = this.startSelection.start, | |
| n = this.startValue.length - this.startSelection.end; | |
| return t.substr(e, t.length - n - e) | |
| }; | |
| var _ = { | |
| eventTypes: w, | |
| extractEvents: function (t, e, s, u) { | |
| var l, p; | |
| if (m ? l = n(t) : y ? o(t, u) && (l = w.compositionEnd) : r(t, u) && (l = w.compositionStart), g && (y || l !== w.compositionStart ? l === w.compositionEnd && y && (p = y.getData(), y = null) : y = new i(e)), l) { | |
| var d = c.getPooled(l, s, u); | |
| return p && (d.data = p), a.accumulateTwoPhaseDispatches(d), d | |
| } | |
| } | |
| }; | |
| e.exports = _ | |
| }, { | |
| "./EventConstants": 14, | |
| "./EventPropagators": 19, | |
| "./ExecutionEnvironment": 20, | |
| "./ReactInputSelection": 50, | |
| "./SyntheticCompositionEvent": 74, | |
| "./getTextContentAccessor": 106, | |
| "./keyOf": 117 | |
| } | |
| ], | |
| 7: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t, e, n) { | |
| var r = t.childNodes; | |
| r[n] !== e && (e.parentNode === t && t.removeChild(e), n >= r.length ? t.appendChild(e) : t.insertBefore(e, r[n])) | |
| } | |
| var r, o = t("./Danger"), | |
| i = t("./ReactMultiChildUpdateTypes"), | |
| s = t("./getTextContentAccessor"), | |
| a = s(); | |
| r = "textContent" === a ? function (t, e) { | |
| t.textContent = e | |
| } : function (t, e) { | |
| for (; t.firstChild;) t.removeChild(t.firstChild); | |
| if (e) { | |
| var n = t.ownerDocument || document; | |
| t.appendChild(n.createTextNode(e)) | |
| } | |
| }; | |
| var u = { | |
| dangerouslyReplaceNodeWithMarkup: o.dangerouslyReplaceNodeWithMarkup, | |
| updateTextContent: r, | |
| processUpdates: function (t, e) { | |
| for (var s, a = null, u = null, l = 0; s = t[l]; l++) | |
| if (s.type === i.MOVE_EXISTING || s.type === i.REMOVE_NODE) { | |
| var c = s.fromIndex, | |
| p = s.parentNode.childNodes[c], | |
| d = s.parentID; | |
| a = a || {}, a[d] = a[d] || [], a[d][c] = p, u = u || [], u.push(p) | |
| } | |
| var h = o.dangerouslyRenderMarkup(e); | |
| if (u) | |
| for (var f = 0; f < u.length; f++) u[f].parentNode.removeChild(u[f]); | |
| for (var m = 0; s = t[m]; m++) switch (s.type) { | |
| case i.INSERT_MARKUP: | |
| n(s.parentNode, h[s.markupIndex], s.toIndex); | |
| break; | |
| case i.MOVE_EXISTING: | |
| n(s.parentNode, a[s.parentID][s.fromIndex], s.toIndex); | |
| break; | |
| case i.TEXT_CONTENT: | |
| r(s.parentNode, s.textContent); | |
| break; | |
| case i.REMOVE_NODE: | |
| } | |
| } | |
| }; | |
| e.exports = u | |
| }, { | |
| "./Danger": 10, | |
| "./ReactMultiChildUpdateTypes": 56, | |
| "./getTextContentAccessor": 106 | |
| } | |
| ], | |
| 8: [ | |
| function (t, e) { | |
| "use strict"; | |
| var n = t("./invariant"), | |
| r = { | |
| MUST_USE_ATTRIBUTE: 1, | |
| MUST_USE_PROPERTY: 2, | |
| HAS_SIDE_EFFECTS: 4, | |
| HAS_BOOLEAN_VALUE: 8, | |
| HAS_POSITIVE_NUMERIC_VALUE: 16, | |
| injectDOMPropertyConfig: function (t) { | |
| var e = t.Properties || {}, | |
| o = t.DOMAttributeNames || {}, | |
| s = t.DOMPropertyNames || {}, | |
| a = t.DOMMutationMethods || {}; | |
| t.isCustomAttribute && i._isCustomAttributeFunctions.push(t.isCustomAttribute); | |
| for (var u in e) { | |
| n(!i.isStandardName[u]), i.isStandardName[u] = !0; | |
| var l = u.toLowerCase(); | |
| i.getPossibleStandardName[l] = u; | |
| var c = o[u]; | |
| c && (i.getPossibleStandardName[c] = u), i.getAttributeName[u] = c || l, i.getPropertyName[u] = s[u] || u; | |
| var p = a[u]; | |
| p && (i.getMutationMethod[u] = p); | |
| var d = e[u]; | |
| i.mustUseAttribute[u] = d & r.MUST_USE_ATTRIBUTE, i.mustUseProperty[u] = d & r.MUST_USE_PROPERTY, i.hasSideEffects[u] = d & r.HAS_SIDE_EFFECTS, i.hasBooleanValue[u] = d & r.HAS_BOOLEAN_VALUE, i.hasPositiveNumericValue[u] = d & r.HAS_POSITIVE_NUMERIC_VALUE, n(!i.mustUseAttribute[u] || !i.mustUseProperty[u]), n(i.mustUseProperty[u] || !i.hasSideEffects[u]), n(!i.hasBooleanValue[u] || !i.hasPositiveNumericValue[u]) | |
| } | |
| } | |
| }, | |
| o = {}, | |
| i = { | |
| ID_ATTRIBUTE_NAME: "data-reactid", | |
| isStandardName: {}, | |
| getPossibleStandardName: {}, | |
| getAttributeName: {}, | |
| getPropertyName: {}, | |
| getMutationMethod: {}, | |
| mustUseAttribute: {}, | |
| mustUseProperty: {}, | |
| hasSideEffects: {}, | |
| hasBooleanValue: {}, | |
| hasPositiveNumericValue: {}, | |
| _isCustomAttributeFunctions: [], | |
| isCustomAttribute: function (t) { | |
| for (var e = 0; e < i._isCustomAttributeFunctions.length; e++) { | |
| var n = i._isCustomAttributeFunctions[e]; | |
| if (n(t)) return !0 | |
| } | |
| return !1 | |
| }, | |
| getDefaultValueForProperty: function (t, e) { | |
| var n, r = o[t]; | |
| return r || (o[t] = r = {}), e in r || (n = document.createElement(t), r[e] = n[e]), r[e] | |
| }, | |
| injection: r | |
| }; | |
| e.exports = i | |
| }, { | |
| "./invariant": 110 | |
| } | |
| ], | |
| 9: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t, e) { | |
| return null == e || r.hasBooleanValue[t] && !e || r.hasPositiveNumericValue[t] && (isNaN(e) || 1 > e) | |
| } | |
| var r = t("./DOMProperty"), | |
| o = t("./escapeTextForBrowser"), | |
| i = t("./memoizeStringOnly"), | |
| s = (t("./warning"), i(function (t) { | |
| return o(t) + '="' | |
| })), | |
| a = { | |
| createMarkupForID: function (t) { | |
| return s(r.ID_ATTRIBUTE_NAME) + o(t) + '"' | |
| }, | |
| createMarkupForProperty: function (t, e) { | |
| if (r.isStandardName[t]) { | |
| if (n(t, e)) return ""; | |
| var i = r.getAttributeName[t]; | |
| return r.hasBooleanValue[t] ? o(i) : s(i) + o(e) + '"' | |
| } | |
| return r.isCustomAttribute(t) ? null == e ? "" : s(t) + o(e) + '"' : null | |
| }, | |
| setValueForProperty: function (t, e, o) { | |
| if (r.isStandardName[e]) { | |
| var i = r.getMutationMethod[e]; | |
| if (i) i(t, o); | |
| else if (n(e, o)) this.deleteValueForProperty(t, e); | |
| else if (r.mustUseAttribute[e]) t.setAttribute(r.getAttributeName[e], "" + o); | |
| else { | |
| var s = r.getPropertyName[e]; | |
| r.hasSideEffects[e] && t[s] === o || (t[s] = o) | |
| } | |
| } else r.isCustomAttribute(e) && (null == o ? t.removeAttribute(r.getAttributeName[e]) : t.setAttribute(e, "" + o)) | |
| }, | |
| deleteValueForProperty: function (t, e) { | |
| if (r.isStandardName[e]) { | |
| var n = r.getMutationMethod[e]; | |
| if (n) n(t, void 0); | |
| else if (r.mustUseAttribute[e]) t.removeAttribute(r.getAttributeName[e]); | |
| else { | |
| var o = r.getPropertyName[e], | |
| i = r.getDefaultValueForProperty(t.nodeName, o); | |
| r.hasSideEffects[e] && t[o] === i || (t[o] = i) | |
| } | |
| } else r.isCustomAttribute(e) && t.removeAttribute(e) | |
| } | |
| }; | |
| e.exports = a | |
| }, { | |
| "./DOMProperty": 8, | |
| "./escapeTextForBrowser": 96, | |
| "./memoizeStringOnly": 118, | |
| "./warning": 131 | |
| } | |
| ], | |
| 10: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t) { | |
| return t.substring(1, t.indexOf(" ")) | |
| } | |
| var r = t("./ExecutionEnvironment"), | |
| o = t("./createNodesFromMarkup"), | |
| i = t("./emptyFunction"), | |
| s = t("./getMarkupWrap"), | |
| a = t("./invariant"), | |
| u = /^(<[^ \/>]+)/, | |
| l = "data-danger-index", | |
| c = { | |
| dangerouslyRenderMarkup: function (t) { | |
| a(r.canUseDOM); | |
| for (var e, c = {}, p = 0; p < t.length; p++) a(t[p]), e = n(t[p]), e = s(e) ? e : "*", c[e] = c[e] || [], c[e][p] = t[p]; | |
| var d = [], | |
| h = 0; | |
| for (e in c) | |
| if (c.hasOwnProperty(e)) { | |
| var f = c[e]; | |
| for (var m in f) | |
| if (f.hasOwnProperty(m)) { | |
| var g = f[m]; | |
| f[m] = g.replace(u, "$1 " + l + '="' + m + '" ') | |
| } | |
| var v = o(f.join(""), i); | |
| for (p = 0; p < v.length; ++p) { | |
| var y = v[p]; | |
| y.hasAttribute && y.hasAttribute(l) && (m = +y.getAttribute(l), y.removeAttribute(l), a(!d.hasOwnProperty(m)), d[m] = y, h += 1) | |
| } | |
| } | |
| return a(h === d.length), a(d.length === t.length), d | |
| }, | |
| dangerouslyReplaceNodeWithMarkup: function (t, e) { | |
| a(r.canUseDOM), a(e), a("html" !== t.tagName.toLowerCase()); | |
| var n = o(e, i)[0]; | |
| t.parentNode.replaceChild(n, t) | |
| } | |
| }; | |
| e.exports = c | |
| }, { | |
| "./ExecutionEnvironment": 20, | |
| "./createNodesFromMarkup": 91, | |
| "./emptyFunction": 94, | |
| "./getMarkupWrap": 103, | |
| "./invariant": 110 | |
| } | |
| ], | |
| 11: [ | |
| function (t, e) { | |
| "use strict"; | |
| var n = t("./DOMProperty"), | |
| r = n.injection.MUST_USE_ATTRIBUTE, | |
| o = n.injection.MUST_USE_PROPERTY, | |
| i = n.injection.HAS_BOOLEAN_VALUE, | |
| s = n.injection.HAS_SIDE_EFFECTS, | |
| a = n.injection.HAS_POSITIVE_NUMERIC_VALUE, | |
| u = { | |
| isCustomAttribute: RegExp.prototype.test.bind(/^(data|aria)-[a-z_][a-z\d_.\-]*$/), | |
| Properties: { | |
| accept: null, | |
| accessKey: null, | |
| action: null, | |
| allowFullScreen: r | i, | |
| allowTransparency: r, | |
| alt: null, | |
| async: i, | |
| autoComplete: null, | |
| autoPlay: i, | |
| cellPadding: null, | |
| cellSpacing: null, | |
| charSet: r, | |
| checked: o | i, | |
| className: o, | |
| cols: r | a, | |
| colSpan: null, | |
| content: null, | |
| contentEditable: null, | |
| contextMenu: r, | |
| controls: o | i, | |
| crossOrigin: null, | |
| data: null, | |
| dateTime: r, | |
| defer: i, | |
| dir: null, | |
| disabled: r | i, | |
| download: null, | |
| draggable: null, | |
| encType: null, | |
| form: r, | |
| formNoValidate: i, | |
| frameBorder: r, | |
| height: r, | |
| hidden: r | i, | |
| href: null, | |
| hrefLang: null, | |
| htmlFor: null, | |
| httpEquiv: null, | |
| icon: null, | |
| id: o, | |
| label: null, | |
| lang: null, | |
| list: null, | |
| loop: o | i, | |
| max: null, | |
| maxLength: r, | |
| mediaGroup: null, | |
| method: null, | |
| min: null, | |
| multiple: o | i, | |
| muted: o | i, | |
| name: null, | |
| noValidate: i, | |
| pattern: null, | |
| placeholder: null, | |
| poster: null, | |
| preload: null, | |
| radioGroup: null, | |
| readOnly: o | i, | |
| rel: null, | |
| required: i, | |
| role: r, | |
| rows: r | a, | |
| rowSpan: null, | |
| sandbox: null, | |
| scope: null, | |
| scrollLeft: o, | |
| scrollTop: o, | |
| seamless: r | i, | |
| selected: o | i, | |
| size: r | a, | |
| span: a, | |
| spellCheck: null, | |
| src: null, | |
| srcDoc: o, | |
| srcSet: null, | |
| step: null, | |
| style: null, | |
| tabIndex: null, | |
| target: null, | |
| title: null, | |
| type: null, | |
| value: o | s, | |
| width: r, | |
| wmode: r, | |
| autoCapitalize: null, | |
| autoCorrect: null, | |
| property: null, | |
| cx: r, | |
| cy: r, | |
| d: r, | |
| fill: r, | |
| fx: r, | |
| fy: r, | |
| gradientTransform: r, | |
| gradientUnits: r, | |
| offset: r, | |
| points: r, | |
| r: r, | |
| rx: r, | |
| ry: r, | |
| spreadMethod: r, | |
| stopColor: r, | |
| stopOpacity: r, | |
| stroke: r, | |
| strokeLinecap: r, | |
| strokeWidth: r, | |
| textAnchor: r, | |
| transform: r, | |
| version: r, | |
| viewBox: r, | |
| x1: r, | |
| x2: r, | |
| x: r, | |
| y1: r, | |
| y2: r, | |
| y: r | |
| }, | |
| DOMAttributeNames: { | |
| className: "class", | |
| gradientTransform: "gradientTransform", | |
| gradientUnits: "gradientUnits", | |
| htmlFor: "for", | |
| spreadMethod: "spreadMethod", | |
| stopColor: "stop-color", | |
| stopOpacity: "stop-opacity", | |
| strokeLinecap: "stroke-linecap", | |
| strokeWidth: "stroke-width", | |
| textAnchor: "text-anchor", | |
| viewBox: "viewBox" | |
| }, | |
| DOMPropertyNames: { | |
| autoCapitalize: "autocapitalize", | |
| autoComplete: "autocomplete", | |
| autoCorrect: "autocorrect", | |
| autoFocus: "autofocus", | |
| autoPlay: "autoplay", | |
| encType: "enctype", | |
| hrefLang: "hreflang", | |
| radioGroup: "radiogroup", | |
| spellCheck: "spellcheck", | |
| srcDoc: "srcdoc", | |
| srcSet: "srcset" | |
| } | |
| }; | |
| e.exports = u | |
| }, { | |
| "./DOMProperty": 8 | |
| } | |
| ], | |
| 12: [ | |
| function (t, e) { | |
| "use strict"; | |
| var n = t("./keyOf"), | |
| r = [n({ | |
| ResponderEventPlugin: null | |
| }), n({ | |
| SimpleEventPlugin: null | |
| }), n({ | |
| TapEventPlugin: null | |
| }), n({ | |
| EnterLeaveEventPlugin: null | |
| }), n({ | |
| ChangeEventPlugin: null | |
| }), n({ | |
| SelectEventPlugin: null | |
| }), n({ | |
| CompositionEventPlugin: null | |
| }), n({ | |
| AnalyticsEventPlugin: null | |
| }), n({ | |
| MobileSafariClickEventPlugin: null | |
| })]; | |
| e.exports = r | |
| }, { | |
| "./keyOf": 117 | |
| } | |
| ], | |
| 13: [ | |
| function (t, e) { | |
| "use strict"; | |
| var n = t("./EventConstants"), | |
| r = t("./EventPropagators"), | |
| o = t("./SyntheticMouseEvent"), | |
| i = t("./ReactMount"), | |
| s = t("./keyOf"), | |
| a = n.topLevelTypes, | |
| u = i.getFirstReactDOM, | |
| l = { | |
| mouseEnter: { | |
| registrationName: s({ | |
| onMouseEnter: null | |
| }), | |
| dependencies: [a.topMouseOut, a.topMouseOver] | |
| }, | |
| mouseLeave: { | |
| registrationName: s({ | |
| onMouseLeave: null | |
| }), | |
| dependencies: [a.topMouseOut, a.topMouseOver] | |
| } | |
| }, | |
| c = [null, null], | |
| p = { | |
| eventTypes: l, | |
| extractEvents: function (t, e, n, s) { | |
| if (t === a.topMouseOver && (s.relatedTarget || s.fromElement)) return null; | |
| if (t !== a.topMouseOut && t !== a.topMouseOver) return null; | |
| var p; | |
| if (e.window === e) p = e; | |
| else { | |
| var d = e.ownerDocument; | |
| p = d ? d.defaultView || d.parentWindow : window | |
| } | |
| var h, f; | |
| if (t === a.topMouseOut ? (h = e, f = u(s.relatedTarget || s.toElement) || p) : (h = p, f = e), h === f) return null; | |
| var m = h ? i.getID(h) : "", | |
| g = f ? i.getID(f) : "", | |
| v = o.getPooled(l.mouseLeave, m, s); | |
| v.type = "mouseleave", v.target = h, v.relatedTarget = f; | |
| var y = o.getPooled(l.mouseEnter, g, s); | |
| return y.type = "mouseenter", y.target = f, y.relatedTarget = h, r.accumulateEnterLeaveDispatches(v, y, m, g), c[0] = v, c[1] = y, c | |
| } | |
| }; | |
| e.exports = p | |
| }, { | |
| "./EventConstants": 14, | |
| "./EventPropagators": 19, | |
| "./ReactMount": 53, | |
| "./SyntheticMouseEvent": 79, | |
| "./keyOf": 117 | |
| } | |
| ], | |
| 14: [ | |
| function (t, e) { | |
| "use strict"; | |
| var n = t("./keyMirror"), | |
| r = n({ | |
| bubbled: null, | |
| captured: null | |
| }), | |
| o = n({ | |
| topBlur: null, | |
| topChange: null, | |
| topClick: null, | |
| topCompositionEnd: null, | |
| topCompositionStart: null, | |
| topCompositionUpdate: null, | |
| topContextMenu: null, | |
| topCopy: null, | |
| topCut: null, | |
| topDoubleClick: null, | |
| topDrag: null, | |
| topDragEnd: null, | |
| topDragEnter: null, | |
| topDragExit: null, | |
| topDragLeave: null, | |
| topDragOver: null, | |
| topDragStart: null, | |
| topDrop: null, | |
| topError: null, | |
| topFocus: null, | |
| topInput: null, | |
| topKeyDown: null, | |
| topKeyPress: null, | |
| topKeyUp: null, | |
| topLoad: null, | |
| topMouseDown: null, | |
| topMouseMove: null, | |
| topMouseOut: null, | |
| topMouseOver: null, | |
| topMouseUp: null, | |
| topPaste: null, | |
| topReset: null, | |
| topScroll: null, | |
| topSelectionChange: null, | |
| topSubmit: null, | |
| topTouchCancel: null, | |
| topTouchEnd: null, | |
| topTouchMove: null, | |
| topTouchStart: null, | |
| topWheel: null | |
| }), | |
| i = { | |
| topLevelTypes: o, | |
| PropagationPhases: r | |
| }; | |
| e.exports = i | |
| }, { | |
| "./keyMirror": 116 | |
| } | |
| ], | |
| 15: [ | |
| function (t, e) { | |
| var n = t("./emptyFunction"), | |
| r = { | |
| listen: function (t, e, n) { | |
| return t.addEventListener ? (t.addEventListener(e, n, !1), { | |
| remove: function () { | |
| t.removeEventListener(e, n, !1) | |
| } | |
| }) : t.attachEvent ? (t.attachEvent("on" + e, n), { | |
| remove: function () { | |
| t.detachEvent(e, n) | |
| } | |
| }) : void 0 | |
| }, | |
| capture: function (t, e, r) { | |
| return t.addEventListener ? (t.addEventListener(e, r, !0), { | |
| remove: function () { | |
| t.removeEventListener(e, r, !0) | |
| } | |
| }) : { | |
| remove: n | |
| } | |
| } | |
| }; | |
| e.exports = r | |
| }, { | |
| "./emptyFunction": 94 | |
| } | |
| ], | |
| 16: [ | |
| function (t, e) { | |
| "use strict"; | |
| var n = t("./EventPluginRegistry"), | |
| r = t("./EventPluginUtils"), | |
| o = t("./ExecutionEnvironment"), | |
| i = t("./accumulate"), | |
| s = t("./forEachAccumulated"), | |
| a = t("./invariant"), | |
| u = (t("./isEventSupported"), t("./monitorCodeUse"), {}), | |
| l = null, | |
| c = function (t) { | |
| if (t) { | |
| var e = r.executeDispatch, | |
| o = n.getPluginModuleForEvent(t); | |
| o && o.executeDispatch && (e = o.executeDispatch), r.executeDispatchesInOrder(t, e), t.isPersistent() || t.constructor.release(t) | |
| } | |
| }, | |
| p = null, | |
| d = { | |
| injection: { | |
| injectMount: r.injection.injectMount, | |
| injectInstanceHandle: function (t) { | |
| p = t | |
| }, | |
| getInstanceHandle: function () { | |
| return p | |
| }, | |
| injectEventPluginOrder: n.injectEventPluginOrder, | |
| injectEventPluginsByName: n.injectEventPluginsByName | |
| }, | |
| eventNameDispatchConfigs: n.eventNameDispatchConfigs, | |
| registrationNameModules: n.registrationNameModules, | |
| putListener: function (t, e, n) { | |
| a(o.canUseDOM), a(!n || "function" == typeof n); | |
| var r = u[e] || (u[e] = {}); | |
| r[t] = n | |
| }, | |
| getListener: function (t, e) { | |
| var n = u[e]; | |
| return n && n[t] | |
| }, | |
| deleteListener: function (t, e) { | |
| var n = u[e]; | |
| n && delete n[t] | |
| }, | |
| deleteAllListeners: function (t) { | |
| for (var e in u) delete u[e][t] | |
| }, | |
| extractEvents: function (t, e, r, o) { | |
| for (var s, a = n.plugins, u = 0, l = a.length; l > u; u++) { | |
| var c = a[u]; | |
| if (c) { | |
| var p = c.extractEvents(t, e, r, o); | |
| p && (s = i(s, p)) | |
| } | |
| } | |
| return s | |
| }, | |
| enqueueEvents: function (t) { | |
| t && (l = i(l, t)) | |
| }, | |
| processEventQueue: function () { | |
| var t = l; | |
| l = null, s(t, c), a(!l) | |
| }, | |
| __purge: function () { | |
| u = {} | |
| }, | |
| __getListenerBank: function () { | |
| return u | |
| } | |
| }; | |
| e.exports = d | |
| }, { | |
| "./EventPluginRegistry": 17, | |
| "./EventPluginUtils": 18, | |
| "./ExecutionEnvironment": 20, | |
| "./accumulate": 85, | |
| "./forEachAccumulated": 99, | |
| "./invariant": 110, | |
| "./isEventSupported": 111, | |
| "./monitorCodeUse": 123 | |
| } | |
| ], | |
| 17: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n() { | |
| if (s) | |
| for (var t in a) { | |
| var e = a[t], | |
| n = s.indexOf(t); | |
| if (i(n > -1), !u.plugins[n]) { | |
| i(e.extractEvents), u.plugins[n] = e; | |
| var o = e.eventTypes; | |
| for (var l in o) i(r(o[l], e, l)) | |
| } | |
| } | |
| } | |
| function r(t, e, n) { | |
| i(!u.eventNameDispatchConfigs[n]), u.eventNameDispatchConfigs[n] = t; | |
| var r = t.phasedRegistrationNames; | |
| if (r) { | |
| for (var s in r) | |
| if (r.hasOwnProperty(s)) { | |
| var a = r[s]; | |
| o(a, e, n) | |
| } | |
| return !0 | |
| } | |
| return t.registrationName ? (o(t.registrationName, e, n), !0) : !1 | |
| } | |
| function o(t, e, n) { | |
| i(!u.registrationNameModules[t]), u.registrationNameModules[t] = e, u.registrationNameDependencies[t] = e.eventTypes[n].dependencies | |
| } | |
| var i = t("./invariant"), | |
| s = null, | |
| a = {}, | |
| u = { | |
| plugins: [], | |
| eventNameDispatchConfigs: {}, | |
| registrationNameModules: {}, | |
| registrationNameDependencies: {}, | |
| injectEventPluginOrder: function (t) { | |
| i(!s), s = Array.prototype.slice.call(t), n() | |
| }, | |
| injectEventPluginsByName: function (t) { | |
| var e = !1; | |
| for (var r in t) | |
| if (t.hasOwnProperty(r)) { | |
| var o = t[r]; | |
| a[r] !== o && (i(!a[r]), a[r] = o, e = !0) | |
| } | |
| e && n() | |
| }, | |
| getPluginModuleForEvent: function (t) { | |
| var e = t.dispatchConfig; | |
| if (e.registrationName) return u.registrationNameModules[e.registrationName] || null; | |
| for (var n in e.phasedRegistrationNames) | |
| if (e.phasedRegistrationNames.hasOwnProperty(n)) { | |
| var r = u.registrationNameModules[e.phasedRegistrationNames[n]]; | |
| if (r) return r | |
| } | |
| return null | |
| }, | |
| _resetEventPlugins: function () { | |
| s = null; | |
| for (var t in a) a.hasOwnProperty(t) && delete a[t]; | |
| u.plugins.length = 0; | |
| var e = u.eventNameDispatchConfigs; | |
| for (var n in e) e.hasOwnProperty(n) && delete e[n]; | |
| var r = u.registrationNameModules; | |
| for (var o in r) r.hasOwnProperty(o) && delete r[o] | |
| } | |
| }; | |
| e.exports = u | |
| }, { | |
| "./invariant": 110 | |
| } | |
| ], | |
| 18: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t) { | |
| return t === f.topMouseUp || t === f.topTouchEnd || t === f.topTouchCancel | |
| } | |
| function r(t) { | |
| return t === f.topMouseMove || t === f.topTouchMove | |
| } | |
| function o(t) { | |
| return t === f.topMouseDown || t === f.topTouchStart | |
| } | |
| function i(t, e) { | |
| var n = t._dispatchListeners, | |
| r = t._dispatchIDs; | |
| if (Array.isArray(n)) | |
| for (var o = 0; o < n.length && !t.isPropagationStopped(); o++) e(t, n[o], r[o]); | |
| else n && e(t, n, r) | |
| } | |
| function s(t, e, n) { | |
| t.currentTarget = h.Mount.getNode(n); | |
| var r = e(t, n); | |
| return t.currentTarget = null, r | |
| } | |
| function a(t, e) { | |
| i(t, e), t._dispatchListeners = null, t._dispatchIDs = null | |
| } | |
| function u(t) { | |
| var e = t._dispatchListeners, | |
| n = t._dispatchIDs; | |
| if (Array.isArray(e)) { | |
| for (var r = 0; r < e.length && !t.isPropagationStopped(); r++) | |
| if (e[r](t, n[r])) return n[r] | |
| } else if (e && e(t, n)) return n; | |
| return null | |
| } | |
| function l(t) { | |
| var e = t._dispatchListeners, | |
| n = t._dispatchIDs; | |
| d(!Array.isArray(e)); | |
| var r = e ? e(t, n) : null; | |
| return t._dispatchListeners = null, t._dispatchIDs = null, r | |
| } | |
| function c(t) { | |
| return !!t._dispatchListeners | |
| } | |
| var p = t("./EventConstants"), | |
| d = t("./invariant"), | |
| h = { | |
| Mount: null, | |
| injectMount: function (t) { | |
| h.Mount = t | |
| } | |
| }, | |
| f = p.topLevelTypes, | |
| m = { | |
| isEndish: n, | |
| isMoveish: r, | |
| isStartish: o, | |
| executeDirectDispatch: l, | |
| executeDispatch: s, | |
| executeDispatchesInOrder: a, | |
| executeDispatchesInOrderStopAtTrue: u, | |
| hasDispatches: c, | |
| injection: h, | |
| useTouchEvents: !1 | |
| }; | |
| e.exports = m | |
| }, { | |
| "./EventConstants": 14, | |
| "./invariant": 110 | |
| } | |
| ], | |
| 19: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t, e, n) { | |
| var r = e.dispatchConfig.phasedRegistrationNames[n]; | |
| return m(t, r) | |
| } | |
| function r(t, e, r) { | |
| var o = e ? f.bubbled : f.captured, | |
| i = n(t, r, o); | |
| i && (r._dispatchListeners = d(r._dispatchListeners, i), r._dispatchIDs = d(r._dispatchIDs, t)) | |
| } | |
| function o(t) { | |
| t && t.dispatchConfig.phasedRegistrationNames && p.injection.getInstanceHandle().traverseTwoPhase(t.dispatchMarker, r, t) | |
| } | |
| function i(t, e, n) { | |
| if (n && n.dispatchConfig.registrationName) { | |
| var r = n.dispatchConfig.registrationName, | |
| o = m(t, r); | |
| o && (n._dispatchListeners = d(n._dispatchListeners, o), n._dispatchIDs = d(n._dispatchIDs, t)) | |
| } | |
| } | |
| function s(t) { | |
| t && t.dispatchConfig.registrationName && i(t.dispatchMarker, null, t) | |
| } | |
| function a(t) { | |
| h(t, o) | |
| } | |
| function u(t, e, n, r) { | |
| p.injection.getInstanceHandle().traverseEnterLeave(n, r, i, t, e) | |
| } | |
| function l(t) { | |
| h(t, s) | |
| } | |
| var c = t("./EventConstants"), | |
| p = t("./EventPluginHub"), | |
| d = t("./accumulate"), | |
| h = t("./forEachAccumulated"), | |
| f = c.PropagationPhases, | |
| m = p.getListener, | |
| g = { | |
| accumulateTwoPhaseDispatches: a, | |
| accumulateDirectDispatches: l, | |
| accumulateEnterLeaveDispatches: u | |
| }; | |
| e.exports = g | |
| }, { | |
| "./EventConstants": 14, | |
| "./EventPluginHub": 16, | |
| "./accumulate": 85, | |
| "./forEachAccumulated": 99 | |
| } | |
| ], | |
| 20: [ | |
| function (t, e) { | |
| "use strict"; | |
| var n = "undefined" != typeof window, | |
| r = { | |
| canUseDOM: n, | |
| canUseWorkers: "undefined" != typeof Worker, | |
| canUseEventListeners: n && (window.addEventListener || window.attachEvent), | |
| isInWorker: !n | |
| }; | |
| e.exports = r | |
| }, {} | |
| ], | |
| 21: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t) { | |
| u(null == t.props.checkedLink || null == t.props.valueLink) | |
| } | |
| function r(t) { | |
| n(t), u(null == t.props.value && null == t.props.onChange) | |
| } | |
| function o(t) { | |
| n(t), u(null == t.props.checked && null == t.props.onChange) | |
| } | |
| function i(t) { | |
| this.props.valueLink.requestChange(t.target.value) | |
| } | |
| function s(t) { | |
| this.props.checkedLink.requestChange(t.target.checked) | |
| } | |
| var a = t("./ReactPropTypes"), | |
| u = t("./invariant"), | |
| l = (t("./warning"), { | |
| Mixin: { | |
| propTypes: { | |
| value: function () {}, | |
| checked: function () {}, | |
| onChange: a.func | |
| } | |
| }, | |
| getValue: function (t) { | |
| return t.props.valueLink ? (r(t), t.props.valueLink.value) : t.props.value | |
| }, | |
| getChecked: function (t) { | |
| return t.props.checkedLink ? (o(t), t.props.checkedLink.value) : t.props.checked | |
| }, | |
| getOnChange: function (t) { | |
| return t.props.valueLink ? (r(t), i) : t.props.checkedLink ? (o(t), s) : t.props.onChange | |
| } | |
| }); | |
| e.exports = l | |
| }, { | |
| "./ReactPropTypes": 62, | |
| "./invariant": 110, | |
| "./warning": 131 | |
| } | |
| ], | |
| 22: [ | |
| function (t, e) { | |
| "use strict"; | |
| var n = t("./EventConstants"), | |
| r = t("./emptyFunction"), | |
| o = n.topLevelTypes, | |
| i = { | |
| eventTypes: null, | |
| extractEvents: function (t, e, n, i) { | |
| if (t === o.topTouchStart) { | |
| var s = i.target; | |
| s && !s.onclick && (s.onclick = r) | |
| } | |
| } | |
| }; | |
| e.exports = i | |
| }, { | |
| "./EventConstants": 14, | |
| "./emptyFunction": 94 | |
| } | |
| ], | |
| 23: [ | |
| function (t, e) { | |
| "use strict"; | |
| var n = t("./invariant"), | |
| r = function (t) { | |
| var e = this; | |
| if (e.instancePool.length) { | |
| var n = e.instancePool.pop(); | |
| return e.call(n, t), n | |
| } | |
| return new e(t) | |
| }, | |
| o = function (t, e) { | |
| var n = this; | |
| if (n.instancePool.length) { | |
| var r = n.instancePool.pop(); | |
| return n.call(r, t, e), r | |
| } | |
| return new n(t, e) | |
| }, | |
| i = function (t, e, n) { | |
| var r = this; | |
| if (r.instancePool.length) { | |
| var o = r.instancePool.pop(); | |
| return r.call(o, t, e, n), o | |
| } | |
| return new r(t, e, n) | |
| }, | |
| s = function (t, e, n, r, o) { | |
| var i = this; | |
| if (i.instancePool.length) { | |
| var s = i.instancePool.pop(); | |
| return i.call(s, t, e, n, r, o), s | |
| } | |
| return new i(t, e, n, r, o) | |
| }, | |
| a = function (t) { | |
| var e = this; | |
| n(t instanceof e), t.destructor && t.destructor(), e.instancePool.length < e.poolSize && e.instancePool.push(t) | |
| }, | |
| u = 10, | |
| l = r, | |
| c = function (t, e) { | |
| var n = t; | |
| return n.instancePool = [], n.getPooled = e || l, n.poolSize || (n.poolSize = u), n.release = a, n | |
| }, | |
| p = { | |
| addPoolingTo: c, | |
| oneArgumentPooler: r, | |
| twoArgumentPooler: o, | |
| threeArgumentPooler: i, | |
| fiveArgumentPooler: s | |
| }; | |
| e.exports = p | |
| }, { | |
| "./invariant": 110 | |
| } | |
| ], | |
| 24: [ | |
| function (t, e) { | |
| "use strict"; | |
| var n = t("./DOMPropertyOperations"), | |
| r = t("./EventPluginUtils"), | |
| o = t("./ReactChildren"), | |
| i = t("./ReactComponent"), | |
| s = t("./ReactCompositeComponent"), | |
| a = t("./ReactContext"), | |
| u = t("./ReactCurrentOwner"), | |
| l = t("./ReactDOM"), | |
| c = t("./ReactDOMComponent"), | |
| p = t("./ReactDefaultInjection"), | |
| d = t("./ReactInstanceHandles"), | |
| h = t("./ReactMount"), | |
| f = t("./ReactMultiChild"), | |
| m = t("./ReactPerf"), | |
| g = t("./ReactPropTypes"), | |
| v = t("./ReactServerRendering"), | |
| y = t("./ReactTextComponent"), | |
| w = t("./onlyChild"); | |
| p.inject(); | |
| var _ = { | |
| Children: { | |
| map: o.map, | |
| forEach: o.forEach, | |
| only: w | |
| }, | |
| DOM: l, | |
| PropTypes: g, | |
| initializeTouchEvents: function (t) { | |
| r.useTouchEvents = t | |
| }, | |
| createClass: s.createClass, | |
| constructAndRenderComponent: h.constructAndRenderComponent, | |
| constructAndRenderComponentByID: h.constructAndRenderComponentByID, | |
| renderComponent: m.measure("React", "renderComponent", h.renderComponent), | |
| renderComponentToString: v.renderComponentToString, | |
| renderComponentToStaticMarkup: v.renderComponentToStaticMarkup, | |
| unmountComponentAtNode: h.unmountComponentAtNode, | |
| isValidClass: s.isValidClass, | |
| isValidComponent: i.isValidComponent, | |
| withContext: a.withContext, | |
| __internals: { | |
| Component: i, | |
| CurrentOwner: u, | |
| DOMComponent: c, | |
| DOMPropertyOperations: n, | |
| InstanceHandles: d, | |
| Mount: h, | |
| MultiChild: f, | |
| TextComponent: y | |
| } | |
| }; | |
| _.version = "0.10.0", e.exports = _ | |
| }, { | |
| "./DOMPropertyOperations": 9, | |
| "./EventPluginUtils": 18, | |
| "./ReactChildren": 26, | |
| "./ReactComponent": 27, | |
| "./ReactCompositeComponent": 29, | |
| "./ReactContext": 30, | |
| "./ReactCurrentOwner": 31, | |
| "./ReactDOM": 32, | |
| "./ReactDOMComponent": 34, | |
| "./ReactDefaultInjection": 44, | |
| "./ReactInstanceHandles": 51, | |
| "./ReactMount": 53, | |
| "./ReactMultiChild": 55, | |
| "./ReactPerf": 58, | |
| "./ReactPropTypes": 62, | |
| "./ReactServerRendering": 66, | |
| "./ReactTextComponent": 68, | |
| "./onlyChild": 126 | |
| } | |
| ], | |
| 25: [ | |
| function (t, e) { | |
| "use strict"; | |
| var n = t("./ReactMount"), | |
| r = t("./invariant"), | |
| o = { | |
| getDOMNode: function () { | |
| return r(this.isMounted()), n.getNode(this._rootNodeID) | |
| } | |
| }; | |
| e.exports = o | |
| }, { | |
| "./ReactMount": 53, | |
| "./invariant": 110 | |
| } | |
| ], | |
| 26: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t, e) { | |
| this.forEachFunction = t, this.forEachContext = e | |
| } | |
| function r(t, e, n, r) { | |
| var o = t; | |
| o.forEachFunction.call(o.forEachContext, e, r) | |
| } | |
| function o(t, e, o) { | |
| if (null == t) return t; | |
| var i = n.getPooled(e, o); | |
| c(t, r, i), n.release(i) | |
| } | |
| function i(t, e, n) { | |
| this.mapResult = t, this.mapFunction = e, this.mapContext = n | |
| } | |
| function s(t, e, n, r) { | |
| var o = t, | |
| i = o.mapResult, | |
| s = o.mapFunction.call(o.mapContext, e, r); | |
| l(!i.hasOwnProperty(n)), i[n] = s | |
| } | |
| function a(t, e, n) { | |
| if (null == t) return t; | |
| var r = {}, | |
| o = i.getPooled(r, e, n); | |
| return c(t, s, o), i.release(o), r | |
| } | |
| var u = t("./PooledClass"), | |
| l = t("./invariant"), | |
| c = t("./traverseAllChildren"), | |
| p = u.twoArgumentPooler, | |
| d = u.threeArgumentPooler; | |
| u.addPoolingTo(n, p), u.addPoolingTo(i, d); | |
| var h = { | |
| forEach: o, | |
| map: a | |
| }; | |
| e.exports = h | |
| }, { | |
| "./PooledClass": 23, | |
| "./invariant": 110, | |
| "./traverseAllChildren": 130 | |
| } | |
| ], | |
| 27: [ | |
| function (t, e) { | |
| "use strict"; | |
| var n = t("./ReactCurrentOwner"), | |
| r = t("./ReactOwner"), | |
| o = t("./ReactUpdates"), | |
| i = t("./invariant"), | |
| s = t("./keyMirror"), | |
| a = t("./merge"), | |
| u = (t("./monitorCodeUse"), s({ | |
| MOUNTED: null, | |
| UNMOUNTED: null | |
| })), | |
| l = !1, | |
| c = null, | |
| p = null, | |
| d = { | |
| injection: { | |
| injectEnvironment: function (t) { | |
| i(!l), p = t.mountImageIntoNode, c = t.unmountIDFromEnvironment, d.BackendIDOperations = t.BackendIDOperations, d.ReactReconcileTransaction = t.ReactReconcileTransaction, l = !0 | |
| } | |
| }, | |
| isValidComponent: function (t) { | |
| if (!t || !t.type || !t.type.prototype) return !1; | |
| var e = t.type.prototype; | |
| return "function" == typeof e.mountComponentIntoNode && "function" == typeof e.receiveComponent | |
| }, | |
| LifeCycle: u, | |
| BackendIDOperations: null, | |
| ReactReconcileTransaction: null, | |
| Mixin: { | |
| isMounted: function () { | |
| return this._lifeCycleState === u.MOUNTED | |
| }, | |
| setProps: function (t, e) { | |
| this.replaceProps(a(this._pendingProps || this.props, t), e) | |
| }, | |
| replaceProps: function (t, e) { | |
| i(this.isMounted()), i(0 === this._mountDepth), this._pendingProps = t, o.enqueueUpdate(this, e) | |
| }, | |
| construct: function (t, e) { | |
| this.props = t || {}, this._owner = n.current, this._lifeCycleState = u.UNMOUNTED, this._pendingProps = null, this._pendingCallbacks = null, this._pendingOwner = this._owner; | |
| var r = arguments.length - 1; | |
| if (1 === r) this.props.children = e; | |
| else if (r > 1) { | |
| for (var o = Array(r), i = 0; r > i; i++) o[i] = arguments[i + 1]; | |
| this.props.children = o | |
| } | |
| }, | |
| mountComponent: function (t, e, n) { | |
| i(!this.isMounted()); | |
| var o = this.props; | |
| null != o.ref && r.addComponentAsRefTo(this, o.ref, this._owner), this._rootNodeID = t, this._lifeCycleState = u.MOUNTED, this._mountDepth = n | |
| }, | |
| unmountComponent: function () { | |
| i(this.isMounted()); | |
| var t = this.props; | |
| null != t.ref && r.removeComponentAsRefFrom(this, t.ref, this._owner), c(this._rootNodeID), this._rootNodeID = null, this._lifeCycleState = u.UNMOUNTED | |
| }, | |
| receiveComponent: function (t, e) { | |
| i(this.isMounted()), this._pendingOwner = t._owner, this._pendingProps = t.props, this._performUpdateIfNecessary(e) | |
| }, | |
| performUpdateIfNecessary: function () { | |
| var t = d.ReactReconcileTransaction.getPooled(); | |
| t.perform(this._performUpdateIfNecessary, this, t), d.ReactReconcileTransaction.release(t) | |
| }, | |
| _performUpdateIfNecessary: function (t) { | |
| if (null != this._pendingProps) { | |
| var e = this.props, | |
| n = this._owner; | |
| this.props = this._pendingProps, this._owner = this._pendingOwner, this._pendingProps = null, this.updateComponent(t, e, n) | |
| } | |
| }, | |
| updateComponent: function (t, e, n) { | |
| var o = this.props; | |
| (this._owner !== n || o.ref !== e.ref) && (null != e.ref && r.removeComponentAsRefFrom(this, e.ref, n), null != o.ref && r.addComponentAsRefTo(this, o.ref, this._owner)) | |
| }, | |
| mountComponentIntoNode: function (t, e, n) { | |
| var r = d.ReactReconcileTransaction.getPooled(); | |
| r.perform(this._mountComponentIntoNode, this, t, e, r, n), d.ReactReconcileTransaction.release(r) | |
| }, | |
| _mountComponentIntoNode: function (t, e, n, r) { | |
| var o = this.mountComponent(t, n, 0); | |
| p(o, e, r) | |
| }, | |
| isOwnedBy: function (t) { | |
| return this._owner === t | |
| }, | |
| getSiblingByRef: function (t) { | |
| var e = this._owner; | |
| return e && e.refs ? e.refs[t] : null | |
| } | |
| } | |
| }; | |
| e.exports = d | |
| }, { | |
| "./ReactCurrentOwner": 31, | |
| "./ReactOwner": 57, | |
| "./ReactUpdates": 69, | |
| "./invariant": 110, | |
| "./keyMirror": 116, | |
| "./merge": 119, | |
| "./monitorCodeUse": 123 | |
| } | |
| ], | |
| 28: [ | |
| function (t, e) { | |
| "use strict"; | |
| var n = t("./ReactDOMIDOperations"), | |
| r = t("./ReactMarkupChecksum"), | |
| o = t("./ReactMount"), | |
| i = t("./ReactPerf"), | |
| s = t("./ReactReconcileTransaction"), | |
| a = t("./getReactRootElementInContainer"), | |
| u = t("./invariant"), | |
| l = 1, | |
| c = 9, | |
| p = { | |
| ReactReconcileTransaction: s, | |
| BackendIDOperations: n, | |
| unmountIDFromEnvironment: function (t) { | |
| o.purgeID(t) | |
| }, | |
| mountImageIntoNode: i.measure("ReactComponentBrowserEnvironment", "mountImageIntoNode", function (t, e, n) { | |
| if (u(e && (e.nodeType === l || e.nodeType === c)), n) { | |
| if (r.canReuseMarkup(t, a(e))) return; | |
| u(e.nodeType !== c) | |
| } | |
| u(e.nodeType !== c), e.innerHTML = t | |
| }) | |
| }; | |
| e.exports = p | |
| }, { | |
| "./ReactDOMIDOperations": 36, | |
| "./ReactMarkupChecksum": 52, | |
| "./ReactMount": 53, | |
| "./ReactPerf": 58, | |
| "./ReactReconcileTransaction": 64, | |
| "./getReactRootElementInContainer": 105, | |
| "./invariant": 110 | |
| } | |
| ], | |
| 29: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t, e) { | |
| for (var n in e) e.hasOwnProperty(n) && b("function" == typeof e[n]) | |
| } | |
| function r(t, e) { | |
| var n = R[e]; | |
| O.hasOwnProperty(e) && b(n === P.OVERRIDE_BASE), t.hasOwnProperty(e) && b(n === P.DEFINE_MANY || n === P.DEFINE_MANY_MERGED) | |
| } | |
| function o(t) { | |
| var e = t._compositeLifeCycleState; | |
| b(t.isMounted() || e === N.MOUNTING), b(e !== N.RECEIVING_STATE), b(e !== N.UNMOUNTING) | |
| } | |
| function i(t, e) { | |
| b(!c(e)), b(!p.isValidComponent(e)); | |
| var n = t.componentConstructor, | |
| o = n.prototype; | |
| for (var i in e) { | |
| var s = e[i]; | |
| if (e.hasOwnProperty(i)) | |
| if (r(o, i), M.hasOwnProperty(i)) M[i](t, s); | |
| else { | |
| var a = i in R, | |
| d = i in o, | |
| h = s && s.__reactDontBind, | |
| f = "function" == typeof s, | |
| m = f && !a && !d && !h; | |
| m ? (o.__reactAutoBindMap || (o.__reactAutoBindMap = {}), o.__reactAutoBindMap[i] = s, o[i] = s) : o[i] = d ? R[i] === P.DEFINE_MANY_MERGED ? u(o[i], s) : l(o[i], s) : s | |
| } | |
| } | |
| } | |
| function s(t, e) { | |
| if (e) | |
| for (var n in e) { | |
| var r = e[n]; | |
| if (!e.hasOwnProperty(n)) return; | |
| var o = n in t, | |
| i = r; | |
| if (o) { | |
| var s = t[n], | |
| a = typeof s, | |
| u = typeof r; | |
| b("function" === a && "function" === u), i = l(s, r) | |
| } | |
| t[n] = i, t.componentConstructor[n] = i | |
| } | |
| } | |
| function a(t, e) { | |
| return b(t && e && "object" == typeof t && "object" == typeof e), C(e, function (e, n) { | |
| b(void 0 === t[n]), t[n] = e | |
| }), t | |
| } | |
| function u(t, e) { | |
| return function () { | |
| var n = t.apply(this, arguments), | |
| r = e.apply(this, arguments); | |
| return null == n ? r : null == r ? n : a(n, r) | |
| } | |
| } | |
| function l(t, e) { | |
| return function () { | |
| t.apply(this, arguments), e.apply(this, arguments) | |
| } | |
| } | |
| function c(t) { | |
| return t instanceof Function && "componentConstructor" in t && t.componentConstructor instanceof Function | |
| } | |
| var p = t("./ReactComponent"), | |
| d = t("./ReactContext"), | |
| h = t("./ReactCurrentOwner"), | |
| f = t("./ReactErrorUtils"), | |
| m = t("./ReactOwner"), | |
| g = t("./ReactPerf"), | |
| v = t("./ReactPropTransferer"), | |
| y = t("./ReactPropTypeLocations"), | |
| w = (t("./ReactPropTypeLocationNames"), t("./ReactUpdates")), | |
| _ = t("./instantiateReactComponent"), | |
| b = t("./invariant"), | |
| x = t("./keyMirror"), | |
| k = t("./merge"), | |
| T = t("./mixInto"), | |
| C = (t("./monitorCodeUse"), t("./objMap")), | |
| E = t("./shouldUpdateReactComponent"), | |
| P = (t("./warning"), x({ | |
| DEFINE_ONCE: null, | |
| DEFINE_MANY: null, | |
| OVERRIDE_BASE: null, | |
| DEFINE_MANY_MERGED: null | |
| })), | |
| S = [], | |
| R = { | |
| mixins: P.DEFINE_MANY, | |
| statics: P.DEFINE_MANY, | |
| propTypes: P.DEFINE_MANY, | |
| contextTypes: P.DEFINE_MANY, | |
| childContextTypes: P.DEFINE_MANY, | |
| getDefaultProps: P.DEFINE_MANY_MERGED, | |
| getInitialState: P.DEFINE_MANY_MERGED, | |
| getChildContext: P.DEFINE_MANY_MERGED, | |
| render: P.DEFINE_ONCE, | |
| componentWillMount: P.DEFINE_MANY, | |
| componentDidMount: P.DEFINE_MANY, | |
| componentWillReceiveProps: P.DEFINE_MANY, | |
| shouldComponentUpdate: P.DEFINE_ONCE, | |
| componentWillUpdate: P.DEFINE_MANY, | |
| componentDidUpdate: P.DEFINE_MANY, | |
| componentWillUnmount: P.DEFINE_MANY, | |
| updateComponent: P.OVERRIDE_BASE | |
| }, | |
| M = { | |
| displayName: function (t, e) { | |
| t.componentConstructor.displayName = e | |
| }, | |
| mixins: function (t, e) { | |
| if (e) | |
| for (var n = 0; n < e.length; n++) i(t, e[n]) | |
| }, | |
| childContextTypes: function (t, e) { | |
| var r = t.componentConstructor; | |
| n(r, e, y.childContext), r.childContextTypes = k(r.childContextTypes, e) | |
| }, | |
| contextTypes: function (t, e) { | |
| var r = t.componentConstructor; | |
| n(r, e, y.context), r.contextTypes = k(r.contextTypes, e) | |
| }, | |
| propTypes: function (t, e) { | |
| var r = t.componentConstructor; | |
| n(r, e, y.prop), r.propTypes = k(r.propTypes, e) | |
| }, | |
| statics: function (t, e) { | |
| s(t, e) | |
| } | |
| }, | |
| N = x({ | |
| MOUNTING: null, | |
| UNMOUNTING: null, | |
| RECEIVING_PROPS: null, | |
| RECEIVING_STATE: null | |
| }), | |
| O = { | |
| construct: function () { | |
| p.Mixin.construct.apply(this, arguments), m.Mixin.construct.apply(this, arguments), this.state = null, this._pendingState = null, this.context = null, this._currentContext = d.current, this._pendingContext = null, this._descriptor = null, this._compositeLifeCycleState = null | |
| }, | |
| toJSON: function () { | |
| return { | |
| type: this.type, | |
| props: this.props | |
| } | |
| }, | |
| isMounted: function () { | |
| return p.Mixin.isMounted.call(this) && this._compositeLifeCycleState !== N.MOUNTING | |
| }, | |
| mountComponent: g.measure("ReactCompositeComponent", "mountComponent", function (t, e, n) { | |
| p.Mixin.mountComponent.call(this, t, e, n), this._compositeLifeCycleState = N.MOUNTING, this.context = this._processContext(this._currentContext), this._defaultProps = this.getDefaultProps ? this.getDefaultProps() : null, this.props = this._processProps(this.props), this.__reactAutoBindMap && this._bindAutoBindMethods(), this.state = this.getInitialState ? this.getInitialState() : null, b("object" == typeof this.state && !Array.isArray(this.state)), this._pendingState = null, this._pendingForceUpdate = !1, this.componentWillMount && (this.componentWillMount(), this._pendingState && (this.state = this._pendingState, this._pendingState = null)), this._renderedComponent = _(this._renderValidatedComponent()), this._compositeLifeCycleState = null; | |
| var r = this._renderedComponent.mountComponent(t, e, n + 1); | |
| return this.componentDidMount && e.getReactMountReady().enqueue(this, this.componentDidMount), r | |
| }), | |
| unmountComponent: function () { | |
| this._compositeLifeCycleState = N.UNMOUNTING, this.componentWillUnmount && this.componentWillUnmount(), this._compositeLifeCycleState = null, this._defaultProps = null, this._renderedComponent.unmountComponent(), this._renderedComponent = null, p.Mixin.unmountComponent.call(this) | |
| }, | |
| setState: function (t, e) { | |
| b("object" == typeof t || null == t), this.replaceState(k(this._pendingState || this.state, t), e) | |
| }, | |
| replaceState: function (t, e) { | |
| o(this), this._pendingState = t, w.enqueueUpdate(this, e) | |
| }, | |
| _processContext: function (t) { | |
| var e = null, | |
| n = this.constructor.contextTypes; | |
| if (n) { | |
| e = {}; | |
| for (var r in n) e[r] = t[r] | |
| } | |
| return e | |
| }, | |
| _processChildContext: function (t) { | |
| var e = this.getChildContext && this.getChildContext(); | |
| if (this.constructor.displayName || "ReactCompositeComponent", e) { | |
| b("object" == typeof this.constructor.childContextTypes); | |
| for (var n in e) b(n in this.constructor.childContextTypes); | |
| return k(t, e) | |
| } | |
| return t | |
| }, | |
| _processProps: function (t) { | |
| var e = k(t), | |
| n = this._defaultProps; | |
| for (var r in n) "undefined" == typeof e[r] && (e[r] = n[r]); | |
| return e | |
| }, | |
| _checkPropTypes: function (t, e, n) { | |
| var r = this.constructor.displayName; | |
| for (var o in t) t.hasOwnProperty(o) && t[o](e, o, r, n) | |
| }, | |
| performUpdateIfNecessary: function () { | |
| var t = this._compositeLifeCycleState; | |
| t !== N.MOUNTING && t !== N.RECEIVING_PROPS && p.Mixin.performUpdateIfNecessary.call(this) | |
| }, | |
| _performUpdateIfNecessary: function (t) { | |
| if (null != this._pendingProps || null != this._pendingState || null != this._pendingContext || this._pendingForceUpdate) { | |
| var e = this._pendingContext || this._currentContext, | |
| n = this._processContext(e); | |
| this._pendingContext = null; | |
| var r = this.props; | |
| null != this._pendingProps && (r = this._processProps(this._pendingProps), this._pendingProps = null, this._compositeLifeCycleState = N.RECEIVING_PROPS, this.componentWillReceiveProps && this.componentWillReceiveProps(r, n)), this._compositeLifeCycleState = N.RECEIVING_STATE; | |
| var o = this._pendingOwner, | |
| i = this._pendingState || this.state; | |
| this._pendingState = null; | |
| try { | |
| this._pendingForceUpdate || !this.shouldComponentUpdate || this.shouldComponentUpdate(r, i, n) ? (this._pendingForceUpdate = !1, this._performComponentUpdate(r, o, i, e, n, t)) : (this.props = r, this._owner = o, this.state = i, this._currentContext = e, this.context = n) | |
| } finally { | |
| this._compositeLifeCycleState = null | |
| } | |
| } | |
| }, | |
| _performComponentUpdate: function (t, e, n, r, o, i) { | |
| var s = this.props, | |
| a = this._owner, | |
| u = this.state, | |
| l = this.context; | |
| this.componentWillUpdate && this.componentWillUpdate(t, n, o), this.props = t, this._owner = e, this.state = n, this._currentContext = r, this.context = o, this.updateComponent(i, s, a, u, l), this.componentDidUpdate && i.getReactMountReady().enqueue(this, this.componentDidUpdate.bind(this, s, u, l)) | |
| }, | |
| receiveComponent: function (t, e) { | |
| t !== this._descriptor && (this._descriptor = t, this._pendingContext = t._currentContext, p.Mixin.receiveComponent.call(this, t, e)) | |
| }, | |
| updateComponent: g.measure("ReactCompositeComponent", "updateComponent", function (t, e, n) { | |
| p.Mixin.updateComponent.call(this, t, e, n); | |
| var r = this._renderedComponent, | |
| o = this._renderValidatedComponent(); | |
| if (E(r, o)) r.receiveComponent(o, t); | |
| else { | |
| var i = this._rootNodeID, | |
| s = r._rootNodeID; | |
| r.unmountComponent(), this._renderedComponent = _(o); | |
| var a = this._renderedComponent.mountComponent(i, t, this._mountDepth + 1); | |
| p.BackendIDOperations.dangerouslyReplaceNodeWithMarkupByID(s, a) | |
| } | |
| }), | |
| forceUpdate: function (t) { | |
| var e = this._compositeLifeCycleState; | |
| b(this.isMounted() || e === N.MOUNTING), b(e !== N.RECEIVING_STATE && e !== N.UNMOUNTING), this._pendingForceUpdate = !0, w.enqueueUpdate(this, t) | |
| }, | |
| _renderValidatedComponent: g.measure("ReactCompositeComponent", "_renderValidatedComponent", function () { | |
| var t, e = d.current; | |
| d.current = this._processChildContext(this._currentContext), h.current = this; | |
| try { | |
| t = this.render() | |
| } finally { | |
| d.current = e, h.current = null | |
| } | |
| return b(p.isValidComponent(t)), t | |
| }), | |
| _bindAutoBindMethods: function () { | |
| for (var t in this.__reactAutoBindMap) | |
| if (this.__reactAutoBindMap.hasOwnProperty(t)) { | |
| var e = this.__reactAutoBindMap[t]; | |
| this[t] = this._bindAutoBindMethod(f.guard(e, this.constructor.displayName + "." + t)) | |
| } | |
| }, | |
| _bindAutoBindMethod: function (t) { | |
| var e = this, | |
| n = function () { | |
| return t.apply(e, arguments) | |
| }; | |
| return n | |
| } | |
| }, | |
| F = function () {}; | |
| T(F, p.Mixin), T(F, m.Mixin), T(F, v.Mixin), T(F, O); | |
| var A = { | |
| LifeCycle: N, | |
| Base: F, | |
| createClass: function (t) { | |
| var e = function () {}; | |
| e.prototype = new F, e.prototype.constructor = e; | |
| var n = e, | |
| r = function () { | |
| var t = new n; | |
| return t.construct.apply(t, arguments), t | |
| }; | |
| r.componentConstructor = e, e.ConvenienceConstructor = r, r.originalSpec = t, S.forEach(i.bind(null, r)), i(r, t), b(e.prototype.render), r.type = e, e.prototype.type = e; | |
| for (var o in R) e.prototype[o] || (e.prototype[o] = null); | |
| return r | |
| }, | |
| isValidClass: c, | |
| injection: { | |
| injectMixin: function (t) { | |
| S.push(t) | |
| } | |
| } | |
| }; | |
| e.exports = A | |
| }, { | |
| "./ReactComponent": 27, | |
| "./ReactContext": 30, | |
| "./ReactCurrentOwner": 31, | |
| "./ReactErrorUtils": 45, | |
| "./ReactOwner": 57, | |
| "./ReactPerf": 58, | |
| "./ReactPropTransferer": 59, | |
| "./ReactPropTypeLocationNames": 60, | |
| "./ReactPropTypeLocations": 61, | |
| "./ReactUpdates": 69, | |
| "./instantiateReactComponent": 109, | |
| "./invariant": 110, | |
| "./keyMirror": 116, | |
| "./merge": 119, | |
| "./mixInto": 122, | |
| "./monitorCodeUse": 123, | |
| "./objMap": 124, | |
| "./shouldUpdateReactComponent": 128, | |
| "./warning": 131 | |
| } | |
| ], | |
| 30: [ | |
| function (t, e) { | |
| "use strict"; | |
| var n = t("./merge"), | |
| r = { | |
| current: {}, | |
| withContext: function (t, e) { | |
| var o, i = r.current; | |
| r.current = n(i, t); | |
| try { | |
| o = e() | |
| } finally { | |
| r.current = i | |
| } | |
| return o | |
| } | |
| }; | |
| e.exports = r | |
| }, { | |
| "./merge": 119 | |
| } | |
| ], | |
| 31: [ | |
| function (t, e) { | |
| "use strict"; | |
| var n = { | |
| current: null | |
| }; | |
| e.exports = n | |
| }, {} | |
| ], | |
| 32: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t, e) { | |
| var n = function () {}; | |
| n.prototype = new r(t, e), n.prototype.constructor = n, n.displayName = t; | |
| var o = function () { | |
| var t = new n; | |
| return t.construct.apply(t, arguments), t | |
| }; | |
| return o.type = n, n.prototype.type = n, n.ConvenienceConstructor = o, o.componentConstructor = n, o | |
| } | |
| var r = t("./ReactDOMComponent"), | |
| o = t("./mergeInto"), | |
| i = t("./objMapKeyVal"), | |
| s = i({ | |
| a: !1, | |
| abbr: !1, | |
| address: !1, | |
| area: !0, | |
| article: !1, | |
| aside: !1, | |
| audio: !1, | |
| b: !1, | |
| base: !0, | |
| bdi: !1, | |
| bdo: !1, | |
| big: !1, | |
| blockquote: !1, | |
| body: !1, | |
| br: !0, | |
| button: !1, | |
| canvas: !1, | |
| caption: !1, | |
| cite: !1, | |
| code: !1, | |
| col: !0, | |
| colgroup: !1, | |
| data: !1, | |
| datalist: !1, | |
| dd: !1, | |
| del: !1, | |
| details: !1, | |
| dfn: !1, | |
| div: !1, | |
| dl: !1, | |
| dt: !1, | |
| em: !1, | |
| embed: !0, | |
| fieldset: !1, | |
| figcaption: !1, | |
| figure: !1, | |
| footer: !1, | |
| form: !1, | |
| h1: !1, | |
| h2: !1, | |
| h3: !1, | |
| h4: !1, | |
| h5: !1, | |
| h6: !1, | |
| head: !1, | |
| header: !1, | |
| hr: !0, | |
| html: !1, | |
| i: !1, | |
| iframe: !1, | |
| img: !0, | |
| input: !0, | |
| ins: !1, | |
| kbd: !1, | |
| keygen: !0, | |
| label: !1, | |
| legend: !1, | |
| li: !1, | |
| link: !0, | |
| main: !1, | |
| map: !1, | |
| mark: !1, | |
| menu: !1, | |
| menuitem: !1, | |
| meta: !0, | |
| meter: !1, | |
| nav: !1, | |
| noscript: !1, | |
| object: !1, | |
| ol: !1, | |
| optgroup: !1, | |
| option: !1, | |
| output: !1, | |
| p: !1, | |
| param: !0, | |
| pre: !1, | |
| progress: !1, | |
| q: !1, | |
| rp: !1, | |
| rt: !1, | |
| ruby: !1, | |
| s: !1, | |
| samp: !1, | |
| script: !1, | |
| section: !1, | |
| select: !1, | |
| small: !1, | |
| source: !0, | |
| span: !1, | |
| strong: !1, | |
| style: !1, | |
| sub: !1, | |
| summary: !1, | |
| sup: !1, | |
| table: !1, | |
| tbody: !1, | |
| td: !1, | |
| textarea: !1, | |
| tfoot: !1, | |
| th: !1, | |
| thead: !1, | |
| time: !1, | |
| title: !1, | |
| tr: !1, | |
| track: !0, | |
| u: !1, | |
| ul: !1, | |
| "var": !1, | |
| video: !1, | |
| wbr: !0, | |
| circle: !1, | |
| defs: !1, | |
| g: !1, | |
| line: !1, | |
| linearGradient: !1, | |
| path: !1, | |
| polygon: !1, | |
| polyline: !1, | |
| radialGradient: !1, | |
| rect: !1, | |
| stop: !1, | |
| svg: !1, | |
| text: !1 | |
| }, n), | |
| a = { | |
| injectComponentClasses: function (t) { | |
| o(s, t) | |
| } | |
| }; | |
| s.injection = a, e.exports = s | |
| }, { | |
| "./ReactDOMComponent": 34, | |
| "./mergeInto": 121, | |
| "./objMapKeyVal": 125 | |
| } | |
| ], | |
| 33: [ | |
| function (t, e) { | |
| "use strict"; | |
| var n = t("./AutoFocusMixin"), | |
| r = t("./ReactBrowserComponentMixin"), | |
| o = t("./ReactCompositeComponent"), | |
| i = t("./ReactDOM"), | |
| s = t("./keyMirror"), | |
| a = i.button, | |
| u = s({ | |
| onClick: !0, | |
| onDoubleClick: !0, | |
| onMouseDown: !0, | |
| onMouseMove: !0, | |
| onMouseUp: !0, | |
| onClickCapture: !0, | |
| onDoubleClickCapture: !0, | |
| onMouseDownCapture: !0, | |
| onMouseMoveCapture: !0, | |
| onMouseUpCapture: !0 | |
| }), | |
| l = o.createClass({ | |
| displayName: "ReactDOMButton", | |
| mixins: [n, r], | |
| render: function () { | |
| var t = {}; | |
| for (var e in this.props)!this.props.hasOwnProperty(e) || this.props.disabled && u[e] || (t[e] = this.props[e]); | |
| return a(t, this.props.children) | |
| } | |
| }); | |
| e.exports = l | |
| }, { | |
| "./AutoFocusMixin": 1, | |
| "./ReactBrowserComponentMixin": 25, | |
| "./ReactCompositeComponent": 29, | |
| "./ReactDOM": 32, | |
| "./keyMirror": 116 | |
| } | |
| ], | |
| 34: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t) { | |
| t && (m(null == t.children || null == t.dangerouslySetInnerHTML), m(null == t.style || "object" == typeof t.style)) | |
| } | |
| function r(t, e, n, r) { | |
| var o = p.findReactContainerForID(t); | |
| if (o) { | |
| var i = o.nodeType === T ? o.ownerDocument : o; | |
| _(e, i) | |
| } | |
| r.getPutListenerQueue().enqueuePutListener(t, e, n) | |
| } | |
| function o(t, e) { | |
| this._tagOpen = "<" + t, this._tagClose = e ? "" : "</" + t + ">", this.tagName = t.toUpperCase() | |
| } | |
| var i = t("./CSSPropertyOperations"), | |
| s = t("./DOMProperty"), | |
| a = t("./DOMPropertyOperations"), | |
| u = t("./ReactBrowserComponentMixin"), | |
| l = t("./ReactComponent"), | |
| c = t("./ReactEventEmitter"), | |
| p = t("./ReactMount"), | |
| d = t("./ReactMultiChild"), | |
| h = t("./ReactPerf"), | |
| f = t("./escapeTextForBrowser"), | |
| m = t("./invariant"), | |
| g = t("./keyOf"), | |
| v = t("./merge"), | |
| y = t("./mixInto"), | |
| w = c.deleteListener, | |
| _ = c.listenTo, | |
| b = c.registrationNameModules, | |
| x = { | |
| string: !0, | |
| number: !0 | |
| }, | |
| k = g({ | |
| style: null | |
| }), | |
| T = 1; | |
| o.Mixin = { | |
| mountComponent: h.measure("ReactDOMComponent", "mountComponent", function (t, e, r) { | |
| return l.Mixin.mountComponent.call(this, t, e, r), n(this.props), this._createOpenTagMarkupAndPutListeners(e) + this._createContentMarkup(e) + this._tagClose | |
| }), | |
| _createOpenTagMarkupAndPutListeners: function (t) { | |
| var e = this.props, | |
| n = this._tagOpen; | |
| for (var o in e) | |
| if (e.hasOwnProperty(o)) { | |
| var s = e[o]; | |
| if (null != s) | |
| if (b[o]) r(this._rootNodeID, o, s, t); | |
| else { | |
| o === k && (s && (s = e.style = v(e.style)), s = i.createMarkupForStyles(s)); | |
| var u = a.createMarkupForProperty(o, s); | |
| u && (n += " " + u) | |
| } | |
| } | |
| if (t.renderToStaticMarkup) return n + ">"; | |
| var l = a.createMarkupForID(this._rootNodeID); | |
| return n + " " + l + ">" | |
| }, | |
| _createContentMarkup: function (t) { | |
| var e = this.props.dangerouslySetInnerHTML; | |
| if (null != e) { | |
| if (null != e.__html) return e.__html | |
| } else { | |
| var n = x[typeof this.props.children] ? this.props.children : null, | |
| r = null != n ? null : this.props.children; | |
| if (null != n) return f(n); | |
| if (null != r) { | |
| var o = this.mountChildren(r, t); | |
| return o.join("") | |
| } | |
| } | |
| return "" | |
| }, | |
| receiveComponent: function (t, e) { | |
| t !== this && (n(t.props), l.Mixin.receiveComponent.call(this, t, e)) | |
| }, | |
| updateComponent: h.measure("ReactDOMComponent", "updateComponent", function (t, e, n) { | |
| l.Mixin.updateComponent.call(this, t, e, n), this._updateDOMProperties(e, t), this._updateDOMChildren(e, t) | |
| }), | |
| _updateDOMProperties: function (t, e) { | |
| var n, o, i, a = this.props; | |
| for (n in t) | |
| if (!a.hasOwnProperty(n) && t.hasOwnProperty(n)) | |
| if (n === k) { | |
| var u = t[n]; | |
| for (o in u) u.hasOwnProperty(o) && (i = i || {}, i[o] = "") | |
| } else b[n] ? w(this._rootNodeID, n) : (s.isStandardName[n] || s.isCustomAttribute(n)) && l.BackendIDOperations.deletePropertyByID(this._rootNodeID, n); | |
| for (n in a) { | |
| var c = a[n], | |
| p = t[n]; | |
| if (a.hasOwnProperty(n) && c !== p) | |
| if (n === k) | |
| if (c && (c = a.style = v(c)), p) { | |
| for (o in p) p.hasOwnProperty(o) && !c.hasOwnProperty(o) && (i = i || {}, i[o] = ""); | |
| for (o in c) c.hasOwnProperty(o) && p[o] !== c[o] && (i = i || {}, i[o] = c[o]) | |
| } else i = c; | |
| else b[n] ? r(this._rootNodeID, n, c, e) : (s.isStandardName[n] || s.isCustomAttribute(n)) && l.BackendIDOperations.updatePropertyByID(this._rootNodeID, n, c) | |
| } | |
| i && l.BackendIDOperations.updateStylesByID(this._rootNodeID, i) | |
| }, | |
| _updateDOMChildren: function (t, e) { | |
| var n = this.props, | |
| r = x[typeof t.children] ? t.children : null, | |
| o = x[typeof n.children] ? n.children : null, | |
| i = t.dangerouslySetInnerHTML && t.dangerouslySetInnerHTML.__html, | |
| s = n.dangerouslySetInnerHTML && n.dangerouslySetInnerHTML.__html, | |
| a = null != r ? null : t.children, | |
| u = null != o ? null : n.children, | |
| c = null != r || null != i, | |
| p = null != o || null != s; | |
| null != a && null == u ? this.updateChildren(null, e) : c && !p && this.updateTextContent(""), null != o ? r !== o && this.updateTextContent("" + o) : null != s ? i !== s && l.BackendIDOperations.updateInnerHTMLByID(this._rootNodeID, s) : null != u && this.updateChildren(u, e) | |
| }, | |
| unmountComponent: function () { | |
| this.unmountChildren(), c.deleteAllListeners(this._rootNodeID), l.Mixin.unmountComponent.call(this) | |
| } | |
| }, y(o, l.Mixin), y(o, o.Mixin), y(o, d.Mixin), y(o, u), e.exports = o | |
| }, { | |
| "./CSSPropertyOperations": 3, | |
| "./DOMProperty": 8, | |
| "./DOMPropertyOperations": 9, | |
| "./ReactBrowserComponentMixin": 25, | |
| "./ReactComponent": 27, | |
| "./ReactEventEmitter": 46, | |
| "./ReactMount": 53, | |
| "./ReactMultiChild": 55, | |
| "./ReactPerf": 58, | |
| "./escapeTextForBrowser": 96, | |
| "./invariant": 110, | |
| "./keyOf": 117, | |
| "./merge": 119, | |
| "./mixInto": 122 | |
| } | |
| ], | |
| 35: [ | |
| function (t, e) { | |
| "use strict"; | |
| var n = t("./ReactBrowserComponentMixin"), | |
| r = t("./ReactCompositeComponent"), | |
| o = t("./ReactDOM"), | |
| i = t("./ReactEventEmitter"), | |
| s = t("./EventConstants"), | |
| a = o.form, | |
| u = r.createClass({ | |
| displayName: "ReactDOMForm", | |
| mixins: [n], | |
| render: function () { | |
| return this.transferPropsTo(a(null, this.props.children)) | |
| }, | |
| componentDidMount: function () { | |
| i.trapBubbledEvent(s.topLevelTypes.topReset, "reset", this.getDOMNode()), i.trapBubbledEvent(s.topLevelTypes.topSubmit, "submit", this.getDOMNode()) | |
| } | |
| }); | |
| e.exports = u | |
| }, { | |
| "./EventConstants": 14, | |
| "./ReactBrowserComponentMixin": 25, | |
| "./ReactCompositeComponent": 29, | |
| "./ReactDOM": 32, | |
| "./ReactEventEmitter": 46 | |
| } | |
| ], | |
| 36: [ | |
| function (t, e) { | |
| "use strict"; | |
| var n, r = t("./CSSPropertyOperations"), | |
| o = t("./DOMChildrenOperations"), | |
| i = t("./DOMPropertyOperations"), | |
| s = t("./ReactMount"), | |
| a = t("./ReactPerf"), | |
| u = t("./invariant"), | |
| l = { | |
| dangerouslySetInnerHTML: "`dangerouslySetInnerHTML` must be set using `updateInnerHTMLByID()`.", | |
| style: "`style` must be set using `updateStylesByID()`." | |
| }, | |
| c = { | |
| updatePropertyByID: a.measure("ReactDOMIDOperations", "updatePropertyByID", function (t, e, n) { | |
| var r = s.getNode(t); | |
| u(!l.hasOwnProperty(e)), null != n ? i.setValueForProperty(r, e, n) : i.deleteValueForProperty(r, e) | |
| }), | |
| deletePropertyByID: a.measure("ReactDOMIDOperations", "deletePropertyByID", function (t, e, n) { | |
| var r = s.getNode(t); | |
| u(!l.hasOwnProperty(e)), i.deleteValueForProperty(r, e, n) | |
| }), | |
| updateStylesByID: a.measure("ReactDOMIDOperations", "updateStylesByID", function (t, e) { | |
| var n = s.getNode(t); | |
| r.setValueForStyles(n, e) | |
| }), | |
| updateInnerHTMLByID: a.measure("ReactDOMIDOperations", "updateInnerHTMLByID", function (t, e) { | |
| var r = s.getNode(t); | |
| if (void 0 === n) { | |
| var o = document.createElement("div"); | |
| o.innerHTML = " ", n = "" === o.innerHTML | |
| } | |
| n && r.parentNode.replaceChild(r, r), n && e.match(/^[ \r\n\t\f]/) ? (r.innerHTML = "" + e, r.firstChild.deleteData(0, 1)) : r.innerHTML = e | |
| }), | |
| updateTextContentByID: a.measure("ReactDOMIDOperations", "updateTextContentByID", function (t, e) { | |
| var n = s.getNode(t); | |
| o.updateTextContent(n, e) | |
| }), | |
| dangerouslyReplaceNodeWithMarkupByID: a.measure("ReactDOMIDOperations", "dangerouslyReplaceNodeWithMarkupByID", function (t, e) { | |
| var n = s.getNode(t); | |
| o.dangerouslyReplaceNodeWithMarkup(n, e) | |
| }), | |
| dangerouslyProcessChildrenUpdates: a.measure("ReactDOMIDOperations", "dangerouslyProcessChildrenUpdates", function (t, e) { | |
| for (var n = 0; n < t.length; n++) t[n].parentNode = s.getNode(t[n].parentID); | |
| o.processUpdates(t, e) | |
| }) | |
| }; | |
| e.exports = c | |
| }, { | |
| "./CSSPropertyOperations": 3, | |
| "./DOMChildrenOperations": 7, | |
| "./DOMPropertyOperations": 9, | |
| "./ReactMount": 53, | |
| "./ReactPerf": 58, | |
| "./invariant": 110 | |
| } | |
| ], | |
| 37: [ | |
| function (t, e) { | |
| "use strict"; | |
| var n = t("./ReactBrowserComponentMixin"), | |
| r = t("./ReactCompositeComponent"), | |
| o = t("./ReactDOM"), | |
| i = t("./ReactEventEmitter"), | |
| s = t("./EventConstants"), | |
| a = o.img, | |
| u = r.createClass({ | |
| displayName: "ReactDOMImg", | |
| tagName: "IMG", | |
| mixins: [n], | |
| render: function () { | |
| return a(this.props) | |
| }, | |
| componentDidMount: function () { | |
| var t = this.getDOMNode(); | |
| i.trapBubbledEvent(s.topLevelTypes.topLoad, "load", t), i.trapBubbledEvent(s.topLevelTypes.topError, "error", t) | |
| } | |
| }); | |
| e.exports = u | |
| }, { | |
| "./EventConstants": 14, | |
| "./ReactBrowserComponentMixin": 25, | |
| "./ReactCompositeComponent": 29, | |
| "./ReactDOM": 32, | |
| "./ReactEventEmitter": 46 | |
| } | |
| ], | |
| 38: [ | |
| function (t, e) { | |
| "use strict"; | |
| var n = t("./AutoFocusMixin"), | |
| r = t("./DOMPropertyOperations"), | |
| o = t("./LinkedValueUtils"), | |
| i = t("./ReactBrowserComponentMixin"), | |
| s = t("./ReactCompositeComponent"), | |
| a = t("./ReactDOM"), | |
| u = t("./ReactMount"), | |
| l = t("./invariant"), | |
| c = t("./merge"), | |
| p = a.input, | |
| d = {}, | |
| h = s.createClass({ | |
| displayName: "ReactDOMInput", | |
| mixins: [n, o.Mixin, i], | |
| getInitialState: function () { | |
| var t = this.props.defaultValue; | |
| return { | |
| checked: this.props.defaultChecked || !1, | |
| value: null != t ? t : null | |
| } | |
| }, | |
| shouldComponentUpdate: function () { | |
| return !this._isChanging | |
| }, | |
| render: function () { | |
| var t = c(this.props); | |
| t.defaultChecked = null, t.defaultValue = null; | |
| var e = o.getValue(this); | |
| t.value = null != e ? e : this.state.value; | |
| var n = o.getChecked(this); | |
| return t.checked = null != n ? n : this.state.checked, t.onChange = this._handleChange, p(t, this.props.children) | |
| }, | |
| componentDidMount: function () { | |
| var t = u.getID(this.getDOMNode()); | |
| d[t] = this | |
| }, | |
| componentWillUnmount: function () { | |
| var t = this.getDOMNode(), | |
| e = u.getID(t); | |
| delete d[e] | |
| }, | |
| componentDidUpdate: function () { | |
| var t = this.getDOMNode(); | |
| null != this.props.checked && r.setValueForProperty(t, "checked", this.props.checked || !1); | |
| var e = o.getValue(this); | |
| null != e && r.setValueForProperty(t, "value", "" + e) | |
| }, | |
| _handleChange: function (t) { | |
| var e, n = o.getOnChange(this); | |
| n && (this._isChanging = !0, e = n.call(this, t), this._isChanging = !1), this.setState({ | |
| checked: t.target.checked, | |
| value: t.target.value | |
| }); | |
| var r = this.props.name; | |
| if ("radio" === this.props.type && null != r) { | |
| for (var i = this.getDOMNode(), s = i; s.parentNode;) s = s.parentNode; | |
| for (var a = s.querySelectorAll("input[name=" + JSON.stringify("" + r) + '][type="radio"]'), c = 0, p = a.length; p > c; c++) { | |
| var h = a[c]; | |
| if (h !== i && h.form === i.form) { | |
| var f = u.getID(h); | |
| l(f); | |
| var m = d[f]; | |
| l(m), m.setState({ | |
| checked: !1 | |
| }) | |
| } | |
| } | |
| } | |
| return e | |
| } | |
| }); | |
| e.exports = h | |
| }, { | |
| "./AutoFocusMixin": 1, | |
| "./DOMPropertyOperations": 9, | |
| "./LinkedValueUtils": 21, | |
| "./ReactBrowserComponentMixin": 25, | |
| "./ReactCompositeComponent": 29, | |
| "./ReactDOM": 32, | |
| "./ReactMount": 53, | |
| "./invariant": 110, | |
| "./merge": 119 | |
| } | |
| ], | |
| 39: [ | |
| function (t, e) { | |
| "use strict"; | |
| var n = t("./ReactBrowserComponentMixin"), | |
| r = t("./ReactCompositeComponent"), | |
| o = t("./ReactDOM"), | |
| i = (t("./warning"), o.option), | |
| s = r.createClass({ | |
| displayName: "ReactDOMOption", | |
| mixins: [n], | |
| componentWillMount: function () {}, | |
| render: function () { | |
| return i(this.props, this.props.children) | |
| } | |
| }); | |
| e.exports = s | |
| }, { | |
| "./ReactBrowserComponentMixin": 25, | |
| "./ReactCompositeComponent": 29, | |
| "./ReactDOM": 32, | |
| "./warning": 131 | |
| } | |
| ], | |
| 40: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t, e) { | |
| null != t[e] && l(t.multiple ? Array.isArray(t[e]) : !Array.isArray(t[e])) | |
| } | |
| function r(t, e) { | |
| var n, r, o, i = t.props.multiple, | |
| s = null != e ? e : t.state.value, | |
| a = t.getDOMNode().options; | |
| if (i) | |
| for (n = {}, r = 0, o = s.length; o > r; ++r) n["" + s[r]] = !0; | |
| else n = "" + s; | |
| for (r = 0, o = a.length; o > r; r++) { | |
| var u = i ? n.hasOwnProperty(a[r].value) : a[r].value === n; | |
| u !== a[r].selected && (a[r].selected = u) | |
| } | |
| } | |
| var o = t("./AutoFocusMixin"), | |
| i = t("./LinkedValueUtils"), | |
| s = t("./ReactBrowserComponentMixin"), | |
| a = t("./ReactCompositeComponent"), | |
| u = t("./ReactDOM"), | |
| l = t("./invariant"), | |
| c = t("./merge"), | |
| p = u.select, | |
| d = a.createClass({ | |
| displayName: "ReactDOMSelect", | |
| mixins: [o, i.Mixin, s], | |
| propTypes: { | |
| defaultValue: n, | |
| value: n | |
| }, | |
| getInitialState: function () { | |
| return { | |
| value: this.props.defaultValue || (this.props.multiple ? [] : "") | |
| } | |
| }, | |
| componentWillReceiveProps: function (t) { | |
| !this.props.multiple && t.multiple ? this.setState({ | |
| value: [this.state.value] | |
| }) : this.props.multiple && !t.multiple && this.setState({ | |
| value: this.state.value[0] | |
| }) | |
| }, | |
| shouldComponentUpdate: function () { | |
| return !this._isChanging | |
| }, | |
| render: function () { | |
| var t = c(this.props); | |
| return t.onChange = this._handleChange, t.value = null, p(t, this.props.children) | |
| }, | |
| componentDidMount: function () { | |
| r(this, i.getValue(this)) | |
| }, | |
| componentDidUpdate: function () { | |
| var t = i.getValue(this); | |
| null != t && r(this, t) | |
| }, | |
| _handleChange: function (t) { | |
| var e, n = i.getOnChange(this); | |
| n && (this._isChanging = !0, e = n.call(this, t), this._isChanging = !1); | |
| var r; | |
| if (this.props.multiple) { | |
| r = []; | |
| for (var o = t.target.options, s = 0, a = o.length; a > s; s++) o[s].selected && r.push(o[s].value) | |
| } else r = t.target.value; | |
| return this.setState({ | |
| value: r | |
| }), e | |
| } | |
| }); | |
| e.exports = d | |
| }, { | |
| "./AutoFocusMixin": 1, | |
| "./LinkedValueUtils": 21, | |
| "./ReactBrowserComponentMixin": 25, | |
| "./ReactCompositeComponent": 29, | |
| "./ReactDOM": 32, | |
| "./invariant": 110, | |
| "./merge": 119 | |
| } | |
| ], | |
| 41: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t) { | |
| var e = document.selection, | |
| n = e.createRange(), | |
| r = n.text.length, | |
| o = n.duplicate(); | |
| o.moveToElementText(t), o.setEndPoint("EndToStart", n); | |
| var i = o.text.length, | |
| s = i + r; | |
| return { | |
| start: i, | |
| end: s | |
| } | |
| } | |
| function r(t) { | |
| var e = window.getSelection(); | |
| if (0 === e.rangeCount) return null; | |
| var n = e.anchorNode, | |
| r = e.anchorOffset, | |
| o = e.focusNode, | |
| i = e.focusOffset, | |
| s = e.getRangeAt(0), | |
| a = s.toString().length, | |
| u = s.cloneRange(); | |
| u.selectNodeContents(t), u.setEnd(s.startContainer, s.startOffset); | |
| var l = u.toString().length, | |
| c = l + a, | |
| p = document.createRange(); | |
| p.setStart(n, r), p.setEnd(o, i); | |
| var d = p.collapsed; | |
| return p.detach(), { | |
| start: d ? c : l, | |
| end: d ? l : c | |
| } | |
| } | |
| function o(t, e) { | |
| var n, r, o = document.selection.createRange().duplicate(); | |
| "undefined" == typeof e.end ? (n = e.start, r = n) : e.start > e.end ? (n = e.end, r = e.start) : (n = e.start, r = e.end), o.moveToElementText(t), o.moveStart("character", n), o.setEndPoint("EndToStart", o), o.moveEnd("character", r - n), o.select() | |
| } | |
| function i(t, e) { | |
| var n = window.getSelection(), | |
| r = t[a()].length, | |
| o = Math.min(e.start, r), | |
| i = "undefined" == typeof e.end ? o : Math.min(e.end, r); | |
| if (!n.extend && o > i) { | |
| var u = i; | |
| i = o, o = u | |
| } | |
| var l = s(t, o), | |
| c = s(t, i); | |
| if (l && c) { | |
| var p = document.createRange(); | |
| p.setStart(l.node, l.offset), n.removeAllRanges(), o > i ? (n.addRange(p), n.extend(c.node, c.offset)) : (p.setEnd(c.node, c.offset), n.addRange(p)), p.detach() | |
| } | |
| } | |
| var s = t("./getNodeForCharacterOffset"), | |
| a = t("./getTextContentAccessor"), | |
| u = { | |
| getOffsets: function (t) { | |
| var e = document.selection ? n : r; | |
| return e(t) | |
| }, | |
| setOffsets: function (t, e) { | |
| var n = document.selection ? o : i; | |
| n(t, e) | |
| } | |
| }; | |
| e.exports = u | |
| }, { | |
| "./getNodeForCharacterOffset": 104, | |
| "./getTextContentAccessor": 106 | |
| } | |
| ], | |
| 42: [ | |
| function (t, e) { | |
| "use strict"; | |
| var n = t("./AutoFocusMixin"), | |
| r = t("./DOMPropertyOperations"), | |
| o = t("./LinkedValueUtils"), | |
| i = t("./ReactBrowserComponentMixin"), | |
| s = t("./ReactCompositeComponent"), | |
| a = t("./ReactDOM"), | |
| u = t("./invariant"), | |
| l = t("./merge"), | |
| c = (t("./warning"), a.textarea), | |
| p = s.createClass({ | |
| displayName: "ReactDOMTextarea", | |
| mixins: [n, o.Mixin, i], | |
| getInitialState: function () { | |
| var t = this.props.defaultValue, | |
| e = this.props.children; | |
| null != e && (u(null == t), Array.isArray(e) && (u(e.length <= 1), e = e[0]), t = "" + e), null == t && (t = ""); | |
| var n = o.getValue(this); | |
| return { | |
| initialValue: "" + (null != n ? n : t), | |
| value: t | |
| } | |
| }, | |
| shouldComponentUpdate: function () { | |
| return !this._isChanging | |
| }, | |
| render: function () { | |
| var t = l(this.props), | |
| e = o.getValue(this); | |
| return u(null == t.dangerouslySetInnerHTML), t.defaultValue = null, t.value = null != e ? e : this.state.value, t.onChange = this._handleChange, c(t, this.state.initialValue) | |
| }, | |
| componentDidUpdate: function () { | |
| var t = o.getValue(this); | |
| if (null != t) { | |
| var e = this.getDOMNode(); | |
| r.setValueForProperty(e, "value", "" + t) | |
| } | |
| }, | |
| _handleChange: function (t) { | |
| var e, n = o.getOnChange(this); | |
| return n && (this._isChanging = !0, e = n.call(this, t), this._isChanging = !1), this.setState({ | |
| value: t.target.value | |
| }), e | |
| } | |
| }); | |
| e.exports = p | |
| }, { | |
| "./AutoFocusMixin": 1, | |
| "./DOMPropertyOperations": 9, | |
| "./LinkedValueUtils": 21, | |
| "./ReactBrowserComponentMixin": 25, | |
| "./ReactCompositeComponent": 29, | |
| "./ReactDOM": 32, | |
| "./invariant": 110, | |
| "./merge": 119, | |
| "./warning": 131 | |
| } | |
| ], | |
| 43: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n() { | |
| this.reinitializeTransaction() | |
| } | |
| var r = t("./ReactUpdates"), | |
| o = t("./Transaction"), | |
| i = t("./emptyFunction"), | |
| s = t("./mixInto"), | |
| a = { | |
| initialize: i, | |
| close: function () { | |
| p.isBatchingUpdates = !1 | |
| } | |
| }, | |
| u = { | |
| initialize: i, | |
| close: r.flushBatchedUpdates.bind(r) | |
| }, | |
| l = [u, a]; | |
| s(n, o.Mixin), s(n, { | |
| getTransactionWrappers: function () { | |
| return l | |
| } | |
| }); | |
| var c = new n, | |
| p = { | |
| isBatchingUpdates: !1, | |
| batchedUpdates: function (t, e) { | |
| var n = p.isBatchingUpdates; | |
| p.isBatchingUpdates = !0, n ? t(e) : c.perform(t, null, e) | |
| } | |
| }; | |
| e.exports = p | |
| }, { | |
| "./ReactUpdates": 69, | |
| "./Transaction": 83, | |
| "./emptyFunction": 94, | |
| "./mixInto": 122 | |
| } | |
| ], | |
| 44: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n() { | |
| r.EventEmitter.injectTopLevelCallbackCreator(f), r.EventPluginHub.injectEventPluginOrder(l), r.EventPluginHub.injectInstanceHandle(k), r.EventPluginHub.injectMount(T), r.EventPluginHub.injectEventPluginsByName({ | |
| SimpleEventPlugin: P, | |
| EnterLeaveEventPlugin: c, | |
| ChangeEventPlugin: s, | |
| CompositionEventPlugin: u, | |
| MobileSafariClickEventPlugin: p, | |
| SelectEventPlugin: C | |
| }), r.DOM.injectComponentClasses({ | |
| button: g, | |
| form: v, | |
| img: y, | |
| input: w, | |
| option: _, | |
| select: b, | |
| textarea: x, | |
| html: R(m.html), | |
| head: R(m.head), | |
| title: R(m.title), | |
| body: R(m.body) | |
| }), r.CompositeComponent.injectMixin(d), r.DOMProperty.injectDOMPropertyConfig(i), r.Updates.injectBatchingStrategy(S), r.RootIndex.injectCreateReactRootIndex(o.canUseDOM ? a.createReactRootIndex : E.createReactRootIndex), r.Component.injectEnvironment(h) | |
| } | |
| var r = t("./ReactInjection"), | |
| o = t("./ExecutionEnvironment"), | |
| i = t("./DefaultDOMPropertyConfig"), | |
| s = t("./ChangeEventPlugin"), | |
| a = t("./ClientReactRootIndex"), | |
| u = t("./CompositionEventPlugin"), | |
| l = t("./DefaultEventPluginOrder"), | |
| c = t("./EnterLeaveEventPlugin"), | |
| p = t("./MobileSafariClickEventPlugin"), | |
| d = t("./ReactBrowserComponentMixin"), | |
| h = t("./ReactComponentBrowserEnvironment"), | |
| f = t("./ReactEventTopLevelCallback"), | |
| m = t("./ReactDOM"), | |
| g = t("./ReactDOMButton"), | |
| v = t("./ReactDOMForm"), | |
| y = t("./ReactDOMImg"), | |
| w = t("./ReactDOMInput"), | |
| _ = t("./ReactDOMOption"), | |
| b = t("./ReactDOMSelect"), | |
| x = t("./ReactDOMTextarea"), | |
| k = t("./ReactInstanceHandles"), | |
| T = t("./ReactMount"), | |
| C = t("./SelectEventPlugin"), | |
| E = t("./ServerReactRootIndex"), | |
| P = t("./SimpleEventPlugin"), | |
| S = t("./ReactDefaultBatchingStrategy"), | |
| R = t("./createFullPageComponent"); | |
| e.exports = { | |
| inject: n | |
| } | |
| }, { | |
| "./ChangeEventPlugin": 4, | |
| "./ClientReactRootIndex": 5, | |
| "./CompositionEventPlugin": 6, | |
| "./DefaultDOMPropertyConfig": 11, | |
| "./DefaultEventPluginOrder": 12, | |
| "./EnterLeaveEventPlugin": 13, | |
| "./ExecutionEnvironment": 20, | |
| "./MobileSafariClickEventPlugin": 22, | |
| "./ReactBrowserComponentMixin": 25, | |
| "./ReactComponentBrowserEnvironment": 28, | |
| "./ReactDOM": 32, | |
| "./ReactDOMButton": 33, | |
| "./ReactDOMForm": 35, | |
| "./ReactDOMImg": 37, | |
| "./ReactDOMInput": 38, | |
| "./ReactDOMOption": 39, | |
| "./ReactDOMSelect": 40, | |
| "./ReactDOMTextarea": 42, | |
| "./ReactDefaultBatchingStrategy": 43, | |
| "./ReactEventTopLevelCallback": 48, | |
| "./ReactInjection": 49, | |
| "./ReactInstanceHandles": 51, | |
| "./ReactMount": 53, | |
| "./SelectEventPlugin": 70, | |
| "./ServerReactRootIndex": 71, | |
| "./SimpleEventPlugin": 72, | |
| "./createFullPageComponent": 90 | |
| } | |
| ], | |
| 45: [ | |
| function (t, e) { | |
| "use strict"; | |
| var n = { | |
| guard: function (t) { | |
| return t | |
| } | |
| }; | |
| e.exports = n | |
| }, {} | |
| ], | |
| 46: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t) { | |
| return null == t[w] && (t[w] = v++, m[t[w]] = {}), m[t[w]] | |
| } | |
| function r(t, e, n) { | |
| s.listen(n, e, _.TopLevelCallbackCreator.createTopLevelCallback(t)) | |
| } | |
| function o(t, e, n) { | |
| s.capture(n, e, _.TopLevelCallbackCreator.createTopLevelCallback(t)) | |
| } | |
| var i = t("./EventConstants"), | |
| s = t("./EventListener"), | |
| a = t("./EventPluginHub"), | |
| u = t("./EventPluginRegistry"), | |
| l = t("./ExecutionEnvironment"), | |
| c = t("./ReactEventEmitterMixin"), | |
| p = t("./ViewportMetrics"), | |
| d = t("./invariant"), | |
| h = t("./isEventSupported"), | |
| f = t("./merge"), | |
| m = {}, | |
| g = !1, | |
| v = 0, | |
| y = { | |
| topBlur: "blur", | |
| topChange: "change", | |
| topClick: "click", | |
| topCompositionEnd: "compositionend", | |
| topCompositionStart: "compositionstart", | |
| topCompositionUpdate: "compositionupdate", | |
| topContextMenu: "contextmenu", | |
| topCopy: "copy", | |
| topCut: "cut", | |
| topDoubleClick: "dblclick", | |
| topDrag: "drag", | |
| topDragEnd: "dragend", | |
| topDragEnter: "dragenter", | |
| topDragExit: "dragexit", | |
| topDragLeave: "dragleave", | |
| topDragOver: "dragover", | |
| topDragStart: "dragstart", | |
| topDrop: "drop", | |
| topFocus: "focus", | |
| topInput: "input", | |
| topKeyDown: "keydown", | |
| topKeyPress: "keypress", | |
| topKeyUp: "keyup", | |
| topMouseDown: "mousedown", | |
| topMouseMove: "mousemove", | |
| topMouseOut: "mouseout", | |
| topMouseOver: "mouseover", | |
| topMouseUp: "mouseup", | |
| topPaste: "paste", | |
| topScroll: "scroll", | |
| topSelectionChange: "selectionchange", | |
| topTouchCancel: "touchcancel", | |
| topTouchEnd: "touchend", | |
| topTouchMove: "touchmove", | |
| topTouchStart: "touchstart", | |
| topWheel: "wheel" | |
| }, | |
| w = "_reactListenersID" + String(Math.random()).slice(2), | |
| _ = f(c, { | |
| TopLevelCallbackCreator: null, | |
| injection: { | |
| injectTopLevelCallbackCreator: function (t) { | |
| _.TopLevelCallbackCreator = t | |
| } | |
| }, | |
| setEnabled: function (t) { | |
| d(l.canUseDOM), _.TopLevelCallbackCreator && _.TopLevelCallbackCreator.setEnabled(t) | |
| }, | |
| isEnabled: function () { | |
| return !(!_.TopLevelCallbackCreator || !_.TopLevelCallbackCreator.isEnabled()) | |
| }, | |
| listenTo: function (t, e) { | |
| for (var s = e, a = n(s), l = u.registrationNameDependencies[t], c = i.topLevelTypes, p = 0, d = l.length; d > p; p++) { | |
| var f = l[p]; | |
| if (!a[f]) { | |
| var m = c[f]; | |
| m === c.topWheel ? h("wheel") ? r(c.topWheel, "wheel", s) : h("mousewheel") ? r(c.topWheel, "mousewheel", s) : r(c.topWheel, "DOMMouseScroll", s) : m === c.topScroll ? h("scroll", !0) ? o(c.topScroll, "scroll", s) : r(c.topScroll, "scroll", window) : m === c.topFocus || m === c.topBlur ? (h("focus", !0) ? (o(c.topFocus, "focus", s), o(c.topBlur, "blur", s)) : h("focusin") && (r(c.topFocus, "focusin", s), r(c.topBlur, "focusout", s)), a[c.topBlur] = !0, a[c.topFocus] = !0) : y[f] && r(m, y[f], s), a[f] = !0 | |
| } | |
| } | |
| }, | |
| ensureScrollValueMonitoring: function () { | |
| if (!g) { | |
| var t = p.refreshScrollValues; | |
| s.listen(window, "scroll", t), s.listen(window, "resize", t), g = !0 | |
| } | |
| }, | |
| eventNameDispatchConfigs: a.eventNameDispatchConfigs, | |
| registrationNameModules: a.registrationNameModules, | |
| putListener: a.putListener, | |
| getListener: a.getListener, | |
| deleteListener: a.deleteListener, | |
| deleteAllListeners: a.deleteAllListeners, | |
| trapBubbledEvent: r, | |
| trapCapturedEvent: o | |
| }); | |
| e.exports = _ | |
| }, { | |
| "./EventConstants": 14, | |
| "./EventListener": 15, | |
| "./EventPluginHub": 16, | |
| "./EventPluginRegistry": 17, | |
| "./ExecutionEnvironment": 20, | |
| "./ReactEventEmitterMixin": 47, | |
| "./ViewportMetrics": 84, | |
| "./invariant": 110, | |
| "./isEventSupported": 111, | |
| "./merge": 119 | |
| } | |
| ], | |
| 47: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t) { | |
| r.enqueueEvents(t), r.processEventQueue() | |
| } | |
| var r = t("./EventPluginHub"), | |
| o = t("./ReactUpdates"), | |
| i = { | |
| handleTopLevel: function (t, e, i, s) { | |
| var a = r.extractEvents(t, e, i, s); | |
| o.batchedUpdates(n, a) | |
| } | |
| }; | |
| e.exports = i | |
| }, { | |
| "./EventPluginHub": 16, | |
| "./ReactUpdates": 69 | |
| } | |
| ], | |
| 48: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t) { | |
| var e = u.getID(t), | |
| n = a.getReactRootIDFromNodeID(e), | |
| r = u.findReactContainerForID(n), | |
| o = u.getFirstReactDOM(r); | |
| return o | |
| } | |
| function r(t, e, r) { | |
| for (var o = u.getFirstReactDOM(l(e)) || window, i = o; i;) r.ancestors.push(i), i = n(i); | |
| for (var a = 0, c = r.ancestors.length; c > a; a++) { | |
| o = r.ancestors[a]; | |
| var p = u.getID(o) || ""; | |
| s.handleTopLevel(t, o, p, e) | |
| } | |
| } | |
| function o() { | |
| this.ancestors = [] | |
| } | |
| var i = t("./PooledClass"), | |
| s = t("./ReactEventEmitter"), | |
| a = t("./ReactInstanceHandles"), | |
| u = t("./ReactMount"), | |
| l = t("./getEventTarget"), | |
| c = t("./mixInto"), | |
| p = !0; | |
| c(o, { | |
| destructor: function () { | |
| this.ancestors.length = 0 | |
| } | |
| }), i.addPoolingTo(o); | |
| var d = { | |
| setEnabled: function (t) { | |
| p = !!t | |
| }, | |
| isEnabled: function () { | |
| return p | |
| }, | |
| createTopLevelCallback: function (t) { | |
| return function (e) { | |
| if (p) { | |
| var n = o.getPooled(); | |
| try { | |
| r(t, e, n) | |
| } finally { | |
| o.release(n) | |
| } | |
| } | |
| } | |
| } | |
| }; | |
| e.exports = d | |
| }, { | |
| "./PooledClass": 23, | |
| "./ReactEventEmitter": 46, | |
| "./ReactInstanceHandles": 51, | |
| "./ReactMount": 53, | |
| "./getEventTarget": 102, | |
| "./mixInto": 122 | |
| } | |
| ], | |
| 49: [ | |
| function (t, e) { | |
| "use strict"; | |
| var n = t("./DOMProperty"), | |
| r = t("./EventPluginHub"), | |
| o = t("./ReactComponent"), | |
| i = t("./ReactCompositeComponent"), | |
| s = t("./ReactDOM"), | |
| a = t("./ReactEventEmitter"), | |
| u = t("./ReactPerf"), | |
| l = t("./ReactRootIndex"), | |
| c = t("./ReactUpdates"), | |
| p = { | |
| Component: o.injection, | |
| CompositeComponent: i.injection, | |
| DOMProperty: n.injection, | |
| EventPluginHub: r.injection, | |
| DOM: s.injection, | |
| EventEmitter: a.injection, | |
| Perf: u.injection, | |
| RootIndex: l.injection, | |
| Updates: c.injection | |
| }; | |
| e.exports = p | |
| }, { | |
| "./DOMProperty": 8, | |
| "./EventPluginHub": 16, | |
| "./ReactComponent": 27, | |
| "./ReactCompositeComponent": 29, | |
| "./ReactDOM": 32, | |
| "./ReactEventEmitter": 46, | |
| "./ReactPerf": 58, | |
| "./ReactRootIndex": 65, | |
| "./ReactUpdates": 69 | |
| } | |
| ], | |
| 50: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t) { | |
| return o(document.documentElement, t) | |
| } | |
| var r = t("./ReactDOMSelection"), | |
| o = t("./containsNode"), | |
| i = t("./focusNode"), | |
| s = t("./getActiveElement"), | |
| a = { | |
| hasSelectionCapabilities: function (t) { | |
| return t && ("INPUT" === t.nodeName && "text" === t.type || "TEXTAREA" === t.nodeName || "true" === t.contentEditable) | |
| }, | |
| getSelectionInformation: function () { | |
| var t = s(); | |
| return { | |
| focusedElem: t, | |
| selectionRange: a.hasSelectionCapabilities(t) ? a.getSelection(t) : null | |
| } | |
| }, | |
| restoreSelection: function (t) { | |
| var e = s(), | |
| r = t.focusedElem, | |
| o = t.selectionRange; | |
| e !== r && n(r) && (a.hasSelectionCapabilities(r) && a.setSelection(r, o), i(r)) | |
| }, | |
| getSelection: function (t) { | |
| var e; | |
| if ("selectionStart" in t) e = { | |
| start: t.selectionStart, | |
| end: t.selectionEnd | |
| }; | |
| else if (document.selection && "INPUT" === t.nodeName) { | |
| var n = document.selection.createRange(); | |
| n.parentElement() === t && (e = { | |
| start: -n.moveStart("character", -t.value.length), | |
| end: -n.moveEnd("character", -t.value.length) | |
| }) | |
| } else e = r.getOffsets(t); | |
| return e || { | |
| start: 0, | |
| end: 0 | |
| } | |
| }, | |
| setSelection: function (t, e) { | |
| var n = e.start, | |
| o = e.end; | |
| if ("undefined" == typeof o && (o = n), "selectionStart" in t) t.selectionStart = n, t.selectionEnd = Math.min(o, t.value.length); | |
| else if (document.selection && "INPUT" === t.nodeName) { | |
| var i = t.createTextRange(); | |
| i.collapse(!0), i.moveStart("character", n), i.moveEnd("character", o - n), i.select() | |
| } else r.setOffsets(t, e) | |
| } | |
| }; | |
| e.exports = a | |
| }, { | |
| "./ReactDOMSelection": 41, | |
| "./containsNode": 87, | |
| "./focusNode": 98, | |
| "./getActiveElement": 100 | |
| } | |
| ], | |
| 51: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t) { | |
| return d + t.toString(36) | |
| } | |
| function r(t, e) { | |
| return t.charAt(e) === d || e === t.length | |
| } | |
| function o(t) { | |
| return "" === t || t.charAt(0) === d && t.charAt(t.length - 1) !== d | |
| } | |
| function i(t, e) { | |
| return 0 === e.indexOf(t) && r(e, t.length) | |
| } | |
| function s(t) { | |
| return t ? t.substr(0, t.lastIndexOf(d)) : "" | |
| } | |
| function a(t, e) { | |
| if (p(o(t) && o(e)), p(i(t, e)), t === e) return t; | |
| for (var n = t.length + h, s = n; s < e.length && !r(e, s); s++); | |
| return e.substr(0, s) | |
| } | |
| function u(t, e) { | |
| var n = Math.min(t.length, e.length); | |
| if (0 === n) return ""; | |
| for (var i = 0, s = 0; n >= s; s++) | |
| if (r(t, s) && r(e, s)) i = s; | |
| else if (t.charAt(s) !== e.charAt(s)) break; | |
| var a = t.substr(0, i); | |
| return p(o(a)), a | |
| } | |
| function l(t, e, n, r, o, u) { | |
| t = t || "", e = e || "", p(t !== e); | |
| var l = i(e, t); | |
| p(l || i(t, e)); | |
| for (var c = 0, d = l ? s : a, h = t;; h = d(h, e)) { | |
| var m; | |
| if (o && h === t || u && h === e || (m = n(h, l, r)), m === !1 || h === e) break; | |
| p(c++ < f) | |
| } | |
| } | |
| var c = t("./ReactRootIndex"), | |
| p = t("./invariant"), | |
| d = ".", | |
| h = d.length, | |
| f = 100, | |
| m = { | |
| createReactRootID: function () { | |
| return n(c.createReactRootIndex()) | |
| }, | |
| createReactID: function (t, e) { | |
| return t + e | |
| }, | |
| getReactRootIDFromNodeID: function (t) { | |
| if (t && t.charAt(0) === d && t.length > 1) { | |
| var e = t.indexOf(d, 1); | |
| return e > -1 ? t.substr(0, e) : t | |
| } | |
| return null | |
| }, | |
| traverseEnterLeave: function (t, e, n, r, o) { | |
| var i = u(t, e); | |
| i !== t && l(t, i, n, r, !1, !0), i !== e && l(i, e, n, o, !0, !1) | |
| }, | |
| traverseTwoPhase: function (t, e, n) { | |
| t && (l("", t, e, n, !0, !1), l(t, "", e, n, !1, !0)) | |
| }, | |
| traverseAncestors: function (t, e, n) { | |
| l("", t, e, n, !0, !1) | |
| }, | |
| _getFirstCommonAncestorID: u, | |
| _getNextDescendantID: a, | |
| isAncestorIDOf: i, | |
| SEPARATOR: d | |
| }; | |
| e.exports = m | |
| }, { | |
| "./ReactRootIndex": 65, | |
| "./invariant": 110 | |
| } | |
| ], | |
| 52: [ | |
| function (t, e) { | |
| "use strict"; | |
| var n = t("./adler32"), | |
| r = { | |
| CHECKSUM_ATTR_NAME: "data-react-checksum", | |
| addChecksumToMarkup: function (t) { | |
| var e = n(t); | |
| return t.replace(">", " " + r.CHECKSUM_ATTR_NAME + '="' + e + '">') | |
| }, | |
| canReuseMarkup: function (t, e) { | |
| var o = e.getAttribute(r.CHECKSUM_ATTR_NAME); | |
| o = o && parseInt(o, 10); | |
| var i = n(t); | |
| return i === o | |
| } | |
| }; | |
| e.exports = r | |
| }, { | |
| "./adler32": 86 | |
| } | |
| ], | |
| 53: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t) { | |
| var e = g(t); | |
| return e && R.getID(e) | |
| } | |
| function r(t) { | |
| var e = o(t); | |
| if (e) | |
| if (x.hasOwnProperty(e)) { | |
| var n = x[e]; | |
| n !== t && (y(!a(n, e)), x[e] = t) | |
| } else x[e] = t; | |
| return e | |
| } | |
| function o(t) { | |
| return t && t.getAttribute && t.getAttribute(b) || "" | |
| } | |
| function i(t, e) { | |
| var n = o(t); | |
| n !== e && delete x[n], t.setAttribute(b, e), x[e] = t | |
| } | |
| function s(t) { | |
| return x.hasOwnProperty(t) && a(x[t], t) || (x[t] = R.findReactNodeByID(t)), x[t] | |
| } | |
| function a(t, e) { | |
| if (t) { | |
| y(o(t) === e); | |
| var n = R.findReactContainerForID(e); | |
| if (n && m(n, t)) return !0 | |
| } | |
| return !1 | |
| } | |
| function u(t) { | |
| delete x[t] | |
| } | |
| function l(t) { | |
| var e = x[t]; | |
| return e && a(e, t) ? void(S = e) : !1 | |
| } | |
| function c(t) { | |
| S = null, h.traverseAncestors(t, l); | |
| var e = S; | |
| return S = null, e | |
| } | |
| var p = t("./DOMProperty"), | |
| d = t("./ReactEventEmitter"), | |
| h = t("./ReactInstanceHandles"), | |
| f = t("./ReactPerf"), | |
| m = t("./containsNode"), | |
| g = t("./getReactRootElementInContainer"), | |
| v = t("./instantiateReactComponent"), | |
| y = t("./invariant"), | |
| w = t("./shouldUpdateReactComponent"), | |
| _ = h.SEPARATOR, | |
| b = p.ID_ATTRIBUTE_NAME, | |
| x = {}, | |
| k = 1, | |
| T = 9, | |
| C = {}, | |
| E = {}, | |
| P = [], | |
| S = null, | |
| R = { | |
| totalInstantiationTime: 0, | |
| totalInjectionTime: 0, | |
| useTouchEvents: !1, | |
| _instancesByReactRootID: C, | |
| scrollMonitor: function (t, e) { | |
| e() | |
| }, | |
| _updateRootComponent: function (t, e, n, r) { | |
| var o = e.props; | |
| return R.scrollMonitor(n, function () { | |
| t.replaceProps(o, r) | |
| }), t | |
| }, | |
| _registerComponent: function (t, e) { | |
| y(e && (e.nodeType === k || e.nodeType === T)), d.ensureScrollValueMonitoring(); | |
| var n = R.registerContainer(e); | |
| return C[n] = t, n | |
| }, | |
| _renderNewRootComponent: f.measure("ReactMount", "_renderNewRootComponent", function (t, e, n) { | |
| var r = v(t), | |
| o = R._registerComponent(r, e); | |
| return r.mountComponentIntoNode(o, e, n), r | |
| }), | |
| renderComponent: function (t, e, r) { | |
| var o = C[n(e)]; | |
| if (o) { | |
| if (w(o, t)) return R._updateRootComponent(o, t, e, r); | |
| R.unmountComponentAtNode(e) | |
| } | |
| var i = g(e), | |
| s = i && R.isRenderedByReact(i), | |
| a = s && !o, | |
| u = R._renderNewRootComponent(t, e, a); | |
| return r && r.call(u), u | |
| }, | |
| constructAndRenderComponent: function (t, e, n) { | |
| return R.renderComponent(t(e), n) | |
| }, | |
| constructAndRenderComponentByID: function (t, e, n) { | |
| var r = document.getElementById(n); | |
| return y(r), R.constructAndRenderComponent(t, e, r) | |
| }, | |
| registerContainer: function (t) { | |
| var e = n(t); | |
| return e && (e = h.getReactRootIDFromNodeID(e)), e || (e = h.createReactRootID()), E[e] = t, e | |
| }, | |
| unmountComponentAtNode: function (t) { | |
| var e = n(t), | |
| r = C[e]; | |
| return r ? (R.unmountComponentFromNode(r, t), delete C[e], delete E[e], !0) : !1 | |
| }, | |
| unmountComponentFromNode: function (t, e) { | |
| for (t.unmountComponent(), e.nodeType === T && (e = e.documentElement); e.lastChild;) e.removeChild(e.lastChild) | |
| }, | |
| findReactContainerForID: function (t) { | |
| var e = h.getReactRootIDFromNodeID(t), | |
| n = E[e]; | |
| return n | |
| }, | |
| findReactNodeByID: function (t) { | |
| var e = R.findReactContainerForID(t); | |
| return R.findComponentRoot(e, t) | |
| }, | |
| isRenderedByReact: function (t) { | |
| if (1 !== t.nodeType) return !1; | |
| var e = R.getID(t); | |
| return e ? e.charAt(0) === _ : !1 | |
| }, | |
| getFirstReactDOM: function (t) { | |
| for (var e = t; e && e.parentNode !== e;) { | |
| if (R.isRenderedByReact(e)) return e; | |
| e = e.parentNode | |
| } | |
| return null | |
| }, | |
| findComponentRoot: function (t, e) { | |
| var n = P, | |
| r = 0, | |
| o = c(e) || t; | |
| for (n[0] = o.firstChild, n.length = 1; r < n.length;) { | |
| for (var i, s = n[r++]; s;) { | |
| var a = R.getID(s); | |
| a ? e === a ? i = s : h.isAncestorIDOf(a, e) && (n.length = r = 0, n.push(s.firstChild)) : n.push(s.firstChild), s = s.nextSibling | |
| } | |
| if (i) return n.length = 0, i | |
| } | |
| n.length = 0, y(!1) | |
| }, | |
| getReactRootID: n, | |
| getID: r, | |
| setID: i, | |
| getNode: s, | |
| purgeID: u | |
| }; | |
| e.exports = R | |
| }, { | |
| "./DOMProperty": 8, | |
| "./ReactEventEmitter": 46, | |
| "./ReactInstanceHandles": 51, | |
| "./ReactPerf": 58, | |
| "./containsNode": 87, | |
| "./getReactRootElementInContainer": 105, | |
| "./instantiateReactComponent": 109, | |
| "./invariant": 110, | |
| "./shouldUpdateReactComponent": 128 | |
| } | |
| ], | |
| 54: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t) { | |
| this._queue = t || null | |
| } | |
| var r = t("./PooledClass"), | |
| o = t("./mixInto"); | |
| o(n, { | |
| enqueue: function (t, e) { | |
| this._queue = this._queue || [], this._queue.push({ | |
| component: t, | |
| callback: e | |
| }) | |
| }, | |
| notifyAll: function () { | |
| var t = this._queue; | |
| if (t) { | |
| this._queue = null; | |
| for (var e = 0, n = t.length; n > e; e++) { | |
| var r = t[e].component, | |
| o = t[e].callback; | |
| o.call(r) | |
| } | |
| t.length = 0 | |
| } | |
| }, | |
| reset: function () { | |
| this._queue = null | |
| }, | |
| destructor: function () { | |
| this.reset() | |
| } | |
| }), r.addPoolingTo(n), e.exports = n | |
| }, { | |
| "./PooledClass": 23, | |
| "./mixInto": 122 | |
| } | |
| ], | |
| 55: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t, e, n) { | |
| f.push({ | |
| parentID: t, | |
| parentNode: null, | |
| type: l.INSERT_MARKUP, | |
| markupIndex: m.push(e) - 1, | |
| textContent: null, | |
| fromIndex: null, | |
| toIndex: n | |
| }) | |
| } | |
| function r(t, e, n) { | |
| f.push({ | |
| parentID: t, | |
| parentNode: null, | |
| type: l.MOVE_EXISTING, | |
| markupIndex: null, | |
| textContent: null, | |
| fromIndex: e, | |
| toIndex: n | |
| }) | |
| } | |
| function o(t, e) { | |
| f.push({ | |
| parentID: t, | |
| parentNode: null, | |
| type: l.REMOVE_NODE, | |
| markupIndex: null, | |
| textContent: null, | |
| fromIndex: e, | |
| toIndex: null | |
| }) | |
| } | |
| function i(t, e) { | |
| f.push({ | |
| parentID: t, | |
| parentNode: null, | |
| type: l.TEXT_CONTENT, | |
| markupIndex: null, | |
| textContent: e, | |
| fromIndex: null, | |
| toIndex: null | |
| }) | |
| } | |
| function s() { | |
| f.length && (u.BackendIDOperations.dangerouslyProcessChildrenUpdates(f, m), a()) | |
| } | |
| function a() { | |
| f.length = 0, m.length = 0 | |
| } | |
| var u = t("./ReactComponent"), | |
| l = t("./ReactMultiChildUpdateTypes"), | |
| c = t("./flattenChildren"), | |
| p = t("./instantiateReactComponent"), | |
| d = t("./shouldUpdateReactComponent"), | |
| h = 0, | |
| f = [], | |
| m = [], | |
| g = { | |
| Mixin: { | |
| mountChildren: function (t, e) { | |
| var n = c(t), | |
| r = [], | |
| o = 0; | |
| this._renderedChildren = n; | |
| for (var i in n) { | |
| var s = n[i]; | |
| if (n.hasOwnProperty(i)) { | |
| var a = p(s); | |
| n[i] = a; | |
| var u = this._rootNodeID + i, | |
| l = a.mountComponent(u, e, this._mountDepth + 1); | |
| a._mountIndex = o, r.push(l), o++ | |
| } | |
| } | |
| return r | |
| }, | |
| updateTextContent: function (t) { | |
| h++; | |
| var e = !0; | |
| try { | |
| var n = this._renderedChildren; | |
| for (var r in n) n.hasOwnProperty(r) && this._unmountChildByName(n[r], r); | |
| this.setTextContent(t), e = !1 | |
| } finally { | |
| h--, h || (e ? a() : s()) | |
| } | |
| }, | |
| updateChildren: function (t, e) { | |
| h++; | |
| var n = !0; | |
| try { | |
| this._updateChildren(t, e), n = !1 | |
| } finally { | |
| h--, h || (n ? a() : s()) | |
| } | |
| }, | |
| _updateChildren: function (t, e) { | |
| var n = c(t), | |
| r = this._renderedChildren; | |
| if (n || r) { | |
| var o, i = 0, | |
| s = 0; | |
| for (o in n) | |
| if (n.hasOwnProperty(o)) { | |
| var a = r && r[o], | |
| u = n[o]; | |
| if (d(a, u)) this.moveChild(a, s, i), i = Math.max(a._mountIndex, i), a.receiveComponent(u, e), a._mountIndex = s; | |
| else { | |
| a && (i = Math.max(a._mountIndex, i), this._unmountChildByName(a, o)); | |
| var l = p(u); | |
| this._mountChildByNameAtIndex(l, o, s, e) | |
| } | |
| s++ | |
| } | |
| for (o in r)!r.hasOwnProperty(o) || n && n[o] || this._unmountChildByName(r[o], o) | |
| } | |
| }, | |
| unmountChildren: function () { | |
| var t = this._renderedChildren; | |
| for (var e in t) { | |
| var n = t[e]; | |
| n.unmountComponent && n.unmountComponent() | |
| } | |
| this._renderedChildren = null | |
| }, | |
| moveChild: function (t, e, n) { | |
| t._mountIndex < n && r(this._rootNodeID, t._mountIndex, e) | |
| }, | |
| createChild: function (t, e) { | |
| n(this._rootNodeID, e, t._mountIndex) | |
| }, | |
| removeChild: function (t) { | |
| o(this._rootNodeID, t._mountIndex) | |
| }, | |
| setTextContent: function (t) { | |
| i(this._rootNodeID, t) | |
| }, | |
| _mountChildByNameAtIndex: function (t, e, n, r) { | |
| var o = this._rootNodeID + e, | |
| i = t.mountComponent(o, r, this._mountDepth + 1); | |
| t._mountIndex = n, this.createChild(t, i), this._renderedChildren = this._renderedChildren || {}, this._renderedChildren[e] = t | |
| }, | |
| _unmountChildByName: function (t, e) { | |
| u.isValidComponent(t) && (this.removeChild(t), t._mountIndex = null, t.unmountComponent(), delete this._renderedChildren[e]) | |
| } | |
| } | |
| }; | |
| e.exports = g | |
| }, { | |
| "./ReactComponent": 27, | |
| "./ReactMultiChildUpdateTypes": 56, | |
| "./flattenChildren": 97, | |
| "./instantiateReactComponent": 109, | |
| "./shouldUpdateReactComponent": 128 | |
| } | |
| ], | |
| 56: [ | |
| function (t, e) { | |
| "use strict"; | |
| var n = t("./keyMirror"), | |
| r = n({ | |
| INSERT_MARKUP: null, | |
| MOVE_EXISTING: null, | |
| REMOVE_NODE: null, | |
| TEXT_CONTENT: null | |
| }); | |
| e.exports = r | |
| }, { | |
| "./keyMirror": 116 | |
| } | |
| ], | |
| 57: [ | |
| function (t, e) { | |
| "use strict"; | |
| var n = t("./emptyObject"), | |
| r = t("./invariant"), | |
| o = { | |
| isValidOwner: function (t) { | |
| return !(!t || "function" != typeof t.attachRef || "function" != typeof t.detachRef) | |
| }, | |
| addComponentAsRefTo: function (t, e, n) { | |
| r(o.isValidOwner(n)), n.attachRef(e, t) | |
| }, | |
| removeComponentAsRefFrom: function (t, e, n) { | |
| r(o.isValidOwner(n)), n.refs[e] === t && n.detachRef(e) | |
| }, | |
| Mixin: { | |
| construct: function () { | |
| this.refs = n | |
| }, | |
| attachRef: function (t, e) { | |
| r(e.isOwnedBy(this)); | |
| var o = this.refs === n ? this.refs = {} : this.refs; | |
| o[t] = e | |
| }, | |
| detachRef: function (t) { | |
| delete this.refs[t] | |
| } | |
| } | |
| }; | |
| e.exports = o | |
| }, { | |
| "./emptyObject": 95, | |
| "./invariant": 110 | |
| } | |
| ], | |
| 58: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t, e, n) { | |
| return n | |
| } | |
| var r = { | |
| enableMeasure: !1, | |
| storedMeasure: n, | |
| measure: function (t, e, n) { | |
| return n | |
| }, | |
| injection: { | |
| injectMeasure: function (t) { | |
| r.storedMeasure = t | |
| } | |
| } | |
| }; | |
| e.exports = r | |
| }, {} | |
| ], | |
| 59: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t) { | |
| return function (e, n, r) { | |
| e[n] = e.hasOwnProperty(n) ? t(e[n], r) : r | |
| } | |
| } | |
| var r = t("./emptyFunction"), | |
| o = t("./invariant"), | |
| i = t("./joinClasses"), | |
| s = t("./merge"), | |
| a = { | |
| children: r, | |
| className: n(i), | |
| key: r, | |
| ref: r, | |
| style: n(s) | |
| }, | |
| u = { | |
| TransferStrategies: a, | |
| mergeProps: function (t, e) { | |
| var n = s(t); | |
| for (var r in e) | |
| if (e.hasOwnProperty(r)) { | |
| var o = a[r]; | |
| o && a.hasOwnProperty(r) ? o(n, r, e[r]) : n.hasOwnProperty(r) || (n[r] = e[r]) | |
| } | |
| return n | |
| }, | |
| Mixin: { | |
| transferPropsTo: function (t) { | |
| return o(t._owner === this), t.props = u.mergeProps(t.props, this.props), t | |
| } | |
| } | |
| }; | |
| e.exports = u | |
| }, { | |
| "./emptyFunction": 94, | |
| "./invariant": 110, | |
| "./joinClasses": 115, | |
| "./merge": 119 | |
| } | |
| ], | |
| 60: [ | |
| function (t, e) { | |
| "use strict"; | |
| var n = {}; | |
| e.exports = n | |
| }, {} | |
| ], | |
| 61: [ | |
| function (t, e) { | |
| "use strict"; | |
| var n = t("./keyMirror"), | |
| r = n({ | |
| prop: null, | |
| context: null, | |
| childContext: null | |
| }); | |
| e.exports = r | |
| }, { | |
| "./keyMirror": 116 | |
| } | |
| ], | |
| 62: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t) { | |
| switch (typeof t) { | |
| case "number": | |
| case "string": | |
| return !0; | |
| case "object": | |
| if (Array.isArray(t)) return t.every(n); | |
| if (f.isValidComponent(t)) return !0; | |
| for (var e in t) | |
| if (!n(t[e])) return !1; | |
| return !0; | |
| default: | |
| return !1 | |
| } | |
| } | |
| function r(t) { | |
| var e = typeof t; | |
| return "object" === e && Array.isArray(t) ? "array" : e | |
| } | |
| function o() { | |
| function t() { | |
| return !0 | |
| } | |
| return h(t) | |
| } | |
| function i(t) { | |
| function e(e, n) { | |
| var o = r(n), | |
| i = o === t; | |
| return i | |
| } | |
| return h(e) | |
| } | |
| function s(t) { | |
| function e(t, e) { | |
| var r = n[e]; | |
| return r | |
| } | |
| var n = m(t); | |
| return h(e) | |
| } | |
| function a(t) { | |
| function e(e, n, o, i, s) { | |
| var a = r(n), | |
| u = "object" === a; | |
| if (u) | |
| for (var l in t) { | |
| var c = t[l]; | |
| if (c && !c(n, l, i, s)) return !1 | |
| } | |
| return u | |
| } | |
| return h(e) | |
| } | |
| function u(t) { | |
| function e(e, n) { | |
| var r = n instanceof t; | |
| return r | |
| } | |
| return h(e) | |
| } | |
| function l(t) { | |
| function e(e, n, r, o, i) { | |
| var s = Array.isArray(n); | |
| if (s) | |
| for (var a = 0; a < n.length; a++) | |
| if (!t(n, a, o, i)) return !1; | |
| return s | |
| } | |
| return h(e) | |
| } | |
| function c() { | |
| function t(t, e) { | |
| var r = n(e); | |
| return r | |
| } | |
| return h(t) | |
| } | |
| function p() { | |
| function t(t, e) { | |
| var n = f.isValidComponent(e); | |
| return n | |
| } | |
| return h(t) | |
| } | |
| function d(t) { | |
| return function (e, n, r, o) { | |
| for (var i = !1, s = 0; s < t.length; s++) { | |
| var a = t[s]; | |
| if ("function" == typeof a.weak && (a = a.weak), a(e, n, r, o)) { | |
| i = !0; | |
| break | |
| } | |
| } | |
| return i | |
| } | |
| } | |
| function h(t) { | |
| function e(e, n, r, o, i, s) { | |
| var a = r[o]; | |
| if (null != a) return t(n, a, o, i || v, s); | |
| var u = !e; | |
| return u | |
| } | |
| var n = e.bind(null, !1, !0); | |
| return n.weak = e.bind(null, !1, !1), n.isRequired = e.bind(null, !0, !0), n.weak.isRequired = e.bind(null, !0, !1), n.isRequired.weak = n.weak.isRequired, n | |
| } | |
| var f = t("./ReactComponent"), | |
| m = (t("./ReactPropTypeLocationNames"), t("./warning"), t("./createObjectFrom")), | |
| g = { | |
| array: i("array"), | |
| bool: i("boolean"), | |
| func: i("function"), | |
| number: i("number"), | |
| object: i("object"), | |
| string: i("string"), | |
| shape: a, | |
| oneOf: s, | |
| oneOfType: d, | |
| arrayOf: l, | |
| instanceOf: u, | |
| renderable: c(), | |
| component: p(), | |
| any: o() | |
| }, | |
| v = "<<anonymous>>"; | |
| e.exports = g | |
| }, { | |
| "./ReactComponent": 27, | |
| "./ReactPropTypeLocationNames": 60, | |
| "./createObjectFrom": 92, | |
| "./warning": 131 | |
| } | |
| ], | |
| 63: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n() { | |
| this.listenersToPut = [] | |
| } | |
| var r = t("./PooledClass"), | |
| o = t("./ReactEventEmitter"), | |
| i = t("./mixInto"); | |
| i(n, { | |
| enqueuePutListener: function (t, e, n) { | |
| this.listenersToPut.push({ | |
| rootNodeID: t, | |
| propKey: e, | |
| propValue: n | |
| }) | |
| }, | |
| putListeners: function () { | |
| for (var t = 0; t < this.listenersToPut.length; t++) { | |
| var e = this.listenersToPut[t]; | |
| o.putListener(e.rootNodeID, e.propKey, e.propValue) | |
| } | |
| }, | |
| reset: function () { | |
| this.listenersToPut.length = 0 | |
| }, | |
| destructor: function () { | |
| this.reset() | |
| } | |
| }), r.addPoolingTo(n), e.exports = n | |
| }, { | |
| "./PooledClass": 23, | |
| "./ReactEventEmitter": 46, | |
| "./mixInto": 122 | |
| } | |
| ], | |
| 64: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n() { | |
| this.reinitializeTransaction(), this.renderToStaticMarkup = !1, this.reactMountReady = s.getPooled(null), this.putListenerQueue = a.getPooled() | |
| } | |
| var r = t("./PooledClass"), | |
| o = t("./ReactEventEmitter"), | |
| i = t("./ReactInputSelection"), | |
| s = t("./ReactMountReady"), | |
| a = t("./ReactPutListenerQueue"), | |
| u = t("./Transaction"), | |
| l = t("./mixInto"), | |
| c = { | |
| initialize: i.getSelectionInformation, | |
| close: i.restoreSelection | |
| }, | |
| p = { | |
| initialize: function () { | |
| var t = o.isEnabled(); | |
| return o.setEnabled(!1), t | |
| }, | |
| close: function (t) { | |
| o.setEnabled(t) | |
| } | |
| }, | |
| d = { | |
| initialize: function () { | |
| this.reactMountReady.reset() | |
| }, | |
| close: function () { | |
| this.reactMountReady.notifyAll() | |
| } | |
| }, | |
| h = { | |
| initialize: function () { | |
| this.putListenerQueue.reset() | |
| }, | |
| close: function () { | |
| this.putListenerQueue.putListeners() | |
| } | |
| }, | |
| f = [h, c, p, d], | |
| m = { | |
| getTransactionWrappers: function () { | |
| return f | |
| }, | |
| getReactMountReady: function () { | |
| return this.reactMountReady | |
| }, | |
| getPutListenerQueue: function () { | |
| return this.putListenerQueue | |
| }, | |
| destructor: function () { | |
| s.release(this.reactMountReady), this.reactMountReady = null, a.release(this.putListenerQueue), this.putListenerQueue = null | |
| } | |
| }; | |
| l(n, u.Mixin), l(n, m), r.addPoolingTo(n), e.exports = n | |
| }, { | |
| "./PooledClass": 23, | |
| "./ReactEventEmitter": 46, | |
| "./ReactInputSelection": 50, | |
| "./ReactMountReady": 54, | |
| "./ReactPutListenerQueue": 63, | |
| "./Transaction": 83, | |
| "./mixInto": 122 | |
| } | |
| ], | |
| 65: [ | |
| function (t, e) { | |
| "use strict"; | |
| var n = { | |
| injectCreateReactRootIndex: function (t) { | |
| r.createReactRootIndex = t | |
| } | |
| }, | |
| r = { | |
| createReactRootIndex: null, | |
| injection: n | |
| }; | |
| e.exports = r | |
| }, {} | |
| ], | |
| 66: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t) { | |
| l(o.isValidComponent(t)), l(!(2 === arguments.length && "function" == typeof arguments[1])); | |
| var e; | |
| try { | |
| var n = i.createReactRootID(); | |
| return e = a.getPooled(!1), e.perform(function () { | |
| var r = u(t), | |
| o = r.mountComponent(n, e, 0); | |
| return s.addChecksumToMarkup(o) | |
| }, null) | |
| } finally { | |
| a.release(e) | |
| } | |
| } | |
| function r(t) { | |
| l(o.isValidComponent(t)); | |
| var e; | |
| try { | |
| var n = i.createReactRootID(); | |
| return e = a.getPooled(!0), e.perform(function () { | |
| var r = u(t); | |
| return r.mountComponent(n, e, 0) | |
| }, null) | |
| } finally { | |
| a.release(e) | |
| } | |
| } | |
| var o = t("./ReactComponent"), | |
| i = t("./ReactInstanceHandles"), | |
| s = t("./ReactMarkupChecksum"), | |
| a = t("./ReactServerRenderingTransaction"), | |
| u = t("./instantiateReactComponent"), | |
| l = t("./invariant"); | |
| e.exports = { | |
| renderComponentToString: n, | |
| renderComponentToStaticMarkup: r | |
| } | |
| }, { | |
| "./ReactComponent": 27, | |
| "./ReactInstanceHandles": 51, | |
| "./ReactMarkupChecksum": 52, | |
| "./ReactServerRenderingTransaction": 67, | |
| "./instantiateReactComponent": 109, | |
| "./invariant": 110 | |
| } | |
| ], | |
| 67: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t) { | |
| this.reinitializeTransaction(), this.renderToStaticMarkup = t, this.reactMountReady = o.getPooled(null), this.putListenerQueue = i.getPooled() | |
| } | |
| var r = t("./PooledClass"), | |
| o = t("./ReactMountReady"), | |
| i = t("./ReactPutListenerQueue"), | |
| s = t("./Transaction"), | |
| a = t("./emptyFunction"), | |
| u = t("./mixInto"), | |
| l = { | |
| initialize: function () { | |
| this.reactMountReady.reset() | |
| }, | |
| close: a | |
| }, | |
| c = { | |
| initialize: function () { | |
| this.putListenerQueue.reset() | |
| }, | |
| close: a | |
| }, | |
| p = [c, l], | |
| d = { | |
| getTransactionWrappers: function () { | |
| return p | |
| }, | |
| getReactMountReady: function () { | |
| return this.reactMountReady | |
| }, | |
| getPutListenerQueue: function () { | |
| return this.putListenerQueue | |
| }, | |
| destructor: function () { | |
| o.release(this.reactMountReady), this.reactMountReady = null, i.release(this.putListenerQueue), this.putListenerQueue = null | |
| } | |
| }; | |
| u(n, s.Mixin), u(n, d), r.addPoolingTo(n), e.exports = n | |
| }, { | |
| "./PooledClass": 23, | |
| "./ReactMountReady": 54, | |
| "./ReactPutListenerQueue": 63, | |
| "./Transaction": 83, | |
| "./emptyFunction": 94, | |
| "./mixInto": 122 | |
| } | |
| ], | |
| 68: [ | |
| function (t, e) { | |
| "use strict"; | |
| var n = t("./DOMPropertyOperations"), | |
| r = t("./ReactBrowserComponentMixin"), | |
| o = t("./ReactComponent"), | |
| i = t("./escapeTextForBrowser"), | |
| s = t("./mixInto"), | |
| a = function (t) { | |
| this.construct({ | |
| text: t | |
| }) | |
| }; | |
| a.ConvenienceConstructor = function (t) { | |
| return new a(t.text) | |
| }, s(a, o.Mixin), s(a, r), s(a, { | |
| mountComponent: function (t, e, r) { | |
| o.Mixin.mountComponent.call(this, t, e, r); | |
| var s = i(this.props.text); | |
| return e.renderToStaticMarkup ? s : "<span " + n.createMarkupForID(t) + ">" + s + "</span>" | |
| }, | |
| receiveComponent: function (t) { | |
| var e = t.props; | |
| e.text !== this.props.text && (this.props.text = e.text, o.BackendIDOperations.updateTextContentByID(this._rootNodeID, e.text)) | |
| } | |
| }), a.type = a, a.prototype.type = a, e.exports = a | |
| }, { | |
| "./DOMPropertyOperations": 9, | |
| "./ReactBrowserComponentMixin": 25, | |
| "./ReactComponent": 27, | |
| "./escapeTextForBrowser": 96, | |
| "./mixInto": 122 | |
| } | |
| ], | |
| 69: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n() { | |
| l(p) | |
| } | |
| function r(t, e) { | |
| n(), p.batchedUpdates(t, e) | |
| } | |
| function o(t, e) { | |
| return t._mountDepth - e._mountDepth | |
| } | |
| function i() { | |
| c.sort(o); | |
| for (var t = 0; t < c.length; t++) { | |
| var e = c[t]; | |
| if (e.isMounted()) { | |
| var n = e._pendingCallbacks; | |
| if (e._pendingCallbacks = null, e.performUpdateIfNecessary(), n) | |
| for (var r = 0; r < n.length; r++) n[r].call(e) | |
| } | |
| } | |
| } | |
| function s() { | |
| c.length = 0 | |
| } | |
| function a(t, e) { | |
| return l(!e || "function" == typeof e), n(), p.isBatchingUpdates ? (c.push(t), void(e && (t._pendingCallbacks ? t._pendingCallbacks.push(e) : t._pendingCallbacks = [e]))) : (t.performUpdateIfNecessary(), void(e && e.call(t))) | |
| } | |
| var u = t("./ReactPerf"), | |
| l = t("./invariant"), | |
| c = [], | |
| p = null, | |
| d = u.measure("ReactUpdates", "flushBatchedUpdates", function () { | |
| try { | |
| i() | |
| } finally { | |
| s() | |
| } | |
| }), | |
| h = { | |
| injectBatchingStrategy: function (t) { | |
| l(t), l("function" == typeof t.batchedUpdates), l("boolean" == typeof t.isBatchingUpdates), p = t | |
| } | |
| }, | |
| f = { | |
| batchedUpdates: r, | |
| enqueueUpdate: a, | |
| flushBatchedUpdates: d, | |
| injection: h | |
| }; | |
| e.exports = f | |
| }, { | |
| "./ReactPerf": 58, | |
| "./invariant": 110 | |
| } | |
| ], | |
| 70: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t) { | |
| if ("selectionStart" in t && s.hasSelectionCapabilities(t)) return { | |
| start: t.selectionStart, | |
| end: t.selectionEnd | |
| }; | |
| if (document.selection) { | |
| var e = document.selection.createRange(); | |
| return { | |
| parentElement: e.parentElement(), | |
| text: e.text, | |
| top: e.boundingTop, | |
| left: e.boundingLeft | |
| } | |
| } | |
| var n = window.getSelection(); | |
| return { | |
| anchorNode: n.anchorNode, | |
| anchorOffset: n.anchorOffset, | |
| focusNode: n.focusNode, | |
| focusOffset: n.focusOffset | |
| } | |
| } | |
| function r(t) { | |
| if (!v && null != f && f == u()) { | |
| var e = n(f); | |
| if (!g || !p(g, e)) { | |
| g = e; | |
| var r = a.getPooled(h.select, m, t); | |
| return r.type = "select", r.target = f, i.accumulateTwoPhaseDispatches(r), r | |
| } | |
| } | |
| } | |
| var o = t("./EventConstants"), | |
| i = t("./EventPropagators"), | |
| s = t("./ReactInputSelection"), | |
| a = t("./SyntheticEvent"), | |
| u = t("./getActiveElement"), | |
| l = t("./isTextInputElement"), | |
| c = t("./keyOf"), | |
| p = t("./shallowEqual"), | |
| d = o.topLevelTypes, | |
| h = { | |
| select: { | |
| phasedRegistrationNames: { | |
| bubbled: c({ | |
| onSelect: null | |
| }), | |
| captured: c({ | |
| onSelectCapture: null | |
| }) | |
| }, | |
| dependencies: [d.topBlur, d.topContextMenu, d.topFocus, d.topKeyDown, d.topMouseDown, d.topMouseUp, d.topSelectionChange] | |
| } | |
| }, | |
| f = null, | |
| m = null, | |
| g = null, | |
| v = !1, | |
| y = { | |
| eventTypes: h, | |
| extractEvents: function (t, e, n, o) { | |
| switch (t) { | |
| case d.topFocus: | |
| (l(e) || "true" === e.contentEditable) && (f = e, m = n, g = null); | |
| break; | |
| case d.topBlur: | |
| f = null, m = null, g = null; | |
| break; | |
| case d.topMouseDown: | |
| v = !0; | |
| break; | |
| case d.topContextMenu: | |
| case d.topMouseUp: | |
| return v = !1, r(o); | |
| case d.topSelectionChange: | |
| case d.topKeyDown: | |
| case d.topKeyUp: | |
| return r(o) | |
| } | |
| } | |
| }; | |
| e.exports = y | |
| }, { | |
| "./EventConstants": 14, | |
| "./EventPropagators": 19, | |
| "./ReactInputSelection": 50, | |
| "./SyntheticEvent": 76, | |
| "./getActiveElement": 100, | |
| "./isTextInputElement": 113, | |
| "./keyOf": 117, | |
| "./shallowEqual": 127 | |
| } | |
| ], | |
| 71: [ | |
| function (t, e) { | |
| "use strict"; | |
| var n = Math.pow(2, 53), | |
| r = { | |
| createReactRootIndex: function () { | |
| return Math.ceil(Math.random() * n) | |
| } | |
| }; | |
| e.exports = r | |
| }, {} | |
| ], | |
| 72: [ | |
| function (t, e) { | |
| "use strict"; | |
| var n = t("./EventConstants"), | |
| r = t("./EventPluginUtils"), | |
| o = t("./EventPropagators"), | |
| i = t("./SyntheticClipboardEvent"), | |
| s = t("./SyntheticEvent"), | |
| a = t("./SyntheticFocusEvent"), | |
| u = t("./SyntheticKeyboardEvent"), | |
| l = t("./SyntheticMouseEvent"), | |
| c = t("./SyntheticDragEvent"), | |
| p = t("./SyntheticTouchEvent"), | |
| d = t("./SyntheticUIEvent"), | |
| h = t("./SyntheticWheelEvent"), | |
| f = t("./invariant"), | |
| m = t("./keyOf"), | |
| g = n.topLevelTypes, | |
| v = { | |
| blur: { | |
| phasedRegistrationNames: { | |
| bubbled: m({ | |
| onBlur: !0 | |
| }), | |
| captured: m({ | |
| onBlurCapture: !0 | |
| }) | |
| } | |
| }, | |
| click: { | |
| phasedRegistrationNames: { | |
| bubbled: m({ | |
| onClick: !0 | |
| }), | |
| captured: m({ | |
| onClickCapture: !0 | |
| }) | |
| } | |
| }, | |
| contextMenu: { | |
| phasedRegistrationNames: { | |
| bubbled: m({ | |
| onContextMenu: !0 | |
| }), | |
| captured: m({ | |
| onContextMenuCapture: !0 | |
| }) | |
| } | |
| }, | |
| copy: { | |
| phasedRegistrationNames: { | |
| bubbled: m({ | |
| onCopy: !0 | |
| }), | |
| captured: m({ | |
| onCopyCapture: !0 | |
| }) | |
| } | |
| }, | |
| cut: { | |
| phasedRegistrationNames: { | |
| bubbled: m({ | |
| onCut: !0 | |
| }), | |
| captured: m({ | |
| onCutCapture: !0 | |
| }) | |
| } | |
| }, | |
| doubleClick: { | |
| phasedRegistrationNames: { | |
| bubbled: m({ | |
| onDoubleClick: !0 | |
| }), | |
| captured: m({ | |
| onDoubleClickCapture: !0 | |
| }) | |
| } | |
| }, | |
| drag: { | |
| phasedRegistrationNames: { | |
| bubbled: m({ | |
| onDrag: !0 | |
| }), | |
| captured: m({ | |
| onDragCapture: !0 | |
| }) | |
| } | |
| }, | |
| dragEnd: { | |
| phasedRegistrationNames: { | |
| bubbled: m({ | |
| onDragEnd: !0 | |
| }), | |
| captured: m({ | |
| onDragEndCapture: !0 | |
| }) | |
| } | |
| }, | |
| dragEnter: { | |
| phasedRegistrationNames: { | |
| bubbled: m({ | |
| onDragEnter: !0 | |
| }), | |
| captured: m({ | |
| onDragEnterCapture: !0 | |
| }) | |
| } | |
| }, | |
| dragExit: { | |
| phasedRegistrationNames: { | |
| bubbled: m({ | |
| onDragExit: !0 | |
| }), | |
| captured: m({ | |
| onDragExitCapture: !0 | |
| }) | |
| } | |
| }, | |
| dragLeave: { | |
| phasedRegistrationNames: { | |
| bubbled: m({ | |
| onDragLeave: !0 | |
| }), | |
| captured: m({ | |
| onDragLeaveCapture: !0 | |
| }) | |
| } | |
| }, | |
| dragOver: { | |
| phasedRegistrationNames: { | |
| bubbled: m({ | |
| onDragOver: !0 | |
| }), | |
| captured: m({ | |
| onDragOverCapture: !0 | |
| }) | |
| } | |
| }, | |
| dragStart: { | |
| phasedRegistrationNames: { | |
| bubbled: m({ | |
| onDragStart: !0 | |
| }), | |
| captured: m({ | |
| onDragStartCapture: !0 | |
| }) | |
| } | |
| }, | |
| drop: { | |
| phasedRegistrationNames: { | |
| bubbled: m({ | |
| onDrop: !0 | |
| }), | |
| captured: m({ | |
| onDropCapture: !0 | |
| }) | |
| } | |
| }, | |
| focus: { | |
| phasedRegistrationNames: { | |
| bubbled: m({ | |
| onFocus: !0 | |
| }), | |
| captured: m({ | |
| onFocusCapture: !0 | |
| }) | |
| } | |
| }, | |
| input: { | |
| phasedRegistrationNames: { | |
| bubbled: m({ | |
| onInput: !0 | |
| }), | |
| captured: m({ | |
| onInputCapture: !0 | |
| }) | |
| } | |
| }, | |
| keyDown: { | |
| phasedRegistrationNames: { | |
| bubbled: m({ | |
| onKeyDown: !0 | |
| }), | |
| captured: m({ | |
| onKeyDownCapture: !0 | |
| }) | |
| } | |
| }, | |
| keyPress: { | |
| phasedRegistrationNames: { | |
| bubbled: m({ | |
| onKeyPress: !0 | |
| }), | |
| captured: m({ | |
| onKeyPressCapture: !0 | |
| }) | |
| } | |
| }, | |
| keyUp: { | |
| phasedRegistrationNames: { | |
| bubbled: m({ | |
| onKeyUp: !0 | |
| }), | |
| captured: m({ | |
| onKeyUpCapture: !0 | |
| }) | |
| } | |
| }, | |
| load: { | |
| phasedRegistrationNames: { | |
| bubbled: m({ | |
| onLoad: !0 | |
| }), | |
| captured: m({ | |
| onLoadCapture: !0 | |
| }) | |
| } | |
| }, | |
| error: { | |
| phasedRegistrationNames: { | |
| bubbled: m({ | |
| onError: !0 | |
| }), | |
| captured: m({ | |
| onErrorCapture: !0 | |
| }) | |
| } | |
| }, | |
| mouseDown: { | |
| phasedRegistrationNames: { | |
| bubbled: m({ | |
| onMouseDown: !0 | |
| }), | |
| captured: m({ | |
| onMouseDownCapture: !0 | |
| }) | |
| } | |
| }, | |
| mouseMove: { | |
| phasedRegistrationNames: { | |
| bubbled: m({ | |
| onMouseMove: !0 | |
| }), | |
| captured: m({ | |
| onMouseMoveCapture: !0 | |
| }) | |
| } | |
| }, | |
| mouseOut: { | |
| phasedRegistrationNames: { | |
| bubbled: m({ | |
| onMouseOut: !0 | |
| }), | |
| captured: m({ | |
| onMouseOutCapture: !0 | |
| }) | |
| } | |
| }, | |
| mouseOver: { | |
| phasedRegistrationNames: { | |
| bubbled: m({ | |
| onMouseOver: !0 | |
| }), | |
| captured: m({ | |
| onMouseOverCapture: !0 | |
| }) | |
| } | |
| }, | |
| mouseUp: { | |
| phasedRegistrationNames: { | |
| bubbled: m({ | |
| onMouseUp: !0 | |
| }), | |
| captured: m({ | |
| onMouseUpCapture: !0 | |
| }) | |
| } | |
| }, | |
| paste: { | |
| phasedRegistrationNames: { | |
| bubbled: m({ | |
| onPaste: !0 | |
| }), | |
| captured: m({ | |
| onPasteCapture: !0 | |
| }) | |
| } | |
| }, | |
| reset: { | |
| phasedRegistrationNames: { | |
| bubbled: m({ | |
| onReset: !0 | |
| }), | |
| captured: m({ | |
| onResetCapture: !0 | |
| }) | |
| } | |
| }, | |
| scroll: { | |
| phasedRegistrationNames: { | |
| bubbled: m({ | |
| onScroll: !0 | |
| }), | |
| captured: m({ | |
| onScrollCapture: !0 | |
| }) | |
| } | |
| }, | |
| submit: { | |
| phasedRegistrationNames: { | |
| bubbled: m({ | |
| onSubmit: !0 | |
| }), | |
| captured: m({ | |
| onSubmitCapture: !0 | |
| }) | |
| } | |
| }, | |
| touchCancel: { | |
| phasedRegistrationNames: { | |
| bubbled: m({ | |
| onTouchCancel: !0 | |
| }), | |
| captured: m({ | |
| onTouchCancelCapture: !0 | |
| }) | |
| } | |
| }, | |
| touchEnd: { | |
| phasedRegistrationNames: { | |
| bubbled: m({ | |
| onTouchEnd: !0 | |
| }), | |
| captured: m({ | |
| onTouchEndCapture: !0 | |
| }) | |
| } | |
| }, | |
| touchMove: { | |
| phasedRegistrationNames: { | |
| bubbled: m({ | |
| onTouchMove: !0 | |
| }), | |
| captured: m({ | |
| onTouchMoveCapture: !0 | |
| }) | |
| } | |
| }, | |
| touchStart: { | |
| phasedRegistrationNames: { | |
| bubbled: m({ | |
| onTouchStart: !0 | |
| }), | |
| captured: m({ | |
| onTouchStartCapture: !0 | |
| }) | |
| } | |
| }, | |
| wheel: { | |
| phasedRegistrationNames: { | |
| bubbled: m({ | |
| onWheel: !0 | |
| }), | |
| captured: m({ | |
| onWheelCapture: !0 | |
| }) | |
| } | |
| } | |
| }, | |
| y = { | |
| topBlur: v.blur, | |
| topClick: v.click, | |
| topContextMenu: v.contextMenu, | |
| topCopy: v.copy, | |
| topCut: v.cut, | |
| topDoubleClick: v.doubleClick, | |
| topDrag: v.drag, | |
| topDragEnd: v.dragEnd, | |
| topDragEnter: v.dragEnter, | |
| topDragExit: v.dragExit, | |
| topDragLeave: v.dragLeave, | |
| topDragOver: v.dragOver, | |
| topDragStart: v.dragStart, | |
| topDrop: v.drop, | |
| topError: v.error, | |
| topFocus: v.focus, | |
| topInput: v.input, | |
| topKeyDown: v.keyDown, | |
| topKeyPress: v.keyPress, | |
| topKeyUp: v.keyUp, | |
| topLoad: v.load, | |
| topMouseDown: v.mouseDown, | |
| topMouseMove: v.mouseMove, | |
| topMouseOut: v.mouseOut, | |
| topMouseOver: v.mouseOver, | |
| topMouseUp: v.mouseUp, | |
| topPaste: v.paste, | |
| topReset: v.reset, | |
| topScroll: v.scroll, | |
| topSubmit: v.submit, | |
| topTouchCancel: v.touchCancel, | |
| topTouchEnd: v.touchEnd, | |
| topTouchMove: v.touchMove, | |
| topTouchStart: v.touchStart, | |
| topWheel: v.wheel | |
| }; | |
| for (var w in y) y[w].dependencies = [w]; | |
| var _ = { | |
| eventTypes: v, | |
| executeDispatch: function (t, e, n) { | |
| var o = r.executeDispatch(t, e, n); | |
| o === !1 && (t.stopPropagation(), t.preventDefault()) | |
| }, | |
| extractEvents: function (t, e, n, r) { | |
| var m = y[t]; | |
| if (!m) return null; | |
| var v; | |
| switch (t) { | |
| case g.topInput: | |
| case g.topLoad: | |
| case g.topError: | |
| case g.topReset: | |
| case g.topSubmit: | |
| v = s; | |
| break; | |
| case g.topKeyDown: | |
| case g.topKeyPress: | |
| case g.topKeyUp: | |
| v = u; | |
| break; | |
| case g.topBlur: | |
| case g.topFocus: | |
| v = a; | |
| break; | |
| case g.topClick: | |
| if (2 === r.button) return null; | |
| case g.topContextMenu: | |
| case g.topDoubleClick: | |
| case g.topMouseDown: | |
| case g.topMouseMove: | |
| case g.topMouseOut: | |
| case g.topMouseOver: | |
| case g.topMouseUp: | |
| v = l; | |
| break; | |
| case g.topDrag: | |
| case g.topDragEnd: | |
| case g.topDragEnter: | |
| case g.topDragExit: | |
| case g.topDragLeave: | |
| case g.topDragOver: | |
| case g.topDragStart: | |
| case g.topDrop: | |
| v = c; | |
| break; | |
| case g.topTouchCancel: | |
| case g.topTouchEnd: | |
| case g.topTouchMove: | |
| case g.topTouchStart: | |
| v = p; | |
| break; | |
| case g.topScroll: | |
| v = d; | |
| break; | |
| case g.topWheel: | |
| v = h; | |
| break; | |
| case g.topCopy: | |
| case g.topCut: | |
| case g.topPaste: | |
| v = i | |
| } | |
| f(v); | |
| var w = v.getPooled(m, n, r); | |
| return o.accumulateTwoPhaseDispatches(w), w | |
| } | |
| }; | |
| e.exports = _ | |
| }, { | |
| "./EventConstants": 14, | |
| "./EventPluginUtils": 18, | |
| "./EventPropagators": 19, | |
| "./SyntheticClipboardEvent": 73, | |
| "./SyntheticDragEvent": 75, | |
| "./SyntheticEvent": 76, | |
| "./SyntheticFocusEvent": 77, | |
| "./SyntheticKeyboardEvent": 78, | |
| "./SyntheticMouseEvent": 79, | |
| "./SyntheticTouchEvent": 80, | |
| "./SyntheticUIEvent": 81, | |
| "./SyntheticWheelEvent": 82, | |
| "./invariant": 110, | |
| "./keyOf": 117 | |
| } | |
| ], | |
| 73: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t, e, n) { | |
| r.call(this, t, e, n) | |
| } | |
| var r = t("./SyntheticEvent"), | |
| o = { | |
| clipboardData: function (t) { | |
| return "clipboardData" in t ? t.clipboardData : window.clipboardData | |
| } | |
| }; | |
| r.augmentClass(n, o), e.exports = n | |
| }, { | |
| "./SyntheticEvent": 76 | |
| } | |
| ], | |
| 74: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t, e, n) { | |
| r.call(this, t, e, n) | |
| } | |
| var r = t("./SyntheticEvent"), | |
| o = { | |
| data: null | |
| }; | |
| r.augmentClass(n, o), e.exports = n | |
| }, { | |
| "./SyntheticEvent": 76 | |
| } | |
| ], | |
| 75: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t, e, n) { | |
| r.call(this, t, e, n) | |
| } | |
| var r = t("./SyntheticMouseEvent"), | |
| o = { | |
| dataTransfer: null | |
| }; | |
| r.augmentClass(n, o), e.exports = n | |
| }, { | |
| "./SyntheticMouseEvent": 79 | |
| } | |
| ], | |
| 76: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t, e, n) { | |
| this.dispatchConfig = t, this.dispatchMarker = e, this.nativeEvent = n; | |
| var r = this.constructor.Interface; | |
| for (var i in r) | |
| if (r.hasOwnProperty(i)) { | |
| var s = r[i]; | |
| this[i] = s ? s(n) : n[i] | |
| } | |
| var a = null != n.defaultPrevented ? n.defaultPrevented : n.returnValue === !1; | |
| this.isDefaultPrevented = a ? o.thatReturnsTrue : o.thatReturnsFalse, this.isPropagationStopped = o.thatReturnsFalse | |
| } | |
| var r = t("./PooledClass"), | |
| o = t("./emptyFunction"), | |
| i = t("./getEventTarget"), | |
| s = t("./merge"), | |
| a = t("./mergeInto"), | |
| u = { | |
| type: null, | |
| target: i, | |
| currentTarget: o.thatReturnsNull, | |
| eventPhase: null, | |
| bubbles: null, | |
| cancelable: null, | |
| timeStamp: function (t) { | |
| return t.timeStamp || Date.now() | |
| }, | |
| defaultPrevented: null, | |
| isTrusted: null | |
| }; | |
| a(n.prototype, { | |
| preventDefault: function () { | |
| this.defaultPrevented = !0; | |
| var t = this.nativeEvent; | |
| t.preventDefault ? t.preventDefault() : t.returnValue = !1, this.isDefaultPrevented = o.thatReturnsTrue | |
| }, | |
| stopPropagation: function () { | |
| var t = this.nativeEvent; | |
| t.stopPropagation ? t.stopPropagation() : t.cancelBubble = !0, this.isPropagationStopped = o.thatReturnsTrue | |
| }, | |
| persist: function () { | |
| this.isPersistent = o.thatReturnsTrue | |
| }, | |
| isPersistent: o.thatReturnsFalse, | |
| destructor: function () { | |
| var t = this.constructor.Interface; | |
| for (var e in t) this[e] = null; | |
| this.dispatchConfig = null, this.dispatchMarker = null, this.nativeEvent = null | |
| } | |
| }), n.Interface = u, n.augmentClass = function (t, e) { | |
| var n = this, | |
| o = Object.create(n.prototype); | |
| a(o, t.prototype), t.prototype = o, t.prototype.constructor = t, t.Interface = s(n.Interface, e), t.augmentClass = n.augmentClass, r.addPoolingTo(t, r.threeArgumentPooler) | |
| }, r.addPoolingTo(n, r.threeArgumentPooler), e.exports = n | |
| }, { | |
| "./PooledClass": 23, | |
| "./emptyFunction": 94, | |
| "./getEventTarget": 102, | |
| "./merge": 119, | |
| "./mergeInto": 121 | |
| } | |
| ], | |
| 77: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t, e, n) { | |
| r.call(this, t, e, n) | |
| } | |
| var r = t("./SyntheticUIEvent"), | |
| o = { | |
| relatedTarget: null | |
| }; | |
| r.augmentClass(n, o), e.exports = n | |
| }, { | |
| "./SyntheticUIEvent": 81 | |
| } | |
| ], | |
| 78: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t, e, n) { | |
| r.call(this, t, e, n) | |
| } | |
| var r = t("./SyntheticUIEvent"), | |
| o = t("./getEventKey"), | |
| i = { | |
| key: o, | |
| location: null, | |
| ctrlKey: null, | |
| shiftKey: null, | |
| altKey: null, | |
| metaKey: null, | |
| repeat: null, | |
| locale: null, | |
| "char": null, | |
| charCode: null, | |
| keyCode: null, | |
| which: null | |
| }; | |
| r.augmentClass(n, i), e.exports = n | |
| }, { | |
| "./SyntheticUIEvent": 81, | |
| "./getEventKey": 101 | |
| } | |
| ], | |
| 79: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t, e, n) { | |
| r.call(this, t, e, n) | |
| } | |
| var r = t("./SyntheticUIEvent"), | |
| o = t("./ViewportMetrics"), | |
| i = { | |
| screenX: null, | |
| screenY: null, | |
| clientX: null, | |
| clientY: null, | |
| ctrlKey: null, | |
| shiftKey: null, | |
| altKey: null, | |
| metaKey: null, | |
| button: function (t) { | |
| var e = t.button; | |
| return "which" in t ? e : 2 === e ? 2 : 4 === e ? 1 : 0 | |
| }, | |
| buttons: null, | |
| relatedTarget: function (t) { | |
| return t.relatedTarget || (t.fromElement === t.srcElement ? t.toElement : t.fromElement) | |
| }, | |
| pageX: function (t) { | |
| return "pageX" in t ? t.pageX : t.clientX + o.currentScrollLeft | |
| }, | |
| pageY: function (t) { | |
| return "pageY" in t ? t.pageY : t.clientY + o.currentScrollTop | |
| } | |
| }; | |
| r.augmentClass(n, i), e.exports = n | |
| }, { | |
| "./SyntheticUIEvent": 81, | |
| "./ViewportMetrics": 84 | |
| } | |
| ], | |
| 80: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t, e, n) { | |
| r.call(this, t, e, n) | |
| } | |
| var r = t("./SyntheticUIEvent"), | |
| o = { | |
| touches: null, | |
| targetTouches: null, | |
| changedTouches: null, | |
| altKey: null, | |
| metaKey: null, | |
| ctrlKey: null, | |
| shiftKey: null | |
| }; | |
| r.augmentClass(n, o), e.exports = n | |
| }, { | |
| "./SyntheticUIEvent": 81 | |
| } | |
| ], | |
| 81: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t, e, n) { | |
| r.call(this, t, e, n) | |
| } | |
| var r = t("./SyntheticEvent"), | |
| o = { | |
| view: null, | |
| detail: null | |
| }; | |
| r.augmentClass(n, o), e.exports = n | |
| }, { | |
| "./SyntheticEvent": 76 | |
| } | |
| ], | |
| 82: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t, e, n) { | |
| r.call(this, t, e, n) | |
| } | |
| var r = t("./SyntheticMouseEvent"), | |
| o = { | |
| deltaX: function (t) { | |
| return "deltaX" in t ? t.deltaX : "wheelDeltaX" in t ? -t.wheelDeltaX : 0 | |
| }, | |
| deltaY: function (t) { | |
| return "deltaY" in t ? t.deltaY : "wheelDeltaY" in t ? -t.wheelDeltaY : "wheelDelta" in t ? -t.wheelDelta : 0 | |
| }, | |
| deltaZ: null, | |
| deltaMode: null | |
| }; | |
| r.augmentClass(n, o), e.exports = n | |
| }, { | |
| "./SyntheticMouseEvent": 79 | |
| } | |
| ], | |
| 83: [ | |
| function (t, e) { | |
| "use strict"; | |
| var n = t("./invariant"), | |
| r = { | |
| reinitializeTransaction: function () { | |
| this.transactionWrappers = this.getTransactionWrappers(), this.wrapperInitData ? this.wrapperInitData.length = 0 : this.wrapperInitData = [], this.timingMetrics || (this.timingMetrics = {}), this.timingMetrics.methodInvocationTime = 0, this.timingMetrics.wrapperInitTimes ? this.timingMetrics.wrapperInitTimes.length = 0 : this.timingMetrics.wrapperInitTimes = [], this.timingMetrics.wrapperCloseTimes ? this.timingMetrics.wrapperCloseTimes.length = 0 : this.timingMetrics.wrapperCloseTimes = [], this._isInTransaction = !1 | |
| }, | |
| _isInTransaction: !1, | |
| getTransactionWrappers: null, | |
| isInTransaction: function () { | |
| return !!this._isInTransaction | |
| }, | |
| perform: function (t, e, r, o, i, s, a, u) { | |
| n(!this.isInTransaction()); | |
| var l, c, p = Date.now(); | |
| try { | |
| this._isInTransaction = !0, l = !0, this.initializeAll(0), c = t.call(e, r, o, i, s, a, u), l = !1 | |
| } finally { | |
| var d = Date.now(); | |
| this.methodInvocationTime += d - p; | |
| try { | |
| if (l) try { | |
| this.closeAll(0) | |
| } catch (h) {} else this.closeAll(0) | |
| } finally { | |
| this._isInTransaction = !1 | |
| } | |
| } | |
| return c | |
| }, | |
| initializeAll: function (t) { | |
| for (var e = this.transactionWrappers, n = this.timingMetrics.wrapperInitTimes, r = t; r < e.length; r++) { | |
| var i = Date.now(), | |
| s = e[r]; | |
| try { | |
| this.wrapperInitData[r] = o.OBSERVED_ERROR, this.wrapperInitData[r] = s.initialize ? s.initialize.call(this) : null | |
| } finally { | |
| var a = n[r], | |
| u = Date.now(); | |
| if (n[r] = (a || 0) + (u - i), this.wrapperInitData[r] === o.OBSERVED_ERROR) try { | |
| this.initializeAll(r + 1) | |
| } catch (l) {} | |
| } | |
| } | |
| }, | |
| closeAll: function (t) { | |
| n(this.isInTransaction()); | |
| for (var e = this.transactionWrappers, r = this.timingMetrics.wrapperCloseTimes, i = t; i < e.length; i++) { | |
| var s, a = e[i], | |
| u = Date.now(), | |
| l = this.wrapperInitData[i]; | |
| try { | |
| s = !0, l !== o.OBSERVED_ERROR && a.close && a.close.call(this, l), s = !1 | |
| } finally { | |
| var c = Date.now(), | |
| p = r[i]; | |
| if (r[i] = (p || 0) + (c - u), s) try { | |
| this.closeAll(i + 1) | |
| } catch (d) {} | |
| } | |
| } | |
| this.wrapperInitData.length = 0 | |
| } | |
| }, | |
| o = { | |
| Mixin: r, | |
| OBSERVED_ERROR: {} | |
| }; | |
| e.exports = o | |
| }, { | |
| "./invariant": 110 | |
| } | |
| ], | |
| 84: [ | |
| function (t, e) { | |
| "use strict"; | |
| var n = t("./getUnboundedScrollPosition"), | |
| r = { | |
| currentScrollLeft: 0, | |
| currentScrollTop: 0, | |
| refreshScrollValues: function () { | |
| var t = n(window); | |
| r.currentScrollLeft = t.x, r.currentScrollTop = t.y | |
| } | |
| }; | |
| e.exports = r | |
| }, { | |
| "./getUnboundedScrollPosition": 107 | |
| } | |
| ], | |
| 85: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t, e) { | |
| if (r(null != e), null == t) return e; | |
| var n = Array.isArray(t), | |
| o = Array.isArray(e); | |
| return n ? t.concat(e) : o ? [t].concat(e) : [t, e] | |
| } | |
| var r = t("./invariant"); | |
| e.exports = n | |
| }, { | |
| "./invariant": 110 | |
| } | |
| ], | |
| 86: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t) { | |
| for (var e = 1, n = 0, o = 0; o < t.length; o++) e = (e + t.charCodeAt(o)) % r, n = (n + e) % r; | |
| return e | n << 16 | |
| } | |
| var r = 65521; | |
| e.exports = n | |
| }, {} | |
| ], | |
| 87: [ | |
| function (t, e) { | |
| function n(t, e) { | |
| return t && e ? t === e ? !0 : r(t) ? !1 : r(e) ? n(t, e.parentNode) : t.contains ? t.contains(e) : t.compareDocumentPosition ? !!(16 & t.compareDocumentPosition(e)) : !1 : !1 | |
| } | |
| var r = t("./isTextNode"); | |
| e.exports = n | |
| }, { | |
| "./isTextNode": 114 | |
| } | |
| ], | |
| 88: [ | |
| function (t, e) { | |
| function n(t, e, n, r, o, i) { | |
| t = t || {}; | |
| for (var s, a = [e, n, r, o, i], u = 0; a[u];) { | |
| s = a[u++]; | |
| for (var l in s) t[l] = s[l]; | |
| s.hasOwnProperty && s.hasOwnProperty("toString") && "undefined" != typeof s.toString && t.toString !== s.toString && (t.toString = s.toString) | |
| } | |
| return t | |
| } | |
| e.exports = n | |
| }, {} | |
| ], | |
| 89: [ | |
| function (t, e) { | |
| function n(t) { | |
| return !!t && ("object" == typeof t || "function" == typeof t) && "length" in t && !("setInterval" in t) && "number" != typeof t.nodeType && (Array.isArray(t) || "callee" in t || "item" in t) | |
| } | |
| function r(t) { | |
| return n(t) ? Array.isArray(t) ? t.slice() : o(t) : [t] | |
| } | |
| var o = t("./toArray"); | |
| e.exports = r | |
| }, { | |
| "./toArray": 129 | |
| } | |
| ], | |
| 90: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t) { | |
| var e = r.createClass({ | |
| displayName: "ReactFullPageComponent" + (t.componentConstructor.displayName || ""), | |
| componentWillUnmount: function () { | |
| o(!1) | |
| }, | |
| render: function () { | |
| return this.transferPropsTo(t(null, this.props.children)) | |
| } | |
| }); | |
| return e | |
| } | |
| var r = t("./ReactCompositeComponent"), | |
| o = t("./invariant"); | |
| e.exports = n | |
| }, { | |
| "./ReactCompositeComponent": 29, | |
| "./invariant": 110 | |
| } | |
| ], | |
| 91: [ | |
| function (t, e) { | |
| function n(t) { | |
| var e = t.match(l); | |
| return e && e[1].toLowerCase() | |
| } | |
| function r(t, e) { | |
| var r = u; | |
| a(!!u); | |
| var o = n(t), | |
| l = o && s(o); | |
| if (l) { | |
| r.innerHTML = l[1] + t + l[2]; | |
| for (var c = l[0]; c--;) r = r.lastChild | |
| } else r.innerHTML = t; | |
| var p = r.getElementsByTagName("script"); | |
| p.length && (a(e), i(p).forEach(e)); | |
| for (var d = i(r.childNodes); r.lastChild;) r.removeChild(r.lastChild); | |
| return d | |
| } | |
| var o = t("./ExecutionEnvironment"), | |
| i = t("./createArrayFrom"), | |
| s = t("./getMarkupWrap"), | |
| a = t("./invariant"), | |
| u = o.canUseDOM ? document.createElement("div") : null, | |
| l = /^\s*<(\w+)/; | |
| e.exports = r | |
| }, { | |
| "./ExecutionEnvironment": 20, | |
| "./createArrayFrom": 89, | |
| "./getMarkupWrap": 103, | |
| "./invariant": 110 | |
| } | |
| ], | |
| 92: [ | |
| function (t, e) { | |
| function n(t, e) { | |
| var n = {}, | |
| r = Array.isArray(e); | |
| "undefined" == typeof e && (e = !0); | |
| for (var o = t.length; o--;) n[t[o]] = r ? e[o] : e; | |
| return n | |
| } | |
| e.exports = n | |
| }, {} | |
| ], | |
| 93: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t, e) { | |
| var n = null == e || "boolean" == typeof e || "" === e; | |
| if (n) return ""; | |
| var o = isNaN(e); | |
| return o || 0 === e || r.isUnitlessNumber[t] ? "" + e : e + "px" | |
| } | |
| var r = t("./CSSProperty"); | |
| e.exports = n | |
| }, { | |
| "./CSSProperty": 2 | |
| } | |
| ], | |
| 94: [ | |
| function (t, e) { | |
| function n(t) { | |
| return function () { | |
| return t | |
| } | |
| } | |
| function r() {} | |
| var o = t("./copyProperties"); | |
| o(r, { | |
| thatReturns: n, | |
| thatReturnsFalse: n(!1), | |
| thatReturnsTrue: n(!0), | |
| thatReturnsNull: n(null), | |
| thatReturnsThis: function () { | |
| return this | |
| }, | |
| thatReturnsArgument: function (t) { | |
| return t | |
| } | |
| }), e.exports = r | |
| }, { | |
| "./copyProperties": 88 | |
| } | |
| ], | |
| 95: [ | |
| function (t, e) { | |
| "use strict"; | |
| var n = {}; | |
| e.exports = n | |
| }, {} | |
| ], | |
| 96: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t) { | |
| return o[t] | |
| } | |
| function r(t) { | |
| return ("" + t).replace(i, n) | |
| } | |
| var o = { | |
| "&": "&", | |
| ">": ">", | |
| "<": "<", | |
| '"': """, | |
| "'": "'", | |
| "/": "/" | |
| }, | |
| i = /[&><"'\/]/g; | |
| e.exports = r | |
| }, {} | |
| ], | |
| 97: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t, e, n) { | |
| var r = t; | |
| o(!r.hasOwnProperty(n)), null != e && (r[n] = e) | |
| } | |
| function r(t) { | |
| if (null == t) return t; | |
| var e = {}; | |
| return i(t, n, e), e | |
| } | |
| var o = t("./invariant"), | |
| i = t("./traverseAllChildren"); | |
| e.exports = r | |
| }, { | |
| "./invariant": 110, | |
| "./traverseAllChildren": 130 | |
| } | |
| ], | |
| 98: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t) { | |
| t.disabled || t.focus() | |
| } | |
| e.exports = n | |
| }, {} | |
| ], | |
| 99: [ | |
| function (t, e) { | |
| "use strict"; | |
| var n = function (t, e, n) { | |
| Array.isArray(t) ? t.forEach(e, n) : t && e.call(n, t) | |
| }; | |
| e.exports = n | |
| }, {} | |
| ], | |
| 100: [ | |
| function (t, e) { | |
| function n() { | |
| try { | |
| return document.activeElement || document.body | |
| } catch (t) { | |
| return document.body | |
| } | |
| } | |
| e.exports = n | |
| }, {} | |
| ], | |
| 101: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t) { | |
| return "key" in t ? r[t.key] || t.key : o[t.which || t.keyCode] || "Unidentified" | |
| } | |
| var r = { | |
| Esc: "Escape", | |
| Spacebar: " ", | |
| Left: "ArrowLeft", | |
| Up: "ArrowUp", | |
| Right: "ArrowRight", | |
| Down: "ArrowDown", | |
| Del: "Delete", | |
| Win: "OS", | |
| Menu: "ContextMenu", | |
| Apps: "ContextMenu", | |
| Scroll: "ScrollLock", | |
| MozPrintableKey: "Unidentified" | |
| }, | |
| o = { | |
| 8: "Backspace", | |
| 9: "Tab", | |
| 12: "Clear", | |
| 13: "Enter", | |
| 16: "Shift", | |
| 17: "Control", | |
| 18: "Alt", | |
| 19: "Pause", | |
| 20: "CapsLock", | |
| 27: "Escape", | |
| 32: " ", | |
| 33: "PageUp", | |
| 34: "PageDown", | |
| 35: "End", | |
| 36: "Home", | |
| 37: "ArrowLeft", | |
| 38: "ArrowUp", | |
| 39: "ArrowRight", | |
| 40: "ArrowDown", | |
| 45: "Insert", | |
| 46: "Delete", | |
| 112: "F1", | |
| 113: "F2", | |
| 114: "F3", | |
| 115: "F4", | |
| 116: "F5", | |
| 117: "F6", | |
| 118: "F7", | |
| 119: "F8", | |
| 120: "F9", | |
| 121: "F10", | |
| 122: "F11", | |
| 123: "F12", | |
| 144: "NumLock", | |
| 145: "ScrollLock", | |
| 224: "Meta" | |
| }; | |
| e.exports = n | |
| }, {} | |
| ], | |
| 102: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t) { | |
| var e = t.target || t.srcElement || window; | |
| return 3 === e.nodeType ? e.parentNode : e | |
| } | |
| e.exports = n | |
| }, {} | |
| ], | |
| 103: [ | |
| function (t, e) { | |
| function n(t) { | |
| return o(!!i), p.hasOwnProperty(t) || (t = "*"), s.hasOwnProperty(t) || (i.innerHTML = "*" === t ? "<link />" : "<" + t + "></" + t + ">", s[t] = !i.firstChild), s[t] ? p[t] : null | |
| } | |
| var r = t("./ExecutionEnvironment"), | |
| o = t("./invariant"), | |
| i = r.canUseDOM ? document.createElement("div") : null, | |
| s = { | |
| circle: !0, | |
| defs: !0, | |
| g: !0, | |
| line: !0, | |
| linearGradient: !0, | |
| path: !0, | |
| polygon: !0, | |
| polyline: !0, | |
| radialGradient: !0, | |
| rect: !0, | |
| stop: !0, | |
| text: !0 | |
| }, | |
| a = [1, '<select multiple="true">', "</select>"], | |
| u = [1, "<table>", "</table>"], | |
| l = [3, "<table><tbody><tr>", "</tr></tbody></table>"], | |
| c = [1, "<svg>", "</svg>"], | |
| p = { | |
| "*": [1, "?<div>", "</div>"], | |
| area: [1, "<map>", "</map>"], | |
| col: [2, "<table><tbody></tbody><colgroup>", "</colgroup></table>"], | |
| legend: [1, "<fieldset>", "</fieldset>"], | |
| param: [1, "<object>", "</object>"], | |
| tr: [2, "<table><tbody>", "</tbody></table>"], | |
| optgroup: a, | |
| option: a, | |
| caption: u, | |
| colgroup: u, | |
| tbody: u, | |
| tfoot: u, | |
| thead: u, | |
| td: l, | |
| th: l, | |
| circle: c, | |
| defs: c, | |
| g: c, | |
| line: c, | |
| linearGradient: c, | |
| path: c, | |
| polygon: c, | |
| polyline: c, | |
| radialGradient: c, | |
| rect: c, | |
| stop: c, | |
| text: c | |
| }; | |
| e.exports = n | |
| }, { | |
| "./ExecutionEnvironment": 20, | |
| "./invariant": 110 | |
| } | |
| ], | |
| 104: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t) { | |
| for (; t && t.firstChild;) t = t.firstChild; | |
| return t | |
| } | |
| function r(t) { | |
| for (; t;) { | |
| if (t.nextSibling) return t.nextSibling; | |
| t = t.parentNode | |
| } | |
| } | |
| function o(t, e) { | |
| for (var o = n(t), i = 0, s = 0; o;) { | |
| if (3 == o.nodeType) { | |
| if (s = i + o.textContent.length, e >= i && s >= e) return { | |
| node: o, | |
| offset: e - i | |
| }; | |
| i = s | |
| } | |
| o = n(r(o)) | |
| } | |
| } | |
| e.exports = o | |
| }, {} | |
| ], | |
| 105: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t) { | |
| return t ? t.nodeType === r ? t.documentElement : t.firstChild : null | |
| } | |
| var r = 9; | |
| e.exports = n | |
| }, {} | |
| ], | |
| 106: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n() { | |
| return !o && r.canUseDOM && (o = "textContent" in document.createElement("div") ? "textContent" : "innerText"), o | |
| } | |
| var r = t("./ExecutionEnvironment"), | |
| o = null; | |
| e.exports = n | |
| }, { | |
| "./ExecutionEnvironment": 20 | |
| } | |
| ], | |
| 107: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t) { | |
| return t === window ? { | |
| x: window.pageXOffset || document.documentElement.scrollLeft, | |
| y: window.pageYOffset || document.documentElement.scrollTop | |
| } : { | |
| x: t.scrollLeft, | |
| y: t.scrollTop | |
| } | |
| } | |
| e.exports = n | |
| }, {} | |
| ], | |
| 108: [ | |
| function (t, e) { | |
| function n(t) { | |
| return t.replace(r, "-$1").toLowerCase() | |
| } | |
| var r = /([A-Z])/g; | |
| e.exports = n | |
| }, {} | |
| ], | |
| 109: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t) { | |
| return t._descriptor = t, t | |
| } | |
| t("./warning"), e.exports = n | |
| }, { | |
| "./warning": 131 | |
| } | |
| ], | |
| 110: [ | |
| function (t, e) { | |
| "use strict"; | |
| var n = function (t) { | |
| if (!t) { | |
| var e = new Error("Minified exception occured; use the non-minified dev environment for the full error message and additional helpful warnings."); | |
| throw e.framesToPop = 1, e | |
| } | |
| }; | |
| e.exports = n | |
| }, {} | |
| ], | |
| 111: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t, e) { | |
| if (!o.canUseDOM || e && !("addEventListener" in document)) return !1; | |
| var n = "on" + t, | |
| i = n in document; | |
| if (!i) { | |
| var s = document.createElement("div"); | |
| s.setAttribute(n, "return;"), i = "function" == typeof s[n] | |
| } | |
| return !i && r && "wheel" === t && (i = document.implementation.hasFeature("Events.wheel", "3.0")), i | |
| } | |
| var r, o = t("./ExecutionEnvironment"); | |
| o.canUseDOM && (r = document.implementation && document.implementation.hasFeature && document.implementation.hasFeature("", "") !== !0), e.exports = n | |
| }, { | |
| "./ExecutionEnvironment": 20 | |
| } | |
| ], | |
| 112: [ | |
| function (t, e) { | |
| function n(t) { | |
| return !(!t || !("function" == typeof Node ? t instanceof Node : "object" == typeof t && "number" == typeof t.nodeType && "string" == typeof t.nodeName)) | |
| } | |
| e.exports = n | |
| }, {} | |
| ], | |
| 113: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t) { | |
| return t && ("INPUT" === t.nodeName && r[t.type] || "TEXTAREA" === t.nodeName) | |
| } | |
| var r = { | |
| color: !0, | |
| date: !0, | |
| datetime: !0, | |
| "datetime-local": !0, | |
| email: !0, | |
| month: !0, | |
| number: !0, | |
| password: !0, | |
| range: !0, | |
| search: !0, | |
| tel: !0, | |
| text: !0, | |
| time: !0, | |
| url: !0, | |
| week: !0 | |
| }; | |
| e.exports = n | |
| }, {} | |
| ], | |
| 114: [ | |
| function (t, e) { | |
| function n(t) { | |
| return r(t) && 3 == t.nodeType | |
| } | |
| var r = t("./isNode"); | |
| e.exports = n | |
| }, { | |
| "./isNode": 112 | |
| } | |
| ], | |
| 115: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t) { | |
| t || (t = ""); | |
| var e, n = arguments.length; | |
| if (n > 1) | |
| for (var r = 1; n > r; r++) e = arguments[r], e && (t += " " + e); | |
| return t | |
| } | |
| e.exports = n | |
| }, {} | |
| ], | |
| 116: [ | |
| function (t, e) { | |
| "use strict"; | |
| var n = t("./invariant"), | |
| r = function (t) { | |
| var e, r = {}; | |
| n(t instanceof Object && !Array.isArray(t)); | |
| for (e in t) t.hasOwnProperty(e) && (r[e] = e); | |
| return r | |
| }; | |
| e.exports = r | |
| }, { | |
| "./invariant": 110 | |
| } | |
| ], | |
| 117: [ | |
| function (t, e) { | |
| var n = function (t) { | |
| var e; | |
| for (e in t) | |
| if (t.hasOwnProperty(e)) return e; | |
| return null | |
| }; | |
| e.exports = n | |
| }, {} | |
| ], | |
| 118: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t) { | |
| var e = {}; | |
| return function (n) { | |
| return e.hasOwnProperty(n) ? e[n] : e[n] = t.call(this, n) | |
| } | |
| } | |
| e.exports = n | |
| }, {} | |
| ], | |
| 119: [ | |
| function (t, e) { | |
| "use strict"; | |
| var n = t("./mergeInto"), | |
| r = function (t, e) { | |
| var r = {}; | |
| return n(r, t), n(r, e), r | |
| }; | |
| e.exports = r | |
| }, { | |
| "./mergeInto": 121 | |
| } | |
| ], | |
| 120: [ | |
| function (t, e) { | |
| "use strict"; | |
| var n = t("./invariant"), | |
| r = t("./keyMirror"), | |
| o = 36, | |
| i = function (t) { | |
| return "object" != typeof t || null === t | |
| }, | |
| s = { | |
| MAX_MERGE_DEPTH: o, | |
| isTerminal: i, | |
| normalizeMergeArg: function (t) { | |
| return void 0 === t || null === t ? {} : t | |
| }, | |
| checkMergeArrayArgs: function (t, e) { | |
| n(Array.isArray(t) && Array.isArray(e)) | |
| }, | |
| checkMergeObjectArgs: function (t, e) { | |
| s.checkMergeObjectArg(t), s.checkMergeObjectArg(e) | |
| }, | |
| checkMergeObjectArg: function (t) { | |
| n(!i(t) && !Array.isArray(t)) | |
| }, | |
| checkMergeLevel: function (t) { | |
| n(o > t) | |
| }, | |
| checkArrayStrategy: function (t) { | |
| n(void 0 === t || t in s.ArrayStrategies) | |
| }, | |
| ArrayStrategies: r({ | |
| Clobber: !0, | |
| IndexByIndex: !0 | |
| }) | |
| }; | |
| e.exports = s | |
| }, { | |
| "./invariant": 110, | |
| "./keyMirror": 116 | |
| } | |
| ], | |
| 121: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t, e) { | |
| if (o(t), null != e) { | |
| o(e); | |
| for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n]) | |
| } | |
| } | |
| var r = t("./mergeHelpers"), | |
| o = r.checkMergeObjectArg; | |
| e.exports = n | |
| }, { | |
| "./mergeHelpers": 120 | |
| } | |
| ], | |
| 122: [ | |
| function (t, e) { | |
| "use strict"; | |
| var n = function (t, e) { | |
| var n; | |
| for (n in e) e.hasOwnProperty(n) && (t.prototype[n] = e[n]) | |
| }; | |
| e.exports = n | |
| }, {} | |
| ], | |
| 123: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t) { | |
| r(t && !/[^a-z0-9_]/.test(t)) | |
| } | |
| var r = t("./invariant"); | |
| e.exports = n | |
| }, { | |
| "./invariant": 110 | |
| } | |
| ], | |
| 124: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t, e, n) { | |
| if (!t) return null; | |
| var r = 0, | |
| o = {}; | |
| for (var i in t) t.hasOwnProperty(i) && (o[i] = e.call(n, t[i], i, r++)); | |
| return o | |
| } | |
| e.exports = n | |
| }, {} | |
| ], | |
| 125: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t, e, n) { | |
| if (!t) return null; | |
| var r = 0, | |
| o = {}; | |
| for (var i in t) t.hasOwnProperty(i) && (o[i] = e.call(n, i, t[i], r++)); | |
| return o | |
| } | |
| e.exports = n | |
| }, {} | |
| ], | |
| 126: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t) { | |
| return o(r.isValidComponent(t)), t | |
| } | |
| var r = t("./ReactComponent"), | |
| o = t("./invariant"); | |
| e.exports = n | |
| }, { | |
| "./ReactComponent": 27, | |
| "./invariant": 110 | |
| } | |
| ], | |
| 127: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t, e) { | |
| if (t === e) return !0; | |
| var n; | |
| for (n in t) | |
| if (t.hasOwnProperty(n) && (!e.hasOwnProperty(n) || t[n] !== e[n])) return !1; | |
| for (n in e) | |
| if (e.hasOwnProperty(n) && !t.hasOwnProperty(n)) return !1; | |
| return !0 | |
| } | |
| e.exports = n | |
| }, {} | |
| ], | |
| 128: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t, e) { | |
| return t && e && t.constructor === e.constructor && (t.props && t.props.key) === (e.props && e.props.key) && t._owner === e._owner ? !0 : !1 | |
| } | |
| e.exports = n | |
| }, {} | |
| ], | |
| 129: [ | |
| function (t, e) { | |
| function n(t) { | |
| var e = t.length; | |
| if (r(!Array.isArray(t) && ("object" == typeof t || "function" == typeof t)), r("number" == typeof e), r(0 === e || e - 1 in t), t.hasOwnProperty) try { | |
| return Array.prototype.slice.call(t) | |
| } catch (n) {} | |
| for (var o = Array(e), i = 0; e > i; i++) o[i] = t[i]; | |
| return o | |
| } | |
| var r = t("./invariant"); | |
| e.exports = n | |
| }, { | |
| "./invariant": 110 | |
| } | |
| ], | |
| 130: [ | |
| function (t, e) { | |
| "use strict"; | |
| function n(t) { | |
| return d[t] | |
| } | |
| function r(t, e) { | |
| return t && t.props && null != t.props.key ? i(t.props.key) : e.toString(36) | |
| } | |
| function o(t) { | |
| return ("" + t).replace(h, n) | |
| } | |
| function i(t) { | |
| return "$" + o(t) | |
| } | |
| function s(t, e, n) { | |
| null !== t && void 0 !== t && f(t, "", 0, e, n) | |
| } | |
| var a = t("./ReactInstanceHandles"), | |
| u = t("./ReactTextComponent"), | |
| l = t("./invariant"), | |
| c = a.SEPARATOR, | |
| p = ":", | |
| d = { | |
| "=": "=0", | |
| ".": "=1", | |
| ":": "=2" | |
| }, | |
| h = /[=.:]/g, | |
| f = function (t, e, n, o, s) { | |
| var a = 0; | |
| if (Array.isArray(t)) | |
| for (var d = 0; d < t.length; d++) { | |
| var h = t[d], | |
| m = e + (e ? p : c) + r(h, d), | |
| g = n + a; | |
| a += f(h, m, g, o, s) | |
| } else { | |
| var v = typeof t, | |
| y = "" === e, | |
| w = y ? c + r(t, 0) : e; | |
| if (null == t || "boolean" === v) o(s, null, w, n), a = 1; | |
| else if (t.type && t.type.prototype && t.type.prototype.mountComponentIntoNode) o(s, t, w, n), a = 1; | |
| else if ("object" === v) { | |
| l(!t || 1 !== t.nodeType); | |
| for (var _ in t) t.hasOwnProperty(_) && (a += f(t[_], e + (e ? p : c) + i(_) + p + r(t[_], 0), n + a, o, s)) | |
| } else if ("string" === v) { | |
| var b = new u(t); | |
| o(s, b, w, n), a += 1 | |
| } else if ("number" === v) { | |
| var x = new u("" + t); | |
| o(s, x, w, n), a += 1 | |
| } | |
| } | |
| return a | |
| }; | |
| e.exports = s | |
| }, { | |
| "./ReactInstanceHandles": 51, | |
| "./ReactTextComponent": 68, | |
| "./invariant": 110 | |
| } | |
| ], | |
| 131: [ | |
| function (t, e) { | |
| "use strict"; | |
| var n = t("./emptyFunction"), | |
| r = n; | |
| e.exports = r | |
| }, { | |
| "./emptyFunction": 94 | |
| } | |
| ] | |
| }, {}, [24])(24) | |
| }), | |
| function () { | |
| var t, e, n, r, o, i, s, a, u, l, c, p, d, h, f, m, g, v, y, w, _, b, x, k, T, C, E, P, S, R, M, N, O, F, A, I, $, D, L, U, H, V, z, j, B, q, W, Y, G, K, X, Q, Z, J, te = [].slice, | |
| ee = {}.hasOwnProperty, | |
| ne = function (t, e) { | |
| function n() { | |
| this.constructor = t | |
| } | |
| for (var r in e) ee.call(e, r) && (t[r] = e[r]); | |
| return n.prototype = e.prototype, t.prototype = new n, t.__super__ = e.prototype, t | |
| }, | |
| re = function (t, e) { | |
| return function () { | |
| return t.apply(e, arguments) | |
| } | |
| }; | |
| t = {}, t.version = "0.6.22", t.fromBinder = function (e, n) { | |
| return null == n && (n = X.id), new a(function (r) { | |
| var o; | |
| return o = e(function () { | |
| var e, i, a, u, l, c; | |
| for (e = 1 <= arguments.length ? te.call(arguments, 0) : [], u = n.apply(null, e), u instanceof Array && X.last(u) instanceof s || (u = [u]), a = t.more, l = 0, c = u.length; c > l; l++) | |
| if (i = u[l], a = r(i = B(i)), a === t.noMore || i.isEnd()) return null != o ? o() : t.scheduler.setTimeout(function () { | |
| return o() | |
| }, 0), a; | |
| return a | |
| }) | |
| }) | |
| }, t.$ = { | |
| asEventStream: function (e, n, r) { | |
| var o, i = this; | |
| return F(n) && (o = [n, null], r = o[0], n = o[1]), t.fromBinder(function (t) { | |
| return i.on(e, n, t), | |
| function () { | |
| return i.off(e, n, t) | |
| } | |
| }, r) | |
| } | |
| }, null != (Q = "undefined" != typeof jQuery && null !== jQuery ? jQuery : "undefined" != typeof Zepto && null !== Zepto ? Zepto : null) && (Q.fn.asEventStream = t.$.asEventStream), t.fromEventTarget = function (e, n, r) { | |
| var o, i, s, a, u, l; | |
| return o = null != (s = e.addEventListener) ? s : null != (a = e.addListener) ? a : e.bind, i = null != (u = e.removeEventListener) ? u : null != (l = e.removeListener) ? l : e.unbind, t.fromBinder(function (t) { | |
| return o.call(e, n, t), | |
| function () { | |
| return i.call(e, n, t) | |
| } | |
| }, r) | |
| }, t.fromPromise = function (e, n) { | |
| return t.fromBinder(function (t) { | |
| return e.then(t, function (e) { | |
| return t(new i(e)) | |
| }), | |
| function () { | |
| return n && "function" == typeof e.abort ? e.abort() : void 0 | |
| } | |
| }, function (t) { | |
| return [t, S()] | |
| }) | |
| }, t.noMore = ["<no-more>"], t.more = ["<more>"], t.later = function (e, n) { | |
| return t.sequentially(e, [n]) | |
| }, t.sequentially = function (e, n) { | |
| var r; | |
| return r = 0, t.fromPoll(e, function () { | |
| var t; | |
| return t = n[r++], r < n.length ? t : r === n.length ? [t, S()] : S() | |
| }) | |
| }, t.repeatedly = function (e, n) { | |
| var r; | |
| return r = 0, t.fromPoll(e, function () { | |
| return n[r++ % n.length] | |
| }) | |
| }, K = function (t) { | |
| return function () { | |
| var e, n, r, o; | |
| return r = arguments[0], e = 2 <= arguments.length ? te.call(arguments, 1) : [], "object" == typeof r && e.length && (n = r, o = e[0], r = function () { | |
| return n[o].apply(n, arguments) | |
| }, e = e.slice(1)), t.apply(null, [r].concat(te.call(e))) | |
| } | |
| }, I = function (e) { | |
| return K(function () { | |
| var n, r, o; | |
| return r = arguments[0], n = 2 <= arguments.length ? te.call(arguments, 1) : [], o = z(e, [ | |
| function (t, e) { | |
| return r.apply(null, te.call(t).concat([e])) | |
| } | |
| ]), t.combineAsArray(n).flatMap(o) | |
| }) | |
| }, t.fromCallback = I(function () { | |
| var e, n; | |
| return n = arguments[0], e = 2 <= arguments.length ? te.call(arguments, 1) : [], t.fromBinder(function (t) { | |
| return $(n, e)(t), V | |
| }, function (t) { | |
| return [t, S()] | |
| }) | |
| }), t.fromNodeCallback = I(function () { | |
| var e, n; | |
| return n = arguments[0], e = 2 <= arguments.length ? te.call(arguments, 1) : [], t.fromBinder(function (t) { | |
| return $(n, e)(t), V | |
| }, function (t, e) { | |
| return t ? [new i(t), S()] : [e, S()] | |
| }) | |
| }), t.fromPoll = function (e, n) { | |
| return t.fromBinder(function (n) { | |
| var r; | |
| return r = t.scheduler.setInterval(n, e), | |
| function () { | |
| return t.scheduler.clearInterval(r) | |
| } | |
| }, n) | |
| }, t.interval = function (e, n) { | |
| return null == n && (n = {}), t.fromPoll(e, function () { | |
| return H(n) | |
| }) | |
| }, t.constant = function (t) { | |
| return new d(function (e) { | |
| return e(N(t)), e(S()), V | |
| }) | |
| }, t.never = function () { | |
| return t.fromArray([]) | |
| }, t.once = function (e) { | |
| return t.fromArray([e]) | |
| }, t.fromArray = function (e) { | |
| return w(e), e = C(e), new a(function (n) { | |
| var r, o; | |
| return o = !1, r = function () { | |
| var i, s; | |
| return X.empty(e) ? n(S()) : (s = e.splice(0, 1)[0], i = n(B(s)), i === t.noMore || o ? void 0 : r()) | |
| }, r(), | |
| function () { | |
| return o = !0 | |
| } | |
| }) | |
| }, t.mergeAll = function () { | |
| var e; | |
| return e = 1 <= arguments.length ? te.call(arguments, 0) : [], e[0] instanceof Array && (e = e[0]), X.fold(e, t.never(), function (t, e) { | |
| return t.merge(e) | |
| }) | |
| }, t.zipAsArray = function () { | |
| var e; | |
| return e = 1 <= arguments.length ? te.call(arguments, 0) : [], e[0] instanceof Array && (e = e[0]), t.zipWith(e, function () { | |
| var t; | |
| return t = 1 <= arguments.length ? te.call(arguments, 0) : [] | |
| }) | |
| }, t.zipWith = function () { | |
| var e, n, r; | |
| return e = arguments[0], n = 2 <= arguments.length ? te.call(arguments, 1) : [], F(e) || (r = [e, n[0]], n = r[0], e = r[1]), t.when(X.map(function (t) { | |
| return t.toEventStream() | |
| }, n), e) | |
| }, t.combineAsArray = function () { | |
| var e, n, r, o, i, s, a; | |
| for (i = 1 <= arguments.length ? te.call(arguments, 0) : [], 1 === i.length && i[0] instanceof Array && (i = i[0]), e = s = 0, a = i.length; a > s; e = ++s) o = i[e], o instanceof p || (i[e] = t.constant(o)); | |
| return i.length ? (r = function () { | |
| var t, e, r; | |
| for (r = [], t = 0, e = i.length; e > t; t++) n = i[t], r.push(new g(n, !0, !1, n.subscribeInternal)); | |
| return r | |
| }(), t.when(r, function () { | |
| var t; | |
| return t = 1 <= arguments.length ? te.call(arguments, 0) : [] | |
| }).toProperty()) : t.constant([]) | |
| }, t.onValues = function () { | |
| var e, n, r; | |
| return n = 2 <= arguments.length ? te.call(arguments, 0, r = arguments.length - 1) : (r = 0, []), e = arguments[r++], t.combineAsArray(n).onValues(e) | |
| }, t.combineWith = function () { | |
| var e, n; | |
| return e = arguments[0], n = 2 <= arguments.length ? te.call(arguments, 1) : [], t.combineAsArray(n).map(function (t) { | |
| return e.apply(null, t) | |
| }) | |
| }, t.combineTemplate = function (e) { | |
| var n, r, o, i, s, a, u, l, c, d; | |
| return u = [], d = [], a = function (t) { | |
| return t[t.length - 1] | |
| }, c = function (t, e, n) { | |
| return a(t)[e] = n | |
| }, n = function (t, e) { | |
| return function (n, r) { | |
| return c(n, t, r[e]) | |
| } | |
| }, s = function (t, e) { | |
| return function (n) { | |
| return c(n, t, e) | |
| } | |
| }, l = function (t) { | |
| return t instanceof Array ? [] : {} | |
| }, o = function (t, e) { | |
| var r, o; | |
| return e instanceof p ? (d.push(e), u.push(n(t, d.length - 1))) : e === Object(e) && "function" != typeof e ? (o = function (t) { | |
| return function (n) { | |
| var r; | |
| return r = l(e), c(n, t, r), n.push(r) | |
| } | |
| }, r = function (t) { | |
| return t.pop() | |
| }, u.push(o(t)), i(e), u.push(r)) : u.push(s(t, e)) | |
| }, i = function (t) { | |
| return X.each(t, o) | |
| }, i(e), r = function (t) { | |
| var n, r, o, i, s; | |
| for (o = l(e), n = [o], i = 0, s = u.length; s > i; i++)(r = u[i])(n, t); | |
| return o | |
| }, t.combineAsArray(d).map(r) | |
| }, s = function () { | |
| function t() {} | |
| return t.prototype.isEvent = function () { | |
| return !0 | |
| }, t.prototype.isEnd = function () { | |
| return !1 | |
| }, t.prototype.isInitial = function () { | |
| return !1 | |
| }, t.prototype.isNext = function () { | |
| return !1 | |
| }, t.prototype.isError = function () { | |
| return !1 | |
| }, t.prototype.hasValue = function () { | |
| return !1 | |
| }, t.prototype.filter = function () { | |
| return !0 | |
| }, t | |
| }(), l = function (t) { | |
| function e(t) { | |
| this.value = F(t) ? X.cached(t) : X.always(t) | |
| } | |
| return ne(e, t), e.prototype.isNext = function () { | |
| return !0 | |
| }, e.prototype.hasValue = function () { | |
| return !0 | |
| }, e.prototype.fmap = function (t) { | |
| var e = this; | |
| return this.apply(function () { | |
| return t(e.value()) | |
| }) | |
| }, e.prototype.apply = function (t) { | |
| return new e(t) | |
| }, e.prototype.filter = function (t) { | |
| return t(this.value()) | |
| }, e.prototype.describe = function () { | |
| return this.value() | |
| }, e | |
| }(s), u = function (t) { | |
| function e() { | |
| return Z = e.__super__.constructor.apply(this, arguments) | |
| } | |
| return ne(e, t), e.prototype.isInitial = function () { | |
| return !0 | |
| }, e.prototype.isNext = function () { | |
| return !1 | |
| }, e.prototype.apply = function (t) { | |
| return new e(t) | |
| }, e.prototype.toNext = function () { | |
| return new l(this.value) | |
| }, e | |
| }(l), o = function (t) { | |
| function e() { | |
| return J = e.__super__.constructor.apply(this, arguments) | |
| } | |
| return ne(e, t), e.prototype.isEnd = function () { | |
| return !0 | |
| }, e.prototype.fmap = function () { | |
| return this | |
| }, e.prototype.apply = function () { | |
| return this | |
| }, e.prototype.describe = function () { | |
| return "<end>" | |
| }, e | |
| }(s), i = function (t) { | |
| function e(t) { | |
| this.error = t | |
| } | |
| return ne(e, t), e.prototype.isError = function () { | |
| return !0 | |
| }, e.prototype.fmap = function () { | |
| return this | |
| }, e.prototype.apply = function () { | |
| return this | |
| }, e.prototype.describe = function () { | |
| return "<error> " + this.error | |
| }, e | |
| }(s), p = function () { | |
| function e() { | |
| this.combine = re(this.combine, this), this.flatMapLatest = re(this.flatMapLatest, this), this.fold = re(this.fold, this), this.scan = re(this.scan, this), this.assign = this.onValue | |
| } | |
| return e.prototype.onValue = function () { | |
| var t; | |
| return t = D(arguments), this.subscribe(function (e) { | |
| return e.hasValue() ? t(e.value()) : void 0 | |
| }) | |
| }, e.prototype.onValues = function (t) { | |
| return this.onValue(function (e) { | |
| return t.apply(null, e) | |
| }) | |
| }, e.prototype.onError = function () { | |
| var t; | |
| return t = D(arguments), this.subscribe(function (e) { | |
| return e.isError() ? t(e.error) : void 0 | |
| }) | |
| }, e.prototype.onEnd = function () { | |
| var t; | |
| return t = D(arguments), this.subscribe(function (e) { | |
| return e.isEnd() ? t() : void 0 | |
| }) | |
| }, e.prototype.errors = function () { | |
| return this.filter(function () { | |
| return !1 | |
| }) | |
| }, e.prototype.filter = function () { | |
| var e, n; | |
| return n = arguments[0], e = 2 <= arguments.length ? te.call(arguments, 1) : [], P(this, n, e, function (e) { | |
| return this.withHandler(function (n) { | |
| return n.filter(e) ? this.push(n) : t.more | |
| }) | |
| }) | |
| }, e.prototype.takeWhile = function () { | |
| var e, n; | |
| return n = arguments[0], e = 2 <= arguments.length ? te.call(arguments, 1) : [], P(this, n, e, function (e) { | |
| return this.withHandler(function (n) { | |
| return n.filter(e) ? this.push(n) : (this.push(S()), t.noMore) | |
| }) | |
| }) | |
| }, e.prototype.endOnError = function () { | |
| var t, e; | |
| return e = arguments[0], t = 2 <= arguments.length ? te.call(arguments, 1) : [], null == e && (e = !0), P(this, e, t, function (t) { | |
| return this.withHandler(function (e) { | |
| return e.isError() && t(e.error) ? (this.push(e), this.push(S())) : this.push(e) | |
| }) | |
| }) | |
| }, e.prototype.take = function (e) { | |
| return 0 >= e ? t.never() : this.withHandler(function (n) { | |
| return n.hasValue() ? (e--, e > 0 ? this.push(n) : (0 === e && this.push(n), this.push(S()), t.noMore)) : this.push(n) | |
| }) | |
| }, e.prototype.map = function () { | |
| var t, e; | |
| return e = arguments[0], t = 2 <= arguments.length ? te.call(arguments, 1) : [], e instanceof d ? e.sampledBy(this, R) : P(this, e, t, function (t) { | |
| return this.withHandler(function (e) { | |
| return this.push(e.fmap(t)) | |
| }) | |
| }) | |
| }, e.prototype.mapError = function () { | |
| var t; | |
| return t = D(arguments), this.withHandler(function (e) { | |
| return this.push(e.isError() ? H(t(e.error)) : e) | |
| }) | |
| }, e.prototype.mapEnd = function () { | |
| var e; | |
| return e = D(arguments), this.withHandler(function (n) { | |
| return n.isEnd() ? (this.push(H(e(n))), this.push(S()), t.noMore) : this.push(n) | |
| }) | |
| }, e.prototype.doAction = function () { | |
| var t; | |
| return t = D(arguments), this.withHandler(function (e) { | |
| return e.hasValue() && t(e.value()), this.push(e) | |
| }) | |
| }, e.prototype.skip = function (e) { | |
| return this.withHandler(function (n) { | |
| return n.hasValue() && e > 0 ? (e--, t.more) : this.push(n) | |
| }) | |
| }, e.prototype.skipDuplicates = function (t) { | |
| return null == t && (t = function (t, e) { | |
| return t === e | |
| }), this.withStateMachine(c, function (e, n) { | |
| return n.hasValue() ? n.isInitial() || e === c || !t(e.get(), n.value()) ? [new m(n.value()), [n]] : [e, []] : [e, [n]] | |
| }) | |
| }, e.prototype.skipErrors = function () { | |
| return this.withHandler(function (e) { | |
| return e.isError() ? t.more : this.push(e) | |
| }) | |
| }, e.prototype.withStateMachine = function (e, n) { | |
| var r; | |
| return r = e, this.withHandler(function (e) { | |
| var o, i, s, a, u, l, c; | |
| for (o = n(r, e), i = o[0], a = o[1], r = i, u = t.more, l = 0, c = a.length; c > l; l++) | |
| if (s = a[l], u = this.push(s), u === t.noMore) return u; | |
| return u | |
| }) | |
| }, e.prototype.scan = function (e, n, r) { | |
| var o, i, s, a = this; | |
| return i = j(n), n = r ? i : function (t, e) { | |
| return i(t(), e()) | |
| }, o = Y(e).map(function (t) { | |
| return X.always(t) | |
| }), s = function (e) { | |
| var r, i, s, l; | |
| return r = !1, l = V, i = t.more, s = function () { | |
| return r ? void 0 : (r = !0, o.forEach(function (n) { | |
| return i = e(new u(n)), i === t.noMore ? (l(), l = V) : void 0 | |
| })) | |
| }, l = a.subscribe(function (a) { | |
| var u, l; | |
| return a.hasValue() ? r && a.isInitial() ? t.more : (a.isInitial() || s(), r = !0, l = o.getOrElse(function () { | |
| return void 0 | |
| }), u = X.cached(function () { | |
| return n(l, a.value) | |
| }), o = new m(u), e(a.apply(u))) : (a.isEnd() && (i = s()), i !== t.noMore ? e(a) : void 0) | |
| }), s(), l | |
| }, new d(s) | |
| }, e.prototype.fold = function (t, e) { | |
| return this.scan(t, e).sampledBy(this.filter(!1).mapEnd().toProperty()) | |
| }, e.prototype.zip = function (e, n) { | |
| return null == n && (n = Array), t.zipWith([this, e], n) | |
| }, e.prototype.diff = function (t, e) { | |
| return e = j(e), this.scan([t], function (t, n) { | |
| return [n, e(t[0], n)] | |
| }).filter(function (t) { | |
| return 2 === t.length | |
| }).map(function (t) { | |
| return t[1] | |
| }) | |
| }, e.prototype.flatMap = function (r, o) { | |
| var i; | |
| return r = U(r), i = this, new a(function (s) { | |
| var a, l; | |
| return l = new n, a = function (t) { | |
| return t(), l.empty() ? s(S()) : void 0 | |
| }, l.add(function (n, c) { | |
| return i.subscribe(function (n) { | |
| var i; | |
| return n.isEnd() ? a(c) : n.isError() ? s(n) : o && l.count() > 1 ? t.more : l.unsubscribed ? t.noMore : (i = r(n.value()), i instanceof e || (i = t.once(i)), l.add(function (e, n) { | |
| return i.subscribe(function (r) { | |
| var o; | |
| return r.isEnd() ? (a(n), t.noMore) : (r instanceof u && (r = r.toNext()), o = s(r), o === t.noMore && e(), o) | |
| }) | |
| })) | |
| }) | |
| }), l.unsubscribe | |
| }) | |
| }, e.prototype.flatMapFirst = function (t) { | |
| return this.flatMap(t, !0) | |
| }, e.prototype.flatMapLatest = function (t) { | |
| var e; | |
| return t = U(t), e = this.toEventStream(), e.flatMap(function (n) { | |
| return t(n).takeUntil(e) | |
| }) | |
| }, e.prototype.not = function () { | |
| return this.map(function (t) { | |
| return !t | |
| }) | |
| }, e.prototype.log = function () { | |
| var t; | |
| return t = 1 <= arguments.length ? te.call(arguments, 0) : [], this.subscribe(function (e) { | |
| return "undefined" != typeof console && null !== console && "function" == typeof console.log ? console.log.apply(console, te.call(t).concat([e.describe()])) : void 0 | |
| }), this | |
| }, e.prototype.slidingWindow = function (t, e) { | |
| return null == e && (e = 0), this.scan([], function (e, n) { | |
| return e.concat([n]).slice(-t) | |
| }).filter(function (t) { | |
| return t.length >= e | |
| }) | |
| }, e.prototype.combine = function (e, n) { | |
| var r; | |
| return r = j(n), t.combineAsArray(this, e).map(function (t) { | |
| return r(t[0], t[1]) | |
| }) | |
| }, e.prototype.decode = function (e) { | |
| return this.combine(t.combineTemplate(e), function (t, e) { | |
| return e[t] | |
| }) | |
| }, e.prototype.awaiting = function (t) { | |
| return this.toEventStream().map(!0).merge(t.toEventStream().map(!1)).toProperty(!1) | |
| }, e | |
| }(), p.prototype.reduce = p.prototype.fold, a = function (e) { | |
| function n(t) { | |
| this.takeUntil = re(this.takeUntil, this), this.sampledBy = re(this.sampledBy, this); | |
| var e; | |
| n.__super__.constructor.call(this), x(t), e = new r(t), this.subscribe = e.subscribe, this.subscribeInternal = this.subscribe, this.hasSubscribers = e.hasSubscribers | |
| } | |
| return ne(n, e), n.prototype.delay = function (e) { | |
| return this.flatMap(function (n) { | |
| return t.later(e, n) | |
| }) | |
| }, n.prototype.debounce = function (e) { | |
| return this.flatMapLatest(function (n) { | |
| return t.later(e, n) | |
| }) | |
| }, n.prototype.debounceImmediate = function (e) { | |
| return this.flatMapFirst(function (n) { | |
| return t.once(n).concat(t.later(e).filter(!1)) | |
| }) | |
| }, n.prototype.throttle = function (t) { | |
| return this.bufferWithTime(t).map(function (t) { | |
| return t[t.length - 1] | |
| }) | |
| }, n.prototype.bufferWithTime = function (t) { | |
| return this.bufferWithTimeOrCount(t, Number.MAX_VALUE) | |
| }, n.prototype.bufferWithCount = function (t) { | |
| return this.bufferWithTimeOrCount(void 0, t) | |
| }, n.prototype.bufferWithTimeOrCount = function (t, e) { | |
| var n; | |
| return n = function (n) { | |
| return n.values.length === e ? n.flush() : void 0 !== t ? n.schedule() : void 0 | |
| }, this.buffer(t, n, n) | |
| }, n.prototype.buffer = function (e, n, r) { | |
| var o, i, s; | |
| return null == n && (n = function () {}), null == r && (r = function () {}), o = { | |
| scheduled: !1, | |
| end: null, | |
| values: [], | |
| flush: function () { | |
| var e; | |
| if (this.scheduled = !1, this.values.length > 0) { | |
| if (e = this.push(H(this.values)), this.values = [], null != this.end) return this.push(this.end); | |
| if (e !== t.noMore) return r(this) | |
| } else if (null != this.end) return this.push(this.end) | |
| }, | |
| schedule: function () { | |
| var t = this; | |
| return this.scheduled ? void 0 : (this.scheduled = !0, e(function () { | |
| return t.flush() | |
| })) | |
| } | |
| }, s = t.more, F(e) || (i = e, e = function (e) { | |
| return t.scheduler.setTimeout(e, i) | |
| }), this.withHandler(function (t) { | |
| return o.push = this.push, t.isError() ? s = this.push(t) : t.isEnd() ? (o.end = t, o.scheduled || o.flush()) : (o.values.push(t.value()), n(o)), s | |
| }) | |
| }, n.prototype.merge = function (e) { | |
| var r; | |
| return b(e), r = this, new n(function (n) { | |
| var o, i; | |
| return o = 0, i = function (e) { | |
| return function (r) { | |
| return e.subscribe(function (e) { | |
| var i; | |
| return e.isEnd() ? (o++, 2 === o ? n(S()) : t.more) : (i = n(e), i === t.noMore && r(), i) | |
| }) | |
| } | |
| }, E(i(r), i(e)) | |
| }) | |
| }, n.prototype.toProperty = function (t) { | |
| return 0 === arguments.length && (t = c), this.scan(t, A, !0) | |
| }, n.prototype.toEventStream = function () { | |
| return this | |
| }, n.prototype.sampledBy = function (t, e) { | |
| return this.toProperty().sampledBy(t, e) | |
| }, n.prototype.concat = function (t) { | |
| var e; | |
| return e = this, new n(function (n) { | |
| var r, o; | |
| return o = V, r = e.subscribe(function (e) { | |
| return e.isEnd() ? o = t.subscribe(n) : n(e) | |
| }), | |
| function () { | |
| return r(), o() | |
| } | |
| }) | |
| }, n.prototype.takeUntil = function (e) { | |
| var r; | |
| return r = this, new n(function (n) { | |
| var o, i; | |
| return i = function (r) { | |
| return e.onValue(function () { | |
| return n(S()), r(), t.noMore | |
| }) | |
| }, o = function (e) { | |
| return r.subscribe(function (r) { | |
| var o; | |
| return o = n(r), (r.isEnd() || o === t.noMore) && e(), o | |
| }) | |
| }, E(i, o) | |
| }) | |
| }, n.prototype.skipUntil = function (t) { | |
| var e; | |
| return e = t.take(1).map(!0).toProperty(!1), this.filter(e) | |
| }, n.prototype.skipWhile = function () { | |
| var e, n, r; | |
| return n = arguments[0], e = 2 <= arguments.length ? te.call(arguments, 1) : [], r = !1, P(this, n, e, function (e) { | |
| return this.withHandler(function (n) { | |
| return !r && n.hasValue() && e(n.value()) ? t.more : (n.hasValue() && (r = !0), this.push(n)) | |
| }) | |
| }) | |
| }, n.prototype.startWith = function (e) { | |
| return t.once(e).concat(this) | |
| }, n.prototype.withHandler = function (t) { | |
| var e; | |
| return e = new r(this.subscribe, t), new n(e.subscribe) | |
| }, n.prototype.withSubscribe = function (t) { | |
| return new n(t) | |
| }, n | |
| }(p), d = function (e) { | |
| function n(e, r) { | |
| this.toEventStream = re(this.toEventStream, this), this.toProperty = re(this.toProperty, this), this.changes = re(this.changes, this), this.sample = re(this.sample, this); | |
| var o = this; | |
| n.__super__.constructor.call(this), this.subscribeInternal = r === !0 ? e : new h(e, r).subscribe, this.sampledBy = function (e, r) { | |
| var i, s, a, u; | |
| return null != r ? r = j(r) : (i = !0, r = function (t) { | |
| return t() | |
| }), u = new g(o, !1, !1, o.subscribeInternal, i), s = new g(e, !0, !1, e.subscribe, i), a = t.when([u, s], r), e instanceof n ? a.toProperty() : a | |
| }, this.subscribe = function (e) { | |
| var n, r, i, s, a; | |
| return i = t.more, n = function () { | |
| function n() {} | |
| return n.prototype.set = function (t) { | |
| return this.event = t | |
| }, n.prototype.send = function () { | |
| var n; | |
| return n = this.event, this.event = null, null != n && i !== t.noMore && (i = e(n), i === t.noMore) ? s() : void 0 | |
| }, n | |
| }(), a = new n, r = new n, s = V, s = o.subscribeInternal(function (n) { | |
| return n.isError() ? i !== t.noMore && (i = e(n)) : (n.hasValue() ? a.set(n) : n.isEnd() && r.set(n), f.onDone(function () { | |
| return a.send(), r.send() | |
| })), i | |
| }), | |
| function () { | |
| return i = t.noMore, s() | |
| } | |
| } | |
| } | |
| return ne(n, e), n.prototype.sample = function (e) { | |
| return this.sampledBy(t.interval(e, {})) | |
| }, n.prototype.changes = function () { | |
| var t = this; | |
| return new a(function (e) { | |
| return t.subscribe(function (t) { | |
| return t.isInitial() ? void 0 : e(t) | |
| }) | |
| }) | |
| }, n.prototype.withHandler = function (t) { | |
| return new n(this.subscribeInternal, t) | |
| }, n.prototype.withSubscribe = function (t) { | |
| return new n(t) | |
| }, n.prototype.toProperty = function () { | |
| return k(arguments), this | |
| }, n.prototype.toEventStream = function () { | |
| var t = this; | |
| return new a(function (e) { | |
| return t.subscribe(function (t) { | |
| return t.isInitial() && (t = t.toNext()), e(t) | |
| }) | |
| }) | |
| }, n.prototype.and = function (t) { | |
| return this.combine(t, function (t, e) { | |
| return t && e | |
| }) | |
| }, n.prototype.or = function (t) { | |
| return this.combine(t, function (t, e) { | |
| return t || e | |
| }) | |
| }, n.prototype.delay = function (t) { | |
| return this.delayChanges(function (e) { | |
| return e.delay(t) | |
| }) | |
| }, n.prototype.debounce = function (t) { | |
| return this.delayChanges(function (e) { | |
| return e.debounce(t) | |
| }) | |
| }, n.prototype.throttle = function (t) { | |
| return this.delayChanges(function (e) { | |
| return e.throttle(t) | |
| }) | |
| }, n.prototype.delayChanges = function (t) { | |
| return v(this, t(this.changes())) | |
| }, n.prototype.takeUntil = function (t) { | |
| var e; | |
| return e = this.changes().takeUntil(t), v(this, e) | |
| }, n.prototype.startWith = function (t) { | |
| return this.scan(t, function (t, e) { | |
| return e | |
| }) | |
| }, n | |
| }(p), P = function (t, e, n, r) { | |
| var o; | |
| return e instanceof d ? (o = e.sampledBy(t, function (t, e) { | |
| return [t, e] | |
| }), r.apply(o, [ | |
| function (t) { | |
| var e, n; | |
| return e = t[0], n = t[1], e | |
| } | |
| ]).map(function (t) { | |
| var e, n; | |
| return e = t[0], n = t[1] | |
| })) : (e = $(e, n), r.apply(t, [e])) | |
| }, v = function (e, n) { | |
| var r; | |
| return r = function (e) { | |
| var n; | |
| return n = c, e.subscribe(function (e) { | |
| return e.hasValue() && (n = new m(e.value())), t.noMore | |
| }), n | |
| }, n.toProperty(r(e)) | |
| }, r = function () { | |
| function e(e, n) { | |
| var r, o, i, s, a, u, l, c, p, d = this; | |
| null == e && (e = function () { | |
| return V | |
| }), l = [], a = null, s = !1, o = !1, this.hasSubscribers = function () { | |
| return l.length > 0 | |
| }, i = null, c = V, u = function (t) { | |
| return l = X.without(t, l) | |
| }, p = null, r = function () { | |
| var t, e, n, r, o; | |
| if (null != p) { | |
| for (e = p, p = null, o = [], n = 0, r = e.length; r > n; n++) t = e[n], o.push(t()); | |
| return o | |
| } | |
| }, this.push = function (e) { | |
| var n, o, c, p, h, f; | |
| if (s) return a = (a || []).concat([e]), t.more; | |
| if (e !== i) { | |
| e.isError() && (i = e), c = !1; | |
| try { | |
| for (s = !0, p = l, h = 0, f = p.length; f > h; h++) o = p[h], n = o.sink(e), (n === t.noMore || e.isEnd()) && u(o); | |
| c = !0 | |
| } finally { | |
| s = !1, c || (a = null) | |
| } | |
| for (c = !0; null != a ? a.length : void 0;) e = X.head(a), a = X.tail(a), d.push(e); | |
| return r(e), d.hasSubscribers() ? t.more : t.noMore | |
| } | |
| }, null == n && (n = function (t) { | |
| return this.push(t) | |
| }), this.handleEvent = function (t) { | |
| return t.isEnd() && (o = !0), n.apply(d, [t]) | |
| }, this.subscribe = function (t) { | |
| var n; | |
| return o ? (t(S()), V) : (x(t), n = { | |
| sink: t | |
| }, l = l.concat(n), 1 === l.length && (c = e(d.handleEvent)), x(c), function () { | |
| return u(n), d.hasSubscribers() ? void 0 : c() | |
| }) | |
| } | |
| } | |
| return e | |
| }(), h = function (e) { | |
| function n(e, r) { | |
| var o, i, s, a = this; | |
| n.__super__.constructor.call(this, e, r), o = c, s = this.push, e = this.subscribe, i = !1, this.push = function (t) { | |
| return t.isEnd() && (i = !0), t.hasValue() && (o = new m(t.value)), f.inTransaction(function () { | |
| return s.apply(a, [t]) | |
| }) | |
| }, this.subscribe = function (n) { | |
| var r, s, u; | |
| return r = !1, u = function () { | |
| return a.hasSubscribers() || i | |
| }, s = o.filter(u).map(function (t) { | |
| return n(N(t())) | |
| }), s.getOrElse(t.more) === t.noMore ? V : i ? (n(S()), V) : e.apply(a, [n]) | |
| } | |
| } | |
| return ne(n, e), n | |
| }(r), f = function () { | |
| var t, e, n, r; | |
| return r = [], n = !1, e = function (t) { | |
| return n ? r.push(t) : t() | |
| }, t = function (t) { | |
| var e, o, i, s, a; | |
| if (n) return t(); | |
| n = !0; | |
| try { | |
| i = t() | |
| } finally { | |
| n = !1 | |
| } | |
| for (o = r, r = [], s = 0, a = o.length; a > s; s++)(e = o[s])(); | |
| return i | |
| }, { | |
| onDone: e, | |
| inTransaction: t | |
| } | |
| }(), e = function (e) { | |
| function n() { | |
| var e, r, o, s, a, u, l, c; | |
| o = void 0, u = [], e = !1, r = function (e) { | |
| return function (n) { | |
| return n.isEnd() ? (c(e), t.noMore) : o(n) | |
| } | |
| }, l = function () { | |
| var t, e, n, r; | |
| for (r = [], e = 0, n = u.length; n > e; e++) t = u[e], r.push("function" == typeof t.unsub ? t.unsub() : void 0); | |
| return r | |
| }, a = function (t) { | |
| return t.unsub = t.input.subscribe(r(t.input)) | |
| }, c = function (t) { | |
| var e, n, r, o; | |
| for (e = r = 0, o = u.length; o > r; e = ++r) | |
| if (n = u[e], n.input === t) return "function" == typeof n.unsub && n.unsub(), void u.splice(e, 1) | |
| }, s = function (t) { | |
| var e, n, r, i; | |
| for (o = t, i = C(u), n = 0, r = i.length; r > n; n++) e = i[n], a(e); | |
| return l | |
| }, n.__super__.constructor.call(this, s), this.plug = function (t) { | |
| var n; | |
| if (!e) return n = { | |
| input: t | |
| }, u.push(n), null != o && a(n), | |
| function () { | |
| return c(t) | |
| } | |
| }, this.push = function (t) { | |
| return "function" == typeof o ? o(H(t)) : void 0 | |
| }, this.error = function (t) { | |
| return "function" == typeof o ? o(new i(t)) : void 0 | |
| }, this.end = function () { | |
| return e = !0, l(), "function" == typeof o ? o(S()) : void 0 | |
| } | |
| } | |
| return ne(n, e), n | |
| }(a), g = function () { | |
| function t(t, e, n, r, o) { | |
| var i, s; | |
| this.sync = e, this.subscribe = r, null == o && (o = !1), s = [], i = o ? X.id : function (t) { | |
| return t() | |
| }, null == this.subscribe && (this.subscribe = t.subscribe), this.markEnded = function () { | |
| return this.ended = !0 | |
| }, n ? (this.consume = function () { | |
| return i(s.shift()) | |
| }, this.push = function (t) { | |
| return s.push(t) | |
| }, this.mayHave = function (t) { | |
| return !this.ended || s.length >= t | |
| }, this.hasAtLeast = function (t) { | |
| return s.length >= t | |
| }) : (this.consume = function () { | |
| return i(s[0]) | |
| }, this.push = function (t) { | |
| return s = [t] | |
| }, this.mayHave = function () { | |
| return !0 | |
| }, this.hasAtLeast = function () { | |
| return s.length | |
| }) | |
| } | |
| return t | |
| }(), g.fromObservable = function (t) { | |
| return t instanceof g ? t : t instanceof d ? new g(t, !1, !1) : new g(t, !0, !0) | |
| }, t.when = function () { | |
| var e, n, r, o, i, s, u, l, c, d, h, f, m, v, w, _, b; | |
| if (c = 1 <= arguments.length ? te.call(arguments, 0) : [], 0 === c.length) return t.never(); | |
| for (i = c.length, f = "when: expecting arguments in the form (Observable+,function)+", y(f, i % 2 === 0), h = [], l = [], n = 0; i > n;) { | |
| for (u = X.toArray(c[n]), e = c[n + 1], s = { | |
| f: F(e) ? e : function () { | |
| return e | |
| }, | |
| ixs: [] | |
| }, m = 0, w = u.length; w > m; m++) { | |
| for (d = u[m], y(d instanceof p, f), r = M(h, d), 0 > r && (h.push(d), r = h.length - 1), b = s.ixs, v = 0, _ = b.length; _ > v; v++) o = b[v], o.index === r && o.count++; | |
| s.ixs.push({ | |
| index: r, | |
| count: 1 | |
| }) | |
| } | |
| u.length > 0 && l.push(s), n += 2 | |
| } | |
| return h.length ? (h = X.map(g.fromObservable, h), new a(function (e) { | |
| var r, o, i, s; | |
| return i = function (t) { | |
| return X.all(t.ixs, function (t) { | |
| return h[t.index].hasAtLeast(t.count) | |
| }) | |
| }, o = function (t) { | |
| return !t.sync || t.ended | |
| }, r = function (t) { | |
| return X.any(t.ixs, function (t) { | |
| return !h[t.index].mayHave(t.count) | |
| }) | |
| }, s = function (s) { | |
| return function (a) { | |
| return s.subscribe(function (u) { | |
| var c, p, d, f, m; | |
| if (u.isEnd()) s.markEnded(), (X.all(h, o) || X.all(l, r)) && (p = t.noMore, e(S())); | |
| else if (u.isError()) p = e(u); | |
| else if (s.push(u.value), s.sync) | |
| for (f = 0, m = l.length; m > f; f++) | |
| if (c = l[f], i(c)) { | |
| d = function () { | |
| return c.f.apply(c, function () { | |
| var t, e, r, o; | |
| for (r = c.ixs, o = [], t = 0, e = r.length; e > t; t++) n = r[t], o.push(h[n.index].consume()); | |
| return o | |
| }()) | |
| }, p = e(u.apply(d)); | |
| break | |
| } | |
| return p === t.noMore && a(), p || t.more | |
| }) | |
| } | |
| }, E.apply(null, function () { | |
| var t, e, r; | |
| for (r = [], n = t = 0, e = h.length; e > t; n = ++t) d = h[n], r.push(s(d, n)); | |
| return r | |
| }()) | |
| })) : t.never() | |
| }, t.update = function () { | |
| var e, n, r, o; | |
| for (n = arguments[0], o = 2 <= arguments.length ? te.call(arguments, 1) : [], r = function (t) { | |
| return function () { | |
| var e; | |
| return e = 1 <= arguments.length ? te.call(arguments, 0) : [], | |
| function (n) { | |
| return t.apply(null, [n].concat(e)) | |
| } | |
| } | |
| }, e = o.length - 1; e > 0;) o[e] instanceof Function || (o[e] = function (t) { | |
| return function () { | |
| return t | |
| } | |
| }(o[e])), o[e] = r(o[e]), e -= 2; | |
| return t.when.apply(t, o).scan(n, function (t, e) { | |
| return e(t) | |
| }) | |
| }, E = function () { | |
| var t; | |
| return t = 1 <= arguments.length ? te.call(arguments, 0) : [], new n(t).unsubscribe | |
| }, n = function () { | |
| function t(t) { | |
| var e, n, r; | |
| for (null == t && (t = []), this.empty = re(this.empty, this), this.count = re(this.count, this), this.unsubscribe = re(this.unsubscribe, this), this.add = re(this.add, this), this.unsubscribed = !1, this.subscriptions = [], this.starting = [], n = 0, r = t.length; r > n; n++) e = t[n], this.add(e) | |
| } | |
| return t.prototype.add = function (t) { | |
| var e, n, r, o = this; | |
| if (!this.unsubscribed) return e = !1, n = V, this.starting.push(t), r = function () { | |
| return o.unsubscribed ? void 0 : (e = !0, o.remove(n), X.remove(t, o.starting)) | |
| }, n = t(this.unsubscribe, r), this.unsubscribed || e || this.subscriptions.push(n), X.remove(t, this.starting), n | |
| }, t.prototype.remove = function (t) { | |
| return this.unsubscribed ? void 0 : void 0 !== X.remove(t, this.subscriptions) ? t() : void 0 | |
| }, t.prototype.unsubscribe = function () { | |
| var t, e, n, r; | |
| if (!this.unsubscribed) { | |
| for (this.unsubscribed = !0, r = this.subscriptions, e = 0, n = r.length; n > e; e++)(t = r[e])(); | |
| return this.subscriptions = [], this.starting = [] | |
| } | |
| }, t.prototype.count = function () { | |
| return this.unsubscribed ? 0 : this.subscriptions.length + this.starting.length | |
| }, t.prototype.empty = function () { | |
| return 0 === this.count() | |
| }, t | |
| }(), t.CompositeUnsubscribe = n, m = function () { | |
| function t(t) { | |
| this.value = t | |
| } | |
| return t.prototype.getOrElse = function () { | |
| return this.value | |
| }, t.prototype.get = function () { | |
| return this.value | |
| }, t.prototype.filter = function (e) { | |
| return e(this.value) ? new t(this.value) : c | |
| }, t.prototype.map = function (e) { | |
| return new t(e(this.value)) | |
| }, t.prototype.forEach = function (t) { | |
| return t(this.value) | |
| }, t.prototype.isDefined = !0, t.prototype.toArray = function () { | |
| return [this.value] | |
| }, t | |
| }(), c = { | |
| getOrElse: function (t) { | |
| return t | |
| }, | |
| filter: function () { | |
| return c | |
| }, | |
| map: function () { | |
| return c | |
| }, | |
| forEach: function () {}, | |
| isDefined: !1, | |
| toArray: function () { | |
| return [] | |
| } | |
| }, t.EventStream = a, t.Property = d, t.Observable = p, t.Bus = e, t.Initial = u, t.Next = l, t.End = o, t.Error = i, V = function () {}, A = function (t, e) { | |
| return e() | |
| }, R = function (t) { | |
| return t | |
| }, N = function (t) { | |
| return new u(X.always(t)) | |
| }, H = function (t) { | |
| return new l(X.always(t)) | |
| }, S = function () { | |
| return new o | |
| }, B = function (t) { | |
| return t instanceof s ? t : H(t) | |
| }, C = function (t) { | |
| return t.slice(0) | |
| }, M = Array.prototype.indexOf ? function (t, e) { | |
| return t.indexOf(e) | |
| } : function (t, e) { | |
| var n, r, o, i; | |
| for (n = o = 0, i = t.length; i > o; n = ++o) | |
| if (r = t[n], e === r) return n; | |
| return -1 | |
| }, y = function (t, e) { | |
| if (!e) throw t | |
| }, _ = function (t) { | |
| return y("not an event : " + t, t instanceof s && t.isEvent()) | |
| }, b = function (t) { | |
| return y("not an EventStream : " + t, t instanceof a) | |
| }, x = function (t) { | |
| return y("not a function : " + t, F(t)) | |
| }, F = function (t) { | |
| return "function" == typeof t | |
| }, w = function (t) { | |
| return y("not an array : " + t, t instanceof Array) | |
| }, k = function (t) { | |
| return y("no arguments supported", 0 === t.length) | |
| }, T = function (t) { | |
| return y("not a string : " + t, "string" == typeof t) | |
| }, z = function (t, e) { | |
| return function () { | |
| var n; | |
| return n = 1 <= arguments.length ? te.call(arguments, 0) : [], t.apply(null, e.concat(n)) | |
| } | |
| }, U = function (t) { | |
| return t instanceof p && (t = X.always(t)), x(t), t | |
| }, D = function (t) { | |
| return t = Array.prototype.slice.call(t), L.apply(null, t) | |
| }, L = K(function () { | |
| var t, e; | |
| return e = arguments[0], t = 2 <= arguments.length ? te.call(arguments, 1) : [], F(e) ? t.length ? z(e, t) : e : O(e) ? q(e, t) : X.always(e) | |
| }), $ = function (t, e) { | |
| return L.apply(null, [t].concat(te.call(e))) | |
| }, O = function (t) { | |
| return "string" == typeof t && t.length > 1 && "." === t.charAt(0) | |
| }, t.isFieldKey = O, q = function (t, e) { | |
| var n, r; | |
| return r = t.slice(1).split("."), n = X.map(G(e), r), | |
| function (e) { | |
| var r, o; | |
| for (r = 0, o = n.length; o > r; r++) t = n[r], e = t(e); | |
| return e | |
| } | |
| }, G = function (t) { | |
| return function (e) { | |
| return function (n) { | |
| var r; | |
| return null == n ? void 0 : (r = n[e], F(r) ? r.apply(n, t) : r) | |
| } | |
| } | |
| }, W = function (t) { | |
| return t.slice(1) | |
| }, j = function (t) { | |
| var e; | |
| return F(t) ? t : O(t) ? (e = W(t), function (t, n) { | |
| return t[e](n) | |
| }) : y("not a function or a field key: " + t, !1) | |
| }, Y = function (t) { | |
| return t instanceof m || t === c ? t : new m(t) | |
| }, X = { | |
| head: function (t) { | |
| return t[0] | |
| }, | |
| always: function (t) { | |
| return function () { | |
| return t | |
| } | |
| }, | |
| negate: function (t) { | |
| return function (e) { | |
| return !t(e) | |
| } | |
| }, | |
| empty: function (t) { | |
| return 0 === t.length | |
| }, | |
| tail: function (t) { | |
| return t.slice(1, t.length) | |
| }, | |
| filter: function (t, e) { | |
| var n, r, o, i; | |
| for (n = [], o = 0, i = e.length; i > o; o++) r = e[o], t(r) && n.push(r); | |
| return n | |
| }, | |
| map: function (t, e) { | |
| var n, r, o, i; | |
| for (i = [], r = 0, o = e.length; o > r; r++) n = e[r], i.push(t(n)); | |
| return i | |
| }, | |
| each: function (t, e) { | |
| var n, r, o; | |
| o = []; | |
| for (n in t) r = t[n], o.push(e(n, r)); | |
| return o | |
| }, | |
| toArray: function (t) { | |
| return t instanceof Array ? t : [t] | |
| }, | |
| contains: function (t, e) { | |
| return -1 !== M(t, e) | |
| }, | |
| id: function (t) { | |
| return t | |
| }, | |
| last: function (t) { | |
| return t[t.length - 1] | |
| }, | |
| all: function (t, e) { | |
| var n, r, o; | |
| for (null == e && (e = X.id), r = 0, o = t.length; o > r; r++) | |
| if (n = t[r], !e(n)) return !1; | |
| return !0 | |
| }, | |
| any: function (t, e) { | |
| var n, r, o; | |
| for (null == e && (e = X.id), r = 0, o = t.length; o > r; r++) | |
| if (n = t[r], e(n)) return !0; | |
| return !1 | |
| }, | |
| without: function (t, e) { | |
| return X.filter(function (e) { | |
| return e !== t | |
| }, e) | |
| }, | |
| remove: function (t, e) { | |
| var n; | |
| return n = M(e, t), n >= 0 ? e.splice(n, 1) : void 0 | |
| }, | |
| fold: function (t, e, n) { | |
| var r, o, i; | |
| for (o = 0, i = t.length; i > o; o++) r = t[o], e = n(e, r); | |
| return e | |
| }, | |
| cached: function (t) { | |
| var e; | |
| return e = c, | |
| function () { | |
| return e === c && (e = t(), t = null), e | |
| } | |
| } | |
| }, t._ = X, t.scheduler = { | |
| setTimeout: function (t, e) { | |
| return setTimeout(t, e) | |
| }, | |
| setInterval: function (t, e) { | |
| return setInterval(t, e) | |
| }, | |
| clearInterval: function (t) { | |
| return clearInterval(t) | |
| }, | |
| now: function () { | |
| return (new Date).getTime() | |
| } | |
| }, "undefined" != typeof module && null !== module ? (module.exports = t, t.Bacon = t) : ("undefined" != typeof define && null !== define && null != define.amd && define([], function () { | |
| return t | |
| }), this.Bacon = t) | |
| }.call(this), | |
| /*! | |
| * Modernizr v2.8.1 | |
| * www.modernizr.com | |
| * | |
| * Copyright (c) Faruk Ates, Paul Irish, Alex Sexton | |
| * Available under the BSD and MIT licenses: www.modernizr.com/license/ | |
| */ | |
| window.Modernizr = function (t, e, n) { | |
| function r(t) { | |
| w.cssText = t | |
| } | |
| function o(t, e) { | |
| return r(k.join(t + ";") + (e || "")) | |
| } | |
| function i(t, e) { | |
| return typeof t === e | |
| } | |
| function s(t, e) { | |
| return !!~("" + t).indexOf(e) | |
| } | |
| function a(t, e) { | |
| for (var r in t) { | |
| var o = t[r]; | |
| if (!s(o, "-") && w[o] !== n) return "pfx" == e ? o : !0 | |
| } | |
| return !1 | |
| } | |
| function u(t, e, r) { | |
| for (var o in t) { | |
| var s = e[t[o]]; | |
| if (s !== n) return r === !1 ? t[o] : i(s, "function") ? s.bind(r || e) : s | |
| } | |
| return !1 | |
| } | |
| function l(t, e, n) { | |
| var r = t.charAt(0).toUpperCase() + t.slice(1), | |
| o = (t + " " + C.join(r + " ") + r).split(" "); | |
| return i(e, "string") || i(e, "undefined") ? a(o, e) : (o = (t + " " + E.join(r + " ") + r).split(" "), u(o, e, n)) | |
| } | |
| function c() { | |
| f.input = function (n) { | |
| for (var r = 0, o = n.length; o > r; r++) M[n[r]] = !!(n[r] in _); | |
| return M.list && (M.list = !(!e.createElement("datalist") || !t.HTMLDataListElement)), M | |
| }("autocomplete autofocus list placeholder max min multiple pattern required step".split(" ")), f.inputtypes = function (t) { | |
| for (var r, o, i, s = 0, a = t.length; a > s; s++) _.setAttribute("type", o = t[s]), r = "text" !== _.type, r && (_.value = b, _.style.cssText = "position:absolute;visibility:hidden;", /^range$/.test(o) && _.style.WebkitAppearance !== n ? (g.appendChild(_), i = e.defaultView, r = i.getComputedStyle && "textfield" !== i.getComputedStyle(_, null).WebkitAppearance && 0 !== _.offsetHeight, g.removeChild(_)) : /^(search|tel)$/.test(o) || (r = /^(url|email)$/.test(o) ? _.checkValidity && _.checkValidity() === !1 : _.value != b)), R[t[s]] = !!r; | |
| return R | |
| }("search tel url email datetime date month week time datetime-local number range color".split(" ")) | |
| } | |
| var p, d, h = "2.8.1", | |
| f = {}, | |
| m = !0, | |
| g = e.documentElement, | |
| v = "modernizr", | |
| y = e.createElement(v), | |
| w = y.style, | |
| _ = e.createElement("input"), | |
| b = ":)", | |
| x = {}.toString, | |
| k = " -webkit- -moz- -o- -ms- ".split(" "), | |
| T = "Webkit Moz O ms", | |
| C = T.split(" "), | |
| E = T.toLowerCase().split(" "), | |
| P = { | |
| svg: "http://www.w3.org/2000/svg" | |
| }, | |
| S = {}, | |
| R = {}, | |
| M = {}, | |
| N = [], | |
| O = N.slice, | |
| F = function (t, n, r, o) { | |
| var i, s, a, u, l = e.createElement("div"), | |
| c = e.body, | |
| p = c || e.createElement("body"); | |
| if (parseInt(r, 10)) | |
| for (; r--;) a = e.createElement("div"), a.id = o ? o[r] : v + (r + 1), l.appendChild(a); | |
| return i = ["­", '<style id="s', v, '">', t, "</style>"].join(""), l.id = v, (c ? l : p).innerHTML += i, p.appendChild(l), c || (p.style.background = "", p.style.overflow = "hidden", u = g.style.overflow, g.style.overflow = "hidden", g.appendChild(p)), s = n(l, t), c ? l.parentNode.removeChild(l) : (p.parentNode.removeChild(p), g.style.overflow = u), !!s | |
| }, | |
| A = function (e) { | |
| var n = t.matchMedia || t.msMatchMedia; | |
| if (n) return n(e) && n(e).matches || !1; | |
| var r; | |
| return F("@media " + e + " { #" + v + " { position: absolute; } }", function (e) { | |
| r = "absolute" == (t.getComputedStyle ? getComputedStyle(e, null) : e.currentStyle).position | |
| }), r | |
| }, | |
| I = function () { | |
| function t(t, o) { | |
| o = o || e.createElement(r[t] || "div"), t = "on" + t; | |
| var s = t in o; | |
| return s || (o.setAttribute || (o = e.createElement("div")), o.setAttribute && o.removeAttribute && (o.setAttribute(t, ""), s = i(o[t], "function"), i(o[t], "undefined") || (o[t] = n), o.removeAttribute(t))), o = null, s | |
| } | |
| var r = { | |
| select: "input", | |
| change: "input", | |
| submit: "form", | |
| reset: "form", | |
| error: "img", | |
| load: "img", | |
| abort: "img" | |
| }; | |
| return t | |
| }(), | |
| $ = {}.hasOwnProperty; | |
| d = i($, "undefined") || i($.call, "undefined") ? function (t, e) { | |
| return e in t && i(t.constructor.prototype[e], "undefined") | |
| } : function (t, e) { | |
| return $.call(t, e) | |
| }, Function.prototype.bind || (Function.prototype.bind = function (t) { | |
| var e = this; | |
| if ("function" != typeof e) throw new TypeError; | |
| var n = O.call(arguments, 1), | |
| r = function () { | |
| if (this instanceof r) { | |
| var o = function () {}; | |
| o.prototype = e.prototype; | |
| var i = new o, | |
| s = e.apply(i, n.concat(O.call(arguments))); | |
| return Object(s) === s ? s : i | |
| } | |
| return e.apply(t, n.concat(O.call(arguments))) | |
| }; | |
| return r | |
| }), S.flexbox = function () { | |
| return l("flexWrap") | |
| }, S.flexboxlegacy = function () { | |
| return l("boxDirection") | |
| }, S.canvas = function () { | |
| var t = e.createElement("canvas"); | |
| return !(!t.getContext || !t.getContext("2d")) | |
| }, S.canvastext = function () { | |
| return !(!f.canvas || !i(e.createElement("canvas").getContext("2d").fillText, "function")) | |
| }, S.webgl = function () { | |
| return !!t.WebGLRenderingContext | |
| }, S.touch = function () { | |
| var n; | |
| return "ontouchstart" in t || t.DocumentTouch && e instanceof DocumentTouch ? n = !0 : F(["@media (", k.join("touch-enabled),("), v, ")", "{#modernizr{top:9px;position:absolute}}"].join(""), function (t) { | |
| n = 9 === t.offsetTop | |
| }), n | |
| }, S.geolocation = function () { | |
| return "geolocation" in navigator | |
| }, S.postmessage = function () { | |
| return !!t.postMessage | |
| }, S.websqldatabase = function () { | |
| return !!t.openDatabase | |
| }, S.indexedDB = function () { | |
| return !!l("indexedDB", t) | |
| }, S.hashchange = function () { | |
| return I("hashchange", t) && (e.documentMode === n || e.documentMode > 7) | |
| }, S.history = function () { | |
| return !(!t.history || !history.pushState) | |
| }, S.draganddrop = function () { | |
| var t = e.createElement("div"); | |
| return "draggable" in t || "ondragstart" in t && "ondrop" in t | |
| }, S.websockets = function () { | |
| return "WebSocket" in t || "MozWebSocket" in t | |
| }, S.rgba = function () { | |
| return r("background-color:rgba(150,255,150,.5)"), s(w.backgroundColor, "rgba") | |
| }, S.hsla = function () { | |
| return r("background-color:hsla(120,40%,100%,.5)"), s(w.backgroundColor, "rgba") || s(w.backgroundColor, "hsla") | |
| }, S.multiplebgs = function () { | |
| return r("background:url(https://),url(https://),red url(https://)"), /(url\s*\(.*?){3}/.test(w.background) | |
| }, S.backgroundsize = function () { | |
| return l("backgroundSize") | |
| }, S.borderimage = function () { | |
| return l("borderImage") | |
| }, S.borderradius = function () { | |
| return l("borderRadius") | |
| }, S.boxshadow = function () { | |
| return l("boxShadow") | |
| }, S.textshadow = function () { | |
| return "" === e.createElement("div").style.textShadow | |
| }, S.opacity = function () { | |
| return o("opacity:.55"), /^0.55$/.test(w.opacity) | |
| }, S.cssanimations = function () { | |
| return l("animationName") | |
| }, S.csscolumns = function () { | |
| return l("columnCount") | |
| }, S.cssgradients = function () { | |
| var t = "background-image:", | |
| e = "gradient(linear,left top,right bottom,from(#9f9),to(white));", | |
| n = "linear-gradient(left top,#9f9, white);"; | |
| return r((t + "-webkit- ".split(" ").join(e + t) + k.join(n + t)).slice(0, -t.length)), s(w.backgroundImage, "gradient") | |
| }, S.cssreflections = function () { | |
| return l("boxReflect") | |
| }, S.csstransforms = function () { | |
| return !!l("transform") | |
| }, S.csstransforms3d = function () { | |
| var t = !!l("perspective"); | |
| return t && "webkitPerspective" in g.style && F("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}", function (e) { | |
| t = 9 === e.offsetLeft && 3 === e.offsetHeight | |
| }), t | |
| }, S.csstransitions = function () { | |
| return l("transition") | |
| }, S.fontface = function () { | |
| var t; | |
| return F('@font-face {font-family:"font";src:url("https://")}', function (n, r) { | |
| var o = e.getElementById("smodernizr"), | |
| i = o.sheet || o.styleSheet, | |
| s = i ? i.cssRules && i.cssRules[0] ? i.cssRules[0].cssText : i.cssText || "" : ""; | |
| t = /src/i.test(s) && 0 === s.indexOf(r.split(" ")[0]) | |
| }), t | |
| }, S.generatedcontent = function () { | |
| var t; | |
| return F(["#", v, "{font:0/0 a}#", v, ':after{content:"', b, '";visibility:hidden;font:3px/1 a}'].join(""), function (e) { | |
| t = e.offsetHeight >= 3 | |
| }), t | |
| }, S.video = function () { | |
| var t = e.createElement("video"), | |
| n = !1; | |
| try { | |
| (n = !!t.canPlayType) && (n = new Boolean(n), n.ogg = t.canPlayType('video/ogg; codecs="theora"').replace(/^no$/, ""), n.h264 = t.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/, ""), n.webm = t.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/, "")) | |
| } catch (r) {} | |
| return n | |
| }, S.audio = function () { | |
| var t = e.createElement("audio"), | |
| n = !1; | |
| try { | |
| (n = !!t.canPlayType) && (n = new Boolean(n), n.ogg = t.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/, ""), n.mp3 = t.canPlayType("audio/mpeg;").replace(/^no$/, ""), n.wav = t.canPlayType('audio/wav; codecs="1"').replace(/^no$/, ""), n.m4a = (t.canPlayType("audio/x-m4a;") || t.canPlayType("audio/aac;")).replace(/^no$/, "")) | |
| } catch (r) {} | |
| return n | |
| }, S.localstorage = function () { | |
| try { | |
| return localStorage.setItem(v, v), localStorage.removeItem(v), !0 | |
| } catch (t) { | |
| return !1 | |
| } | |
| }, S.sessionstorage = function () { | |
| try { | |
| return sessionStorage.setItem(v, v), sessionStorage.removeItem(v), !0 | |
| } catch (t) { | |
| return !1 | |
| } | |
| }, S.webworkers = function () { | |
| return !!t.Worker | |
| }, S.applicationcache = function () { | |
| return !!t.applicationCache | |
| }, S.svg = function () { | |
| return !!e.createElementNS && !!e.createElementNS(P.svg, "svg").createSVGRect | |
| }, S.inlinesvg = function () { | |
| var t = e.createElement("div"); | |
| return t.innerHTML = "<svg/>", (t.firstChild && t.firstChild.namespaceURI) == P.svg | |
| }, S.smil = function () { | |
| return !!e.createElementNS && /SVGAnimate/.test(x.call(e.createElementNS(P.svg, "animate"))) | |
| }, S.svgclippaths = function () { | |
| return !!e.createElementNS && /SVGClipPath/.test(x.call(e.createElementNS(P.svg, "clipPath"))) | |
| }; | |
| for (var D in S) d(S, D) && (p = D.toLowerCase(), f[p] = S[D](), N.push((f[p] ? "" : "no-") + p)); | |
| return f.input || c(), f.addTest = function (t, e) { | |
| if ("object" == typeof t) | |
| for (var r in t) d(t, r) && f.addTest(r, t[r]); | |
| else { | |
| if (t = t.toLowerCase(), f[t] !== n) return f; | |
| e = "function" == typeof e ? e() : e, "undefined" != typeof m && m && (g.className += " " + (e ? "" : "no-") + t), f[t] = e | |
| } | |
| return f | |
| }, r(""), y = _ = null, | |
| function (t, e) { | |
| function n(t, e) { | |
| var n = t.createElement("p"), | |
| r = t.getElementsByTagName("head")[0] || t.documentElement; | |
| return n.innerHTML = "x<style>" + e + "</style>", r.insertBefore(n.lastChild, r.firstChild) | |
| } | |
| function r() { | |
| var t = y.elements; | |
| return "string" == typeof t ? t.split(" ") : t | |
| } | |
| function o(t) { | |
| var e = v[t[m]]; | |
| return e || (e = {}, g++, t[m] = g, v[g] = e), e | |
| } | |
| function i(t, n, r) { | |
| if (n || (n = e), c) return n.createElement(t); | |
| r || (r = o(n)); | |
| var i; | |
| return i = r.cache[t] ? r.cache[t].cloneNode() : f.test(t) ? (r.cache[t] = r.createElem(t)).cloneNode() : r.createElem(t), !i.canHaveChildren || h.test(t) || i.tagUrn ? i : r.frag.appendChild(i) | |
| } | |
| function s(t, n) { | |
| if (t || (t = e), c) return t.createDocumentFragment(); | |
| n = n || o(t); | |
| for (var i = n.frag.cloneNode(), s = 0, a = r(), u = a.length; u > s; s++) i.createElement(a[s]); | |
| return i | |
| } | |
| function a(t, e) { | |
| e.cache || (e.cache = {}, e.createElem = t.createElement, e.createFrag = t.createDocumentFragment, e.frag = e.createFrag()), t.createElement = function (n) { | |
| return y.shivMethods ? i(n, t, e) : e.createElem(n) | |
| }, t.createDocumentFragment = Function("h,f", "return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&(" + r().join().replace(/[\w\-]+/g, function (t) { | |
| return e.createElem(t), e.frag.createElement(t), 'c("' + t + '")' | |
| }) + ");return n}")(y, e.frag) | |
| } | |
| function u(t) { | |
| t || (t = e); | |
| var r = o(t); | |
| return !y.shivCSS || l || r.hasCSS || (r.hasCSS = !!n(t, "article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")), c || a(t, r), t | |
| } | |
| var l, c, p = "3.7.0", | |
| d = t.html5 || {}, | |
| h = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i, | |
| f = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i, | |
| m = "_html5shiv", | |
| g = 0, | |
| v = {}; | |
| ! function () { | |
| try { | |
| var t = e.createElement("a"); | |
| t.innerHTML = "<xyz></xyz>", l = "hidden" in t, c = 1 == t.childNodes.length || function () { | |
| e.createElement("a"); | |
| var t = e.createDocumentFragment(); | |
| return "undefined" == typeof t.cloneNode || "undefined" == typeof t.createDocumentFragment || "undefined" == typeof t.createElement | |
| }() | |
| } catch (n) { | |
| l = !0, c = !0 | |
| } | |
| }(); | |
| var y = { | |
| elements: d.elements || "abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video", | |
| version: p, | |
| shivCSS: d.shivCSS !== !1, | |
| supportsUnknownElements: c, | |
| shivMethods: d.shivMethods !== !1, | |
| type: "default", | |
| shivDocument: u, | |
| createElement: i, | |
| createDocumentFragment: s | |
| }; | |
| t.html5 = y, u(e) | |
| }(this, e), f._version = h, f._prefixes = k, f._domPrefixes = E, f._cssomPrefixes = C, f.mq = A, f.hasEvent = I, f.testProp = function (t) { | |
| return a([t]) | |
| }, f.testAllProps = l, f.testStyles = F, f.prefixed = function (t, e, n) { | |
| return e ? l(t, e, n) : l(t, "pfx") | |
| }, g.className = g.className.replace(/(^|\s)no-js(\s|$)/, "$1$2") + (m ? " js " + N.join(" ") : ""), f | |
| }(this, this.document), Modernizr.addTest("csspositionsticky", function () { | |
| var t = "position:", | |
| e = "sticky", | |
| n = document.createElement("modernizr"), | |
| r = n.style; | |
| return r.cssText = t + Modernizr._prefixes.join(e + ";" + t).slice(0, -t.length), -1 !== r.position.indexOf(e) | |
| }), | |
| function (t) { | |
| function e() { | |
| return { | |
| empty: !1, | |
| unusedTokens: [], | |
| unusedInput: [], | |
| overflow: -2, | |
| charsLeftOver: 0, | |
| nullInput: !1, | |
| invalidMonth: null, | |
| invalidFormat: !1, | |
| userInvalidated: !1, | |
| iso: !1 | |
| } | |
| } | |
| function n(t, e) { | |
| function n() { | |
| ue.suppressDeprecationWarnings === !1 && "undefined" != typeof console && console.warn && console.warn("Deprecation warning: " + t) | |
| } | |
| var r = !0; | |
| return u(function () { | |
| return r && (n(), r = !1), e.apply(this, arguments) | |
| }, e) | |
| } | |
| function r(t, e) { | |
| return function (n) { | |
| return p(t.call(this, n), e) | |
| } | |
| } | |
| function o(t, e) { | |
| return function (n) { | |
| return this.lang().ordinal(t.call(this, n), e) | |
| } | |
| } | |
| function i() {} | |
| function s(t) { | |
| T(t), u(this, t) | |
| } | |
| function a(t) { | |
| var e = v(t), | |
| n = e.year || 0, | |
| r = e.quarter || 0, | |
| o = e.month || 0, | |
| i = e.week || 0, | |
| s = e.day || 0, | |
| a = e.hour || 0, | |
| u = e.minute || 0, | |
| l = e.second || 0, | |
| c = e.millisecond || 0; | |
| this._milliseconds = +c + 1e3 * l + 6e4 * u + 36e5 * a, this._days = +s + 7 * i, this._months = +o + 3 * r + 12 * n, this._data = {}, this._bubble() | |
| } | |
| function u(t, e) { | |
| for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n]); | |
| return e.hasOwnProperty("toString") && (t.toString = e.toString), e.hasOwnProperty("valueOf") && (t.valueOf = e.valueOf), t | |
| } | |
| function l(t) { | |
| var e, n = {}; | |
| for (e in t) t.hasOwnProperty(e) && xe.hasOwnProperty(e) && (n[e] = t[e]); | |
| return n | |
| } | |
| function c(t) { | |
| return 0 > t ? Math.ceil(t) : Math.floor(t) | |
| } | |
| function p(t, e, n) { | |
| for (var r = "" + Math.abs(t), o = t >= 0; r.length < e;) r = "0" + r; | |
| return (o ? n ? "+" : "" : "-") + r | |
| } | |
| function d(t, e, n, r) { | |
| var o = e._milliseconds, | |
| i = e._days, | |
| s = e._months; | |
| r = null == r ? !0 : r, o && t._d.setTime(+t._d + o * n), i && re(t, "Date", ne(t, "Date") + i * n), s && ee(t, ne(t, "Month") + s * n), r && ue.updateOffset(t, i || s) | |
| } | |
| function h(t) { | |
| return "[object Array]" === Object.prototype.toString.call(t) | |
| } | |
| function f(t) { | |
| return "[object Date]" === Object.prototype.toString.call(t) || t instanceof Date | |
| } | |
| function m(t, e, n) { | |
| var r, o = Math.min(t.length, e.length), | |
| i = Math.abs(t.length - e.length), | |
| s = 0; | |
| for (r = 0; o > r; r++)(n && t[r] !== e[r] || !n && w(t[r]) !== w(e[r])) && s++; | |
| return s + i | |
| } | |
| function g(t) { | |
| if (t) { | |
| var e = t.toLowerCase().replace(/(.)s$/, "$1"); | |
| t = Qe[t] || Ze[e] || e | |
| } | |
| return t | |
| } | |
| function v(t) { | |
| var e, n, r = {}; | |
| for (n in t) t.hasOwnProperty(n) && (e = g(n), e && (r[e] = t[n])); | |
| return r | |
| } | |
| function y(e) { | |
| var n, r; | |
| if (0 === e.indexOf("week")) n = 7, r = "day"; | |
| else { | |
| if (0 !== e.indexOf("month")) return; | |
| n = 12, r = "month" | |
| } | |
| ue[e] = function (o, i) { | |
| var s, a, u = ue.fn._lang[e], | |
| l = []; | |
| if ("number" == typeof o && (i = o, o = t), a = function (t) { | |
| var e = ue().utc().set(r, t); | |
| return u.call(ue.fn._lang, e, o || "") | |
| }, null != i) return a(i); | |
| for (s = 0; n > s; s++) l.push(a(s)); | |
| return l | |
| } | |
| } | |
| function w(t) { | |
| var e = +t, | |
| n = 0; | |
| return 0 !== e && isFinite(e) && (n = e >= 0 ? Math.floor(e) : Math.ceil(e)), n | |
| } | |
| function _(t, e) { | |
| return new Date(Date.UTC(t, e + 1, 0)).getUTCDate() | |
| } | |
| function b(t, e, n) { | |
| return Z(ue([t, 11, 31 + e - n]), e, n).week | |
| } | |
| function x(t) { | |
| return k(t) ? 366 : 365 | |
| } | |
| function k(t) { | |
| return t % 4 === 0 && t % 100 !== 0 || t % 400 === 0 | |
| } | |
| function T(t) { | |
| var e; | |
| t._a && -2 === t._pf.overflow && (e = t._a[me] < 0 || t._a[me] > 11 ? me : t._a[ge] < 1 || t._a[ge] > _(t._a[fe], t._a[me]) ? ge : t._a[ve] < 0 || t._a[ve] > 23 ? ve : t._a[ye] < 0 || t._a[ye] > 59 ? ye : t._a[we] < 0 || t._a[we] > 59 ? we : t._a[_e] < 0 || t._a[_e] > 999 ? _e : -1, t._pf._overflowDayOfYear && (fe > e || e > ge) && (e = ge), t._pf.overflow = e) | |
| } | |
| function C(t) { | |
| return null == t._isValid && (t._isValid = !isNaN(t._d.getTime()) && t._pf.overflow < 0 && !t._pf.empty && !t._pf.invalidMonth && !t._pf.nullInput && !t._pf.invalidFormat && !t._pf.userInvalidated, t._strict && (t._isValid = t._isValid && 0 === t._pf.charsLeftOver && 0 === t._pf.unusedTokens.length)), t._isValid | |
| } | |
| function E(t) { | |
| return t ? t.toLowerCase().replace("_", "-") : t | |
| } | |
| function P(t, e) { | |
| return e._isUTC ? ue(t).zone(e._offset || 0) : ue(t).local() | |
| } | |
| function S(t, e) { | |
| return e.abbr = t, be[t] || (be[t] = new i), be[t].set(e), be[t] | |
| } | |
| function R(t) { | |
| delete be[t] | |
| } | |
| function M(t) { | |
| var e, n, r, o, i = 0, | |
| s = function (t) { | |
| if (!be[t] && ke) try { | |
| require("./lang/" + t) | |
| } catch (e) {} | |
| return be[t] | |
| }; | |
| if (!t) return ue.fn._lang; | |
| if (!h(t)) { | |
| if (n = s(t)) return n; | |
| t = [t] | |
| } | |
| for (; i < t.length;) { | |
| for (o = E(t[i]).split("-"), e = o.length, r = E(t[i + 1]), r = r ? r.split("-") : null; e > 0;) { | |
| if (n = s(o.slice(0, e).join("-"))) return n; | |
| if (r && r.length >= e && m(o, r, !0) >= e - 1) break; | |
| e-- | |
| } | |
| i++ | |
| } | |
| return ue.fn._lang | |
| } | |
| function N(t) { | |
| return t.match(/\[[\s\S]/) ? t.replace(/^\[|\]$/g, "") : t.replace(/\\/g, "") | |
| } | |
| function O(t) { | |
| var e, n, r = t.match(Pe); | |
| for (e = 0, n = r.length; n > e; e++) r[e] = nn[r[e]] ? nn[r[e]] : N(r[e]); | |
| return function (o) { | |
| var i = ""; | |
| for (e = 0; n > e; e++) i += r[e] instanceof Function ? r[e].call(o, t) : r[e]; | |
| return i | |
| } | |
| } | |
| function F(t, e) { | |
| return t.isValid() ? (e = A(e, t.lang()), Je[e] || (Je[e] = O(e)), Je[e](t)) : t.lang().invalidDate() | |
| } | |
| function A(t, e) { | |
| function n(t) { | |
| return e.longDateFormat(t) || t | |
| } | |
| var r = 5; | |
| for (Se.lastIndex = 0; r >= 0 && Se.test(t);) t = t.replace(Se, n), Se.lastIndex = 0, r -= 1; | |
| return t | |
| } | |
| function I(t, e) { | |
| var n, r = e._strict; | |
| switch (t) { | |
| case "Q": | |
| return Ue; | |
| case "DDDD": | |
| return Ve; | |
| case "YYYY": | |
| case "GGGG": | |
| case "gggg": | |
| return r ? ze : Ne; | |
| case "Y": | |
| case "G": | |
| case "g": | |
| return Be; | |
| case "YYYYYY": | |
| case "YYYYY": | |
| case "GGGGG": | |
| case "ggggg": | |
| return r ? je : Oe; | |
| case "S": | |
| if (r) return Ue; | |
| case "SS": | |
| if (r) return He; | |
| case "SSS": | |
| if (r) return Ve; | |
| case "DDD": | |
| return Me; | |
| case "MMM": | |
| case "MMMM": | |
| case "dd": | |
| case "ddd": | |
| case "dddd": | |
| return Ae; | |
| case "a": | |
| case "A": | |
| return M(e._l)._meridiemParse; | |
| case "X": | |
| return De; | |
| case "Z": | |
| case "ZZ": | |
| return Ie; | |
| case "T": | |
| return $e; | |
| case "SSSS": | |
| return Fe; | |
| case "MM": | |
| case "DD": | |
| case "YY": | |
| case "GG": | |
| case "gg": | |
| case "HH": | |
| case "hh": | |
| case "mm": | |
| case "ss": | |
| case "ww": | |
| case "WW": | |
| return r ? He : Re; | |
| case "M": | |
| case "D": | |
| case "d": | |
| case "H": | |
| case "h": | |
| case "m": | |
| case "s": | |
| case "w": | |
| case "W": | |
| case "e": | |
| case "E": | |
| return Re; | |
| case "Do": | |
| return Le; | |
| default: | |
| return n = new RegExp(j(z(t.replace("\\", "")), "i")) | |
| } | |
| } | |
| function $(t) { | |
| t = t || ""; | |
| var e = t.match(Ie) || [], | |
| n = e[e.length - 1] || [], | |
| r = (n + "").match(Ke) || ["-", 0, 0], | |
| o = +(60 * r[1]) + w(r[2]); | |
| return "+" === r[0] ? -o : o | |
| } | |
| function D(t, e, n) { | |
| var r, o = n._a; | |
| switch (t) { | |
| case "Q": | |
| null != e && (o[me] = 3 * (w(e) - 1)); | |
| break; | |
| case "M": | |
| case "MM": | |
| null != e && (o[me] = w(e) - 1); | |
| break; | |
| case "MMM": | |
| case "MMMM": | |
| r = M(n._l).monthsParse(e), null != r ? o[me] = r : n._pf.invalidMonth = e; | |
| break; | |
| case "D": | |
| case "DD": | |
| null != e && (o[ge] = w(e)); | |
| break; | |
| case "Do": | |
| null != e && (o[ge] = w(parseInt(e, 10))); | |
| break; | |
| case "DDD": | |
| case "DDDD": | |
| null != e && (n._dayOfYear = w(e)); | |
| break; | |
| case "YY": | |
| o[fe] = ue.parseTwoDigitYear(e); | |
| break; | |
| case "YYYY": | |
| case "YYYYY": | |
| case "YYYYYY": | |
| o[fe] = w(e); | |
| break; | |
| case "a": | |
| case "A": | |
| n._isPm = M(n._l).isPM(e); | |
| break; | |
| case "H": | |
| case "HH": | |
| case "h": | |
| case "hh": | |
| o[ve] = w(e); | |
| break; | |
| case "m": | |
| case "mm": | |
| o[ye] = w(e); | |
| break; | |
| case "s": | |
| case "ss": | |
| o[we] = w(e); | |
| break; | |
| case "S": | |
| case "SS": | |
| case "SSS": | |
| case "SSSS": | |
| o[_e] = w(1e3 * ("0." + e)); | |
| break; | |
| case "X": | |
| n._d = new Date(1e3 * parseFloat(e)); | |
| break; | |
| case "Z": | |
| case "ZZ": | |
| n._useUTC = !0, n._tzm = $(e); | |
| break; | |
| case "w": | |
| case "ww": | |
| case "W": | |
| case "WW": | |
| case "d": | |
| case "dd": | |
| case "ddd": | |
| case "dddd": | |
| case "e": | |
| case "E": | |
| t = t.substr(0, 1); | |
| case "gg": | |
| case "gggg": | |
| case "GG": | |
| case "GGGG": | |
| case "GGGGG": | |
| t = t.substr(0, 2), e && (n._w = n._w || {}, n._w[t] = e) | |
| } | |
| } | |
| function L(t) { | |
| var e, n, r, o, i, s, a, u, l, c, p = []; | |
| if (!t._d) { | |
| for (r = H(t), t._w && null == t._a[ge] && null == t._a[me] && (i = function (e) { | |
| var n = parseInt(e, 10); | |
| return e ? e.length < 3 ? n > 68 ? 1900 + n : 2e3 + n : n : null == t._a[fe] ? ue().weekYear() : t._a[fe] | |
| }, s = t._w, null != s.GG || null != s.W || null != s.E ? a = J(i(s.GG), s.W || 1, s.E, 4, 1) : (u = M(t._l), l = null != s.d ? K(s.d, u) : null != s.e ? parseInt(s.e, 10) + u._week.dow : 0, c = parseInt(s.w, 10) || 1, null != s.d && l < u._week.dow && c++, a = J(i(s.gg), c, l, u._week.doy, u._week.dow)), t._a[fe] = a.year, t._dayOfYear = a.dayOfYear), t._dayOfYear && (o = null == t._a[fe] ? r[fe] : t._a[fe], t._dayOfYear > x(o) && (t._pf._overflowDayOfYear = !0), n = G(o, 0, t._dayOfYear), t._a[me] = n.getUTCMonth(), t._a[ge] = n.getUTCDate()), e = 0; 3 > e && null == t._a[e]; ++e) t._a[e] = p[e] = r[e]; | |
| for (; 7 > e; e++) t._a[e] = p[e] = null == t._a[e] ? 2 === e ? 1 : 0 : t._a[e]; | |
| p[ve] += w((t._tzm || 0) / 60), p[ye] += w((t._tzm || 0) % 60), t._d = (t._useUTC ? G : Y).apply(null, p) | |
| } | |
| } | |
| function U(t) { | |
| var e; | |
| t._d || (e = v(t._i), t._a = [e.year, e.month, e.day, e.hour, e.minute, e.second, e.millisecond], L(t)) | |
| } | |
| function H(t) { | |
| var e = new Date; | |
| return t._useUTC ? [e.getUTCFullYear(), e.getUTCMonth(), e.getUTCDate()] : [e.getFullYear(), e.getMonth(), e.getDate()] | |
| } | |
| function V(t) { | |
| t._a = [], t._pf.empty = !0; | |
| var e, n, r, o, i, s = M(t._l), | |
| a = "" + t._i, | |
| u = a.length, | |
| l = 0; | |
| for (r = A(t._f, s).match(Pe) || [], e = 0; e < r.length; e++) o = r[e], n = (a.match(I(o, t)) || [])[0], n && (i = a.substr(0, a.indexOf(n)), i.length > 0 && t._pf.unusedInput.push(i), a = a.slice(a.indexOf(n) + n.length), l += n.length), nn[o] ? (n ? t._pf.empty = !1 : t._pf.unusedTokens.push(o), D(o, n, t)) : t._strict && !n && t._pf.unusedTokens.push(o); | |
| t._pf.charsLeftOver = u - l, a.length > 0 && t._pf.unusedInput.push(a), t._isPm && t._a[ve] < 12 && (t._a[ve] += 12), t._isPm === !1 && 12 === t._a[ve] && (t._a[ve] = 0), L(t), T(t) | |
| } | |
| function z(t) { | |
| return t.replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (t, e, n, r, o) { | |
| return e || n || r || o | |
| }) | |
| } | |
| function j(t) { | |
| return t.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&") | |
| } | |
| function B(t) { | |
| var n, r, o, i, s; | |
| if (0 === t._f.length) return t._pf.invalidFormat = !0, void(t._d = new Date(0 / 0)); | |
| for (i = 0; i < t._f.length; i++) s = 0, n = u({}, t), n._pf = e(), n._f = t._f[i], V(n), C(n) && (s += n._pf.charsLeftOver, s += 10 * n._pf.unusedTokens.length, n._pf.score = s, (null == o || o > s) && (o = s, r = n)); | |
| u(t, r || n) | |
| } | |
| function q(t) { | |
| var e, n, r = t._i, | |
| o = qe.exec(r); | |
| if (o) { | |
| for (t._pf.iso = !0, e = 0, n = Ye.length; n > e; e++) | |
| if (Ye[e][1].exec(r)) { | |
| t._f = Ye[e][0] + (o[6] || " "); | |
| break | |
| } | |
| for (e = 0, n = Ge.length; n > e; e++) | |
| if (Ge[e][1].exec(r)) { | |
| t._f += Ge[e][0]; | |
| break | |
| } | |
| r.match(Ie) && (t._f += "Z"), V(t) | |
| } else ue.createFromInputFallback(t) | |
| } | |
| function W(e) { | |
| var n = e._i, | |
| r = Te.exec(n); | |
| n === t ? e._d = new Date : r ? e._d = new Date(+r[1]) : "string" == typeof n ? q(e) : h(n) ? (e._a = n.slice(0), L(e)) : f(n) ? e._d = new Date(+n) : "object" == typeof n ? U(e) : "number" == typeof n ? e._d = new Date(n) : ue.createFromInputFallback(e) | |
| } | |
| function Y(t, e, n, r, o, i, s) { | |
| var a = new Date(t, e, n, r, o, i, s); | |
| return 1970 > t && a.setFullYear(t), a | |
| } | |
| function G(t) { | |
| var e = new Date(Date.UTC.apply(null, arguments)); | |
| return 1970 > t && e.setUTCFullYear(t), e | |
| } | |
| function K(t, e) { | |
| if ("string" == typeof t) | |
| if (isNaN(t)) { | |
| if (t = e.weekdaysParse(t), "number" != typeof t) return null | |
| } else t = parseInt(t, 10); | |
| return t | |
| } | |
| function X(t, e, n, r, o) { | |
| return o.relativeTime(e || 1, !!n, t, r) | |
| } | |
| function Q(t, e, n) { | |
| var r = he(Math.abs(t) / 1e3), | |
| o = he(r / 60), | |
| i = he(o / 60), | |
| s = he(i / 24), | |
| a = he(s / 365), | |
| u = 45 > r && ["s", r] || 1 === o && ["m"] || 45 > o && ["mm", o] || 1 === i && ["h"] || 22 > i && ["hh", i] || 1 === s && ["d"] || 25 >= s && ["dd", s] || 45 >= s && ["M"] || 345 > s && ["MM", he(s / 30)] || 1 === a && ["y"] || ["yy", a]; | |
| return u[2] = e, u[3] = t > 0, u[4] = n, X.apply({}, u) | |
| } | |
| function Z(t, e, n) { | |
| var r, o = n - e, | |
| i = n - t.day(); | |
| return i > o && (i -= 7), o - 7 > i && (i += 7), r = ue(t).add("d", i), { | |
| week: Math.ceil(r.dayOfYear() / 7), | |
| year: r.year() | |
| } | |
| } | |
| function J(t, e, n, r, o) { | |
| var i, s, a = G(t, 0, 1).getUTCDay(); | |
| return n = null != n ? n : o, i = o - a + (a > r ? 7 : 0) - (o > a ? 7 : 0), s = 7 * (e - 1) + (n - o) + i + 1, { | |
| year: s > 0 ? t : t - 1, | |
| dayOfYear: s > 0 ? s : x(t - 1) + s | |
| } | |
| } | |
| function te(e) { | |
| var n = e._i, | |
| r = e._f; | |
| return null === n || r === t && "" === n ? ue.invalid({ | |
| nullInput: !0 | |
| }) : ("string" == typeof n && (e._i = n = M().preparse(n)), ue.isMoment(n) ? (e = l(n), e._d = new Date(+n._d)) : r ? h(r) ? B(e) : V(e) : W(e), new s(e)) | |
| } | |
| function ee(t, e) { | |
| var n; | |
| return "string" == typeof e && (e = t.lang().monthsParse(e), "number" != typeof e) ? t : (n = Math.min(t.date(), _(t.year(), e)), t._d["set" + (t._isUTC ? "UTC" : "") + "Month"](e, n), t) | |
| } | |
| function ne(t, e) { | |
| return t._d["get" + (t._isUTC ? "UTC" : "") + e]() | |
| } | |
| function re(t, e, n) { | |
| return "Month" === e ? ee(t, n) : t._d["set" + (t._isUTC ? "UTC" : "") + e](n) | |
| } | |
| function oe(t, e) { | |
| return function (n) { | |
| return null != n ? (re(this, t, n), ue.updateOffset(this, e), this) : ne(this, t) | |
| } | |
| } | |
| function ie(t) { | |
| ue.duration.fn[t] = function () { | |
| return this._data[t] | |
| } | |
| } | |
| function se(t, e) { | |
| ue.duration.fn["as" + t] = function () { | |
| return +this / e | |
| } | |
| } | |
| function ae(t) { | |
| "undefined" == typeof ender && (le = de.moment, de.moment = t ? n("Accessing Moment through the global scope is deprecated, and will be removed in an upcoming release.", ue) : ue) | |
| } | |
| for (var ue, le, ce, pe = "2.6.0", de = "undefined" != typeof global ? global : this, he = Math.round, fe = 0, me = 1, ge = 2, ve = 3, ye = 4, we = 5, _e = 6, be = {}, xe = { | |
| _isAMomentObject: null, | |
| _i: null, | |
| _f: null, | |
| _l: null, | |
| _strict: null, | |
| _isUTC: null, | |
| _offset: null, | |
| _pf: null, | |
| _lang: null | |
| }, ke = "undefined" != typeof module && module.exports, Te = /^\/?Date\((\-?\d+)/i, Ce = /(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/, Ee = /^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/, Pe = /(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Q|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,4}|X|zz?|ZZ?|.)/g, Se = /(\[[^\[]*\])|(\\)?(LT|LL?L?L?|l{1,4})/g, Re = /\d\d?/, Me = /\d{1,3}/, Ne = /\d{1,4}/, Oe = /[+\-]?\d{1,6}/, Fe = /\d+/, Ae = /[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i, Ie = /Z|[\+\-]\d\d:?\d\d/gi, $e = /T/i, De = /[\+\-]?\d+(\.\d{1,3})?/, Le = /\d{1,2}/, Ue = /\d/, He = /\d\d/, Ve = /\d{3}/, ze = /\d{4}/, je = /[+-]?\d{6}/, Be = /[+-]?\d+/, qe = /^\s*(?:[+-]\d{6}|\d{4})-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/, We = "YYYY-MM-DDTHH:mm:ssZ", Ye = [ | |
| ["YYYYYY-MM-DD", /[+-]\d{6}-\d{2}-\d{2}/], | |
| ["YYYY-MM-DD", /\d{4}-\d{2}-\d{2}/], | |
| ["GGGG-[W]WW-E", /\d{4}-W\d{2}-\d/], | |
| ["GGGG-[W]WW", /\d{4}-W\d{2}/], | |
| ["YYYY-DDD", /\d{4}-\d{3}/] | |
| ], Ge = [ | |
| ["HH:mm:ss.SSSS", /(T| )\d\d:\d\d:\d\d\.\d+/], | |
| ["HH:mm:ss", /(T| )\d\d:\d\d:\d\d/], | |
| ["HH:mm", /(T| )\d\d:\d\d/], | |
| ["HH", /(T| )\d\d/] | |
| ], Ke = /([\+\-]|\d\d)/gi, Xe = ("Date|Hours|Minutes|Seconds|Milliseconds".split("|"), { | |
| Milliseconds: 1, | |
| Seconds: 1e3, | |
| Minutes: 6e4, | |
| Hours: 36e5, | |
| Days: 864e5, | |
| Months: 2592e6, | |
| Years: 31536e6 | |
| }), Qe = { | |
| ms: "millisecond", | |
| s: "second", | |
| m: "minute", | |
| h: "hour", | |
| d: "day", | |
| D: "date", | |
| w: "week", | |
| W: "isoWeek", | |
| M: "month", | |
| Q: "quarter", | |
| y: "year", | |
| DDD: "dayOfYear", | |
| e: "weekday", | |
| E: "isoWeekday", | |
| gg: "weekYear", | |
| GG: "isoWeekYear" | |
| }, Ze = { | |
| dayofyear: "dayOfYear", | |
| isoweekday: "isoWeekday", | |
| isoweek: "isoWeek", | |
| weekyear: "weekYear", | |
| isoweekyear: "isoWeekYear" | |
| }, Je = {}, tn = "DDD w W M D d".split(" "), en = "M D H h m s w W".split(" "), nn = { | |
| M: function () { | |
| return this.month() + 1 | |
| }, | |
| MMM: function (t) { | |
| return this.lang().monthsShort(this, t) | |
| }, | |
| MMMM: function (t) { | |
| return this.lang().months(this, t) | |
| }, | |
| D: function () { | |
| return this.date() | |
| }, | |
| DDD: function () { | |
| return this.dayOfYear() | |
| }, | |
| d: function () { | |
| return this.day() | |
| }, | |
| dd: function (t) { | |
| return this.lang().weekdaysMin(this, t) | |
| }, | |
| ddd: function (t) { | |
| return this.lang().weekdaysShort(this, t) | |
| }, | |
| dddd: function (t) { | |
| return this.lang().weekdays(this, t) | |
| }, | |
| w: function () { | |
| return this.week() | |
| }, | |
| W: function () { | |
| return this.isoWeek() | |
| }, | |
| YY: function () { | |
| return p(this.year() % 100, 2) | |
| }, | |
| YYYY: function () { | |
| return p(this.year(), 4) | |
| }, | |
| YYYYY: function () { | |
| return p(this.year(), 5) | |
| }, | |
| YYYYYY: function () { | |
| var t = this.year(), | |
| e = t >= 0 ? "+" : "-"; | |
| return e + p(Math.abs(t), 6) | |
| }, | |
| gg: function () { | |
| return p(this.weekYear() % 100, 2) | |
| }, | |
| gggg: function () { | |
| return p(this.weekYear(), 4) | |
| }, | |
| ggggg: function () { | |
| return p(this.weekYear(), 5) | |
| }, | |
| GG: function () { | |
| return p(this.isoWeekYear() % 100, 2) | |
| }, | |
| GGGG: function () { | |
| return p(this.isoWeekYear(), 4) | |
| }, | |
| GGGGG: function () { | |
| return p(this.isoWeekYear(), 5) | |
| }, | |
| e: function () { | |
| return this.weekday() | |
| }, | |
| E: function () { | |
| return this.isoWeekday() | |
| }, | |
| a: function () { | |
| return this.lang().meridiem(this.hours(), this.minutes(), !0) | |
| }, | |
| A: function () { | |
| return this.lang().meridiem(this.hours(), this.minutes(), !1) | |
| }, | |
| H: function () { | |
| return this.hours() | |
| }, | |
| h: function () { | |
| return this.hours() % 12 || 12 | |
| }, | |
| m: function () { | |
| return this.minutes() | |
| }, | |
| s: function () { | |
| return this.seconds() | |
| }, | |
| S: function () { | |
| return w(this.milliseconds() / 100) | |
| }, | |
| SS: function () { | |
| return p(w(this.milliseconds() / 10), 2) | |
| }, | |
| SSS: function () { | |
| return p(this.milliseconds(), 3) | |
| }, | |
| SSSS: function () { | |
| return p(this.milliseconds(), 3) | |
| }, | |
| Z: function () { | |
| var t = -this.zone(), | |
| e = "+"; | |
| return 0 > t && (t = -t, e = "-"), e + p(w(t / 60), 2) + ":" + p(w(t) % 60, 2) | |
| }, | |
| ZZ: function () { | |
| var t = -this.zone(), | |
| e = "+"; | |
| return 0 > t && (t = -t, e = "-"), e + p(w(t / 60), 2) + p(w(t) % 60, 2) | |
| }, | |
| z: function () { | |
| return this.zoneAbbr() | |
| }, | |
| zz: function () { | |
| return this.zoneName() | |
| }, | |
| X: function () { | |
| return this.unix() | |
| }, | |
| Q: function () { | |
| return this.quarter() | |
| } | |
| }, rn = ["months", "monthsShort", "weekdays", "weekdaysShort", "weekdaysMin"]; tn.length;) ce = tn.pop(), nn[ce + "o"] = o(nn[ce], ce); | |
| for (; en.length;) ce = en.pop(), nn[ce + ce] = r(nn[ce], 2); | |
| for (nn.DDDD = r(nn.DDD, 3), u(i.prototype, { | |
| set: function (t) { | |
| var e, n; | |
| for (n in t) e = t[n], "function" == typeof e ? this[n] = e : this["_" + n] = e | |
| }, | |
| _months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), | |
| months: function (t) { | |
| return this._months[t.month()] | |
| }, | |
| _monthsShort: "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"), | |
| monthsShort: function (t) { | |
| return this._monthsShort[t.month()] | |
| }, | |
| monthsParse: function (t) { | |
| var e, n, r; | |
| for (this._monthsParse || (this._monthsParse = []), e = 0; 12 > e; e++) | |
| if (this._monthsParse[e] || (n = ue.utc([2e3, e]), r = "^" + this.months(n, "") + "|^" + this.monthsShort(n, ""), this._monthsParse[e] = new RegExp(r.replace(".", ""), "i")), this._monthsParse[e].test(t)) return e | |
| }, | |
| _weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), | |
| weekdays: function (t) { | |
| return this._weekdays[t.day()] | |
| }, | |
| _weekdaysShort: "Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"), | |
| weekdaysShort: function (t) { | |
| return this._weekdaysShort[t.day()] | |
| }, | |
| _weekdaysMin: "Su_Mo_Tu_We_Th_Fr_Sa".split("_"), | |
| weekdaysMin: function (t) { | |
| return this._weekdaysMin[t.day()] | |
| }, | |
| weekdaysParse: function (t) { | |
| var e, n, r; | |
| for (this._weekdaysParse || (this._weekdaysParse = []), e = 0; 7 > e; e++) | |
| if (this._weekdaysParse[e] || (n = ue([2e3, 1]).day(e), r = "^" + this.weekdays(n, "") + "|^" + this.weekdaysShort(n, "") + "|^" + this.weekdaysMin(n, ""), this._weekdaysParse[e] = new RegExp(r.replace(".", ""), "i")), this._weekdaysParse[e].test(t)) return e | |
| }, | |
| _longDateFormat: { | |
| LT: "h:mm A", | |
| L: "MM/DD/YYYY", | |
| LL: "MMMM D YYYY", | |
| LLL: "MMMM D YYYY LT", | |
| LLLL: "dddd, MMMM D YYYY LT" | |
| }, | |
| longDateFormat: function (t) { | |
| var e = this._longDateFormat[t]; | |
| return !e && this._longDateFormat[t.toUpperCase()] && (e = this._longDateFormat[t.toUpperCase()].replace(/MMMM|MM|DD|dddd/g, function (t) { | |
| return t.slice(1) | |
| }), this._longDateFormat[t] = e), e | |
| }, | |
| isPM: function (t) { | |
| return "p" === (t + "").toLowerCase().charAt(0) | |
| }, | |
| _meridiemParse: /[ap]\.?m?\.?/i, | |
| meridiem: function (t, e, n) { | |
| return t > 11 ? n ? "pm" : "PM" : n ? "am" : "AM" | |
| }, | |
| _calendar: { | |
| sameDay: "[Today at] LT", | |
| nextDay: "[Tomorrow at] LT", | |
| nextWeek: "dddd [at] LT", | |
| lastDay: "[Yesterday at] LT", | |
| lastWeek: "[Last] dddd [at] LT", | |
| sameElse: "L" | |
| }, | |
| calendar: function (t, e) { | |
| var n = this._calendar[t]; | |
| return "function" == typeof n ? n.apply(e) : n | |
| }, | |
| _relativeTime: { | |
| future: "in %s", | |
| past: "%s ago", | |
| s: "a few seconds", | |
| m: "a minute", | |
| mm: "%d minutes", | |
| h: "an hour", | |
| hh: "%d hours", | |
| d: "a day", | |
| dd: "%d days", | |
| M: "a month", | |
| MM: "%d months", | |
| y: "a year", | |
| yy: "%d years" | |
| }, | |
| relativeTime: function (t, e, n, r) { | |
| var o = this._relativeTime[n]; | |
| return "function" == typeof o ? o(t, e, n, r) : o.replace(/%d/i, t) | |
| }, | |
| pastFuture: function (t, e) { | |
| var n = this._relativeTime[t > 0 ? "future" : "past"]; | |
| return "function" == typeof n ? n(e) : n.replace(/%s/i, e) | |
| }, | |
| ordinal: function (t) { | |
| return this._ordinal.replace("%d", t) | |
| }, | |
| _ordinal: "%d", | |
| preparse: function (t) { | |
| return t | |
| }, | |
| postformat: function (t) { | |
| return t | |
| }, | |
| week: function (t) { | |
| return Z(t, this._week.dow, this._week.doy).week | |
| }, | |
| _week: { | |
| dow: 0, | |
| doy: 6 | |
| }, | |
| _invalidDate: "Invalid date", | |
| invalidDate: function () { | |
| return this._invalidDate | |
| } | |
| }), ue = function (n, r, o, i) { | |
| var s; | |
| return "boolean" == typeof o && (i = o, o = t), s = {}, s._isAMomentObject = !0, s._i = n, s._f = r, s._l = o, s._strict = i, s._isUTC = !1, s._pf = e(), te(s) | |
| }, ue.suppressDeprecationWarnings = !1, ue.createFromInputFallback = n("moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.", function (t) { | |
| t._d = new Date(t._i) | |
| }), ue.utc = function (n, r, o, i) { | |
| var s; | |
| return "boolean" == typeof o && (i = o, o = t), s = {}, s._isAMomentObject = !0, s._useUTC = !0, s._isUTC = !0, s._l = o, s._i = n, s._f = r, s._strict = i, s._pf = e(), te(s).utc() | |
| }, ue.unix = function (t) { | |
| return ue(1e3 * t) | |
| }, ue.duration = function (t, e) { | |
| var n, r, o, i = t, | |
| s = null; | |
| return ue.isDuration(t) ? i = { | |
| ms: t._milliseconds, | |
| d: t._days, | |
| M: t._months | |
| } : "number" == typeof t ? (i = {}, e ? i[e] = t : i.milliseconds = t) : (s = Ce.exec(t)) ? (n = "-" === s[1] ? -1 : 1, i = { | |
| y: 0, | |
| d: w(s[ge]) * n, | |
| h: w(s[ve]) * n, | |
| m: w(s[ye]) * n, | |
| s: w(s[we]) * n, | |
| ms: w(s[_e]) * n | |
| }) : (s = Ee.exec(t)) && (n = "-" === s[1] ? -1 : 1, o = function (t) { | |
| var e = t && parseFloat(t.replace(",", ".")); | |
| return (isNaN(e) ? 0 : e) * n | |
| }, i = { | |
| y: o(s[2]), | |
| M: o(s[3]), | |
| d: o(s[4]), | |
| h: o(s[5]), | |
| m: o(s[6]), | |
| s: o(s[7]), | |
| w: o(s[8]) | |
| }), r = new a(i), ue.isDuration(t) && t.hasOwnProperty("_lang") && (r._lang = t._lang), r | |
| }, ue.version = pe, ue.defaultFormat = We, ue.momentProperties = xe, ue.updateOffset = function () {}, ue.lang = function (t, e) { | |
| var n; | |
| return t ? (e ? S(E(t), e) : null === e ? (R(t), t = "en") : be[t] || M(t), n = ue.duration.fn._lang = ue.fn._lang = M(t), n._abbr) : ue.fn._lang._abbr | |
| }, ue.langData = function (t) { | |
| return t && t._lang && t._lang._abbr && (t = t._lang._abbr), M(t) | |
| }, ue.isMoment = function (t) { | |
| return t instanceof s || null != t && t.hasOwnProperty("_isAMomentObject") | |
| }, ue.isDuration = function (t) { | |
| return t instanceof a | |
| }, ce = rn.length - 1; ce >= 0; --ce) y(rn[ce]); | |
| ue.normalizeUnits = function (t) { | |
| return g(t) | |
| }, ue.invalid = function (t) { | |
| var e = ue.utc(0 / 0); | |
| return null != t ? u(e._pf, t) : e._pf.userInvalidated = !0, e | |
| }, ue.parseZone = function () { | |
| return ue.apply(null, arguments).parseZone() | |
| }, ue.parseTwoDigitYear = function (t) { | |
| return w(t) + (w(t) > 68 ? 1900 : 2e3) | |
| }, u(ue.fn = s.prototype, { | |
| clone: function () { | |
| return ue(this) | |
| }, | |
| valueOf: function () { | |
| return +this._d + 6e4 * (this._offset || 0) | |
| }, | |
| unix: function () { | |
| return Math.floor(+this / 1e3) | |
| }, | |
| toString: function () { | |
| return this.clone().lang("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ") | |
| }, | |
| toDate: function () { | |
| return this._offset ? new Date(+this) : this._d | |
| }, | |
| toISOString: function () { | |
| var t = ue(this).utc(); | |
| return 0 < t.year() && t.year() <= 9999 ? F(t, "YYYY-MM-DD[T]HH:mm:ss.SSS[Z]") : F(t, "YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]") | |
| }, | |
| toArray: function () { | |
| var t = this; | |
| return [t.year(), t.month(), t.date(), t.hours(), t.minutes(), t.seconds(), t.milliseconds()] | |
| }, | |
| isValid: function () { | |
| return C(this) | |
| }, | |
| isDSTShifted: function () { | |
| return this._a ? this.isValid() && m(this._a, (this._isUTC ? ue.utc(this._a) : ue(this._a)).toArray()) > 0 : !1 | |
| }, | |
| parsingFlags: function () { | |
| return u({}, this._pf) | |
| }, | |
| invalidAt: function () { | |
| return this._pf.overflow | |
| }, | |
| utc: function () { | |
| return this.zone(0) | |
| }, | |
| local: function () { | |
| return this.zone(0), this._isUTC = !1, this | |
| }, | |
| format: function (t) { | |
| var e = F(this, t || ue.defaultFormat); | |
| return this.lang().postformat(e) | |
| }, | |
| add: function (t, e) { | |
| var n; | |
| return n = "string" == typeof t ? ue.duration(+e, t) : ue.duration(t, e), d(this, n, 1), this | |
| }, | |
| subtract: function (t, e) { | |
| var n; | |
| return n = "string" == typeof t ? ue.duration(+e, t) : ue.duration(t, e), d(this, n, -1), this | |
| }, | |
| diff: function (t, e, n) { | |
| var r, o, i = P(t, this), | |
| s = 6e4 * (this.zone() - i.zone()); | |
| return e = g(e), "year" === e || "month" === e ? (r = 432e5 * (this.daysInMonth() + i.daysInMonth()), o = 12 * (this.year() - i.year()) + (this.month() - i.month()), o += (this - ue(this).startOf("month") - (i - ue(i).startOf("month"))) / r, o -= 6e4 * (this.zone() - ue(this).startOf("month").zone() - (i.zone() - ue(i).startOf("month").zone())) / r, "year" === e && (o /= 12)) : (r = this - i, o = "second" === e ? r / 1e3 : "minute" === e ? r / 6e4 : "hour" === e ? r / 36e5 : "day" === e ? (r - s) / 864e5 : "week" === e ? (r - s) / 6048e5 : r), n ? o : c(o) | |
| }, | |
| from: function (t, e) { | |
| return ue.duration(this.diff(t)).lang(this.lang()._abbr).humanize(!e) | |
| }, | |
| fromNow: function (t) { | |
| return this.from(ue(), t) | |
| }, | |
| calendar: function () { | |
| var t = P(ue(), this).startOf("day"), | |
| e = this.diff(t, "days", !0), | |
| n = -6 > e ? "sameElse" : -1 > e ? "lastWeek" : 0 > e ? "lastDay" : 1 > e ? "sameDay" : 2 > e ? "nextDay" : 7 > e ? "nextWeek" : "sameElse"; | |
| return this.format(this.lang().calendar(n, this)) | |
| }, | |
| isLeapYear: function () { | |
| return k(this.year()) | |
| }, | |
| isDST: function () { | |
| return this.zone() < this.clone().month(0).zone() || this.zone() < this.clone().month(5).zone() | |
| }, | |
| day: function (t) { | |
| var e = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); | |
| return null != t ? (t = K(t, this.lang()), this.add({ | |
| d: t - e | |
| })) : e | |
| }, | |
| month: oe("Month", !0), | |
| startOf: function (t) { | |
| switch (t = g(t)) { | |
| case "year": | |
| this.month(0); | |
| case "quarter": | |
| case "month": | |
| this.date(1); | |
| case "week": | |
| case "isoWeek": | |
| case "day": | |
| this.hours(0); | |
| case "hour": | |
| this.minutes(0); | |
| case "minute": | |
| this.seconds(0); | |
| case "second": | |
| this.milliseconds(0) | |
| } | |
| return "week" === t ? this.weekday(0) : "isoWeek" === t && this.isoWeekday(1), "quarter" === t && this.month(3 * Math.floor(this.month() / 3)), this | |
| }, | |
| endOf: function (t) { | |
| return t = g(t), this.startOf(t).add("isoWeek" === t ? "week" : t, 1).subtract("ms", 1) | |
| }, | |
| isAfter: function (t, e) { | |
| return e = "undefined" != typeof e ? e : "millisecond", +this.clone().startOf(e) > +ue(t).startOf(e) | |
| }, | |
| isBefore: function (t, e) { | |
| return e = "undefined" != typeof e ? e : "millisecond", +this.clone().startOf(e) < +ue(t).startOf(e) | |
| }, | |
| isSame: function (t, e) { | |
| return e = e || "ms", +this.clone().startOf(e) === +P(t, this).startOf(e) | |
| }, | |
| min: function (t) { | |
| return t = ue.apply(null, arguments), this > t ? this : t | |
| }, | |
| max: function (t) { | |
| return t = ue.apply(null, arguments), t > this ? this : t | |
| }, | |
| zone: function (t, e) { | |
| var n = this._offset || 0; | |
| return null == t ? this._isUTC ? n : this._d.getTimezoneOffset() : ("string" == typeof t && (t = $(t)), Math.abs(t) < 16 && (t = 60 * t), this._offset = t, this._isUTC = !0, n !== t && (!e || this._changeInProgress ? d(this, ue.duration(n - t, "m"), 1, !1) : this._changeInProgress || (this._changeInProgress = !0, ue.updateOffset(this, !0), this._changeInProgress = null)), this) | |
| }, | |
| zoneAbbr: function () { | |
| return this._isUTC ? "UTC" : "" | |
| }, | |
| zoneName: function () { | |
| return this._isUTC ? "Coordinated Universal Time" : "" | |
| }, | |
| parseZone: function () { | |
| return this._tzm ? this.zone(this._tzm) : "string" == typeof this._i && this.zone(this._i), this | |
| }, | |
| hasAlignedHourOffset: function (t) { | |
| return t = t ? ue(t).zone() : 0, (this.zone() - t) % 60 === 0 | |
| }, | |
| daysInMonth: function () { | |
| return _(this.year(), this.month()) | |
| }, | |
| dayOfYear: function (t) { | |
| var e = he((ue(this).startOf("day") - ue(this).startOf("year")) / 864e5) + 1; | |
| return null == t ? e : this.add("d", t - e) | |
| }, | |
| quarter: function (t) { | |
| return null == t ? Math.ceil((this.month() + 1) / 3) : this.month(3 * (t - 1) + this.month() % 3) | |
| }, | |
| weekYear: function (t) { | |
| var e = Z(this, this.lang()._week.dow, this.lang()._week.doy).year; | |
| return null == t ? e : this.add("y", t - e) | |
| }, | |
| isoWeekYear: function (t) { | |
| var e = Z(this, 1, 4).year; | |
| return null == t ? e : this.add("y", t - e) | |
| }, | |
| week: function (t) { | |
| var e = this.lang().week(this); | |
| return null == t ? e : this.add("d", 7 * (t - e)) | |
| }, | |
| isoWeek: function (t) { | |
| var e = Z(this, 1, 4).week; | |
| return null == t ? e : this.add("d", 7 * (t - e)) | |
| }, | |
| weekday: function (t) { | |
| var e = (this.day() + 7 - this.lang()._week.dow) % 7; | |
| return null == t ? e : this.add("d", t - e) | |
| }, | |
| isoWeekday: function (t) { | |
| return null == t ? this.day() || 7 : this.day(this.day() % 7 ? t : t - 7) | |
| }, | |
| isoWeeksInYear: function () { | |
| return b(this.year(), 1, 4) | |
| }, | |
| weeksInYear: function () { | |
| var t = this._lang._week; | |
| return b(this.year(), t.dow, t.doy) | |
| }, | |
| get: function (t) { | |
| return t = g(t), this[t]() | |
| }, | |
| set: function (t, e) { | |
| return t = g(t), "function" == typeof this[t] && this[t](e), this | |
| }, | |
| lang: function (e) { | |
| return e === t ? this._lang : (this._lang = M(e), this) | |
| } | |
| }), ue.fn.millisecond = ue.fn.milliseconds = oe("Milliseconds", !1), ue.fn.second = ue.fn.seconds = oe("Seconds", !1), ue.fn.minute = ue.fn.minutes = oe("Minutes", !1), ue.fn.hour = ue.fn.hours = oe("Hours", !0), ue.fn.date = oe("Date", !0), ue.fn.dates = n("dates accessor is deprecated. Use date instead.", oe("Date", !0)), ue.fn.year = oe("FullYear", !0), ue.fn.years = n("years accessor is deprecated. Use year instead.", oe("FullYear", !0)), ue.fn.days = ue.fn.day, ue.fn.months = ue.fn.month, ue.fn.weeks = ue.fn.week, ue.fn.isoWeeks = ue.fn.isoWeek, ue.fn.quarters = ue.fn.quarter, ue.fn.toJSON = ue.fn.toISOString, u(ue.duration.fn = a.prototype, { | |
| _bubble: function () { | |
| var t, e, n, r, o = this._milliseconds, | |
| i = this._days, | |
| s = this._months, | |
| a = this._data; | |
| a.milliseconds = o % 1e3, t = c(o / 1e3), a.seconds = t % 60, e = c(t / 60), a.minutes = e % 60, n = c(e / 60), a.hours = n % 24, i += c(n / 24), a.days = i % 30, s += c(i / 30), a.months = s % 12, r = c(s / 12), a.years = r | |
| }, | |
| weeks: function () { | |
| return c(this.days() / 7) | |
| }, | |
| valueOf: function () { | |
| return this._milliseconds + 864e5 * this._days + this._months % 12 * 2592e6 + 31536e6 * w(this._months / 12) | |
| }, | |
| humanize: function (t) { | |
| var e = +this, | |
| n = Q(e, !t, this.lang()); | |
| return t && (n = this.lang().pastFuture(e, n)), this.lang().postformat(n) | |
| }, | |
| add: function (t, e) { | |
| var n = ue.duration(t, e); | |
| return this._milliseconds += n._milliseconds, this._days += n._days, this._months += n._months, this._bubble(), this | |
| }, | |
| subtract: function (t, e) { | |
| var n = ue.duration(t, e); | |
| return this._milliseconds -= n._milliseconds, this._days -= n._days, this._months -= n._months, this._bubble(), this | |
| }, | |
| get: function (t) { | |
| return t = g(t), this[t.toLowerCase() + "s"]() | |
| }, | |
| as: function (t) { | |
| return t = g(t), this["as" + t.charAt(0).toUpperCase() + t.slice(1) + "s"]() | |
| }, | |
| lang: ue.fn.lang, | |
| toIsoString: function () { | |
| var t = Math.abs(this.years()), | |
| e = Math.abs(this.months()), | |
| n = Math.abs(this.days()), | |
| r = Math.abs(this.hours()), | |
| o = Math.abs(this.minutes()), | |
| i = Math.abs(this.seconds() + this.milliseconds() / 1e3); | |
| return this.asSeconds() ? (this.asSeconds() < 0 ? "-" : "") + "P" + (t ? t + "Y" : "") + (e ? e + "M" : "") + (n ? n + "D" : "") + (r || o || i ? "T" : "") + (r ? r + "H" : "") + (o ? o + "M" : "") + (i ? i + "S" : "") : "P0D" | |
| } | |
| }); | |
| for (ce in Xe) Xe.hasOwnProperty(ce) && (se(ce, Xe[ce]), ie(ce.toLowerCase())); | |
| se("Weeks", 6048e5), ue.duration.fn.asMonths = function () { | |
| return (+this - 31536e6 * this.years()) / 2592e6 + 12 * this.years() | |
| }, ue.lang("en", { | |
| ordinal: function (t) { | |
| var e = t % 10, | |
| n = 1 === w(t % 100 / 10) ? "th" : 1 === e ? "st" : 2 === e ? "nd" : 3 === e ? "rd" : "th"; | |
| return t + n | |
| } | |
| }), ke ? module.exports = ue : "function" == typeof define && define.amd ? (define("moment", function (t, e, n) { | |
| return n.config && n.config() && n.config().noGlobal === !0 && (de.moment = le), ue | |
| }), ae(!0)) : ae() | |
| }.call(this), | |
| /*! | |
| * Joseph Myer's md5() algorithm wrapped in a self-invoked function to prevent | |
| * global namespace polution, modified to hash unicode characters as UTF-8. | |
| * | |
| * Copyright 1999-2010, Joseph Myers, Paul Johnston, Greg Holt, Will Bond <will@wbond.net> | |
| * http://www.myersdaily.org/joseph/javascript/md5-text.html | |
| * http://pajhome.org.uk/crypt/md5 | |
| * | |
| * Released under the BSD license | |
| * http://www.opensource.org/licenses/bsd-license | |
| */ | |
| function () { | |
| function t(t, e) { | |
| var s = t[0], | |
| a = t[1], | |
| u = t[2], | |
| l = t[3]; | |
| s = n(s, a, u, l, e[0], 7, -680876936), l = n(l, s, a, u, e[1], 12, -389564586), u = n(u, l, s, a, e[2], 17, 606105819), a = n(a, u, l, s, e[3], 22, -1044525330), s = n(s, a, u, l, e[4], 7, -176418897), l = n(l, s, a, u, e[5], 12, 1200080426), u = n(u, l, s, a, e[6], 17, -1473231341), a = n(a, u, l, s, e[7], 22, -45705983), s = n(s, a, u, l, e[8], 7, 1770035416), l = n(l, s, a, u, e[9], 12, -1958414417), u = n(u, l, s, a, e[10], 17, -42063), a = n(a, u, l, s, e[11], 22, -1990404162), s = n(s, a, u, l, e[12], 7, 1804603682), l = n(l, s, a, u, e[13], 12, -40341101), u = n(u, l, s, a, e[14], 17, -1502002290), a = n(a, u, l, s, e[15], 22, 1236535329), s = r(s, a, u, l, e[1], 5, -165796510), l = r(l, s, a, u, e[6], 9, -1069501632), u = r(u, l, s, a, e[11], 14, 643717713), a = r(a, u, l, s, e[0], 20, -373897302), s = r(s, a, u, l, e[5], 5, -701558691), l = r(l, s, a, u, e[10], 9, 38016083), u = r(u, l, s, a, e[15], 14, -660478335), a = r(a, u, l, s, e[4], 20, -405537848), s = r(s, a, u, l, e[9], 5, 568446438), l = r(l, s, a, u, e[14], 9, -1019803690), u = r(u, l, s, a, e[3], 14, -187363961), a = r(a, u, l, s, e[8], 20, 1163531501), s = r(s, a, u, l, e[13], 5, -1444681467), l = r(l, s, a, u, e[2], 9, -51403784), u = r(u, l, s, a, e[7], 14, 1735328473), a = r(a, u, l, s, e[12], 20, -1926607734), s = o(s, a, u, l, e[5], 4, -378558), l = o(l, s, a, u, e[8], 11, -2022574463), u = o(u, l, s, a, e[11], 16, 1839030562), a = o(a, u, l, s, e[14], 23, -35309556), s = o(s, a, u, l, e[1], 4, -1530992060), l = o(l, s, a, u, e[4], 11, 1272893353), u = o(u, l, s, a, e[7], 16, -155497632), a = o(a, u, l, s, e[10], 23, -1094730640), s = o(s, a, u, l, e[13], 4, 681279174), l = o(l, s, a, u, e[0], 11, -358537222), u = o(u, l, s, a, e[3], 16, -722521979), a = o(a, u, l, s, e[6], 23, 76029189), s = o(s, a, u, l, e[9], 4, -640364487), l = o(l, s, a, u, e[12], 11, -421815835), u = o(u, l, s, a, e[15], 16, 530742520), a = o(a, u, l, s, e[2], 23, -995338651), s = i(s, a, u, l, e[0], 6, -198630844), l = i(l, s, a, u, e[7], 10, 1126891415), u = i(u, l, s, a, e[14], 15, -1416354905), a = i(a, u, l, s, e[5], 21, -57434055), s = i(s, a, u, l, e[12], 6, 1700485571), l = i(l, s, a, u, e[3], 10, -1894986606), u = i(u, l, s, a, e[10], 15, -1051523), a = i(a, u, l, s, e[1], 21, -2054922799), s = i(s, a, u, l, e[8], 6, 1873313359), l = i(l, s, a, u, e[15], 10, -30611744), u = i(u, l, s, a, e[6], 15, -1560198380), a = i(a, u, l, s, e[13], 21, 1309151649), s = i(s, a, u, l, e[4], 6, -145523070), l = i(l, s, a, u, e[11], 10, -1120210379), u = i(u, l, s, a, e[2], 15, 718787259), a = i(a, u, l, s, e[9], 21, -343485551), t[0] = c(s, t[0]), t[1] = c(a, t[1]), t[2] = c(u, t[2]), t[3] = c(l, t[3]) | |
| } | |
| function e(t, e, n, r, o, i) { | |
| return e = c(c(e, t), c(r, i)), c(e << o | e >>> 32 - o, n) | |
| } | |
| function n(t, n, r, o, i, s, a) { | |
| return e(n & r | ~n & o, t, n, i, s, a) | |
| } | |
| function r(t, n, r, o, i, s, a) { | |
| return e(n & o | r & ~o, t, n, i, s, a) | |
| } | |
| function o(t, n, r, o, i, s, a) { | |
| return e(n ^ r ^ o, t, n, i, s, a) | |
| } | |
| function i(t, n, r, o, i, s, a) { | |
| return e(r ^ (n | ~o), t, n, i, s, a) | |
| } | |
| function s(e) { | |
| /[\x80-\xFF]/.test(e) && (e = unescape(encodeURI(e))), txt = ""; | |
| var n, r = e.length, | |
| o = [1732584193, -271733879, -1732584194, 271733878]; | |
| for (n = 64; n <= e.length; n += 64) t(o, a(e.substring(n - 64, n))); | |
| e = e.substring(n - 64); | |
| var i = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; | |
| for (n = 0; n < e.length; n++) i[n >> 2] |= e.charCodeAt(n) << (n % 4 << 3); | |
| if (i[n >> 2] |= 128 << (n % 4 << 3), n > 55) | |
| for (t(o, i), n = 0; 16 > n; n++) i[n] = 0; | |
| return i[14] = 8 * r, t(o, i), o | |
| } | |
| function a(t) { | |
| var e, n = []; | |
| for (e = 0; 64 > e; e += 4) n[e >> 2] = t.charCodeAt(e) + (t.charCodeAt(e + 1) << 8) + (t.charCodeAt(e + 2) << 16) + (t.charCodeAt(e + 3) << 24); | |
| return n | |
| } | |
| function u(t) { | |
| for (var e = "", n = 0; 4 > n; n++) e += p[t >> 8 * n + 4 & 15] + p[t >> 8 * n & 15]; | |
| return e | |
| } | |
| function l(t) { | |
| for (var e = 0; e < t.length; e++) t[e] = u(t[e]); | |
| return t.join("") | |
| } | |
| function c(t, e) { | |
| return t + e & 4294967295 | |
| } | |
| function c(t, e) { | |
| var n = (65535 & t) + (65535 & e), | |
| r = (t >> 16) + (e >> 16) + (n >> 16); | |
| return r << 16 | 65535 & n | |
| } | |
| var p = "0123456789abcdef".split(""); | |
| md5 = function (t) { | |
| return l(s(t)) | |
| }, "5d41402abc4b2a76b9719d911017c592" != md5("hello") | |
| }(), | |
| /*! | |
| * flowdock-text 0.1.7 | |
| * | |
| * Copyright 2011 Twitter, Inc. | |
| * Copyright 2011 Flowdock Ltd | |
| * | |
| * Licensed under the Apache License, Version 2.0 (the "License"); | |
| * you may not use this work except in compliance with the License. | |
| * You may obtain a copy of the License at: | |
| * | |
| * http://www.apache.org/licenses/LICENSE-2.0 | |
| */ | |
| ("undefined" == typeof window || null === window) && (window = { | |
| FlowdockText: {} | |
| }), null == window.FlowdockText && (window.FlowdockText = {}), ("undefined" == typeof FlowdockText || null === FlowdockText) && (FlowdockText = {}), | |
| function () { | |
| function t(t, e) { | |
| return e = e || "", "string" != typeof t && (t.global && e.indexOf("g") < 0 && (e += "g"), t.ignoreCase && e.indexOf("i") < 0 && (e += "i"), t.multiline && e.indexOf("m") < 0 && (e += "m"), t = t.source), new RegExp(t.replace(/#\{(\w+)\}/g, function (t, e) { | |
| var n = FlowdockText.regexen[e] || ""; | |
| return "string" != typeof n && (n = n.source), n | |
| }), e) | |
| } | |
| function e(t, e) { | |
| return t.replace(/#\{(\w+)\}/g, function (t, n) { | |
| return e[n] || "" | |
| }) | |
| } | |
| function n(t, e, n) { | |
| var r = String.fromCharCode(e); | |
| return n !== e && (r += "-" + String.fromCharCode(n)), t.push(r), t | |
| } | |
| function r(t) { | |
| var e = {}; | |
| for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]); | |
| return e | |
| } | |
| function o(t, e, n) { | |
| var r = n + t.index, | |
| o = e.slice(0, r), | |
| i = e.slice(r + t[0].length); | |
| return FlowdockText.regexen.startHashTagMatch.test(o) && !FlowdockText.regexen.endHashtagMatch.test(i) | |
| } | |
| function i(t, e, n, r, o) { | |
| if (void 0 !== t && (null === t || t.start >= r)) return t; | |
| var s = e.match(o.regex); | |
| if (s) { | |
| if (!o.check(s, n, r)) { | |
| var a = r + s.index + 1; | |
| return i(t, n.slice(a), n, a, o) | |
| } | |
| return { | |
| type: o.type, | |
| match: s, | |
| start: r + s.index, | |
| end: r + s.index + s[0].length | |
| } | |
| } | |
| return s | |
| } | |
| function s(t) { | |
| for (var e = [], n = 0, r = [void 0, void 0, void 0, void 0];;) { | |
| for (var o = t.substr(n), s = 0; 4 > s; s++) r[s] = i(r[s], o, t, n, L[s]); | |
| for (var a = void 0, u = 0; u < r.length; u++) { | |
| var l = r[u]; | |
| (!a || l && l.start < a.start) && (a = l) | |
| } | |
| if (!a) return e.push({ | |
| type: "text", | |
| value: o | |
| }), e; | |
| a.start > n && e.push({ | |
| type: "text", | |
| value: o.substr(0, a.start - n) | |
| }), e.push(a), n = a.end | |
| } | |
| } | |
| function a(t, n) { | |
| var r, o, i; | |
| if (t.urlEntities) | |
| for (r = {}, o = 0, i = t.urlEntities.length; i > o; o++) r[t.urlEntities[o].url] = t.urlEntities[o]; | |
| var s = n.match[2], | |
| a = n.match[3] || n.match[5], | |
| u = "", | |
| l = n.match[1], | |
| c = ""; | |
| for (var p in t) u += e(' #{k}="#{v}" ', { | |
| k: p, | |
| v: t[p].toString().replace(/"/, """).replace(/</, "<").replace(/>/, ">") | |
| }); | |
| s.match(FlowdockText.regexen.validTcoUrl) && (s = RegExp.lastMatch, c = RegExp.rightContext); | |
| var d = { | |
| htmlAttrs: u, | |
| url: FlowdockText.htmlEscape(s), | |
| after: c, | |
| before: l | |
| }; | |
| return d.displayUrl = r && r[s] && r[s].display_url ? FlowdockText.htmlEscape(r[s].display_url) : d.url, a || (d.url = "http://" + d.url), e('#{before}<a href="#{url}"#{htmlAttrs}>#{displayUrl}</a>#{after}', d) | |
| } | |
| function u(t, n) { | |
| return n.match[0].replace(FlowdockText.regexen.email, function (n) { | |
| d = { | |
| subMatch: FlowdockText.htmlEscape(n) | |
| }; | |
| for (var r in t) t.hasOwnProperty(r) && (d[r] = t[r]); | |
| return e("<a href='mailto:#{subMatch}' class='#{emailClass}'>#{subMatch}</a>", d) | |
| }) | |
| } | |
| function l(t, n) { | |
| var r = n.match, | |
| o = r[1], | |
| i = r[2], | |
| s = { | |
| hash: FlowdockText.htmlEscape(o), | |
| preText: "", | |
| text: FlowdockText.htmlEscape(i), | |
| postText: "" | |
| }; | |
| for (var a in t) t.hasOwnProperty(a) && (s[a] = t[a]); | |
| return e('<a href="#{hashtagUrlBase}#{text}" title="##{text}" class="#{hashtagClass}">#{hash}#{preText}#{text}#{postText}</a>', s) | |
| } | |
| function c(t, n) { | |
| var r = []; | |
| t && t.userTags && (r = t.userTags.map(function (t) { | |
| return t.toLowerCase() | |
| })); | |
| var o = n.match, | |
| i = o[1], | |
| s = o[2], | |
| a = { | |
| hash: FlowdockText.htmlEscape(i), | |
| preText: "", | |
| text: FlowdockText.htmlEscape(s), | |
| postText: "" | |
| }; | |
| for (var u in t) t.hasOwnProperty(u) && (a[u] = t[u]); | |
| return 0 === r.length || S(a.hash + a.text.toLowerCase(), r) ? e('<a title="Search #{hash}#{text}" class="#{hashtagClass}" href="#{hashtagUrlBase}#{hash}#{text}">#{hash}#{preText}#{text}#{postText}</a>', a) : e("#{hash}#{preText}#{text}#{postText}", a) | |
| } | |
| function p(t, e, n) { | |
| switch (n.type) { | |
| case "text": | |
| return n.value; | |
| case "url": | |
| return a(e, n); | |
| case "hash": | |
| return l(t, n); | |
| case "mention": | |
| return c(t, n); | |
| case "email": | |
| return u(t, n) | |
| } | |
| } | |
| function h(t) { | |
| return t = r(t || {}), t.hashtagClass = t.hashtagClass || D, t.hashtagUrlBase = t.hashtagUrlBase || "#flowser/all/", t.emailClass = t.emailClass || "email-link", t | |
| } | |
| function f(t) { | |
| return r(t || {}) | |
| } | |
| function m(t, e) { | |
| return e.type === t || "text" === e.type ? e : { | |
| type: "text", | |
| value: e.match[0] | |
| } | |
| } | |
| function g(t, e, n, r) { | |
| e = h(e), n = f(n); | |
| var o = s(t); | |
| r && (o = o.map(m.bind(null, r))); | |
| var i = o.map(p.bind(null, e, n)); | |
| return i.join("") | |
| } | |
| function v(t) { | |
| return t.email | |
| } | |
| function y(t) { | |
| t = t.filter(function (t) { | |
| return "email" == t.type | |
| }); | |
| var e = []; | |
| return t.forEach(function (t) { | |
| return t.match[0].replace(FlowdockText.regexen.email, function (n) { | |
| n = FlowdockText.htmlEscape(n); | |
| var r = t.end + FlowdockText.regexen.extractEmails.lastIndex, | |
| o = r - n.length; | |
| e.push({ | |
| email: n, | |
| indices: [o, r] | |
| }) | |
| }) | |
| }), e | |
| } | |
| function w(t) { | |
| return t.url | |
| } | |
| function _(t) { | |
| t = t.filter(function (t) { | |
| return "url" == t.type | |
| }); | |
| var e = []; | |
| return t.forEach(function (t) { | |
| var n = t.match, | |
| r = n[1], | |
| o = n[2], | |
| i = n[3] || n[5], | |
| s = n[4] || n[6], | |
| a = n[8], | |
| u = t.start + r.length, | |
| l = t.end; | |
| if (i) o.match(FlowdockText.regexen.validTcoUrl) && (o = RegExp.lastMatch, l = u + o.length), e.push({ | |
| url: o, | |
| indices: [u, l] | |
| }); | |
| else { | |
| var c = null, | |
| p = !1, | |
| d = 0; | |
| if (s.replace(FlowdockText.regexen.validAsciiDomain, function (t) { | |
| var n = s.indexOf(t, d); | |
| d = n + t.length, c = { | |
| url: t, | |
| indices: [u + n, u + d] | |
| }, e.push(c) | |
| }), null == c) return; | |
| a && (p && e.push(c), c.url = o.replace(s, c.url), c.indices[1] = l) | |
| } | |
| }), e | |
| } | |
| function b(t) { | |
| return t.tag | |
| } | |
| function x(t) { | |
| t = t.filter(function (t) { | |
| return "hash" == t.type | |
| }); | |
| var e = []; | |
| return t.forEach(function (t) { | |
| var n = t.match, | |
| r = (n[1], n[2]), | |
| o = t.start, | |
| i = t.end; | |
| e.push({ | |
| tag: r, | |
| indices: [o, i] | |
| }) | |
| }), e | |
| } | |
| function k(t) { | |
| return t.tag | |
| } | |
| function T(t, e) { | |
| t = t.filter(function (t) { | |
| return "mention" == t.type | |
| }); | |
| var n = []; | |
| return t.forEach(function (t) { | |
| var e = t.match, | |
| r = e[1], | |
| o = e[2], | |
| i = t.start, | |
| s = t.end; | |
| n.push({ | |
| tag: r + o, | |
| indices: [i, s] | |
| }) | |
| }), e ? (e = P(e.map(E)), n.filter(function (t) { | |
| return S(t.tag.toLowerCase(), e) | |
| })) : n | |
| } | |
| function C(t, e, n) { | |
| return n ? !t || t.match(e) && RegExp["$&"] === t : "string" == typeof t && t.match(e) && RegExp["$&"] === t | |
| } | |
| function E(t) { | |
| return "string" == typeof t ? "@" === t[0] ? t : "@" + t : "@" + t.nick | |
| } | |
| function P(t) { | |
| return t.map(function (t) { | |
| return t.toLowerCase() | |
| }) | |
| } | |
| function S(t, e) { | |
| return -1 !== e.indexOf(t) | |
| } | |
| function R(t) { | |
| return "[object Array]" === Object.prototype.toString.call(t) | |
| } | |
| function M(t) { | |
| return t.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&") | |
| } | |
| FlowdockText = {}, FlowdockText.regexen = {}; | |
| var N = { | |
| "&": "&", | |
| ">": ">", | |
| "<": "<", | |
| '"': """, | |
| "'": "'" | |
| }; | |
| FlowdockText.htmlEscape = function (t) { | |
| return t && t.replace(/[&"'><]/g, function (t) { | |
| return N[t] | |
| }) | |
| }; | |
| var O = String.fromCharCode, | |
| F = [O(32), O(133), O(160), O(5760), O(6158), O(8232), O(8233), O(8239), O(8287), O(12288)]; | |
| n(F, 9, 13), n(F, 8192, 8202); | |
| var A = [O(65534), O(65279), O(65535)]; | |
| n(A, 8234, 8238), FlowdockText.regexen.spaces_group = t(F.join("")), FlowdockText.regexen.spaces = t("[" + F.join("") + "]"), FlowdockText.regexen.invalid_chars_group = t(A.join("")), FlowdockText.regexen.punct = /\!'#%&'\(\)*\+,\\\-\.\/:;<=>\?@\[\]\^_{|}~\$/, FlowdockText.regexen.atSigns = /[@\uff20]/, FlowdockText.regexen.extractMentions = t(/(^|[^a-zA-Z0-9_!#$%&*@\uff20])(#{atSigns})([a-zA-Z0-9_]{1,20})/g); | |
| var I = []; | |
| n(I, 1024, 1279), n(I, 1280, 1319), n(I, 11744, 11775), n(I, 42560, 42655), n(I, 880, 1023), n(I, 4352, 4607), n(I, 12592, 12677), n(I, 43360, 43391), n(I, 44032, 55215), n(I, 55216, 55295), n(I, 65441, 65500), n(I, 12449, 12538), n(I, 12540, 12542), n(I, 65382, 65439), n(I, 65392, 65392), n(I, 65296, 65305), n(I, 65313, 65338), n(I, 65345, 65370), n(I, 12353, 12438), n(I, 12441, 12446), n(I, 13312, 19903), n(I, 19968, 40959), n(I, 12291, 12291), n(I, 12293, 12293), n(I, 12347, 12347), FlowdockText.regexen.nonLatinHashtagChars = t(I.join("")); | |
| var $ = []; | |
| n($, 192, 255), n($, 256, 383), n($, 7680, 7935), FlowdockText.regexen.latinAccentChars = t($.join("")), FlowdockText.regexen.endScreenNameMatch = t(/^(?:#{atSigns}|[#{latinAccentChars}]|:\/\/)/), FlowdockText.regexen.hashtagAlpha = t(/[a-z_#{latinAccentChars}#{nonLatinHashtagChars}]/i), FlowdockText.regexen.usernameAlphaNumeric = t(/[a-z0-9_\-\.#{latinAccentChars}#{nonLatinHashtagChars}]/i), FlowdockText.regexen.usernameAlphaNumericEnd = t(/[a-z0-9_\-#{latinAccentChars}#{nonLatinHashtagChars}]/i), FlowdockText.regexen.hashtagAlphaNumeric = t(/[a-z0-9_\-#{latinAccentChars}#{nonLatinHashtagChars}]/i), FlowdockText.regexen.endHashtagMatch = /^(?:[#\uff03]|:\/\/)/, FlowdockText.regexen.hashtagBoundary = t(/(?:^|$|[^&\/a-z0-9_#{latinAccentChars}#{nonLatinHashtagChars}])/), FlowdockText.regexen.singleValidHashTag = t(/^#{hashtagAlphaNumeric}+$/i), FlowdockText.regexen.autoLinkHashtags = t(/(#{hashtagBoundary})(#|\uff03)(#{hashtagAlphaNumeric}+)/gi), FlowdockText.regexen.startHashTagMatch = t(/(?:^|[^&\/a-z0-9_#{latinAccentChars}#{nonLatinHashtagChars}])$/), FlowdockText.regexen.singleHashTag = t(/(#|\uff03)(#{hashtagAlphaNumeric}+)/i), FlowdockText.regexen.singleMention = t(/(@)(#{usernameAlphaNumeric}*#{usernameAlphaNumericEnd}+)/i), FlowdockText.regexen.autoLinkMentions = t(/(#{hashtagBoundary})(@)(#{usernameAlphaNumeric}*#{usernameAlphaNumericEnd}+)/gi), FlowdockText.regexen.highlightRegex = function (t) { | |
| return t && t.length > 0 ? new RegExp("(\\b)" + M(t) + "(\\b)", "i") : void 0 | |
| }, FlowdockText.regexen.validPrecedingChars = t(/(?:[^-\/"'!=A-Za-z0-9_@\uff20$#\uff03\.#{invalid_chars_group}]|^)/), FlowdockText.regexen.invalidDomainChars = e("#{punct}#{spaces_group}#{invalid_chars_group}", FlowdockText.regexen), FlowdockText.regexen.validDomainChars = t(/[^#{invalidDomainChars}]/), FlowdockText.regexen.validSubdomain = t(/(?:(?:#{validDomainChars}(?:[_-]|#{validDomainChars})*)?#{validDomainChars}\.)/), FlowdockText.regexen.validDomainName = t(/(?:(?:#{validDomainChars}(?:-|#{validDomainChars})*)?#{validDomainChars}\.)/), FlowdockText.regexen.validGTLD = t(RegExp("(?:(?:academy|actor|aero|agency|arpa|asia|bar|bargains|berlin|best|bid|bike|biz|blue|boutique|build|builders|buzz|cab|camera|camp|cards|careers|cat|catering|center|ceo|cheap|christmas|cleaning|clothing|club|codes|coffee|com|community|company|computer|construction|contractors|cool|coop|cruises|dance|dating|democrat|diamonds|directory|domains|edu|education|email|enterprises|equipment|estate|events|expert|exposed|farm|fish|flights|florist|foundation|futbol|gallery|gift|glass|gov|graphics|guitars|guru|holdings|holiday|house|immobilien|industries|info|institute|int|international|jobs|kaufen|kim|kitchen|kiwi|koeln|kred|land|lighting|limo|link|luxury|management|mango|marketing|menu|mil|mobi|moda|monash|museum|nagoya|name|net|neustar|ninja|okinawa|onl|org|partners|parts|photo|photography|photos|pics|pink|plumbing|post|pro|productions|properties|pub|qpon|recipes|red|rentals|repair|report|reviews|rich|ruhr|sexy|shiksha|shoes|singles|social|solar|solutions|supplies|supply|support|systems|tattoo|technology|tel|tienda|tips|today|tokyo|tools|training|travel|uno|vacations|ventures|viajes|villas|vision|vote|voting|voto|voyage|wang|watch|wed|wien|wiki|works|local|dmz|lan|corp|xxx|xyz|zone|\u0434\u0435\u0442\u0438|\u043e\u043d\u043b\u0430\u0439\u043d|\u043e\u0440\u0433|\u0441\u0430\u0439\u0442|\u0628\u0627\u0632\u0627\u0631|\u0634\u0628\u0643\u0629|\u307f\u3093\u306a|\u4e2d\u4fe1|\u4e2d\u6587\u7f51|\u516c\u53f8|\u516c\u76ca|\u5728\u7ebf|\u6211\u7231\u4f60|\u653f\u52a1|\u6e38\u620f|\u79fb\u52a8|\u7f51\u7edc|\u96c6\u56e2|\uc0bc\uc131)(?=[^0-9a-zA-Z@]|$))")), FlowdockText.regexen.validCCTLD = t(RegExp("(?:(?:ac|ad|ae|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bl|bm|bn|bo|bq|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cw|cx|cy|cz|de|dj|dk|dm|do|dz|ec|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mf|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|ss|st|su|sv|sx|sy|sz|tc|td|tf|tg|th|tj|tk|tl|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|za|zm|zw|\u043c\u043e\u043d|\u0440\u0444|\u0441\u0440\u0431|\u0443\u043a\u0440|\u049b\u0430\u0437|\u0627\u0644\u0627\u0631\u062f\u0646|\u0627\u0644\u062c\u0632\u0627\u0626\u0631|\u0627\u0644\u0633\u0639\u0648\u062f\u064a\u0629|\u0627\u0644\u0645\u063a\u0631\u0628|\u0627\u0645\u0627\u0631\u0627\u062a|\u0627\u06cc\u0631\u0627\u0646|\u0628\u06be\u0627\u0631\u062a|\u062a\u0648\u0646\u0633|\u0633\u0648\u062f\u0627\u0646|\u0633\u0648\u0631\u064a\u0629|\u0639\u0645\u0627\u0646|\u0641\u0644\u0633\u0637\u064a\u0646|\u0642\u0637\u0631|\u0645\u0635\u0631|\u0645\u0644\u064a\u0633\u064a\u0627|\u067e\u0627\u06a9\u0633\u062a\u0627\u0646|\u092d\u093e\u0930\u0924|\u09ac\u09be\u0982\u09b2\u09be|\u09ad\u09be\u09b0\u09a4|\u0a2d\u0a3e\u0a30\u0a24|\u0aad\u0abe\u0ab0\u0aa4|\u0b87\u0ba8\u0bcd\u0ba4\u0bbf\u0baf\u0bbe|\u0b87\u0bb2\u0b99\u0bcd\u0b95\u0bc8|\u0b9a\u0bbf\u0b99\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0bc2\u0bb0\u0bcd|\u0c2d\u0c3e\u0c30\u0c24\u0c4d|\u0dbd\u0d82\u0d9a\u0dcf|\u0e44\u0e17\u0e22|\u10d2\u10d4|\u4e2d\u56fd|\u4e2d\u570b|\u53f0\u6e7e|\u53f0\u7063|\u65b0\u52a0\u5761|\u9999\u6e2f|\ud55c\uad6d)(?=[^0-9a-zA-Z@]|$))")), FlowdockText.regexen.validPunycode = t(/(?:xn--[0-9a-z]+)/), FlowdockText.regexen.validDomain = t(/(?:#{validSubdomain}*#{validDomainName}(?:#{validGTLD}|#{validCCTLD}|#{validPunycode}))/), FlowdockText.regexen.pseudoValidIP = t(/(?:\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/), FlowdockText.regexen.validAsciiDomain = t(/(?:(?:[a-z0-9#{latinAccentChars}\-]+)\.)+(?:#{validGTLD}|#{validCCTLD}|#{validPunycode})/gi), FlowdockText.regexen.validPortNumber = t(/[0-9]+/), FlowdockText.regexen.validGeneralUrlPathChars = t(/[a-z0-9!\*';:=\+,\.\$\/%#\[\]\-_~|&#{latinAccentChars}]/i), FlowdockText.regexen.validUrlBalancedParens = t(/\(#{validGeneralUrlPathChars}+\)/i), FlowdockText.regexen.validUrlPathEndingChars = t(/[\+\-a-z0-9=_#\/#{latinAccentChars}]|(?:#{validUrlBalancedParens})/i), FlowdockText.regexen.validUrlPath = t("(?:(?:#{validGeneralUrlPathChars}*(?:#{validUrlBalancedParens}#{validGeneralUrlPathChars}*)*#{validUrlPathEndingChars})|(?:(@|@@)#{validGeneralUrlPathChars}+/?))", "i"), FlowdockText.regexen.validUrlQueryChars = /[a-z0-9!?\*'\(\);:&=\+\$\/%#\[\]\-_\.,~|]/i, FlowdockText.regexen.validUrlQueryEndingChars = /[a-z0-9_&=#\/]/i, FlowdockText.regexen.extractUrl = t("((#{validPrecedingChars})((?:(?:(https?:\\/\\/)?(#{validDomain}|#{pseudoValidIP}))|(?:(https?:\\/\\/)((?:#{validDomainChars}|-)+)(?=:|/|#{spaces}|$)))(?::(#{validPortNumber}))?(\\/#{validUrlPath}*)?(\\?#{validUrlQueryChars}*#{validUrlQueryEndingChars})?))", "gi"), FlowdockText.regexen.singleUrl = t("(#{validPrecedingChars})((?:(?:(https?:\\/\\/)?(#{validDomain}|#{pseudoValidIP}))|(?:(https?:\\/\\/)((?:#{validDomainChars}|-)+)(?=:|/|#{spaces}|$)))(?::(#{validPortNumber}))?(\\/#{validUrlPath}*)?(\\?#{validUrlQueryChars}*#{validUrlQueryEndingChars})?)", "i"), FlowdockText.regexen.validTcoUrl = /^https?:\/\/t\.co\/[a-z0-9]+/i, FlowdockText.regexen.validateUrlUnreserved = /[a-z0-9\-._~]/i, FlowdockText.regexen.validateUrlPctEncoded = /(?:%[0-9a-f]{2})/i, FlowdockText.regexen.validateUrlSubDelims = /[!$&'()*+,;=]/i, FlowdockText.regexen.validateUrlPchar = t("(?:#{validateUrlUnreserved}|#{validateUrlPctEncoded}|#{validateUrlSubDelims}|[:|@])", "i"), FlowdockText.regexen.validateUrlScheme = /(?:[a-z][a-z0-9+\-.]*)/i, FlowdockText.regexen.validateUrlUserinfo = t("(?:#{validateUrlUnreserved}|#{validateUrlPctEncoded}|#{validateUrlSubDelims}|:)*", "i"), FlowdockText.regexen.validateUrlDecOctet = /(?:[0-9]|(?:[1-9][0-9])|(?:1[0-9]{2})|(?:2[0-4][0-9])|(?:25[0-5]))/i, FlowdockText.regexen.validateUrlIpv4 = t(/(?:#{validateUrlDecOctet}(?:\.#{validateUrlDecOctet}){3})/i), FlowdockText.regexen.validateUrlIpv6 = /(?:\[[a-f0-9:\.]+\])/i, FlowdockText.regexen.validateUrlIp = t("(?:#{validateUrlIpv4}|#{validateUrlIpv6})", "i"), FlowdockText.regexen.validateUrlSubDomainSegment = /(?:[a-z0-9](?:[a-z0-9_\-]*[a-z0-9])?)/i, FlowdockText.regexen.validateUrlDomainSegment = /(?:[a-z0-9](?:[a-z0-9\-]*[a-z0-9])?)/i, FlowdockText.regexen.validateUrlDomainTld = /(?:[a-z](?:[a-z0-9\-]*[a-z0-9])?)/i, FlowdockText.regexen.validateUrlDomain = t(/(?:(?:#{validateUrlSubDomainSegment]}\.)*(?:#{validateUrlDomainSegment]}\.)#{validateUrlDomainTld})/i), FlowdockText.regexen.validateUrlHost = t("(?:#{validateUrlIp}|#{validateUrlDomain})", "i"), FlowdockText.regexen.validateUrlUnicodeSubDomainSegment = /(?:(?:[a-z0-9]|[^\u0000-\u007f])(?:(?:[a-z0-9_\-]|[^\u0000-\u007f])*(?:[a-z0-9]|[^\u0000-\u007f]))?)/i, FlowdockText.regexen.validateUrlUnicodeDomainSegment = /(?:(?:[a-z0-9]|[^\u0000-\u007f])(?:(?:[a-z0-9\-]|[^\u0000-\u007f])*(?:[a-z0-9]|[^\u0000-\u007f]))?)/i, FlowdockText.regexen.validateUrlUnicodeDomainTld = /(?:(?:[a-z]|[^\u0000-\u007f])(?:(?:[a-z0-9\-]|[^\u0000-\u007f])*(?:[a-z0-9]|[^\u0000-\u007f]))?)/i, FlowdockText.regexen.validateUrlUnicodeDomain = t(/(?:(?:#{validateUrlUnicodeSubDomainSegment}\.)*(?:#{validateUrlUnicodeDomainSegment}\.)#{validateUrlUnicodeDomainTld})/i), FlowdockText.regexen.validateUrlUnicodeHost = t("(?:#{validateUrlIp}|#{validateUrlUnicodeDomain})", "i"), FlowdockText.regexen.validateUrlPort = /[0-9]{1,5}/, FlowdockText.regexen.validateUrlUnicodeAuthority = t("(?:(#{validateUrlUserinfo})@)?(#{validateUrlUnicodeHost})(?::(#{validateUrlPort}))?", "i"), FlowdockText.regexen.validateUrlAuthority = t("(?:(#{validateUrlUserinfo})@)?(#{validateUrlHost})(?::(#{validateUrlPort}))?", "i"), FlowdockText.regexen.validateUrlPath = t(/(\/#{validateUrlPchar}*)*/i), FlowdockText.regexen.validateUrlQuery = t(/(#{validateUrlPchar}|\/|\?)*/i), FlowdockText.regexen.validateUrlFragment = t(/(#{validateUrlPchar}|\/|\?)*/i), FlowdockText.regexen.validateUrlUnencoded = t("^(?:([^:/?#]+):\\/\\/)?([^/?#]*)([^?#]*)(?:\\?([^#]*))?(?:#(.*))?$", "i"), FlowdockText.regexen.validEmailLocalPart = t("[A-z|0-9|.|_|%|+|-]+"), FlowdockText.regexen.email = t(/#{validEmailLocalPart}@#{validDomain}/, "gi"), FlowdockText.regexen.extractEmails = t(/(?:^|\s|,|"|')?(#{email})/, "gi"), FlowdockText.regexen.singleEmail = t(/(?:^|\s|,|"|')?(#{email})/, "i"); | |
| var D = "app-tag-link", | |
| L = [{ | |
| type: "url", | |
| regex: FlowdockText.regexen.singleUrl, | |
| check: function () { | |
| return !0 | |
| } | |
| }, { | |
| type: "hash", | |
| regex: FlowdockText.regexen.singleHashTag, | |
| check: o | |
| }, { | |
| type: "mention", | |
| regex: FlowdockText.regexen.singleMention, | |
| check: o | |
| }, { | |
| type: "email", | |
| regex: FlowdockText.regexen.singleEmail, | |
| check: function () { | |
| return !0 | |
| } | |
| }]; | |
| FlowdockText.autoLink = function (t, e, n) { | |
| return g(t, e, n) | |
| }, FlowdockText.autoLinkHashtags = function (t, e) { | |
| return g(t, e, {}, "hash") | |
| }, FlowdockText.autoLinkEmails = function (t, e) { | |
| return g(t, e, {}, "email") | |
| }, FlowdockText.autoLinkUrlsCustom = function (t, e) { | |
| return g(t, {}, e, "url") | |
| }, FlowdockText.autoLinkMentions = function (t, e) { | |
| return g(t, e, {}, "mention") | |
| }, FlowdockText.extractEmails = function (t) { | |
| var e = FlowdockText.extractEmailsWithIndices(t); | |
| return e.map(v) | |
| }, FlowdockText.extractEmailsWithIndices = function (t) { | |
| return FlowdockText.extractAllWithIndices(t).emails | |
| }, FlowdockText.extractUrls = function (t) { | |
| var e = FlowdockText.extractUrlsWithIndices(t); | |
| return e.map(w) | |
| }, FlowdockText.extractUrlsWithIndices = function (t) { | |
| return FlowdockText.extractAllWithIndices(t).urls | |
| }, FlowdockText.extractHashtags = function (t) { | |
| var e = FlowdockText.extractHashtagsWithIndices(t); | |
| return e.map(b) | |
| }, FlowdockText.extractHashtagsWithIndices = function (t) { | |
| return FlowdockText.extractAllWithIndices(t).hashtags | |
| }, FlowdockText.modifyIndicesFromUnicodeToUTF16 = function (t, e) { | |
| FlowdockText.shiftIndices(t, e, 1) | |
| }, FlowdockText.modifyIndicesFromUTF16ToUnicode = function (t, e) { | |
| FlowdockText.shiftIndices(t, e, -1) | |
| }, FlowdockText.shiftIndices = function (t, e, n) { | |
| for (var r = 0; r < t.length - 1; r++) { | |
| var o = t.charCodeAt(r), | |
| i = t.charCodeAt(r + 1); | |
| if (o >= 55296 && 56319 >= o && i >= 56320 && 57343 >= i) { | |
| r++; | |
| for (var s = 0; s < e.length; s++) e[s].indices[0] >= r && (e[s].indices[0] += n, e[s].indices[1] += n) | |
| } | |
| } | |
| }, FlowdockText.extractMentions = function (t, e) { | |
| var n = FlowdockText.extractMentionsWithIndices(t, e); | |
| return n.map(k) | |
| }, FlowdockText.extractMentionsWithIndices = function (t, e) { | |
| return FlowdockText.extractAllWithIndices(t, e).mentions | |
| }, FlowdockText.extractAllWithIndices = function (t, e) { | |
| if (!t) return { | |
| hashtags: [], | |
| mentions: [], | |
| emails: [], | |
| urls: [] | |
| }; | |
| var n = s(t); | |
| return { | |
| hashtags: x(n), | |
| mentions: T(n, e), | |
| emails: y(n), | |
| urls: _(n) | |
| } | |
| }, FlowdockText.extractAll = function (t, e) { | |
| var n = FlowdockText.extractAllWithIndices(t, e); | |
| return { | |
| hashtags: n.hashtags.map(b), | |
| mentions: n.mentions.map(k), | |
| emails: n.emails.map(v), | |
| urls: n.urls.map(w) | |
| } | |
| }, FlowdockText.mentionsAll = function (t) { | |
| return R(t) ? ["@everyone", "@everybody", "@all", "@anyone", "@anybody"].some(function (e) { | |
| return -1 !== P(t).indexOf(e) | |
| }) : FlowdockText.mentionsAll(FlowdockText.extractMentions(t)) | |
| }, FlowdockText.mentionsUser = function (t, e) { | |
| return R(t) ? -1 !== P(t).indexOf(E(e).toLowerCase()) : FlowdockText.extractMentions(t, [E(e)]).length > 0 | |
| }, FlowdockText.isValidUrl = function (t, e, n) { | |
| if (null == e && (e = !0), null == n && (n = !0), !t) return !1; | |
| var r = t.match(FlowdockText.regexen.validateUrlUnencoded); | |
| if (!r || r[0] !== t) return !1; | |
| var o = r[1], | |
| i = r[2], | |
| s = r[3], | |
| a = r[4], | |
| u = r[5]; | |
| return (!n || C(o, FlowdockText.regexen.validateUrlScheme) && o.match(/^https?$/i)) && C(s, FlowdockText.regexen.validateUrlPath) && C(a, FlowdockText.regexen.validateUrlQuery, !0) && C(u, FlowdockText.regexen.validateUrlFragment, !0) ? e && C(i, FlowdockText.regexen.validateUrlUnicodeAuthority) || !e && C(i, FlowdockText.regexen.validateUrlAuthority) : !1 | |
| }, "undefined" != typeof module && module.exports && (module.exports = FlowdockText) | |
| }(); // Copyright (C) 2006 Google Inc. | |
| var IN_GLOBAL_SCOPE = !0; | |
| window.PR_SHOULD_USE_CONTINUATION = !0; | |
| var prettyPrintOne, prettyPrint; | |
| ! function () { | |
| function t(t) { | |
| function e(t) { | |
| var e = t.charCodeAt(0); | |
| if (92 !== e) return e; | |
| var n = t.charAt(1); | |
| return e = p[n], e ? e : n >= "0" && "7" >= n ? parseInt(t.substring(1), 8) : "u" === n || "x" === n ? parseInt(t.substring(2), 16) : t.charCodeAt(1) | |
| } | |
| function n(t) { | |
| if (32 > t) return (16 > t ? "\\x0" : "\\x") + t.toString(16); | |
| var e = String.fromCharCode(t); | |
| return "\\" === e || "-" === e || "]" === e || "^" === e ? "\\" + e : e | |
| } | |
| function r(t) { | |
| var r = t.substring(1, t.length - 1).match(new RegExp("\\\\u[0-9A-Fa-f]{4}|\\\\x[0-9A-Fa-f]{2}|\\\\[0-3][0-7]{0,2}|\\\\[0-7]{1,2}|\\\\[\\s\\S]|-|[^-\\\\]", "g")), | |
| o = [], | |
| i = "^" === r[0], | |
| s = ["["]; | |
| i && s.push("^"); | |
| for (var a = i ? 1 : 0, u = r.length; u > a; ++a) { | |
| var l = r[a]; | |
| if (/\\[bdsw]/i.test(l)) s.push(l); | |
| else { | |
| var c, p = e(l); | |
| u > a + 2 && "-" === r[a + 1] ? (c = e(r[a + 2]), a += 2) : c = p, o.push([p, c]), 65 > c || p > 122 || (65 > c || p > 90 || o.push([32 | Math.max(65, p), 32 | Math.min(c, 90)]), 97 > c || p > 122 || o.push([-33 & Math.max(97, p), -33 & Math.min(c, 122)])) | |
| } | |
| } | |
| o.sort(function (t, e) { | |
| return t[0] - e[0] || e[1] - t[1] | |
| }); | |
| for (var d = [], h = [], a = 0; a < o.length; ++a) { | |
| var f = o[a]; | |
| f[0] <= h[1] + 1 ? h[1] = Math.max(h[1], f[1]) : d.push(h = f) | |
| } | |
| for (var a = 0; a < d.length; ++a) { | |
| var f = d[a]; | |
| s.push(n(f[0])), f[1] > f[0] && (f[1] + 1 > f[0] && s.push("-"), s.push(n(f[1]))) | |
| } | |
| return s.push("]"), s.join("") | |
| } | |
| function o(t) { | |
| for (var e = t.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)", "g")), o = e.length, a = [], u = 0, l = 0; o > u; ++u) { | |
| var c = e[u]; | |
| if ("(" === c)++l; | |
| else if ("\\" === c.charAt(0)) { | |
| var p = +c.substring(1); | |
| p && (l >= p ? a[p] = -1 : e[u] = n(p)) | |
| } | |
| } | |
| for (var u = 1; u < a.length; ++u) - 1 === a[u] && (a[u] = ++i); | |
| for (var u = 0, l = 0; o > u; ++u) { | |
| var c = e[u]; | |
| if ("(" === c)++l, a[l] || (e[u] = "(?:"); | |
| else if ("\\" === c.charAt(0)) { | |
| var p = +c.substring(1); | |
| p && l >= p && (e[u] = "\\" + a[p]) | |
| } | |
| } | |
| for (var u = 0; o > u; ++u) "^" === e[u] && "^" !== e[u + 1] && (e[u] = ""); | |
| if (t.ignoreCase && s) | |
| for (var u = 0; o > u; ++u) { | |
| var c = e[u], | |
| d = c.charAt(0); | |
| c.length >= 2 && "[" === d ? e[u] = r(c) : "\\" !== d && (e[u] = c.replace(/[a-zA-Z]/g, function (t) { | |
| var e = t.charCodeAt(0); | |
| return "[" + String.fromCharCode(-33 & e, 32 | e) + "]" | |
| })) | |
| } | |
| return e.join("") | |
| } | |
| for (var i = 0, s = !1, a = !1, u = 0, l = t.length; l > u; ++u) { | |
| var c = t[u]; | |
| if (c.ignoreCase) a = !0; | |
| else if (/[a-z]/i.test(c.source.replace(/\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi, ""))) { | |
| s = !0, a = !1; | |
| break | |
| } | |
| } | |
| for (var p = { | |
| b: 8, | |
| t: 9, | |
| n: 10, | |
| v: 11, | |
| f: 12, | |
| r: 13 | |
| }, d = [], u = 0, l = t.length; l > u; ++u) { | |
| var c = t[u]; | |
| if (c.global || c.multiline) throw new Error("" + c); | |
| d.push("(?:" + o(c) + ")") | |
| } | |
| return new RegExp(d.join("|"), a ? "gi" : "g") | |
| } | |
| function e(t, e) { | |
| function n(t) { | |
| var u = t.nodeType; | |
| if (1 == u) { | |
| if (r.test(t.className)) return; | |
| for (var l = t.firstChild; l; l = l.nextSibling) n(l); | |
| var c = t.nodeName.toLowerCase(); | |
| ("br" === c || "li" === c) && (o[a] = "\n", s[a << 1] = i++, s[a++ << 1 | 1] = t) | |
| } else if (3 == u || 4 == u) { | |
| var p = t.nodeValue; | |
| p.length && (p = e ? p.replace(/\r\n?/g, "\n") : p.replace(/[ \t\r\n]+/g, " "), o[a] = p, s[a << 1] = i, i += p.length, s[a++ << 1 | 1] = t) | |
| } | |
| } | |
| var r = /(?:^|\s)nocode(?:\s|$)/, | |
| o = [], | |
| i = 0, | |
| s = [], | |
| a = 0; | |
| return n(t), { | |
| sourceCode: o.join("").replace(/\n$/, ""), | |
| spans: s | |
| } | |
| } | |
| function n(t, e, n, r) { | |
| if (e) { | |
| var o = { | |
| sourceCode: e, | |
| basePos: t | |
| }; | |
| n(o), r.push.apply(r, o.decorations) | |
| } | |
| } | |
| function r(t) { | |
| for (var e = void 0, n = t.firstChild; n; n = n.nextSibling) { | |
| var r = n.nodeType; | |
| e = 1 === r ? e ? t : n : 3 === r && j.test(n.nodeValue) ? t : e | |
| } | |
| return e === t ? void 0 : e | |
| } | |
| function o(e, r) { | |
| var o, i = {}; | |
| ! function () { | |
| for (var n = e.concat(r), s = [], a = {}, u = 0, l = n.length; l > u; ++u) { | |
| var c = n[u], | |
| p = c[3]; | |
| if (p) | |
| for (var d = p.length; --d >= 0;) i[p.charAt(d)] = c; | |
| var h = c[1], | |
| f = "" + h; | |
| a.hasOwnProperty(f) || (s.push(h), a[f] = null) | |
| } | |
| s.push(/[\0-\uffff]/), o = t(s) | |
| }(); | |
| var s = r.length, | |
| a = function (t) { | |
| for (var e = t.sourceCode, u = t.basePos, c = [u, I], p = 0, d = e.match(o) || [], h = {}, f = 0, m = d.length; m > f; ++f) { | |
| var g, v = d[f], | |
| y = h[v], | |
| w = void 0; | |
| if ("string" == typeof y) g = !1; | |
| else { | |
| var _ = i[v.charAt(0)]; | |
| if (_) w = v.match(_[1]), y = _[0]; | |
| else { | |
| for (var b = 0; s > b; ++b) | |
| if (_ = r[b], w = v.match(_[1])) { | |
| y = _[0]; | |
| break | |
| } | |
| w || (y = I) | |
| } | |
| g = y.length >= 5 && "lang-" === y.substring(0, 5), !g || w && "string" == typeof w[1] || (g = !1, y = L), g || (h[v] = y) | |
| } | |
| var x = p; | |
| if (p += v.length, g) { | |
| var k = w[1], | |
| T = v.indexOf(k), | |
| C = T + k.length; | |
| w[2] && (C = v.length - w[2].length, T = C - k.length); | |
| var E = y.substring(5); | |
| n(u + x, v.substring(0, T), a, c), n(u + x + T, k, l(E, k), c), n(u + x + C, v.substring(C), a, c) | |
| } else c.push(u + x, y) | |
| } | |
| t.decorations = c | |
| }; | |
| return a | |
| } | |
| function i(t) { | |
| var e = [], | |
| n = []; | |
| e.push(t.tripleQuotedStrings ? [R, /^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/, null, "'\""] : t.multiLineStrings ? [R, /^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/, null, "'\"`"] : [R, /^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/, null, "\"'"]), t.verbatimStrings && n.push([R, /^@\"(?:[^\"]|\"\")*(?:\"|$)/, null]); | |
| var r = t.hashComments; | |
| r && (t.cStyleComments ? (e.push(r > 1 ? [N, /^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/, null, "#"] : [N, /^#(?:(?:define|e(?:l|nd)if|else|error|ifn?def|include|line|pragma|undef|warning)\b|[^\r\n]*)/, null, "#"]), n.push([R, /^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h(?:h|pp|\+\+)?|[a-z]\w*)>/, null])) : e.push([N, /^#[^\r\n]*/, null, "#"])), t.cStyleComments && (n.push([N, /^\/\/[^\r\n]*/, null]), n.push([N, /^\/\*[\s\S]*?(?:\*\/|$)/, null])); | |
| var i = t.regexLiterals; | |
| if (i) { | |
| var s = i > 1 ? "" : "\n\r", | |
| a = s ? "." : "[\\S\\s]", | |
| u = "/(?=[^/*" + s + "])(?:[^/\\x5B\\x5C" + s + "]|\\x5C" + a + "|\\x5B(?:[^\\x5C\\x5D" + s + "]|\\x5C" + a + ")*(?:\\x5D|$))+/"; | |
| n.push(["lang-regex", RegExp("^" + z + "(" + u + ")")]) | |
| } | |
| var l = t.types; | |
| l && n.push([O, l]); | |
| var c = ("" + t.keywords).replace(/^ | $/g, ""); | |
| c.length && n.push([M, new RegExp("^(?:" + c.replace(/[\s,]+/g, "|") + ")\\b"), null]), e.push([I, /^\s+/, null, " \r\n \xa0"]); | |
| var p = "^.[^\\s\\w.$@'\"`/\\\\]*"; | |
| return t.regexLiterals && (p += "(?!s*/)"), n.push([F, /^@[a-z_$][a-z_$@0-9]*/i, null], [O, /^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/, null], [I, /^[a-z_$][a-z_$@0-9]*/i, null], [F, new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*", "i"), null, "0123456789"], [I, /^\\[\s\S]?/, null], [A, new RegExp(p), null]), o(e, n) | |
| } | |
| function s(t, e, n) { | |
| function r(t) { | |
| var e = t.nodeType; | |
| if (1 != e || i.test(t.className)) { | |
| if ((3 == e || 4 == e) && n) { | |
| var u = t.nodeValue, | |
| l = u.match(s); | |
| if (l) { | |
| var c = u.substring(0, l.index); | |
| t.nodeValue = c; | |
| var p = u.substring(l.index + l[0].length); | |
| if (p) { | |
| var d = t.parentNode; | |
| d.insertBefore(a.createTextNode(p), t.nextSibling) | |
| } | |
| o(t), c || t.parentNode.removeChild(t) | |
| } | |
| } | |
| } else if ("br" === t.nodeName) o(t), t.parentNode && t.parentNode.removeChild(t); | |
| else | |
| for (var h = t.firstChild; h; h = h.nextSibling) r(h) | |
| } | |
| function o(t) { | |
| function e(t, n) { | |
| var r = n ? t.cloneNode(!1) : t, | |
| o = t.parentNode; | |
| if (o) { | |
| var i = e(o, 1), | |
| s = t.nextSibling; | |
| i.appendChild(r); | |
| for (var a = s; a; a = s) s = a.nextSibling, i.appendChild(a) | |
| } | |
| return r | |
| } | |
| for (; !t.nextSibling;) | |
| if (t = t.parentNode, !t) return; | |
| for (var n, r = e(t.nextSibling, 0); | |
| (n = r.parentNode) && 1 === n.nodeType;) r = n; | |
| l.push(r) | |
| } | |
| for (var i = /(?:^|\s)nocode(?:\s|$)/, s = /\r\n?|\n/, a = t.ownerDocument, u = a.createElement("li"); t.firstChild;) u.appendChild(t.firstChild); | |
| for (var l = [u], c = 0; c < l.length; ++c) r(l[c]); | |
| e === (0 | e) && l[0].setAttribute("value", e); | |
| var p = a.createElement("ol"); | |
| p.className = "linenums"; | |
| for (var d = Math.max(0, e - 1 | 0) || 0, c = 0, h = l.length; h > c; ++c) u = l[c], u.className = "L" + (c + d) % 10, u.firstChild || u.appendChild(a.createTextNode("\xa0")), p.appendChild(u); | |
| t.appendChild(p) | |
| } | |
| function a(t) { | |
| var e = /\bMSIE\s(\d+)/.exec(navigator.userAgent); | |
| e = e && +e[1] <= 8; | |
| var n = /\n/g, | |
| r = t.sourceCode, | |
| o = r.length, | |
| i = 0, | |
| s = t.spans, | |
| a = s.length, | |
| u = 0, | |
| l = t.decorations, | |
| c = l.length, | |
| p = 0; | |
| l[c] = o; | |
| var d, h; | |
| for (h = d = 0; c > h;) l[h] !== l[h + 2] ? (l[d++] = l[h++], l[d++] = l[h++]) : h += 2; | |
| for (c = d, h = d = 0; c > h;) { | |
| for (var f = l[h], m = l[h + 1], g = h + 2; c >= g + 2 && l[g + 1] === m;) g += 2; | |
| l[d++] = f, l[d++] = m, h = g | |
| } | |
| c = l.length = d; | |
| var v, y = t.sourceNode; | |
| y && (v = y.style.display, y.style.display = "none"); | |
| try { | |
| for (; a > u;) { | |
| var w, _ = (s[u], s[u + 2] || o), | |
| b = l[p + 2] || o, | |
| g = Math.min(_, b), | |
| x = s[u + 1]; | |
| if (1 !== x.nodeType && (w = r.substring(i, g))) { | |
| e && (w = w.replace(n, "\r")), x.nodeValue = w; | |
| var k = x.ownerDocument, | |
| T = k.createElement("span"); | |
| T.className = l[p + 1]; | |
| var C = x.parentNode; | |
| C.replaceChild(T, x), T.appendChild(x), _ > i && (s[u + 1] = x = k.createTextNode(r.substring(g, _)), C.insertBefore(x, T.nextSibling)) | |
| } | |
| i = g, i >= _ && (u += 2), i >= b && (p += 2) | |
| } | |
| } finally { | |
| y && (y.style.display = v) | |
| } | |
| } | |
| function u(t, e) { | |
| for (var n = e.length; --n >= 0;) { | |
| var r = e[n]; | |
| q.hasOwnProperty(r) ? h.console && console.warn("cannot override language handler %s", r) : q[r] = t | |
| } | |
| } | |
| function l(t, e) { | |
| return t && q.hasOwnProperty(t) || (t = /^\s*</.test(e) ? "default-markup" : "default-code"), q[t] | |
| } | |
| function c(t) { | |
| var n = t.langExtension; | |
| try { | |
| var r = e(t.sourceNode, t.pre), | |
| o = r.sourceCode; | |
| t.sourceCode = o, t.spans = r.spans, t.basePos = 0, l(n, o)(t), a(t) | |
| } catch (i) { | |
| h.console && console.log(i && i.stack || i) | |
| } | |
| } | |
| function p(t, e, n) { | |
| var r = document.createElement("div"); | |
| r.innerHTML = "<pre>" + t + "</pre>", r = r.firstChild, n && s(r, n, !0); | |
| var o = { | |
| langExtension: e, | |
| numberLines: n, | |
| sourceNode: r, | |
| pre: 1 | |
| }; | |
| return c(o), r.innerHTML | |
| } | |
| function d(t, e) { | |
| function n(t) { | |
| return i.getElementsByTagName(t) | |
| } | |
| function o() { | |
| for (var e = h.PR_SHOULD_USE_CONTINUATION ? m.now() + 250 : 1 / 0; v < l.length && m.now() < e; v++) { | |
| for (var n = l[v], i = T, u = n; u = u.previousSibling;) { | |
| var p = u.nodeType, | |
| d = (7 === p || 8 === p) && u.nodeValue; | |
| if (d ? !/^\??prettify\b/.test(d) : 3 !== p || /\S/.test(u.nodeValue)) break; | |
| if (d) { | |
| i = {}, d.replace(/\b(\w+)=([\w:.%+-]+)/g, function (t, e, n) { | |
| i[e] = n | |
| }); | |
| break | |
| } | |
| } | |
| var f = n.className; | |
| if ((i !== T || w.test(f)) && !_.test(f)) { | |
| for (var C = !1, E = n.parentNode; E; E = E.parentNode) { | |
| var P = E.tagName; | |
| if (k.test(P) && E.className && w.test(E.className)) { | |
| C = !0; | |
| break | |
| } | |
| } | |
| if (!C) { | |
| n.className += " prettyprinted"; | |
| var S = i.lang; | |
| if (!S) { | |
| S = f.match(y); | |
| var R; | |
| !S && (R = r(n)) && x.test(R.tagName) && (S = R.className.match(y)), S && (S = S[1]) | |
| } | |
| var M; | |
| if (b.test(n.tagName)) M = 1; | |
| else { | |
| var N = n.currentStyle, | |
| O = a.defaultView, | |
| F = N ? N.whiteSpace : O && O.getComputedStyle ? O.getComputedStyle(n, null).getPropertyValue("white-space") : 0; | |
| M = F && "pre" === F.substring(0, 3) | |
| } | |
| var A = i.linenums; | |
| (A = "true" === A || +A) || (A = f.match(/\blinenums\b(?::(\d+))?/), A = A ? A[1] && A[1].length ? +A[1] : !0 : !1), A && s(n, A, M), g = { | |
| langExtension: S, | |
| sourceNode: n, | |
| numberLines: A, | |
| pre: M | |
| }, c(g) | |
| } | |
| } | |
| } | |
| v < l.length ? setTimeout(o, 250) : "function" == typeof t && t() | |
| } | |
| for (var i = e || document.body, a = i.ownerDocument || document, u = [n("pre"), n("code"), n("xmp")], l = [], p = 0; p < u.length; ++p) | |
| for (var d = 0, f = u[p].length; f > d; ++d) l.push(u[p][d]); | |
| u = null; | |
| var m = Date; | |
| m.now || (m = { | |
| now: function () { | |
| return +new Date | |
| } | |
| }); | |
| var g, v = 0, | |
| y = /\blang(?:uage)?-([\w.]+)(?!\S)/, | |
| w = /\bprettyprint\b/, | |
| _ = /\bprettyprinted\b/, | |
| b = /pre|xmp/i, | |
| x = /^code$/i, | |
| k = /^(?:pre|code|xmp)$/i, | |
| T = {}; | |
| o() | |
| } | |
| var h = window, | |
| f = ["break,continue,do,else,for,if,return,while"], | |
| m = [f, "auto,case,char,const,default,double,enum,extern,float,goto,inline,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"], | |
| g = [m, "catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"], | |
| v = [g, "alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,delegate,dynamic_cast,explicit,export,friend,generic,late_check,mutable,namespace,nullptr,property,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"], | |
| y = [g, "abstract,assert,boolean,byte,extends,final,finally,implements,import,instanceof,interface,null,native,package,strictfp,super,synchronized,throws,transient"], | |
| w = [g, "abstract,as,base,bool,by,byte,checked,decimal,delegate,descending,dynamic,event,finally,fixed,foreach,from,group,implicit,in,interface,internal,into,is,let,lock,null,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var,virtual,where"], | |
| _ = "all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,throw,true,try,unless,until,when,while,yes", | |
| b = [g, "debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"], | |
| x = "caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END", | |
| k = [f, "and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"], | |
| T = [f, "alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"], | |
| C = [f, "as,assert,const,copy,drop,enum,extern,fail,false,fn,impl,let,log,loop,match,mod,move,mut,priv,pub,pure,ref,self,static,struct,true,trait,type,unsafe,use"], | |
| E = [f, "case,done,elif,esac,eval,fi,function,in,local,set,then,until"], | |
| P = [v, w, b, x, k, T, E], | |
| S = /^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)\b/, | |
| R = "prettify-str", | |
| M = "prettify-kwd", | |
| N = "prettify-com", | |
| O = "prettify-typ", | |
| F = "prettify-lit", | |
| A = "prettify-pun", | |
| I = "prettify-pln", | |
| $ = "prettify-tag", | |
| D = "prettify-dec", | |
| L = "prettify-src", | |
| U = "prettify-atn", | |
| H = "prettify-atv", | |
| V = "prettify-nocode", | |
| z = "(?:^^\\.?|[+-]|[!=]=?=?|\\#|%=?|&&?=?|\\(|\\*=?|[+\\-]=|->|\\/=?|::?|<<?=?|>>?>?=?|,|;|\\?|@|\\[|~|{|\\^\\^?=?|\\|\\|?=?|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*", | |
| j = /\S/, | |
| B = i({ | |
| keywords: P, | |
| hashComments: !0, | |
| cStyleComments: !0, | |
| multiLineStrings: !0, | |
| regexLiterals: !0 | |
| }), | |
| q = {}; | |
| u(B, ["default-code"]), u(o([], [ | |
| [I, /^[^<?]+/], | |
| [D, /^<!\w[^>]*(?:>|$)/], | |
| [N, /^<\!--[\s\S]*?(?:-\->|$)/], | |
| ["lang-", /^<\?([\s\S]+?)(?:\?>|$)/], | |
| ["lang-", /^<%([\s\S]+?)(?:%>|$)/], | |
| [A, /^(?:<[%?]|[%?]>)/], | |
| ["lang-", /^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i], | |
| ["lang-js", /^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i], | |
| ["lang-css", /^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i], | |
| ["lang-in.tag", /^(<\/?[a-z][^<>]*>)/i] | |
| ]), ["default-markup", "htm", "html", "mxml", "xhtml", "xml", "xsl"]), u(o([ | |
| [I, /^[\s]+/, null, " \r\n"], | |
| [H, /^(?:\"[^\"]*\"?|\'[^\']*\'?)/, null, "\"'"] | |
| ], [ | |
| [$, /^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i], | |
| [U, /^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i], | |
| ["lang-uq.val", /^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/], | |
| [A, /^[=<>\/]+/], | |
| ["lang-js", /^on\w+\s*=\s*\"([^\"]+)\"/i], | |
| ["lang-js", /^on\w+\s*=\s*\'([^\']+)\'/i], | |
| ["lang-js", /^on\w+\s*=\s*([^\"\'>\s]+)/i], | |
| ["lang-css", /^style\s*=\s*\"([^\"]+)\"/i], | |
| ["lang-css", /^style\s*=\s*\'([^\']+)\'/i], | |
| ["lang-css", /^style\s*=\s*([^\"\'>\s]+)/i] | |
| ]), ["in.tag"]), u(o([], [ | |
| [H, /^[\s\S]+/] | |
| ]), ["uq.val"]), u(i({ | |
| keywords: v, | |
| hashComments: !0, | |
| cStyleComments: !0, | |
| types: S | |
| }), ["c", "cc", "cpp", "cxx", "cyc", "m"]), u(i({ | |
| keywords: "null,true,false" | |
| }), ["json"]), u(i({ | |
| keywords: w, | |
| hashComments: !0, | |
| cStyleComments: !0, | |
| verbatimStrings: !0, | |
| types: S | |
| }), ["cs"]), u(i({ | |
| keywords: y, | |
| cStyleComments: !0 | |
| }), ["java"]), u(i({ | |
| keywords: E, | |
| hashComments: !0, | |
| multiLineStrings: !0 | |
| }), ["bash", "bsh", "csh", "sh"]), u(i({ | |
| keywords: k, | |
| hashComments: !0, | |
| multiLineStrings: !0, | |
| tripleQuotedStrings: !0 | |
| }), ["cv", "py", "python"]), u(i({ | |
| keywords: x, | |
| hashComments: !0, | |
| multiLineStrings: !0, | |
| regexLiterals: 2 | |
| }), ["perl", "pl", "pm"]), u(i({ | |
| keywords: T, | |
| hashComments: !0, | |
| multiLineStrings: !0, | |
| regexLiterals: !0 | |
| }), ["rb", "ruby"]), u(i({ | |
| keywords: b, | |
| cStyleComments: !0, | |
| regexLiterals: !0 | |
| }), ["javascript", "js"]), u(i({ | |
| keywords: _, | |
| hashComments: 3, | |
| cStyleComments: !0, | |
| multilineStrings: !0, | |
| tripleQuotedStrings: !0, | |
| regexLiterals: !0 | |
| }), ["coffee"]), u(i({ | |
| keywords: C, | |
| cStyleComments: !0, | |
| multilineStrings: !0 | |
| }), ["rc", "rs", "rust"]), u(o([], [ | |
| [R, /^[\s\S]+/] | |
| ]), ["regex"]); | |
| var W = h.PR = { | |
| createSimpleLexer: o, | |
| registerLangHandler: u, | |
| sourceDecorator: i, | |
| PR_ATTRIB_NAME: U, | |
| PR_ATTRIB_VALUE: H, | |
| PR_COMMENT: N, | |
| PR_DECLARATION: D, | |
| PR_KEYWORD: M, | |
| PR_LITERAL: F, | |
| PR_NOCODE: V, | |
| PR_PLAIN: I, | |
| PR_PUNCTUATION: A, | |
| PR_SOURCE: L, | |
| PR_STRING: R, | |
| PR_TAG: $, | |
| PR_TYPE: O, | |
| prettyPrintOne: IN_GLOBAL_SCOPE ? h.prettyPrintOne = p : prettyPrintOne = p, | |
| prettyPrint: prettyPrint = IN_GLOBAL_SCOPE ? h.prettyPrint = d : prettyPrint = d | |
| }; | |
| "function" == typeof define && define.amd && define("google-code-prettify", [], function () { | |
| return W | |
| }) | |
| }(), // Copyright (C) 2009 Onno Hommes. | |
| PR.registerLangHandler(PR.createSimpleLexer([ | |
| [PR.PR_COMMENT, /^#[^\r\n]*/, null, "#"], | |
| [PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, " \n\r \xa0"], | |
| [PR.PR_STRING, /^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/, null, '"'] | |
| ], [ | |
| [PR.PR_KEYWORD, /^(?:ADS|AD|AUG|BZF|BZMF|CAE|CAF|CA|CCS|COM|CS|DAS|DCA|DCOM|DCS|DDOUBL|DIM|DOUBLE|DTCB|DTCF|DV|DXCH|EDRUPT|EXTEND|INCR|INDEX|NDX|INHINT|LXCH|MASK|MSK|MP|MSU|NOOP|OVSK|QXCH|RAND|READ|RELINT|RESUME|RETURN|ROR|RXOR|SQUARE|SU|TCR|TCAA|OVSK|TCF|TC|TS|WAND|WOR|WRITE|XCH|XLQ|XXALQ|ZL|ZQ|ADD|ADZ|SUB|SUZ|MPY|MPR|MPZ|DVP|COM|ABS|CLA|CLZ|LDQ|STO|STQ|ALS|LLS|LRS|TRA|TSQ|TMI|TOV|AXT|TIX|DLY|INP|OUT)\s/, null], | |
| [PR.PR_TYPE, /^(?:-?GENADR|=MINUS|2BCADR|VN|BOF|MM|-?2CADR|-?[1-6]DNADR|ADRES|BBCON|[SE]?BANK\=?|BLOCK|BNKSUM|E?CADR|COUNT\*?|2?DEC\*?|-?DNCHAN|-?DNPTR|EQUALS|ERASE|MEMORY|2?OCT|REMADR|SETLOC|SUBRO|ORG|BSS|BES|SYN|EQU|DEFINE|END)\s/, null], | |
| [PR.PR_LITERAL, /^\'(?:-*(?:\w|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?)?/], | |
| [PR.PR_PLAIN, /^-*(?:[!-z_]|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?/i], | |
| [PR.PR_PUNCTUATION, /^[^\w\t\n\r \xA0()\"\\\';]+/] | |
| ]), ["apollo", "agc", "aea"]), PR.registerLangHandler(PR.createSimpleLexer([ | |
| [PR.PR_STRING, /^(?:"(?:[^\\"\r\n]|\\.)*(?:"|$))/, null, '"'], | |
| [PR.PR_PLAIN, /^\s+/, null, " \r\n \xa0"] | |
| ], [ | |
| [PR.PR_COMMENT, /^REM[^\r\n]*/, null], | |
| [PR.PR_KEYWORD, /^\b(?:AND|CLOSE|CLR|CMD|CONT|DATA|DEF ?FN|DIM|END|FOR|GET|GOSUB|GOTO|IF|INPUT|LET|LIST|LOAD|NEW|NEXT|NOT|ON|OPEN|OR|POKE|PRINT|READ|RESTORE|RETURN|RUN|SAVE|STEP|STOP|SYS|THEN|TO|VERIFY|WAIT)\b/, null], | |
| [PR.PR_PLAIN, /^[A-Z][A-Z0-9]?(?:\$|%)?/i, null], | |
| [PR.PR_LITERAL, /^(?:\d+(?:\.\d*)?|\.\d+)(?:e[+\-]?\d+)?/i, null, "0123456789"], | |
| [PR.PR_PUNCTUATION, /^.[^\s\w\.$%"]*/, null] | |
| ]), ["basic", "cbm"]), | |
| /** | |
| * @license Copyright (C) 2011 Google Inc. | |
| * | |
| * Licensed under the Apache License, Version 2.0 (the "License"); | |
| * you may not use this file except in compliance with the License. | |
| * You may obtain a copy of the License at | |
| * | |
| * http://www.apache.org/licenses/LICENSE-2.0 | |
| * | |
| * Unless required by applicable law or agreed to in writing, software | |
| * distributed under the License is distributed on an "AS IS" BASIS, | |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| * See the License for the specific language governing permissions and | |
| * limitations under the License. | |
| */ | |
| PR.registerLangHandler(PR.createSimpleLexer([ | |
| ["opn", /^[\(\{\[]+/, null, "([{"], | |
| ["clo", /^[\)\}\]]+/, null, ")]}"], | |
| [PR.PR_COMMENT, /^;[^\r\n]*/, null, ";"], | |
| [PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, " \n\r \xa0"], | |
| [PR.PR_STRING, /^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/, null, '"'] | |
| ], [ | |
| [PR.PR_KEYWORD, /^(?:def|if|do|let|quote|var|fn|loop|recur|throw|try|monitor-enter|monitor-exit|defmacro|defn|defn-|macroexpand|macroexpand-1|for|doseq|dosync|dotimes|and|or|when|not|assert|doto|proxy|defstruct|first|rest|cons|defprotocol|deftype|defrecord|reify|defmulti|defmethod|meta|with-meta|ns|in-ns|create-ns|import|intern|refer|alias|namespace|resolve|ref|deref|refset|new|set!|memfn|to-array|into-array|aset|gen-class|reduce|map|filter|find|nil?|empty?|hash-map|hash-set|vec|vector|seq|flatten|reverse|assoc|dissoc|list|list?|disj|get|union|difference|intersection|extend|extend-type|extend-protocol|prn)\b/, null], | |
| [PR.PR_TYPE, /^:[0-9a-zA-Z\-]+/] | |
| ]), ["clj"]), // Copyright (C) 2009 Google Inc. | |
| PR.registerLangHandler(PR.createSimpleLexer([ | |
| [PR.PR_PLAIN, /^[ \t\r\n\f]+/, null, " \r\n\f"] | |
| ], [ | |
| [PR.PR_STRING, /^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/, null], | |
| [PR.PR_STRING, /^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/, null], | |
| ["lang-css-str", /^url\(([^\)\"\']+)\)/i], | |
| [PR.PR_KEYWORD, /^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i, null], | |
| ["lang-css-kw", /^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i], | |
| [PR.PR_COMMENT, /^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//], | |
| [PR.PR_COMMENT, /^(?:<!--|-->)/], | |
| [PR.PR_LITERAL, /^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i], | |
| [PR.PR_LITERAL, /^#(?:[0-9a-f]{3}){1,2}\b/i], | |
| [PR.PR_PLAIN, /^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i], | |
| [PR.PR_PUNCTUATION, /^[^\s\w\'\"]+/] | |
| ]), ["css"]), PR.registerLangHandler(PR.createSimpleLexer([], [ | |
| [PR.PR_KEYWORD, /^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i] | |
| ]), ["css-kw"]), PR.registerLangHandler(PR.createSimpleLexer([], [ | |
| [PR.PR_STRING, /^[^\)\"\']+/] | |
| ]), ["css-str"]), // Copyright (C) 2013 Google Inc. | |
| PR.registerLangHandler(PR.createSimpleLexer([ | |
| [PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, " \n\r \xa0"] | |
| ], [ | |
| [PR.PR_COMMENT, /^#!(?:.*)/], | |
| [PR.PR_KEYWORD, /^\b(?:import|library|part of|part|as|show|hide)\b/i], | |
| [PR.PR_COMMENT, /^\/\/(?:.*)/], | |
| [PR.PR_COMMENT, /^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//], | |
| [PR.PR_KEYWORD, /^\b(?:class|interface)\b/i], | |
| [PR.PR_KEYWORD, /^\b(?:assert|break|case|catch|continue|default|do|else|finally|for|if|in|is|new|return|super|switch|this|throw|try|while)\b/i], | |
| [PR.PR_KEYWORD, /^\b(?:abstract|const|extends|factory|final|get|implements|native|operator|set|static|typedef|var)\b/i], | |
| [PR.PR_TYPE, /^\b(?:bool|double|Dynamic|int|num|Object|String|void)\b/i], | |
| [PR.PR_KEYWORD, /^\b(?:false|null|true)\b/i], | |
| [PR.PR_STRING, /^r?[\']{3}[\s|\S]*?[^\\][\']{3}/], | |
| [PR.PR_STRING, /^r?[\"]{3}[\s|\S]*?[^\\][\"]{3}/], | |
| [PR.PR_STRING, /^r?\'(\'|(?:[^\n\r\f])*?[^\\]\')/], | |
| [PR.PR_STRING, /^r?\"(\"|(?:[^\n\r\f])*?[^\\]\")/], | |
| [PR.PR_PLAIN, /^[a-z_$][a-z0-9_]*/i], | |
| [PR.PR_PUNCTUATION, /^[~!%^&*+=|?:<>/-]/], | |
| [PR.PR_LITERAL, /^\b0x[0-9a-f]+/i], | |
| [PR.PR_LITERAL, /^\b\d+(?:\.\d*)?(?:e[+-]?\d+)?/i], | |
| [PR.PR_LITERAL, /^\b\.\d+(?:e[+-]?\d+)?/i], | |
| [PR.PR_PUNCTUATION, /^[(){}\[\],.;]/] | |
| ]), ["dart"]), // Copyright (C) 2013 Andrew Allen | |
| PR.registerLangHandler(PR.createSimpleLexer([ | |
| [PR.PR_PLAIN, /^[\t\n\x0B\x0C\r ]+/, null, " \n\f\r "], | |
| [PR.PR_STRING, /^\"(?:[^\"\\\n\x0C\r]|\\[\s\S])*(?:\"|$)/, null, '"'], | |
| [PR.PR_LITERAL, /^[a-z][a-zA-Z0-9_]*/], | |
| [PR.PR_LITERAL, /^\'(?:[^\'\\\n\x0C\r]|\\[^&])+\'?/, null, "'"], | |
| [PR.PR_LITERAL, /^\?[^ \t\n({]+/, null, "?"], | |
| [PR.PR_LITERAL, /^(?:0o[0-7]+|0x[\da-f]+|\d+(?:\.\d+)?(?:e[+\-]?\d+)?)/i, null, "0123456789"] | |
| ], [ | |
| [PR.PR_COMMENT, /^%[^\n]*/], | |
| [PR.PR_KEYWORD, /^(?:module|attributes|do|let|in|letrec|apply|call|primop|case|of|end|when|fun|try|catch|receive|after|char|integer|float,atom,string,var)\b/], | |
| [PR.PR_KEYWORD, /^-[a-z_]+/], | |
| [PR.PR_TYPE, /^[A-Z_][a-zA-Z0-9_]*/], | |
| [PR.PR_PUNCTUATION, /^[.,;]/] | |
| ]), ["erlang", "erl"]), // Copyright (C) 2010 Google Inc. | |
| PR.registerLangHandler(PR.createSimpleLexer([ | |
| [PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, " \n\r \xa0"], | |
| [PR.PR_PLAIN, /^(?:\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)|\'(?:[^\'\\]|\\[\s\S])+(?:\'|$)|`[^`]*(?:`|$))/, null, "\"'"] | |
| ], [ | |
| [PR.PR_COMMENT, /^(?:\/\/[^\r\n]*|\/\*[\s\S]*?\*\/)/], | |
| [PR.PR_PLAIN, /^(?:[^\/\"\'`]|\/(?![\/\*]))+/i] | |
| ]), ["go"]), // Copyright (C) 2009 Google Inc. | |
| PR.registerLangHandler(PR.createSimpleLexer([ | |
| [PR.PR_PLAIN, /^[\t\n\x0B\x0C\r ]+/, null, " \n\f\r "], | |
| [PR.PR_STRING, /^\"(?:[^\"\\\n\x0C\r]|\\[\s\S])*(?:\"|$)/, null, '"'], | |
| [PR.PR_STRING, /^\'(?:[^\'\\\n\x0C\r]|\\[^&])\'?/, null, "'"], | |
| [PR.PR_LITERAL, /^(?:0o[0-7]+|0x[\da-f]+|\d+(?:\.\d+)?(?:e[+\-]?\d+)?)/i, null, "0123456789"] | |
| ], [ | |
| [PR.PR_COMMENT, /^(?:(?:--+(?:[^\r\n\x0C]*)?)|(?:\{-(?:[^-]|-+[^-\}])*-\}))/], | |
| [PR.PR_KEYWORD, /^(?:case|class|data|default|deriving|do|else|if|import|in|infix|infixl|infixr|instance|let|module|newtype|of|then|type|where|_)(?=[^a-zA-Z0-9\']|$)/, null], | |
| [PR.PR_PLAIN, /^(?:[A-Z][\w\']*\.)*[a-zA-Z][\w\']*/], | |
| [PR.PR_PUNCTUATION, /^[^\t\n\x0B\x0C\r a-zA-Z0-9\'\"]+/] | |
| ]), ["hs"]), // Copyright (C) 2008 Google Inc. | |
| PR.registerLangHandler(PR.createSimpleLexer([ | |
| ["opn", /^\(+/, null, "("], | |
| ["clo", /^\)+/, null, ")"], | |
| [PR.PR_COMMENT, /^;[^\r\n]*/, null, ";"], | |
| [PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, " \n\r \xa0"], | |
| [PR.PR_STRING, /^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/, null, '"'] | |
| ], [ | |
| [PR.PR_KEYWORD, /^(?:block|c[ad]+r|catch|con[ds]|def(?:ine|un)|do|eq|eql|equal|equalp|eval-when|flet|format|go|if|labels|lambda|let|load-time-value|locally|macrolet|multiple-value-call|nil|progn|progv|quote|require|return-from|setq|symbol-macrolet|t|tagbody|the|throw|unwind)\b/, null], | |
| [PR.PR_LITERAL, /^[+\-]?(?:[0#]x[0-9a-f]+|\d+\/\d+|(?:\.\d+|\d+(?:\.\d*)?)(?:[ed][+\-]?\d+)?)/i], | |
| [PR.PR_LITERAL, /^\'(?:-*(?:\w|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?)?/], | |
| [PR.PR_PLAIN, /^-*(?:[a-z_]|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?/i], | |
| [PR.PR_PUNCTUATION, /^[^\w\t\n\r \xA0()\"\\\';]+/] | |
| ]), ["cl", "el", "lisp", "lsp", "scm", "ss", "rkt"]), // Copyright (C) 2013 Nikhil Dabas | |
| PR.registerLangHandler(PR.createSimpleLexer([ | |
| [PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, " \n\r \xa0"], | |
| [PR.PR_STRING, /^!?\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/, null, '"'], | |
| [PR.PR_COMMENT, /^;[^\r\n]*/, null, ";"] | |
| ], [ | |
| [PR.PR_PLAIN, /^[%@!](?:[-a-zA-Z$._][-a-zA-Z$._0-9]*|\d+)/], | |
| [PR.PR_KEYWORD, /^[A-Za-z_][0-9A-Za-z_]*/, null], | |
| [PR.PR_LITERAL, /^\d+\.\d+/], | |
| [PR.PR_LITERAL, /^(?:\d+|0[xX][a-fA-F0-9]+)/], | |
| [PR.PR_PUNCTUATION, /^[()\[\]{},=*<>:]|\.\.\.$/] | |
| ]), ["llvm", "ll"]), // Copyright (C) 2008 Google Inc. | |
| PR.registerLangHandler(PR.createSimpleLexer([ | |
| [PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, " \n\r \xa0"], | |
| [PR.PR_STRING, /^(?:\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)|\'(?:[^\'\\]|\\[\s\S])*(?:\'|$))/, null, "\"'"] | |
| ], [ | |
| [PR.PR_COMMENT, /^--(?:\[(=*)\[[\s\S]*?(?:\]\1\]|$)|[^\r\n]*)/], | |
| [PR.PR_STRING, /^\[(=*)\[[\s\S]*?(?:\]\1\]|$)/], | |
| [PR.PR_KEYWORD, /^(?:and|break|do|else|elseif|end|false|for|function|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/, null], | |
| [PR.PR_LITERAL, /^[+-]?(?:0x[\da-f]+|(?:(?:\.\d+|\d+(?:\.\d*)?)(?:e[+\-]?\d+)?))/i], | |
| [PR.PR_PLAIN, /^[a-z_]\w*/i], | |
| [PR.PR_PUNCTUATION, /^[^\w\t\n\r \xA0][^\w\t\n\r \xA0\"\'\-\+=]*/] | |
| ]), ["lua"]), // Copyright (c) 2013 by Amro <amroamroamro@gmail.com> | |
| // The above copyright notice and this permission notice shall be included in | |
| // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |
| function (t) { | |
| var e = "ident", | |
| n = "const", | |
| r = "fun", | |
| o = "fun_tbx", | |
| i = "syscmd", | |
| s = "codeoutput", | |
| a = "err", | |
| u = "wrn", | |
| l = "transpose", | |
| c = "linecont", | |
| p = ["abs|accumarray|acos(?:d|h)?|acot(?:d|h)?|acsc(?:d|h)?|actxcontrol(?:list|select)?|actxGetRunningServer|actxserver|addlistener|addpath|addpref|addtodate|airy|align|alim|all|allchild|alpha|alphamap|amd|ancestor|and|angle|annotation|any|area|arrayfun|asec(?:d|h)?|asin(?:d|h)?|assert|assignin|atan(?:2|d|h)?|audiodevinfo|audioplayer|audiorecorder|aufinfo|auread|autumn|auwrite|avifile|aviinfo|aviread|axes|axis|balance|bar(?:3|3h|h)?|base2dec|beep|BeginInvoke|bench|bessel(?:h|i|j|k|y)|beta|betainc|betaincinv|betaln|bicg|bicgstab|bicgstabl|bin2dec|bitand|bitcmp|bitget|bitmax|bitnot|bitor|bitset|bitshift|bitxor|blanks|blkdiag|bone|box|brighten|brush|bsxfun|builddocsearchdb|builtin|bvp4c|bvp5c|bvpget|bvpinit|bvpset|bvpxtend|calendar|calllib|callSoapService|camdolly|cameratoolbar|camlight|camlookat|camorbit|campan|campos|camproj|camroll|camtarget|camup|camva|camzoom|cart2pol|cart2sph|cast|cat|caxis|cd|cdf2rdf|cdfepoch|cdfinfo|cdflib(?:.(?:close|closeVar|computeEpoch|computeEpoch16|create|createAttr|createVar|delete|deleteAttr|deleteAttrEntry|deleteAttrgEntry|deleteVar|deleteVarRecords|epoch16Breakdown|epochBreakdown|getAttrEntry|getAttrgEntry|getAttrMaxEntry|getAttrMaxgEntry|getAttrName|getAttrNum|getAttrScope|getCacheSize|getChecksum|getCompression|getCompressionCacheSize|getConstantNames|getConstantValue|getCopyright|getFileBackward|getFormat|getLibraryCopyright|getLibraryVersion|getMajority|getName|getNumAttrEntries|getNumAttrgEntries|getNumAttributes|getNumgAttributes|getReadOnlyMode|getStageCacheSize|getValidate|getVarAllocRecords|getVarBlockingFactor|getVarCacheSize|getVarCompression|getVarData|getVarMaxAllocRecNum|getVarMaxWrittenRecNum|getVarName|getVarNum|getVarNumRecsWritten|getVarPadValue|getVarRecordData|getVarReservePercent|getVarsMaxWrittenRecNum|getVarSparseRecords|getVersion|hyperGetVarData|hyperPutVarData|inquire|inquireAttr|inquireAttrEntry|inquireAttrgEntry|inquireVar|open|putAttrEntry|putAttrgEntry|putVarData|putVarRecordData|renameAttr|renameVar|setCacheSize|setChecksum|setCompression|setCompressionCacheSize|setFileBackward|setFormat|setMajority|setReadOnlyMode|setStageCacheSize|setValidate|setVarAllocBlockRecords|setVarBlockingFactor|setVarCacheSize|setVarCompression|setVarInitialRecs|setVarPadValue|SetVarReservePercent|setVarsCacheSize|setVarSparseRecords))?|cdfread|cdfwrite|ceil|cell2mat|cell2struct|celldisp|cellfun|cellplot|cellstr|cgs|checkcode|checkin|checkout|chol|cholinc|cholupdate|circshift|cla|clabel|class|clc|clear|clearvars|clf|clipboard|clock|close|closereq|cmopts|cmpermute|cmunique|colamd|colon|colorbar|colordef|colormap|colormapeditor|colperm|Combine|comet|comet3|commandhistory|commandwindow|compan|compass|complex|computer|cond|condeig|condest|coneplot|conj|containers.Map|contour(?:3|c|f|slice)?|contrast|conv|conv2|convhull|convhulln|convn|cool|copper|copyfile|copyobj|corrcoef|cos(?:d|h)?|cot(?:d|h)?|cov|cplxpair|cputime|createClassFromWsdl|createSoapMessage|cross|csc(?:d|h)?|csvread|csvwrite|ctranspose|cumprod|cumsum|cumtrapz|curl|customverctrl|cylinder|daqread|daspect|datacursormode|datatipinfo|date|datenum|datestr|datetick|datevec|dbclear|dbcont|dbdown|dblquad|dbmex|dbquit|dbstack|dbstatus|dbstep|dbstop|dbtype|dbup|dde23|ddeget|ddesd|ddeset|deal|deblank|dec2base|dec2bin|dec2hex|decic|deconv|del2|delaunay|delaunay3|delaunayn|DelaunayTri|delete|demo|depdir|depfun|det|detrend|deval|diag|dialog|diary|diff|diffuse|dir|disp|display|dither|divergence|dlmread|dlmwrite|dmperm|doc|docsearch|dos|dot|dragrect|drawnow|dsearch|dsearchn|dynamicprops|echo|echodemo|edit|eig|eigs|ellipj|ellipke|ellipsoid|empty|enableNETfromNetworkDrive|enableservice|EndInvoke|enumeration|eomday|eq|erf|erfc|erfcinv|erfcx|erfinv|error|errorbar|errordlg|etime|etree|etreeplot|eval|evalc|evalin|event.(?:EventData|listener|PropertyEvent|proplistener)|exifread|exist|exit|exp|expint|expm|expm1|export2wsdlg|eye|ezcontour|ezcontourf|ezmesh|ezmeshc|ezplot|ezplot3|ezpolar|ezsurf|ezsurfc|factor|factorial|fclose|feather|feature|feof|ferror|feval|fft|fft2|fftn|fftshift|fftw|fgetl|fgets|fieldnames|figure|figurepalette|fileattrib|filebrowser|filemarker|fileparts|fileread|filesep|fill|fill3|filter|filter2|find|findall|findfigs|findobj|findstr|finish|fitsdisp|fitsinfo|fitsread|fitswrite|fix|flag|flipdim|fliplr|flipud|floor|flow|fminbnd|fminsearch|fopen|format|fplot|fprintf|frame2im|fread|freqspace|frewind|fscanf|fseek|ftell|FTP|full|fullfile|func2str|functions|funm|fwrite|fzero|gallery|gamma|gammainc|gammaincinv|gammaln|gca|gcbf|gcbo|gcd|gcf|gco|ge|genpath|genvarname|get|getappdata|getenv|getfield|getframe|getpixelposition|getpref|ginput|gmres|gplot|grabcode|gradient|gray|graymon|grid|griddata(?:3|n)?|griddedInterpolant|gsvd|gt|gtext|guidata|guide|guihandles|gunzip|gzip|h5create|h5disp|h5info|h5read|h5readatt|h5write|h5writeatt|hadamard|handle|hankel|hdf|hdf5|hdf5info|hdf5read|hdf5write|hdfinfo|hdfread|hdftool|help|helpbrowser|helpdesk|helpdlg|helpwin|hess|hex2dec|hex2num|hgexport|hggroup|hgload|hgsave|hgsetget|hgtransform|hidden|hilb|hist|histc|hold|home|horzcat|hostid|hot|hsv|hsv2rgb|hypot|ichol|idivide|ifft|ifft2|ifftn|ifftshift|ilu|im2frame|im2java|imag|image|imagesc|imapprox|imfinfo|imformats|import|importdata|imread|imwrite|ind2rgb|ind2sub|inferiorto|info|inline|inmem|inpolygon|input|inputdlg|inputname|inputParser|inspect|instrcallback|instrfind|instrfindall|int2str|integral(?:2|3)?|interp(?:1|1q|2|3|ft|n)|interpstreamspeed|intersect|intmax|intmin|inv|invhilb|ipermute|isa|isappdata|iscell|iscellstr|ischar|iscolumn|isdir|isempty|isequal|isequaln|isequalwithequalnans|isfield|isfinite|isfloat|isglobal|ishandle|ishghandle|ishold|isinf|isinteger|isjava|iskeyword|isletter|islogical|ismac|ismatrix|ismember|ismethod|isnan|isnumeric|isobject|isocaps|isocolors|isonormals|isosurface|ispc|ispref|isprime|isprop|isreal|isrow|isscalar|issorted|isspace|issparse|isstr|isstrprop|isstruct|isstudent|isunix|isvarname|isvector|javaaddpath|javaArray|javachk|javaclasspath|javacomponent|javaMethod|javaMethodEDT|javaObject|javaObjectEDT|javarmpath|jet|keyboard|kron|lasterr|lasterror|lastwarn|lcm|ldivide|ldl|le|legend|legendre|length|libfunctions|libfunctionsview|libisloaded|libpointer|libstruct|license|light|lightangle|lighting|lin2mu|line|lines|linkaxes|linkdata|linkprop|linsolve|linspace|listdlg|listfonts|load|loadlibrary|loadobj|log|log10|log1p|log2|loglog|logm|logspace|lookfor|lower|ls|lscov|lsqnonneg|lsqr|lt|lu|luinc|magic|makehgtform|mat2cell|mat2str|material|matfile|matlab.io.MatFile|matlab.mixin.(?:Copyable|Heterogeneous(?:.getDefaultScalarElement)?)|matlabrc|matlabroot|max|maxNumCompThreads|mean|median|membrane|memmapfile|memory|menu|mesh|meshc|meshgrid|meshz|meta.(?:class(?:.fromName)?|DynamicProperty|EnumeratedValue|event|MetaData|method|package(?:.(?:fromName|getAllPackages))?|property)|metaclass|methods|methodsview|mex(?:.getCompilerConfigurations)?|MException|mexext|mfilename|min|minres|minus|mislocked|mkdir|mkpp|mldivide|mlint|mlintrpt|mlock|mmfileinfo|mmreader|mod|mode|more|move|movefile|movegui|movie|movie2avi|mpower|mrdivide|msgbox|mtimes|mu2lin|multibandread|multibandwrite|munlock|namelengthmax|nargchk|narginchk|nargoutchk|native2unicode|nccreate|ncdisp|nchoosek|ncinfo|ncread|ncreadatt|ncwrite|ncwriteatt|ncwriteschema|ndgrid|ndims|ne|NET(?:.(?:addAssembly|Assembly|convertArray|createArray|createGeneric|disableAutoRelease|enableAutoRelease|GenericClass|invokeGenericMethod|NetException|setStaticProperty))?|netcdf.(?:abort|close|copyAtt|create|defDim|defGrp|defVar|defVarChunking|defVarDeflate|defVarFill|defVarFletcher32|delAtt|endDef|getAtt|getChunkCache|getConstant|getConstantNames|getVar|inq|inqAtt|inqAttID|inqAttName|inqDim|inqDimID|inqDimIDs|inqFormat|inqGrpName|inqGrpNameFull|inqGrpParent|inqGrps|inqLibVers|inqNcid|inqUnlimDims|inqVar|inqVarChunking|inqVarDeflate|inqVarFill|inqVarFletcher32|inqVarID|inqVarIDs|open|putAtt|putVar|reDef|renameAtt|renameDim|renameVar|setChunkCache|setDefaultFormat|setFill|sync)|newplot|nextpow2|nnz|noanimate|nonzeros|norm|normest|not|notebook|now|nthroot|null|num2cell|num2hex|num2str|numel|nzmax|ode(?:113|15i|15s|23|23s|23t|23tb|45)|odeget|odeset|odextend|onCleanup|ones|open|openfig|opengl|openvar|optimget|optimset|or|ordeig|orderfields|ordqz|ordschur|orient|orth|pack|padecoef|pagesetupdlg|pan|pareto|parseSoapResponse|pascal|patch|path|path2rc|pathsep|pathtool|pause|pbaspect|pcg|pchip|pcode|pcolor|pdepe|pdeval|peaks|perl|perms|permute|pie|pink|pinv|planerot|playshow|plot|plot3|plotbrowser|plotedit|plotmatrix|plottools|plotyy|plus|pol2cart|polar|poly|polyarea|polyder|polyeig|polyfit|polyint|polyval|polyvalm|pow2|power|ppval|prefdir|preferences|primes|print|printdlg|printopt|printpreview|prod|profile|profsave|propedit|propertyeditor|psi|publish|PutCharArray|PutFullMatrix|PutWorkspaceData|pwd|qhull|qmr|qr|qrdelete|qrinsert|qrupdate|quad|quad2d|quadgk|quadl|quadv|questdlg|quit|quiver|quiver3|qz|rand|randi|randn|randperm|RandStream(?:.(?:create|getDefaultStream|getGlobalStream|list|setDefaultStream|setGlobalStream))?|rank|rat|rats|rbbox|rcond|rdivide|readasync|real|reallog|realmax|realmin|realpow|realsqrt|record|rectangle|rectint|recycle|reducepatch|reducevolume|refresh|refreshdata|regexp|regexpi|regexprep|regexptranslate|rehash|rem|Remove|RemoveAll|repmat|reset|reshape|residue|restoredefaultpath|rethrow|rgb2hsv|rgb2ind|rgbplot|ribbon|rmappdata|rmdir|rmfield|rmpath|rmpref|rng|roots|rose|rosser|rot90|rotate|rotate3d|round|rref|rsf2csf|run|save|saveas|saveobj|savepath|scatter|scatter3|schur|sec|secd|sech|selectmoveresize|semilogx|semilogy|sendmail|serial|set|setappdata|setdiff|setenv|setfield|setpixelposition|setpref|setstr|setxor|shading|shg|shiftdim|showplottool|shrinkfaces|sign|sin(?:d|h)?|size|slice|smooth3|snapnow|sort|sortrows|sound|soundsc|spalloc|spaugment|spconvert|spdiags|specular|speye|spfun|sph2cart|sphere|spinmap|spline|spones|spparms|sprand|sprandn|sprandsym|sprank|spring|sprintf|spy|sqrt|sqrtm|squeeze|ss2tf|sscanf|stairs|startup|std|stem|stem3|stopasync|str2double|str2func|str2mat|str2num|strcat|strcmp|strcmpi|stream2|stream3|streamline|streamparticles|streamribbon|streamslice|streamtube|strfind|strjust|strmatch|strncmp|strncmpi|strread|strrep|strtok|strtrim|struct2cell|structfun|strvcat|sub2ind|subplot|subsasgn|subsindex|subspace|subsref|substruct|subvolume|sum|summer|superclasses|superiorto|support|surf|surf2patch|surface|surfc|surfl|surfnorm|svd|svds|swapbytes|symamd|symbfact|symmlq|symrcm|symvar|system|tan(?:d|h)?|tar|tempdir|tempname|tetramesh|texlabel|text|textread|textscan|textwrap|tfqmr|throw|tic|Tiff(?:.(?:getTagNames|getVersion))?|timer|timerfind|timerfindall|times|timeseries|title|toc|todatenum|toeplitz|toolboxdir|trace|transpose|trapz|treelayout|treeplot|tril|trimesh|triplequad|triplot|TriRep|TriScatteredInterp|trisurf|triu|tscollection|tsearch|tsearchn|tstool|type|typecast|uibuttongroup|uicontextmenu|uicontrol|uigetdir|uigetfile|uigetpref|uiimport|uimenu|uiopen|uipanel|uipushtool|uiputfile|uiresume|uisave|uisetcolor|uisetfont|uisetpref|uistack|uitable|uitoggletool|uitoolbar|uiwait|uminus|undocheckout|unicode2native|union|unique|unix|unloadlibrary|unmesh|unmkpp|untar|unwrap|unzip|uplus|upper|urlread|urlwrite|usejava|userpath|validateattributes|validatestring|vander|var|vectorize|ver|verctrl|verLessThan|version|vertcat|VideoReader(?:.isPlatformSupported)?|VideoWriter(?:.getProfiles)?|view|viewmtx|visdiff|volumebounds|voronoi|voronoin|wait|waitbar|waitfor|waitforbuttonpress|warndlg|warning|waterfall|wavfinfo|wavplay|wavread|wavrecord|wavwrite|web|weekday|what|whatsnew|which|whitebg|who|whos|wilkinson|winopen|winqueryreg|winter|wk1finfo|wk1read|wk1write|workspace|xlabel|xlim|xlsfinfo|xlsread|xlswrite|xmlread|xmlwrite|xor|xslt|ylabel|ylim|zeros|zip|zlabel|zlim|zoom"].join("|"), | |
| d = ["addedvarplot|andrewsplot|anova(?:1|2|n)|ansaribradley|aoctool|barttest|bbdesign|beta(?:cdf|fit|inv|like|pdf|rnd|stat)|bino(?:cdf|fit|inv|pdf|rnd|stat)|biplot|bootci|bootstrp|boxplot|candexch|candgen|canoncorr|capability|capaplot|caseread|casewrite|categorical|ccdesign|cdfplot|chi2(?:cdf|gof|inv|pdf|rnd|stat)|cholcov|Classification(?:BaggedEnsemble|Discriminant(?:.(?:fit|make|template))?|Ensemble|KNN(?:.(?:fit|template))?|PartitionedEnsemble|PartitionedModel|Tree(?:.(?:fit|template))?)|classify|classregtree|cluster|clusterdata|cmdscale|combnk|Compact(?:Classification(?:Discriminant|Ensemble|Tree)|Regression(?:Ensemble|Tree)|TreeBagger)|confusionmat|controlchart|controlrules|cophenet|copula(?:cdf|fit|param|pdf|rnd|stat)|cordexch|corr|corrcov|coxphfit|createns|crosstab|crossval|cvpartition|datasample|dataset|daugment|dcovary|dendrogram|dfittool|disttool|dummyvar|dwtest|ecdf|ecdfhist|ev(?:cdf|fit|inv|like|pdf|rnd|stat)|ExhaustiveSearcher|exp(?:cdf|fit|inv|like|pdf|rnd|stat)|factoran|fcdf|ff2n|finv|fitdist|fitensemble|fpdf|fracfact|fracfactgen|friedman|frnd|fstat|fsurfht|fullfact|gagerr|gam(?:cdf|fit|inv|like|pdf|rnd|stat)|GeneralizedLinearModel(?:.fit)?|geo(?:cdf|inv|mean|pdf|rnd|stat)|gev(?:cdf|fit|inv|like|pdf|rnd|stat)|gline|glmfit|glmval|glyphplot|gmdistribution(?:.fit)?|gname|gp(?:cdf|fit|inv|like|pdf|rnd|stat)|gplotmatrix|grp2idx|grpstats|gscatter|haltonset|harmmean|hist3|histfit|hmm(?:decode|estimate|generate|train|viterbi)|hougen|hyge(?:cdf|inv|pdf|rnd|stat)|icdf|inconsistent|interactionplot|invpred|iqr|iwishrnd|jackknife|jbtest|johnsrnd|KDTreeSearcher|kmeans|knnsearch|kruskalwallis|ksdensity|kstest|kstest2|kurtosis|lasso|lassoglm|lassoPlot|leverage|lhsdesign|lhsnorm|lillietest|LinearModel(?:.fit)?|linhyptest|linkage|logn(?:cdf|fit|inv|like|pdf|rnd|stat)|lsline|mad|mahal|maineffectsplot|manova1|manovacluster|mdscale|mhsample|mle|mlecov|mnpdf|mnrfit|mnrnd|mnrval|moment|multcompare|multivarichart|mvn(?:cdf|pdf|rnd)|mvregress|mvregresslike|mvt(?:cdf|pdf|rnd)|NaiveBayes(?:.fit)?|nan(?:cov|max|mean|median|min|std|sum|var)|nbin(?:cdf|fit|inv|pdf|rnd|stat)|ncf(?:cdf|inv|pdf|rnd|stat)|nct(?:cdf|inv|pdf|rnd|stat)|ncx2(?:cdf|inv|pdf|rnd|stat)|NeighborSearcher|nlinfit|nlintool|nlmefit|nlmefitsa|nlparci|nlpredci|nnmf|nominal|NonLinearModel(?:.fit)?|norm(?:cdf|fit|inv|like|pdf|rnd|stat)|normplot|normspec|ordinal|outlierMeasure|parallelcoords|paretotails|partialcorr|pcacov|pcares|pdf|pdist|pdist2|pearsrnd|perfcurve|perms|piecewisedistribution|plsregress|poiss(?:cdf|fit|inv|pdf|rnd|tat)|polyconf|polytool|prctile|princomp|ProbDist(?:Kernel|Parametric|UnivKernel|UnivParam)?|probplot|procrustes|qqplot|qrandset|qrandstream|quantile|randg|random|randsample|randtool|range|rangesearch|ranksum|rayl(?:cdf|fit|inv|pdf|rnd|stat)|rcoplot|refcurve|refline|regress|Regression(?:BaggedEnsemble|Ensemble|PartitionedEnsemble|PartitionedModel|Tree(?:.(?:fit|template))?)|regstats|relieff|ridge|robustdemo|robustfit|rotatefactors|rowexch|rsmdemo|rstool|runstest|sampsizepwr|scatterhist|sequentialfs|signrank|signtest|silhouette|skewness|slicesample|sobolset|squareform|statget|statset|stepwise|stepwisefit|surfht|tabulate|tblread|tblwrite|tcdf|tdfread|tiedrank|tinv|tpdf|TreeBagger|treedisp|treefit|treeprune|treetest|treeval|trimmean|trnd|tstat|ttest|ttest2|unid(?:cdf|inv|pdf|rnd|stat)|unif(?:cdf|inv|it|pdf|rnd|stat)|vartest(?:2|n)?|wbl(?:cdf|fit|inv|like|pdf|rnd|stat)|wblplot|wishrnd|x2fx|xptread|zscore|ztest"].join("|"), | |
| h = ["adapthisteq|analyze75info|analyze75read|applycform|applylut|axes2pix|bestblk|blockproc|bwarea|bwareaopen|bwboundaries|bwconncomp|bwconvhull|bwdist|bwdistgeodesic|bweuler|bwhitmiss|bwlabel|bwlabeln|bwmorph|bwpack|bwperim|bwselect|bwtraceboundary|bwulterode|bwunpack|checkerboard|col2im|colfilt|conndef|convmtx2|corner|cornermetric|corr2|cp2tform|cpcorr|cpselect|cpstruct2pairs|dct2|dctmtx|deconvblind|deconvlucy|deconvreg|deconvwnr|decorrstretch|demosaic|dicom(?:anon|dict|info|lookup|read|uid|write)|edge|edgetaper|entropy|entropyfilt|fan2para|fanbeam|findbounds|fliptform|freqz2|fsamp2|fspecial|ftrans2|fwind1|fwind2|getheight|getimage|getimagemodel|getline|getneighbors|getnhood|getpts|getrangefromclass|getrect|getsequence|gray2ind|graycomatrix|graycoprops|graydist|grayslice|graythresh|hdrread|hdrwrite|histeq|hough|houghlines|houghpeaks|iccfind|iccread|iccroot|iccwrite|idct2|ifanbeam|im2bw|im2col|im2double|im2int16|im2java2d|im2single|im2uint16|im2uint8|imabsdiff|imadd|imadjust|ImageAdapter|imageinfo|imagemodel|imapplymatrix|imattributes|imbothat|imclearborder|imclose|imcolormaptool|imcomplement|imcontour|imcontrast|imcrop|imdilate|imdisplayrange|imdistline|imdivide|imellipse|imerode|imextendedmax|imextendedmin|imfill|imfilter|imfindcircles|imfreehand|imfuse|imgca|imgcf|imgetfile|imhandles|imhist|imhmax|imhmin|imimposemin|imlincomb|imline|immagbox|immovie|immultiply|imnoise|imopen|imoverview|imoverviewpanel|impixel|impixelinfo|impixelinfoval|impixelregion|impixelregionpanel|implay|impoint|impoly|impositionrect|improfile|imputfile|impyramid|imreconstruct|imrect|imregconfig|imregionalmax|imregionalmin|imregister|imresize|imroi|imrotate|imsave|imscrollpanel|imshow|imshowpair|imsubtract|imtool|imtophat|imtransform|imview|ind2gray|ind2rgb|interfileinfo|interfileread|intlut|ippl|iptaddcallback|iptcheckconn|iptcheckhandle|iptcheckinput|iptcheckmap|iptchecknargin|iptcheckstrs|iptdemos|iptgetapi|iptGetPointerBehavior|iptgetpref|ipticondir|iptnum2ordinal|iptPointerManager|iptprefs|iptremovecallback|iptSetPointerBehavior|iptsetpref|iptwindowalign|iradon|isbw|isflat|isgray|isicc|isind|isnitf|isrgb|isrset|lab2double|lab2uint16|lab2uint8|label2rgb|labelmatrix|makecform|makeConstrainToRectFcn|makehdr|makelut|makeresampler|maketform|mat2gray|mean2|medfilt2|montage|nitfinfo|nitfread|nlfilter|normxcorr2|ntsc2rgb|openrset|ordfilt2|otf2psf|padarray|para2fan|phantom|poly2mask|psf2otf|qtdecomp|qtgetblk|qtsetblk|radon|rangefilt|reflect|regionprops|registration.metric.(?:MattesMutualInformation|MeanSquares)|registration.optimizer.(?:OnePlusOneEvolutionary|RegularStepGradientDescent)|rgb2gray|rgb2ntsc|rgb2ycbcr|roicolor|roifill|roifilt2|roipoly|rsetwrite|std2|stdfilt|strel|stretchlim|subimage|tformarray|tformfwd|tforminv|tonemap|translate|truesize|uintlut|viscircles|warp|watershed|whitepoint|wiener2|xyz2double|xyz2uint16|ycbcr2rgb"].join("|"), | |
| f = ["bintprog|color|fgoalattain|fminbnd|fmincon|fminimax|fminsearch|fminunc|fseminf|fsolve|fzero|fzmult|gangstr|ktrlink|linprog|lsqcurvefit|lsqlin|lsqnonlin|lsqnonneg|optimget|optimset|optimtool|quadprog"].join("|"), | |
| m = [ | |
| [t.PR_PLAIN, /^[ \t\r\n\v\f\xA0]+/, null, " \r\n\f\xa0"], | |
| [t.PR_COMMENT, /^%\{[^%]*%+(?:[^\}%][^%]*%+)*\}/, null], | |
| [t.PR_COMMENT, /^%[^\r\n]*/, null, "%"], | |
| [i, /^![^\r\n]*/, null, "!"] | |
| ], | |
| g = [ | |
| [c, /^\.\.\.\s*[\r\n]/, null], | |
| [a, /^\?\?\? [^\r\n]*/, null], | |
| [u, /^Warning: [^\r\n]*/, null], | |
| [s, /^>>\s+/, null], | |
| [s, /^octave:\d+>\s+/, null], | |
| ["lang-matlab-operators", /^((?:[a-zA-Z][a-zA-Z0-9_]*(?:\.[a-zA-Z][a-zA-Z0-9_]*)*|\)|\]|\}|\.)')/, null], | |
| ["lang-matlab-identifiers", /^([a-zA-Z][a-zA-Z0-9_]*(?:\.[a-zA-Z][a-zA-Z0-9_]*)*)(?!')/, null], | |
| [t.PR_STRING, /^'(?:[^']|'')*'/, null], | |
| [t.PR_LITERAL, /^[+\-]?\.?\d+(?:\.\d*)?(?:[Ee][+\-]?\d+)?[ij]?/, null], | |
| [t.PR_TAG, /^(?:\{|\}|\(|\)|\[|\])/, null], | |
| [t.PR_PUNCTUATION, /^(?:<|>|=|~|@|&|;|,|:|!|\-|\+|\*|\^|\.|\||\\|\/)/, null] | |
| ], | |
| v = [ | |
| [t.PR_KEYWORD, /^\b(?:break|case|catch|classdef|continue|else|elseif|end|for|function|global|if|otherwise|parfor|persistent|return|spmd|switch|try|while)\b/, null], | |
| [n, /^\b(?:true|false|inf|Inf|nan|NaN|eps|pi|ans|nargin|nargout|varargin|varargout)\b/, null], | |
| [t.PR_TYPE, /^\b(?:cell|struct|char|double|single|logical|u?int(?:8|16|32|64)|sparse)\b/, null], | |
| [r, new RegExp("^\\b(?:" + p + ")\\b"), null], | |
| [o, new RegExp("^\\b(?:" + d + ")\\b"), null], | |
| [o, new RegExp("^\\b(?:" + h + ")\\b"), null], | |
| [o, new RegExp("^\\b(?:" + f + ")\\b"), null], | |
| [e, /^[a-zA-Z][a-zA-Z0-9_]*(?:\.[a-zA-Z][a-zA-Z0-9_]*)*/, null] | |
| ], | |
| y = [ | |
| ["lang-matlab-identifiers", /^([a-zA-Z][a-zA-Z0-9_]*(?:\.[a-zA-Z][a-zA-Z0-9_]*)*)/, null], | |
| [t.PR_TAG, /^(?:\{|\}|\(|\)|\[|\])/, null], | |
| [t.PR_PUNCTUATION, /^(?:<|>|=|~|@|&|;|,|:|!|\-|\+|\*|\^|\.|\||\\|\/)/, null], | |
| [l, /^'/, null] | |
| ]; | |
| t.registerLangHandler(t.createSimpleLexer([], v), ["matlab-identifiers"]), t.registerLangHandler(t.createSimpleLexer([], y), ["matlab-operators"]), t.registerLangHandler(t.createSimpleLexer(m, g), ["matlab"]) | |
| }(window.PR), // Copyright (C) 2008 Google Inc. | |
| PR.registerLangHandler(PR.createSimpleLexer([ | |
| [PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, " \n\r \xa0"], | |
| [PR.PR_COMMENT, /^#(?:if[\t\n\r \xA0]+(?:[a-z_$][\w\']*|``[^\r\n\t`]*(?:``|$))|else|endif|light)/i, null, "#"], | |
| [PR.PR_STRING, /^(?:\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)|\'(?:[^\'\\]|\\[\s\S])(?:\'|$))/, null, "\"'"] | |
| ], [ | |
| [PR.PR_COMMENT, /^(?:\/\/[^\r\n]*|\(\*[\s\S]*?\*\))/], | |
| [PR.PR_KEYWORD, /^(?:abstract|and|as|assert|begin|class|default|delegate|do|done|downcast|downto|elif|else|end|exception|extern|false|finally|for|fun|function|if|in|inherit|inline|interface|internal|lazy|let|match|member|module|mutable|namespace|new|null|of|open|or|override|private|public|rec|return|static|struct|then|to|true|try|type|upcast|use|val|void|when|while|with|yield|asr|land|lor|lsl|lsr|lxor|mod|sig|atomic|break|checked|component|const|constraint|constructor|continue|eager|event|external|fixed|functor|global|include|method|mixin|object|parallel|process|protected|pure|sealed|trait|virtual|volatile)\b/], | |
| [PR.PR_LITERAL, /^[+\-]?(?:0x[\da-f]+|(?:(?:\.\d+|\d+(?:\.\d*)?)(?:e[+\-]?\d+)?))/i], | |
| [PR.PR_PLAIN, /^(?:[a-z_][\w']*[!?#]?|``[^\r\n\t`]*(?:``|$))/i], | |
| [PR.PR_PUNCTUATION, /^[^\t\n\r \xA0\"\'\w]+/] | |
| ]), ["fs", "ml"]), // Copyright (C) 2011 Kitware Inc. | |
| function () { | |
| var t = "B|BREAK|C|CLOSE|D|DO|E|ELSE|F|FOR|G|GOTO|H|HALT|H|HANG|I|IF|J|JOB|K|KILL|L|LOCK|M|MERGE|N|NEW|O|OPEN|Q|QUIT|R|READ|S|SET|TC|TCOMMIT|TRE|TRESTART|TRO|TROLLBACK|TS|TSTART|U|USE|V|VIEW|W|WRITE|X|XECUTE", | |
| e = "D|DEVICE|EC|ECODE|ES|ESTACK|ET|ETRAP|H|HOROLOG|I|IO|J|JOB|K|KEY|P|PRINCIPAL|Q|QUIT|ST|STACK|S|STORAGE|SY|SYSTEM|T|TEST|TL|TLEVEL|TR|TRESTART|X|Y|Z[A-Z]*|", | |
| n = "A|ASCII|C|CHAR|D|DATA|E|EXTRACT|F|FIND|FN|FNUMBER|G|GET|J|JUSTIFY|L|LENGTH|NA|NAME|O|ORDER|P|PIECE|QL|QLENGTH|QS|QSUBSCRIPT|Q|QUERY|R|RANDOM|RE|REVERSE|S|SELECT|ST|STACK|T|TEXT|TR|TRANSLATE|NaN", | |
| r = e + n, | |
| o = [ | |
| [PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, " \n\r \xa0"], | |
| [PR.PR_STRING, /^(?:"(?:[^"]|\\.)*")/, null, '"'] | |
| ], | |
| i = [ | |
| [PR.PR_COMMENT, /^;[^\r\n]*/, null, ";"], | |
| [PR.PR_DECLARATION, new RegExp("^(?:\\$(?:" + r + "))\\b", "i"), null], | |
| [PR.PR_KEYWORD, new RegExp("^(?:[^\\$]" + t + ")\\b", "i"), null], | |
| [PR.PR_LITERAL, /^[+-]?(?:(?:\.\d+|\d+(?:\.\d*)?)(?:E[+\-]?\d+)?)/i], | |
| [PR.PR_PLAIN, /^[a-z][a-zA-Z0-9]*/i], | |
| [PR.PR_PUNCTUATION, /^[^\w\t\n\r\xA0\"\$;%\^]|_/] | |
| ]; | |
| PR.registerLangHandler(PR.createSimpleLexer(o, i), ["mumps"]) | |
| }(), // Copyright (C) 2011 Zimin A.V. | |
| function () { | |
| var t = "abstract|and|as|base|catch|class|def|delegate|enum|event|extern|false|finally|fun|implements|interface|internal|is|macro|match|matches|module|mutable|namespace|new|null|out|override|params|partial|private|protected|public|ref|sealed|static|struct|syntax|this|throw|true|try|type|typeof|using|variant|virtual|volatile|when|where|with|assert|assert2|async|break|checked|continue|do|else|ensures|for|foreach|if|late|lock|new|nolate|otherwise|regexp|repeat|requires|return|surroundwith|unchecked|unless|using|while|yield"; | |
| PR.registerLangHandler(PR.createSimpleLexer([ | |
| [PR.PR_STRING, /^(?:\'(?:[^\\\'\r\n]|\\.)*\'|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/, null, '"'], | |
| [PR.PR_COMMENT, /^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/, null, "#"], | |
| [PR.PR_PLAIN, /^\s+/, null, " \r\n \xa0"] | |
| ], [ | |
| [PR.PR_STRING, /^@\"(?:[^\"]|\"\")*(?:\"|$)/, null], | |
| [PR.PR_STRING, /^<#(?:[^#>])*(?:#>|$)/, null], | |
| [PR.PR_STRING, /^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/, null], | |
| [PR.PR_COMMENT, /^\/\/[^\r\n]*/, null], | |
| [PR.PR_COMMENT, /^\/\*[\s\S]*?(?:\*\/|$)/, null], | |
| [PR.PR_KEYWORD, new RegExp("^(?:" + t + ")\\b"), null], | |
| [PR.PR_TYPE, /^(?:array|bool|byte|char|decimal|double|float|int|list|long|object|sbyte|short|string|ulong|uint|ufloat|ulong|ushort|void)\b/, null], | |
| [PR.PR_LITERAL, /^@[a-z_$][a-z_$@0-9]*/i, null], | |
| [PR.PR_TYPE, /^@[A-Z]+[a-z][A-Za-z_$@0-9]*/, null], | |
| [PR.PR_PLAIN, /^'?[A-Za-z_$][a-z_$@0-9]*/i, null], | |
| [PR.PR_LITERAL, new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*", "i"), null, "0123456789"], | |
| [PR.PR_PUNCTUATION, /^.[^\s\w\.$@\'\"\`\/\#]*/, null] | |
| ]), ["n", "nemerle"]) | |
| }(), PR.registerLangHandler(PR.createSimpleLexer([ | |
| [PR.PR_STRING, /^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$))/, null, "'"], | |
| [PR.PR_PLAIN, /^\s+/, null, " \r\n \xa0"] | |
| ], [ | |
| [PR.PR_COMMENT, /^\(\*[\s\S]*?(?:\*\)|$)|^\{[\s\S]*?(?:\}|$)/, null], | |
| [PR.PR_KEYWORD, /^(?:ABSOLUTE|AND|ARRAY|ASM|ASSEMBLER|BEGIN|CASE|CONST|CONSTRUCTOR|DESTRUCTOR|DIV|DO|DOWNTO|ELSE|END|EXTERNAL|FOR|FORWARD|FUNCTION|GOTO|IF|IMPLEMENTATION|IN|INLINE|INTERFACE|INTERRUPT|LABEL|MOD|NOT|OBJECT|OF|OR|PACKED|PROCEDURE|PROGRAM|RECORD|REPEAT|SET|SHL|SHR|THEN|TO|TYPE|UNIT|UNTIL|USES|VAR|VIRTUAL|WHILE|WITH|XOR)\b/i, null], | |
| [PR.PR_LITERAL, /^(?:true|false|self|nil)/i, null], | |
| [PR.PR_PLAIN, /^[a-z][a-z0-9]*/i, null], | |
| [PR.PR_LITERAL, /^(?:\$[a-f0-9]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+\-]?\d+)?)/i, null, "0123456789"], | |
| [PR.PR_PUNCTUATION, /^.[^\s\w\.$@\'\/]*/, null] | |
| ]), ["pascal"]), // Copyright (C) 2006 Google Inc. | |
| PR.registerLangHandler(PR.sourceDecorator({ | |
| keywords: "bytes,default,double,enum,extend,extensions,false,group,import,max,message,option,optional,package,repeated,required,returns,rpc,service,syntax,to,true", | |
| types: /^(bool|(double|s?fixed|[su]?int)(32|64)|float|string)\b/, | |
| cStyleComments: !0 | |
| }), ["proto"]), // Copyright (C) 2012 Jeffrey B. Arnold | |
| PR.registerLangHandler(PR.createSimpleLexer([ | |
| [PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, " \n\r \xa0"], | |
| [PR.PR_STRING, /^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/, null, '"'], | |
| [PR.PR_STRING, /^\'(?:[^\'\\]|\\[\s\S])*(?:\'|$)/, null, "'"] | |
| ], [ | |
| [PR.PR_COMMENT, /^#.*/], | |
| [PR.PR_KEYWORD, /^(?:if|else|for|while|repeat|in|next|break|return|switch|function)(?![A-Za-z0-9_.])/], | |
| [PR.PR_LITERAL, /^0[xX][a-fA-F0-9]+([pP][0-9]+)?[Li]?/], | |
| [PR.PR_LITERAL, /^[+-]?([0-9]+(\.[0-9]+)?|\.[0-9]+)([eE][+-]?[0-9]+)?[Li]?/], | |
| [PR.PR_LITERAL, /^(?:NULL|NA(?:_(?:integer|real|complex|character)_)?|Inf|TRUE|FALSE|NaN|\.\.(?:\.|[0-9]+))(?![A-Za-z0-9_.])/], | |
| [PR.PR_PUNCTUATION, /^(?:<<?-|->>?|-|==|<=|>=|<|>|&&?|!=|\|\|?|\*|\+|\^|\/|!|%.*?%|=|~|\$|@|:{1,3}|[\[\](){};,?])/], | |
| [PR.PR_PLAIN, /^(?:[A-Za-z]+[A-Za-z0-9_.]*|\.[a-zA-Z_][0-9a-zA-Z\._]*)(?![A-Za-z0-9_.])/], | |
| [PR.PR_STRING, /^`.+`/] | |
| ]), ["r", "s", "R", "S", "Splus"]), // Copyright (C) 2012 Jeffrey Arnold | |
| PR.registerLangHandler(PR.createSimpleLexer([ | |
| [PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, " \n\r \xa0"], | |
| [PR.PR_COMMENT, /^%[^\r\n]*/, null, "%"] | |
| ], [ | |
| [PR.PR_LITERAL, /^\\(?:cr|l?dots|R|tab)\b/], | |
| [PR.PR_KEYWORD, /^\\[a-zA-Z@]+/], | |
| [PR.PR_KEYWORD, /^#(?:ifn?def|endif)/], | |
| [PR.PR_PLAIN, /^\\[{}]/], | |
| [PR.PR_PUNCTUATION, /^[{}()\[\]]+/] | |
| ]), ["Rd", "rd"]), // Copyright (C) 2010 Google Inc. | |
| PR.registerLangHandler(PR.createSimpleLexer([ | |
| [PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, " \n\r \xa0"], | |
| [PR.PR_STRING, /^(?:"(?:(?:""(?:""?(?!")|[^\\"]|\\.)*"{0,3})|(?:[^"\r\n\\]|\\.)*"?))/, null, '"'], | |
| [PR.PR_LITERAL, /^`(?:[^\r\n\\`]|\\.)*`?/, null, "`"], | |
| [PR.PR_PUNCTUATION, /^[!#%&()*+,\-:;<=>?@\[\\\]^{|}~]+/, null, "!#%&()*+,-:;<=>?@[\\]^{|}~"] | |
| ], [ | |
| [PR.PR_STRING, /^'(?:[^\r\n\\']|\\(?:'|[^\r\n']+))'/], | |
| [PR.PR_LITERAL, /^'[a-zA-Z_$][\w$]*(?!['$\w])/], | |
| [PR.PR_KEYWORD, /^(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|object|override|package|private|protected|requires|return|sealed|super|throw|trait|try|type|val|var|while|with|yield)\b/], | |
| [PR.PR_LITERAL, /^(?:true|false|null|this)\b/], | |
| [PR.PR_LITERAL, /^(?:(?:0(?:[0-7]+|X[0-9A-F]+))L?|(?:(?:0|[1-9][0-9]*)(?:(?:\.[0-9]+)?(?:E[+\-]?[0-9]+)?F?|L?))|\\.[0-9]+(?:E[+\-]?[0-9]+)?F?)/i], | |
| [PR.PR_TYPE, /^[$_]*[A-Z][_$A-Z0-9]*[a-z][\w$]*/], | |
| [PR.PR_PLAIN, /^[$a-zA-Z_][\w$]*/], | |
| [PR.PR_COMMENT, /^\/(?:\/.*|\*(?:\/|\**[^*/])*(?:\*+\/?)?)/], | |
| [PR.PR_PUNCTUATION, /^(?:\.+|\/)/] | |
| ]), ["scala"]), // Copyright (C) 2008 Google Inc. | |
| PR.registerLangHandler(PR.createSimpleLexer([ | |
| [PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, " \n\r \xa0"], | |
| [PR.PR_STRING, /^(?:"(?:[^\"\\]|\\.)*"|'(?:[^\'\\]|\\.)*')/, null, "\"'"] | |
| ], [ | |
| [PR.PR_COMMENT, /^(?:--[^\r\n]*|\/\*[\s\S]*?(?:\*\/|$))/], | |
| [PR.PR_KEYWORD, /^(?:ADD|ALL|ALTER|AND|ANY|APPLY|AS|ASC|AUTHORIZATION|BACKUP|BEGIN|BETWEEN|BREAK|BROWSE|BULK|BY|CASCADE|CASE|CHECK|CHECKPOINT|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMN|COMMIT|COMPUTE|CONNECT|CONSTRAINT|CONTAINS|CONTAINSTABLE|CONTINUE|CONVERT|CREATE|CROSS|CURRENT|CURRENT_DATE|CURRENT_TIME|CURRENT_TIMESTAMP|CURRENT_USER|CURSOR|DATABASE|DBCC|DEALLOCATE|DECLARE|DEFAULT|DELETE|DENY|DESC|DISK|DISTINCT|DISTRIBUTED|DOUBLE|DROP|DUMMY|DUMP|ELSE|END|ERRLVL|ESCAPE|EXCEPT|EXEC|EXECUTE|EXISTS|EXIT|FETCH|FILE|FILLFACTOR|FOLLOWING|FOR|FOREIGN|FREETEXT|FREETEXTTABLE|FROM|FULL|FUNCTION|GOTO|GRANT|GROUP|HAVING|HOLDLOCK|IDENTITY|IDENTITYCOL|IDENTITY_INSERT|IF|IN|INDEX|INNER|INSERT|INTERSECT|INTO|IS|JOIN|KEY|KILL|LEFT|LIKE|LINENO|LOAD|MATCH|MATCHED|MERGE|NATURAL|NATIONAL|NOCHECK|NONCLUSTERED|NOCYCLE|NOT|NULL|NULLIF|OF|OFF|OFFSETS|ON|OPEN|OPENDATASOURCE|OPENQUERY|OPENROWSET|OPENXML|OPTION|OR|ORDER|OUTER|OVER|PARTITION|PERCENT|PIVOT|PLAN|PRECEDING|PRECISION|PRIMARY|PRINT|PROC|PROCEDURE|PUBLIC|RAISERROR|READ|READTEXT|RECONFIGURE|REFERENCES|REPLICATION|RESTORE|RESTRICT|RETURN|REVOKE|RIGHT|ROLLBACK|ROWCOUNT|ROWGUIDCOL|ROWS?|RULE|SAVE|SCHEMA|SELECT|SESSION_USER|SET|SETUSER|SHUTDOWN|SOME|START|STATISTICS|SYSTEM_USER|TABLE|TEXTSIZE|THEN|TO|TOP|TRAN|TRANSACTION|TRIGGER|TRUNCATE|TSEQUAL|UNBOUNDED|UNION|UNIQUE|UNPIVOT|UPDATE|UPDATETEXT|USE|USER|USING|VALUES|VARYING|VIEW|WAITFOR|WHEN|WHERE|WHILE|WITH|WITHIN|WRITETEXT|XML)(?=[^\w-]|$)/i, null], | |
| [PR.PR_LITERAL, /^[+-]?(?:0x[\da-f]+|(?:(?:\.\d+|\d+(?:\.\d*)?)(?:e[+\-]?\d+)?))/i], | |
| [PR.PR_PLAIN, /^[a-z_][\w-]*/i], | |
| [PR.PR_PUNCTUATION, /^[^\w\t\n\r \xA0\"\'][^\w\t\n\r \xA0+\-\"\']*/] | |
| ]), ["sql"]), // Copyright (C) 2012 Pyrios. | |
| PR.registerLangHandler(PR.createSimpleLexer([ | |
| ["opn", /^\{+/, null, "{"], | |
| ["clo", /^\}+/, null, "}"], | |
| [PR.PR_COMMENT, /^#[^\r\n]*/, null, "#"], | |
| [PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, " \n\r \xa0"], | |
| [PR.PR_STRING, /^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/, null, '"'] | |
| ], [ | |
| [PR.PR_KEYWORD, /^(?:after|append|apply|array|break|case|catch|continue|error|eval|exec|exit|expr|for|foreach|if|incr|info|proc|return|set|switch|trace|uplevel|upvar|while)\b/, null], | |
| [PR.PR_LITERAL, /^[+\-]?(?:[0#]x[0-9a-f]+|\d+\/\d+|(?:\.\d+|\d+(?:\.\d*)?)(?:[ed][+\-]?\d+)?)/i], | |
| [PR.PR_LITERAL, /^\'(?:-*(?:\w|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?)?/], | |
| [PR.PR_PLAIN, /^-*(?:[a-z_]|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?/i], | |
| [PR.PR_PUNCTUATION, /^[^\w\t\n\r \xA0()\"\\\';]+/] | |
| ]), ["tcl"]), // Copyright (C) 2011 Martin S. | |
| PR.registerLangHandler(PR.createSimpleLexer([ | |
| [PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, " \n\r \xa0"], | |
| [PR.PR_COMMENT, /^%[^\r\n]*/, null, "%"] | |
| ], [ | |
| [PR.PR_KEYWORD, /^\\[a-zA-Z@]+/], | |
| [PR.PR_KEYWORD, /^\\./], | |
| [PR.PR_TYPE, /^[$&]/], | |
| [PR.PR_LITERAL, /[+-]?(?:\.\d+|\d+(?:\.\d*)?)(cm|em|ex|in|pc|pt|bp|mm)/i], | |
| [PR.PR_PUNCTUATION, /^[{}()\[\]=]+/] | |
| ]), ["latex", "tex"]), // Copyright (C) 2009 Google Inc. | |
| PR.registerLangHandler(PR.createSimpleLexer([ | |
| [PR.PR_PLAIN, /^[\t\n\r \xA0\u2028\u2029]+/, null, " \n\r \xa0\u2028\u2029"], | |
| [PR.PR_STRING, /^(?:[\"\u201C\u201D](?:[^\"\u201C\u201D]|[\"\u201C\u201D]{2})(?:[\"\u201C\u201D]c|$)|[\"\u201C\u201D](?:[^\"\u201C\u201D]|[\"\u201C\u201D]{2})*(?:[\"\u201C\u201D]|$))/i, null, '"\u201c\u201d'], | |
| [PR.PR_COMMENT, /^[\'\u2018\u2019](?:_(?:\r\n?|[^\r]?)|[^\r\n_\u2028\u2029])*/, null, "'\u2018\u2019"] | |
| ], [ | |
| [PR.PR_KEYWORD, /^(?:AddHandler|AddressOf|Alias|And|AndAlso|Ansi|As|Assembly|Auto|Boolean|ByRef|Byte|ByVal|Call|Case|Catch|CBool|CByte|CChar|CDate|CDbl|CDec|Char|CInt|Class|CLng|CObj|Const|CShort|CSng|CStr|CType|Date|Decimal|Declare|Default|Delegate|Dim|DirectCast|Do|Double|Each|Else|ElseIf|End|EndIf|Enum|Erase|Error|Event|Exit|Finally|For|Friend|Function|Get|GetType|GoSub|GoTo|Handles|If|Implements|Imports|In|Inherits|Integer|Interface|Is|Let|Lib|Like|Long|Loop|Me|Mod|Module|MustInherit|MustOverride|MyBase|MyClass|Namespace|New|Next|Not|NotInheritable|NotOverridable|Object|On|Option|Optional|Or|OrElse|Overloads|Overridable|Overrides|ParamArray|Preserve|Private|Property|Protected|Public|RaiseEvent|ReadOnly|ReDim|RemoveHandler|Resume|Return|Select|Set|Shadows|Shared|Short|Single|Static|Step|Stop|String|Structure|Sub|SyncLock|Then|Throw|To|Try|TypeOf|Unicode|Until|Variant|Wend|When|While|With|WithEvents|WriteOnly|Xor|EndIf|GoSub|Let|Variant|Wend)\b/i, null], | |
| [PR.PR_COMMENT, /^REM\b[^\r\n\u2028\u2029]*/i], | |
| [PR.PR_LITERAL, /^(?:True\b|False\b|Nothing\b|\d+(?:E[+\-]?\d+[FRD]?|[FRDSIL])?|(?:&H[0-9A-F]+|&O[0-7]+)[SIL]?|\d*\.\d+(?:E[+\-]?\d+)?[FRD]?|#\s+(?:\d+[\-\/]\d+[\-\/]\d+(?:\s+\d+:\d+(?::\d+)?(\s*(?:AM|PM))?)?|\d+:\d+(?::\d+)?(\s*(?:AM|PM))?)\s+#)/i], | |
| [PR.PR_PLAIN, /^(?:(?:[a-z]|_\w)\w*(?:\[[%&@!#]+\])?|\[(?:[a-z]|_\w)\w*\])/i], | |
| [PR.PR_PUNCTUATION, /^[^\w\t\n\r \"\'\[\]\xA0\u2018\u2019\u201C\u201D\u2028\u2029]+/], | |
| [PR.PR_PUNCTUATION, /^(?:\[|\])/] | |
| ]), ["vb", "vbs"]), PR.registerLangHandler(PR.createSimpleLexer([ | |
| [PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, " \n\r \xa0"] | |
| ], [ | |
| [PR.PR_STRING, /^(?:[BOX]?"(?:[^\"]|"")*"|'.')/i], | |
| [PR.PR_COMMENT, /^--[^\r\n]*/], | |
| [PR.PR_KEYWORD, /^(?:abs|access|after|alias|all|and|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|disconnect|downto|else|elsif|end|entity|exit|file|for|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|mod|nand|new|next|nor|not|null|of|on|open|or|others|out|package|port|postponed|procedure|process|pure|range|record|register|reject|rem|report|return|rol|ror|select|severity|shared|signal|sla|sll|sra|srl|subtype|then|to|transport|type|unaffected|units|until|use|variable|wait|when|while|with|xnor|xor)(?=[^\w-]|$)/i, null], | |
| [PR.PR_TYPE, /^(?:bit|bit_vector|character|boolean|integer|real|time|string|severity_level|positive|natural|signed|unsigned|line|text|std_u?logic(?:_vector)?)(?=[^\w-]|$)/i, null], | |
| [PR.PR_TYPE, /^\'(?:ACTIVE|ASCENDING|BASE|DELAYED|DRIVING|DRIVING_VALUE|EVENT|HIGH|IMAGE|INSTANCE_NAME|LAST_ACTIVE|LAST_EVENT|LAST_VALUE|LEFT|LEFTOF|LENGTH|LOW|PATH_NAME|POS|PRED|QUIET|RANGE|REVERSE_RANGE|RIGHT|RIGHTOF|SIMPLE_NAME|STABLE|SUCC|TRANSACTION|VAL|VALUE)(?=[^\w-]|$)/i, null], | |
| [PR.PR_LITERAL, /^\d+(?:_\d+)*(?:#[\w\\.]+#(?:[+\-]?\d+(?:_\d+)*)?|(?:\.\d+(?:_\d+)*)?(?:E[+\-]?\d+(?:_\d+)*)?)/i], | |
| [PR.PR_PLAIN, /^(?:[a-z]\w*|\\[^\\]*\\)/i], | |
| [PR.PR_PUNCTUATION, /^[^\w\t\n\r \xA0\"\'][^\w\t\n\r \xA0\-\"\']*/] | |
| ]), ["vhdl", "vhd"]), // Copyright (C) 2009 Google Inc. | |
| PR.registerLangHandler(PR.createSimpleLexer([ | |
| [PR.PR_PLAIN, /^[\t \xA0a-gi-z0-9]+/, null, " \xa0abcdefgijklmnopqrstuvwxyz0123456789"], | |
| [PR.PR_PUNCTUATION, /^[=*~\^\[\]]+/, null, "=*~^[]"] | |
| ], [ | |
| ["lang-wiki.meta", /(?:^^|\r\n?|\n)(#[a-z]+)\b/], | |
| [PR.PR_LITERAL, /^(?:[A-Z][a-z][a-z0-9]+[A-Z][a-z][a-zA-Z0-9]+)\b/], | |
| ["lang-", /^\{\{\{([\s\S]+?)\}\}\}/], | |
| ["lang-", /^`([^\r\n`]+)`/], | |
| [PR.PR_STRING, /^https?:\/\/[^\/?#\s]*(?:\/[^?#\s]*)?(?:\?[^#\s]*)?(?:#\S*)?/i], | |
| [PR.PR_PLAIN, /^(?:\r\n|[\s\S])[^#=*~^A-Zh\{`\[\r\n]*/] | |
| ]), ["wiki"]), PR.registerLangHandler(PR.createSimpleLexer([ | |
| [PR.PR_KEYWORD, /^#[a-z]+/i, null, "#"] | |
| ], []), ["wiki.meta"]); // Copyright (C) 2011 Patrick Wied | |
| var PR_FUNCTION = "fun pln", | |
| PR_VARIABLE = "var pln"; | |
| PR.registerLangHandler(PR.createSimpleLexer([ | |
| [PR_VARIABLE, /^\$[A-Za-z0-9_\-]+/, null, "$"] | |
| ], [ | |
| [PR.PR_PLAIN, /^[\s=][<>][\s=]/], | |
| [PR.PR_LITERAL, /^\@[\w-]+/], | |
| [PR.PR_TAG, /^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i], | |
| [PR.PR_COMMENT, /^\(:[\s\S]*?:\)/], | |
| [PR.PR_PLAIN, /^[\/\{\};,\[\]\(\)]$/], | |
| [PR.PR_STRING, /^(?:\"(?:[^\"\\\{]|\\[\s\S])*(?:\"|$)|\'(?:[^\'\\\{]|\\[\s\S])*(?:\'|$))/, null, "\"'"], | |
| [PR.PR_KEYWORD, /^(?:xquery|where|version|variable|union|typeswitch|treat|to|then|text|stable|sortby|some|self|schema|satisfies|returns|return|ref|processing-instruction|preceding-sibling|preceding|precedes|parent|only|of|node|namespace|module|let|item|intersect|instance|in|import|if|function|for|follows|following-sibling|following|external|except|every|else|element|descending|descendant-or-self|descendant|define|default|declare|comment|child|cast|case|before|attribute|assert|ascending|as|ancestor-or-self|ancestor|after|eq|order|by|or|and|schema-element|document-node|node|at)\b/], | |
| [PR.PR_TYPE, /^(?:xs:yearMonthDuration|xs:unsignedLong|xs:time|xs:string|xs:short|xs:QName|xs:Name|xs:long|xs:integer|xs:int|xs:gYearMonth|xs:gYear|xs:gMonthDay|xs:gDay|xs:float|xs:duration|xs:double|xs:decimal|xs:dayTimeDuration|xs:dateTime|xs:date|xs:byte|xs:boolean|xs:anyURI|xf:yearMonthDuration)\b/, null], | |
| [PR_FUNCTION, /^(?:xp:dereference|xinc:node-expand|xinc:link-references|xinc:link-expand|xhtml:restructure|xhtml:clean|xhtml:add-lists|xdmp:zip-manifest|xdmp:zip-get|xdmp:zip-create|xdmp:xquery-version|xdmp:word-convert|xdmp:with-namespaces|xdmp:version|xdmp:value|xdmp:user-roles|xdmp:user-last-login|xdmp:user|xdmp:url-encode|xdmp:url-decode|xdmp:uri-is-file|xdmp:uri-format|xdmp:uri-content-type|xdmp:unquote|xdmp:unpath|xdmp:triggers-database|xdmp:trace|xdmp:to-json|xdmp:tidy|xdmp:subbinary|xdmp:strftime|xdmp:spawn-in|xdmp:spawn|xdmp:sleep|xdmp:shutdown|xdmp:set-session-field|xdmp:set-response-encoding|xdmp:set-response-content-type|xdmp:set-response-code|xdmp:set-request-time-limit|xdmp:set|xdmp:servers|xdmp:server-status|xdmp:server-name|xdmp:server|xdmp:security-database|xdmp:security-assert|xdmp:schema-database|xdmp:save|xdmp:role-roles|xdmp:role|xdmp:rethrow|xdmp:restart|xdmp:request-timestamp|xdmp:request-status|xdmp:request-cancel|xdmp:request|xdmp:redirect-response|xdmp:random|xdmp:quote|xdmp:query-trace|xdmp:query-meters|xdmp:product-edition|xdmp:privilege-roles|xdmp:privilege|xdmp:pretty-print|xdmp:powerpoint-convert|xdmp:platform|xdmp:permission|xdmp:pdf-convert|xdmp:path|xdmp:octal-to-integer|xdmp:node-uri|xdmp:node-replace|xdmp:node-kind|xdmp:node-insert-child|xdmp:node-insert-before|xdmp:node-insert-after|xdmp:node-delete|xdmp:node-database|xdmp:mul64|xdmp:modules-root|xdmp:modules-database|xdmp:merging|xdmp:merge-cancel|xdmp:merge|xdmp:md5|xdmp:logout|xdmp:login|xdmp:log-level|xdmp:log|xdmp:lock-release|xdmp:lock-acquire|xdmp:load|xdmp:invoke-in|xdmp:invoke|xdmp:integer-to-octal|xdmp:integer-to-hex|xdmp:http-put|xdmp:http-post|xdmp:http-options|xdmp:http-head|xdmp:http-get|xdmp:http-delete|xdmp:hosts|xdmp:host-status|xdmp:host-name|xdmp:host|xdmp:hex-to-integer|xdmp:hash64|xdmp:hash32|xdmp:has-privilege|xdmp:groups|xdmp:group-serves|xdmp:group-servers|xdmp:group-name|xdmp:group-hosts|xdmp:group|xdmp:get-session-field-names|xdmp:get-session-field|xdmp:get-response-encoding|xdmp:get-response-code|xdmp:get-request-username|xdmp:get-request-user|xdmp:get-request-url|xdmp:get-request-protocol|xdmp:get-request-path|xdmp:get-request-method|xdmp:get-request-header-names|xdmp:get-request-header|xdmp:get-request-field-names|xdmp:get-request-field-filename|xdmp:get-request-field-content-type|xdmp:get-request-field|xdmp:get-request-client-certificate|xdmp:get-request-client-address|xdmp:get-request-body|xdmp:get-current-user|xdmp:get-current-roles|xdmp:get|xdmp:function-name|xdmp:function-module|xdmp:function|xdmp:from-json|xdmp:forests|xdmp:forest-status|xdmp:forest-restore|xdmp:forest-restart|xdmp:forest-name|xdmp:forest-delete|xdmp:forest-databases|xdmp:forest-counts|xdmp:forest-clear|xdmp:forest-backup|xdmp:forest|xdmp:filesystem-file|xdmp:filesystem-directory|xdmp:exists|xdmp:excel-convert|xdmp:eval-in|xdmp:eval|xdmp:estimate|xdmp:email|xdmp:element-content-type|xdmp:elapsed-time|xdmp:document-set-quality|xdmp:document-set-property|xdmp:document-set-properties|xdmp:document-set-permissions|xdmp:document-set-collections|xdmp:document-remove-properties|xdmp:document-remove-permissions|xdmp:document-remove-collections|xdmp:document-properties|xdmp:document-locks|xdmp:document-load|xdmp:document-insert|xdmp:document-get-quality|xdmp:document-get-properties|xdmp:document-get-permissions|xdmp:document-get-collections|xdmp:document-get|xdmp:document-forest|xdmp:document-delete|xdmp:document-add-properties|xdmp:document-add-permissions|xdmp:document-add-collections|xdmp:directory-properties|xdmp:directory-locks|xdmp:directory-delete|xdmp:directory-create|xdmp:directory|xdmp:diacritic-less|xdmp:describe|xdmp:default-permissions|xdmp:default-collections|xdmp:databases|xdmp:database-restore-validate|xdmp:database-restore-status|xdmp:database-restore-cancel|xdmp:database-restore|xdmp:database-name|xdmp:database-forests|xdmp:database-backup-validate|xdmp:database-backup-status|xdmp:database-backup-purge|xdmp:database-backup-cancel|xdmp:database-backup|xdmp:database|xdmp:collection-properties|xdmp:collection-locks|xdmp:collection-delete|xdmp:collation-canonical-uri|xdmp:castable-as|xdmp:can-grant-roles|xdmp:base64-encode|xdmp:base64-decode|xdmp:architecture|xdmp:apply|xdmp:amp-roles|xdmp:amp|xdmp:add64|xdmp:add-response-header|xdmp:access|trgr:trigger-set-recursive|trgr:trigger-set-permissions|trgr:trigger-set-name|trgr:trigger-set-module|trgr:trigger-set-event|trgr:trigger-set-description|trgr:trigger-remove-permissions|trgr:trigger-module|trgr:trigger-get-permissions|trgr:trigger-enable|trgr:trigger-disable|trgr:trigger-database-online-event|trgr:trigger-data-event|trgr:trigger-add-permissions|trgr:remove-trigger|trgr:property-content|trgr:pre-commit|trgr:post-commit|trgr:get-trigger-by-id|trgr:get-trigger|trgr:document-scope|trgr:document-content|trgr:directory-scope|trgr:create-trigger|trgr:collection-scope|trgr:any-property-content|thsr:set-entry|thsr:remove-term|thsr:remove-synonym|thsr:remove-entry|thsr:query-lookup|thsr:lookup|thsr:load|thsr:insert|thsr:expand|thsr:add-synonym|spell:suggest-detailed|spell:suggest|spell:remove-word|spell:make-dictionary|spell:load|spell:levenshtein-distance|spell:is-correct|spell:insert|spell:double-metaphone|spell:add-word|sec:users-collection|sec:user-set-roles|sec:user-set-password|sec:user-set-name|sec:user-set-description|sec:user-set-default-permissions|sec:user-set-default-collections|sec:user-remove-roles|sec:user-privileges|sec:user-get-roles|sec:user-get-description|sec:user-get-default-permissions|sec:user-get-default-collections|sec:user-doc-permissions|sec:user-doc-collections|sec:user-add-roles|sec:unprotect-collection|sec:uid-for-name|sec:set-realm|sec:security-version|sec:security-namespace|sec:security-installed|sec:security-collection|sec:roles-collection|sec:role-set-roles|sec:role-set-name|sec:role-set-description|sec:role-set-default-permissions|sec:role-set-default-collections|sec:role-remove-roles|sec:role-privileges|sec:role-get-roles|sec:role-get-description|sec:role-get-default-permissions|sec:role-get-default-collections|sec:role-doc-permissions|sec:role-doc-collections|sec:role-add-roles|sec:remove-user|sec:remove-role-from-users|sec:remove-role-from-role|sec:remove-role-from-privileges|sec:remove-role-from-amps|sec:remove-role|sec:remove-privilege|sec:remove-amp|sec:protect-collection|sec:privileges-collection|sec:privilege-set-roles|sec:privilege-set-name|sec:privilege-remove-roles|sec:privilege-get-roles|sec:privilege-add-roles|sec:priv-doc-permissions|sec:priv-doc-collections|sec:get-user-names|sec:get-unique-elem-id|sec:get-role-names|sec:get-role-ids|sec:get-privilege|sec:get-distinct-permissions|sec:get-collection|sec:get-amp|sec:create-user-with-role|sec:create-user|sec:create-role|sec:create-privilege|sec:create-amp|sec:collections-collection|sec:collection-set-permissions|sec:collection-remove-permissions|sec:collection-get-permissions|sec:collection-add-permissions|sec:check-admin|sec:amps-collection|sec:amp-set-roles|sec:amp-remove-roles|sec:amp-get-roles|sec:amp-doc-permissions|sec:amp-doc-collections|sec:amp-add-roles|search:unparse|search:suggest|search:snippet|search:search|search:resolve-nodes|search:resolve|search:remove-constraint|search:parse|search:get-default-options|search:estimate|search:check-options|prof:value|prof:reset|prof:report|prof:invoke|prof:eval|prof:enable|prof:disable|prof:allowed|ppt:clean|pki:template-set-request|pki:template-set-name|pki:template-set-key-type|pki:template-set-key-options|pki:template-set-description|pki:template-in-use|pki:template-get-version|pki:template-get-request|pki:template-get-name|pki:template-get-key-type|pki:template-get-key-options|pki:template-get-id|pki:template-get-description|pki:need-certificate|pki:is-temporary|pki:insert-trusted-certificates|pki:insert-template|pki:insert-signed-certificates|pki:insert-certificate-revocation-list|pki:get-trusted-certificate-ids|pki:get-template-ids|pki:get-template-certificate-authority|pki:get-template-by-name|pki:get-template|pki:get-pending-certificate-requests-xml|pki:get-pending-certificate-requests-pem|pki:get-pending-certificate-request|pki:get-certificates-for-template-xml|pki:get-certificates-for-template|pki:get-certificates|pki:get-certificate-xml|pki:get-certificate-pem|pki:get-certificate|pki:generate-temporary-certificate-if-necessary|pki:generate-temporary-certificate|pki:generate-template-certificate-authority|pki:generate-certificate-request|pki:delete-template|pki:delete-certificate|pki:create-template|pdf:make-toc|pdf:insert-toc-headers|pdf:get-toc|pdf:clean|p:status-transition|p:state-transition|p:remove|p:pipelines|p:insert|p:get-by-id|p:get|p:execute|p:create|p:condition|p:collection|p:action|ooxml:runs-merge|ooxml:package-uris|ooxml:package-parts-insert|ooxml:package-parts|msword:clean|mcgm:polygon|mcgm:point|mcgm:geospatial-query-from-elements|mcgm:geospatial-query|mcgm:circle|math:tanh|math:tan|math:sqrt|math:sinh|math:sin|math:pow|math:modf|math:log10|math:log|math:ldexp|math:frexp|math:fmod|math:floor|math:fabs|math:exp|math:cosh|math:cos|math:ceil|math:atan2|math:atan|math:asin|math:acos|map:put|map:map|map:keys|map:get|map:delete|map:count|map:clear|lnk:to|lnk:remove|lnk:insert|lnk:get|lnk:from|lnk:create|kml:polygon|kml:point|kml:interior-polygon|kml:geospatial-query-from-elements|kml:geospatial-query|kml:circle|kml:box|gml:polygon|gml:point|gml:interior-polygon|gml:geospatial-query-from-elements|gml:geospatial-query|gml:circle|gml:box|georss:point|georss:geospatial-query|georss:circle|geo:polygon|geo:point|geo:interior-polygon|geo:geospatial-query-from-elements|geo:geospatial-query|geo:circle|geo:box|fn:zero-or-one|fn:years-from-duration|fn:year-from-dateTime|fn:year-from-date|fn:upper-case|fn:unordered|fn:true|fn:translate|fn:trace|fn:tokenize|fn:timezone-from-time|fn:timezone-from-dateTime|fn:timezone-from-date|fn:sum|fn:subtract-dateTimes-yielding-yearMonthDuration|fn:subtract-dateTimes-yielding-dayTimeDuration|fn:substring-before|fn:substring-after|fn:substring|fn:subsequence|fn:string-to-codepoints|fn:string-pad|fn:string-length|fn:string-join|fn:string|fn:static-base-uri|fn:starts-with|fn:seconds-from-time|fn:seconds-from-duration|fn:seconds-from-dateTime|fn:round-half-to-even|fn:round|fn:root|fn:reverse|fn:resolve-uri|fn:resolve-QName|fn:replace|fn:remove|fn:QName|fn:prefix-from-QName|fn:position|fn:one-or-more|fn:number|fn:not|fn:normalize-unicode|fn:normalize-space|fn:node-name|fn:node-kind|fn:nilled|fn:namespace-uri-from-QName|fn:namespace-uri-for-prefix|fn:namespace-uri|fn:name|fn:months-from-duration|fn:month-from-dateTime|fn:month-from-date|fn:minutes-from-time|fn:minutes-from-duration|fn:minutes-from-dateTime|fn:min|fn:max|fn:matches|fn:lower-case|fn:local-name-from-QName|fn:local-name|fn:last|fn:lang|fn:iri-to-uri|fn:insert-before|fn:index-of|fn:in-scope-prefixes|fn:implicit-timezone|fn:idref|fn:id|fn:hours-from-time|fn:hours-from-duration|fn:hours-from-dateTime|fn:floor|fn:false|fn:expanded-QName|fn:exists|fn:exactly-one|fn:escape-uri|fn:escape-html-uri|fn:error|fn:ends-with|fn:encode-for-uri|fn:empty|fn:document-uri|fn:doc-available|fn:doc|fn:distinct-values|fn:distinct-nodes|fn:default-collation|fn:deep-equal|fn:days-from-duration|fn:day-from-dateTime|fn:day-from-date|fn:data|fn:current-time|fn:current-dateTime|fn:current-date|fn:count|fn:contains|fn:concat|fn:compare|fn:collection|fn:codepoints-to-string|fn:codepoint-equal|fn:ceiling|fn:boolean|fn:base-uri|fn:avg|fn:adjust-time-to-timezone|fn:adjust-dateTime-to-timezone|fn:adjust-date-to-timezone|fn:abs|feed:unsubscribe|feed:subscription|feed:subscribe|feed:request|feed:item|feed:description|excel:clean|entity:enrich|dom:set-pipelines|dom:set-permissions|dom:set-name|dom:set-evaluation-context|dom:set-domain-scope|dom:set-description|dom:remove-pipeline|dom:remove-permissions|dom:remove|dom:get|dom:evaluation-context|dom:domains|dom:domain-scope|dom:create|dom:configuration-set-restart-user|dom:configuration-set-permissions|dom:configuration-set-evaluation-context|dom:configuration-set-default-domain|dom:configuration-get|dom:configuration-create|dom:collection|dom:add-pipeline|dom:add-permissions|dls:retention-rules|dls:retention-rule-remove|dls:retention-rule-insert|dls:retention-rule|dls:purge|dls:node-expand|dls:link-references|dls:link-expand|dls:documents-query|dls:document-versions-query|dls:document-version-uri|dls:document-version-query|dls:document-version-delete|dls:document-version-as-of|dls:document-version|dls:document-update|dls:document-unmanage|dls:document-set-quality|dls:document-set-property|dls:document-set-properties|dls:document-set-permissions|dls:document-set-collections|dls:document-retention-rules|dls:document-remove-properties|dls:document-remove-permissions|dls:document-remove-collections|dls:document-purge|dls:document-manage|dls:document-is-managed|dls:document-insert-and-manage|dls:document-include-query|dls:document-history|dls:document-get-permissions|dls:document-extract-part|dls:document-delete|dls:document-checkout-status|dls:document-checkout|dls:document-checkin|dls:document-add-properties|dls:document-add-permissions|dls:document-add-collections|dls:break-checkout|dls:author-query|dls:as-of-query|dbk:convert|dbg:wait|dbg:value|dbg:stopped|dbg:stop|dbg:step|dbg:status|dbg:stack|dbg:out|dbg:next|dbg:line|dbg:invoke|dbg:function|dbg:finish|dbg:expr|dbg:eval|dbg:disconnect|dbg:detach|dbg:continue|dbg:connect|dbg:clear|dbg:breakpoints|dbg:break|dbg:attached|dbg:attach|cvt:save-converted-documents|cvt:part-uri|cvt:destination-uri|cvt:basepath|cvt:basename|cts:words|cts:word-query-weight|cts:word-query-text|cts:word-query-options|cts:word-query|cts:word-match|cts:walk|cts:uris|cts:uri-match|cts:train|cts:tokenize|cts:thresholds|cts:stem|cts:similar-query-weight|cts:similar-query-nodes|cts:similar-query|cts:shortest-distance|cts:search|cts:score|cts:reverse-query-weight|cts:reverse-query-nodes|cts:reverse-query|cts:remainder|cts:registered-query-weight|cts:registered-query-options|cts:registered-query-ids|cts:registered-query|cts:register|cts:query|cts:quality|cts:properties-query-query|cts:properties-query|cts:polygon-vertices|cts:polygon|cts:point-longitude|cts:point-latitude|cts:point|cts:or-query-queries|cts:or-query|cts:not-query-weight|cts:not-query-query|cts:not-query|cts:near-query-weight|cts:near-query-queries|cts:near-query-options|cts:near-query-distance|cts:near-query|cts:highlight|cts:geospatial-co-occurrences|cts:frequency|cts:fitness|cts:field-words|cts:field-word-query-weight|cts:field-word-query-text|cts:field-word-query-options|cts:field-word-query-field-name|cts:field-word-query|cts:field-word-match|cts:entity-highlight|cts:element-words|cts:element-word-query-weight|cts:element-word-query-text|cts:element-word-query-options|cts:element-word-query-element-name|cts:element-word-query|cts:element-word-match|cts:element-values|cts:element-value-ranges|cts:element-value-query-weight|cts:element-value-query-text|cts:element-value-query-options|cts:element-value-query-element-name|cts:element-value-query|cts:element-value-match|cts:element-value-geospatial-co-occurrences|cts:element-value-co-occurrences|cts:element-range-query-weight|cts:element-range-query-value|cts:element-range-query-options|cts:element-range-query-operator|cts:element-range-query-element-name|cts:element-range-query|cts:element-query-query|cts:element-query-element-name|cts:element-query|cts:element-pair-geospatial-values|cts:element-pair-geospatial-value-match|cts:element-pair-geospatial-query-weight|cts:element-pair-geospatial-query-region|cts:element-pair-geospatial-query-options|cts:element-pair-geospatial-query-longitude-name|cts:element-pair-geospatial-query-latitude-name|cts:element-pair-geospatial-query-element-name|cts:element-pair-geospatial-query|cts:element-pair-geospatial-boxes|cts:element-geospatial-values|cts:element-geospatial-value-match|cts:element-geospatial-query-weight|cts:element-geospatial-query-region|cts:element-geospatial-query-options|cts:element-geospatial-query-element-name|cts:element-geospatial-query|cts:element-geospatial-boxes|cts:element-child-geospatial-values|cts:element-child-geospatial-value-match|cts:element-child-geospatial-query-weight|cts:element-child-geospatial-query-region|cts:element-child-geospatial-query-options|cts:element-child-geospatial-query-element-name|cts:element-child-geospatial-query-child-name|cts:element-child-geospatial-query|cts:element-child-geospatial-boxes|cts:element-attribute-words|cts:element-attribute-word-query-weight|cts:element-attribute-word-query-text|cts:element-attribute-word-query-options|cts:element-attribute-word-query-element-name|cts:element-attribute-word-query-attribute-name|cts:element-attribute-word-query|cts:element-attribute-word-match|cts:element-attribute-values|cts:element-attribute-value-ranges|cts:element-attribute-value-query-weight|cts:element-attribute-value-query-text|cts:element-attribute-value-query-options|cts:element-attribute-value-query-element-name|cts:element-attribute-value-query-attribute-name|cts:element-attribute-value-query|cts:element-attribute-value-match|cts:element-attribute-value-geospatial-co-occurrences|cts:element-attribute-value-co-occurrences|cts:element-attribute-range-query-weight|cts:element-attribute-range-query-value|cts:element-attribute-range-query-options|cts:element-attribute-range-query-operator|cts:element-attribute-range-query-element-name|cts:element-attribute-range-query-attribute-name|cts:element-attribute-range-query|cts:element-attribute-pair-geospatial-values|cts:element-attribute-pair-geospatial-value-match|cts:element-attribute-pair-geospatial-query-weight|cts:element-attribute-pair-geospatial-query-region|cts:element-attribute-pair-geospatial-query-options|cts:element-attribute-pair-geospatial-query-longitude-name|cts:element-attribute-pair-geospatial-query-latitude-name|cts:element-attribute-pair-geospatial-query-element-name|cts:element-attribute-pair-geospatial-query|cts:element-attribute-pair-geospatial-boxes|cts:document-query-uris|cts:document-query|cts:distance|cts:directory-query-uris|cts:directory-query-depth|cts:directory-query|cts:destination|cts:deregister|cts:contains|cts:confidence|cts:collections|cts:collection-query-uris|cts:collection-query|cts:collection-match|cts:classify|cts:circle-radius|cts:circle-center|cts:circle|cts:box-west|cts:box-south|cts:box-north|cts:box-east|cts:box|cts:bearing|cts:arc-intersection|cts:and-query-queries|cts:and-query-options|cts:and-query|cts:and-not-query-positive-query|cts:and-not-query-negative-query|cts:and-not-query|css:get|css:convert|cpf:success|cpf:failure|cpf:document-set-state|cpf:document-set-processing-status|cpf:document-set-last-updated|cpf:document-set-error|cpf:document-get-state|cpf:document-get-processing-status|cpf:document-get-last-updated|cpf:document-get-error|cpf:check-transition|alert:spawn-matching-actions|alert:rule-user-id-query|alert:rule-set-user-id|alert:rule-set-query|alert:rule-set-options|alert:rule-set-name|alert:rule-set-description|alert:rule-set-action|alert:rule-remove|alert:rule-name-query|alert:rule-insert|alert:rule-id-query|alert:rule-get-user-id|alert:rule-get-query|alert:rule-get-options|alert:rule-get-name|alert:rule-get-id|alert:rule-get-description|alert:rule-get-action|alert:rule-action-query|alert:remove-triggers|alert:make-rule|alert:make-log-action|alert:make-config|alert:make-action|alert:invoke-matching-actions|alert:get-my-rules|alert:get-all-rules|alert:get-actions|alert:find-matching-rules|alert:create-triggers|alert:config-set-uri|alert:config-set-trigger-ids|alert:config-set-options|alert:config-set-name|alert:config-set-description|alert:config-set-cpf-domain-names|alert:config-set-cpf-domain-ids|alert:config-insert|alert:config-get-uri|alert:config-get-trigger-ids|alert:config-get-options|alert:config-get-name|alert:config-get-id|alert:config-get-description|alert:config-get-cpf-domain-names|alert:config-get-cpf-domain-ids|alert:config-get|alert:config-delete|alert:action-set-options|alert:action-set-name|alert:action-set-module-root|alert:action-set-module-db|alert:action-set-module|alert:action-set-description|alert:action-remove|alert:action-insert|alert:action-get-options|alert:action-get-name|alert:action-get-module-root|alert:action-get-module-db|alert:action-get-module|alert:action-get-description|zero-or-one|years-from-duration|year-from-dateTime|year-from-date|upper-case|unordered|true|translate|trace|tokenize|timezone-from-time|timezone-from-dateTime|timezone-from-date|sum|subtract-dateTimes-yielding-yearMonthDuration|subtract-dateTimes-yielding-dayTimeDuration|substring-before|substring-after|substring|subsequence|string-to-codepoints|string-pad|string-length|string-join|string|static-base-uri|starts-with|seconds-from-time|seconds-from-duration|seconds-from-dateTime|round-half-to-even|round|root|reverse|resolve-uri|resolve-QName|replace|remove|QName|prefix-from-QName|position|one-or-more|number|not|normalize-unicode|normalize-space|node-name|node-kind|nilled|namespace-uri-from-QName|namespace-uri-for-prefix|namespace-uri|name|months-from-duration|month-from-dateTime|month-from-date|minutes-from-time|minutes-from-duration|minutes-from-dateTime|min|max|matches|lower-case|local-name-from-QName|local-name|last|lang|iri-to-uri|insert-before|index-of|in-scope-prefixes|implicit-timezone|idref|id|hours-from-time|hours-from-duration|hours-from-dateTime|floor|false|expanded-QName|exists|exactly-one|escape-uri|escape-html-uri|error|ends-with|encode-for-uri|empty|document-uri|doc-available|doc|distinct-values|distinct-nodes|default-collation|deep-equal|days-from-duration|day-from-dateTime|day-from-date|data|current-time|current-dateTime|current-date|count|contains|concat|compare|collection|codepoints-to-string|codepoint-equal|ceiling|boolean|base-uri|avg|adjust-time-to-timezone|adjust-dateTime-to-timezone|adjust-date-to-timezone|abs)\b/], | |
| [PR.PR_PLAIN, /^[A-Za-z0-9_\-\:]+/], | |
| [PR.PR_PLAIN, /^[\t\n\r \xA0]+/] | |
| ]), ["xq", "xquery"]), PR.registerLangHandler(PR.createSimpleLexer([ | |
| [PR.PR_PUNCTUATION, /^[:|>?]+/, null, ":|>?"], | |
| [PR.PR_DECLARATION, /^%(?:YAML|TAG)[^#\r\n]+/, null, "%"], | |
| [PR.PR_TYPE, /^[&]\S+/, null, "&"], | |
| [PR.PR_TYPE, /^!\S*/, null, "!"], | |
| [PR.PR_STRING, /^"(?:[^\\"]|\\.)*(?:"|$)/, null, '"'], | |
| [PR.PR_STRING, /^'(?:[^']|'')*(?:'|$)/, null, "'"], | |
| [PR.PR_COMMENT, /^#[^\r\n]*/, null, "#"], | |
| [PR.PR_PLAIN, /^\s+/, null, " \r\n"] | |
| ], [ | |
| [PR.PR_DECLARATION, /^(?:---|\.\.\.)(?:[\r\n]|$)/], | |
| [PR.PR_PUNCTUATION, /^-/], | |
| [PR.PR_KEYWORD, /^\w+:[ \r\n]/], | |
| [PR.PR_PLAIN, /^\w+/] | |
| ]), ["yaml", "yml"]), | |
| /*! | |
| * jQuery UI Widget 1.10.4+amd | |
| * https://github.com/blueimp/jQuery-File-Upload | |
| * | |
| * Copyright 2014 jQuery Foundation and other contributors | |
| * Released under the MIT license. | |
| * http://jquery.org/license | |
| * | |
| * http://api.jqueryui.com/jQuery.widget/ | |
| */ | |
| function (t) { | |
| "function" == typeof define && define.amd ? define(["jquery"], t) : t(jQuery) | |
| }(function (t, e) { | |
| var n = 0, | |
| r = Array.prototype.slice, | |
| o = t.cleanData; | |
| t.cleanData = function (e) { | |
| for (var n, r = 0; null != (n = e[r]); r++) try { | |
| t(n).triggerHandler("remove") | |
| } catch (i) {} | |
| o(e) | |
| }, t.widget = function (e, n, r) { | |
| var o, i, s, a, u = {}, | |
| l = e.split(".")[0]; | |
| e = e.split(".")[1], o = l + "-" + e, r || (r = n, n = t.Widget), t.expr[":"][o.toLowerCase()] = function (e) { | |
| return !!t.data(e, o) | |
| }, t[l] = t[l] || {}, i = t[l][e], s = t[l][e] = function (t, e) { | |
| return this._createWidget ? void(arguments.length && this._createWidget(t, e)) : new s(t, e) | |
| }, t.extend(s, i, { | |
| version: r.version, | |
| _proto: t.extend({}, r), | |
| _childConstructors: [] | |
| }), a = new n, a.options = t.widget.extend({}, a.options), t.each(r, function (e, r) { | |
| return t.isFunction(r) ? void(u[e] = function () { | |
| var t = function () { | |
| return n.prototype[e].apply(this, arguments) | |
| }, | |
| o = function (t) { | |
| return n.prototype[e].apply(this, t) | |
| }; | |
| return function () { | |
| var e, n = this._super, | |
| i = this._superApply; | |
| return this._super = t, this._superApply = o, e = r.apply(this, arguments), this._super = n, this._superApply = i, e | |
| } | |
| }()) : void(u[e] = r) | |
| }), s.prototype = t.widget.extend(a, { | |
| widgetEventPrefix: i ? a.widgetEventPrefix || e : e | |
| }, u, { | |
| constructor: s, | |
| namespace: l, | |
| widgetName: e, | |
| widgetFullName: o | |
| }), i ? (t.each(i._childConstructors, function (e, n) { | |
| var r = n.prototype; | |
| t.widget(r.namespace + "." + r.widgetName, s, n._proto) | |
| }), delete i._childConstructors) : n._childConstructors.push(s), t.widget.bridge(e, s) | |
| }, t.widget.extend = function (n) { | |
| for (var o, i, s = r.call(arguments, 1), a = 0, u = s.length; u > a; a++) | |
| for (o in s[a]) i = s[a][o], s[a].hasOwnProperty(o) && i !== e && (n[o] = t.isPlainObject(i) ? t.isPlainObject(n[o]) ? t.widget.extend({}, n[o], i) : t.widget.extend({}, i) : i); | |
| return n | |
| }, t.widget.bridge = function (n, o) { | |
| var i = o.prototype.widgetFullName || n; | |
| t.fn[n] = function (s) { | |
| var a = "string" == typeof s, | |
| u = r.call(arguments, 1), | |
| l = this; | |
| return s = !a && u.length ? t.widget.extend.apply(null, [s].concat(u)) : s, this.each(a ? function () { | |
| var r, o = t.data(this, i); | |
| return o ? t.isFunction(o[s]) && "_" !== s.charAt(0) ? (r = o[s].apply(o, u), r !== o && r !== e ? (l = r && r.jquery ? l.pushStack(r.get()) : r, !1) : void 0) : t.error("no such method '" + s + "' for " + n + " widget instance") : t.error("cannot call methods on " + n + " prior to initialization; attempted to call method '" + s + "'") | |
| } : function () { | |
| var e = t.data(this, i); | |
| e ? e.option(s || {})._init() : t.data(this, i, new o(s, this)) | |
| }), l | |
| } | |
| }, t.Widget = function () {}, t.Widget._childConstructors = [], t.Widget.prototype = { | |
| widgetName: "widget", | |
| widgetEventPrefix: "", | |
| defaultElement: "<div>", | |
| options: { | |
| disabled: !1, | |
| create: null | |
| }, | |
| _createWidget: function (e, r) { | |
| r = t(r || this.defaultElement || this)[0], this.element = t(r), this.uuid = n++, this.eventNamespace = "." + this.widgetName + this.uuid, this.options = t.widget.extend({}, this.options, this._getCreateOptions(), e), this.bindings = t(), this.hoverable = t(), this.focusable = t(), r !== this && (t.data(r, this.widgetFullName, this), this._on(!0, this.element, { | |
| remove: function (t) { | |
| t.target === r && this.destroy() | |
| } | |
| }), this.document = t(r.style ? r.ownerDocument : r.document || r), this.window = t(this.document[0].defaultView || this.document[0].parentWindow)), this._create(), this._trigger("create", null, this._getCreateEventData()), this._init() | |
| }, | |
| _getCreateOptions: t.noop, | |
| _getCreateEventData: t.noop, | |
| _create: t.noop, | |
| _init: t.noop, | |
| destroy: function () { | |
| this._destroy(), this.element.unbind(this.eventNamespace).removeData(this.widgetName).removeData(this.widgetFullName).removeData(t.camelCase(this.widgetFullName)), this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName + "-disabled ui-state-disabled"), this.bindings.unbind(this.eventNamespace), this.hoverable.removeClass("ui-state-hover"), this.focusable.removeClass("ui-state-focus") | |
| }, | |
| _destroy: t.noop, | |
| widget: function () { | |
| return this.element | |
| }, | |
| option: function (n, r) { | |
| var o, i, s, a = n; | |
| if (0 === arguments.length) return t.widget.extend({}, this.options); | |
| if ("string" == typeof n) | |
| if (a = {}, o = n.split("."), n = o.shift(), o.length) { | |
| for (i = a[n] = t.widget.extend({}, this.options[n]), s = 0; s < o.length - 1; s++) i[o[s]] = i[o[s]] || {}, i = i[o[s]]; | |
| if (n = o.pop(), 1 === arguments.length) return i[n] === e ? null : i[n]; | |
| i[n] = r | |
| } else { | |
| if (1 === arguments.length) return this.options[n] === e ? null : this.options[n]; | |
| a[n] = r | |
| } | |
| return this._setOptions(a), this | |
| }, | |
| _setOptions: function (t) { | |
| var e; | |
| for (e in t) this._setOption(e, t[e]); | |
| return this | |
| }, | |
| _setOption: function (t, e) { | |
| return this.options[t] = e, "disabled" === t && (this.widget().toggleClass(this.widgetFullName + "-disabled ui-state-disabled", !!e).attr("aria-disabled", e), this.hoverable.removeClass("ui-state-hover"), this.focusable.removeClass("ui-state-focus")), this | |
| }, | |
| enable: function () { | |
| return this._setOption("disabled", !1) | |
| }, | |
| disable: function () { | |
| return this._setOption("disabled", !0) | |
| }, | |
| _on: function (e, n, r) { | |
| var o, i = this; | |
| "boolean" != typeof e && (r = n, n = e, e = !1), r ? (n = o = t(n), this.bindings = this.bindings.add(n)) : (r = n, n = this.element, o = this.widget()), t.each(r, function (r, s) { | |
| function a() { | |
| return e || i.options.disabled !== !0 && !t(this).hasClass("ui-state-disabled") ? ("string" == typeof s ? i[s] : s).apply(i, arguments) : void 0 | |
| } | |
| "string" != typeof s && (a.guid = s.guid = s.guid || a.guid || t.guid++); | |
| var u = r.match(/^(\w+)\s*(.*)$/), | |
| l = u[1] + i.eventNamespace, | |
| c = u[2]; | |
| c ? o.delegate(c, l, a) : n.bind(l, a) | |
| }) | |
| }, | |
| _off: function (t, e) { | |
| e = (e || "").split(" ").join(this.eventNamespace + " ") + this.eventNamespace, t.unbind(e).undelegate(e) | |
| }, | |
| _delay: function (t, e) { | |
| function n() { | |
| return ("string" == typeof t ? r[t] : t).apply(r, arguments) | |
| } | |
| var r = this; | |
| return setTimeout(n, e || 0) | |
| }, | |
| _hoverable: function (e) { | |
| this.hoverable = this.hoverable.add(e), this._on(e, { | |
| mouseenter: function (e) { | |
| t(e.currentTarget).addClass("ui-state-hover") | |
| }, | |
| mouseleave: function (e) { | |
| t(e.currentTarget).removeClass("ui-state-hover") | |
| } | |
| }) | |
| }, | |
| _focusable: function (e) { | |
| this.focusable = this.focusable.add(e), this._on(e, { | |
| focusin: function (e) { | |
| t(e.currentTarget).addClass("ui-state-focus") | |
| }, | |
| focusout: function (e) { | |
| t(e.currentTarget).removeClass("ui-state-focus") | |
| } | |
| }) | |
| }, | |
| _trigger: function (e, n, r) { | |
| var o, i, s = this.options[e]; | |
| if (r = r || {}, n = t.Event(n), n.type = (e === this.widgetEventPrefix ? e : this.widgetEventPrefix + e).toLowerCase(), n.target = this.element[0], i = n.originalEvent) | |
| for (o in i) o in n || (n[o] = i[o]); | |
| return this.element.trigger(n, r), !(t.isFunction(s) && s.apply(this.element[0], [n].concat(r)) === !1 || n.isDefaultPrevented()) | |
| } | |
| }, t.each({ | |
| show: "fadeIn", | |
| hide: "fadeOut" | |
| }, function (e, n) { | |
| t.Widget.prototype["_" + e] = function (r, o, i) { | |
| "string" == typeof o && (o = { | |
| effect: o | |
| }); | |
| var s, a = o ? o === !0 || "number" == typeof o ? n : o.effect || n : e; | |
| o = o || {}, "number" == typeof o && (o = { | |
| duration: o | |
| }), s = !t.isEmptyObject(o), o.complete = i, o.delay && r.delay(o.delay), s && t.effects && t.effects.effect[a] ? r[e](o) : a !== e && r[a] ? r[a](o.duration, o.easing, i) : r.queue(function (n) { | |
| t(this)[e](), i && i.call(r[0]), n() | |
| }) | |
| } | |
| }) | |
| }), | |
| /* | |
| * jQuery Iframe Transport Plugin 1.8.2 | |
| * https://github.com/blueimp/jQuery-File-Upload | |
| * | |
| * Copyright 2011, Sebastian Tschan | |
| * https://blueimp.net | |
| * | |
| * Licensed under the MIT license: | |
| * http://www.opensource.org/licenses/MIT | |
| */ | |
| function (t) { | |
| "use strict"; | |
| "function" == typeof define && define.amd ? define(["jquery"], t) : t(window.jQuery) | |
| }(function (t) { | |
| "use strict"; | |
| var e = 0; | |
| t.ajaxTransport("iframe", function (n) { | |
| if (n.async) { | |
| var r, o, i, s = n.initialIframeSrc || "javascript:false;"; | |
| return { | |
| send: function (a, u) { | |
| r = t('<form style="display:none;"></form>'), r.attr("accept-charset", n.formAcceptCharset), i = /\?/.test(n.url) ? "&" : "?", "DELETE" === n.type ? (n.url = n.url + i + "_method=DELETE", n.type = "POST") : "PUT" === n.type ? (n.url = n.url + i + "_method=PUT", n.type = "POST") : "PATCH" === n.type && (n.url = n.url + i + "_method=PATCH", n.type = "POST"), e += 1, o = t('<iframe src="' + s + '" name="iframe-transport-' + e + '"></iframe>').bind("load", function () { | |
| var e, i = t.isArray(n.paramName) ? n.paramName : [n.paramName]; | |
| o.unbind("load").bind("load", function () { | |
| var e; | |
| try { | |
| if (e = o.contents(), !e.length || !e[0].firstChild) throw new Error | |
| } catch (n) { | |
| e = void 0 | |
| } | |
| u(200, "success", { | |
| iframe: e | |
| }), t('<iframe src="' + s + '"></iframe>').appendTo(r), window.setTimeout(function () { | |
| r.remove() | |
| }, 0) | |
| }), r.prop("target", o.prop("name")).prop("action", n.url).prop("method", n.type), n.formData && t.each(n.formData, function (e, n) { | |
| t('<input type="hidden"/>').prop("name", n.name).val(n.value).appendTo(r) | |
| }), n.fileInput && n.fileInput.length && "POST" === n.type && (e = n.fileInput.clone(), n.fileInput.after(function (t) { | |
| return e[t] | |
| }), n.paramName && n.fileInput.each(function (e) { | |
| t(this).prop("name", i[e] || n.paramName) | |
| }), r.append(n.fileInput).prop("enctype", "multipart/form-data").prop("encoding", "multipart/form-data"), n.fileInput.removeAttr("form")), r.submit(), e && e.length && n.fileInput.each(function (n, r) { | |
| var o = t(e[n]); | |
| t(r).prop("name", o.prop("name")).attr("form", o.attr("form")), o.replaceWith(r) | |
| }) | |
| }), r.append(o).appendTo(document.body) | |
| }, | |
| abort: function () { | |
| o && o.unbind("load").prop("src", s), r && r.remove() | |
| } | |
| } | |
| } | |
| }), t.ajaxSetup({ | |
| converters: { | |
| "iframe text": function (e) { | |
| return e && t(e[0].body).text() | |
| }, | |
| "iframe json": function (e) { | |
| return e && t.parseJSON(t(e[0].body).text()) | |
| }, | |
| "iframe html": function (e) { | |
| return e && t(e[0].body).html() | |
| }, | |
| "iframe xml": function (e) { | |
| var n = e && e[0]; | |
| return n && t.isXMLDoc(n) ? n : t.parseXML(n.XMLDocument && n.XMLDocument.xml || t(n.body).html()) | |
| }, | |
| "iframe script": function (e) { | |
| return e && t.globalEval(t(e[0].body).text()) | |
| } | |
| } | |
| }) | |
| }), | |
| /* | |
| * jQuery File Upload Plugin 5.40.1 | |
| * https://github.com/blueimp/jQuery-File-Upload | |
| * | |
| * Copyright 2010, Sebastian Tschan | |
| * https://blueimp.net | |
| * | |
| * Licensed under the MIT license: | |
| * http://www.opensource.org/licenses/MIT | |
| */ | |
| function (t) { | |
| "use strict"; | |
| "function" == typeof define && define.amd ? define(["jquery", "jquery.ui.widget"], t) : t(window.jQuery) | |
| }(function (t) { | |
| "use strict"; | |
| t.support.fileInput = !(new RegExp("(Android (1\\.[0156]|2\\.[01]))|(Windows Phone (OS 7|8\\.0))|(XBLWP)|(ZuneWP)|(WPDesktop)|(w(eb)?OSBrowser)|(webOS)|(Kindle/(1\\.0|2\\.[05]|3\\.0))").test(window.navigator.userAgent) || t('<input type="file">').prop("disabled")), t.support.xhrFileUpload = !(!window.ProgressEvent || !window.FileReader), t.support.xhrFormDataFileUpload = !!window.FormData, t.support.blobSlice = window.Blob && (Blob.prototype.slice || Blob.prototype.webkitSlice || Blob.prototype.mozSlice), t.widget("blueimp.fileupload", { | |
| options: { | |
| dropZone: t(document), | |
| pasteZone: t(document), | |
| fileInput: void 0, | |
| replaceFileInput: !0, | |
| paramName: void 0, | |
| singleFileUploads: !0, | |
| limitMultiFileUploads: void 0, | |
| limitMultiFileUploadSize: void 0, | |
| limitMultiFileUploadSizeOverhead: 512, | |
| sequentialUploads: !1, | |
| limitConcurrentUploads: void 0, | |
| forceIframeTransport: !1, | |
| redirect: void 0, | |
| redirectParamName: void 0, | |
| postMessage: void 0, | |
| multipart: !0, | |
| maxChunkSize: void 0, | |
| uploadedBytes: void 0, | |
| recalculateProgress: !0, | |
| progressInterval: 100, | |
| bitrateInterval: 500, | |
| autoUpload: !0, | |
| messages: { | |
| uploadedBytes: "Uploaded bytes exceed file size" | |
| }, | |
| i18n: function (e, n) { | |
| return e = this.messages[e] || e.toString(), n && t.each(n, function (t, n) { | |
| e = e.replace("{" + t + "}", n) | |
| }), e | |
| }, | |
| formData: function (t) { | |
| return t.serializeArray() | |
| }, | |
| add: function (e, n) { | |
| return e.isDefaultPrevented() ? !1 : void((n.autoUpload || n.autoUpload !== !1 && t(this).fileupload("option", "autoUpload")) && n.process().done(function () { | |
| n.submit() | |
| })) | |
| }, | |
| processData: !1, | |
| contentType: !1, | |
| cache: !1 | |
| }, | |
| _specialOptions: ["fileInput", "dropZone", "pasteZone", "multipart", "forceIframeTransport"], | |
| _blobSlice: t.support.blobSlice && function () { | |
| var t = this.slice || this.webkitSlice || this.mozSlice; | |
| return t.apply(this, arguments) | |
| }, | |
| _BitrateTimer: function () { | |
| this.timestamp = Date.now ? Date.now() : (new Date).getTime(), this.loaded = 0, this.bitrate = 0, this.getBitrate = function (t, e, n) { | |
| var r = t - this.timestamp; | |
| return (!this.bitrate || !n || r > n) && (this.bitrate = (e - this.loaded) * (1e3 / r) * 8, this.loaded = e, this.timestamp = t), this.bitrate | |
| } | |
| }, | |
| _isXHRUpload: function (e) { | |
| return !e.forceIframeTransport && (!e.multipart && t.support.xhrFileUpload || t.support.xhrFormDataFileUpload) | |
| }, | |
| _getFormData: function (e) { | |
| var n; | |
| return "function" === t.type(e.formData) ? e.formData(e.form) : t.isArray(e.formData) ? e.formData : "object" === t.type(e.formData) ? (n = [], t.each(e.formData, function (t, e) { | |
| n.push({ | |
| name: t, | |
| value: e | |
| }) | |
| }), n) : [] | |
| }, | |
| _getTotal: function (e) { | |
| var n = 0; | |
| return t.each(e, function (t, e) { | |
| n += e.size || 1 | |
| }), n | |
| }, | |
| _initProgressObject: function (e) { | |
| var n = { | |
| loaded: 0, | |
| total: 0, | |
| bitrate: 0 | |
| }; | |
| e._progress ? t.extend(e._progress, n) : e._progress = n | |
| }, | |
| _initResponseObject: function (t) { | |
| var e; | |
| if (t._response) | |
| for (e in t._response) t._response.hasOwnProperty(e) && delete t._response[e]; | |
| else t._response = {} | |
| }, | |
| _onProgress: function (e, n) { | |
| if (e.lengthComputable) { | |
| var r, o = Date.now ? Date.now() : (new Date).getTime(); | |
| if (n._time && n.progressInterval && o - n._time < n.progressInterval && e.loaded !== e.total) return; | |
| n._time = o, r = Math.floor(e.loaded / e.total * (n.chunkSize || n._progress.total)) + (n.uploadedBytes || 0), this._progress.loaded += r - n._progress.loaded, this._progress.bitrate = this._bitrateTimer.getBitrate(o, this._progress.loaded, n.bitrateInterval), n._progress.loaded = n.loaded = r, n._progress.bitrate = n.bitrate = n._bitrateTimer.getBitrate(o, r, n.bitrateInterval), this._trigger("progress", t.Event("progress", { | |
| delegatedEvent: e | |
| }), n), this._trigger("progressall", t.Event("progressall", { | |
| delegatedEvent: e | |
| }), this._progress) | |
| } | |
| }, | |
| _initProgressListener: function (e) { | |
| var n = this, | |
| r = e.xhr ? e.xhr() : t.ajaxSettings.xhr(); | |
| r.upload && (t(r.upload).bind("progress", function (t) { | |
| var r = t.originalEvent; | |
| t.lengthComputable = r.lengthComputable, t.loaded = r.loaded, t.total = r.total, n._onProgress(t, e) | |
| }), e.xhr = function () { | |
| return r | |
| }) | |
| }, | |
| _isInstanceOf: function (t, e) { | |
| return Object.prototype.toString.call(e) === "[object " + t + "]" | |
| }, | |
| _initXHRData: function (e) { | |
| var n, r = this, | |
| o = e.files[0], | |
| i = e.multipart || !t.support.xhrFileUpload, | |
| s = "array" === t.type(e.paramName) ? e.paramName[0] : e.paramName; | |
| e.headers = t.extend({}, e.headers), e.contentRange && (e.headers["Content-Range"] = e.contentRange), i && !e.blob && this._isInstanceOf("File", o) || (e.headers["Content-Disposition"] = 'attachment; filename="' + encodeURI(o.name) + '"'), i ? t.support.xhrFormDataFileUpload && (e.postMessage ? (n = this._getFormData(e), e.blob ? n.push({ | |
| name: s, | |
| value: e.blob | |
| }) : t.each(e.files, function (r, o) { | |
| n.push({ | |
| name: "array" === t.type(e.paramName) && e.paramName[r] || s, | |
| value: o | |
| }) | |
| })) : (r._isInstanceOf("FormData", e.formData) ? n = e.formData : (n = new FormData, t.each(this._getFormData(e), function (t, e) { | |
| n.append(e.name, e.value) | |
| })), e.blob ? n.append(s, e.blob, o.name) : t.each(e.files, function (o, i) { | |
| (r._isInstanceOf("File", i) || r._isInstanceOf("Blob", i)) && n.append("array" === t.type(e.paramName) && e.paramName[o] || s, i, i.uploadName || i.name) | |
| })), e.data = n) : (e.contentType = o.type || "application/octet-stream", e.data = e.blob || o), e.blob = null | |
| }, | |
| _initIframeSettings: function (e) { | |
| var n = t("<a></a>").prop("href", e.url).prop("host"); | |
| e.dataType = "iframe " + (e.dataType || ""), e.formData = this._getFormData(e), e.redirect && n && n !== location.host && e.formData.push({ | |
| name: e.redirectParamName || "redirect", | |
| value: e.redirect | |
| }) | |
| }, | |
| _initDataSettings: function (t) { | |
| this._isXHRUpload(t) ? (this._chunkedUpload(t, !0) || (t.data || this._initXHRData(t), this._initProgressListener(t)), t.postMessage && (t.dataType = "postmessage " + (t.dataType || ""))) : this._initIframeSettings(t) | |
| }, | |
| _getParamName: function (e) { | |
| var n = t(e.fileInput), | |
| r = e.paramName; | |
| return r ? t.isArray(r) || (r = [r]) : (r = [], n.each(function () { | |
| for (var e = t(this), n = e.prop("name") || "files[]", o = (e.prop("files") || [1]).length; o;) r.push(n), o -= 1 | |
| }), r.length || (r = [n.prop("name") || "files[]"])), r | |
| }, | |
| _initFormSettings: function (e) { | |
| e.form && e.form.length || (e.form = t(e.fileInput.prop("form")), e.form.length || (e.form = t(this.options.fileInput.prop("form")))), e.paramName = this._getParamName(e), e.url || (e.url = e.form.prop("action") || location.href), e.type = (e.type || "string" === t.type(e.form.prop("method")) && e.form.prop("method") || "").toUpperCase(), "POST" !== e.type && "PUT" !== e.type && "PATCH" !== e.type && (e.type = "POST"), e.formAcceptCharset || (e.formAcceptCharset = e.form.attr("accept-charset")) | |
| }, | |
| _getAJAXSettings: function (e) { | |
| var n = t.extend({}, this.options, e); | |
| return this._initFormSettings(n), this._initDataSettings(n), n | |
| }, | |
| _getDeferredState: function (t) { | |
| return t.state ? t.state() : t.isResolved() ? "resolved" : t.isRejected() ? "rejected" : "pending" | |
| }, | |
| _enhancePromise: function (t) { | |
| return t.success = t.done, t.error = t.fail, t.complete = t.always, t | |
| }, | |
| _getXHRPromise: function (e, n, r) { | |
| var o = t.Deferred(), | |
| i = o.promise(); | |
| return n = n || this.options.context || i, e === !0 ? o.resolveWith(n, r) : e === !1 && o.rejectWith(n, r), i.abort = o.promise, this._enhancePromise(i) | |
| }, | |
| _addConvenienceMethods: function (e, n) { | |
| var r = this, | |
| o = function (e) { | |
| return t.Deferred().resolveWith(r, e).promise() | |
| }; | |
| n.process = function (e, i) { | |
| return (e || i) && (n._processQueue = this._processQueue = (this._processQueue || o([this])).pipe(function () { | |
| return n.errorThrown ? t.Deferred().rejectWith(r, [n]).promise() : o(arguments) | |
| }).pipe(e, i)), this._processQueue || o([this]) | |
| }, n.submit = function () { | |
| return "pending" !== this.state() && (n.jqXHR = this.jqXHR = r._trigger("submit", t.Event("submit", { | |
| delegatedEvent: e | |
| }), this) !== !1 && r._onSend(e, this)), this.jqXHR || r._getXHRPromise() | |
| }, n.abort = function () { | |
| return this.jqXHR ? this.jqXHR.abort() : (this.errorThrown = "abort", r._trigger("fail", null, this), r._getXHRPromise(!1)) | |
| }, n.state = function () { | |
| return this.jqXHR ? r._getDeferredState(this.jqXHR) : this._processQueue ? r._getDeferredState(this._processQueue) : void 0 | |
| }, n.processing = function () { | |
| return !this.jqXHR && this._processQueue && "pending" === r._getDeferredState(this._processQueue) | |
| }, n.progress = function () { | |
| return this._progress | |
| }, n.response = function () { | |
| return this._response | |
| } | |
| }, | |
| _getUploadedBytes: function (t) { | |
| var e = t.getResponseHeader("Range"), | |
| n = e && e.split("-"), | |
| r = n && n.length > 1 && parseInt(n[1], 10); | |
| return r && r + 1 | |
| }, | |
| _chunkedUpload: function (e, n) { | |
| e.uploadedBytes = e.uploadedBytes || 0; | |
| var r, o, i = this, | |
| s = e.files[0], | |
| a = s.size, | |
| u = e.uploadedBytes, | |
| l = e.maxChunkSize || a, | |
| c = this._blobSlice, | |
| p = t.Deferred(), | |
| d = p.promise(); | |
| return this._isXHRUpload(e) && c && (u || a > l) && !e.data ? n ? !0 : u >= a ? (s.error = e.i18n("uploadedBytes"), this._getXHRPromise(!1, e.context, [null, "error", s.error])) : (o = function () { | |
| var n = t.extend({}, e), | |
| d = n._progress.loaded; | |
| n.blob = c.call(s, u, u + l, s.type), n.chunkSize = n.blob.size, n.contentRange = "bytes " + u + "-" + (u + n.chunkSize - 1) + "/" + a, i._initXHRData(n), i._initProgressListener(n), r = (i._trigger("chunksend", null, n) !== !1 && t.ajax(n) || i._getXHRPromise(!1, n.context)).done(function (r, s, l) { | |
| u = i._getUploadedBytes(l) || u + n.chunkSize, d + n.chunkSize - n._progress.loaded && i._onProgress(t.Event("progress", { | |
| lengthComputable: !0, | |
| loaded: u - n.uploadedBytes, | |
| total: u - n.uploadedBytes | |
| }), n), e.uploadedBytes = n.uploadedBytes = u, n.result = r, n.textStatus = s, n.jqXHR = l, i._trigger("chunkdone", null, n), i._trigger("chunkalways", null, n), a > u ? o() : p.resolveWith(n.context, [r, s, l]) | |
| }).fail(function (t, e, r) { | |
| n.jqXHR = t, n.textStatus = e, n.errorThrown = r, i._trigger("chunkfail", null, n), i._trigger("chunkalways", null, n), p.rejectWith(n.context, [t, e, r]) | |
| }) | |
| }, this._enhancePromise(d), d.abort = function () { | |
| return r.abort() | |
| }, o(), d) : !1 | |
| }, | |
| _beforeSend: function (t, e) { | |
| 0 === this._active && (this._trigger("start"), this._bitrateTimer = new this._BitrateTimer, this._progress.loaded = this._progress.total = 0, this._progress.bitrate = 0), this._initResponseObject(e), this._initProgressObject(e), e._progress.loaded = e.loaded = e.uploadedBytes || 0, e._progress.total = e.total = this._getTotal(e.files) || 1, e._progress.bitrate = e.bitrate = 0, this._active += 1, this._progress.loaded += e.loaded, this._progress.total += e.total | |
| }, | |
| _onDone: function (e, n, r, o) { | |
| var i = o._progress.total, | |
| s = o._response; | |
| o._progress.loaded < i && this._onProgress(t.Event("progress", { | |
| lengthComputable: !0, | |
| loaded: i, | |
| total: i | |
| }), o), s.result = o.result = e, s.textStatus = o.textStatus = n, s.jqXHR = o.jqXHR = r, this._trigger("done", null, o) | |
| }, | |
| _onFail: function (t, e, n, r) { | |
| var o = r._response; | |
| r.recalculateProgress && (this._progress.loaded -= r._progress.loaded, this._progress.total -= r._progress.total), o.jqXHR = r.jqXHR = t, o.textStatus = r.textStatus = e, o.errorThrown = r.errorThrown = n, this._trigger("fail", null, r) | |
| }, | |
| _onAlways: function (t, e, n, r) { | |
| this._trigger("always", null, r) | |
| }, | |
| _onSend: function (e, n) { | |
| n.submit || this._addConvenienceMethods(e, n); | |
| var r, o, i, s, a = this, | |
| u = a._getAJAXSettings(n), | |
| l = function () { | |
| return a._sending += 1, u._bitrateTimer = new a._BitrateTimer, r = r || ((o || a._trigger("send", t.Event("send", { | |
| delegatedEvent: e | |
| }), u) === !1) && a._getXHRPromise(!1, u.context, o) || a._chunkedUpload(u) || t.ajax(u)).done(function (t, e, n) { | |
| a._onDone(t, e, n, u) | |
| }).fail(function (t, e, n) { | |
| a._onFail(t, e, n, u) | |
| }).always(function (t, e, n) { | |
| if (a._onAlways(t, e, n, u), a._sending -= 1, a._active -= 1, u.limitConcurrentUploads && u.limitConcurrentUploads > a._sending) | |
| for (var r = a._slots.shift(); r;) { | |
| if ("pending" === a._getDeferredState(r)) { | |
| r.resolve(); | |
| break | |
| } | |
| r = a._slots.shift() | |
| } | |
| 0 === a._active && a._trigger("stop") | |
| }) | |
| }; | |
| return this._beforeSend(e, u), this.options.sequentialUploads || this.options.limitConcurrentUploads && this.options.limitConcurrentUploads <= this._sending ? (this.options.limitConcurrentUploads > 1 ? (i = t.Deferred(), this._slots.push(i), s = i.pipe(l)) : (this._sequence = this._sequence.pipe(l, l), s = this._sequence), s.abort = function () { | |
| return o = [void 0, "abort", "abort"], r ? r.abort() : (i && i.rejectWith(u.context, o), l()) | |
| }, this._enhancePromise(s)) : l() | |
| }, | |
| _onAdd: function (e, n) { | |
| var r, o, i, s, a = this, | |
| u = !0, | |
| l = t.extend({}, this.options, n), | |
| c = n.files, | |
| p = c.length, | |
| d = l.limitMultiFileUploads, | |
| h = l.limitMultiFileUploadSize, | |
| f = l.limitMultiFileUploadSizeOverhead, | |
| m = 0, | |
| g = this._getParamName(l), | |
| v = 0; | |
| if (!h || p && void 0 !== c[0].size || (h = void 0), (l.singleFileUploads || d || h) && this._isXHRUpload(l)) | |
| if (l.singleFileUploads || h || !d) | |
| if (!l.singleFileUploads && h) | |
| for (i = [], r = [], s = 0; p > s; s += 1) m += c[s].size + f, (s + 1 === p || m + c[s + 1].size + f > h || d && s + 1 - v >= d) && (i.push(c.slice(v, s + 1)), o = g.slice(v, s + 1), o.length || (o = g), r.push(o), v = s + 1, m = 0); | |
| else r = g; | |
| else | |
| for (i = [], r = [], s = 0; p > s; s += d) i.push(c.slice(s, s + d)), o = g.slice(s, s + d), o.length || (o = g), r.push(o); | |
| else i = [c], r = [g]; | |
| return n.originalFiles = c, t.each(i || c, function (o, s) { | |
| var l = t.extend({}, n); | |
| return l.files = i ? s : [s], l.paramName = r[o], a._initResponseObject(l), a._initProgressObject(l), a._addConvenienceMethods(e, l), u = a._trigger("add", t.Event("add", { | |
| delegatedEvent: e | |
| }), l) | |
| }), u | |
| }, | |
| _replaceFileInput: function (e) { | |
| var n = e.clone(!0); | |
| t("<form></form>").append(n)[0].reset(), e.after(n).detach(), t.cleanData(e.unbind("remove")), this.options.fileInput = this.options.fileInput.map(function (t, r) { | |
| return r === e[0] ? n[0] : r | |
| }), e[0] === this.element[0] && (this.element = n) | |
| }, | |
| _handleFileTreeEntry: function (e, n) { | |
| var r, o = this, | |
| i = t.Deferred(), | |
| s = function (t) { | |
| t && !t.entry && (t.entry = e), i.resolve([t]) | |
| }; | |
| return n = n || "", e.isFile ? e._file ? (e._file.relativePath = n, i.resolve(e._file)) : e.file(function (t) { | |
| t.relativePath = n, i.resolve(t) | |
| }, s) : e.isDirectory ? (r = e.createReader(), r.readEntries(function (t) { | |
| o._handleFileTreeEntries(t, n + e.name + "/").done(function (t) { | |
| i.resolve(t) | |
| }).fail(s) | |
| }, s)) : i.resolve([]), i.promise() | |
| }, | |
| _handleFileTreeEntries: function (e, n) { | |
| var r = this; | |
| return t.when.apply(t, t.map(e, function (t) { | |
| return r._handleFileTreeEntry(t, n) | |
| })).pipe(function () { | |
| return Array.prototype.concat.apply([], arguments) | |
| }) | |
| }, | |
| _getDroppedFiles: function (e) { | |
| e = e || {}; | |
| var n = e.items; | |
| return n && n.length && (n[0].webkitGetAsEntry || n[0].getAsEntry) ? this._handleFileTreeEntries(t.map(n, function (t) { | |
| var e; | |
| return t.webkitGetAsEntry ? (e = t.webkitGetAsEntry(), e && (e._file = t.getAsFile()), e) : t.getAsEntry() | |
| })) : t.Deferred().resolve(t.makeArray(e.files)).promise() | |
| }, | |
| _getSingleFileInputFiles: function (e) { | |
| e = t(e); | |
| var n, r, o = e.prop("webkitEntries") || e.prop("entries"); | |
| if (o && o.length) return this._handleFileTreeEntries(o); | |
| if (n = t.makeArray(e.prop("files")), n.length) void 0 === n[0].name && n[0].fileName && t.each(n, function (t, e) { | |
| e.name = e.fileName, e.size = e.fileSize | |
| }); | |
| else { | |
| if (r = e.prop("value"), !r) return t.Deferred().resolve([]).promise(); | |
| n = [{ | |
| name: r.replace(/^.*\\/, "") | |
| }] | |
| } | |
| return t.Deferred().resolve(n).promise() | |
| }, | |
| _getFileInputFiles: function (e) { | |
| return e instanceof t && 1 !== e.length ? t.when.apply(t, t.map(e, this._getSingleFileInputFiles)).pipe(function () { | |
| return Array.prototype.concat.apply([], arguments) | |
| }) : this._getSingleFileInputFiles(e) | |
| }, | |
| _onChange: function (e) { | |
| var n = this, | |
| r = { | |
| fileInput: t(e.target), | |
| form: t(e.target.form) | |
| }; | |
| this._getFileInputFiles(r.fileInput).always(function (o) { | |
| r.files = o, n.options.replaceFileInput && n._replaceFileInput(r.fileInput), n._trigger("change", t.Event("change", { | |
| delegatedEvent: e | |
| }), r) !== !1 && n._onAdd(e, r) | |
| }) | |
| }, | |
| _onPaste: function (e) { | |
| var n = e.originalEvent && e.originalEvent.clipboardData && e.originalEvent.clipboardData.items, | |
| r = { | |
| files: [] | |
| }; | |
| n && n.length && (t.each(n, function (t, e) { | |
| var n = e.getAsFile && e.getAsFile(); | |
| n && r.files.push(n) | |
| }), this._trigger("paste", t.Event("paste", { | |
| delegatedEvent: e | |
| }), r) !== !1 && this._onAdd(e, r)) | |
| }, | |
| _onDrop: function (e) { | |
| e.dataTransfer = e.originalEvent && e.originalEvent.dataTransfer; | |
| var n = this, | |
| r = e.dataTransfer, | |
| o = {}; | |
| r && r.files && r.files.length && (e.preventDefault(), this._getDroppedFiles(r).always(function (r) { | |
| o.files = r, n._trigger("drop", t.Event("drop", { | |
| delegatedEvent: e | |
| }), o) !== !1 && n._onAdd(e, o) | |
| })) | |
| }, | |
| _onDragOver: function (e) { | |
| e.dataTransfer = e.originalEvent && e.originalEvent.dataTransfer; | |
| var n = e.dataTransfer; | |
| n && -1 !== t.inArray("Files", n.types) && this._trigger("dragover", t.Event("dragover", { | |
| delegatedEvent: e | |
| })) !== !1 && (e.preventDefault(), n.dropEffect = "copy") | |
| }, | |
| _initEventHandlers: function () { | |
| this._isXHRUpload(this.options) && (this._on(this.options.dropZone, { | |
| dragover: this._onDragOver, | |
| drop: this._onDrop | |
| }), this._on(this.options.pasteZone, { | |
| paste: this._onPaste | |
| })), t.support.fileInput && this._on(this.options.fileInput, { | |
| change: this._onChange | |
| }) | |
| }, | |
| _destroyEventHandlers: function () { | |
| this._off(this.options.dropZone, "dragover drop"), this._off(this.options.pasteZone, "paste"), this._off(this.options.fileInput, "change") | |
| }, | |
| _setOption: function (e, n) { | |
| var r = -1 !== t.inArray(e, this._specialOptions); | |
| r && this._destroyEventHandlers(), this._super(e, n), r && (this._initSpecialOptions(), this._initEventHandlers()) | |
| }, | |
| _initSpecialOptions: function () { | |
| var e = this.options; | |
| void 0 === e.fileInput ? e.fileInput = this.element.is('input[type="file"]') ? this.element : this.element.find('input[type="file"]') : e.fileInput instanceof t || (e.fileInput = t(e.fileInput)), e.dropZone instanceof t || (e.dropZone = t(e.dropZone)), e.pasteZone instanceof t || (e.pasteZone = t(e.pasteZone)) | |
| }, | |
| _getRegExp: function (t) { | |
| var e = t.split("/"), | |
| n = e.pop(); | |
| return e.shift(), new RegExp(e.join("/"), n) | |
| }, | |
| _isRegExpOption: function (e, n) { | |
| return "url" !== e && "string" === t.type(n) && /^\/.*\/[igm]{0,3}$/.test(n) | |
| }, | |
| _initDataAttributes: function () { | |
| var e = this, | |
| n = this.options, | |
| r = t(this.element[0].cloneNode(!1)); | |
| t.each(r.data(), function (t, o) { | |
| var i = "data-" + t.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase(); | |
| r.attr(i) && (e._isRegExpOption(t, o) && (o = e._getRegExp(o)), n[t] = o) | |
| }) | |
| }, | |
| _create: function () { | |
| this._initDataAttributes(), this._initSpecialOptions(), this._slots = [], this._sequence = this._getXHRPromise(!0), this._sending = this._active = 0, this._initProgressObject(this), this._initEventHandlers() | |
| }, | |
| active: function () { | |
| return this._active | |
| }, | |
| progress: function () { | |
| return this._progress | |
| }, | |
| add: function (e) { | |
| var n = this; | |
| e && !this.options.disabled && (e.fileInput && !e.files ? this._getFileInputFiles(e.fileInput).always(function (t) { | |
| e.files = t, n._onAdd(null, e) | |
| }) : (e.files = t.makeArray(e.files), this._onAdd(null, e))) | |
| }, | |
| send: function (e) { | |
| if (e && !this.options.disabled) { | |
| if (e.fileInput && !e.files) { | |
| var n, r, o = this, | |
| i = t.Deferred(), | |
| s = i.promise(); | |
| return s.abort = function () { | |
| return r = !0, n ? n.abort() : (i.reject(null, "abort", "abort"), s) | |
| }, this._getFileInputFiles(e.fileInput).always(function (t) { | |
| if (!r) { | |
| if (!t.length) return void i.reject(); | |
| e.files = t, n = o._onSend(null, e).then(function (t, e, n) { | |
| i.resolve(t, e, n) | |
| }, function (t, e, n) { | |
| i.reject(t, e, n) | |
| }) | |
| } | |
| }), this._enhancePromise(s) | |
| } | |
| if (e.files = t.makeArray(e.files), e.files.length) return this._onSend(null, e) | |
| } | |
| return this._getXHRPromise(!1, e && e.context) | |
| } | |
| }) | |
| }), | |
| /* | |
| * jQuery Hotkeys Plugin | |
| * Copyright 2010, John Resig | |
| * Dual licensed under the MIT or GPL Version 2 licenses. | |
| * | |
| * Based upon the plugin by Tzury Bar Yochay: | |
| * http://github.com/tzuryby/hotkeys | |
| * | |
| * Original idea by: | |
| * Binny V A, http://www.openjs.com/scripts/events/keyboard_shortcuts/ | |
| */ | |
| function (t) { | |
| function e(e) { | |
| if ("string" == typeof e.data) { | |
| var n = e.handler, | |
| r = e.data.toLowerCase().split(" "); | |
| e.handler = function (e) { | |
| if (this === e.target || !/textarea|select/i.test(e.target.nodeName) && "text" !== e.target.type) { | |
| var o = "keypress" !== e.type && t.hotkeys.specialKeys[e.which], | |
| i = String.fromCharCode(e.which).toLowerCase(), | |
| s = "", | |
| a = {}; | |
| e.altKey && "alt" !== o && (s += "alt+"), e.ctrlKey && "ctrl" !== o && (s += "ctrl+"), e.metaKey && !e.ctrlKey && "meta" !== o && (s += "meta+"), e.shiftKey && "shift" !== o && (s += "shift+"), o ? a[s + o] = !0 : (a[s + i] = !0, a[s + t.hotkeys.shiftNums[i]] = !0, "shift+" === s && (a[t.hotkeys.shiftNums[i]] = !0)); | |
| for (var u = 0, l = r.length; l > u; u++) | |
| if (a[r[u]]) return n.apply(this, arguments) | |
| } | |
| } | |
| } | |
| } | |
| t.hotkeys = { | |
| version: "0.8", | |
| specialKeys: { | |
| 8: "backspace", | |
| 9: "tab", | |
| 13: "return", | |
| 16: "shift", | |
| 17: "ctrl", | |
| 18: "alt", | |
| 19: "pause", | |
| 20: "capslock", | |
| 27: "esc", | |
| 32: "space", | |
| 33: "pageup", | |
| 34: "pagedown", | |
| 35: "end", | |
| 36: "home", | |
| 37: "left", | |
| 38: "up", | |
| 39: "right", | |
| 40: "down", | |
| 45: "insert", | |
| 46: "del", | |
| 96: "0", | |
| 97: "1", | |
| 98: "2", | |
| 99: "3", | |
| 100: "4", | |
| 101: "5", | |
| 102: "6", | |
| 103: "7", | |
| 104: "8", | |
| 105: "9", | |
| 106: "*", | |
| 107: "+", | |
| 109: "-", | |
| 110: ".", | |
| 111: "/", | |
| 112: "f1", | |
| 113: "f2", | |
| 114: "f3", | |
| 115: "f4", | |
| 116: "f5", | |
| 117: "f6", | |
| 118: "f7", | |
| 119: "f8", | |
| 120: "f9", | |
| 121: "f10", | |
| 122: "f11", | |
| 123: "f12", | |
| 144: "numlock", | |
| 145: "scroll", | |
| 191: "/", | |
| 224: "meta" | |
| }, | |
| shiftNums: { | |
| "`": "~", | |
| 1: "!", | |
| 2: "@", | |
| 3: "#", | |
| 4: "$", | |
| 5: "%", | |
| 6: "^", | |
| 7: "&", | |
| 8: "*", | |
| 9: "(", | |
| 0: ")", | |
| "-": "_", | |
| "=": "+", | |
| ";": ": ", | |
| "'": '"', | |
| ",": "<", | |
| ".": ">", | |
| "/": "?", | |
| "\\": "|" | |
| } | |
| }, t.each(["keydown", "keyup", "keypress"], function () { | |
| t.event.special[this] = { | |
| add: e | |
| } | |
| }) | |
| }(jQuery), | |
| function (t) { | |
| function e(t, e) { | |
| return "function" == typeof t ? t.call(e) : t | |
| } | |
| function n(t) { | |
| for (; t = t.parentNode;) | |
| if (t == document) return !0; | |
| return !1 | |
| } | |
| function r(e, n) { | |
| this.$element = t(e), this.options = n, this.enabled = !0, this.fixTitle() | |
| } | |
| r.prototype = { | |
| show: function () { | |
| var n = this.getTitle(); | |
| if (n && this.enabled) { | |
| var r = this.tip(); | |
| r.find(".tipsy-inner")[this.options.html ? "html" : "text"](n), r[0].className = "tipsy", r.remove().css({ | |
| top: 0, | |
| left: 0, | |
| visibility: "hidden", | |
| display: "block" | |
| }).prependTo(document.body); | |
| var o, i = t.extend({}, this.$element.offset(), { | |
| width: this.$element[0].offsetWidth, | |
| height: this.$element[0].offsetHeight | |
| }), | |
| s = r[0].offsetWidth, | |
| a = r[0].offsetHeight, | |
| u = e(this.options.gravity, this.$element[0]); | |
| switch (u.charAt(0)) { | |
| case "n": | |
| o = { | |
| top: i.top + i.height + this.options.offset, | |
| left: i.left + i.width / 2 - s / 2 | |
| }; | |
| break; | |
| case "s": | |
| o = { | |
| top: i.top - a - this.options.offset, | |
| left: i.left + i.width / 2 - s / 2 | |
| }; | |
| break; | |
| case "e": | |
| o = { | |
| top: i.top + i.height / 2 - a / 2, | |
| left: i.left - s - this.options.offset | |
| }; | |
| break; | |
| case "w": | |
| o = { | |
| top: i.top + i.height / 2 - a / 2, | |
| left: i.left + i.width + this.options.offset | |
| } | |
| } | |
| 2 == u.length && (o.left = "w" == u.charAt(1) ? i.left + i.width / 2 - 15 : i.left + i.width / 2 - s + 15), r.css(o).addClass("tipsy-" + u), r.find(".tipsy-arrow")[0].className = "tipsy-arrow tipsy-arrow-" + u.charAt(0), this.options.className && r.addClass(e(this.options.className, this.$element[0])), this.options.fade ? r.stop().css({ | |
| opacity: 0, | |
| display: "block", | |
| visibility: "visible" | |
| }).animate({ | |
| opacity: this.options.opacity | |
| }) : r.css({ | |
| visibility: "visible", | |
| opacity: this.options.opacity | |
| }) | |
| } | |
| }, | |
| hide: function () { | |
| this.options.fade ? this.tip().stop().fadeOut(function () { | |
| t(this).remove() | |
| }) : this.tip().remove() | |
| }, | |
| fixTitle: function () { | |
| var t = this.$element; | |
| (t.attr("title") || "string" != typeof t.attr("original-title")) && t.attr("original-title", t.attr("title") || "").removeAttr("title") | |
| }, | |
| getTitle: function () { | |
| var t, e = this.$element, | |
| n = this.options; | |
| this.fixTitle(); | |
| var t, n = this.options; | |
| return "string" == typeof n.title ? t = e.attr("title" == n.title ? "original-title" : n.title) : "function" == typeof n.title && (t = n.title.call(e[0])), t = ("" + t).replace(/(^\s*|\s*$)/, ""), t || n.fallback | |
| }, | |
| tip: function () { | |
| return this.$tip || (this.$tip = t('<div class="tipsy"></div>').html('<div class="tipsy-arrow"></div><div class="tipsy-inner"></div>'), this.$tip.data("tipsy-pointee", this.$element[0])), this.$tip | |
| }, | |
| validate: function () { | |
| this.$element[0].parentNode || (this.hide(), this.$element = null, this.options = null) | |
| }, | |
| enable: function () { | |
| this.enabled = !0 | |
| }, | |
| disable: function () { | |
| this.enabled = !1 | |
| }, | |
| toggleEnabled: function () { | |
| this.enabled = !this.enabled | |
| } | |
| }, t.fn.tipsy = function (e) { | |
| function n(n) { | |
| var o = t.data(n, "tipsy"); | |
| return o || (o = new r(n, t.fn.tipsy.elementOptions(n, e)), t.data(n, "tipsy", o)), o | |
| } | |
| function o() { | |
| var t = n(this); | |
| t.hoverState = "in", 0 == e.delayIn ? t.show() : (t.fixTitle(), setTimeout(function () { | |
| "in" == t.hoverState && s(t.$element) && t.show() | |
| }, e.delayIn)) | |
| } | |
| function i() { | |
| var t = n(this); | |
| t.hoverState = "out", 0 == e.delayOut ? t.hide() : setTimeout(function () { | |
| "out" == t.hoverState && t.hide() | |
| }, e.delayOut) | |
| } | |
| function s(t) { | |
| return t.closest("body").length > 0 | |
| } | |
| if (e === !0) return this.data("tipsy"); | |
| if ("string" == typeof e) { | |
| var a = this.data("tipsy"); | |
| return a && a[e](), this | |
| } | |
| if (e = t.extend({}, t.fn.tipsy.defaults, e), e.live || this.each(function () { | |
| n(this) | |
| }), "manual" != e.trigger) { | |
| var u = e.live ? t(this.context) : this, | |
| l = e.live ? this.selector : null, | |
| c = "hover" == e.trigger ? "mouseenter" : "focus", | |
| p = "hover" == e.trigger ? "mouseleave" : "blur"; | |
| u.on(c, l, o).on(p, l, i) | |
| } | |
| return this | |
| }, t.fn.tipsy.defaults = { | |
| className: null, | |
| delayIn: 0, | |
| delayOut: 0, | |
| fade: !1, | |
| fallback: "", | |
| gravity: "n", | |
| html: !1, | |
| live: !1, | |
| offset: 0, | |
| opacity: .8, | |
| title: "title", | |
| trigger: "hover" | |
| }, t.fn.tipsy.revalidate = function () { | |
| t(".tipsy").each(function () { | |
| var e = t.data(this, "tipsy-pointee"); | |
| e && n(e) || t(this).remove() | |
| }) | |
| }, t.fn.tipsy.elementOptions = function (e, n) { | |
| return t.metadata ? t.extend({}, n, t(e).metadata()) : n | |
| }, t.fn.tipsy.autoNS = function () { | |
| return t(this).offset().top > t(document).scrollTop() + t(window).height() / 2 ? "s" : "n" | |
| }, t.fn.tipsy.autoWE = function () { | |
| return t(this).offset().left > t(document).scrollLeft() + t(window).width() / 2 ? "e" : "w" | |
| }, t.fn.tipsy.autoBounds = function (e, n) { | |
| return function () { | |
| var r = { | |
| ns: n[0], | |
| ew: n.length > 1 ? n[1] : !1 | |
| }, | |
| o = t(document).scrollTop() + e, | |
| i = t(document).scrollLeft() + e, | |
| s = t(this); | |
| return s.offset().top < o && (r.ns = "n"), s.offset().left < i && (r.ew = "w"), t(window).width() + t(document).scrollLeft() - s.offset().left < e && (r.ew = "e"), t(window).height() + t(document).scrollTop() - s.offset().top < e && (r.ns = "s"), r.ns + (r.ew ? r.ew : "") | |
| } | |
| } | |
| }(jQuery), | |
| function () { | |
| window.Flowdock = window.Flowdock || {}, window.Views = {}, window.Models = {}, window.Collections = {}, window.Helpers = {}, window.Presenters = {}, window.Components = {} | |
| }.call(this), | |
| function () { | |
| var t, e, n; | |
| _.extend(Helpers, { | |
| autoLink: function (t, e) { | |
| return Helpers.autoLinkEmails(Helpers.autoLinkUrls(Helpers.autoLinkMentions(Helpers.autoLinkHashtags(t, e), e)), e) | |
| }, | |
| autoLinkEmails: function (n, r) { | |
| var o, i, s; | |
| return o = $("<div>").html(n)[0], s = function (t) { | |
| return $("<a>").attr({ | |
| href: "mailto:" + t | |
| }).text(t).addClass(r.emailClass || "")[0] | |
| }, i = t(FlowdockText.extractEmailsWithIndices, s, "email"), e(o, i).innerHTML | |
| }, | |
| autoLinkUrls: function (n, r) { | |
| var o, i, s; | |
| return null == r && (r = {}), o = $("<div>").html(n)[0], s = function (t) { | |
| var e; | |
| return e = /^https?:\/\//.test(t) ? "" : "http://", $("<a>").attr("href", "" + e + t).text(t).addClass("external")[0] | |
| }, i = t(FlowdockText.extractUrlsWithIndices, s, "url"), e(o, i).innerHTML | |
| }, | |
| autoLinkMentions: function (t, r) { | |
| var o, i, s, a; | |
| return null == r && (r = {}), o = $("<div>").html(t)[0], i = function (t) { | |
| return FlowdockText.extractMentionsWithIndices(t, r.userTags) | |
| }, a = function (t) { | |
| return $("<a>").attr({ | |
| href: "" + r.hashtagUrlBase + t, | |
| title: "Search " + t | |
| }).text("" + t).addClass(r.hashtagClass)[0] | |
| }, s = n(i, a), e(o, s).innerHTML | |
| }, | |
| autoLinkHashtags: function (t, r) { | |
| var o, i, s; | |
| return null == r && (r = {}), o = $("<div>").html(t)[0], s = function (t) { | |
| return $("<a>").attr({ | |
| href: "" + r.hashtagUrlBase + t, | |
| title: "#" + t | |
| }).text("#" + t).addClass(r.hashtagClass)[0] | |
| }, i = n(FlowdockText.extractHashtagsWithIndices, s), e(o, i).innerHTML | |
| } | |
| }), t = function (t, e, n) { | |
| return function (r) { | |
| var o, i, s, a, u, l, c; | |
| for (s = r.textContent || r.data, o = t(s), l = o.reverse(), c = [], a = 0, u = l.length; u > a; a++) i = l[a], c.push(function (t) { | |
| var o, i; | |
| return i = r.splitText(t.indices[0]), i.splitText(t[n].length), o = e(t[n]), r.parentNode.replaceChild(o, i) | |
| }(i)); | |
| return c | |
| } | |
| }, n = function (t, e) { | |
| return function (n) { | |
| var r, o, i, s, a, u, l; | |
| for (i = n.textContent || n.data, o = t(i), u = o.reverse(), l = [], s = 0, a = u.length; a > s; s++) r = u[s], l.push(function (t) { | |
| var r, o; | |
| return r = n.splitText(t.indices[0]), r.splitText(t.indices[1] - t.indices[0]), o = e(t.tag), n.parentNode.replaceChild(o, r) | |
| }(r)); | |
| return l | |
| } | |
| }, e = function (t, n) { | |
| var r, o; | |
| for (o = 0; o < t.childNodes.length;) r = t.childNodes[o], 3 === r.nodeType ? n(r) : r.hasChildNodes() && "A" !== r.nodeName && e(r, n), o++; | |
| return t | |
| } | |
| }.call(this), | |
| function () { | |
| var t; | |
| t = function () { | |
| var t, e, n; | |
| return e = ["green", "red", "blue", "yellow", "purple", "teal", "orange", "dirty-green", "brown", "pink"], t = {}, n = function () { | |
| var t; | |
| return t = e.pop(), e.unshift(t), t | |
| }, | |
| function (e) { | |
| return t[e] || (t[e] = n()) | |
| } | |
| }, Helpers.CommentHelper = { | |
| flows: {}, | |
| color: function (e, n) { | |
| var r, o; | |
| return (r = (o = this.flows)[e] || (o[e] = t(e)))(n) | |
| } | |
| } | |
| }.call(this), | |
| function () { | |
| Helpers.FileHelper = { | |
| parseAttachment: function (t) { | |
| var e; | |
| return e = { | |
| file: { | |
| type: this.iconType(t.content_type), | |
| path: Helpers.apiUrl(this.escapePath(t.path), !0), | |
| size: Helpers.format.bytes(t.file_size), | |
| name: t.file_name | |
| } | |
| }, t.thumbnail && (e.file.type = "thumbnailed-image", e.image = { | |
| width: t.image.width, | |
| height: t.image.height | |
| }, e.thumbnail = { | |
| path: Helpers.apiUrl(this.escapePath(t.thumbnail.path), !0), | |
| width: t.thumbnail.width, | |
| height: t.thumbnail.height | |
| }), t.rotated && (e.rotated = { | |
| path: Helpers.apiUrl(this.escapePath(t.rotated.path), !0) | |
| }), e | |
| }, | |
| iconType: function (t) { | |
| var e, n, r, o, i; | |
| return r = function (t, e) { | |
| var n, r; | |
| for (n in e) | |
| if (r = e[n], -1 !== n.split(",").indexOf(t)) return r | |
| }, e = { | |
| audio: function () { | |
| return "audio" | |
| }, | |
| video: function () { | |
| return "video" | |
| }, | |
| image: function () { | |
| return "image" | |
| }, | |
| text: function (t) { | |
| return r(t, { | |
| html: "html", | |
| css: "css", | |
| plain: "text" | |
| }) | |
| }, | |
| application: function (t) { | |
| return r(t, { | |
| pdf: "pdf", | |
| msword: "word", | |
| powerpoint: "powerpoint", | |
| "excel,vnd.ms-excel": "excel", | |
| "shockwave-flash": "flash", | |
| "octet-stream": "binary", | |
| "zip,x-zip,x-tar,x-gzip,x-stuffit": "zip" | |
| }) | |
| } | |
| }, i = t.split("/"), o = i[0], n = i[1], ("function" == typeof e[o] ? e[o](n) : void 0) || "document" | |
| }, | |
| escapePath: function (t) { | |
| var e; | |
| return e = _.map(t.split("/"), function (t) { | |
| return encodeURIComponent(t) | |
| }), e.join("/") | |
| } | |
| } | |
| }.call(this), | |
| function () { | |
| var t = [].slice; | |
| _.extend(Helpers, { | |
| format: { | |
| number: function (e, n) { | |
| var r, o; | |
| return null == n && (n = 2), r = function (e) { | |
| var r, o, i, s; | |
| for (s = e.split("."), o = s[0], n = 2 <= s.length ? t.call(s, 1) : [], n = function () { | |
| var t, e, o; | |
| for (o = [], t = 0, e = n.length; e > t; t++) r = n[t], o.push("." + r); | |
| return o | |
| }().join(), i = /(\d+)(\d{3})/; i.test(o);) o = o.replace(i, "$1,$2"); | |
| return "" + o + n | |
| }, o = Math.pow(10, n), r(String(Math.round(e * o) / o)) | |
| }, | |
| pad: function (t, e, n) { | |
| var r; | |
| return null == n && (n = "0"), r = String(t), r.length < e ? Helpers.format.pad(n + r, e, n) : r | |
| }, | |
| toSentence: function (t) { | |
| switch (null == t && (t = []), t.length) { | |
| case 0: | |
| return ""; | |
| case 1: | |
| return t[0]; | |
| case 2: | |
| return t.join(" and "); | |
| default: | |
| return t.slice(0, +(t.length - 2) + 1 || 9e9).join(", ") + (" and " + _.last(t)) | |
| } | |
| }, | |
| bytes: function (t) { | |
| return t >= 1e3 * Math.pow(2, 20) ? Helpers.format.number(t / Math.pow(2, 30)) + " GB" : t >= 1e3 * Math.pow(2, 10) ? Helpers.format.number(t / Math.pow(2, 20)) + " MB" : Helpers.format.number(t / Math.pow(2, 10)) + " kB" | |
| } | |
| }, | |
| absoluteUrlFor: function (t) { | |
| return "" + window.location.protocol + "//" + window.location.host + Helpers.urlFor(t) | |
| }, | |
| urlFor: function (t) { | |
| return "" + window.Router.root + Helpers.pathFor(t) | |
| }, | |
| pathFor: function (t) { | |
| var e, n; | |
| return null == t && (t = {}), t.flow ? (e = t.flow.path ? t.flow.path() : t.flow, t.message ? "" + e + "/inbox/" + (t.message.id || t.message) : t.thread ? "" + e + "/threads/" + t.thread : t.filter && t.filter.url(t.flow) && "inbox" !== t.filter.url(t.flow) ? "" + e + "/filter/" + t.filter.url(t.flow) : t.settings ? "" + e + "/settings/" + t.settings.active : t.renameFlow ? "" + e + "/rename" : e) : t["private"] ? n = t["private"].id ? "private/" + t["private"].id : "private/" + t["private"] : t.createFlow ? t.organization ? "create-flow/" + t.organization : "create-flow" : t.createOrganization ? "create-organization" : t.showNewTab ? "new-tab" : t.newPrivateDialog ? "new-1-to-1" : t.feedback ? "feedback" : t.preferences ? "preferences/" + t.preferences.active : t.iframe ? "iframe/" + t.iframe : t.renameFlow ? "" : "" | |
| }, | |
| assetPath: function (t) { | |
| return Flowdock.assetHost + ("/" === t[0] ? t : "/" + t) | |
| }, | |
| apiUrl: function (t) { | |
| var e; | |
| return e = Helpers.url.stripHost(t), 0 === e.indexOf("/rest") ? e : "/rest" + e | |
| }, | |
| url: { | |
| stripHost: function (t) { | |
| var e, n; | |
| return e = document.createElement("a"), e.href = t, n = 0 === e.pathname.indexOf("/") ? "" : "/", n + e.pathname + e.search + e.hash | |
| } | |
| }, | |
| generateQuery: function (t) { | |
| var e, n, r; | |
| n = ""; | |
| for (e in t) r = t[e], n.length > 0 && (n += "&"), null != e && (n += "" + Helpers.urlEncode(e) + "=" + Helpers.encodeValue(r)); | |
| return n.length > 0 ? "?" + n : "" | |
| }, | |
| encodeValue: function (t) { | |
| return Helpers.urlEncode(t).replace(/%40/g, "@").replace(/%2C/g, ",") | |
| }, | |
| parseQuery: function (t) { | |
| var e; | |
| return 0 === t.length ? {} : (e = {}, "?" === t[0] && (t = t.slice(1)), _.each(t.split("&"), function (t) { | |
| var n, r, o; | |
| return o = t.split("=", 2), n = o[0], r = o[1], null != n && null != r ? e[Helpers.urlDecode(n)] = Helpers.urlDecode(r) : void 0 | |
| }), e) | |
| }, | |
| animationend: function () { | |
| var t; | |
| return t = { | |
| WebkitAnimation: "webkitAnimationEnd", | |
| MozAnimation: "animationend", | |
| MsAnimation: "MSAnimationEnd", | |
| OAnimation: "oAnimationEnd", | |
| animation: "animationend" | |
| }, t[Modernizr.prefixed("animation")] | |
| }, | |
| transitionend: function () { | |
| var t; | |
| return t = { | |
| WebkitTransition: "webkitTransitionEnd", | |
| MozTransition: "transitionend", | |
| MsTransition: "MSTransitionEnd", | |
| OTransition: "oTransitionEnd", | |
| transition: "transitionend" | |
| }, t[Modernizr.prefixed("transition")] | |
| }, | |
| unsafeLink: function (t, e) { | |
| return t = $("<div/>").text(t).html(), '<a class="external" href="' + e + '">' + t + "</a>" | |
| }, | |
| textSelected: function () { | |
| var t; | |
| return t = window.getSelection ? window.getSelection().toString() : document.selection ? document.selection.createRange().text : void 0, (null != t ? t.length : void 0) > 0 | |
| }, | |
| urlDecode: function (t) { | |
| return null == t ? null : decodeURIComponent(t.replace(/\+/g, " ")) | |
| }, | |
| urlEncode: function (t) { | |
| return null == t ? "" : encodeURIComponent(t).replace(/#{" "}/g, "+") | |
| }, | |
| capitalize: function (t) { | |
| return t.split(" ").map(function (t) { | |
| return Helpers.capitalizeFirst(t) | |
| }).join(" ") | |
| }, | |
| capitalizeFirst: function (t) { | |
| var e; | |
| return t || (t = ""), "" + ((null != (e = t[0]) ? e.toUpperCase() : void 0) || "") + t.slice(1) | |
| }, | |
| buttonConfirm: function (t, e, n) { | |
| var r, o; | |
| return r = t.html(), o = function () { | |
| return t.one(Helpers.transitionend(), function () { | |
| return t.hasClass("danger-button") ? t.one("click", n) : void 0 | |
| }), t.one("mouseout", function () { | |
| return t.removeClass("danger-button").html(r), t.off("click", n), t.one("click", o) | |
| }), t.addClass("danger-button").text(e) | |
| }, t.one("click", o) | |
| }, | |
| selectText: function (t) { | |
| var e, n; | |
| return e = document.createRange(), e.selectNodeContents(t), n = window.getSelection(), n.removeAllRanges(), n.addRange(e) | |
| }, | |
| clickWithin: function (t, e) { | |
| var n; | |
| return n = $(t.target), n.hasClass(e) || n.parents(e).length > 0 | |
| }, | |
| confirmDelete: function () { | |
| return confirm("Do you want to permanently delete this message?\nWhen deleted, no one will be able to see the message anymore.") | |
| }, | |
| addMixin: function (t, e) { | |
| var n; | |
| return n = _.extend({}, t.prototype.events), _.extend(t.prototype, e), t.prototype.events = _.extend(n, e.events) | |
| } | |
| }) | |
| }.call(this), | |
| function () { | |
| var t, e; | |
| e = /(^|\n)((?:[ ]{4}|\t).*\n?)+/g, t = /(^|\n)(?:[ ]{4}|\t)/g, Helpers.IndentationHelper = { | |
| indented: function (e) { | |
| return e.search(t) >= 0 | |
| }, | |
| formatIndented: function (n) { | |
| var r; | |
| try { | |
| return n.replace(e, function (e) { | |
| var n; | |
| return e = e.replace(/^\n/, "").replace(t, function (t, e) { | |
| return "\n" === e ? e : "" | |
| }), n = SourceDetector.detect(e) ? (e = prettyPrintOne(e), " code") : "", 0 === $.trim(e).length ? "" : "<pre class='formatted" + n + "' data-no-text-emoji><code>" + e + "</code></pre>" | |
| }).replace(/\n/g, "<br />").replace(/[ ]{2}/g, " ") | |
| } catch (o) { | |
| return r = o, n | |
| } | |
| }, | |
| parseEmojies: function (t) { | |
| var e, n; | |
| return n = function () { | |
| var n, r, o, i; | |
| for (o = t.split("\n"), i = [], n = 0, r = o.length; r > n; n++) e = o[n], i.push(Helpers.IndentationHelper.indented(e) ? e : emojimoji(e)); | |
| return i | |
| }(), n.join("\n") | |
| } | |
| } | |
| }.call(this), | |
| function () { | |
| Helpers.MailHelper = { | |
| mailtoUrl: function (t, e, n) { | |
| var r, o, i, s, a, u, l, c, p, d, h, f; | |
| return i = "%0A> ", u = encodeURIComponent(t.subject), a = moment(n).format("MMMM D, YYYY (LT)") + ", ", s = "%0A%0AOn " + a + " " + encodeURIComponent((null != t && null != (c = t.from[0]) ? c.name : void 0) || (null != (p = t.from[0]) ? p.address : void 0)) + " wrote:" + i, o = _.isArray(t.content) ? t.content[0] : t.content, _.isString(o) ? (o = o.replace(/<img /g, "<img src "), r = $("<div />").html(o.replace(/(<br \/>|<br>)/g, "\n")).text(), r = r.replace(/(\r\n|\r|\n|\u0085|\u000C|\u2028|\u2029)/g, i), r = r.replace(new RegExp("^(" + i + "\\s*)+"), ""), r = r.replace(new RegExp("(" + i + "\\s*)+$"), ""), r = r.replace(new RegExp("(" + i + "\\s*){2,}", "g"), i + i), r = encodeURIComponent(r.replace(/\&/g, "&"))) : r = "", l = "reply" === e ? (null != (d = t.replyTo) && null != (h = d[0]) ? h.address : void 0) || (null != (f = t.from[0]) ? f.address : void 0) : "", u = "reply" === e ? "Re: " + u : "Fwd: " + u, "mailto:" + l + "?subject=" + u + "&body=" + s + r.replace(/%250A/g, "%0A") | |
| } | |
| } | |
| }.call(this), | |
| function () { | |
| var t, e; | |
| Helpers.TagHelper = {}, e = function (t) { | |
| return t.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&") | |
| }, t = function (t) { | |
| var n; | |
| return t && t.length > 0 ? (n = FlowdockText.regexen.hashtagBoundary.source, new RegExp(n + e(t) + n, "i")) : void 0 | |
| }, Helpers.TagHelper.parseTags = function (e, n) { | |
| var r, o, i, s, a, u, l, c, p; | |
| return c = function (t) { | |
| return t.get("nick") && t.get("nick").length > 0 && 0 !== t.get("id") && !t.get("disabled") | |
| }, p = function (t) { | |
| return t.get("id") === n.me().get("id") | |
| }, u = [], a = n.me().toJSON(), r = FlowdockText.extractAll(e), l = r.urls, s = r.hashtags, i = r.mentions, s.forEach(function (t) { | |
| return _.contains(u, t.toLowerCase()) ? void 0 : u.push(t) | |
| }), l.length > 0 && u.push(":url"), o = FlowdockText.mentionsAll(i), o && u.push(":user:everyone"), n.users.filter(c).forEach(function (n) { | |
| var r; | |
| return r = !1, n.id !== a.id && e.match(t(n.nick())) && (u.push(":highlight:" + n.id), r = !0), FlowdockText.mentionsUser(i, n.nick()) && (u.push(":user:" + n.id), r = !0), !p(n) && (r || o && n.get("in_flow")) ? u.push(":unread:" + n.id) : void 0 | |
| }), u.filter(function (t) { | |
| return "@" !== t[0] | |
| }) | |
| }, Helpers.TagHelper.textualize = function (t) { | |
| return _.compact(t.tags().map(function (t) { | |
| return t.humanize() | |
| })).join(", ") | |
| }, Helpers.TagHelper.textualizeChange = function (t, e, n) { | |
| var r, o, i, s; | |
| return e || (e = t.previousTags()), o = function (t) { | |
| return t.filter(function (t) { | |
| return t.humanize() | |
| }) | |
| }, r = o(e.add), s = o(e.remove), i = function (t, e, n) { | |
| return n.length > 0 ? "" + e + " " + n.map(function (t) { | |
| return t.humanize() | |
| }).join(", ") : void 0 | |
| }, r.length > 0 || s.length > 0 ? _.compact([n.get("nick"), i("add", "added", r), i("remove", "removed", s)]).join(" ") : void 0 | |
| } | |
| }.call(this), | |
| function () { | |
| var t, e, n; | |
| e = function (t) { | |
| var e, n; | |
| return n = moment(t.attr("datetime")), e = n.fromNow(), t.text() !== e ? t.text(e) : void 0 | |
| }, t = function (t) { | |
| var e, n; | |
| return n = moment(t.attr("datetime")), e = n.format(Helpers.TimeHelper.detailedTimestampOptions(n).textFormat), t.text() !== e ? t.text(e) : void 0 | |
| }, n = function (t) { | |
| var e, n; | |
| return n = moment(t.attr("datetime")), e = n.format("LLL"), t.text() !== e ? t.text(e) : void 0 | |
| }, Helpers.TimeHelper = { | |
| timestamp: function (t, e) { | |
| return null == e && (e = {}), | |
| function () { | |
| return Helpers.TimeHelper.render(t, e) | |
| } | |
| }, | |
| detailedTimestamp: function (t, e) { | |
| return null == e && (e = {}), | |
| function () { | |
| return e = Helpers.TimeHelper.detailedTimestampOptions(t, e), Helpers.TimeHelper.render(t, e) | |
| } | |
| }, | |
| detailedTimestampOptions: function (t, e) { | |
| return null == e && (e = {}), e.classes || (e.classes = "timestamp detailed"), e.textFormat = moment().startOf("day").diff(t) > 0 ? "MMM D, YYYY LT" : "LT", e | |
| }, | |
| editTime: function (t, e) { | |
| return t ? Helpers.TimeHelper.detailedTimestamp(t, { | |
| classes: e ? "detailed message-delete-time" : "detailed message-edit-time" | |
| }) : void 0 | |
| }, | |
| render: function (t, e) { | |
| var n, r, o; | |
| return null == e && (e = {}), r = { | |
| classes: "timestamp", | |
| relative: !1, | |
| textFormat: "LT", | |
| datetimeFormat: "YYYY-MM-DDTHH:mm:ss", | |
| timestampFormat: "LLL", | |
| before: "", | |
| after: "" | |
| }, e = _.extend(r, e), moment.isMoment(t) || (t = moment(t)), e.relative && (e.classes += " autoupdate"), n = $("<time>").attr({ | |
| datetime: t.format(e.datetimeFormat), | |
| title: t.format(e.timestampFormat), | |
| "class": e.classes | |
| }).text(function () { | |
| var n; | |
| return n = e.relative ? t.fromNow() : t.format(e.textFormat), [e.before, n, e.after].join(" ") | |
| }), null != e.link && (o = $("<a>").attr(e.link).addClass("timestamp-link"), n = o.append(n)), n[0].outerHTML | |
| }, | |
| updateAllTimestamps: function () { | |
| return $("time.autoupdate").each(function () { | |
| return e($(this)) | |
| }) | |
| }, | |
| updateDetailedTimestamps: function () { | |
| return $("time.detailed").each(function () { | |
| return t($(this)) | |
| }) | |
| }, | |
| updateGlobalLocale: function (r) { | |
| return moment.lang(r), $("time[datetime]").each(function () { | |
| var r; | |
| return r = $(this), r.attr({ | |
| title: moment(r.attr("datetime")).format("LLL") | |
| }), r.is(".autoupdate") ? e(r) : r.is(".detailed") ? t(r) : n(r) | |
| }) | |
| } | |
| } | |
| }.call(this), | |
| function () { | |
| Helpers.setWindowTitle = function (t, e, n) { | |
| var r; | |
| return r = "", (e || n) && (r += "(" + (n > 0 ? "" + n : "*") + ") "), t && t.get("name") && (r += "" + t.get("name"), t.get("organization") && (r += " (" + t.get("organization").name + ")"), r += " - "), r += "Flowdock", window.document.title = r | |
| } | |
| }.call(this), | |
| function () { | |
| Helpers.TwitterHelper = { | |
| tweetIdFromTweetUrl: function (t) { | |
| return t.match(/status\/([0-9]+)/)[1] | |
| }, | |
| tweetApiUrl: function (t) { | |
| return "https://api.twitter.com/1/statuses/show/" + t + ".json?callback=?&include_entities=true" | |
| }, | |
| profileImageApiUrl: function (t, e) { | |
| return null == e && (e = "normal"), "https://api.twitter.com/1/users/profile_image/" + t + "?size=" + e | |
| }, | |
| userTimelineApiUrl: function (t, e) { | |
| return "https://api.twitter.com/1/statuses/user_timeline/" + t + ".json" + ("?messageCount=" + e + "&suppress_response_codes=1&include_rts=true&callback=?") | |
| }, | |
| searchApiUrl: function (t, e) { | |
| var n; | |
| return n = e ? "&" + $.param(e) : "", "https://search.twitter.com/search.json?q=" + t + n + "&callback=?" | |
| }, | |
| intentReplyUrl: function (t) { | |
| return "https://twitter.com/intent/tweet?in_reply_to=" + t | |
| }, | |
| intentRetweetUrl: function (t) { | |
| return "https://twitter.com/intent/retweet/?tweet_id=" + t | |
| }, | |
| intentFavoriteUrl: function (t) { | |
| return "https://twitter.com/intent/favorite/?tweet_id=" + t | |
| } | |
| } | |
| }.call(this), | |
| function () { | |
| var t, e, n = [].slice; | |
| e = function (t, e, r) { | |
| return null == r && (r = _.identity), new Bacon.EventStream(function (o) { | |
| var i, s; | |
| return i = function () { | |
| var t, e; | |
| return t = 1 <= arguments.length ? n.call(arguments, 0) : [], e = o(new Bacon.Next(r.apply(null, t))), e === Bacon.noMore ? s() : void 0 | |
| }, s = function () { | |
| return t.off(e, i) | |
| }, t.on(e, i), s | |
| }) | |
| }, t = function (t, n) { | |
| return null == n && (n = _.identity), e(this, t, n) | |
| }, Backbone.Model.prototype.asProperty = function (t) { | |
| return t ? e(this, "change:" + t).map(this, "get", t).toProperty(this.get(t)) : e(this, "change").map(this, "toJSON").toProperty(this.toJSON()) | |
| }, Backbone.Model.prototype.asEventStream = t, Backbone.Collection.prototype.asEventStream = t, Backbone.View.prototype.asEventStream = t, Backbone.Events.asEventStream = t, Backbone.Bacon = { | |
| asEventStream: t | |
| } | |
| }.call(this), | |
| function () { | |
| _.extend(Backbone.Collection.prototype, { | |
| isLoadingStream: function () { | |
| var t, e, n; | |
| return t = this.asEventStream("request", function (t, e) { | |
| return e | |
| }), n = this.asEventStream("sync"), e = function (t) { | |
| var e; | |
| return e = n.filter(function () { | |
| return 4 === t.readyState | |
| }).take(1), Bacon.once(!0).merge(e.map(!1)) | |
| }, t.flatMapLatest(e) | |
| } | |
| }) | |
| }.call(this), | |
| function () { | |
| var t; | |
| t = { | |
| update: "put", | |
| destroy: "delete", | |
| create: "post", | |
| read: "get" | |
| }, _.extend(Backbone.Model.prototype, { | |
| saveWithRetry: function (t, e) { | |
| var n, r, o; | |
| return null == e && (e = {}), o = null != e.retries ? e.retries : 3, n = { | |
| success: function (t, n) { | |
| return _.isFunction(e.success) ? e.success(t, n) : void 0 | |
| }, | |
| error: function (n, r) { | |
| return 0 >= o ? _.isFunction(e.error) ? e.error(n, r) : void 0 : setTimeout(function () { | |
| return n.saveWithRetry(t, _.extend({}, e, { | |
| retries: o - 1 | |
| })) | |
| }, 1e4) | |
| } | |
| }, r = _.extend({}, e), r.retries = void 0, this.save(t, _.extend(r, n)) | |
| }, | |
| can: function (e, n, r) { | |
| var o, i, s; | |
| return e = t[e] || e, o = function (t) { | |
| return function () { | |
| var r, o; | |
| return !!((null != (r = t.get("_links")) && null != (o = r[n]) ? o.methods.indexOf(e.toUpperCase()) : void 0) >= 0) | |
| } | |
| }(this), null != r ? (r = _.flatten([r]), o() && 0 === _.difference(r, null != (i = this.get("_links")) && null != (s = i[n]) ? s.fields : void 0).length) : o() | |
| }, | |
| resourceUrl: function (t) { | |
| var e, n, r; | |
| return e = "self" === t ? this.get("url") || (_.isFunction(this.url) ? this.url() : this.url) : null != (n = this.get("_links")) && null != (r = n[t]) ? r.href : void 0, null != e ? Helpers.apiUrl(e) : void 0 | |
| }, | |
| cleanup: function () { | |
| return this.trigger("cleanup"), null != this._end ? this._end = null : void 0 | |
| }, | |
| untilEnd: function (t) { | |
| return this._end || (this._end = this.asEventStream("cleanup")), t.takeUntil(this._end) | |
| } | |
| }) | |
| }.call(this), | |
| function () { | |
| var t; | |
| t = function (t) { | |
| return _.extend(t, { | |
| user: Flowdock.app.user.id | |
| }) | |
| }, Flowdock.socketIoSync = function (e, n, r) { | |
| return "create" === e ? Flowdock.app.connection.sendStream.push(t(n.toJSON())) : "tag-change" === e ? Flowdock.app.connection.sendStream.push(t(_.extend(n.flowKey(), { | |
| event: "tag-change", | |
| content: _.extend({ | |
| message: n.get("id") | |
| }, r.tagChanges) | |
| }))) : Backbone.sync(e, n, r) | |
| } | |
| }.call(this), | |
| function () { | |
| Bacon.throttledStream = function (t, e, n) { | |
| return new Bacon.EventStream(function (r) { | |
| var o, i, s; | |
| return s = !1, i = function (s) { | |
| var a; | |
| return t.removeEventListener(e, i, !1), a = r(new Bacon.Next(s)), a !== Bacon.noMore ? setTimeout(o, n) : void 0 | |
| }, o = function () { | |
| return s ? void 0 : t.addEventListener(e, i, !1) | |
| }, o(), | |
| function () { | |
| return s = !0, t.removeEventListener(e, i, !1) | |
| } | |
| }) | |
| } | |
| }.call(this), | |
| /*! | |
| * Emojie | |
| * | |
| * Copyright (C) 2011 by Ville Lautanala | |
| * Licensed under the MIT license | |
| */ | |
| function (t) { | |
| function e(t, e, n) { | |
| if (null != t) | |
| for (var r, o, i, s = [t]; s.length > 0;) | |
| if (i = s.pop(), 3 == i.nodeType) n(i); | |
| else if (null == i.getAttribute(e.ignoreAttribute || "data-no-emojie")) | |
| for (r = i.childNodes.length, o = r - 1; o >= 0; --o) s.push(i.childNodes[o]) | |
| } | |
| function n(t, e) { | |
| var n = document.createElement(e.elementName || "img"); | |
| null != e.content && (n.textContent = e.content); | |
| for (attr in e) "content" != attr && "elementName" != attr && n.setAttribute(attr, e[attr]); | |
| return n | |
| } | |
| function r(t) { | |
| return function e(r) { | |
| var o, i, s = r.data, | |
| a = 0, | |
| u = ""; | |
| for (a = 0; a < s.length; a++) | |
| if (u += s[a], !(t[u] === !0 || t[u] && t[u + s[a + 1]])) { | |
| if (t[u]) return o = r.splitText(a - u.length + 1), o.length > u.length && (i = o.splitText(u.length)), r.parentNode.replaceChild(n(o, t[u]), o), i ? e(i) : void 0; | |
| u = "" | |
| } | |
| } | |
| } | |
| function o(t) { | |
| function n(n) { | |
| var i = r(o); | |
| return 3 == n.nodeType ? i(n) : e(n, t || {}, i), n | |
| } | |
| var o = {}; | |
| return n._emojis = o, n.register = function (t, e) { | |
| var r, i; | |
| for (r = 1; r < t.length; r++) i = t.slice(0, r), i in o || (o[i] = !0); | |
| return o[t] = e, n | |
| }, n.merge = function (t) { | |
| function e(t, e) { | |
| return t && e ? 1 == t ? e : 1 == e ? t : t : t || e | |
| } | |
| var r; | |
| for (r in t._emojis) t._emojis.hasOwnProperty(r) && (o[r] = e(t._emojis[r], o[r])); | |
| return n | |
| }, n | |
| } | |
| o.canRender = function (t) { | |
| function e(t, e) { | |
| var n, r = t.getImageData(0, 0, e, e).data; | |
| for (n = 0; n < r.length; n += 4) | |
| if (r[n] != r[n + 1] && r[n] != r[n + 2]) return !0; | |
| return !1 | |
| } | |
| try { | |
| var n = document.createElement("canvas").getContext("2d"); | |
| return n.fillText(t, 0, 0), e(n, 10) | |
| } catch (r) { | |
| return !1 | |
| } | |
| }, t.Emojie = o | |
| }(window), | |
| function () { | |
| var t, e, n, r, o, i, s, a, u, l, c, p, d, h; | |
| for (window.emojie = Emojie(), window.emojimoji = function (t) { | |
| return t.replace(/:([\w-+]+):/gm, function (t, e) { | |
| var n; | |
| return n = i[e.toLowerCase()], n ? _.last(n) : ":" + e + ":" | |
| }) | |
| }, window.remojimoji = function (t) { | |
| var e, n, r, o; | |
| for (e in i) | |
| if (r = i[e]) | |
| for (o = r.length - 1; o >= 0; o += -1) n = r[o], t = t.replace(new RegExp(n, "gm"), function (t) { | |
| return Emojie.canRender(t) ? t : ":" + e + ":" | |
| }); | |
| return t | |
| }, i = { | |
| "+1": ["\ud83d\udc4d"], | |
| "-1": ["\ud83d\udc4e"], | |
| 100: ["\ud83d\udcaf"], | |
| 1234: ["\ud83d\udd22"], | |
| "8ball": ["\ud83c\udfb1"], | |
| a: ["\ud83c\udd70"], | |
| ab: ["\ud83c\udd8e"], | |
| abc: ["\ud83d\udd24"], | |
| abcd: ["\ud83d\udd21"], | |
| accept: ["\ud83c\ude51"], | |
| aerial_tramway: ["\ud83d\udea1"], | |
| airplane: ["\u2708", "\u2708\ufe0f"], | |
| alarm_clock: ["\u23f0"], | |
| alien: ["\ud83d\udc7d"], | |
| ambulance: ["\ud83d\ude91"], | |
| anchor: ["\u2693", "\u2693\ufe0f"], | |
| angel: ["\ud83d\udc7c"], | |
| anger: ["\ud83d\udca2"], | |
| angry: ["\ud83d\ude20"], | |
| anguished: ["\ud83d\ude27"], | |
| ant: ["\ud83d\udc1c"], | |
| apple: ["\ud83c\udf4e"], | |
| aquarius: ["\u2652", "\u2652\ufe0f"], | |
| aries: ["\u2648", "\u2648\ufe0f"], | |
| arrow_backward: ["\u25c0", "\u25c0\ufe0f"], | |
| arrow_double_down: ["\u23ec"], | |
| arrow_double_up: ["\u23eb"], | |
| arrow_down: ["\u2b07", "\u2b07\ufe0f"], | |
| arrow_down_small: ["\ud83d\udd3d"], | |
| arrow_forward: ["\u25b6", "\u25b6\ufe0f"], | |
| arrow_heading_down: ["\u2935", "\u2935\ufe0f"], | |
| arrow_heading_up: ["\u2934", "\u2934\ufe0f"], | |
| arrow_left: ["\u2b05", "\u2b05\ufe0f"], | |
| arrow_lower_left: ["\u2199", "\u2199\ufe0f"], | |
| arrow_lower_right: ["\u2198", "\u2198\ufe0f"], | |
| arrow_right: ["\u27a1", "\u27a1\ufe0f"], | |
| arrow_right_hook: ["\u21aa", "\u21aa\ufe0f"], | |
| arrow_up: ["\u2b06", "\u2b06\ufe0f"], | |
| arrow_up_down: ["\u2195", "\u2195\ufe0f"], | |
| arrow_up_small: ["\ud83d\udd3c"], | |
| arrow_upper_left: ["\u2196", "\u2196\ufe0f"], | |
| arrow_upper_right: ["\u2197", "\u2197\ufe0f"], | |
| arrows_clockwise: ["\ud83d\udd03"], | |
| arrows_counterclockwise: ["\ud83d\udd04"], | |
| art: ["\ud83c\udfa8"], | |
| articulated_lorry: ["\ud83d\ude9b"], | |
| astonished: ["\ud83d\ude32"], | |
| athletic_shoe: ["\ud83d\udc5f"], | |
| atm: ["\ud83c\udfe7"], | |
| b: ["\ud83c\udd71"], | |
| baby: ["\ud83d\udc76"], | |
| baby_bottle: ["\ud83c\udf7c"], | |
| baby_chick: ["\ud83d\udc24"], | |
| baby_symbol: ["\ud83d\udebc"], | |
| back: ["\ud83d\udd19"], | |
| baggage_claim: ["\ud83d\udec4"], | |
| balloon: ["\ud83c\udf88"], | |
| ballot_box_with_check: ["\u2611", "\u2611\ufe0f"], | |
| bamboo: ["\ud83c\udf8d"], | |
| banana: ["\ud83c\udf4c"], | |
| bangbang: ["\u203c", "\u203c\ufe0f"], | |
| bank: ["\ud83c\udfe6"], | |
| bar_chart: ["\ud83d\udcca"], | |
| barber: ["\ud83d\udc88"], | |
| baseball: ["\u26be", "\u26be\ufe0f"], | |
| basketball: ["\ud83c\udfc0"], | |
| bath: ["\ud83d\udec0"], | |
| bathtub: ["\ud83d\udec1"], | |
| battery: ["\ud83d\udd0b"], | |
| bear: ["\ud83d\udc3b"], | |
| bee: ["\ud83d\udc1d"], | |
| beer: ["\ud83c\udf7a"], | |
| beers: ["\ud83c\udf7b"], | |
| beetle: ["\ud83d\udc1e"], | |
| beginner: ["\ud83d\udd30"], | |
| bell: ["\ud83d\udd14"], | |
| bento: ["\ud83c\udf71"], | |
| bicyclist: ["\ud83d\udeb4"], | |
| bike: ["\ud83d\udeb2"], | |
| bikini: ["\ud83d\udc59"], | |
| bird: ["\ud83d\udc26"], | |
| birthday: ["\ud83c\udf82"], | |
| black_circle: ["\u26ab", "\u26ab\ufe0f"], | |
| black_joker: ["\ud83c\udccf"], | |
| black_large_square: ["\u2b1b", "\u2b1b\ufe0f"], | |
| black_medium_small_square: ["\u25fe", "\u25fe\ufe0f"], | |
| black_medium_square: ["\u25fc", "\u25fc\ufe0f"], | |
| black_nib: ["\u2712", "\u2712\ufe0f"], | |
| black_small_square: ["\u25aa", "\u25aa\ufe0f"], | |
| black_square_button: ["\ud83d\udd32"], | |
| blossom: ["\ud83c\udf3c"], | |
| blowfish: ["\ud83d\udc21"], | |
| blue_book: ["\ud83d\udcd8"], | |
| blue_car: ["\ud83d\ude99"], | |
| blue_heart: ["\ud83d\udc99"], | |
| blush: ["\ud83d\ude0a"], | |
| boar: ["\ud83d\udc17"], | |
| boat: ["\u26f5", "\u26f5\ufe0f"], | |
| bomb: ["\ud83d\udca3"], | |
| book: ["\ud83d\udcd6"], | |
| bookmark: ["\ud83d\udd16"], | |
| bookmark_tabs: ["\ud83d\udcd1"], | |
| books: ["\ud83d\udcda"], | |
| boom: ["\ud83d\udca5"], | |
| boot: ["\ud83d\udc62"], | |
| bouquet: ["\ud83d\udc90"], | |
| bow: ["\ud83d\ude47"], | |
| bowling: ["\ud83c\udfb3"], | |
| bowtie: null, | |
| boy: ["\ud83d\udc66"], | |
| bread: ["\ud83c\udf5e"], | |
| bride_with_veil: ["\ud83d\udc70"], | |
| bridge_at_night: ["\ud83c\udf09"], | |
| briefcase: ["\ud83d\udcbc"], | |
| broken_heart: ["\ud83d\udc94"], | |
| bug: ["\ud83d\udc1b"], | |
| bulb: ["\ud83d\udca1"], | |
| bullettrain_front: ["\ud83d\ude85"], | |
| bullettrain_side: ["\ud83d\ude84"], | |
| bus: ["\ud83d\ude8c"], | |
| busstop: ["\ud83d\ude8f"], | |
| bust_in_silhouette: ["\ud83d\udc64"], | |
| busts_in_silhouette: ["\ud83d\udc65"], | |
| cactus: ["\ud83c\udf35"], | |
| cake: ["\ud83c\udf70"], | |
| calendar: ["\ud83d\udcc6"], | |
| calling: ["\ud83d\udcf2"], | |
| camel: ["\ud83d\udc2b"], | |
| camera: ["\ud83d\udcf7"], | |
| cancer: ["\u264b", "\u264b\ufe0f"], | |
| candy: ["\ud83c\udf6c"], | |
| capital_abcd: ["\ud83d\udd20"], | |
| capricorn: ["\u2651", "\u2651\ufe0f"], | |
| car: ["\ud83d\ude97"], | |
| card_index: ["\ud83d\udcc7"], | |
| carousel_horse: ["\ud83c\udfa0"], | |
| cat: ["\ud83d\udc31"], | |
| cat2: ["\ud83d\udc08"], | |
| cd: ["\ud83d\udcbf"], | |
| chart: ["\ud83d\udcb9"], | |
| chart_with_downwards_trend: ["\ud83d\udcc9"], | |
| chart_with_upwards_trend: ["\ud83d\udcc8"], | |
| checkered_flag: ["\ud83c\udfc1"], | |
| cherries: ["\ud83c\udf52"], | |
| cherry_blossom: ["\ud83c\udf38"], | |
| chestnut: ["\ud83c\udf30"], | |
| chicken: ["\ud83d\udc14"], | |
| children_crossing: ["\ud83d\udeb8"], | |
| chocolate_bar: ["\ud83c\udf6b"], | |
| christmas_tree: ["\ud83c\udf84"], | |
| church: ["\u26ea", "\u26ea\ufe0f"], | |
| cinema: ["\ud83c\udfa6"], | |
| circus_tent: ["\ud83c\udfaa"], | |
| city_sunrise: ["\ud83c\udf07"], | |
| city_sunset: ["\ud83c\udf06"], | |
| cl: ["\ud83c\udd91"], | |
| clap: ["\ud83d\udc4f"], | |
| clapper: ["\ud83c\udfac"], | |
| clipboard: ["\ud83d\udccb"], | |
| clock1: ["\ud83d\udd50"], | |
| clock10: ["\ud83d\udd59"], | |
| clock1030: ["\ud83d\udd65"], | |
| clock11: ["\ud83d\udd5a"], | |
| clock1130: ["\ud83d\udd66"], | |
| clock12: ["\ud83d\udd5b"], | |
| clock1230: ["\ud83d\udd67"], | |
| clock130: ["\ud83d\udd5c"], | |
| clock2: ["\ud83d\udd51"], | |
| clock230: ["\ud83d\udd5d"], | |
| clock3: ["\ud83d\udd52"], | |
| clock330: ["\ud83d\udd5e"], | |
| clock4: ["\ud83d\udd53"], | |
| clock430: ["\ud83d\udd5f"], | |
| clock5: ["\ud83d\udd54"], | |
| clock530: ["\ud83d\udd60"], | |
| clock6: ["\ud83d\udd55"], | |
| clock630: ["\ud83d\udd61"], | |
| clock7: ["\ud83d\udd56"], | |
| clock730: ["\ud83d\udd62"], | |
| clock8: ["\ud83d\udd57"], | |
| clock830: ["\ud83d\udd63"], | |
| clock9: ["\ud83d\udd58"], | |
| clock930: ["\ud83d\udd64"], | |
| closed_book: ["\ud83d\udcd5"], | |
| closed_lock_with_key: ["\ud83d\udd10"], | |
| closed_umbrella: ["\ud83c\udf02"], | |
| cloud: ["\u2601", "\u2601\ufe0f"], | |
| clubs: ["\u2663", "\u2663\ufe0f"], | |
| cn: ["\ud83c\udde8\ud83c\uddf3"], | |
| cocktail: ["\ud83c\udf78"], | |
| coffee: ["\u2615", "\u2615\ufe0f"], | |
| cold_sweat: ["\ud83d\ude30"], | |
| collision: ["\ud83d\udca5"], | |
| computer: ["\ud83d\udcbb"], | |
| confetti_ball: ["\ud83c\udf8a"], | |
| confounded: ["\ud83d\ude16"], | |
| confused: ["\ud83d\ude15"], | |
| congratulations: ["\u3297", "\u3297\ufe0f"], | |
| construction: ["\ud83d\udea7"], | |
| construction_worker: ["\ud83d\udc77"], | |
| convenience_store: ["\ud83c\udfea"], | |
| cookie: ["\ud83c\udf6a"], | |
| cool: ["\ud83c\udd92"], | |
| cop: ["\ud83d\udc6e"], | |
| copyright: ["\xa9"], | |
| corn: ["\ud83c\udf3d"], | |
| couple: ["\ud83d\udc6b"], | |
| couple_with_heart: ["\ud83d\udc91"], | |
| couplekiss: ["\ud83d\udc8f"], | |
| cow: ["\ud83d\udc2e"], | |
| cow2: ["\ud83d\udc04"], | |
| credit_card: ["\ud83d\udcb3"], | |
| crescent_moon: ["\ud83c\udf19"], | |
| crocodile: ["\ud83d\udc0a"], | |
| crossed_flags: ["\ud83c\udf8c"], | |
| crown: ["\ud83d\udc51"], | |
| cry: ["\ud83d\ude22"], | |
| crying_cat_face: ["\ud83d\ude3f"], | |
| crystal_ball: ["\ud83d\udd2e"], | |
| cupid: ["\ud83d\udc98"], | |
| curly_loop: ["\u27b0"], | |
| currency_exchange: ["\ud83d\udcb1"], | |
| curry: ["\ud83c\udf5b"], | |
| custard: ["\ud83c\udf6e"], | |
| customs: ["\ud83d\udec3"], | |
| cyclone: ["\ud83c\udf00"], | |
| dancer: ["\ud83d\udc83"], | |
| dancers: ["\ud83d\udc6f"], | |
| dango: ["\ud83c\udf61"], | |
| dart: ["\ud83c\udfaf"], | |
| dash: ["\ud83d\udca8"], | |
| date: ["\ud83d\udcc5"], | |
| de: ["\ud83c\udde9\ud83c\uddea"], | |
| deciduous_tree: ["\ud83c\udf33"], | |
| department_store: ["\ud83c\udfec"], | |
| diamond_shape_with_a_dot_inside: ["\ud83d\udca0"], | |
| diamonds: ["\u2666", "\u2666\ufe0f"], | |
| disappointed: ["\ud83d\ude1e"], | |
| disappointed_relieved: ["\ud83d\ude25"], | |
| dizzy: ["\ud83d\udcab"], | |
| dizzy_face: ["\ud83d\ude35"], | |
| do_not_litter: ["\ud83d\udeaf"], | |
| dog: ["\ud83d\udc36"], | |
| dog2: ["\ud83d\udc15"], | |
| dollar: ["\ud83d\udcb5"], | |
| dolls: ["\ud83c\udf8e"], | |
| dolphin: ["\ud83d\udc2c"], | |
| door: ["\ud83d\udeaa"], | |
| doughnut: ["\ud83c\udf69"], | |
| dragon: ["\ud83d\udc09"], | |
| dragon_face: ["\ud83d\udc32"], | |
| dress: ["\ud83d\udc57"], | |
| dromedary_camel: ["\ud83d\udc2a"], | |
| droplet: ["\ud83d\udca7"], | |
| dvd: ["\ud83d\udcc0"], | |
| "e-mail": ["\ud83d\udce7"], | |
| ear: ["\ud83d\udc42"], | |
| ear_of_rice: ["\ud83c\udf3e"], | |
| earth_africa: ["\ud83c\udf0d"], | |
| earth_americas: ["\ud83c\udf0e"], | |
| earth_asia: ["\ud83c\udf0f"], | |
| egg: ["\ud83c\udf73"], | |
| eggplant: ["\ud83c\udf46"], | |
| eight: ["8\u20e3", "8\ufe0f\u20e3"], | |
| eight_pointed_black_star: ["\u2734", "\u2734\ufe0f"], | |
| eight_spoked_asterisk: ["\u2733", "\u2733\ufe0f"], | |
| electric_plug: ["\ud83d\udd0c"], | |
| elephant: ["\ud83d\udc18"], | |
| email: ["\u2709", "\u2709\ufe0f"], | |
| end: ["\ud83d\udd1a"], | |
| envelope: ["\u2709", "\u2709\ufe0f"], | |
| envelope_with_arrow: ["\ud83d\udce9"], | |
| es: ["\ud83c\uddea\ud83c\uddf8"], | |
| euro: ["\ud83d\udcb6"], | |
| european_castle: ["\ud83c\udff0"], | |
| european_post_office: ["\ud83c\udfe4"], | |
| evergreen_tree: ["\ud83c\udf32"], | |
| exclamation: ["\u2757", "\u2757\ufe0f"], | |
| expressionless: ["\ud83d\ude11"], | |
| eyeglasses: ["\ud83d\udc53"], | |
| eyes: ["\ud83d\udc40"], | |
| facepunch: ["\ud83d\udc4a"], | |
| factory: ["\ud83c\udfed"], | |
| fallen_leaf: ["\ud83c\udf42"], | |
| family: ["\ud83d\udc6a"], | |
| fast_forward: ["\u23e9"], | |
| fax: ["\ud83d\udce0"], | |
| fearful: ["\ud83d\ude28"], | |
| feelsgood: null, | |
| feet: ["\ud83d\udc3e"], | |
| ferris_wheel: ["\ud83c\udfa1"], | |
| file_folder: ["\ud83d\udcc1"], | |
| finnadie: null, | |
| fire: ["\ud83d\udd25"], | |
| fire_engine: ["\ud83d\ude92"], | |
| fireworks: ["\ud83c\udf86"], | |
| first_quarter_moon: ["\ud83c\udf13"], | |
| first_quarter_moon_with_face: ["\ud83c\udf1b"], | |
| fish: ["\ud83d\udc1f"], | |
| fish_cake: ["\ud83c\udf65"], | |
| fishing_pole_and_fish: ["\ud83c\udfa3"], | |
| fist: ["\u270a"], | |
| five: ["5\u20e3", "5\ufe0f\u20e3"], | |
| flags: ["\ud83c\udf8f"], | |
| flashlight: ["\ud83d\udd26"], | |
| flipper: ["\ud83d\udc2c"], | |
| floppy_disk: ["\ud83d\udcbe"], | |
| flower_playing_cards: ["\ud83c\udfb4"], | |
| flushed: ["\ud83d\ude33"], | |
| foggy: ["\ud83c\udf01"], | |
| football: ["\ud83c\udfc8"], | |
| footprints: ["\ud83d\udc63"], | |
| fork_and_knife: ["\ud83c\udf74"], | |
| fountain: ["\u26f2", "\u26f2\ufe0f"], | |
| four: ["4\u20e3", "4\ufe0f\u20e3"], | |
| four_leaf_clover: ["\ud83c\udf40"], | |
| fr: ["\ud83c\uddeb\ud83c\uddf7"], | |
| free: ["\ud83c\udd93"], | |
| fried_shrimp: ["\ud83c\udf64"], | |
| fries: ["\ud83c\udf5f"], | |
| frog: ["\ud83d\udc38"], | |
| frowning: ["\ud83d\ude26"], | |
| fu: null, | |
| fuelpump: ["\u26fd", "\u26fd\ufe0f"], | |
| full_moon: ["\ud83c\udf15"], | |
| full_moon_with_face: ["\ud83c\udf1d"], | |
| game_die: ["\ud83c\udfb2"], | |
| gb: ["\ud83c\uddec\ud83c\udde7"], | |
| gem: ["\ud83d\udc8e"], | |
| gemini: ["\u264a", "\u264a\ufe0f"], | |
| ghost: ["\ud83d\udc7b"], | |
| gift: ["\ud83c\udf81"], | |
| gift_heart: ["\ud83d\udc9d"], | |
| girl: ["\ud83d\udc67"], | |
| globe_with_meridians: ["\ud83c\udf10"], | |
| goat: ["\ud83d\udc10"], | |
| goberserk: null, | |
| godmode: null, | |
| golf: ["\u26f3", "\u26f3\ufe0f"], | |
| grapes: ["\ud83c\udf47"], | |
| green_apple: ["\ud83c\udf4f"], | |
| green_book: ["\ud83d\udcd7"], | |
| green_heart: ["\ud83d\udc9a"], | |
| grey_exclamation: ["\u2755"], | |
| grey_question: ["\u2754"], | |
| grimacing: ["\ud83d\ude2c"], | |
| grin: ["\ud83d\ude01"], | |
| grinning: ["\ud83d\ude00"], | |
| guardsman: ["\ud83d\udc82"], | |
| guitar: ["\ud83c\udfb8"], | |
| gun: ["\ud83d\udd2b"], | |
| haircut: ["\ud83d\udc87"], | |
| hamburger: ["\ud83c\udf54"], | |
| hammer: ["\ud83d\udd28"], | |
| hamster: ["\ud83d\udc39"], | |
| hand: ["\u270b"], | |
| handbag: ["\ud83d\udc5c"], | |
| hankey: ["\ud83d\udca9"], | |
| hash: ["#\u20e3", "#\ufe0f\u20e3"], | |
| hatched_chick: ["\ud83d\udc25"], | |
| hatching_chick: ["\ud83d\udc23"], | |
| headphones: ["\ud83c\udfa7"], | |
| hear_no_evil: ["\ud83d\ude49"], | |
| heart: ["\u2764", "\u2764\ufe0f"], | |
| heart_decoration: ["\ud83d\udc9f"], | |
| heart_eyes: ["\ud83d\ude0d"], | |
| heart_eyes_cat: ["\ud83d\ude3b"], | |
| heartbeat: ["\ud83d\udc93"], | |
| heartpulse: ["\ud83d\udc97"], | |
| hearts: ["\u2665", "\u2665\ufe0f"], | |
| heavy_check_mark: ["\u2714", "\u2714\ufe0f"], | |
| heavy_division_sign: ["\u2797"], | |
| heavy_dollar_sign: ["\ud83d\udcb2"], | |
| heavy_exclamation_mark: ["\u2757", "\u2757\ufe0f"], | |
| heavy_minus_sign: ["\u2796"], | |
| heavy_multiplication_x: ["\u2716", "\u2716\ufe0f"], | |
| heavy_plus_sign: ["\u2795"], | |
| helicopter: ["\ud83d\ude81"], | |
| herb: ["\ud83c\udf3f"], | |
| hibiscus: ["\ud83c\udf3a"], | |
| high_brightness: ["\ud83d\udd06"], | |
| high_heel: ["\ud83d\udc60"], | |
| hocho: ["\ud83d\udd2a"], | |
| honey_pot: ["\ud83c\udf6f"], | |
| honeybee: ["\ud83d\udc1d"], | |
| horse: ["\ud83d\udc34"], | |
| horse_racing: ["\ud83c\udfc7"], | |
| hospital: ["\ud83c\udfe5"], | |
| hotel: ["\ud83c\udfe8"], | |
| hotsprings: ["\u2668", "\u2668\ufe0f"], | |
| hourglass: ["\u231b", "\u231b\ufe0f"], | |
| hourglass_flowing_sand: ["\u23f3"], | |
| house: ["\ud83c\udfe0"], | |
| house_with_garden: ["\ud83c\udfe1"], | |
| hurtrealbad: null, | |
| hushed: ["\ud83d\ude2f"], | |
| ice_cream: ["\ud83c\udf68"], | |
| icecream: ["\ud83c\udf66"], | |
| id: ["\ud83c\udd94"], | |
| ideograph_advantage: ["\ud83c\ude50"], | |
| imp: ["\ud83d\udc7f"], | |
| inbox_tray: ["\ud83d\udce5"], | |
| incoming_envelope: ["\ud83d\udce8"], | |
| information_desk_person: ["\ud83d\udc81"], | |
| information_source: ["\u2139", "\u2139\ufe0f"], | |
| innocent: ["\ud83d\ude07"], | |
| interrobang: ["\u2049", "\u2049\ufe0f"], | |
| iphone: ["\ud83d\udcf1"], | |
| it: ["\ud83c\uddee\ud83c\uddf9"], | |
| izakaya_lantern: ["\ud83c\udfee"], | |
| jack_o_lantern: ["\ud83c\udf83"], | |
| japan: ["\ud83d\uddfe"], | |
| japanese_castle: ["\ud83c\udfef"], | |
| japanese_goblin: ["\ud83d\udc7a"], | |
| japanese_ogre: ["\ud83d\udc79"], | |
| jeans: ["\ud83d\udc56"], | |
| joy: ["\ud83d\ude02"], | |
| joy_cat: ["\ud83d\ude39"], | |
| jp: ["\ud83c\uddef\ud83c\uddf5"], | |
| key: ["\ud83d\udd11"], | |
| keycap_ten: ["\ud83d\udd1f"], | |
| kimono: ["\ud83d\udc58"], | |
| kiss: ["\ud83d\udc8b"], | |
| kissing: ["\ud83d\ude17"], | |
| kissing_cat: ["\ud83d\ude3d"], | |
| kissing_closed_eyes: ["\ud83d\ude1a"], | |
| kissing_heart: ["\ud83d\ude18"], | |
| kissing_smiling_eyes: ["\ud83d\ude19"], | |
| koala: ["\ud83d\udc28"], | |
| koko: ["\ud83c\ude01"], | |
| kr: ["\ud83c\uddf0\ud83c\uddf7"], | |
| lantern: ["\ud83c\udfee"], | |
| large_blue_circle: ["\ud83d\udd35"], | |
| large_blue_diamond: ["\ud83d\udd37"], | |
| large_orange_diamond: ["\ud83d\udd36"], | |
| last_quarter_moon: ["\ud83c\udf17"], | |
| last_quarter_moon_with_face: ["\ud83c\udf1c"], | |
| laughing: ["\ud83d\ude06"], | |
| leaves: ["\ud83c\udf43"], | |
| ledger: ["\ud83d\udcd2"], | |
| left_luggage: ["\ud83d\udec5"], | |
| left_right_arrow: ["\u2194", "\u2194\ufe0f"], | |
| leftwards_arrow_with_hook: ["\u21a9", "\u21a9\ufe0f"], | |
| lemon: ["\ud83c\udf4b"], | |
| leo: ["\u264c", "\u264c\ufe0f"], | |
| leopard: ["\ud83d\udc06"], | |
| libra: ["\u264e", "\u264e\ufe0f"], | |
| light_rail: ["\ud83d\ude88"], | |
| link: ["\ud83d\udd17"], | |
| lips: ["\ud83d\udc44"], | |
| lipstick: ["\ud83d\udc84"], | |
| lock: ["\ud83d\udd12"], | |
| lock_with_ink_pen: ["\ud83d\udd0f"], | |
| lollipop: ["\ud83c\udf6d"], | |
| loop: ["\u27bf"], | |
| loud_sound: ["\ud83d\udd0a"], | |
| loudspeaker: ["\ud83d\udce2"], | |
| love_hotel: ["\ud83c\udfe9"], | |
| love_letter: ["\ud83d\udc8c"], | |
| low_brightness: ["\ud83d\udd05"], | |
| m: ["\u24c2", "\u24c2\ufe0f"], | |
| mag: ["\ud83d\udd0d"], | |
| mag_right: ["\ud83d\udd0e"], | |
| mahjong: ["\ud83c\udc04", "\ud83c\udc04\ufe0f"], | |
| mailbox: ["\ud83d\udceb"], | |
| mailbox_closed: ["\ud83d\udcea"], | |
| mailbox_with_mail: ["\ud83d\udcec"], | |
| mailbox_with_no_mail: ["\ud83d\udced"], | |
| man: ["\ud83d\udc68"], | |
| man_with_gua_pi_mao: ["\ud83d\udc72"], | |
| man_with_turban: ["\ud83d\udc73"], | |
| mans_shoe: ["\ud83d\udc5e"], | |
| maple_leaf: ["\ud83c\udf41"], | |
| mask: ["\ud83d\ude37"], | |
| massage: ["\ud83d\udc86"], | |
| meat_on_bone: ["\ud83c\udf56"], | |
| mega: ["\ud83d\udce3"], | |
| melon: ["\ud83c\udf48"], | |
| memo: ["\ud83d\udcdd"], | |
| mens: ["\ud83d\udeb9"], | |
| metal: null, | |
| metro: ["\ud83d\ude87"], | |
| microphone: ["\ud83c\udfa4"], | |
| microscope: ["\ud83d\udd2c"], | |
| milky_way: ["\ud83c\udf0c"], | |
| minibus: ["\ud83d\ude90"], | |
| minidisc: ["\ud83d\udcbd"], | |
| mobile_phone_off: ["\ud83d\udcf4"], | |
| money_with_wings: ["\ud83d\udcb8"], | |
| moneybag: ["\ud83d\udcb0"], | |
| monkey: ["\ud83d\udc12"], | |
| monkey_face: ["\ud83d\udc35"], | |
| monorail: ["\ud83d\ude9d"], | |
| moon: ["\ud83c\udf14"], | |
| mortar_board: ["\ud83c\udf93"], | |
| mount_fuji: ["\ud83d\uddfb"], | |
| mountain_bicyclist: ["\ud83d\udeb5"], | |
| mountain_cableway: ["\ud83d\udea0"], | |
| mountain_railway: ["\ud83d\ude9e"], | |
| mouse: ["\ud83d\udc2d"], | |
| mouse2: ["\ud83d\udc01"], | |
| movie_camera: ["\ud83c\udfa5"], | |
| moyai: ["\ud83d\uddff"], | |
| muscle: ["\ud83d\udcaa"], | |
| mushroom: ["\ud83c\udf44"], | |
| musical_keyboard: ["\ud83c\udfb9"], | |
| musical_note: ["\ud83c\udfb5"], | |
| musical_score: ["\ud83c\udfbc"], | |
| mute: ["\ud83d\udd07"], | |
| nail_care: ["\ud83d\udc85"], | |
| name_badge: ["\ud83d\udcdb"], | |
| neckbeard: null, | |
| necktie: ["\ud83d\udc54"], | |
| negative_squared_cross_mark: ["\u274e"], | |
| neutral_face: ["\ud83d\ude10"], | |
| "new": ["\ud83c\udd95"], | |
| new_moon: ["\ud83c\udf11"], | |
| new_moon_with_face: ["\ud83c\udf1a"], | |
| newspaper: ["\ud83d\udcf0"], | |
| ng: ["\ud83c\udd96"], | |
| night_with_stars: ["\ud83c\udf03"], | |
| nine: ["9\u20e3", "9\ufe0f\u20e3"], | |
| no_bell: ["\ud83d\udd15"], | |
| no_bicycles: ["\ud83d\udeb3"], | |
| no_entry: ["\u26d4", "\u26d4\ufe0f"], | |
| no_entry_sign: ["\ud83d\udeab"], | |
| no_good: ["\ud83d\ude45"], | |
| no_mobile_phones: ["\ud83d\udcf5"], | |
| no_mouth: ["\ud83d\ude36"], | |
| no_pedestrians: ["\ud83d\udeb7"], | |
| no_smoking: ["\ud83d\udead"], | |
| "non-potable_water": ["\ud83d\udeb1"], | |
| nose: ["\ud83d\udc43"], | |
| notebook: ["\ud83d\udcd3"], | |
| notebook_with_decorative_cover: ["\ud83d\udcd4"], | |
| notes: ["\ud83c\udfb6"], | |
| nut_and_bolt: ["\ud83d\udd29"], | |
| o: ["\u2b55", "\u2b55\ufe0f"], | |
| o2: ["\ud83c\udd7e"], | |
| ocean: ["\ud83c\udf0a"], | |
| octocat: null, | |
| octopus: ["\ud83d\udc19"], | |
| oden: ["\ud83c\udf62"], | |
| office: ["\ud83c\udfe2"], | |
| ok: ["\ud83c\udd97"], | |
| ok_hand: ["\ud83d\udc4c"], | |
| ok_woman: ["\ud83d\ude46"], | |
| older_man: ["\ud83d\udc74"], | |
| older_woman: ["\ud83d\udc75"], | |
| on: ["\ud83d\udd1b"], | |
| oncoming_automobile: ["\ud83d\ude98"], | |
| oncoming_bus: ["\ud83d\ude8d"], | |
| oncoming_police_car: ["\ud83d\ude94"], | |
| oncoming_taxi: ["\ud83d\ude96"], | |
| one: ["1\u20e3", "1\ufe0f\u20e3"], | |
| open_book: ["\ud83d\udcd6"], | |
| open_file_folder: ["\ud83d\udcc2"], | |
| open_hands: ["\ud83d\udc50"], | |
| open_mouth: ["\ud83d\ude2e"], | |
| ophiuchus: ["\u26ce"], | |
| orange_book: ["\ud83d\udcd9"], | |
| outbox_tray: ["\ud83d\udce4"], | |
| ox: ["\ud83d\udc02"], | |
| "package": ["\ud83d\udce6"], | |
| page_facing_up: ["\ud83d\udcc4"], | |
| page_with_curl: ["\ud83d\udcc3"], | |
| pager: ["\ud83d\udcdf"], | |
| palm_tree: ["\ud83c\udf34"], | |
| panda_face: ["\ud83d\udc3c"], | |
| paperclip: ["\ud83d\udcce"], | |
| parking: ["\ud83c\udd7f", "\ud83c\udd7f\ufe0f"], | |
| part_alternation_mark: ["\u303d", "\u303d\ufe0f"], | |
| partly_sunny: ["\u26c5", "\u26c5\ufe0f"], | |
| passport_control: ["\ud83d\udec2"], | |
| paw_prints: ["\ud83d\udc3e"], | |
| peach: ["\ud83c\udf51"], | |
| pear: ["\ud83c\udf50"], | |
| pencil: ["\ud83d\udcdd"], | |
| pencil2: ["\u270f", "\u270f\ufe0f"], | |
| penguin: ["\ud83d\udc27"], | |
| pensive: ["\ud83d\ude14"], | |
| performing_arts: ["\ud83c\udfad"], | |
| persevere: ["\ud83d\ude23"], | |
| person_frowning: ["\ud83d\ude4d"], | |
| person_with_blond_hair: ["\ud83d\udc71"], | |
| person_with_pouting_face: ["\ud83d\ude4e"], | |
| phone: ["\u260e", "\u260e\ufe0f"], | |
| pig: ["\ud83d\udc37"], | |
| pig2: ["\ud83d\udc16"], | |
| pig_nose: ["\ud83d\udc3d"], | |
| pill: ["\ud83d\udc8a"], | |
| pineapple: ["\ud83c\udf4d"], | |
| pisces: ["\u2653", "\u2653\ufe0f"], | |
| pizza: ["\ud83c\udf55"], | |
| point_down: ["\ud83d\udc47"], | |
| point_left: ["\ud83d\udc48"], | |
| point_right: ["\ud83d\udc49"], | |
| point_up: ["\u261d", "\u261d\ufe0f"], | |
| point_up_2: ["\ud83d\udc46"], | |
| police_car: ["\ud83d\ude93"], | |
| poodle: ["\ud83d\udc29"], | |
| poop: ["\ud83d\udca9"], | |
| post_office: ["\ud83c\udfe3"], | |
| postal_horn: ["\ud83d\udcef"], | |
| postbox: ["\ud83d\udcee"], | |
| potable_water: ["\ud83d\udeb0"], | |
| pouch: ["\ud83d\udc5d"], | |
| poultry_leg: ["\ud83c\udf57"], | |
| pound: ["\ud83d\udcb7"], | |
| pouting_cat: ["\ud83d\ude3e"], | |
| pray: ["\ud83d\ude4f"], | |
| princess: ["\ud83d\udc78"], | |
| punch: ["\ud83d\udc4a"], | |
| purple_heart: ["\ud83d\udc9c"], | |
| purse: ["\ud83d\udc5b"], | |
| pushpin: ["\ud83d\udccc"], | |
| put_litter_in_its_place: ["\ud83d\udeae"], | |
| question: ["\u2753"], | |
| rabbit: ["\ud83d\udc30"], | |
| rabbit2: ["\ud83d\udc07"], | |
| racehorse: ["\ud83d\udc0e"], | |
| radio: ["\ud83d\udcfb"], | |
| radio_button: ["\ud83d\udd18"], | |
| rage: ["\ud83d\ude21"], | |
| rage1: null, | |
| rage2: null, | |
| rage3: null, | |
| rage4: null, | |
| railway_car: ["\ud83d\ude83"], | |
| rainbow: ["\ud83c\udf08"], | |
| raised_hand: ["\u270b"], | |
| raised_hands: ["\ud83d\ude4c"], | |
| raising_hand: ["\ud83d\ude4b"], | |
| ram: ["\ud83d\udc0f"], | |
| ramen: ["\ud83c\udf5c"], | |
| rat: ["\ud83d\udc00"], | |
| recycle: ["\u267b", "\u267b\ufe0f"], | |
| red_car: ["\ud83d\ude97"], | |
| red_circle: ["\ud83d\udd34"], | |
| registered: ["\xae"], | |
| relaxed: ["\u263a", "\u263a\ufe0f"], | |
| relieved: ["\ud83d\ude0c"], | |
| repeat: ["\ud83d\udd01"], | |
| repeat_one: ["\ud83d\udd02"], | |
| restroom: ["\ud83d\udebb"], | |
| revolving_hearts: ["\ud83d\udc9e"], | |
| rewind: ["\u23ea"], | |
| ribbon: ["\ud83c\udf80"], | |
| rice: ["\ud83c\udf5a"], | |
| rice_ball: ["\ud83c\udf59"], | |
| rice_cracker: ["\ud83c\udf58"], | |
| rice_scene: ["\ud83c\udf91"], | |
| ring: ["\ud83d\udc8d"], | |
| rocket: ["\ud83d\ude80"], | |
| roller_coaster: ["\ud83c\udfa2"], | |
| rooster: ["\ud83d\udc13"], | |
| rose: ["\ud83c\udf39"], | |
| rotating_light: ["\ud83d\udea8"], | |
| round_pushpin: ["\ud83d\udccd"], | |
| rowboat: ["\ud83d\udea3"], | |
| ru: ["\ud83c\uddf7\ud83c\uddfa"], | |
| rugby_football: ["\ud83c\udfc9"], | |
| runner: ["\ud83c\udfc3"], | |
| running: ["\ud83c\udfc3"], | |
| running_shirt_with_sash: ["\ud83c\udfbd"], | |
| sa: ["\ud83c\ude02"], | |
| sagittarius: ["\u2650", "\u2650\ufe0f"], | |
| sailboat: ["\u26f5", "\u26f5\ufe0f"], | |
| sake: ["\ud83c\udf76"], | |
| sandal: ["\ud83d\udc61"], | |
| santa: ["\ud83c\udf85"], | |
| satellite: ["\ud83d\udce1"], | |
| satisfied: ["\ud83d\ude06"], | |
| saxophone: ["\ud83c\udfb7"], | |
| school: ["\ud83c\udfeb"], | |
| school_satchel: ["\ud83c\udf92"], | |
| scissors: ["\u2702", "\u2702\ufe0f"], | |
| scorpius: ["\u264f", "\u264f\ufe0f"], | |
| scream: ["\ud83d\ude31"], | |
| scream_cat: ["\ud83d\ude40"], | |
| scroll: ["\ud83d\udcdc"], | |
| seat: ["\ud83d\udcba"], | |
| secret: ["\u3299", "\u3299\ufe0f"], | |
| see_no_evil: ["\ud83d\ude48"], | |
| seedling: ["\ud83c\udf31"], | |
| seven: ["7\u20e3", "7\ufe0f\u20e3"], | |
| shaved_ice: ["\ud83c\udf67"], | |
| sheep: ["\ud83d\udc11"], | |
| shell: ["\ud83d\udc1a"], | |
| ship: ["\ud83d\udea2"], | |
| shipit: null, | |
| shirt: ["\ud83d\udc55"], | |
| shit: ["\ud83d\udca9"], | |
| shoe: ["\ud83d\udc5e"], | |
| shower: ["\ud83d\udebf"], | |
| signal_strength: ["\ud83d\udcf6"], | |
| six: ["6\u20e3", "6\ufe0f\u20e3"], | |
| six_pointed_star: ["\ud83d\udd2f"], | |
| ski: ["\ud83c\udfbf"], | |
| skull: ["\ud83d\udc80"], | |
| sleeping: ["\ud83d\ude34"], | |
| sleepy: ["\ud83d\ude2a"], | |
| slot_machine: ["\ud83c\udfb0"], | |
| small_blue_diamond: ["\ud83d\udd39"], | |
| small_orange_diamond: ["\ud83d\udd38"], | |
| small_red_triangle: ["\ud83d\udd3a"], | |
| small_red_triangle_down: ["\ud83d\udd3b"], | |
| smile: ["\ud83d\ude04"], | |
| smile_cat: ["\ud83d\ude38"], | |
| smiley: ["\ud83d\ude03"], | |
| smiley_cat: ["\ud83d\ude3a"], | |
| smiling_imp: ["\ud83d\ude08"], | |
| smirk: ["\ud83d\ude0f"], | |
| smirk_cat: ["\ud83d\ude3c"], | |
| smoking: ["\ud83d\udeac"], | |
| snail: ["\ud83d\udc0c"], | |
| snake: ["\ud83d\udc0d"], | |
| snowboarder: ["\ud83c\udfc2"], | |
| snowflake: ["\u2744", "\u2744\ufe0f"], | |
| snowman: ["\u26c4", "\u26c4\ufe0f"], | |
| sob: ["\ud83d\ude2d"], | |
| soccer: ["\u26bd", "\u26bd\ufe0f"], | |
| soon: ["\ud83d\udd1c"], | |
| sos: ["\ud83c\udd98"], | |
| sound: ["\ud83d\udd09"], | |
| space_invader: ["\ud83d\udc7e"], | |
| spades: ["\u2660", "\u2660\ufe0f"], | |
| spaghetti: ["\ud83c\udf5d"], | |
| sparkle: ["\u2747", "\u2747\ufe0f"], | |
| sparkler: ["\ud83c\udf87"], | |
| sparkles: ["\u2728"], | |
| sparkling_heart: ["\ud83d\udc96"], | |
| speak_no_evil: ["\ud83d\ude4a"], | |
| speaker: ["\ud83d\udd08"], | |
| speech_balloon: ["\ud83d\udcac"], | |
| speedboat: ["\ud83d\udea4"], | |
| squirrel: null, | |
| star: ["\u2b50", "\u2b50\ufe0f"], | |
| star2: ["\ud83c\udf1f"], | |
| stars: ["\ud83c\udf20"], | |
| station: ["\ud83d\ude89"], | |
| statue_of_liberty: ["\ud83d\uddfd"], | |
| steam_locomotive: ["\ud83d\ude82"], | |
| stew: ["\ud83c\udf72"], | |
| straight_ruler: ["\ud83d\udccf"], | |
| strawberry: ["\ud83c\udf53"], | |
| stuck_out_tongue: ["\ud83d\ude1b"], | |
| stuck_out_tongue_closed_eyes: ["\ud83d\ude1d"], | |
| stuck_out_tongue_winking_eye: ["\ud83d\ude1c"], | |
| sun_with_face: ["\ud83c\udf1e"], | |
| sunflower: ["\ud83c\udf3b"], | |
| sunglasses: ["\ud83d\ude0e"], | |
| sunny: ["\u2600", "\u2600\ufe0f"], | |
| sunrise: ["\ud83c\udf05"], | |
| sunrise_over_mountains: ["\ud83c\udf04"], | |
| surfer: ["\ud83c\udfc4"], | |
| sushi: ["\ud83c\udf63"], | |
| suspect: null, | |
| suspension_railway: ["\ud83d\ude9f"], | |
| sweat: ["\ud83d\ude13"], | |
| sweat_drops: ["\ud83d\udca6"], | |
| sweat_smile: ["\ud83d\ude05"], | |
| sweet_potato: ["\ud83c\udf60"], | |
| swimmer: ["\ud83c\udfca"], | |
| symbols: ["\ud83d\udd23"], | |
| syringe: ["\ud83d\udc89"], | |
| tada: ["\ud83c\udf89"], | |
| tanabata_tree: ["\ud83c\udf8b"], | |
| tangerine: ["\ud83c\udf4a"], | |
| taurus: ["\u2649", "\u2649\ufe0f"], | |
| taxi: ["\ud83d\ude95"], | |
| tea: ["\ud83c\udf75"], | |
| telephone: ["\u260e", "\u260e\ufe0f"], | |
| telephone_receiver: ["\ud83d\udcde"], | |
| telescope: ["\ud83d\udd2d"], | |
| tennis: ["\ud83c\udfbe"], | |
| tent: ["\u26fa", "\u26fa\ufe0f"], | |
| thought_balloon: ["\ud83d\udcad"], | |
| three: ["3\u20e3", "3\ufe0f\u20e3"], | |
| thumbsdown: ["\ud83d\udc4e"], | |
| thumbsup: ["\ud83d\udc4d"], | |
| ticket: ["\ud83c\udfab"], | |
| tiger: ["\ud83d\udc2f"], | |
| tiger2: ["\ud83d\udc05"], | |
| tired_face: ["\ud83d\ude2b"], | |
| tm: ["\u2122"], | |
| toilet: ["\ud83d\udebd"], | |
| tokyo_tower: ["\ud83d\uddfc"], | |
| tomato: ["\ud83c\udf45"], | |
| tongue: ["\ud83d\udc45"], | |
| top: ["\ud83d\udd1d"], | |
| tophat: ["\ud83c\udfa9"], | |
| tractor: ["\ud83d\ude9c"], | |
| traffic_light: ["\ud83d\udea5"], | |
| train: ["\ud83d\ude8b"], | |
| train2: ["\ud83d\ude86"], | |
| tram: ["\ud83d\ude8a"], | |
| triangular_flag_on_post: ["\ud83d\udea9"], | |
| triangular_ruler: ["\ud83d\udcd0"], | |
| trident: ["\ud83d\udd31"], | |
| triumph: ["\ud83d\ude24"], | |
| trolleybus: ["\ud83d\ude8e"], | |
| trollface: null, | |
| trophy: ["\ud83c\udfc6"], | |
| tropical_drink: ["\ud83c\udf79"], | |
| tropical_fish: ["\ud83d\udc20"], | |
| truck: ["\ud83d\ude9a"], | |
| trumpet: ["\ud83c\udfba"], | |
| tshirt: ["\ud83d\udc55"], | |
| tulip: ["\ud83c\udf37"], | |
| turtle: ["\ud83d\udc22"], | |
| tv: ["\ud83d\udcfa"], | |
| twisted_rightwards_arrows: ["\ud83d\udd00"], | |
| two: ["2\u20e3", "2\ufe0f\u20e3"], | |
| two_hearts: ["\ud83d\udc95"], | |
| two_men_holding_hands: ["\ud83d\udc6c"], | |
| two_women_holding_hands: ["\ud83d\udc6d"], | |
| u5272: ["\ud83c\ude39"], | |
| u5408: ["\ud83c\ude34"], | |
| u55b6: ["\ud83c\ude3a"], | |
| u6307: ["\ud83c\ude2f", "\ud83c\ude2f\ufe0f"], | |
| u6708: ["\ud83c\ude37"], | |
| u6709: ["\ud83c\ude36"], | |
| u6e80: ["\ud83c\ude35"], | |
| u7121: ["\ud83c\ude1a", "\ud83c\ude1a\ufe0f"], | |
| u7533: ["\ud83c\ude38"], | |
| u7981: ["\ud83c\ude32"], | |
| u7a7a: ["\ud83c\ude33"], | |
| uk: ["\ud83c\uddec\ud83c\udde7"], | |
| umbrella: ["\u2614", "\u2614\ufe0f"], | |
| unamused: ["\ud83d\ude12"], | |
| underage: ["\ud83d\udd1e"], | |
| unlock: ["\ud83d\udd13"], | |
| up: ["\ud83c\udd99"], | |
| us: ["\ud83c\uddfa\ud83c\uddf8"], | |
| v: ["\u270c", "\u270c\ufe0f"], | |
| vertical_traffic_light: ["\ud83d\udea6"], | |
| vhs: ["\ud83d\udcfc"], | |
| vibration_mode: ["\ud83d\udcf3"], | |
| video_camera: ["\ud83d\udcf9"], | |
| video_game: ["\ud83c\udfae"], | |
| violin: ["\ud83c\udfbb"], | |
| virgo: ["\u264d", "\u264d\ufe0f"], | |
| volcano: ["\ud83c\udf0b"], | |
| vs: ["\ud83c\udd9a"], | |
| walking: ["\ud83d\udeb6"], | |
| waning_crescent_moon: ["\ud83c\udf18"], | |
| waning_gibbous_moon: ["\ud83c\udf16"], | |
| warning: ["\u26a0", "\u26a0\ufe0f"], | |
| watch: ["\u231a", "\u231a\ufe0f"], | |
| water_buffalo: ["\ud83d\udc03"], | |
| watermelon: ["\ud83c\udf49"], | |
| wave: ["\ud83d\udc4b"], | |
| wavy_dash: ["\u3030"], | |
| waxing_crescent_moon: ["\ud83c\udf12"], | |
| waxing_gibbous_moon: ["\ud83c\udf14"], | |
| wc: ["\ud83d\udebe"], | |
| weary: ["\ud83d\ude29"], | |
| wedding: ["\ud83d\udc92"], | |
| whale: ["\ud83d\udc33"], | |
| whale2: ["\ud83d\udc0b"], | |
| wheelchair: ["\u267f", "\u267f\ufe0f"], | |
| white_check_mark: ["\u2705"], | |
| white_circle: ["\u26aa", "\u26aa\ufe0f"], | |
| white_flower: ["\ud83d\udcae"], | |
| white_large_square: ["\u2b1c", "\u2b1c\ufe0f"], | |
| white_medium_small_square: ["\u25fd", "\u25fd\ufe0f"], | |
| white_medium_square: ["\u25fb", "\u25fb\ufe0f"], | |
| white_small_square: ["\u25ab", "\u25ab\ufe0f"], | |
| white_square_button: ["\ud83d\udd33"], | |
| wind_chime: ["\ud83c\udf90"], | |
| wine_glass: ["\ud83c\udf77"], | |
| wink: ["\ud83d\ude09"], | |
| wolf: ["\ud83d\udc3a"], | |
| woman: ["\ud83d\udc69"], | |
| womans_clothes: ["\ud83d\udc5a"], | |
| womans_hat: ["\ud83d\udc52"], | |
| womens: ["\ud83d\udeba"], | |
| worried: ["\ud83d\ude1f"], | |
| wrench: ["\ud83d\udd27"], | |
| x: ["\u274c"], | |
| yellow_heart: ["\ud83d\udc9b"], | |
| yen: ["\ud83d\udcb4"], | |
| yum: ["\ud83d\ude0b"], | |
| zap: ["\u26a1", "\u26a1\ufe0f"], | |
| zero: ["0\u20e3", "0\ufe0f\u20e3"], | |
| zzz: ["\ud83d\udca4"] | |
| }, t = function (t, e) { | |
| var n, r; | |
| return n = t.charCodeAt(e), r = t.charCodeAt(e + 1), n >= 55296 && 56319 >= n && r >= 56320 && 57343 >= r ? 1024 * (n - 55296) + (r - 56320) + 65536 : n | |
| }, e = function (e) { | |
| var n, r, o, i, s; | |
| for (r = e.length > 2 ? [t(e, 0), t(e, 2)] : [t(e, 0)], s = [], o = 0, i = r.length; i > o; o++) n = r[o], s.push(n.toString(16)); | |
| return s | |
| }, a = function (t) { | |
| return "https://d2ph5hv9wbwvla.cloudfront.net/emoji/2/" + encodeURIComponent(t) + ".png" | |
| }, o = Emojie.canRender("\ud83c\udc04") ? function (t, e) { | |
| return { | |
| elementName: "span", | |
| content: e, | |
| title: ":" + t + ":", | |
| "class": "emojie" | |
| } | |
| } : function (t) { | |
| return { | |
| src: a(t), | |
| title: ":" + t + ":", | |
| "class": "emojie" | |
| } | |
| }, d = _.keys(i).reverse(), u = 0, c = d.length; c > u; u++) | |
| if (r = d[u], i[r]) | |
| for (h = i[r], l = 0, p = h.length; p > l; l++) s = h[l], emojie.register(s, o(r, s)); | |
| window.emojie.custom = Emojie(); | |
| for (r in i) s = i[r], s || window.emojie.custom.register(":" + r + ":", { | |
| title: ":" + r + ":", | |
| src: a(r), | |
| "class": "emojie" | |
| }); | |
| window.emojimoji.autocomplete = function () { | |
| var t; | |
| t = []; | |
| for (n in i) s = i[n], t.push(":" + n + ":"); | |
| return t | |
| }() | |
| }.call(this), | |
| function () { | |
| Flowdock.ActivityHeartbeats = function () { | |
| function t(t, e, n, r) { | |
| this.connection = e, this.flows = r, this.lastFlowActivity = {}, this.activities = n.sampledBy(t.merge(n.changes()).delay(0), function (t, e) { | |
| return { | |
| flow: t, | |
| flowChange: t === e | |
| } | |
| }) | |
| } | |
| return t.ACTIVITY_HEARTBEAT_INTERVAL = 6e4, t.prototype.start = function () { | |
| return this.stopped = !1, this.setupEmitters() | |
| }, t.prototype.stop = function () { | |
| return this.stopped = !0 | |
| }, t.prototype.userBecameActive = function (t) { | |
| var e; | |
| return e = (new Date).getTime(), null == this.lastFlowActivity[t.id] || e - this.lastFlowActivity[t.id] > Flowdock.ActivityHeartbeats.ACTIVITY_HEARTBEAT_INTERVAL | |
| }, t.prototype.setupEmitters = function () { | |
| return this.activities.onValue(function (t) { | |
| return function (e) { | |
| var n, r; | |
| return t.stopped ? Bacon.noMore : (null != e ? e.flow : void 0) ? (n = e.flow, r = (new Date).getTime(), e.flowChange || t.userBecameActive(n) ? (t.sendHeartbeat(n, r), t.lastFlowActivity[n.id] = r) : void 0) : Bacon.more | |
| } | |
| }(this)), Bacon.interval(Flowdock.ActivityHeartbeats.ACTIVITY_HEARTBEAT_INTERVAL).onValue(function (t) { | |
| return function () { | |
| return t.stopped ? Bacon.noMore : t.flows.each(function (e) { | |
| return e.get("open") ? t.sendHeartbeat(e, t.lastFlowActivity[e.id]) : void 0 | |
| }) | |
| } | |
| }(this)) | |
| }, t.prototype.sendHeartbeat = function (t, e) { | |
| var n, r, o; | |
| if (null != t && ((o = t.constructor) === Models.PrivateConversation || o === Models.Flow)) return n = t.isPrivate() ? { | |
| to: "" + t.id | |
| } : { | |
| flow: t.id | |
| }, r = null != e ? { | |
| last_activity: e | |
| } : {}, this.connection.sendStream.push(_.extend(n, { | |
| event: "activity.user", | |
| content: { | |
| last_activity: e | |
| }, | |
| persist: !1, | |
| tags: [] | |
| })) | |
| }, t | |
| }() | |
| }.call(this), | |
| function () { | |
| Flowdock.AudioNotifications = function () { | |
| function t(t, e, n) { | |
| this.format = t, this.activeFlow = e, this.user = n, this._subscriptions = [], this.muted = !1 | |
| } | |
| return t.create = function (t, e) { | |
| var n; | |
| return n = this.format(), n ? new Flowdock.AudioNotifications(n, t, e) : void 0 | |
| }, t.format = function () { | |
| var t; | |
| return t = function (t) { | |
| return _.find(["mp3", "wav"], function (e) { | |
| return Modernizr.audio[e] === t | |
| }) | |
| }, t("probably") || t("maybe") | |
| }, t.prototype.consume = function (t) { | |
| var e, n; | |
| return e = Models.Message.ignoreByFlow(t, Flowdock.windowFocus.and(this.activeFlow)).filter(function (t) { | |
| return function (e) { | |
| return e.user !== t.user.id | |
| } | |
| }(this)), n = e.map(function (t) { | |
| return function (e) { | |
| var n; | |
| return n = new Models.Message(e), t.isMention(n) ? "mention" : "chat" | |
| } | |
| }(this)), this._subscriptions.push(n.onValue(function (t) { | |
| return function (e) { | |
| var n; | |
| return t.muted ? void 0 : null != (n = t[e]) ? n.play() : void 0 | |
| } | |
| }(this))) | |
| }, t.prototype.isMention = function (t) { | |
| return t.get("to") ? Number(t.get("to")) === this.user.id && _.include(Models.Filter.Chat.prototype.event, t.get("event")) : t.highlights(this.user) | |
| }, t.prototype.fromCurrentFlow = function (t) { | |
| return this.activeFlow.sampledBy(t, function (t, e) { | |
| return (null != t ? t.isFlow() : void 0) && (null != t ? t.id : void 0) === e.flow ? e : (null != t ? t.isPrivate() : void 0) && null != e.to && t.isBetweenUsers([e.user, e.to]) ? e : !1 | |
| }).filter(function (t) { | |
| return t | |
| }) | |
| }, t.prototype.load = function (t, e) { | |
| var n, r; | |
| return n = { | |
| chat_or_mentions: ["chat", "mention"], | |
| mentions: ["mention"], | |
| none: [] | |
| }, r = Bacon.combineAsArray(t, e), this._subscriptions.push(r.onValues(function (t) { | |
| return function (e, r) { | |
| var o, i, s, a, u, l, c, p; | |
| for (l = ["chat", "mention"], i = 0, a = l.length; a > i; i++) o = l[i], delete t[o]; | |
| for (c = n[e], p = [], s = 0, u = c.length; u > s; s++) o = c[s], p.push(t.loadSound(o, r)); | |
| return p | |
| } | |
| }(this))) | |
| }, t.prototype.loadSound = function (t, e) { | |
| return this[t] = new Audio(""), this[t].src = Flowdock.audios[this.format][t], this[t].volume = e, $(this[t]).on("ended", function (e) { | |
| return function () { | |
| return e[t].load() | |
| } | |
| }(this)) | |
| }, t.prototype.mute = function (t) { | |
| return this.muted = t | |
| }, t.prototype.cleanup = function () { | |
| var t, e, n, r, o; | |
| for (r = this._subscriptions, o = [], e = 0, n = r.length; n > e; e++) t = r[e], o.push(t()); | |
| return o | |
| }, t | |
| }() | |
| }.call(this), | |
| function () { | |
| var t = {}.hasOwnProperty, | |
| e = function (e, n) { | |
| function r() { | |
| this.constructor = e | |
| } | |
| for (var o in n) t.call(n, o) && (e[o] = n[o]); | |
| return r.prototype = n.prototype, e.prototype = new r, e.__super__ = n.prototype, e | |
| }; | |
| Flowdock.Collection = function (t) { | |
| function n(t, e) { | |
| (null != e ? e.flow : void 0) && (this.flow = e.flow), this._unsubscribers = [], n.__super__.constructor.apply(this, arguments) | |
| } | |
| return e(n, t), n.prototype.addStream = function (t) { | |
| return this._unsubscribers.push(t), t | |
| }, n.prototype.untilEnd = function (t) { | |
| return this._end || (this._end = this.asEventStream("cleanup")), t.takeUntil(this._end) | |
| }, n.prototype.consume = function (t) { | |
| this.stream = t | |
| }, n.prototype.unconsume = function () { | |
| var t, e, n, r; | |
| for (r = this._unsubscribers, e = 0, n = r.length; n > e; e++)(t = r[e])(); | |
| return this._unsubscribers = [], delete this.stream, this | |
| }, n.prototype.cleanup = function () { | |
| return this.trigger("cleanup"), this.stopListening(), this.unconsume(), this.reset(), null != this.flow && (this.flow = null), null != this._end && (this._end = null), this | |
| }, n | |
| }(Backbone.Collection) | |
| }.call(this), | |
| function () { | |
| var t, e = {}.hasOwnProperty, | |
| n = function (t, n) { | |
| function r() { | |
| this.constructor = t | |
| } | |
| for (var o in n) e.call(n, o) && (t[o] = n[o]); | |
| return r.prototype = n.prototype, t.prototype = new r, t.__super__ = n.prototype, t | |
| }; | |
| t = function (t) { | |
| return t.$el.is(".dropdown") ? t.$el : t.$(".dropdown") | |
| }, Flowdock.Dropdown = function (e) { | |
| function r() { | |
| return r.__super__.constructor.apply(this, arguments) | |
| } | |
| return n(r, e), r.CLOSE_DELAY = 5e3, r.prototype.events = { | |
| "click .dropdown-toggle": "toggle", | |
| mouseleave: "_closeOnMouseLeave", | |
| mouseenter: "_clearDelayedClose" | |
| }, r.prototype.isOpen = !1, r.prototype.toggle = function (t) { | |
| var e; | |
| return Flowdock.mobile ? void 0 : (t.stopPropagation(), e = $(t.target).closest(".dropdown"), this.isOpen ? this.close(t) : ($(document).click(), this.open(t))) | |
| }, r.prototype.open = function (e) { | |
| var n; | |
| return this.isOpen ? void 0 : (n = e ? $(e.target).closest(".dropdown") : t(this), n.addClass("open"), $(document).one("click", { | |
| view: this | |
| }, this.blur), this.isOpen = !0) | |
| }, r.prototype.blur = function (t) { | |
| var e, n; | |
| return e = null != t && null != (n = t.data) ? n.view : void 0, _.delay(function () { | |
| return e.close() | |
| }) | |
| }, r.prototype.close = function () { | |
| var e; | |
| return this.isOpen ? (e = t(this), e.removeClass("open"), $(document).off("click", this.blur), clearTimeout(this.delayedClose), this.isOpen = !1) : void 0 | |
| }, r.prototype._closeOnMouseLeave = function (t) { | |
| return this.closeOnMouseLeave && this.isOpen ? this.close(t) : this.isOpen ? this.delayedClose = setTimeout(this.close.bind(this), Flowdock.Dropdown.CLOSE_DELAY) : void 0 | |
| }, r.prototype._clearDelayedClose = function () { | |
| return clearTimeout(this.delayedClose) | |
| }, r.prototype.remove = function () { | |
| return this.close(), r.__super__.remove.apply(this, arguments) | |
| }, r | |
| }(Backbone.View) | |
| }.call(this), | |
| function () { | |
| Flowdock.commit = "b38fa1788eaed8590b4ba49a0e23f19bb3d36cbe", Flowdock.assetHost = "https://d2cxspbh1aoie1.cloudfront.net", Flowdock.environment = "production", Flowdock.icons = { | |
| notification: "https://d2cxspbh1aoie1.cloudfront.net/images/flowdock-notification-icon.png", | |
| spotify: "https://d2cxspbh1aoie1.cloudfront.net/owl-assets/owl/icons/spotify-icon-green-c7732d50b90de8f34652f75656e90c10.png", | |
| pivotaltracker: "https://d2cxspbh1aoie1.cloudfront.net/owl-assets/owl/avatars/tracker-120-31d5241a012523cd97ea59347b8b7572.png", | |
| zendesk: "https://d2cxspbh1aoie1.cloudfront.net/owl-assets/owl/avatars/zendesk_45-3be88c3250f91ebace12812c39c217f7.png", | |
| uservoice: "https://d2cxspbh1aoie1.cloudfront.net/owl-assets/owl/avatars/uservoice_45-8f4c78fbf83588562a5b3d02fb72c886.png", | |
| jira: "https://d2cxspbh1aoie1.cloudfront.net/owl-assets/owl/avatars/jira_45-480fe4932a1933ff998517854ff445dc.png", | |
| confluence: "https://d2cxspbh1aoie1.cloudfront.net/owl-assets/owl/avatars/confluence_45-735ff19b71b842f98f64ec6134be7afc.png", | |
| git: "https://d2cxspbh1aoie1.cloudfront.net/owl-assets/owl/avatars/git_45-1254824760d2a7a6db52d654c87da707.png", | |
| svn: "https://d2cxspbh1aoie1.cloudfront.net/owl-assets/owl/avatars/subversion_45-876bc6df36fc7dc3cf607cf045e26464.png", | |
| mercurial: "https://d2cxspbh1aoie1.cloudfront.net/owl-assets/owl/avatars/hg_45-bbe5a86ae46225755d9752886161fb61.png", | |
| kiln: "https://d2cxspbh1aoie1.cloudfront.net/owl-assets/owl/avatars/kiln_45-d0a053ba85d689b5e6551e99368a4806.png", | |
| agilezen: "https://d2cxspbh1aoie1.cloudfront.net/owl-assets/owl/avatars/agilezen_45-2d18b860cafc17d2d99440c84386e130.png", | |
| scout: "https://d2cxspbh1aoie1.cloudfront.net/owl-assets/owl/avatars/scout_45-fcc46ae1899533982d10908fa8100111.png", | |
| pagerduty: "https://d2cxspbh1aoie1.cloudfront.net/owl-assets/owl/avatars/pagerduty_45-b94e4ba358a1993eaebe4c9160ca3acc.png", | |
| twitter: "https://d2cxspbh1aoie1.cloudfront.net/owl-assets/owl/avatars/twitter_48-db3b8fd43acf44d9287ecd2e7b2864a5.png", | |
| mail: "https://d2cxspbh1aoie1.cloudfront.net/images/function_icons/mail_48.png", | |
| rss: "https://d2cxspbh1aoie1.cloudfront.net/owl-assets/owl/avatars/rss-120-ea6720a038bac5a8b2a679c504b0fc96.png", | |
| newrelic: "https://d2cxspbh1aoie1.cloudfront.net/owl-assets/owl/avatars/newrelic_45-213c11bf859df6e8fc7cc3a747bd04c4.png", | |
| defaultAvatar: "https://d2cxspbh1aoie1.cloudfront.net/owl-assets/owl/avatars/anonymous-120-5a3ee0bcef3d2d959c1be83852d1d587.png" | |
| }, Flowdock.audios = { | |
| wav: { | |
| chat: "https://d2cxspbh1aoie1.cloudfront.net/owl-assets/chat-4d52e7200192b66ddba8b495e0d2b325.wav", | |
| mention: "https://d2cxspbh1aoie1.cloudfront.net/owl-assets/mention-f711745ff5abb1a16f1db7c55466f05b.wav" | |
| }, | |
| mp3: { | |
| chat: "https://d2cxspbh1aoie1.cloudfront.net/owl-assets/chat-0870fb7420bfab9852d09e5d82c5ec24.mp3", | |
| mention: "https://d2cxspbh1aoie1.cloudfront.net/owl-assets/mention-cff3eeb2514e1ea8d344c045f4f09376.mp3" | |
| } | |
| } | |
| }.call(this), | |
| function () { | |
| Flowdock.triggerMethod = function () { | |
| var t, e, n; | |
| return e = /(^|:)(\w)/g, t = function (t, e, n) { | |
| return n.toUpperCase() | |
| }, n = function (n) { | |
| var r, o; | |
| return o = "on" + n.replace(e, t), r = this[o], _.isFunction(this.trigger) && this.trigger.apply(this, arguments), _.isFunction(r) ? r.apply(this, _.tail(arguments)) : void 0 | |
| } | |
| }() | |
| }.call(this), | |
| function () { | |
| var t, e = {}.hasOwnProperty, | |
| n = function (t, n) { | |
| function r() { | |
| this.constructor = t | |
| } | |
| for (var o in n) e.call(n, o) && (t[o] = n[o]); | |
| return r.prototype = n.prototype, t.prototype = new r, t.__super__ = n.prototype, t | |
| }; | |
| t = function (t, e) { | |
| var n, r, o; | |
| return r = "view:" + t.toLowerCase() + ":before", n = "view:" + t.toLowerCase() + ":after", o = "on" + t, | |
| function () { | |
| var t, i, s, a; | |
| for (this.trigger(r), a = this.subviews, i = 0, s = a.length; s > i; i++) t = a[i], _.isFunction(t[e]) && t[e](); | |
| return _.isFunction(this[o]) && this[o](), _.defer(function (t) { | |
| return function () { | |
| return t.trigger(n) | |
| } | |
| }(this)) | |
| } | |
| }, Flowdock.HierarchicalView = function (e) { | |
| function r(t) { | |
| var e, n, o, i, s; | |
| if (this.subviews = [], (null != t ? t.flow : void 0) && (this.flow = t.flow), r.__super__.constructor.apply(this, arguments), null != this.model && null != this.modelEvents) { | |
| o = this.modelEvents; | |
| for (e in o) n = o[e], _.isFunction(this[n]) && this.listenTo(this.model, e, this[n]) | |
| } | |
| if (null != this.collection && null != this.collectionEvents) { | |
| i = this.collectionEvents; | |
| for (e in i) n = i[e], _.isFunction(this[n]) && this.listenTo(this.collection, e, this[n]) | |
| } | |
| if (null != this.flow && null != this.flowEvents) { | |
| s = this.flowEvents; | |
| for (e in s) n = s[e], _.isFunction(this[n]) && this.listenTo(this.flow, e, this[n]) | |
| } | |
| } | |
| return n(r, e), r.prototype.modelEvents = void 0, r.prototype.collectionEvents = void 0, r.prototype.flowEvents = void 0, r.prototype.addStream = function (t) { | |
| return this._unsubscribers || (this._unsubscribers = []), this._unsubscribers.push(t), t | |
| }, r.prototype.untilEnd = function (t) { | |
| return this._end || (this._end = this.asEventStream("destructor")), t.takeUntil(this._end) | |
| }, r.prototype.subview = function (t) { | |
| if (!(t instanceof Flowdock.HierarchicalView)) throw console.error("View is not an instance of HierarchicalView", t), new Error("View is not an instance of HierarchicalView"); | |
| return this.subviews.indexOf(t) >= 0 || this.subviews.push(t), t | |
| }, r.prototype.removeSubview = function (t, e) { | |
| var n, r, o, i, s, a; | |
| for (null == e && (e = {}), r = this.findSubviews(t), i = 0, s = r.length; s > i; i++) o = r[i], e.destroy !== !1 && o.destructor(e), this.stopListening(o), n = this.subviews.indexOf(o), n > -1 && ([].splice.apply(this.subviews, [n, n - n + 1].concat(a = [])), a); | |
| return r | |
| }, r.prototype.findSubviews = function (t) { | |
| var e, n, r, o, i, s; | |
| if (null == t) return []; | |
| if (this.subviews.indexOf(t) >= 0) return [t]; | |
| for (o = this.subviews, s = [], n = 0, r = o.length; r > n; n++) e = o[n], (e.model === t || null != t.id === (null != (i = e.model) ? i.id : void 0)) && s.push(e); | |
| return s | |
| }, r.prototype.destructor = function (t) { | |
| var e, n, r, o, i, s, a, u; | |
| for (null == t && (t = {}), a = this.subviews.slice(0), r = 0, i = a.length; i > r; r++) n = a[r], this.removeSubview(n, { | |
| removeDomElement: !1 | |
| }); | |
| if (this.subviews = [], this.trigger("destructor", t), null != this._unsubscribers) { | |
| for (u = this._unsubscribers, o = 0, s = u.length; s > o; o++)(e = u[o])(); | |
| this._unsubscribers = null | |
| } | |
| return this.undelegateEvents(), t.removeDomElement === !1 ? this.stopListening() : this.remove(), this.flow && (this.flow = null), this.model && (this.model = null), this.collection && (this.collection = null), this._end ? this._end = null : void 0 | |
| }, r.prototype.triggerAttach = t("Attach", "triggerAttach"), r.prototype.triggerDetach = t("Detach", "triggerDetach"), r | |
| }(Backbone.View) | |
| }.call(this), | |
| function () { | |
| var t = {}.hasOwnProperty, | |
| e = function (e, n) { | |
| function r() { | |
| this.constructor = e | |
| } | |
| for (var o in n) t.call(n, o) && (e[o] = n[o]); | |
| return r.prototype = n.prototype, e.prototype = new r, e.__super__ = n.prototype, e | |
| }; | |
| Flowdock.ItemView = function (t) { | |
| function n() { | |
| return n.__super__.constructor.apply(this, arguments) | |
| } | |
| return e(n, t), n.prototype.triggerMethod = Flowdock.triggerMethod, n.prototype.render = function () { | |
| var t; | |
| return (t = _.result(this, "template")) ? (this.triggerMethod("before:render"), this.$el.html(t.render(this.serializeData(), _.result(this, "partials"))), this.triggerMethod("after:render"), this) : console.error("Template is not defined", "TemplateNotFoundError") | |
| }, n.prototype.serializeData = function () { | |
| return {} | |
| }, n | |
| }(Flowdock.HierarchicalView) | |
| }.call(this), | |
| function () { | |
| Flowdock.KeyboardEvents = { | |
| bindKeyboardEvents: function () { | |
| return null != this.keyboardEvents ? this.listenToOnce(this, "view:attach:after", function () { | |
| var t; | |
| return t = null != this.keyboardEventFilter ? Flowdock.app.shortcutStream.filter(this.keyboardEventFilter) : Flowdock.app.shortcutStream, null != t ? this.addStream(t.filter(function (t) { | |
| return function (e) { | |
| return null != t.keyboardEvents[e.action] | |
| } | |
| }(this)).onValue(function (t) { | |
| return function (e) { | |
| var n; | |
| return n = t.keyboardEvents[e.action], _.isFunction(n) || (n = t[t.keyboardEvents[e.action]]), null != n ? n.call(t, e) : void 0 | |
| } | |
| }(this))) : void 0 | |
| }) : void 0 | |
| } | |
| } | |
| }.call(this), | |
| function () { | |
| String.capitalize = function (t) { | |
| return t ? t.replace(/^\w/, function (t) { | |
| return t.toUpperCase() | |
| }) : null | |
| } | |
| }.call(this), | |
| function () { | |
| var t, e, n = [].slice, | |
| r = [].indexOf || function (t) { | |
| for (var e = 0, n = this.length; n > e; e++) | |
| if (e in this && this[e] === t) return e; | |
| return -1 | |
| }; | |
| t = { | |
| backspace: 8, | |
| tab: 9, | |
| enter: 13, | |
| esc: 27, | |
| spacebar: 32, | |
| pagedown: 33, | |
| pageup: 34, | |
| home: 35, | |
| end: 36, | |
| left: 37, | |
| up: 38, | |
| right: 39, | |
| down: 40, | |
| "delete": 46, | |
| forwardSlash: [47, 191], | |
| numeric: [48, 49, 50, 51, 52, 53, 54, 55, 56, 57], | |
| "?": 63, | |
| a: 65, | |
| b: 66, | |
| c: 67, | |
| d: 68, | |
| e: 69, | |
| f: 70, | |
| g: 71, | |
| h: 72, | |
| i: 73, | |
| j: 74, | |
| k: 75, | |
| l: 76, | |
| m: 77, | |
| n: 78, | |
| o: 79, | |
| p: 80, | |
| q: 81, | |
| r: 82, | |
| s: 83, | |
| t: 84, | |
| u: 85, | |
| v: 86, | |
| w: 87, | |
| x: 88, | |
| y: 89, | |
| z: 90, | |
| comma: 188 | |
| }, e = { | |
| ctrl: "ctrlKey", | |
| alt: "altKey", | |
| meta: "metaKey", | |
| cmd: "metaKey", | |
| shift: "shiftKey" | |
| }, t.cursor = [t.left, t.up, t.right, t.down], window.KeyEvent = { | |
| keymap: t, | |
| modifierDown: function (t) { | |
| return t.ctrlKey || t.altKey || t.metaKey | |
| }, | |
| is: function () { | |
| var o, i, s; | |
| return s = 1 <= arguments.length ? n.call(arguments, 0) : [], o = _.flatten(s.map(function (t) { | |
| return t.split(":") | |
| })), i = [], _.each(o, function (n) { | |
| var r; | |
| return r = { | |
| modifiers: [], | |
| keyCodes: [] | |
| }, _.each(n.split("+"), function (n) { | |
| var o, i; | |
| return (o = t[n]) ? r.keyCodes.push(o) : (i = e[n]) ? r.modifiers.push(i) : void 0 | |
| }), r.keyCodes = _.flatten(r.keyCodes), i.push(r) | |
| }), | |
| function (t) { | |
| var e; | |
| return "keypress" === t.type ? (e = String.fromCharCode(t.which), r.call(o, e) >= 0) : null != _.find(i, function (e) { | |
| var n, o, i, s, a, u; | |
| for (o = [], a = ["ctrlKey", "altKey", "metaKey", "shiftKey"], i = 0, s = a.length; s > i; i++) n = a[i], t[n] === !0 && o.push(n); | |
| return _.isEqual(o.sort(), e.modifiers.sort()) ? (u = t.which, r.call(e.keyCodes, u) >= 0 ? !0 : void 0) : !1 | |
| }) | |
| } | |
| }, | |
| not: function () { | |
| var e, o, i; | |
| return i = 1 <= arguments.length ? n.call(arguments, 0) : [], e = _.flatten(function () { | |
| var e, n, r; | |
| for (r = [], e = 0, n = i.length; n > e; e++) o = i[e], r.push(t[o]); | |
| return r | |
| }()), | |
| function (t) { | |
| var n; | |
| return n = t.which, !(r.call(e, n) >= 0) | |
| } | |
| } | |
| } | |
| }.call(this), | |
| function () { | |
| Flowdock.shortcutMap = { | |
| web: { | |
| esc: function () { | |
| return document.activeElement.blur() | |
| }, | |
| "esc w": "closeTab", | |
| "esc u": "toggleUserList", | |
| "esc comma": "openPreferences", | |
| "esc numeric": "navigateToNthTab", | |
| "esc d": "quickMute", | |
| "esc left": "previousTab", | |
| "esc right": "nextTab", | |
| "esc n": "newTab", | |
| "esc t": "newTab", | |
| "esc f": "focusSearch", | |
| "esc i": "focusChat", | |
| tab: function () { | |
| var t; | |
| return t = window.lastFocusedInput.replace(/^[A-z]{1}/, function (t) { | |
| return t.toUpperCase() | |
| }), "focus" + t | |
| } | |
| }, | |
| alwaysAvailable: { | |
| "?": "openHelp" | |
| }, | |
| macGap: { | |
| "cmd+numeric": "navigateToNthTab", | |
| "ctrl+tab": "nextTab", | |
| "ctrl+shift+tab": "previousTab" | |
| } | |
| }, Flowdock.KeyboardShortcuts = function () { | |
| function t(t, e) { | |
| this.keydowns = t, this.shortcuts = e | |
| } | |
| return t.build = function (t) { | |
| return new this(keydownsNotInInput, t) | |
| }, t.bind = function (e, n, r) { | |
| var o, i; | |
| return null == r && (r = []), i = 0 === r.length ? e.filter(KeyEvent.is(n[0])) : (o = Bacon.later(1e3, !0), e.take(1).filter(KeyEvent.is(n[0])).takeUntil(o)), i.flatMap(function (o) { | |
| return 1 === n.length ? Bacon.once(o) : t.bind(e, n.slice(1), r.concat(o)).take(1) | |
| }) | |
| }, t._isNotInput = function (t) { | |
| var e; | |
| return e = t.target || t.srcElement, !("INPUT" === e.tagName || "SELECT" === e.tagName || "TEXTAREA" === e.tagName || e.contentEditable && ("true" === e.contentEditable || "plaintext-only" === e.contentEditable)) | |
| }, t.keyStream = function () { | |
| return Bacon.mergeAll([$(document).asEventStream("keydown").filter(function (t) { | |
| return !(t.altKey || t.shiftKey) | |
| }), $(document).asEventStream("keypress").filter(function (t) { | |
| return t.altKey || t.shiftKey | |
| })]) | |
| }, t.prototype.when = function (e) { | |
| var n; | |
| return n = e.flatMapLatest(function (t) { | |
| return function (e) { | |
| return e ? t.keydowns : Bacon.never() | |
| } | |
| }(this)), new t(n, this.shortcuts) | |
| }, t.prototype.toStream = function (e) { | |
| var n, r, o, i; | |
| return null == e && (e = Bacon.constant(!0)), r = this.keydowns.filter(function (t) { | |
| return 27 === t.which || Flowdock.KeyboardShortcuts._isNotInput(t) | |
| }), r = r.merge(e.flatMapLatest(function (t) { | |
| return function (e) { | |
| return e ? t.keydowns.filter(function (t) { | |
| return KeyEvent.modifierDown(t) | |
| }) : Bacon.never() | |
| } | |
| }(this))), i = function () { | |
| var e, i; | |
| e = this.shortcuts, i = []; | |
| for (o in e) n = e[o], i.push(function (e) { | |
| return function (n) { | |
| return t.bind(r, o.split(" ")).map(function (t) { | |
| var r; | |
| return r = _.isFunction(n) ? n.call(e, t) : n, new $.Event(t, { | |
| action: r | |
| }) | |
| }) | |
| } | |
| }(this)(n)); | |
| return i | |
| }.call(this), Bacon.mergeAll(i).throttle(50) | |
| }, t | |
| }(), Flowdock.KeyboardShortcuts.forMacGap = function () { | |
| return Bacon.mergeAll([new Flowdock.KeyboardShortcuts($(document).asEventStream("keydown"), Flowdock.shortcutMap.macGap).toStream(), $(document).asEventStream("macgapNextTab").map(function (t) { | |
| return t.action = "nextTab", t | |
| }), $(document).asEventStream("macgapPreviousTab").map(function (t) { | |
| return t.action = "previousTab", t | |
| }), $(document).asEventStream("macgapNextThread").map(function (t) { | |
| return t.action = "nextThread", t | |
| }), $(document).asEventStream("macgapPreviousThread").map(function (t) { | |
| return t.action = "previousThread", t | |
| }), $(document).asEventStream("macgapOpenTab").map(function (t) { | |
| return t.action = "newTab", t | |
| }), $(document).asEventStream("macgapCloseTab").map(function (t) { | |
| return t.action = "closeTab", t | |
| }), $(document).asEventStream("macgapOpenKeyboardHelp").map(function (t) { | |
| return t.action = "openHelp", t | |
| }), $(document).asEventStream("macgapOpenChatCommandHelp").map(function (t) { | |
| return t.action = "openChatCommandHelp", t | |
| })]) | |
| } | |
| }.call(this), | |
| function () { | |
| var t; | |
| t = { | |
| titleFor: function (t) { | |
| var e, n, r; | |
| return e = t.flow(), n = t.user(), e.isPrivate() ? n.get("nick") || (null != (r = Flowdock.app.users.get(n.id)) ? r.get("nick") : void 0) || "" : n ? "" + n.get("nick") + " - " + e.fullName() : e.fullName() | |
| }, | |
| messageFilter: function (e, n, r) { | |
| return Models.Message.ignoreByFlow(Models.Message.fromOpenFlows(e, n), t.ignoredFlow(r, Flowdock.windowFocus)).filter(function (t) { | |
| return String(t.user) !== String(Flowdock.app.user.id) | |
| }).map(function (t) { | |
| return new Models.Message(t) | |
| }) | |
| }, | |
| format: function (e) { | |
| var n, r, o; | |
| try { | |
| return { | |
| title: t.titleFor(e), | |
| body: null != (r = e.presenter()) ? r.summary() : void 0, | |
| icon: null != (o = e.user()) ? o.avatar(30) : void 0 | |
| } | |
| } catch (i) { | |
| return n = i, console.error(n), console.error("Could not render notification for ", e) | |
| } | |
| }, | |
| display: function (e, n) { | |
| var r, o, i, s, a; | |
| return r = t.format(n), (null != r ? r.body : void 0) ? (o = n.flow(), i = "influx" === n.get("app") ? function () { | |
| return Flowdock.app.router.navigateTo({ | |
| message: n, | |
| flow: o | |
| }) | |
| } : n.parent() ? function () { | |
| return Flowdock.app.router.navigateTo({ | |
| message: n.parent(), | |
| flow: o | |
| }) | |
| } : function () { | |
| var t; | |
| return null != (t = Flowdock.app.router) ? t.navigateBackToFlow(o) : void 0 | |
| }, a = "influx" === n.get("app") ? n.id : n.parent() ? n.parent() : null, s = null != o.path ? o.path() : o.isPrivate() ? "private/" + o.id : void 0, e.closingNotification(r.title, { | |
| body: r.body, | |
| icon: r.icon, | |
| payload: JSON.stringify({ | |
| flowPath: s, | |
| message: a | |
| }), | |
| onclick: function () { | |
| return i(), window.focus() | |
| } | |
| })) : void 0 | |
| }, | |
| ignoredFlow: function (t, e) { | |
| return t.map(function (t) { | |
| return t || !1 | |
| }).combine(e, function (t, e) { | |
| return e ? t : !1 | |
| }) | |
| } | |
| }, Flowdock.messageDesktopNotifications = function (e, n, r, o) { | |
| return t.messageFilter(n, r, o).onValue(function (n) { | |
| return t.display(e, n) | |
| }) | |
| }, _.extend(Flowdock.messageDesktopNotifications, t) | |
| }.call(this), | |
| function () { | |
| var t = function (t, e) { | |
| return function () { | |
| return t.apply(e, arguments) | |
| } | |
| }; | |
| Flowdock.NotificationCenter = function () { | |
| function e(e, n) { | |
| var r; | |
| this.Notification = e, this.throttled = null != n ? n : !0, this.muteEnded = t(this.muteEnded, this), this.hasPermission = t(this.hasPermission, this), this.queueNotification = t(this.queueNotification, this), this.dispatchNotification = t(this.dispatchNotification, this), this.subscriptions = [], this.notifications = [], r = Flowdock.app.preferences.mute(), this.mutedQueue = [], this.noteBus = new Bacon.Bus, r.diff(!1, function (t, e) { | |
| return t && !e | |
| }).filter(function (t) { | |
| return t | |
| }).onValue(this.muteEnded), this.noteBus.filter(r).onValue(this.queueNotification), this.addStream(this.noteBus.filter(r.not()).filter(this.hasPermission).filter(function (t) { | |
| return function () { | |
| return !t.throttlingRequired() | |
| } | |
| }(this)).onValue(this.dispatchNotification)) | |
| } | |
| return e.prototype.notificationLimit = 3, e.prototype.addStream = function (t) { | |
| return this.subscriptions.push(t) | |
| }, e.prototype.closingNotification = function (t, e) { | |
| return null == e && (e = {}), this.noteBus.push({ | |
| title: t, | |
| options: e | |
| }) | |
| }, e.prototype.dispatchNotification = function (t) { | |
| var e, n, r, o, i, s; | |
| return n = (null != (s = t.options) ? s.onclick : void 0) || function () {}, o = this.createNotification(t.title, _.omit(t.options, "onclick")), e = function () { | |
| return clearTimeout(i), setTimeout(function () { | |
| return o.close() | |
| }, 5e3) | |
| }, i = setTimeout(function () { | |
| return o.close() | |
| }, 3e4), n && o.addEventListener("click", n), o.addEventListener("show", e), o.addEventListener("close", r = function (t) { | |
| return function () { | |
| return t.notifications = _.reject(t.notifications, function (t) { | |
| return t === o | |
| }), setTimeout(function () { | |
| return n && o.removeEventListener("click", n), o.removeEventListener("show", e), o.removeEventListener("close", r) | |
| }, 0) | |
| } | |
| }(this)), this.notifications.push(o), o | |
| }, e.prototype.createNotification = function (t, e) { | |
| return new this.Notification(t, e) | |
| }, e.prototype.queueNotification = function (t, e) { | |
| return this.mutedQueue.push({ | |
| title: t, | |
| options: e | |
| }) | |
| }, e.prototype.throttlingRequired = function () { | |
| return this.throttled && this.notifications.length >= this.notificationLimit | |
| }, e.prototype.hasPermission = function () { | |
| return "granted" === this.permissionLevel() | |
| }, e.prototype.requestPermission = function (t) { | |
| return null == this.Notification ? void(t && t("denied")) : this.Notification.requestPermission(function (e) { | |
| return function () { | |
| return t(e.permissionLevel()) | |
| } | |
| }(this)) | |
| }, e.prototype.permissionLevel = function () { | |
| var t, e; | |
| return null != (null != (t = this.Notification) ? t.permission : void 0) ? this.Notification.permission : (null != (e = this.Notification) ? e.permissionLevel : void 0) ? this.Notification.permissionLevel() : "denied" | |
| }, e.prototype.muteEnded = function () { | |
| var t, e, n, r; | |
| if (this.mutedQueue.length < 5) | |
| for (r = this.mutedQueue, e = 0, n = r.length; n > e; e++) t = r[e], this.dispatchNotification(t.title, t.options); | |
| else this.dispatchNotification({ | |
| title: "" + this.mutedQueue.length + " new messages", | |
| options: { | |
| body: "Sent while you were in Do Not Disturb mode.", | |
| onclick: function () {} | |
| } | |
| }); | |
| return this.mutedQueue = [] | |
| }, e.prototype.destructor = function () { | |
| var t, e, n, r; | |
| for (r = this.subscriptions, e = 0, n = r.length; n > e; e++)(t = r[e])(); | |
| return this.mutedQueue = this.notifications = null | |
| }, e.prototype.close = function () { | |
| var t, e, n, r; | |
| for (r = this.notifications, e = 0, n = r.length; n > e; e++) t = r[e], t.close(); | |
| return this.notifications = [] | |
| }, e.create = function (t) { | |
| var e; | |
| return e = new Flowdock.NotificationCenter(NotificationPolyfill.bestAlternative()), $(t).bind("beforeunload", function () { | |
| return e.close() | |
| }), e | |
| }, e | |
| }() | |
| }.call(this), | |
| function () { | |
| var t, e; | |
| e = $(window).asEventStream("resize"), Flowdock.resize = t = { | |
| window: { | |
| move: e, | |
| end: e.debounce(500) | |
| }, | |
| splitter: { | |
| move: $(document).asEventStream("split-resize"), | |
| end: $(document).asEventStream("split-resize-end").debounce(10) | |
| } | |
| }, _.extend(Flowdock.resize, { | |
| moves: Bacon.mergeAll([t.window.move, t.splitter.move]), | |
| ends: Bacon.mergeAll([t.window.end, t.splitter.end]) | |
| }) | |
| }.call(this), | |
| function () { | |
| Flowdock.TitleManager = function () { | |
| function t(t, e, n) { | |
| this.activityProperty = t, this.activeFlow = e, this.user = n.id || n | |
| } | |
| return t.prototype.start = function () { | |
| return Bacon.combineAsArray(this.activeFlow, this.activityProperty, Flowdock.app.preferences.mute()).flatMapLatest(function (t) { | |
| var e, n, r, o; | |
| return n = t[0], e = t[1], r = t[2], r ? Bacon.once([n, { | |
| chat: !1, | |
| mentions: 0 | |
| }]) : (o = n ? n.asProperty("name").changes().map([n, e]) : Bacon.never(), Bacon.once([n, e]).merge(o)) | |
| }).onValue(this.update) | |
| }, t.prototype.update = function (e) { | |
| var n, r; | |
| return r = e[0], n = e[1], Helpers.setWindowTitle(r, n.chat, n.mentions), t.setDockBadge(n.chat, n.mentions) | |
| }, t.setDockBadge = function (t, e) { | |
| return null != window.macgap ? macgap.dock.badge = e ? "" + e : t ? "\u22ef" : null : void 0 | |
| }, t | |
| }() | |
| }.call(this), | |
| function () { | |
| var t = function (t, e) { | |
| return function () { | |
| return t.apply(e, arguments) | |
| } | |
| }; | |
| Flowdock.Tutorial = function () { | |
| function e(e) { | |
| this.cleanUpHelps = t(this.cleanUpHelps, this), this.inbox_seen = e.inbox_seen, this.tasks = e.tasks.filter(function (t) { | |
| return null === t.completed_at | |
| }), this.flow_id = e.flow, this.cleanups = [] | |
| } | |
| return e.prototype.isNew = function () { | |
| return this.tasks.some(function (t) { | |
| return "chat" === t.name | |
| }) | |
| }, e.prototype.consume = function (t) { | |
| var e, n, r, o, i; | |
| for (this._subscriptions = [], this._stream = t.filter(function (t) { | |
| return function (e) { | |
| return e.flow === t.flow_id && e.id | |
| } | |
| }(this)), o = this.tasks, i = [], n = 0, r = o.length; r > n; n++) e = o[n], i.push(this._subscriptions.push(this.whenTaskCompleted(e.name).take(1).onValue(function (t) { | |
| return function (e) { | |
| return t.onCompleted(e) | |
| } | |
| }(this)))); | |
| return i | |
| }, e.prototype.onCompleted = function (t) { | |
| return $.post("/owl/tutorial", { | |
| completed: t, | |
| flow: this.flow_id, | |
| _method: "PUT" | |
| }) | |
| }, e.prototype.whenTaskCompleted = function (t) { | |
| var e, n, r; | |
| return e = { | |
| chat: this.chatTaskFilter, | |
| comment: this.commentTaskFilter, | |
| influx: this.inboxTaskFilter, | |
| invite: this.inviteTaskFilter | |
| }, r = { | |
| avatarupload: { | |
| event: "change:avatar", | |
| filter: this.avatarTaskFilter | |
| } | |
| }, null != e[t] ? this._stream.filter(e[t]).map(function () { | |
| return t | |
| }) : (n = r[t], Flowdock.app.user.asEventStream(n.event).filter(n.filter).map(function () { | |
| return t | |
| })) | |
| }, e.prototype.cleanup = function () { | |
| var t, e, n, r; | |
| for (r = this._subscriptions, e = 0, n = r.length; n > e; e++)(t = r[e])(); | |
| return this._subscriptions = [], this.cleanUpHelps() | |
| }, e.prototype.chatTaskFilter = function (t) { | |
| var e; | |
| return !Flowdock.Tutorial.prototype.inviteTaskFilter(t) && ("message" === (e = t.event) || "comment" === e || "file" === e || "action" === e || "status" === e) && t.user === Flowdock.app.user.id | |
| }, e.prototype.commentTaskFilter = function (t) { | |
| return "comment" === t.event && t.user === Flowdock.app.user.id | |
| }, e.prototype.inboxTaskFilter = function (t) { | |
| var e, n, r; | |
| return "mail" === t.event && !(null != (n = t.content.from) && null != (r = n[0]) && "function" == typeof (e = r.address).match ? e.match(/.+@flowdock.com$/) : void 0) | |
| }, e.prototype.inviteTaskFilter = function (t) { | |
| return "open-invitation-enable" === t.event || "action" === t.event && "invite" === t.content.type || "backend.join.user" === t.event | |
| }, e.prototype.avatarTaskFilter = function (t) { | |
| return null != t.avatar().match(/local/) | |
| }, e.prototype.start = function (t) { | |
| return this.flow = t, this.inbox_seen || this.viewInboxHelp(this.flow.inbox), this.isNew() ? ("function" == typeof ga && ga("send", "event", "tutorial", "start"), this.viewUserBarHelp(this.flow.chat.users)) : void 0 | |
| }, e.prototype.viewInboxHelp = function (t) { | |
| var e; | |
| return e = function (e) { | |
| return function () { | |
| var n, r, o; | |
| return n = t.toolbar.$("button#inbox-settings"), o = "show", r = $(HoganTemplates["owl/templates/tutorial/mail_help"].render({ | |
| url: Helpers.urlFor({ | |
| flow: e.flow.model, | |
| settings: { | |
| active: "inbox" | |
| } | |
| }) | |
| })), r.find(".inbox-example").click(function (n) { | |
| return $.post("/owl/tutorial/inbox_example", { | |
| flow: e.flow.model.id | |
| }), e.removeInboxTutorial(r, t), n.preventDefault() | |
| }), r.find(".set-sources").click(function () { | |
| return _.defer(function () { | |
| return e.removeInboxTutorial(r, t) | |
| }) | |
| }), t.messageList.$el.prepend(r), e.flow.model.fullyLoaded.done(function () { | |
| return t.messageList.$(".info-message.last-message").hide() | |
| }), e.cleanups.push(function () { | |
| return _.pluck(messages, "remove") | |
| }) | |
| } | |
| }(this), t.messageList.on("render", e), this.cleanups.push(function () { | |
| return t.messageList.off("render", e) | |
| }) | |
| }, e.prototype.removeInboxTutorial = function (t, e) { | |
| return $.ajax({ | |
| url: "/owl/tutorial", | |
| type: "PUT", | |
| data: { | |
| flow: this.flow.model.id, | |
| inbox_seen: !0 | |
| }, | |
| complete: function () { | |
| return e.messageList.$(".info-message.last-message").show() | |
| } | |
| }), t.remove() | |
| }, e.prototype.viewUserBarHelp = function (t) { | |
| var e, n, r, o, i; | |
| return n = t.$("button#user-settings"), n.tipsy({ | |
| gravity: "ne", | |
| trigger: "manual", | |
| fallback: "Click here to invite your team!" | |
| }), i = "show", r = function () { | |
| var t, e; | |
| for (e = [], o = t = 0; 4 >= t; o = ++t) e.push($("<li>").addClass("dummy").append($("<div>").addClass("user-avatar").on("mouseenter mouseleave", function () { | |
| return n.toggleClass("hover").tipsy(i), i = "show" === i ? "hide" : "show" | |
| }))); | |
| return e | |
| }(), e = function () { | |
| return t.$(".userbar.online").append(r) | |
| }, t.on("render", e), n.one("click", this.cleanUpHelps), this.cleanups.push(function (o) { | |
| return function () { | |
| return r = null, t.off("render", e), n.off("click", o.cleanUpHelps), t.$(".userbar.online .dummy").remove() | |
| } | |
| }(this)) | |
| }, e.prototype.cleanUpHelps = function () { | |
| return this.cleanups.forEach(function (t) { | |
| return t() | |
| }) | |
| }, e.slides = [{ | |
| name: "welcome", | |
| template: HoganTemplates["owl/templates/tutorial/slides/welcome"] | |
| }, { | |
| name: "chat", | |
| template: HoganTemplates["owl/templates/tutorial/slides/chat"] | |
| }, { | |
| name: "inbox", | |
| template: HoganTemplates["owl/templates/tutorial/slides/inbox"] | |
| }], e | |
| }() | |
| }.call(this), | |
| function () { | |
| var t; | |
| t = function () { | |
| function t(t) { | |
| this.typing = t | |
| } | |
| return t.prototype.toStream = function (t) { | |
| var e; | |
| return e = function (t, e) { | |
| return t === e || void 0 === t && e === !1 | |
| }, this.typing.skipDuplicates(e).flatMapLatest(function (e) { | |
| return e ? Bacon.interval(t, e).merge(Bacon.once(e)) : null != e ? Bacon.once(!1) : Bacon.never() | |
| }) | |
| }, t.prototype.toMessages = function (t, e) { | |
| var n; | |
| return n = this.toStream(e), t.flatMapLatest(function (t) { | |
| return n.map(function (e) { | |
| var n; | |
| return n = { | |
| event: "activity.user", | |
| content: { | |
| typing: e | |
| }, | |
| persist: !1, | |
| tags: [] | |
| }, t.isPrivate() ? _.extend(n, { | |
| to: "" + t.id | |
| }) : _.extend(n, { | |
| flow: t.id | |
| }) | |
| }) | |
| }) | |
| }, t.prototype.when = function (e) { | |
| var n; | |
| return n = e.flatMapLatest(function (t) { | |
| return function (e) { | |
| return e ? t.typing : Bacon.constant(void 0) | |
| } | |
| }(this)), new t(n, this.interval) | |
| }, t.build = function (e, n, r) { | |
| return new t(this.asProperty(e, n, r)) | |
| }, t.asProperty = function (t, e, n) { | |
| var r, o; | |
| return o = t.asEventStream("keyup", e).map(function (t) { | |
| var e, n; | |
| return e = $(t.target), n = e.val(), n.length > 0 && 0 !== n.indexOf("/") ? e.attr("data-input-id") : !1 | |
| }), r = t.asEventStream("reset", e).map(void 0), o.merge(r).flatMapLatest(function (t) { | |
| var e; | |
| return e = Bacon.once(t), t ? e.merge(Bacon.later(n, !1)) : e | |
| }).toProperty() | |
| }, t | |
| }(), Flowdock.TypingActivity = t | |
| }.call(this), | |
| function () { | |
| var t, e, n; | |
| Flowdock.UserActivity = t = { | |
| IDLE_THRESHOLD: 12e4, | |
| MOUSEMOVE_INTERVAL: 5e3, | |
| KEYDOWN_INTERVAL: 3e3 | |
| }, _.extend(t, { | |
| mousemoves: Bacon.throttledStream(document, "mousemove", t.MOUSEMOVE_INTERVAL), | |
| focuses: $(window).asEventStream("focus"), | |
| blurs: $(window).asEventStream("blur"), | |
| keydowns: Bacon.throttledStream(document, "keydown", t.KEYDOWN_INTERVAL) | |
| }), t.visibility = (n = Modernizr.prefixed("hidden", document, !1)) ? (e = n.replace(/[Hh]idden/, ""), $(document).asEventStream("" + e + "visibilitychange").map(function () { | |
| return !document[n] | |
| })) : Bacon.never(), Flowdock.userActivity = Bacon.mergeAll([t.mousemoves, t.focuses, t.keydowns]), Flowdock.appFocus = Bacon.mergeAll([Flowdock.userActivity.flatMapLatest(function () { | |
| return Bacon.once(!0).merge(Bacon.later(t.IDLE_THRESHOLD, !1)) | |
| }), t.visibility, t.blurs.map(function () { | |
| return !1 | |
| })]).toProperty(!0).skipDuplicates(), Flowdock.windowFocus = Bacon.mergeAll([t.blurs.map(function () { | |
| return !1 | |
| }), t.focuses.map(function () { | |
| return !0 | |
| }), t.visibility]).toProperty(!0).skipDuplicates() | |
| }.call(this), | |
| function () { | |
| var t, e, n = function (t, e) { | |
| return function () { | |
| return t.apply(e, arguments) | |
| } | |
| }, | |
| r = [].slice, | |
| o = [].indexOf || function (t) { | |
| for (var e = 0, n = this.length; n > e; e++) | |
| if (e in this && this[e] === t) return e; | |
| return -1 | |
| }; | |
| t = 540, e = 720, Flowdock.WhiteSpaceControl = function () { | |
| function i(t, e) { | |
| this.preference = t, this.resize = e, this.setClass = n(this.setClass, this), this.panelWidths = n(this.panelWidths, this), this.lowestWidth = n(this.lowestWidth, this), this.panelWidthToWhiteSpaceClass = n(this.panelWidthToWhiteSpaceClass, this), _.extend(this, Backbone.Events) | |
| } | |
| return i.prototype.klasses = { | |
| body: "compact normal cozy", | |
| inbox: "compact-inbox normal-inbox cozy-inbox", | |
| chat: "compact-chat normal-chat cozy-chat" | |
| }, i.prototype.start = function () { | |
| var t, e; | |
| return Bacon.combineWith(this.pickLowest, this.resize.map(function (t) { | |
| return function () { | |
| return t.panelWidthToWhiteSpaceClass(t.lowestWidth()) | |
| } | |
| }(this)).toProperty(this.panelWidthToWhiteSpaceClass(this.lowestWidth())), this.preference).skipDuplicates().onValue(this.setClass), e = this.panelClassProperty(function (t) { | |
| return function () { | |
| return t.panelWidthToWhiteSpaceClass(t.inboxWidth()) | |
| } | |
| }(this)), t = this.panelClassProperty(function (t) { | |
| return function () { | |
| return t.panelWidthToWhiteSpaceClass(t.chatWidth()) | |
| } | |
| }(this)), e.onValue(function (t) { | |
| return function (e) { | |
| return t.setClass(e, "inbox") | |
| } | |
| }(this)), t.onValue(function (t) { | |
| return function (e) { | |
| return t.setClass(e, "chat") | |
| } | |
| }(this)) | |
| }, i.prototype.panelWidthToWhiteSpaceClass = function (n) { | |
| return t > n ? "compact" : e > n ? "normal" : "cozy" | |
| }, i.prototype.panelClassProperty = function (t) { | |
| return this.resize.map(t).toProperty(t()).skipDuplicates() | |
| }, i.prototype.lowestWidth = function () { | |
| return Math.min.apply(Math, this.panelWidths().filter(function (t) { | |
| return t | |
| })) | |
| }, i.prototype.panelWidths = function () { | |
| return [this.chatWidth(), this.inboxWidth()] | |
| }, i.prototype.chatWidth = function () { | |
| return $("#chat").width() | |
| }, i.prototype.inboxWidth = function () { | |
| return $(".inbox-panel").width() | |
| }, i.prototype.element = function () { | |
| return $("body") | |
| }, i.prototype.pickLowest = function () { | |
| var t; | |
| return t = 1 <= arguments.length ? r.call(arguments, 0) : [], o.call(t, "compact") >= 0 ? "compact" : o.call(t, "normal") >= 0 ? "normal" : "cozy" | |
| }, i.prototype.setClass = function (t, e) { | |
| var n, r, o; | |
| return e ? (o = "" + t + "-" + e, r = "change-" + e) : (o = t, r = "change"), n = this.element(), this.trigger("before-" + r, t), n.removeClass(this.klasses[e || "body"]).addClass(o), this.trigger("after-" + r, t) | |
| }, i | |
| }() | |
| }.call(this), | |
| function (t) { | |
| function e(t) { | |
| var e = t.toLowerCase(); | |
| return e = e.replace(new RegExp("[\xe0\xe1\xe2\xe4\xe5]", "g"), "a"), e = e.replace(new RegExp("\xe6", "g"), "ae"), e = e.replace(new RegExp("\xe7", "g"), "c"), e = e.replace(new RegExp("[\xe8\xe9\xea\xeb]", "g"), "e"), e = e.replace(new RegExp("[\xec\xed\xee\xef]", "g"), "i"), e = e.replace(new RegExp("\xf1", "g"), "n"), e = e.replace(new RegExp("[\xf2\xf3\xf4\xf5\xf6]", "g"), "o"), e = e.replace(new RegExp("\u0153", "g"), "oe"), e = e.replace(new RegExp("[\xf9\xfa\xfb\xfc]", "g"), "u"), e = e.replace(new RegExp("[\xfd\xff]", "g"), "y") | |
| } | |
| t.fn.autoComplete = function (n) { | |
| if (window.addEventListener) { | |
| var r = { | |
| sort: !0 | |
| }; | |
| return t.extend(r, n), r.source instanceof Array ? r.words = function () { | |
| return r.source | |
| } : "function" == typeof r.source && (r.words = r.source), this.each(function () { | |
| function n(t) { | |
| if (t.selectionStart) return t.selectionStart; | |
| if (document.selection) { | |
| t.focus(); | |
| var e = document.selection.createRange(); | |
| if (null == e) return 0; | |
| var n = t.createTextRange(), | |
| r = n.duplicate(); | |
| n.moveToBookmark(e.getBookmark()), r.setEndPoint("EndToStart", n); | |
| for (var o = 0, i = 0; i < r.text.length; i++) "\r\n" == r.text.substr(i, 2) && (o += 2, i++); | |
| return r.text.length + o | |
| } | |
| return 0 | |
| } | |
| function o(t, e) { | |
| for (var n = [], r = 0, o = t.length, i = e.length, s = 0; o >= s; s++) n[s] = [], n[s][0] = s; | |
| for (var a = 0; i >= a; a++) n[0][a] = a; | |
| for (s = 1; o >= s; s++) | |
| for (a = 1; i >= a; a++) { | |
| r = t[s] == e[a] ? 0 : 1; | |
| var u = n[s - 1][a] + 1, | |
| l = n[s][a - 1] + 1, | |
| c = n[s - 1][a - 1] + r; | |
| u > l && (u = l), u > c && (u = c), n[s][a] = u, s > 1 && a > 1 && t[s] === e[a - 1] && t[s - 1] === e[a] && (n[s][a] = Math.min(n[s][a], n[s - 2][a - 2] + r)) | |
| } | |
| return n[o][i] | |
| } | |
| function s() { | |
| var s = n(T), | |
| u = T.value.substr(0, s).match(/\s?([^\s]+)$/); | |
| if (u && (m = e(u[1])), !u || m.length < 1 || T.value.charAt(s) && !T.value.charAt(s).match(/\s/)) return m = void 0, []; | |
| var l, c = m.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&"); | |
| l = a() ? "^" + c + ".*" : ".*" + c.split("").reduce(function (t, e) { | |
| return "\\" === t.slice(-1) ? t + e : m[0] === t ? t + ".*" + e : t + ".{0,2}" + e | |
| }) + ".*"; | |
| var p = RegExp(l, "i"), | |
| d = function (t) { | |
| return _.reduce(t.matches, function (t, e) { | |
| return t || p.test(e) | |
| }, !1) | |
| }, | |
| h = _.pluck(jQuery.grep(r.cachedWords, d), "word"); | |
| if (t.isFunction(r.sort) ? h.sort(r.sort) : r.sort === !0 ? h.sort() : h.length < 25 && h.sort(function (t, e) { | |
| return o(m, t) > o(m, e) ? 1 : -1 | |
| }), 1 != r.sort && h.length < 100) { | |
| var f, g = [], | |
| v = [], | |
| y = m.toLowerCase(); | |
| for (i = 0; i < h.length; i++) f = h[i].toLowerCase(), f == y ? g.unshift(h[i]) : 0 == f.indexOf(y) ? g.push(h[i]) : v.push(h[i]); | |
| h = g.concat(v) | |
| } | |
| return h | |
| } | |
| function a() { | |
| if (r.hiddenComplete) | |
| if (r.hiddenCompleteLimiter instanceof Array) { | |
| if (-1 == r.hiddenCompleteLimiter.indexOf(m.charAt(0))) return !0 | |
| } else if (m.charAt(0) == r.hiddenCompleteLimiter) return !0; | |
| return !1 | |
| } | |
| function u(e) { | |
| null != selected && selected.removeClass("selected"), selected = t(e).addClass("selected"), selectedWord = selected.text(); | |
| for (var n = 0; n < tagFields.length; n++) tagFields[n].text() == selectedWord && (g = n) | |
| } | |
| function l() { | |
| w = s(); | |
| var e = w.length; | |
| if (w = w.slice(0, E), C.empty().removeClass("has-more").attr("data-more", ""), tagFields = [], w.length > 0) { | |
| if (1 == w.length && w[0] == m) return; | |
| k = a(), k ? (void 0 != r.excludeHidden && (w = w.filter(function (t) { | |
| return -1 === r.excludeHidden.indexOf(t) | |
| })), selectedWord = w[g], p()) : (w.forEach(function (e) { | |
| field = t("<li class='ac'>"), "function" == typeof r.displayHtml ? field.append(r.displayHtml(e)) : field.text(e), C.append(field), tagFields.push(field) | |
| }), e > E && C.addClass("has-more").attr("data-more", "\u2026 and " + String(e - E) + " more. Narrow your search."), "function" != typeof r.autoSelect || r.autoSelect(w[0]) ? (selected = tagFields[0].addClass("selected"), selectedWord = selected.text(), g = 0) : selected = selectedWord = g = void 0, r.el ? C.appendTo(r.el).show() : C.appendTo("body").show().css({ | |
| bottom: t(window).height() - t(T).offset().top, | |
| left: t(T).offset().left, | |
| width: t(T).width() | |
| }), x = !0, v = void 0) | |
| } else { | |
| if (!r.emptyHook || !m || !C.is(":empty")) return; | |
| var n = r.emptyHook(m); | |
| n && (x = !0), C.append(n).show() | |
| } | |
| C.is(":empty") && C.hide() | |
| } | |
| function c() { | |
| selected && 0 != selected.length && (selected[0].offsetTop < C.scrollTop() ? C.scrollTop(selected[0].offsetTop) : selected[0].offsetTop + selected.outerHeight() > C.height() + C.scrollTop() && C.scrollTop(selected[0].offsetTop + selected.outerHeight() - C.height())) | |
| } | |
| function p() { | |
| b = y = g = v = selected = selectedWord = tagFields = void 0, C.empty().hide(), x = !1 | |
| } | |
| function d() { | |
| if (k && g + 1 < w.length ? g += 1 : k && (g = 0), void 0 == v && (v = n(T)), void 0 == b && (b = T.value.substr(v)), void 0 != w[g]) { | |
| if (r.completionHook) var t = v - m.length, | |
| e = r.completionHook(w[g], t); | |
| else var e = w[g]; | |
| var o = e.substr(m.length); | |
| if (T.value = T.value.substr(0, v - m.length) + e + b, y = v + o.length, T.focus(), T.selectionStart) T.setSelectionRange(y, y); | |
| else if (T.createTextRange) { | |
| var i = T.createTextRange(); | |
| i.collapse(!0), i.moveEnd("character", y), i.moveStart("character", y), i.select() | |
| } | |
| k ? 1 == w.length && (w = []) : p() | |
| } | |
| } | |
| function h(t) { | |
| t.preventDefault(), t.stopImmediatePropagation() | |
| } | |
| function f(t) { | |
| return t.altKey || t.ctrlKey || t.shiftKey | |
| } | |
| var m, g, v, y, w, b, x, k, T = this, | |
| C = t('<ul id="autocomplete" class="autocompleter"></ul>'), | |
| E = 200; | |
| t(T).bind("keydown", "Return", function (t) { | |
| x && null != selected && (d(), h(t)) | |
| }), t(T).bind("keydown", "Tab", function (t) { | |
| (x || k) && t.preventDefault() | |
| }), t(T).bind("keyup", function (t) { | |
| !x || 38 != t.which && 40 != t.which ? 9 != t.which || f(t) || !x && !k ? 39 == t.which && x ? (h(t), p()) : (x = !1, C.hide(), l()) : (h(t), d()) : t.preventDefault() | |
| }), t(T).bind("keydown", "Up", function (t) { | |
| x && (t.preventDefault(), null == selected ? (selected = C.children("li.ac").last().addClass("selected"), selectedWord = selected.text(), g = C.children("li.ac").length - 1) : selected.prev("li.ac").length > 0 ? (selected = selected.removeClass("selected").prev("li.ac").addClass("selected"), selectedWord = selected.text(), g--) : (null != selected && selected.removeClass("selected"), selected = selectedWord = g = void 0), c()) | |
| }), t(T).bind("keydown", "Down", function (t) { | |
| x && (t.preventDefault(), null == selected ? (selected = C.children("li.ac").first().addClass("selected"), selectedWord = selected.text(), g = 0) : selected.next("li.ac").length > 0 ? (selected = selected.removeClass("selected").next("li.ac").addClass("selected"), selectedWord = selected.text(), g++) : (null != selected && selected.removeClass("selected"), selected = selectedWord = g = void 0), c()) | |
| }), t(T).bind("blur", function () { | |
| setTimeout(function () { | |
| x && p() | |
| }, 150) | |
| }), t(T).bind("focus", function () { | |
| r.cachedWords = r.words().map(function (t) { | |
| return { | |
| word: t.word, | |
| matches: (t.aliases || []).map(e).concat(e(t.word)) | |
| } | |
| }), l() | |
| }), C.on("click", "li.ac", function (e) { | |
| e.preventDefault(), d(), t(T).focus() | |
| }), C.on("mouseover", "li.ac", function (t) { | |
| u(t.currentTarget) | |
| }) | |
| }) | |
| } | |
| } | |
| }(jQuery), | |
| function () { | |
| jQuery.fn.delayedHover = function (t, e) { | |
| return null == t && (t = "hover"), this.asEventStream("mouseenter", e).flatMap(function (t) { | |
| var e, n, r, o; | |
| return r = $(t.currentTarget).asEventStream("mouseenter").map(!0), o = $(t.currentTarget).asEventStream("mouseleave").map(!1), e = r.merge(o).flatMapLatest(function (e) { | |
| var n; | |
| return e ? Bacon.never() : (n = $(t.currentTarget).data("close-delay"), Bacon.later(n || 0, { | |
| target: $(t.currentTarget), | |
| action: "close" | |
| })) | |
| }), n = $(t.currentTarget).data("hover-delay"), Bacon.later(n || 0, { | |
| target: $(t.currentTarget), | |
| action: "open" | |
| }).takeUntil(e).merge(e) | |
| }).skipDuplicates(function (t, e) { | |
| return t.action === e.action | |
| }).onValue(function (e) { | |
| return e.target.toggleClass(t, "open" === e.action), e.target.triggerHandler("hover-delay-" + e.action) | |
| }), this | |
| } | |
| }.call(this), | |
| function () { | |
| ! function (t) { | |
| var e, n, r, o; | |
| return r = "filedragndrop", o = "filedragndrop-intercept-overlay", e = function (e) { | |
| var n, i; | |
| if (!this.data("" + r + ".initialized")) return n = !1, i = t("<div id='" + o + "'></div>").addClass(e.overlayClass).on("dragleave." + r, function (t) { | |
| i.detach(), e.dragleave(t), n = !1 | |
| }).on("drop." + r, function (t) { | |
| i.detach(), e.drop(t), n = !1 | |
| }).data("" + r + ".overlay-initialized", !0), this.on("dragenter." + r, function () { | |
| return function (r) { | |
| n || (n = !0, r.originalEvent.dataTransfer && _.any(r.originalEvent.dataTransfer.types, function (t) { | |
| return "Files" === t | |
| }) && (r.preventDefault(), t(e.target).append(i), e.dragenter(r))) | |
| } | |
| }(this)), this.data("" + r + ".initialized", !0) | |
| }, n = function () { | |
| return this.data("" + r + ".initialized", !1), this.off("." + r) | |
| }, t.fn.dragNDropFileEvents = function (r) { | |
| var o; | |
| return null == r && (r = {}), "destroy" === r ? (this.each(function () { | |
| return n.call(t(this)) | |
| }), this) : (o = { | |
| dragenter: function () {}, | |
| dragleave: function () {}, | |
| drop: function () {}, | |
| overlayClass: "overlay" | |
| }, r = t.extend(o, r), this.each(function () { | |
| return e.call(t(this), r) | |
| }), this) | |
| } | |
| }(jQuery) | |
| }.call(this), | |
| function () { | |
| jQuery.fn.emojie = function () { | |
| return this.each(function () { | |
| var t; | |
| try { | |
| return emojie(this) | |
| } catch (e) { | |
| t = e | |
| } | |
| }) | |
| } | |
| }.call(this), | |
| function () { | |
| var t = [].indexOf || function (t) { | |
| for (var e = 0, n = this.length; n > e; e++) | |
| if (e in this && this[e] === t) return e; | |
| return -1 | |
| }; | |
| ! function (e) { | |
| var n, r, o, i, s, a, u, l, c, p, d, h; | |
| return r = 9, n = 8, d = " ", s = function () { | |
| return e(this).on("paste", function (t) { | |
| return function () { | |
| return l.call(t) | |
| } | |
| }(this)), e(this).on("keydown", function (t) { | |
| return function (e) { | |
| return u.call(t, e) | |
| } | |
| }(this)) | |
| }, u = function (t) { | |
| var e, s; | |
| switch (t.which) { | |
| case r: | |
| if (t.ctrlKey || t.metaKey) return; | |
| if (t.preventDefault(), t.shiftKey) return o.call(this, this.selectionStart, this.selectionEnd); | |
| if (this.selectionStart !== this.selectionEnd) return i.call(this, this.selectionStart, this.selectionEnd); | |
| if (this.selectionStart === this.selectionEnd && (/\s/.test(this.value.slice(0, +(this.selectionStart - 1) + 1 || 9e9).slice(-1)[0]) || 0 === this.selectionStart)) return s = this.selectionStart + 4, e = this.value.split(""), e.splice(this.selectionStart, 0, " "), this.value = e.join(""), this.setSelectionRange(s, s); | |
| break; | |
| case n: | |
| if (!(t.metaKey || t.ctrlKey || t.altKey || t.shiftKey) && p.call(this)) return t.preventDefault(), o.call(this, this.selectionStart, this.selectionEnd) | |
| } | |
| }, p = function () { | |
| var t; | |
| return t = this.value.slice(0, +(this.selectionStart - 1) + 1 || 9e9).split("\n").slice(-1)[0], this.selectionStart === this.selectionEnd && /(^|\n)[\s]{4}$/.test(t) | |
| }, l = function () { | |
| var t; | |
| return t = this.selectionStart, setTimeout(function (e) { | |
| return function () { | |
| return a.call(e, t) | |
| } | |
| }(this), 0) | |
| }, a = function (t) { | |
| var e, n, r; | |
| return n = this.selectionStart, e = this.value.slice(t, n), e.match(/\n/g) ? (r = this.value.slice(0, t) + e, "\n" !== r.slice(-1) && (r += "\n"), this.value = r + this.value.slice(n, this.value.length), i.call(this, t, n), this.setSelectionRange(this.selectionEnd + 1, this.selectionEnd + 1)) : void 0 | |
| }, h = function (t) { | |
| return "\n" === t[0] && (t = t.substr(1, t.length - 1)), "\n" === t[t.length - 1] && (t = t.substr(0, t.length - 1)), t | |
| }, c = function (t, e) { | |
| return t.setSelectionRange(e, e) | |
| }, i = function (t, e) { | |
| var n, r, o, i, s; | |
| return i = this, s = i.value.split("\n"), r = i.value.substr(0, t).split("").filter(function (t) { | |
| return "\n" === t | |
| }).length, o = i.value.substr(0, e).split("").filter(function (t) { | |
| return "\n" === t | |
| }).length, 0 === s[o].length && (o -= 1), n = _.map(s.slice(r, +o + 1 || 9e9), function (t) { | |