Created
July 17, 2014 22:15
-
-
Save sstur/7dfa1f24763a06eec855 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() { | |
| if (window.document.querySelector && window.document.body) { | |
| if (!window.console) { | |
| window.console = {}; | |
| } | |
| if (!("log" in console)) { | |
| /** | |
| * @return {undefined} | |
| */ | |
| console["log"] = function() { | |
| }; | |
| } | |
| if (!("warn" in console)) { | |
| /** | |
| * @return {undefined} | |
| */ | |
| console["warn"] = function() { | |
| }; | |
| } | |
| if (!("error" in console)) { | |
| /** | |
| * @return {undefined} | |
| */ | |
| console["error"] = function() { | |
| }; | |
| } | |
| if (!("groupCollapsed" in console)) { | |
| /** | |
| * @return {undefined} | |
| */ | |
| console["groupCollapsed"] = function() { | |
| }; | |
| } | |
| if (!("groupEnd" in console)) { | |
| /** | |
| * @return {undefined} | |
| */ | |
| console["groupEnd"] = function() { | |
| }; | |
| } | |
| if (!("time" in console)) { | |
| /** | |
| * @return {undefined} | |
| */ | |
| console["time"] = function() { | |
| }; | |
| } | |
| if (!("timeEnd" in console)) { | |
| /** | |
| * @return {undefined} | |
| */ | |
| console["timeEnd"] = function() { | |
| }; | |
| } | |
| if (!("timeStamp" in console)) { | |
| /** | |
| * @return {undefined} | |
| */ | |
| console["timeStamp"] = function() { | |
| }; | |
| } | |
| if (!("assert" in console)) { | |
| /** | |
| * @return {undefined} | |
| */ | |
| console["assert"] = function() { | |
| }; | |
| } | |
| /** @type {string} */ | |
| kGitCommitHash = "a7eacaa0433eff54f6c702c2eb8f001554bd5065"; | |
| var self; | |
| if (!("FormData" in window)) { | |
| /** | |
| * @return {undefined} | |
| */ | |
| window.FormData = function() { | |
| }; | |
| } | |
| if (!("CustomEvent" in window)) { | |
| /** | |
| * @return {undefined} | |
| */ | |
| window.CustomEvent = function() { | |
| }; | |
| } | |
| /** | |
| * @param {Function} compareFn | |
| * @return {undefined} | |
| */ | |
| var binarySearch_ = function(compareFn) { | |
| compareFn(); | |
| }; | |
| /** | |
| * @param {Function} fn | |
| * @param {?} obj | |
| * @param {string} type | |
| * @return {?} | |
| */ | |
| var bind = function(fn, obj, type) { | |
| if (fn.bind) { | |
| return fn.call.apply(fn.bind, arguments); | |
| } | |
| /** @type {Array.<?>} */ | |
| var args = Array.prototype.slice.call(arguments, 2); | |
| return function() { | |
| /** @type {Array.<?>} */ | |
| var newArgs = args.slice(); | |
| newArgs.push.apply(newArgs, arguments); | |
| return fn.apply(obj, args); | |
| }; | |
| }; | |
| /** | |
| * @param {Function} action | |
| * @param {Function} type | |
| * @return {?} | |
| */ | |
| var slice = function(action, type) { | |
| /** @type {Array.<?>} */ | |
| var args = Array.prototype.slice.call(arguments, 1); | |
| return function() { | |
| /** @type {Array.<?>} */ | |
| var newArgs = args.slice(); | |
| newArgs.push.apply(newArgs, arguments); | |
| return action.apply(this, newArgs); | |
| }; | |
| }; | |
| /** | |
| * @param {?} obj | |
| * @return {?} | |
| */ | |
| var exec = function(obj) { | |
| return void 0 !== obj; | |
| }; | |
| /** | |
| * @param {number} value | |
| * @return {?} | |
| */ | |
| var isFunction = function(value) { | |
| return void 0 === value; | |
| }; | |
| /** | |
| * @param {(Array|string)} elements | |
| * @return {?} | |
| */ | |
| var checkElements = function(elements) { | |
| return null === elements; | |
| }; | |
| /** | |
| * @param {Function} name | |
| * @param {Function} value | |
| * @return {undefined} | |
| */ | |
| var inherits = function(name, value) { | |
| /** | |
| * @return {undefined} | |
| */ | |
| function tempCtor() { | |
| } | |
| tempCtor.prototype = value.prototype; | |
| name.Ga = value.prototype; | |
| name.prototype = new tempCtor; | |
| /** @type {Function} */ | |
| name.prototype.constructor = name; | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| var tmp = function() { | |
| throw Error("Unimplemented abstract method."); | |
| }; | |
| /** | |
| * @param {string} opt_a2 | |
| * @param {Function} var_args | |
| * @return {undefined} | |
| */ | |
| var append = function(opt_a2, var_args) { | |
| var codeSegments = opt_a2.split("."); | |
| /** @type {Window} */ | |
| var obj = window; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < codeSegments.length;i++) { | |
| var key = codeSegments[i]; | |
| var res = i == codeSegments.length - 1 ? var_args : {}; | |
| if (!(key in obj)) { | |
| obj[key] = res; | |
| } | |
| obj = obj[key]; | |
| } | |
| }; | |
| /** | |
| * @param {?} s | |
| * @return {undefined} | |
| */ | |
| var makeModuleMap = function(s) { | |
| try { | |
| (function() { | |
| eval(s); | |
| })(); | |
| } catch (e) { | |
| throw logError(e), e; | |
| } | |
| }; | |
| /** | |
| * @param {?} value | |
| * @return {?} | |
| */ | |
| var typeOf = function(value) { | |
| /** @type {string} */ | |
| var type = typeof value; | |
| if ("object" == type) { | |
| if (value) { | |
| if (value instanceof Array) { | |
| return "array"; | |
| } | |
| if (value instanceof Object) { | |
| return type; | |
| } | |
| /** @type {string} */ | |
| var isFunction = Object.prototype.toString.call(value); | |
| if ("[object Window]" == isFunction) { | |
| return "object"; | |
| } | |
| if ("[object Array]" == isFunction || "number" == typeof value.length && ("undefined" != typeof value.splice && ("undefined" != typeof value.propertyIsEnumerable && !value.propertyIsEnumerable("splice")))) { | |
| return "array"; | |
| } | |
| if ("[object Function]" == isFunction || "undefined" != typeof value.call && ("undefined" != typeof value.propertyIsEnumerable && !value.propertyIsEnumerable("call"))) { | |
| return "function"; | |
| } | |
| } else { | |
| return "null"; | |
| } | |
| } else { | |
| if ("function" == type && "undefined" == typeof value.call) { | |
| return "object"; | |
| } | |
| } | |
| return type; | |
| }; | |
| /** | |
| * @param {Function} child | |
| * @param {Function} parent | |
| * @return {undefined} | |
| */ | |
| var __extends = function(child, parent) { | |
| /** | |
| * @return {undefined} | |
| */ | |
| function ctor() { | |
| } | |
| ctor.prototype = parent.prototype; | |
| child.Ga = parent.prototype; | |
| child.prototype = new ctor; | |
| /** @type {Function} */ | |
| child.prototype.constructor = child; | |
| }; | |
| var properties = { | |
| "\x00" : "\\0", | |
| "\b" : "\\b", | |
| "\f" : "\\f", | |
| "\n" : "\\n", | |
| "\r" : "\\r", | |
| "\t" : "\\t", | |
| "\x0B" : "\\x0B", | |
| '"' : '\\"', | |
| "\\" : "\\\\" | |
| }; | |
| var internalValues = { | |
| "'" : "\\'" | |
| }; | |
| /** | |
| * @param {?} optgroup | |
| * @return {?} | |
| */ | |
| var repeat = function(optgroup) { | |
| /** @type {string} */ | |
| optgroup = String(optgroup); | |
| if (optgroup.quote) { | |
| return optgroup.quote(); | |
| } | |
| /** @type {Array} */ | |
| var tagNameArr = ['"']; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < optgroup.length;i++) { | |
| /** @type {string} */ | |
| var key = optgroup.charAt(i); | |
| /** @type {number} */ | |
| var value = key.charCodeAt(0); | |
| /** @type {Array} */ | |
| var nstate = tagNameArr; | |
| /** @type {number} */ | |
| var n = i + 1; | |
| var val; | |
| if (!(val = properties[key])) { | |
| if (!(31 < value && 127 > value)) { | |
| if (key in internalValues) { | |
| key = internalValues[key]; | |
| } else { | |
| if (key in properties) { | |
| key = internalValues[key] = properties[key]; | |
| } else { | |
| /** @type {string} */ | |
| value = key; | |
| /** @type {number} */ | |
| val = key.charCodeAt(0); | |
| if (31 < val && 127 > val) { | |
| /** @type {string} */ | |
| value = key; | |
| } else { | |
| if (256 > val) { | |
| if (value = "\\x", 16 > val || 256 < val) { | |
| value += "0"; | |
| } | |
| } else { | |
| /** @type {string} */ | |
| value = "\\u"; | |
| if (4096 > val) { | |
| value += "0"; | |
| } | |
| } | |
| value += val.toString(16).toUpperCase(); | |
| } | |
| /** @type {string} */ | |
| key = internalValues[key] = value; | |
| } | |
| } | |
| } | |
| val = key; | |
| } | |
| nstate[n] = val; | |
| } | |
| tagNameArr.push('"'); | |
| return tagNameArr.join(""); | |
| }; | |
| /** | |
| * @param {?} optgroup | |
| * @return {?} | |
| */ | |
| var formatNumber = function(optgroup) { | |
| if (isFinite(optgroup)) { | |
| /** @type {string} */ | |
| optgroup = String(optgroup); | |
| } | |
| return "string" == typeof optgroup ? /^\s*-?0x/i.test(optgroup) ? parseInt(optgroup, 16) : parseInt(optgroup, 10) : NaN; | |
| }; | |
| var ap = Array.prototype; | |
| /** @type {function (?, Function, boolean): undefined} */ | |
| var getPostfixExpression = ap.forEach ? function(until, mapper, opt_end) { | |
| ap.forEach.call(until, mapper, opt_end); | |
| } : function(arg, filter, str) { | |
| var valuesLen = arg.length; | |
| var arr2 = "string" == typeof arg ? arg.split("") : arg; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < valuesLen;i++) { | |
| if (i in arr2) { | |
| filter.call(str, arr2[i], i, arg); | |
| } | |
| } | |
| }; | |
| /** | |
| * @param {Array} obj | |
| * @param {Function} offset | |
| * @return {undefined} | |
| */ | |
| var Emitter = function(obj, offset) { | |
| ap.sort.call(obj, offset || alpha); | |
| }; | |
| /** | |
| * @param {(boolean|number|string)} a | |
| * @param {(boolean|number|string)} b | |
| * @return {?} | |
| */ | |
| var alpha = function(a, b) { | |
| return a > b ? 1 : a < b ? -1 : 0; | |
| }; | |
| /** | |
| * @param {?} optgroup | |
| * @return {?} | |
| */ | |
| var htmlEscape = function(optgroup) { | |
| /** @type {string} */ | |
| optgroup = String(optgroup); | |
| if (/^\s*$/.test(optgroup) ? 0 : /^[\],:{}\s\u2028\u2029]*$/.test(optgroup.replace(/\\["\\\/bfnrtu]/g, "@").replace(/"[^"\\\n\r\u2028\u2029\x00-\x08\x0a-\x1f]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]").replace(/(?:^|:|,)(?:[\s\u2028\u2029]*\[)+/g, ""))) { | |
| try { | |
| return eval("(" + optgroup + ")"); | |
| } catch (b) { | |
| } | |
| } | |
| throw Error("Invalid JSON string: " + optgroup); | |
| }; | |
| /** | |
| * @param {string} a | |
| * @param {?} blue | |
| * @return {undefined} | |
| */ | |
| var Color = function(a, blue) { | |
| if (null != a) { | |
| this.append.apply(this, arguments); | |
| } | |
| }; | |
| self = Color.prototype; | |
| /** @type {string} */ | |
| self.Kc = ""; | |
| /** | |
| * @param {string} type | |
| * @return {undefined} | |
| */ | |
| self.set = function(type) { | |
| /** @type {string} */ | |
| this.Kc = "" + type; | |
| }; | |
| /** | |
| * @param {?} data | |
| * @param {?} first | |
| * @param {string} var_args | |
| * @return {?} | |
| */ | |
| self.append = function(data, first, var_args) { | |
| this.Kc += data; | |
| if (null != first) { | |
| /** @type {number} */ | |
| var i = 1; | |
| for (;i < arguments.length;i++) { | |
| this.Kc += arguments[i]; | |
| } | |
| } | |
| return this; | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| self.clear = function() { | |
| /** @type {string} */ | |
| this.Kc = ""; | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.toString = function() { | |
| return this.Kc; | |
| }; | |
| /** | |
| * @param {Object} obj | |
| * @param {Function} f | |
| * @return {undefined} | |
| */ | |
| var curry = function(obj, f) { | |
| var key; | |
| for (key in obj) { | |
| f.call(void 0, obj[key], key, obj); | |
| } | |
| }; | |
| /** | |
| * @param {Object} obj | |
| * @return {?} | |
| */ | |
| var locals = function(obj) { | |
| /** @type {Array} */ | |
| var res = []; | |
| /** @type {number} */ | |
| var resLength = 0; | |
| var key; | |
| for (key in obj) { | |
| res[resLength++] = obj[key]; | |
| } | |
| return res; | |
| }; | |
| /** | |
| * @param {Object} obj | |
| * @param {Function} f | |
| * @return {?} | |
| */ | |
| var isFinite = function(obj, f) { | |
| var key; | |
| a: { | |
| for (key in obj) { | |
| if (f.call(void 0, obj[key], key, obj)) { | |
| break a; | |
| } | |
| } | |
| key = void 0; | |
| } | |
| return key && obj[key]; | |
| }; | |
| /** | |
| * @param {?} i | |
| * @param {(Error|string)} field | |
| * @param {Object} fields | |
| * @return {undefined} | |
| */ | |
| var Item = function(i, field, fields) { | |
| this.Iq = i; | |
| this.Lq = field.name || null; | |
| this.ie = {}; | |
| /** @type {number} */ | |
| i = 0; | |
| for (;i < fields.length;i++) { | |
| field = fields[i]; | |
| /** @type {(Error|string)} */ | |
| this.ie[field.yb] = field; | |
| } | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| Item.prototype.getName = function() { | |
| return this.Lq; | |
| }; | |
| /** | |
| * @param {Array} element | |
| * @return {?} | |
| */ | |
| var getId = function(element) { | |
| element = locals(element.ie); | |
| Emitter(element, function(p2, p) { | |
| return p2.yb - p.yb; | |
| }); | |
| return element; | |
| }; | |
| /** | |
| * @param {?} o | |
| * @param {string} recurring | |
| * @return {?} | |
| */ | |
| var setFillAndStroke = function(o, recurring) { | |
| return isFinite(o.ie, function(field) { | |
| return field.getName() == recurring; | |
| }) || null; | |
| }; | |
| /** | |
| * @param {?} opt_map | |
| * @param {number} var_args | |
| * @param {Object} target | |
| * @return {undefined} | |
| */ | |
| var Map = function(opt_map, var_args, target) { | |
| /** @type {number} */ | |
| this.yb = var_args; | |
| this.Lq = target.name; | |
| /** @type {boolean} */ | |
| this.Ee = !!target.aa; | |
| this.Md = target.c; | |
| this.Wg = target.type; | |
| /** @type {boolean} */ | |
| this.nt = false; | |
| switch(this.Md) { | |
| case KEYCODE_SPACE: | |
| ; | |
| case KEYCODE_LEFT: | |
| ; | |
| case KEYCODE_DOWN: | |
| ; | |
| case KEYCODE_H: | |
| ; | |
| case z: | |
| /** @type {boolean} */ | |
| this.nt = true; | |
| } | |
| this.op = target.defaultValue; | |
| }; | |
| /** @type {number} */ | |
| var KEYCODE_SPACE = 3; | |
| /** @type {number} */ | |
| var KEYCODE_LEFT = 4; | |
| /** @type {number} */ | |
| var KEYCODE_DOWN = 6; | |
| /** @type {number} */ | |
| var KEYCODE_H = 16; | |
| /** @type {number} */ | |
| var z = 18; | |
| /** | |
| * @return {?} | |
| */ | |
| Map.prototype.getName = function() { | |
| return this.Lq; | |
| }; | |
| /** | |
| * @param {?} node | |
| * @return {?} | |
| */ | |
| var removeChildren = function(node) { | |
| if (void 0 === node.op) { | |
| var val = node.Wg; | |
| node.op = val === Boolean ? false : val === Number ? 0 : val === String ? "" : new val; | |
| } | |
| return node.op; | |
| }; | |
| /** | |
| * @param {?} keepData | |
| * @return {?} | |
| */ | |
| var requestAnimationFrame = function(keepData) { | |
| return 11 == keepData.Md || 10 == keepData.Md; | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var _super = function() { | |
| this.sd = {}; | |
| this.ie = this.oc().ie; | |
| /** @type {null} */ | |
| this.kd = this.zq = null; | |
| }; | |
| /** | |
| * @param {Function} keepData | |
| * @param {Function} source | |
| * @param {Object} str | |
| * @return {undefined} | |
| */ | |
| var dasherize = function(keepData, source, str) { | |
| str = str || keepData; | |
| var optgroup; | |
| for (optgroup in keepData.sd) { | |
| /** @type {number} */ | |
| var n = Number(optgroup); | |
| if (!keepData.ie[n]) { | |
| source.call(str, n, keepData.sd[optgroup]); | |
| } | |
| } | |
| }; | |
| self = _super.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.oc = function() { | |
| var el = this.constructor; | |
| var groups; | |
| if (!(groups = el.mt)) { | |
| var item; | |
| groups = el.jy; | |
| /** @type {Array} */ | |
| var x = []; | |
| var g; | |
| for (g in groups) { | |
| if (groups.hasOwnProperty(g)) { | |
| /** @type {number} */ | |
| g = parseInt(g, 10); | |
| if (0 == g) { | |
| item = groups[0]; | |
| } else { | |
| x.push(new Map(0, g, groups[g])); | |
| } | |
| } | |
| } | |
| item = new Item(el, item, x); | |
| groups = el.mt = item; | |
| } | |
| return groups; | |
| }; | |
| /** | |
| * @param {(number|string)} key | |
| * @param {number} value | |
| * @return {?} | |
| */ | |
| self.get = function(key, value) { | |
| return func(this, key.yb, value); | |
| }; | |
| /** | |
| * @param {string} type | |
| * @param {Object} opt_isDefault | |
| * @return {?} | |
| */ | |
| self.set = function(type, opt_isDefault) { | |
| return origFindId(this, type.yb, opt_isDefault); | |
| }; | |
| /** | |
| * @param {?} type | |
| * @param {number} expectedNumberOfNonCommentArgs | |
| * @return {?} | |
| */ | |
| self.add = function(type, expectedNumberOfNonCommentArgs) { | |
| return _findBelongsTo(this, type.yb, expectedNumberOfNonCommentArgs); | |
| }; | |
| /** | |
| * @param {?} arr | |
| * @return {?} | |
| */ | |
| self.clear = function(arr) { | |
| return isArray(this, arr.yb); | |
| }; | |
| /** | |
| * @param {?} keepData | |
| * @return {?} | |
| */ | |
| self.wa = function(keepData) { | |
| if (!keepData || this.constructor != keepData.constructor) { | |
| return false; | |
| } | |
| var codeSegments = getId(this.oc()); | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < codeSegments.length;i++) { | |
| var type = codeSegments[i]; | |
| if (ondata(this, type.yb) != ondata(keepData, type.yb)) { | |
| return false; | |
| } | |
| if (ondata(this, type.yb)) { | |
| var id = requestAnimationFrame(type); | |
| var config = _deepEqual(this, type); | |
| var types = _deepEqual(keepData, type); | |
| if (type.Ee) { | |
| if (config.length != types.length) { | |
| return false; | |
| } | |
| /** @type {number} */ | |
| type = 0; | |
| for (;type < config.length;type++) { | |
| if (id ? !config[type].wa(types[type]) : config[type] != types[type]) { | |
| return false; | |
| } | |
| } | |
| } else { | |
| if (id ? !config.wa(types) : config != types) { | |
| return false; | |
| } | |
| } | |
| } | |
| } | |
| return true; | |
| }; | |
| /** | |
| * @param {?} v02 | |
| * @param {?} obj | |
| * @return {undefined} | |
| */ | |
| var bindCallbacks = function(v02, obj) { | |
| if (v02 != obj) { | |
| v02.sd = {}; | |
| if (v02.kd) { | |
| v02.kd = {}; | |
| } | |
| translate(v02, obj); | |
| } | |
| }; | |
| /** | |
| * @param {Object} a | |
| * @param {?} name | |
| * @return {undefined} | |
| */ | |
| var translate = function(a, name) { | |
| var codeSegments = getId(a.oc()); | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < codeSegments.length;i++) { | |
| var cycle = codeSegments[i]; | |
| if (ondata(name, cycle.yb)) { | |
| if (a.kd) { | |
| delete a.kd[cycle.yb]; | |
| } | |
| var id = requestAnimationFrame(cycle); | |
| if (cycle.Ee) { | |
| var b = deepEqual(name, cycle.yb); | |
| /** @type {number} */ | |
| var bi = 0; | |
| for (;bi < b.length;bi++) { | |
| a.add(cycle, id ? b[bi].ya() : b[bi]); | |
| } | |
| } else { | |
| b = _deepEqual(name, cycle); | |
| if (id) { | |
| if (id = _deepEqual(a, cycle)) { | |
| translate(id, b); | |
| } else { | |
| a.set(cycle, b.ya()); | |
| } | |
| } else { | |
| a.set(cycle, b); | |
| } | |
| } | |
| } | |
| } | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ya = function() { | |
| var a = new this.constructor; | |
| bindCallbacks(a, this); | |
| return a; | |
| }; | |
| /** | |
| * @param {?} keepData | |
| * @param {number} expectedNumberOfNonCommentArgs | |
| * @return {?} | |
| */ | |
| var ondata = function(keepData, expectedNumberOfNonCommentArgs) { | |
| return expectedNumberOfNonCommentArgs in keepData.sd && (void 0 !== keepData.sd[expectedNumberOfNonCommentArgs] && null !== keepData.sd[expectedNumberOfNonCommentArgs]); | |
| }; | |
| /** | |
| * @param {?} element | |
| * @param {number} type | |
| * @return {?} | |
| */ | |
| var _deepEqual = function(element, type) { | |
| var key = type.yb; | |
| if (!key in element.sd) { | |
| return null; | |
| } | |
| var val = element.sd[key]; | |
| if (null == val) { | |
| return null; | |
| } | |
| if (element.zq) { | |
| if (!(key in element.kd)) { | |
| var node = element.zq; | |
| if (null != val) { | |
| if (type.Ee) { | |
| /** @type {Array} */ | |
| var data = []; | |
| typeOf(val); | |
| /** @type {number} */ | |
| var j = 0; | |
| for (;j < val.length;j++) { | |
| data[j] = node.Zi(type, val[j]); | |
| } | |
| /** @type {Array} */ | |
| val = data; | |
| } else { | |
| val = node.Zi(type, val); | |
| } | |
| } | |
| return element.kd[key] = val; | |
| } | |
| return element.kd[key]; | |
| } | |
| return val; | |
| }; | |
| /** | |
| * @param {?} name | |
| * @param {number} expectedNumberOfNonCommentArgs | |
| * @param {number} obj | |
| * @return {?} | |
| */ | |
| var func = function(name, expectedNumberOfNonCommentArgs, obj) { | |
| expectedNumberOfNonCommentArgs = name.ie[expectedNumberOfNonCommentArgs]; | |
| name = _deepEqual(name, expectedNumberOfNonCommentArgs); | |
| return expectedNumberOfNonCommentArgs.Ee ? name[obj || 0] : name; | |
| }; | |
| /** | |
| * @param {?} name | |
| * @param {number} expectedNumberOfNonCommentArgs | |
| * @param {number} opt_attributes | |
| * @return {?} | |
| */ | |
| var get_mangled = function(name, expectedNumberOfNonCommentArgs, opt_attributes) { | |
| return ondata(name, expectedNumberOfNonCommentArgs) ? func(name, expectedNumberOfNonCommentArgs, opt_attributes) : removeChildren(name.ie[expectedNumberOfNonCommentArgs]); | |
| }; | |
| /** | |
| * @param {?} actual | |
| * @param {number} desiredNonCommentArgIndex | |
| * @return {?} | |
| */ | |
| var deepEqual = function(actual, desiredNonCommentArgIndex) { | |
| return _deepEqual(actual, actual.ie[desiredNonCommentArgIndex]) || []; | |
| }; | |
| /** | |
| * @param {?} name | |
| * @param {number} expectedNumberOfNonCommentArgs | |
| * @return {?} | |
| */ | |
| var member = function(name, expectedNumberOfNonCommentArgs) { | |
| return name.ie[expectedNumberOfNonCommentArgs].Ee ? ondata(name, expectedNumberOfNonCommentArgs) ? name.sd[expectedNumberOfNonCommentArgs].length : 0 : ondata(name, expectedNumberOfNonCommentArgs) ? 1 : 0; | |
| }; | |
| /** | |
| * @param {?} name | |
| * @param {number} expectedNumberOfNonCommentArgs | |
| * @param {?} value | |
| * @return {?} | |
| */ | |
| var origFindId = function(name, expectedNumberOfNonCommentArgs, value) { | |
| name.sd[expectedNumberOfNonCommentArgs] = value; | |
| if (name.kd) { | |
| name.kd[expectedNumberOfNonCommentArgs] = value; | |
| } | |
| return name; | |
| }; | |
| /** | |
| * @param {?} dataAndEvents | |
| * @param {number} desiredNonCommentArgIndex | |
| * @param {?} owner | |
| * @return {?} | |
| */ | |
| var _findBelongsTo = function(dataAndEvents, desiredNonCommentArgIndex, owner) { | |
| if (!dataAndEvents.sd[desiredNonCommentArgIndex]) { | |
| /** @type {Array} */ | |
| dataAndEvents.sd[desiredNonCommentArgIndex] = []; | |
| } | |
| dataAndEvents.sd[desiredNonCommentArgIndex].push(owner); | |
| if (dataAndEvents.kd) { | |
| delete dataAndEvents.kd[desiredNonCommentArgIndex]; | |
| } | |
| return dataAndEvents; | |
| }; | |
| /** | |
| * @param {number} target | |
| * @param {number} expectedNumberOfNonCommentArgs | |
| * @return {?} | |
| */ | |
| var isArray = function(target, expectedNumberOfNonCommentArgs) { | |
| delete target.sd[expectedNumberOfNonCommentArgs]; | |
| if (target.kd) { | |
| delete target.kd[expectedNumberOfNonCommentArgs]; | |
| } | |
| return target; | |
| }; | |
| /** | |
| * @param {Function} child | |
| * @param {?} opt_attributes | |
| * @return {undefined} | |
| */ | |
| var isAncestor = function(child, opt_attributes) { | |
| child.jy = opt_attributes; | |
| /** | |
| * @return {?} | |
| */ | |
| child.oc = function() { | |
| return child.mt || (new child).oc(); | |
| }; | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var AnimateEffect = function() { | |
| }; | |
| /** | |
| * @param {?} key | |
| * @param {?} optgroup | |
| * @return {?} | |
| */ | |
| AnimateEffect.prototype.aj = function(key, optgroup) { | |
| return requestAnimationFrame(key) ? this.Ij(optgroup) : optgroup; | |
| }; | |
| /** | |
| * @param {?} dataAndEvents | |
| * @param {?} name | |
| * @return {?} | |
| */ | |
| AnimateEffect.prototype.Oi = function(dataAndEvents, name) { | |
| var which = new dataAndEvents.Iq; | |
| this.pp(which, name); | |
| return which; | |
| }; | |
| /** | |
| * @param {number} type | |
| * @param {?} optgroup | |
| * @return {?} | |
| */ | |
| AnimateEffect.prototype.Zi = function(type, optgroup) { | |
| if (requestAnimationFrame(type)) { | |
| return optgroup instanceof _super ? optgroup : this.Oi(type.Wg.oc(), optgroup); | |
| } | |
| if (!type.nt) { | |
| return optgroup; | |
| } | |
| var nativeType = type.Wg; | |
| if (nativeType === String) { | |
| if ("number" === typeof optgroup) { | |
| return String(optgroup); | |
| } | |
| } else { | |
| if (nativeType === Number && ("string" === typeof optgroup && /^-?[0-9]+$/.test(optgroup))) { | |
| return Number(optgroup); | |
| } | |
| } | |
| return optgroup; | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var JobClass = function() { | |
| }; | |
| __extends(JobClass, AnimateEffect); | |
| /** | |
| * @param {?} dataAndEvents | |
| * @param {?} name | |
| * @return {?} | |
| */ | |
| JobClass.prototype.Oi = function(dataAndEvents, name) { | |
| var c = new dataAndEvents.Iq; | |
| c.zq = this; | |
| c.sd = name; | |
| c.kd = {}; | |
| return c; | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| JobClass.prototype.pp = function() { | |
| throw Error("Unimplemented"); | |
| }; | |
| /** | |
| * @param {Function} dataAndEvents | |
| * @return {undefined} | |
| */ | |
| var FlatMessage = function(dataAndEvents) { | |
| /** @type {Function} */ | |
| this.iz = dataAndEvents; | |
| }; | |
| __extends(FlatMessage, AnimateEffect); | |
| /** | |
| * @param {?} name | |
| * @return {?} | |
| */ | |
| FlatMessage.prototype.Ij = function(name) { | |
| var parts = getId(name.oc()); | |
| var qs = {}; | |
| /** @type {number} */ | |
| var ii = 0; | |
| for (;ii < parts.length;ii++) { | |
| var p = parts[ii]; | |
| var i = 1 == this.iz ? p.getName() : p.yb; | |
| if (ondata(name, p.yb)) { | |
| if (p.Ee) { | |
| /** @type {Array} */ | |
| var val = []; | |
| /** @type {Array} */ | |
| qs[i] = val; | |
| /** @type {number} */ | |
| i = 0; | |
| for (;i < member(name, p.yb);i++) { | |
| val.push(this.aj(p, name.get(p, i))); | |
| } | |
| } else { | |
| qs[i] = this.aj(p, name.get(p)); | |
| } | |
| } | |
| } | |
| dasherize(name, function(i, val) { | |
| qs[i] = val; | |
| }); | |
| return qs; | |
| }; | |
| /** | |
| * @param {Object} object | |
| * @param {Object} str | |
| * @return {undefined} | |
| */ | |
| FlatMessage.prototype.pp = function(object, str) { | |
| var p = object.oc(); | |
| var optgroup; | |
| for (optgroup in str) { | |
| var cycle; | |
| var c = str[optgroup]; | |
| /** @type {boolean} */ | |
| var n = !/[^0-9]/.test(optgroup); | |
| if (cycle = n ? p.ie[parseInt(optgroup, 10)] || null : setFillAndStroke(p, optgroup)) { | |
| if (cycle.Ee) { | |
| typeOf(c); | |
| /** @type {number} */ | |
| n = 0; | |
| for (;n < c.length;n++) { | |
| object.add(cycle, this.Zi(cycle, c[n])); | |
| } | |
| } else { | |
| typeOf(c); | |
| object.set(cycle, this.Zi(cycle, c)); | |
| } | |
| } else { | |
| if (n) { | |
| /** @type {Object} */ | |
| cycle = object; | |
| /** @type {number} */ | |
| n = Number(optgroup); | |
| cycle.sd[n] = c; | |
| if (cycle.kd) { | |
| delete cycle.kd[n]; | |
| } | |
| } | |
| } | |
| } | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Slice = function() { | |
| }; | |
| __extends(Slice, JobClass); | |
| self = Slice.prototype; | |
| /** @type {boolean} */ | |
| self.Cw = false; | |
| /** | |
| * @param {?} name | |
| * @return {?} | |
| */ | |
| self.Ij = function(name) { | |
| var codeSegments = getId(name.oc()); | |
| /** @type {Array} */ | |
| var obj = []; | |
| var strip = this.Cw; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < codeSegments.length;i++) { | |
| var storageKey = codeSegments[i]; | |
| if (ondata(name, storageKey.yb)) { | |
| var content = storageKey.yb; | |
| content = strip ? content - 1 : content; | |
| if (storageKey.Ee) { | |
| /** @type {Array} */ | |
| obj[content] = []; | |
| /** @type {number} */ | |
| var camelKey = 0; | |
| for (;camelKey < member(name, storageKey.yb);camelKey++) { | |
| obj[content][camelKey] = this.aj(storageKey, name.get(storageKey, camelKey)); | |
| } | |
| } else { | |
| obj[content] = this.aj(storageKey, name.get(storageKey)); | |
| } | |
| } | |
| } | |
| dasherize(name, function(key, res) { | |
| obj[strip ? key - 1 : key] = res; | |
| }); | |
| return obj; | |
| }; | |
| /** | |
| * @param {?} key | |
| * @param {boolean} dataAndEvents | |
| * @return {?} | |
| */ | |
| self.aj = function(key, dataAndEvents) { | |
| return 8 == key.Md ? dataAndEvents ? 1 : 0 : AnimateEffect.prototype.aj.apply(this, arguments); | |
| }; | |
| /** | |
| * @param {number} type | |
| * @param {(number|string)} ctor | |
| * @return {?} | |
| */ | |
| self.Zi = function(type, ctor) { | |
| return 8 == type.Md ? 1 === ctor : AnimateEffect.prototype.Zi.apply(this, arguments); | |
| }; | |
| /** | |
| * @param {?} ctx | |
| * @param {?} name | |
| * @return {?} | |
| */ | |
| self.Oi = function(ctx, name) { | |
| var info = name; | |
| if (this.Cw) { | |
| /** @type {Array} */ | |
| info = []; | |
| var key; | |
| for (key in name) { | |
| info[parseInt(key, 10) + 1] = name[key]; | |
| } | |
| } | |
| return Slice.Ga.Oi.call(this, ctx, info); | |
| }; | |
| /** | |
| * @param {?} value | |
| * @return {undefined} | |
| */ | |
| var Access = function(value) { | |
| /** @type {boolean} */ | |
| this.Tm = !!value; | |
| }; | |
| __extends(Access, AnimateEffect); | |
| /** | |
| * @param {string} object | |
| * @param {?} str | |
| * @return {?} | |
| */ | |
| Access.prototype.pp = function(object, str) { | |
| object.oc(); | |
| var parser = new FixParser; | |
| return parser.parse(object, str.toString(), this.Tm) ? null : parser.getError(); | |
| }; | |
| /** | |
| * @param {?} name | |
| * @return {?} | |
| */ | |
| Access.prototype.Ij = function(name) { | |
| var clone = new $Element; | |
| sender(this, name, clone); | |
| return clone.toString(); | |
| }; | |
| /** | |
| * @param {boolean} op | |
| * @param {?} name | |
| * @param {?} array | |
| * @return {undefined} | |
| */ | |
| var sender = function(op, name, array) { | |
| var until = getId(name.oc()); | |
| getPostfixExpression(until, function(storageKey) { | |
| if (ondata(name, storageKey.yb)) { | |
| var quoteNeeded = member(name, storageKey.yb); | |
| /** @type {number} */ | |
| var camelKey = 0; | |
| for (;camelKey < quoteNeeded;++camelKey) { | |
| array.append(storageKey.getName()); | |
| if (11 == storageKey.Md || 10 == storageKey.Md) { | |
| array.append(" {"); | |
| rFlatten(array); | |
| array.Uf += 2; | |
| } else { | |
| array.append(": "); | |
| } | |
| collect(this, name.get(storageKey, camelKey), storageKey, array); | |
| if (11 == storageKey.Md || 10 == storageKey.Md) { | |
| array.Uf -= 2; | |
| array.append("}"); | |
| } | |
| rFlatten(array); | |
| } | |
| } | |
| }, op); | |
| dasherize(name, function(k, item) { | |
| if (item) { | |
| array.append(k); | |
| if ("object" == typeOf(item)) { | |
| array.append(" {"); | |
| rFlatten(array); | |
| array.Uf += 2; | |
| } else { | |
| array.append(": "); | |
| } | |
| switch(typeOf(item)) { | |
| case "string": | |
| item = repeat(item); | |
| array.append(item); | |
| break; | |
| case "object": | |
| sender(this, item, array); | |
| break; | |
| default: | |
| array.append(item.toString()); | |
| } | |
| if ("object" == typeOf(item)) { | |
| array.Uf -= 2; | |
| array.append("}"); | |
| } else { | |
| rFlatten(array); | |
| } | |
| } | |
| }, op); | |
| }; | |
| /** | |
| * @param {boolean} obj | |
| * @param {(Error|string)} value | |
| * @param {string} key | |
| * @param {?} array | |
| * @return {undefined} | |
| */ | |
| var collect = function(obj, value, key, array) { | |
| switch(key.Md) { | |
| case 1: | |
| ; | |
| case 2: | |
| ; | |
| case KEYCODE_SPACE: | |
| ; | |
| case KEYCODE_LEFT: | |
| ; | |
| case 5: | |
| ; | |
| case 13: | |
| ; | |
| case KEYCODE_DOWN: | |
| ; | |
| case 7: | |
| ; | |
| case 8: | |
| ; | |
| case 15: | |
| ; | |
| case KEYCODE_H: | |
| ; | |
| case 17: | |
| ; | |
| case z: | |
| array.append(value); | |
| break; | |
| case 12: | |
| ; | |
| case 9: | |
| value = repeat(value.toString()); | |
| array.append(value); | |
| break; | |
| case 14: | |
| /** @type {boolean} */ | |
| var e = false; | |
| curry(key.Wg, function(el, k) { | |
| if (el == value) { | |
| array.append(k); | |
| /** @type {boolean} */ | |
| e = true; | |
| } | |
| }); | |
| if (!e) { | |
| array.append(value.toString()); | |
| } | |
| break; | |
| case 10: | |
| ; | |
| case 11: | |
| sender(obj, value, array); | |
| } | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var $Element = function() { | |
| /** @type {number} */ | |
| this.Uf = 0; | |
| /** @type {Array} */ | |
| this.Kc = []; | |
| /** @type {boolean} */ | |
| this.dr = true; | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| $Element.prototype.toString = function() { | |
| return this.Kc.join(""); | |
| }; | |
| /** | |
| * @param {?} data | |
| * @return {undefined} | |
| */ | |
| $Element.prototype.append = function(data) { | |
| if (this.dr) { | |
| /** @type {number} */ | |
| var Uf = 0; | |
| for (;Uf < this.Uf;++Uf) { | |
| this.Kc.push(" "); | |
| } | |
| /** @type {boolean} */ | |
| this.dr = false; | |
| } | |
| this.Kc.push(data.toString()); | |
| }; | |
| /** | |
| * @param {?} a | |
| * @return {undefined} | |
| */ | |
| var rFlatten = function(a) { | |
| a.Kc.push("\n"); | |
| /** @type {boolean} */ | |
| a.dr = true; | |
| }; | |
| /** | |
| * @param {?} ip | |
| * @param {?} dataAndEvents | |
| * @return {undefined} | |
| */ | |
| var AIMove = function(ip, dataAndEvents) { | |
| /** @type {boolean} */ | |
| this.Uy = !!dataAndEvents; | |
| this.gy = ip; | |
| /** @type {number} */ | |
| this.sb = 0; | |
| this.ip = ip; | |
| this.Ne = { | |
| type : lastType, | |
| value : null | |
| }; | |
| }; | |
| /** @type {RegExp} */ | |
| var lastType = /---end---/; | |
| /** @type {RegExp} */ | |
| var attribute = /^-?[a-zA-Z][a-zA-Z0-9_]*/; | |
| /** @type {RegExp} */ | |
| var property = /^(0x[0-9a-f]+)|(([-])?[0-9][0-9]*(\.?[0-9]+)?([f])?)/; | |
| /** @type {RegExp} */ | |
| var fix = /^"([^"\\]|\\.)*"/; | |
| /** @type {RegExp} */ | |
| var zH = /^\s/; | |
| var scrubbed = { | |
| uC : lastType, | |
| oD : attribute, | |
| po : property, | |
| DB : /^#.*/, | |
| cF : /^{/, | |
| wB : /^}/, | |
| eF : /^</, | |
| yB : /^>/, | |
| dF : /^\[/, | |
| xB : /^\]/, | |
| lx : fix, | |
| BB : /^:/, | |
| Kw : /^,/, | |
| ZF : /^;/, | |
| zH : zH | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| AIMove.prototype.next = function() { | |
| for (;advance(this);) { | |
| if (this.Ne.type != zH || !this.Uy) { | |
| return true; | |
| } | |
| } | |
| this.Ne = { | |
| type : lastType, | |
| value : null | |
| }; | |
| return false; | |
| }; | |
| /** | |
| * @param {(Object|string)} options | |
| * @return {?} | |
| */ | |
| var advance = function(options) { | |
| if (options.sb >= options.gy.length) { | |
| return false; | |
| } | |
| var on = options.ip; | |
| /** @type {null} */ | |
| var option = null; | |
| curry(scrubbed, function(type) { | |
| if (!option && type != lastType) { | |
| var m = type.exec(on); | |
| if (m) { | |
| if (0 == m.index) { | |
| option = { | |
| type : type, | |
| value : m[0] | |
| }; | |
| } | |
| } | |
| } | |
| }); | |
| if (option) { | |
| options.Ne = option; | |
| options.sb += option.value.length; | |
| options.ip = options.ip.substring(option.value.length); | |
| } | |
| return!!option; | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var FixParser = function() { | |
| /** @type {null} */ | |
| this.be = this.Mf = null; | |
| /** @type {boolean} */ | |
| this.Tm = false; | |
| }; | |
| /** | |
| * @param {?} s | |
| * @param {string} execResult | |
| * @param {?} reviver | |
| * @return {?} | |
| */ | |
| FixParser.prototype.parse = function(s, execResult, reviver) { | |
| /** @type {null} */ | |
| this.Mf = null; | |
| /** @type {boolean} */ | |
| this.Tm = !!reviver; | |
| this.be = new AIMove(execResult, true); | |
| this.be.next(); | |
| return isEmpty(this, s, ""); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| FixParser.prototype.getError = function() { | |
| return this.Mf; | |
| }; | |
| /** | |
| * @param {number} element | |
| * @param {?} v21 | |
| * @param {string} str | |
| * @return {?} | |
| */ | |
| var isEmpty = function(element, v21, str) { | |
| for (;">" != element.be.Ne.value && ("}" != element.be.Ne.value && element.be.Ne.type != lastType);) { | |
| if (!returnFalse(element, v21)) { | |
| return false; | |
| } | |
| } | |
| if (str) { | |
| if (!$transition(element, str)) { | |
| return false; | |
| } | |
| } else { | |
| if (element.be.Ne.type != lastType) { | |
| /** @type {string} */ | |
| element.Mf = "Expected END token"; | |
| } | |
| } | |
| return true; | |
| }; | |
| /** | |
| * @param {number} expectedNumberOfNonCommentArgs | |
| * @param {Object} namespace | |
| * @param {string} fix | |
| * @return {?} | |
| */ | |
| var animateSetup = function(expectedNumberOfNonCommentArgs, namespace, fix) { | |
| expectedNumberOfNonCommentArgs = convertValue(expectedNumberOfNonCommentArgs, fix); | |
| if (null === expectedNumberOfNonCommentArgs) { | |
| return false; | |
| } | |
| if (fix.Ee) { | |
| namespace.add(fix, expectedNumberOfNonCommentArgs); | |
| } else { | |
| namespace.set(fix, expectedNumberOfNonCommentArgs); | |
| } | |
| return true; | |
| }; | |
| /** | |
| * @param {number} element | |
| * @param {string} type | |
| * @return {?} | |
| */ | |
| var convertValue = function(element, type) { | |
| switch(type.Md) { | |
| case 1: | |
| ; | |
| case 2: | |
| var value = proceed(element, attribute); | |
| if (value && (value = /^-?inf(?:inity)?f?$/i.test(value) ? Infinity * (0 == value.lastIndexOf("-", 0) ? -1 : 1) : /^nanf?$/i.test(value) ? NaN : null, null != value)) { | |
| return value; | |
| } | |
| ; | |
| case 5: | |
| ; | |
| case 13: | |
| ; | |
| case 7: | |
| ; | |
| case 15: | |
| ; | |
| case 17: | |
| return(value = proceed(element, property)) ? -1 != value.indexOf(".") ? parseFloat(value) : formatNumber(value) : null; | |
| case KEYCODE_SPACE: | |
| ; | |
| case KEYCODE_LEFT: | |
| ; | |
| case KEYCODE_DOWN: | |
| ; | |
| case KEYCODE_H: | |
| ; | |
| case z: | |
| return(value = proceed(element, property)) ? type.Wg == Number ? -1 != value.indexOf(".") ? parseFloat(value) : formatNumber(value) : value : null; | |
| case 8: | |
| value = proceed(element, attribute); | |
| if (!value) { | |
| return null; | |
| } | |
| switch(value) { | |
| case "true": | |
| return true; | |
| case "false": | |
| return false; | |
| default: | |
| return element.Mf = "Unknown type for bool: " + value, null; | |
| } | |
| ; | |
| case 14: | |
| if (element.be.Ne.type == property) { | |
| return proceed(element, property); | |
| } | |
| value = proceed(element, attribute); | |
| if (!value) { | |
| return null; | |
| } | |
| var count = type.Wg[value]; | |
| return null == count ? (element.Mf = "Unknown enum value: " + value, null) : count; | |
| case 12: | |
| ; | |
| case 9: | |
| return(value = proceed(element, fix)) ? htmlEscape(value).toString() : null; | |
| } | |
| }; | |
| /** | |
| * @param {number} element | |
| * @return {?} | |
| */ | |
| var verify = function(element) { | |
| addElement(element, ":"); | |
| if (addElement(element, "[")) { | |
| for (;;) { | |
| element.be.next(); | |
| if (addElement(element, "]")) { | |
| break; | |
| } | |
| if (!$transition(element, ",")) { | |
| return false; | |
| } | |
| } | |
| return true; | |
| } | |
| if (addElement(element, "<")) { | |
| return isEmpty(element, null, ">"); | |
| } | |
| if (addElement(element, "{")) { | |
| return isEmpty(element, null, "}"); | |
| } | |
| element.be.next(); | |
| return true; | |
| }; | |
| /** | |
| * @param {number} element | |
| * @param {Object} namespace | |
| * @return {?} | |
| */ | |
| var returnFalse = function(element, namespace) { | |
| var cycle = proceed(element, attribute); | |
| if (!cycle) { | |
| return element.Mf = "Missing field name", false; | |
| } | |
| /** @type {null} */ | |
| var expires = null; | |
| if (namespace) { | |
| expires = setFillAndStroke(namespace.oc(), cycle.toString()); | |
| } | |
| if (null == expires) { | |
| if (element.Tm) { | |
| return verify(element); | |
| } | |
| /** @type {string} */ | |
| element.Mf = "Unknown field: " + cycle; | |
| return false; | |
| } | |
| if (11 == expires.Md || 10 == expires.Md) { | |
| addElement(element, ":"); | |
| a: { | |
| cycle = expires; | |
| /** @type {string} */ | |
| expires = ""; | |
| if (addElement(element, "<")) { | |
| /** @type {string} */ | |
| expires = ">"; | |
| } else { | |
| if (!$transition(element, "{")) { | |
| /** @type {boolean} */ | |
| cycle = false; | |
| break a; | |
| } | |
| /** @type {string} */ | |
| expires = "}"; | |
| } | |
| var expectedNumberOfNonCommentArgs; | |
| expectedNumberOfNonCommentArgs = new (cycle.Wg.oc().Iq); | |
| if (isEmpty(element, expectedNumberOfNonCommentArgs, expires)) { | |
| if (cycle.Ee) { | |
| namespace.add(cycle, expectedNumberOfNonCommentArgs); | |
| } else { | |
| namespace.set(cycle, expectedNumberOfNonCommentArgs); | |
| } | |
| /** @type {boolean} */ | |
| cycle = true; | |
| } else { | |
| /** @type {boolean} */ | |
| cycle = false; | |
| } | |
| } | |
| if (!cycle) { | |
| return false; | |
| } | |
| } else { | |
| if (!$transition(element, ":")) { | |
| return false; | |
| } | |
| if (expires.Ee && addElement(element, "[")) { | |
| for (;;) { | |
| if (!animateSetup(element, namespace, expires)) { | |
| return false; | |
| } | |
| if (addElement(element, "]")) { | |
| break; | |
| } | |
| if (!$transition(element, ",")) { | |
| return false; | |
| } | |
| } | |
| } else { | |
| if (!animateSetup(element, namespace, expires)) { | |
| return false; | |
| } | |
| } | |
| } | |
| if (!addElement(element, ",")) { | |
| addElement(element, ";"); | |
| } | |
| return true; | |
| }; | |
| /** | |
| * @param {number} allow | |
| * @param {string} value | |
| * @return {?} | |
| */ | |
| var addElement = function(allow, value) { | |
| return allow.be.Ne.value == value ? (allow.be.next(), true) : false; | |
| }; | |
| /** | |
| * @param {number} event | |
| * @param {RegExp} type | |
| * @return {?} | |
| */ | |
| var proceed = function(event, type) { | |
| if (event.be.Ne.type != type) { | |
| return event.Mf = "Expected token type: " + type, null; | |
| } | |
| var raw = event.be.Ne.value; | |
| event.be.next(); | |
| return raw; | |
| }; | |
| /** | |
| * @param {number} element | |
| * @param {string} now | |
| * @return {?} | |
| */ | |
| var $transition = function(element, now) { | |
| return addElement(element, now) ? true : (element.Mf = 'Expected token "' + now + '"', false); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var ArgThat = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(ArgThat, _super); | |
| self = ArgThat.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ig = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {?} target | |
| * @return {undefined} | |
| */ | |
| self.qi = function(target) { | |
| origFindId(this, 1, target); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Lt = function() { | |
| return func(this, 2); | |
| }; | |
| /** | |
| * @param {number} isXML | |
| * @return {undefined} | |
| */ | |
| self.Sv = function(isXML) { | |
| origFindId(this, 2, isXML); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {undefined} | |
| */ | |
| self.Ov = function(isXML) { | |
| origFindId(this, 3, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ht = function() { | |
| return func(this, 4); | |
| }; | |
| /** | |
| * @param {Object} isXML | |
| * @return {undefined} | |
| */ | |
| self.Pv = function(isXML) { | |
| origFindId(this, 4, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Yt = function() { | |
| return ondata(this, 4); | |
| }; | |
| isAncestor(ArgThat, { | |
| 0 : { | |
| name : "PhoneNumber", | |
| $ : "i18n.phonenumbers.PhoneNumber" | |
| }, | |
| 1 : { | |
| name : "country_code", | |
| required : true, | |
| c : 5, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 2 : { | |
| name : "national_number", | |
| required : true, | |
| c : 4, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 3 : { | |
| name : "extension", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 4 : { | |
| name : "italian_leading_zero", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 8 : { | |
| name : "number_of_leading_zeros", | |
| c : 5, | |
| defaultValue : 1, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 5 : { | |
| name : "raw_input", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 6 : { | |
| name : "country_code_source", | |
| c : 14, | |
| defaultValue : 1, | |
| type : { | |
| Ww : 1, | |
| Vw : 5, | |
| Uw : 10, | |
| Tw : 20 | |
| } | |
| }, | |
| 7 : { | |
| name : "preferred_domestic_carrier_code", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| } | |
| }); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var str = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(str, _super); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var ul = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(ul, _super); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var TodosActiveView = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(TodosActiveView, _super); | |
| self = TodosActiveView.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Da = function() { | |
| return func(this, 9); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Aa = function() { | |
| return get_mangled(this, 9); | |
| }; | |
| /** | |
| * @param {string} iterator | |
| * @return {undefined} | |
| */ | |
| self.Ia = function(iterator) { | |
| origFindId(this, 9, iterator); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| self.Ab = function() { | |
| isArray(this, 9); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ig = function() { | |
| return get_mangled(this, 10); | |
| }; | |
| /** | |
| * @param {?} target | |
| * @return {undefined} | |
| */ | |
| self.qi = function(target) { | |
| origFindId(this, 10, target); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var stat = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(stat, _super); | |
| isAncestor(str, { | |
| 0 : { | |
| name : "NumberFormat", | |
| $ : "i18n.phonenumbers.NumberFormat" | |
| }, | |
| 1 : { | |
| name : "pattern", | |
| required : true, | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "format", | |
| required : true, | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 3 : { | |
| name : "leading_digits_pattern", | |
| aa : true, | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 4 : { | |
| name : "national_prefix_formatting_rule", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 6 : { | |
| name : "national_prefix_optional_when_formatting", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 5 : { | |
| name : "domestic_carrier_code_formatting_rule", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| } | |
| }); | |
| isAncestor(ul, { | |
| 0 : { | |
| name : "PhoneNumberDesc", | |
| $ : "i18n.phonenumbers.PhoneNumberDesc" | |
| }, | |
| 2 : { | |
| name : "national_number_pattern", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 3 : { | |
| name : "possible_number_pattern", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 6 : { | |
| name : "example_number", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| } | |
| }); | |
| isAncestor(TodosActiveView, { | |
| 0 : { | |
| name : "PhoneMetadata", | |
| $ : "i18n.phonenumbers.PhoneMetadata" | |
| }, | |
| 1 : { | |
| name : "general_desc", | |
| required : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : ul | |
| }, | |
| 2 : { | |
| name : "fixed_line", | |
| required : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : ul | |
| }, | |
| 3 : { | |
| name : "mobile", | |
| required : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : ul | |
| }, | |
| 4 : { | |
| name : "toll_free", | |
| required : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : ul | |
| }, | |
| 5 : { | |
| name : "premium_rate", | |
| required : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : ul | |
| }, | |
| 6 : { | |
| name : "shared_cost", | |
| required : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : ul | |
| }, | |
| 7 : { | |
| name : "personal_number", | |
| required : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : ul | |
| }, | |
| 8 : { | |
| name : "voip", | |
| required : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : ul | |
| }, | |
| 21 : { | |
| name : "pager", | |
| required : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : ul | |
| }, | |
| 25 : { | |
| name : "uan", | |
| required : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : ul | |
| }, | |
| 27 : { | |
| name : "emergency", | |
| required : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : ul | |
| }, | |
| 28 : { | |
| name : "voicemail", | |
| required : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : ul | |
| }, | |
| 24 : { | |
| name : "no_international_dialling", | |
| required : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : ul | |
| }, | |
| 9 : { | |
| name : "id", | |
| required : true, | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 10 : { | |
| name : "country_code", | |
| required : true, | |
| c : 5, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 11 : { | |
| name : "international_prefix", | |
| required : true, | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 17 : { | |
| name : "preferred_international_prefix", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 12 : { | |
| name : "national_prefix", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 13 : { | |
| name : "preferred_extn_prefix", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 15 : { | |
| name : "national_prefix_for_parsing", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 16 : { | |
| name : "national_prefix_transform_rule", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 18 : { | |
| name : "same_mobile_and_fixed_line_pattern", | |
| c : 8, | |
| defaultValue : false, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 19 : { | |
| name : "number_format", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : str | |
| }, | |
| 20 : { | |
| name : "intl_number_format", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : str | |
| }, | |
| 22 : { | |
| name : "main_country_for_code", | |
| c : 8, | |
| defaultValue : false, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 23 : { | |
| name : "leading_digits", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 26 : { | |
| name : "leading_zero_possible", | |
| c : 8, | |
| defaultValue : false, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| } | |
| }); | |
| isAncestor(stat, { | |
| 0 : { | |
| name : "PhoneMetadataCollection", | |
| $ : "i18n.phonenumbers.PhoneMetadataCollection" | |
| }, | |
| 1 : { | |
| name : "metadata", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : TodosActiveView | |
| } | |
| }); | |
| var script = { | |
| countryToMetadata : [], | |
| countryCodeToRegionCodeMap : [] | |
| }; | |
| append("i18n.phonenumbers.metadata", script); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Camera = function() { | |
| this.pv = {}; | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| Camera.Dy = function() { | |
| return Camera.ju ? Camera.ju : Camera.ju = new Camera; | |
| }; | |
| append("i18n.phonenumbers.loadFromServer", function() { | |
| Request("GET", "/-/phonenumber-metadata/", null, function(id) { | |
| makeModuleMap(id); | |
| }); | |
| }); | |
| var r20 = { | |
| 0 : "0", | |
| 1 : "1", | |
| 2 : "2", | |
| 3 : "3", | |
| 4 : "4", | |
| 5 : "5", | |
| 6 : "6", | |
| 7 : "7", | |
| 8 : "8", | |
| 9 : "9", | |
| "\uff10" : "0", | |
| "\uff11" : "1", | |
| "\uff12" : "2", | |
| "\uff13" : "3", | |
| "\uff14" : "4", | |
| "\uff15" : "5", | |
| "\uff16" : "6", | |
| "\uff17" : "7", | |
| "\uff18" : "8", | |
| "\uff19" : "9", | |
| "\u0660" : "0", | |
| "\u0661" : "1", | |
| "\u0662" : "2", | |
| "\u0663" : "3", | |
| "\u0664" : "4", | |
| "\u0665" : "5", | |
| "\u0666" : "6", | |
| "\u0667" : "7", | |
| "\u0668" : "8", | |
| "\u0669" : "9", | |
| "\u06f0" : "0", | |
| "\u06f1" : "1", | |
| "\u06f2" : "2", | |
| "\u06f3" : "3", | |
| "\u06f4" : "4", | |
| "\u06f5" : "5", | |
| "\u06f6" : "6", | |
| "\u06f7" : "7", | |
| "\u06f8" : "8", | |
| "\u06f9" : "9" | |
| }; | |
| var rreturn = { | |
| 0 : "0", | |
| 1 : "1", | |
| 2 : "2", | |
| 3 : "3", | |
| 4 : "4", | |
| 5 : "5", | |
| 6 : "6", | |
| 7 : "7", | |
| 8 : "8", | |
| 9 : "9", | |
| "\uff10" : "0", | |
| "\uff11" : "1", | |
| "\uff12" : "2", | |
| "\uff13" : "3", | |
| "\uff14" : "4", | |
| "\uff15" : "5", | |
| "\uff16" : "6", | |
| "\uff17" : "7", | |
| "\uff18" : "8", | |
| "\uff19" : "9", | |
| "\u0660" : "0", | |
| "\u0661" : "1", | |
| "\u0662" : "2", | |
| "\u0663" : "3", | |
| "\u0664" : "4", | |
| "\u0665" : "5", | |
| "\u0666" : "6", | |
| "\u0667" : "7", | |
| "\u0668" : "8", | |
| "\u0669" : "9", | |
| "\u06f0" : "0", | |
| "\u06f1" : "1", | |
| "\u06f2" : "2", | |
| "\u06f3" : "3", | |
| "\u06f4" : "4", | |
| "\u06f5" : "5", | |
| "\u06f6" : "6", | |
| "\u06f7" : "7", | |
| "\u06f8" : "8", | |
| "\u06f9" : "9", | |
| A : "2", | |
| B : "2", | |
| C : "2", | |
| D : "3", | |
| E : "3", | |
| F : "3", | |
| G : "4", | |
| H : "4", | |
| I : "4", | |
| J : "5", | |
| K : "5", | |
| L : "5", | |
| M : "6", | |
| N : "6", | |
| O : "6", | |
| P : "7", | |
| Q : "7", | |
| R : "7", | |
| S : "7", | |
| T : "8", | |
| U : "8", | |
| V : "8", | |
| W : "9", | |
| X : "9", | |
| Y : "9", | |
| Z : "9" | |
| }; | |
| /** @type {RegExp} */ | |
| var v = RegExp("^[+\uff0b]+"); | |
| /** @type {RegExp} */ | |
| var name = RegExp("([0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9])"); | |
| /** @type {RegExp} */ | |
| var regex = RegExp("[+\uff0b0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]"); | |
| /** @type {RegExp} */ | |
| var term = /[\\\/] *x/; | |
| /** @type {RegExp} */ | |
| var cx = RegExp("[^0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9A-Za-z#]+$"); | |
| /** @type {RegExp} */ | |
| var ancestors = /(?:.*?[A-Za-z]){3}.*/; | |
| /** @type {RegExp} */ | |
| var optgroup = RegExp("(?:;ext=([0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]{1,7})|[ \u00a0\\t,]*(?:e?xt(?:ensi(?:o\u0301?|\u00f3))?n?|\uff45?\uff58\uff54\uff4e?|[,x\uff58#\uff03~\uff5e]|int|anexo|\uff49\uff4e\uff54)[:\\.\uff0e]?[ \u00a0\\t,-]*([0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]{1,7})#?|[- ]+([0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]{1,5})#)$", "i"); | |
| /** @type {RegExp} */ | |
| var rx = RegExp("^[0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]{2}$|^[+\uff0b]*(?:[-x\u2010-\u2015\u2212\u30fc\uff0d-\uff0f \u00a0\u00ad\u200b\u2060\u3000()\uff08\uff09\uff3b\uff3d.\\[\\]/~\u2053\u223c\uff5e*]*[0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]){3,}[-x\u2010-\u2015\u2212\u30fc\uff0d-\uff0f \u00a0\u00ad\u200b\u2060\u3000()\uff08\uff09\uff3b\uff3d.\\[\\]/~\u2053\u223c\uff5e*A-Za-z0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]*(?:;ext=([0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]{1,7})|[ \u00a0\\t,]*(?:e?xt(?:ensi(?:o\u0301?|\u00f3))?n?|\uff45?\uff58\uff54\uff4e?|[,x\uff58#\uff03~\uff5e]|int|anexo|\uff49\uff4e\uff54)[:\\.\uff0e]?[ \u00a0\\t,-]*([0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]{1,7})#?|[- ]+([0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]{1,5})#)?$", | |
| "i"); | |
| /** | |
| * @param {string} text | |
| * @return {?} | |
| */ | |
| var removeComments = function(text) { | |
| var index = text.search(regex); | |
| if (0 <= index) { | |
| text = text.substring(index); | |
| text = text.replace(cx, ""); | |
| index = text.search(term); | |
| if (0 <= index) { | |
| text = text.substring(0, index); | |
| } | |
| } else { | |
| /** @type {string} */ | |
| text = ""; | |
| } | |
| return text; | |
| }; | |
| /** | |
| * @param {Object} func | |
| * @return {undefined} | |
| */ | |
| var _load = function(func) { | |
| var pdataCur = last(ancestors, func.toString()) ? getParam(func.toString(), rreturn) : getParam(func.toString(), r20); | |
| func.clear(); | |
| func.append(pdataCur); | |
| }; | |
| /** | |
| * @param {string} name | |
| * @param {?} regex | |
| * @return {?} | |
| */ | |
| var getParam = function(name, regex) { | |
| var c = new Color; | |
| var k; | |
| var valuesLen = name.length; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < valuesLen;++i) { | |
| k = name.charAt(i); | |
| k = regex[k.toUpperCase()]; | |
| if (null != k) { | |
| c.append(k); | |
| } | |
| } | |
| return c.toString(); | |
| }; | |
| /** | |
| * @param {?} i | |
| * @return {?} | |
| */ | |
| var pad = function(i) { | |
| var num = "" + i.Lt(); | |
| return i.Yt() && i.Ht() ? Array(get_mangled(i, 8) + 1).join("0") + num : num; | |
| }; | |
| /** | |
| * @param {string} obj | |
| * @param {?} fn | |
| * @return {?} | |
| */ | |
| var rename = function(obj, fn) { | |
| var name = func(fn, 1); | |
| return ondata(name, 2) && label(obj, name) ? label(obj, func(fn, 5)) ? 4 : label(obj, func(fn, 4)) ? 3 : label(obj, func(fn, 6)) ? 5 : label(obj, func(fn, 8)) ? 6 : label(obj, func(fn, 7)) ? 7 : label(obj, func(fn, 21)) ? 8 : label(obj, func(fn, 25)) ? 9 : label(obj, func(fn, 28)) ? 10 : label(obj, func(fn, 2)) ? func(fn, 18) || label(obj, func(fn, 3)) ? 2 : 0 : !func(fn, 18) && label(obj, func(fn, 3)) ? 1 : -1 : -1; | |
| }; | |
| /** | |
| * @param {string} item | |
| * @param {string} name | |
| * @return {?} | |
| */ | |
| var getName = function(item, name) { | |
| if (null == name) { | |
| return null; | |
| } | |
| name = name.toUpperCase(); | |
| var klass = item.pv[name]; | |
| if (null == klass) { | |
| klass = script.countryToMetadata[name]; | |
| if (null == klass) { | |
| return null; | |
| } | |
| klass = (new Slice).Oi(TodosActiveView.oc(), klass); | |
| item.pv[name] = klass; | |
| } | |
| return klass; | |
| }; | |
| /** | |
| * @param {string} o | |
| * @param {?} name | |
| * @return {?} | |
| */ | |
| var label = function(o, name) { | |
| return last(get_mangled(name, 3), o) && last(get_mangled(name, 2), o); | |
| }; | |
| /** | |
| * @param {Object} options | |
| * @param {string} text | |
| * @param {Object} t | |
| * @param {?} position | |
| * @return {?} | |
| */ | |
| var endsWith = function(options, text, t, position) { | |
| if (0 == options.length) { | |
| return 0; | |
| } | |
| options = new Color(options); | |
| var value; | |
| if (null != text) { | |
| value = func(text, 11); | |
| } | |
| if (null == value) { | |
| /** @type {string} */ | |
| value = "NonMatch"; | |
| } | |
| var optgroup = options.toString(); | |
| if (0 == optgroup.length) { | |
| /** @type {number} */ | |
| value = 20; | |
| } else { | |
| if (v.test(optgroup)) { | |
| optgroup = optgroup.replace(v, ""); | |
| options.clear(); | |
| options.append(last(ancestors, optgroup) ? getParam(optgroup, rreturn) : getParam(optgroup, r20)); | |
| /** @type {number} */ | |
| value = 1; | |
| } else { | |
| /** @type {RegExp} */ | |
| optgroup = RegExp(value); | |
| _load(options); | |
| value = options.toString(); | |
| if (0 == value.search(optgroup)) { | |
| optgroup = value.match(optgroup)[0].length; | |
| var input = value.substring(optgroup).match(name); | |
| if (input && (null != input[1] && (0 < input[1].length && "0" == getParam(input[1], r20)))) { | |
| /** @type {boolean} */ | |
| value = false; | |
| } else { | |
| options.clear(); | |
| options.append(value.substring(optgroup)); | |
| /** @type {boolean} */ | |
| value = true; | |
| } | |
| } else { | |
| /** @type {boolean} */ | |
| value = false; | |
| } | |
| /** @type {number} */ | |
| value = value ? 5 : 20; | |
| } | |
| } | |
| if (20 != value) { | |
| if (2 >= options.Kc.length) { | |
| throw "Phone number too short after IDD"; | |
| } | |
| a: { | |
| options = options.toString(); | |
| if (0 != options.length && "0" != options.charAt(0)) { | |
| value = options.length; | |
| /** @type {number} */ | |
| optgroup = 1; | |
| for (;3 >= optgroup && optgroup <= value;++optgroup) { | |
| if (text = parseInt(options.substring(0, optgroup), 10), text in script.countryCodeToRegionCodeMap) { | |
| t.append(options.substring(optgroup)); | |
| /** @type {string} */ | |
| t = text; | |
| break a; | |
| } | |
| } | |
| } | |
| /** @type {number} */ | |
| t = 0; | |
| } | |
| if (0 != t) { | |
| return position.qi(t), t; | |
| } | |
| throw "Invalid country calling code"; | |
| } | |
| if (null != text && (value = text.Ig(), optgroup = "" + value, input = options.toString(), 0 == input.lastIndexOf(optgroup, 0))) { | |
| var c = new Color(input.substring(optgroup.length)); | |
| input = func(text, 1); | |
| /** @type {RegExp} */ | |
| optgroup = RegExp(get_mangled(input, 2)); | |
| parseColor(c, text, null); | |
| text = c.toString(); | |
| input = get_mangled(input, 3); | |
| if (!last(optgroup, options.toString()) && last(optgroup, text) || 3 == (last(input, options.toString()) ? 0 : 0 == options.toString().search(input) ? 3 : 2)) { | |
| return t.append(text), position.qi(value), value; | |
| } | |
| } | |
| position.qi(0); | |
| return 0; | |
| }; | |
| /** | |
| * @param {Object} color | |
| * @param {string} value | |
| * @param {Object} g | |
| * @return {undefined} | |
| */ | |
| var parseColor = function(color, value, g) { | |
| var string = color.toString(); | |
| var n = string.length; | |
| var re = func(value, 15); | |
| if (0 != n && (null != re && (0 != re.length && (re = RegExp("^(?:" + re + ")"), n = re.exec(string))))) { | |
| /** @type {function (new:RegExp, *=, *=): RegExp} */ | |
| var item = RegExp; | |
| var name; | |
| name = func(value, 1); | |
| name = get_mangled(name, 2); | |
| /** @type {RegExp} */ | |
| item = item(name); | |
| name = last(item, string); | |
| /** @type {number} */ | |
| var childKey = n.length - 1; | |
| value = func(value, 16); | |
| if (null == value || (0 == value.length || (null == n[childKey] || 0 == n[childKey].length))) { | |
| if (!name || last(item, string.substring(n[0].length))) { | |
| if (null != g) { | |
| if (0 < childKey) { | |
| if (null != n[childKey]) { | |
| g.append(n[1]); | |
| } | |
| } | |
| } | |
| color.set(string.substring(n[0].length)); | |
| } | |
| } else { | |
| if (string = string.replace(re, value), !name || last(item, string)) { | |
| if (null != g) { | |
| if (0 < childKey) { | |
| g.append(n[1]); | |
| } | |
| } | |
| color.set(string); | |
| } | |
| } | |
| } | |
| }; | |
| /** | |
| * @param {string} s | |
| * @param {string} string | |
| * @return {?} | |
| */ | |
| Camera.prototype.parse = function(s, string) { | |
| if (null == s) { | |
| throw "The string supplied did not seem to be a phone number"; | |
| } | |
| if (250 < s.length) { | |
| throw "The string supplied is too long to be a phone number"; | |
| } | |
| var c = new Color; | |
| var j = s.indexOf(";phone-context="); | |
| if (0 < j) { | |
| var n = j + 15; | |
| if ("+" == s.charAt(n)) { | |
| var name = s.indexOf(";", n); | |
| if (0 < name) { | |
| c.append(s.substring(n, name)); | |
| } else { | |
| c.append(s.substring(n)); | |
| } | |
| } | |
| c.append(s.substring(s.indexOf("tel:") + 4, j)); | |
| } else { | |
| c.append(removeComments(s)); | |
| } | |
| j = c.toString(); | |
| n = j.indexOf(";isub="); | |
| if (0 < n) { | |
| c.clear(); | |
| c.append(j.substring(0, n)); | |
| } | |
| if (2 > c.toString().length || !last(rx, c.toString())) { | |
| throw "The string supplied did not seem to be a phone number"; | |
| } | |
| if (!(null != string && (isNaN(string) && string.toUpperCase() in script.countryToMetadata) || null != c.toString() && (0 < c.toString().length && v.test(c.toString())))) { | |
| throw "Invalid country calling code"; | |
| } | |
| j = new ArgThat; | |
| a: { | |
| n = c.toString(); | |
| name = n.search(optgroup); | |
| if (0 <= name && (2 > n.substring(0, name).length ? 0 : last(rx, n.substring(0, name)))) { | |
| var i = n.match(optgroup); | |
| var x = i.length; | |
| /** @type {number} */ | |
| var key = 1; | |
| for (;key < x;++key) { | |
| if (null != i[key] && 0 < i[key].length) { | |
| c.clear(); | |
| c.append(n.substring(0, name)); | |
| n = i[key]; | |
| break a; | |
| } | |
| } | |
| } | |
| /** @type {string} */ | |
| n = ""; | |
| } | |
| if (0 < n.length) { | |
| j.Ov(n); | |
| } | |
| name = getName(this, string); | |
| n = new Color; | |
| /** @type {number} */ | |
| i = 0; | |
| x = c.toString(); | |
| try { | |
| i = endsWith(x, name, n, j); | |
| } catch (m) { | |
| if ("Invalid country calling code" == m && v.test(x)) { | |
| if (x = x.replace(v, ""), i = endsWith(x, name, n, j), 0 == i) { | |
| throw m; | |
| } | |
| } else { | |
| throw m; | |
| } | |
| } | |
| if (0 != i) { | |
| c = script.countryCodeToRegionCodeMap[i]; | |
| c = null == c ? "ZZ" : c[0]; | |
| if (c != string) { | |
| name = "001" == c ? getName(this, "" + i) : getName(this, c); | |
| } | |
| } else { | |
| _load(c); | |
| n.append(c.toString()); | |
| if (null != string) { | |
| i = name.Ig(); | |
| j.qi(i); | |
| } | |
| } | |
| if (2 > n.Kc.length) { | |
| throw "The string supplied is too short to be a phone number"; | |
| } | |
| if (null != name) { | |
| i = new Color; | |
| c = new Color(n.toString()); | |
| parseColor(c, name, i); | |
| i = c.toString(); | |
| name = func(name, 1); | |
| name = get_mangled(name, 3); | |
| if (!(2 == (last(name, i) ? 0 : 0 == i.search(name) ? 3 : 2))) { | |
| n = c; | |
| } | |
| } | |
| c = n.toString(); | |
| n = c.length; | |
| if (2 > n) { | |
| throw "The string supplied is too short to be a phone number"; | |
| } | |
| if (17 < n) { | |
| throw "The string supplied is too long to be a phone number"; | |
| } | |
| if (1 < c.length && "0" == c.charAt(0)) { | |
| j.Pv(true); | |
| /** @type {number} */ | |
| n = 1; | |
| for (;n < c.length - 1 && "0" == c.charAt(n);) { | |
| n++; | |
| } | |
| if (1 != n) { | |
| origFindId(j, 8, n); | |
| } | |
| } | |
| j.Sv(parseInt(c, 10)); | |
| return j; | |
| }; | |
| /** | |
| * @param {?} optgroup | |
| * @param {string} name | |
| * @return {?} | |
| */ | |
| var last = function(optgroup, name) { | |
| var codeSegments = "string" == typeof optgroup ? name.match("^(?:" + optgroup + ")$") : name.match(optgroup); | |
| return codeSegments && codeSegments[0].length == name.length ? true : false; | |
| }; | |
| /** @type {boolean} */ | |
| window.PR_SHOULD_USE_CONTINUATION = true; | |
| var setContainer; | |
| var prettyPrint; | |
| (function() { | |
| /** | |
| * @param {Array} regexs | |
| * @return {?} | |
| */ | |
| function combinePrefixPatterns(regexs) { | |
| /** | |
| * @param {string} charsetPart | |
| * @return {?} | |
| */ | |
| function decodeEscape(charsetPart) { | |
| var cc0 = charsetPart.charCodeAt(0); | |
| if (92 !== cc0) { | |
| return cc0; | |
| } | |
| var y = charsetPart.charAt(1); | |
| return(cc0 = escapeCharToCodeUnit[y]) ? cc0 : "0" <= y && "7" >= y ? parseInt(charsetPart.substring(1), 8) : "u" === y || "x" === y ? parseInt(charsetPart.substring(2), 16) : charsetPart.charCodeAt(1); | |
| } | |
| /** | |
| * @param {string} code | |
| * @return {?} | |
| */ | |
| function encodeEscape(code) { | |
| if (32 > code) { | |
| return(16 > code ? "\\x0" : "\\x") + code.toString(16); | |
| } | |
| /** @type {string} */ | |
| code = String.fromCharCode(code); | |
| return "\\" === code || ("-" === code || ("]" === code || "^" === code)) ? "\\" + code : code; | |
| } | |
| /** | |
| * @param {Array} a | |
| * @return {?} | |
| */ | |
| function caseFoldCharset(a) { | |
| var pages = a.substring(1, a.length - 1).match(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")); | |
| /** @type {Array} */ | |
| a = []; | |
| /** @type {boolean} */ | |
| var i = "^" === pages[0]; | |
| /** @type {Array} */ | |
| var out = ["["]; | |
| if (i) { | |
| out.push("^"); | |
| } | |
| /** @type {number} */ | |
| i = i ? 1 : 0; | |
| var j = pages.length; | |
| for (;i < j;++i) { | |
| var p = pages[i]; | |
| if (/\\[bdsw]/i.test(p)) { | |
| out.push(p); | |
| } else { | |
| p = decodeEscape(p); | |
| var g; | |
| if (i + 2 < j && "-" === pages[i + 1]) { | |
| g = decodeEscape(pages[i + 2]); | |
| i += 2; | |
| } else { | |
| g = p; | |
| } | |
| a.push([p, g]); | |
| if (!(65 > g)) { | |
| if (!(122 < p)) { | |
| if (!(65 > g)) { | |
| if (!(90 < p)) { | |
| a.push([Math.max(65, p) | 32, Math.min(g, 90) | 32]); | |
| } | |
| } | |
| if (!(97 > g)) { | |
| if (!(122 < p)) { | |
| a.push([Math.max(97, p) & -33, Math.min(g, 122) & -33]); | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| a.sort(function(vecA, vecB) { | |
| return vecA[0] - vecB[0] || vecB[1] - vecA[1]; | |
| }); | |
| /** @type {Array} */ | |
| pages = []; | |
| /** @type {Array} */ | |
| j = []; | |
| /** @type {number} */ | |
| i = 0; | |
| for (;i < a.length;++i) { | |
| p = a[i]; | |
| if (p[0] <= j[1] + 1) { | |
| /** @type {number} */ | |
| j[1] = Math.max(j[1], p[1]); | |
| } else { | |
| pages.push(j = p); | |
| } | |
| } | |
| /** @type {number} */ | |
| i = 0; | |
| for (;i < pages.length;++i) { | |
| p = pages[i]; | |
| out.push(encodeEscape(p[0])); | |
| if (p[1] > p[0]) { | |
| if (p[1] + 1 > p[0]) { | |
| out.push("-"); | |
| } | |
| out.push(encodeEscape(p[1])); | |
| } | |
| } | |
| out.push("]"); | |
| return out.join(""); | |
| } | |
| /** | |
| * @param {Object} regex | |
| * @return {?} | |
| */ | |
| function allowAnywhereFoldCaseAndRenumberGroups(regex) { | |
| var parts = regex.source.match(RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)", "g")); | |
| var l = parts.length; | |
| /** @type {Array} */ | |
| var codeSegments = []; | |
| /** @type {number} */ | |
| var i = 0; | |
| /** @type {number} */ | |
| var last = 0; | |
| for (;i < l;++i) { | |
| var p = parts[i]; | |
| if ("(" === p) { | |
| ++last; | |
| } else { | |
| if ("\\" === p.charAt(0)) { | |
| if (p = +p.substring(1)) { | |
| if (p <= last) { | |
| /** @type {number} */ | |
| codeSegments[p] = -1; | |
| } else { | |
| parts[i] = encodeEscape(p); | |
| } | |
| } | |
| } | |
| } | |
| } | |
| /** @type {number} */ | |
| i = 1; | |
| for (;i < codeSegments.length;++i) { | |
| if (-1 === codeSegments[i]) { | |
| /** @type {number} */ | |
| codeSegments[i] = ++capturedGroupIndex; | |
| } | |
| } | |
| /** @type {number} */ | |
| last = i = 0; | |
| for (;i < l;++i) { | |
| p = parts[i]; | |
| if ("(" === p) { | |
| ++last; | |
| if (!codeSegments[last]) { | |
| /** @type {string} */ | |
| parts[i] = "(?:"; | |
| } | |
| } else { | |
| if ("\\" === p.charAt(0)) { | |
| if (p = +p.substring(1)) { | |
| if (p <= last) { | |
| parts[i] = "\\" + codeSegments[p]; | |
| } | |
| } | |
| } | |
| } | |
| } | |
| /** @type {number} */ | |
| i = 0; | |
| for (;i < l;++i) { | |
| if ("^" === parts[i]) { | |
| if ("^" !== parts[i + 1]) { | |
| /** @type {string} */ | |
| parts[i] = ""; | |
| } | |
| } | |
| } | |
| if (regex.ignoreCase && needToFoldCase) { | |
| /** @type {number} */ | |
| i = 0; | |
| for (;i < l;++i) { | |
| p = parts[i]; | |
| regex = p.charAt(0); | |
| if (2 <= p.length && "[" === regex) { | |
| parts[i] = caseFoldCharset(p); | |
| } else { | |
| if ("\\" !== regex) { | |
| parts[i] = p.replace(/[a-zA-Z]/g, function(a) { | |
| a = a.charCodeAt(0); | |
| return "[" + String.fromCharCode(a & -33, a | 32) + "]"; | |
| }); | |
| } | |
| } | |
| } | |
| } | |
| return parts.join(""); | |
| } | |
| /** @type {number} */ | |
| var capturedGroupIndex = 0; | |
| /** @type {boolean} */ | |
| var needToFoldCase = false; | |
| /** @type {boolean} */ | |
| var l = false; | |
| /** @type {number} */ | |
| var i = 0; | |
| var n = regexs.length; | |
| for (;i < n;++i) { | |
| var regex = regexs[i]; | |
| if (regex.ignoreCase) { | |
| /** @type {boolean} */ | |
| l = true; | |
| } else { | |
| if (/[a-z]/i.test(regex.source.replace(/\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi, ""))) { | |
| /** @type {boolean} */ | |
| needToFoldCase = true; | |
| /** @type {boolean} */ | |
| l = false; | |
| break; | |
| } | |
| } | |
| } | |
| var escapeCharToCodeUnit = { | |
| b : 8, | |
| t : 9, | |
| n : 10, | |
| v : 11, | |
| f : 12, | |
| r : 13 | |
| }; | |
| /** @type {Array} */ | |
| var tagNameArr = []; | |
| /** @type {number} */ | |
| i = 0; | |
| n = regexs.length; | |
| for (;i < n;++i) { | |
| regex = regexs[i]; | |
| if (regex.global || regex.multiline) { | |
| throw Error("" + regex); | |
| } | |
| tagNameArr.push("(?:" + allowAnywhereFoldCaseAndRenumberGroups(regex) + ")"); | |
| } | |
| return RegExp(tagNameArr.join("|"), l ? "gi" : "g"); | |
| } | |
| /** | |
| * @param {Node} expr | |
| * @param {number} height | |
| * @return {?} | |
| */ | |
| function create(expr, height) { | |
| /** | |
| * @param {Node} node | |
| * @return {undefined} | |
| */ | |
| function walk(node) { | |
| var val = node.nodeType; | |
| if (1 == val) { | |
| if (!nocode.test(node.className)) { | |
| val = node.firstChild; | |
| for (;val;val = val.nextSibling) { | |
| walk(val); | |
| } | |
| val = node.nodeName.toLowerCase(); | |
| if ("br" === val || "li" === val) { | |
| /** @type {string} */ | |
| curr[k] = "\n"; | |
| /** @type {number} */ | |
| spans[k << 1] = length++; | |
| /** @type {Node} */ | |
| spans[k++ << 1 | 1] = node; | |
| } | |
| } | |
| } else { | |
| if (3 == val || 4 == val) { | |
| val = node.nodeValue; | |
| if (val.length) { | |
| val = height ? val.replace(/\r\n?/g, "\n") : val.replace(/[ \t\r\n]+/g, " "); | |
| curr[k] = val; | |
| spans[k << 1] = length; | |
| length += val.length; | |
| /** @type {Node} */ | |
| spans[k++ << 1 | 1] = node; | |
| } | |
| } | |
| } | |
| } | |
| /** @type {RegExp} */ | |
| var nocode = /(?:^|\s)nocode(?:\s|$)/; | |
| /** @type {Array} */ | |
| var curr = []; | |
| /** @type {number} */ | |
| var length = 0; | |
| /** @type {Array} */ | |
| var spans = []; | |
| /** @type {number} */ | |
| var k = 0; | |
| walk(expr); | |
| return{ | |
| Jl : curr.join("").replace(/\n$/, ""), | |
| Jr : spans | |
| }; | |
| } | |
| /** | |
| * @param {number} job | |
| * @param {number} sourceCode | |
| * @param {Function} langHandler | |
| * @param {Array} out | |
| * @return {undefined} | |
| */ | |
| function appendDecorations(job, sourceCode, langHandler, out) { | |
| if (sourceCode) { | |
| job = { | |
| Jl : sourceCode, | |
| Ks : job | |
| }; | |
| langHandler(job); | |
| out.push.apply(out, job.kt); | |
| } | |
| } | |
| /** | |
| * @param {number} source | |
| * @return {?} | |
| */ | |
| function walk(source) { | |
| var value = void 0; | |
| var n = source.firstChild; | |
| for (;n;n = n.nextSibling) { | |
| var a = n.nodeType; | |
| value = 1 === a ? value ? source : n : 3 === a ? ns.test(n.nodeValue) ? source : value : value; | |
| } | |
| return value === source ? void 0 : value; | |
| } | |
| /** | |
| * @param {Array} shortcutStylePatterns | |
| * @param {?} a | |
| * @return {?} | |
| */ | |
| function createSimpleLexer(shortcutStylePatterns, a) { | |
| /** | |
| * @param {?} job | |
| * @return {undefined} | |
| */ | |
| function decorate(job) { | |
| var basePos = job.Ks; | |
| /** @type {Array} */ | |
| var decorations = [basePos, "pln"]; | |
| /** @type {number} */ | |
| var position = 0; | |
| var codeSegments = job.Jl.match(optgroup) || []; | |
| var flags = {}; | |
| /** @type {number} */ | |
| var i = 0; | |
| var valuesLen = codeSegments.length; | |
| for (;i < valuesLen;++i) { | |
| var key = codeSegments[i]; | |
| var value = flags[key]; | |
| var msg = void 0; | |
| var embeddedSource; | |
| if ("string" === typeof value) { | |
| /** @type {boolean} */ | |
| embeddedSource = false; | |
| } else { | |
| var tokenStart = stack[key.charAt(0)]; | |
| if (tokenStart) { | |
| msg = key.match(tokenStart[1]); | |
| value = tokenStart[0]; | |
| } else { | |
| /** @type {number} */ | |
| embeddedSource = 0; | |
| for (;embeddedSource < al;++embeddedSource) { | |
| if (tokenStart = a[embeddedSource], msg = key.match(tokenStart[1])) { | |
| value = tokenStart[0]; | |
| break; | |
| } | |
| } | |
| if (!msg) { | |
| /** @type {string} */ | |
| value = "pln"; | |
| } | |
| } | |
| if (!!(embeddedSource = 5 <= value.length && "lang-" === value.substring(0, 5))) { | |
| if (!(msg && "string" === typeof msg[1])) { | |
| /** @type {boolean} */ | |
| embeddedSource = false; | |
| /** @type {string} */ | |
| value = "src"; | |
| } | |
| } | |
| if (!embeddedSource) { | |
| flags[key] = value; | |
| } | |
| } | |
| tokenStart = position; | |
| position += key.length; | |
| if (embeddedSource) { | |
| embeddedSource = msg[1]; | |
| var embeddedSourceStart = key.indexOf(embeddedSource); | |
| var embeddedSourceEnd = embeddedSourceStart + embeddedSource.length; | |
| if (msg[2]) { | |
| /** @type {number} */ | |
| embeddedSourceEnd = key.length - msg[2].length; | |
| /** @type {number} */ | |
| embeddedSourceStart = embeddedSourceEnd - embeddedSource.length; | |
| } | |
| value = value.substring(5); | |
| appendDecorations(basePos + tokenStart, key.substring(0, embeddedSourceStart), decorate, decorations); | |
| appendDecorations(basePos + tokenStart + embeddedSourceStart, embeddedSource, langHandlerForExtension(value, embeddedSource), decorations); | |
| appendDecorations(basePos + tokenStart + embeddedSourceEnd, key.substring(embeddedSourceEnd), decorate, decorations); | |
| } else { | |
| decorations.push(basePos + tokenStart, value); | |
| } | |
| } | |
| /** @type {Array} */ | |
| job.kt = decorations; | |
| } | |
| var stack = {}; | |
| var optgroup; | |
| (function() { | |
| var ka = shortcutStylePatterns.concat(a); | |
| /** @type {Array} */ | |
| var allRegexs = []; | |
| var opt_tagWhitelist = {}; | |
| /** @type {number} */ | |
| var i = 0; | |
| var valuesLen = ka.length; | |
| for (;i < valuesLen;++i) { | |
| var regex = ka[i]; | |
| var tagName = regex[3]; | |
| if (tagName) { | |
| var spaces = tagName.length; | |
| for (;0 <= --spaces;) { | |
| stack[tagName.charAt(spaces)] = regex; | |
| } | |
| } | |
| regex = regex[1]; | |
| /** @type {string} */ | |
| tagName = "" + regex; | |
| if (!opt_tagWhitelist.hasOwnProperty(tagName)) { | |
| allRegexs.push(regex); | |
| /** @type {null} */ | |
| opt_tagWhitelist[tagName] = null; | |
| } | |
| } | |
| allRegexs.push(/[\0-\uffff]/); | |
| optgroup = combinePrefixPatterns(allRegexs); | |
| })(); | |
| var al = a.length; | |
| return decorate; | |
| } | |
| /** | |
| * @param {Object} opt_attributes | |
| * @return {?} | |
| */ | |
| function u(opt_attributes) { | |
| /** @type {Array} */ | |
| var shortcutStylePatterns = []; | |
| /** @type {Array} */ | |
| var e = []; | |
| if (opt_attributes.tripleQuotedStrings) { | |
| shortcutStylePatterns.push(["str", /^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/, null, "'\""]); | |
| } else { | |
| if (opt_attributes.multiLineStrings) { | |
| shortcutStylePatterns.push(["str", /^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/, null, "'\"`"]); | |
| } else { | |
| shortcutStylePatterns.push(["str", /^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/, null, "\"'"]); | |
| } | |
| } | |
| if (opt_attributes.verbatimStrings) { | |
| e.push(["str", /^@\"(?:[^\"]|\"\")*(?:\"|$)/, null]); | |
| } | |
| var value = opt_attributes.hashComments; | |
| if (value) { | |
| if (opt_attributes.cStyleComments) { | |
| if (1 < value) { | |
| shortcutStylePatterns.push(["com", /^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/, null, "#"]); | |
| } else { | |
| shortcutStylePatterns.push(["com", /^#(?:(?:define|e(?:l|nd)if|else|error|ifn?def|include|line|pragma|undef|warning)\b|[^\r\n]*)/, null, "#"]); | |
| } | |
| e.push(["str", /^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h(?:h|pp|\+\+)?|[a-z]\w*)>/, null]); | |
| } else { | |
| shortcutStylePatterns.push(["com", /^#[^\r\n]*/, null, "#"]); | |
| } | |
| } | |
| if (opt_attributes.cStyleComments) { | |
| e.push(["com", /^\/\/[^\r\n]*/, null]); | |
| e.push(["com", /^\/\*[\s\S]*?(?:\*\/|$)/, null]); | |
| } | |
| if (value = opt_attributes.regexLiterals) { | |
| /** @type {string} */ | |
| var f = (value = 1 < value ? "" : "\n\r") ? "." : "[\\S\\s]"; | |
| e.push(["lang-regex", RegExp("^(?:^^\\.?|[+-]|[!=]=?=?|\\#|%=?|&&?=?|\\(|\\*=?|[+\\-]=|->|\\/=?|::?|<<?=?|>>?>?=?|,|;|\\?|@|\\[|~|{|\\^\\^?=?|\\|\\|?=?|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*(" + ("/(?=[^/*" + value + "])(?:[^/\\x5B\\x5C" + value + "]|\\x5C" + f + "|\\x5B(?:[^\\x5C\\x5D" + value + "]|\\x5C" + f + ")*(?:\\x5D|$))+/") + ")")]); | |
| } | |
| if (value = opt_attributes.types) { | |
| e.push(["typ", value]); | |
| } | |
| /** @type {string} */ | |
| value = ("" + opt_attributes.keywords).replace(/^ | $/g, ""); | |
| if (value.length) { | |
| e.push(["kwd", RegExp("^(?:" + value.replace(/[\s,]+/g, "|") + ")\\b"), null]); | |
| } | |
| shortcutStylePatterns.push(["pln", /^\s+/, null, " \r\n\t\u00a0"]); | |
| /** @type {string} */ | |
| value = "^.[^\\s\\w.$@'\"`/\\\\]*"; | |
| if (opt_attributes.regexLiterals) { | |
| value += "(?!s*/)"; | |
| } | |
| e.push(["lit", /^@[a-z_$][a-z_$@0-9]*/i, null], ["typ", /^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/, null], ["pln", /^[a-z_$][a-z_$@0-9]*/i, null], ["lit", /^(?:0x[a-f0-9]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+\-]?\d+)?)[a-z]*/i, null, "0123456789"], ["pln", /^\\[\s\S]?/, null], ["pun", RegExp(value), null]); | |
| return createSimpleLexer(shortcutStylePatterns, e); | |
| } | |
| /** | |
| * @param {Node} node | |
| * @param {number} d | |
| * @param {boolean} dataAndEvents | |
| * @return {undefined} | |
| */ | |
| function numberLines(node, d, dataAndEvents) { | |
| /** | |
| * @param {Object} node | |
| * @return {undefined} | |
| */ | |
| function walk(node) { | |
| var type = node.nodeType; | |
| if (1 == type && !nocode.test(node.className)) { | |
| if ("br" === node.nodeName) { | |
| breakAfter(node); | |
| if (node.parentNode) { | |
| node.parentNode.removeChild(node); | |
| } | |
| } else { | |
| node = node.firstChild; | |
| for (;node;node = node.nextSibling) { | |
| walk(node); | |
| } | |
| } | |
| } else { | |
| if ((3 == type || 4 == type) && dataAndEvents) { | |
| var text = node.nodeValue; | |
| var match = text.match(optgroup); | |
| if (match) { | |
| type = text.substring(0, match.index); | |
| node.nodeValue = type; | |
| if (text = text.substring(match.index + match[0].length)) { | |
| node.parentNode.insertBefore(doc.createTextNode(text), node.nextSibling); | |
| } | |
| breakAfter(node); | |
| if (!type) { | |
| node.parentNode.removeChild(node); | |
| } | |
| } | |
| } | |
| } | |
| } | |
| /** | |
| * @param {Object} lineEndNode | |
| * @return {undefined} | |
| */ | |
| function breakAfter(lineEndNode) { | |
| /** | |
| * @param {Object} limit | |
| * @param {number} copy | |
| * @return {?} | |
| */ | |
| function breakLeftOf(limit, copy) { | |
| var rightSide = copy ? limit.cloneNode(false) : limit; | |
| var parent = limit.parentNode; | |
| if (parent) { | |
| parent = breakLeftOf(parent, 1); | |
| var next = limit.nextSibling; | |
| parent.appendChild(rightSide); | |
| var child = next; | |
| for (;child;child = next) { | |
| next = child.nextSibling; | |
| parent.appendChild(child); | |
| } | |
| } | |
| return rightSide; | |
| } | |
| for (;!lineEndNode.nextSibling;) { | |
| if (lineEndNode = lineEndNode.parentNode, !lineEndNode) { | |
| return; | |
| } | |
| } | |
| lineEndNode = breakLeftOf(lineEndNode.nextSibling, 0); | |
| var tapElement; | |
| for (;(tapElement = lineEndNode.parentNode) && 1 === tapElement.nodeType;) { | |
| lineEndNode = tapElement; | |
| } | |
| listItems.push(lineEndNode); | |
| } | |
| /** @type {RegExp} */ | |
| var nocode = /(?:^|\s)nocode(?:\s|$)/; | |
| /** @type {RegExp} */ | |
| var optgroup = /\r\n?|\n/; | |
| var doc = node.ownerDocument; | |
| var li = doc.createElement("li"); | |
| for (;node.firstChild;) { | |
| li.appendChild(node.firstChild); | |
| } | |
| /** @type {Array} */ | |
| var listItems = [li]; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < listItems.length;++i) { | |
| walk(listItems[i]); | |
| } | |
| if (d === (d | 0)) { | |
| listItems[0].setAttribute("value", d); | |
| } | |
| var ol = doc.createElement("ol"); | |
| /** @type {string} */ | |
| ol.className = "linenums"; | |
| /** @type {number} */ | |
| d = Math.max(0, d - 1 | 0) || 0; | |
| /** @type {number} */ | |
| i = 0; | |
| /** @type {number} */ | |
| var n = listItems.length; | |
| for (;i < n;++i) { | |
| li = listItems[i]; | |
| /** @type {string} */ | |
| li.className = "L" + (i + d) % 10; | |
| if (!li.firstChild) { | |
| li.appendChild(doc.createTextNode("\u00a0")); | |
| } | |
| ol.appendChild(li); | |
| } | |
| node.appendChild(ol); | |
| } | |
| /** | |
| * @param {?} handler | |
| * @param {Array} fileExtensions | |
| * @return {undefined} | |
| */ | |
| function registerLangHandler(handler, fileExtensions) { | |
| var i = fileExtensions.length; | |
| for (;0 <= --i;) { | |
| var ext = fileExtensions[i]; | |
| if (langHandlerRegistry.hasOwnProperty(ext)) { | |
| if (w.console) { | |
| console.warn("cannot override language handler %s", ext); | |
| } | |
| } else { | |
| langHandlerRegistry[ext] = handler; | |
| } | |
| } | |
| } | |
| /** | |
| * @param {string} extension | |
| * @param {?} source | |
| * @return {?} | |
| */ | |
| function langHandlerForExtension(extension, source) { | |
| if (!(extension && langHandlerRegistry.hasOwnProperty(extension))) { | |
| /** @type {string} */ | |
| extension = /^\s*</.test(source) ? "default-markup" : "default-code"; | |
| } | |
| return langHandlerRegistry[extension]; | |
| } | |
| /** | |
| * @param {?} data | |
| * @return {undefined} | |
| */ | |
| function createElement(data) { | |
| var re = data.sq; | |
| try { | |
| var current = create(data.Rn, data.Uq); | |
| var index = current.Jl; | |
| data.Jl = index; | |
| data.Jr = current.Jr; | |
| /** @type {number} */ | |
| data.Ks = 0; | |
| langHandlerForExtension(re, index)(data); | |
| /** @type {(Array.<string>|null)} */ | |
| var skipStatic = /\bMSIE\s(\d+)/.exec(navigator.userAgent); | |
| /** @type {(boolean|null)} */ | |
| skipStatic = skipStatic && 8 >= +skipStatic[1]; | |
| /** @type {RegExp} */ | |
| re = /\n/g; | |
| var b = data.Jl; | |
| var v = b.length; | |
| /** @type {number} */ | |
| current = 0; | |
| var input = data.Jr; | |
| var inputLength = input.length; | |
| /** @type {number} */ | |
| index = 0; | |
| var a = data.kt; | |
| var h = a.length; | |
| /** @type {number} */ | |
| var JSVAL_INT_MAX = 0; | |
| a[h] = v; | |
| var e; | |
| var j; | |
| /** @type {number} */ | |
| j = e = 0; | |
| for (;j < h;) { | |
| if (a[j] !== a[j + 2]) { | |
| a[e++] = a[j++]; | |
| a[e++] = a[j++]; | |
| } else { | |
| j += 2; | |
| } | |
| } | |
| /** @type {number} */ | |
| h = e; | |
| /** @type {number} */ | |
| j = e = 0; | |
| for (;j < h;) { | |
| var z = a[j]; | |
| var a12 = a[j + 1]; | |
| /** @type {number} */ | |
| var i = j + 2; | |
| for (;i + 2 <= h && a[i + 1] === a12;) { | |
| i += 2; | |
| } | |
| a[e++] = z; | |
| a[e++] = a12; | |
| /** @type {number} */ | |
| j = i; | |
| } | |
| /** @type {number} */ | |
| a.length = e; | |
| var popover = data.Rn; | |
| var oldDisplay; | |
| if (popover) { | |
| oldDisplay = popover.style.display; | |
| /** @type {string} */ | |
| popover.style.display = "none"; | |
| } | |
| try { | |
| for (;index < inputLength;) { | |
| var end = input[index + 2] || v; | |
| var olen = a[JSVAL_INT_MAX + 2] || v; | |
| /** @type {number} */ | |
| i = Math.min(end, olen); | |
| var elem = input[index + 1]; | |
| var val; | |
| if (1 !== elem.nodeType && (val = b.substring(current, i))) { | |
| if (skipStatic) { | |
| val = val.replace(re, "\r"); | |
| } | |
| elem.nodeValue = val; | |
| var d = elem.ownerDocument; | |
| var element = d.createElement("span"); | |
| element.className = a[JSVAL_INT_MAX + 1]; | |
| var parent = elem.parentNode; | |
| parent.replaceChild(element, elem); | |
| element.appendChild(elem); | |
| if (current < end) { | |
| input[index + 1] = elem = d.createTextNode(b.substring(i, end)); | |
| parent.insertBefore(elem, element.nextSibling); | |
| } | |
| } | |
| /** @type {number} */ | |
| current = i; | |
| if (current >= end) { | |
| index += 2; | |
| } | |
| if (current >= olen) { | |
| JSVAL_INT_MAX += 2; | |
| } | |
| } | |
| } finally { | |
| if (popover) { | |
| popover.style.display = oldDisplay; | |
| } | |
| } | |
| } catch (err) { | |
| if (w.console) { | |
| console.log(err && err.stack || err); | |
| } | |
| } | |
| } | |
| /** @type {Window} */ | |
| var w = window; | |
| /** @type {Array} */ | |
| var CPP_KEYWORDS = ["break,continue,do,else,for,if,return,while"]; | |
| /** @type {Array} */ | |
| var FLOW_CONTROL_KEYWORDS = [[CPP_KEYWORDS, "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"], "catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"]; | |
| /** @type {Array} */ | |
| var PYTHON_KEYWORDS = [FLOW_CONTROL_KEYWORDS, "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"]; | |
| /** @type {Array} */ | |
| var RUBY_KEYWORDS = [FLOW_CONTROL_KEYWORDS, "abstract,assert,boolean,byte,extends,final,finally,implements,import,instanceof,interface,null,native,package,strictfp,super,synchronized,throws,transient"]; | |
| /** @type {Array} */ | |
| var H = [RUBY_KEYWORDS, "as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,internal,into,is,let,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var,virtual,where"]; | |
| /** @type {Array} */ | |
| FLOW_CONTROL_KEYWORDS = [FLOW_CONTROL_KEYWORDS, "debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"]; | |
| /** @type {Array} */ | |
| var J = [CPP_KEYWORDS, "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"]; | |
| /** @type {Array} */ | |
| var KEYWORDS = [CPP_KEYWORDS, "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"]; | |
| /** @type {Array} */ | |
| var ALL_KEYWORDS = [CPP_KEYWORDS, "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"]; | |
| /** @type {Array} */ | |
| CPP_KEYWORDS = [CPP_KEYWORDS, "case,done,elif,esac,eval,fi,function,in,local,set,then,until"]; | |
| /** @type {RegExp} */ | |
| var C_TYPES = /^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)\b/; | |
| /** @type {RegExp} */ | |
| var ns = /\S/; | |
| var decorateSource = u({ | |
| keywords : [PYTHON_KEYWORDS, H, FLOW_CONTROL_KEYWORDS, "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", J, KEYWORDS, CPP_KEYWORDS], | |
| hashComments : true, | |
| cStyleComments : true, | |
| multiLineStrings : true, | |
| regexLiterals : true | |
| }); | |
| var langHandlerRegistry = {}; | |
| registerLangHandler(decorateSource, ["default-code"]); | |
| registerLangHandler(createSimpleLexer([], [["pln", /^[^<?]+/], ["dec", /^<!\w[^>]*(?:>|$)/], ["com", /^<\!--[\s\S]*?(?:-\->|$)/], ["lang-", /^<\?([\s\S]+?)(?:\?>|$)/], ["lang-", /^<%([\s\S]+?)(?:%>|$)/], ["pun", /^(?:<[%?]|[%?]>)/], ["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".split(" ")); | |
| registerLangHandler(createSimpleLexer([["pln", /^[\s]+/, null, " \t\r\n"], ["atv", /^(?:\"[^\"]*\"?|\'[^\']*\'?)/, null, "\"'"]], [["tag", /^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i], ["atn", /^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i], ["lang-uq.val", /^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/], ["pun", /^[=<>\/]+/], ["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"]); | |
| registerLangHandler(createSimpleLexer([], [["atv", /^[\s\S]+/]]), ["uq.val"]); | |
| registerLangHandler(u({ | |
| keywords : PYTHON_KEYWORDS, | |
| hashComments : true, | |
| cStyleComments : true, | |
| types : C_TYPES | |
| }), "c cc cpp cxx cyc m".split(" ")); | |
| registerLangHandler(u({ | |
| keywords : "null,true,false" | |
| }), ["json"]); | |
| registerLangHandler(u({ | |
| keywords : H, | |
| hashComments : true, | |
| cStyleComments : true, | |
| verbatimStrings : true, | |
| types : C_TYPES | |
| }), ["cs"]); | |
| registerLangHandler(u({ | |
| keywords : RUBY_KEYWORDS, | |
| cStyleComments : true | |
| }), ["java"]); | |
| registerLangHandler(u({ | |
| keywords : CPP_KEYWORDS, | |
| hashComments : true, | |
| multiLineStrings : true | |
| }), ["bash", "bsh", "csh", "sh"]); | |
| registerLangHandler(u({ | |
| keywords : J, | |
| hashComments : true, | |
| multiLineStrings : true, | |
| tripleQuotedStrings : true | |
| }), ["cv", "py", "python"]); | |
| registerLangHandler(u({ | |
| keywords : "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", | |
| hashComments : true, | |
| multiLineStrings : true, | |
| regexLiterals : 2 | |
| }), ["perl", "pl", "pm"]); | |
| registerLangHandler(u({ | |
| keywords : KEYWORDS, | |
| hashComments : true, | |
| multiLineStrings : true, | |
| regexLiterals : true | |
| }), ["rb", "ruby"]); | |
| registerLangHandler(u({ | |
| keywords : FLOW_CONTROL_KEYWORDS, | |
| cStyleComments : true, | |
| regexLiterals : true | |
| }), ["javascript", "js"]); | |
| registerLangHandler(u({ | |
| keywords : "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", | |
| hashComments : 3, | |
| cStyleComments : true, | |
| multilineStrings : true, | |
| tripleQuotedStrings : true, | |
| regexLiterals : true | |
| }), ["coffee"]); | |
| registerLangHandler(u({ | |
| keywords : ALL_KEYWORDS, | |
| cStyleComments : true, | |
| multilineStrings : true | |
| }), ["rc", "rs", "rust"]); | |
| registerLangHandler(createSimpleLexer([], [["str", /^[\s\S]+/]]), ["regex"]); | |
| var Ua = w.PR = { | |
| /** @type {function (Array, ?): ?} */ | |
| createSimpleLexer : createSimpleLexer, | |
| /** @type {function (?, Array): undefined} */ | |
| registerLangHandler : registerLangHandler, | |
| /** @type {function (Object): ?} */ | |
| sourceDecorator : u, | |
| PR_ATTRIB_NAME : "atn", | |
| PR_ATTRIB_VALUE : "atv", | |
| PR_COMMENT : "com", | |
| PR_DECLARATION : "dec", | |
| PR_KEYWORD : "kwd", | |
| PR_LITERAL : "lit", | |
| PR_NOCODE : "nocode", | |
| PR_PLAIN : "pln", | |
| PR_PUNCTUATION : "pun", | |
| PR_SOURCE : "src", | |
| PR_STRING : "str", | |
| PR_TAG : "tag", | |
| PR_TYPE : "typ", | |
| /** | |
| * @param {string} sourceCodeHtml | |
| * @param {?} sq | |
| * @param {Object} opt_numberLines | |
| * @return {?} | |
| */ | |
| prettyPrintOne : function(sourceCodeHtml, sq, opt_numberLines) { | |
| /** @type {Element} */ | |
| var container = document.createElement("div"); | |
| /** @type {string} */ | |
| container.innerHTML = "<pre>" + sourceCodeHtml + "</pre>"; | |
| /** @type {(Node|null)} */ | |
| container = container.firstChild; | |
| if (opt_numberLines) { | |
| numberLines(container, opt_numberLines, true); | |
| } | |
| createElement({ | |
| sq : sq, | |
| Tu : opt_numberLines, | |
| Rn : container, | |
| Uq : 1 | |
| }); | |
| return container.innerHTML; | |
| }, | |
| /** @type {function (Node, ?, Object): undefined} */ | |
| prettyPrintElem : setContainer = function(container, opt_attributes, event) { | |
| if (event) { | |
| numberLines(container, event, true); | |
| } | |
| createElement({ | |
| sq : opt_attributes, | |
| Tu : event, | |
| Rn : container, | |
| Uq : 1 | |
| }); | |
| }, | |
| /** @type {function (Array, Object): undefined} */ | |
| prettyPrint : prettyPrint = prettyPrint = function(map, body) { | |
| /** | |
| * @return {undefined} | |
| */ | |
| function doWork() { | |
| var endTime = w.PR_SHOULD_USE_CONTINUATION ? l.now() + 250 : Infinity; | |
| for (;k < elements.length && l.now() < endTime;k++) { | |
| var node = elements[k]; | |
| var d = el; | |
| var prev = node; | |
| for (;prev = prev.previousSibling;) { | |
| var a = prev.nodeType; | |
| var current = (7 === a || 8 === a) && prev.nodeValue; | |
| if (current ? !/^\jQuery18209928365310188383_1405632946447prettify\b/.test(current) : 3 !== a || /\S/.test(prev.nodeValue)) { | |
| break; | |
| } | |
| if (current) { | |
| d = {}; | |
| current.replace(/\b(\w+)=([\w:.%+-]+)/g, function(dataAndEvents, k, v) { | |
| d[k] = v; | |
| }); | |
| break; | |
| } | |
| } | |
| prev = node.className; | |
| if ((d !== el || nocode.test(prev)) && !regexInfix.test(prev)) { | |
| /** @type {boolean} */ | |
| a = false; | |
| current = node.parentNode; | |
| for (;current;current = current.parentNode) { | |
| if (rchecked.test(current.tagName) && (current.className && nocode.test(current.className))) { | |
| /** @type {boolean} */ | |
| a = true; | |
| break; | |
| } | |
| } | |
| if (!a) { | |
| node.className += " prettyprinted"; | |
| a = d.lang; | |
| if (!a) { | |
| a = prev.match(optgroup); | |
| var v; | |
| if (!a) { | |
| if (v = walk(node)) { | |
| if (specialTags.test(v.tagName)) { | |
| a = v.className.match(optgroup); | |
| } | |
| } | |
| } | |
| if (a) { | |
| a = a[1]; | |
| } | |
| } | |
| if (RE_TABLE.test(node.tagName)) { | |
| /** @type {number} */ | |
| current = 1; | |
| } else { | |
| current = node.currentStyle; | |
| var b = doc.defaultView; | |
| current = (current = current ? current.whiteSpace : b && b.getComputedStyle ? b.getComputedStyle(node, null).getPropertyValue("white-space") : 0) && "pre" === current.substring(0, 3); | |
| } | |
| b = d.linenums; | |
| if (!(b = "true" === b || +b)) { | |
| /** @type {(boolean|number)} */ | |
| b = (b = prev.match(/\blinenums\b(?::(\d+))?/)) ? b[1] && b[1].length ? +b[1] : true : false; | |
| } | |
| if (b) { | |
| numberLines(node, b, current); | |
| } | |
| pdataCur = { | |
| sq : a, | |
| Rn : node, | |
| Tu : b, | |
| Uq : current | |
| }; | |
| createElement(pdataCur); | |
| } | |
| } | |
| } | |
| if (k < elements.length) { | |
| setTimeout(doWork, 250); | |
| } else { | |
| if ("function" === typeof map) { | |
| map(); | |
| } | |
| } | |
| } | |
| var codeSegments = body || document.body; | |
| var doc = codeSegments.ownerDocument || document; | |
| /** @type {Array} */ | |
| codeSegments = [codeSegments.getElementsByTagName("pre"), codeSegments.getElementsByTagName("code"), codeSegments.getElementsByTagName("xmp")]; | |
| /** @type {Array} */ | |
| var elements = []; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < codeSegments.length;++i) { | |
| /** @type {number} */ | |
| var j = 0; | |
| var jl = codeSegments[i].length; | |
| for (;j < jl;++j) { | |
| elements.push(codeSegments[i][j]); | |
| } | |
| } | |
| /** @type {null} */ | |
| codeSegments = null; | |
| /** @type {function (new:Date, ?=, ?=, ?=, ?=, ?=, ?=, ?=): string} */ | |
| var l = Date; | |
| if (!l.now) { | |
| l = { | |
| /** | |
| * @return {?} | |
| */ | |
| now : function() { | |
| return+new Date; | |
| } | |
| }; | |
| } | |
| /** @type {number} */ | |
| var k = 0; | |
| var pdataCur; | |
| /** @type {RegExp} */ | |
| var optgroup = /\blang(?:uage)?-([\w.]+)(?!\S)/; | |
| /** @type {RegExp} */ | |
| var nocode = /\bprettyprint\b/; | |
| /** @type {RegExp} */ | |
| var regexInfix = /\bprettyprinted\b/; | |
| /** @type {RegExp} */ | |
| var RE_TABLE = /pre|xmp/i; | |
| /** @type {RegExp} */ | |
| var specialTags = /^code$/i; | |
| /** @type {RegExp} */ | |
| var rchecked = /^(?:pre|code|xmp)$/i; | |
| var el = {}; | |
| doWork(); | |
| } | |
| }; | |
| if ("function" === typeof define) { | |
| if (define.amd) { | |
| define("google-code-prettify", [], function() { | |
| return Ua; | |
| }); | |
| } | |
| } | |
| })(); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Events = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(Events, _super); | |
| /** | |
| * @return {?} | |
| */ | |
| Events.prototype.Nk = function() { | |
| return get_mangled(this, 5); | |
| }; | |
| /** | |
| * @param {?} res | |
| * @param {number} val | |
| * @return {undefined} | |
| */ | |
| var succeed = function(res, val) { | |
| origFindId(res, 10, val); | |
| }; | |
| /** | |
| * @param {?} name | |
| * @return {?} | |
| */ | |
| Events.prototype.Cr = function(name) { | |
| return origFindId(this, 8, name); | |
| }; | |
| /** | |
| * @param {?} obj | |
| * @param {number} val | |
| * @return {undefined} | |
| */ | |
| var isNull = function(obj, val) { | |
| origFindId(obj, 11, val); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var FileError = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(FileError, _super); | |
| var IndicatorElement = { | |
| NONE : 0, | |
| tH : 1, | |
| fC : 2 | |
| }; | |
| var contentType = { | |
| Dw : 0, | |
| EF : 1, | |
| CF : 2, | |
| DF : 3, | |
| HA : 4, | |
| LA : 5, | |
| HD : 6, | |
| PF : 7 | |
| }; | |
| isAncestor(Events, { | |
| 0 : { | |
| name : "LinkSettings", | |
| $ : "proto.access.LinkSettings" | |
| }, | |
| 3 : { | |
| name : "created_usec", | |
| c : 3, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 4 : { | |
| name : "updated_usec", | |
| c : 3, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 5 : { | |
| name : "secret_path", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 14 : { | |
| name : "view_settings", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : FileError | |
| }, | |
| 15 : { | |
| name : "enable_request_access", | |
| c : 8, | |
| defaultValue : 1, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 6 : { | |
| name : "allow_guests", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 10 : { | |
| name : "guest_mode", | |
| c : 14, | |
| defaultValue : 0, | |
| type : IndicatorElement | |
| }, | |
| 8 : { | |
| name : "workgroup_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 11 : { | |
| name : "workgroup_mode", | |
| c : 14, | |
| defaultValue : 0, | |
| type : IndicatorElement | |
| } | |
| }); | |
| isAncestor(FileError, { | |
| 0 : { | |
| name : "ViewSettings", | |
| /** @type {function (): undefined} */ | |
| va : Events, | |
| $ : "proto.access.LinkSettings.ViewSettings" | |
| }, | |
| 1 : { | |
| name : "show_conversation", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 2 : { | |
| name : "show_diffs", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 3 : { | |
| name : "allow_messages", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 4 : { | |
| name : "allow_comments", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 5 : { | |
| name : "allow_join", | |
| c : 8, | |
| defaultValue : 1, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| } | |
| }); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var ValidationError = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(ValidationError, _super); | |
| /** | |
| * @param {?} owner | |
| * @return {?} | |
| */ | |
| ValidationError.prototype.ys = function(owner) { | |
| return _findBelongsTo(this, 1, owner); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| ValidationError.prototype.xv = function() { | |
| return deepEqual(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| ValidationError.prototype.$t = function() { | |
| return ondata(this, 1); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Capture = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(Capture, _super); | |
| self = Capture.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ca = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ib = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {number} expectedNumberOfNonCommentArgs | |
| * @return {?} | |
| */ | |
| self.mb = function(expectedNumberOfNonCommentArgs) { | |
| return origFindId(this, 1, expectedNumberOfNonCommentArgs); | |
| }; | |
| /** | |
| * @param {?} owner | |
| * @return {?} | |
| */ | |
| self.vd = function(owner) { | |
| return _findBelongsTo(this, 2, owner); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Oc = function() { | |
| return deepEqual(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Zk = function() { | |
| return member(this, 2); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var controlsElement = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(controlsElement, _super); | |
| self = controlsElement.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ca = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ib = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {number} expectedNumberOfNonCommentArgs | |
| * @return {?} | |
| */ | |
| self.mb = function(expectedNumberOfNonCommentArgs) { | |
| return origFindId(this, 1, expectedNumberOfNonCommentArgs); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Da = function() { | |
| return func(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Aa = function() { | |
| return get_mangled(this, 2); | |
| }; | |
| /** | |
| * @param {string} iterator | |
| * @return {?} | |
| */ | |
| self.Ia = function(iterator) { | |
| return origFindId(this, 2, iterator); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ab = function() { | |
| return isArray(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Lg = function() { | |
| return func(this, 3); | |
| }; | |
| /** | |
| * @param {(Error|string)} isXML | |
| * @return {?} | |
| */ | |
| self.ti = function(isXML) { | |
| return origFindId(this, 3, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.gc = function() { | |
| return func(this, 4); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Bb = function() { | |
| return get_mangled(this, 4); | |
| }; | |
| /** | |
| * @param {boolean} isXML | |
| * @return {?} | |
| */ | |
| self.Wb = function(isXML) { | |
| return origFindId(this, 4, isXML); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Extends = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(Extends, _super); | |
| /** | |
| * @param {?} owner | |
| * @return {?} | |
| */ | |
| Extends.prototype.ys = function(owner) { | |
| return _findBelongsTo(this, 1, owner); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| Extends.prototype.xv = function() { | |
| return deepEqual(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| Extends.prototype.$t = function() { | |
| return ondata(this, 1); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var PlayState = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(PlayState, _super); | |
| self = PlayState.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ca = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ib = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {number} expectedNumberOfNonCommentArgs | |
| * @return {?} | |
| */ | |
| self.mb = function(expectedNumberOfNonCommentArgs) { | |
| return origFindId(this, 1, expectedNumberOfNonCommentArgs); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Da = function() { | |
| return func(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Aa = function() { | |
| return get_mangled(this, 2); | |
| }; | |
| /** | |
| * @param {string} iterator | |
| * @return {?} | |
| */ | |
| self.Ia = function(iterator) { | |
| return origFindId(this, 2, iterator); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ab = function() { | |
| return isArray(this, 2); | |
| }; | |
| var eventName = { | |
| MB : 1, | |
| Lw : 2, | |
| Pw : 4, | |
| is : 8, | |
| ns : 128, | |
| qB : 4096, | |
| FA : 2048, | |
| Qw : 32, | |
| Xw : 64, | |
| CB : 256, | |
| sC : 512, | |
| UC : 1024, | |
| iE : 16 | |
| }; | |
| isAncestor(ValidationError, { | |
| 0 : { | |
| name : "Results", | |
| $ : "syncer.autocomplete.Results" | |
| }, | |
| 1 : { | |
| name : "results", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Capture | |
| } | |
| }); | |
| isAncestor(Capture, { | |
| 0 : { | |
| name : "Result", | |
| /** @type {function (): undefined} */ | |
| va : ValidationError, | |
| $ : "syncer.autocomplete.Results.Result" | |
| }, | |
| 1 : { | |
| name : "type", | |
| c : 14, | |
| defaultValue : 1, | |
| type : eventName | |
| }, | |
| 2 : { | |
| name : "ids", | |
| aa : true, | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| } | |
| }); | |
| isAncestor(controlsElement, { | |
| 0 : { | |
| name : "Record", | |
| $ : "syncer.autocomplete.Record" | |
| }, | |
| 1 : { | |
| name : "type", | |
| c : 14, | |
| defaultValue : 1, | |
| type : eventName | |
| }, | |
| 2 : { | |
| name : "id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 3 : { | |
| name : "title", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 4 : { | |
| name : "deleted", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 5 : { | |
| name : "score", | |
| c : 1, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| } | |
| }); | |
| isAncestor(Extends, { | |
| 0 : { | |
| name : "SearchResults", | |
| $ : "syncer.autocomplete.SearchResults" | |
| }, | |
| 1 : { | |
| name : "results", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : PlayState | |
| } | |
| }); | |
| isAncestor(PlayState, { | |
| 0 : { | |
| name : "Result", | |
| /** @type {function (): undefined} */ | |
| va : Extends, | |
| $ : "syncer.autocomplete.SearchResults.Result" | |
| }, | |
| 1 : { | |
| name : "type", | |
| c : 14, | |
| defaultValue : 1, | |
| type : eventName | |
| }, | |
| 2 : { | |
| name : "id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| } | |
| }); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var holder = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(holder, _super); | |
| var chartType = { | |
| uH : 0, | |
| CD : 1, | |
| nx : 2, | |
| BD : 3, | |
| OA : 4, | |
| PA : 5, | |
| BE : 6, | |
| tF : 7 | |
| }; | |
| isAncestor(holder, { | |
| 0 : { | |
| name : "Device", | |
| $ : "proto.http.Device" | |
| } | |
| }); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var SequenceEndEvent = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(SequenceEndEvent, _super); | |
| self = SequenceEndEvent.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Da = function() { | |
| return func(this, 6); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Aa = function() { | |
| return get_mangled(this, 6); | |
| }; | |
| /** | |
| * @param {string} iterator | |
| * @return {?} | |
| */ | |
| self.Ia = function(iterator) { | |
| return origFindId(this, 6, iterator); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ab = function() { | |
| return isArray(this, 6); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Jt = function() { | |
| return func(this, 7); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.Rv = function(isXML) { | |
| return origFindId(this, 3, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.om = function() { | |
| return isArray(this, 3); | |
| }; | |
| isAncestor(SequenceEndEvent, { | |
| 0 : { | |
| name : "Node", | |
| $ : "proto.files.Node" | |
| }, | |
| 1 : { | |
| name : "path", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "is_dir", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 6 : { | |
| name : "id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 7 : { | |
| name : "mime_type", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 3 : { | |
| name : "modified", | |
| c : 3, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 4 : { | |
| name : "size", | |
| c : 3, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 5 : { | |
| name : "contents", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : SequenceEndEvent | |
| } | |
| }); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var For = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(For, _super); | |
| self = For.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ig = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {?} target | |
| * @return {?} | |
| */ | |
| self.qi = function(target) { | |
| return origFindId(this, 1, target); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Lt = function() { | |
| return func(this, 2); | |
| }; | |
| /** | |
| * @param {number} isXML | |
| * @return {?} | |
| */ | |
| self.Sv = function(isXML) { | |
| return origFindId(this, 2, isXML); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.Ov = function(isXML) { | |
| return origFindId(this, 3, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ht = function() { | |
| return func(this, 4); | |
| }; | |
| /** | |
| * @param {Object} isXML | |
| * @return {?} | |
| */ | |
| self.Pv = function(isXML) { | |
| return origFindId(this, 4, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Yt = function() { | |
| return ondata(this, 4); | |
| }; | |
| isAncestor(For, { | |
| 0 : { | |
| name : "PhoneNumber", | |
| $ : "proto.notify.PhoneNumber" | |
| }, | |
| 1 : { | |
| name : "country_code", | |
| c : 5, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 2 : { | |
| name : "national_number", | |
| c : 4, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 3 : { | |
| name : "extension", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 4 : { | |
| name : "italian_leading_zero", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 5 : { | |
| name : "raw_input", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 6 : { | |
| name : "country_code_source", | |
| c : 14, | |
| defaultValue : 1, | |
| type : { | |
| Ww : 1, | |
| Vw : 5, | |
| Uw : 10, | |
| Tw : 20 | |
| } | |
| }, | |
| 7 : { | |
| name : "preferred_domestic_carrier_code", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| } | |
| }); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var CB = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(CB, _super); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Cordova = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(Cordova, _super); | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| Cordova.prototype.Vv = function(isXML) { | |
| return origFindId(this, 1, isXML); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var throttler = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(throttler, _super); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var cand = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(cand, _super); | |
| var TYPE_CSS = { | |
| NONE : 0, | |
| iD : 1, | |
| tD : 2, | |
| PE : 3 | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var bodyElem = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(bodyElem, _super); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var delayed = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(delayed, _super); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var later = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(later, _super); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var titleElement = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(titleElement, _super); | |
| self = titleElement.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.getName = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Td = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.Fd = function(isXML) { | |
| return origFindId(this, 1, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Be = function() { | |
| return get_mangled(this, 15); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.pd = function(isXML) { | |
| return origFindId(this, 15, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.De = function() { | |
| return ondata(this, 15); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Me = function() { | |
| return isArray(this, 15); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Da = function() { | |
| return func(this, 400); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Aa = function() { | |
| return get_mangled(this, 400); | |
| }; | |
| /** | |
| * @param {string} iterator | |
| * @return {?} | |
| */ | |
| self.Ia = function(iterator) { | |
| return origFindId(this, 400, iterator); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ab = function() { | |
| return isArray(this, 400); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ic = function() { | |
| return func(this, 403); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ac = function() { | |
| return get_mangled(this, 403); | |
| }; | |
| /** | |
| * @param {number} isXML | |
| * @return {?} | |
| */ | |
| self.Xb = function(isXML) { | |
| return origFindId(this, 403, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.qc = function() { | |
| return ondata(this, 403); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Zb = function() { | |
| return isArray(this, 403); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var selector = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(selector, _super); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var MappingStartEvent = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(MappingStartEvent, _super); | |
| self = MappingStartEvent.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Jg = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.$i = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Qk = function() { | |
| return ondata(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Sf = function() { | |
| return func(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ke = function() { | |
| return get_mangled(this, 2); | |
| }; | |
| /** | |
| * @param {number} opt_attributes | |
| * @return {?} | |
| */ | |
| self.gb = function(opt_attributes) { | |
| return origFindId(this, 2, opt_attributes); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Sk = function() { | |
| return ondata(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Nm = function() { | |
| return get_mangled(this, 3); | |
| }; | |
| /** | |
| * @param {number} opt_attributes | |
| * @return {?} | |
| */ | |
| self.Sa = function(opt_attributes) { | |
| return origFindId(this, 3, opt_attributes); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var reason = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(reason, _super); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var AliasEvent = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(AliasEvent, _super); | |
| /** | |
| * @return {?} | |
| */ | |
| AliasEvent.prototype.Ig = function() { | |
| return get_mangled(this, 8); | |
| }; | |
| /** | |
| * @param {?} target | |
| * @return {?} | |
| */ | |
| AliasEvent.prototype.qi = function(target) { | |
| return origFindId(this, 8, target); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var onceFn = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(onceFn, _super); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Call = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(Call, _super); | |
| self = Call.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.getName = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Td = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.Fd = function(isXML) { | |
| return origFindId(this, 1, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Vi = function() { | |
| return func(this, 4); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.ur = function(isXML) { | |
| return origFindId(this, 4, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Da = function() { | |
| return func(this, 6); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Aa = function() { | |
| return get_mangled(this, 6); | |
| }; | |
| /** | |
| * @param {string} iterator | |
| * @return {?} | |
| */ | |
| self.Ia = function(iterator) { | |
| return origFindId(this, 6, iterator); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ab = function() { | |
| return isArray(this, 6); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var out = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(out, _super); | |
| self = out.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Da = function() { | |
| return func(this, 400); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Aa = function() { | |
| return get_mangled(this, 400); | |
| }; | |
| /** | |
| * @param {string} iterator | |
| * @return {?} | |
| */ | |
| self.Ia = function(iterator) { | |
| return origFindId(this, 400, iterator); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ab = function() { | |
| return isArray(this, 400); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ic = function() { | |
| return func(this, 403); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ac = function() { | |
| return get_mangled(this, 403); | |
| }; | |
| /** | |
| * @param {number} isXML | |
| * @return {?} | |
| */ | |
| self.Xb = function(isXML) { | |
| return origFindId(this, 403, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.qc = function() { | |
| return ondata(this, 403); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Zb = function() { | |
| return isArray(this, 403); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Be = function() { | |
| return get_mangled(this, 404); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.pd = function(isXML) { | |
| return origFindId(this, 404, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.De = function() { | |
| return ondata(this, 404); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Me = function() { | |
| return isArray(this, 404); | |
| }; | |
| var ScrollContainer = { | |
| aD : 2, | |
| FH : 8, | |
| gF : 9, | |
| jE : 10, | |
| Qw : 12, | |
| Xw : 13 | |
| }; | |
| var acceptType = { | |
| HB : 0, | |
| OC : 1 | |
| }; | |
| isAncestor(CB, { | |
| 0 : { | |
| name : "Gender", | |
| $ : "proto.users.Gender" | |
| } | |
| }); | |
| isAncestor(Cordova, { | |
| 0 : { | |
| name : "AppleDevice", | |
| $ : "proto.users.AppleDevice" | |
| }, | |
| 1 : { | |
| name : "token", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "locale", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 3 : { | |
| name : "bundle", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 4 : { | |
| name : "model", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 5 : { | |
| name : "invalid", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 6 : { | |
| name : "sandbox", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 7 : { | |
| name : "inactive", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 8 : { | |
| name : "vendor_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 9 : { | |
| name : "last_build", | |
| c : 5, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 10 : { | |
| name : "advertising_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| } | |
| }); | |
| isAncestor(throttler, { | |
| 0 : { | |
| name : "AndroidDevice", | |
| $ : "proto.users.AndroidDevice" | |
| }, | |
| 1 : { | |
| name : "gcm_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 12 : { | |
| name : "parse_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 14 : { | |
| name : "device_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 13 : { | |
| name : "parse_package", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "make", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 3 : { | |
| name : "model", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 4 : { | |
| name : "width_px", | |
| c : 5, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 5 : { | |
| name : "height_px", | |
| c : 5, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 6 : { | |
| name : "logical_density", | |
| c : 2, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 7 : { | |
| name : "locale", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 10 : { | |
| name : "invalid", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 11 : { | |
| name : "inactive", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| } | |
| }); | |
| isAncestor(cand, { | |
| 0 : { | |
| name : "NotificationLevel", | |
| $ : "proto.users.NotificationLevel" | |
| } | |
| }); | |
| isAncestor(bodyElem, { | |
| 0 : { | |
| name : "Email", | |
| $ : "proto.users.Email" | |
| }, | |
| 1 : { | |
| name : "address", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "send_notifications", | |
| c : 8, | |
| defaultValue : 1, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 4 : { | |
| name : "show_on_profile", | |
| c : 8, | |
| defaultValue : 1, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 5 : { | |
| name : "google_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 3 : { | |
| name : "bounces", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : delayed | |
| } | |
| }); | |
| isAncestor(delayed, { | |
| 0 : { | |
| name : "Bounce", | |
| /** @type {function (): undefined} */ | |
| va : bodyElem, | |
| $ : "proto.users.Email.Bounce" | |
| }, | |
| 1 : { | |
| name : "permanent", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 2 : { | |
| name : "reported_usec", | |
| c : 3, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| } | |
| }); | |
| isAncestor(later, { | |
| 0 : { | |
| name : "UsageMilestones", | |
| $ : "proto.users.UsageMilestones" | |
| }, | |
| 1 : { | |
| name : "created_document", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 2 : { | |
| name : "created_folder", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 3 : { | |
| name : "shared_document", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 4 : { | |
| name : "shared_folder", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 5 : { | |
| name : "used_desktop_web", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 6 : { | |
| name : "used_ipad", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 7 : { | |
| name : "used_iphone", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 8 : { | |
| name : "used_android_phone", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 9 : { | |
| name : "used_android_tablet", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 10 : { | |
| name : "has_profile_picture", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 11 : { | |
| name : "imported_local_address_book", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 12 : { | |
| name : "was_invited_to_folder", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 13 : { | |
| name : "was_invited_to_thread", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 14 : { | |
| name : "sent_message", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 15 : { | |
| name : "started_business_trial", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| } | |
| }); | |
| isAncestor(titleElement, { | |
| 0 : { | |
| name : "PendingUser", | |
| $ : "proto.users.PendingUser" | |
| }, | |
| 1 : { | |
| name : "name", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "password_hash", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 3 : { | |
| name : "password_salt", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 4 : { | |
| name : "state", | |
| c : 14, | |
| defaultValue : 0, | |
| type : { | |
| YB : 0, | |
| kF : 1, | |
| yD : 3, | |
| js : 4 | |
| } | |
| }, | |
| 20 : { | |
| name : "locale", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 6 : { | |
| name : "emails", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : bodyElem | |
| }, | |
| 7 : { | |
| name : "unverified_emails", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : bodyElem | |
| }, | |
| 8 : { | |
| name : "phone_numbers", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : For | |
| }, | |
| 9 : { | |
| name : "unverified_phone_numbers", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : For | |
| }, | |
| 10 : { | |
| name : "ios_devices", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Cordova | |
| }, | |
| 11 : { | |
| name : "android_devices", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : throttler | |
| }, | |
| 24 : { | |
| name : "has_android_device", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 12 : { | |
| name : "invited_by_ids", | |
| aa : true, | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 25 : { | |
| name : "last_app_invited_usec", | |
| c : 3, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 16 : { | |
| name : "workgroup_name", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 17 : { | |
| name : "workgroup_domain", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 19 : { | |
| name : "workgroup_phone_number", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : For | |
| }, | |
| 21 : { | |
| name : "facebook_profile", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 22 : { | |
| name : "facebook_access_token", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 15 : { | |
| name : "user_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 23 : { | |
| name : "signup_reminder_sent", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 26 : { | |
| name : "signup_channel", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : AliasEvent | |
| }, | |
| 400 : { | |
| name : "id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 401 : { | |
| name : "created_usec", | |
| c : 3, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 402 : { | |
| name : "updated_usec", | |
| c : 3, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 403 : { | |
| name : "sequence", | |
| c : 3, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| } | |
| }); | |
| isAncestor(selector, { | |
| 0 : { | |
| name : "Pictures", | |
| $ : "proto.users.Pictures" | |
| }, | |
| 1 : { | |
| name : "native", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : reason | |
| }, | |
| 2 : { | |
| name : "facebook", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : reason | |
| }, | |
| 3 : { | |
| name : "twitter", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : reason | |
| }, | |
| 4 : { | |
| name : "google", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : reason | |
| } | |
| }); | |
| isAncestor(MappingStartEvent, { | |
| 0 : { | |
| name : "Image", | |
| /** @type {function (): undefined} */ | |
| va : selector, | |
| $ : "proto.users.Pictures.Image" | |
| }, | |
| 1 : { | |
| name : "hash", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "width", | |
| c : 5, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 3 : { | |
| name : "height", | |
| c : 5, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 4 : { | |
| name : "url", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| } | |
| }); | |
| isAncestor(reason, { | |
| 0 : { | |
| name : "Service", | |
| /** @type {function (): undefined} */ | |
| va : selector, | |
| $ : "proto.users.Pictures.Service" | |
| }, | |
| 1 : { | |
| name : "images", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : MappingStartEvent | |
| }, | |
| 2 : { | |
| name : "updated_usec", | |
| c : 3, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| } | |
| }); | |
| isAncestor(AliasEvent, { | |
| 0 : { | |
| name : "SignupChannel", | |
| $ : "proto.users.SignupChannel" | |
| }, | |
| 1 : { | |
| name : "device", | |
| c : 14, | |
| defaultValue : 2, | |
| type : chartType | |
| }, | |
| 2 : { | |
| name : "keyword", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 3 : { | |
| name : "campaign_name", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 4 : { | |
| name : "search_source", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 5 : { | |
| name : "web_ad_source", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 6 : { | |
| name : "mobile_ad_source", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 7 : { | |
| name : "referral_host", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 8 : { | |
| name : "country_code", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| } | |
| }); | |
| isAncestor(onceFn, { | |
| 0 : { | |
| name : "ContactSource", | |
| $ : "proto.users.ContactSource" | |
| } | |
| }); | |
| isAncestor(Call, { | |
| 0 : { | |
| name : "AddressBookContact", | |
| $ : "proto.users.AddressBookContact" | |
| }, | |
| 1 : { | |
| name : "name", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "emails", | |
| aa : true, | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 3 : { | |
| name : "phone_numbers", | |
| aa : true, | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 4 : { | |
| name : "affinity", | |
| c : 1, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 5 : { | |
| name : "explicitly_added", | |
| c : 8, | |
| defaultValue : 1, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 6 : { | |
| name : "id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| } | |
| }); | |
| isAncestor(out, { | |
| 0 : { | |
| name : "ServiceImport", | |
| $ : "proto.users.ServiceImport" | |
| }, | |
| 2 : { | |
| name : "service", | |
| c : 14, | |
| defaultValue : 2, | |
| type : ScrollContainer | |
| }, | |
| 3 : { | |
| name : "service_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 4 : { | |
| name : "import_type", | |
| c : 14, | |
| defaultValue : 0, | |
| type : acceptType | |
| }, | |
| 1 : { | |
| name : "contacts", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Call | |
| }, | |
| 5 : { | |
| name : "file_metadata", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : SequenceEndEvent | |
| }, | |
| 6 : { | |
| name : "cursor", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 7 : { | |
| name : "max_change_id", | |
| c : 3, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 400 : { | |
| name : "id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 401 : { | |
| name : "created_usec", | |
| c : 3, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 402 : { | |
| name : "updated_usec", | |
| c : 3, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 403 : { | |
| name : "sequence", | |
| c : 3, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 404 : { | |
| name : "user_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| } | |
| }); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var SquareTile = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(SquareTile, _super); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var PointLinearTransition = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(PointLinearTransition, _super); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var throttled = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(throttled, _super); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var LinearTransition = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(LinearTransition, _super); | |
| isAncestor(SquareTile, { | |
| 0 : { | |
| name : "FolderEnum", | |
| $ : "proto.folders.FolderEnum" | |
| } | |
| }); | |
| isAncestor(PointLinearTransition, { | |
| 0 : { | |
| name : "FolderMemberEnum", | |
| $ : "proto.folders.FolderMemberEnum" | |
| } | |
| }); | |
| isAncestor(throttled, { | |
| 0 : { | |
| name : "InvitedFolderMemberEnum", | |
| $ : "proto.folders.InvitedFolderMemberEnum" | |
| } | |
| }); | |
| isAncestor(LinearTransition, { | |
| 0 : { | |
| name : "FolderObjectEnum", | |
| $ : "proto.folders.FolderObjectEnum" | |
| } | |
| }); | |
| var paramType = { | |
| ns : 0, | |
| Pw : 1, | |
| VF : 2, | |
| cx : 3, | |
| WG : 5, | |
| AD : 22, | |
| nH : 4, | |
| Lw : 9, | |
| WA : 24, | |
| bG : 25, | |
| rH : 12, | |
| qH : 27, | |
| hG : 30, | |
| is : 14, | |
| PC : 15, | |
| RC : 16, | |
| zD : 23, | |
| TC : 26, | |
| AH : 17, | |
| BH : 18, | |
| EB : 28, | |
| FB : 29, | |
| sH : 20, | |
| qF : 21, | |
| jB : 13, | |
| wF : 65, | |
| vF : 66, | |
| GF : 67, | |
| hD : 68, | |
| ZG : 69, | |
| sD : 70, | |
| iH : 71, | |
| bD : 72, | |
| dB : 73, | |
| uF : 74 | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var ClientCredentialsFlow = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(ClientCredentialsFlow, _super); | |
| /** | |
| * @return {?} | |
| */ | |
| ClientCredentialsFlow.prototype.Be = function() { | |
| return get_mangled(this, 2); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| ClientCredentialsFlow.prototype.pd = function(isXML) { | |
| return origFindId(this, 2, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| ClientCredentialsFlow.prototype.De = function() { | |
| return ondata(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| ClientCredentialsFlow.prototype.Me = function() { | |
| return isArray(this, 2); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var trailingCall = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(trailingCall, _super); | |
| isAncestor(ClientCredentialsFlow, { | |
| 0 : { | |
| name : "LikeState", | |
| $ : "proto.like.LikeState" | |
| }, | |
| 1 : { | |
| name : "liked", | |
| c : 8, | |
| defaultValue : 1, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 2 : { | |
| name : "user_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 3 : { | |
| name : "updated_usec", | |
| c : 3, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| } | |
| }); | |
| isAncestor(trailingCall, { | |
| 0 : { | |
| name : "LikeBundle", | |
| $ : "proto.like.LikeBundle" | |
| }, | |
| 1 : { | |
| name : "likes", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : ClientCredentialsFlow | |
| } | |
| }); | |
| /** @type {number} */ | |
| var channelName = 9; | |
| /** @type {number} */ | |
| var nodeRequest = 10; | |
| var deps = { | |
| LE : 0, | |
| eC : 1, | |
| NA : 2, | |
| MA : 3, | |
| SC : 4, | |
| WB : 5, | |
| xE : 13, | |
| wE : 14, | |
| vE : 16, | |
| yE : 15, | |
| AE : 21, | |
| zE : 22, | |
| KD : 6, | |
| JD : 7, | |
| qC : 8, | |
| jC : channelName, | |
| kC : nodeRequest, | |
| nC : 17, | |
| lC : 18, | |
| mC : 23, | |
| pC : 19, | |
| oC : 20, | |
| iC : 24, | |
| xH : 11, | |
| wH : 12 | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var withinElement = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(withinElement, _super); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var EcoLanguage = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(EcoLanguage, _super); | |
| self = EcoLanguage.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Tt = function() { | |
| return get_mangled(this, 26); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.It = function() { | |
| return get_mangled(this, 39); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Gt = function() { | |
| return get_mangled(this, 53); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Mt = function() { | |
| return func(this, 56); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Rt = function() { | |
| return func(this, 57); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Pp = function() { | |
| return func(this, 58); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var child = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(child, _super); | |
| self = child.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Tt = function() { | |
| return get_mangled(this, 26); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.It = function() { | |
| return get_mangled(this, 39); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Gt = function() { | |
| return get_mangled(this, 53); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Mt = function() { | |
| return func(this, 56); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Rt = function() { | |
| return func(this, 57); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Pp = function() { | |
| return func(this, 58); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var proxyfn = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(proxyfn, _super); | |
| isAncestor(withinElement, { | |
| 0 : { | |
| name : "ExperimentState", | |
| $ : "proto.rollouts.ExperimentState" | |
| }, | |
| 1 : { | |
| name : "tour_type", | |
| c : 14, | |
| defaultValue : 0, | |
| type : { | |
| dH : 0, | |
| gH : 1, | |
| eH : 2, | |
| fH : 3 | |
| } | |
| }, | |
| 2 : { | |
| name : "suppress_team_promo", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| } | |
| }); | |
| isAncestor(EcoLanguage, { | |
| 0 : { | |
| name : "RolloutState", | |
| $ : "proto.rollouts.RolloutState" | |
| }, | |
| 21 : { | |
| name : "can_use_staging", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 26 : { | |
| name : "spreadsheets", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 39 : { | |
| name : "linkify_phone_numbers", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 53 : { | |
| name : "hide_offscreen_sections", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 54 : { | |
| name : "box_import", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 56 : { | |
| name : "new_chat_list", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 57 : { | |
| name : "sections_stale_check", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 58 : { | |
| name : "signals", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 59 : { | |
| name : "integrations", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 200 : { | |
| name : "experiment_state", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : withinElement | |
| }, | |
| 1 : { | |
| name : "notification_controls", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 3 : { | |
| name : "evernote_import", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 4 : { | |
| name : "dropbox_chooser", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 5 : { | |
| name : "dropbox_link", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 8 : { | |
| name : "deletion_redesign", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 9 : { | |
| name : "gdrive_import", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 12 : { | |
| name : "ios_device_width_fix", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 14 : { | |
| name : "private_document_ui", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 16 : { | |
| name : "complete_account_promo", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 20 : { | |
| name : "shortcuts_cheat_sheet", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 11 : { | |
| name : "evernote_import_ios", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 6 : { | |
| name : "dropbox_chooser_ios", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 7 : { | |
| name : "dropbox_link_ios", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 10 : { | |
| name : "gdrive_import_ios", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| } | |
| }); | |
| isAncestor(child, { | |
| 0 : { | |
| name : "RolloutSpec", | |
| $ : "proto.rollouts.RolloutSpec" | |
| }, | |
| 21 : { | |
| name : "can_use_staging", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : proxyfn | |
| }, | |
| 26 : { | |
| name : "spreadsheets", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : proxyfn | |
| }, | |
| 39 : { | |
| name : "linkify_phone_numbers", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : proxyfn | |
| }, | |
| 53 : { | |
| name : "hide_offscreen_sections", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : proxyfn | |
| }, | |
| 54 : { | |
| name : "box_import", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : proxyfn | |
| }, | |
| 56 : { | |
| name : "new_chat_list", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : proxyfn | |
| }, | |
| 57 : { | |
| name : "sections_stale_check", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : proxyfn | |
| }, | |
| 58 : { | |
| name : "signals", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : proxyfn | |
| }, | |
| 59 : { | |
| name : "integrations", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : proxyfn | |
| }, | |
| 500 : { | |
| name : "updated_usec", | |
| c : 3, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| } | |
| }); | |
| isAncestor(proxyfn, { | |
| 0 : { | |
| name : "Rule", | |
| /** @type {function (): undefined} */ | |
| va : child, | |
| $ : "proto.rollouts.RolloutSpec.Rule" | |
| }, | |
| 1 : { | |
| name : "level", | |
| c : 14, | |
| defaultValue : 0, | |
| type : { | |
| NONE : 0, | |
| tC : 1, | |
| AF : 2, | |
| jH : 3, | |
| Dw : 5 | |
| } | |
| }, | |
| 2 : { | |
| name : "whitelist_user_ids", | |
| aa : true, | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 3 : { | |
| name : "blacklist_user_ids", | |
| aa : true, | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 7 : { | |
| name : "whitelist_workgroup_ids", | |
| aa : true, | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 8 : { | |
| name : "blacklist_workgroup_ids", | |
| aa : true, | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 11 : { | |
| name : "whitelist_company_ids", | |
| aa : true, | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 12 : { | |
| name : "blacklist_company_ids", | |
| aa : true, | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 9 : { | |
| name : "whitelist_email_regexes", | |
| aa : true, | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 10 : { | |
| name : "blacklist_email_regexes", | |
| aa : true, | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 4 : { | |
| name : "web", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : proxyfn | |
| }, | |
| 5 : { | |
| name : "ios", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : proxyfn | |
| }, | |
| 6 : { | |
| name : "android", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : proxyfn | |
| } | |
| }); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Digest = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(Digest, _super); | |
| /** | |
| * @return {?} | |
| */ | |
| Digest.prototype.Ca = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| Digest.prototype.ib = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {number} expectedNumberOfNonCommentArgs | |
| * @return {?} | |
| */ | |
| Digest.prototype.mb = function(expectedNumberOfNonCommentArgs) { | |
| return origFindId(this, 1, expectedNumberOfNonCommentArgs); | |
| }; | |
| var mime = { | |
| ls : 0, | |
| po : 1, | |
| Sw : 2, | |
| ix : 3, | |
| Nw : 4, | |
| fx : 5, | |
| Ow : 6, | |
| Hw : 7, | |
| Rw : 8 | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Cursor = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(Cursor, _super); | |
| self = Cursor.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ca = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ib = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {number} expectedNumberOfNonCommentArgs | |
| * @return {?} | |
| */ | |
| self.mb = function(expectedNumberOfNonCommentArgs) { | |
| return origFindId(this, 1, expectedNumberOfNonCommentArgs); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.getStringValue = function() { | |
| return func(this, 4); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.setStringValue = function(isXML) { | |
| return origFindId(this, 4, isXML); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Venue = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(Venue, _super); | |
| /** | |
| * @return {?} | |
| */ | |
| Venue.prototype.getName = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| Venue.prototype.Td = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| Venue.prototype.Fd = function(isXML) { | |
| return origFindId(this, 1, isXML); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Index = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(Index, _super); | |
| isAncestor(Digest, { | |
| 0 : { | |
| name : "CellFormat", | |
| $ : "proto.formula.CellFormat" | |
| }, | |
| 1 : { | |
| name : "type", | |
| c : 14, | |
| defaultValue : 0, | |
| type : mime | |
| }, | |
| 2 : { | |
| name : "decimals", | |
| c : 5, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 3 : { | |
| name : "comma", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 4 : { | |
| name : "date_format_index", | |
| c : 5, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 5 : { | |
| name : "scientific_fallback", | |
| c : 8, | |
| defaultValue : 1, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| } | |
| }); | |
| isAncestor(Cursor, { | |
| 0 : { | |
| name : "Result", | |
| $ : "proto.formula.Result" | |
| }, | |
| 1 : { | |
| name : "type", | |
| c : 14, | |
| defaultValue : 0, | |
| type : { | |
| po : 0, | |
| Hw : 1, | |
| lx : 2, | |
| Rw : 3 | |
| } | |
| }, | |
| 2 : { | |
| name : "number_value", | |
| c : 1, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 3 : { | |
| name : "boolean_value", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 4 : { | |
| name : "string_value", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 5 : { | |
| name : "error_value", | |
| c : 5, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| } | |
| }); | |
| isAncestor(Venue, { | |
| 0 : { | |
| name : "Function", | |
| $ : "proto.formula.Function" | |
| }, | |
| 1 : { | |
| name : "name", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "args", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 3 : { | |
| name : "documentation", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| } | |
| }); | |
| isAncestor(Index, { | |
| 0 : { | |
| name : "Functions", | |
| $ : "proto.formula.Functions" | |
| }, | |
| 1 : { | |
| name : "functions", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Venue | |
| } | |
| }); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var msg = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(msg, _super); | |
| self = msg.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Jg = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.$i = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Qk = function() { | |
| return ondata(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Sf = function() { | |
| return func(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ke = function() { | |
| return get_mangled(this, 2); | |
| }; | |
| /** | |
| * @param {number} opt_attributes | |
| * @return {?} | |
| */ | |
| self.gb = function(opt_attributes) { | |
| return origFindId(this, 2, opt_attributes); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Sk = function() { | |
| return ondata(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Nm = function() { | |
| return get_mangled(this, 3); | |
| }; | |
| /** | |
| * @param {number} opt_attributes | |
| * @return {?} | |
| */ | |
| self.Sa = function(opt_attributes) { | |
| return origFindId(this, 3, opt_attributes); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Jt = function() { | |
| return func(this, 4); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Categories = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(Categories, _super); | |
| self = Categories.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ca = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ib = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {number} expectedNumberOfNonCommentArgs | |
| * @return {?} | |
| */ | |
| self.mb = function(expectedNumberOfNonCommentArgs) { | |
| return origFindId(this, 1, expectedNumberOfNonCommentArgs); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.lf = function() { | |
| return func(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.pc = function() { | |
| return get_mangled(this, 2); | |
| }; | |
| /** | |
| * @param {(number|string)} value | |
| * @return {?} | |
| */ | |
| self.ja = function(value) { | |
| return origFindId(this, 2, value); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Zh = function() { | |
| return ondata(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Pt = function() { | |
| return func(this, 3); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Yc = function() { | |
| return get_mangled(this, 3); | |
| }; | |
| /** | |
| * @param {number} deepDataAndEvents | |
| * @return {?} | |
| */ | |
| self.ri = function(deepDataAndEvents) { | |
| return origFindId(this, 3, deepDataAndEvents); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.hc = function() { | |
| return func(this, 4); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ld = function() { | |
| return get_mangled(this, 4); | |
| }; | |
| /** | |
| * @param {Array} recurring | |
| * @return {?} | |
| */ | |
| self.$a = function(recurring) { | |
| return origFindId(this, 4, recurring); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.cb = function() { | |
| return ondata(this, 4); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.pm = function() { | |
| return isArray(this, 4); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ct = function() { | |
| return func(this, 5); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.Kv = function(isXML) { | |
| return origFindId(this, 5, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Qp = function() { | |
| return func(this, 6); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.Uv = function(isXML) { | |
| return origFindId(this, 6, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.cq = function() { | |
| return ondata(this, 6); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.qm = function() { | |
| return isArray(this, 6); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Pd = function() { | |
| return func(this, 7); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Qd = function() { | |
| return get_mangled(this, 7); | |
| }; | |
| /** | |
| * @param {?} listener | |
| * @return {?} | |
| */ | |
| self.He = function(listener) { | |
| return origFindId(this, 7, listener); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.hasAttributes = function() { | |
| return ondata(this, 7); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Yi = function() { | |
| return func(this, 8); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ob = function() { | |
| return get_mangled(this, 8); | |
| }; | |
| /** | |
| * @param {?} obj | |
| * @return {?} | |
| */ | |
| self.Za = function(obj) { | |
| return origFindId(this, 8, obj); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Wt = function() { | |
| return ondata(this, 8); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ve = function() { | |
| return isArray(this, 8); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Lp = function() { | |
| return get_mangled(this, 10); | |
| }; | |
| /** | |
| * @param {number} deepDataAndEvents | |
| * @return {?} | |
| */ | |
| self.pi = function(deepDataAndEvents) { | |
| return origFindId(this, 10, deepDataAndEvents); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.gc = function() { | |
| return func(this, 9); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Bb = function() { | |
| return get_mangled(this, 9); | |
| }; | |
| /** | |
| * @param {boolean} isXML | |
| * @return {?} | |
| */ | |
| self.Wb = function(isXML) { | |
| return origFindId(this, 9, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Lm = function() { | |
| return func(this, 300); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.Gn = function(isXML) { | |
| return origFindId(this, 300, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.aq = function() { | |
| return ondata(this, 300); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Mp = function() { | |
| return func(this, 301); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.xr = function(isXML) { | |
| return origFindId(this, 301, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.$p = function() { | |
| return ondata(this, 301); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Da = function() { | |
| return func(this, 600); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Aa = function() { | |
| return get_mangled(this, 600); | |
| }; | |
| /** | |
| * @param {string} iterator | |
| * @return {?} | |
| */ | |
| self.Ia = function(iterator) { | |
| return origFindId(this, 600, iterator); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ab = function() { | |
| return isArray(this, 600); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Rf = function() { | |
| return func(this, 601); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Tb = function() { | |
| return get_mangled(this, 601); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.xb = function(isXML) { | |
| return origFindId(this, 601, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Rk = function() { | |
| return ondata(this, 601); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.jk = function() { | |
| return isArray(this, 601); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Lk = function() { | |
| return func(this, 605); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ot = function() { | |
| return get_mangled(this, 605); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.zr = function(isXML) { | |
| return origFindId(this, 605, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Zt = function() { | |
| return ondata(this, 605); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ic = function() { | |
| return func(this, 604); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ac = function() { | |
| return get_mangled(this, 604); | |
| }; | |
| /** | |
| * @param {number} isXML | |
| * @return {?} | |
| */ | |
| self.Xb = function(isXML) { | |
| return origFindId(this, 604, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.qc = function() { | |
| return ondata(this, 604); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Zb = function() { | |
| return isArray(this, 604); | |
| }; | |
| /** @type {number} */ | |
| var expectedNumberOfNonCommentArgs = 0; | |
| var suiteView = { | |
| VG : expectedNumberOfNonCommentArgs, | |
| cE : 1, | |
| rD : 2, | |
| EG : 3, | |
| HG : 4, | |
| JG : 5, | |
| no : 6, | |
| mo : 7, | |
| oo : 8, | |
| qe : 9, | |
| lo : 11, | |
| WC : 10 | |
| }; | |
| /** @type {number} */ | |
| var pdataOld = 1; | |
| /** @type {number} */ | |
| var udataCur = 3; | |
| var proto = { | |
| UG : 0, | |
| PG : pdataOld, | |
| QG : 2, | |
| RG : udataCur, | |
| NG : 4, | |
| $D : 5, | |
| bE : 6, | |
| aE : 7, | |
| DG : 8, | |
| KG : 13, | |
| IG : 9, | |
| FG : 10, | |
| qD : 11, | |
| VC : 12 | |
| }; | |
| /** @type {number} */ | |
| var deepDataAndEvents = 0; | |
| var gesture = { | |
| jx : deepDataAndEvents, | |
| Mw : 1 | |
| }; | |
| var viewItems = { | |
| Gw : 1, | |
| $w : 2, | |
| mx : 4 | |
| }; | |
| var dataType = { | |
| yH : 0, | |
| hx : 1, | |
| dx : 2, | |
| GH : 3, | |
| Yw : 4, | |
| Fw : 5, | |
| gx : 6, | |
| gB : 7 | |
| }; | |
| var expectedType = { | |
| oH : 0, | |
| NE : 1, | |
| LG : 2, | |
| JB : 3 | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Collection = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(Collection, _super); | |
| /** | |
| * @param {?} owner | |
| * @return {?} | |
| */ | |
| Collection.prototype.vd = function(owner) { | |
| return _findBelongsTo(this, 1, owner); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| Collection.prototype.Oc = function() { | |
| return deepEqual(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| Collection.prototype.Zk = function() { | |
| return member(this, 1); | |
| }; | |
| /** | |
| * @param {?} value | |
| * @return {?} | |
| */ | |
| var prompt = function(value) { | |
| return func(value, 2); | |
| }; | |
| /** | |
| * @param {?} name | |
| * @return {?} | |
| */ | |
| var splitPrefix = function(name) { | |
| return get_mangled(name, 2); | |
| }; | |
| /** | |
| * @param {?} name | |
| * @return {?} | |
| */ | |
| var findOne = function(name) { | |
| return ondata(name, 2); | |
| }; | |
| /** | |
| * @param {?} name | |
| * @return {?} | |
| */ | |
| var Step = function(name) { | |
| return func(name, 4); | |
| }; | |
| /** | |
| * @param {?} name | |
| * @return {?} | |
| */ | |
| var is_event_name = function(name) { | |
| return ondata(name, 4); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Arr = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(Arr, _super); | |
| self = Arr.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Xi = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.Fn = function(isXML) { | |
| return origFindId(this, 1, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Op = function() { | |
| return get_mangled(this, 2); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.Qv = function(isXML) { | |
| return origFindId(this, 2, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Km = function() { | |
| return func(this, 3); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Kp = function() { | |
| return get_mangled(this, 3); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.Lv = function(isXML) { | |
| return origFindId(this, 3, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.gc = function() { | |
| return func(this, 4); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Bb = function() { | |
| return get_mangled(this, 4); | |
| }; | |
| /** | |
| * @param {boolean} isXML | |
| * @return {?} | |
| */ | |
| self.Wb = function(isXML) { | |
| return origFindId(this, 4, isXML); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Tag = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(Tag, _super); | |
| /** | |
| * @param {?} res | |
| * @return {?} | |
| */ | |
| var limit = function(res) { | |
| return func(res, 1); | |
| }; | |
| /** | |
| * @param {?} value | |
| * @param {number} obj | |
| * @return {undefined} | |
| */ | |
| var isPlainObject = function(value, obj) { | |
| origFindId(value, 1, obj); | |
| }; | |
| /** | |
| * @param {?} name | |
| * @return {?} | |
| */ | |
| var H = function(name) { | |
| return ondata(name, 1); | |
| }; | |
| /** | |
| * @param {?} res | |
| * @param {boolean} isXML | |
| * @return {?} | |
| */ | |
| var cb = function(res, isXML) { | |
| return origFindId(res, 4, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| var cancelAnimationFrame = function() { | |
| var rvar = new Tag; | |
| return origFindId(rvar, 13, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| Tag.prototype.Vd = function() { | |
| return ondata(this, 13); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| Tag.prototype.wg = function() { | |
| return isArray(this, 13); | |
| }; | |
| /** | |
| * @param {?} name | |
| * @return {?} | |
| */ | |
| var validateCookieName = function(name) { | |
| return get_mangled(name, 5); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| Tag.prototype.Rd = function() { | |
| return func(this, 6); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| Tag.prototype.wr = function(isXML) { | |
| return origFindId(this, 6, isXML); | |
| }; | |
| /** | |
| * @param {number} name | |
| * @return {?} | |
| */ | |
| var isClassOf = function(name) { | |
| return get_mangled(name, 12); | |
| }; | |
| /** | |
| * @param {?} name | |
| * @return {?} | |
| */ | |
| var readCookie = function(name) { | |
| return func(name, 9); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Image = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(Image, _super); | |
| /** | |
| * @return {?} | |
| */ | |
| Image.prototype.Ud = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| Image.prototype.rb = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {?} v02 | |
| * @return {?} | |
| */ | |
| Image.prototype.ca = function(v02) { | |
| return origFindId(this, 1, v02); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var LightRaindropAnimation = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(LightRaindropAnimation, _super); | |
| /** | |
| * @param {number} isXML | |
| * @return {?} | |
| */ | |
| LightRaindropAnimation.prototype.Mj = function(isXML) { | |
| return origFindId(this, 1, isXML); | |
| }; | |
| /** | |
| * @param {number} isXML | |
| * @return {?} | |
| */ | |
| LightRaindropAnimation.prototype.Mn = function(isXML) { | |
| return origFindId(this, 2, isXML); | |
| }; | |
| /** | |
| * @param {?} name | |
| * @return {?} | |
| */ | |
| var snake_case = function(name) { | |
| return func(name, 3); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Element = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(Element, _super); | |
| /** | |
| * @return {?} | |
| */ | |
| Element.prototype.getName = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| Element.prototype.Td = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| Element.prototype.Fd = function(isXML) { | |
| return origFindId(this, 1, isXML); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Child = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(Child, _super); | |
| /** | |
| * @return {?} | |
| */ | |
| Child.prototype.Sf = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| Child.prototype.ke = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {number} opt_attributes | |
| * @return {?} | |
| */ | |
| Child.prototype.gb = function(opt_attributes) { | |
| return origFindId(this, 1, opt_attributes); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| Child.prototype.Sk = function() { | |
| return ondata(this, 1); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Statuses = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(Statuses, _super); | |
| self = Statuses.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Be = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.pd = function(isXML) { | |
| return origFindId(this, 1, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.De = function() { | |
| return ondata(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Me = function() { | |
| return isArray(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.getName = function() { | |
| return func(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Td = function() { | |
| return get_mangled(this, 2); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.Fd = function(isXML) { | |
| return origFindId(this, 2, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Kt = function() { | |
| return get_mangled(this, 3); | |
| }; | |
| /** | |
| * @param {number} isXML | |
| * @return {?} | |
| */ | |
| self.El = function(isXML) { | |
| return origFindId(this, 3, isXML); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Bool = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(Bool, _super); | |
| /** | |
| * @param {?} name | |
| * @return {?} | |
| */ | |
| var it = function(name) { | |
| return func(name, 1); | |
| }; | |
| self = Bool.prototype; | |
| /** | |
| * @param {(Error|string)} isXML | |
| * @return {?} | |
| */ | |
| self.Kn = function(isXML) { | |
| return origFindId(this, 1, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Lg = function() { | |
| return func(this, 2); | |
| }; | |
| /** | |
| * @param {(Error|string)} isXML | |
| * @return {?} | |
| */ | |
| self.ti = function(isXML) { | |
| return origFindId(this, 2, isXML); | |
| }; | |
| /** | |
| * @param {(Error|string)} isXML | |
| * @return {?} | |
| */ | |
| self.Ln = function(isXML) { | |
| return origFindId(this, 3, isXML); | |
| }; | |
| /** | |
| * @param {(Error|string)} isXML | |
| * @return {?} | |
| */ | |
| self.Jn = function(isXML) { | |
| return origFindId(this, 4, isXML); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Parens = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(Parens, _super); | |
| self = Parens.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ud = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.rb = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {?} v02 | |
| * @return {?} | |
| */ | |
| self.ca = function(v02) { | |
| return origFindId(this, 1, v02); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Sf = function() { | |
| return func(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ke = function() { | |
| return get_mangled(this, 2); | |
| }; | |
| /** | |
| * @param {number} opt_attributes | |
| * @return {?} | |
| */ | |
| self.gb = function(opt_attributes) { | |
| return origFindId(this, 2, opt_attributes); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Sk = function() { | |
| return ondata(this, 2); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var ComposerError = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(ComposerError, _super); | |
| self = ComposerError.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Et = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.In = function(isXML) { | |
| return origFindId(this, 1, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Dt = function() { | |
| return func(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Np = function() { | |
| return get_mangled(this, 2); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.Hn = function(isXML) { | |
| return origFindId(this, 2, isXML); | |
| }; | |
| /** | |
| * @param {boolean} name | |
| * @return {?} | |
| */ | |
| self.Cl = function(name) { | |
| return origFindId(this, 4, name); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var JoinError = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(JoinError, _super); | |
| self = JoinError.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Om = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @param {number} opt_attributes | |
| * @return {?} | |
| */ | |
| self.Fl = function(opt_attributes) { | |
| return origFindId(this, 1, opt_attributes); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.lf = function() { | |
| return func(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.pc = function() { | |
| return get_mangled(this, 2); | |
| }; | |
| /** | |
| * @param {(number|string)} value | |
| * @return {?} | |
| */ | |
| self.ja = function(value) { | |
| return origFindId(this, 2, value); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Zh = function() { | |
| return ondata(this, 2); | |
| }; | |
| /** | |
| * @param {?} match | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| var ID = function(match, isXML) { | |
| return origFindId(match, 3, isXML); | |
| }; | |
| /** | |
| * @param {?} match | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| var nth = function(match, isXML) { | |
| return origFindId(match, 11, isXML); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Enemy = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(Enemy, _super); | |
| /** | |
| * @return {?} | |
| */ | |
| Enemy.prototype.lf = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| Enemy.prototype.pc = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {(number|string)} value | |
| * @return {?} | |
| */ | |
| Enemy.prototype.ja = function(value) { | |
| return origFindId(this, 1, value); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| Enemy.prototype.Zh = function() { | |
| return ondata(this, 1); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var SrcCell = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(SrcCell, _super); | |
| /** | |
| * @return {?} | |
| */ | |
| SrcCell.prototype.Mm = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| SrcCell.prototype.ze = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| SrcCell.prototype.Lj = function(isXML) { | |
| return origFindId(this, 1, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| SrcCell.prototype.Xt = function() { | |
| return ondata(this, 1); | |
| }; | |
| /** | |
| * @param {?} moduleName | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| var makeError = function(moduleName, isXML) { | |
| return origFindId(moduleName, 2, isXML); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Contact = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(Contact, _super); | |
| self = Contact.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ud = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.rb = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {?} v02 | |
| * @return {?} | |
| */ | |
| self.ca = function(v02) { | |
| return origFindId(this, 1, v02); | |
| }; | |
| /** | |
| * @param {?} name | |
| * @return {?} | |
| */ | |
| var nodeName = function(name) { | |
| return func(name, 2); | |
| }; | |
| /** | |
| * @param {?} name | |
| * @return {?} | |
| */ | |
| var setCachedModule = function(name) { | |
| return get_mangled(name, 3); | |
| }; | |
| /** | |
| * @param {?} b | |
| * @param {?} x | |
| * @return {?} | |
| */ | |
| var md5_cmn = function(b, x) { | |
| return origFindId(b, 3, x); | |
| }; | |
| /** | |
| * @param {?} name | |
| * @return {?} | |
| */ | |
| var _set = function(name) { | |
| return func(name, 5); | |
| }; | |
| /** | |
| * @param {?} deepDataAndEvents | |
| * @return {?} | |
| */ | |
| self.Kj = function(deepDataAndEvents) { | |
| return origFindId(this, 5, deepDataAndEvents); | |
| }; | |
| /** | |
| * @param {?} match | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| var CLASS = function(match, isXML) { | |
| return origFindId(match, 10, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Mm = function() { | |
| return func(this, 8); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ze = function() { | |
| return get_mangled(this, 8); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.Lj = function(isXML) { | |
| return origFindId(this, 8, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Xt = function() { | |
| return ondata(this, 8); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var newMatchersClass = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(newMatchersClass, _super); | |
| self = newMatchersClass.prototype; | |
| /** | |
| * @param {number} obj | |
| * @return {?} | |
| */ | |
| self.Ok = function(obj) { | |
| return func(this, 1, obj); | |
| }; | |
| /** | |
| * @param {?} owner | |
| * @return {?} | |
| */ | |
| self.mc = function(owner) { | |
| return _findBelongsTo(this, 1, owner); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.bg = function() { | |
| return deepEqual(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Qm = function() { | |
| return ondata(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.li = function() { | |
| return member(this, 1); | |
| }; | |
| isAncestor(msg, { | |
| 0 : { | |
| name : "Image", | |
| $ : "proto.section.Image" | |
| }, | |
| 1 : { | |
| name : "hash", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "width", | |
| c : 5, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 3 : { | |
| name : "height", | |
| c : 5, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 4 : { | |
| name : "mime_type", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| } | |
| }); | |
| isAncestor(Categories, { | |
| 0 : { | |
| name : "Section", | |
| $ : "proto.section.Section" | |
| }, | |
| 1 : { | |
| name : "type", | |
| c : 14, | |
| defaultValue : expectedNumberOfNonCommentArgs, | |
| type : suiteView | |
| }, | |
| 2 : { | |
| name : "style", | |
| c : 14, | |
| defaultValue : 0, | |
| type : proto | |
| }, | |
| 3 : { | |
| name : "section_class", | |
| c : 14, | |
| defaultValue : deepDataAndEvents, | |
| type : gesture | |
| }, | |
| 4 : { | |
| name : "parents", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Collection | |
| }, | |
| 5 : { | |
| name : "alt_rtml", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 6 : { | |
| name : "status", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Arr | |
| }, | |
| 7 : { | |
| name : "attributes", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Tag | |
| }, | |
| 8 : { | |
| name : "content", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Contact | |
| }, | |
| 10 : { | |
| name : "content_origin", | |
| c : 14, | |
| defaultValue : 0, | |
| type : expectedType | |
| }, | |
| 9 : { | |
| name : "deleted", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 300 : { | |
| name : "copy_thread_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 301 : { | |
| name : "copy_secret_path", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 500 : { | |
| name : "client_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 600 : { | |
| name : "id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 601 : { | |
| name : "position", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 605 : { | |
| name : "position_path", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 602 : { | |
| name : "created_usec", | |
| c : 3, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 603 : { | |
| name : "updated_usec", | |
| c : 3, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 604 : { | |
| name : "sequence", | |
| c : 3, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| } | |
| }); | |
| isAncestor(Collection, { | |
| 0 : { | |
| name : "Parents", | |
| /** @type {function (): undefined} */ | |
| va : Categories, | |
| $ : "proto.section.Section.Parents" | |
| }, | |
| 1 : { | |
| name : "ids", | |
| aa : true, | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "container_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 4 : { | |
| name : "container_style", | |
| c : 14, | |
| defaultValue : 0, | |
| type : proto | |
| } | |
| }); | |
| isAncestor(Arr, { | |
| 0 : { | |
| name : "Status", | |
| /** @type {function (): undefined} */ | |
| va : Categories, | |
| $ : "proto.section.Section.Status" | |
| }, | |
| 1 : { | |
| name : "author_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "locked_lease", | |
| c : 3, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 3 : { | |
| name : "author_session", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 4 : { | |
| name : "deleted", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| } | |
| }); | |
| isAncestor(Tag, { | |
| 0 : { | |
| name : "Attributes", | |
| /** @type {function (): undefined} */ | |
| va : Categories, | |
| $ : "proto.section.Section.Attributes" | |
| }, | |
| 1 : { | |
| name : "indentation", | |
| c : 5, | |
| defaultValue : 0, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 2 : { | |
| name : "checked", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 4 : { | |
| name : "vertical_margin", | |
| c : 8, | |
| defaultValue : 1, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 13 : { | |
| name : "default_content", | |
| c : 14, | |
| defaultValue : 0, | |
| type : { | |
| NONE : 0, | |
| kD : 1, | |
| XF : 2 | |
| } | |
| }, | |
| 3 : { | |
| name : "background_color", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 5 : { | |
| name : "cell_formatting_options", | |
| c : 13, | |
| defaultValue : 0, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 6 : { | |
| name : "cell_format", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Digest | |
| }, | |
| 12 : { | |
| name : "cell_background_color", | |
| c : 14, | |
| defaultValue : 0, | |
| type : dataType | |
| }, | |
| 7 : { | |
| name : "stored_auto_format", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Digest | |
| }, | |
| 8 : { | |
| name : "stored_result", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Cursor | |
| }, | |
| 9 : { | |
| name : "stored_formatted_result", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 10 : { | |
| name : "column_number", | |
| c : 5, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 11 : { | |
| name : "list_position", | |
| c : 5, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| } | |
| }); | |
| isAncestor(Image, { | |
| 0 : { | |
| name : "ContentText", | |
| /** @type {function (): undefined} */ | |
| va : Categories, | |
| $ : "proto.section.Section.ContentText" | |
| }, | |
| 1 : { | |
| name : "text", | |
| c : 9, | |
| defaultValue : "", | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| } | |
| }); | |
| isAncestor(LightRaindropAnimation, { | |
| 0 : { | |
| name : "ContentImage", | |
| /** @type {function (): undefined} */ | |
| va : Categories, | |
| $ : "proto.section.Section.ContentImage" | |
| }, | |
| 1 : { | |
| name : "image_float", | |
| c : 14, | |
| defaultValue : 0, | |
| type : { | |
| OE : 0, | |
| YD : 1, | |
| TF : 2 | |
| } | |
| }, | |
| 2 : { | |
| name : "scale", | |
| c : 1, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 3 : { | |
| name : "original", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : msg | |
| }, | |
| 4 : { | |
| name : "sizes", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : msg | |
| } | |
| }); | |
| isAncestor(Element, { | |
| 0 : { | |
| name : "ContentTableBody", | |
| /** @type {function (): undefined} */ | |
| va : Categories, | |
| $ : "proto.section.Section.ContentTableBody" | |
| }, | |
| 1 : { | |
| name : "name", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| } | |
| }); | |
| isAncestor(Child, { | |
| 0 : { | |
| name : "ContentTableColumn", | |
| /** @type {function (): undefined} */ | |
| va : Categories, | |
| $ : "proto.section.Section.ContentTableColumn" | |
| }, | |
| 1 : { | |
| name : "width", | |
| c : 2, | |
| defaultValue : 8, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| } | |
| }); | |
| isAncestor(Statuses, { | |
| 0 : { | |
| name : "ContentControlPerson", | |
| /** @type {function (): undefined} */ | |
| va : Categories, | |
| $ : "proto.section.Section.ContentControlPerson" | |
| }, | |
| 1 : { | |
| name : "user_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "name", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 3 : { | |
| name : "mode", | |
| c : 14, | |
| defaultValue : 0, | |
| type : { | |
| sF : 0, | |
| mF : 1 | |
| } | |
| } | |
| }); | |
| isAncestor(Bool, { | |
| 0 : { | |
| name : "ContentControlDocument", | |
| /** @type {function (): undefined} */ | |
| va : Categories, | |
| $ : "proto.section.Section.ContentControlDocument" | |
| }, | |
| 1 : { | |
| name : "doc_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "title", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 3 : { | |
| name : "path_prefix", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 4 : { | |
| name : "doc_href", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| } | |
| }); | |
| isAncestor(Parens, { | |
| 0 : { | |
| name : "ContentControlTextBox", | |
| /** @type {function (): undefined} */ | |
| va : Categories, | |
| $ : "proto.section.Section.ContentControlTextBox" | |
| }, | |
| 1 : { | |
| name : "text", | |
| c : 9, | |
| defaultValue : "", | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "width", | |
| c : 5, | |
| defaultValue : 20, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| } | |
| }); | |
| isAncestor(ComposerError, { | |
| 0 : { | |
| name : "ContentControlHighlight", | |
| /** @type {function (): undefined} */ | |
| va : Categories, | |
| $ : "proto.section.Section.ContentControlHighlight" | |
| }, | |
| 1 : { | |
| name : "creator_user_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "creator_name", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 3 : { | |
| name : "highlight_section_ids", | |
| aa : true, | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 4 : { | |
| name : "hidden", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| } | |
| }); | |
| isAncestor(JoinError, { | |
| 0 : { | |
| name : "ContentControlAction", | |
| /** @type {function (): undefined} */ | |
| va : Categories, | |
| $ : "proto.section.Section.ContentControlAction" | |
| }, | |
| 1 : { | |
| name : "op", | |
| c : 14, | |
| defaultValue : 10, | |
| type : { | |
| QE : 10, | |
| dG : 11 | |
| } | |
| }, | |
| 2 : { | |
| name : "style", | |
| c : 14, | |
| defaultValue : 0, | |
| type : { | |
| ax : 0, | |
| Jw : 1 | |
| } | |
| }, | |
| 3 : { | |
| name : "title_rtml", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 11 : { | |
| name : "set_style", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Enemy | |
| } | |
| }); | |
| isAncestor(Enemy, { | |
| 0 : { | |
| name : "SetStyle", | |
| /** @type {function (): undefined} */ | |
| va : JoinError, | |
| $ : "proto.section.Section.ContentControlAction.SetStyle" | |
| }, | |
| 1 : { | |
| name : "style", | |
| c : 14, | |
| defaultValue : 0, | |
| type : proto | |
| } | |
| }); | |
| isAncestor(SrcCell, { | |
| 0 : { | |
| name : "ContentFormula", | |
| /** @type {function (): undefined} */ | |
| va : Categories, | |
| $ : "proto.section.Section.ContentFormula" | |
| }, | |
| 1 : { | |
| name : "formula", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "user_formula", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| } | |
| }); | |
| isAncestor(Contact, { | |
| 0 : { | |
| name : "Content", | |
| /** @type {function (): undefined} */ | |
| va : Categories, | |
| $ : "proto.section.Section.Content" | |
| }, | |
| 1 : { | |
| name : "text", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Image | |
| }, | |
| 2 : { | |
| name : "image", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : LightRaindropAnimation | |
| }, | |
| 9 : { | |
| name : "table_body", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Element | |
| }, | |
| 3 : { | |
| name : "table_column", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Child | |
| }, | |
| 4 : { | |
| name : "person", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Statuses | |
| }, | |
| 5 : { | |
| name : "document", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Bool | |
| }, | |
| 6 : { | |
| name : "textbox", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Parens | |
| }, | |
| 7 : { | |
| name : "highlight", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : ComposerError | |
| }, | |
| 10 : { | |
| name : "action", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : JoinError | |
| }, | |
| 8 : { | |
| name : "formula", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : SrcCell | |
| } | |
| }); | |
| isAncestor(newMatchersClass, { | |
| 0 : { | |
| name : "DocumentData", | |
| $ : "proto.section.DocumentData" | |
| }, | |
| 1 : { | |
| name : "sections", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Categories | |
| } | |
| }); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Certainties = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(Certainties, _super); | |
| self = Certainties.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ca = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ib = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {number} expectedNumberOfNonCommentArgs | |
| * @return {?} | |
| */ | |
| self.mb = function(expectedNumberOfNonCommentArgs) { | |
| return origFindId(this, 1, expectedNumberOfNonCommentArgs); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ud = function() { | |
| return func(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.rb = function() { | |
| return get_mangled(this, 2); | |
| }; | |
| /** | |
| * @param {?} v02 | |
| * @return {?} | |
| */ | |
| self.ca = function(v02) { | |
| return origFindId(this, 2, v02); | |
| }; | |
| /** | |
| * @param {number} walkers | |
| * @return {?} | |
| */ | |
| self.Pd = function(walkers) { | |
| return func(this, 3, walkers); | |
| }; | |
| /** | |
| * @param {number} opt_attributes | |
| * @return {?} | |
| */ | |
| self.Qd = function(opt_attributes) { | |
| return get_mangled(this, 3, opt_attributes); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.hasAttributes = function() { | |
| return ondata(this, 3); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var AssetsPlugin = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(AssetsPlugin, _super); | |
| /** | |
| * @return {?} | |
| */ | |
| AssetsPlugin.prototype.Ca = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| AssetsPlugin.prototype.ib = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {number} expectedNumberOfNonCommentArgs | |
| * @return {?} | |
| */ | |
| AssetsPlugin.prototype.mb = function(expectedNumberOfNonCommentArgs) { | |
| return origFindId(this, 1, expectedNumberOfNonCommentArgs); | |
| }; | |
| /** | |
| * @param {string} value | |
| * @return {?} | |
| */ | |
| AssetsPlugin.prototype.af = function(value) { | |
| return origFindId(this, 2, value); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var myspan = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(myspan, _super); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var NumberTransition = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(NumberTransition, _super); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var baseEl = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(baseEl, _super); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var me = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(me, _super); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Switch = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(Switch, _super); | |
| self = Switch.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ae = function() { | |
| return func(this, 4); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Qt = function() { | |
| return get_mangled(this, 4); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.Oj = function(isXML) { | |
| return origFindId(this, 4, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.lf = function() { | |
| return func(this, 5); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.pc = function() { | |
| return get_mangled(this, 5); | |
| }; | |
| /** | |
| * @param {(number|string)} value | |
| * @return {?} | |
| */ | |
| self.ja = function(value) { | |
| return origFindId(this, 5, value); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Zh = function() { | |
| return ondata(this, 5); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var boundCallback = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(boundCallback, _super); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var rowsFragment = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(rowsFragment, _super); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var program2 = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(program2, _super); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var textPathElement = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(textPathElement, _super); | |
| self = textPathElement.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ic = function() { | |
| return func(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ac = function() { | |
| return get_mangled(this, 2); | |
| }; | |
| /** | |
| * @param {number} isXML | |
| * @return {?} | |
| */ | |
| self.Xb = function(isXML) { | |
| return origFindId(this, 2, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.qc = function() { | |
| return ondata(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Zb = function() { | |
| return isArray(this, 2); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Session = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(Session, _super); | |
| /** | |
| * @return {?} | |
| */ | |
| Session.prototype.lf = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| Session.prototype.pc = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {(number|string)} value | |
| * @return {?} | |
| */ | |
| Session.prototype.ja = function(value) { | |
| return origFindId(this, 1, value); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| Session.prototype.Zh = function() { | |
| return ondata(this, 1); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var linkText = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(linkText, _super); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var dropon = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(dropon, _super); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var restoreScript = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(restoreScript, _super); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var progressValues = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(progressValues, _super); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var newMillis = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(newMillis, _super); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var x = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(x, _super); | |
| self = x.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ae = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Qt = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.Oj = function(isXML) { | |
| return origFindId(this, 1, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Xi = function() { | |
| return get_mangled(this, 2); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.Fn = function(isXML) { | |
| return origFindId(this, 2, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Op = function() { | |
| return get_mangled(this, 3); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.Qv = function(isXML) { | |
| return origFindId(this, 3, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Km = function() { | |
| return func(this, 4); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Kp = function() { | |
| return get_mangled(this, 4); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.Lv = function(isXML) { | |
| return origFindId(this, 4, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.gc = function() { | |
| return func(this, 5); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Bb = function() { | |
| return get_mangled(this, 5); | |
| }; | |
| /** | |
| * @param {boolean} isXML | |
| * @return {?} | |
| */ | |
| self.Wb = function(isXML) { | |
| return origFindId(this, 5, isXML); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var program4 = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(program4, _super); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var newCallback = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(newCallback, _super); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var frag = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(frag, _super); | |
| /** | |
| * @return {?} | |
| */ | |
| frag.prototype.gn = function() { | |
| return deepEqual(this, 1); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var In = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(In, _super); | |
| self = In.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Rf = function() { | |
| return func(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Tb = function() { | |
| return get_mangled(this, 2); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.xb = function(isXML) { | |
| return origFindId(this, 2, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Rk = function() { | |
| return ondata(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.jk = function() { | |
| return isArray(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.gc = function() { | |
| return func(this, 3); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Bb = function() { | |
| return get_mangled(this, 3); | |
| }; | |
| /** | |
| * @param {boolean} isXML | |
| * @return {?} | |
| */ | |
| self.Wb = function(isXML) { | |
| return origFindId(this, 3, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.getName = function() { | |
| return func(this, 4); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Td = function() { | |
| return get_mangled(this, 4); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.Fd = function(isXML) { | |
| return origFindId(this, 4, isXML); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var onceCallback = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(onceCallback, _super); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var YAMLError = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(YAMLError, _super); | |
| /** | |
| * @return {?} | |
| */ | |
| YAMLError.prototype.gn = function() { | |
| return deepEqual(this, 1); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var While = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(While, _super); | |
| /** | |
| * @return {?} | |
| */ | |
| While.prototype.Ca = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| While.prototype.ib = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {number} expectedNumberOfNonCommentArgs | |
| * @return {?} | |
| */ | |
| While.prototype.mb = function(expectedNumberOfNonCommentArgs) { | |
| return origFindId(this, 1, expectedNumberOfNonCommentArgs); | |
| }; | |
| var TEXT_PLAIN = { | |
| XA : 0, | |
| CE : 1, | |
| nB : 2, | |
| pE : 3, | |
| oE : 4 | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var overlayEl = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(overlayEl, _super); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var widget = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(widget, _super); | |
| self = widget.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Da = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Aa = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {string} iterator | |
| * @return {?} | |
| */ | |
| self.Ia = function(iterator) { | |
| return origFindId(this, 1, iterator); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ab = function() { | |
| return isArray(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.getName = function() { | |
| return func(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Td = function() { | |
| return get_mangled(this, 2); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.Fd = function(isXML) { | |
| return origFindId(this, 2, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Nk = function() { | |
| return get_mangled(this, 3); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var where = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(where, _super); | |
| isAncestor(Certainties, { | |
| 0 : { | |
| name : "RTMLElement", | |
| $ : "proto.threads.RTMLElement" | |
| }, | |
| 1 : { | |
| name : "type", | |
| c : 14, | |
| defaultValue : 0, | |
| type : { | |
| ls : 0, | |
| Gw : 1, | |
| $w : 2, | |
| mx : 3, | |
| ax : 4, | |
| IB : 5, | |
| aC : 6, | |
| ZB : 7, | |
| bC : 8, | |
| $B : 12, | |
| pH : 9, | |
| QC : 10, | |
| cC : 11, | |
| QA : 13, | |
| XG : 14 | |
| } | |
| }, | |
| 2 : { | |
| name : "text", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 3 : { | |
| name : "attributes", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : AssetsPlugin | |
| }, | |
| 4 : { | |
| name : "child_elements", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Certainties | |
| } | |
| }); | |
| isAncestor(AssetsPlugin, { | |
| 0 : { | |
| name : "Attribute", | |
| /** @type {function (): undefined} */ | |
| va : Certainties, | |
| $ : "proto.threads.RTMLElement.Attribute" | |
| }, | |
| 1 : { | |
| name : "type", | |
| c : 14, | |
| defaultValue : 0, | |
| type : { | |
| lD : 0, | |
| ID : 1, | |
| tB : 2 | |
| } | |
| }, | |
| 2 : { | |
| name : "value", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| } | |
| }); | |
| isAncestor(myspan, { | |
| 0 : { | |
| name : "RTMLElements", | |
| $ : "proto.threads.RTMLElements" | |
| }, | |
| 1 : { | |
| name : "elements", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Certainties | |
| } | |
| }); | |
| isAncestor(NumberTransition, { | |
| 0 : { | |
| name : "RTMLLimits", | |
| $ : "proto.threads.RTMLLimits" | |
| } | |
| }); | |
| isAncestor(baseEl, { | |
| 0 : { | |
| name : "DiffGroup", | |
| $ : "proto.threads.DiffGroup" | |
| }, | |
| 1 : { | |
| name : "count", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : me | |
| }, | |
| 6 : { | |
| name : "word_count", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : me | |
| }, | |
| 5 : { | |
| name : "diffs", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Switch | |
| }, | |
| 7 : { | |
| name : "primary", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 200 : { | |
| name : "cached_height", | |
| c : 2, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 201 : { | |
| name : "cached_height_for_width", | |
| c : 2, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 202 : { | |
| name : "cached_height_for_theme", | |
| c : 14, | |
| defaultValue : 0, | |
| type : TEXT_PLAIN | |
| }, | |
| 203 : { | |
| name : "cached_collapsed_height", | |
| c : 2, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| } | |
| }); | |
| isAncestor(me, { | |
| 0 : { | |
| name : "Count", | |
| /** @type {function (): undefined} */ | |
| va : baseEl, | |
| $ : "proto.threads.DiffGroup.Count" | |
| }, | |
| 1 : { | |
| name : "insert", | |
| c : 5, | |
| defaultValue : 0, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 2 : { | |
| name : "total", | |
| c : 5, | |
| defaultValue : 0, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 3 : { | |
| name : "delete", | |
| c : 5, | |
| defaultValue : 0, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 4 : { | |
| name : "equal", | |
| c : 5, | |
| defaultValue : 0, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 5 : { | |
| name : "delta", | |
| c : 5, | |
| defaultValue : 0, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| } | |
| }); | |
| isAncestor(Switch, { | |
| 0 : { | |
| name : "Diff", | |
| /** @type {function (): undefined} */ | |
| va : baseEl, | |
| $ : "proto.threads.DiffGroup.Diff" | |
| }, | |
| 1 : { | |
| name : "rtml", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "list", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : boundCallback | |
| }, | |
| 3 : { | |
| name : "diff_class", | |
| c : 14, | |
| defaultValue : 0, | |
| type : { | |
| hH : 0, | |
| QB : 1, | |
| xD : 2, | |
| wD : 3 | |
| } | |
| }, | |
| 4 : { | |
| name : "section_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 5 : { | |
| name : "style", | |
| c : 14, | |
| defaultValue : 0, | |
| type : proto | |
| }, | |
| 6 : { | |
| name : "table_rows", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : rowsFragment | |
| }, | |
| 200 : { | |
| name : "rtml_hash", | |
| c : 3, | |
| defaultValue : 0, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 201 : { | |
| name : "parsed_rtml", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Certainties | |
| } | |
| }); | |
| isAncestor(boundCallback, { | |
| 0 : { | |
| name : "ListItem", | |
| /** @type {function (): undefined} */ | |
| va : Switch, | |
| $ : "proto.threads.DiffGroup.Diff.ListItem" | |
| }, | |
| 1 : { | |
| name : "rtml", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "checked", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 3 : { | |
| name : "parent", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 200 : { | |
| name : "rtml_hash", | |
| c : 3, | |
| defaultValue : 0, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 201 : { | |
| name : "parsed_rtml", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Certainties | |
| } | |
| }); | |
| isAncestor(rowsFragment, { | |
| 0 : { | |
| name : "TableRow", | |
| /** @type {function (): undefined} */ | |
| va : Switch, | |
| $ : "proto.threads.DiffGroup.Diff.TableRow" | |
| }, | |
| 1 : { | |
| name : "headers", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : program2 | |
| }, | |
| 2 : { | |
| name : "cells", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : program2 | |
| }, | |
| 3 : { | |
| name : "rtml", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 200 : { | |
| name : "rtml_hash", | |
| c : 3, | |
| defaultValue : 0, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 201 : { | |
| name : "parsed_rtml", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Certainties | |
| } | |
| }); | |
| isAncestor(program2, { | |
| 0 : { | |
| name : "TableCell", | |
| /** @type {function (): undefined} */ | |
| va : rowsFragment, | |
| $ : "proto.threads.DiffGroup.Diff.TableRow.TableCell" | |
| }, | |
| 1 : { | |
| name : "rtml", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 200 : { | |
| name : "rtml_hash", | |
| c : 3, | |
| defaultValue : 0, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 201 : { | |
| name : "parsed_rtml", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Certainties | |
| } | |
| }); | |
| isAncestor(textPathElement, { | |
| 0 : { | |
| name : "DiffGroups", | |
| $ : "proto.threads.DiffGroups" | |
| }, | |
| 1 : { | |
| name : "diff_groups", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : baseEl | |
| }, | |
| 2 : { | |
| name : "sequence", | |
| c : 3, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| } | |
| }); | |
| isAncestor(Session, { | |
| 0 : { | |
| name : "Paragraph", | |
| $ : "proto.threads.Paragraph" | |
| }, | |
| 1 : { | |
| name : "style", | |
| c : 14, | |
| defaultValue : 1, | |
| type : { | |
| AG : 1, | |
| iF : 2, | |
| DE : 3, | |
| yG : 4 | |
| } | |
| }, | |
| 2 : { | |
| name : "rtml", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| } | |
| }); | |
| isAncestor(linkText, { | |
| 0 : { | |
| name : "LinkData", | |
| $ : "proto.threads.LinkData" | |
| }, | |
| 1 : { | |
| name : "uri", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "facebook_app_link", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : dropon | |
| }, | |
| 3 : { | |
| name : "facebook_app_link_resolved", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| } | |
| }); | |
| isAncestor(dropon, { | |
| 0 : { | |
| name : "FacebookAppLinkData", | |
| /** @type {function (): undefined} */ | |
| va : linkText, | |
| $ : "proto.threads.LinkData.FacebookAppLinkData" | |
| }, | |
| 1 : { | |
| name : "ios_url", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "ios_app_store_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 3 : { | |
| name : "ios_app_name", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 4 : { | |
| name : "android_url", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 5 : { | |
| name : "android_package", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 6 : { | |
| name : "android_app_name", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 7 : { | |
| name : "android_class", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| } | |
| }); | |
| isAncestor(restoreScript, { | |
| 0 : { | |
| name : "ThreadMemberEnum", | |
| $ : "proto.threads.ThreadMemberEnum" | |
| } | |
| }); | |
| isAncestor(progressValues, { | |
| 0 : { | |
| name : "InvitedThreadMemberEnum", | |
| $ : "proto.threads.InvitedThreadMemberEnum" | |
| } | |
| }); | |
| isAncestor(newMillis, { | |
| 0 : { | |
| name : "MessageEnum", | |
| $ : "proto.threads.MessageEnum" | |
| } | |
| }); | |
| isAncestor(x, { | |
| 0 : { | |
| name : "SectionLock", | |
| $ : "proto.threads.SectionLock" | |
| }, | |
| 1 : { | |
| name : "section_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "author_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 3 : { | |
| name : "locked_lease", | |
| c : 3, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 4 : { | |
| name : "author_session", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 5 : { | |
| name : "deleted", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| } | |
| }); | |
| isAncestor(program4, { | |
| 0 : { | |
| name : "SectionLocks", | |
| $ : "proto.threads.SectionLocks" | |
| }, | |
| 1 : { | |
| name : "locks", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : x | |
| } | |
| }); | |
| isAncestor(newCallback, { | |
| 0 : { | |
| name : "AnnotationMetadata", | |
| $ : "proto.threads.AnnotationMetadata" | |
| }, | |
| 1 : { | |
| name : "annotation_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "message_count", | |
| c : 5, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| } | |
| }); | |
| isAncestor(frag, { | |
| 0 : { | |
| name : "AnnotationMetadatas", | |
| $ : "proto.threads.AnnotationMetadatas" | |
| }, | |
| 1 : { | |
| name : "metadatas", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : newCallback | |
| } | |
| }); | |
| isAncestor(In, { | |
| 0 : { | |
| name : "TableMetadata", | |
| $ : "proto.threads.TableMetadata" | |
| }, | |
| 1 : { | |
| name : "table_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "position", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 3 : { | |
| name : "deleted", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 4 : { | |
| name : "name", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 5 : { | |
| name : "stats", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : onceCallback | |
| }, | |
| 6 : { | |
| name : "referenced_table_ids", | |
| aa : true, | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| } | |
| }); | |
| isAncestor(onceCallback, { | |
| 0 : { | |
| name : "Stats", | |
| /** @type {function (): undefined} */ | |
| va : In, | |
| $ : "proto.threads.TableMetadata.Stats" | |
| }, | |
| 1 : { | |
| name : "num_live_sections", | |
| c : 3, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 2 : { | |
| name : "num_deleted_sections", | |
| c : 3, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 3 : { | |
| name : "num_live_formulas", | |
| c : 3, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| } | |
| }); | |
| isAncestor(YAMLError, { | |
| 0 : { | |
| name : "TableMetadatas", | |
| $ : "proto.threads.TableMetadatas" | |
| }, | |
| 1 : { | |
| name : "metadatas", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : In | |
| } | |
| }); | |
| isAncestor(While, { | |
| 0 : { | |
| name : "Theme", | |
| $ : "proto.threads.Theme" | |
| }, | |
| 1 : { | |
| name : "type", | |
| c : 14, | |
| defaultValue : 0, | |
| type : TEXT_PLAIN | |
| } | |
| }); | |
| isAncestor(overlayEl, { | |
| 0 : { | |
| name : "Mentions", | |
| $ : "proto.threads.Mentions" | |
| }, | |
| 1 : { | |
| name : "user_ids", | |
| aa : true, | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "document_ids", | |
| aa : true, | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 3 : { | |
| name : "thread_ids", | |
| aa : true, | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 4 : { | |
| name : "names", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : widget | |
| } | |
| }); | |
| isAncestor(widget, { | |
| 0 : { | |
| name : "Name", | |
| /** @type {function (): undefined} */ | |
| va : overlayEl, | |
| $ : "proto.threads.Mentions.Name" | |
| }, | |
| 1 : { | |
| name : "id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "name", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 3 : { | |
| name : "secret_path", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| } | |
| }); | |
| isAncestor(where, { | |
| 0 : { | |
| name : "IntegrationEnum", | |
| $ : "proto.threads.IntegrationEnum" | |
| } | |
| }); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var report = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(report, _super); | |
| self = report.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ca = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ib = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {number} expectedNumberOfNonCommentArgs | |
| * @return {?} | |
| */ | |
| self.mb = function(expectedNumberOfNonCommentArgs) { | |
| return origFindId(this, 1, expectedNumberOfNonCommentArgs); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ud = function() { | |
| return func(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.rb = function() { | |
| return get_mangled(this, 2); | |
| }; | |
| /** | |
| * @param {?} v02 | |
| * @return {?} | |
| */ | |
| self.ca = function(v02) { | |
| return origFindId(this, 2, v02); | |
| }; | |
| var keyType = { | |
| jD : 0, | |
| EA : 1 | |
| }; | |
| isAncestor(report, { | |
| 0 : { | |
| name : "Button", | |
| $ : "proto.user_requests.Button" | |
| }, | |
| 1 : { | |
| name : "type", | |
| c : 14, | |
| defaultValue : 0, | |
| type : keyType | |
| }, | |
| 2 : { | |
| name : "text", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 3 : { | |
| name : "completed", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| } | |
| }); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Model = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(Model, _super); | |
| /** | |
| * @return {?} | |
| */ | |
| Model.prototype.Ae = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| Model.prototype.Oj = function(isXML) { | |
| return origFindId(this, 1, isXML); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var LobbyController = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(LobbyController, _super); | |
| self = LobbyController.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ae = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.Oj = function(isXML) { | |
| return origFindId(this, 1, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Rh = function() { | |
| return func(this, 2); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.Nn = function(isXML) { | |
| return origFindId(this, 2, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Mk = function() { | |
| return func(this, 4); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Hk = function() { | |
| return func(this, 5); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var NPC = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(NPC, _super); | |
| self = NPC.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Om = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @param {number} opt_attributes | |
| * @return {?} | |
| */ | |
| self.Fl = function(opt_attributes) { | |
| return origFindId(this, 1, opt_attributes); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Da = function() { | |
| return func(this, 2); | |
| }; | |
| /** | |
| * @param {string} iterator | |
| * @return {?} | |
| */ | |
| self.Ia = function(iterator) { | |
| return origFindId(this, 2, iterator); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.St = function() { | |
| return func(this, 21); | |
| }; | |
| /** @type {number} */ | |
| var failuresLink = 11; | |
| /** @type {number} */ | |
| var progressContexts = 12; | |
| var moduleDefs = { | |
| hC : 10, | |
| hE : failuresLink, | |
| gE : progressContexts, | |
| qG : 15, | |
| pG : 16, | |
| xG : 17, | |
| sG : 18, | |
| mG : 19, | |
| nG : 20, | |
| kx : 21, | |
| uG : 22, | |
| oG : 23, | |
| aB : 24, | |
| Ew : 25, | |
| $A : 26, | |
| kE : 13, | |
| gG : 14, | |
| cH : 27 | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Bullet = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(Bullet, _super); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var attrName = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(attrName, _super); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Cell = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(Cell, _super); | |
| /** | |
| * @return {?} | |
| */ | |
| Cell.prototype.Da = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @param {string} iterator | |
| * @return {?} | |
| */ | |
| Cell.prototype.Ia = function(iterator) { | |
| return origFindId(this, 1, iterator); | |
| }; | |
| /** | |
| * @param {?} dataAndEvents | |
| * @param {?} owner | |
| * @return {undefined} | |
| */ | |
| var hasData = function(dataAndEvents, owner) { | |
| _findBelongsTo(dataAndEvents, 4, owner); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Control = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(Control, _super); | |
| /** | |
| * @param {?} owner | |
| * @return {?} | |
| */ | |
| Control.prototype.dk = function(owner) { | |
| return _findBelongsTo(this, 3, owner); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| Control.prototype.Rh = function() { | |
| return func(this, 5); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| Control.prototype.Nn = function(isXML) { | |
| return origFindId(this, 5, isXML); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Document = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(Document, _super); | |
| /** | |
| * @return {?} | |
| */ | |
| Document.prototype.Ft = function() { | |
| return func(this, 2); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| Document.prototype.Nv = function(isXML) { | |
| return origFindId(this, 2, isXML); | |
| }; | |
| /** | |
| * @param {?} owner | |
| * @return {?} | |
| */ | |
| Document.prototype.dk = function(owner) { | |
| return _findBelongsTo(this, 3, owner); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Character = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(Character, _super); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Comment = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(Comment, _super); | |
| /** | |
| * @return {?} | |
| */ | |
| Comment.prototype.Ud = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @param {?} v02 | |
| * @return {?} | |
| */ | |
| Comment.prototype.ca = function(v02) { | |
| return origFindId(this, 1, v02); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var GameEvent = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(GameEvent, _super); | |
| /** | |
| * @param {?} owner | |
| * @return {?} | |
| */ | |
| GameEvent.prototype.dk = function(owner) { | |
| return _findBelongsTo(this, 1, owner); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var MappedDepArray = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(MappedDepArray, _super); | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| MappedDepArray.prototype.Vv = function(isXML) { | |
| return origFindId(this, 1, isXML); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Existence = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(Existence, _super); | |
| /** | |
| * @return {?} | |
| */ | |
| Existence.prototype.Om = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @param {number} opt_attributes | |
| * @return {?} | |
| */ | |
| Existence.prototype.Fl = function(opt_attributes) { | |
| return origFindId(this, 1, opt_attributes); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| Existence.prototype.St = function() { | |
| return func(this, 12); | |
| }; | |
| var DOT_CALL_NO_PARENS = { | |
| cG : 10, | |
| OF : 11, | |
| kx : 12, | |
| rG : 13, | |
| tG : 14, | |
| wG : 15, | |
| vG : 16, | |
| Ew : 17, | |
| ZA : 18, | |
| MC : 19, | |
| NC : 20 | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Obj = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(Obj, _super); | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| Obj.prototype.Tv = function(isXML) { | |
| return origFindId(this, 9, isXML); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Ground = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(Ground, _super); | |
| /** | |
| * @return {?} | |
| */ | |
| Ground.prototype.Ph = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Code = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(Code, _super); | |
| /** | |
| * @return {?} | |
| */ | |
| Code.prototype.Ph = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| Code.prototype.Ft = function() { | |
| return func(this, 2); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| Code.prototype.Nv = function(isXML) { | |
| return origFindId(this, 2, isXML); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var container = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(container, _super); | |
| /** | |
| * @return {?} | |
| */ | |
| container.prototype.Ph = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var HMAC_SHA256 = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(HMAC_SHA256, _super); | |
| /** | |
| * @return {?} | |
| */ | |
| HMAC_SHA256.prototype.Ph = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Literal = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(Literal, _super); | |
| /** | |
| * @return {?} | |
| */ | |
| Literal.prototype.Rh = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| Literal.prototype.Nn = function(isXML) { | |
| return origFindId(this, 1, isXML); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var k = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(k, _super); | |
| /** | |
| * @return {?} | |
| */ | |
| k.prototype.Ca = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @param {number} expectedNumberOfNonCommentArgs | |
| * @return {?} | |
| */ | |
| k.prototype.mb = function(expectedNumberOfNonCommentArgs) { | |
| return origFindId(this, 1, expectedNumberOfNonCommentArgs); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| k.prototype.Da = function() { | |
| return func(this, 2); | |
| }; | |
| /** | |
| * @param {string} iterator | |
| * @return {?} | |
| */ | |
| k.prototype.Ia = function(iterator) { | |
| return origFindId(this, 2, iterator); | |
| }; | |
| isAncestor(Model, { | |
| 0 : { | |
| name : "AxisReference", | |
| $ : "proto.bridge.AxisReference" | |
| }, | |
| 1 : { | |
| name : "section_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "section_position", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 3 : { | |
| name : "absolute", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| } | |
| }); | |
| isAncestor(LobbyController, { | |
| 0 : { | |
| name : "CellReference", | |
| $ : "proto.bridge.CellReference" | |
| }, | |
| 1 : { | |
| name : "section_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "spreadsheet_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 3 : { | |
| name : "section_type", | |
| c : 14, | |
| defaultValue : expectedNumberOfNonCommentArgs, | |
| type : suiteView | |
| }, | |
| 4 : { | |
| name : "row", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Model | |
| }, | |
| 5 : { | |
| name : "col", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Model | |
| }, | |
| 6 : { | |
| name : "row_label", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 7 : { | |
| name : "col_label", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| } | |
| }); | |
| isAncestor(NPC, { | |
| 0 : { | |
| name : "FromJs", | |
| $ : "proto.bridge.FromJs" | |
| }, | |
| 1 : { | |
| name : "op", | |
| c : 14, | |
| defaultValue : 10, | |
| type : moduleDefs | |
| }, | |
| 2 : { | |
| name : "id", | |
| c : 5, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 13 : { | |
| name : "local_history_state_change", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Bullet | |
| }, | |
| 14 : { | |
| name : "show_settings_menu", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : attrName | |
| }, | |
| 18 : { | |
| name : "spreadsheet_focus_did_change", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Control | |
| }, | |
| 19 : { | |
| name : "spreadsheet_cell_editor_start", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Document | |
| }, | |
| 21 : { | |
| name : "spreadsheet_scroll_to_cell", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Character | |
| }, | |
| 22 : { | |
| name : "spreadsheet_insert_text", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Comment | |
| }, | |
| 23 : { | |
| name : "spreadsheet_commands_did_change", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : GameEvent | |
| }, | |
| 24 : { | |
| name : "autocomplete_show_results", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : MappedDepArray | |
| } | |
| }); | |
| isAncestor(Bullet, { | |
| 0 : { | |
| name : "LocalHistoryStateChange", | |
| /** @type {function (): undefined} */ | |
| va : NPC, | |
| $ : "proto.bridge.FromJs.LocalHistoryStateChange" | |
| }, | |
| 1 : { | |
| name : "can_undo", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 2 : { | |
| name : "can_redo", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| } | |
| }); | |
| isAncestor(attrName, { | |
| 0 : { | |
| name : "ShowSettingsMenu", | |
| /** @type {function (): undefined} */ | |
| va : NPC, | |
| $ : "proto.bridge.FromJs.ShowSettingsMenu" | |
| }, | |
| 1 : { | |
| name : "anchor_x", | |
| c : 5, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 2 : { | |
| name : "anchor_y", | |
| c : 5, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| } | |
| }); | |
| isAncestor(Cell, { | |
| 0 : { | |
| name : "UiCommand", | |
| /** @type {function (): undefined} */ | |
| va : NPC, | |
| $ : "proto.bridge.FromJs.UiCommand" | |
| }, | |
| 1 : { | |
| name : "id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "label", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 3 : { | |
| name : "flags", | |
| c : 5, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 4 : { | |
| name : "sub_commands", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Cell | |
| } | |
| }); | |
| isAncestor(Control, { | |
| 0 : { | |
| name : "SpreadsheetFocusDidChange", | |
| /** @type {function (): undefined} */ | |
| va : NPC, | |
| $ : "proto.bridge.FromJs.SpreadsheetFocusDidChange" | |
| }, | |
| 1 : { | |
| name : "focus_cell_reference", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : LobbyController | |
| }, | |
| 2 : { | |
| name : "focus_cell_value", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 3 : { | |
| name : "commands", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Cell | |
| }, | |
| 4 : { | |
| name : "in_ghost_content", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 5 : { | |
| name : "spreadsheet_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| } | |
| }); | |
| isAncestor(Document, { | |
| 0 : { | |
| name : "SpreadsheetCellEditorStart", | |
| /** @type {function (): undefined} */ | |
| va : NPC, | |
| $ : "proto.bridge.FromJs.SpreadsheetCellEditorStart" | |
| }, | |
| 1 : { | |
| name : "edit_cell_reference", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : LobbyController | |
| }, | |
| 2 : { | |
| name : "edit_cell_value", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 3 : { | |
| name : "commands", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Cell | |
| } | |
| }); | |
| isAncestor(Character, { | |
| 0 : { | |
| name : "SpreadsheetScrollToCell", | |
| /** @type {function (): undefined} */ | |
| va : NPC, | |
| $ : "proto.bridge.FromJs.SpreadsheetScrollToCell" | |
| }, | |
| 3 : { | |
| name : "cell_top", | |
| c : 2, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 4 : { | |
| name : "cell_bottom", | |
| c : 2, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| } | |
| }); | |
| isAncestor(Comment, { | |
| 0 : { | |
| name : "SpreadsheetInsertText", | |
| /** @type {function (): undefined} */ | |
| va : NPC, | |
| $ : "proto.bridge.FromJs.SpreadsheetInsertText" | |
| }, | |
| 1 : { | |
| name : "text", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| } | |
| }); | |
| isAncestor(GameEvent, { | |
| 0 : { | |
| name : "SpreadsheetCommandsDidChange", | |
| /** @type {function (): undefined} */ | |
| va : NPC, | |
| $ : "proto.bridge.FromJs.SpreadsheetCommandsDidChange" | |
| }, | |
| 1 : { | |
| name : "commands", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Cell | |
| } | |
| }); | |
| isAncestor(MappedDepArray, { | |
| 0 : { | |
| name : "AutocompleteShowResults", | |
| /** @type {function (): undefined} */ | |
| va : NPC, | |
| $ : "proto.bridge.FromJs.AutocompleteShowResults" | |
| }, | |
| 1 : { | |
| name : "token", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "results", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : ValidationError | |
| } | |
| }); | |
| isAncestor(Existence, { | |
| 0 : { | |
| name : "ToJs", | |
| $ : "proto.bridge.ToJs" | |
| }, | |
| 1 : { | |
| name : "op", | |
| c : 14, | |
| defaultValue : 10, | |
| type : DOT_CALL_NO_PARENS | |
| }, | |
| 10 : { | |
| name : "set_environment", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Obj | |
| }, | |
| 12 : { | |
| name : "spreadsheet_scroll_to_cell", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Ground | |
| }, | |
| 13 : { | |
| name : "spreadsheet_edit_cell_value", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Code | |
| }, | |
| 14 : { | |
| name : "spreadsheet_handle_command", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : container | |
| }, | |
| 15 : { | |
| name : "spreadsheet_move_cell", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : HMAC_SHA256 | |
| }, | |
| 16 : { | |
| name : "spreadsheet_materialize_ghost_content", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Literal | |
| }, | |
| 18 : { | |
| name : "autocomplete_did_select_result", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : k | |
| } | |
| }); | |
| isAncestor(Obj, { | |
| 0 : { | |
| name : "SetEnvironment", | |
| /** @type {function (): undefined} */ | |
| va : Existence, | |
| $ : "proto.bridge.ToJs.SetEnvironment" | |
| }, | |
| 1 : { | |
| name : "server_web_prefix", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "server_resource_prefix", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 3 : { | |
| name : "cdn_url", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 4 : { | |
| name : "bundle_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 5 : { | |
| name : "build", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 6 : { | |
| name : "is_tablet_override", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 7 : { | |
| name : "screen_size_override", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 8 : { | |
| name : "default_android_keyboard_package", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 9 : { | |
| name : "session_token", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 10 : { | |
| name : "page_y_offset_adjustment", | |
| c : 2, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 11 : { | |
| name : "editor_index", | |
| c : 5, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| } | |
| }); | |
| isAncestor(Ground, { | |
| 0 : { | |
| name : "SpreadsheetScrollToCell", | |
| /** @type {function (): undefined} */ | |
| va : Existence, | |
| $ : "proto.bridge.ToJs.SpreadsheetScrollToCell" | |
| }, | |
| 1 : { | |
| name : "cell_ref", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : LobbyController | |
| } | |
| }); | |
| isAncestor(Code, { | |
| 0 : { | |
| name : "SpreadsheetEditCellValue", | |
| /** @type {function (): undefined} */ | |
| va : Existence, | |
| $ : "proto.bridge.ToJs.SpreadsheetEditCellValue" | |
| }, | |
| 1 : { | |
| name : "cell_ref", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : LobbyController | |
| }, | |
| 2 : { | |
| name : "edit_cell_value", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 3 : { | |
| name : "is_editing", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| } | |
| }); | |
| isAncestor(container, { | |
| 0 : { | |
| name : "SpreadsheetHandleCommand", | |
| /** @type {function (): undefined} */ | |
| va : Existence, | |
| $ : "proto.bridge.ToJs.SpreadsheetHandleCommand" | |
| }, | |
| 1 : { | |
| name : "cell_ref", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : LobbyController | |
| }, | |
| 2 : { | |
| name : "command", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 3 : { | |
| name : "sub_command", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| } | |
| }); | |
| isAncestor(HMAC_SHA256, { | |
| 0 : { | |
| name : "SpreadsheetMoveCell", | |
| /** @type {function (): undefined} */ | |
| va : Existence, | |
| $ : "proto.bridge.ToJs.SpreadsheetMoveCell" | |
| }, | |
| 1 : { | |
| name : "cell_ref", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : LobbyController | |
| }, | |
| 2 : { | |
| name : "row_delta", | |
| c : 5, | |
| defaultValue : 0, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 3 : { | |
| name : "col_delta", | |
| c : 5, | |
| defaultValue : 0, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| } | |
| }); | |
| isAncestor(Literal, { | |
| 0 : { | |
| name : "SpreadsheetMaterializeGhostContent", | |
| /** @type {function (): undefined} */ | |
| va : Existence, | |
| $ : "proto.bridge.ToJs.SpreadsheetMaterializeGhostContent" | |
| }, | |
| 1 : { | |
| name : "spreadsheet_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| } | |
| }); | |
| isAncestor(k, { | |
| 0 : { | |
| name : "AutocompleteDidSelectResult", | |
| /** @type {function (): undefined} */ | |
| va : Existence, | |
| $ : "proto.bridge.ToJs.AutocompleteDidSelectResult" | |
| }, | |
| 1 : { | |
| name : "type", | |
| c : 14, | |
| defaultValue : 1, | |
| type : eventName | |
| }, | |
| 2 : { | |
| name : "id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| } | |
| }); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var frame = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(frame, _super); | |
| var mimeString = { | |
| ME : 0, | |
| bx : 1, | |
| sE : 2 | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var typePattern = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(typePattern, _super); | |
| var otherEntity = { | |
| jF : 1, | |
| rB : 2, | |
| vH : 3, | |
| bx : 4, | |
| UF : 5, | |
| sB : 6, | |
| cB : 7, | |
| dD : 8 | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var iframe = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(iframe, _super); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var textNode = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(textNode, _super); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var responseFrame = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(responseFrame, _super); | |
| self = responseFrame.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Da = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Aa = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {string} iterator | |
| * @return {?} | |
| */ | |
| self.Ia = function(iterator) { | |
| return origFindId(this, 1, iterator); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ab = function() { | |
| return isArray(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ic = function() { | |
| return func(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ac = function() { | |
| return get_mangled(this, 2); | |
| }; | |
| /** | |
| * @param {number} isXML | |
| * @return {?} | |
| */ | |
| self.Xb = function(isXML) { | |
| return origFindId(this, 2, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.qc = function() { | |
| return ondata(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Zb = function() { | |
| return isArray(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.gc = function() { | |
| return func(this, 3); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Bb = function() { | |
| return get_mangled(this, 3); | |
| }; | |
| /** | |
| * @param {boolean} isXML | |
| * @return {?} | |
| */ | |
| self.Wb = function(isXML) { | |
| return origFindId(this, 3, isXML); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var that = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(that, _super); | |
| self = that.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Da = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Aa = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {string} iterator | |
| * @return {?} | |
| */ | |
| self.Ia = function(iterator) { | |
| return origFindId(this, 1, iterator); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ab = function() { | |
| return isArray(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ca = function() { | |
| return func(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ib = function() { | |
| return get_mangled(this, 2); | |
| }; | |
| /** | |
| * @param {number} expectedNumberOfNonCommentArgs | |
| * @return {?} | |
| */ | |
| self.mb = function(expectedNumberOfNonCommentArgs) { | |
| return origFindId(this, 2, expectedNumberOfNonCommentArgs); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Throw = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(Throw, _super); | |
| /** | |
| * @return {?} | |
| */ | |
| Throw.prototype.Da = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| Throw.prototype.Aa = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {string} iterator | |
| * @return {?} | |
| */ | |
| Throw.prototype.Ia = function(iterator) { | |
| return origFindId(this, 1, iterator); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| Throw.prototype.Ab = function() { | |
| return isArray(this, 1); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var aList = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(aList, _super); | |
| self = aList.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Da = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Aa = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {string} iterator | |
| * @return {?} | |
| */ | |
| self.Ia = function(iterator) { | |
| return origFindId(this, 1, iterator); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ab = function() { | |
| return isArray(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ic = function() { | |
| return func(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ac = function() { | |
| return get_mangled(this, 2); | |
| }; | |
| /** | |
| * @param {number} isXML | |
| * @return {?} | |
| */ | |
| self.Xb = function(isXML) { | |
| return origFindId(this, 2, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.qc = function() { | |
| return ondata(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Zb = function() { | |
| return isArray(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.gc = function() { | |
| return func(this, 3); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Bb = function() { | |
| return get_mangled(this, 3); | |
| }; | |
| /** | |
| * @param {boolean} isXML | |
| * @return {?} | |
| */ | |
| self.Wb = function(isXML) { | |
| return origFindId(this, 3, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.md = function() { | |
| return func(this, 100); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.jd = function() { | |
| return isArray(this, 100); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Xc = function() { | |
| return get_mangled(this, 101); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Id = function() { | |
| return isArray(this, 101); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Nc = function() { | |
| return get_mangled(this, 105); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.yd = function() { | |
| return member(this, 4); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.hd = function() { | |
| return isArray(this, 4); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Yd = function() { | |
| return member(this, 5); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.xd = function() { | |
| return isArray(this, 5); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.getName = function() { | |
| return func(this, 6); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Td = function() { | |
| return get_mangled(this, 6); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.Fd = function(isXML) { | |
| return origFindId(this, 6, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Qf = function() { | |
| return func(this, 8); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.yr = function(isXML) { | |
| return origFindId(this, 8, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Wi = function() { | |
| return func(this, 9); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.vr = function(isXML) { | |
| return origFindId(this, 9, isXML); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var w = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(w, _super); | |
| self = w.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Da = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Aa = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {string} iterator | |
| * @return {?} | |
| */ | |
| self.Ia = function(iterator) { | |
| return origFindId(this, 1, iterator); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ab = function() { | |
| return isArray(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ic = function() { | |
| return func(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ac = function() { | |
| return get_mangled(this, 2); | |
| }; | |
| /** | |
| * @param {number} isXML | |
| * @return {?} | |
| */ | |
| self.Xb = function(isXML) { | |
| return origFindId(this, 2, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.qc = function() { | |
| return ondata(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Zb = function() { | |
| return isArray(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.gc = function() { | |
| return func(this, 3); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Bb = function() { | |
| return get_mangled(this, 3); | |
| }; | |
| /** | |
| * @param {boolean} isXML | |
| * @return {?} | |
| */ | |
| self.Wb = function(isXML) { | |
| return origFindId(this, 3, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.md = function() { | |
| return func(this, 100); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.jd = function() { | |
| return isArray(this, 100); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Xc = function() { | |
| return get_mangled(this, 101); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Id = function() { | |
| return isArray(this, 101); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Nc = function() { | |
| return get_mangled(this, 105); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.yd = function() { | |
| return member(this, 4); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.hd = function() { | |
| return isArray(this, 4); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Yd = function() { | |
| return member(this, 5); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.xd = function() { | |
| return isArray(this, 5); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Be = function() { | |
| return get_mangled(this, 6); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.pd = function(isXML) { | |
| return origFindId(this, 6, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.De = function() { | |
| return ondata(this, 6); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Me = function() { | |
| return isArray(this, 6); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Vi = function() { | |
| return func(this, 7); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.ur = function(isXML) { | |
| return origFindId(this, 7, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.je = function() { | |
| return func(this, 8); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Kg = function() { | |
| return get_mangled(this, 8); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.si = function(isXML) { | |
| return origFindId(this, 8, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ah = function() { | |
| return isArray(this, 8); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var related = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(related, _super); | |
| self = related.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.getName = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Td = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.Fd = function(isXML) { | |
| return origFindId(this, 1, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Da = function() { | |
| return func(this, 5); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Aa = function() { | |
| return get_mangled(this, 5); | |
| }; | |
| /** | |
| * @param {string} iterator | |
| * @return {?} | |
| */ | |
| self.Ia = function(iterator) { | |
| return origFindId(this, 5, iterator); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ab = function() { | |
| return isArray(this, 5); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var editor = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(editor, _super); | |
| self = editor.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Da = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Aa = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {string} iterator | |
| * @return {?} | |
| */ | |
| self.Ia = function(iterator) { | |
| return origFindId(this, 1, iterator); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ab = function() { | |
| return isArray(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ic = function() { | |
| return func(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ac = function() { | |
| return get_mangled(this, 2); | |
| }; | |
| /** | |
| * @param {number} isXML | |
| * @return {?} | |
| */ | |
| self.Xb = function(isXML) { | |
| return origFindId(this, 2, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.qc = function() { | |
| return ondata(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Zb = function() { | |
| return isArray(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.gc = function() { | |
| return func(this, 3); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Bb = function() { | |
| return get_mangled(this, 3); | |
| }; | |
| /** | |
| * @param {boolean} isXML | |
| * @return {?} | |
| */ | |
| self.Wb = function(isXML) { | |
| return origFindId(this, 3, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.md = function() { | |
| return func(this, 100); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.jd = function() { | |
| return isArray(this, 100); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Xc = function() { | |
| return get_mangled(this, 101); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Id = function() { | |
| return isArray(this, 101); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Nc = function() { | |
| return get_mangled(this, 105); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.yd = function() { | |
| return member(this, 4); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.hd = function() { | |
| return isArray(this, 4); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Yd = function() { | |
| return member(this, 5); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.xd = function() { | |
| return isArray(this, 5); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var GameObject = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(GameObject, _super); | |
| self = GameObject.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Da = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Aa = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {string} iterator | |
| * @return {?} | |
| */ | |
| self.Ia = function(iterator) { | |
| return origFindId(this, 1, iterator); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ab = function() { | |
| return isArray(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ic = function() { | |
| return func(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ac = function() { | |
| return get_mangled(this, 2); | |
| }; | |
| /** | |
| * @param {number} isXML | |
| * @return {?} | |
| */ | |
| self.Xb = function(isXML) { | |
| return origFindId(this, 2, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.qc = function() { | |
| return ondata(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Zb = function() { | |
| return isArray(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.gc = function() { | |
| return func(this, 3); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Bb = function() { | |
| return get_mangled(this, 3); | |
| }; | |
| /** | |
| * @param {boolean} isXML | |
| * @return {?} | |
| */ | |
| self.Wb = function(isXML) { | |
| return origFindId(this, 3, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.md = function() { | |
| return func(this, 100); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.jd = function() { | |
| return isArray(this, 100); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Xc = function() { | |
| return get_mangled(this, 101); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Id = function() { | |
| return isArray(this, 101); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Nc = function() { | |
| return get_mangled(this, 105); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Nk = function() { | |
| return get_mangled(this, 106); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.yd = function() { | |
| return member(this, 4); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.hd = function() { | |
| return isArray(this, 4); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Yd = function() { | |
| return member(this, 5); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.xd = function() { | |
| return isArray(this, 5); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Lg = function() { | |
| return func(this, 6); | |
| }; | |
| /** | |
| * @param {(Error|string)} isXML | |
| * @return {?} | |
| */ | |
| self.ti = function(isXML) { | |
| return origFindId(this, 6, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Xi = function() { | |
| return get_mangled(this, 7); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.Fn = function(isXML) { | |
| return origFindId(this, 7, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ik = function() { | |
| return func(this, 10); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var rt = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(rt, _super); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var refNode = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(refNode, _super); | |
| self = refNode.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Da = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Aa = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {string} iterator | |
| * @return {?} | |
| */ | |
| self.Ia = function(iterator) { | |
| return origFindId(this, 1, iterator); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ab = function() { | |
| return isArray(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ic = function() { | |
| return func(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ac = function() { | |
| return get_mangled(this, 2); | |
| }; | |
| /** | |
| * @param {number} isXML | |
| * @return {?} | |
| */ | |
| self.Xb = function(isXML) { | |
| return origFindId(this, 2, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.qc = function() { | |
| return ondata(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Zb = function() { | |
| return isArray(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.gc = function() { | |
| return func(this, 3); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Bb = function() { | |
| return get_mangled(this, 3); | |
| }; | |
| /** | |
| * @param {boolean} isXML | |
| * @return {?} | |
| */ | |
| self.Wb = function(isXML) { | |
| return origFindId(this, 3, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.md = function() { | |
| return func(this, 100); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.jd = function() { | |
| return isArray(this, 100); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Xc = function() { | |
| return get_mangled(this, 101); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Id = function() { | |
| return isArray(this, 101); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Nc = function() { | |
| return get_mangled(this, 105); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.yd = function() { | |
| return member(this, 4); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.hd = function() { | |
| return isArray(this, 4); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Yd = function() { | |
| return member(this, 5); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.xd = function() { | |
| return isArray(this, 5); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.je = function() { | |
| return func(this, 6); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Kg = function() { | |
| return get_mangled(this, 6); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.si = function(isXML) { | |
| return origFindId(this, 6, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ah = function() { | |
| return isArray(this, 6); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Be = function() { | |
| return get_mangled(this, 7); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.pd = function(isXML) { | |
| return origFindId(this, 7, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.De = function() { | |
| return ondata(this, 7); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Me = function() { | |
| return isArray(this, 7); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var responseInfoFrame = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(responseInfoFrame, _super); | |
| self = responseInfoFrame.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Da = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Aa = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {string} iterator | |
| * @return {?} | |
| */ | |
| self.Ia = function(iterator) { | |
| return origFindId(this, 1, iterator); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ab = function() { | |
| return isArray(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ic = function() { | |
| return func(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ac = function() { | |
| return get_mangled(this, 2); | |
| }; | |
| /** | |
| * @param {number} isXML | |
| * @return {?} | |
| */ | |
| self.Xb = function(isXML) { | |
| return origFindId(this, 2, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.qc = function() { | |
| return ondata(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Zb = function() { | |
| return isArray(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.gc = function() { | |
| return func(this, 3); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Bb = function() { | |
| return get_mangled(this, 3); | |
| }; | |
| /** | |
| * @param {boolean} isXML | |
| * @return {?} | |
| */ | |
| self.Wb = function(isXML) { | |
| return origFindId(this, 3, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.md = function() { | |
| return func(this, 100); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.jd = function() { | |
| return isArray(this, 100); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Xc = function() { | |
| return get_mangled(this, 101); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Id = function() { | |
| return isArray(this, 101); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Nc = function() { | |
| return get_mangled(this, 105); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.yd = function() { | |
| return member(this, 4); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.hd = function() { | |
| return isArray(this, 4); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Yd = function() { | |
| return member(this, 5); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.xd = function() { | |
| return isArray(this, 5); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.je = function() { | |
| return func(this, 6); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Kg = function() { | |
| return get_mangled(this, 6); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.si = function(isXML) { | |
| return origFindId(this, 6, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ah = function() { | |
| return isArray(this, 6); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.getName = function() { | |
| return func(this, 7); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Td = function() { | |
| return get_mangled(this, 7); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.Fd = function(isXML) { | |
| return origFindId(this, 7, isXML); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Splat = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(Splat, _super); | |
| self = Splat.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Da = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Aa = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {string} iterator | |
| * @return {?} | |
| */ | |
| self.Ia = function(iterator) { | |
| return origFindId(this, 1, iterator); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ab = function() { | |
| return isArray(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ic = function() { | |
| return func(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ac = function() { | |
| return get_mangled(this, 2); | |
| }; | |
| /** | |
| * @param {number} isXML | |
| * @return {?} | |
| */ | |
| self.Xb = function(isXML) { | |
| return origFindId(this, 2, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.qc = function() { | |
| return ondata(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Zb = function() { | |
| return isArray(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.gc = function() { | |
| return func(this, 3); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Bb = function() { | |
| return get_mangled(this, 3); | |
| }; | |
| /** | |
| * @param {boolean} isXML | |
| * @return {?} | |
| */ | |
| self.Wb = function(isXML) { | |
| return origFindId(this, 3, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.md = function() { | |
| return func(this, 100); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.jd = function() { | |
| return isArray(this, 100); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Xc = function() { | |
| return get_mangled(this, 101); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Id = function() { | |
| return isArray(this, 101); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Nc = function() { | |
| return get_mangled(this, 105); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.yd = function() { | |
| return member(this, 4); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.hd = function() { | |
| return isArray(this, 4); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Yd = function() { | |
| return member(this, 5); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.xd = function() { | |
| return isArray(this, 5); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ca = function() { | |
| return func(this, 6); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ib = function() { | |
| return get_mangled(this, 6); | |
| }; | |
| /** | |
| * @param {number} expectedNumberOfNonCommentArgs | |
| * @return {?} | |
| */ | |
| self.mb = function(expectedNumberOfNonCommentArgs) { | |
| return origFindId(this, 6, expectedNumberOfNonCommentArgs); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.je = function() { | |
| return func(this, 8); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Kg = function() { | |
| return get_mangled(this, 8); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.si = function(isXML) { | |
| return origFindId(this, 8, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ah = function() { | |
| return isArray(this, 8); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Xi = function() { | |
| return get_mangled(this, 9); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.Fn = function(isXML) { | |
| return origFindId(this, 9, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ud = function() { | |
| return func(this, 13); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.rb = function() { | |
| return get_mangled(this, 13); | |
| }; | |
| /** | |
| * @param {?} v02 | |
| * @return {?} | |
| */ | |
| self.ca = function(v02) { | |
| return origFindId(this, 13, v02); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Lg = function() { | |
| return func(this, 15); | |
| }; | |
| /** | |
| * @param {(Error|string)} isXML | |
| * @return {?} | |
| */ | |
| self.ti = function(isXML) { | |
| return origFindId(this, 15, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ik = function() { | |
| return func(this, 20); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var pathElement = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(pathElement, _super); | |
| self = pathElement.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Be = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.pd = function(isXML) { | |
| return origFindId(this, 1, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.De = function() { | |
| return ondata(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Me = function() { | |
| return isArray(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.getName = function() { | |
| return func(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Td = function() { | |
| return get_mangled(this, 2); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.Fd = function(isXML) { | |
| return origFindId(this, 2, isXML); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var PathRenderingPlugin = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(PathRenderingPlugin, _super); | |
| self = PathRenderingPlugin.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.getName = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Td = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.Fd = function(isXML) { | |
| return origFindId(this, 1, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ca = function() { | |
| return func(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ib = function() { | |
| return get_mangled(this, 2); | |
| }; | |
| /** | |
| * @param {number} expectedNumberOfNonCommentArgs | |
| * @return {?} | |
| */ | |
| self.mb = function(expectedNumberOfNonCommentArgs) { | |
| return origFindId(this, 2, expectedNumberOfNonCommentArgs); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Jg = function() { | |
| return func(this, 4); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.$i = function() { | |
| return get_mangled(this, 4); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Qk = function() { | |
| return ondata(this, 4); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var inp = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(inp, _super); | |
| self = inp.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Jg = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.$i = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Qk = function() { | |
| return ondata(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Sf = function() { | |
| return func(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ke = function() { | |
| return get_mangled(this, 2); | |
| }; | |
| /** | |
| * @param {number} opt_attributes | |
| * @return {?} | |
| */ | |
| self.gb = function(opt_attributes) { | |
| return origFindId(this, 2, opt_attributes); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Sk = function() { | |
| return ondata(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Nm = function() { | |
| return get_mangled(this, 3); | |
| }; | |
| /** | |
| * @param {number} opt_attributes | |
| * @return {?} | |
| */ | |
| self.Sa = function(opt_attributes) { | |
| return origFindId(this, 3, opt_attributes); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Param = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(Param, _super); | |
| self = Param.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Da = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Aa = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {string} iterator | |
| * @return {?} | |
| */ | |
| self.Ia = function(iterator) { | |
| return origFindId(this, 1, iterator); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ab = function() { | |
| return isArray(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Et = function() { | |
| return get_mangled(this, 4); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.In = function(isXML) { | |
| return origFindId(this, 4, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Dt = function() { | |
| return func(this, 5); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Np = function() { | |
| return get_mangled(this, 5); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.Hn = function(isXML) { | |
| return origFindId(this, 5, isXML); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var yearCell = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(yearCell, _super); | |
| self = yearCell.prototype; | |
| /** | |
| * @param {number} obj | |
| * @return {?} | |
| */ | |
| self.Ok = function(obj) { | |
| return func(this, 1, obj); | |
| }; | |
| /** | |
| * @param {?} owner | |
| * @return {?} | |
| */ | |
| self.mc = function(owner) { | |
| return _findBelongsTo(this, 1, owner); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.bg = function() { | |
| return deepEqual(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Qm = function() { | |
| return ondata(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.li = function() { | |
| return member(this, 1); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var If = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(If, _super); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Background = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(Background, _super); | |
| self = Background.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Da = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Aa = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {string} iterator | |
| * @return {?} | |
| */ | |
| self.Ia = function(iterator) { | |
| return origFindId(this, 1, iterator); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ab = function() { | |
| return isArray(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ic = function() { | |
| return func(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ac = function() { | |
| return get_mangled(this, 2); | |
| }; | |
| /** | |
| * @param {number} isXML | |
| * @return {?} | |
| */ | |
| self.Xb = function(isXML) { | |
| return origFindId(this, 2, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.qc = function() { | |
| return ondata(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Zb = function() { | |
| return isArray(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.gc = function() { | |
| return func(this, 3); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Bb = function() { | |
| return get_mangled(this, 3); | |
| }; | |
| /** | |
| * @param {boolean} isXML | |
| * @return {?} | |
| */ | |
| self.Wb = function(isXML) { | |
| return origFindId(this, 3, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.md = function() { | |
| return func(this, 100); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.jd = function() { | |
| return isArray(this, 100); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Xc = function() { | |
| return get_mangled(this, 101); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Id = function() { | |
| return isArray(this, 101); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Nc = function() { | |
| return get_mangled(this, 105); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.yd = function() { | |
| return member(this, 4); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.hd = function() { | |
| return isArray(this, 4); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Yd = function() { | |
| return member(this, 5); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.xd = function() { | |
| return isArray(this, 5); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.je = function() { | |
| return func(this, 6); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Kg = function() { | |
| return get_mangled(this, 6); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.si = function(isXML) { | |
| return origFindId(this, 6, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ah = function() { | |
| return isArray(this, 6); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Lg = function() { | |
| return func(this, 7); | |
| }; | |
| /** | |
| * @param {(Error|string)} isXML | |
| * @return {?} | |
| */ | |
| self.ti = function(isXML) { | |
| return origFindId(this, 7, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Jm = function() { | |
| return func(this, 16); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Rp = function() { | |
| return func(this, 17); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Transform = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(Transform, _super); | |
| self = Transform.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Da = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Aa = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {string} iterator | |
| * @return {?} | |
| */ | |
| self.Ia = function(iterator) { | |
| return origFindId(this, 1, iterator); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ab = function() { | |
| return isArray(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ic = function() { | |
| return func(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ac = function() { | |
| return get_mangled(this, 2); | |
| }; | |
| /** | |
| * @param {number} isXML | |
| * @return {?} | |
| */ | |
| self.Xb = function(isXML) { | |
| return origFindId(this, 2, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.qc = function() { | |
| return ondata(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Zb = function() { | |
| return isArray(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.gc = function() { | |
| return func(this, 3); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Bb = function() { | |
| return get_mangled(this, 3); | |
| }; | |
| /** | |
| * @param {boolean} isXML | |
| * @return {?} | |
| */ | |
| self.Wb = function(isXML) { | |
| return origFindId(this, 3, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.yd = function() { | |
| return member(this, 4); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.hd = function() { | |
| return isArray(this, 4); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Yd = function() { | |
| return member(this, 5); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.xd = function() { | |
| return isArray(this, 5); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Nc = function() { | |
| return get_mangled(this, 105); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.je = function() { | |
| return func(this, 6); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Kg = function() { | |
| return get_mangled(this, 6); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.si = function(isXML) { | |
| return origFindId(this, 6, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ah = function() { | |
| return isArray(this, 6); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ik = function() { | |
| return func(this, 7); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Rf = function() { | |
| return func(this, 8); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Tb = function() { | |
| return get_mangled(this, 8); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.xb = function(isXML) { | |
| return origFindId(this, 8, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Rk = function() { | |
| return ondata(this, 8); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.jk = function() { | |
| return isArray(this, 8); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Lk = function() { | |
| return func(this, 21); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ot = function() { | |
| return get_mangled(this, 21); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.zr = function(isXML) { | |
| return origFindId(this, 21, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Zt = function() { | |
| return ondata(this, 21); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ca = function() { | |
| return func(this, 9); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ib = function() { | |
| return get_mangled(this, 9); | |
| }; | |
| /** | |
| * @param {number} expectedNumberOfNonCommentArgs | |
| * @return {?} | |
| */ | |
| self.mb = function(expectedNumberOfNonCommentArgs) { | |
| return origFindId(this, 9, expectedNumberOfNonCommentArgs); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.lf = function() { | |
| return func(this, 10); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.pc = function() { | |
| return get_mangled(this, 10); | |
| }; | |
| /** | |
| * @param {(number|string)} value | |
| * @return {?} | |
| */ | |
| self.ja = function(value) { | |
| return origFindId(this, 10, value); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Zh = function() { | |
| return ondata(this, 10); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Pt = function() { | |
| return func(this, 11); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Yc = function() { | |
| return get_mangled(this, 11); | |
| }; | |
| /** | |
| * @param {number} deepDataAndEvents | |
| * @return {?} | |
| */ | |
| self.ri = function(deepDataAndEvents) { | |
| return origFindId(this, 11, deepDataAndEvents); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Yi = function() { | |
| return func(this, 12); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ob = function() { | |
| return get_mangled(this, 12); | |
| }; | |
| /** | |
| * @param {?} obj | |
| * @return {?} | |
| */ | |
| self.Za = function(obj) { | |
| return origFindId(this, 12, obj); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Wt = function() { | |
| return ondata(this, 12); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ve = function() { | |
| return isArray(this, 12); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Lp = function() { | |
| return get_mangled(this, 25); | |
| }; | |
| /** | |
| * @param {number} deepDataAndEvents | |
| * @return {?} | |
| */ | |
| self.pi = function(deepDataAndEvents) { | |
| return origFindId(this, 25, deepDataAndEvents); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.hc = function() { | |
| return func(this, 13); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ld = function() { | |
| return get_mangled(this, 13); | |
| }; | |
| /** | |
| * @param {Array} recurring | |
| * @return {?} | |
| */ | |
| self.$a = function(recurring) { | |
| return origFindId(this, 13, recurring); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.cb = function() { | |
| return ondata(this, 13); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.pm = function() { | |
| return isArray(this, 13); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ct = function() { | |
| return func(this, 14); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.Kv = function(isXML) { | |
| return origFindId(this, 14, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Qp = function() { | |
| return func(this, 15); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.Uv = function(isXML) { | |
| return origFindId(this, 15, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.cq = function() { | |
| return ondata(this, 15); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.qm = function() { | |
| return isArray(this, 15); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Pd = function() { | |
| return func(this, 16); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Qd = function() { | |
| return get_mangled(this, 16); | |
| }; | |
| /** | |
| * @param {?} listener | |
| * @return {?} | |
| */ | |
| self.He = function(listener) { | |
| return origFindId(this, 16, listener); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.hasAttributes = function() { | |
| return ondata(this, 16); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Lm = function() { | |
| return func(this, 23); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.Gn = function(isXML) { | |
| return origFindId(this, 23, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.aq = function() { | |
| return ondata(this, 23); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Mp = function() { | |
| return func(this, 24); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.xr = function(isXML) { | |
| return origFindId(this, 24, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.$p = function() { | |
| return ondata(this, 24); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.md = function() { | |
| return func(this, 17); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.jd = function() { | |
| return isArray(this, 17); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Xc = function() { | |
| return get_mangled(this, 18); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Id = function() { | |
| return isArray(this, 18); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.Rv = function(isXML) { | |
| return origFindId(this, 19, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.om = function() { | |
| return isArray(this, 19); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var ref = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(ref, _super); | |
| self = ref.prototype; | |
| /** | |
| * @param {number} obj | |
| * @return {?} | |
| */ | |
| self.Ok = function(obj) { | |
| return func(this, 1, obj); | |
| }; | |
| /** | |
| * @param {?} owner | |
| * @return {?} | |
| */ | |
| self.mc = function(owner) { | |
| return _findBelongsTo(this, 1, owner); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.bg = function() { | |
| return deepEqual(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Qm = function() { | |
| return ondata(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.li = function() { | |
| return member(this, 1); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var theScriptTag = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(theScriptTag, _super); | |
| self = theScriptTag.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Da = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Aa = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {string} iterator | |
| * @return {?} | |
| */ | |
| self.Ia = function(iterator) { | |
| return origFindId(this, 1, iterator); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ab = function() { | |
| return isArray(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ic = function() { | |
| return func(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ac = function() { | |
| return get_mangled(this, 2); | |
| }; | |
| /** | |
| * @param {number} isXML | |
| * @return {?} | |
| */ | |
| self.Xb = function(isXML) { | |
| return origFindId(this, 2, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.qc = function() { | |
| return ondata(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Zb = function() { | |
| return isArray(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.gc = function() { | |
| return func(this, 3); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Bb = function() { | |
| return get_mangled(this, 3); | |
| }; | |
| /** | |
| * @param {boolean} isXML | |
| * @return {?} | |
| */ | |
| self.Wb = function(isXML) { | |
| return origFindId(this, 3, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.md = function() { | |
| return func(this, 100); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.jd = function() { | |
| return isArray(this, 100); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Xc = function() { | |
| return get_mangled(this, 101); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Id = function() { | |
| return isArray(this, 101); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Nc = function() { | |
| return get_mangled(this, 105); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.yd = function() { | |
| return member(this, 4); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.hd = function() { | |
| return isArray(this, 4); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Yd = function() { | |
| return member(this, 5); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.xd = function() { | |
| return isArray(this, 5); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Lg = function() { | |
| return func(this, 6); | |
| }; | |
| /** | |
| * @param {(Error|string)} isXML | |
| * @return {?} | |
| */ | |
| self.ti = function(isXML) { | |
| return origFindId(this, 6, isXML); | |
| }; | |
| /** | |
| * @param {?} name | |
| * @return {?} | |
| */ | |
| self.Cr = function(name) { | |
| return origFindId(this, 14, name); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var monthCell = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(monthCell, _super); | |
| self = monthCell.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Da = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Aa = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {string} iterator | |
| * @return {?} | |
| */ | |
| self.Ia = function(iterator) { | |
| return origFindId(this, 1, iterator); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ab = function() { | |
| return isArray(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ic = function() { | |
| return func(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ac = function() { | |
| return get_mangled(this, 2); | |
| }; | |
| /** | |
| * @param {number} isXML | |
| * @return {?} | |
| */ | |
| self.Xb = function(isXML) { | |
| return origFindId(this, 2, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.qc = function() { | |
| return ondata(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Zb = function() { | |
| return isArray(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.gc = function() { | |
| return func(this, 3); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Bb = function() { | |
| return get_mangled(this, 3); | |
| }; | |
| /** | |
| * @param {boolean} isXML | |
| * @return {?} | |
| */ | |
| self.Wb = function(isXML) { | |
| return origFindId(this, 3, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.md = function() { | |
| return func(this, 100); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.jd = function() { | |
| return isArray(this, 100); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Xc = function() { | |
| return get_mangled(this, 101); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Id = function() { | |
| return isArray(this, 101); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Nc = function() { | |
| return get_mangled(this, 105); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.yd = function() { | |
| return member(this, 4); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.hd = function() { | |
| return isArray(this, 4); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Yd = function() { | |
| return member(this, 5); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.xd = function() { | |
| return isArray(this, 5); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Rf = function() { | |
| return func(this, 9); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Tb = function() { | |
| return get_mangled(this, 9); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.xb = function(isXML) { | |
| return origFindId(this, 9, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Rk = function() { | |
| return ondata(this, 9); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.jk = function() { | |
| return isArray(this, 9); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var gears = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(gears, _super); | |
| self = gears.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Da = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Aa = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {string} iterator | |
| * @return {?} | |
| */ | |
| self.Ia = function(iterator) { | |
| return origFindId(this, 1, iterator); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ab = function() { | |
| return isArray(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ic = function() { | |
| return func(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ac = function() { | |
| return get_mangled(this, 2); | |
| }; | |
| /** | |
| * @param {number} isXML | |
| * @return {?} | |
| */ | |
| self.Xb = function(isXML) { | |
| return origFindId(this, 2, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.qc = function() { | |
| return ondata(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Zb = function() { | |
| return isArray(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.gc = function() { | |
| return func(this, 3); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Bb = function() { | |
| return get_mangled(this, 3); | |
| }; | |
| /** | |
| * @param {boolean} isXML | |
| * @return {?} | |
| */ | |
| self.Wb = function(isXML) { | |
| return origFindId(this, 3, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.md = function() { | |
| return func(this, 100); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.jd = function() { | |
| return isArray(this, 100); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Xc = function() { | |
| return get_mangled(this, 101); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Id = function() { | |
| return isArray(this, 101); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Nc = function() { | |
| return get_mangled(this, 105); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.yd = function() { | |
| return member(this, 4); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.hd = function() { | |
| return isArray(this, 4); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Yd = function() { | |
| return member(this, 5); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.xd = function() { | |
| return isArray(this, 5); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Be = function() { | |
| return get_mangled(this, 7); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.pd = function(isXML) { | |
| return origFindId(this, 7, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.De = function() { | |
| return ondata(this, 7); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Me = function() { | |
| return isArray(this, 7); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var pausedElement = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(pausedElement, _super); | |
| self = pausedElement.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Da = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Aa = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {string} iterator | |
| * @return {?} | |
| */ | |
| self.Ia = function(iterator) { | |
| return origFindId(this, 1, iterator); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ab = function() { | |
| return isArray(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ic = function() { | |
| return func(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ac = function() { | |
| return get_mangled(this, 2); | |
| }; | |
| /** | |
| * @param {number} isXML | |
| * @return {?} | |
| */ | |
| self.Xb = function(isXML) { | |
| return origFindId(this, 2, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.qc = function() { | |
| return ondata(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Zb = function() { | |
| return isArray(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.gc = function() { | |
| return func(this, 3); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Bb = function() { | |
| return get_mangled(this, 3); | |
| }; | |
| /** | |
| * @param {boolean} isXML | |
| * @return {?} | |
| */ | |
| self.Wb = function(isXML) { | |
| return origFindId(this, 3, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.md = function() { | |
| return func(this, 100); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.jd = function() { | |
| return isArray(this, 100); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Xc = function() { | |
| return get_mangled(this, 101); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Id = function() { | |
| return isArray(this, 101); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Nc = function() { | |
| return get_mangled(this, 105); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.yd = function() { | |
| return member(this, 4); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.hd = function() { | |
| return isArray(this, 4); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Yd = function() { | |
| return member(this, 5); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.xd = function() { | |
| return isArray(this, 5); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.getName = function() { | |
| return func(this, 7); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Td = function() { | |
| return get_mangled(this, 7); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.Fd = function(isXML) { | |
| return origFindId(this, 7, isXML); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var target = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(target, _super); | |
| self = target.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Da = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Aa = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {string} iterator | |
| * @return {?} | |
| */ | |
| self.Ia = function(iterator) { | |
| return origFindId(this, 1, iterator); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ab = function() { | |
| return isArray(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ic = function() { | |
| return func(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ac = function() { | |
| return get_mangled(this, 2); | |
| }; | |
| /** | |
| * @param {number} isXML | |
| * @return {?} | |
| */ | |
| self.Xb = function(isXML) { | |
| return origFindId(this, 2, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.qc = function() { | |
| return ondata(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Zb = function() { | |
| return isArray(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.gc = function() { | |
| return func(this, 3); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Bb = function() { | |
| return get_mangled(this, 3); | |
| }; | |
| /** | |
| * @param {boolean} isXML | |
| * @return {?} | |
| */ | |
| self.Wb = function(isXML) { | |
| return origFindId(this, 3, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.md = function() { | |
| return func(this, 100); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.jd = function() { | |
| return isArray(this, 100); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Xc = function() { | |
| return get_mangled(this, 101); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Id = function() { | |
| return isArray(this, 101); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Nc = function() { | |
| return get_mangled(this, 105); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.yd = function() { | |
| return member(this, 4); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.hd = function() { | |
| return isArray(this, 4); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Yd = function() { | |
| return member(this, 5); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.xd = function() { | |
| return isArray(this, 5); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var JavaScriptLanguage = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(JavaScriptLanguage, _super); | |
| /** | |
| * @return {?} | |
| */ | |
| JavaScriptLanguage.prototype.Be = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| JavaScriptLanguage.prototype.pd = function(isXML) { | |
| return origFindId(this, 1, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| JavaScriptLanguage.prototype.De = function() { | |
| return ondata(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| JavaScriptLanguage.prototype.Me = function() { | |
| return isArray(this, 1); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var strong = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(strong, _super); | |
| self = strong.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Be = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.pd = function(isXML) { | |
| return origFindId(this, 1, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.De = function() { | |
| return ondata(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Me = function() { | |
| return isArray(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.je = function() { | |
| return func(this, 5); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Kg = function() { | |
| return get_mangled(this, 5); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.si = function(isXML) { | |
| return origFindId(this, 5, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ah = function() { | |
| return isArray(this, 5); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ik = function() { | |
| return func(this, 6); | |
| }; | |
| /** | |
| * @param {boolean} recurring | |
| * @return {?} | |
| */ | |
| self.Kb = function(recurring) { | |
| return origFindId(this, 7, recurring); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Kt = function() { | |
| return get_mangled(this, 9); | |
| }; | |
| /** | |
| * @param {number} isXML | |
| * @return {?} | |
| */ | |
| self.El = function(isXML) { | |
| return origFindId(this, 9, isXML); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var camelKey = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(camelKey, _super); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var specialIEContainer = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(specialIEContainer, _super); | |
| self = specialIEContainer.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Be = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.pd = function(isXML) { | |
| return origFindId(this, 1, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.De = function() { | |
| return ondata(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Me = function() { | |
| return isArray(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ik = function() { | |
| return func(this, 3); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var child2 = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(child2, _super); | |
| self = child2.prototype; | |
| /** | |
| * @param {number} walkers | |
| * @return {?} | |
| */ | |
| self.Pp = function(walkers) { | |
| return func(this, 21, walkers); | |
| }; | |
| /** | |
| * @param {number} obj | |
| * @return {?} | |
| */ | |
| self.Ok = function(obj) { | |
| return func(this, 7, obj); | |
| }; | |
| /** | |
| * @param {?} owner | |
| * @return {?} | |
| */ | |
| self.mc = function(owner) { | |
| return _findBelongsTo(this, 7, owner); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.bg = function() { | |
| return deepEqual(this, 7); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Qm = function() { | |
| return ondata(this, 7); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.li = function() { | |
| return member(this, 7); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.Ar = function(isXML) { | |
| return origFindId(this, 18, isXML); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var FutureMessage = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(FutureMessage, _super); | |
| /** | |
| * @param {?} owner | |
| * @return {?} | |
| */ | |
| FutureMessage.prototype.vd = function(owner) { | |
| return _findBelongsTo(this, 1, owner); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| FutureMessage.prototype.Oc = function() { | |
| return deepEqual(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| FutureMessage.prototype.Zk = function() { | |
| return member(this, 1); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var closer = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(closer, _super); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var backgroundElement = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(backgroundElement, _super); | |
| self = backgroundElement.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Rf = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Tb = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {?} isXML | |
| * @return {?} | |
| */ | |
| self.xb = function(isXML) { | |
| return origFindId(this, 1, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Rk = function() { | |
| return ondata(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.jk = function() { | |
| return isArray(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Da = function() { | |
| return func(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Aa = function() { | |
| return get_mangled(this, 2); | |
| }; | |
| /** | |
| * @param {string} iterator | |
| * @return {?} | |
| */ | |
| self.Ia = function(iterator) { | |
| return origFindId(this, 2, iterator); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ab = function() { | |
| return isArray(this, 2); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Try = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(Try, _super); | |
| /** | |
| * @return {?} | |
| */ | |
| Try.prototype.md = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| Try.prototype.jd = function() { | |
| return isArray(this, 1); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var _asyncsDone = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(_asyncsDone, _super); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var ResourceTypeError = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(ResourceTypeError, _super); | |
| /** | |
| * @return {?} | |
| */ | |
| ResourceTypeError.prototype.Da = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| ResourceTypeError.prototype.Aa = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {string} iterator | |
| * @return {?} | |
| */ | |
| ResourceTypeError.prototype.Ia = function(iterator) { | |
| return origFindId(this, 1, iterator); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| ResourceTypeError.prototype.Ab = function() { | |
| return isArray(this, 1); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var scriptElt = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(scriptElt, _super); | |
| self = scriptElt.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Ca = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ib = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @param {number} expectedNumberOfNonCommentArgs | |
| * @return {?} | |
| */ | |
| self.mb = function(expectedNumberOfNonCommentArgs) { | |
| return origFindId(this, 1, expectedNumberOfNonCommentArgs); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ic = function() { | |
| return func(this, 3); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ac = function() { | |
| return get_mangled(this, 3); | |
| }; | |
| /** | |
| * @param {number} isXML | |
| * @return {?} | |
| */ | |
| self.Xb = function(isXML) { | |
| return origFindId(this, 3, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.qc = function() { | |
| return ondata(this, 3); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Zb = function() { | |
| return isArray(this, 3); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var list_item_value = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(list_item_value, _super); | |
| /** | |
| * @return {?} | |
| */ | |
| list_item_value.prototype.Nc = function() { | |
| return get_mangled(this, 6); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var dontCloseTags = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(dontCloseTags, _super); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var h1 = function() { | |
| _super.apply(this); | |
| }; | |
| __extends(h1, _super); | |
| self = h1.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Jg = function() { | |
| return func(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.$i = function() { | |
| return get_mangled(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Qk = function() { | |
| return ondata(this, 1); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ic = function() { | |
| return func(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ac = function() { | |
| return get_mangled(this, 2); | |
| }; | |
| /** | |
| * @param {number} isXML | |
| * @return {?} | |
| */ | |
| self.Xb = function(isXML) { | |
| return origFindId(this, 2, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.qc = function() { | |
| return ondata(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Zb = function() { | |
| return isArray(this, 2); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.gc = function() { | |
| return func(this, 3); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Bb = function() { | |
| return get_mangled(this, 3); | |
| }; | |
| /** | |
| * @param {boolean} isXML | |
| * @return {?} | |
| */ | |
| self.Wb = function(isXML) { | |
| return origFindId(this, 3, isXML); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Nc = function() { | |
| return get_mangled(this, 4); | |
| }; | |
| isAncestor(frame, { | |
| 0 : { | |
| name : "MergedState", | |
| $ : "syncer.MergedState" | |
| } | |
| }); | |
| isAncestor(typePattern, { | |
| 0 : { | |
| name : "Source", | |
| $ : "syncer.Source" | |
| } | |
| }); | |
| isAncestor(iframe, { | |
| 0 : { | |
| name : "UserRequestInfo", | |
| $ : "syncer.UserRequestInfo" | |
| }, | |
| 1 : { | |
| name : "count", | |
| c : 5, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 2 : { | |
| name : "message_rtml", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 3 : { | |
| name : "object_user_requests", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : textNode | |
| }, | |
| 4 : { | |
| name : "selected_buttons", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : that | |
| }, | |
| 5 : { | |
| name : "access_requests", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Throw | |
| }, | |
| 200 : { | |
| name : "message_rtml_hash", | |
| c : 3, | |
| defaultValue : 0, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 201 : { | |
| name : "message_parsed_rtml", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Certainties | |
| } | |
| }); | |
| isAncestor(textNode, { | |
| 0 : { | |
| name : "ObjectUserRequest", | |
| /** @type {function (): undefined} */ | |
| va : iframe, | |
| $ : "syncer.UserRequestInfo.ObjectUserRequest" | |
| }, | |
| 1 : { | |
| name : "message_rtml", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "buttons", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : report | |
| }, | |
| 3 : { | |
| name : "object_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 4 : { | |
| name : "user_requests", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : responseFrame | |
| }, | |
| 200 : { | |
| name : "message_rtml_hash", | |
| c : 3, | |
| defaultValue : 0, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 201 : { | |
| name : "message_parsed_rtml", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Certainties | |
| } | |
| }); | |
| isAncestor(responseFrame, { | |
| 0 : { | |
| name : "UserRequest", | |
| /** @type {function (): undefined} */ | |
| va : textNode, | |
| $ : "syncer.UserRequestInfo.ObjectUserRequest.UserRequest" | |
| }, | |
| 1 : { | |
| name : "id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "sequence", | |
| c : 3, | |
| defaultValue : 0, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 3 : { | |
| name : "deleted", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 4 : { | |
| name : "sender_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 5 : { | |
| name : "buttons", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : report | |
| }, | |
| 6 : { | |
| name : "created_usec", | |
| c : 3, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 7 : { | |
| name : "display_email", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 8 : { | |
| name : "display_name", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| } | |
| }); | |
| isAncestor(that, { | |
| 0 : { | |
| name : "ButtonSelected", | |
| /** @type {function (): undefined} */ | |
| va : iframe, | |
| $ : "syncer.UserRequestInfo.ButtonSelected" | |
| }, | |
| 1 : { | |
| name : "id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "type", | |
| c : 14, | |
| defaultValue : 0, | |
| type : keyType | |
| } | |
| }); | |
| isAncestor(Throw, { | |
| 0 : { | |
| name : "AccessRequest", | |
| /** @type {function (): undefined} */ | |
| va : iframe, | |
| $ : "syncer.UserRequestInfo.AccessRequest" | |
| }, | |
| 1 : { | |
| name : "id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| } | |
| }); | |
| isAncestor(aList, { | |
| 0 : { | |
| name : "User", | |
| $ : "syncer.User" | |
| }, | |
| 1 : { | |
| name : "id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "sequence", | |
| c : 3, | |
| defaultValue : 0, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 3 : { | |
| name : "deleted", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 100 : { | |
| name : "temp_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 101 : { | |
| name : "merged_state", | |
| c : 14, | |
| defaultValue : 0, | |
| type : mimeString | |
| }, | |
| 102 : { | |
| name : "root_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 103 : { | |
| name : "part_checksum", | |
| c : 6, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 104 : { | |
| name : "modality", | |
| c : 6, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 105 : { | |
| name : "is_guest", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 4 : { | |
| name : "dirty", | |
| aa : true, | |
| c : 5, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 5 : { | |
| name : "pending", | |
| aa : true, | |
| c : 5, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 6 : { | |
| name : "name", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 12 : { | |
| name : "first_name", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 7 : { | |
| name : "gender", | |
| c : 14, | |
| defaultValue : 0, | |
| type : { | |
| nx : 0, | |
| LC : 1, | |
| mE : 2 | |
| } | |
| }, | |
| 8 : { | |
| name : "desktop_folder_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 9 : { | |
| name : "archive_folder_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 10 : { | |
| name : "employee", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 29 : { | |
| name : "robot", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 11 : { | |
| name : "push", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 13 : { | |
| name : "pictures", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : msg | |
| }, | |
| 14 : { | |
| name : "checksum", | |
| c : 6, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 26 : { | |
| name : "modal_root_checksum", | |
| c : 6, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 17 : { | |
| name : "anonymous", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 18 : { | |
| name : "pending_unverified_email", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 19 : { | |
| name : "dropbox_files", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : SequenceEndEvent | |
| }, | |
| 20 : { | |
| name : "dropbox_linked", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 21 : { | |
| name : "gdrive_files", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : SequenceEndEvent | |
| }, | |
| 22 : { | |
| name : "gdrive_linked", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 23 : { | |
| name : "emails", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : bodyElem | |
| }, | |
| 24 : { | |
| name : "usage_milestones", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : later | |
| }, | |
| 25 : { | |
| name : "user_request_info", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : iframe | |
| }, | |
| 27 : { | |
| name : "workgroups", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : related | |
| }, | |
| 28 : { | |
| name : "team_promo_domain", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 200 : { | |
| name : "resolved", | |
| c : 8, | |
| defaultValue : 1, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 300 : { | |
| name : "source", | |
| c : 14, | |
| defaultValue : 2, | |
| type : otherEntity | |
| }, | |
| 301 : { | |
| name : "silent_changes", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| } | |
| }); | |
| isAncestor(w, { | |
| 0 : { | |
| name : "Contact", | |
| $ : "syncer.Contact" | |
| }, | |
| 1 : { | |
| name : "id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "sequence", | |
| c : 3, | |
| defaultValue : 0, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 3 : { | |
| name : "deleted", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 100 : { | |
| name : "temp_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 101 : { | |
| name : "merged_state", | |
| c : 14, | |
| defaultValue : 0, | |
| type : mimeString | |
| }, | |
| 102 : { | |
| name : "root_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 103 : { | |
| name : "part_checksum", | |
| c : 6, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 104 : { | |
| name : "modality", | |
| c : 6, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 105 : { | |
| name : "is_guest", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 4 : { | |
| name : "dirty", | |
| aa : true, | |
| c : 5, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 5 : { | |
| name : "pending", | |
| aa : true, | |
| c : 5, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 6 : { | |
| name : "user_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 7 : { | |
| name : "affinity", | |
| c : 1, | |
| defaultValue : 0, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 8 : { | |
| name : "thread_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 200 : { | |
| name : "resolved", | |
| c : 8, | |
| defaultValue : 1, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 300 : { | |
| name : "source", | |
| c : 14, | |
| defaultValue : 2, | |
| type : otherEntity | |
| }, | |
| 301 : { | |
| name : "silent_changes", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| } | |
| }); | |
| isAncestor(related, { | |
| 0 : { | |
| name : "Workgroup", | |
| $ : "syncer.Workgroup" | |
| }, | |
| 1 : { | |
| name : "name", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "domain", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 11 : { | |
| name : "additional_domains", | |
| aa : true, | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 3 : { | |
| name : "created_by", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 4 : { | |
| name : "folder_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 7 : { | |
| name : "disabled", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 14 : { | |
| name : "workgroup_security", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 5 : { | |
| name : "id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| } | |
| }); | |
| isAncestor(editor, { | |
| 0 : { | |
| name : "Signal", | |
| $ : "syncer.Signal" | |
| }, | |
| 1 : { | |
| name : "id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "sequence", | |
| c : 3, | |
| defaultValue : 0, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 3 : { | |
| name : "deleted", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 100 : { | |
| name : "temp_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 101 : { | |
| name : "merged_state", | |
| c : 14, | |
| defaultValue : 0, | |
| type : mimeString | |
| }, | |
| 102 : { | |
| name : "root_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 103 : { | |
| name : "part_checksum", | |
| c : 6, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 104 : { | |
| name : "modality", | |
| c : 6, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 105 : { | |
| name : "is_guest", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 4 : { | |
| name : "dirty", | |
| aa : true, | |
| c : 5, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 5 : { | |
| name : "pending", | |
| aa : true, | |
| c : 5, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 6 : { | |
| name : "message_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 7 : { | |
| name : "message_sequence", | |
| c : 3, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 8 : { | |
| name : "display_usec", | |
| c : 3, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 9 : { | |
| name : "message_rtml", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 10 : { | |
| name : "picture_user_ids", | |
| aa : true, | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 200 : { | |
| name : "resolved", | |
| c : 8, | |
| defaultValue : 1, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 201 : { | |
| name : "message_rtml_hash", | |
| c : 3, | |
| defaultValue : 0, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 202 : { | |
| name : "message_parsed_rtml", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Certainties | |
| }, | |
| 300 : { | |
| name : "source", | |
| c : 14, | |
| defaultValue : 2, | |
| type : otherEntity | |
| }, | |
| 301 : { | |
| name : "silent_changes", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| } | |
| }); | |
| isAncestor(GameObject, { | |
| 0 : { | |
| name : "Thread", | |
| $ : "syncer.Thread" | |
| }, | |
| 1 : { | |
| name : "id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "sequence", | |
| c : 3, | |
| defaultValue : 0, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 3 : { | |
| name : "deleted", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 100 : { | |
| name : "temp_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 101 : { | |
| name : "merged_state", | |
| c : 14, | |
| defaultValue : 0, | |
| type : mimeString | |
| }, | |
| 102 : { | |
| name : "root_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 103 : { | |
| name : "part_checksum", | |
| c : 6, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 104 : { | |
| name : "modality", | |
| c : 6, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 105 : { | |
| name : "is_guest", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 106 : { | |
| name : "secret_path", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 4 : { | |
| name : "dirty", | |
| aa : true, | |
| c : 5, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 5 : { | |
| name : "pending", | |
| aa : true, | |
| c : 5, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 6 : { | |
| name : "title", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 7 : { | |
| name : "author_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 9 : { | |
| name : "inbox_position", | |
| c : 3, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 10 : { | |
| name : "document_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 11 : { | |
| name : "checksum", | |
| c : 6, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 20 : { | |
| name : "modal_root_checksum", | |
| c : 6, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 12 : { | |
| name : "notification_level", | |
| c : 14, | |
| defaultValue : 0, | |
| type : TYPE_CSS | |
| }, | |
| 13 : { | |
| name : "unread_count", | |
| c : 5, | |
| defaultValue : 0, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 14 : { | |
| name : "personal", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 16 : { | |
| name : "seen_message_sequence", | |
| c : 3, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 17 : { | |
| name : "inbox_record", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : rt | |
| }, | |
| 18 : { | |
| name : "force_root_id_has_checksummed", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 19 : { | |
| name : "links", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : linkText | |
| }, | |
| 21 : { | |
| name : "link_settings", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Events | |
| }, | |
| 24 : { | |
| name : "view_mode", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 22 : { | |
| name : "permits", | |
| aa : true, | |
| c : 14, | |
| defaultValue : 0, | |
| type : contentType | |
| }, | |
| 23 : { | |
| name : "reachable_permits", | |
| aa : true, | |
| c : 14, | |
| defaultValue : 0, | |
| type : contentType | |
| }, | |
| 25 : { | |
| name : "removed_but_guest", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 26 : { | |
| name : "importance_multiplier", | |
| c : 2, | |
| defaultValue : 1, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 200 : { | |
| name : "resolved", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 201 : { | |
| name : "sending_messages", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 202 : { | |
| name : "sending_messages_failed", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 212 : { | |
| name : "snippet_section_rtml_hash", | |
| c : 3, | |
| defaultValue : 0, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 213 : { | |
| name : "snippet_section_parsed_rtml", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Certainties | |
| }, | |
| 300 : { | |
| name : "source", | |
| c : 14, | |
| defaultValue : 2, | |
| type : otherEntity | |
| }, | |
| 301 : { | |
| name : "silent_changes", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| } | |
| }); | |
| isAncestor(rt, { | |
| 0 : { | |
| name : "InboxRecord", | |
| /** @type {function (): undefined} */ | |
| va : GameObject, | |
| $ : "syncer.Thread.InboxRecord" | |
| }, | |
| 1 : { | |
| name : "effective_title", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "snippet_picture_user_ids", | |
| aa : true, | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 3 : { | |
| name : "snippet_message", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Splat | |
| }, | |
| 4 : { | |
| name : "snippet_section", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Transform | |
| }, | |
| 5 : { | |
| name : "read_state", | |
| c : 14, | |
| defaultValue : 0, | |
| type : { | |
| RE : 0, | |
| mH : 1, | |
| NF : 2, | |
| WF : 3 | |
| } | |
| }, | |
| 6 : { | |
| name : "new_badge", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 7 : { | |
| name : "read_user_ids", | |
| aa : true, | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 8 : { | |
| name : "read_by_all", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 9 : { | |
| name : "last_activity_usec", | |
| c : 3, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 10 : { | |
| name : "group_chat", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| } | |
| }); | |
| isAncestor(refNode, { | |
| 0 : { | |
| name : "ThreadMember", | |
| $ : "syncer.ThreadMember" | |
| }, | |
| 1 : { | |
| name : "id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "sequence", | |
| c : 3, | |
| defaultValue : 0, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 3 : { | |
| name : "deleted", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 100 : { | |
| name : "temp_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 101 : { | |
| name : "merged_state", | |
| c : 14, | |
| defaultValue : 0, | |
| type : mimeString | |
| }, | |
| 102 : { | |
| name : "root_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 103 : { | |
| name : "part_checksum", | |
| c : 6, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 104 : { | |
| name : "modality", | |
| c : 6, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 105 : { | |
| name : "is_guest", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 4 : { | |
| name : "dirty", | |
| aa : true, | |
| c : 5, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 5 : { | |
| name : "pending", | |
| aa : true, | |
| c : 5, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 6 : { | |
| name : "thread_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 7 : { | |
| name : "user_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 8 : { | |
| name : "added_usec", | |
| c : 3, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 9 : { | |
| name : "seen_message_sequence", | |
| c : 3, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 10 : { | |
| name : "level", | |
| c : 14, | |
| defaultValue : 0, | |
| type : { | |
| qo : -10, | |
| FF : 0, | |
| rE : 5, | |
| lF : 10, | |
| gC : 20 | |
| } | |
| }, | |
| 11 : { | |
| name : "added_by", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 12 : { | |
| name : "new_badge", | |
| c : 8, | |
| defaultValue : 1, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 13 : { | |
| name : "private_folder", | |
| c : 8, | |
| defaultValue : 1, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 14 : { | |
| name : "notification_level", | |
| c : 14, | |
| defaultValue : 0, | |
| type : TYPE_CSS | |
| }, | |
| 15 : { | |
| name : "folder_notification_level", | |
| c : 14, | |
| defaultValue : 0, | |
| type : TYPE_CSS | |
| }, | |
| 16 : { | |
| name : "view_mode", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 17 : { | |
| name : "robot", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 200 : { | |
| name : "resolved", | |
| c : 8, | |
| defaultValue : 1, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 300 : { | |
| name : "source", | |
| c : 14, | |
| defaultValue : 2, | |
| type : otherEntity | |
| }, | |
| 301 : { | |
| name : "silent_changes", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| } | |
| }); | |
| isAncestor(responseInfoFrame, { | |
| 0 : { | |
| name : "InvitedThreadMember", | |
| $ : "syncer.InvitedThreadMember" | |
| }, | |
| 1 : { | |
| name : "id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "sequence", | |
| c : 3, | |
| defaultValue : 0, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 3 : { | |
| name : "deleted", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 100 : { | |
| name : "temp_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 101 : { | |
| name : "merged_state", | |
| c : 14, | |
| defaultValue : 0, | |
| type : mimeString | |
| }, | |
| 102 : { | |
| name : "root_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 103 : { | |
| name : "part_checksum", | |
| c : 6, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 104 : { | |
| name : "modality", | |
| c : 6, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 105 : { | |
| name : "is_guest", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 4 : { | |
| name : "dirty", | |
| aa : true, | |
| c : 5, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 5 : { | |
| name : "pending", | |
| aa : true, | |
| c : 5, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 6 : { | |
| name : "thread_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 7 : { | |
| name : "name", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 8 : { | |
| name : "contact_info", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 9 : { | |
| name : "level", | |
| c : 14, | |
| defaultValue : 0, | |
| type : { | |
| qo : -10, | |
| js : -5, | |
| ex : 0 | |
| } | |
| }, | |
| 10 : { | |
| name : "email", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 11 : { | |
| name : "phone", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 12 : { | |
| name : "suppress_notification", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 200 : { | |
| name : "resolved", | |
| c : 8, | |
| defaultValue : 1, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 300 : { | |
| name : "source", | |
| c : 14, | |
| defaultValue : 2, | |
| type : otherEntity | |
| }, | |
| 301 : { | |
| name : "silent_changes", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| } | |
| }); | |
| isAncestor(Splat, { | |
| 0 : { | |
| name : "Message", | |
| $ : "syncer.Message" | |
| }, | |
| 1 : { | |
| name : "id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "sequence", | |
| c : 3, | |
| defaultValue : 0, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 3 : { | |
| name : "deleted", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 100 : { | |
| name : "temp_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 101 : { | |
| name : "merged_state", | |
| c : 14, | |
| defaultValue : 0, | |
| type : mimeString | |
| }, | |
| 102 : { | |
| name : "root_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 103 : { | |
| name : "part_checksum", | |
| c : 6, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 104 : { | |
| name : "modality", | |
| c : 6, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 105 : { | |
| name : "is_guest", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 4 : { | |
| name : "dirty", | |
| aa : true, | |
| c : 5, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 5 : { | |
| name : "pending", | |
| aa : true, | |
| c : 5, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 6 : { | |
| name : "type", | |
| c : 14, | |
| defaultValue : 0, | |
| type : { | |
| cx : 0, | |
| IA : 1, | |
| KB : 2, | |
| rC : 3, | |
| LF : 4, | |
| IF : 5, | |
| LB : 6, | |
| PB : 7, | |
| MF : 8, | |
| fF : 9, | |
| zG : 10, | |
| KA : 11, | |
| lH : 12, | |
| vD : 13, | |
| GA : 14, | |
| HF : 15, | |
| JA : 16, | |
| JF : 17 | |
| } | |
| }, | |
| 8 : { | |
| name : "thread_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 9 : { | |
| name : "author_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 10 : { | |
| name : "created_usec", | |
| c : 3, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 11 : { | |
| name : "sent_sequence", | |
| c : 3, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 12 : { | |
| name : "via", | |
| c : 14, | |
| defaultValue : 2, | |
| type : chartType | |
| }, | |
| 13 : { | |
| name : "text", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 24 : { | |
| name : "paragraphs", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Session | |
| }, | |
| 25 : { | |
| name : "framing", | |
| c : 14, | |
| defaultValue : 1, | |
| type : { | |
| mB : 1, | |
| Jw : 2 | |
| } | |
| }, | |
| 14 : { | |
| name : "user_ids", | |
| aa : true, | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 15 : { | |
| name : "title", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 16 : { | |
| name : "diff_groups", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : baseEl | |
| }, | |
| 26 : { | |
| name : "apparent_user", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : pathElement | |
| }, | |
| 27 : { | |
| name : "hide_profile_picture", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 17 : { | |
| name : "files", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : PathRenderingPlugin | |
| }, | |
| 18 : { | |
| name : "folder_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 22 : { | |
| name : "annotation", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Param | |
| }, | |
| 20 : { | |
| name : "document_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 21 : { | |
| name : "like_bundle", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : trailingCall | |
| }, | |
| 23 : { | |
| name : "mentions", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : overlayEl | |
| }, | |
| 200 : { | |
| name : "resolved", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 203 : { | |
| name : "rtml_hash", | |
| c : 3, | |
| defaultValue : 0, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 204 : { | |
| name : "rtml", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 205 : { | |
| name : "parsed_rtml", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Certainties | |
| }, | |
| 206 : { | |
| name : "primary_diff_group", | |
| c : 5, | |
| defaultValue : 0, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 207 : { | |
| name : "diffs_expanded", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 208 : { | |
| name : "saving", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 209 : { | |
| name : "failed_to_save", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 210 : { | |
| name : "locally_created_usec", | |
| c : 3, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 211 : { | |
| name : "author_name", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 213 : { | |
| name : "read_usec", | |
| c : 3, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 212 : { | |
| name : "annotation_group", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : If | |
| }, | |
| 300 : { | |
| name : "source", | |
| c : 14, | |
| defaultValue : 2, | |
| type : otherEntity | |
| }, | |
| 301 : { | |
| name : "silent_changes", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| } | |
| }); | |
| isAncestor(pathElement, { | |
| 0 : { | |
| name : "ApparentUser", | |
| /** @type {function (): undefined} */ | |
| va : Splat, | |
| $ : "syncer.Message.ApparentUser" | |
| }, | |
| 1 : { | |
| name : "user_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "name", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 3 : { | |
| name : "profile_link", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 4 : { | |
| name : "pictures", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : MappingStartEvent | |
| } | |
| }); | |
| isAncestor(PathRenderingPlugin, { | |
| 0 : { | |
| name : "File", | |
| /** @type {function (): undefined} */ | |
| va : Splat, | |
| $ : "syncer.Message.File" | |
| }, | |
| 1 : { | |
| name : "name", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "type", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 3 : { | |
| name : "size", | |
| c : 3, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 4 : { | |
| name : "hash", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 5 : { | |
| name : "thumbnail", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : inp | |
| }, | |
| 200 : { | |
| name : "icon", | |
| c : 14, | |
| defaultValue : 0, | |
| type : { | |
| $C : 0, | |
| pD : 1, | |
| YA : 2, | |
| VIDEO : 3, | |
| pF : 4, | |
| yF : 5, | |
| GB : 6 | |
| } | |
| }, | |
| 201 : { | |
| name : "display_inline", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| } | |
| }); | |
| isAncestor(inp, { | |
| 0 : { | |
| name : "Thumbnail", | |
| /** @type {function (): undefined} */ | |
| va : PathRenderingPlugin, | |
| $ : "syncer.Message.File.Thumbnail" | |
| }, | |
| 1 : { | |
| name : "hash", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "width", | |
| c : 5, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 3 : { | |
| name : "height", | |
| c : 5, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| } | |
| }); | |
| isAncestor(Param, { | |
| 0 : { | |
| name : "Annotation", | |
| /** @type {function (): undefined} */ | |
| va : Splat, | |
| $ : "syncer.Message.Annotation" | |
| }, | |
| 1 : { | |
| name : "id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "is_last_for_annotation", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 3 : { | |
| name : "snippet", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : yearCell | |
| }, | |
| 4 : { | |
| name : "creator_user_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 5 : { | |
| name : "creator_name", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| } | |
| }); | |
| isAncestor(yearCell, { | |
| 0 : { | |
| name : "Snippet", | |
| /** @type {function (): undefined} */ | |
| va : Param, | |
| $ : "syncer.Message.Annotation.Snippet" | |
| }, | |
| 1 : { | |
| name : "sections", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Transform | |
| }, | |
| 3 : { | |
| name : "abbreviated_sections", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Transform | |
| }, | |
| 2 : { | |
| name : "is_section_highlight", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| } | |
| }); | |
| isAncestor(If, { | |
| 0 : { | |
| name : "AnnotationGroup", | |
| /** @type {function (): undefined} */ | |
| va : Splat, | |
| $ : "syncer.Message.AnnotationGroup" | |
| }, | |
| 1 : { | |
| name : "other_message_ids", | |
| aa : true, | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| } | |
| }); | |
| isAncestor(Background, { | |
| 0 : { | |
| name : "Document", | |
| $ : "syncer.Document" | |
| }, | |
| 1 : { | |
| name : "id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "sequence", | |
| c : 3, | |
| defaultValue : 0, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 3 : { | |
| name : "deleted", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 100 : { | |
| name : "temp_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 101 : { | |
| name : "merged_state", | |
| c : 14, | |
| defaultValue : 0, | |
| type : mimeString | |
| }, | |
| 102 : { | |
| name : "root_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 103 : { | |
| name : "part_checksum", | |
| c : 6, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 104 : { | |
| name : "modality", | |
| c : 6, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 105 : { | |
| name : "is_guest", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 4 : { | |
| name : "dirty", | |
| aa : true, | |
| c : 5, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 5 : { | |
| name : "pending", | |
| aa : true, | |
| c : 5, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 6 : { | |
| name : "thread_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 7 : { | |
| name : "title", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 8 : { | |
| name : "updated_usec", | |
| c : 3, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 9 : { | |
| name : "section_locks", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : program4 | |
| }, | |
| 16 : { | |
| name : "annotation_metadatas", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : frag | |
| }, | |
| 10 : { | |
| name : "import_filename", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 11 : { | |
| name : "dropbox_path", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 12 : { | |
| name : "saving_enabled", | |
| c : 8, | |
| defaultValue : 1, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 13 : { | |
| name : "gdrive_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 15 : { | |
| name : "table_metadatas", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : YAMLError | |
| }, | |
| 17 : { | |
| name : "theme", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : While | |
| }, | |
| 200 : { | |
| name : "resolved", | |
| c : 8, | |
| defaultValue : 1, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 300 : { | |
| name : "source", | |
| c : 14, | |
| defaultValue : 2, | |
| type : otherEntity | |
| }, | |
| 301 : { | |
| name : "silent_changes", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| } | |
| }); | |
| isAncestor(Transform, { | |
| 0 : { | |
| name : "Section", | |
| $ : "syncer.Section" | |
| }, | |
| 1 : { | |
| name : "id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "sequence", | |
| c : 3, | |
| defaultValue : 0, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 3 : { | |
| name : "deleted", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 4 : { | |
| name : "dirty", | |
| aa : true, | |
| c : 5, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 5 : { | |
| name : "pending", | |
| aa : true, | |
| c : 5, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 102 : { | |
| name : "root_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 103 : { | |
| name : "part_checksum", | |
| c : 6, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 104 : { | |
| name : "modality", | |
| c : 6, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 105 : { | |
| name : "is_guest", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 6 : { | |
| name : "thread_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 7 : { | |
| name : "document_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 8 : { | |
| name : "position", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 21 : { | |
| name : "position_path", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 9 : { | |
| name : "type", | |
| c : 14, | |
| defaultValue : expectedNumberOfNonCommentArgs, | |
| type : suiteView | |
| }, | |
| 10 : { | |
| name : "style", | |
| c : 14, | |
| defaultValue : 0, | |
| type : proto | |
| }, | |
| 11 : { | |
| name : "section_class", | |
| c : 14, | |
| defaultValue : deepDataAndEvents, | |
| type : gesture | |
| }, | |
| 12 : { | |
| name : "content", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Contact | |
| }, | |
| 25 : { | |
| name : "content_origin", | |
| c : 14, | |
| defaultValue : 0, | |
| type : expectedType | |
| }, | |
| 13 : { | |
| name : "parents", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Collection | |
| }, | |
| 14 : { | |
| name : "alt_rtml", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 15 : { | |
| name : "status", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Arr | |
| }, | |
| 16 : { | |
| name : "attributes", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Tag | |
| }, | |
| 22 : { | |
| name : "transient", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 23 : { | |
| name : "copy_thread_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 24 : { | |
| name : "copy_secret_path", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 17 : { | |
| name : "temp_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 18 : { | |
| name : "merged_state", | |
| c : 14, | |
| defaultValue : 0, | |
| type : mimeString | |
| }, | |
| 19 : { | |
| name : "modified", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 20 : { | |
| name : "local_sequence", | |
| c : 3, | |
| defaultValue : 0, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 200 : { | |
| name : "resolved", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 202 : { | |
| name : "in_checklist", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 203 : { | |
| name : "uppercase", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 204 : { | |
| name : "is_list_header", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 205 : { | |
| name : "font", | |
| c : 14, | |
| defaultValue : 0, | |
| type : { | |
| lB : 0, | |
| kB : 1, | |
| eD : 2, | |
| fD : 3, | |
| gD : 4, | |
| AB : 5 | |
| } | |
| }, | |
| 206 : { | |
| name : "rtml_hash", | |
| c : 3, | |
| defaultValue : 0, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 207 : { | |
| name : "parsed_rtml", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Certainties | |
| }, | |
| 208 : { | |
| name : "is_table_header", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 209 : { | |
| name : "table_col_number", | |
| c : 5, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 210 : { | |
| name : "table_col_width", | |
| c : 2, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 300 : { | |
| name : "source", | |
| c : 14, | |
| defaultValue : 2, | |
| type : otherEntity | |
| }, | |
| 301 : { | |
| name : "silent_changes", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| } | |
| }); | |
| isAncestor(ref, { | |
| 0 : { | |
| name : "DocumentData", | |
| $ : "syncer.DocumentData" | |
| }, | |
| 1 : { | |
| name : "sections", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Transform | |
| }, | |
| 2 : { | |
| name : "omitted_deleted_entities", | |
| c : 5, | |
| defaultValue : 0, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| } | |
| }); | |
| isAncestor(theScriptTag, { | |
| 0 : { | |
| name : "Folder", | |
| $ : "syncer.Folder" | |
| }, | |
| 1 : { | |
| name : "id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "sequence", | |
| c : 3, | |
| defaultValue : 0, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 3 : { | |
| name : "deleted", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 17 : { | |
| name : "inaccessible", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 100 : { | |
| name : "temp_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 101 : { | |
| name : "merged_state", | |
| c : 14, | |
| defaultValue : 0, | |
| type : mimeString | |
| }, | |
| 102 : { | |
| name : "root_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 103 : { | |
| name : "part_checksum", | |
| c : 6, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 104 : { | |
| name : "modality", | |
| c : 6, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 105 : { | |
| name : "is_guest", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 4 : { | |
| name : "dirty", | |
| aa : true, | |
| c : 5, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 5 : { | |
| name : "pending", | |
| aa : true, | |
| c : 5, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 6 : { | |
| name : "title", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 7 : { | |
| name : "folder_type", | |
| c : 14, | |
| defaultValue : 0, | |
| type : { | |
| xF : 0, | |
| eG : 1 | |
| } | |
| }, | |
| 8 : { | |
| name : "folder_class", | |
| c : 14, | |
| defaultValue : 0, | |
| type : { | |
| STANDARD : 0, | |
| VB : 1, | |
| RA : 2 | |
| } | |
| }, | |
| 9 : { | |
| name : "inherit_mode", | |
| c : 14, | |
| defaultValue : 0, | |
| type : { | |
| uD : 0, | |
| QF : 1 | |
| } | |
| }, | |
| 10 : { | |
| name : "parent_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 11 : { | |
| name : "full_path", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 12 : { | |
| name : "color", | |
| c : 14, | |
| defaultValue : 0, | |
| type : { | |
| nE : 0, | |
| hx : 1, | |
| dx : 2, | |
| Yw : 3, | |
| Fw : 4, | |
| gx : 5 | |
| } | |
| }, | |
| 13 : { | |
| name : "creator_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 14 : { | |
| name : "workgroup_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 15 : { | |
| name : "checksum", | |
| c : 6, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 18 : { | |
| name : "modal_root_checksum", | |
| c : 6, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 16 : { | |
| name : "notification_level", | |
| c : 14, | |
| defaultValue : 0, | |
| type : TYPE_CSS | |
| }, | |
| 200 : { | |
| name : "resolved", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 202 : { | |
| name : "extended_user_ids", | |
| aa : true, | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 203 : { | |
| name : "effective_notification_level", | |
| c : 14, | |
| defaultValue : 0, | |
| type : TYPE_CSS | |
| }, | |
| 300 : { | |
| name : "source", | |
| c : 14, | |
| defaultValue : 2, | |
| type : otherEntity | |
| }, | |
| 301 : { | |
| name : "silent_changes", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| } | |
| }); | |
| isAncestor(monthCell, { | |
| 0 : { | |
| name : "FolderObject", | |
| $ : "syncer.FolderObject" | |
| }, | |
| 1 : { | |
| name : "id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "sequence", | |
| c : 3, | |
| defaultValue : 0, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 3 : { | |
| name : "deleted", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 100 : { | |
| name : "temp_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 101 : { | |
| name : "merged_state", | |
| c : 14, | |
| defaultValue : 0, | |
| type : mimeString | |
| }, | |
| 102 : { | |
| name : "root_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 103 : { | |
| name : "part_checksum", | |
| c : 6, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 104 : { | |
| name : "modality", | |
| c : 6, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 105 : { | |
| name : "is_guest", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 4 : { | |
| name : "dirty", | |
| aa : true, | |
| c : 5, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 5 : { | |
| name : "pending", | |
| aa : true, | |
| c : 5, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 6 : { | |
| name : "folder_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 7 : { | |
| name : "object_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 8 : { | |
| name : "object_type", | |
| c : 14, | |
| defaultValue : 0, | |
| type : { | |
| ns : 0, | |
| is : 1 | |
| } | |
| }, | |
| 9 : { | |
| name : "position", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 200 : { | |
| name : "resolved", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 300 : { | |
| name : "source", | |
| c : 14, | |
| defaultValue : 2, | |
| type : otherEntity | |
| }, | |
| 301 : { | |
| name : "silent_changes", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| } | |
| }); | |
| isAncestor(gears, { | |
| 0 : { | |
| name : "FolderMember", | |
| $ : "syncer.FolderMember" | |
| }, | |
| 1 : { | |
| name : "id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "sequence", | |
| c : 3, | |
| defaultValue : 0, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 3 : { | |
| name : "deleted", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 100 : { | |
| name : "temp_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 101 : { | |
| name : "merged_state", | |
| c : 14, | |
| defaultValue : 0, | |
| type : mimeString | |
| }, | |
| 102 : { | |
| name : "root_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 103 : { | |
| name : "part_checksum", | |
| c : 6, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 104 : { | |
| name : "modality", | |
| c : 6, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 105 : { | |
| name : "is_guest", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 4 : { | |
| name : "dirty", | |
| aa : true, | |
| c : 5, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 5 : { | |
| name : "pending", | |
| aa : true, | |
| c : 5, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 6 : { | |
| name : "folder_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 7 : { | |
| name : "user_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 8 : { | |
| name : "level", | |
| c : 14, | |
| defaultValue : 0, | |
| type : { | |
| qo : -10, | |
| qE : 0 | |
| } | |
| }, | |
| 9 : { | |
| name : "created_usec", | |
| c : 3, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 200 : { | |
| name : "resolved", | |
| c : 8, | |
| defaultValue : 1, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 300 : { | |
| name : "source", | |
| c : 14, | |
| defaultValue : 2, | |
| type : otherEntity | |
| }, | |
| 301 : { | |
| name : "silent_changes", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| } | |
| }); | |
| isAncestor(pausedElement, { | |
| 0 : { | |
| name : "InvitedFolderMember", | |
| $ : "syncer.InvitedFolderMember" | |
| }, | |
| 1 : { | |
| name : "id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "sequence", | |
| c : 3, | |
| defaultValue : 0, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 3 : { | |
| name : "deleted", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 100 : { | |
| name : "temp_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 101 : { | |
| name : "merged_state", | |
| c : 14, | |
| defaultValue : 0, | |
| type : mimeString | |
| }, | |
| 102 : { | |
| name : "root_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 103 : { | |
| name : "part_checksum", | |
| c : 6, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 104 : { | |
| name : "modality", | |
| c : 6, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 105 : { | |
| name : "is_guest", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 4 : { | |
| name : "dirty", | |
| aa : true, | |
| c : 5, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 5 : { | |
| name : "pending", | |
| aa : true, | |
| c : 5, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 6 : { | |
| name : "folder_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 7 : { | |
| name : "name", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 8 : { | |
| name : "contact_info", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 9 : { | |
| name : "level", | |
| c : 14, | |
| defaultValue : 0, | |
| type : { | |
| qo : -10, | |
| js : -5, | |
| ex : 0 | |
| } | |
| }, | |
| 10 : { | |
| name : "email", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 11 : { | |
| name : "phone", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 12 : { | |
| name : "suppress_notification", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 200 : { | |
| name : "resolved", | |
| c : 8, | |
| defaultValue : 1, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 300 : { | |
| name : "source", | |
| c : 14, | |
| defaultValue : 2, | |
| type : otherEntity | |
| }, | |
| 301 : { | |
| name : "silent_changes", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| } | |
| }); | |
| isAncestor(target, { | |
| 0 : { | |
| name : "ServiceImport", | |
| $ : "syncer.ServiceImport" | |
| }, | |
| 1 : { | |
| name : "id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "sequence", | |
| c : 3, | |
| defaultValue : 0, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 3 : { | |
| name : "deleted", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 100 : { | |
| name : "temp_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 101 : { | |
| name : "merged_state", | |
| c : 14, | |
| defaultValue : 0, | |
| type : mimeString | |
| }, | |
| 102 : { | |
| name : "root_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 103 : { | |
| name : "part_checksum", | |
| c : 6, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 104 : { | |
| name : "modality", | |
| c : 6, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 105 : { | |
| name : "is_guest", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 4 : { | |
| name : "dirty", | |
| aa : true, | |
| c : 5, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 5 : { | |
| name : "pending", | |
| aa : true, | |
| c : 5, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 6 : { | |
| name : "service", | |
| c : 14, | |
| defaultValue : 2, | |
| type : ScrollContainer | |
| }, | |
| 7 : { | |
| name : "import_type", | |
| c : 14, | |
| defaultValue : 0, | |
| type : acceptType | |
| }, | |
| 8 : { | |
| name : "contacts", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Call | |
| }, | |
| 9 : { | |
| name : "file_metadata", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : SequenceEndEvent | |
| }, | |
| 10 : { | |
| name : "existing_contact_emails", | |
| aa : true, | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 200 : { | |
| name : "resolved", | |
| c : 8, | |
| defaultValue : 1, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 300 : { | |
| name : "source", | |
| c : 14, | |
| defaultValue : 2, | |
| type : otherEntity | |
| }, | |
| 301 : { | |
| name : "silent_changes", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| } | |
| }); | |
| isAncestor(JavaScriptLanguage, { | |
| 0 : { | |
| name : "UserPresence", | |
| $ : "syncer.UserPresence" | |
| }, | |
| 1 : { | |
| name : "user_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "last_active", | |
| c : 3, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 3 : { | |
| name : "last_active_device", | |
| c : 14, | |
| defaultValue : 0, | |
| type : chartType | |
| } | |
| }); | |
| isAncestor(strong, { | |
| 0 : { | |
| name : "Session", | |
| $ : "syncer.Session" | |
| }, | |
| 1 : { | |
| name : "user_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "session_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 3 : { | |
| name : "active", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 4 : { | |
| name : "active2", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 5 : { | |
| name : "thread_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 6 : { | |
| name : "document_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 7 : { | |
| name : "editing", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 8 : { | |
| name : "focused", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 9 : { | |
| name : "mode", | |
| c : 14, | |
| defaultValue : 0, | |
| type : { | |
| XB : 0, | |
| YG : 1, | |
| dC : 2 | |
| } | |
| }, | |
| 10 : { | |
| name : "device", | |
| c : 14, | |
| defaultValue : 2, | |
| type : chartType | |
| }, | |
| 11 : { | |
| name : "now", | |
| c : 3, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 13 : { | |
| name : "folder_union", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 12 : { | |
| name : "folder_path", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 14 : { | |
| name : "transient_sections_packet", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| } | |
| }); | |
| isAncestor(camelKey, { | |
| 0 : { | |
| name : "PresenceInfo", | |
| $ : "syncer.PresenceInfo" | |
| }, | |
| 1 : { | |
| name : "online", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 2 : { | |
| name : "device", | |
| c : 14, | |
| defaultValue : 2, | |
| type : chartType | |
| }, | |
| 3 : { | |
| name : "last_online", | |
| c : 3, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 4 : { | |
| name : "editing_doc_ids", | |
| aa : true, | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 5 : { | |
| name : "active_doc_ids", | |
| aa : true, | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 6 : { | |
| name : "active2_doc_ids", | |
| aa : true, | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| } | |
| }); | |
| isAncestor(specialIEContainer, { | |
| 0 : { | |
| name : "TransientSections", | |
| $ : "syncer.TransientSections" | |
| }, | |
| 1 : { | |
| name : "user_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "session_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 3 : { | |
| name : "document_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 4 : { | |
| name : "document_data", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : ref | |
| } | |
| }); | |
| isAncestor(child2, { | |
| 0 : { | |
| name : "Payload", | |
| $ : "syncer.Payload" | |
| }, | |
| 1 : { | |
| name : "users", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : aList | |
| }, | |
| 2 : { | |
| name : "contacts", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : w | |
| }, | |
| 21 : { | |
| name : "signals", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : editor | |
| }, | |
| 3 : { | |
| name : "threads", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : GameObject | |
| }, | |
| 4 : { | |
| name : "thread_members", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : refNode | |
| }, | |
| 16 : { | |
| name : "invited_thread_members", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : responseInfoFrame | |
| }, | |
| 5 : { | |
| name : "messages", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Splat | |
| }, | |
| 6 : { | |
| name : "documents", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Background | |
| }, | |
| 7 : { | |
| name : "sections", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Transform | |
| }, | |
| 8 : { | |
| name : "folders", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : theScriptTag | |
| }, | |
| 9 : { | |
| name : "folder_objects", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : monthCell | |
| }, | |
| 10 : { | |
| name : "folder_members", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : gears | |
| }, | |
| 17 : { | |
| name : "invited_folder_members", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : pausedElement | |
| }, | |
| 20 : { | |
| name : "service_imports", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : target | |
| }, | |
| 11 : { | |
| name : "sessions", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : strong | |
| }, | |
| 12 : { | |
| name : "presence_updates", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : JavaScriptLanguage | |
| }, | |
| 19 : { | |
| name : "transient_sections", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : specialIEContainer | |
| }, | |
| 18 : { | |
| name : "rollout_state", | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : EcoLanguage | |
| }, | |
| 14 : { | |
| name : "listen_cursor", | |
| c : 3, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 15 : { | |
| name : "min_updated_usec", | |
| c : 3, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| } | |
| }); | |
| isAncestor(FutureMessage, { | |
| 0 : { | |
| name : "ChangesData", | |
| $ : "syncer.ChangesData" | |
| }, | |
| 1 : { | |
| name : "ids", | |
| aa : true, | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "indexes", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : closer | |
| }, | |
| 3 : { | |
| name : "temp_ids", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : Try | |
| } | |
| }); | |
| isAncestor(closer, { | |
| 0 : { | |
| name : "Index", | |
| /** @type {function (): undefined} */ | |
| va : FutureMessage, | |
| $ : "syncer.ChangesData.Index" | |
| }, | |
| 1 : { | |
| name : "index_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 3 : { | |
| name : "in_place", | |
| c : 8, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 2 : { | |
| name : "updated", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : backgroundElement | |
| } | |
| }); | |
| isAncestor(backgroundElement, { | |
| 0 : { | |
| name : "Item", | |
| /** @type {function (): undefined} */ | |
| va : closer, | |
| $ : "syncer.ChangesData.Index.Item" | |
| }, | |
| 1 : { | |
| name : "position", | |
| c : 13, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 2 : { | |
| name : "id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| } | |
| }); | |
| isAncestor(Try, { | |
| 0 : { | |
| name : "TempId", | |
| /** @type {function (): undefined} */ | |
| va : FutureMessage, | |
| $ : "syncer.ChangesData.TempId" | |
| }, | |
| 1 : { | |
| name : "temp_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "real_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| } | |
| }); | |
| isAncestor(_asyncsDone, { | |
| 0 : { | |
| name : "SerializedChecksum", | |
| $ : "syncer.SerializedChecksum" | |
| }, | |
| 1 : { | |
| name : "thread_checksums", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : list_item_value | |
| }, | |
| 2 : { | |
| name : "folder_checksums", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : list_item_value | |
| }, | |
| 3 : { | |
| name : "user_checksums", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : list_item_value | |
| }, | |
| 4 : { | |
| name : "bad_ids", | |
| aa : true, | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 5 : { | |
| name : "checksummed_root_ids", | |
| aa : true, | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| } | |
| }); | |
| isAncestor(ResourceTypeError, { | |
| 0 : { | |
| name : "PartChecksum", | |
| /** @type {function (): undefined} */ | |
| va : _asyncsDone, | |
| $ : "syncer.SerializedChecksum.PartChecksum" | |
| }, | |
| 1 : { | |
| name : "id", | |
| c : 4, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 2 : { | |
| name : "checksum", | |
| c : 4, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| } | |
| }); | |
| isAncestor(scriptElt, { | |
| 0 : { | |
| name : "GroupChecksum", | |
| /** @type {function (): undefined} */ | |
| va : _asyncsDone, | |
| $ : "syncer.SerializedChecksum.GroupChecksum" | |
| }, | |
| 1 : { | |
| name : "type", | |
| c : 14, | |
| defaultValue : 0, | |
| type : paramType | |
| }, | |
| 2 : { | |
| name : "checksum", | |
| c : 4, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 3 : { | |
| name : "sequence", | |
| c : 4, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| } | |
| }); | |
| isAncestor(list_item_value, { | |
| 0 : { | |
| name : "RootChecksum", | |
| /** @type {function (): undefined} */ | |
| va : _asyncsDone, | |
| $ : "syncer.SerializedChecksum.RootChecksum" | |
| }, | |
| 1 : { | |
| name : "root_id", | |
| c : 9, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "checksum", | |
| c : 4, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 3 : { | |
| name : "part_checksums", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : ResourceTypeError | |
| }, | |
| 4 : { | |
| name : "group_checksums", | |
| aa : true, | |
| c : 11, | |
| /** @type {function (): undefined} */ | |
| type : scriptElt | |
| }, | |
| 5 : { | |
| name : "root_only", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 6 : { | |
| name : "is_guest", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| } | |
| }); | |
| isAncestor(dontCloseTags, { | |
| 0 : { | |
| name : "UpdateStatus", | |
| $ : "syncer.UpdateStatus" | |
| } | |
| }); | |
| isAncestor(h1, { | |
| 0 : { | |
| name : "ChecksumValue", | |
| $ : "syncer.ChecksumValue" | |
| }, | |
| 1 : { | |
| name : "hash", | |
| c : 6, | |
| /** @type {function (new:String, *=): string} */ | |
| type : String | |
| }, | |
| 2 : { | |
| name : "sequence", | |
| c : 3, | |
| /** @type {function (new:Number, *=): number} */ | |
| type : Number | |
| }, | |
| 3 : { | |
| name : "deleted", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| }, | |
| 4 : { | |
| name : "is_guest", | |
| c : 8, | |
| defaultValue : 0, | |
| /** @type {function (new:Boolean, *=): boolean} */ | |
| type : Boolean | |
| } | |
| }); | |
| /** | |
| * @param {(Object|number)} storage | |
| * @param {?} val | |
| * @param {Function} v | |
| * @return {?} | |
| */ | |
| var validator = function(storage, val, v) { | |
| return restoreMarkdownConf(storage, val, v, function(property) { | |
| return storage[property]; | |
| }); | |
| }; | |
| /** | |
| * @param {Array} req | |
| * @param {number} x | |
| * @return {?} | |
| */ | |
| var value = function(req, x) { | |
| return-1 != index(req, x); | |
| }; | |
| /** | |
| * @param {Object} value | |
| * @return {?} | |
| */ | |
| var toPaddedString = function(value) { | |
| return value.slice(0); | |
| }; | |
| /** | |
| * @param {(Array|string)} x | |
| * @param {Array} y | |
| * @return {?} | |
| */ | |
| var sortFunction = function(x, y) { | |
| if (x.length != y.length) { | |
| return false; | |
| } | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < x.length;i++) { | |
| if (x[i] !== y[i]) { | |
| return false; | |
| } | |
| } | |
| return true; | |
| }; | |
| /** | |
| * @param {?} value | |
| * @param {?} c | |
| * @return {undefined} | |
| */ | |
| var toggleClass = function(value, c) { | |
| value.push.apply(value, c); | |
| }; | |
| /** | |
| * @param {Array} array | |
| * @param {Function} callback | |
| * @return {?} | |
| */ | |
| var uniq = function(array, callback) { | |
| if (Array.prototype.filter && array.filter) { | |
| return array.filter(callback); | |
| } | |
| /** @type {Array} */ | |
| var result = []; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < array.length;i++) { | |
| if (callback(array[i], i, array)) { | |
| result.push(array[i]); | |
| } | |
| } | |
| return result; | |
| }; | |
| /** | |
| * @param {Array} array | |
| * @param {Function} callback | |
| * @return {?} | |
| */ | |
| var arraySome = function(array, callback) { | |
| if (Array.prototype.some && array.some) { | |
| return array.some(callback); | |
| } | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < array.length;i++) { | |
| if (callback(array[i], i, array)) { | |
| return true; | |
| } | |
| } | |
| return false; | |
| }; | |
| /** | |
| * @param {?} a | |
| * @return {?} | |
| */ | |
| var Fay = function(a) { | |
| /** @type {Array} */ | |
| var newArgs = []; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < a.length;++i) { | |
| var tmp = a[i]; | |
| if (tmp instanceof Array) { | |
| newArgs.push.apply(newArgs, Fay(tmp)); | |
| } else { | |
| newArgs.push(tmp); | |
| } | |
| } | |
| return newArgs; | |
| }; | |
| /** | |
| * @param {Array} obj | |
| * @param {?} name | |
| * @return {?} | |
| */ | |
| var index = function(obj, name) { | |
| if (Array.prototype.indexOf && obj.indexOf) { | |
| return obj.indexOf(name); | |
| } | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < obj.length;i++) { | |
| if (obj[i] == name) { | |
| return i; | |
| } | |
| } | |
| return-1; | |
| }; | |
| /** | |
| * @param {Array} arr | |
| * @return {?} | |
| */ | |
| var _map = function(arr) { | |
| /** @type {function (?): ?} */ | |
| var fn = isButton; | |
| if (Array.prototype.map && arr.map) { | |
| return arr.map(fn); | |
| } | |
| /** @type {Array} */ | |
| var ret = []; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < arr.length;i++) { | |
| ret.push(fn(arr[i])); | |
| } | |
| return ret; | |
| }; | |
| /** | |
| * @param {Array} obj | |
| * @param {Function} iterator | |
| * @return {undefined} | |
| */ | |
| var sortedIndex = function(obj, iterator) { | |
| if (Array.prototype.forEach && obj.forEach) { | |
| obj.forEach(iterator); | |
| } else { | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < obj.length;i++) { | |
| iterator(obj[i], i, obj); | |
| } | |
| } | |
| }; | |
| /** | |
| * @param {Array} path | |
| * @param {number} index | |
| * @param {Function} callback | |
| * @return {?} | |
| */ | |
| var loadImage = function(path, index, callback) { | |
| callback = callback || function() { | |
| return true; | |
| }; | |
| /** @type {number} */ | |
| index = Math.max(index + 1, 0); | |
| for (;index <= path.length - 1 && !callback(path[index]);++index) { | |
| } | |
| return index <= path.length - 1 ? index : -1; | |
| }; | |
| /** | |
| * @param {Array} arr | |
| * @param {number} i | |
| * @param {Function} fn | |
| * @return {?} | |
| */ | |
| var invoke = function(arr, i, fn) { | |
| fn = fn || function() { | |
| return true; | |
| }; | |
| /** @type {number} */ | |
| i = Math.min(i - 1, arr.length - 1); | |
| for (;0 <= i && !fn(arr[i]);--i) { | |
| } | |
| return 0 <= i ? i : -1; | |
| }; | |
| /** | |
| * @param {Array} arr | |
| * @param {?} name | |
| * @return {undefined} | |
| */ | |
| var removeAll = function(arr, name) { | |
| var i = index(arr, name); | |
| if (-1 != i) { | |
| arr.splice(i, 1); | |
| } | |
| }; | |
| /** | |
| * @param {Array} items | |
| * @param {number} i | |
| * @param {Function} iterator | |
| * @return {?} | |
| */ | |
| var arrayRemove = function(items, i, iterator) { | |
| if (0 == i) { | |
| return[]; | |
| } | |
| /** @type {Array} */ | |
| var arr = []; | |
| /** @type {number} */ | |
| var index = 0; | |
| for (;index < items.length;index++) { | |
| var item = items[index]; | |
| if (arr.length < i) { | |
| arr.push(item); | |
| arr.sort(iterator); | |
| } else { | |
| if (0 < iterator(arr[i - 1], item)) { | |
| arr.pop(); | |
| arr.push(item); | |
| arr.sort(iterator); | |
| } | |
| } | |
| } | |
| return arr; | |
| }; | |
| /** | |
| * @param {Array} names | |
| * @return {?} | |
| */ | |
| var resolveModule = function(names) { | |
| var arr2 = {}; | |
| /** @type {Array} */ | |
| var assigns = []; | |
| /** @type {number} */ | |
| var ii = 0; | |
| for (;ii < names.length;ii++) { | |
| var vvar = names[ii]; | |
| var i = exec(void 0) ? (void 0)(vvar, ii, names) : vvar; | |
| if (!(i in arr2)) { | |
| assigns.push(vvar); | |
| /** @type {number} */ | |
| arr2[i] = 1; | |
| } | |
| } | |
| return assigns; | |
| }; | |
| /** | |
| * @param {string} reason | |
| * @return {?} | |
| */ | |
| var reject = function(reason) { | |
| var wkw = {}; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < arguments.length;i++) { | |
| /** @type {number} */ | |
| wkw[arguments[i]] = 1; | |
| } | |
| return wkw; | |
| }; | |
| /** | |
| * @param {?} object | |
| * @return {?} | |
| */ | |
| var puts = function(object) { | |
| var old = {}; | |
| var name; | |
| for (name in object) { | |
| old[name] = object[name]; | |
| } | |
| return old; | |
| }; | |
| /** | |
| * @param {?} obj | |
| * @param {?} object | |
| * @return {?} | |
| */ | |
| var isObject = function(obj, object) { | |
| if (typeof obj != typeof object) { | |
| return false; | |
| } | |
| if ("object" != typeof obj) { | |
| return obj === object; | |
| } | |
| if (obj instanceof Array) { | |
| if (!(object instanceof Array) || obj.length != object.length) { | |
| return false; | |
| } | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < obj.length;i++) { | |
| if (!isObject(obj[i], object[i])) { | |
| return false; | |
| } | |
| } | |
| return true; | |
| } | |
| /** @type {number} */ | |
| i = 0; | |
| var key; | |
| for (key in obj) { | |
| if (i++, !(key in object && isObject(obj[key], object[key]))) { | |
| return false; | |
| } | |
| } | |
| /** @type {number} */ | |
| var last = 0; | |
| for (key in object) { | |
| if (!(key in obj)) { | |
| return false; | |
| } | |
| last++; | |
| } | |
| return i == last; | |
| }; | |
| /** | |
| * @param {Object} id | |
| * @return {?} | |
| */ | |
| var scriptLoaded = function(id) { | |
| var name; | |
| for (name in id) { | |
| return false; | |
| } | |
| return true; | |
| }; | |
| /** | |
| * @param {?} startOrEnd | |
| * @return {?} | |
| */ | |
| var range = function(startOrEnd) { | |
| /** @type {Array} */ | |
| var result = []; | |
| var optgroup; | |
| for (optgroup in startOrEnd) { | |
| result.push(Number(optgroup)); | |
| } | |
| return result; | |
| }; | |
| /** | |
| * @param {Object} k | |
| * @return {?} | |
| */ | |
| var setVal = function(k) { | |
| /** @type {Array} */ | |
| var r = []; | |
| var i; | |
| for (i in k) { | |
| r.push(k[i]); | |
| } | |
| return r; | |
| }; | |
| /** | |
| * @param {?} obj | |
| * @return {?} | |
| */ | |
| var transpose = function(obj) { | |
| /** @type {number} */ | |
| var transposed = 0; | |
| var prop; | |
| for (prop in obj) { | |
| transposed++; | |
| } | |
| return transposed; | |
| }; | |
| /** @type {RegExp} */ | |
| var unescaper = /\u00A0/g; | |
| /** @type {RegExp} */ | |
| var rclass = /\u200b/g; | |
| /** @type {RegExp} */ | |
| var rAt = /\ufeff/g; | |
| /** | |
| * @param {string} target | |
| * @param {string} x | |
| * @return {?} | |
| */ | |
| var compute = function(target, x) { | |
| /** @type {number} */ | |
| var id = target.length - x.length; | |
| return 0 <= id && target.indexOf(x, id) == id; | |
| }; | |
| /** @type {RegExp} */ | |
| var cjsRequireRegExp = /([.*+?^=!:${}()|\[\]\/\\])/g; | |
| /** @type {RegExp} */ | |
| var rhtml = /[&<>]/; | |
| /** @type {RegExp} */ | |
| var reVar = /\&/g; | |
| /** @type {RegExp} */ | |
| var TB = /\</g; | |
| /** @type {RegExp} */ | |
| var badChars = /\>/g; | |
| /** | |
| * @param {string} template | |
| * @return {?} | |
| */ | |
| var tmpl = function(template) { | |
| if (!rhtml.test(template)) { | |
| return template; | |
| } | |
| if (-1 != template.indexOf("&")) { | |
| template = template.replace(reVar, "&"); | |
| } | |
| if (-1 != template.indexOf("<")) { | |
| template = template.replace(TB, "<"); | |
| } | |
| if (-1 != template.indexOf(">")) { | |
| template = template.replace(badChars, ">"); | |
| } | |
| return template; | |
| }; | |
| /** | |
| * @param {string} text | |
| * @return {?} | |
| */ | |
| var changeDelimiters = function(text) { | |
| return Boolean(text && (5 <= text.length && (128 >= text.length && (-1 != text.indexOf("@") && (-1 != text.indexOf(".") && -1 == text.trim().indexOf(" ")))))); | |
| }; | |
| /** | |
| * @param {string} str | |
| * @return {?} | |
| */ | |
| var truncate = function(str) { | |
| str = str.trim().replace(rclass, "").replace(rAt, ""); | |
| return 0 == str.length; | |
| }; | |
| /** | |
| * @param {string} code | |
| * @return {?} | |
| */ | |
| var unescape = function(code) { | |
| code = code.replace(unescaper, " "); | |
| code = code.replace(rclass, ""); | |
| return code = code.replace(rAt, ""); | |
| }; | |
| /** | |
| * @param {string} str | |
| * @param {number} opt_attributes | |
| * @return {?} | |
| */ | |
| var template = function(str, opt_attributes) { | |
| return Array(opt_attributes + 1).join(str); | |
| }; | |
| /** | |
| * @param {string} array | |
| * @param {string} obj | |
| * @return {?} | |
| */ | |
| var extend = function(array, obj) { | |
| return 0 == array.lastIndexOf(obj, 0); | |
| }; | |
| /** | |
| * @param {RegExp} res | |
| * @param {Range} value | |
| * @return {?} | |
| */ | |
| var isMatch = function(res, value) { | |
| var values = res.exec(value); | |
| return null != values && (0 < values.length && values[0] == value); | |
| }; | |
| var gcd; | |
| var paint; | |
| /** | |
| * @param {Function} callback | |
| * @param {number} opt_attributes | |
| * @return {?} | |
| */ | |
| var push = function(callback, opt_attributes) { | |
| return Zg ? 0 : window.setTimeout(function() { | |
| try { | |
| callback(); | |
| } catch (e) { | |
| throw logError(e), e; | |
| } | |
| }, opt_attributes); | |
| }; | |
| /** | |
| * @param {?} timer | |
| * @return {undefined} | |
| */ | |
| var protectedClearTimeout = function(timer) { | |
| window.clearTimeout(timer); | |
| }; | |
| /** | |
| * @param {Function} type | |
| * @param {number} opt_attributes | |
| * @return {?} | |
| */ | |
| var createDom = function(type, opt_attributes) { | |
| return Zg ? 0 : window.setInterval(function() { | |
| try { | |
| type(); | |
| } catch (e) { | |
| throw logError(e), e; | |
| } | |
| }, opt_attributes); | |
| }; | |
| /** @type {boolean} */ | |
| var Zg = false; | |
| /** | |
| * @param {Function} callback | |
| * @return {?} | |
| */ | |
| var finish = function(callback) { | |
| return push(callback, 0); | |
| }; | |
| /** | |
| * @param {?} id | |
| * @return {undefined} | |
| */ | |
| var getById = function(id) { | |
| protectedClearTimeout(id); | |
| }; | |
| if (window.msSetImmediate) { | |
| finish = bind(window.msSetImmediate, window); | |
| getById = bind(window.msClearImmediate, window); | |
| } else { | |
| if (window.postMessage) { | |
| (function() { | |
| var done = {}; | |
| /** @type {boolean} */ | |
| var b = false; | |
| /** @type {number} */ | |
| var rightId = 0; | |
| /** @type {boolean} */ | |
| var d = false; | |
| /** | |
| * @param {Function} callback | |
| * @return {?} | |
| */ | |
| finish = function(callback) { | |
| if (!d) { | |
| addEvent(window, "message", function(data) { | |
| if (data.data && "setImmediate" == data.data.action) { | |
| data = done; | |
| done = {}; | |
| /** @type {boolean} */ | |
| b = false; | |
| var declarationError; | |
| var key; | |
| for (key in data) { | |
| var label = data[key]; | |
| if (label) { | |
| try { | |
| label(); | |
| } catch (e) { | |
| logError(e); | |
| declarationError = e; | |
| } | |
| } | |
| } | |
| if (declarationError) { | |
| throw declarationError; | |
| } | |
| } | |
| }); | |
| /** @type {boolean} */ | |
| d = true; | |
| } | |
| /** @type {number} */ | |
| var id = rightId++; | |
| /** @type {Function} */ | |
| done[id] = callback; | |
| if (!b) { | |
| /** @type {boolean} */ | |
| b = true; | |
| window.postMessage({ | |
| action : "setImmediate" | |
| }, location.href); | |
| } | |
| return id; | |
| }; | |
| /** | |
| * @param {?} id | |
| * @return {undefined} | |
| */ | |
| getById = function(id) { | |
| /** @type {null} */ | |
| done[id] = null; | |
| }; | |
| })(); | |
| } | |
| } | |
| /** @type {Array} */ | |
| var common = []; | |
| (function() { | |
| /** @type {function (this:Window, function (number): ?, (Element|null)=): number} */ | |
| var elements = window.requestAnimationFrame || (window.webkitRequestAnimationFrame || (window.mozRequestAnimationFrame || (window.msRequestAnimationFrame || window.oRequestAnimationFrame))); | |
| gcd = elements ? bind(elements, window) : function($sanitize) { | |
| return push(function() { | |
| $sanitize(resetQueues()); | |
| }, 16); | |
| }; | |
| })(); | |
| /** | |
| * @param {Function} callback | |
| * @return {undefined} | |
| */ | |
| var synchronize = function(callback) { | |
| if (!common.length) { | |
| gcd(function(cm) { | |
| var codeSegments = toPaddedString(common); | |
| /** @type {Array} */ | |
| common = []; | |
| var declarationError; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < codeSegments.length;i++) { | |
| try { | |
| codeSegments[i](cm); | |
| } catch (e) { | |
| logError(e); | |
| declarationError = e; | |
| } | |
| } | |
| if (declarationError) { | |
| throw declarationError; | |
| } | |
| }); | |
| } | |
| common.push(callback); | |
| }; | |
| /** | |
| * @param {Function} exec | |
| * @param {number} opt_attributes | |
| * @return {undefined} | |
| */ | |
| var asyncHandler = function(exec, opt_attributes) { | |
| /** | |
| * @return {undefined} | |
| */ | |
| function restoreScript() { | |
| if (!d) { | |
| /** @type {boolean} */ | |
| d = true; | |
| protectedClearTimeout(id); | |
| exec(); | |
| } | |
| } | |
| /** @type {boolean} */ | |
| var d = false; | |
| var id = push(restoreScript, opt_attributes); | |
| synchronize(restoreScript); | |
| }; | |
| /** @type {Array} */ | |
| var visited = []; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var updateProgress = function() { | |
| var codeSegments = toPaddedString(visited); | |
| /** @type {Array} */ | |
| visited = []; | |
| var declarationError; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < codeSegments.length;i++) { | |
| try { | |
| codeSegments[i](); | |
| } catch (e) { | |
| logError(e); | |
| declarationError = e; | |
| } | |
| } | |
| if (declarationError) { | |
| throw declarationError; | |
| } | |
| }; | |
| (function() { | |
| var instance = window.MutationObserver || window.WebKitMutationObserver; | |
| if (instance) { | |
| /** @type {MutationObserver} */ | |
| instance = new instance(updateProgress); | |
| /** @type {Element} */ | |
| var container = document.createElement("input"); | |
| instance.observe(container, { | |
| attributes : true | |
| }); | |
| /** | |
| * @return {undefined} | |
| */ | |
| paint = function() { | |
| /** @type {boolean} */ | |
| container.hidden = !container.hidden; | |
| }; | |
| } else { | |
| /** | |
| * @return {undefined} | |
| */ | |
| paint = function() { | |
| finish(updateProgress); | |
| }; | |
| } | |
| })(); | |
| /** | |
| * @param {Function} obj | |
| * @return {?} | |
| */ | |
| var fold = function(obj) { | |
| if (!visited.length) { | |
| paint(); | |
| } | |
| var init = visited.length; | |
| visited.push(obj); | |
| return init; | |
| }; | |
| /** | |
| * @param {Function} callback | |
| * @return {?} | |
| */ | |
| var crop = function(callback) { | |
| return delay(callback, function(done) { | |
| return finish(done, true); | |
| }); | |
| }; | |
| /** | |
| * @param {Function} callback | |
| * @param {number} opt_attributes | |
| * @return {?} | |
| */ | |
| var callLater = function(callback, opt_attributes) { | |
| return delay(callback, function(next_callback) { | |
| return push(next_callback, opt_attributes); | |
| }); | |
| }; | |
| /** | |
| * @param {Function} func | |
| * @param {Function} definition | |
| * @return {?} | |
| */ | |
| var delay = function(func, definition) { | |
| return function() { | |
| var context = this; | |
| if (!("loop.js.deferredWrapper" in context)) { | |
| /** @type {Array.<?>} */ | |
| var args = Array.prototype.slice.call(arguments, 0); | |
| context["loop.js.deferredWrapper"] = definition(function() { | |
| delete context["loop.js.deferredWrapper"]; | |
| func.apply(context, args); | |
| }); | |
| } | |
| }; | |
| }; | |
| /** @type {Array} */ | |
| var primes = []; | |
| var obj = {}; | |
| /** | |
| * @param {string} type | |
| * @param {string} name | |
| * @param {Function} state | |
| * @return {undefined} | |
| */ | |
| var $ = function(type, name, state) { | |
| if (!(type in obj)) { | |
| enableSaving(type); | |
| } | |
| /** @type {Function} */ | |
| obj[type][name] = state; | |
| }; | |
| /** | |
| * @param {Function} n | |
| * @return {undefined} | |
| */ | |
| var attempt = function(n) { | |
| primes.push(n); | |
| }; | |
| /** | |
| * @param {string} message | |
| * @return {?} | |
| */ | |
| var eventCapture = function(message) { | |
| return "blur" == message || ("focus" == message || ("scroll" == message || "error" == message)); | |
| }; | |
| /** | |
| * @param {Object} object | |
| * @param {string} type | |
| * @param {Function} target | |
| * @return {?} | |
| */ | |
| var addEvent = function(object, type, target) { | |
| type = "transitionend" == type && (attrs && extend(attrs, "webkit")) ? "webkitTransitionEnd" : type; | |
| /** @type {boolean} */ | |
| var d = "click" != type; | |
| var handler; | |
| if (object.addEventListener) { | |
| var phase = eventCapture(type); | |
| /** | |
| * @param {?} listener | |
| * @return {undefined} | |
| */ | |
| handler = function(listener) { | |
| if (!inPseudo || !d) { | |
| try { | |
| target.call(this, listener); | |
| } catch (e) { | |
| throw logError(e), e; | |
| } | |
| } | |
| }; | |
| object.addEventListener(type, handler, phase); | |
| } else { | |
| /** | |
| * @param {Object} e | |
| * @return {undefined} | |
| */ | |
| handler = function(e) { | |
| if (!inPseudo || "click" == type) { | |
| e = e || window.event; | |
| e.target = e.srcElement || window.document; | |
| try { | |
| target.call(e.target, e); | |
| } catch (ex) { | |
| throw logError(ex), ex; | |
| } | |
| } | |
| }; | |
| object.attachEvent("on" + type, handler); | |
| } | |
| return{ | |
| tt : object, | |
| Hm : type, | |
| /** @type {function (?): undefined} */ | |
| Zp : handler | |
| }; | |
| }; | |
| /** | |
| * @param {?} event | |
| * @return {undefined} | |
| */ | |
| var removeListener = function(event) { | |
| var element = event.tt; | |
| if (element) { | |
| if (element.removeEventListener) { | |
| element.removeEventListener(event.Hm, event.Zp, eventCapture(event.Hm)); | |
| } else { | |
| element.detachEvent("on" + event.Hm, event.Zp); | |
| } | |
| delete event.tt; | |
| delete event.Zp; | |
| } else { | |
| console.warn("Ignoring events.removeListener call for already-removed " + event.Hm + " handler"); | |
| } | |
| }; | |
| /** | |
| * @param {Object} target | |
| * @param {string} type | |
| * @param {Function} listener | |
| * @return {?} | |
| */ | |
| var addListener = function(target, type, listener) { | |
| var node = addEvent(target, type, function(event) { | |
| removeListener(node); | |
| listener.call(this, event); | |
| }); | |
| return node; | |
| }; | |
| /** | |
| * @param {Object} nativeEvent | |
| * @return {undefined} | |
| */ | |
| var stopEvent = function(nativeEvent) { | |
| if (nativeEvent.preventDefault) { | |
| nativeEvent.preventDefault(); | |
| } else { | |
| /** @type {boolean} */ | |
| nativeEvent.returnValue = false; | |
| } | |
| }; | |
| /** | |
| * @param {Object} event | |
| * @return {undefined} | |
| */ | |
| var cancelEvent = function(event) { | |
| if (event.stopPropagation) { | |
| event.stopPropagation(); | |
| } else { | |
| /** @type {boolean} */ | |
| event.cancelBubble = true; | |
| } | |
| /** @type {boolean} */ | |
| event["events.js.stopPropagation"] = true; | |
| }; | |
| /** | |
| * @param {Object} e | |
| * @return {?} | |
| */ | |
| var fixEvent = function(e) { | |
| return e.charCode ? String.fromCharCode(e.charCode) : ""; | |
| }; | |
| /** @type {null} */ | |
| var _d = null; | |
| /** | |
| * @param {string} type | |
| * @return {undefined} | |
| */ | |
| var enableSaving = function(type) { | |
| obj[type] = {}; | |
| if ("submit" != type || "onsubmit" in window.document.body) { | |
| addEvent(window.document.body, type, function(event) { | |
| var element = event.target; | |
| for (;element;element = element.parentNode) { | |
| if (element.nodeType == ELEMENT_NODE) { | |
| var key = element.getAttribute("data-" + type); | |
| if (key) { | |
| var fn = obj[type][key]; | |
| if (fn) { | |
| var self = new klass([element]); | |
| _d = { | |
| target : self, | |
| qy : type, | |
| Ky : key | |
| }; | |
| key = fn.call(self, event); | |
| /** @type {null} */ | |
| _d = null; | |
| if (!key) { | |
| stopEvent(event); | |
| break; | |
| } | |
| if (event["events.js.stopPropagation"]) { | |
| break; | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }); | |
| } else { | |
| registerEvents(); | |
| } | |
| }; | |
| /** @type {boolean} */ | |
| var inPseudo = false; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var registerEvents = function() { | |
| addEvent(window.document.body, "focusin", function(oEvent) { | |
| if ("INPUT" == oEvent.target.tagName || "TEXTAREA" == oEvent.target.tagName) { | |
| var element = jQuery(oEvent.target).parent("form"); | |
| if (attr(element, "submit")) { | |
| if (!attr(element, "iesubmit")) { | |
| element.setData("iesubmit", "true"); | |
| element.addListener("submit", function(e) { | |
| var method = element.data("submit"); | |
| if (method = obj.submit[method]) { | |
| if (!method.call(new klass([e.target]), e)) { | |
| /** @type {boolean} */ | |
| e.returnValue = false; | |
| } | |
| } | |
| }); | |
| } | |
| } | |
| } | |
| }); | |
| }; | |
| /** @type {number} */ | |
| var touchend = 8; | |
| var keys = { | |
| eB : touchend, | |
| CG : 9, | |
| RF : 13, | |
| fG : 16, | |
| xC : 27, | |
| jG : 32, | |
| TA : 37, | |
| VA : 38, | |
| UA : 39, | |
| SA : 40, | |
| NB : 46, | |
| A : 65, | |
| bB : 66, | |
| Iw : 67, | |
| D : 68, | |
| E : 69, | |
| yC : 70, | |
| ZC : 71, | |
| H : 72, | |
| Zw : 73, | |
| GD : 74, | |
| LD : 75, | |
| ks : 76, | |
| M : 77, | |
| GE : 78, | |
| bF : 79, | |
| hF : 80, | |
| zF : 81, | |
| BF : 82, | |
| S : 83, | |
| BG : 84, | |
| kH : 85, | |
| ox : 86, | |
| W : 87, | |
| X : 88, | |
| EH : 89, | |
| Z : 90, | |
| MD : 48, | |
| ND : 49, | |
| OD : 50, | |
| PD : 51, | |
| QD : 52, | |
| RD : 53, | |
| SD : 54, | |
| UD : 55, | |
| VD : 56, | |
| WD : 57, | |
| SE : 96, | |
| TE : 97, | |
| UE : 98, | |
| VE : 99, | |
| WE : 100, | |
| XE : 101, | |
| YE : 102, | |
| ZE : 103, | |
| $E : 104, | |
| aF : 105, | |
| Kw : 188, | |
| rF : 190, | |
| XC : 191, | |
| YC : 192, | |
| XD : 219, | |
| fB : 220, | |
| SF : 221, | |
| iG : 222, | |
| aG : 186, | |
| wC : 187, | |
| nD : 189, | |
| $F : 59, | |
| vC : 107, | |
| mD : 109, | |
| zC : 112, | |
| DC : 113, | |
| EC : 114, | |
| FC : 115, | |
| GC : 116, | |
| HC : 117, | |
| IC : 118, | |
| JC : 119, | |
| KC : 120, | |
| AC : 121, | |
| BC : 122, | |
| CC : 123 | |
| }; | |
| var pressedKeys = {}; | |
| var keyName; | |
| for (keyName in keys) { | |
| /** @type {string} */ | |
| pressedKeys[keys[keyName]] = keyName; | |
| } | |
| attempt(function() { | |
| addCharsToCharClass(function(el, d, dataAndEvents) { | |
| if (_d) { | |
| if (dataAndEvents) { | |
| d = _d; | |
| /** @type {null} */ | |
| _d = null; | |
| el.current_event_target = toString(d.target.get(), 0, 1); | |
| el.current_event_name = d.qy; | |
| el.current_event_handler = d.Ky; | |
| } | |
| } | |
| }); | |
| }); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Socket = function() { | |
| /** @type {Array} */ | |
| this.Nf = []; | |
| /** @type {number} */ | |
| this.Gs = 0; | |
| /** @type {boolean} */ | |
| this.yp = true; | |
| /** @type {Array} */ | |
| this.cr = []; | |
| /** @type {Array} */ | |
| this.Cp = []; | |
| /** | |
| * @return {undefined} | |
| */ | |
| this.qv = function() { | |
| window.location.reload(true); | |
| }; | |
| /** @type {boolean} */ | |
| this.Fu = "10.0.2.2" == location.hostname; | |
| /** @type {boolean} */ | |
| this.rl = false; | |
| /** @type {string} */ | |
| this.tv = "/-/save-diagnostics-report"; | |
| /** @type {null} */ | |
| this.tr = null; | |
| /** @type {boolean} */ | |
| this.Ck = "localhost" == location.hostname; | |
| /** @type {boolean} */ | |
| this.Ty = "function" != typeof window.getSelection; | |
| }; | |
| /** @type {number} */ | |
| var js_init_time_ms = (new Date).getTime(); | |
| var knownByType = reject("keyboard_action", "load_document", "unload_document", "save_document", "document_web_socket_update"); | |
| attempt(function() { | |
| if (isContentHeight) { | |
| /** @type {number} */ | |
| knownByType.input_event = 1; | |
| } | |
| }); | |
| var exception = reject("exception", "malformed_table", "stuck_save_in_progress", "unknown_root_container_type", "unbalanced_listen_pause", "io_call_error", "sections_stale", "listen_cursor_decrease", "typing_in_unexpected_section", "new_section_missing_dirty_fields", "pending_entities_after_save", "pending_fields_during_save", "dropped_non_comment_updates", "autocomplete_result_selected_without_context"); | |
| var dest = reject("listen_cursor_decrease", "unbalanced_listen_pause", "sections_stale"); | |
| /** | |
| * @param {?} e | |
| * @return {undefined} | |
| */ | |
| var logError = function(e) { | |
| var fn = opts; | |
| var err = getCallback(fn); | |
| if (!err || (err.stack != e.stack || err.message != e.message)) { | |
| try { | |
| call(fn, "exception", { | |
| stack : e.stack || "", | |
| message : e.message || "" | |
| }); | |
| } catch (ex) { | |
| console.error("Exception during exception recording", ex.message, ex.stack); | |
| console.error("Original exception", e.message, e.stack); | |
| } | |
| } | |
| }; | |
| /** | |
| * @param {?} self | |
| * @param {string} type | |
| * @param {?} opt_attributes | |
| * @return {?} | |
| */ | |
| var call = function(self, type, opt_attributes) { | |
| if (self.rl) { | |
| return null; | |
| } | |
| /** @type {boolean} */ | |
| self.rl = true; | |
| var cache = { | |
| type : type, | |
| timestamp_ms : now() | |
| }; | |
| /** @type {boolean} */ | |
| var rangeEnd = cache.type in exception; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < self.Cp.length;i++) { | |
| try { | |
| rangeEnd |= self.Cp[i](cache, type in knownByType, rangeEnd); | |
| } catch (g) { | |
| } | |
| } | |
| if (opt_attributes) { | |
| var prop; | |
| for (prop in opt_attributes) { | |
| cache[prop] = opt_attributes[prop]; | |
| } | |
| } | |
| self.Nf.push(cache); | |
| if (self.Ty) { | |
| /** @type {boolean} */ | |
| rangeEnd = false; | |
| } | |
| if (rangeEnd) { | |
| if ("report_requested" != type) { | |
| /** @type {boolean} */ | |
| self.yp = false; | |
| if (!self.gk) { | |
| if (10 > self.Gs) { | |
| self.gk = push(bind(function() { | |
| this.Gs++; | |
| request(this, true); | |
| }, self), !self.Ck || (type in dest || self.Fu) ? 1E3 : 1E4); | |
| } | |
| } | |
| simulate(self, type); | |
| } | |
| } | |
| if (self.yp && 25 < self.Nf.length || 100 < self.Nf.length) { | |
| self.Nf.shift(); | |
| } | |
| /** @type {boolean} */ | |
| self.rl = false; | |
| return cache; | |
| }; | |
| /** | |
| * @param {?} value | |
| * @param {string} e | |
| * @param {Object} opt_attributes | |
| * @return {undefined} | |
| */ | |
| var formatError = function(value, e, opt_attributes) { | |
| opt_attributes = opt_attributes || {}; | |
| try { | |
| throw Error(""); | |
| } catch (x) { | |
| opt_attributes.stack = x.stack || ""; | |
| } | |
| call(value, e, opt_attributes); | |
| }; | |
| /** | |
| * @param {Function} spaceName | |
| * @return {undefined} | |
| */ | |
| var gatherStats = function(spaceName) { | |
| opts.cr.push(spaceName); | |
| }; | |
| /** | |
| * @param {Function} start | |
| * @return {undefined} | |
| */ | |
| var addCharsToCharClass = function(start) { | |
| opts.Cp.push(start); | |
| }; | |
| /** | |
| * @param {string} clicked | |
| * @return {undefined} | |
| */ | |
| Socket.prototype.Tv = function(clicked) { | |
| /** @type {string} */ | |
| this.tr = clicked; | |
| }; | |
| /** | |
| * @param {?} options | |
| * @param {string} type | |
| * @return {undefined} | |
| */ | |
| var simulate = function(options, type) { | |
| if (!options.Gm) { | |
| options.Gm = get("<div id='diagnostics-errorbar' class='errorbar' contenteditable='false'><button data-click='send-diagnostics-report-errorbar'>Send diagnostics report and reload</button><button data-click='close-diagnostics-errorbar'>Ignore at my own risk</button>Something went wrong, got an unexpected error.</div>"); | |
| } | |
| if (!!options.Ck) { | |
| if (!(type in dest)) { | |
| item.append(options.Gm); | |
| } | |
| } | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var removeCovers = function() { | |
| var fragment = opts; | |
| if (fragment.Gm) { | |
| fragment.Gm.remove(); | |
| } | |
| }; | |
| /** | |
| * @param {?} fn | |
| * @return {?} | |
| */ | |
| var getCallback = function(fn) { | |
| /** @type {number} */ | |
| var MIN_SEARCH_LENGTH = now() - 1E3; | |
| /** @type {number} */ | |
| var key = fn.Nf.length - 1; | |
| for (;0 <= key;key--) { | |
| var q = fn.Nf[key]; | |
| /** @type {boolean} */ | |
| var exception = q.timestamp_ms >= MIN_SEARCH_LENGTH; | |
| if ("exception" == q.type && exception) { | |
| return q; | |
| } | |
| if (!exception) { | |
| break; | |
| } | |
| } | |
| return null; | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var pollPath = function() { | |
| var suiteView = opts; | |
| if (!suiteView.AA) { | |
| suiteView.AA = addListener(window, "unload", bind(function() { | |
| if (this.gk) { | |
| request(this, true, void 0, true); | |
| } | |
| }, suiteView)); | |
| } | |
| }; | |
| /** | |
| * @param {?} self | |
| * @param {boolean} recurring | |
| * @param {?} func | |
| * @param {boolean} deepDataAndEvents | |
| * @return {undefined} | |
| */ | |
| var request = function(self, recurring, func, deepDataAndEvents) { | |
| recurring = recurring || false; | |
| if (self.gk) { | |
| protectedClearTimeout(self.gk); | |
| delete self.gk; | |
| } | |
| call(self, "report_requested"); | |
| var options = { | |
| events : self.Nf, | |
| page_url : location.href, | |
| silent : recurring, | |
| git_commit_hash : window.kGitCommitHash, | |
| js_init_time_ms : js_init_time_ms | |
| }; | |
| if ("performance" in window && ("memory" in window.performance && "usedJSHeapSize" in window.performance.memory)) { | |
| /** @type {(PerformanceMemory|null)} */ | |
| var attr = window.performance.memory; | |
| /** @type {number} */ | |
| options.js_heap_size_used = attr.usedJSHeapSize; | |
| /** @type {number} */ | |
| options.js_heap_size_total = attr.totalJSHeapSize; | |
| /** @type {number} */ | |
| options.js_heap_size_limit = attr.jsHeapSizeLimit; | |
| } | |
| /** @type {number} */ | |
| attr = 0; | |
| for (;attr < self.cr.length;attr++) { | |
| try { | |
| self.cr[attr](options); | |
| } catch (g) { | |
| } | |
| } | |
| /** @type {Array} */ | |
| self.Nf = []; | |
| /** @type {boolean} */ | |
| self.yp = true; | |
| if (ci) { | |
| if (func) { | |
| func(); | |
| } | |
| } else { | |
| if (self.Fu) { | |
| sendRequest(options); | |
| if (func) { | |
| func(); | |
| } | |
| } else { | |
| next(self.tv, { | |
| report : deepMerge(options) | |
| }, function(dataAndEvents) { | |
| if ("diagnostics_report_url" in dataAndEvents) { | |
| console.warn("Diagnostics report URL: " + dataAndEvents.diagnostics_report_url); | |
| } | |
| if (!recurring) { | |
| error("Sent diagnostics report."); | |
| } | |
| console.log("Sent diagnostics report."); | |
| if (func) { | |
| func(); | |
| } | |
| }, bind(function() { | |
| if (!recurring) { | |
| error("Could not send diagnostics report."); | |
| } | |
| console.log("Could not send diagnostics report."); | |
| Array.prototype.unshift.apply(this.Nf, options.events); | |
| if (func) { | |
| func(); | |
| } | |
| }, self), deepDataAndEvents, function(a) { | |
| try { | |
| /** @type {boolean} */ | |
| a.withCredentials = true; | |
| } catch (b) { | |
| } | |
| }, bind(function(tokenRequest) { | |
| if (this.tr) { | |
| tokenRequest.setRequestHeader("Authorization", "Bearer " + this.tr); | |
| } | |
| }, self)); | |
| } | |
| } | |
| }; | |
| /** | |
| * @param {?} obj1 | |
| * @return {?} | |
| */ | |
| var deepMerge = function(obj1) { | |
| /** @type {Array} */ | |
| var ancestors = []; | |
| return JSON.stringify(obj1, function(dataAndEvents, node) { | |
| if ("object" == typeof node && null !== node) { | |
| if (-1 != ancestors.indexOf(node)) { | |
| return node instanceof Array ? [] : {}; | |
| } | |
| ancestors.push(node); | |
| } | |
| return node instanceof Node ? toString(node, 0, 1) : node; | |
| }); | |
| }; | |
| /** | |
| * @param {Object} obj2 | |
| * @return {undefined} | |
| */ | |
| var sendRequest = function(obj2) { | |
| console.group("Diagnostic report"); | |
| var p; | |
| for (p in obj2) { | |
| if ("events" == p) { | |
| var codeSegments = obj2[p]; | |
| console.group("Events"); | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < codeSegments.length;i++) { | |
| console.log(codeSegments[i]); | |
| } | |
| console.groupEnd(); | |
| } else { | |
| console.log(p, obj2[p]); | |
| } | |
| } | |
| console.groupEnd(); | |
| }; | |
| var opts = new Socket; | |
| $("click", "send-diagnostics-report", function() { | |
| request(opts); | |
| return true; | |
| }); | |
| $("click", "send-diagnostics-report-errorbar", function() { | |
| removeCovers(); | |
| request(opts, false, opts.qv); | |
| return true; | |
| }); | |
| $("click", "close-diagnostics-errorbar", function() { | |
| removeCovers(); | |
| return true; | |
| }); | |
| attempt(function() { | |
| var initialConfig = { | |
| extension : 1, | |
| miscellaneous_bindings : 1, | |
| runtime : 1, | |
| schemaUtils : 1 | |
| }; | |
| /** | |
| * @param {Object} message | |
| * @param {(Object|string)} name | |
| * @param {?} u | |
| * @return {?} | |
| */ | |
| window.onerror = function(message, name, u) { | |
| if (external && (null === name || extend(name, "resource:/")) || (applyIfNotSet && name in initialConfig || (message && -1 != message.indexOf("stopme is not defined") || message && -1 != message.indexOf("NPObject")))) { | |
| return false; | |
| } | |
| try { | |
| if (window.event) { | |
| if (window.event.error) { | |
| logError(window.event.error); | |
| } | |
| } | |
| a: { | |
| var fn = opts; | |
| var prototype = window.event && window.event.colno ? window.event.colno : 0; | |
| var object = getCallback(fn); | |
| if (!object || (!compute(message, object.message) || "script_url" in object)) { | |
| object = call(fn, "exception"); | |
| if (!object) { | |
| break a; | |
| } | |
| /** @type {Object} */ | |
| object.message = message; | |
| } | |
| /** @type {(Object|string)} */ | |
| object.script_url = name; | |
| object.line_number = u; | |
| object.column_number = prototype; | |
| } | |
| } catch (e) { | |
| console.error("Exception during error handler", e.message, e.stack); | |
| } | |
| return false; | |
| }; | |
| }); | |
| var a2 = void 0; | |
| /** | |
| * @param {string} id | |
| * @return {?} | |
| */ | |
| var _next = function(id) { | |
| return(id = document.cookie.match("\\b" + id + "=([^;]*)\\b")) ? id[1] : void 0; | |
| }; | |
| /** | |
| * @param {string} value | |
| * @param {string} val | |
| * @param {number} i | |
| * @return {undefined} | |
| */ | |
| var startsWith = function(value, val, i) { | |
| /** @type {string} */ | |
| value = value + "=" + val + ";path=/;expires=" + (new Date((new Date).getTime() + i)).toUTCString(); | |
| /** @type {string} */ | |
| val = window.location.hostname; | |
| /** @type {number} */ | |
| i = val.lastIndexOf("."); | |
| if (0 < i) { | |
| /** @type {number} */ | |
| i = val.lastIndexOf(".", i - 1); | |
| /** @type {string} */ | |
| value = 0 < i ? value + (";domain=" + val.substring(i)) : value + (";domain=." + val); | |
| } | |
| /** @type {string} */ | |
| document.cookie = value; | |
| }; | |
| /** | |
| * @param {Object} event | |
| * @return {undefined} | |
| */ | |
| var onKeyDown = function(event) { | |
| var current = event.target; | |
| if ("FORM" == current.tagName) { | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < current.elements.length;i++) { | |
| var input = current.elements[i]; | |
| if (exec(input.getAttribute("required")) && (!checkElements(input.getAttribute("required")) && !input.value)) { | |
| input.focus(); | |
| stopEvent(event); | |
| break; | |
| } | |
| } | |
| } | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| var getCacheKey = function() { | |
| if (isFunction(a2)) { | |
| /** @type {null} */ | |
| a2 = null; | |
| var self = jQuery("script[data-js-client-hash]"); | |
| if (!self.empty()) { | |
| a2 = self.data("js-client-hash"); | |
| } | |
| } | |
| return a2; | |
| }; | |
| /** @type {boolean} */ | |
| var ni = true; | |
| /** | |
| * @return {?} | |
| */ | |
| var isFn = function() { | |
| return ni; | |
| }; | |
| /** @type {Array} */ | |
| var handlers = []; | |
| /** | |
| * @param {?} object | |
| * @return {undefined} | |
| */ | |
| var freeze = function(object) { | |
| handlers.push(object); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var completed = function() { | |
| var e = isFn(); | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < handlers.length;i++) { | |
| handlers[i](e); | |
| } | |
| }; | |
| /** | |
| * @param {string} path | |
| * @return {?} | |
| */ | |
| var getDirectory = function(path) { | |
| /** @type {Array.<string>} */ | |
| var codeSegments = location.search.substring(1).split("&"); | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < codeSegments.length;i++) { | |
| /** @type {Array.<string>} */ | |
| var part = codeSegments[i].split("=", 2); | |
| if (decodeURIComponent(part[0]) == path) { | |
| return decodeURIComponent(part[1]); | |
| } | |
| } | |
| return null; | |
| }; | |
| /** | |
| * @param {Object} e | |
| * @return {?} | |
| */ | |
| var isValidFileDrag = function(e) { | |
| return e.dataTransfer.types && (e.dataTransfer.types.indexOf ? -1 != e.dataTransfer.types.indexOf("Files") : e.dataTransfer.types.contains("application/x-moz-file")); | |
| }; | |
| (function() { | |
| if ("hidden" in document) { | |
| /** | |
| * @return {?} | |
| */ | |
| isFn = function() { | |
| return!document.hidden; | |
| }; | |
| document.addEventListener("visibilitychange", completed, false); | |
| } else { | |
| if ("webkitHidden" in document) { | |
| /** | |
| * @return {?} | |
| */ | |
| isFn = function() { | |
| return!document.webkitHidden; | |
| }; | |
| document.addEventListener("webkitvisibilitychange", completed, false); | |
| } else { | |
| if ("mozHidden" in document) { | |
| /** | |
| * @return {?} | |
| */ | |
| isFn = function() { | |
| return!document.mozHidden; | |
| }; | |
| document.addEventListener("mozvisibilitychange", completed, false); | |
| } else { | |
| if ("msHidden" in document) { | |
| /** | |
| * @return {?} | |
| */ | |
| isFn = function() { | |
| return!document.msHidden; | |
| }; | |
| document.addEventListener("msvisibilitychange", completed, false); | |
| } else { | |
| /** | |
| * @return {undefined} | |
| */ | |
| var ready = function() { | |
| /** @type {boolean} */ | |
| ni = true; | |
| completed(); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var keyDown = function() { | |
| /** @type {boolean} */ | |
| ni = false; | |
| completed(); | |
| }; | |
| if (window.addEventListener) { | |
| window.addEventListener("focus", ready, true); | |
| window.addEventListener("blur", keyDown, true); | |
| } else { | |
| document.attachEvent("onfocusin", ready); | |
| document.attachEvent("onfocusout", keyDown); | |
| } | |
| } | |
| } | |
| } | |
| } | |
| })(); | |
| attempt(function() { | |
| /** @type {number} */ | |
| var value = -(new Date).getTimezoneOffset(); | |
| var cDigit = _next("tz"); | |
| if (!(cDigit && parseInt(cDigit, 10) == value)) { | |
| startsWith("tz", value, 315569E5); | |
| } | |
| }); | |
| attempt(function() { | |
| if ("onsubmit" in window.document.body) { | |
| addEvent(document.body, "submit", onKeyDown); | |
| } else { | |
| addEvent(window.document.body, "focusin", function(element) { | |
| if ("INPUT" == element.target.tagName || "TEXTAREA" == element.target.tagName) { | |
| element = jQuery(element.target).parent("form"); | |
| if (!attr(element, "ierequired")) { | |
| element.setData("ierequired", "true"); | |
| element.addListener("submit", onKeyDown); | |
| } | |
| } | |
| }); | |
| } | |
| }); | |
| attempt(function() { | |
| addEvent(document, "keydown", function(event) { | |
| if (!(event.keyCode != touchend)) { | |
| if (!event.altKey) { | |
| if (!event.metaKey) { | |
| if (!event.ctrlKey) { | |
| if (!("BODY" != event.target.nodeName && "HTML" != event.target.nodeName)) { | |
| stopEvent(event); | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }); | |
| }); | |
| attempt(function() { | |
| if (window.matchMedia) { | |
| window.matchMedia("(-webkit-min-device-pixel-ratio: 1.5),(min-resolution: 1.5dppx)").addListener(function() { | |
| if ((!exec(navigator.onLine) || navigator.onLine) && "kStylesheetUrls" in window) { | |
| /** @type {number} */ | |
| var aname = 1 < window.devicePixelRatio ? 1 : 0; | |
| replace(jQuery("head link[rel=stylesheet]"), createElement("link").setAttribute("rel", "stylesheet").setAttribute("href", kStylesheetUrls[aname])); | |
| } | |
| }); | |
| } | |
| }); | |
| gatherStats(function(dataAndEvents) { | |
| dataAndEvents.js_client_hash = getCacheKey(); | |
| }); | |
| append("browser.setJsClientHash", function(a3) { | |
| /** @type {number} */ | |
| a2 = a3; | |
| }); | |
| /** | |
| * @param {?} elem | |
| * @param {(number|string)} val | |
| * @return {undefined} | |
| */ | |
| var input = function(elem, val) { | |
| /** @type {boolean} */ | |
| this.Yf = this.cn = false; | |
| /** @type {null} */ | |
| this.sb = null; | |
| this.od = {}; | |
| this.oy = elem; | |
| this.ao = val || "title"; | |
| /** @type {Array} */ | |
| this.bn = []; | |
| }; | |
| self = input.prototype; | |
| /** | |
| * @return {undefined} | |
| */ | |
| self.load = function() { | |
| if (!!data.ka) { | |
| if (!this.cn) { | |
| if (!this.Yf) { | |
| /** @type {boolean} */ | |
| this.Yf = true; | |
| next(this.oy, {}, bind(this.an, this), bind(function() { | |
| /** @type {boolean} */ | |
| this.Yf = false; | |
| }, this)); | |
| } | |
| } | |
| } | |
| }; | |
| /** | |
| * @param {?} type | |
| * @return {undefined} | |
| */ | |
| self.an = function(type) { | |
| this.Xh(type); | |
| /** @type {number} */ | |
| type = 0; | |
| for (;type < this.bn.length;type++) { | |
| this.bn[type](); | |
| } | |
| /** @type {Array} */ | |
| this.bn = []; | |
| }; | |
| /** | |
| * @param {Object} state | |
| * @return {undefined} | |
| */ | |
| self.Xh = function(state) { | |
| /** @type {boolean} */ | |
| this.cn = true; | |
| /** @type {boolean} */ | |
| this.Yf = false; | |
| this.sb = new Position(state.index); | |
| this.od = state.objects; | |
| }; | |
| /** | |
| * @param {?} d | |
| * @param {?} fn | |
| * @return {undefined} | |
| */ | |
| var nextTick = function(d, fn) { | |
| if (d.cn) { | |
| fn(); | |
| } else { | |
| d.bn.push(fn); | |
| } | |
| }; | |
| /** | |
| * @param {?} name | |
| * @param {boolean} recurring | |
| * @return {undefined} | |
| */ | |
| self.update = function(name, recurring) { | |
| nextTick(this, bind(function() { | |
| /** @type {boolean} */ | |
| var c = false; | |
| if (!(name in this.od)) { | |
| this.od[name] = {}; | |
| /** @type {boolean} */ | |
| c = true; | |
| } | |
| /** @type {boolean} */ | |
| this.od[name] = recurring; | |
| if (c) { | |
| this.sb.add(recurring[this.ao], name); | |
| } else { | |
| this.sb.update(recurring[this.ao], name); | |
| } | |
| }, this)); | |
| }; | |
| /** | |
| * @param {?} name | |
| * @return {undefined} | |
| */ | |
| self.remove = function(name) { | |
| nextTick(this, bind(function() { | |
| delete this.od[name]; | |
| this.sb.remove(name); | |
| }, this)); | |
| }; | |
| /** | |
| * @param {Function} arr | |
| * @return {undefined} | |
| */ | |
| self.sort = function(arr) { | |
| arr.sort(bind(function(tokens, $) { | |
| var a = tokens[this.ao].toLowerCase(); | |
| var b = $[this.ao].toLowerCase(); | |
| return a < b ? -1 : a > b ? 1 : 0; | |
| }, this)); | |
| }; | |
| /** @type {function (): ?} */ | |
| self.Jd = tmp; | |
| /** @type {function (): ?} */ | |
| self.yg = tmp; | |
| /** | |
| * @param {?} name | |
| * @return {?} | |
| */ | |
| self.Ka = function(name) { | |
| return this.od[name]; | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Window = function() { | |
| input.call(this, "/-/documents"); | |
| }; | |
| inherits(Window, input); | |
| self = Window.prototype; | |
| /** | |
| * @param {Object} val | |
| * @return {undefined} | |
| */ | |
| self.Xh = function(val) { | |
| Window.Ga.Xh.call(this, val); | |
| this.Pi = {}; | |
| this.Bm = {}; | |
| var key; | |
| for (key in this.od) { | |
| val = this.od[key]; | |
| /** @type {string} */ | |
| this.Pi[val.thread_id] = key; | |
| /** @type {string} */ | |
| this.Bm[val.href] = key; | |
| } | |
| }; | |
| /** | |
| * @param {?} name | |
| * @param {boolean} recurring | |
| * @return {undefined} | |
| */ | |
| self.update = function(name, recurring) { | |
| var message = this.od[name]; | |
| if (message) { | |
| delete this.Pi[message.thread_id]; | |
| delete this.Pi[message.href]; | |
| } | |
| Window.Ga.update.call(this, name, recurring); | |
| nextTick(this, bind(function() { | |
| var message = this.od[name]; | |
| this.Pi[message.thread_id] = name; | |
| this.Bm[message.href] = name; | |
| }, this)); | |
| }; | |
| /** | |
| * @param {Function} arr | |
| * @return {undefined} | |
| */ | |
| self.sort = function(arr) { | |
| arr.sort(function(self, d) { | |
| var a = self.edited; | |
| var b = d.edited; | |
| if (a != b) { | |
| return a < b ? 1 : -1; | |
| } | |
| a = self.title.toLowerCase(); | |
| b = d.title.toLowerCase(); | |
| return a < b ? -1 : a > b ? 1 : 0; | |
| }); | |
| }; | |
| /** | |
| * @param {?} name | |
| * @return {?} | |
| */ | |
| self.Jd = function(name) { | |
| var a = createElement("div", "icon"); | |
| var cleanCache = createElement("a", "object-row").setAttribute("href", name.href).setData("id", name.id).append(a).append(createElement("div", "title").ca(name.title)).append(createElement("div", "info").ca(name.info)); | |
| switch(this.Ca(name)) { | |
| case 1: | |
| cleanCache.g("document-row"); | |
| break; | |
| case 0: | |
| cleanCache.g("thread-row"); | |
| if (name.profile_picture_grid_html) { | |
| indexOf(a.g("grid").g("medium-presence-indicator"), name.profile_picture_grid_html); | |
| successCallback(a); | |
| } | |
| ; | |
| } | |
| return cleanCache; | |
| }; | |
| /** | |
| * @param {?} name | |
| * @return {?} | |
| */ | |
| self.yg = function(name) { | |
| var result = createElement("a", "name-card").append(createElement("span")).setData("click", "open-document").setData("id", name.id).setData("title", name.title).setAttribute("href", name.href); | |
| switch(this.Ca(name)) { | |
| case 1: | |
| result.g("document-card"); | |
| break; | |
| case 0: | |
| result.g("thread-card"); | |
| } | |
| return result; | |
| }; | |
| /** | |
| * @param {number} types | |
| * @return {?} | |
| */ | |
| self.Ca = function(types) { | |
| types = types.type; | |
| return exec(types) ? types : 1; | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Response = function() { | |
| input.call(this, "/-/folders"); | |
| /** @type {string} */ | |
| this.Ds = this.ot = ""; | |
| }; | |
| inherits(Response, input); | |
| var sorted = { | |
| 1 : 0, | |
| 2 : 1, | |
| 0 : 2 | |
| }; | |
| self = Response.prototype; | |
| /** | |
| * @param {Function} arr | |
| * @return {undefined} | |
| */ | |
| self.sort = function(arr) { | |
| arr.sort(function(li, d) { | |
| var a = sorted[li.folder_class]; | |
| var b = sorted[d.folder_class]; | |
| if (a != b) { | |
| return a < b ? -1 : 1; | |
| } | |
| a = li.updated_time; | |
| b = d.updated_time; | |
| if (a != b) { | |
| return a < b ? 1 : -1; | |
| } | |
| a = li.title.toLowerCase(); | |
| b = d.title.toLowerCase(); | |
| return a < b ? -1 : a > b ? 1 : 0; | |
| }); | |
| }; | |
| /** | |
| * @param {?} name | |
| * @return {?} | |
| */ | |
| self.Jd = function(name) { | |
| var names = createElement("a", "object-row folder-row").setAttribute("href", "/" + name.id).setData("id", name.id).append(createElement("div", "icon").append(createElement("div", "color")).append(createElement("div", "outline")).append(createElement("div", "badge"))).append(createElement("div", "title").ca(name.title)).append(createElement("div", "info").ca(name.info)); | |
| /** @type {Array} */ | |
| var res = []; | |
| if (1 == name.folder_type) { | |
| if (1 == name.inherit_mode) { | |
| res.push("restricted"); | |
| } else { | |
| res.push("shared"); | |
| } | |
| } else { | |
| res.push("private"); | |
| } | |
| if (2 == name.folder_class) { | |
| res.push("archive"); | |
| } | |
| if (1 == name.folder_class) { | |
| res.push("desktop"); | |
| } | |
| if ("color" in name.attributes) { | |
| res.push(name.attributes.color); | |
| } | |
| /** @type {number} */ | |
| name = 0; | |
| for (;name < res.length;name++) { | |
| names.g(res[name]); | |
| } | |
| return names; | |
| }; | |
| /** | |
| * @param {?} name | |
| * @return {?} | |
| */ | |
| self.yg = function(name) { | |
| return createElement("a", "name-card folder-card").append(createElement("span")).setData("click", "open-folder").setData("id", name.id).setData("title", name.title).setAttribute("href", "/" + name.id); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| var objectEqual = function() { | |
| var o = res; | |
| /** @type {Array} */ | |
| var requires = []; | |
| var dep; | |
| for (dep in o.od) { | |
| requires.push(o.od[dep]); | |
| } | |
| o.sort(requires); | |
| return requires; | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Qf = function() { | |
| return this.ot; | |
| }; | |
| /** | |
| * @param {?} dataAndEvents | |
| * @return {undefined} | |
| */ | |
| self.yr = function(dataAndEvents) { | |
| this.ot = dataAndEvents; | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Wi = function() { | |
| return this.Ds; | |
| }; | |
| /** | |
| * @param {(Array|string)} dataAndEvents | |
| * @return {undefined} | |
| */ | |
| self.vr = function(dataAndEvents) { | |
| /** @type {(Array|string)} */ | |
| this.Ds = dataAndEvents; | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var JsonWorker = function() { | |
| }; | |
| /** | |
| * @param {(Array|string)} results | |
| * @param {(Array|string)} recurring | |
| * @param {number} c | |
| * @return {?} | |
| */ | |
| JsonWorker.prototype.$f = function(results, recurring, c) { | |
| /** @type {number} */ | |
| var i = expectationResult; | |
| if (!results.Tc) { | |
| if (recurring.Cb.ng) { | |
| i |= v8; | |
| } | |
| } | |
| results = serialize(res, results.Tc, i); | |
| /** @type {Array} */ | |
| recurring = []; | |
| /** @type {number} */ | |
| i = 0; | |
| for (;i < results.length && i < c;i++) { | |
| recurring.push(results[i].id); | |
| } | |
| return recurring; | |
| }; | |
| attempt(function() { | |
| encodeUriSegment(8, new JsonWorker, function(pkg, recurring) { | |
| _fn(res.yg(res.Ka(pkg)), recurring); | |
| }); | |
| }); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Component = function() { | |
| input.call(this, "/-/contacts", "name"); | |
| /** @type {null} */ | |
| this.ka = null; | |
| /** @type {Array} */ | |
| this.kp = []; | |
| this.Ed = new getByIndex(new EcoLanguage); | |
| this.df = {}; | |
| /** @type {null} */ | |
| this.ko = this.ck = null; | |
| this.ak = {}; | |
| this.pk = {}; | |
| }; | |
| inherits(Component, input); | |
| self = Component.prototype; | |
| /** | |
| * @param {?} context | |
| * @return {undefined} | |
| */ | |
| self.Xh = function(context) { | |
| Component.Ga.Xh.call(this, context); | |
| this.df = context.affinities; | |
| if (this.ka) { | |
| this.update(this.ka.id, this.ka); | |
| } | |
| this.ak = context.chat_thread_ids; | |
| if (this.ck = context.workgroup) { | |
| this.ko = {}; | |
| var j = context.workgroup_user_ids; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < j.length;i++) { | |
| /** @type {boolean} */ | |
| this.ko[j[i]] = true; | |
| } | |
| } | |
| if (i = context.contacts_list) { | |
| j = jQuery(".contacts-list"); | |
| if (!j.empty()) { | |
| if (!j.j("loaded")) { | |
| i = get(i); | |
| i.insertBefore(calculate(trim(j))); | |
| j.g("loaded"); | |
| expect(i, bind(function(option) { | |
| /** @type {number} */ | |
| this.pk[jQuery(option).data("id")] = 1; | |
| }, this)); | |
| } | |
| } | |
| if (data.Ed.Xg) { | |
| loaded(context.frequent_contacts, context.other_contacts); | |
| } | |
| } | |
| }; | |
| /** | |
| * @param {?} option | |
| * @param {?} value | |
| * @return {undefined} | |
| */ | |
| self.ur = function(option, value) { | |
| this.df[option] = value; | |
| }; | |
| /** | |
| * @param {?} name | |
| * @return {?} | |
| */ | |
| var isDirectory = function(name) { | |
| var node = data; | |
| return node.ko && node.Ka(name) ? !node.ko[name] : false; | |
| }; | |
| /** | |
| * @param {Object} message | |
| * @return {?} | |
| */ | |
| var doSerialize = function(message) { | |
| var config = data; | |
| return config.ck ? !compute(message.toLowerCase(), "@" + config.ck.domain) : false; | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| var operation = function() { | |
| var m = data; | |
| return m.ck ? m.ck.name : ""; | |
| }; | |
| /** | |
| * @param {?} obj | |
| * @param {Array} type | |
| * @return {undefined} | |
| */ | |
| var groupBy = function(obj, type) { | |
| type.sort(bind(function(timeoutKey, $conditional) { | |
| var a = this.df[timeoutKey] || 0; | |
| var b = this.df[$conditional] || 0; | |
| return a < b ? 1 : a > b ? -1 : 0; | |
| }, obj)); | |
| }; | |
| /** | |
| * @param {boolean} recurring | |
| * @return {undefined} | |
| */ | |
| self.Mv = function(recurring) { | |
| if (recurring.id) { | |
| console.log("User id: " + recurring.id); | |
| /** @type {boolean} */ | |
| this.ka = recurring; | |
| if (!this.ka.picture && this.ka.pictures) { | |
| /** @type {number} */ | |
| var height = 45 * (window.devicePixelRatio ? window.devicePixelRatio : 1); | |
| var codeSegments = this.ka.pictures; | |
| /** @type {null} */ | |
| var node = null; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < codeSegments.length;i++) { | |
| var child = codeSegments[i]; | |
| if (child.width > height) { | |
| node = child; | |
| } | |
| } | |
| if (!node) { | |
| node = codeSegments[0]; | |
| } | |
| this.ka.picture = hash(node.hash); | |
| } else { | |
| this.ka.picture = this.ka.picture.url; | |
| } | |
| this.update(recurring.id, recurring); | |
| if (recurring.employee) { | |
| item.g("employee"); | |
| /** @type {boolean} */ | |
| bytenew = true; | |
| /** @type {boolean} */ | |
| opts.Ck = true; | |
| pollPath(); | |
| } else { | |
| /** @type {boolean} */ | |
| opts.Ck = "localhost" == location.hostname; | |
| } | |
| if (recurring.rollout_state) { | |
| this.Ar(recurring.rollout_state); | |
| } | |
| /** @type {number} */ | |
| i = 0; | |
| for (;i < this.kp.length;i++) { | |
| this.kp[i](); | |
| } | |
| /** @type {Array} */ | |
| this.kp = []; | |
| } | |
| }; | |
| /** | |
| * @param {string} val2 | |
| * @return {undefined} | |
| */ | |
| self.Ar = function(val2) { | |
| this.Ed = new getByIndex(isNaN(val2, EcoLanguage)); | |
| }; | |
| /** | |
| * @param {?} match | |
| * @return {?} | |
| */ | |
| self.Vi = function(match) { | |
| return this.df[match] || 0; | |
| }; | |
| /** | |
| * @param {Function} arr | |
| * @return {undefined} | |
| */ | |
| self.sort = function(arr) { | |
| addNode(this, arr, {}); | |
| }; | |
| /** | |
| * @param {number} obj | |
| * @param {Object} arr | |
| * @param {?} result | |
| * @return {undefined} | |
| */ | |
| var addNode = function(obj, arr, result) { | |
| arr.sort(bind(function(option, elem) { | |
| if (data.ka) { | |
| if (option.id == data.ka.id) { | |
| return-1; | |
| } | |
| if (elem.id == data.ka.id) { | |
| return 1; | |
| } | |
| } | |
| var a = this.Vi(option.id); | |
| var b = this.Vi(elem.id); | |
| if (a != b) { | |
| return a < b ? 1 : -1; | |
| } | |
| /** @type {boolean} */ | |
| a = option.id in result; | |
| if (a != elem.id in result) { | |
| return a ? -1 : 1; | |
| } | |
| a = option.name.toLowerCase(); | |
| b = elem.name.toLowerCase(); | |
| return a < b ? -1 : a > b ? 1 : 0; | |
| }, obj)); | |
| }; | |
| /** | |
| * @param {Object} element | |
| * @param {boolean} expectedNumberOfNonCommentArgs | |
| * @param {boolean} dataAndEvents | |
| * @return {?} | |
| */ | |
| var isEventSupported = function(element, expectedNumberOfNonCommentArgs, dataAndEvents) { | |
| if ("null" == element.id) { | |
| return new klass([]); | |
| } | |
| var o = createElement("div", "profile-picture presence").setData("id", element.id).setData("error", "profile-picture").append(createElement("img").setAttribute("src", element.picture)); | |
| if (!expectedNumberOfNonCommentArgs) { | |
| o.g("inset"); | |
| } | |
| if (!dataAndEvents) { | |
| o.setData("mouseover", "hovercard"); | |
| } | |
| if (cache(element.id)) { | |
| o.g("active"); | |
| } | |
| return o; | |
| }; | |
| /** | |
| * @param {?} name | |
| * @return {?} | |
| */ | |
| self.Jd = function(name) { | |
| var d = createElement("div", "contact-status info").setData("id", name.id).ca(resize(name.id)); | |
| d = createElement("a", "object-row contact").setAttribute("href", "/" + name.id).setData("id", name.id).append(createElement("div").append(isEventSupported(name, void 0, true)).append(createElement("div", "title").ca(name.name)).append(d)); | |
| if (name = inArray(name)) { | |
| d.g(name); | |
| } | |
| return d; | |
| }; | |
| /** | |
| * @param {?} name | |
| * @return {?} | |
| */ | |
| self.yg = function(name) { | |
| var result = createElement("a", "name-card user-card presence").append(createElement("span")).setData("click", "open-chat-tab").setData("mouseover", "hovercard").setData("id", name.id).setData("title", name.first_name).setAttribute("href", "/" + name.id); | |
| if (cache(name.id)) { | |
| result.g("active"); | |
| } | |
| return result; | |
| }; | |
| /** | |
| * @param {?} records | |
| * @param {Object} target | |
| * @param {string} item | |
| * @param {?} e | |
| * @return {undefined} | |
| */ | |
| var click = function(records, target, item, e) { | |
| item = createElement("div", "object-row contact presence").setData("id", target.id).setData("click", item).append(createElement("div").append(isEventSupported(target, void 0, true)).append(createElement("div", "remove").setData("click", "remove-contact")).append(createElement("div", "title").ca(target.name)).append(createElement("div", "contact-status info").setData("id", target.id).ca(resize(target.id)))); | |
| var i = inArray(target); | |
| if (i) { | |
| item.g(i); | |
| } | |
| i = parent(e.find(".contact")); | |
| if (i.empty()) { | |
| text(e, item); | |
| } else { | |
| parseInt(item, i); | |
| } | |
| /** @type {number} */ | |
| records.pk[target.id] = 1; | |
| }; | |
| /** | |
| * @param {?} name | |
| * @param {boolean} recurring | |
| * @return {undefined} | |
| */ | |
| self.update = function(name, recurring) { | |
| /** @type {boolean} */ | |
| var c = !(name in this.od); | |
| Component.Ga.update.call(this, name, recurring); | |
| nextTick(this, bind(function() { | |
| if (c) { | |
| if (name != data.ka.id) { | |
| click(this, this.od[name], "open-chat-thread", jQuery(".contacts-list")); | |
| if (data.Ed.Xg) { | |
| effect(this.od[name]); | |
| } | |
| successCallback(); | |
| } | |
| } | |
| if (name == data.ka.id) { | |
| data.ka.seen_signals_usec = recurring.seen_signals_usec; | |
| stop(); | |
| } | |
| }, this)); | |
| }; | |
| /** | |
| * @param {?} name | |
| * @return {undefined} | |
| */ | |
| self.remove = function(name) { | |
| Component.Ga.remove.call(this, name); | |
| delete this.pk[name]; | |
| }; | |
| /** | |
| * @param {?} name | |
| * @return {?} | |
| */ | |
| self.Ka = function(name) { | |
| return this.ka && this.ka.id == name ? this.ka : Component.Ga.Ka.call(this, name); | |
| }; | |
| /** | |
| * @param {?} name | |
| * @return {?} | |
| */ | |
| var removeData = function(name) { | |
| var elem = data; | |
| return(name = elem.ak[name]) ? elem.Ka(name) : null; | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Script = function() { | |
| input.call(this, "/-/addresses"); | |
| this.df = {}; | |
| }; | |
| inherits(Script, input); | |
| /** | |
| * @param {Object} data | |
| * @return {undefined} | |
| */ | |
| Script.prototype.Xh = function(data) { | |
| Script.Ga.Xh.call(this, data); | |
| this.df = data.affinities; | |
| data = get(data.html); | |
| var fullOtherName = appendModelPrefix(); | |
| var $this = jQuery(".chat-list .address-book .chat-list-section"); | |
| if (!$this.empty()) { | |
| /** @type {number} */ | |
| var storageKey = 0; | |
| for (;storageKey < fullOtherName && storageKey < data.length();storageKey++) { | |
| $this.get(0).appendChild(data.get(storageKey)); | |
| } | |
| if (start($this, ".address-row")) { | |
| jQuery(".chat-list .address-book").show(); | |
| } | |
| } | |
| }; | |
| /** | |
| * @param {Function} arr | |
| * @return {undefined} | |
| */ | |
| Script.prototype.sort = function(arr) { | |
| arr.sort(bind(function(test, d) { | |
| var a = this.df[test.id] || 0; | |
| var b = this.df[d.id] || 0; | |
| if (a != b) { | |
| return a < b ? 1 : -1; | |
| } | |
| a = test.title.toLowerCase(); | |
| b = d.title.toLowerCase(); | |
| return a < b ? -1 : a > b ? 1 : 0; | |
| }, this)); | |
| }; | |
| /** | |
| * @param {?} name | |
| * @return {?} | |
| */ | |
| Script.prototype.Jd = function(name) { | |
| return createElement("a", "object-row address-row").setData("id", name.id).setData("info", name.address).setData("name", name.name).setData("address", name.address).append(createElement("div", "icon")).append(createElement("div", "title").ca(name.title)).append(createElement("div", "info").ca(name.address)); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var CollectionView = function() { | |
| input.call(this, "/-/imports"); | |
| }; | |
| inherits(CollectionView, input); | |
| /** | |
| * @param {Function} arr | |
| * @return {undefined} | |
| */ | |
| CollectionView.prototype.sort = function(arr) { | |
| arr.sort(function(self, d) { | |
| var a = self.edited; | |
| var b = d.edited; | |
| if (a != b) { | |
| return a < b ? 1 : -1; | |
| } | |
| a = self.title.toLowerCase(); | |
| b = d.title.toLowerCase(); | |
| return a < b ? -1 : a > b ? 1 : 0; | |
| }); | |
| }; | |
| /** | |
| * @param {?} name | |
| * @return {?} | |
| */ | |
| CollectionView.prototype.Jd = function(name) { | |
| return createElement("a", "object-row import-row").setAttribute("href", "/" + name.id).setData("id", name.id).setData("type", name.type).append(createElement("div", "icon")).append(createElement("div", "title").ca(name.title)).append(createElement("div", "info").ca(name.info)); | |
| }; | |
| /** | |
| * @param {?} name | |
| * @return {?} | |
| */ | |
| CollectionView.prototype.yg = function(name) { | |
| return createElement("a", "name-card import-card").append(createElement("span")).setData("click", "import-file").setData("id", name.id).setData("title", name.title); | |
| }; | |
| /** | |
| * @param {?} index | |
| * @return {undefined} | |
| */ | |
| var getByIndex = function(index) { | |
| this.dw = index.Tt(); | |
| this.Cu = index.It(); | |
| index.Gt(); | |
| this.Xg = index.Mt(); | |
| this.$z = index.Rt(); | |
| this.bA = index.Pp(); | |
| }; | |
| $("error", "profile-picture", function() { | |
| this.g("error"); | |
| return true; | |
| }); | |
| var params = new Window; | |
| var res = new Response; | |
| var data = new Component; | |
| var doc = new Script; | |
| var view = new CollectionView; | |
| /** | |
| * @param {number} name | |
| * @return {?} | |
| */ | |
| var validTest = function(name) { | |
| if (11 != name.length) { | |
| return null; | |
| } | |
| /** @type {number} */ | |
| name = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_".indexOf(name.charAt(4)); | |
| return-1 == name ? null : name % 64; | |
| }; | |
| append("db.loadFromServer", function() { | |
| params.load(); | |
| res.load(); | |
| data.load(); | |
| view.load(); | |
| if (data.Ed.Xg) { | |
| doc.load(); | |
| } | |
| }); | |
| append("contacts.setCurrentUser", bind(data.Mv, data)); | |
| append("contacts.setRolloutState", bind(data.Ar, data)); | |
| append("folders.setDesktopFolderId", bind(res.yr, res)); | |
| append("folders.setArchiveFolderId", bind(res.vr, res)); | |
| /** | |
| * @return {?} | |
| */ | |
| var onCompletion = function() { | |
| return null === data.ka; | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| var insertAfter = function() { | |
| return data.ka.anonymous; | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| var _isFunction = function() { | |
| return actual.Nc(); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| var setAttribute = function() { | |
| return actual.Nk(); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| var querySelector = function() { | |
| return onCompletion() || _isFunction() && insertAfter() ? true : !back(0); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| var prepend = function() { | |
| return onCompletion() || _isFunction() && insertAfter() ? false : back(5); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| var scrollTop = function() { | |
| var el = deepEqual(actual, 22); | |
| return value(el, 0) || value(el, 2); | |
| }; | |
| /** | |
| * @param {number} val | |
| * @return {?} | |
| */ | |
| var back = function(val) { | |
| var el = deepEqual(actual, 23); | |
| return value(el, 0) || value(el, val); | |
| }; | |
| /** | |
| * @param {Element} name | |
| * @return {?} | |
| */ | |
| var is_identifier = function(name) { | |
| var i = actual; | |
| /** @type {boolean} */ | |
| i = i.Nc() != name.Nc() || (i.Nk() != name.Nk() || (i.Aa() != name.Aa() || (!get_mangled(i, 21).wa(get_mangled(name, 21)) || (!sortFunction(deepEqual(i, 22), deepEqual(name, 22)) || !sortFunction(deepEqual(i, 23), deepEqual(name, 23)))))); | |
| /** @type {Element} */ | |
| actual = name; | |
| return i; | |
| }; | |
| var actual = new GameObject; | |
| append("access.initThreadMetadata", function(val2) { | |
| is_identifier(isNaN(val2, GameObject)); | |
| }); | |
| /** @type {RegExp} */ | |
| var old = /^[!"#$%&\'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~\u2000-\u206F\u2E00-\u2E7F]+/; | |
| /** | |
| * @param {Node} timestamp | |
| * @return {undefined} | |
| */ | |
| var Position = function(timestamp) { | |
| /** @type {Node} */ | |
| this.sb = timestamp; | |
| }; | |
| self = Position.prototype; | |
| /** | |
| * @param {string} name | |
| * @return {?} | |
| */ | |
| self.find = function(name) { | |
| name = name.toLowerCase(); | |
| /** @type {Array} */ | |
| var results = []; | |
| var y = validator(this.sb, [name, []], function(a, b) { | |
| return a[0] < b[0] ? -1 : a[0] > b[0] ? 1 : 0; | |
| }); | |
| for (;y < this.sb.length;y++) { | |
| var array = this.sb[y]; | |
| if (0 != array[0].indexOf(name)) { | |
| break; | |
| } | |
| array = array[1]; | |
| /** @type {number} */ | |
| var index = 0; | |
| for (;index < array.length;index++) { | |
| results.push(array[index]); | |
| } | |
| } | |
| return results; | |
| }; | |
| /** | |
| * @param {(Array|string)} name | |
| * @return {?} | |
| */ | |
| self.$f = function(name) { | |
| /** @type {Array} */ | |
| var codeSegments = []; | |
| name = name.split(" "); | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < name.length;i++) { | |
| if (name[i]) { | |
| var result = this.find(name[i]); | |
| if (!result) { | |
| return[]; | |
| } | |
| if (0 == i) { | |
| codeSegments = result; | |
| } else { | |
| var arr2 = {}; | |
| /** @type {number} */ | |
| i = 0; | |
| for (;i < codeSegments.length;i++) { | |
| /** @type {number} */ | |
| arr2[codeSegments[i]] = 1; | |
| } | |
| codeSegments = uniq(result, function(i) { | |
| return i in arr2; | |
| }); | |
| } | |
| } | |
| } | |
| return codeSegments; | |
| }; | |
| /** | |
| * @param {string} type | |
| * @param {number} expectedNumberOfNonCommentArgs | |
| * @return {undefined} | |
| */ | |
| self.add = function(type, expectedNumberOfNonCommentArgs) { | |
| var codeSegments = type.split(/\s+|\//); | |
| var timeMap = {}; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < codeSegments.length;i++) { | |
| var name = codeSegments[i].toLowerCase().replace(old, ""); | |
| if (!(name in timeMap)) { | |
| /** @type {number} */ | |
| timeMap[name] = 1; | |
| /** @type {Array} */ | |
| var text = [name, [expectedNumberOfNonCommentArgs]]; | |
| if (0 == this.sb.length) { | |
| this.sb.push(text); | |
| } else { | |
| var t = validator(this.sb, text, function(a, b) { | |
| return a[0] < b[0] ? -1 : a[0] > b[0] ? 1 : 0; | |
| }); | |
| if (t < this.sb.length && this.sb[t][0] == name) { | |
| this.sb[t][1].push(expectedNumberOfNonCommentArgs); | |
| } else { | |
| this.sb.splice(t, 0, text); | |
| } | |
| } | |
| } | |
| } | |
| }; | |
| /** | |
| * @param {?} name | |
| * @return {undefined} | |
| */ | |
| self.remove = function(name) { | |
| /** @type {Array} */ | |
| var thens = []; | |
| /** @type {number} */ | |
| var conditionIndex = 0; | |
| for (;conditionIndex < this.sb.length;conditionIndex++) { | |
| /** @type {Array} */ | |
| var rejected = []; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < this.sb[conditionIndex][1].length;i++) { | |
| if (this.sb[conditionIndex][1][i] != name) { | |
| rejected.push(this.sb[conditionIndex][1][i]); | |
| } | |
| } | |
| if (0 < rejected.length) { | |
| thens.push([this.sb[conditionIndex][0], rejected]); | |
| } | |
| } | |
| /** @type {Array} */ | |
| this.sb = thens; | |
| }; | |
| /** | |
| * @param {?} name | |
| * @param {?} optgroup | |
| * @return {undefined} | |
| */ | |
| self.update = function(name, optgroup) { | |
| this.remove(optgroup); | |
| this.add(name, optgroup); | |
| }; | |
| var node = {}; | |
| /** | |
| * @param {Function} name | |
| * @param {boolean} dataAndEvents | |
| * @return {undefined} | |
| */ | |
| var lookup = function(name, dataAndEvents) { | |
| var a = get("<div class='capture-overlay'></div>"); | |
| item.append(a); | |
| getUserMedia().call(navigator, { | |
| video : true | |
| }, function(inplace) { | |
| SourceNode(inplace, name, a, dataAndEvents || false); | |
| }, function(err) { | |
| a.remove(); | |
| err = err && "PermissionDeniedError" == err.name ? callback("Camera access was not granted, could not capture image.") : err.name ? callback("Could not capture image, unknown error (%(err)s).", { | |
| err : err.name | |
| }) : callback("Could not capture image, unknown error."); | |
| error(err); | |
| }); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| var getUserMedia = function() { | |
| return navigator.getUserMedia || (navigator.webkitGetUserMedia || navigator.mozGetUserMedia); | |
| }; | |
| /** | |
| * @param {Event} data | |
| * @param {?} options | |
| * @param {?} a | |
| * @param {?} onload | |
| * @return {undefined} | |
| */ | |
| var SourceNode = function(data, options, a, onload) { | |
| /** | |
| * @return {undefined} | |
| */ | |
| function play() { | |
| item.append(l); | |
| var attributes = wrapper.get().videoWidth; | |
| var opt_attributes = wrapper.get().videoHeight; | |
| if (onload) { | |
| wrapper.ja("marginLeft", Math.round(-(attributes - opt_attributes) / 2) + "px"); | |
| attributes = opt_attributes; | |
| } | |
| l.gb(attributes).Sa(opt_attributes).ja("marginLeft", Math.round(-attributes / 2) + "px").ja("marginTop", Math.round(-opt_attributes / 2) + "px"); | |
| node.sk = l.concat(a); | |
| node.ht = options; | |
| } | |
| /** @type {Event} */ | |
| node.Eu = data; | |
| /** @type {string} */ | |
| node.Fq = window.URL.createObjectURL(data); | |
| var l = get("<div class='capture-screen' data-mousedown='no-caret-move'><video autoplay></video><div data-click='capture-cancel' class='delete-overlay-button'></div><button data-click='capture-ok'><div></div></button></div>"); | |
| var wrapper = l.find("video"); | |
| wrapper.setAttribute("src", node.Fq).uh("loadeddata", function() { | |
| if (wrapper.get().videoWidth) { | |
| play(); | |
| } else { | |
| var interval = createDom(function() { | |
| /** @type {boolean} */ | |
| var b = false; | |
| if (wrapper.get().videoWidth) { | |
| play(); | |
| /** @type {boolean} */ | |
| b = true; | |
| } | |
| if (b) { | |
| window.clearInterval(interval); | |
| } | |
| }, 100) | |
| } | |
| }); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var resetContentDetails = function() { | |
| node.Eu.stop(); | |
| window.URL.revokeObjectURL(node.Fq); | |
| node.sk.remove(); | |
| delete node.Eu; | |
| delete node.Fq; | |
| delete node.ht; | |
| delete node.sk; | |
| }; | |
| $("click", "capture-ok", function() { | |
| var data = node.sk.find("video"); | |
| var canvas = createElement("canvas").get(); | |
| canvas.width = node.sk.width(); | |
| canvas.height = node.sk.height(); | |
| canvas.getContext("2d").drawImage(data.get(), (canvas.width - data.width()) / 2, 0); | |
| data = canvas.toDataURL("image/jpeg", 0.8); | |
| node.ht(dataURLToBlob(data)); | |
| resetContentDetails(); | |
| return true; | |
| }); | |
| $("click", "capture-cancel", function() { | |
| resetContentDetails(); | |
| return true; | |
| }); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var _Input = function() { | |
| /** @type {Array} */ | |
| this.Fe = []; | |
| /** @type {boolean} */ | |
| this.dl = false; | |
| addEvent(document.body, "mousedown", bind(this.qz, this)); | |
| addEvent(document.body, "mouseup", bind(this.rz, this)); | |
| }; | |
| /** | |
| * @param {Function} fn | |
| * @return {undefined} | |
| */ | |
| _Input.prototype.addListener = function(fn) { | |
| this.Fe.push(fn); | |
| }; | |
| /** | |
| * @param {Object} deepDataAndEvents | |
| * @return {undefined} | |
| */ | |
| _Input.prototype.qz = function(deepDataAndEvents) { | |
| if (0 == deepDataAndEvents.button) { | |
| var dl = this.dl; | |
| /** @type {boolean} */ | |
| this.dl = true; | |
| if (!dl) { | |
| this.Dk(true, deepDataAndEvents); | |
| } | |
| } | |
| }; | |
| /** | |
| * @param {?} deepDataAndEvents | |
| * @return {undefined} | |
| */ | |
| _Input.prototype.rz = function(deepDataAndEvents) { | |
| var dl = this.dl; | |
| /** @type {boolean} */ | |
| this.dl = false; | |
| if (dl) { | |
| this.Dk(false, deepDataAndEvents); | |
| } | |
| }; | |
| /** | |
| * @param {boolean} recurring | |
| * @param {?} deepDataAndEvents | |
| * @return {undefined} | |
| */ | |
| _Input.prototype.Dk = function(recurring, deepDataAndEvents) { | |
| /** @type {number} */ | |
| var conditionIndex = 0; | |
| for (;conditionIndex < this.Fe.length;conditionIndex++) { | |
| this.Fe[conditionIndex](recurring, deepDataAndEvents); | |
| } | |
| }; | |
| var resp = new _Input; | |
| /** @type {boolean} */ | |
| var isTouch = "Notification" in window; | |
| /** @type {boolean} */ | |
| var isWebkit = "webkitNotifications" in window; | |
| var timeMap = {}; | |
| /** | |
| * @param {?} callback | |
| * @return {undefined} | |
| */ | |
| var requestPermission = function(callback) { | |
| if (isTouch) { | |
| Notification.requestPermission(function(dataAndEvents) { | |
| if ("granted" == dataAndEvents) { | |
| callback(); | |
| } | |
| }); | |
| } else { | |
| if (isWebkit) { | |
| window.webkitNotifications.requestPermission(function() { | |
| if (0 == window.webkitNotifications.checkPermission()) { | |
| callback(); | |
| } | |
| }); | |
| } | |
| } | |
| }; | |
| /** | |
| * @param {?} name | |
| * @param {string} title | |
| * @param {string} icon | |
| * @param {Object} content | |
| * @return {?} | |
| */ | |
| var html5Notify = function(name, title, icon, content) { | |
| var notification; | |
| if (isTouch) { | |
| /** @type {Notification} */ | |
| notification = new Notification(title, { | |
| tag : name, | |
| icon : icon, | |
| body : content | |
| }); | |
| } else { | |
| if (isWebkit) { | |
| /** @type {(Notification|null)} */ | |
| notification = window.webkitNotifications.createNotification(icon, title, content); | |
| notification.replaceId = name; | |
| notification.show(); | |
| } | |
| } | |
| if (!notification) { | |
| return null; | |
| } | |
| timeMap[name] = notification; | |
| /** | |
| * @return {undefined} | |
| */ | |
| notification.onclose = function() { | |
| delete timeMap[name]; | |
| }; | |
| return notification; | |
| }; | |
| /** | |
| * @param {?} name | |
| * @return {undefined} | |
| */ | |
| var layer = function(name) { | |
| if (name in timeMap) { | |
| timeMap[name].close(); | |
| } | |
| }; | |
| /** | |
| * @param {string} selector | |
| * @return {?} | |
| */ | |
| var jQuery = function(selector) { | |
| var doc; | |
| if (!doc) { | |
| /** @type {Document} */ | |
| doc = window.document; | |
| } | |
| return selector.nodeType ? new klass([selector]) : new klass(doc.querySelectorAll(selector)); | |
| }; | |
| /** @type {Array} */ | |
| var vendors = ["", "webkit", "moz", "ms", "o"]; | |
| /** | |
| * @param {string} data | |
| * @return {?} | |
| */ | |
| var get = function(data) { | |
| /** @type {Element} */ | |
| var el = document.createElement("div"); | |
| /** @type {string} */ | |
| el.innerHTML = data; | |
| /** @type {Array} */ | |
| data = []; | |
| for (;el.firstChild;) { | |
| data.push(el.removeChild(el.firstChild)); | |
| } | |
| return new klass(data); | |
| }; | |
| /** | |
| * @param {Array} html | |
| * @return {?} | |
| */ | |
| var createAndInsertIframeForContent = function(html) { | |
| /** @type {(Selection|null)} */ | |
| var s = window.getSelection(); | |
| var range; | |
| if (s) { | |
| if (0 < s.rangeCount) { | |
| /** @type {(Range|null)} */ | |
| range = s.getRangeAt(0); | |
| } | |
| } | |
| s = createElement("iframe"); | |
| s.setAttribute("sandbox", "allow-same-origin"); | |
| s.ua(); | |
| item.append(s); | |
| var doc = s.get().contentWindow.document; | |
| doc.open(); | |
| doc.write(html); | |
| doc.close(); | |
| s.remove(); | |
| if (s = window.getSelection()) { | |
| if (0 == s.rangeCount) { | |
| if (range) { | |
| s.addRange(range); | |
| } | |
| } | |
| } | |
| return new klass([doc.body]); | |
| }; | |
| /** | |
| * @param {string} name | |
| * @param {string} type | |
| * @return {?} | |
| */ | |
| var createElement = function(name, type) { | |
| /** @type {Element} */ | |
| var elem = document.createElement(name); | |
| if (type) { | |
| /** @type {string} */ | |
| elem.className = type; | |
| } | |
| return new klass([elem]); | |
| }; | |
| /** | |
| * @param {string} string | |
| * @return {?} | |
| */ | |
| var apply = function(string) { | |
| return new klass([document.createTextNode(string)]); | |
| }; | |
| var fields = {}; | |
| /** @type {RegExp} */ | |
| var rmultiDash = /([A-Z])/g; | |
| /** | |
| * @param {string} key | |
| * @return {?} | |
| */ | |
| var camelize = function(key) { | |
| var value = fields[key]; | |
| if (value) { | |
| return value; | |
| } | |
| value = key.replace(rmultiDash, "-$1").toLowerCase(); | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < vendors.length;i++) { | |
| var name = vendors[i]; | |
| if (name && value.substr(0, name.length) == name) { | |
| return fields[key] = "-" + value; | |
| } | |
| } | |
| return fields[key] = value; | |
| }; | |
| var methodName = void 0; | |
| /** | |
| * @param {Object} element | |
| * @param {?} selector | |
| * @return {?} | |
| */ | |
| var _query = function(element, selector) { | |
| if (isFunction(methodName)) { | |
| /** @type {null} */ | |
| methodName = null; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < vendors.length;i++) { | |
| var v = vendors[i]; | |
| /** @type {string} */ | |
| v = (v ? v + "M" : v + "m") + "atchesSelector"; | |
| if (v in window.document.documentElement) { | |
| /** @type {string} */ | |
| methodName = v; | |
| break; | |
| } | |
| } | |
| } | |
| if (methodName) { | |
| return element[methodName] ? element[methodName](selector) : false; | |
| } | |
| v = (element.parentNode || document).querySelectorAll(selector); | |
| /** @type {number} */ | |
| i = 0; | |
| for (;i < v.length;i++) { | |
| if (v[i] == element) { | |
| return true; | |
| } | |
| } | |
| return false; | |
| }; | |
| var values = {}; | |
| /** | |
| * @param {Object} ast | |
| * @return {undefined} | |
| */ | |
| var killEvent = function(ast) { | |
| if (!ast.empty()) { | |
| var key = pred(ast); | |
| var value = values[key]; | |
| if (!value) { | |
| value = { | |
| ji : ast.ji(), | |
| kr : 0 | |
| }; | |
| values[key] = value; | |
| } | |
| value.kr++; | |
| } | |
| }; | |
| /** | |
| * @param {Object} ast | |
| * @return {undefined} | |
| */ | |
| var warn_unreachable = function(ast) { | |
| if (!ast.empty()) { | |
| var v = pred(ast); | |
| var value = values[v]; | |
| value.kr--; | |
| if (!value.kr) { | |
| delete values[v]; | |
| if (20 >= value.ji) { | |
| appendTo(ast, value.ji); | |
| } | |
| } | |
| } | |
| }; | |
| /** @type {number} */ | |
| var ELEMENT_NODE = 1; | |
| /** @type {number} */ | |
| var SELECT = 3; | |
| /** | |
| * @param {Array} obj | |
| * @return {undefined} | |
| */ | |
| var klass = function(obj) { | |
| if (obj instanceof klass) { | |
| obj = obj.q; | |
| } else { | |
| if (obj instanceof NodeList) { | |
| /** @type {Array} */ | |
| var self = []; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < obj.length;i++) { | |
| self.push(obj[i]); | |
| } | |
| /** @type {Array} */ | |
| obj = self; | |
| } | |
| } | |
| /** @type {Array} */ | |
| this.q = obj; | |
| }; | |
| /** @type {number} */ | |
| var dk = 0; | |
| /** | |
| * @param {Object} key | |
| * @return {?} | |
| */ | |
| var pred = function(key) { | |
| key = key.get(); | |
| if (!key["dom.js.id"]) { | |
| /** @type {number} */ | |
| key["dom.js.id"] = ++dk; | |
| } | |
| return key["dom.js.id"]; | |
| }; | |
| /** | |
| * @param {?} e | |
| * @param {Function} func | |
| * @return {undefined} | |
| */ | |
| var expect = function(e, func) { | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < e.q.length;i++) { | |
| var deferred = e.q[i]; | |
| if (false === func.call(deferred, deferred, i)) { | |
| break; | |
| } | |
| } | |
| }; | |
| self = klass.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.length = function() { | |
| return this.q.length; | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.empty = function() { | |
| return 0 == this.q.length; | |
| }; | |
| /** | |
| * @param {?} v02 | |
| * @return {?} | |
| */ | |
| self.concat = function(v02) { | |
| var target = toPaddedString(this.q); | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < arguments.length;i++) { | |
| var that = arguments[i]; | |
| if (that instanceof klass) { | |
| target = target.concat(that.q); | |
| } else { | |
| target.push(that); | |
| } | |
| } | |
| return new klass(target); | |
| }; | |
| /** | |
| * @param {string} name | |
| * @return {?} | |
| */ | |
| self.find = function(name) { | |
| /** @type {Array} */ | |
| var opts = []; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < this.q.length;i++) { | |
| var c = this.q[i]; | |
| if (c.nodeType != SELECT) { | |
| c = c.querySelectorAll(name); | |
| /** @type {number} */ | |
| var k = 0; | |
| for (;k < c.length;k++) { | |
| opts.push(c[k]); | |
| } | |
| } | |
| } | |
| return new klass(opts); | |
| }; | |
| /** | |
| * @param {?} obj | |
| * @param {string} node | |
| * @return {?} | |
| */ | |
| var start = function(obj, node) { | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < obj.q.length;i++) { | |
| var element = obj.q[i]; | |
| if (element.nodeType != SELECT && element.querySelector(node)) { | |
| return true; | |
| } | |
| } | |
| return false; | |
| }; | |
| /** | |
| * @param {?} expr | |
| * @return {?} | |
| */ | |
| self.matches = function(expr) { | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < this.q.length;i++) { | |
| if (_query(this.q[i], expr)) { | |
| return true; | |
| } | |
| } | |
| return false; | |
| }; | |
| /** | |
| * @param {string} selector | |
| * @return {?} | |
| */ | |
| self.filter = function(selector) { | |
| /** @type {Array} */ | |
| var options = []; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < this.q.length;i++) { | |
| if (_query(this.q[i], selector)) { | |
| options.push(this.q[i]); | |
| } | |
| } | |
| return new klass(options); | |
| }; | |
| /** | |
| * @param {string} child | |
| * @return {?} | |
| */ | |
| self.parent = function(child) { | |
| /** @type {Array} */ | |
| var eventPath = []; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < this.q.length;i++) { | |
| var cur = this.q[i].parentNode; | |
| for (;cur;cur = cur.parentNode) { | |
| if (cur.nodeType == ELEMENT_NODE) { | |
| if (child) { | |
| if (_query(cur, child)) { | |
| eventPath.push(cur); | |
| break; | |
| } | |
| } else { | |
| eventPath.push(cur); | |
| break; | |
| } | |
| } | |
| } | |
| } | |
| return new klass(eventPath); | |
| }; | |
| /** | |
| * @param {?} value | |
| * @return {?} | |
| */ | |
| var trim = function(value) { | |
| /** @type {Array} */ | |
| var eventPath = []; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < value.q.length;i++) { | |
| var cur = value.q[i].firstChild; | |
| for (;null != cur;cur = cur.nextSibling) { | |
| eventPath.push(cur); | |
| } | |
| } | |
| return new klass(eventPath); | |
| }; | |
| /** | |
| * @param {?} a | |
| * @return {?} | |
| */ | |
| var parent = function(a) { | |
| return 2 > a.length() ? a : new klass([a.q[a.q.length - 1]]); | |
| }; | |
| /** | |
| * @param {Object} e | |
| * @return {?} | |
| */ | |
| var calculate = function(e) { | |
| return e.empty() ? e : new klass([e.q[0]]); | |
| }; | |
| /** | |
| * @param {string} name | |
| * @return {?} | |
| */ | |
| self.g = function(name) { | |
| /** @type {number} */ | |
| var k = 0; | |
| for (;k < this.q.length;k++) { | |
| var cs = this.q[k]; | |
| var classes = cs.className.split(" "); | |
| /** @type {boolean} */ | |
| var e = false; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < classes.length;i++) { | |
| if (classes[i] == name) { | |
| /** @type {boolean} */ | |
| e = true; | |
| break; | |
| } | |
| } | |
| if (!e) { | |
| classes.push(name); | |
| cs.className = classes.join(" "); | |
| } | |
| } | |
| return this; | |
| }; | |
| /** | |
| * @param {string} name | |
| * @return {?} | |
| */ | |
| self.tz = function(name) { | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < this.q.length;i++) { | |
| var item = this.q[i]; | |
| if (item.classList) { | |
| item.classList.add(name); | |
| } | |
| } | |
| return this; | |
| }; | |
| /** | |
| * @param {string} name | |
| * @return {?} | |
| */ | |
| self.k = function(name) { | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < this.q.length;i++) { | |
| var stat = this.q[i]; | |
| var classes = stat.className.split(" "); | |
| /** @type {Array} */ | |
| var results = []; | |
| /** @type {number} */ | |
| var index = 0; | |
| for (;index < classes.length;index++) { | |
| if (classes[index] != name) { | |
| results.push(classes[index]); | |
| } | |
| } | |
| /** @type {string} */ | |
| stat.className = results.join(" "); | |
| } | |
| return this; | |
| }; | |
| /** | |
| * @param {?} optgroup | |
| * @return {?} | |
| */ | |
| self.vz = function(optgroup) { | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < this.q.length;i++) { | |
| var elt = this.q[i]; | |
| if (elt.classList) { | |
| elt.classList.remove(optgroup); | |
| } | |
| } | |
| return this; | |
| }; | |
| /** | |
| * @param {RegExp} match | |
| * @return {?} | |
| */ | |
| self.$q = function(match) { | |
| /** @type {number} */ | |
| var k = 0; | |
| for (;k < this.q.length;k++) { | |
| var cs = this.q[k]; | |
| var stack = cs.className.split(" "); | |
| /** @type {Array} */ | |
| var include = []; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < stack.length;i++) { | |
| if (!match.test(stack[i])) { | |
| include.push(stack[i]); | |
| } | |
| } | |
| /** @type {string} */ | |
| cs.className = include.join(" "); | |
| } | |
| return this; | |
| }; | |
| /** | |
| * @param {RegExp} rneedsContext | |
| * @return {?} | |
| */ | |
| self.wz = function(rneedsContext) { | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < this.q.length;i++) { | |
| var tile = this.q[i]; | |
| if (tile.classList) { | |
| /** @type {number} */ | |
| var indexN10148 = 0; | |
| for (;indexN10148 < tile.classList.length;indexN10148++) { | |
| var optgroup = tile.classList.item(indexN10148); | |
| if (rneedsContext.test(optgroup)) { | |
| tile.classList.remove(optgroup); | |
| } | |
| } | |
| } | |
| } | |
| return this; | |
| }; | |
| /** | |
| * @param {string} name | |
| * @return {?} | |
| */ | |
| self.j = function(name) { | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < this.q.length;i++) { | |
| if (this.q[i].className) { | |
| var excludes = this.q[i].className.split(" "); | |
| /** @type {number} */ | |
| var j = 0; | |
| for (;j < excludes.length;j++) { | |
| if (excludes[j] == name) { | |
| return true; | |
| } | |
| } | |
| } | |
| } | |
| return false; | |
| }; | |
| /** | |
| * @param {string} name | |
| * @return {?} | |
| */ | |
| self.uz = function(name) { | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < this.q.length;i++) { | |
| if (this.q[i].classList && this.q[i].classList.contains(name)) { | |
| return true; | |
| } | |
| } | |
| return false; | |
| }; | |
| if ("classList" in document.createElement("p")) { | |
| /** @type {function (string): ?} */ | |
| klass.prototype.g = klass.prototype.tz; | |
| /** @type {function (?): ?} */ | |
| klass.prototype.k = klass.prototype.vz; | |
| /** @type {function (RegExp): ?} */ | |
| klass.prototype.$q = klass.prototype.wz; | |
| /** @type {function (string): ?} */ | |
| klass.prototype.j = klass.prototype.uz; | |
| } | |
| /** | |
| * @param {Object} val | |
| * @param {string} name | |
| * @return {undefined} | |
| */ | |
| var removeAttr = function(val, name) { | |
| if (val.j(name)) { | |
| val.k(name); | |
| } else { | |
| val.g(name); | |
| } | |
| }; | |
| /** | |
| * @param {?} value | |
| * @param {string} type | |
| * @param {boolean} name | |
| * @return {?} | |
| */ | |
| var addClass = function(value, type, name) { | |
| return name ? value.g(type) : value.k(type); | |
| }; | |
| self = klass.prototype; | |
| /** | |
| * @param {?} name | |
| * @return {?} | |
| */ | |
| self.getAttribute = function(name) { | |
| return this.empty() ? null : this.get().getAttribute(name); | |
| }; | |
| /** | |
| * @param {string} key | |
| * @param {?} name | |
| * @return {?} | |
| */ | |
| self.setAttribute = function(key, name) { | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < this.q.length;i++) { | |
| this.q[i].setAttribute(key, name); | |
| } | |
| return this; | |
| }; | |
| /** | |
| * @param {string} attribute | |
| * @return {?} | |
| */ | |
| self.hasAttribute = function(attribute) { | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < this.q.length;i++) { | |
| if (this.q[i].hasAttribute(attribute)) { | |
| return true; | |
| } | |
| } | |
| return false; | |
| }; | |
| /** | |
| * @param {string} attrName | |
| * @return {?} | |
| */ | |
| self.removeAttribute = function(attrName) { | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < this.q.length;i++) { | |
| this.q[i].removeAttribute(attrName); | |
| } | |
| return this; | |
| }; | |
| /** | |
| * @param {?} item | |
| * @return {?} | |
| */ | |
| var removeChild = function(item) { | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < item.q.length;i++) { | |
| var elt = item.q[i]; | |
| for (;elt.firstChild;) { | |
| elt.removeChild(elt.firstChild); | |
| } | |
| } | |
| return item; | |
| }; | |
| /** | |
| * @param {Object} value | |
| * @return {?} | |
| */ | |
| var arrayContains = function(value) { | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < value.q.length;i++) { | |
| if (value.q[i].firstChild) { | |
| return true; | |
| } | |
| } | |
| return false; | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.normalize = function() { | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < this.q.length;i++) { | |
| this.q[i].normalize(); | |
| } | |
| return this; | |
| }; | |
| /** | |
| * @param {?} v02 | |
| * @return {?} | |
| */ | |
| self.ca = function(v02) { | |
| removeChild(this); | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < this.q.length;i++) { | |
| this.q[i].appendChild(document.createTextNode(v02)); | |
| } | |
| return this; | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.text = function() { | |
| /** @type {string} */ | |
| var text = ""; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < this.q.length;i++) { | |
| var node = this.q[i]; | |
| if (node.textContent) { | |
| text += node.textContent; | |
| } else { | |
| if (node.nodeType == SELECT) { | |
| text += node.data; | |
| } | |
| } | |
| } | |
| return text; | |
| }; | |
| /** | |
| * @param {Object} e | |
| * @param {string} prefix | |
| * @return {?} | |
| */ | |
| var _forEach = function(e, prefix) { | |
| prefix = prefix || ""; | |
| /** @type {Array} */ | |
| var result = []; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < e.q.length;i++) { | |
| var node = e.q[i]; | |
| if (node.innerText) { | |
| result.push(node.innerText); | |
| } else { | |
| if (node.textContent) { | |
| console.warn("innerText not present, falling back on textContent"); | |
| result.push(node.textContent); | |
| } else { | |
| if (node.nodeType == SELECT) { | |
| result.push(node.data); | |
| } | |
| } | |
| } | |
| } | |
| return result.join(prefix); | |
| }; | |
| /** | |
| * @param {Object} el | |
| * @return {?} | |
| */ | |
| var check = function(el) { | |
| el = el.ya(); | |
| var cur = trim(el); | |
| if (!(1 != cur.length())) { | |
| if (!getComputedStyle(cur)) { | |
| el = cur; | |
| } | |
| } | |
| expect(el, function() { | |
| var p = jQuery(this).find("li"); | |
| expect(p, function() { | |
| if (!parent(p).wa(jQuery(this))) { | |
| jQuery(this).append(apply("\n")); | |
| } | |
| }); | |
| }); | |
| expect(el.find("th, td"), function() { | |
| if (this.nextSibling) { | |
| jQuery(this).append(apply("\t")); | |
| } else { | |
| jQuery(this).append(apply("\n")); | |
| } | |
| }); | |
| expect(el.find("b"), function() { | |
| text(jQuery(this), apply("**")).append(apply("**")); | |
| }); | |
| expect(el.find("i"), function() { | |
| text(jQuery(this), apply("*")).append(apply("*")); | |
| }); | |
| expect(el.find("u"), function() { | |
| text(jQuery(this), apply("_")).append(apply("_")); | |
| }); | |
| expect(el.find("li"), function() { | |
| /** @type {number} */ | |
| var buffer = 0; | |
| var p = this.parentNode; | |
| for (;p;) { | |
| if (p.tagName == this.parentNode.tagName) { | |
| buffer++; | |
| } | |
| p = p.parentNode; | |
| } | |
| var value = template(" ", buffer - 1); | |
| expect(jQuery(this).find("br"), function() { | |
| replace(jQuery(this), apply("\n" + value + " ")); | |
| }); | |
| if (this.parentNode && "OL" == this.parentNode.tagName) { | |
| /** @type {number} */ | |
| buffer = 1; | |
| p = this.previousSibling; | |
| for (;p;) { | |
| if ("LI" == p.tagName) { | |
| buffer++; | |
| } | |
| p = p.previousSibling; | |
| } | |
| value += buffer + ". "; | |
| } else { | |
| value += "* "; | |
| } | |
| text(jQuery(this), apply(value)); | |
| }); | |
| expect(el.find("h1"), function() { | |
| text(jQuery(this), apply("# ")); | |
| }); | |
| expect(el.find("h2"), function() { | |
| text(jQuery(this), apply("## ")); | |
| }); | |
| expect(el.find("h3"), function() { | |
| text(jQuery(this), apply("### ")); | |
| }); | |
| /** @type {number} */ | |
| cur = 0; | |
| for (;cur < el.length();++cur) { | |
| var c = jQuery(el.get(cur)).find("h1,h2,h3,p,ol,ul,table,pre"); | |
| if (!c.empty() && (write(c, "pre") && text(c, apply("```\n")).append(apply("\n```")), c.append(apply("\n")), write(c, "table") || c.append(apply("\n")), 0 != cur)) { | |
| var $this = jQuery(el.get(cur - 1)); | |
| if (!$this.empty()) { | |
| if (!start($this, "h1,h2,h3,p,ol,ul,table,pre")) { | |
| text(c, apply("\n")); | |
| } | |
| } | |
| } | |
| } | |
| expect(el.find("a"), function() { | |
| var href = jQuery(this).text(); | |
| if (href != this.href) { | |
| jQuery(this).ca("[" + href + "](" + this.href + ")"); | |
| } | |
| }); | |
| expect(el.find("img"), function() { | |
| jQuery(this).ca("[Image: " + this.src + "]"); | |
| }); | |
| expect(el.find("br"), function() { | |
| replace(jQuery(this), apply("\n")); | |
| }); | |
| return _forEach(el, ""); | |
| }; | |
| /** | |
| * @param {?} name | |
| * @return {?} | |
| */ | |
| self.data = function(name) { | |
| return this.getAttribute("data-" + name); | |
| }; | |
| /** | |
| * @param {?} parent | |
| * @param {?} optgroup | |
| * @return {?} | |
| */ | |
| var assertEquals = function(parent, optgroup) { | |
| return parseInt(parent.data(optgroup), 10); | |
| }; | |
| /** | |
| * @param {Object} element | |
| * @param {string} name | |
| * @return {?} | |
| */ | |
| var attr = function(element, name) { | |
| return element.hasAttribute("data-" + name); | |
| }; | |
| /** | |
| * @param {string} type | |
| * @param {string} name | |
| * @return {?} | |
| */ | |
| self.setData = function(type, name) { | |
| return this.setAttribute("data-" + type, name); | |
| }; | |
| /** | |
| * @param {Object} node | |
| * @param {string} name | |
| * @return {?} | |
| */ | |
| var eventType = function(node, name) { | |
| return node.removeAttribute("data-" + name); | |
| }; | |
| /** | |
| * @param {(number|string)} value | |
| * @param {string} val | |
| * @return {?} | |
| */ | |
| self.ja = function(value, val) { | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < this.q.length;i++) { | |
| /** @type {string} */ | |
| this.q[i].style[value] = val; | |
| } | |
| return this; | |
| }; | |
| /** | |
| * @param {?} element | |
| * @param {?} opt_attributes | |
| * @return {?} | |
| */ | |
| var setStyle = function(element, opt_attributes) { | |
| var name; | |
| for (name in opt_attributes) { | |
| var ref = opt_attributes[name]; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < element.q.length;i++) { | |
| element.q[i].style[name] = ref; | |
| } | |
| } | |
| return element; | |
| }; | |
| /** | |
| * @param {(number|string)} p | |
| * @return {?} | |
| */ | |
| self.Zh = function(p) { | |
| p = camelize(p); | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < this.q.length;i++) { | |
| if (value(this.q[i].style, p)) { | |
| return true; | |
| } | |
| } | |
| return false; | |
| }; | |
| /** | |
| * @param {?} value | |
| * @param {string} prop | |
| * @return {?} | |
| */ | |
| var css = function(value, prop) { | |
| prop = camelize(prop); | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < value.q.length;i++) { | |
| value.q[i].style.removeProperty(prop); | |
| } | |
| return value; | |
| }; | |
| /** | |
| * @param {?} e | |
| * @return {?} | |
| */ | |
| var renderBody = function(e) { | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < e.q.length;i++) { | |
| var style = e.q[i].style; | |
| for (;0 < style.length;) { | |
| style.removeProperty(style.item(0)); | |
| } | |
| } | |
| return e; | |
| }; | |
| /** | |
| * @param {Object} result | |
| * @param {Object} e | |
| * @return {?} | |
| */ | |
| var flattenTo = function(result, e) { | |
| var results = e.q[0]; | |
| if (results) { | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < result.q.length;i++) { | |
| var el = result.q[i]; | |
| /** @type {number} */ | |
| var j = 0; | |
| for (;j < results.style.length;j++) { | |
| var t = results.style.item(j); | |
| el.style[t] = results.style[t]; | |
| } | |
| } | |
| } | |
| return result; | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.blur = function() { | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < this.q.length;i++) { | |
| var field = this.q[i]; | |
| if (field.blur) { | |
| field.blur(); | |
| } | |
| } | |
| return this; | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.focus = function() { | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < this.q.length;i++) { | |
| var temp = this.q[i]; | |
| if (temp.focus) { | |
| temp.focus(); | |
| } | |
| } | |
| return this; | |
| }; | |
| /** | |
| * @param {?} s | |
| * @param {?} item | |
| * @return {?} | |
| */ | |
| var text = function(s, item) { | |
| var cell = s.q[0]; | |
| if (cell) { | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < item.q.length;i++) { | |
| var fragment = item.q[i]; | |
| if (cell.firstChild) { | |
| cell.insertBefore(fragment, cell.firstChild); | |
| } else { | |
| cell.appendChild(fragment); | |
| } | |
| } | |
| } | |
| return s; | |
| }; | |
| /** | |
| * @param {?} data | |
| * @return {?} | |
| */ | |
| self.append = function(data) { | |
| var id = this.q[0]; | |
| if (id) { | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < data.q.length;i++) { | |
| id.appendChild(data.q[i]); | |
| } | |
| } | |
| return this; | |
| }; | |
| /** | |
| * @param {?} a | |
| * @return {?} | |
| */ | |
| self.insertBefore = function(a) { | |
| if (a = a.q[0]) { | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < this.q.length;i++) { | |
| var node = this.q[i]; | |
| if (a.previousSibling != node) { | |
| a.parentNode.insertBefore(node, a); | |
| } | |
| } | |
| } | |
| return this; | |
| }; | |
| /** | |
| * @param {Object} a | |
| * @param {?} value | |
| * @return {?} | |
| */ | |
| var parseInt = function(a, value) { | |
| var element = value.q[0]; | |
| if (element) { | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < a.q.length;i++) { | |
| var parent = a.q[i]; | |
| if (element.nextSibling) { | |
| if (element.nextSibling != parent) { | |
| element.parentNode.insertBefore(parent, element.nextSibling); | |
| } | |
| } else { | |
| if (parent.previousSibling != element) { | |
| element.parentNode.appendChild(parent); | |
| } | |
| } | |
| } | |
| } | |
| return a; | |
| }; | |
| /** | |
| * @param {Object} e | |
| * @return {?} | |
| */ | |
| self.Pg = function(e) { | |
| if (e.empty() || this.empty()) { | |
| return false; | |
| } | |
| e = e.get().previousSibling; | |
| for (;null != e;e = e.previousSibling) { | |
| if (e == this.get()) { | |
| return true; | |
| } | |
| } | |
| return false; | |
| }; | |
| /** | |
| * @param {?} obj | |
| * @param {?} data | |
| * @return {undefined} | |
| */ | |
| var replace = function(obj, data) { | |
| /** @type {number} */ | |
| var t = Math.min(obj.q.length, data.q.length); | |
| if (t) { | |
| /** @type {boolean} */ | |
| var n = true; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < t;i++) { | |
| if (!obj.q[i].parentNode) { | |
| /** @type {boolean} */ | |
| n = false; | |
| break; | |
| } | |
| } | |
| if (n) { | |
| /** @type {number} */ | |
| i = 0; | |
| for (;i < t;i++) { | |
| obj.q[i].parentNode.replaceChild(data.q[i], obj.q[i]); | |
| } | |
| } else { | |
| /** @type {number} */ | |
| t = 0; | |
| } | |
| } | |
| if (t) { | |
| i = data.q[t - 1]; | |
| n = i.parentNode; | |
| var a = i.nextSibling; | |
| /** @type {number} */ | |
| i = t; | |
| for (;i < data.q.length;i++) { | |
| n.insertBefore(data.q[i], a); | |
| } | |
| /** @type {number} */ | |
| i = t; | |
| for (;i < obj.q.length;i++) { | |
| t = obj.q[i]; | |
| if (t.parentNode) { | |
| t.parentNode.removeChild(t); | |
| } | |
| } | |
| } else { | |
| data.insertBefore(obj); | |
| obj.remove(); | |
| } | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.next = function() { | |
| /** @type {Array} */ | |
| var eventPath = []; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < this.q.length;i++) { | |
| var cur = this.q[i].nextSibling; | |
| if (cur) { | |
| eventPath.push(cur); | |
| } | |
| } | |
| return new klass(eventPath); | |
| }; | |
| /** | |
| * @param {?} cur | |
| * @return {?} | |
| */ | |
| var sibling = function(cur) { | |
| /** @type {Array} */ | |
| var rule = []; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < cur.q.length;i++) { | |
| var line = cur.q[i]; | |
| for (;;) { | |
| if (line = line.nextSibling) { | |
| rule.push(line); | |
| } else { | |
| break; | |
| } | |
| } | |
| } | |
| return new klass(rule); | |
| }; | |
| /** | |
| * @param {Object} b | |
| * @return {?} | |
| */ | |
| var l = function(b) { | |
| /** @type {Array} */ | |
| var eventPath = []; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < b.q.length;i++) { | |
| var cur = b.q[i].previousSibling; | |
| if (cur) { | |
| eventPath.push(cur); | |
| } | |
| } | |
| return new klass(eventPath); | |
| }; | |
| /** | |
| * @param {Object} name | |
| * @param {number} suppressEvents | |
| * @return {?} | |
| */ | |
| var appendChild = function(name, suppressEvents) { | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < name.q.length;i++) { | |
| if (name.q[i].nodeType == suppressEvents) { | |
| return true; | |
| } | |
| } | |
| return false; | |
| }; | |
| /** | |
| * @param {Object} node | |
| * @param {string} name | |
| * @return {?} | |
| */ | |
| var write = function(node, name) { | |
| name = name.toUpperCase(); | |
| /** @type {number} */ | |
| var i = 0; | |
| var element; | |
| for (;element = node.q[i];i++) { | |
| if (element.nodeType == ELEMENT_NODE && element.nodeName == name) { | |
| return true; | |
| } | |
| } | |
| return false; | |
| }; | |
| /** | |
| * @param {number} key | |
| * @return {?} | |
| */ | |
| self.get = function(key) { | |
| key = key || 0; | |
| return key >= this.q.length ? null : this.q[key]; | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.show = function() { | |
| css(this, "display"); | |
| this.k("explicitlyhidden"); | |
| if ("none" == this.style("display")) { | |
| this.ja("display", "block"); | |
| } | |
| return this; | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ua = function() { | |
| /** @type {boolean} */ | |
| var a = true; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < this.q.length;i++) { | |
| a &= jQuery(this.q[i]).j("explicitlyhidden"); | |
| } | |
| if (a) { | |
| return this; | |
| } | |
| this.g("explicitlyhidden"); | |
| return this.ja("display", "none"); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Jb = function() { | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < this.q.length;i++) { | |
| var node = this.q[i]; | |
| if ("none" == node.style.display) { | |
| return false; | |
| } | |
| if (node.currentStyle) { | |
| if ("none" == node.currentStyle.display) { | |
| return false; | |
| } | |
| } else { | |
| if (window.getComputedStyle && "none" == document.defaultView.getComputedStyle(node, null).display) { | |
| return false; | |
| } | |
| } | |
| } | |
| return true; | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.remove = function() { | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < this.q.length;i++) { | |
| var t = this.q[i]; | |
| if (t.parentNode) { | |
| t.parentNode.removeChild(t); | |
| } | |
| } | |
| return this; | |
| }; | |
| /** | |
| * @param {Object} el | |
| * @return {?} | |
| */ | |
| var getElementById = function(el) { | |
| return(el = el.get()) ? document.documentElement.contains(el) : false; | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.disable = function() { | |
| return this.setAttribute("disabled", "disabled"); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.enable = function() { | |
| return this.removeAttribute("disabled"); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.clear = function() { | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < this.q.length;i++) { | |
| var elem = this.q[i]; | |
| if ("TEXTAREA" == elem.tagName) { | |
| for (;elem.firstChild;) { | |
| elem.removeChild(elem.firstChild); | |
| } | |
| /** @type {string} */ | |
| elem.value = ""; | |
| } else { | |
| if ("INPUT" == elem.tagName) { | |
| if ("hidden" != elem.type) { | |
| /** @type {string} */ | |
| elem.value = ""; | |
| } | |
| } | |
| } | |
| } | |
| return this; | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.value = function() { | |
| return this.empty() ? null : this.get().value; | |
| }; | |
| /** | |
| * @param {?} value | |
| * @return {?} | |
| */ | |
| self.af = function(value) { | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < this.q.length;i++) { | |
| this.q[i].value = value; | |
| } | |
| return this; | |
| }; | |
| /** | |
| * @param {Function} type | |
| * @param {Function} handler | |
| * @return {?} | |
| */ | |
| self.addListener = function(type, handler) { | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < this.q.length;i++) { | |
| addEvent(this.q[i], type, handler); | |
| } | |
| return this; | |
| }; | |
| /** | |
| * @param {string} type | |
| * @param {Function} opt_capt | |
| * @return {?} | |
| */ | |
| self.uh = function(type, opt_capt) { | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < this.q.length;i++) { | |
| addListener(this.q[i], type, opt_capt); | |
| } | |
| return this; | |
| }; | |
| /** | |
| * @param {?} self | |
| * @param {Function} callback | |
| * @return {undefined} | |
| */ | |
| var off = function(self, callback) { | |
| if (getObject()) { | |
| var expr = self.transitionDuration(); | |
| if (expr && self.q.length) { | |
| /** @type {boolean} */ | |
| var d = false; | |
| var id = push(function() { | |
| if (!d) { | |
| removeListener(listener); | |
| /** @type {boolean} */ | |
| d = true; | |
| callback(); | |
| } | |
| }, 2E3 * expr); | |
| var listener = addListener(self.q[0], "transitionend", function() { | |
| if (!d) { | |
| protectedClearTimeout(id); | |
| /** @type {boolean} */ | |
| d = true; | |
| callback(); | |
| } | |
| }); | |
| } else { | |
| self.uh("transitionend", callback); | |
| } | |
| } else { | |
| callback(); | |
| } | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.height = function() { | |
| return this.empty() ? 0 : this.get().offsetHeight; | |
| }; | |
| /** | |
| * @param {number} opt_attributes | |
| * @return {?} | |
| */ | |
| self.Sa = function(opt_attributes) { | |
| return this.ja("height", opt_attributes + "px"); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.width = function() { | |
| return this.empty() ? 0 : this.get().offsetWidth; | |
| }; | |
| /** | |
| * @param {number} opt_attributes | |
| * @return {?} | |
| */ | |
| self.gb = function(opt_attributes) { | |
| return this.ja("width", opt_attributes + "px"); | |
| }; | |
| /** | |
| * @param {?} $elem | |
| * @param {number} val | |
| * @return {?} | |
| */ | |
| var val = function($elem, val) { | |
| return $elem.ja("top", val + "px"); | |
| }; | |
| /** | |
| * @param {?} $this | |
| * @param {number} recurring | |
| * @return {?} | |
| */ | |
| var runCallbacks = function($this, recurring) { | |
| return $this.ja("bottom", recurring + "px"); | |
| }; | |
| /** | |
| * @param {?} node | |
| * @param {number} x | |
| * @return {?} | |
| */ | |
| var setSize = function(node, x) { | |
| return node.ja("left", x + "px"); | |
| }; | |
| /** | |
| * @param {Object} element | |
| * @param {number} value | |
| * @return {?} | |
| */ | |
| var getDimensions = function(element, value) { | |
| return element.ja("right", value + "px"); | |
| }; | |
| /** | |
| * @param {?} name | |
| * @return {?} | |
| */ | |
| self.style = function(name) { | |
| if (this.empty()) { | |
| return null; | |
| } | |
| var element = this.get(); | |
| if (element.nodeType == ELEMENT_NODE) { | |
| if (element.currentStyle) { | |
| return element.currentStyle[name]; | |
| } | |
| if (window.getComputedStyle) { | |
| return document.defaultView.getComputedStyle(element, null)[name]; | |
| } | |
| } | |
| return null; | |
| }; | |
| /** | |
| * @param {?} optgroup | |
| * @return {?} | |
| */ | |
| var fromPx = function(optgroup) { | |
| return function() { | |
| var widthAttr = this.style(optgroup); | |
| return widthAttr ? parseFloat(widthAttr) : 0; | |
| }; | |
| }; | |
| self.paddingLeft = fromPx("paddingLeft"); | |
| self.paddingRight = fromPx("paddingRight"); | |
| self.borderTop = fromPx("borderTopWidth"); | |
| self.borderBottom = fromPx("borderBottomWidth"); | |
| self.borderLeft = fromPx("borderLeftWidth"); | |
| self.borderRight = fromPx("borderRightWidth"); | |
| self.marginTop = fromPx("marginTop"); | |
| self.marginBottom = fromPx("marginBottom"); | |
| self.marginLeft = fromPx("marginLeft"); | |
| self.fontSize = fromPx("fontSize"); | |
| self.vA = fromPx("top"); | |
| self.Sz = fromPx("right"); | |
| self.transitionDuration = fromPx("transitionDuration"); | |
| /** | |
| * @return {?} | |
| */ | |
| self.lineHeight = function() { | |
| var state = fromPx("lineHeight").call(this); | |
| return isNaN(state) ? this.fontSize() : state; | |
| }; | |
| /** | |
| * @param {?} elem | |
| * @return {?} | |
| */ | |
| var getComputedStyle = function(elem) { | |
| return elem.get() instanceof Element ? "inline" == elem.style("display") : false; | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.submit = function() { | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < this.q.length;i++) { | |
| this.q[i].submit(); | |
| } | |
| return this; | |
| }; | |
| /** | |
| * @param {Object} position | |
| * @return {?} | |
| */ | |
| var _qwery = function(position) { | |
| position = position.ga(); | |
| return{ | |
| left : position.left, | |
| top : position.top | |
| }; | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ga = function() { | |
| var bb = this.get().getBoundingClientRect(); | |
| return{ | |
| left : Math.round(bb.left), | |
| top : Math.round(bb.top), | |
| right : Math.round(bb.right), | |
| bottom : Math.round(bb.bottom), | |
| width : Math.round(bb.width), | |
| height : Math.round(bb.height) | |
| }; | |
| }; | |
| /** | |
| * @param {Object} node | |
| * @param {HTMLElement} parent | |
| * @return {?} | |
| */ | |
| var rect = function(node, parent) { | |
| var to = node.get().getBoundingClientRect(); | |
| var position = parent.get().getBoundingClientRect(); | |
| /** @type {number} */ | |
| var sMin = 0; | |
| /** @type {number} */ | |
| var lMin = 0; | |
| if (parent.contains(node)) { | |
| sMin = parent.scrollLeft(); | |
| lMin = parent.scrollTop(); | |
| } | |
| return{ | |
| left : Math.round(to.left - position.left + sMin), | |
| top : Math.round(to.top - position.top + lMin), | |
| right : Math.round(to.right - position.left + sMin), | |
| bottom : Math.round(to.bottom - position.top + lMin), | |
| width : Math.round(to.width), | |
| height : Math.round(to.height) | |
| }; | |
| }; | |
| /** | |
| * @param {boolean} node | |
| * @return {?} | |
| */ | |
| self.scrollIntoView = function(node) { | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < this.q.length;i++) { | |
| var link = this.q[i]; | |
| if (link.scrollIntoViewIfNeeded) { | |
| link.scrollIntoViewIfNeeded(false); | |
| } else { | |
| link.scrollIntoView(node); | |
| } | |
| } | |
| return this; | |
| }; | |
| /** | |
| * @param {Object} obj | |
| * @param {string} key | |
| * @return {?} | |
| */ | |
| var peek = function(obj, key) { | |
| if (obj.empty()) { | |
| return null; | |
| } | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < vendors.length;i++) { | |
| var v = vendors[i]; | |
| v = v ? v + key[0].toUpperCase() + key.substr(1) : key; | |
| if (exec(obj.get().style[v])) { | |
| return v; | |
| } | |
| } | |
| return null; | |
| }; | |
| /** | |
| * @param {?} style | |
| * @param {string} name | |
| * @param {string} property | |
| * @return {?} | |
| */ | |
| var vendor = function(style, name, property) { | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < vendors.length;i++) { | |
| var m = vendors[i]; | |
| style.ja(m ? m + name[0].toUpperCase() + name.substr(1) : name, property); | |
| } | |
| return style; | |
| }; | |
| /** | |
| * @param {Object} body | |
| * @return {?} | |
| */ | |
| var _reorderListItem = function(body) { | |
| if (body.empty()) { | |
| return 0; | |
| } | |
| body = body.get(); | |
| return(body.scrollTop + body.clientHeight) / body.scrollHeight; | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.scrollLeft = function() { | |
| return this.empty() ? 0 : this.get().scrollLeft; | |
| }; | |
| /** | |
| * @param {?} label | |
| * @param {number} value | |
| * @return {undefined} | |
| */ | |
| var formatter = function(label, value) { | |
| if (!label.empty()) { | |
| /** @type {number} */ | |
| label.get().scrollLeft = value; | |
| } | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.scrollTop = function() { | |
| return this.empty() ? 0 : this.get().scrollTop; | |
| }; | |
| /** | |
| * @param {Object} target | |
| * @param {number} value | |
| * @return {undefined} | |
| */ | |
| var getOwnPropertyDescriptor = function(target, value) { | |
| if (!target.empty()) { | |
| /** @type {number} */ | |
| target.get().scrollTop = value; | |
| } | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ji = function() { | |
| if (this.empty()) { | |
| return 0; | |
| } | |
| var body = this.get(); | |
| return body.scrollHeight - (body.scrollTop + body.clientHeight); | |
| }; | |
| /** | |
| * @param {?} input | |
| * @param {number} mayParseLabeledStatementInstead | |
| * @return {undefined} | |
| */ | |
| var appendTo = function(input, mayParseLabeledStatementInstead) { | |
| if (!input.empty()) { | |
| var textarea = input.get(); | |
| /** @type {number} */ | |
| textarea.scrollTop = textarea.scrollHeight - textarea.clientHeight - mayParseLabeledStatementInstead; | |
| } | |
| }; | |
| /** | |
| * @param {?} data | |
| * @return {?} | |
| */ | |
| var parents = function(data) { | |
| var separator; | |
| /** @type {string} */ | |
| separator = separator || ""; | |
| /** @type {Array} */ | |
| var string = []; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < data.q.length;i++) { | |
| var obj = data.q[i]; | |
| if (obj.innerHTML) { | |
| string.push(obj.innerHTML); | |
| } else { | |
| if (obj.nodeType == SELECT) { | |
| string.push(tmpl(obj.data)); | |
| } | |
| } | |
| } | |
| return string.join(separator); | |
| }; | |
| /** | |
| * @param {?} e | |
| * @param {string} value | |
| * @return {?} | |
| */ | |
| var indexOf = function(e, value) { | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < e.q.length;i++) { | |
| /** @type {string} */ | |
| e.q[i].innerHTML = value; | |
| } | |
| return e; | |
| }; | |
| /** | |
| * @param {?} value | |
| * @return {?} | |
| */ | |
| var h = function(value) { | |
| var separator; | |
| /** @type {string} */ | |
| separator = separator || ""; | |
| /** @type {Array} */ | |
| var result = []; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < value.q.length;i++) { | |
| var el = value.q[i]; | |
| if (el.outerHTML) { | |
| result.push(el.outerHTML); | |
| } else { | |
| if (el.nodeType == SELECT) { | |
| result.push(tmpl(el.data)); | |
| } | |
| } | |
| } | |
| return result.join(separator); | |
| }; | |
| /** | |
| * @param {?} keepData | |
| * @return {?} | |
| */ | |
| self.wa = function(keepData) { | |
| if (keepData.q.length != this.q.length) { | |
| return false; | |
| } | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < this.q.length;i++) { | |
| if (this.q[i] != keepData.q[i]) { | |
| return false; | |
| } | |
| } | |
| return true; | |
| }; | |
| /** | |
| * @param {(Object|boolean|number|string)} data | |
| * @return {?} | |
| */ | |
| self.ya = function(data) { | |
| data = data || isFunction(data); | |
| /** @type {Array} */ | |
| var script = []; | |
| /** @type {number} */ | |
| var i = 0; | |
| var part; | |
| for (;part = this.q[i];i++) { | |
| script.push(part.cloneNode(data)); | |
| } | |
| return new klass(script); | |
| }; | |
| /** | |
| * @param {?} name | |
| * @return {?} | |
| */ | |
| self.contains = function(name) { | |
| /** @type {number} */ | |
| var idx = 0; | |
| for (;idx < name.q.length;idx++) { | |
| var ua = name.q[idx]; | |
| /** @type {boolean} */ | |
| var d = false; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < this.q.length;i++) { | |
| if (this.q[i].contains(ua)) { | |
| /** @type {boolean} */ | |
| d = true; | |
| break; | |
| } | |
| } | |
| if (!d) { | |
| return false; | |
| } | |
| } | |
| return true; | |
| }; | |
| /** | |
| * @param {number} source | |
| * @return {?} | |
| */ | |
| self.jj = function(source) { | |
| /** @type {number} */ | |
| var j = 0; | |
| for (;j < source.q.length;j++) { | |
| var b = source.q[j]; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < this.q.length;i++) { | |
| if (!(this.q[i].compareDocumentPosition(b) & Node.DOCUMENT_POSITION_PRECEDING)) { | |
| return false; | |
| } | |
| } | |
| } | |
| return true; | |
| }; | |
| /** | |
| * @param {?} size | |
| * @param {Object} options | |
| * @return {undefined} | |
| */ | |
| self.scale = function(size, options) { | |
| options = options || this.ga(); | |
| /** @type {number} */ | |
| var c = size.width / options.width; | |
| /** @type {number} */ | |
| var d = size.height / options.height; | |
| vendor(this, "transformOrigin", Math.round((size.left - options.left) / (1 - c)) + "px " + Math.round((size.top - options.top) / (1 - d)) + "px"); | |
| vendor(this, "transform", "scale(" + c + "," + d + ")"); | |
| }; | |
| /** | |
| * @param {Function} arr | |
| * @return {undefined} | |
| */ | |
| self.sort = function(arr) { | |
| if (!(2 > this.q.length)) { | |
| /** @type {Array} */ | |
| var nodes = []; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < this.q.length;i++) { | |
| var node = this.q[i]; | |
| /** @type {number} */ | |
| node["dom.js.nodeSortIndex"] = i; | |
| nodes.push(node); | |
| } | |
| nodes.sort(function($rootScope, protoProps) { | |
| var child = arr($rootScope, protoProps); | |
| return 0 != child ? child : $rootScope["dom.js.nodeSortIndex"] - protoProps["dom.js.nodeSortIndex"]; | |
| }); | |
| /** @type {boolean} */ | |
| var ancestor = true; | |
| /** @type {number} */ | |
| i = 0; | |
| for (;i < this.q.length;i++) { | |
| node = nodes[i]; | |
| var type = node["dom.js.nodeSortIndex"]; | |
| delete node["dom.js.nodeSortIndex"]; | |
| if (type != i) { | |
| /** @type {boolean} */ | |
| ancestor = false; | |
| } | |
| } | |
| if (!ancestor) { | |
| ancestor = nodes[0]; | |
| /** @type {number} */ | |
| i = 1; | |
| for (;i < nodes.length;i++) { | |
| node = nodes[i]; | |
| node.parentNode.insertBefore(node, ancestor.nextSibling); | |
| ancestor = node; | |
| } | |
| } | |
| } | |
| }; | |
| /** | |
| * @param {?} node | |
| * @param {?} offset | |
| * @return {?} | |
| */ | |
| var assertValidOffset = function(node, offset) { | |
| /** @type {(Range|null)} */ | |
| var nodeRange = document.createRange(); | |
| nodeRange.setStart(node.q[0], offset); | |
| return nodeRange; | |
| }; | |
| /** | |
| * @param {?} v | |
| * @param {boolean} mayParseLabeledStatementInstead | |
| * @return {?} | |
| */ | |
| var ok = function(v, mayParseLabeledStatementInstead) { | |
| expect(v, function() { | |
| /** @type {boolean} */ | |
| this.contentEditable = mayParseLabeledStatementInstead; | |
| }); | |
| return v; | |
| }; | |
| /** | |
| * @param {?} length | |
| * @param {?} draggable | |
| * @return {undefined} | |
| */ | |
| var expectData = function(length, draggable) { | |
| expect(length, function() { | |
| this.draggable = draggable; | |
| }); | |
| }; | |
| /** | |
| * @param {?} item | |
| * @return {?} | |
| */ | |
| var updater = function(item) { | |
| item.height(); | |
| return item; | |
| }; | |
| var item = jQuery(document.body); | |
| var attrs = peek(item, "transition"); | |
| var pdataCur = peek(item, "transform"); | |
| /** | |
| * @return {?} | |
| */ | |
| var valueAccessor = function() { | |
| return exec(cmd) ? "small" == cmd : _isSafari ? !_tryInitOnFocus : isContentHeight ? 630 > Math.min(window.innerWidth, window.innerHeight) : false; | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| var getPropertyValue = function() { | |
| return exec(cmd) ? "medium" == cmd : false; | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var adjust = function() { | |
| addClass(addClass(item, "small-screen", valueAccessor()), "medium-screen", getPropertyValue()); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var getDevice = function() { | |
| addClass(addClass(item, "tablet", exec(code) ? code : _isSafari ? _tryInitOnFocus : false), "phone", urlEncodeIfNecessary()); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| var urlEncodeIfNecessary = function() { | |
| return(_isSafari || isContentHeight) && !(exec(code) ? code : _isSafari && _tryInitOnFocus); | |
| }; | |
| var isCORS; | |
| var q; | |
| var isHorizontal; | |
| var err; | |
| var _isSafari; | |
| var _tryInitOnFocus; | |
| var isContentHeight; | |
| var applyIfNotSet; | |
| var external; | |
| var intWidth; | |
| var ci; | |
| var cmd; | |
| var code; | |
| /** @type {string} */ | |
| var ua = navigator.userAgent.toLowerCase(); | |
| /** @type {boolean} */ | |
| isCORS = -1 != ua.indexOf("webkit"); | |
| /** @type {boolean} */ | |
| isContentHeight = -1 != ua.indexOf("android"); | |
| /** @type {boolean} */ | |
| applyIfNotSet = -1 != ua.indexOf("chrome"); | |
| /** @type {boolean} */ | |
| external = -1 != ua.indexOf("gecko") && -1 == ua.indexOf("like gecko"); | |
| /** @type {boolean} */ | |
| ci = -1 != ua.indexOf("opera"); | |
| /** @type {number} */ | |
| q = -1; | |
| if (isCORS) { | |
| /** @type {(Array.<string>|null)} */ | |
| var version = /applewebkit\/([\d.]+)/.exec(ua); | |
| if (version) { | |
| /** @type {number} */ | |
| q = parseFloat(version[1]); | |
| } | |
| } | |
| /** @type {number} */ | |
| intWidth = -1; | |
| if (external) { | |
| if (version = /rv:([\d.]+)\)/.exec(ua)) { | |
| /** @type {number} */ | |
| intWidth = parseFloat(version[1]); | |
| } | |
| } | |
| /** @type {string} */ | |
| var userAgent = navigator.platform; | |
| /** @type {boolean} */ | |
| isHorizontal = 0 == userAgent.indexOf("Win"); | |
| /** @type {boolean} */ | |
| err = 0 == userAgent.indexOf("Mac"); | |
| /** @type {boolean} */ | |
| _isSafari = !checkElements(userAgent.match(/^(iPad|iPhone|iPod)/)) || -1 != location.search.indexOf("debug_useragent=ios"); | |
| /** @type {boolean} */ | |
| _tryInitOnFocus = !checkElements(userAgent.match(/^(iPad)/)); | |
| if (_isSafari) { | |
| item.g("ios"); | |
| } | |
| if (isContentHeight) { | |
| item.g("android"); | |
| } | |
| cmd = void 0; | |
| adjust(); | |
| code = void 0; | |
| getDevice(); | |
| if (isCORS) { | |
| item.g("webkit"); | |
| } | |
| if (-1 < q) { | |
| if (537 > q) { | |
| item.g("webkit-536"); | |
| } | |
| } | |
| if (external) { | |
| item.g("gecko"); | |
| } | |
| append("userAgent.isAndroid", function() { | |
| return isContentHeight; | |
| }); | |
| append("userAgent.isIOs", function() { | |
| return _isSafari; | |
| }); | |
| /** @type {boolean} */ | |
| var gl = false; | |
| var KEY_ACTION_MAPPINGS = {}; | |
| var cur = {}; | |
| /** @type {boolean} */ | |
| var jl = false; | |
| /** | |
| * @param {number} line | |
| * @param {number} val | |
| * @param {Function} e | |
| * @return {?} | |
| */ | |
| var handleEvent = function(line, val, e) { | |
| if (!gl) { | |
| addEvent(document, "keydown", keydown); | |
| if (isHorizontal) { | |
| addEvent(document, "keypress", clearModifier); | |
| addEvent(document, "keyup", basePrototype); | |
| } | |
| /** @type {boolean} */ | |
| gl = true; | |
| } | |
| var tok = new configure(line, val); | |
| if (val & indents) { | |
| val &= ~indents; | |
| /** @type {number} */ | |
| val = err ? val | STACK_ATTACHED : val | timeout; | |
| } | |
| /** @type {Array} */ | |
| var lines = [line]; | |
| if (48 <= line) { | |
| if (57 >= line) { | |
| lines.push(line + 48); | |
| } | |
| } | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < lines.length;i++) { | |
| line = lines[i]; | |
| if (!(line in KEY_ACTION_MAPPINGS)) { | |
| /** @type {Array} */ | |
| KEY_ACTION_MAPPINGS[line] = []; | |
| } | |
| KEY_ACTION_MAPPINGS[line].push({ | |
| Jq : val, | |
| /** @type {Function} */ | |
| Pk : e, | |
| iy : tok | |
| }); | |
| } | |
| return tok; | |
| }; | |
| /** | |
| * @param {number} c | |
| * @param {number} val | |
| * @return {undefined} | |
| */ | |
| var configure = function(c, val) { | |
| /** @type {number} */ | |
| this.keyCode = c; | |
| /** @type {number} */ | |
| this.Jq = val; | |
| /** @type {null} */ | |
| this.xo = null; | |
| /** @type {Array} */ | |
| var modifiers = []; | |
| if (val & indents) { | |
| modifiers.push("Mod"); | |
| } | |
| if (val & STACK_ATTACHED) { | |
| modifiers.push("Meta"); | |
| } | |
| if (val & timeout) { | |
| modifiers.push("Ctrl"); | |
| } | |
| if (val & backgroundLayerMask) { | |
| modifiers.push("Shift"); | |
| } | |
| if (val & ERROR_HANDLED) { | |
| modifiers.push("Alt"); | |
| } | |
| var g = "0x" + c.toString(16); | |
| if (9 == c) { | |
| /** @type {string} */ | |
| g = "Tab"; | |
| } else { | |
| if (13 == c) { | |
| /** @type {string} */ | |
| g = "Return"; | |
| } else { | |
| if (27 == c) { | |
| /** @type {string} */ | |
| g = "Esc"; | |
| } else { | |
| if (191 == c) { | |
| /** @type {string} */ | |
| g = "/"; | |
| } else { | |
| if (192 == c) { | |
| /** @type {string} */ | |
| g = "`"; | |
| } else { | |
| if (38 == c) { | |
| /** @type {string} */ | |
| g = "\u2191"; | |
| } else { | |
| if (40 == c) { | |
| /** @type {string} */ | |
| g = "\u2193"; | |
| } else { | |
| if (32 < c) { | |
| if (127 > c) { | |
| /** @type {string} */ | |
| g = String.fromCharCode(c); | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| modifiers.push(g); | |
| /** @type {string} */ | |
| this.oz = modifiers.join("-"); | |
| }; | |
| /** | |
| * @param {?} object | |
| * @param {?} callback | |
| * @return {?} | |
| */ | |
| var seal = function(object, callback) { | |
| object.xo = callback; | |
| return object; | |
| }; | |
| /** | |
| * @param {?} object | |
| * @param {number} expectedNumberOfNonCommentArgs | |
| * @param {?} description | |
| * @return {?} | |
| */ | |
| var getEnumerableProperties = function(object, expectedNumberOfNonCommentArgs, description) { | |
| object.description = description; | |
| if (!(expectedNumberOfNonCommentArgs in cur)) { | |
| /** @type {Array} */ | |
| cur[expectedNumberOfNonCommentArgs] = []; | |
| } | |
| cur[expectedNumberOfNonCommentArgs].push(object); | |
| return object; | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| configure.prototype.Dd = function() { | |
| maybeCallback("keyboard_shortcut", { | |
| shortcut : this.oz | |
| }); | |
| }; | |
| /** | |
| * @param {Object} event | |
| * @return {undefined} | |
| */ | |
| var keydown = function(event) { | |
| if ("keydown" == event.type && simulateMouseEvent(event)) { | |
| /** @type {boolean} */ | |
| jl = false; | |
| } else { | |
| if ((event.metaKey || event.ctrlKey) && event.keyCode in KEY_ACTION_MAPPINGS) { | |
| /** @type {number} */ | |
| var YYSTATE = YY_START; | |
| if (event.shiftKey) { | |
| YYSTATE |= backgroundLayerMask; | |
| } | |
| if (event.altKey) { | |
| YYSTATE |= ERROR_HANDLED; | |
| } | |
| if (event.metaKey) { | |
| YYSTATE |= STACK_ATTACHED; | |
| } | |
| if (event.ctrlKey) { | |
| YYSTATE |= timeout; | |
| } | |
| var resultItems = KEY_ACTION_MAPPINGS[event.keyCode]; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < resultItems.length;i++) { | |
| var result = resultItems[i]; | |
| if (result.Jq == YYSTATE) { | |
| if (result.Pk(jQuery(event.target))) { | |
| stopEvent(event); | |
| } | |
| result.iy.Dd(); | |
| break; | |
| } | |
| } | |
| } | |
| } | |
| }; | |
| /** | |
| * @param {Object} event | |
| * @return {?} | |
| */ | |
| var simulateMouseEvent = function(event) { | |
| return isHorizontal && (!external && (event.ctrlKey && (event.altKey && !event.shiftKey))); | |
| }; | |
| /** | |
| * @param {Object} event | |
| * @return {undefined} | |
| */ | |
| var clearModifier = function(event) { | |
| if (32 < event.keyCode) { | |
| if (simulateMouseEvent(event)) { | |
| /** @type {boolean} */ | |
| jl = true; | |
| } | |
| } | |
| }; | |
| /** | |
| * @param {Object} qualifier | |
| * @return {undefined} | |
| */ | |
| var basePrototype = function(qualifier) { | |
| if (!jl) { | |
| if (simulateMouseEvent(qualifier)) { | |
| keydown(qualifier); | |
| } | |
| } | |
| }; | |
| /** @type {number} */ | |
| var YY_START = 0; | |
| /** @type {number} */ | |
| var backgroundLayerMask = 1; | |
| /** @type {number} */ | |
| var ERROR_HANDLED = 2; | |
| /** @type {number} */ | |
| var STACK_ATTACHED = 4; | |
| /** @type {number} */ | |
| var timeout = 8; | |
| /** @type {number} */ | |
| var indents = 16; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Tab = function() { | |
| /** | |
| * @param {number} dir | |
| * @param {?} value | |
| * @return {undefined} | |
| */ | |
| function init(dir, value) { | |
| var codeSegments = cur[dir] || []; | |
| value.append(createElement("label").ca(newline(dir))); | |
| var display = createElement("section"); | |
| value.append(display); | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < codeSegments.length;i++) { | |
| var data = codeSegments[i]; | |
| /** | |
| * @param {Object} canvas | |
| * @return {?} | |
| */ | |
| var render = function(canvas) { | |
| var codeSegments = getCompletions(canvas.Jq); | |
| codeSegments.push(_mapKeycodeToKey(canvas.keyCode)); | |
| canvas = createElement("span"); | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < codeSegments.length;i++) { | |
| canvas.append(createElement("div", "key").ca(codeSegments[i])); | |
| } | |
| return canvas; | |
| }; | |
| var list = createElement("div", "keys"); | |
| if (data.xo) { | |
| indexOf(list, callback("%(shortcut1)s or %(shortcut2)s [List of two sets of keyboard shortcuts that trigger the same behavior]", { | |
| shortcut1 : h(render(data)), | |
| shortcut2 : h(render(data.xo)) | |
| })); | |
| } else { | |
| list.append(render(data)); | |
| } | |
| display.append(createElement("div", "shortcut").append(list).append(createElement("div", "description").ca(data.description))); | |
| } | |
| } | |
| if (jQuery(".shortcuts-cheat-sheet.dialog").empty()) { | |
| var pdataCur = createElement("h1").ca(callback("Keyboard Shortcuts")); | |
| var row = createElement("div", "column"); | |
| var udataCur = row.ya(); | |
| var table = createElement("div", "body").append(row).append(udataCur); | |
| init(0, row); | |
| init(1, row); | |
| init(2, udataCur); | |
| if (getNativeElement()) { | |
| row = createElement("div", "debug"); | |
| init(3, row); | |
| table.append(row); | |
| pdataCur.append(createElement("div").ca("Debug shortcuts").setData("click", "toggle-debug-shortcuts")); | |
| } | |
| is(createElement("div", "shortcuts-cheat-sheet dialog").append(pdataCur).append(createElement("div", "body").append(table))); | |
| } else { | |
| close(); | |
| } | |
| }; | |
| /** | |
| * @param {number} m | |
| * @return {?} | |
| */ | |
| var newline = function(m) { | |
| switch(m) { | |
| case 0: | |
| return callback("Anywhere"); | |
| case 1: | |
| return callback("Style"); | |
| case 2: | |
| return callback("Editing"); | |
| case 3: | |
| return "Debug"; | |
| } | |
| return ""; | |
| }; | |
| /** | |
| * @param {number} key | |
| * @return {?} | |
| */ | |
| var _mapKeycodeToKey = function(key) { | |
| if (key >= keys.A && key <= keys.Z || 48 <= key && 57 >= key) { | |
| return String.fromCharCode(key); | |
| } | |
| if (96 <= key && 105 >= key) { | |
| return String.fromCharCode(48 + key - 96); | |
| } | |
| switch(key) { | |
| case 9: | |
| return callback("Tab [Keyboard key name]"); | |
| case 13: | |
| return callback("Return [Keyboard key name]"); | |
| case 27: | |
| return callback("Escape [Keyboard key name]"); | |
| case 191: | |
| return "/"; | |
| case 192: | |
| return callback("` (Backtick) [Keyboard key name]"); | |
| case 38: | |
| return "\u2191"; | |
| case 40: | |
| return "\u2193"; | |
| } | |
| return String.fromCharCode(key); | |
| }; | |
| /** | |
| * @param {number} val | |
| * @return {?} | |
| */ | |
| var getCompletions = function(val) { | |
| /** @type {Array} */ | |
| var _results = []; | |
| if (val & indents) { | |
| _results.push(err ? callback("Cmd [Mac 'Command' keyboard key name]") : callback("Ctrl [Keyboard key name]")); | |
| } | |
| if (val & STACK_ATTACHED) { | |
| _results.push(callback("Cmd [Mac 'Command' keyboard key name]")); | |
| } | |
| if (val & timeout) { | |
| _results.push(callback("Ctrl [Keyboard key name]")); | |
| } | |
| if (val & ERROR_HANDLED) { | |
| _results.push(err ? callback("Opt [Mac 'Option' keyboard key name]") : callback("Alt [Keyboard key name]")); | |
| } | |
| if (val & backgroundLayerMask) { | |
| _results.push(callback("Shift [Keyboard key name]")); | |
| } | |
| return _results; | |
| }; | |
| $("click", "toggle-debug-shortcuts", function() { | |
| removeAttr(this.parent(".shortcuts-cheat-sheet"), "show-debug-shortcuts"); | |
| return false; | |
| }); | |
| attempt(function() { | |
| getEnumerableProperties(handleEvent(191, indents, function() { | |
| Tab(); | |
| return true; | |
| }), 0, callback("List keyboard shortcuts")); | |
| }); | |
| /** | |
| * @param {string} name | |
| * @param {?} opt_attributes | |
| * @return {?} | |
| */ | |
| var callback = function(name, opt_attributes) { | |
| var o = window.gTranslations; | |
| if (o && o[name]) { | |
| name = o[name]; | |
| } else { | |
| if ("]" == name[name.length - 1]) { | |
| name = name.substr(0, name.lastIndexOf("[") - 1); | |
| } | |
| } | |
| if (opt_attributes) { | |
| var letter; | |
| for (letter in opt_attributes) { | |
| name = name.replace("%(" + letter + ")s", opt_attributes[letter]); | |
| } | |
| } | |
| return name; | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| var detectDevice = function() { | |
| return window.kLocaleCode || window.navigator.language; | |
| }; | |
| var fabric = {}; | |
| var val2; | |
| var ATTR_ID; | |
| var DOW_MAP = {}; | |
| var colors = {}; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var dayFromMonth = function() { | |
| var val1 = floor(); | |
| if (val1 != val2) { | |
| val2 = val1; | |
| /** @type {boolean} */ | |
| colors["thumbnail-stack"] = false; | |
| /** @type {boolean} */ | |
| val1 = 18 > jQuery(".folder > .body .thumbnail-stack").length(); | |
| if (!(DOW_MAP["thumbnail-stack"] = val1)) { | |
| clearSelection(); | |
| } | |
| makeRequest(5); | |
| } | |
| }; | |
| /** | |
| * @param {?} callback | |
| * @param {?} data | |
| * @param {string} name | |
| * @param {?} obj | |
| * @param {?} key | |
| * @param {?} i | |
| * @return {undefined} | |
| */ | |
| var del = function(callback, data, name, obj, key, i) { | |
| var o = {}; | |
| if (callback) { | |
| o.folder_id = callback; | |
| } | |
| if (name) { | |
| /** @type {string} */ | |
| o.next_id = name; | |
| } | |
| if (obj) { | |
| o.copy_document_id = obj; | |
| } | |
| if (key) { | |
| o.copy_secret_path = key; | |
| } | |
| if (i) { | |
| o.new_title = i; | |
| } | |
| if (data) { | |
| if (processData(data)) { | |
| processOne(); | |
| upload("upload-new-document", data, function(chat) { | |
| jQuery(".thumbnail-stack.importing").remove(); | |
| loadNext(); | |
| put(chat); | |
| }, function(resp) { | |
| jQuery(".thumbnail-stack.importing").remove(); | |
| loadNext(); | |
| resp = resp.getResponseHeader("X-Quip-Import-Error-Message") || callback("Unable to import file"); | |
| error(resp); | |
| }, o, jQuery(".filedrop.importing .bar")); | |
| } else { | |
| jQuery(".thumbnail-stack.importing").remove(); | |
| } | |
| } else { | |
| next("/-/new-document", o, function(walkers) { | |
| focus(walkers); | |
| }); | |
| } | |
| }; | |
| /** | |
| * @param {Function} cb | |
| * @return {undefined} | |
| */ | |
| var doRender = function(cb) { | |
| compile("inbox-page", "snippet", 20, jQuery("#inbox > .body"), cb); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var newBindings = function() { | |
| if (0.75 < _reorderListItem(jQuery("#inbox > .body"))) { | |
| doRender(); | |
| } | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var clearSelection = function() { | |
| if (0.75 < _reorderListItem(jQuery(".folder > .body"))) { | |
| compile("desktop-page", "thumbnail-stack", 24, jQuery(".folder > .body")); | |
| } | |
| }; | |
| /** | |
| * @param {string} attr | |
| * @param {string} string | |
| * @param {number} opt_attributes | |
| * @param {Object} elm | |
| * @param {Function} template | |
| * @return {undefined} | |
| */ | |
| var compile = function(attr, string, opt_attributes, elm, template) { | |
| if (!DOW_MAP[string]) { | |
| if (!colors[string]) { | |
| /** @type {boolean} */ | |
| colors[string] = true; | |
| next("/-/" + attr, { | |
| start : parent(jQuery("." + string + ":not(.bottom)")).data("sort"), | |
| count : opt_attributes, | |
| folder : floor(), | |
| thread : html() | |
| }, function(items) { | |
| items = items.items; | |
| console.time(items.length + " new " + string + "s"); | |
| var d = elm.find(".bottom.sticky"); | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < items.length;i++) { | |
| var data = items[i]; | |
| var targets = jQuery("." + string + "[data-id='" + data.id + "']"); | |
| data = get(data.html); | |
| if (targets.empty()) { | |
| if (d.empty()) { | |
| elm.append(data); | |
| } else { | |
| data.insertBefore(d); | |
| } | |
| } else { | |
| replace(targets, data); | |
| } | |
| } | |
| console.timeEnd(items.length + " new " + string + "s"); | |
| /** @type {boolean} */ | |
| colors[string] = false; | |
| if (items.length < 0.75 * opt_attributes) { | |
| /** @type {boolean} */ | |
| DOW_MAP[string] = true; | |
| } | |
| if (template) { | |
| template(); | |
| } | |
| }, function() { | |
| /** @type {boolean} */ | |
| colors[string] = false; | |
| return true; | |
| }); | |
| } | |
| } | |
| }; | |
| /** | |
| * @param {Object} deepDataAndEvents | |
| * @param {(Error|string)} path | |
| * @param {Object} field | |
| * @param {boolean} dataAndEvents | |
| * @return {undefined} | |
| */ | |
| var onChange = function(deepDataAndEvents, path, field, dataAndEvents) { | |
| if (!dataAndEvents && isDirectory(path)) { | |
| removeClass(callback("%(person)s is not a part of %(workgroup)s. Are you sure you want to share with this person?", { | |
| person : data.Ka(path).name, | |
| workgroup : operation() | |
| }), callback("Share"), callback("Cancel"), function(dataAndEvents) { | |
| if (dataAndEvents) { | |
| onChange(deepDataAndEvents, path, field, true); | |
| } else { | |
| field.enable(); | |
| } | |
| }); | |
| } else { | |
| next("/-/add-members", { | |
| folder : deepDataAndEvents, | |
| users : path | |
| }, function(val) { | |
| onComplete(val); | |
| obj.input.search.call(field.enable().clear(), null); | |
| }, function() { | |
| field.enable(); | |
| return true; | |
| }); | |
| } | |
| }; | |
| var relPos = { | |
| x : 0, | |
| y : 0 | |
| }; | |
| /** | |
| * @param {Event} e | |
| * @return {undefined} | |
| */ | |
| var onMouseOver = function(e) { | |
| relPos = { | |
| x : e.clientX, | |
| y : e.clientY | |
| }; | |
| }; | |
| /** | |
| * @param {?} code | |
| * @return {?} | |
| */ | |
| var getDiv = function(code) { | |
| return jQuery(".thumbnail-page[data-id='" + code + "']").parent(".thumbnail-stack"); | |
| }; | |
| /** | |
| * @param {string} a | |
| * @return {?} | |
| */ | |
| var byId = function(a) { | |
| return jQuery(".folder-stack[data-id='" + a + "']"); | |
| }; | |
| /** | |
| * @param {Object} obj | |
| * @return {?} | |
| */ | |
| var likeArray = function(obj) { | |
| return obj.j("folder-stack"); | |
| }; | |
| /** | |
| * @param {?} elements | |
| * @return {?} | |
| */ | |
| var winnow = function(elements) { | |
| return likeArray(elements) && start(elements, ".folder-page.archive"); | |
| }; | |
| /** | |
| * @param {?} node | |
| * @param {Element} n | |
| * @return {?} | |
| */ | |
| var all = function(node, n) { | |
| return 1 == node.folder_type && 0 == n.folder_type ? false : n.id == res.Qf() || (n.id == res.Wi() || (0 == node.folder_type || node.move_root_id == n.move_root_id)); | |
| }; | |
| var special = {}; | |
| /** | |
| * @param {Array} n | |
| * @return {undefined} | |
| */ | |
| var map = function(n) { | |
| /** | |
| * @param {Object} o | |
| * @return {undefined} | |
| */ | |
| function callback(o) { | |
| o.setData("dragenter", "folder-picker").setData("dragleave", "folder-picker").setData("drop", "folder-picker"); | |
| } | |
| var me = jQuery(".folder-picker"); | |
| var val = objectEqual(); | |
| var cs; | |
| var t = {}; | |
| /** @type {number} */ | |
| t[floor()] = 1; | |
| if (likeArray(n)) { | |
| n = n.data("id"); | |
| /** @type {number} */ | |
| t[n] = 1; | |
| cs = res.Ka(n); | |
| } | |
| special = {}; | |
| /** @type {Array} */ | |
| n = []; | |
| /** @type {number} */ | |
| var j = 0; | |
| for (;j < val.length;j++) { | |
| var c = val[j]; | |
| var type = c.id; | |
| if (!(c.id in t)) { | |
| if (!(cs && !all(cs, c))) { | |
| n.push(c); | |
| /** @type {number} */ | |
| special[type] = 1; | |
| } | |
| } | |
| } | |
| me.find(".folder-row:not(.new-folder):not(.search-for-folder)").remove(); | |
| j = me.find(".new-folder"); | |
| callback(j); | |
| val = me.find(".search-for-folder"); | |
| callback(val); | |
| t = val.find(".search-box"); | |
| val = t.find("input"); | |
| cs = t.find("button"); | |
| val.gb(t.width() - cs.width() - cs.marginLeft()); | |
| j = j.ga(); | |
| /** @type {number} */ | |
| t = me.ga().bottom - j.bottom; | |
| /** @type {number} */ | |
| cs = 1; | |
| c = me.find(".search-results"); | |
| c.show(); | |
| /** @type {number} */ | |
| j = 0; | |
| for (;j < n.length && j < cs;j++) { | |
| type = res.Jd(n[j]); | |
| callback(type); | |
| c.append(type); | |
| if (0 == j) { | |
| /** @type {number} */ | |
| cs = Math.floor(t / type.ga().height); | |
| val.setData("num-results", cs + 1); | |
| } | |
| } | |
| me.g("visible"); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var updateSlides = function() { | |
| jQuery(".thumbnail-stack.dragging.filedrop").remove(); | |
| var anchor = jQuery(".thumbnail-stack.dragging").k("dragging").find("a"); | |
| anchor.setAttribute("href", anchor.getAttribute("saved-href")).removeAttribute("saved-href"); | |
| jQuery(".folder-stack.highlighted").k("highlighted"); | |
| jQuery(".drag-object").remove(); | |
| jQuery(".folder-picker").k("visible"); | |
| if (jQuery("#app").j("desktop-dragging")) { | |
| jQuery("#app").k("desktop-dragging"); | |
| loadNext(); | |
| } | |
| if (external) { | |
| if (fabric.Zr) { | |
| removeListener(fabric.Zr); | |
| delete fabric.Zr; | |
| } | |
| } | |
| }; | |
| /** | |
| * @param {Object} obj | |
| * @param {Node} item | |
| * @param {boolean} recurring | |
| * @return {undefined} | |
| */ | |
| var redraw = function(obj, item, recurring) { | |
| var folder; | |
| var target; | |
| if (item instanceof klass) { | |
| item.k("highlighted"); | |
| target = item.data("id"); | |
| } else { | |
| /** @type {Node} */ | |
| target = item; | |
| } | |
| var ret; | |
| if (obj instanceof klass) { | |
| obj.remove(); | |
| ret = obj.data("id"); | |
| } else { | |
| /** @type {Object} */ | |
| ret = obj; | |
| } | |
| folder = folder || floor(); | |
| next("/-/move-into", { | |
| folder : folder, | |
| object : ret, | |
| target : target | |
| }, function(val) { | |
| if (recurring) { | |
| var restoreScript = res.Wi(); | |
| var which = res.Qf(); | |
| if (item == which) { | |
| parseXML(obj.data("id"), restoreScript); | |
| } else { | |
| if (item == restoreScript) { | |
| parseXML(obj.data("id"), which); | |
| } | |
| } | |
| } | |
| onComplete(val); | |
| }); | |
| }; | |
| /** | |
| * @param {Object} source | |
| * @param {(RegExp|string)} keepData | |
| * @param {?} name | |
| * @return {undefined} | |
| */ | |
| var stack = function(source, keepData, name) { | |
| next("/-/add-folder", { | |
| object : source, | |
| add : keepData | |
| }, function(chat) { | |
| put(chat); | |
| parseXML(source, name); | |
| }); | |
| }; | |
| /** | |
| * @param {Object} string | |
| * @param {?} callback | |
| * @return {undefined} | |
| */ | |
| var parseXML = function(string, callback) { | |
| next("/-/remove-folder", { | |
| object : string, | |
| remove : callback | |
| }, function(val) { | |
| onComplete(val); | |
| }); | |
| }; | |
| /** | |
| * @param {Object} obj | |
| * @param {(RegExp|string)} key | |
| * @return {undefined} | |
| */ | |
| var _add = function(obj, key) { | |
| var y = res.Wi(); | |
| var x = res.Qf(); | |
| var camelKey = res.Ka(key); | |
| if (likeArray(obj) && (1 == res.Ka(obj.data("id")).folder_type && 0 == camelKey.folder_type)) { | |
| y = key == y ? x : y; | |
| stack(obj.data("id"), key, y); | |
| } else { | |
| y = res.Ka(floor()); | |
| if (0 != y.folder_type) { | |
| next("/-/predelete-info", { | |
| object : obj.data("id"), | |
| remove : y.id, | |
| add : key | |
| }, function(isXML) { | |
| recurse(obj, key, isXML); | |
| }); | |
| } else { | |
| redraw(obj, key, true); | |
| } | |
| } | |
| }; | |
| /** | |
| * @param {Object} elements | |
| * @param {Node} fn | |
| * @param {string} value | |
| * @return {undefined} | |
| */ | |
| var recurse = function(elements, fn, value) { | |
| var err = likeArray(elements); | |
| if (0 == value.member_count || err && 0 == value.thread_count) { | |
| redraw(elements, fn, true); | |
| } else { | |
| if (err) { | |
| value = callback("This will remove access to this folder and %(num_threads)s documents inside of it for %(num_users)s people. Are you sure you want to move the folder?", { | |
| num_threads : value.thread_count, | |
| num_users : value.member_count | |
| }); | |
| } else { | |
| value = callback("This will permanently delete this document for %(count)s people.", { | |
| count : value.member_count | |
| }); | |
| value += " " + callback("Are you sure you want to move the document?"); | |
| } | |
| header(err ? callback("Move Folder") : callback("Move Document"), value, [err ? callback("Move Folder") : callback("Move Document"), callback("Cancel")], ["move", "cancel"], function(x) { | |
| if ("move" == x) { | |
| redraw(elements, fn, true); | |
| } | |
| }); | |
| } | |
| }; | |
| /** | |
| * @param {MouseEvent} params | |
| * @return {?} | |
| */ | |
| var repush = function(params) { | |
| return isHorizontal ? params.ctrlKey : params.metaKey; | |
| }; | |
| /** | |
| * @param {Object} req | |
| * @param {string} classNames | |
| * @return {undefined} | |
| */ | |
| var user = function(req, classNames) { | |
| next("/-/remove-member", { | |
| folder : req, | |
| remove : classNames | |
| }, function(val) { | |
| onComplete(val); | |
| }); | |
| }; | |
| /** | |
| * @param {Object} optionsString | |
| * @param {boolean} dataAndEvents | |
| * @return {undefined} | |
| */ | |
| var core = function(optionsString, dataAndEvents) { | |
| next("/-/delete-folder", { | |
| folder : optionsString, | |
| auto_archive : dataAndEvents ? "0" : "1" | |
| }, function(data) { | |
| if (data.id == floor()) { | |
| replace(jQuery(".folder"), get(data.page)); | |
| } else { | |
| localize(data); | |
| } | |
| }); | |
| }; | |
| /** | |
| * @param {?} obj | |
| * @return {undefined} | |
| */ | |
| var stringifyObject = function(obj) { | |
| obj.g("searching"); | |
| item.g("searching-for-folder"); | |
| jQuery(".folder-picker .search-for-folder input").focus(); | |
| jQuery(".folder-picker .search-results .object-row").setData("click", "search-result"); | |
| ATTR_ID = addEvent(window.document.body, "click", onOverOut); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var filterit = function() { | |
| item.k("searching-for-folder"); | |
| jQuery(".thumbnail-stack.searching").k("searching"); | |
| removeListener(ATTR_ID); | |
| updateSlides(); | |
| }; | |
| /** | |
| * @param {Event} e | |
| * @return {undefined} | |
| */ | |
| var onOverOut = function(e) { | |
| if (!jQuery(".folder-picker").contains(jQuery(e.target))) { | |
| moveHandler(jQuery(".folder-picker .search-box input")); | |
| } | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var nivoRun = function() { | |
| jQuery(".folder-picker").k("creating-new-folder"); | |
| var self = jQuery(".folder-picker .new-folder"); | |
| self.k("highlighted"); | |
| var markup = jQuery(".dialog." + self.data("dialog")); | |
| push(function() { | |
| css(markup.k("bottom"), "bottom"); | |
| }, 250); | |
| jQuery(".thumbnail-stack.moving-to-new-folder").k("moving-to-new-folder"); | |
| }; | |
| /** | |
| * @param {string} name | |
| * @param {number} deepDataAndEvents | |
| * @return {undefined} | |
| */ | |
| var runNext = function(name, deepDataAndEvents) { | |
| next("/-/notification-level", { | |
| id : name, | |
| level : deepDataAndEvents | |
| }, function(elem) { | |
| onComplete(elem); | |
| elem = jQuery("div.thread"); | |
| if (!elem.empty()) { | |
| elem.setData("notification-level", deepDataAndEvents); | |
| } | |
| }); | |
| }; | |
| /** | |
| * @param {Object} options | |
| * @return {undefined} | |
| */ | |
| var gzip = function(options) { | |
| next("/-/predelete-info", { | |
| object : options | |
| }, function(relativeToItem) { | |
| deleteItem(options, relativeToItem); | |
| }); | |
| }; | |
| /** | |
| * @param {Object} options | |
| * @param {?} item | |
| * @return {undefined} | |
| */ | |
| var deleteItem = function(options, item) { | |
| /** @type {boolean} */ | |
| var c = 2 > item.member_count; | |
| var value = item.top_level; | |
| if (item.thread_count) { | |
| /** @type {Array} */ | |
| var tooltip = []; | |
| /** @type {Array} */ | |
| var menu = []; | |
| if (c) { | |
| tooltip.push(callback("Archive and Hide")); | |
| menu.push("archive-and-hide"); | |
| tooltip.push(callback("Permanently Delete")); | |
| } else { | |
| if (value) { | |
| tooltip.push(callback("Archive and Hide")); | |
| menu.push("archive-and-hide"); | |
| if (data.ka) { | |
| tooltip.push(callback("Delete for Me")); | |
| menu.push("remove-self"); | |
| } | |
| } else { | |
| if (1 != item.notification_level) { | |
| tooltip.push(callback("Hide Folder")); | |
| menu.push("hide"); | |
| } | |
| } | |
| tooltip.push(callback("Delete for all %(count)s people", { | |
| count : item.member_count | |
| })); | |
| } | |
| menu.push("delete"); | |
| tooltip.push(callback("Cancel")); | |
| menu.push("cancel"); | |
| header(callback("Delete Folder"), callback("If you no longer want to see this folder, you can hide it, which will mean you won't see it in your Inbox or on your Desktop, but you will still be able to access it via search. If you delete the folder, you will permanently lose access to all of the documents inside of it."), tooltip, menu, function(method) { | |
| if ("hide" == method) { | |
| runNext(options, 1); | |
| } else { | |
| if ("archive-and-hide" == method) { | |
| foo(options); | |
| } else { | |
| if ("remove-self" == method) { | |
| cb(); | |
| } else { | |
| if ("delete" == method) { | |
| finish(); | |
| } | |
| } | |
| } | |
| } | |
| }, "multi-button"); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var cb = function() { | |
| header(callback("Remove Access"), callback("You will permanently lose access to %(count)s documents inside of the folder. Are you sure you want to remove yourself from the folder?", { | |
| count : item.thread_count | |
| }), [callback("Delete Folder"), callback("Cancel")], ["remove", "cancel"], function(dataAndEvents) { | |
| if ("remove" == dataAndEvents) { | |
| user(options, data.ka.id); | |
| close(); | |
| } | |
| }, "multi-button"); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var finish = function() { | |
| var suiteView = { | |
| num_users : item.member_count, | |
| num_threads : item.thread_count | |
| }; | |
| suiteView = 1 == item.member_count ? callback("You will permanently lose access to all %(num_threads)s documents in this folder. Are you sure you want to delete the folder?", suiteView) : callback("This will permanently delete this folder for all %(num_users)s people who have access. You will all lose access to %(num_threads)s documents inside of the folder. Are you sure you want to delete the folder?", suiteView); | |
| header(callback("Delete Folder"), suiteView, [callback("Delete Folder"), callback("Cancel")], ["delete", "cancel"], function(method) { | |
| if ("delete" == method) { | |
| if (1 == item.member_count) { | |
| core(options, true); | |
| close(); | |
| } else { | |
| confirm(); | |
| } | |
| } | |
| }, "multi-button"); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var confirm = function() { | |
| header(callback("Delete Folder"), callback("Would you like to retain a private copy of this folder in your Archive so you can restore the documents later?"), [callback("Retain Archive Copy"), callback("Permanently Delete"), callback("Cancel")], ["archive", "delete", "cancel"], function(method) { | |
| if ("delete" == method) { | |
| core(options, true); | |
| close(); | |
| } else { | |
| if ("archive" == method) { | |
| next("/-/archive", { | |
| object : options, | |
| remove_all : "1" | |
| }, function(val) { | |
| onComplete(val); | |
| close(); | |
| }); | |
| } | |
| } | |
| }); | |
| }; | |
| } else { | |
| close(); | |
| core(options); | |
| } | |
| }; | |
| /** | |
| * @param {Object} v | |
| * @return {undefined} | |
| */ | |
| var foo = function(v) { | |
| next("/-/archive", { | |
| object : v, | |
| hide : "1" | |
| }, function(val) { | |
| onComplete(val); | |
| close(); | |
| }); | |
| }; | |
| /** | |
| * @param {Object} err | |
| * @param {string} classNames | |
| * @param {string} e | |
| * @param {?} _headers | |
| * @return {undefined} | |
| */ | |
| var respond = function(err, classNames, e, _headers) { | |
| if (_headers) { | |
| user(err, classNames); | |
| } else { | |
| if (data.ka) { | |
| next("/-/predelete-info", { | |
| object : err, | |
| remove : classNames | |
| }, function(extra) { | |
| callbacks(err, classNames, e, extra); | |
| }); | |
| } else { | |
| onload(callback("Error: Unable to perform the requested action"), "", 15E3); | |
| } | |
| } | |
| }; | |
| /** | |
| * @param {Object} err | |
| * @param {string} i | |
| * @param {string} e | |
| * @param {?} results | |
| * @return {undefined} | |
| */ | |
| var callbacks = function(err, i, e, results) { | |
| if (results.remove_user && results.thread_count) { | |
| if (i != data.ka.id) { | |
| header(callback("Remove Access"), callback("%(person)s will lose access to all %(count)s documents inside of the folder. Are you sure you want to continue?", { | |
| person : e, | |
| count : results.thread_count | |
| }), [callback("Continue"), callback("Cancel")], ["remove", "cancel"], function(dataAndEvents) { | |
| if ("remove" == dataAndEvents) { | |
| user(err, i); | |
| } | |
| }); | |
| } else { | |
| header(results.member_count ? callback("Remove Access") : callback("Delete Folder"), results.member_count ? callback("If you no longer want to see this folder, you can hide it, which will mean you won't see it in your Inbox or on your Desktop, but you will still be able to access it via search. If you remove your access to the folder, you will permanently lose access to %(count)s documents inside of it.", { | |
| count : results.thread_count | |
| }) : callback("If you no longer want to see this folder, you can hide it, which will mean you won't see it in your Inbox or on your Desktop, but you will still be able to access it via search. If you remove your access to the folder, the folder will be deleted and you will permanently lose access to %(count)s documents inside of it.", { | |
| count : results.thread_count | |
| }), [callback("Archive and Hide"), results.member_count ? callback("Remove Me") : callback("Delete Folder"), callback("Cancel")], ["archive-and-hide", "remove", "cancel"], function(dataAndEvents) { | |
| if ("archive-and-hide" == dataAndEvents) { | |
| foo(err); | |
| } else { | |
| if ("remove" == dataAndEvents) { | |
| user(err, i); | |
| } | |
| } | |
| }); | |
| } | |
| } else { | |
| user(err, i); | |
| } | |
| }; | |
| /** | |
| * @param {Object} data | |
| * @return {undefined} | |
| */ | |
| var compiler = function(data) { | |
| /** | |
| * @return {undefined} | |
| */ | |
| function initialize() { | |
| close(); | |
| next("/-/modify-inherit-mode", { | |
| folder : data, | |
| inherit_mode : 1 | |
| }, function(val) { | |
| onComplete(val); | |
| }); | |
| } | |
| next("/-/predelete-info", { | |
| object : data, | |
| lock : true | |
| }, function(obj) { | |
| if (obj.thread_count && obj.member_count) { | |
| header(callback("Lock Folder"), callback("Are you sure you want to lock access to this folder, removing access to %(thread_count)s documents for %(member_count)s people? It will no longer inherit permissions from parent folders, and you will have to list members individually.", obj), [callback("Lock Access"), callback("Cancel")], ["lock", "cancel"], function(update) { | |
| if ("lock" == update) { | |
| initialize(); | |
| } | |
| }, "multi-button"); | |
| } else { | |
| initialize(); | |
| } | |
| }); | |
| }; | |
| $("click", "new-document", function() { | |
| del(floor()); | |
| return false; | |
| }); | |
| $("dialog-customize", "folder-thumbnail-menu", function() { | |
| var node = jQuery(".folder-thumbnail-menu.dialog"); | |
| var E; | |
| E = this instanceof klass ? this.j("thumbnail-stack") ? this : this.parent(".thumbnail-stack") : byId(node.data("id")); | |
| E.g("settings-dialog-active"); | |
| var req = res.Ka(E.data("id")); | |
| if (!req) { | |
| return false; | |
| } | |
| node.setData("id", req.id); | |
| node.find("input").setData("title", req.title).af(req.title); | |
| var id = E.find(".folder-page").data("color"); | |
| node.find(".color").k("selected"); | |
| node.find(".color." + id).g("selected"); | |
| addClass(node, "shared", 1 == req.folder_type); | |
| addClass(node, "pinned", !!E.data("pinned")); | |
| addClass(node, "workgroup", !!req.workgroup_id); | |
| addClass(node, "portal", req.workgroup_id && -1 < node.data("portal-workgroup-ids").indexOf(req.workgroup_id)); | |
| node.find(".folder-button").setData("id", req.id); | |
| node.find("[data-click=unpin]").setData("logical-parent", E.data("logical-parent")); | |
| return true; | |
| }); | |
| $("dialog-customize", "document-menu", function() { | |
| var me = jQuery(".document-menu.dialog"); | |
| var E; | |
| E = this instanceof klass ? this.j("thumbnail-stack") ? this : this.parent(".thumbnail-stack") : getDiv(me.data("document-id")); | |
| E.g("settings-dialog-active"); | |
| var e = E.find(".thumbnail-page").data("id"); | |
| var id = E.data("id"); | |
| me.setData("id", id); | |
| me.setData("document-id", e); | |
| addClass(me, "pinned", !!E.data("pinned")); | |
| me.find(".toolbar-buttons span").setData("id", id); | |
| var pos = E.find(".thumbnail-page").data("title"); | |
| me.find("[data-click=unpin]").setData("logical-parent", E.data("logical-parent")); | |
| me.find("[data-click=copy-document]").setData("id", e).setData("title", pos ? pos : ""); | |
| me = me.find("[data-click=delete-document]"); | |
| me.setData("id", e); | |
| me.setData("thread-id", id); | |
| return true; | |
| }); | |
| $("dialog-cleanup", "settings-dialog", function() { | |
| jQuery(".thumbnail-stack[data-id='" + this.data("id") + "']").k("settings-dialog-active"); | |
| return true; | |
| }); | |
| $("dialog-cleanup", "notification-settings", function() { | |
| jQuery(".thumbnail-stack[data-id='" + this.data("id") + "']").k("settings-dialog-active"); | |
| jQuery("#app").append(this); | |
| return true; | |
| }); | |
| $("click", "support", function() { | |
| close(); | |
| window.open("http://support.quip.com/", "_blank"); | |
| return false; | |
| }); | |
| $("click", "logout", function() { | |
| removeClass(callback("Are you sure you want to sign out of Quip?"), callback("Sign Out"), callback("Cancel"), function(l) { | |
| if (l) { | |
| l = get('<form action="/-/logout" method="post"/>'); | |
| var body = createElement("input"); | |
| body.setAttribute("name", "_csrf").af(_next("id")); | |
| l.append(body); | |
| item.append(l); | |
| l.get().submit(); | |
| } | |
| }); | |
| return false; | |
| }); | |
| $("scroll", "inbox", function() { | |
| newBindings(); | |
| return false; | |
| }); | |
| $("scroll", "desktop", function() { | |
| clearSelection(); | |
| return false; | |
| }); | |
| attempt(function() { | |
| if ("thread-mode" == execCommand()) { | |
| /** | |
| * @return {undefined} | |
| */ | |
| var render = function() { | |
| var j = jQuery("#inbox .selected"); | |
| if (j.empty()) { | |
| doRender(render); | |
| } else { | |
| j.scrollIntoView(); | |
| } | |
| }; | |
| render(); | |
| } | |
| if (isTouch || isWebkit) { | |
| if (isTouch && exec(Notification.permission) ? "default" == Notification.permission : isWebkit && 1 == window.webkitNotifications.checkPermission()) { | |
| createElement("button").setData("click", "enable-notifications").ca(callback("Enable Web Notifications")).insertBefore(jQuery(".button-list button[data-click='support']")); | |
| } | |
| } | |
| }); | |
| $("click", "enable-notifications", function() { | |
| requestPermission(bind(this.remove, this)); | |
| close(); | |
| return false; | |
| }); | |
| $("click", "set-notification-level", function() { | |
| var self = jQuery(".notification-settings.dialog.active"); | |
| self.find(".notification-level").k("selected"); | |
| this.g("selected"); | |
| runNext(self.data("id"), assertEquals(this, "level")); | |
| return false; | |
| }); | |
| $("click", "edit-notifications", function(self) { | |
| var api = jQuery(self.target).parent(".dialog"); | |
| self = jQuery(".notification-settings.dialog"); | |
| if (self.j("active")) { | |
| if (self.data("previous")) { | |
| self = jQuery(self.data("previous")); | |
| if (!self.empty()) { | |
| if (self.j("dialog")) { | |
| reset(self); | |
| } else { | |
| obj.click.dialog.call(jQuery("span.folder-settings"), null); | |
| } | |
| } | |
| } else { | |
| close(); | |
| } | |
| } else { | |
| if (!self.empty()) { | |
| self.setData("id", api.data("id")); | |
| if (attr(api, "document-id")) { | |
| self.setData("document-id", api.data("document-id")); | |
| } else { | |
| eventType(self, "document-id"); | |
| } | |
| if (attr(api, "notification-level")) { | |
| self.setData("notification-level", api.data("notification-level")); | |
| } | |
| api = api.get().className.split(" ").filter(function(ndx) { | |
| return "active" != ndx && "visible" != ndx; | |
| }); | |
| self.setData("previous", "." + api.join(".")); | |
| reset(self); | |
| } | |
| } | |
| return false; | |
| }); | |
| $("dialog-customize", "notification-settings", function() { | |
| var table = jQuery(".notification-settings.dialog"); | |
| var node = getDiv(table.data("document-id")); | |
| if (node.empty()) { | |
| node = byId(table.data("id")); | |
| } | |
| if (jQuery("div.thread").empty()) { | |
| if (node.empty()) { | |
| $target = table.data("notification-level"); | |
| } else { | |
| $target = node.data("notification-level"); | |
| jQuery("div.folder > .body").append(table); | |
| } | |
| } else { | |
| $target = jQuery("div.thread"); | |
| table.setData("id", $target.data("id")); | |
| var $target = $target.data("notification-level"); | |
| } | |
| table.find(".notification-level").k("selected"); | |
| table.find(".notification-level[data-level='" + $target + "']").g("selected"); | |
| if (!node.empty()) { | |
| node.g("settings-dialog-active"); | |
| } | |
| return true; | |
| }); | |
| $("click", "pin", function() { | |
| var output = this; | |
| next("/-/pin", { | |
| object : this.data("id"), | |
| secret_path : setAttribute() || "" | |
| }, function(val) { | |
| onComplete(val); | |
| output.parent(".document-menu").g("pinned"); | |
| output.parent(".folder-settings").g("pinned"); | |
| if (val.new_listen_cursor) { | |
| var rvar = isNaN(val.thread_metadata, GameObject); | |
| changeState(rvar); | |
| teardown(val.new_listen_cursor, val.new_listen_hostname, val.new_listen_port, true); | |
| } | |
| }); | |
| return false; | |
| }); | |
| $("click", "unpin", function() { | |
| var target = this.data("id"); | |
| var output = this; | |
| if (this.j("archive")) { | |
| return close(), next("/-/unpin", { | |
| object : target, | |
| secret_path : setAttribute() || "" | |
| }, function(val) { | |
| onComplete(val); | |
| output.parent(".document-menu").k("pinned"); | |
| output.parent(".folder-settings").k("pinned"); | |
| }), false; | |
| } | |
| var err = this.data("logical-parent"); | |
| err = 14 == validTest(target) ? err ? callback("This folder is pinned to your Desktop. If you unpin it, you will still be able to find it in the %(folder_name)s folder and via search, but it will no longer be visible on your Desktop.", { | |
| folder_name : err | |
| }) : callback("This folder is pinned to your Desktop. If you unpin it, you will still be able to find it via search and in your Archive folder, but it will no longer be visible on your Desktop.") : err ? callback("This document is pinned to your Desktop. If you unpin it, you will still be able to find it in the %(folder_name)s folder and via search, but it will no longer be visible on your Desktop.", { | |
| folder_name : err | |
| }) : callback("This document is pinned to your Desktop. If you unpin it, you will still be able to find it via search and in your Archive folder, but it will no longer be visible on your Desktop."); | |
| removeClass(err, callback("Unpin [un-'pin' a document or folder from the desktop]"), callback("Cancel"), function(dataAndEvents) { | |
| if (dataAndEvents) { | |
| next("/-/unpin", { | |
| object : target | |
| }, function(val) { | |
| onComplete(val); | |
| output.parent(".document-menu").k("pinned"); | |
| output.parent(".folder-settings").k("pinned"); | |
| }); | |
| } | |
| }); | |
| return false; | |
| }); | |
| $("click", "delete-folder", function() { | |
| var model = this.parent(".folder-settings").data("id"); | |
| close(); | |
| gzip(model); | |
| return false; | |
| }); | |
| $("click", "make-restricted", function() { | |
| var pdataCur = this.parent(".folder-sharing").data("id"); | |
| compiler(pdataCur); | |
| return false; | |
| }); | |
| $("click", "remove-restriction", function() { | |
| next("/-/modify-inherit-mode", { | |
| folder : this.parent(".folder-sharing").data("id"), | |
| inherit_mode : 0 | |
| }, function(val) { | |
| onComplete(val); | |
| }); | |
| close(); | |
| return false; | |
| }); | |
| $("dialog-customize", "folder-sharing", function() { | |
| doc.load(); | |
| return true; | |
| }); | |
| $("search-handler", "folder-sharing", function() { | |
| var result = this.parent(".folder-sharing"); | |
| var field = result.find("input").disable(); | |
| var message = this.data("address"); | |
| if (null != message) { | |
| return confirm(message, this.data("name") || "", this.parent().parent().find(".sharing-invite").data("id"), function() { | |
| standard(); | |
| obj.input.search.call(field.enable().clear(), null); | |
| }, function() { | |
| field.enable(); | |
| }), true; | |
| } | |
| onChange(result.data("id"), this.data("id"), field); | |
| return true; | |
| }); | |
| $("keydown", "folder-sharing", function(event) { | |
| if (13 == event.keyCode && (this.value() && changeDelimiters(this.value()))) { | |
| return event = this.parent().parent().find(".sharing-invite"), confirm(this.value(), void 0, event.data("id"), function() { | |
| standard(); | |
| }), moveHandler(this), false; | |
| } | |
| if (event.keyCode == touchend) { | |
| if (0 == this.value().length) { | |
| standard(); | |
| } | |
| } | |
| return obj.keydown.search.call(this, event); | |
| }); | |
| $("click", "remove-folder-member", function(count) { | |
| var e = jQuery(".folder-members").data("id"); | |
| var orig = this.parent(".object-row").data("id"); | |
| var result = this.parent(".object-row").find(".title").get().innerText; | |
| respond(e, orig, result, repush(count)); | |
| return false; | |
| }); | |
| $("keydown", "folder-rename", function(event) { | |
| return 13 == event.keyCode ? (this.blur(), false) : true; | |
| }); | |
| $("input", "folder-rename", function() { | |
| var doc = this.parent(".folder-settings").data("id"); | |
| byId(doc).find(".folder-thumbnail-title").ca(this.value()); | |
| return true; | |
| }); | |
| $("blur", "folder-rename", function() { | |
| var value = this.value(); | |
| if (value != this.data("title")) { | |
| this.setData("title", value); | |
| next("/-/rename-folder", { | |
| folder : this.parent(".folder-settings").data("id"), | |
| title : value | |
| }, function(val) { | |
| onComplete(val); | |
| }); | |
| } | |
| return true; | |
| }); | |
| $("click", "folder-color", function() { | |
| var t = this.parent(".folder-create"); | |
| /** @type {boolean} */ | |
| var b = !t.empty(); | |
| if (!b) { | |
| t = this.parent(".folder-settings"); | |
| } | |
| var doc = t.data("id"); | |
| t = t.find(".color"); | |
| t.k("selected"); | |
| this.g("selected"); | |
| if (b) { | |
| return false; | |
| } | |
| var data = byId(doc).find(".folder-page"); | |
| if (!data.empty()) { | |
| expect(t, function() { | |
| data.k(jQuery(this).data("color")); | |
| }); | |
| data.g(this.data("color")); | |
| } | |
| next("/-/folder-color", { | |
| folder : doc, | |
| color : this.data("color") | |
| }, function(val) { | |
| onComplete(val); | |
| }); | |
| return false; | |
| }); | |
| $("contextmenu", "thumbnail", function(event) { | |
| if (winnow(this)) { | |
| return false; | |
| } | |
| var $ul = likeArray(this) ? jQuery(".folder-thumbnail-menu.dialog") : jQuery(".document-menu.dialog"); | |
| close(); | |
| createOption($ul, this, { | |
| left : event.clientX, | |
| top : event.clientY | |
| }); | |
| return false; | |
| }); | |
| $("drop", "folder", function(e) { | |
| var self = jQuery(".thumbnail-stack.dragging"); | |
| var parent = jQuery(".folder-stack.highlighted"); | |
| if (e.dataTransfer && (e.dataTransfer.files && 0 < e.dataTransfer.files.length)) { | |
| var restoreScript = floor(); | |
| if (!parent.empty()) { | |
| restoreScript = parent.data("id"); | |
| } | |
| parent = self.next(); | |
| if (!parent.j("thumbnail-stack")) { | |
| /** @type {null} */ | |
| parent = null; | |
| } | |
| self.k("dragging").g("importing"); | |
| var a = callback("Importing..."); | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < e.dataTransfer.files.length;i++) { | |
| var t = e.dataTransfer.files[i].name; | |
| if (t) { | |
| a = t; | |
| break; | |
| } | |
| } | |
| gg(self, a); | |
| del(restoreScript, e.dataTransfer.files, parent ? parent.data("id") : ""); | |
| updateSlides(); | |
| return false; | |
| } | |
| updateSlides(); | |
| if (self.empty()) { | |
| return false; | |
| } | |
| if (parent.empty()) { | |
| self.k("dragging"); | |
| parent = self.next(); | |
| if (!parent.j("thumbnail-stack")) { | |
| /** @type {null} */ | |
| parent = null; | |
| } | |
| next("/-/move-before", { | |
| folder : floor(), | |
| object : self.data("id"), | |
| next : parent ? parent.data("id") : "" | |
| }, function(val) { | |
| onComplete(val); | |
| }); | |
| } else { | |
| _add(self, parent.data("id")); | |
| } | |
| return false; | |
| }); | |
| $("dragleave", "folder", function(event) { | |
| var b = event.clientY || relPos.y; | |
| return 0 == (event.clientX || relPos.x) && 0 == b ? (jQuery(".thumbnail-stack.dragging.filedrop").remove(), true) : false; | |
| }); | |
| $("dragstart", "thumbnail", function(e) { | |
| processOne(); | |
| this.g("dragging"); | |
| var s = this.find("a"); | |
| s.setAttribute("saved-href", s.getAttribute("href")).removeAttribute("href"); | |
| this.find("a").removeAttribute("href"); | |
| s = this.find(".thumbnail"); | |
| var result = _qwery(s); | |
| s = val(setSize(createElement("div", "drag-object").append(s.ya()), result.left), result.top).setData("offset-left", result.left - e.clientX).setData("offset-top", result.top - e.clientY); | |
| /** @type {RegExp} */ | |
| var n = /theme-/; | |
| /** @type {Array} */ | |
| result = []; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < this.q.length;i++) { | |
| if (this.q[i].className) { | |
| var lines = this.q[i].className.split(" "); | |
| /** @type {number} */ | |
| var j = 0; | |
| for (;j < lines.length;j++) { | |
| if (n.test(lines[j])) { | |
| result.push(lines[j]); | |
| } | |
| } | |
| } | |
| } | |
| /** @type {number} */ | |
| n = 0; | |
| for (;n < result.length;n++) { | |
| s.g(result[n]); | |
| } | |
| jQuery("#app").append(s).g("desktop-dragging"); | |
| if (e.dataTransfer) { | |
| if (e.dataTransfer.setDragImage) { | |
| e.dataTransfer.setDragImage(jQuery("#empty-image").get(), 0, 0); | |
| } | |
| } | |
| if (!winnow(this)) { | |
| nextTick(res, bind(map, null, this)); | |
| } | |
| if (external) { | |
| fabric.Zr = addEvent(document.body, "dragover", onMouseOver); | |
| } | |
| return true; | |
| }); | |
| $("drag", "thumbnail", function(e) { | |
| var obj = jQuery(".drag-object"); | |
| var memo = e.clientX || relPos.x; | |
| e = e.clientY || relPos.y; | |
| if (0 == memo && 0 == e) { | |
| return obj.ua(), true; | |
| } | |
| var str = assertEquals(obj, "offset-left"); | |
| var type = assertEquals(obj, "offset-top"); | |
| val(setSize(obj, memo + str), e + type); | |
| obj.show(); | |
| return true; | |
| }); | |
| $("dragend", "thumbnail", function() { | |
| updateSlides(); | |
| return false; | |
| }); | |
| $("dragenter", "thumbnail", function(e) { | |
| var body = jQuery(".thumbnail-stack.dragging"); | |
| e = isValidFileDrag(e); | |
| if (body.empty()) { | |
| if (e) { | |
| body = Meow("filedrop"); | |
| } | |
| } | |
| if (body.empty() || (body.wa(this) || (start(this, ".degraded") || winnow(body) && likeArray(this)))) { | |
| return false; | |
| } | |
| if (likeArray(this) && !e) { | |
| if (likeArray(body) && !all(res.Ka(body.data("id")), res.Ka(this.data("id")))) { | |
| return false; | |
| } | |
| this.g("highlighted"); | |
| } else { | |
| if (body.Pg(this)) { | |
| parseInt(body, this); | |
| } else { | |
| body.insertBefore(this); | |
| } | |
| } | |
| return false; | |
| }); | |
| $("dragleave", "thumbnail", function() { | |
| if (likeArray(this)) { | |
| this.k("highlighted"); | |
| } | |
| return false; | |
| }); | |
| $("dragenter", "folder-picker", function() { | |
| this.g("highlighted"); | |
| return false; | |
| }); | |
| $("dragleave", "folder-picker", function() { | |
| this.k("highlighted"); | |
| return false; | |
| }); | |
| $("drop", "folder-picker", function() { | |
| var $this = jQuery(".thumbnail-stack.dragging"); | |
| updateSlides(); | |
| if ($this.empty()) { | |
| return false; | |
| } | |
| if (this.j("new-folder")) { | |
| $this.g("moving-to-new-folder"); | |
| jQuery(".folder-picker").g("creating-new-folder"); | |
| $this = jQuery(".dialog." + this.data("dialog")); | |
| obj.click.dialog.call(this, null); | |
| var rect = this.ga(); | |
| if ($this.j("bottom")) { | |
| runCallbacks($this, $this.parent().ga().bottom - rect.top); | |
| } else { | |
| val($this, rect.bottom); | |
| } | |
| } else { | |
| if (this.j("search-for-folder")) { | |
| this.k("highlighted"); | |
| stringifyObject($this); | |
| } else { | |
| _add($this, this.data("id")); | |
| } | |
| } | |
| return false; | |
| }); | |
| $("click", "folder-picker-search-cancel", function() { | |
| moveHandler(jQuery(".folder-picker .search-box input")); | |
| return false; | |
| }); | |
| $("search-clear-handler", "folder-picker-search-box", function() { | |
| filterit(); | |
| return true; | |
| }); | |
| $("search-handler", "folder-picker-search-box", function() { | |
| var suiteView = jQuery(".thumbnail-stack.searching"); | |
| _add(suiteView, this.data("id")); | |
| filterit(); | |
| return true; | |
| }); | |
| $("search-filter", "folder-picker-search-box", function() { | |
| return this.id in special; | |
| }); | |
| $("search-filter", "email-only-search", function() { | |
| return-1 != this.address.search("@"); | |
| }); | |
| $("click", "folder-create-create", function() { | |
| var targets = jQuery(".thumbnail-stack.moving-to-new-folder"); | |
| var parent = this.parent(".folder-create"); | |
| var inp = parent.find("input"); | |
| var data = inp.value().trim(); | |
| var item = parent.find(".color.selected"); | |
| if (!data) { | |
| return false; | |
| } | |
| close(); | |
| data = { | |
| parent_folder_id : floor(), | |
| title : data, | |
| color : item.data("color") | |
| }; | |
| next("/-/new-folder", data, function(scope) { | |
| if (1 == scope.max_depth) { | |
| removeClass(callback("Cannot create a folder here, the maximum depth is 5."), extend(detectDevice(), "en") ? "Bummer" : callback("OK"), null, function() { | |
| }); | |
| } else { | |
| inp.af(""); | |
| item.k("selected"); | |
| parent.find(".color.manila").g("selected"); | |
| onComplete(scope.update); | |
| if (!targets.empty()) { | |
| redraw(targets, scope.folder_id, false); | |
| } | |
| } | |
| }); | |
| return false; | |
| }); | |
| $("keydown", "folder-create-name", function(e) { | |
| return 13 == e.keyCode ? (obj.click["folder-create-create"].call(this, e), false) : true; | |
| }); | |
| $("click", "folder-create-cancel", function() { | |
| close(); | |
| return false; | |
| }); | |
| $("dialog-cleanup", "folder-create", function() { | |
| if (jQuery(".folder-picker").j("creating-new-folder")) { | |
| nivoRun(); | |
| } | |
| return true; | |
| }); | |
| $("click", "move-folder-object", function() { | |
| var obj = jQuery(".thumbnail-stack[data-id='" + this.data("id") + "']"); | |
| if (!obj.empty()) { | |
| map(obj); | |
| stringifyObject(obj); | |
| close(); | |
| } | |
| return false; | |
| }); | |
| $("click", "show-thread-sharing", function() { | |
| if ("desktop-mode" != execCommand()) { | |
| return obj.click.dialog.call(this, null); | |
| } | |
| next("/-/thread-sharing-dialog", { | |
| id : this.data("id") | |
| }, function(some) { | |
| is(get(some.html)); | |
| }); | |
| return false; | |
| }); | |
| $("click", "show-link-sharing", function() { | |
| if ("desktop-mode" != execCommand()) { | |
| return obj.click.dialog.call(this, null); | |
| } | |
| next("/-/link-sharing-dialog", { | |
| id : this.data("id") | |
| }, function(some) { | |
| is(get(some.html)); | |
| }); | |
| return false; | |
| }); | |
| $("click", "show-link-permissions", function() { | |
| if ("desktop-mode" != execCommand()) { | |
| return obj.click.dialog.call(this, null); | |
| } | |
| next("/-/link-permissions-dialog", { | |
| id : this.data("id") | |
| }, function(some) { | |
| is(get(some.html)); | |
| }); | |
| return false; | |
| }); | |
| $("click", "show-folder-sharing", function() { | |
| next("/-/folder-sharing-dialog", { | |
| id : this.data("id") | |
| }, function(some) { | |
| is(get(some.html)); | |
| }); | |
| return false; | |
| }); | |
| $("click", "create-team-dialog", function() { | |
| next("/-/create-team-dialog", {}, function(some) { | |
| close(); | |
| jQuery("#app").append(get(some.html).show()); | |
| finish(function() { | |
| jQuery(".nux-dialog").k("inactive"); | |
| checkComplete(); | |
| }); | |
| }); | |
| return false; | |
| }); | |
| $("submit", "create-team", function() { | |
| var input = this.find("input[name=name]"); | |
| var item = this.find("textarea[name=emails]"); | |
| var selected = this.find("input[name=domain]"); | |
| if (!input.value()) { | |
| return input.focus(), false; | |
| } | |
| if (!item.value()) { | |
| return item.focus(), false; | |
| } | |
| selected = selected.get() && selected.get().checked ? selected.value() : ""; | |
| this.find("input,button").disable(); | |
| next("/-/create-team", { | |
| name : input.value(), | |
| emails : item.value(), | |
| domain : selected | |
| }, function(chat) { | |
| close(); | |
| put(chat); | |
| }); | |
| return false; | |
| }); | |
| handleEvent(!isCORS || isHorizontal ? 78 : 192, indents | ERROR_HANDLED, function() { | |
| del(floor()); | |
| return true; | |
| }); | |
| getEnumerableProperties(new configure(78, indents | ERROR_HANDLED), 0, callback("Create a new document")); | |
| getEnumerableProperties(handleEvent(keys.M, indents | ERROR_HANDLED, function() { | |
| if ("desktop-mode" != execCommand()) { | |
| j(); | |
| } | |
| if (data.Ed.Xg) { | |
| obj.click["show-chat-list"].call(jQuery(".chat.button"), null); | |
| } else { | |
| obj.click.dialog.call(jQuery(".compose.button"), null); | |
| } | |
| return true; | |
| }), 0, callback("Create a new message")); | |
| getEnumerableProperties(handleEvent(keys.D, indents | backgroundLayerMask, function() { | |
| before(res.Qf()); | |
| return true; | |
| }), 0, callback("Go to the desktop")); | |
| attempt(function() { | |
| if ("desktop-mode" == execCommand()) { | |
| dayFromMonth(); | |
| setData(floor()); | |
| } | |
| }); | |
| /** | |
| * @return {?} | |
| */ | |
| var now = function() { | |
| return Date.now ? Date.now() : (new Date).getTime(); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| var resetQueues = function() { | |
| return now(); | |
| }; | |
| if (window.performance) { | |
| /** @type {Performance} */ | |
| var perf = window.performance; | |
| /** @type {function (this:Performance): number} */ | |
| var ename = perf.now || (perf.mozNow || (perf.webkitNow || (perf.msNow || perf.oNow))); | |
| if (ename) { | |
| resetQueues = bind(ename, perf); | |
| } | |
| } | |
| /** | |
| * @param {(boolean|number|string)} a | |
| * @param {(boolean|number|string)} b | |
| * @return {?} | |
| */ | |
| var mk_block = function(a, b) { | |
| return a < b ? -1 : a > b ? 1 : 0; | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| var S4 = function() { | |
| return(65536 * (1 + Math.random()) | 0).toString(16).substring(1); | |
| }; | |
| /** | |
| * @param {string} url | |
| * @return {?} | |
| */ | |
| var getLocation = function(url) { | |
| /** @type {Element} */ | |
| var anchor = document.createElement("a"); | |
| /** @type {string} */ | |
| anchor.href = url; | |
| return anchor.href; | |
| }; | |
| /** | |
| * @param {Object} node | |
| * @param {number} start | |
| * @param {number} deepDataAndEvents | |
| * @return {?} | |
| */ | |
| var toString = function(node, start, deepDataAndEvents) { | |
| start = start || 0; | |
| var file = template(" ", start); | |
| switch(node.nodeType) { | |
| case ELEMENT_NODE: | |
| var line = node.nodeName.toLowerCase(); | |
| /** @type {string} */ | |
| var str = file + "<" + line; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < node.attributes.length;i++) { | |
| var seg = node.attributes[i]; | |
| /** @type {string} */ | |
| str = str + (" " + seg.name + "='" + seg.value + "'"); | |
| } | |
| if (node.firstChild) { | |
| str += ">\n"; | |
| if (exec(deepDataAndEvents) && start + 1 == deepDataAndEvents) { | |
| str += file + " [" + node.children.length + " children]\n"; | |
| } else { | |
| node = node.firstChild; | |
| for (;node;node = node.nextSibling) { | |
| str += toString(node, start + 1, deepDataAndEvents); | |
| } | |
| } | |
| str += file + "</" + line + ">\n"; | |
| } else { | |
| str += "/>\n"; | |
| } | |
| return str; | |
| case SELECT: | |
| /** @type {string} */ | |
| str = file + "'"; | |
| /** @type {number} */ | |
| i = 0; | |
| for (;i < node.data.length;i++) { | |
| start = node.data.charCodeAt(i); | |
| str = 32 <= start && 127 >= start ? str + node.data[i] : str + ("&#" + start + ";"); | |
| } | |
| return str + "'\n"; | |
| case 9: | |
| return file + "#document"; | |
| default: | |
| return "Unexpected node type: " + node.nodeType; | |
| } | |
| }; | |
| /** | |
| * @param {Array} code | |
| * @return {?} | |
| */ | |
| var response = function(code) { | |
| /** @type {string} */ | |
| var d = ""; | |
| expect(createAndInsertIframeForContent(code), function() { | |
| d += toString(this); | |
| }); | |
| return d; | |
| }; | |
| /** @type {RegExp} */ | |
| var rtagName = /^data:([\w/]+)?(;charset=w+)?(;base64)?,(.+)$/; | |
| /** | |
| * @param {string} value | |
| * @return {?} | |
| */ | |
| var dataURLToBlob = function(value) { | |
| /** @type {(Array.<string>|null)} */ | |
| var a = rtagName.exec(value); | |
| if (!a) { | |
| return console.error("Invalid data URL", value), null; | |
| } | |
| /** @type {string} */ | |
| value = a[1]; | |
| /** @type {string} */ | |
| var data = a[4]; | |
| a = a[3] ? window.atob(data) : decodeURIComponent(data); | |
| /** @type {ArrayBuffer} */ | |
| data = new ArrayBuffer(a.length); | |
| /** @type {Uint8Array} */ | |
| data = new Uint8Array(data); | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < a.length;i++) { | |
| data[i] = a.charCodeAt(i); | |
| } | |
| a = {}; | |
| if (value) { | |
| /** @type {string} */ | |
| a.type = value; | |
| } | |
| return new Blob([data.buffer], a); | |
| }; | |
| /** @type {null} */ | |
| var newValue = null; | |
| append("util.setAwsS3CdnUrl", function(elValue) { | |
| /** @type {(Date|string)} */ | |
| newValue = elValue; | |
| }); | |
| /** | |
| * @param {string} value | |
| * @return {?} | |
| */ | |
| var hash = function(value) { | |
| if (!newValue) { | |
| throw Error("AWS S3 CDN base URL was not set."); | |
| } | |
| return newValue + value; | |
| }; | |
| /** @type {null} */ | |
| var tp = null; | |
| append("util.setGlobalRandomSeed", function(tpr) { | |
| tp = tpr; | |
| }); | |
| /** | |
| * @param {number} storage | |
| * @param {?} v | |
| * @param {Function} a | |
| * @param {Function} trim | |
| * @return {?} | |
| */ | |
| var restoreMarkdownConf = function(storage, v, a, trim) { | |
| /** @type {number} */ | |
| var removeFrom = 0; | |
| /** @type {number} */ | |
| storage = storage.length - 1; | |
| for (;removeFrom <= storage;) { | |
| /** @type {number} */ | |
| var source = Math.floor((removeFrom + storage) / 2); | |
| var m = trim(source); | |
| m = a(m, v); | |
| if (0 > m) { | |
| /** @type {number} */ | |
| removeFrom = source + 1; | |
| } else { | |
| if (0 < m) { | |
| /** @type {number} */ | |
| storage = source - 1; | |
| } else { | |
| return source; | |
| } | |
| } | |
| } | |
| return removeFrom; | |
| }; | |
| /** | |
| * @param {?} var_args | |
| * @param {?} listener | |
| * @param {?} widget | |
| * @return {undefined} | |
| */ | |
| var instance = function(var_args, listener, widget) { | |
| this.Zs = var_args; | |
| this.Sy = listener; | |
| /** @type {Array} */ | |
| this.Wf = []; | |
| this.rj = {}; | |
| if (widget) { | |
| /** @type {boolean} */ | |
| this.bi = true; | |
| /** @type {Array} */ | |
| this.sf = []; | |
| /** @type {Array} */ | |
| this.fi = []; | |
| } | |
| }; | |
| /** | |
| * @param {?} type | |
| * @return {?} | |
| */ | |
| instance.prototype.add = function(type) { | |
| if (removeAttribute(this, type)) { | |
| return false; | |
| } | |
| if (this.bi) { | |
| return this.sf.push(type), true; | |
| } | |
| var n = validator(this.Wf, type, this.Zs); | |
| var rvar = this.Wf[n - 1]; | |
| var name = this.Wf[n]; | |
| this.Wf.splice(n, 0, type); | |
| this.rj[this.ha(type)] = { | |
| item : type, | |
| Ji : rvar, | |
| Hi : name | |
| }; | |
| if (rvar) { | |
| removeAttribute(this, rvar).Hi = type; | |
| } | |
| if (name) { | |
| removeAttribute(this, name).Ji = type; | |
| } | |
| return true; | |
| }; | |
| /** | |
| * @param {?} name | |
| * @return {?} | |
| */ | |
| instance.prototype.remove = function(name) { | |
| if (this.bi) { | |
| if (this.fi.length || this.sf.length) { | |
| updateTree(this); | |
| } | |
| } | |
| return convert(this, name, validator(this.Wf, name, this.Zs)); | |
| }; | |
| /** | |
| * @param {Object} node | |
| * @param {?} name | |
| * @param {?} pos | |
| * @return {?} | |
| */ | |
| var convert = function(node, name, pos) { | |
| var descriptor = removeAttribute(node, name); | |
| if (!descriptor) { | |
| return false; | |
| } | |
| node.Wf.splice(pos, 1); | |
| delete node.rj[node.ha(name)]; | |
| if (descriptor.Ji) { | |
| removeAttribute(node, descriptor.Ji).Hi = descriptor.Hi; | |
| } | |
| if (descriptor.Hi) { | |
| removeAttribute(node, descriptor.Hi).Ji = descriptor.Ji; | |
| } | |
| return true; | |
| }; | |
| /** | |
| * @param {?} options | |
| * @param {?} type | |
| * @param {?} value | |
| * @return {undefined} | |
| */ | |
| var onUpdate = function(options, type, value) { | |
| var node = options.rj[value]; | |
| if (node) { | |
| if (node.item == type) { | |
| delete options.rj[value]; | |
| options.rj[options.ha(type)] = node; | |
| } | |
| } | |
| }; | |
| /** | |
| * @param {Object} args | |
| * @param {string} complete | |
| * @return {undefined} | |
| */ | |
| var generate = function(args, complete) { | |
| if (args.bi) { | |
| args.fi.push(complete); | |
| } else { | |
| convert(args, complete, index(args.Wf, complete)); | |
| args.add(complete); | |
| } | |
| }; | |
| /** | |
| * @param {?} elem | |
| * @param {Object} name | |
| * @return {?} | |
| */ | |
| var getProp = function(elem, name) { | |
| if (elem.bi) { | |
| if (elem.fi.length || elem.sf.length) { | |
| updateTree(elem); | |
| } | |
| } | |
| var queue = removeAttribute(elem, name); | |
| return[queue.Ji, queue.Hi]; | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| instance.prototype.items = function() { | |
| if (this.bi) { | |
| if (this.fi.length || this.sf.length) { | |
| updateTree(this); | |
| } | |
| } | |
| return this.Wf; | |
| }; | |
| /** | |
| * @param {Object} c | |
| * @return {undefined} | |
| */ | |
| var updateTree = function(c) { | |
| var arr2 = {}; | |
| /** @type {number} */ | |
| var j = 0; | |
| for (;j < c.sf.length;j++) { | |
| /** @type {number} */ | |
| arr2[c.ha(c.sf[j])] = 1; | |
| } | |
| /** @type {number} */ | |
| j = 0; | |
| for (;j < c.fi.length;j++) { | |
| var name = c.fi[j]; | |
| var i = c.ha(name); | |
| if (!(i in arr2)) { | |
| /** @type {number} */ | |
| arr2[i] = 1; | |
| convert(c, name, index(c.Wf, name)); | |
| c.sf.push(name); | |
| } | |
| } | |
| /** @type {Array} */ | |
| c.fi = []; | |
| /** @type {boolean} */ | |
| c.bi = false; | |
| /** @type {number} */ | |
| j = 0; | |
| for (;j < c.sf.length;j++) { | |
| c.add(c.sf[j]); | |
| } | |
| /** @type {Array} */ | |
| c.sf = []; | |
| /** @type {boolean} */ | |
| c.bi = true; | |
| }; | |
| /** | |
| * @param {?} elem | |
| * @param {?} name | |
| * @return {?} | |
| */ | |
| var removeAttribute = function(elem, name) { | |
| return elem.rj[elem.ha(name)]; | |
| }; | |
| /** | |
| * @param {?} keepData | |
| * @return {?} | |
| */ | |
| instance.prototype.ha = function(keepData) { | |
| return this.Sy(keepData); | |
| }; | |
| /** | |
| * @param {?} obj | |
| * @param {(number|string)} val | |
| * @return {?} | |
| */ | |
| var forIn = function(obj, val) { | |
| /** @type {null} */ | |
| var result = null; | |
| var key; | |
| for (key in obj) { | |
| if (obj[key] == val) { | |
| /** @type {string} */ | |
| result = key; | |
| } | |
| } | |
| if (!result) { | |
| result = val.toString(); | |
| } | |
| return result; | |
| }; | |
| /** | |
| * @param {Function} size | |
| * @return {undefined} | |
| */ | |
| var reduce = function(size) { | |
| if (isFn()) { | |
| var firstDay = resetQueues(); | |
| /** | |
| * @param {number} i | |
| * @return {undefined} | |
| */ | |
| var run = function(i) { | |
| if (i >= firstDay + 500) { | |
| size(1); | |
| } else { | |
| /** @type {number} */ | |
| i = (i - firstDay) / 500; | |
| size(0 > i ? 0 : 3 * i * i - 2 * i * i * i); | |
| synchronize(run); | |
| } | |
| }; | |
| synchronize(run); | |
| } else { | |
| size(1); | |
| } | |
| }; | |
| /** | |
| * @param {Object} str | |
| * @return {undefined} | |
| */ | |
| var entity = function(str) { | |
| /** @type {Object} */ | |
| this.hn = str; | |
| }; | |
| /** | |
| * @param {(number|string)} key | |
| * @param {?} value | |
| * @return {?} | |
| */ | |
| entity.prototype.get = function(key, value) { | |
| /** @type {string} */ | |
| key = this.hn + "-" + key; | |
| return key in this.Vn ? JSON.parse(this.Vn[key]) : value; | |
| }; | |
| /** | |
| * @param {string} type | |
| * @param {(boolean|number|string)} opt_isDefault | |
| * @return {undefined} | |
| */ | |
| entity.prototype.set = function(type, opt_isDefault) { | |
| /** @type {string} */ | |
| this.Vn[this.hn + "-" + type] = JSON.stringify(opt_isDefault); | |
| }; | |
| /** | |
| * @param {Object} req | |
| * @return {undefined} | |
| */ | |
| var Cookie = function(req) { | |
| /** @type {Object} */ | |
| this.hn = req; | |
| /** @type {(Storage|null)} */ | |
| this.Vn = window.sessionStorage; | |
| }; | |
| inherits(Cookie, entity); | |
| /** | |
| * @param {Object} dataAndEvents | |
| * @return {undefined} | |
| */ | |
| var parentName = function(dataAndEvents) { | |
| /** @type {Object} */ | |
| this.hn = dataAndEvents; | |
| /** @type {(Storage|null)} */ | |
| this.Vn = window.localStorage; | |
| }; | |
| inherits(parentName, entity); | |
| var prefs = new Cookie("debug"); | |
| /** @type {boolean} */ | |
| var bytenew = false; | |
| /** | |
| * @return {?} | |
| */ | |
| var getNativeElement = function() { | |
| return prefs.get("enabled", bytenew); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var setHtml = function() { | |
| }; | |
| /** | |
| * @param {string} fmt | |
| * @param {Object} opt_attributes | |
| * @return {undefined} | |
| */ | |
| var controller = function(fmt, opt_attributes) { | |
| console.groupCollapsed(fmt); | |
| console.log.apply(console, Array.prototype.slice.call(arguments, 1)); | |
| console.groupEnd(); | |
| }; | |
| var a1 = {}; | |
| append("debug.timings", function() { | |
| console.log("Timings:"); | |
| var p; | |
| for (p in a1) { | |
| var o = a1[p]; | |
| console.log(" " + p + ": " + Math.round(o.time / o.dz * 1E3) / 1E3 + "ms/invocation (" + Math.round(1E3 * o.time) / 1E3 + "ms for " + o.dz + " invocations)"); | |
| } | |
| }); | |
| append("idspispopd", function() { | |
| /** @type {boolean} */ | |
| var opt_isDefault = !getNativeElement(); | |
| prefs.set("enabled", opt_isDefault); | |
| /** @type {boolean} */ | |
| opts.Ck = opt_isDefault; | |
| }); | |
| append("idclip", function() { | |
| debugger; | |
| }); | |
| /** | |
| * @param {number} opt_attributes | |
| * @param {Function} fn | |
| * @return {?} | |
| */ | |
| var _concat = function(opt_attributes, fn) { | |
| return handleEvent(opt_attributes, indents | backgroundLayerMask | ERROR_HANDLED, function(err) { | |
| return getNativeElement() ? fn(err) : false; | |
| }); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var EventEmitter = function() { | |
| this.tq = resetQueues(); | |
| /** @type {Array} */ | |
| this.Fe = []; | |
| }; | |
| /** | |
| * @param {Function} fn | |
| * @return {undefined} | |
| */ | |
| EventEmitter.prototype.addListener = function(fn) { | |
| this.Fe.push(fn); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| EventEmitter.prototype.br = function() { | |
| /** @type {number} */ | |
| var r20 = resetQueues() - this.tq; | |
| this.tq = resetQueues(); | |
| /** @type {number} */ | |
| var conditionIndex = 0; | |
| for (;conditionIndex < this.Fe.length;conditionIndex++) { | |
| this.Fe[conditionIndex](r20); | |
| } | |
| }; | |
| /** | |
| * @param {number} opt_attributes | |
| * @return {?} | |
| */ | |
| var $broadcast = function(opt_attributes) { | |
| var transaction = ee; | |
| return resetQueues() - transaction.tq <= opt_attributes; | |
| }; | |
| var ee = new EventEmitter; | |
| attempt(function() { | |
| if (!syntax || !_isSafari) { | |
| var handler = ee; | |
| handler = bind(handler.br, handler); | |
| addEvent(window.document.body, "mousemove", handler); | |
| addEvent(window.document.body, "keydown", handler); | |
| } | |
| }); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Selection = function() { | |
| /** @type {Array} */ | |
| this.Fe = []; | |
| /** @type {number} */ | |
| this.wn = 0; | |
| if ("onselectionchange" in document) { | |
| /** @type {boolean} */ | |
| this.Dr = false; | |
| if (isContentHeight) { | |
| defineProperties(this); | |
| addEvent(document, "selectionchange", bind(this.Vo, this, "selectionchange")); | |
| } else { | |
| addEvent(document, "selectionchange", bind(this.Dk, this, null)); | |
| } | |
| } else { | |
| setEventHandlers(this); | |
| } | |
| }; | |
| /** | |
| * @param {?} self | |
| * @return {undefined} | |
| */ | |
| var setEventHandlers = function(self) { | |
| /** @type {boolean} */ | |
| self.Dr = true; | |
| defineProperties(self); | |
| if (isFn()) { | |
| _handle(self); | |
| } else { | |
| self.pause(); | |
| } | |
| addEvent(document.body, "keypress", bind(self.lm, self, "keypress")); | |
| addEvent(document.body, "mousedown", bind(self.Mx, self)); | |
| freeze(bind(function(dataAndEvents) { | |
| if (dataAndEvents) { | |
| triggerEvents(this); | |
| } else { | |
| this.pause(); | |
| } | |
| }, self)); | |
| }; | |
| /** | |
| * @param {?} object | |
| * @return {undefined} | |
| */ | |
| var defineProperties = function(object) { | |
| object.Tg = { | |
| rangeCount : 0, | |
| isCollapsed : true, | |
| anchorNode : null, | |
| anchorOffset : 0, | |
| focusNode : null, | |
| focusOffset : 0 | |
| }; | |
| }; | |
| self = Selection.prototype; | |
| /** | |
| * @param {Function} fn | |
| * @return {undefined} | |
| */ | |
| self.addListener = function(fn) { | |
| this.Fe.push(fn); | |
| }; | |
| /** | |
| * @param {string} event | |
| * @return {undefined} | |
| */ | |
| self.uh = function(event) { | |
| var uncaught = bind(function(values) { | |
| this.removeListener(uncaught); | |
| event(values); | |
| }, this); | |
| this.addListener(uncaught); | |
| }; | |
| /** | |
| * @param {Function} fn | |
| * @return {undefined} | |
| */ | |
| self.removeListener = function(fn) { | |
| removeAll(this.Fe, fn); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| self.pause = function() { | |
| this.wn++; | |
| if (this.Dr) { | |
| if (this.pu) { | |
| /** @type {boolean} */ | |
| this.pu = false; | |
| window.clearInterval(this.Oz); | |
| } | |
| } | |
| }; | |
| /** | |
| * @param {?} obj | |
| * @return {undefined} | |
| */ | |
| var triggerEvents = function(obj) { | |
| obj.wn--; | |
| if (0 == obj.wn) { | |
| if (obj.Dr) { | |
| _handle(obj); | |
| } | |
| } | |
| }; | |
| /** | |
| * @param {boolean} recurring | |
| * @return {undefined} | |
| */ | |
| self.Dk = function(recurring) { | |
| recurring = recurring || window.getSelection(); | |
| if (!(0 < this.wn)) { | |
| /** @type {number} */ | |
| var conditionIndex = 0; | |
| for (;conditionIndex < this.Fe.length;conditionIndex++) { | |
| this.Fe[conditionIndex](recurring); | |
| } | |
| } | |
| }; | |
| /** | |
| * @param {?} context | |
| * @return {undefined} | |
| */ | |
| var _handle = function(context) { | |
| /** @type {boolean} */ | |
| context.pu = true; | |
| context.Oz = createDom(bind(context.Vo, context, "polling"), 250); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| self.Vo = function() { | |
| /** @type {(Selection|null)} */ | |
| var recurring = window.getSelection(); | |
| if (recurring) { | |
| /** @type {boolean} */ | |
| var b = false; | |
| var name; | |
| for (name in this.Tg) { | |
| var value = recurring[name]; | |
| if (value != this.Tg[name]) { | |
| this.Tg[name] = value; | |
| /** @type {boolean} */ | |
| b = true; | |
| } | |
| } | |
| if (b) { | |
| this.Dk(recurring); | |
| } | |
| } | |
| }; | |
| self.lm = crop(Selection.prototype.Vo); | |
| /** | |
| * @return {undefined} | |
| */ | |
| self.Mx = function() { | |
| this.lm("mousedown"); | |
| this.Nx = addEvent(document, "mousemove", bind(this.Ox, this)); | |
| this.Px = addEvent(document, "mouseup", bind(this.Qx, this)); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| self.Ox = function() { | |
| this.lm("mousemove"); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| self.Qx = function() { | |
| this.lm("mouseup"); | |
| removeListener(this.Nx); | |
| removeListener(this.Px); | |
| }; | |
| var events = new Selection; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var d = function() { | |
| this.Xa = jQuery("#chat-tabs"); | |
| /** @type {Array} */ | |
| this.Cc = []; | |
| this.Bc = {}; | |
| /** @type {number} */ | |
| this.sp = this.Yj = 0; | |
| /** @type {boolean} */ | |
| this.up = false; | |
| rotate(this, execCommand()); | |
| freeze(bind(function() { | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < this.Cc.length;i++) { | |
| var seg = this.Cc[i]; | |
| if (seg.Sg) { | |
| seg.show(); | |
| } | |
| } | |
| }, this)); | |
| }; | |
| /** | |
| * @param {?} name | |
| * @param {?} optgroup | |
| * @param {boolean} recurring | |
| * @return {undefined} | |
| */ | |
| d.prototype.update = function(name, optgroup, recurring) { | |
| if (name != html() && !this.up) { | |
| var viewName = optgroup.data("replacement-for"); | |
| if (viewName) { | |
| var view = this.Bc[viewName]; | |
| if (view) { | |
| eventType(optgroup, "replacement-for"); | |
| delete this.Bc[viewName]; | |
| this.Bc[name] = view; | |
| view.replace(name, optgroup, recurring); | |
| } | |
| } else { | |
| if (name in this.Bc) { | |
| this.Bc[name].update(optgroup, recurring); | |
| } else { | |
| view = new Resize(name, optgroup, recurring); | |
| this.Cc.push(view); | |
| this.Bc[name] = view; | |
| name = now(); | |
| view.Ol = name; | |
| dispatchEvent(result); | |
| name = view; | |
| /** @type {number} */ | |
| name.Wk = this.Cc.length - 1; | |
| getElement(name); | |
| applyStyle(view, 1); | |
| view.add(this.Xa); | |
| } | |
| } | |
| } | |
| }; | |
| /** | |
| * @param {?} obj | |
| * @param {string} key | |
| * @param {?} object | |
| * @return {undefined} | |
| */ | |
| var hasKey = function(obj, key, object) { | |
| if (!(data.ka && data.ka.id == key)) { | |
| next("/-/chat-tab", { | |
| user_id : key | |
| }, bind(function(data) { | |
| if (object) { | |
| object(); | |
| } | |
| var fileId = data.thread_id; | |
| if (fileId == html()) { | |
| jQuery(".thread[data-id='" + fileId + "'] .input .text").focus(); | |
| } else { | |
| var recurring = data.seen_message_sequence; | |
| data = get(data.html); | |
| pause(this, fileId, data, recurring); | |
| } | |
| }, obj)); | |
| } | |
| }; | |
| /** | |
| * @param {Array} recipients | |
| * @param {(Element|string)} value | |
| * @return {undefined} | |
| */ | |
| var _finish = function(recipients, value) { | |
| var suiteView = result; | |
| var selfObj = SavingFiles(); | |
| var in_chat_tab = silentOptions.j("chat-button"); | |
| close(); | |
| next("/-/start-thread", { | |
| recipients : recipients, | |
| title : value, | |
| in_chat_tab : in_chat_tab | |
| }, bind(function(next) { | |
| selfObj.remove(); | |
| close(); | |
| if (in_chat_tab) { | |
| setup(next); | |
| pause(this, next.id, this.Bc[next.id].ea, 0); | |
| } else { | |
| onclick(next.id); | |
| } | |
| }, suiteView), function() { | |
| selfObj.remove(); | |
| return true; | |
| }); | |
| }; | |
| /** | |
| * @param {Error} accessToken | |
| * @return {undefined} | |
| */ | |
| var login = function(accessToken) { | |
| var suiteView = result; | |
| if (accessToken == html()) { | |
| jQuery(".thread[data-id='" + accessToken + "'] .input .text").focus(); | |
| } else { | |
| next("/-/chat-tab", { | |
| thread_id : accessToken | |
| }, bind(function(data) { | |
| var recurring = data.seen_message_sequence; | |
| data = get(data.html); | |
| pause(this, accessToken, data, recurring); | |
| }, suiteView)); | |
| } | |
| }; | |
| /** | |
| * @param {Element} self | |
| * @param {Object} id | |
| * @param {?} optgroup | |
| * @param {boolean} recurring | |
| * @return {undefined} | |
| */ | |
| var pause = function(self, id, optgroup, recurring) { | |
| if (id != html() && !self.up) { | |
| var element; | |
| if (id in self.Bc) { | |
| element = self.Bc[id]; | |
| element.update(optgroup, recurring, true); | |
| } else { | |
| element = new Resize(id, optgroup, recurring); | |
| self.Cc.push(element); | |
| self.Bc[id] = element; | |
| id = now(); | |
| /** @type {Object} */ | |
| element.Ol = id; | |
| dispatchEvent(result); | |
| id = element; | |
| /** @type {number} */ | |
| id.Wk = self.Cc.length - 1; | |
| getElement(id); | |
| applyStyle(element, 0); | |
| element.add(self.Xa, true); | |
| } | |
| element.pn(); | |
| } | |
| }; | |
| /** | |
| * @param {?} $conditional | |
| * @return {?} | |
| */ | |
| d.prototype.pn = function($conditional) { | |
| return $conditional in this.Bc ? (this.Bc[$conditional].pn(), true) : false; | |
| }; | |
| /** | |
| * @param {?} options | |
| * @param {(number|string)} value | |
| * @return {undefined} | |
| */ | |
| var rotate = function(options, value) { | |
| /** @type {boolean} */ | |
| var i = options.bm != value; | |
| /** @type {(number|string)} */ | |
| options.bm = value; | |
| if (!tween(options) && i) { | |
| /** @type {number} */ | |
| i = 0; | |
| for (;i < options.Cc.length;i++) { | |
| getElement(options.Cc[i]); | |
| } | |
| } | |
| }; | |
| /** | |
| * @param {?} options | |
| * @return {?} | |
| */ | |
| var tween = function(options) { | |
| /** @type {boolean} */ | |
| var origContext = "desktop-mode" != options.bm && !(start(options.Xa, ".dialog.active") || start(jQuery("#app"), ".chat-list.active")); | |
| return origContext != options.Ll ? (attach(options, origContext), true) : false; | |
| }; | |
| /** | |
| * @param {?} target | |
| * @param {boolean} context | |
| * @return {undefined} | |
| */ | |
| var attach = function(target, context) { | |
| if (target.Ll != context) { | |
| /** @type {boolean} */ | |
| target.Ll = context; | |
| addClass(target.Xa, "stacked", context); | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < target.Cc.length;i++) { | |
| var self = target.Cc[i]; | |
| getElement(self); | |
| off(self.ea, bind(self.Sq, self)); | |
| var v02 = 0 == self.ui && context ? target.Yj : self.eo; | |
| addClass(self.qh, "none", 0 == v02); | |
| self.qh.ca(v02); | |
| } | |
| } | |
| }; | |
| /** | |
| * @param {?} optgroup | |
| * @return {undefined} | |
| */ | |
| var goNext = function(optgroup) { | |
| var parent = result; | |
| if (optgroup in parent.Bc) { | |
| parent.remove(optgroup); | |
| } | |
| jQuery("#inbox .contact.selected").k("selected"); | |
| if (optgroup = removeData(optgroup)) { | |
| jQuery("#inbox .contact[data-id='" + optgroup.id + "']").g("selected"); | |
| } | |
| }; | |
| /** | |
| * @param {?} name | |
| * @return {undefined} | |
| */ | |
| d.prototype.remove = function(name) { | |
| if (name in this.Bc) { | |
| var item = this.Bc[name]; | |
| item.remove(); | |
| delete this.Bc[name]; | |
| name = index(this.Cc, item); | |
| this.Cc.splice(name, 1); | |
| for (;name < this.Cc.length;name++) { | |
| item = this.Cc[name]; | |
| item.Wk = name; | |
| getElement(item); | |
| } | |
| dispatchEvent(this); | |
| } | |
| }; | |
| /** | |
| * @param {Array} properties | |
| * @return {undefined} | |
| */ | |
| var dispatchEvent = function(properties) { | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < properties.Cc.length;i++) { | |
| var n = properties.Cc[i] | |
| } | |
| properties = toPaddedString(properties.Cc); | |
| properties.sort(function(b, a) { | |
| return a.Ol - b.Ol; | |
| }); | |
| /** @type {number} */ | |
| i = 0; | |
| for (;i < properties.length;i++) { | |
| n = properties[i]; | |
| if (n.ui != i) { | |
| slideTo(n, i); | |
| } | |
| } | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var stroke = function() { | |
| var data = result; | |
| data.sp++; | |
| data.Xa.g("dialog-active"); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| d.prototype.rp = function() { | |
| this.sp--; | |
| if (0 == this.sp) { | |
| this.Xa.k("dialog-active"); | |
| } | |
| }; | |
| /** | |
| * @param {?} time | |
| * @param {Object} element | |
| * @param {?} opt_acc | |
| * @return {undefined} | |
| */ | |
| var Resize = function(time, element, opt_acc) { | |
| this.$n = time; | |
| /** @type {Object} */ | |
| this.ea = element; | |
| this.vq = opt_acc; | |
| /** @type {number} */ | |
| this.ui = -1; | |
| this.qf = element.find(".message-preview"); | |
| this.cd = element.find(".activity-log"); | |
| this.di = this.cd.find(".messages"); | |
| this.qh = element.find(".unread-count"); | |
| this.ql = element.find(".picture-grid"); | |
| }; | |
| self = Resize.prototype; | |
| /** | |
| * @param {?} type | |
| * @param {number} expectedNumberOfNonCommentArgs | |
| * @return {undefined} | |
| */ | |
| self.add = function(type, expectedNumberOfNonCommentArgs) { | |
| expectedNumberOfNonCommentArgs = expectedNumberOfNonCommentArgs || false; | |
| type.append(this.ea); | |
| addClass(addClass(this.ea, "bounce-timing-function", !expectedNumberOfNonCommentArgs), "open-immediately", expectedNumberOfNonCommentArgs).g("new"); | |
| if (isFn()) { | |
| this.show(); | |
| } else { | |
| /** @type {boolean} */ | |
| this.Sg = true; | |
| } | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| self.show = function() { | |
| /** @type {boolean} */ | |
| this.Sg = false; | |
| var open_immediately = this.ea.j("open-immediately"); | |
| finish(bind(function() { | |
| this.ea.k("new"); | |
| off(this.ea, bind(function() { | |
| if (open_immediately) { | |
| this.ea.k("open-immediately"); | |
| } else { | |
| enter(this); | |
| this.ea.k("bounce-timing-function"); | |
| } | |
| }, this)); | |
| }, this)); | |
| this.Sq(); | |
| if (open_immediately) { | |
| appendTo(this.di, 0); | |
| } else { | |
| push(bind(function() { | |
| f(this.di, exitCode, bind(function() { | |
| appendTo(this.di, 0); | |
| }, this)); | |
| }, this), 300); | |
| } | |
| }; | |
| /** | |
| * @param {Object} self | |
| * @param {number} target | |
| * @return {undefined} | |
| */ | |
| var slideTo = function(self, target) { | |
| /** @type {number} */ | |
| self.ui = target; | |
| addClass(self.ea, "top-tab", 0 == target); | |
| getElement(self); | |
| }; | |
| /** | |
| * @param {Object} self | |
| * @return {undefined} | |
| */ | |
| var getElement = function(self) { | |
| var value = _connect(self); | |
| var descriptor = getObject(); | |
| if (descriptor) { | |
| self.ea.ja(pdataCur, "translateX(" + -value + "px)"); | |
| } else { | |
| getDimensions(self.ea, value); | |
| } | |
| self.ea.ja("zIndex", String(100 - self.ui)); | |
| /** @type {number} */ | |
| value = -value - result.Xa.Sz(); | |
| var element = self.ea.find(".dialog"); | |
| if (descriptor) { | |
| element.ja(pdataCur, "translateX(" + -value + "px)"); | |
| } else { | |
| element.ja("marginRight", value + "px"); | |
| } | |
| self.Sq(); | |
| if (self.cd.j("active")) { | |
| ensureUp(self, self.cd); | |
| } | |
| }; | |
| /** | |
| * @param {Object} obj | |
| * @return {?} | |
| */ | |
| var _connect = function(obj) { | |
| /** @type {number} */ | |
| var k = 0; | |
| if (!data.Ed.Xg) { | |
| if (!("desktop-mode" != result.bm)) { | |
| /** @type {number} */ | |
| k = 58; | |
| } | |
| } | |
| /** @type {number} */ | |
| var charWidth = 54; | |
| var l = obj.Wk; | |
| if (result.Ll) { | |
| /** @type {number} */ | |
| charWidth = 5; | |
| l = obj.ui; | |
| } | |
| return l * charWidth + k; | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| self.Sq = function() { | |
| var el = this.ea.find(".tooltip .thread-title"); | |
| if (getElementById(el)) { | |
| css(el, "marginRight"); | |
| var b = el.ga(); | |
| /** @type {number} */ | |
| var innerWidth = window.innerWidth - 5; | |
| if (b.right > innerWidth) { | |
| el.ja("marginRight", 2 * (b.right - innerWidth) + "px"); | |
| } | |
| } | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| self.remove = function() { | |
| if (isFn()) { | |
| this.ea.g("removing"); | |
| off(this.ea, bind(function() { | |
| this.ea.remove(); | |
| }, this)); | |
| } else { | |
| this.ea.remove(); | |
| } | |
| transaction(this.cd); | |
| transaction(this.qf); | |
| }; | |
| /** | |
| * @param {?} name | |
| * @param {boolean} recurring | |
| * @param {boolean} deepDataAndEvents | |
| * @return {undefined} | |
| */ | |
| self.update = function(name, recurring, deepDataAndEvents) { | |
| /** @type {boolean} */ | |
| this.vq = recurring; | |
| if (this.cd.j("active")) { | |
| this.Br(); | |
| } else { | |
| this.Ol = now(); | |
| dispatchEvent(result); | |
| applyStyle(this, this.eo + 1); | |
| } | |
| recurring = name.find(".picture-grid"); | |
| replace(this.ql, recurring); | |
| /** @type {boolean} */ | |
| this.ql = recurring; | |
| if (1 < this.eo) { | |
| transaction(this.qf); | |
| } else { | |
| if (!deepDataAndEvents) { | |
| replace(this.qf.find(".preview"), name.find(".message-preview .preview")); | |
| enter(this); | |
| } | |
| } | |
| }; | |
| /** | |
| * @param {?} o | |
| * @param {string} value | |
| * @return {undefined} | |
| */ | |
| self.replace = function(o, value) { | |
| /** | |
| * @param {?} error | |
| * @param {Node} d | |
| * @return {?} | |
| */ | |
| function callback(error, d) { | |
| var settings = error.get(); | |
| var element = d.get(); | |
| element.className = settings.className; | |
| var name; | |
| for (name in settings.style) { | |
| element.style[name] = settings.style[name]; | |
| } | |
| return d; | |
| } | |
| /** | |
| * @param {?} error | |
| * @param {string} value | |
| * @return {?} | |
| */ | |
| function stat(error, value) { | |
| callback(error.find(".arrow"), value.find(".arrow")); | |
| return callback(error, value); | |
| } | |
| this.$n = o; | |
| this.qf = stat(this.qf, value.find(".message-preview")); | |
| this.cd = stat(this.cd, value.find(".activity-log")); | |
| this.di = callback(this.di, this.cd.find(".messages")); | |
| this.qh = callback(this.qh, value.find(".unread-count")); | |
| this.ql = callback(this.ql, value.find(".picture-grid")); | |
| var suiteView = this.ea; | |
| this.ea = callback(this.ea, value); | |
| replace(suiteView, value); | |
| appendTo(this.di, 0); | |
| slideTo(this, this.ui); | |
| this.Wk = this.Wk; | |
| getElement(this); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| self.pn = function() { | |
| setData(this.$n); | |
| if (!this.cd.j("active")) { | |
| exit(this); | |
| } | |
| }; | |
| /** | |
| * @param {?} settings | |
| * @return {undefined} | |
| */ | |
| var line = function(settings) { | |
| stroke(); | |
| settings.g("visible"); | |
| finish(function() { | |
| settings.g("active"); | |
| }); | |
| }; | |
| /** | |
| * @param {?} obj | |
| * @return {undefined} | |
| */ | |
| var transaction = function(obj) { | |
| if (obj.j("active")) { | |
| close(obj); | |
| } | |
| }; | |
| /** | |
| * @param {Object} self | |
| * @return {undefined} | |
| */ | |
| var enter = function(self) { | |
| if (!start(result.Xa, ".dialog.active")) { | |
| if (exec(self.fq)) { | |
| protectedClearTimeout(self.fq); | |
| } | |
| line(self.qf); | |
| var style = self.qf.find(".preview"); | |
| css(style, "width"); | |
| var e = style.find(".text"); | |
| if (!e.empty()) { | |
| e = e.ga(); | |
| var rect = style.ga(); | |
| var margin = style.paddingRight(); | |
| if (e.right < rect.right - margin) { | |
| style.gb(e.right - rect.left + margin); | |
| } | |
| } | |
| ensureUp(self, self.qf); | |
| self.fq = push(bind(function() { | |
| transaction(this.qf); | |
| delete this.fq; | |
| }, self), 5E3); | |
| } | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| self.Fr = function() { | |
| applyStyle(this, 0); | |
| /** @type {number} */ | |
| this.Ol = -1; | |
| dispatchEvent(result); | |
| close(); | |
| line(this.cd); | |
| ensureUp(this, this.cd); | |
| appendTo(this.di, 0); | |
| this.cd.find(".input .text").focus(); | |
| this.Br(); | |
| layer(this.$n); | |
| }; | |
| /** | |
| * @param {Object} self | |
| * @param {Object} target | |
| * @return {undefined} | |
| */ | |
| var ensureUp = function(self, target) { | |
| /** @type {number} */ | |
| var t = window.innerWidth; | |
| var delta = target.width(); | |
| /** @type {number} */ | |
| var x = t - _connect(self); | |
| var size = self.ql.width(); | |
| /** @type {number} */ | |
| x = x - size; | |
| /** @type {number} */ | |
| size = x + size / 2; | |
| var $this = target.find(".arrow"); | |
| /** @type {number} */ | |
| var y = t + 5; | |
| if (y - delta > x - 20) { | |
| y = x - 20 + delta; | |
| } | |
| getDimensions(target, t - y); | |
| getDimensions($this, y - size - $this.width() + 2); | |
| }; | |
| /** | |
| * @param {?} self | |
| * @return {undefined} | |
| */ | |
| var exit = function(self) { | |
| if (self.cd.j("active")) { | |
| transaction(self.cd); | |
| } else { | |
| transaction(self.qf); | |
| if (result.Ll) { | |
| attach(result, false); | |
| if (1 < result.Cc.length) { | |
| off(result.Xa, bind(self.Fr, self)); | |
| } else { | |
| self.Fr(); | |
| } | |
| } else { | |
| self.Fr(); | |
| } | |
| } | |
| }; | |
| /** | |
| * @param {?} dataAndEvents | |
| * @return {undefined} | |
| */ | |
| self.rp = function(dataAndEvents) { | |
| if (dataAndEvents.wa(this.cd)) { | |
| if ("desktop-mode" != result.bm) { | |
| off(this.cd, function() { | |
| tween(result); | |
| }); | |
| } | |
| } | |
| }; | |
| /** | |
| * @param {?} el | |
| * @param {number} v02 | |
| * @return {undefined} | |
| */ | |
| var applyStyle = function(el, v02) { | |
| /** @type {number} */ | |
| el.eo = v02; | |
| addClass(el.qh, "none", 0 == v02); | |
| el.qh.ca(v02); | |
| var app = result; | |
| /** @type {number} */ | |
| app.Yj = 0; | |
| var self; | |
| /** @type {number} */ | |
| var p = 0; | |
| for (;p < app.Cc.length;p++) { | |
| var n = app.Cc[p]; | |
| app.Yj += n.eo; | |
| if (0 == n.ui) { | |
| self = n; | |
| } | |
| } | |
| if (app.Ll) { | |
| addClass(self.qh, "none", 0 == app.Yj); | |
| self.qh.ca(app.Yj); | |
| } | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| self.Br = function() { | |
| if (getElementById(this.ea)) { | |
| if (isFn() && $broadcast(3E5)) { | |
| pass(this.$n, this.vq); | |
| } else { | |
| push(bind(this.Br, this), 1E3); | |
| } | |
| } | |
| }; | |
| var result; | |
| attempt(function() { | |
| result = new d; | |
| result.up = item.j("standalone"); | |
| }); | |
| $("click", "chat-tab", function() { | |
| exit(result.Bc[this.data("id")]); | |
| return false; | |
| }); | |
| $("click", "chat-tab-close", function() { | |
| result.remove(this.data("id")); | |
| return false; | |
| }); | |
| $("dialog-cleanup", "chat-tab", function() { | |
| result.rp(); | |
| var filename = this.parent(".chat-tab").data("id"); | |
| if (filename = result.Bc[filename]) { | |
| filename.rp(this); | |
| } | |
| return true; | |
| }); | |
| $("input", "chat-tab", function() { | |
| addClass(this, "dirty", arrayContains(this.find(".text,.files"))); | |
| return true; | |
| }); | |
| $("click", "open-chat-tab", function() { | |
| close(); | |
| _toString("listen"); | |
| hasKey(result, this.data("id")); | |
| return false; | |
| }); | |
| var seen = {}; | |
| /** | |
| * @param {Object} obj | |
| * @return {undefined} | |
| */ | |
| var effect = function(obj) { | |
| click(data, obj, "chat-from-composer", jQuery(".chat-list .online-view .online .chat-list-section")); | |
| /** @type {number} */ | |
| seen[obj.id] = 1; | |
| }; | |
| /** | |
| * @param {string} value | |
| * @param {string} data | |
| * @return {undefined} | |
| */ | |
| var loaded = function(value, data) { | |
| _create("frequent-contacts", value); | |
| var $this = jQuery(".frequent-contacts .contact"); | |
| var cl = $this.length(); | |
| /** @type {number} */ | |
| var c = jQuery(".recent-group-threads .thread-row").length() + cl - 6; | |
| var targets = jQuery(".other-contacts .chat-list-section"); | |
| /** @type {number} */ | |
| var exports = 0; | |
| for (;exports < c;exports++) { | |
| targets.append(new klass([$this.get(cl - 1 - exports)])); | |
| } | |
| _create("other-contacts", data); | |
| exports = jQuery(".chat-list .online-view .offline .chat-list-section"); | |
| if (!exports.empty()) { | |
| if (!exports.j("loaded")) { | |
| if (value) { | |
| exports.append(get(value)); | |
| } | |
| if (data) { | |
| exports.append(get(data)); | |
| } | |
| exports.g("loaded"); | |
| } | |
| } | |
| $this = jQuery(".chat-list .address-book .chat-list-section"); | |
| cl = $this.find(".address-row"); | |
| exports = appendModelPrefix(); | |
| /** @type {number} */ | |
| c = cl.length() - exports; | |
| if (0 < c) { | |
| /** @type {number} */ | |
| exports = 0; | |
| for (;exports < c;exports++) { | |
| $this.get(0).removeChild(cl.get(cl.length() - 1 - exports)); | |
| } | |
| if (!start($this, ".address-row")) { | |
| jQuery(".chat-list .address-book").ua(); | |
| } | |
| } | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| var appendModelPrefix = function() { | |
| return 100 - (jQuery(".frequent-contacts .contact").length() + jQuery(".other-contacts .contact").length()); | |
| }; | |
| /** | |
| * @param {string} type | |
| * @param {string} d | |
| * @return {undefined} | |
| */ | |
| var _create = function(type, d) { | |
| if (d) { | |
| var a = get(d); | |
| var me = jQuery("." + type + " .chat-list-section"); | |
| if (!me.empty()) { | |
| if (!me.j("loaded")) { | |
| me.append(a); | |
| me.g("loaded"); | |
| jQuery("." + type).show(); | |
| expect(a, function(option) { | |
| /** @type {number} */ | |
| seen[jQuery(option).data("id")] = 1; | |
| }); | |
| } | |
| } | |
| } | |
| }; | |
| /** @type {null} */ | |
| var silentOptions = null; | |
| /** | |
| * @param {?} value | |
| * @param {?} d | |
| * @return {undefined} | |
| */ | |
| var setDate = function(value, d) { | |
| value.find(".chat-members-section").show(); | |
| d.setData("click", "remove-user-from-chat"); | |
| value.find(".chat-members-list").append(d); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var learn = function() { | |
| off(jQuery(".chat-list"), function() { | |
| tween(result); | |
| }); | |
| }; | |
| /** | |
| * @param {string} key | |
| * @return {undefined} | |
| */ | |
| var access = function(key) { | |
| if (silentOptions.j("chat-button")) { | |
| hasKey(result, key); | |
| } else { | |
| var text = data.Ka(key).chat_thread_id; | |
| if (text) { | |
| onclick(text); | |
| } else { | |
| text = jQuery(".chat-list-composer"); | |
| text.setData("id", key); | |
| createOption(text, silentOptions); | |
| } | |
| } | |
| }; | |
| $("click", "create-group-chat", function() { | |
| var e = jQuery(".group-composer-name-dialog"); | |
| reset(e); | |
| return false; | |
| }); | |
| $("click", "create-group-chat-cancel", function() { | |
| reset(jQuery(".chat-contacts-dialog")); | |
| return false; | |
| }); | |
| $("keydown", "group-chat-name", function(event) { | |
| return 13 == event.keyCode ? (obj.click["create-group-chat-next"].call(this.parent(".dialog").find(".right.action"), null), false) : true; | |
| }); | |
| $("click", "create-group-chat-next", function() { | |
| var e = this.parent(".dialog").find(".group-chat-name"); | |
| var result = e.value().trim(); | |
| if (!result) { | |
| return e.focus(), false; | |
| } | |
| e = jQuery(".group-composer-members-dialog"); | |
| e.find(".group-chat-start").setData("group-name", result); | |
| result = data; | |
| var i; | |
| /** @type {number} */ | |
| i = 200; | |
| /** @type {Array.<string>} */ | |
| var item = Object.keys(result.od); | |
| groupBy(result, item); | |
| /** @type {Array.<string>} */ | |
| result = i ? item.slice(0, i) : item; | |
| /** @type {number} */ | |
| i = 0; | |
| for (;i < result.length;i++) { | |
| /** @type {string} */ | |
| item = result[i]; | |
| if (item != data.ka.id) { | |
| item = data.Jd(data.Ka(item)); | |
| item.g("presence"); | |
| item.setData("click", "add-user-to-chat"); | |
| e.find(".chat-contacts-list").append(item); | |
| } | |
| } | |
| successCallback(e); | |
| reset(e); | |
| return false; | |
| }); | |
| $("click", "open-new-group-thread", function() { | |
| var udataCur = this.data("group-name"); | |
| /** @type {Array} */ | |
| var recipients = []; | |
| expect(this.parent(".dialog").find(".chat-members-list").find(".object-row"), function() { | |
| recipients.push(jQuery(this).data("id")); | |
| }); | |
| if (2 > recipients.length) { | |
| return false; | |
| } | |
| _finish(recipients, udataCur); | |
| return false; | |
| }); | |
| $("click", "add-user-to-chat", function() { | |
| var udataCur = this.parent(".dialog"); | |
| setDate(udataCur, this); | |
| return false; | |
| }); | |
| $("click", "remove-user-from-chat", function() { | |
| var closest = this.parent(".dialog"); | |
| text(closest.find(".chat-contacts-list"), this); | |
| this.setData("click", "add-user-to-chat"); | |
| var ua = closest.find(".chat-members-section"); | |
| if (!arrayContains(closest.find(".chat-members-list"))) { | |
| ua.ua(); | |
| } | |
| return false; | |
| }); | |
| $("search-filter", "group-chat-composer-add", function() { | |
| return!start(jQuery("#chat-members-list"), ".object-row[data-id='" + this.id + "']"); | |
| }); | |
| $("search-handler", "group-chat-composer-add", function() { | |
| var closest = this.parent(".dialog"); | |
| var month = closest.find(".chat-contacts-list").find(".object-row[data-id='" + this.data("id") + "']"); | |
| if (month.empty()) { | |
| month = data.Jd(data.Ka(this.data("id"))); | |
| } | |
| setDate(closest, month); | |
| return true; | |
| }); | |
| $("dialog-cleanup", "chat-contacts-dialog", function() { | |
| moveHandler(this.find("input")); | |
| learn(); | |
| return true; | |
| }); | |
| $("dialog-cleanup", "chat-list-composer", function() { | |
| unload(this.find(".message-input")); | |
| indexOf(this.find(".chat-title"), ""); | |
| eventType(this.find(".message-input"), "recipients"); | |
| learn(); | |
| return true; | |
| }); | |
| $("dialog-cleanup", "group-composer-name-dialog", function() { | |
| this.find(".group-chat-name").af(""); | |
| learn(); | |
| return true; | |
| }); | |
| $("dialog-cleanup", "group-composer-members-dialog", function() { | |
| moveHandler(this.find("input")); | |
| removeChild(this.find(".chat-members-list")); | |
| this.find(".chat-members-section").ua(); | |
| removeChild(this.find(".chat-contacts-list")); | |
| learn(); | |
| return true; | |
| }); | |
| $("click", "show-chat-list", function() { | |
| if (start(jQuery("#app"), ".chat-list.active") && silentOptions.wa(this)) { | |
| return close(), false; | |
| } | |
| close(); | |
| var me = jQuery(".chat-contacts-dialog"); | |
| addClass(me, "composing", this.j("compose")); | |
| createOption(me, this); | |
| if (this.j("chat-button")) { | |
| off(jQuery(".chat-contacts-dialog"), function() { | |
| tween(result); | |
| }); | |
| } | |
| silentOptions = this; | |
| return false; | |
| }); | |
| $("dialog-customize", "chat-contacts-dialog", function() { | |
| return 2 >= jQuery(".chat-contacts-dialog").find(".object-row").length() ? (createOption(jQuery(".add-contacts.dialog"), this), false) : true; | |
| }); | |
| $("dialog-customize", "chat-list-composer", function() { | |
| var self = jQuery(".chat-list-composer"); | |
| var test = data.Ka(self.data("id")); | |
| indexOf(self.find(".chat-title"), test.name); | |
| self.find(".message-input").setData("recipients", self.data("id")); | |
| return true; | |
| }); | |
| $("send-cleanup", "chat-list-composer", function() { | |
| close(); | |
| eventType(jQuery(".chat-list-composer .message-input"), "recipients"); | |
| return true; | |
| }); | |
| $("click", "chat-from-composer", function() { | |
| close(); | |
| _toString("listen"); | |
| var data = this.data("id"); | |
| if (4 == validTest(data)) { | |
| access(data); | |
| } else { | |
| if (silentOptions.j("chat-button")) { | |
| login(data); | |
| } else { | |
| onclick(data); | |
| } | |
| } | |
| return false; | |
| }); | |
| $("search-handler", "chat-list-contacts", function() { | |
| close(); | |
| access(this.data("id")); | |
| return false; | |
| }); | |
| $("click", "chat-list-switch", function() { | |
| if (this.j("selected")) { | |
| return false; | |
| } | |
| var result = this.parent(".dialog"); | |
| this.g("selected"); | |
| var self; | |
| var activeItem; | |
| var ua; | |
| if (this.j("all")) { | |
| self = this.parent(".switcher").find(".online"); | |
| activeItem = result.find(".all-view"); | |
| ua = result.find(".online-view"); | |
| result.k("online-viewing"); | |
| } else { | |
| self = this.parent(".switcher").find(".all"); | |
| activeItem = result.find(".online-view"); | |
| ua = result.find(".all-view"); | |
| result.g("online-viewing"); | |
| } | |
| self.k("selected"); | |
| ua.ua(); | |
| activeItem.show(); | |
| return false; | |
| }); | |
| /** | |
| * @param {string} name | |
| * @return {?} | |
| */ | |
| var make_function = function(name) { | |
| return jQuery('.composer .user-card.recipient[data-id="' + name + '"]'); | |
| }; | |
| /** | |
| * @param {string} text | |
| * @param {(number|string)} html | |
| * @return {undefined} | |
| */ | |
| var span = function(text, html) { | |
| if (span_(text).empty()) { | |
| createElement("span", "name-card address-card recipient").append(createElement("span")).setData("title", html || text).setData("info", text).setData("name", html || "").insertBefore(jQuery(".composer .recipients input")); | |
| } | |
| }; | |
| /** | |
| * @param {string} text | |
| * @return {?} | |
| */ | |
| var span_ = function(text) { | |
| return jQuery('.composer .address-card.recipient[data-info="' + text + '"]'); | |
| }; | |
| $("dialog-customize", "composer", function() { | |
| doc.load(); | |
| return true; | |
| }); | |
| $("click", "composer-focus-to", function() { | |
| this.parent(".composer").find(".to input").focus(); | |
| return false; | |
| }); | |
| $("search-handler", "composer-to", function() { | |
| var optgroup = this.data("id"); | |
| if (this.j("contact")) { | |
| if (make_function(optgroup).empty()) { | |
| if (optgroup = data.Ka(optgroup)) { | |
| data.yg(optgroup).g("recipient").insertBefore(jQuery(".composer .recipients input")); | |
| } | |
| } | |
| } else { | |
| optgroup = doc.Ka(optgroup); | |
| span(optgroup.address, optgroup.name); | |
| } | |
| jQuery(".composer input").focus(); | |
| return true; | |
| }); | |
| $("search-filter", "composer-to", function() { | |
| return this.address ? span_(this.address).empty() : make_function(this.id).empty(); | |
| }); | |
| $("keydown", "composer-to", function(event) { | |
| var text = this.value(); | |
| return 13 == event.keyCode && (text && changeDelimiters(text)) ? (span(text), moveHandler(this), false) : event.keyCode != touchend || this.value() ? obj.keydown.search.call(this, event) : (parent(this.parent(".composer").find(".to .recipient")).remove(), false); | |
| }); | |
| $("blur", "composer-to", function() { | |
| var text = this.value(); | |
| if (text) { | |
| if (changeDelimiters(text)) { | |
| span(text); | |
| moveHandler(this); | |
| } | |
| } | |
| return true; | |
| }); | |
| $("input", "composer-to", function(mapper) { | |
| if (this.value()) { | |
| this.gb(this.get().scrollWidth); | |
| } else { | |
| css(this, "width"); | |
| } | |
| return obj.input.search.call(this, mapper); | |
| }); | |
| $("input", "composer", function() { | |
| var p = this.parent(".input"); | |
| var attributes = this.height() + 12; | |
| if (attributes >= p.height()) { | |
| p.Sa(attributes); | |
| } else { | |
| css(p, "height"); | |
| } | |
| addClass(this, "dirty", arrayContains(this.find(".text,.files"))); | |
| return true; | |
| }); | |
| $("send-setup", "composer", function() { | |
| /** @type {Array} */ | |
| var pieces = []; | |
| expect(jQuery(".composer .recipient.user-card"), function() { | |
| pieces.push(jQuery(this).data("id")); | |
| }); | |
| /** @type {Array} */ | |
| var leaks = []; | |
| /** @type {Array} */ | |
| var classes = []; | |
| expect(jQuery(".composer .recipient.address-card"), function() { | |
| var self = jQuery(this); | |
| leaks.push(self.data("info")); | |
| classes.push(self.data("name")); | |
| }); | |
| if (0 == pieces.length && 0 == leaks.length) { | |
| return jQuery(".composer .to input").focus(), false; | |
| } | |
| jQuery(".composer .message-input").setData("recipients", pieces.join(",")).setData("invite-infos", leaks.join(",")).setData("invite-names", classes.join(",")); | |
| return true; | |
| }); | |
| $("send-cleanup", "composer", function() { | |
| close(); | |
| jQuery(".composer .to input").clear().blur(); | |
| jQuery(".composer .recipient").remove(); | |
| eventType(eventType(eventType(jQuery(".composer .message-input"), "recipients"), "invite-infos"), "invite-names"); | |
| return true; | |
| }); | |
| $("click", "composer-send", function() { | |
| run(jQuery(".composer .message-input")); | |
| return false; | |
| }); | |
| $("keydown", "contacts", function(e) { | |
| var text = this.value(); | |
| return 13 == e.keyCode && (text && changeDelimiters(text)) ? (confirm(text, void 0, void 0, function() { | |
| error(callback("Invited %(name)s", { | |
| name : text | |
| })); | |
| }), moveHandler(this), false) : obj.keydown.search.call(this, e); | |
| }); | |
| $("dialog-customize", "contacts", function() { | |
| if (1 >= jQuery(".contacts.dialog .object-row").length()) { | |
| return obj.click.dialog.call(jQuery(".contacts.dialog .add-contacts"), null), false; | |
| } | |
| win(jQuery(".contacts.dialog"), true); | |
| disable(true); | |
| return true; | |
| }); | |
| $("search-handler", "contacts", function() { | |
| close(); | |
| hasKey(result, this.data("id")); | |
| return true; | |
| }); | |
| $("click", "remove-contact", function() { | |
| next("/-/remove-contact", { | |
| contact_user_id : this.parent(".object-row").data("id") | |
| }, function(val) { | |
| onComplete(val); | |
| }); | |
| return false; | |
| }); | |
| $("click", "open-chat-thread", function() { | |
| if (!this.parent(".contacts.body").empty()) { | |
| var match = this.data("id"); | |
| if (match && (match = data.Ka(match), match.chat_thread_id)) { | |
| return onclick(match.chat_thread_id), false; | |
| } | |
| } | |
| close(); | |
| _toString("listen"); | |
| hasKey(result, this.data("id")); | |
| return false; | |
| }); | |
| /** | |
| * @return {?} | |
| */ | |
| var getObject = function() { | |
| if (window.matchMedia && isCORS) { | |
| /** @type {Array} */ | |
| var tagNameArr = []; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < vendors.length;i++) { | |
| var vendorPrefix = vendors[i]; | |
| /** @type {string} */ | |
| var month = "transform-3d"; | |
| if (vendorPrefix) { | |
| /** @type {string} */ | |
| month = "-" + vendorPrefix + "-" + month; | |
| } | |
| tagNameArr.push("(" + month + ")"); | |
| } | |
| return window.matchMedia(tagNameArr.join(",")).matches; | |
| } | |
| return null !== attrs && null !== pdataCur; | |
| }; | |
| /** | |
| * @param {?} a | |
| * @param {string} code | |
| * @param {number} opt_attributes | |
| * @return {undefined} | |
| */ | |
| var error = function(a, code, opt_attributes) { | |
| opt_attributes = opt_attributes || 5E3; | |
| jQuery(".alert").remove(); | |
| a = createElement("div", "alert").setData("time", opt_attributes).ca(a); | |
| if (code) { | |
| a.setData("click", "open-document").setData("id", code); | |
| } | |
| jQuery(window.document.body).append(a); | |
| then(); | |
| }; | |
| /** | |
| * @param {?} c | |
| * @param {?} classNames | |
| * @param {(Array|Uint8Array|string)} recurring | |
| * @param {Function} done | |
| * @param {string} klass | |
| * @param {boolean} deepDataAndEvents | |
| * @return {undefined} | |
| */ | |
| var removeClass = function(c, classNames, recurring, done, klass, deepDataAndEvents) { | |
| /** @type {Array} */ | |
| classNames = [classNames]; | |
| /** @type {Array} */ | |
| var attributes = ["ok"]; | |
| if (recurring) { | |
| classNames.push(recurring); | |
| attributes.push("cancel"); | |
| } | |
| header("", c, classNames, attributes, function(ok) { | |
| done("ok" == ok); | |
| }, klass, deepDataAndEvents).find("button[data-dialog-label=ok]").g("default"); | |
| }; | |
| /** | |
| * @param {Object} val | |
| * @param {?} obj | |
| * @param {Array} elem | |
| * @param {Array} opt_attributes | |
| * @param {Function} callback | |
| * @param {string} name | |
| * @param {boolean} deepDataAndEvents | |
| * @return {?} | |
| */ | |
| var header = function(val, obj, elem, opt_attributes, callback, name, deepDataAndEvents) { | |
| val = draw({ | |
| buttons : elem, | |
| Ke : opt_attributes, | |
| title : val, | |
| message : obj, | |
| /** | |
| * @param {?} args | |
| * @return {undefined} | |
| */ | |
| ee : function(args) { | |
| callback(args.wd); | |
| }, | |
| ar : deepDataAndEvents | |
| }); | |
| if (name) { | |
| val.g(name); | |
| } | |
| return val; | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var then = function() { | |
| var obj = jQuery(".alert"); | |
| if (attr(obj, "time")) { | |
| push(function() { | |
| obj.g("hidden"); | |
| push(function() { | |
| obj.remove(); | |
| }, 500); | |
| }, assertEquals(obj, "time")); | |
| } | |
| }; | |
| /** | |
| * @param {number} opt_attributes | |
| * @return {?} | |
| */ | |
| var SavingFiles = function(opt_attributes) { | |
| var display = setStyle(createElement("div"), { | |
| position : "fixed", | |
| background : "rgba(0,0,0,0.85)", | |
| borderRadius : "10px", | |
| width : "100px", | |
| height : "100px", | |
| left : "50%", | |
| top : "50%", | |
| marginLeft : "-50px", | |
| marginTop : "-50px" | |
| }); | |
| if (opt_attributes) { | |
| display.ua(); | |
| push(function() { | |
| display.show(); | |
| }, opt_attributes); | |
| } | |
| display.append(transform(50, "white")); | |
| item.append(display); | |
| return display; | |
| }; | |
| /** | |
| * @param {number} height | |
| * @param {string} color | |
| * @return {?} | |
| */ | |
| var transform = function(height, color) { | |
| var c; | |
| var width; | |
| var size; | |
| var l; | |
| height = height || 40; | |
| color = color || "#666"; | |
| /** @type {number} */ | |
| c = c || 1; | |
| /** @type {number} */ | |
| width = width || Math.round(height / 10); | |
| /** @type {number} */ | |
| size = size || Math.round(height / 3.6); | |
| /** @type {number} */ | |
| l = l || 12; | |
| var form = createElement("div", "css-spinner"); | |
| if (checkElements(peek(form, "animation"))) { | |
| return console.warn("Browser does not support CSS animation"), new klass([]); | |
| } | |
| setStyle(form, { | |
| width : height + "px", | |
| height : height + "px", | |
| marginLeft : -height / 2 + "px", | |
| marginTop : -height / 2 + "px" | |
| }); | |
| /** @type {number} */ | |
| var j = 0; | |
| for (;j < l;j++) { | |
| /** @type {number} */ | |
| var rad = 2 * j * Math.PI / l; | |
| /** @type {number} */ | |
| var x = height / 2; | |
| /** @type {number} */ | |
| var el_t = Math.round(x - Math.cos(rad) * (x - size / 2) - size / 2); | |
| /** @type {number} */ | |
| x = Math.round(x + Math.sin(rad) * (x - size / 2) - width / 2); | |
| /** @type {number} */ | |
| rad = Math.round(180 * rad / Math.PI); | |
| /** @type {number} */ | |
| var t = (l - j) * c / l; | |
| var display = createElement("div"); | |
| setStyle(display, { | |
| backgroundColor : color, | |
| width : width + "px", | |
| height : size + "px", | |
| top : el_t + "px", | |
| left : x + "px", | |
| opacity : "0", | |
| position : "absolute" | |
| }); | |
| display.ja("borderRadius", Math.round(width / 2) + "px"); | |
| vendor(display, "animation", "css-spinner-animation " + c + "s linear infinite"); | |
| vendor(display, "transform", "rotate(" + rad + "deg)"); | |
| vendor(display, "animationDelay", -t + "s"); | |
| form.append(display); | |
| } | |
| return form; | |
| }; | |
| /** | |
| * @param {Function} callback | |
| * @param {?} id | |
| * @return {undefined} | |
| */ | |
| var createForm = function(callback, id) { | |
| /** | |
| * @return {undefined} | |
| */ | |
| function next() { | |
| if (input.files.length) { | |
| window.clearInterval(timeout); | |
| if (processData(input.files)) { | |
| callback(input.files); | |
| } | |
| } | |
| } | |
| /** @type {Element} */ | |
| var input = document.createElement("input"); | |
| if (id) { | |
| input.setAttribute("accept", id); | |
| } | |
| addEvent(input, "change", next); | |
| var timeout = createDom(next, 100); | |
| push(function() { | |
| window.clearInterval(timeout); | |
| }, 6E4); | |
| /** @type {string} */ | |
| input.type = "file"; | |
| input.click(); | |
| }; | |
| /** | |
| * @param {Array} data | |
| * @return {?} | |
| */ | |
| var processData = function(data) { | |
| /** @type {boolean} */ | |
| var result = true; | |
| if (data.length) { | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < data.length;i++) { | |
| if (data[i].size && !(26214400 >= data[i].size)) { | |
| /** @type {boolean} */ | |
| result = false; | |
| break; | |
| } | |
| } | |
| } else { | |
| /** @type {boolean} */ | |
| result = !data.size || 26214400 >= data.size; | |
| } | |
| if (!result) { | |
| removeClass(callback("Files larger than %(size)sMB cannot be uploaded.", { | |
| size : 25 | |
| }), extend(detectDevice(), "en") ? "Bummer" : callback("OK"), null, function() { | |
| }); | |
| } | |
| return result; | |
| }; | |
| /** | |
| * @param {?} value | |
| * @param {Object} path | |
| * @return {undefined} | |
| */ | |
| var highlight = function(value, path) { | |
| var res = transform(); | |
| path.append(res).g("loading-lightbox"); | |
| var node = createElement("img"); | |
| node.setAttribute("src", value); | |
| var $ = slice(addListener, node.get()); | |
| var self = $("load", function() { | |
| res.remove(); | |
| path.k("loading-lightbox"); | |
| removeListener(el); | |
| var row = createElement("div", "lightbox").setData("click", "lightbox-close").append(createElement("div", "image-container").append(node).append(createElement("div", "delete-overlay-button large").setData("click", "lightbox-close")).append(createElement("a", "download").setAttribute("href", value).setAttribute("target", external ? "_blank" : ""))); | |
| item.append(row); | |
| activate(row); | |
| }); | |
| var el = $("error", function() { | |
| res.remove(); | |
| path.k("loading-lightbox"); | |
| removeListener(self); | |
| error(callback("Could not load image.")); | |
| }); | |
| }; | |
| /** | |
| * @param {Object} container | |
| * @return {undefined} | |
| */ | |
| var activate = function(container) { | |
| var attributes = container.find("img").get(); | |
| var opt_attributes = attributes.naturalWidth; | |
| attributes = attributes.naturalHeight; | |
| /** @type {number} */ | |
| var volume = Math.round(0.8 * container.width()); | |
| /** @type {number} */ | |
| var min = Math.round(0.8 * container.height()); | |
| /** @type {number} */ | |
| volume = Math.min(volume / opt_attributes, min / attributes, 1); | |
| /** @type {number} */ | |
| opt_attributes = Math.round(volume * opt_attributes); | |
| /** @type {number} */ | |
| attributes = Math.round(volume * attributes); | |
| addClass(addClass(container.find(".image-container").gb(opt_attributes).Sa(attributes).ja("marginLeft", Math.round(-opt_attributes / 2) + "px").ja("marginTop", Math.round(-attributes / 2) + "px"), "short", 128 > attributes), "tiny", 64 > attributes); | |
| addClass(container.find(".delete-overlay-button"), "large", 64 < attributes); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| var empty = function() { | |
| var $div = jQuery(".lightbox"); | |
| return $div.empty() ? jQuery(".dialog.active").empty() ? jQuery(".context-menu.active").empty() ? false : (addPlaceholder(), jQuery(".context-menu.active").empty()) : (close(), jQuery(".dialog.active").empty()) : ($div.remove(), true); | |
| }; | |
| addEvent(window, "resize", function() { | |
| expect(jQuery(".lightbox"), function() { | |
| activate(jQuery(this)); | |
| }); | |
| }); | |
| $("change", "set-locale", function() { | |
| var params = { | |
| locale : this.value() | |
| }; | |
| /** @type {Element} */ | |
| var form = document.createElement("form"); | |
| /** @type {string} */ | |
| form.method = "post"; | |
| /** @type {string} */ | |
| form.action = "/-/locale"; | |
| params._csrf = _next("id"); | |
| if (!params.next) { | |
| /** @type {string} */ | |
| params.next = window.location.href; | |
| } | |
| var par; | |
| for (par in params) { | |
| /** @type {Element} */ | |
| var field = document.createElement("input"); | |
| /** @type {string} */ | |
| field.type = "hidden"; | |
| /** @type {string} */ | |
| field.name = par; | |
| field.value = params[par]; | |
| form.appendChild(field); | |
| } | |
| document.body.appendChild(form); | |
| form.submit(); | |
| return false; | |
| }); | |
| attempt(then); | |
| attempt(function() { | |
| expect(jQuery(".scroll-bottom"), function() { | |
| appendTo(jQuery(this), 0); | |
| }); | |
| }); | |
| addEvent(window.document.body, "click", function(element) { | |
| /** @type {boolean} */ | |
| var b = true; | |
| /** @type {boolean} */ | |
| var c = false; | |
| element = element.target; | |
| for (;element;element = element.parentNode) { | |
| if (element == window.document.body) { | |
| /** @type {boolean} */ | |
| c = true; | |
| break; | |
| } | |
| if (element.nodeType == ELEMENT_NODE) { | |
| var self = jQuery(element); | |
| if (self.j("dialog") || (self.j("popover-anchor") || "dialog" == self.data("click"))) { | |
| /** @type {boolean} */ | |
| b = false; | |
| break; | |
| } | |
| if (self.j("popover-one-shot-anchor")) { | |
| self.k("popover-one-shot-anchor"); | |
| /** @type {boolean} */ | |
| b = false; | |
| break; | |
| } | |
| } | |
| } | |
| if (b) { | |
| if (c) { | |
| close(); | |
| addPlaceholder(); | |
| } | |
| } | |
| }); | |
| $("click", "lightbox-close", function(oEvent) { | |
| return jQuery(oEvent.target).j("download") ? true : (jQuery(".lightbox").remove(), false); | |
| }); | |
| attempt(function() { | |
| var $div = jQuery(".modal.dialog"); | |
| if (!$div.empty()) { | |
| if (jQuery(".dialog.active").empty()) { | |
| if ($div.parent(".mobile-dialog").empty()) { | |
| createOption($div); | |
| } | |
| } | |
| } | |
| addEvent(document, "keydown", function(event) { | |
| if (!(27 != event.keyCode)) { | |
| if (!event.altKey) { | |
| if (!event.metaKey) { | |
| if (!event.ctrlKey) { | |
| if (empty()) { | |
| cancelEvent(event); | |
| } | |
| } | |
| } | |
| } | |
| } | |
| if (13 == event.keyCode && (!event.altKey && (!event.metaKey && !event.ctrlKey))) { | |
| var rvar = jQuery(".dialog.active button.default").data("dialog-label"); | |
| if (rvar) { | |
| jQuery(".dialog.active").setData("dialog-label", rvar); | |
| close(); | |
| stopEvent(event); | |
| cancelEvent(event); | |
| } | |
| } | |
| }); | |
| }); | |
| /** | |
| * @param {string} optgroup | |
| * @param {?} inplace | |
| * @param {?} rows | |
| * @param {string} cols | |
| * @return {undefined} | |
| */ | |
| var build_gameboard = function(optgroup, inplace, rows, cols) { | |
| this.ea = storage.ya().g(optgroup).ua(); | |
| if (cols) { | |
| /** @type {string} */ | |
| this.tj = cols; | |
| var key; | |
| for (key in iterable) { | |
| if (!(key in this.tj)) { | |
| this.tj[key] = iterable[key]; | |
| } | |
| } | |
| } else { | |
| this.tj = iterable; | |
| } | |
| if (this.tj.lp) { | |
| this.ea.g("dark"); | |
| } else { | |
| this.ea.g("light"); | |
| } | |
| this.Fs = this.ea.find(".arrow"); | |
| /** @type {null} */ | |
| this.Ja = null; | |
| /** @type {boolean} */ | |
| this.of = false; | |
| this.pb = rows; | |
| this.hk = this.ea.find(".body"); | |
| /** @type {boolean} */ | |
| this.qq = false; | |
| this.hk.append(inplace); | |
| }; | |
| var iterable = { | |
| lp : false, | |
| ev : false, | |
| xu : false | |
| }; | |
| var storage = get("<div class='bubble' contenteditable='false'><div class='body'></div><div class='arrow'></div></div>"); | |
| self = build_gameboard.prototype; | |
| /** | |
| * @param {?} _relatedTarget | |
| * @param {?} value | |
| * @return {undefined} | |
| */ | |
| self.show = function(_relatedTarget, value) { | |
| var focus = bind(function() { | |
| this.Ja = _relatedTarget; | |
| this.pb.Qs(_relatedTarget); | |
| value.append(this.ea); | |
| this.ea.show(); | |
| finish(bind(function() { | |
| if (this.of) { | |
| if (!this.Rg) { | |
| this.ea.g("visible"); | |
| this.pb.Ps(_relatedTarget); | |
| } | |
| } | |
| }, this)); | |
| this.yj = equals(bind(this.We, this), bind(this.Je, this)); | |
| /** @type {boolean} */ | |
| this.of = true; | |
| }, this); | |
| if (this.Rg) { | |
| /** @type {boolean} */ | |
| this.Rg = false; | |
| focus(); | |
| } else { | |
| if (this.of) { | |
| this.ua(focus); | |
| } else { | |
| focus(); | |
| } | |
| } | |
| }; | |
| /** | |
| * @param {?} xhr | |
| * @param {?} i | |
| * @return {undefined} | |
| */ | |
| var fix_xhr = function(xhr, i) { | |
| xhr.Ja = i; | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.i = function() { | |
| return this.ea; | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Jb = function() { | |
| return this.of && !this.Rg; | |
| }; | |
| /** | |
| * @param {?} focus | |
| * @return {undefined} | |
| */ | |
| self.ua = function(focus) { | |
| if (this.of) { | |
| if (!this.Rg) { | |
| this.Rm(false, focus); | |
| } | |
| } | |
| }; | |
| /** | |
| * @param {boolean} recurring | |
| * @param {?} listener | |
| * @return {undefined} | |
| */ | |
| self.Rm = function(recurring, listener) { | |
| var visible = this.ea.j("visible"); | |
| if (!this.Rg) { | |
| /** @type {boolean} */ | |
| this.Rg = true; | |
| $timeout(this.yj); | |
| delete this.yj; | |
| this.ea.k("visible"); | |
| this.pb.Oo(); | |
| } | |
| var mousemove = bind(function() { | |
| if (this.Rg) { | |
| this.ea.ua(); | |
| this.pb.No(); | |
| /** @type {boolean} */ | |
| this.Rg = this.of = false; | |
| if (listener) { | |
| listener(); | |
| } | |
| } | |
| }, this); | |
| if (!recurring && visible) { | |
| off(this.ea, mousemove); | |
| } else { | |
| mousemove(); | |
| } | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.cl = function() { | |
| return this.qq; | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.We = function() { | |
| if (!this.Ja.Jb()) { | |
| return{ | |
| ua : true | |
| }; | |
| } | |
| var pos = this.Ja.ga(); | |
| if (0 == pos.width && 0 == pos.height) { | |
| return{ | |
| ua : true | |
| }; | |
| } | |
| var $window = this.ea.parent(); | |
| var bounds = $window.ga(); | |
| var params = this.pb.ef(); | |
| var offset = this.ea.ga(); | |
| /** @type {number} */ | |
| var height = offset.height - 0.75 * this.ea.borderBottom(); | |
| var x = pos.left + pos.width / 2; | |
| /** @type {number} */ | |
| var optgroup = this.Fs.width() / 2; | |
| if (this.tj.xu) { | |
| /** @type {number} */ | |
| var y = Math.round((offset.width - this.hk.width()) / 2); | |
| /** @type {number} */ | |
| x = x - (y + optgroup + 10); | |
| /** @type {number} */ | |
| optgroup = y + 10; | |
| } else { | |
| /** @type {number} */ | |
| y = Math.round(offset.width / 2); | |
| x -= y; | |
| /** @type {number} */ | |
| optgroup = Math.round(y - optgroup); | |
| } | |
| if (this.ea.j("dark")) { | |
| optgroup += this.ea.paddingLeft(); | |
| } | |
| if (x < bounds.left) { | |
| optgroup += x - bounds.left; | |
| x = bounds.left; | |
| } else { | |
| if (x + offset.width > bounds.right) { | |
| optgroup += x - (bounds.right - offset.width); | |
| /** @type {number} */ | |
| x = bounds.right - offset.width; | |
| } | |
| } | |
| /** @type {boolean} */ | |
| y = false; | |
| if (this.tj.ev) { | |
| if (pos.bottom + height > params.bf) { | |
| /** @type {number} */ | |
| pos = pos.top - offset.height; | |
| /** @type {boolean} */ | |
| y = true; | |
| } else { | |
| pos = pos.bottom; | |
| } | |
| } else { | |
| if (pos.top - height < params.bd) { | |
| pos = pos.bottom; | |
| } else { | |
| /** @type {number} */ | |
| pos = pos.top - offset.height; | |
| /** @type {boolean} */ | |
| y = true; | |
| } | |
| } | |
| return{ | |
| top : Math.round(pos + $window.scrollTop() - bounds.top), | |
| cl : y, | |
| left : Math.round(x - bounds.left), | |
| Fx : Math.round(optgroup) | |
| }; | |
| }; | |
| /** | |
| * @param {Object} res | |
| * @return {undefined} | |
| */ | |
| self.Je = function(res) { | |
| if (res.ua) { | |
| this.ua(); | |
| } else { | |
| addClass(val(setSize(this.ea, res.left), res.top), "bottom", res.cl); | |
| setSize(this.Fs, res.Fx); | |
| if (this.qq != res.cl) { | |
| this.qq = res.cl; | |
| this.pb.Os(); | |
| } | |
| } | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var two = function() { | |
| }; | |
| self = two.prototype; | |
| /** @type {function (): ?} */ | |
| self.ef = tmp; | |
| /** | |
| * @return {undefined} | |
| */ | |
| self.Qs = function() { | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| self.Ps = function() { | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| self.Oo = function() { | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| self.No = function() { | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| self.Os = function() { | |
| }; | |
| /** | |
| * @param {Node} options | |
| * @return {undefined} | |
| */ | |
| var View = function(options) { | |
| /** @type {Node} */ | |
| this.ea = options; | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| View.prototype.Jb = function() { | |
| return getElementById(this.ea); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| View.prototype.ga = function() { | |
| var prim; | |
| if (!_isSafari && (getComputedStyle(this.ea) && this.ea.get().getClientRects())) { | |
| var codeSegments = this.ea.get().getClientRects(); | |
| /** @type {number} */ | |
| var computed = 0; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < codeSegments.length;i++) { | |
| var rect = codeSegments[i]; | |
| /** @type {number} */ | |
| rect.width = rect.right - rect.left; | |
| /** @type {number} */ | |
| rect.height = rect.bottom - rect.top; | |
| /** @type {number} */ | |
| var current = rect.width * rect.height; | |
| if (current > computed) { | |
| prim = rect; | |
| /** @type {number} */ | |
| computed = current; | |
| } | |
| } | |
| } | |
| if (!prim) { | |
| prim = this.ea.ga(); | |
| } | |
| return prim; | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var ctorB = function() { | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| ctorB.prototype.Jb = function() { | |
| /** @type {(Selection|null)} */ | |
| var sel = window.getSelection(); | |
| return Boolean(sel && 0 < sel.rangeCount); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| ctorB.prototype.ga = function() { | |
| /** @type {(Selection|null)} */ | |
| var selection = window.getSelection(); | |
| /** @type {null} */ | |
| var ret = null; | |
| if (selection.rangeCount) { | |
| /** @type {(ClientRectList|null)} */ | |
| var resultItems = selection.getRangeAt(0).getClientRects(); | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < resultItems.length;i++) { | |
| var result = resultItems[i]; | |
| if (0 < result.width || selection.isCollapsed) { | |
| ret = result; | |
| break; | |
| } | |
| } | |
| } | |
| if (!this.Jb() || null == ret) { | |
| return{ | |
| top : 0, | |
| right : 0, | |
| bottom : 0, | |
| left : 0, | |
| width : 0, | |
| height : 0 | |
| }; | |
| } | |
| /** @type {number} */ | |
| ret.width = ret.right - ret.left; | |
| /** @type {number} */ | |
| ret.height = ret.bottom - ret.top; | |
| return ret; | |
| }; | |
| /** | |
| * @param {Object} container | |
| * @param {Object} value | |
| * @param {HTMLElement} option | |
| * @return {undefined} | |
| */ | |
| var createOption = function(container, value, option) { | |
| setHtml(container.j("dialog")); | |
| if (container.j("active")) { | |
| close(); | |
| } else { | |
| if (container.ar) { | |
| if (!jQuery(".dialog.active").empty()) { | |
| jQuery(".dialog.active").g("secondary"); | |
| } | |
| } else { | |
| if (close(), !jQuery(".dialog.active").empty()) { | |
| return; | |
| } | |
| } | |
| var methodName = container.data("dialog-customize"); | |
| if (!methodName || obj["dialog-customize"][methodName].call(value, null)) { | |
| container.g("visible"); | |
| var result; | |
| if (value && !value.empty() || option) { | |
| result = new klass([]); | |
| position(container, value, option); | |
| } else { | |
| result = jQuery(".dialog-background"); | |
| if (result.empty()) { | |
| result = createElement("div", "dialog-background").setData("click", "dialog-background"); | |
| item.append(result); | |
| } | |
| container.find(".arrow").remove(); | |
| setStyle(container.g("modal").k("left").k("top"), { | |
| marginLeft : -Math.round(container.width() / 2) + "px", | |
| marginTop : -Math.round(container.height() / 2) + "px" | |
| }); | |
| } | |
| result.g("visible"); | |
| finish(function() { | |
| container.g("active"); | |
| result.g("active"); | |
| selectText(container); | |
| }); | |
| } | |
| } | |
| }; | |
| /** | |
| * @param {Object} el | |
| * @return {undefined} | |
| */ | |
| var selectText = function(el) { | |
| var sel = el.data("dialog-focus"); | |
| if (sel) { | |
| if (el = jQuery(sel), write(el, "input") || (write(el, "textarea") || !el.empty() && el.get().isContentEditable)) { | |
| jQuery(sel).focus(); | |
| } else { | |
| if (!trim(el).empty()) { | |
| /** @type {(Selection|null)} */ | |
| sel = window.getSelection(); | |
| /** @type {(Range|null)} */ | |
| var r2 = document.createRange(); | |
| r2.selectNodeContents(el.get()); | |
| sel.removeAllRanges(); | |
| sel.addRange(r2); | |
| } | |
| } | |
| } | |
| }; | |
| /** | |
| * @param {Object} $this | |
| * @param {number} p | |
| * @param {Object} pos | |
| * @param {Object} obj | |
| * @return {undefined} | |
| */ | |
| var position = function($this, p, pos, obj) { | |
| var position = $this.width(); | |
| var bottom = $this.height(); | |
| css(css($this.k("modal"), "marginLeft"), "marginTop"); | |
| var body = $this.find(".arrow"); | |
| if (body.empty()) { | |
| if (!obj) { | |
| body = createElement("div", "arrow"); | |
| $this.append(body); | |
| } | |
| } | |
| if (!pos) { | |
| obj = p.ga(); | |
| /** @type {boolean} */ | |
| var width = obj.top < bottom - obj.bottom; | |
| pos = { | |
| top : obj.bottom + bottom < window.innerHeight || width ? obj.bottom : obj.top, | |
| left : Math.round(obj.left + obj.width / 2), | |
| bottom : void 0 | |
| }; | |
| } | |
| $this.setData("position-top", pos.top); | |
| $this.setData("position-left", pos.left); | |
| obj = $this.parent(); | |
| for (;!obj.empty() && "visible" == obj.style("overflow");) { | |
| obj = obj.parent(); | |
| } | |
| obj = obj.empty() || obj.get() == document.body ? { | |
| top : 0, | |
| left : 0, | |
| bottom : window.innerHeight, | |
| right : window.innerWidth, | |
| width : window.innerWidth, | |
| height : window.innerHeight | |
| } : obj.ga(); | |
| /** @type {number} */ | |
| width = pos.left - Math.round(position / 2); | |
| /** @type {number} */ | |
| var top = $this.j("context-menu") ? 0 : -5; | |
| /** @type {number} */ | |
| width = Math.max(width, obj.left + top); | |
| /** @type {number} */ | |
| width = Math.min(width, obj.right - top - position); | |
| top = pos.top; | |
| /** @type {number} */ | |
| var recurring = obj.bottom - top; | |
| /** @type {number} */ | |
| var udataCur = obj.right - width - position; | |
| /** @type {number} */ | |
| var vh = obj.bottom - (top + bottom); | |
| /** @type {number} */ | |
| bottom = top - bottom - obj.top; | |
| if (bottom = !exec(pos.bottom) && 0 < vh ? false : 0 < bottom ? true : bottom > vh) { | |
| $this.g("bottom"); | |
| $this.setData("position-bottom", 1); | |
| } else { | |
| $this.k("bottom"); | |
| $this.setData("position-bottom", 0); | |
| if (p) { | |
| if (!p.parent("nav").empty()) { | |
| top -= 7; | |
| $this.setData("position-top", pos.top - 7); | |
| } | |
| } | |
| } | |
| /** @type {number} */ | |
| p = pos.left - width - $this.borderLeft() - Math.round(body.width() / 2); | |
| /** @type {number} */ | |
| p = Math.max(p, -9); | |
| /** @type {number} */ | |
| p = Math.min(p, position - $this.borderLeft() - $this.borderRight() - 7); | |
| setSize(body, p); | |
| if ($this.get().offsetParent) { | |
| p = jQuery($this.get().offsetParent); | |
| position = p.get() == document.body ? obj : p.ga(); | |
| body = p.scrollLeft(); | |
| p = p.scrollTop(); | |
| width += body - position.left; | |
| top += p - position.top; | |
| recurring += position.bottom - obj.bottom - p; | |
| udataCur += position.right - obj.right - body; | |
| } | |
| if (bottom) { | |
| runCallbacks($this, recurring).ja("top", "auto"); | |
| } else { | |
| val($this, top).ja("bottom", "auto"); | |
| } | |
| if (udataCur < width) { | |
| getDimensions($this, udataCur).ja("left", "auto"); | |
| } else { | |
| setSize($this, width).ja("right", "auto"); | |
| } | |
| }; | |
| /** | |
| * @param {Object} e | |
| * @param {?} el | |
| * @param {Object} opt_attributes | |
| * @param {boolean} isSorted | |
| * @return {undefined} | |
| */ | |
| var unique = function(e, el, opt_attributes, isSorted) { | |
| position(e, el, opt_attributes, isSorted); | |
| finish(function() { | |
| e.g("active"); | |
| }); | |
| }; | |
| /** | |
| * @param {boolean} dataAndEvents | |
| * @return {undefined} | |
| */ | |
| var addPlaceholder = function(dataAndEvents) { | |
| expect(dataAndEvents ? jQuery(".context-menu.submenu.active") : jQuery(".context-menu:not(.submenu).active"), function() { | |
| var self = jQuery(this); | |
| self.k("active"); | |
| var methodName = self.data("context-menu-cleanup"); | |
| if (methodName) { | |
| obj["context-menu-cleanup"][methodName].call(self, null); | |
| } | |
| }); | |
| }; | |
| /** | |
| * @param {?} instance | |
| * @return {undefined} | |
| */ | |
| var is = function(instance) { | |
| instance.j("dialog"); | |
| jQuery("#app").append(instance.g("custom")); | |
| reset(instance); | |
| }; | |
| /** | |
| * @param {Object} item | |
| * @return {undefined} | |
| */ | |
| var reset = function(item) { | |
| var container = jQuery(".dialog.active"); | |
| if (container.empty() || container.j("modal")) { | |
| createOption(item); | |
| } else { | |
| var child = jQuery(".settings-dialog-active"); | |
| createOption(item, null, { | |
| top : assertEquals(container, "position-top"), | |
| left : assertEquals(container, "position-left"), | |
| bottom : assertEquals(container, "position-bottom") | |
| }); | |
| if (!child.empty()) { | |
| if (!item.data("dialog-cleanup")) { | |
| item.setData("dialog-cleanup", "settings-dialog"); | |
| child.g("settings-dialog-active"); | |
| } | |
| } | |
| } | |
| }; | |
| /** @type {null} */ | |
| var count = null; | |
| /** | |
| * @param {?} data | |
| * @return {?} | |
| */ | |
| var draw = function(data) { | |
| var d = createElement("div", "dialog custom").setData("dialog-cleanup", "dialog-custom"); | |
| if (data.xh) { | |
| d.setData("dialog-cancel-label", data.xh); | |
| } | |
| if (data.cy) { | |
| d.g(data.cy); | |
| } | |
| if (data.title) { | |
| d.append(createElement("h1").ca(data.title)); | |
| } | |
| var a = createElement("div", "body"); | |
| if (data.message) { | |
| var node = createElement("section", "message"); | |
| a.append(node); | |
| if (data.message instanceof klass) { | |
| node.append(data.message); | |
| } else { | |
| node.ca(data.message); | |
| } | |
| } | |
| if (data.ae) { | |
| if (data.Xj) { | |
| a.append(createElement("label").ca(data.Xj)); | |
| } | |
| var value; | |
| if (data.jw) { | |
| value = createElement("textarea").setAttribute("rows", data.jw); | |
| /** @type {string} */ | |
| node = ".dialog.active textarea[rows]"; | |
| } else { | |
| value = createElement("input").setAttribute("type", "text"); | |
| /** @type {string} */ | |
| node = ".dialog.active input[type=text]"; | |
| } | |
| value.g("dialogInput"); | |
| a.append(createElement("section", "button-list").append(value)); | |
| d.setData("dialog-focus", node); | |
| } | |
| if (data.message || (data.title || data.ae)) { | |
| node = createElement("section", "button-list"); | |
| if (!data.title) { | |
| if (1 == data.buttons.length) { | |
| node.g("button-solo"); | |
| } else { | |
| if (2 == data.buttons.length) { | |
| node.g("button-pair"); | |
| } | |
| } | |
| } | |
| a.append(node); | |
| } else { | |
| node = a.g("button-list"); | |
| } | |
| /** @type {number} */ | |
| var k = 0; | |
| for (;k < data.buttons.length;k++) { | |
| var display = createElement("button"); | |
| display.ca(data.buttons[k]).setData("click", "dialog-custom").setData("dialog-label", data.Ke[k]); | |
| node.append(display); | |
| } | |
| if (data.ar) { | |
| /** @type {boolean} */ | |
| d.ar = true; | |
| } | |
| d.append(a); | |
| item.append(d); | |
| createOption(d); | |
| if (data.ae) { | |
| if (data.Zn) { | |
| value.af(data.Zn); | |
| /** @type {number} */ | |
| value.get().selectionStart = 0; | |
| value.get().selectionEnd = value.value().length; | |
| } | |
| } | |
| count = data.ee; | |
| return d; | |
| }; | |
| /** | |
| * @param {?} context | |
| * @return {undefined} | |
| */ | |
| var close = function(context) { | |
| context = context || jQuery(".dialog.active"); | |
| expect(context, function() { | |
| var object = jQuery(this); | |
| if (object.j("editing")) { | |
| var methodName = object.find("[data-click='dialog-edit']"); | |
| obj.click["dialog-edit"].call(methodName, null); | |
| } | |
| methodName = object.data("dialog-cleanup"); | |
| if (!methodName || obj["dialog-cleanup"][methodName].call(object, null)) { | |
| object.k("active"); | |
| push(function() { | |
| if (object.j("custom")) { | |
| object.remove(); | |
| } else { | |
| if (!object.j("active")) { | |
| css(css(css(object, "left"), "top"), "bottom").k("visible"); | |
| } | |
| } | |
| }, 500); | |
| } | |
| }); | |
| if (jQuery(".dialog.active:not(.annotation-tab)").empty()) { | |
| if (!jQuery(".dialog-background").k("active").empty()) { | |
| push(function() { | |
| var me = jQuery(".dialog-background"); | |
| if (!me.j("active")) { | |
| me.remove(); | |
| } | |
| }, 500); | |
| } | |
| } | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var standard = function() { | |
| var j = jQuery(".dialog.active"); | |
| if (j.j("inviting")) { | |
| j.k("inviting"); | |
| var descendant = j.find(".search input").k("glyph-email"); | |
| j.find(".search-results").removeAttribute("data-search-filter"); | |
| if (j.j("thread-sharing")) { | |
| descendant.setAttribute("data-search-types", "people,folders,addresses"); | |
| jQuery(".thread-members").show(); | |
| } else { | |
| jQuery(".folder-members,.folder-members-promo").show(); | |
| descendant.setAttribute("data-search-types", "people,addresses"); | |
| } | |
| jQuery(".sharing-invite").show(); | |
| } | |
| }; | |
| $("click", "dialog-background", function() { | |
| close(); | |
| return false; | |
| }); | |
| $("click", "dialog-custom", function() { | |
| var instance = this.data("dialog-label"); | |
| if (instance) { | |
| var node = jQuery(".dialog.active.custom"); | |
| node.setData("dialog-label", instance); | |
| close(node); | |
| } | |
| return false; | |
| }); | |
| $("dialog-cleanup", "dialog-custom", function() { | |
| if (count) { | |
| var j = count; | |
| /** @type {null} */ | |
| count = null; | |
| j({ | |
| wd : this.data("dialog-label") || this.data("dialog-cancel-label"), | |
| ae : this.find(".dialogInput").value() | |
| }); | |
| } | |
| return true; | |
| }); | |
| $("click", "dialog", function() { | |
| var container = this.data("anchor"); | |
| /** @type {null} */ | |
| var udataCur = null; | |
| var positioning = void 0; | |
| if (container && "parent" == container) { | |
| container = jQuery(".dialog.active"); | |
| if (!container.empty()) { | |
| if (!container.j("modal")) { | |
| positioning = { | |
| top : assertEquals(container, "position-top"), | |
| left : assertEquals(container, "position-left"), | |
| bottom : assertEquals(container, "position-bottom") | |
| }; | |
| } | |
| } | |
| } else { | |
| udataCur = container ? jQuery(container) : this; | |
| } | |
| container = jQuery(".dialog." + this.data("dialog")); | |
| container.empty(); | |
| createOption(container, udataCur, positioning); | |
| return false; | |
| }); | |
| $("click", "dialog-close", function() { | |
| close(); | |
| return false; | |
| }); | |
| $("click", "dialog-edit", function() { | |
| var el = this.parent(".dialog"); | |
| var self = el.find(".search input"); | |
| if (el.j("inviting")) { | |
| return self.empty() || obj.keydown[self.data("keydown")].call(self, { | |
| keyCode : 13 | |
| }), standard(), false; | |
| } | |
| removeAttr(el, "editing"); | |
| if (!self.empty()) { | |
| if (el.j("editing")) { | |
| obj.input[self.data("input")].call(self.clear().disable(), null); | |
| } else { | |
| self.enable(); | |
| } | |
| } | |
| return false; | |
| }); | |
| /** | |
| * @param {number} ascend | |
| * @param {?} x | |
| * @return {undefined} | |
| */ | |
| var closest = function(ascend, x) { | |
| /** @type {number} */ | |
| this.xw = ascend; | |
| this.Ja = x; | |
| if ($$().contains(x)) { | |
| /** @type {number} */ | |
| this.Xa = 0; | |
| } else { | |
| if (x.parent(".chat-tab").empty()) { | |
| if (x.parent(".annotation-tab").empty()) { | |
| if (x.parent(".messages").empty()) { | |
| if (x.parent(".desktop").empty()) { | |
| if (x.parent(".signal").empty()) { | |
| console.warn("Hovercard shown in unexpected context."); | |
| /** @type {number} */ | |
| this.Xa = 6; | |
| } else { | |
| /** @type {number} */ | |
| this.Xa = 5; | |
| } | |
| } else { | |
| /** @type {number} */ | |
| this.Xa = 4; | |
| } | |
| } else { | |
| /** @type {number} */ | |
| this.Xa = 3; | |
| } | |
| } else { | |
| /** @type {number} */ | |
| this.Xa = 2; | |
| } | |
| } else { | |
| /** @type {number} */ | |
| this.Xa = 1; | |
| } | |
| } | |
| /** @type {boolean} */ | |
| this.kl = this.Il = this.Yf = false; | |
| }; | |
| inherits(closest, two); | |
| self = closest.prototype; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ef = function() { | |
| if (0 == this.Xa) { | |
| return element.ef(); | |
| } | |
| var paddingBox = this.Ta.i().parent().ga(); | |
| return{ | |
| bd : paddingBox.top, | |
| bf : paddingBox.bottom | |
| }; | |
| }; | |
| /** | |
| * @param {?} data | |
| * @return {undefined} | |
| */ | |
| var parseAttributes = function(data) { | |
| isWhitespace(data); | |
| atob(data); | |
| if (!(data.Ta && data.Ta.Jb())) { | |
| search(data); | |
| if (!exec(data.Hl)) { | |
| data.Hl = push(bind(function() { | |
| delete this.Hl; | |
| if (this.Ta) { | |
| this.ih(); | |
| } else { | |
| /** @type {boolean} */ | |
| this.Il = true; | |
| } | |
| }, data), 500); | |
| } | |
| } | |
| }; | |
| /** | |
| * @param {?} b | |
| * @return {undefined} | |
| */ | |
| var isEqual = function(b) { | |
| if (!exec(b.Uk)) { | |
| b.Uk = push(bind(function() { | |
| delete this.Uk; | |
| this.Rm(); | |
| }, b), 500); | |
| } | |
| }; | |
| /** | |
| * @param {?} string | |
| * @return {undefined} | |
| */ | |
| var isWhitespace = function(string) { | |
| if (exec(string.Uk)) { | |
| protectedClearTimeout(string.Uk); | |
| delete string.Uk; | |
| } | |
| }; | |
| /** | |
| * @param {?} data | |
| * @return {undefined} | |
| */ | |
| var search = function(data) { | |
| if (!onCompletion()) { | |
| if (!data.Ta) { | |
| if (!data.Yf) { | |
| /** @type {boolean} */ | |
| data.Yf = true; | |
| next("/-/hovercard", { | |
| user_id : data.xw | |
| }, bind(function(data) { | |
| /** @type {boolean} */ | |
| this.Yf = false; | |
| data = get(data.html); | |
| successCallback(data); | |
| this.Ta = new build_gameboard("hovercard", data, this); | |
| this.Ta.i().setData("mouseover", "hovercard-card").setData("mouseout", "hovercard-card"); | |
| data = this.Ta.i(); | |
| vals[pred(data)] = this; | |
| if (this.Il) { | |
| this.ih(); | |
| /** @type {boolean} */ | |
| this.Il = false; | |
| } | |
| }, data), bind(function() { | |
| /** @type {boolean} */ | |
| this.Yf = false; | |
| return true; | |
| }, data)); | |
| } | |
| } | |
| } | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| self.ih = function() { | |
| var targetObj = item; | |
| switch(this.Xa) { | |
| case 0: | |
| targetObj = $$(); | |
| break; | |
| case 3: | |
| targetObj = this.Ja.parent(".messages"); | |
| break; | |
| case 4: | |
| targetObj = jQuery(".desktop > .body"); | |
| } | |
| this.Ta.show(new View(this.Ja), targetObj); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| self.Rm = function() { | |
| this.Ta.ua(); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| self.Oo = function() { | |
| writeByte(this); | |
| }; | |
| /** | |
| * @param {?} obj | |
| * @return {undefined} | |
| */ | |
| var bindAll = function(obj) { | |
| hasKey(result, obj.xw, bind(function() { | |
| if (this.kl) { | |
| /** @type {boolean} */ | |
| this.kl = false; | |
| isEqual(this); | |
| } | |
| }, obj)); | |
| }; | |
| /** | |
| * @param {?} b | |
| * @return {undefined} | |
| */ | |
| var writeByte = function(b) { | |
| atob(b); | |
| b.Jp = push(bind(b.Cy, b), 6E4); | |
| }; | |
| /** | |
| * @param {?} input | |
| * @return {undefined} | |
| */ | |
| var atob = function(input) { | |
| protectedClearTimeout(input.Jp); | |
| delete input.Jp; | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| self.Cy = function() { | |
| delete this.Jp; | |
| if (this.Ta) { | |
| this.Ta.Jb(); | |
| this.Ta.i().remove(); | |
| } | |
| var key; | |
| for (key in vals) { | |
| if (vals[key] == this) { | |
| delete vals[key]; | |
| } | |
| } | |
| for (key in $cookies) { | |
| if ($cookies[key] == this) { | |
| delete $cookies[key]; | |
| } | |
| } | |
| }; | |
| var vals = {}; | |
| var $cookies = {}; | |
| /** | |
| * @param {Event} node | |
| * @param {boolean} dataAndEvents | |
| * @return {?} | |
| */ | |
| var renderRow = function(node, dataAndEvents) { | |
| var name = node.data("id"); | |
| /** @type {string} */ | |
| var key = name + "-" + pred(node); | |
| var value = $cookies[key]; | |
| if (!value) { | |
| if (dataAndEvents) { | |
| value = new closest(name, node); | |
| $cookies[key] = value; | |
| } | |
| } | |
| return value; | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var inputsToList = function() { | |
| /** | |
| * @param {Function} fn | |
| * @return {?} | |
| */ | |
| function isNotBubbling(fn) { | |
| return function(option) { | |
| if (!((option = option.relatedTarget) && (option == this.get() || this.contains(jQuery(option))))) { | |
| fn.call(this); | |
| } | |
| return true; | |
| }; | |
| } | |
| $("mouseover", "hovercard", isNotBubbling(function() { | |
| if (this.data("id")) { | |
| this.setData("mouseout", "hovercard"); | |
| parseAttributes(renderRow(this, true)); | |
| } | |
| })); | |
| $("mouseout", "hovercard", isNotBubbling(function() { | |
| var oldconfig = renderRow(this); | |
| if (oldconfig) { | |
| if (exec(oldconfig.Hl)) { | |
| protectedClearTimeout(oldconfig.Hl); | |
| delete oldconfig.Hl; | |
| writeByte(oldconfig); | |
| } else { | |
| if (oldconfig.Il) { | |
| /** @type {boolean} */ | |
| oldconfig.Il = false; | |
| } | |
| } | |
| if (oldconfig.Ta) { | |
| if (oldconfig.Ta.Jb()) { | |
| if (!oldconfig.kl) { | |
| isEqual(oldconfig); | |
| } | |
| } | |
| } | |
| } | |
| })); | |
| $("mouseover", "hovercard-card", isNotBubbling(function() { | |
| var val = vals[pred(this)]; | |
| /** @type {boolean} */ | |
| val.kl = true; | |
| isWhitespace(val); | |
| })); | |
| $("mouseout", "hovercard-card", isNotBubbling(function() { | |
| var oldconfig = vals[pred(this)]; | |
| /** @type {boolean} */ | |
| oldconfig.kl = false; | |
| isEqual(oldconfig); | |
| })); | |
| $("click", "hovercard-toggle-info", function(e) { | |
| if ("A" == e.target.nodeName) { | |
| return true; | |
| } | |
| if (this.j("expanded")) { | |
| css(this.k("expanded"), "height"); | |
| } else { | |
| this.g("expanded").Sa(this.get().scrollHeight); | |
| } | |
| return false; | |
| }); | |
| $("click", "hovercard-chat-tab", function() { | |
| var node; | |
| node = this.parent(".hovercard"); | |
| node = vals[pred(node)]; | |
| bindAll(node); | |
| return false; | |
| }); | |
| }; | |
| attempt(function() { | |
| if (!isMobile) { | |
| inputsToList(); | |
| } | |
| }); | |
| var gp; | |
| /** | |
| * @param {?} other | |
| * @param {?} mat0 | |
| * @return {?} | |
| */ | |
| var equals = function(other, mat0) { | |
| if (inParens) { | |
| return-1; | |
| } | |
| /** @type {number} */ | |
| var id = rightId++; | |
| modules[id] = { | |
| Iu : other, | |
| apply : mat0, | |
| oj : null | |
| }; | |
| whitespace.push(id); | |
| if (1 == whitespace.length) { | |
| fold(rest); | |
| } | |
| padCount++; | |
| if (1 == padCount) { | |
| observer(); | |
| } | |
| return id; | |
| }; | |
| /** | |
| * @param {?} i | |
| * @return {undefined} | |
| */ | |
| var $timeout = function(i) { | |
| if (i in modules && (delete modules[i], whitespace.length && removeAll(whitespace, i), padCount--, 0 == padCount && (dateDefined && timeDefined))) { | |
| mo.disconnect(); | |
| /** @type {number} */ | |
| i = 0; | |
| for (;i < attrList.length;i++) { | |
| removeListener(attrList[i]); | |
| } | |
| /** @type {Array} */ | |
| attrList = []; | |
| /** @type {boolean} */ | |
| timeDefined = false; | |
| } | |
| }; | |
| /** | |
| * @param {Function} module | |
| * @return {undefined} | |
| */ | |
| var isCanvas = function(module) { | |
| if (!inParens && (module = modules[module])) { | |
| /** @type {boolean} */ | |
| gp = true; | |
| var x = module.Iu(); | |
| if (!(x === nil)) { | |
| if (!(module.oj && isObject(module.oj, x))) { | |
| module.oj = x; | |
| module.apply(x); | |
| } | |
| } | |
| /** @type {boolean} */ | |
| gp = false; | |
| } | |
| }; | |
| /** @type {boolean} */ | |
| var inParens = false; | |
| var nil = { | |
| eI : true | |
| }; | |
| var modules = {}; | |
| /** @type {number} */ | |
| var padCount = 0; | |
| /** @type {number} */ | |
| var rightId = 0; | |
| /** @type {Array} */ | |
| var whitespace = []; | |
| /** @type {boolean} */ | |
| var dateDefined = Boolean(window.MutationObserver || window.WebKitMutationObserver); | |
| /** @type {null} */ | |
| var mo = null; | |
| /** @type {boolean} */ | |
| var up = false; | |
| /** @type {boolean} */ | |
| var timeDefined = false; | |
| /** @type {Array} */ | |
| var resultItems = ["resize", "scroll", "transitionend"]; | |
| /** @type {Array} */ | |
| var attrList = []; | |
| /** | |
| * @param {(Array|string)} args | |
| * @return {undefined} | |
| */ | |
| var _flatten = function(args) { | |
| if (!inParens) { | |
| /** @type {boolean} */ | |
| gp = true; | |
| var codeSegments; | |
| /** @type {number} */ | |
| var i = 0; | |
| if (args) { | |
| /** @type {Array} */ | |
| codeSegments = Array(args.length); | |
| /** @type {number} */ | |
| i = 0; | |
| for (;i < args.length;i++) { | |
| codeSegments[i] = modules[args[i]]; | |
| } | |
| } else { | |
| /** @type {Array} */ | |
| codeSegments = Array(padCount); | |
| var module; | |
| for (module in modules) { | |
| codeSegments[i++] = modules[module]; | |
| } | |
| } | |
| /** @type {Array} */ | |
| args = Array(codeSegments.length); | |
| /** @type {number} */ | |
| i = 0; | |
| for (;i < codeSegments.length;i++) { | |
| args[i] = codeSegments[i].Iu(); | |
| } | |
| /** @type {number} */ | |
| i = 0; | |
| for (;i < codeSegments.length;i++) { | |
| module = codeSegments[i]; | |
| var x = args[i]; | |
| if (!(x === nil)) { | |
| if (!(module.oj && isObject(module.oj, x))) { | |
| module.oj = x; | |
| module.apply(x); | |
| } | |
| } | |
| } | |
| if (padCount) { | |
| if (!dateDefined) { | |
| synchronize(function() { | |
| _flatten(); | |
| }); | |
| } | |
| } | |
| /** @type {boolean} */ | |
| gp = false; | |
| } | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var rest = function() { | |
| if (whitespace.length) { | |
| var typePattern = whitespace; | |
| /** @type {Array} */ | |
| whitespace = []; | |
| _flatten(typePattern); | |
| } | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var observer = function() { | |
| if (!dateDefined) { | |
| synchronize(function() { | |
| _flatten(); | |
| }); | |
| } else { | |
| if (!timeDefined) { | |
| if (!mo) { | |
| /** @type {MutationObserver} */ | |
| mo = new (window.MutationObserver || window.WebKitMutationObserver)(paths); | |
| } | |
| mo.observe(document.body, { | |
| childList : true, | |
| attributes : true, | |
| characterData : true, | |
| subtree : true | |
| }); | |
| /** @type {Array} */ | |
| attrList = []; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < resultItems.length;i++) { | |
| attrList.push(addEvent(window, resultItems[i], paths)); | |
| } | |
| /** @type {boolean} */ | |
| timeDefined = true; | |
| } | |
| } | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var paths = function() { | |
| if (!gp) { | |
| if (!up) { | |
| /** @type {boolean} */ | |
| up = true; | |
| synchronize(function() { | |
| /** @type {boolean} */ | |
| up = false; | |
| _flatten(); | |
| }); | |
| } | |
| } | |
| }; | |
| var items = {}; | |
| var valueToItem = {}; | |
| var headers = {}; | |
| /** | |
| * @param {Object} target | |
| * @return {?} | |
| */ | |
| var deepMatches = function(target) { | |
| return "True" == target.active && parseInt(target.now, 10) > now() - 2E4; | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var li = function() { | |
| var obj = {}; | |
| var key; | |
| for (key in items) { | |
| var res = {}; | |
| /** @type {boolean} */ | |
| var d = false; | |
| var i; | |
| for (i in items[key]) { | |
| var val = items[key][i]; | |
| if (!(parseInt(val.now, 10) < now() - 6E4)) { | |
| res[i] = val; | |
| /** @type {boolean} */ | |
| d = true; | |
| } | |
| } | |
| if (d) { | |
| obj[key] = res; | |
| } | |
| } | |
| items = obj; | |
| }; | |
| /** | |
| * @param {?} key | |
| * @return {?} | |
| */ | |
| var cache = function(key) { | |
| if (data.ka && data.ka.id == key) { | |
| return $broadcast(3E5); | |
| } | |
| if (!(key in items)) { | |
| return false; | |
| } | |
| var i; | |
| for (i in items[key]) { | |
| if (deepMatches(items[key][i])) { | |
| return true; | |
| } | |
| } | |
| return false; | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| var detachEvent = function() { | |
| /** @type {number} */ | |
| var result = 0; | |
| var openName = data.ka && data.ka.id; | |
| var name; | |
| for (name in items) { | |
| if (name != openName) { | |
| var i; | |
| for (i in items[name]) { | |
| if (deepMatches(items[name][i])) { | |
| result++; | |
| break; | |
| } | |
| } | |
| } | |
| } | |
| return result; | |
| }; | |
| /** | |
| * @param {?} result | |
| * @return {?} | |
| */ | |
| var successCallback = function(result) { | |
| win(result); | |
| var name; | |
| for (name in items) { | |
| if (!(name in data.pk) || data.Ed.Xg && !(name in seen)) { | |
| var curValue = data.Ka(name); | |
| if (curValue && (!data.ka || name != data.ka.id)) { | |
| /** @type {boolean} */ | |
| var d = false; | |
| var i; | |
| for (i in items[name]) { | |
| if (deepMatches(items[name][i])) { | |
| /** @type {boolean} */ | |
| d = true; | |
| break; | |
| } | |
| } | |
| if (d) { | |
| if (!(name in data.pk)) { | |
| click(data, curValue, "open-chat-thread", jQuery(".contacts-list")); | |
| } | |
| if (!!data.Ed.Xg) { | |
| if (!(name in seen)) { | |
| effect(curValue); | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| if (result) { | |
| defaultDisableHandler(result); | |
| bindBlockClick(result); | |
| } else { | |
| register(); | |
| disable(); | |
| } | |
| return result; | |
| }; | |
| var hasVirtualBindings = callLater(successCallback, 250); | |
| /** | |
| * @param {?} collection | |
| * @param {boolean} dataAndEvents | |
| * @return {undefined} | |
| */ | |
| var win = function(collection, dataAndEvents) { | |
| var length = collection ? collection.find(".presence") : jQuery(".presence"); | |
| var me = jQuery(".contacts"); | |
| var adown = me.get(); | |
| dataAndEvents = dataAndEvents || me.j("active"); | |
| expect(length, function() { | |
| if (dataAndEvents || (!adown || !adown.contains(this))) { | |
| var result = new klass([this]); | |
| if (cache(result.data("id"))) { | |
| if (!result.j("active")) { | |
| result.g("active"); | |
| } | |
| } else { | |
| if (result.j("active")) { | |
| result.k("active"); | |
| } | |
| } | |
| } | |
| }); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var register = function() { | |
| /** | |
| * @param {string} keepData | |
| * @return {?} | |
| */ | |
| function find(keepData) { | |
| return jQuery('.thumbnail .thumbnail-participant-list[data-id="' + keepData + '"]'); | |
| } | |
| var map = {}; | |
| expect(jQuery(".thumbnail-participant"), function() { | |
| var c = jQuery(this); | |
| var option = c.data("user-id"); | |
| var file = c.data("session-id"); | |
| c = c.parent(".thumbnail-participant-list").data("id"); | |
| if (!(c in map)) { | |
| /** @type {Array} */ | |
| map[c] = []; | |
| } | |
| map[c].push([option, file]); | |
| }); | |
| /** @type {Array} */ | |
| var ready = []; | |
| var item; | |
| for (item in items) { | |
| ready.push(item); | |
| } | |
| groupBy(data, ready); | |
| var obj = {}; | |
| /** @type {number} */ | |
| var p = 0; | |
| for (;p < ready.length;p++) { | |
| item = ready[p]; | |
| var timeMap = {}; | |
| var k; | |
| for (k in items[item]) { | |
| var c = items[item][k]; | |
| if ("document-mode" == c.mode || "thread-mode" == c.mode) { | |
| if (deepMatches(c) || "True" == c.active2 && parseInt(c.now, 10) > now() - 2E4) { | |
| /** @type {Array} */ | |
| var list = [c.doc_id]; | |
| if (c.folder_union && "" != c.folder_union) { | |
| c = c.folder_union.split(","); | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < c.length;i++) { | |
| list.push(c[i]); | |
| } | |
| } | |
| /** @type {number} */ | |
| c = 0; | |
| for (;c < list.length;c++) { | |
| var name = list[c]; | |
| if (!(!params.Ka(name) && !res.Ka(name))) { | |
| if (!!name) { | |
| if (!(name in timeMap)) { | |
| if (!(name in obj)) { | |
| /** @type {Array} */ | |
| obj[name] = []; | |
| } | |
| if (!(3 <= obj[name].length)) { | |
| obj[name].push([item, k]); | |
| /** @type {boolean} */ | |
| timeMap[name] = true; | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| headers = obj; | |
| for (name in obj) { | |
| var node = find(name); | |
| if (!node.empty()) { | |
| var b = obj[name]; | |
| /** | |
| * @return {undefined} | |
| */ | |
| ready = function() { | |
| /** @type {number} */ | |
| var bi = 0; | |
| for (;bi < b.length;bi++) { | |
| createGrid(node, b[bi][0], b[bi][1]); | |
| } | |
| }; | |
| if (name in map) { | |
| item = map[name]; | |
| delete map[name]; | |
| if (!isObject(b, item)) { | |
| compileNode(node); | |
| ready(); | |
| } | |
| } else { | |
| ready(); | |
| } | |
| } | |
| } | |
| for (name in map) { | |
| compileNode(find(name)); | |
| } | |
| }; | |
| /** | |
| * @param {?} element | |
| * @param {number} size | |
| * @param {string} height | |
| * @return {undefined} | |
| */ | |
| var createGrid = function(element, size, height) { | |
| var input = data.Ka(size); | |
| if (input) { | |
| var targetNode = createElement("div", "thumbnail-participant").append(isEventSupported(input, true)).setData("user-id", size).setData("session-id", height).setData("id", size + "-" + height); | |
| expect(element, function(deepDataAndEvents, dataAndEvents) { | |
| jQuery(this).append(0 == dataAndEvents ? targetNode : targetNode.ya()); | |
| }); | |
| } | |
| }; | |
| /** | |
| * @param {?} o | |
| * @return {undefined} | |
| */ | |
| var compileNode = function(o) { | |
| o.find(".thumbnail-participant").remove(); | |
| }; | |
| /** | |
| * @param {Object} i | |
| * @return {undefined} | |
| */ | |
| var defaultDisableHandler = function(i) { | |
| expect(i ? i.find(".contact-status") : jQuery(".contact-status"), function() { | |
| var self = jQuery(this); | |
| var a = self.data("id"); | |
| a = resize(a); | |
| if (self.text() != a) { | |
| self.ca(a); | |
| } | |
| }); | |
| }; | |
| /** | |
| * @param {Object} div | |
| * @return {undefined} | |
| */ | |
| var bindBlockClick = function(div) { | |
| expect(div ? div.find(".contact") : jQuery(".contact"), function() { | |
| var result = jQuery(this); | |
| var name = result.data("id"); | |
| name = inArray(data.Ka(name)); | |
| if (!(name && result.j(name))) { | |
| result.k("web").k("phone"); | |
| if (name) { | |
| result.g(name); | |
| } | |
| } | |
| }); | |
| }; | |
| /** | |
| * @param {number} a | |
| * @return {undefined} | |
| */ | |
| var disable = function(a) { | |
| if (a = a || !jQuery(".contacts.active").empty()) { | |
| init_internal(jQuery(".contacts-list .contact"), false); | |
| } | |
| defaultDisableHandler(void 0); | |
| bindBlockClick(void 0); | |
| if (data.Ed.Xg) { | |
| init_internal(jQuery(".frequent-contacts .contact"), true); | |
| init_internal(jQuery(".other-contacts .contact"), true); | |
| var $this = jQuery(".chat-list .online-view .online .chat-list-section"); | |
| var form = jQuery(".chat-list .online-view .offline .chat-list-section"); | |
| expect($this.find(".contact"), function() { | |
| var item = jQuery(this); | |
| if (!item.j("active")) { | |
| form.append(item); | |
| } | |
| }); | |
| expect(form.find(".contact"), function() { | |
| var item = jQuery(this); | |
| if (item.j("active")) { | |
| $this.append(item); | |
| } | |
| }); | |
| init_internal($this.find(".contact"), false); | |
| init_internal(form.find(".contact"), false); | |
| if (start($this, ".contact")) { | |
| jQuery(".chat-list .online-view .online").show(); | |
| } else { | |
| jQuery(".chat-list .online-view .online").ua(); | |
| } | |
| if (start(form, ".contact")) { | |
| jQuery(".chat-list .online-view .offline").show(); | |
| } else { | |
| jQuery(".chat-list .online-view .offline").ua(); | |
| } | |
| } | |
| a = detachEvent(); | |
| var current = jQuery("#inbox nav .button.contacts,#inbox nav .button.chat"); | |
| var params = current.find(".count"); | |
| if (params.text() != a) { | |
| params.ca(a); | |
| addClass(addClass(current, "numbered", 0 < a), "small", 10 <= a); | |
| } | |
| current = jQuery(".online-count"); | |
| if (current.text() != a) { | |
| addClass(addClass(current.ca(a), "none", 1 > a), "small", 10 <= a); | |
| } | |
| addClass(jQuery(".chat-list.dialog"), "online-enabled", 0 < a); | |
| }; | |
| /** | |
| * @param {string} results | |
| * @param {boolean} recurring | |
| * @return {undefined} | |
| */ | |
| var init_internal = function(results, recurring) { | |
| /** | |
| * @param {Object} p | |
| * @param {Object} e | |
| * @return {?} | |
| */ | |
| function cycle(p, e) { | |
| var a = r[p[type]]; | |
| var b = r[e[type]]; | |
| return a.ud && !b.ud ? -1 : !a.ud && b.ud ? 1 : a.mg != b.mg ? a.mg < b.mg ? 1 : -1 : a.name ? b.name ? mk_block(a.name, b.name) : -1 : 1; | |
| } | |
| /** | |
| * @param {Object} s | |
| * @param {Object} data | |
| * @return {?} | |
| */ | |
| function message(s, data) { | |
| var a = r[s[type]]; | |
| var b = r[data[type]]; | |
| return a.mg != b.mg ? a.mg < b.mg ? 1 : -1 : a.ud && !b.ud ? -1 : !a.ud && b.ud || !a.name ? 1 : b.name ? mk_block(a.name, b.name) : -1; | |
| } | |
| /** @type {string} */ | |
| var type = "contactDataIndex"; | |
| /** @type {Array} */ | |
| var r = Array(results.length()); | |
| expect(results, function(item, name) { | |
| /** @type {number} */ | |
| item[type] = name; | |
| var object = jQuery(item); | |
| var match = object.data("id"); | |
| var target = data.Ka(match); | |
| r[name] = { | |
| ud : object.j("active"), | |
| mg : data.Vi(match), | |
| name : target ? target.name.toLowerCase() : null | |
| }; | |
| }); | |
| results.sort(recurring ? message : cycle); | |
| }; | |
| /** | |
| * @param {string} value | |
| * @return {?} | |
| */ | |
| var resize = function(value) { | |
| if ("null" == value) { | |
| return ""; | |
| } | |
| /** @type {boolean} */ | |
| var err = false; | |
| var name; | |
| for (name in items[value]) { | |
| var me = items[value][name]; | |
| if (deepMatches(me) && (err = true, "document-mode" == me.mode || "thread-mode" == me.mode)) { | |
| var parent = params.Ka(me.doc_id); | |
| if (parent) { | |
| return value = parent.title, "True" == me.editing ? callback('Editing "%(title)s"', { | |
| title : value | |
| }) : callback('Viewing "%(title)s"', { | |
| title : value | |
| }); | |
| } | |
| } | |
| } | |
| if (!err) { | |
| if (data.ka) { | |
| if (data.ka.id == value) { | |
| err = $broadcast(3E5); | |
| } | |
| } | |
| } | |
| return err ? callback("Online") : value in valueToItem && valueToItem[value].last_active ? (me = log(new Date(Math.floor(parseInt(valueToItem[value].last_active, 10) - delta)), "abbr", false), callback("Online %(ago)s", { | |
| ago : me | |
| })) : callback("Offline"); | |
| }; | |
| /** | |
| * @param {Object} item | |
| * @return {?} | |
| */ | |
| var inArray = function(item) { | |
| if (!item) { | |
| return null; | |
| } | |
| /** @type {number} */ | |
| var closingAnimationTime = item.push ? 1 : 0; | |
| var id; | |
| for (id in items[item.id]) { | |
| var existing = items[item.id][id]; | |
| if (deepMatches(existing)) { | |
| existing = existing.session_type; | |
| if ("iphone" == existing || "android_phone" == existing) { | |
| /** @type {number} */ | |
| closingAnimationTime = Math.max(closingAnimationTime, 1); | |
| } else { | |
| if ("ipad" == existing || "android_tablet" == existing) { | |
| /** @type {number} */ | |
| closingAnimationTime = Math.max(closingAnimationTime, 2); | |
| } else { | |
| if ("web" == existing) { | |
| /** @type {number} */ | |
| closingAnimationTime = Math.max(closingAnimationTime, 3); | |
| } | |
| } | |
| } | |
| } | |
| } | |
| switch(closingAnimationTime) { | |
| case 1: | |
| return "phone"; | |
| case 2: | |
| return "tablet"; | |
| case 3: | |
| return "web"; | |
| default: | |
| return null; | |
| } | |
| }; | |
| var throttledUpdate = callLater(function() { | |
| if (element && element.Er()) { | |
| var item = encodeURIComponent(); | |
| if (item) { | |
| /** @type {Array} */ | |
| var b = []; | |
| var name; | |
| for (name in item.bb) { | |
| var bi = item.bb[name]; | |
| if (bi.Pc()) { | |
| b.push(bi); | |
| } | |
| } | |
| if (b && 0 != b.length) { | |
| name = new ref; | |
| /** @type {number} */ | |
| bi = 0; | |
| for (;bi < b.length;++bi) { | |
| var self = b[bi]; | |
| if (!(self.kc() || (self.qa() || (self.type() != expectedNumberOfNonCommentArgs || (enc(self, t1) || enc(self, attributes)))))) { | |
| if (self instanceof list && self.cb()) { | |
| /** @type {boolean} */ | |
| var prefix = false; | |
| /** @type {number} */ | |
| var node = 0; | |
| for (;node < self.lb().length;++node) { | |
| var _node = self.lb()[node]; | |
| if (_node.kc() || _node.qa()) { | |
| /** @type {boolean} */ | |
| prefix = true; | |
| } | |
| } | |
| if (prefix) { | |
| continue; | |
| } | |
| } | |
| prefix = self.yi || self.xf(); | |
| if (999 != prefix % 1E3) { | |
| node = self.za(); | |
| if (self instanceof Constructor) { | |
| node = node.ya(); | |
| } | |
| origFindId(node, 22, true); | |
| node.qm(); | |
| node.om(); | |
| isArray(node, 20); | |
| self.yi = prefix + 1; | |
| node.Xb(prefix + 1); | |
| name.mc(node); | |
| } | |
| } | |
| } | |
| if (0 != name.li()) { | |
| element.rr(item.tc() || "", JSON.stringify({ | |
| type : "sections", | |
| user_id : data.ka.id, | |
| session_id : _isInstance(), | |
| document_id : type(item), | |
| thread_id : item.tc(), | |
| document_data : stylize(name) | |
| })); | |
| } | |
| } | |
| } | |
| } | |
| }, 100); | |
| attempt(function() { | |
| createDom(li, 5E3); | |
| createDom(function() { | |
| if (isFn()) { | |
| successCallback(); | |
| } | |
| }, 1E4); | |
| nextTick(data, successCallback); | |
| }); | |
| var uidList = {}; | |
| var resourceCache = {}; | |
| /** @type {number} */ | |
| var exponent = 0; | |
| /** @type {boolean} */ | |
| var Zp = false; | |
| /** @type {boolean} */ | |
| var $p = false; | |
| /** | |
| * @param {string} value | |
| * @param {string} name | |
| * @param {string} ret | |
| * @param {Function} onComplete | |
| * @param {string} uid | |
| * @param {Function} onReady | |
| * @param {number} atts | |
| * @param {boolean} recurring | |
| * @param {Function} method | |
| * @param {Function} parentRequire | |
| * @return {undefined} | |
| */ | |
| var load = function(value, name, ret, onComplete, uid, onReady, atts, recurring, method, parentRequire) { | |
| /** @type {string} */ | |
| var dir = ("https:" == window.location.protocol ? "wss://" : "ws://") + ("" == value ? window.location.hostname : value) + ":" + ("" == ret ? window.location.port : ret); | |
| /** @type {string} */ | |
| dir = dir + name; | |
| if (onReady) { | |
| dir += "?" + insertBefore(onReady()); | |
| } | |
| console.log("Websocket: Connecting to " + dir); | |
| fetchText(); | |
| /** @type {WebSocket} */ | |
| var me = new WebSocket(dir); | |
| /** @type {WebSocket} */ | |
| uidList[uid] = me; | |
| exponent++; | |
| addEvent(me, "open", function() { | |
| console.log("Websocket: Connected"); | |
| errcb(); | |
| /** @type {number} */ | |
| exponent = 0; | |
| /** @type {boolean} */ | |
| Zp = true; | |
| if (parentRequire) { | |
| parentRequire(); | |
| } | |
| delete resourceCache[uid]; | |
| }); | |
| if (true != recurring) { | |
| addEvent(me, "close", function(error) { | |
| /** @type {boolean} */ | |
| var q = true === me.my; | |
| if (me.Wu) { | |
| me.Wu(); | |
| } | |
| var element = me.Dz; | |
| if (1008 == error.code) { | |
| console.log("User is not authorized. Reloading window"); | |
| window.location.reload(true); | |
| } | |
| delete uidList[uid]; | |
| if (q) { | |
| console.warn("Websocket closed"); | |
| if (element) { | |
| element(); | |
| } | |
| } else { | |
| if (10 <= exponent && !Zp) { | |
| console.warn("Too many failed web socket connection attempts without ever successfully connecting, giving up."); | |
| /** @type {boolean} */ | |
| $p = true; | |
| } else { | |
| if (!(3 != exponent)) { | |
| if (!Zp) { | |
| if (!_isFunction()) { | |
| onload(get(callback("Could not connect to the Quip server for live updates. You may have a misconfigured HTTP proxy or an unsupported browser. <a href='http://support.quip.com/'>Contact support</a>")), void 0, 6E4); | |
| next("/-/report-websocket-error", {}, function() { | |
| }); | |
| } | |
| } | |
| } | |
| /** @type {number} */ | |
| error = Math.min(3E4, Math.pow(2, exponent) * (atts || 500) + Math.round(1E3 * Math.random())); | |
| console.warn("Websocket closed, reconnecting in " + Math.round(error / 1E3) + " seconds"); | |
| error = push(function() { | |
| if (method) { | |
| method(uid); | |
| } else { | |
| load(value, name, ret, onComplete, uid, onReady, atts); | |
| } | |
| }, error); | |
| resourceCache[uid] = { | |
| hostname : value, | |
| path : name, | |
| port : ret, | |
| /** @type {Function} */ | |
| ee : onComplete, | |
| aA : uid, | |
| /** @type {Function} */ | |
| Ex : onReady, | |
| py : atts, | |
| lw : error, | |
| /** @type {Function} */ | |
| Rz : method, | |
| /** @type {Function} */ | |
| Yx : parentRequire | |
| }; | |
| } | |
| } | |
| }); | |
| } | |
| addEvent(me, "error", function(m) { | |
| console.error("Websocket: Error ", m); | |
| }); | |
| addEvent(me, "message", function(xhr) { | |
| onComplete(onfail(xhr.data)); | |
| }); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| var resolveWith = function() { | |
| return uidList.listen; | |
| }; | |
| /** | |
| * @param {?} uid | |
| * @return {undefined} | |
| */ | |
| var _toString = function(uid) { | |
| if (!$p) { | |
| var resource = resourceCache[uid]; | |
| if (resource) { | |
| delete resourceCache[uid]; | |
| protectedClearTimeout(resource.lw); | |
| load(resource.hostname, resource.path, resource.port, resource.ee, resource.aA, resource.Ex, resource.py, false, resource.Rz, resource.Yx); | |
| } | |
| } | |
| }; | |
| /** | |
| * @param {?} k | |
| * @return {undefined} | |
| */ | |
| var buildJSON = function(k) { | |
| /** @type {function (?): undefined} */ | |
| var callback = redo; | |
| if (!$p) { | |
| var resource = resourceCache[k]; | |
| if (resource) { | |
| resource.lw = push(function() { | |
| callback(k); | |
| }, 1E4); | |
| } | |
| } | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var fetchText = function() { | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var errcb = function() { | |
| }; | |
| /** | |
| * @param {string} cb | |
| * @param {Object} opt_attributes | |
| * @return {undefined} | |
| */ | |
| var maybeCallback = function(cb, opt_attributes) { | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < results.length;i++) { | |
| results[i].Dd(cb, opt_attributes); | |
| } | |
| }; | |
| /** @type {Array} */ | |
| var results = []; | |
| /** | |
| * @param {?} log | |
| * @return {undefined} | |
| */ | |
| var sendLog = function(log) { | |
| if (!value(results, log)) { | |
| results.push(log); | |
| } | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Complex = function() { | |
| /** @type {Array} */ | |
| this.im = []; | |
| /** @type {Array} */ | |
| this.jm = []; | |
| /** @type {Array} */ | |
| this.gm = []; | |
| /** @type {Array} */ | |
| this.hm = []; | |
| /** @type {number} */ | |
| this.jo = 0; | |
| }; | |
| /** | |
| * @param {string} cb_ | |
| * @param {Object} opt_attributes | |
| * @return {undefined} | |
| */ | |
| Complex.prototype.Dd = function(cb_, opt_attributes) { | |
| this.im.push(cb_); | |
| this.jm.push(opt_attributes || {}); | |
| startServer(this); | |
| }; | |
| /** | |
| * @param {number} target | |
| * @param {number} b | |
| * @param {number} a | |
| * @return {undefined} | |
| */ | |
| Complex.prototype.Xq = function(target, b, a) { | |
| this.gm.push(target); | |
| this.hm.push(a - b); | |
| startServer(this); | |
| }; | |
| /** | |
| * @param {?} server | |
| * @return {undefined} | |
| */ | |
| var startServer = function(server) { | |
| if (!server.ds) { | |
| if (server.jo) { | |
| protectedClearTimeout(server.jo); | |
| } | |
| server.jo = push(bind(function() { | |
| /** @type {boolean} */ | |
| this.ds = true; | |
| /** @type {number} */ | |
| this.jo = 0; | |
| var ast = this.im; | |
| var callArgs = this.jm; | |
| /** @type {Array} */ | |
| var encodedItemArray = []; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < callArgs.length;i++) { | |
| encodedItemArray.push(encodeURIComponent(JSON.stringify(callArgs[i]))); | |
| } | |
| var l = this.gm; | |
| var position = this.hm; | |
| /** @type {Array} */ | |
| this.im = []; | |
| /** @type {Array} */ | |
| this.jm = []; | |
| /** @type {Array} */ | |
| this.gm = []; | |
| /** @type {Array} */ | |
| this.hm = []; | |
| next("/-/metrics", { | |
| metric_names : ast.join(","), | |
| metric_args : encodedItemArray.join(","), | |
| perf_metrics : l.join(","), | |
| perf_times : position.join(",") | |
| }, bind(function() { | |
| /** @type {boolean} */ | |
| this.ds = false; | |
| }, this), bind(function() { | |
| /** @type {boolean} */ | |
| this.ds = false; | |
| toggleClass(this.im, ast); | |
| toggleClass(this.jm, callArgs); | |
| toggleClass(this.gm, l); | |
| toggleClass(this.hm, position); | |
| return false; | |
| }, this)); | |
| }, server), 11E3); | |
| } | |
| }; | |
| var viewport = new Complex; | |
| sendLog(viewport); | |
| attempt(function() { | |
| /** | |
| * @param {string} keepData | |
| * @param {Object} value | |
| * @return {undefined} | |
| */ | |
| underscore = function(keepData, value) { | |
| if (500 <= value.status) { | |
| if ("/-/metrics" != keepData) { | |
| maybeCallback("server_error", { | |
| status : value.status.toString() | |
| }); | |
| } | |
| } | |
| }; | |
| }); | |
| /** | |
| * @param {?} t | |
| * @param {?} s | |
| * @param {?} level | |
| * @return {undefined} | |
| */ | |
| var subdivide = function(t, s, level) { | |
| this.pz = t; | |
| this.hw = s; | |
| if (!(level in levels)) { | |
| /** @type {Array} */ | |
| levels[level] = []; | |
| } | |
| levels[level].push(this); | |
| }; | |
| var levels = {}; | |
| new subdivide(0, 0, 7); | |
| new subdivide(1, 0, 4); | |
| new subdivide(2, 1, 4); | |
| new subdivide(3, 0, nodeRequest); | |
| new subdivide(4, 1, nodeRequest); | |
| new subdivide(5, 2, 5); | |
| new subdivide(6, 2, nodeRequest); | |
| new subdivide(7, 8, nodeRequest); | |
| new subdivide(8, 8, channelName); | |
| new subdivide(15, 17, 18); | |
| new subdivide(18, 17, 23); | |
| new subdivide(16, 19, 20); | |
| new subdivide(19, 8, 24); | |
| new subdivide(11, 11, 12); | |
| var texturesMap = {}; | |
| /** | |
| * @param {number} expectedNumberOfNonCommentArgs | |
| * @param {number} b | |
| * @return {undefined} | |
| */ | |
| var pub = function(expectedNumberOfNonCommentArgs, b) { | |
| if (getNativeElement()) { | |
| console.timeStamp(forIn(deps, expectedNumberOfNonCommentArgs)); | |
| } | |
| if (!b) { | |
| b = now(); | |
| } | |
| /** @type {number} */ | |
| texturesMap[expectedNumberOfNonCommentArgs] = b; | |
| var codeSegments = levels[expectedNumberOfNonCommentArgs] || []; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < codeSegments.length;i++) { | |
| var map = codeSegments[i]; | |
| if (map.hw in texturesMap) { | |
| zeropad(map.pz, texturesMap[map.hw], b); | |
| } | |
| } | |
| }; | |
| /** | |
| * @param {number} expectedNumberOfNonCommentArgs | |
| * @return {undefined} | |
| */ | |
| var makeRequest = function(expectedNumberOfNonCommentArgs) { | |
| if (isFn()) { | |
| synchronize(function() { | |
| finish(function() { | |
| pub(expectedNumberOfNonCommentArgs); | |
| }, true); | |
| }); | |
| } | |
| }; | |
| /** | |
| * @param {number} attributes | |
| * @param {number} needle | |
| * @param {number} x | |
| * @return {undefined} | |
| */ | |
| var zeropad = function(attributes, needle, x) { | |
| if (needle >= itemWidth) { | |
| needle -= itemWidth; | |
| x -= itemWidth; | |
| } | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < results.length;i++) { | |
| results[i].Xq(attributes, needle, x); | |
| } | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var _isLocalStorageAvailable = function() { | |
| delete texturesMap[0]; | |
| delete texturesMap[1]; | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var sel = function() { | |
| if ("clientperfExternalTimings" in window) { | |
| /** @type {number} */ | |
| var conditionIndex = 0; | |
| for (;conditionIndex < clientperfExternalTimings.length;conditionIndex++) { | |
| pub(clientperfExternalTimings[conditionIndex][0], clientperfExternalTimings[conditionIndex][1]); | |
| } | |
| /** @type {Array} */ | |
| clientperfExternalTimings = []; | |
| } | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var date = function() { | |
| /** | |
| * @param {number} opt_attributes | |
| * @param {?} table | |
| * @return {undefined} | |
| */ | |
| function format(opt_attributes, table) { | |
| /** @type {(Array.<(PerformanceEntry|null)>|null)} */ | |
| var t = window.performance.getEntriesByName(table); | |
| if (t.length) { | |
| /** @type {(PerformanceEntry|null)} */ | |
| t = t[0]; | |
| zeropad(opt_attributes, t.startTime, t.responseEnd); | |
| } | |
| } | |
| var j = jQuery("link[rel=stylesheet]"); | |
| if (!j.empty()) { | |
| format(9, j.get().href); | |
| } | |
| j = jQuery("script[data-js-client-hash='" + getCacheKey() + "']"); | |
| if (!j.empty()) { | |
| format(10, j.get().src); | |
| } | |
| }; | |
| /** @type {number} */ | |
| var itemWidth = 0; | |
| if (window.performance && window.performance.timing) { | |
| /** @type {PerformanceTiming} */ | |
| var timing = window.performance.timing; | |
| /** @type {number} */ | |
| itemWidth = timing.navigationStart; | |
| pub(0, timing.navigationStart); | |
| pub(1, timing.domLoading); | |
| if (window.performance.getEntriesByName) { | |
| push(date, 1E4); | |
| } | |
| } | |
| attempt(sel); | |
| append("clientperf.consumeExternalTimings", sel); | |
| /** | |
| * @param {Function} compareFn | |
| * @return {undefined} | |
| */ | |
| binarySearch_ = function(compareFn) { | |
| pub(6); | |
| compareFn(); | |
| pub(7); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| fetchText = function() { | |
| pub(11); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| errcb = function() { | |
| pub(12); | |
| }; | |
| var cpu; | |
| /** @type {string} */ | |
| var argumentIndex = ""; | |
| /** @type {number} */ | |
| var startIdx = 0; | |
| /** @type {number} */ | |
| var leadInStartTime = 0; | |
| /** @type {string} */ | |
| var retVal = ""; | |
| /** @type {string} */ | |
| var fragment = ""; | |
| /** @type {string} */ | |
| var strValue = ""; | |
| /** @type {boolean} */ | |
| var Fq = false; | |
| var ex_ctx = {}; | |
| /** @type {boolean} */ | |
| var component = false; | |
| var _this = {}; | |
| /** @type {number} */ | |
| var pause_ref_count = 0; | |
| /** @type {Array} */ | |
| var eventPath = []; | |
| /** @type {Array} */ | |
| var ca = []; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var sendEvent = function() { | |
| if (isFn() && $broadcast(3E5)) { | |
| pass(ex_ctx.thread_id, ex_ctx.message_sequence); | |
| ex_ctx = {}; | |
| } else { | |
| push(sendEvent, 1E3); | |
| } | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var wrapper = function() { | |
| argumentIndex = S4() + S4() + S4(); | |
| /** @type {string} */ | |
| var udataCur = window.location.hostname; | |
| /** @type {string} */ | |
| var promise = "443"; | |
| /** @type {string} */ | |
| var env = "0"; | |
| if ("9010" == window.location.port) { | |
| /** @type {string} */ | |
| promise = "9030"; | |
| } | |
| if ("staging.quip.com" == window.location.hostname || "dirt.quip.com" == window.location.hostname) { | |
| /** @type {string} */ | |
| promise = "8443"; | |
| } | |
| if ("" != fragment) { | |
| udataCur = fragment; | |
| } | |
| if ("" != strValue) { | |
| env = strValue; | |
| } | |
| load(udataCur, "/-/listen/" + env, promise, onComplete, "listen", onReady, 1E3, false, redo, renderCallback); | |
| createDom(function() { | |
| if (!(6E4 >= now() - leadInStartTime)) { | |
| console.error("Too long since last heartbeat"); | |
| var srv = resolveWith(); | |
| if (srv) { | |
| cloudinary_url(false); | |
| srv.close(); | |
| } | |
| } | |
| }, 6E4); | |
| createDom(resolve, 1E4); | |
| createDom(deferred, 1E3); | |
| }; | |
| /** | |
| * @param {?} obj | |
| * @return {undefined} | |
| */ | |
| var redo = function(obj) { | |
| if ($broadcast(3E5)) { | |
| _toString(obj); | |
| } else { | |
| console.warn("Browser inactive, not reconnecting, checking back in 10 seconds."); | |
| buildJSON(obj); | |
| } | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var renderCallback = function() { | |
| var settings = resolveWith(); | |
| call(opts, "listen_connect", { | |
| url : settings.URL | |
| }); | |
| /** @type {function (): undefined} */ | |
| settings.Wu = image; | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var image = function() { | |
| call(opts, "listen_disconnect", { | |
| url : resolveWith().URL | |
| }); | |
| cloudinary_url(false); | |
| }; | |
| /** | |
| * @param {Object} elems | |
| * @return {undefined} | |
| */ | |
| var onComplete = function(elems) { | |
| if (elems) { | |
| if (67 == elems.type) { | |
| var v = encodeURIComponent(); | |
| if (v && v.tf()) { | |
| v.save(function() { | |
| window.location.reload(true); | |
| }, true); | |
| } else { | |
| window.location.reload(true); | |
| } | |
| } | |
| if (72 == elems.type) { | |
| /** @type {string} */ | |
| window.location = "/"; | |
| } | |
| if (69 == elems.type) { | |
| onData(elems); | |
| } else { | |
| if (null == elems.compound_checksum || elems.type && 68 != elems.type) { | |
| if (73 == elems.type) { | |
| console.log("Websocket: backlog done"); | |
| cloudinary_url(true); | |
| } | |
| if (74 == elems.type) { | |
| console.log("Websocket: post-backlog queue done"); | |
| } | |
| if (0 < pause_ref_count) { | |
| showList(elems); | |
| ca.push(elems); | |
| } else { | |
| setup(elems); | |
| } | |
| if (elems.listen_cursor) { | |
| /** @type {number} */ | |
| v = parseInt(elems.listen_cursor, 10); | |
| if (v <= retVal) { | |
| call(opts, "listen_cursor_decrease", { | |
| listen_cursor : retVal, | |
| new_listen_cursor : v | |
| }); | |
| } else { | |
| retVal = elems.listen_cursor; | |
| } | |
| } | |
| } else { | |
| console.log("Websocket: heartbeat, checksum=" + elems.compound_checksum + ", dirty=" + elems.compound_checksum_dirty + ", time=" + (new Date).toTimeString()); | |
| leadInStartTime = now(); | |
| } | |
| } | |
| } | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var processOne = function() { | |
| pause_ref_count++; | |
| eventPath.push(push(function() { | |
| call(opts, "unbalanced_listen_pause", { | |
| pause_ref_count : pause_ref_count | |
| }); | |
| }, 72E3)); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var loadNext = function() { | |
| if (1 == pause_ref_count) { | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < ca.length;i++) { | |
| setup(ca[i]); | |
| } | |
| /** @type {Array} */ | |
| ca = []; | |
| } | |
| if (0 < eventPath.length) { | |
| protectedClearTimeout(eventPath.pop()); | |
| } | |
| pause_ref_count--; | |
| }; | |
| /** | |
| * @param {Object} options | |
| * @return {undefined} | |
| */ | |
| var setup = function(options) { | |
| var s = resetQueues(); | |
| if (cpu) { | |
| var option = cpu; | |
| if (option.il != string) { | |
| if (_setOption(option, options.type)) { | |
| if (option.il == opt_value) { | |
| option.Kc.push(options); | |
| if (!option.Po) { | |
| option.Po = push(bind(option.sy, option), 1E3); | |
| } | |
| } else { | |
| option.Hc([options]); | |
| } | |
| } | |
| } | |
| } | |
| var e; | |
| if (3 == options.type) { | |
| e = jQuery(".messages[data-id='" + options.thread_id + "']"); | |
| killEvent(e); | |
| } | |
| if (1 == options.type) { | |
| if (options.deleted) { | |
| if (options.id == replaceWith()) { | |
| onclick(options.thread_id); | |
| } | |
| } | |
| } | |
| var value; | |
| a: { | |
| if (3 == options.type) { | |
| /** @type {number} */ | |
| option = 0; | |
| for (;option < options.html.length;option++) { | |
| if (value = options.html[option], "message" == value["class"] && -1 != value.html.indexOf("edit-group")) { | |
| value = _callback(options.id); | |
| break a; | |
| } | |
| } | |
| } | |
| /** @type {null} */ | |
| value = null; | |
| } | |
| put(options); | |
| option = isFn() && $broadcast(3E5); | |
| if (3 == options.type && data.ka) { | |
| /** @type {boolean} */ | |
| var optgroup = options.json.author_id == data.ka.id; | |
| if (optgroup) { | |
| jQuery(".messages[data-id='" + options.thread_id + "'] .message.placeholder").remove(); | |
| } | |
| if (!(options.thread_id != html())) { | |
| if (!optgroup) { | |
| if (option) { | |
| pass(options.thread_id, options.sequence); | |
| } else { | |
| if (!ex_ctx.thread_id) { | |
| ex_ctx = { | |
| thread_id : options.thread_id, | |
| message_sequence : options.sequence | |
| }; | |
| push(sendEvent, 1E3); | |
| } | |
| } | |
| } | |
| } | |
| if (options.document_metadata_json) { | |
| if (options.document_id == replaceWith()) { | |
| optgroup = isNaN(options.document_metadata_json, Background); | |
| progress(optgroup); | |
| } | |
| } | |
| } | |
| if (2 == options.type) { | |
| var self = encodeURIComponent(); | |
| if (self) { | |
| if (options.thread_id == self.tc()) { | |
| optgroup = _save(isNaN(options.json, ref), EVENT_READY).Ei; | |
| if (optgroup[0].ba.Ik() == type(self)) { | |
| if (self.io) { | |
| toggleClass(self.io, optgroup); | |
| } else { | |
| self.io = optgroup; | |
| self.uw = push(bind(self.zx, self), 500); | |
| } | |
| } | |
| } | |
| } | |
| } | |
| if (1 == options.type) { | |
| if (options.thread_id == html()) { | |
| if (options.id == replaceWith()) { | |
| optgroup = isNaN(options.metadata_json, Background); | |
| progress(optgroup); | |
| } | |
| } | |
| } | |
| if (0 == options.type) { | |
| if (options.thread_id == html()) { | |
| optgroup = isNaN(options.metadata_json, GameObject); | |
| changeState(optgroup); | |
| } | |
| } | |
| if (71 == options.type) { | |
| if (self = encodeURIComponent()) { | |
| if (options.document_id == type(self)) { | |
| if (get_mangled(self.Gc, 12)) { | |
| optgroup = _save(isNaN(options.document_data, ref), EVENT_READY).Ei; | |
| self.update(optgroup, "transient_sections"); | |
| } | |
| } | |
| } | |
| } | |
| if (5 == options.type) { | |
| optgroup = options.json; | |
| if (data.ka) { | |
| if (optgroup.user_id == data.ka.id) { | |
| countdown(optgroup.thread_id, optgroup.seen_message_sequence); | |
| } | |
| } | |
| if (options.thread_id == html()) { | |
| if (optgroup.user_id == options.user_id) { | |
| if (0 > optgroup.level) { | |
| j(); | |
| } | |
| } | |
| } | |
| } | |
| if (value) { | |
| getValue(options.id, options.thread_id, value); | |
| } | |
| if (65 == options.type) { | |
| /** @type {string} */ | |
| options.now = Math.floor(parseInt(options.now, 10) - delta).toString(); | |
| value = options.user_id; | |
| optgroup = options.session_id; | |
| if (!(parseInt(options.now, 10) < now() - 6E4)) { | |
| if (!(value in items)) { | |
| items[value] = {}; | |
| } | |
| /** @type {Object} */ | |
| items[value][optgroup] = options; | |
| if (option) { | |
| hasVirtualBindings(); | |
| } | |
| } | |
| } else { | |
| if (66 == options.type) { | |
| /** @type {Object} */ | |
| valueToItem[options.user_id] = options; | |
| if (option) { | |
| hasVirtualBindings(); | |
| } | |
| } | |
| } | |
| if (9 == options.type) { | |
| if (option = options.json.user_id, data.ur(option, options.json.affinity), value = options.json.chat_thread_id, optgroup = data, self = optgroup.Ka(option), value) { | |
| optgroup.ak[value] = option; | |
| if (self) { | |
| self.chat_thread_id = value; | |
| } | |
| } else { | |
| var i; | |
| for (i in optgroup.ak) { | |
| if (optgroup.ak[i] == option) { | |
| delete optgroup.ak[i]; | |
| break; | |
| } | |
| } | |
| if (self) { | |
| /** @type {null} */ | |
| self.chat_thread_id = null; | |
| } | |
| } | |
| } | |
| /** @type {boolean} */ | |
| value = false; | |
| if (options.html) { | |
| /** @type {number} */ | |
| i = 0; | |
| for (;option = options.html[i];i++) { | |
| if ("thumbnail-stack" == option["class"]) { | |
| /** @type {boolean} */ | |
| value = true; | |
| } | |
| } | |
| } | |
| if (value) { | |
| register(); | |
| } | |
| if (e) { | |
| warn_unreachable(e); | |
| } | |
| /** @type {boolean} */ | |
| value = e = false; | |
| if (options.html) { | |
| /** @type {number} */ | |
| i = 0; | |
| for (;option = options.html[i];i++) { | |
| if ("remove" == option.action) { | |
| if ("snippet" == option["class"]) { | |
| /** @type {boolean} */ | |
| e = true; | |
| } else { | |
| if ("thumbnail-stack" == option["class"]) { | |
| /** @type {boolean} */ | |
| value = true; | |
| } | |
| } | |
| } | |
| } | |
| } | |
| if (e) { | |
| newBindings(); | |
| } | |
| if (value) { | |
| clearSelection(); | |
| } | |
| e = resetQueues(); | |
| if (33 < e - s) { | |
| console.warn(e - s + "ms to process " + page(options.type) + " message", options); | |
| } | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| var onReady = function() { | |
| var pluginResult = {}; | |
| if (retVal) { | |
| pluginResult.listen_cursor = retVal; | |
| } | |
| if (Zp) { | |
| if ("desktop-mode" == (routine() || execCommand())) { | |
| pluginResult.folder_id = floor(); | |
| } | |
| } | |
| if (Fq) { | |
| /** @type {number} */ | |
| pluginResult.force_send_inbox_and_browser = 1; | |
| } | |
| if (_isFunction()) { | |
| if (setAttribute()) { | |
| pluginResult.secret_path = setAttribute(); | |
| } | |
| if (actual.Aa()) { | |
| pluginResult.secret_object_id = actual.Aa(); | |
| } | |
| } | |
| return pluginResult; | |
| }; | |
| /** | |
| * @param {Object} element | |
| * @return {undefined} | |
| */ | |
| var resolve = function(element) { | |
| if (!info()) { | |
| var i = now(); | |
| if (1E3 > i - startIdx) { | |
| if (!component) { | |
| /** @type {boolean} */ | |
| component = true; | |
| push(slice(resolve, true), 1E3); | |
| } | |
| } else { | |
| if (startIdx = i, element && (component = false), (element = resolveWith()) && !(element.readyState != WebSocket.OPEN || 102400 < element.bufferedAmount)) { | |
| var self = defer(); | |
| var compilerWords = {}; | |
| expect(jQuery(".thread .thread-sharing .folder-row"), function() { | |
| if (jQuery(this).data("path")) { | |
| var codeSegments = jQuery(this).data("path").split(","); | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < codeSegments.length;i++) { | |
| /** @type {boolean} */ | |
| compilerWords[codeSegments[i]] = true; | |
| } | |
| } | |
| }); | |
| /** @type {Array} */ | |
| var assigns = []; | |
| var vvar; | |
| for (vvar in compilerWords) { | |
| if (vvar) { | |
| assigns.push(vvar); | |
| } | |
| } | |
| /** @type {string} */ | |
| vvar = assigns.join(); | |
| element.send(JSON.stringify({ | |
| type : "presence", | |
| user_id : data.ka ? data.ka.id : "", | |
| session_id : _isInstance(), | |
| session_type : "web", | |
| focused : self.focused, | |
| active : self.active, | |
| active2 : self.active2, | |
| editing : self.editing, | |
| mode : execCommand(), | |
| thread_id : html(), | |
| doc_id : replaceWith(), | |
| folder_path : parent(jQuery(".folder")).data("path"), | |
| folder_union : vvar, | |
| lat : null, | |
| lon : null, | |
| now : i, | |
| server_now : Math.floor(i + delta) | |
| })); | |
| } | |
| } | |
| } | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| var defer = function() { | |
| var isActive = $broadcast(3E5); | |
| var active2 = $broadcast(9E5); | |
| var _false = window.document.hasFocus() && isFn(); | |
| /** @type {boolean} */ | |
| var editing = false; | |
| if (encodeURIComponent()) { | |
| if (readFile().ta) { | |
| /** @type {boolean} */ | |
| editing = true; | |
| } | |
| } | |
| return{ | |
| focused : _false, | |
| active : isActive, | |
| active2 : active2, | |
| editing : editing | |
| }; | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var deferred = function() { | |
| var self = defer(); | |
| if (!(_this && (_this.focused == self.focused && (_this.active == self.active && (_this.active2 == self.active2 && _this.editing == self.editing))))) { | |
| resolve(); | |
| } | |
| _this = self; | |
| }; | |
| /** | |
| * @param {string} module | |
| * @param {number} first | |
| * @param {number} namespaces | |
| * @param {boolean} dataAndEvents | |
| * @return {undefined} | |
| */ | |
| var teardown = function(module, first, namespaces, dataAndEvents) { | |
| /** @type {string} */ | |
| retVal = module; | |
| /** @type {number} */ | |
| fragment = first; | |
| /** @type {string} */ | |
| strValue = String(namespaces % 10); | |
| if (dataAndEvents) { | |
| /** @type {boolean} */ | |
| Fq = true; | |
| } | |
| if (module = resolveWith()) { | |
| /** @type {boolean} */ | |
| module.my = true; | |
| /** @type {function (): undefined} */ | |
| module.Dz = wrapper; | |
| cloudinary_url(false); | |
| module.close(); | |
| } else { | |
| if (module = resourceCache.listen) { | |
| delete resourceCache.listen; | |
| } | |
| if (module) { | |
| wrapper(); | |
| } | |
| } | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| var _isInstance = function() { | |
| if (!argumentIndex) { | |
| argumentIndex = S4() + S4() + S4(); | |
| } | |
| return argumentIndex; | |
| }; | |
| append("listen.initialize", function(err, first, i) { | |
| if ("WebSocket" in window) { | |
| if (!(isCORS && 536 > q || external && 11 > intWidth)) { | |
| /** @type {string} */ | |
| retVal = err; | |
| /** @type {string} */ | |
| fragment = first; | |
| /** @type {string} */ | |
| strValue = String(i % 10); | |
| wrapper(); | |
| } | |
| } | |
| }); | |
| gatherStats(function(result) { | |
| result.session_id = argumentIndex; | |
| }); | |
| attempt(function() { | |
| ee.addListener(function(dataAndEvents) { | |
| if (3E5 < dataAndEvents) { | |
| _toString("listen"); | |
| if (data.ka) { | |
| addClass(jQuery(".presence[data-id='" + data.ka.id + "']"), "active", $broadcast(3E5)); | |
| } | |
| resolve(); | |
| } | |
| }); | |
| }); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var change = function() { | |
| this.dh = new Cookie("listen-debug"); | |
| this.il = this.dh.get("mode", getNativeElement() ? opt_value : string); | |
| /** @type {Array} */ | |
| this.Kc = []; | |
| /** @type {number} */ | |
| this.Po = 0; | |
| this.$j = get("<div id='listen-debug' class='debug-bar bottom' data-mousedown='no-caret-move'><div class='logo'>Listen</div><label>Logging: <select data-change='listen-debug-mode' data-mousedown='listen-debug-mode'><option>Disabled</option><option>Buffered</option><option>Immediate</option></select></label><div class='type-filter'><label>Log</label><div class='type-filter-contents'><div><span class='link' data-click='listen-debug-filter-all'>All</span> - <span class='link' data-click='listen-debug-filter-none'>None</span></div></div></div><button data-click='listen-debug-pause'>Pause</button><button data-click='listen-debug-resume'>Resume</button></div>"); | |
| /** @type {boolean} */ | |
| this.$j.find("option").get(this.il).selected = true; | |
| var unlock; | |
| for (unlock in paramType) { | |
| var camelKey = paramType[unlock]; | |
| var value = page(camelKey); | |
| if (value) { | |
| var selected = createElement("input").setAttribute("type", "checkbox").af(camelKey).setData("change", "listen-debug-filter"); | |
| selected.get().checked = _setOption(this, camelKey); | |
| camelKey = createElement("label").append(selected).append(apply(value)); | |
| this.$j.find(".type-filter-contents").append(camelKey); | |
| } | |
| } | |
| if (this.dh.get("visible")) { | |
| enable(this); | |
| } | |
| item.append(this.$j); | |
| }; | |
| /** @type {number} */ | |
| var string = 0; | |
| /** @type {number} */ | |
| var opt_value = 1; | |
| var valuesByKey = { | |
| 65 : false, | |
| 66 : false | |
| }; | |
| /** | |
| * @param {Object} callback | |
| * @return {undefined} | |
| */ | |
| var showList = function(callback) { | |
| var udataCur = cpu; | |
| if (udataCur.il != string) { | |
| if (_setOption(udataCur, callback.type)) { | |
| console.log(page(callback.type) + " message received while paused."); | |
| } | |
| } | |
| }; | |
| /** | |
| * @param {?} value | |
| * @param {string} key | |
| * @return {?} | |
| */ | |
| var _setOption = function(value, key) { | |
| return value.dh.get(key + "-logged", key in valuesByKey ? valuesByKey[key] : true); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| change.prototype.sy = function() { | |
| this.Hc(this.Kc); | |
| /** @type {Array} */ | |
| this.Kc = []; | |
| /** @type {number} */ | |
| this.Po = 0; | |
| }; | |
| /** | |
| * @param {Array} args | |
| * @return {undefined} | |
| */ | |
| change.prototype.Hc = function(args) { | |
| if (1 == args.length) { | |
| var a = args[0]; | |
| console.groupCollapsed("Websocket message (" + page(a.type) + ")"); | |
| var i; | |
| for (i in a) { | |
| console.log(i, a[i]); | |
| } | |
| } else { | |
| var attributes = {}; | |
| /** @type {number} */ | |
| i = 0; | |
| for (;i < args.length;i++) { | |
| a = args[i].type; | |
| attributes[a] = 1 + (attributes[a] || 0); | |
| } | |
| /** @type {string} */ | |
| var e = "(" + args.length + ": "; | |
| /** @type {number} */ | |
| i = 0; | |
| for (a in attributes) { | |
| if (0 < i) { | |
| e += ", "; | |
| } | |
| e += page(parseInt(a, 10)) + "=" + attributes[a]; | |
| i++; | |
| } | |
| console.groupCollapsed("Websocket messages " + (e + ")")); | |
| /** @type {number} */ | |
| i = 0; | |
| for (;i < args.length;i++) { | |
| if (a = args[i], console.log(page(a.type), a), 50 < i) { | |
| console.log("...and " + (args.length - i - 1) + " more messages (omitted)"); | |
| break; | |
| } | |
| } | |
| } | |
| console.groupEnd(); | |
| }; | |
| /** | |
| * @param {?} self | |
| * @return {undefined} | |
| */ | |
| var enable = function(self) { | |
| removeAttr(self.$j, "visible"); | |
| var opt_isDefault = self.$j.j("visible"); | |
| self.dh.set("visible", opt_isDefault); | |
| if (opt_isDefault) { | |
| if (!exec(self.Ci)) { | |
| self.Ci = createDom(bind(self.bs, self), 1E3); | |
| } | |
| } else { | |
| window.clearInterval(self.Ci); | |
| delete self.Ci; | |
| } | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| change.prototype.bs = function() { | |
| addClass(this.$j, "paused", 0 < pause_ref_count); | |
| }; | |
| getEnumerableProperties(_concat(76, function() { | |
| enable(cpu); | |
| return true; | |
| }), 3, "Toggle listen debug controls"); | |
| $("change", "listen-debug-mode", function() { | |
| var item = cpu; | |
| var opt_isDefault = this.get().selectedIndex; | |
| item.il = opt_isDefault; | |
| item.dh.set("mode", opt_isDefault); | |
| return true; | |
| }); | |
| $("mousedown", "listen-debug-mode", function(event) { | |
| cancelEvent(event); | |
| return true; | |
| }); | |
| $("change", "listen-debug-filter", function() { | |
| /** @type {number} */ | |
| var width = parseInt(this.value(), 10); | |
| var opt_isDefault = this.get().checked; | |
| cpu.dh.set(width + "-logged", opt_isDefault); | |
| return true; | |
| }); | |
| $("click", "listen-debug-filter-all", function() { | |
| expect(this.parent(".type-filter-contents").find("input"), function() { | |
| /** @type {boolean} */ | |
| this.checked = true; | |
| cpu.dh.set(this.value + "-logged", true); | |
| }); | |
| return true; | |
| }); | |
| $("click", "listen-debug-filter-none", function() { | |
| expect(this.parent(".type-filter-contents").find("input"), function() { | |
| /** @type {boolean} */ | |
| this.checked = false; | |
| cpu.dh.set(this.value + "-logged", false); | |
| }); | |
| return true; | |
| }); | |
| $("click", "listen-debug-pause", function() { | |
| processOne(); | |
| cpu.bs(); | |
| return true; | |
| }); | |
| $("click", "listen-debug-resume", function() { | |
| loadNext(); | |
| cpu.bs(); | |
| return true; | |
| }); | |
| attempt(function() { | |
| cpu = new change; | |
| }); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var stop = function() { | |
| if (data.Ed.bA) { | |
| /** @type {number} */ | |
| var s = 0; | |
| var sort = data.ka.seen_signals_usec; | |
| expect(jQuery(".signals .signal"), function() { | |
| if (jQuery(this).data("sort") <= sort) { | |
| return false; | |
| } | |
| s++; | |
| if (9 < s) { | |
| return false; | |
| } | |
| }); | |
| addClass(addClass(jQuery("nav .button.signals .unread-badge"), "small", 9 < s), "none", 0 == s).setData("count", s).ca(s); | |
| } | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var callback2 = function() { | |
| if (assertEquals(jQuery("nav .button.signals .unread-badge"), "count")) { | |
| next("/-/seen-signals", {}, function(chat) { | |
| put(chat); | |
| }); | |
| } | |
| }; | |
| /** | |
| * @param {?} num | |
| * @param {?} howMany | |
| * @return {undefined} | |
| */ | |
| var countdown = function(num, howMany) { | |
| expect(jQuery(".signals .signal.unread"), function() { | |
| var doc = jQuery(this); | |
| var docUid = assertEquals(doc, "message-sequence"); | |
| if (doc.data("thread-id") == num) { | |
| if (howMany >= docUid) { | |
| doc.k("unread"); | |
| } | |
| } | |
| }); | |
| }; | |
| $("click", "signal", function(data) { | |
| if (1 == data.button || data.metaKey) { | |
| return true; | |
| } | |
| data = this.data("thread-id"); | |
| var attributes = this.data("message-id"); | |
| var target = this.data("annotation-id"); | |
| if (attributes && target) { | |
| onclick(data, void 0, void 0, function() { | |
| removeEventListener(target, false); | |
| }); | |
| } else { | |
| onclick(data, attributes); | |
| } | |
| callback2(); | |
| return false; | |
| }); | |
| $("scroll", "signals", function() { | |
| if (0.75 < _reorderListItem(jQuery("#signals > .body"))) { | |
| compile("signal-page", "signal", 20, jQuery("#signals > .body")); | |
| } | |
| return false; | |
| }); | |
| $("dialog-customize", "signals", function() { | |
| var sort = data.ka.seen_signals_usec; | |
| jQuery(".signals .signal.unseen").k("unseen"); | |
| expect(jQuery(".signals .signal"), function() { | |
| var result = jQuery(this); | |
| if (result.data("sort") <= sort) { | |
| return false; | |
| } | |
| result.g("unseen"); | |
| }); | |
| callback2(); | |
| return true; | |
| }); | |
| $("dialog-cleanup", "signals", function() { | |
| callback2(); | |
| return true; | |
| }); | |
| /** | |
| * @param {?} d | |
| * @param {Blob} off | |
| * @param {(Element|string)} exports | |
| * @return {undefined} | |
| */ | |
| var b = function(d, off, exports) { | |
| this.yA = d; | |
| /** @type {Blob} */ | |
| this.xA = off; | |
| this.uf = exports || null; | |
| /** @type {boolean} */ | |
| this.ng = false; | |
| /** @type {boolean} */ | |
| this.iu = true; | |
| /** @type {number} */ | |
| this.Aq = 3; | |
| /** @type {boolean} */ | |
| this.vv = true; | |
| /** @type {boolean} */ | |
| this.ru = false; | |
| this.Tq = void 0; | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| b.prototype.types = function() { | |
| return this.yA; | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| b.prototype.hi = function() { | |
| var message; | |
| if (!(message = this.uf)) { | |
| if (!MSG_OFFLINE_STATUS_SYNCING_MESSAGE) { | |
| MSG_OFFLINE_STATUS_SYNCING_MESSAGE = new from; | |
| } | |
| message = MSG_OFFLINE_STATUS_SYNCING_MESSAGE; | |
| } | |
| return message; | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| b.prototype.hl = function() { | |
| return 4; | |
| }; | |
| /** | |
| * @param {string} tileHeight | |
| * @param {?} rows | |
| * @param {?} tileset | |
| * @param {?} l | |
| * @return {undefined} | |
| */ | |
| var Tilemap = function(tileHeight, rows, tileset, l) { | |
| /** @type {string} */ | |
| this.Cb = tileHeight; | |
| this.la = rows; | |
| this.hf = tileset; | |
| this.l = l; | |
| }; | |
| /** | |
| * @param {?} keepData | |
| * @return {?} | |
| */ | |
| Tilemap.prototype.wa = function(keepData) { | |
| return this.Cb == keepData.Cb && (this.la.wa(keepData.la) && (this.hf == keepData.hf && this.l == keepData.l)); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Terminal = function() { | |
| /** @type {null} */ | |
| this.Ih = this.Mb = null; | |
| }; | |
| /** @type {function (): ?} */ | |
| Terminal.prototype.Hr = tmp; | |
| /** @type {function (): ?} */ | |
| Terminal.prototype.Xp = tmp; | |
| /** @type {function (): ?} */ | |
| Terminal.prototype.Gl = tmp; | |
| /** @type {function (): ?} */ | |
| Terminal.prototype.reset = tmp; | |
| /** @type {null} */ | |
| var MSG_OFFLINE_STATUS_SYNCING_MESSAGE = null; | |
| /** | |
| * @param {boolean} recurring | |
| * @return {?} | |
| */ | |
| var animationsDisabled = function(recurring) { | |
| var optgroup = objEquiv(recurring); | |
| if (!optgroup) { | |
| return trimDots(recurring), false; | |
| } | |
| var body = recurring.Cb.hi(); | |
| if (body.Mb && (body.Ih && (body.Mb.wa(recurring) && body.Ih.Tc == optgroup.Tc))) { | |
| return true; | |
| } | |
| var rvar = new ValidationError; | |
| if (optgroup.Tc || recurring.Cb.ng) { | |
| var codeSegments = recurring.Cb.types(optgroup); | |
| var cur = recurring.Cb.hl(optgroup, recurring); | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < codeSegments.length && cur;i++) { | |
| var expectedNumberOfNonCommentArgs = codeSegments[i]; | |
| var options = expectedNumberOfNonCommentArgs in arr2 ? arr2[expectedNumberOfNonCommentArgs].fy : null; | |
| if (options && (options = options.$f(optgroup, recurring, cur), options.length)) { | |
| /** @type {number} */ | |
| cur = cur - options.length; | |
| var elems = new Capture; | |
| elems.mb(expectedNumberOfNonCommentArgs); | |
| /** @type {number} */ | |
| expectedNumberOfNonCommentArgs = 0; | |
| for (;expectedNumberOfNonCommentArgs < options.length;expectedNumberOfNonCommentArgs++) { | |
| elems.vd(options[expectedNumberOfNonCommentArgs] + ""); | |
| } | |
| rvar.ys(elems); | |
| } | |
| } | |
| } | |
| if (!rvar.$t()) { | |
| return trimDots(recurring), false; | |
| } | |
| body.Hr(rvar, recurring, optgroup); | |
| return true; | |
| }; | |
| /** | |
| * @param {?} optgroup | |
| * @param {boolean} recurring | |
| * @return {?} | |
| */ | |
| var $http = function(optgroup, recurring) { | |
| return optgroup.Cb.hi().Xp(optgroup, recurring); | |
| }; | |
| /** @type {RegExp} */ | |
| var exclude = /^[\t-\/:-@\[-`{-~\u2000-\u206F\u2E00-\u2E7F]$/; | |
| /** @type {RegExp} */ | |
| var rparentsprev = /^[a-zA-Z]$/; | |
| /** | |
| * @param {Object} recurring | |
| * @return {?} | |
| */ | |
| var objEquiv = function(recurring) { | |
| var p = recurring.Cb.xA; | |
| if (recurring.l && isArguments(recurring.l)) { | |
| return null; | |
| } | |
| /** @type {(Selection|null)} */ | |
| var range = window.getSelection(); | |
| if (!range || (0 == range.rangeCount || !range.isCollapsed)) { | |
| return null; | |
| } | |
| /** @type {(Range|null)} */ | |
| range = range.getRangeAt(0); | |
| range = nodeAtOffset(range.startContainer, range.startOffset, true); | |
| if (range.la.nodeType != SELECT) { | |
| return null; | |
| } | |
| var text = range.la.nodeValue; | |
| if (range.offset < text.length && !isHTML(text.charAt(range.offset))) { | |
| return null; | |
| } | |
| /** @type {number} */ | |
| var offset = range.offset - 1; | |
| for (;0 < offset && (!exclude.test(text.charAt(offset)) && !isHTML(text.charAt(offset)));) { | |
| offset--; | |
| } | |
| var name = text.charAt(offset); | |
| if ("@" != name) { | |
| if (":" != name) { | |
| if ("\uff1a" != name) { | |
| if (exclude.test(name) || isHTML(name)) { | |
| offset++; | |
| } | |
| } | |
| } | |
| } | |
| var part = text.substring(offset, range.offset); | |
| if (0 == part.length || isHTML(part.charAt(part.length - 1))) { | |
| return null; | |
| } | |
| name = part.charAt(0); | |
| if (value(p, 0) && "@" == name) { | |
| /** @type {number} */ | |
| recurring = 0; | |
| /** @type {number} */ | |
| p = 1; | |
| } else { | |
| if (!value(p, 1) || ":" != name && "\uff1a" != name) { | |
| if (value(p, 2) && (name.toUpperCase() == name && part.length >= recurring.Cb.Aq)) { | |
| /** @type {number} */ | |
| recurring = 2; | |
| /** @type {number} */ | |
| p = 0; | |
| } else { | |
| if (value(p, 3) && (rparentsprev.test(name) && part.length >= recurring.Cb.Aq)) { | |
| /** @type {number} */ | |
| recurring = 3; | |
| /** @type {number} */ | |
| p = 0; | |
| } else { | |
| return null; | |
| } | |
| } | |
| } else { | |
| /** @type {number} */ | |
| p = recurring = 1; | |
| } | |
| } | |
| return{ | |
| co : recurring, | |
| Tc : part.substring(p).toLowerCase(), | |
| prefix : text.substring(0, offset), | |
| kA : text.substring(offset + part.length), | |
| zp : jQuery(range.la) | |
| }; | |
| }; | |
| /** | |
| * @param {?} optgroup | |
| * @return {undefined} | |
| */ | |
| var trimDots = function(optgroup) { | |
| var $ = optgroup.Cb.hi(); | |
| if ($.Mb) { | |
| $.reset(optgroup); | |
| } | |
| if (optgroup.l) { | |
| /** @type {null} */ | |
| optgroup.l.Hh = null; | |
| } | |
| }; | |
| /** | |
| * @param {?} rvar | |
| * @param {?} optgroup | |
| * @param {Object} recurring | |
| * @return {undefined} | |
| */ | |
| var seq = function(rvar, optgroup, recurring) { | |
| if (recurring.hf && recurring.l) { | |
| minify(slice(rvar, optgroup), recurring); | |
| } else { | |
| if (rvar = data.Ka(optgroup)) { | |
| _fn(data.yg(rvar), recurring); | |
| } else { | |
| if (optgroup = params.Ka(optgroup)) { | |
| _fn(params.yg(optgroup), recurring); | |
| } | |
| } | |
| } | |
| }; | |
| /** | |
| * @param {?} callback | |
| * @param {Object} recurring | |
| * @return {undefined} | |
| */ | |
| var minify = function(callback, recurring) { | |
| var text = recurring.l; | |
| var current = callback(recurring.hf); | |
| split(text); | |
| if (isContentHeight) { | |
| if (-1 != desc.indexOf("htcime")) { | |
| finish(spyCall); | |
| } | |
| } | |
| _fn(current.i(), recurring); | |
| show(text, current.i()); | |
| }; | |
| /** | |
| * @param {Object} n | |
| * @param {string} recurring | |
| * @return {undefined} | |
| */ | |
| var _fn = function(n, recurring) { | |
| var value = objEquiv(recurring); | |
| if (value) { | |
| var c = value.zp; | |
| var self = c.parent("[data-input]"); | |
| if (value.prefix) { | |
| apply(value.prefix).insertBefore(c); | |
| } | |
| var f = appendChild(n, SELECT) && 0 == n.text().length; | |
| /** @type {null} */ | |
| var h = null; | |
| if (f) { | |
| h = c; | |
| } else { | |
| if (recurring.Cb.ru) { | |
| switch(value.co) { | |
| case 1: | |
| apply(":").insertBefore(c); | |
| break; | |
| case 0: | |
| apply("@").insertBefore(c); | |
| } | |
| } | |
| n.insertBefore(c); | |
| if (recurring.Cb.iu) { | |
| h = apply("\u00a0"); | |
| h.insertBefore(c); | |
| } else { | |
| /** @type {Object} */ | |
| h = n; | |
| } | |
| c.remove(); | |
| } | |
| value = value.kA.replace(/^\s*/g, ""); | |
| if (0 < value.length) { | |
| parseInt(apply(value), h); | |
| } | |
| if (f) { | |
| c.remove(); | |
| } | |
| trimDots(recurring); | |
| if (!self.empty()) { | |
| obj.input[self.data("input")].call(self, null); | |
| } | |
| } else { | |
| trimDots(recurring); | |
| } | |
| }; | |
| var arr2 = {}; | |
| /** | |
| * @param {number} desiredNonCommentArgIndex | |
| * @param {Node} val | |
| * @param {Function} dataAndEvents | |
| * @return {undefined} | |
| */ | |
| var encodeUriSegment = function(desiredNonCommentArgIndex, val, dataAndEvents) { | |
| arr2[desiredNonCommentArgIndex] = { | |
| fy : val, | |
| /** @type {Function} */ | |
| Pk : dataAndEvents | |
| }; | |
| }; | |
| /** | |
| * @param {?} i | |
| * @param {?} subscript | |
| * @param {?} expr | |
| * @return {undefined} | |
| */ | |
| var sub = function(i, subscript, expr) { | |
| if (i in arr2) { | |
| arr2[i].Pk(subscript, expr); | |
| if (expr.Cb.Tq) { | |
| expr.Cb.Tq(); | |
| } | |
| } | |
| }; | |
| attempt(function() { | |
| buildParams(1, callback("Image"), callback("Upload an image"), slice(flatten, function(classesToRemove) { | |
| var optgroup = token(classesToRemove); | |
| finish(function() { | |
| element.kq(optgroup); | |
| }); | |
| return optgroup; | |
| }), 1); | |
| buildParams(2, callback("Table"), callback("Create a table"), slice(flatten, parseDate), 19); | |
| buildParams(8, callback("Person"), callback("Mention someone"), reversed); | |
| buildParams(9, callback("Documents"), callback("Link to a document"), fromIndex); | |
| buildParams(7, callback("Link"), callback("Link to a web page"), rgb); | |
| buildParams(3, callback("Code [computer software source code]"), callback("Add a code block [computer software source code]"), slice(flatten, setAttributes), 1); | |
| buildParams(4, "Spreadsheet (Early Beta)", callback("Create a spreadsheet"), slice(flatten, cancel), 41, function() { | |
| return data.Ed.dw; | |
| }); | |
| buildParams(5, callback("Participant"), callback("Add a menu of participants"), slice(minify, times), 1, oldconfig); | |
| buildParams(6, "Text Entry", callback("Create a form field"), slice(minify, memory), 1, oldconfig); | |
| buildParams(10, "Action", callback("Create an action button"), slice(minify, dblclick), 1, oldconfig); | |
| encodeUriSegment(256, point, function(index, deepDataAndEvents) { | |
| /** @type {number} */ | |
| index = parseInt(index, 10); | |
| if (shouldSkip(index, deepDataAndEvents)) { | |
| tabs[index].Pk(deepDataAndEvents); | |
| } | |
| }); | |
| }); | |
| var tabs = {}; | |
| /** @type {number} */ | |
| var portionIndex = 0; | |
| /** | |
| * @param {number} expectedNumberOfNonCommentArgs | |
| * @param {string} ready | |
| * @param {string} s | |
| * @param {Function} obj | |
| * @param {number} desiredNonCommentArgIndex | |
| * @param {Function} b | |
| * @return {undefined} | |
| */ | |
| var buildParams = function(expectedNumberOfNonCommentArgs, ready, s, obj, desiredNonCommentArgIndex, b) { | |
| tabs[expectedNumberOfNonCommentArgs] = { | |
| title : ready, | |
| info : s, | |
| /** @type {Function} */ | |
| Pk : obj, | |
| Bt : desiredNonCommentArgIndex || 0, | |
| Kx : b || function() { | |
| return true; | |
| }, | |
| index : portionIndex++ | |
| }; | |
| if (8 != expectedNumberOfNonCommentArgs) { | |
| if (9 != expectedNumberOfNonCommentArgs) { | |
| point.sb.add(ready, expectedNumberOfNonCommentArgs); | |
| } | |
| } | |
| }; | |
| /** | |
| * @param {number} index | |
| * @param {?} deepDataAndEvents | |
| * @return {?} | |
| */ | |
| var shouldSkip = function(index, deepDataAndEvents) { | |
| if (!deepDataAndEvents.hf) { | |
| return false; | |
| } | |
| var tab = tabs[index]; | |
| return tab.Bt && !every(deepDataAndEvents.hf, tab.Bt) ? false : tab.Kx(); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| var oldconfig = function() { | |
| return data.ka.employee; | |
| }; | |
| /** | |
| * @param {(number|string)} name | |
| * @return {?} | |
| */ | |
| var addIndicator = function(name) { | |
| var tab = tabs[name]; | |
| return createElement("div", "object-row command-row acc" + name).setData("id", name).append(createElement("div", "icon")).append(createElement("div", "title").ca(tab.title)).append(createElement("div", "info").ca(tab.info)); | |
| }; | |
| /** | |
| * @param {?} callback | |
| * @param {Object} ret | |
| * @return {undefined} | |
| */ | |
| var flatten = function(callback, ret) { | |
| finish(function() { | |
| var recurring = ret.l; | |
| _fn(apply(""), ret); | |
| split(recurring); | |
| var isArguments = recurring.document.Ma.Og(); | |
| if (!getNodeIndex(recurring)) { | |
| if (!lookupIterator(recurring)) { | |
| complete(xhr(recurring), true); | |
| ret.hf.Ua(recurring, time); | |
| } | |
| } | |
| callback(ret.hf).Ua(); | |
| isArguments(); | |
| }); | |
| }; | |
| /** | |
| * @param {number} n | |
| * @return {?} | |
| */ | |
| var times = function(n) { | |
| n = concat(n, conf.no, null); | |
| n.sa.El(1); | |
| return n; | |
| }; | |
| /** | |
| * @param {number} classesToRemove | |
| * @return {?} | |
| */ | |
| var memory = function(classesToRemove) { | |
| return concat(classesToRemove, conf.oo, null); | |
| }; | |
| /** | |
| * @param {number} element | |
| * @return {?} | |
| */ | |
| var dblclick = function(element) { | |
| return concat(element, conf.lo, null); | |
| }; | |
| /** | |
| * @param {Node} value | |
| * @return {undefined} | |
| */ | |
| var reversed = function(value) { | |
| dump(value.l, which); | |
| }; | |
| /** | |
| * @param {Node} color | |
| * @return {undefined} | |
| */ | |
| var fromIndex = function(color) { | |
| dump(color.l, ru); | |
| }; | |
| /** | |
| * @param {Object} recurring | |
| * @return {undefined} | |
| */ | |
| var rgb = function(recurring) { | |
| _fn(apply(""), recurring); | |
| split(recurring.l); | |
| link(); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Search = function() { | |
| this.sb = new Position([]); | |
| }; | |
| /** | |
| * @param {?} name | |
| * @param {Object} deepDataAndEvents | |
| * @param {number} index | |
| * @return {?} | |
| */ | |
| Search.prototype.$f = function(name, deepDataAndEvents, index) { | |
| /** @type {Array} */ | |
| var arr = []; | |
| if (name.Tc) { | |
| arr = this.sb.$f(name.Tc); | |
| } else { | |
| var chunk; | |
| for (chunk in tabs) { | |
| arr.push(chunk); | |
| } | |
| } | |
| arr = uniq(arr, function(index) { | |
| return shouldSkip(index, deepDataAndEvents); | |
| }); | |
| return arrayRemove(arr, index, function(index, idx) { | |
| return tabs[index].index - tabs[idx].index; | |
| }); | |
| }; | |
| var point = new Search; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var block = function() { | |
| Terminal.call(this); | |
| this.rg = createElement("div", "ac-web-body").setData("instance-id", configList.length); | |
| configList.push(this); | |
| }; | |
| inherits(block, Terminal); | |
| /** @type {Array} */ | |
| var configList = []; | |
| self = block.prototype; | |
| /** @type {function (): ?} */ | |
| self.Ir = tmp; | |
| /** @type {function (): ?} */ | |
| self.gq = tmp; | |
| /** @type {function (): ?} */ | |
| self.hr = tmp; | |
| /** | |
| * @param {?} name | |
| * @param {Object} recurring | |
| * @param {Object} deepDataAndEvents | |
| * @return {undefined} | |
| */ | |
| self.Hr = function(name, recurring, deepDataAndEvents) { | |
| /** @type {Object} */ | |
| this.Mb = recurring; | |
| /** @type {Object} */ | |
| this.Ih = deepDataAndEvents; | |
| removeChild(this.rg); | |
| name = name.xv(); | |
| /** @type {number} */ | |
| recurring = 0; | |
| for (;recurring < name.length;recurring++) { | |
| var codeSegments = name[recurring]; | |
| deepDataAndEvents = codeSegments.ib(); | |
| codeSegments = codeSegments.Oc(); | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < codeSegments.length;i++) { | |
| var key = codeSegments[i]; | |
| var node = visit(deepDataAndEvents, key); | |
| if (node) { | |
| node.setData("mousedown", "no-caret-move").setData("click", "ac-web-select").setData("ac-type", deepDataAndEvents).setData("ac-id", key); | |
| if (0 == recurring) { | |
| if (0 == i) { | |
| node.g("selected"); | |
| } | |
| } | |
| this.rg.append(node); | |
| } else { | |
| console.warn("Could not create result row for " + key); | |
| } | |
| } | |
| } | |
| this.Ir(); | |
| install(this); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| self.reset = function() { | |
| /** @type {null} */ | |
| this.Ih = this.Mb = null; | |
| this.gq(); | |
| }; | |
| /** | |
| * @param {?} name | |
| * @param {boolean} recurring | |
| * @return {?} | |
| */ | |
| self.Xp = function(name, recurring) { | |
| if ("keydown" != recurring.type || (!this.Mb || !this.Mb.wa(name))) { | |
| return false; | |
| } | |
| if (27 == recurring.keyCode) { | |
| return trimDots(name), true; | |
| } | |
| if (13 == recurring.keyCode) { | |
| if (!recurring.shiftKey) { | |
| var t = this.rg.find(".selected"); | |
| if (t.empty()) { | |
| trimDots(name); | |
| } else { | |
| this.En(t); | |
| } | |
| return true; | |
| } | |
| } else { | |
| if (38 == recurring.keyCode || 40 == recurring.keyCode) { | |
| a: { | |
| /** @type {boolean} */ | |
| var child = 38 == recurring.keyCode; | |
| t = this.rg.find(".selected"); | |
| if (child) { | |
| if (child = l(t), !child.empty()) { | |
| t.k("selected"); | |
| child.g("selected"); | |
| } else { | |
| if (name.Cb.vv) { | |
| trimDots(name); | |
| break a; | |
| } | |
| } | |
| } else { | |
| child = t.next(); | |
| if (!child.empty()) { | |
| t.k("selected"); | |
| child.g("selected"); | |
| } | |
| } | |
| install(this); | |
| } | |
| return true; | |
| } | |
| } | |
| return false; | |
| }; | |
| /** | |
| * @param {?} name | |
| * @param {boolean} recurring | |
| * @return {?} | |
| */ | |
| self.Gl = function(name, recurring) { | |
| return(13 != recurring.keyCode || recurring.shiftKey) && 27 != recurring.keyCode; | |
| }; | |
| /** | |
| * @param {Object} deepDataAndEvents | |
| * @param {string} key | |
| * @return {?} | |
| */ | |
| var visit = function(deepDataAndEvents, key) { | |
| /** | |
| * @param {?} o | |
| * @return {?} | |
| */ | |
| function _each(o) { | |
| var optgroup = o.Ka(key); | |
| return optgroup ? o.Jd(optgroup) : null; | |
| } | |
| switch(deepDataAndEvents) { | |
| case 2: | |
| return _each(data); | |
| case 4: | |
| ; | |
| case 128: | |
| return _each(params); | |
| case 8: | |
| return _each(res); | |
| case 256: | |
| return addIndicator(parseInt(key, 10)); | |
| case 512: | |
| return createElement("div", "object-row emoji-row").setData("id", key).append(createElement("div", "picture").append(addTest(key))).append(createElement("div", "title").ca(key.replace(/_/g, " "))).append(createElement("div", "info")); | |
| case 1024: | |
| return _each(model); | |
| } | |
| return null; | |
| }; | |
| /** | |
| * @param {?} event | |
| * @return {undefined} | |
| */ | |
| self.En = function(event) { | |
| sub(assertEquals(event, "ac-type"), event.data("ac-id"), this.Mb); | |
| }; | |
| /** | |
| * @param {?} block | |
| * @return {undefined} | |
| */ | |
| var install = function(block) { | |
| var overBox = block.rg.ga(); | |
| var box = block.rg.find(".selected").ga(); | |
| block.hr(box.top <= overBox.top, box.bottom >= overBox.bottom); | |
| }; | |
| $("click", "ac-web-select", function() { | |
| var parent = this.parent(".ac-web-body"); | |
| configList[assertEquals(parent, "instance-id")].En(this); | |
| return false; | |
| }); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var from = function() { | |
| block.call(this); | |
| this.Ta = new build_gameboard("ac-web-bubble", this.rg, new Tween(this), { | |
| ev : true, | |
| xu : true | |
| }); | |
| this.Ja = new _object(this); | |
| }; | |
| inherits(from, block); | |
| /** | |
| * @return {undefined} | |
| */ | |
| from.prototype.Ir = function() { | |
| if (!this.Ta.Jb()) { | |
| var udataCur = this.Mb.hf ? $$() : item; | |
| this.Ta.show(this.Ja, udataCur); | |
| } | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| from.prototype.gq = function() { | |
| this.Ta.ua(); | |
| }; | |
| /** | |
| * @param {?} name | |
| * @param {boolean} recurring | |
| * @return {undefined} | |
| */ | |
| from.prototype.hr = function(name, recurring) { | |
| addClass(this.Ta.i(), "arrow-selected", this.Ta.cl() ? recurring : name); | |
| }; | |
| /** | |
| * @param {?} elements | |
| * @return {undefined} | |
| */ | |
| from.prototype.En = function(elements) { | |
| if (!this.Mb) { | |
| call(opts, "autocomplete_result_selected_without_context", { | |
| bubble_dom : h(this.Ta.i()), | |
| bubble_in_document : !this.Ta.i().parent("article").empty() | |
| }); | |
| } | |
| from.Ga.En.call(this, elements); | |
| }; | |
| /** | |
| * @param {(Element|string)} newProps | |
| * @return {undefined} | |
| */ | |
| var Tween = function(newProps) { | |
| /** @type {(Element|string)} */ | |
| this.uf = newProps; | |
| }; | |
| inherits(Tween, two); | |
| /** | |
| * @return {?} | |
| */ | |
| Tween.prototype.ef = function() { | |
| var selector = this.uf.Mb; | |
| return selector && selector.hf ? element.ef() : { | |
| bd : 0, | |
| bf : window.innerHeight | |
| }; | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| Tween.prototype.No = function() { | |
| if (this.uf.Mb) { | |
| trimDots(this.uf.Mb); | |
| } | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| Tween.prototype.Os = function() { | |
| install(this.uf); | |
| }; | |
| /** | |
| * @param {(Element|string)} el | |
| * @return {undefined} | |
| */ | |
| var _object = function(el) { | |
| /** @type {(Element|string)} */ | |
| this.uf = el; | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| _object.prototype.Jb = function() { | |
| /** @type {(Selection|null)} */ | |
| var selection = window.getSelection(); | |
| return selection && (0 != selection.rangeCount && (selection.isCollapsed && (this.uf.Mb && objEquiv(this.uf.Mb)))) ? true : false; | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| _object.prototype.ga = function() { | |
| var position = objEquiv(this.uf.Mb); | |
| /** @type {(Range|null)} */ | |
| var rng = document.createRange(); | |
| rng.setStart(position.zp.get(), position.prefix.length); | |
| rng.setEnd(position.zp.get(), position.prefix.length + 1); | |
| /** @type {(ClientRectList|null)} */ | |
| position = rng.getClientRects(); | |
| position = position[position.length - 1]; | |
| position = { | |
| top : position.top - 2, | |
| bottom : position.bottom + 2, | |
| left : position.left, | |
| right : position.right | |
| }; | |
| /** @type {number} */ | |
| position.width = position.right - position.left; | |
| /** @type {number} */ | |
| position.height = position.bottom - position.top; | |
| return position; | |
| }; | |
| /** @type {number} */ | |
| var t1 = 10; | |
| /** @type {number} */ | |
| var attributes = 13; | |
| var testSource = { | |
| CLASS : 11, | |
| TYPE : 9, | |
| DELETED : 3, | |
| CONTENT : 12, | |
| STYLE : t1, | |
| STATUS : 15, | |
| PARENTS : attributes, | |
| ATTRIBUTES : 16, | |
| POSITION : 8, | |
| ALT_RTML : 14 | |
| }; | |
| /** @type {Array} */ | |
| var head = [11, 9, 3, 12]; | |
| /** @type {Array} */ | |
| var buf = [t1, 15, attributes, 16, 8]; | |
| /** @type {Array} */ | |
| var src = [14]; | |
| /** @type {Array} */ | |
| var buffer = head.concat(buf.concat(src)); | |
| /** | |
| * @param {?} code | |
| * @return {?} | |
| */ | |
| var isButton = function(code) { | |
| var name; | |
| for (name in testSource) { | |
| if (testSource[name] == code) { | |
| return name; | |
| } | |
| } | |
| return null; | |
| }; | |
| /** @type {number} */ | |
| var EVENT_READY = 0; | |
| /** | |
| * @param {?} obj | |
| * @return {?} | |
| */ | |
| var getInstance = function(obj) { | |
| if (!(obj instanceof klass)) { | |
| obj = new klass([obj]); | |
| } | |
| return raw(readFile(), obj); | |
| }; | |
| /** | |
| * @param {?} elems | |
| * @return {?} | |
| */ | |
| var _nodeUID = function(elems) { | |
| return(elems = getInstance(elems)) && elems instanceof list ? elems : null; | |
| }; | |
| /** | |
| * @param {Object} obj | |
| * @return {?} | |
| */ | |
| var getPos = function(obj) { | |
| return(obj = getInstance(obj)) && obj instanceof object ? (window.$c0 = obj, window.$cd0 = obj.i().get(), obj) : null; | |
| }; | |
| /** | |
| * @param {?} name | |
| * @param {number} type | |
| * @return {?} | |
| */ | |
| var _save = function(name, type) { | |
| var codeSegments = name.bg(); | |
| /** @type {Array} */ | |
| var eventPath = []; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < codeSegments.length;++i) { | |
| eventPath.push({ | |
| ba : codeSegments[i], | |
| Nd : type | |
| }); | |
| } | |
| return{ | |
| Ei : eventPath, | |
| Cz : get_mangled(name, 2) | |
| }; | |
| }; | |
| /** | |
| * @param {string} name | |
| * @return {undefined} | |
| */ | |
| var changeState = function(name) { | |
| if (is_identifier(name) && ((name = encodeURIComponent()) && (name.tc() == actual.Aa() && existsSync(name, querySelector())), !onCompletion())) { | |
| var targets = jQuery(".thread-document nav"); | |
| _isFunction(); | |
| var rvar = querySelector(); | |
| var modId = _isFunction() || querySelector(); | |
| var parentName = onCompletion() || insertAfter(); | |
| if (syntax) { | |
| addClass(targets.find(".button.pin"), "unavailable", rvar); | |
| addClass(targets.find(".button.unpin"), "unavailable", rvar); | |
| } else { | |
| addClass(targets.find(".button.pin"), "unavailable", parentName); | |
| addClass(targets.find(".button.unpin"), "unavailable", parentName); | |
| } | |
| addClass(targets.find(".button.share"), "unavailable", modId); | |
| addClass(targets.find(".button.read-only"), "unavailable", !rvar); | |
| addClass(targets.find(".button.figure"), "unavailable", rvar); | |
| addClass(jQuery("body"), "read-only", rvar); | |
| addClass(jQuery(".thread > .input"), "unavailable", !(onCompletion() || _isFunction() && insertAfter() ? 0 : back(4))); | |
| scope.enable(!rvar); | |
| if (name) { | |
| name.Vc.update(); | |
| } | |
| } | |
| }; | |
| /** | |
| * @param {Object} name | |
| * @return {undefined} | |
| */ | |
| var progress = function(name) { | |
| var msg = encodeURIComponent(); | |
| if (msg) { | |
| notify(msg, name, "websocket"); | |
| } | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| var info = function() { | |
| return extend(window.location.pathname, "/_ro"); | |
| }; | |
| /** | |
| * @param {(Array|string)} key | |
| * @param {(Array|string)} id | |
| * @param {string} data | |
| * @param {boolean} head | |
| * @return {undefined} | |
| */ | |
| var loadData = function(key, id, data, head) { | |
| head = head || false; | |
| pub(8); | |
| if (key) { | |
| key = isNaN(key, GameObject); | |
| changeState(key); | |
| } | |
| id = isNaN(id, Background); | |
| setData(id.Aa()); | |
| data = isNaN(data, ref); | |
| update(id, data, head); | |
| head = readFile(); | |
| existsSync(head, querySelector()); | |
| if (!every(head)) { | |
| onload(callback("This document has reached the maximum number of sections. You'll be able to edit existing ones, but not create any more."), void 0, 6E4); | |
| } | |
| pub(channelName); | |
| makeRequest(nodeRequest); | |
| }; | |
| /** | |
| * @param {Array} doc | |
| * @param {?} optgroup | |
| * @param {boolean} e | |
| * @return {undefined} | |
| */ | |
| var update = function(doc, optgroup, e) { | |
| if (!element) { | |
| element = new E; | |
| } | |
| executeSql(false, true, false); | |
| getTime(); | |
| call(opts, "load_document", { | |
| load_document_id : doc.Aa() | |
| }); | |
| var d = new afterBuild($$(), doc); | |
| getOptions(d); | |
| requestAnimFrame(d, element); | |
| element.tm(d); | |
| stringifyPrimitive(d); | |
| /** @type {boolean} */ | |
| var data = false; | |
| var objectProperties = optgroup.bg(); | |
| /** @type {number} */ | |
| var p = 0; | |
| for (;p < objectProperties.length;p++) { | |
| var recurring = objectProperties[p]; | |
| if (recurring.Yc() == deepDataAndEvents && !recurring.Bb()) { | |
| /** @type {boolean} */ | |
| data = true; | |
| break; | |
| } | |
| } | |
| /** @type {null} */ | |
| p = null; | |
| if (e) { | |
| p = optgroup; | |
| optgroup = new ref; | |
| } | |
| /** @type {boolean} */ | |
| objectProperties = false; | |
| if (!querySelector()) { | |
| if (!data) { | |
| /** @type {boolean} */ | |
| e = objectProperties = true; | |
| data = UTCDate(callback("Untitled")) || new Contact; | |
| recurring = { | |
| edit : '<control id="temp:aac"></control>', | |
| create_a_list : '<control id="temp:aad"></control>' | |
| }; | |
| recurring = isMobile ? callback("Tap to %(edit)s or %(create_a_list)s [Full Sentence: Tap to edit or create a list]", recurring) : callback("Click to %(edit)s or %(create_a_list)s [Full Sentence: Click to edit or create a list]", recurring); | |
| recurring = UTCDate("<i>" + recurring + "\u200b</i>") || new Contact; | |
| p = new ref; | |
| p.mc((new Transform).ri(1).Ia("temp:aac").mb(11).Za(CLASS(new Contact, nth(ID(new JoinError, callback("edit [Context: Click to *edit* or create a list]")).Fl(11), (new Enemy).ja(0)))).pi(1)); | |
| p.mc((new Transform).ri(1).Ia("temp:aad").mb(11).Za(CLASS(new Contact, nth(ID(new JoinError, callback("create a list [Context: Click to edit or *create a list*]")).Fl(11), (new Enemy).ja(5)))).pi(1)); | |
| p.mc((new Transform).ri(deepDataAndEvents).Ia("temp:aaa").mb(expectedNumberOfNonCommentArgs).ja(pdataOld).Za(data).He(cb(cancelAnimationFrame(), false)).xb("aaa:temp").pi(1)); | |
| p.mc((new Transform).ri(deepDataAndEvents).Ia("temp:aab").mb(expectedNumberOfNonCommentArgs).ja(0).Za(recurring).He(cb(cancelAnimationFrame(), false)).xb("aab:temp").pi(1)); | |
| } | |
| } | |
| /** @type {string} */ | |
| recurring = "startup"; | |
| /** @type {number} */ | |
| data = 2; | |
| if (e) { | |
| recurring = p.bg(); | |
| p = recurring; | |
| if (0 != p.length) { | |
| /** @type {Array} */ | |
| var i = []; | |
| var s = {}; | |
| /** @type {number} */ | |
| var cur = 0; | |
| for (;cur < p.length;cur++) { | |
| var args = p[cur]; | |
| var value = args.Da(); | |
| if (!(value in s)) { | |
| if (!(9 == args.ib())) { | |
| /** @type {boolean} */ | |
| s[value] = true; | |
| i.push(args); | |
| } | |
| } | |
| } | |
| /** @type {Array} */ | |
| p = i; | |
| i = {}; | |
| /** @type {number} */ | |
| cur = 0; | |
| for (;cur < p.length;cur++) { | |
| args = p[cur]; | |
| if (s = args.Da()) { | |
| value = lex(); | |
| args.Ia(value); | |
| i[s] = value; | |
| } else { | |
| console.error("Serious error: no ID on incoming entity from remap"); | |
| } | |
| } | |
| /** @type {number} */ | |
| cur = 0; | |
| for (;cur < p.length;cur++) { | |
| args = p[cur]; | |
| args.Da(); | |
| s = args.ld(); | |
| var k = s.Oc(); | |
| var v = prompt(s); | |
| s = get_mangled(s, 4); | |
| args.pm(); | |
| args.qm(); | |
| args.Zb(); | |
| args.jd(); | |
| args.hd(); | |
| args.xd(); | |
| value = args.je(); | |
| args.Ah(); | |
| if (args.Yc() == deepDataAndEvents) { | |
| /** @type {Array} */ | |
| var a = []; | |
| /** @type {null} */ | |
| var b = null; | |
| if (k && 0 < k.length) { | |
| /** @type {boolean} */ | |
| var Q = true; | |
| /** @type {number} */ | |
| var h = 0; | |
| for (;h < k.length;h++) { | |
| if (k[h] in i) { | |
| a.push(i[k[h]]); | |
| } else { | |
| /** @type {boolean} */ | |
| Q = false; | |
| console.error("Parent ID not found during remap!"); | |
| } | |
| } | |
| if (Q) { | |
| if (v) { | |
| if (v in i) { | |
| b = i[v]; | |
| } else { | |
| /** @type {boolean} */ | |
| Q = false; | |
| } | |
| } | |
| } | |
| if (!Q) { | |
| /** @type {Array} */ | |
| a = []; | |
| } | |
| } | |
| k = new Collection; | |
| /** @type {number} */ | |
| h = 0; | |
| for (;h < a.length;h++) { | |
| k.vd(a[h]); | |
| } | |
| if (b) { | |
| v = origFindId(k, 2, b); | |
| origFindId(v, 4, s); | |
| } | |
| args.$a(k); | |
| } | |
| if (args.Yc() == deepDataAndEvents) { | |
| if (args.ib() == expectedNumberOfNonCommentArgs) { | |
| s = replaceAll(args.ob().rb().rb(), i, true); | |
| args.Za((new Contact).ca((new Image).ca(s))); | |
| } else { | |
| if (2 == args.ib()) { | |
| if (value) { | |
| args.si(value); | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| /** @type {number} */ | |
| p = 0; | |
| for (;p < recurring.length;++p) { | |
| cur = recurring[p]; | |
| cur.pi(objectProperties ? 1 : 3); | |
| optgroup.mc(cur); | |
| } | |
| data |= 64; | |
| /** @type {string} */ | |
| recurring = "startup (" + (objectProperties ? "new" : "copy") + " document)"; | |
| } | |
| optgroup = _save(optgroup, data); | |
| d.Vu = optgroup.Cz; | |
| optgroup = optgroup.Ei; | |
| if (data = !e) { | |
| data = forEach("disable-incremental-load"); | |
| /** @type {boolean} */ | |
| data = void 0 !== data ? !data : true; | |
| } | |
| if (data) { | |
| if (optgroup.length < (isMobile ? valueAccessor() ? 5 : getPropertyValue() ? 7 : 10 : 15)) { | |
| /** @type {null} */ | |
| data = null; | |
| } else { | |
| pub(19); | |
| /** @type {number} */ | |
| data = 0; | |
| /** @type {number} */ | |
| recurring = 60; | |
| /** @type {number} */ | |
| p = 0; | |
| if (isMobile) { | |
| if (valueAccessor()) { | |
| /** @type {number} */ | |
| p = 16; | |
| if (_isSafari) { | |
| /** @type {number} */ | |
| recurring = 10; | |
| } | |
| } else { | |
| /** @type {number} */ | |
| p = getPropertyValue() ? 39 : 65; | |
| } | |
| } else { | |
| /** @type {number} */ | |
| data = 350; | |
| /** @type {number} */ | |
| p = 95; | |
| } | |
| /** @type {number} */ | |
| data = window.innerWidth - data - 2 * p; | |
| /** @type {number} */ | |
| recurring = window.innerHeight - recurring; | |
| recurring = new Range(optgroup, 1.5 * recurring); | |
| /** @type {number} */ | |
| p = 0; | |
| for (;p < recurring.Nl.length && !(recurring.bl >= recurring.to);p++) { | |
| if (cur = recurring.Nl[p], args = cur.ba, i = args.ib(), $compile(args.pc())) { | |
| detach(cur, recurring); | |
| } else { | |
| if (3 == i) { | |
| args = cur; | |
| cur = recurring; | |
| fire(cur, args); | |
| value = _serialize(cur, args); | |
| /** @type {Array} */ | |
| args = []; | |
| /** @type {Array} */ | |
| s = []; | |
| /** @type {number} */ | |
| i = 0; | |
| for (;i < value.length;i++) { | |
| k = value[i]; | |
| v = k.ba.ib(); | |
| if (5 == v) { | |
| args.push(k); | |
| } else { | |
| if (4 == v) { | |
| s.push(k); | |
| } | |
| } | |
| } | |
| value = style(0).height + 1; | |
| /** @type {number} */ | |
| i = 0; | |
| for (;i < s.length;i++) { | |
| k = s[i]; | |
| fire(cur, k); | |
| v = _serialize(cur, k); | |
| /** @type {number} */ | |
| k = 0; | |
| for (;k < v.length;k++) { | |
| if (a = v[k], 1 == a.ba.hc().Zk()) { | |
| fire(cur, a, value); | |
| break; | |
| } | |
| } | |
| } | |
| /** @type {number} */ | |
| i = 0; | |
| for (;i < args.length && !(cur.bl >= cur.to);i++) { | |
| s = args[i]; | |
| v = _serialize(cur, s); | |
| /** @type {number} */ | |
| k = 0; | |
| for (;k < v.length;k++) { | |
| fire(cur, v[k]); | |
| } | |
| fire(cur, s, value); | |
| } | |
| } else { | |
| if (1 == i) { | |
| i = cur; | |
| /** @type {number} */ | |
| cur = data; | |
| args = recurring; | |
| fire(args, i); | |
| i = _serialize(args, i); | |
| /** @type {number} */ | |
| s = 0; | |
| for (;s < i.length && !(args.bl >= args.to);s++) { | |
| value = i[s]; | |
| k = value.ba; | |
| v = k.Qd(); | |
| /** @type {number} */ | |
| v = 32 * (get_mangled(v, 1) + 1); | |
| fire(args, value, getPosition(k, cur - v)); | |
| } | |
| } else { | |
| fire(recurring, cur, getPosition(args, data)); | |
| } | |
| } | |
| } | |
| } | |
| for (;p < recurring.Nl.length;p++) { | |
| cur = recurring.Nl[p]; | |
| args = cur.ba; | |
| args.ib(); | |
| if ($compile(args.pc())) { | |
| detach(cur, recurring); | |
| } | |
| } | |
| pub(20); | |
| data = recurring; | |
| } | |
| if (data) { | |
| if (data.Vm == data.Ql.length) { | |
| /** @type {Array} */ | |
| data = [data.Ql]; | |
| } else { | |
| /** @type {Array} */ | |
| recurring = Array(data.Vm); | |
| /** @type {number} */ | |
| p = 0; | |
| /** @type {Array} */ | |
| cur = []; | |
| /** @type {Array} */ | |
| args = Array(data.Ql.length - data.Vm); | |
| /** @type {number} */ | |
| s = i = 0; | |
| for (;s < data.Ql.length;s++) { | |
| value = data.Ql[s]; | |
| if (value.Um in data.oq) { | |
| recurring[p++] = value; | |
| } else { | |
| if (1 == value.ba.Pt() && value.ba.Lk() <= data.dn) { | |
| cur.push(value); | |
| } else { | |
| args[i++] = value; | |
| } | |
| } | |
| } | |
| if (cur.length) { | |
| toggleClass(recurring, cur); | |
| args.length -= cur.length; | |
| } | |
| /** @type {Array} */ | |
| data = [recurring].concat(parseArgs(args)); | |
| } | |
| if (1 == data.length) { | |
| d.update(optgroup, "incremental skipped"); | |
| makeRequest(24); | |
| } else { | |
| d.rc.Qn++; | |
| d.update(data[0], "incremental initial"); | |
| optgroup = forEach("incremental-load-pausing"); | |
| optgroup = new Vector(d, data, optgroup); | |
| icon(d, optgroup); | |
| onClick(optgroup); | |
| } | |
| } else { | |
| d.update(optgroup, "incremental skipped"); | |
| makeRequest(24); | |
| } | |
| } else { | |
| d.update(optgroup, recurring); | |
| makeRequest(24); | |
| } | |
| if (e) { | |
| if (!objectProperties) { | |
| if (e = encode(d)) { | |
| if (e.l) { | |
| if (e.title == e.Ip) { | |
| if (hasOwnProperty(e.l)) { | |
| if (doc.Lg()) { | |
| e.l.Za(doc.Lg()); | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| y(d.rc); | |
| if (d.Pc()) { | |
| finish(bind(d.save, d)); | |
| } | |
| }; | |
| /** | |
| * @param {boolean} mayParseLabeledStatementInstead | |
| * @param {boolean} recurring | |
| * @param {boolean} opt_isDefault | |
| * @return {?} | |
| */ | |
| var executeSql = function(mayParseLabeledStatementInstead, recurring, opt_isDefault) { | |
| mayParseLabeledStatementInstead = mayParseLabeledStatementInstead || false; | |
| recurring = recurring || false; | |
| opt_isDefault = opt_isDefault || false; | |
| nodeModulesPathsSync(); | |
| /** @type {boolean} */ | |
| var result = false; | |
| var value = encodeURIComponent(); | |
| call(opts, "unload_document", { | |
| unload_document_id : value ? type(value) : null | |
| }); | |
| if (info() || value && !get_mangled(value.Gc, 12)) { | |
| if (value) { | |
| value.tf(); | |
| } | |
| } else { | |
| if (value) { | |
| if (value.tf() || value.Sg()) { | |
| if (value.Sg()) { | |
| if (mayParseLabeledStatementInstead) { | |
| isError(value); | |
| } | |
| } | |
| value.save(void 0, !recurring); | |
| result = value.Pc(); | |
| } | |
| } | |
| } | |
| if (!opt_isDefault) { | |
| if (value) { | |
| /** @type {boolean} */ | |
| value.Is = false; | |
| if (value.og) { | |
| protectedClearTimeout(value.og); | |
| /** @type {null} */ | |
| value.og = null; | |
| } | |
| } | |
| getOptions(null); | |
| removeChild($$()); | |
| removeCovers(); | |
| } | |
| return result; | |
| }; | |
| append("editor.init", function(subKey, storedFileId, inplace) { | |
| loadData(subKey, storedFileId, inplace); | |
| }); | |
| /** @type {null} */ | |
| var element = null; | |
| attempt(function() { | |
| if (!syntax) { | |
| createDom(function() { | |
| if (!$broadcast(3E5)) { | |
| var value = getCacheKey(); | |
| if (value && (searchTerm && value != searchTerm)) { | |
| /** | |
| * @return {undefined} | |
| */ | |
| var optgroup = function() { | |
| console.log("Client", value, "out of date; reloading to upgrade to", searchTerm); | |
| window.location.reload(true); | |
| }; | |
| var doc = encodeURIComponent(); | |
| if (doc && doc.tf()) { | |
| doc.save(optgroup); | |
| } else { | |
| optgroup(); | |
| } | |
| } | |
| } | |
| }, 3E4); | |
| } | |
| }); | |
| /** | |
| * @return {?} | |
| */ | |
| window.onbeforeunload = function() { | |
| if (executeSql(true, false, true)) { | |
| return callback("There are unsaved changes. Are you sure you want to leave?"); | |
| } | |
| }; | |
| events.addListener(function() { | |
| var redirect_uri = encodeURIComponent(); | |
| if (redirect_uri) { | |
| redirect_uri.Yp(); | |
| } | |
| }); | |
| $("click", "document-error-retry", function() { | |
| readFile().save(); | |
| _toString("listen"); | |
| return false; | |
| }); | |
| $("mousedown", "no-caret-move", function() { | |
| return false; | |
| }); | |
| /** @type {boolean} */ | |
| var $rootScope = false; | |
| /** @type {number} */ | |
| var startTime = 0; | |
| var wijmo = new b([256, 2, 4, 128], [0]); | |
| /** @type {boolean} */ | |
| wijmo.ng = true; | |
| /** | |
| * @param {?} name | |
| * @return {?} | |
| */ | |
| wijmo.hl = function(name) { | |
| return isMobile && name.Tc ? 10 : 4 + (name.Tc ? 0 : 2); | |
| }; | |
| var which = new b([2], [0]); | |
| /** @type {boolean} */ | |
| which.ng = true; | |
| /** | |
| * @return {?} | |
| */ | |
| which.hl = function() { | |
| return isMobile ? 10 : 4; | |
| }; | |
| var ru = new b([4, 128], [0]); | |
| /** @type {boolean} */ | |
| ru.ng = true; | |
| /** | |
| * @return {?} | |
| */ | |
| ru.hl = function() { | |
| return isMobile ? 10 : 4; | |
| }; | |
| /** | |
| * @param {string} model | |
| * @param {number} exports | |
| * @param {?} el | |
| * @return {undefined} | |
| */ | |
| var Observable = function(model, exports, el) { | |
| this.te = new build_gameboard(model, exports, this, { | |
| lp : true | |
| }); | |
| this.te.i().g("selection-inspector"); | |
| this.anchor = el; | |
| attempt(bind(function() { | |
| if (this.isEnabled()) { | |
| events.addListener(bind(this.update, this)); | |
| } | |
| }, this)); | |
| }; | |
| inherits(Observable, two); | |
| self = Observable.prototype; | |
| /** @type {function (): ?} */ | |
| self.update = tmp; | |
| /** | |
| * @return {?} | |
| */ | |
| self.isEnabled = function() { | |
| return!isMobile || isContentHeight; | |
| }; | |
| /** | |
| * @param {Array} self | |
| * @return {undefined} | |
| */ | |
| var unlock = function(self) { | |
| if (!self.te.Jb()) { | |
| self.te.show(self.anchor, readFile().la()); | |
| if (getNativeElement()) { | |
| if (self = readFile().wu) { | |
| console.log("Time from selection to actually showing selector: ", resetQueues() - self, " ms"); | |
| } | |
| } | |
| } | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| self.show = function() { | |
| if (_isSafari || isContentHeight) { | |
| unlock(this); | |
| } else { | |
| if (this.Qj) { | |
| protectedClearTimeout(this.Qj); | |
| } | |
| this.Qj = push(bind(function() { | |
| delete this.Qj; | |
| unlock(this); | |
| }, this), 300); | |
| } | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| self.ua = function() { | |
| if (this.Qj) { | |
| protectedClearTimeout(this.Qj); | |
| delete this.Qj; | |
| } | |
| this.te.ua(); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.Jb = function() { | |
| return this.te.Jb(); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.ef = function() { | |
| return element.ef(); | |
| }; | |
| /** | |
| * @param {boolean} opt_ignored | |
| * @param {number} options | |
| * @param {boolean} vx | |
| * @return {undefined} | |
| */ | |
| var grid = function(opt_ignored, options, vx) { | |
| /** @type {Array} */ | |
| this.Ys = []; | |
| /** @type {Array} */ | |
| this.$b = opt_ignored ? [[getDimensions(setSize(runCallbacks(val(newObj.ya(), 0), 0), 0), 0)]] : [[]]; | |
| this.ea = opt_ignored ? this.$b[0][0] : new klass([]); | |
| this.Ou = opt_ignored || false; | |
| this.gt = options || null; | |
| this.vx = vx || false; | |
| /** @type {boolean} */ | |
| this.es = false; | |
| if (vx) { | |
| this.ea.setData("mousewheel", "document-cover"); | |
| } | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| grid.prototype.show = function() { | |
| item.append(this.ea); | |
| if (exec(this.Ye)) { | |
| protectedClearTimeout(this.Ye); | |
| delete this.Ye; | |
| } | |
| delete this.rv; | |
| if (!exec(this.ne)) { | |
| this.ne = finish(bind(function() { | |
| this.ea.g("visible"); | |
| delete this.ne; | |
| }, this)); | |
| } | |
| /** @type {boolean} */ | |
| this.es = true; | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| grid.prototype.ua = function() { | |
| if (exec(this.ne)) { | |
| getById(this.ne); | |
| delete this.ne; | |
| } | |
| if (!exec(this.Ye)) { | |
| if (this.ea.j("visible")) { | |
| this.ea.k("visible"); | |
| this.Ye = push(bind(function() { | |
| this.ea.remove(); | |
| delete this.Ye; | |
| }, this), 250); | |
| } else { | |
| this.ea.remove(); | |
| } | |
| /** @type {boolean} */ | |
| this.es = false; | |
| /** @type {boolean} */ | |
| this.rv = true; | |
| } | |
| }; | |
| /** | |
| * @param {?} self | |
| * @param {Array} comparisons | |
| * @return {undefined} | |
| */ | |
| var tick = function(self, comparisons) { | |
| if (!self.rv) { | |
| /** @type {Array} */ | |
| var optgroup = [0, 1E5]; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < comparisons.length;i++) { | |
| var t = comparisons[i]; | |
| var tagName = t.left || 0; | |
| if (-1 == optgroup.indexOf(tagName)) { | |
| optgroup.push(tagName); | |
| } | |
| tagName = t.right || 1E5; | |
| if (-1 == optgroup.indexOf(tagName)) { | |
| optgroup.push(tagName); | |
| } | |
| } | |
| optgroup.sort(function(far, near) { | |
| return far - near; | |
| }); | |
| /** @type {Array.<?>} */ | |
| optgroup = optgroup.slice(1, optgroup.length - 1); | |
| /** @type {boolean} */ | |
| tagName = false; | |
| var _ = new klass([]); | |
| if (String(optgroup) != String(self.Ys)) { | |
| /** @type {boolean} */ | |
| tagName = true; | |
| /** @type {number} */ | |
| i = 0; | |
| for (;i < self.$b.length;i++) { | |
| t = self.$b[i]; | |
| /** @type {number} */ | |
| var j = 0; | |
| for (;j < t.length;j++) { | |
| _ = _.concat(t[j]); | |
| } | |
| } | |
| /** @type {Array} */ | |
| self.$b = []; | |
| /** @type {number} */ | |
| i = 0; | |
| for (;i <= optgroup.length;i++) { | |
| self.$b.push([]); | |
| } | |
| /** @type {Array.<?>} */ | |
| self.Ys = optgroup; | |
| } | |
| /** @type {Array} */ | |
| var keys = []; | |
| /** @type {number} */ | |
| i = 0; | |
| for (;i <= optgroup.length;i++) { | |
| keys.push([]); | |
| } | |
| /** @type {number} */ | |
| i = 0; | |
| for (;i < comparisons.length;i++) { | |
| t = comparisons[i]; | |
| if (t.left) { | |
| keys[optgroup.indexOf(t.left) + 1].push(t); | |
| } else { | |
| keys[0].push(t); | |
| } | |
| } | |
| /** @type {number} */ | |
| i = 0; | |
| for (;i < keys.length;i++) { | |
| t = keys[i]; | |
| var n = t.length + (self.Ou ? 1 : 0); | |
| if (n < self.$b[i].length) { | |
| /** @type {boolean} */ | |
| tagName = true; | |
| j = n; | |
| for (;j < self.$b[i].length;j++) { | |
| _ = _.concat(self.$b[i][j]); | |
| } | |
| self.$b[i] = self.$b[i].slice(0, t.length + 1); | |
| } | |
| j = self.$b[i].length; | |
| for (;j < n;j++) { | |
| /** @type {boolean} */ | |
| tagName = true; | |
| var p = newObj.ya(); | |
| if (self.gt) { | |
| p.g(self.gt); | |
| } | |
| if (self.vx) { | |
| p.setData("mousewheel", "document-cover"); | |
| } | |
| setSize(p, 0 == i ? 0 : optgroup[i - 1]); | |
| if (i == keys.length - 1) { | |
| getDimensions(p, 0); | |
| } else { | |
| if (0 == i) { | |
| p.gb(optgroup[i]); | |
| } else { | |
| p.gb(optgroup[i] - optgroup[i - 1]); | |
| } | |
| } | |
| self.$b[i].push(p); | |
| } | |
| if (self.Ou) { | |
| val(self.$b[i][0], 0); | |
| /** @type {number} */ | |
| j = 0; | |
| for (;j < t.length;j++) { | |
| n = t[j]; | |
| css(self.$b[i][j], "bottom"); | |
| self.$b[i][j].Sa(Math.max(0, n.top - (0 == j ? 0 : t[j - 1].bottom))); | |
| val(self.$b[i][j + 1], n.bottom); | |
| } | |
| css(self.$b[i][t.length], "height"); | |
| runCallbacks(self.$b[i][t.length], 0); | |
| } else { | |
| /** @type {number} */ | |
| j = 0; | |
| for (;j < t.length;j++) { | |
| p = t[j]; | |
| val(self.$b[i][j], p.top); | |
| self.$b[i][j].Sa(p.bottom - p.top); | |
| } | |
| } | |
| } | |
| if (tagName) { | |
| optgroup = new klass([]); | |
| /** @type {number} */ | |
| i = 0; | |
| for (;i < self.$b.length;i++) { | |
| t = self.$b[i]; | |
| /** @type {number} */ | |
| j = 0; | |
| for (;j < t.length;j++) { | |
| optgroup = optgroup.concat(self.$b[i][j]); | |
| } | |
| } | |
| self.ea = optgroup; | |
| item.append(self.ea); | |
| if (self.es) { | |
| self.ne = finish(bind(function() { | |
| this.ea.g("visible"); | |
| _.k("visible"); | |
| delete this.ne; | |
| }, self)); | |
| } | |
| push(bind(function() { | |
| _.remove(); | |
| }, self), 250); | |
| } | |
| } | |
| }; | |
| var newObj = createElement("div", "document-cover"); | |
| $("mousewheel", "document-cover", function(e) { | |
| var redirect_uri = encodeURIComponent(); | |
| if (!redirect_uri) { | |
| return true; | |
| } | |
| var basePrototype = redirect_uri.la(); | |
| if (e.clientX > basePrototype.ga().left) { | |
| getOwnPropertyDescriptor(basePrototype, redirect_uri.la().scrollTop() - e.wheelDeltaY); | |
| } | |
| return false; | |
| }); | |
| var $p1; | |
| /** | |
| * @return {?} | |
| */ | |
| var getNext = function() { | |
| var o = encodeURIComponent(); | |
| if (!o) { | |
| return null; | |
| } | |
| var dest = _clone(); | |
| return dest ? dest : (dest = insert()) ? (onLoad(o.Vc), dest) : (o = o.ta) && core_isArraylike(o) ? parseFile(o) : null; | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| var urlParse = function() { | |
| var subject = encodeURIComponent(); | |
| if (!subject || _clone()) { | |
| return false; | |
| } | |
| if (containsMatch()) { | |
| return true; | |
| } | |
| subject = subject.ta; | |
| return null != subject && core_isArraylike(subject); | |
| }; | |
| /** | |
| * @param {Object} a | |
| * @return {?} | |
| */ | |
| var urlappend = function(a) { | |
| return(a = a.l()) && !isArguments(a) ? a : null; | |
| }; | |
| /** | |
| * @param {Object} s | |
| * @return {?} | |
| */ | |
| var matchObject = function(s) { | |
| var resultItems = s.o().zj(); | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < resultItems.length;i++) { | |
| var result = resultItems[i]; | |
| if (result.type() == conf.qe && !markMatch(result.sa)) { | |
| return result; | |
| } | |
| } | |
| s = array(s.document.Ze, s); | |
| if (!s.length) { | |
| return null; | |
| } | |
| /** @type {number} */ | |
| i = 0; | |
| for (;i < s.length;i++) { | |
| if (result = s[i], !markMatch(result.sa)) { | |
| return result; | |
| } | |
| } | |
| return null; | |
| }; | |
| /** | |
| * @param {?} d | |
| * @return {?} | |
| */ | |
| var objectToString = function(d) { | |
| if (!d) { | |
| return null; | |
| } | |
| var temp = urlappend(d); | |
| return temp ? splice(d.sa) ? temp : d : null; | |
| }; | |
| /** | |
| * @param {?} a | |
| * @return {?} | |
| */ | |
| var matchArray = function(a) { | |
| if (!core_isArraylike(a)) { | |
| return false; | |
| } | |
| a = array(a.document.Ze, a); | |
| if (!a.length) { | |
| return true; | |
| } | |
| /** @type {boolean} */ | |
| var result = true; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < a.length;i++) { | |
| var next = a[i]; | |
| if (!markMatch(next.sa)) { | |
| if (dequeue(next.id())) { | |
| /** @type {boolean} */ | |
| result = false; | |
| } else { | |
| return true; | |
| } | |
| } | |
| } | |
| return result; | |
| }; | |
| /** | |
| * @param {Object} obj | |
| * @return {?} | |
| */ | |
| var core_isArraylike = function(obj) { | |
| var i = obj.o(); | |
| if (!i.ec() && !i.Qg) { | |
| return true; | |
| } | |
| obj = obj.o().zj(); | |
| /** @type {number} */ | |
| i = 0; | |
| for (;i < obj.length;i++) { | |
| var result = obj[i]; | |
| if (result.type() == conf.qe && !markMatch(result.sa)) { | |
| return false; | |
| } | |
| } | |
| return true; | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| var _clone = function() { | |
| var codeSegments = encodeURIComponent(); | |
| /** @type {(Selection|null)} */ | |
| var selection = window.getSelection(); | |
| var i = getOperationalRange(2); | |
| if (codeSegments && (selection && i)) { | |
| var node = jQuery(selection.getRangeAt(0).commonAncestorContainer); | |
| var result = hook(node); | |
| if (result && (result.type() == conf.qe && !markMatch(result.sa))) { | |
| return result; | |
| } | |
| /** @type {null} */ | |
| result = null; | |
| expect(node.find("annotation.c" + conf.qe + ":not(.hidden)"), function() { | |
| if (selection.containsNode(this, true)) { | |
| return result = getPos(this), false; | |
| } | |
| }); | |
| if (result) { | |
| return result; | |
| } | |
| if (core_isArraylike(i)) { | |
| codeSegments = array(codeSegments.Ze, i); | |
| /** @type {number} */ | |
| i = 0; | |
| for (;i < codeSegments.length;i++) { | |
| if (node = codeSegments[i], !markMatch(node.sa)) { | |
| return node; | |
| } | |
| } | |
| } | |
| return null; | |
| } | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var removeNode = function() { | |
| /** @type {(Selection|null)} */ | |
| var selection = window.getSelection(); | |
| var self = jQuery(selection.getRangeAt(0).commonAncestorContainer); | |
| var that = hook(self); | |
| if (that) { | |
| if (that.type() == conf.qe) { | |
| if (markMatch(that.sa)) { | |
| that.sa.remove(); | |
| } | |
| } | |
| } | |
| expect(self.find("annotation.c" + conf.qe + ".hidden"), function() { | |
| if (selection.containsNode(this, true)) { | |
| that = getPos(this); | |
| that.sa.remove(); | |
| } | |
| }); | |
| }; | |
| /** | |
| * @param {?} el | |
| * @param {?} s | |
| * @return {undefined} | |
| */ | |
| var _attr = function(el, s) { | |
| var codeSegments = array(el.Ze, s); | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < codeSegments.length;i++) { | |
| if (markMatch(codeSegments[i].sa)) { | |
| codeSegments[i].sa.remove(); | |
| } | |
| } | |
| }; | |
| /** | |
| * @param {?} e | |
| * @return {?} | |
| */ | |
| var parseFile = function(e) { | |
| var n = readFile(); | |
| var resultItems = e.o().zj(); | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < resultItems.length;i++) { | |
| var result = resultItems[i]; | |
| if (result.type() == conf.qe) { | |
| if (markMatch(result.sa)) { | |
| result.sa.remove(); | |
| } | |
| } | |
| } | |
| _attr(n, e); | |
| result = concat(n, conf.qe, null); | |
| n = result.sa; | |
| resultItems = data.ka.name; | |
| n.Fh.In(data.ka.id).Hn(resultItems); | |
| title(n); | |
| onEnd(n, e); | |
| return result; | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| var insert = function() { | |
| if (!containsMatch()) { | |
| return null; | |
| } | |
| var input = readFile(); | |
| var selection = end(); | |
| var options = selection.fb; | |
| options.o().normalize(); | |
| var range = mixIn(selection, options); | |
| removeNode(); | |
| _attr(input, selection.fb); | |
| input = concat(input, conf.qe, null); | |
| if (!input) { | |
| return console.error("Control could not be created"), null; | |
| } | |
| selection = input.sa; | |
| var ret = data.ka.name; | |
| selection.Fh.In(data.ka.id).Hn(ret); | |
| title(selection); | |
| var sel; | |
| /** @type {boolean} */ | |
| sel = sel || false; | |
| /** @type {(Selection|null)} */ | |
| selection = window.getSelection(); | |
| /** @type {(Range|null)} */ | |
| selection = selection.rangeCount ? selection.getRangeAt(0) : document.createRange(); | |
| if (range.jh) { | |
| setSelectionAt(range.jh, true, sel, selection); | |
| } | |
| if (range.Dg) { | |
| setSelectionAt(range.Dg, false, sel, selection); | |
| } | |
| /** @type {(Range|null)} */ | |
| range = selection; | |
| try { | |
| range.surroundContents(input.i().get()); | |
| /** @type {(Range|null)} */ | |
| range = document.createRange(); | |
| range.selectNodeContents(input.i().get()); | |
| window.getSelection().removeAllRanges(); | |
| window.getSelection().addRange(range); | |
| } catch (g) { | |
| /** @type {(DocumentFragment|null)} */ | |
| sel = range.extractContents(); | |
| input.i().get().appendChild(sel); | |
| range.insertNode(input.i().get()); | |
| } | |
| options.o().normalize(); | |
| options.Ra([12]); | |
| if (isContentHeight) { | |
| getRange(); | |
| } | |
| return input; | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| var containsMatch = function() { | |
| var resultItems = encodeURIComponent(); | |
| if (!resultItems || wrapError(resultItems)) { | |
| return false; | |
| } | |
| var i = end(); | |
| if (!i || (i.isCollapsed || i.fb != i.wb)) { | |
| return false; | |
| } | |
| resultItems = array(resultItems.Ze, i.fb); | |
| /** @type {number} */ | |
| i = 0; | |
| for (;i < resultItems.length;i++) { | |
| if (!markMatch(resultItems[i].sa)) { | |
| return false; | |
| } | |
| } | |
| return true; | |
| }; | |
| /** | |
| * @param {?} type | |
| * @return {?} | |
| */ | |
| var dequeue = function(type) { | |
| var codeSegments = encodeURIComponent(); | |
| if (!codeSegments) { | |
| return 0; | |
| } | |
| codeSegments = codeSegments.Jm().gn(); | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < codeSegments.length;i++) { | |
| var name = codeSegments[i]; | |
| if (func(name, 1) == type) { | |
| return get_mangled(name, 2); | |
| } | |
| } | |
| return 0; | |
| }; | |
| /** | |
| * @param {Object} e | |
| * @return {?} | |
| */ | |
| var handleMouseMove = function(e) { | |
| if (markMatch(e.sa) || syntax && !dequeue(e.id())) { | |
| return false; | |
| } | |
| var currentDate = e.document.ta; | |
| return currentDate && e.l() == currentDate ? false : true; | |
| }; | |
| /** | |
| * @param {Object} e | |
| * @param {?} event | |
| * @return {undefined} | |
| */ | |
| var onMouseUp = function(e, event) { | |
| if (handleMouseMove(e)) { | |
| var me = e.i(); | |
| if (!syntax) { | |
| me.g("popover-one-shot-anchor"); | |
| } | |
| removeEventListener(e.id()); | |
| if (syntax) { | |
| me.setData("ignore-next-click", "1"); | |
| stopEvent(event); | |
| } | |
| } | |
| }; | |
| /** | |
| * @param {?} optgroup | |
| * @param {boolean} recurring | |
| * @param {boolean} deepDataAndEvents | |
| * @return {undefined} | |
| */ | |
| var removeEventListener = function(optgroup, recurring, deepDataAndEvents) { | |
| var elem = readFile(); | |
| var queue = pow(elem, optgroup); | |
| if (!queue) { | |
| setStyles(elem); | |
| queue = pow(elem, optgroup); | |
| } | |
| if (!queue) { | |
| throw Error("Cannot open unknown annotation ID '" + optgroup + "'"); | |
| } | |
| if (scrollTop()) { | |
| element.ol(optgroup, recurring, deepDataAndEvents); | |
| } | |
| }; | |
| /** | |
| * @param {?} node | |
| * @return {undefined} | |
| */ | |
| var updateNodeHtml = function(node) { | |
| node.find(".message-input.dirty").k("dirty"); | |
| close(node); | |
| }; | |
| /** | |
| * @param {string} e | |
| * @param {boolean} recurring | |
| * @return {undefined} | |
| */ | |
| var changePage = function(e, recurring) { | |
| if ("string" == typeof e) { | |
| e = pow(readFile(), e); | |
| } | |
| if (!($p1 == e && recurring)) { | |
| $p1 = recurring ? e : null; | |
| posFromMouse(e, "tab-opened", recurring); | |
| e.document.Vc.update(); | |
| } | |
| }; | |
| /** | |
| * @param {Object} e | |
| * @param {string} text | |
| * @param {boolean} recurring | |
| * @return {undefined} | |
| */ | |
| var posFromMouse = function(e, text, recurring) { | |
| if ("string" == typeof e) { | |
| e = pow(readFile(), e); | |
| } | |
| addClass(e.i(), text, recurring); | |
| if (e = urlappend(e)) { | |
| addClass(e.i(), "annotation-" + text, recurring); | |
| } | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var dialog = function() { | |
| /** @type {Array} */ | |
| this.Gh = []; | |
| }; | |
| /** | |
| * @param {?} type | |
| * @return {undefined} | |
| */ | |
| dialog.prototype.add = function(type) { | |
| if (!value(this.Gh, type)) { | |
| this.Gh.push(type); | |
| } | |
| }; | |
| /** | |
| * @param {?} name | |
| * @return {undefined} | |
| */ | |
| dialog.prototype.remove = function(name) { | |
| removeAll(this.Gh, name); | |
| }; | |
| /** | |
| * @param {?} ar | |
| * @param {?} arg | |
| * @return {?} | |
| */ | |
| var array = function(ar, arg) { | |
| /** @type {Array} */ | |
| var assigns = []; | |
| /** @type {number} */ | |
| var conditionIndex = 0; | |
| for (;conditionIndex < ar.Gh.length;conditionIndex++) { | |
| var vvar = ar.Gh[conditionIndex]; | |
| if (value(vvar.sa.le, arg)) { | |
| assigns.push(vvar); | |
| } | |
| } | |
| return assigns; | |
| }; | |
| /** | |
| * @param {?} store | |
| * @return {undefined} | |
| */ | |
| var contents = function(store) { | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < store.Gh.length;i++) { | |
| var self = store.Gh[i].sa; | |
| var activeClassName = self.control.document; | |
| /** @type {Array} */ | |
| var assigns = []; | |
| /** @type {number} */ | |
| var c = 0; | |
| for (;c < self.Yg.length;c++) { | |
| var vvar = self.Yg[c]; | |
| var failuresLink = width(activeClassName, vvar); | |
| if (failuresLink) { | |
| onEnd(self, failuresLink); | |
| } else { | |
| assigns.push(vvar); | |
| } | |
| } | |
| /** @type {Array} */ | |
| self.Yg = assigns; | |
| } | |
| }; | |
| $("click", "annotation-tab", function(timer) { | |
| var data = this.data("thread-id"); | |
| var target = this.data("id"); | |
| /** @type {boolean} */ | |
| var recurring = "1" == this.data("focus-input") || 0 == dequeue(target); | |
| if (!jQuery(timer.target).parent(".full-text-search-results").empty()) { | |
| submitHandler(); | |
| } | |
| if (timer = destination) { | |
| timer.close(); | |
| } | |
| jQuery(".thread"); | |
| if (data && data != html()) { | |
| onclick(data, void 0, void 0, function() { | |
| removeEventListener(target, recurring); | |
| }); | |
| } else { | |
| removeEventListener(target, recurring); | |
| } | |
| return false; | |
| }); | |
| attempt(function() { | |
| getEnumerableProperties(handleEvent(67, indents | backgroundLayerMask, function() { | |
| var pluginMap = getNext(); | |
| if (!pluginMap) { | |
| return false; | |
| } | |
| removeEventListener(pluginMap.id(), true); | |
| return true; | |
| }), 2, callback("Add a comment")); | |
| /** @type {null} */ | |
| var dest = null; | |
| /** @type {boolean} */ | |
| var old = true; | |
| events.addListener(function() { | |
| if (syntax) { | |
| var mat = _clone(); | |
| /** @type {boolean} */ | |
| var expr = window.getSelection().isCollapsed; | |
| /** @type {boolean} */ | |
| var e = mat != dest || expr != old; | |
| dest = mat; | |
| /** @type {boolean} */ | |
| old = expr; | |
| if (e) { | |
| element.Lh(); | |
| } | |
| } else { | |
| if (encodeURIComponent()) { | |
| encodeURIComponent().Vc.Yp(); | |
| } | |
| } | |
| }); | |
| }); | |
| /** | |
| * @param {?} options | |
| * @return {undefined} | |
| */ | |
| var Store = function(options) { | |
| this.pa = options; | |
| this.it = {}; | |
| this.ge = {}; | |
| /** @type {null} */ | |
| this.Rb = this.Ac = this.ia = null; | |
| /** @type {number} */ | |
| this.rm = Number.MAX_VALUE; | |
| }; | |
| self = Store.prototype; | |
| /** | |
| * @return {undefined} | |
| */ | |
| self.update = function() { | |
| var a = {}; | |
| if (scrollTop()) { | |
| var obj = this.pa.Jm().gn(); | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < obj.length;i++) { | |
| var x = get_mangled(obj[i], 2); | |
| if (x) { | |
| var y = get_mangled(obj[i], 1); | |
| var result = pow(this.pa, y); | |
| if (result) { | |
| if (!markMatch(result.sa)) { | |
| a[y] = x; | |
| } | |
| } | |
| } | |
| } | |
| obj = $p1; | |
| if (!!obj) { | |
| if (!(obj.document != this.pa)) { | |
| if (!(obj.id() in a)) { | |
| /** @type {number} */ | |
| a[obj.id()] = 0; | |
| } | |
| } | |
| } | |
| } | |
| if (!isObject(a, this.it)) { | |
| this.it = a; | |
| obj = {}; | |
| var key; | |
| for (key in this.ge) { | |
| /** @type {number} */ | |
| obj[key] = 1; | |
| } | |
| /** @type {boolean} */ | |
| x = false; | |
| for (key in a) { | |
| i = a[key]; | |
| y = pow(this.pa, key); | |
| if (key in obj) { | |
| delete obj[key]; | |
| } else { | |
| x = createElement("editorui", "annotation-gutter-icon popover-anchor").setData("id", key).setData("mouseover", "annotation-gutter-icon").setData("mouseout", "annotation-gutter-icon"); | |
| if (isMobile) { | |
| x.setAttribute("onmousedown", "").setData("touchstart", "fastclick").setData("fastclick", "annotation-tab"); | |
| } else { | |
| x.setData("click", "annotation-tab"); | |
| } | |
| ok(x, false); | |
| this.pa.la().append(x); | |
| this.ge[key] = x; | |
| /** @type {boolean} */ | |
| x = true; | |
| } | |
| result = i; | |
| var code; | |
| code = y.fg(); | |
| code = func(code, 7); | |
| result = { | |
| count : result, | |
| name : code.Dt() | |
| }; | |
| y = splice(y.sa) ? 0 == i ? callback("Add a comment") : 1 == i ? callback("1 comment") : callback("%(count)s comments", result) : 0 == i ? callback("Highlight by %(name)s", result) : 1 == i ? callback("1 comment on a highlight by %(name)s", result) : callback("%(count)s comments on a highlight by %(name)s", result); | |
| addClass(this.ge[key].ca(i || ""), "numbered", 0 < i).setAttribute("title", y); | |
| } | |
| for (key in obj) { | |
| this.ge[key].remove(); | |
| delete this.ge[key]; | |
| } | |
| this.hg(x); | |
| a = this.pa; | |
| if (isMobile) { | |
| key = a.Jm().gn(); | |
| /** @type {number} */ | |
| obj = 0; | |
| for (;obj < key.length;obj++) { | |
| x = get_mangled(key[obj], 1); | |
| i = get_mangled(key[obj], 2); | |
| if (x = pow(a, x)) { | |
| addClass(x.i(), "tappable", 0 < i); | |
| } | |
| } | |
| } | |
| } | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| self.Yp = function() { | |
| if (this.ia) { | |
| if (this.ia.j("active")) { | |
| if (now() > this.rm) { | |
| if (getOperationalRange(2)) { | |
| close(this.ia); | |
| /** @type {number} */ | |
| this.rm = Number.MAX_VALUE; | |
| } | |
| } | |
| } | |
| } | |
| }; | |
| /** | |
| * @param {?} data | |
| * @return {undefined} | |
| */ | |
| var onLoad = function(data) { | |
| if (!syntax) { | |
| data.ta = data.pa.ta; | |
| var newX = exec(data.Pf); | |
| var x = null != data.ta && matchArray(data.ta); | |
| if (x != newX) { | |
| if (x) { | |
| data.Pf = createElement("editorui", "annotation-gutter-icon popover-anchor").setData("click", "annotation-focused-section-highlight").setData("mousedown", "no-caret-move").setAttribute("title", callback("Add a comment")); | |
| ok(data.Pf, false); | |
| data.pa.la().append(data.Pf); | |
| } else { | |
| data.Pf.remove(); | |
| delete data.Pf; | |
| } | |
| data.hg(x); | |
| } | |
| } | |
| }; | |
| /** | |
| * @param {?} obj | |
| * @param {string} e | |
| * @param {boolean} recurring | |
| * @return {undefined} | |
| */ | |
| var done = function(obj, e, recurring) { | |
| if (obj.ia && obj.ia.j("active")) { | |
| updateNodeHtml(obj.ia); | |
| if (obj.Ac && obj.Ac.id() == e) { | |
| return; | |
| } | |
| /** @type {number} */ | |
| obj.rm = Number.MAX_VALUE; | |
| } | |
| if (obj.Ac) { | |
| changePage(obj.Ac, false); | |
| } | |
| obj.Ac = pow(obj.pa, e); | |
| var dataAndEvents = obj.Ac.sa; | |
| changePage(e, true); | |
| var msg = urlappend(obj.Ac); | |
| if (msg) { | |
| var codeSegments = msg.children(); | |
| if (codeSegments.length) { | |
| show(codeSegments[0]); | |
| } else { | |
| show(msg); | |
| } | |
| if (!syntax) { | |
| msg.i().g("popover-anchor"); | |
| } | |
| } | |
| obj.ia = addClass(addClass(addClass(jQuery(".annotation-tab[data-id=template]").ya().setData("id", e).g("visible"), "annotation-hidden", markMatch(dataAndEvents)), "section-highlight", splice(dataAndEvents)), "inline-highlight", !splice(dataAndEvents)); | |
| if (dataAndEvents.kc()) { | |
| obj.ia.g("newly-created").find(".button.remove").ca(splice(dataAndEvents) ? callback("Cancel") : callback("Remove")); | |
| } | |
| var stringBuffer = obj.ia.find(".messages"); | |
| if (null == msg) { | |
| stringBuffer.append(createElement("div", "message detached").setData("sort", "0").append(createElement("div", "info").ca(callback("These comments refer to a section of the document that has been deleted.")))); | |
| } | |
| addClass(obj.ia.find(".input"), "unavailable", !prepend()); | |
| addClass(obj.ia.find(".button.remove, .button.restore"), "unavailable", querySelector()); | |
| obj.pa.Lb(); | |
| obj.Rb = new Text; | |
| obj.Rb.show(); | |
| item.append(obj.ia); | |
| obj.hg(false); | |
| finish(bind(function() { | |
| this.ia.g("active"); | |
| if (recurring) { | |
| var $select = this.ia.find(".message-input .text"); | |
| if (!$select.get().firstChild) { | |
| $select.append(apply("")); | |
| } | |
| $select.focus(); | |
| } | |
| }, obj)); | |
| if (!obj.Ac.kc()) { | |
| var pdataCur = transform(24); | |
| stringBuffer.append(pdataCur); | |
| next("/-/annotation-tab", { | |
| thread_id : obj.pa.tc(), | |
| annotation_id : e, | |
| include_snippet : null == msg, | |
| secret_path : setAttribute() | |
| }, bind(function(some) { | |
| if (this.ia) { | |
| if (this.ia.j("active")) { | |
| pdataCur.remove(); | |
| appendTo(stringBuffer.append(successCallback(get(some.html))), 0); | |
| } | |
| } | |
| }, obj), bind(function() { | |
| pdataCur.remove(); | |
| stringBuffer.append(createElement("div", "error").ca(callback("Could not load the comments for this highlight."))); | |
| return false; | |
| }, obj)); | |
| } | |
| }; | |
| /** | |
| * @param {?} dataAndEvents | |
| * @return {undefined} | |
| */ | |
| self.Us = function(dataAndEvents) { | |
| this.Rb.ua(); | |
| if (this.ia) { | |
| if (this.Ac.id() == dataAndEvents) { | |
| changePage(this.Ac, false); | |
| } | |
| } | |
| /** @type {null} */ | |
| this.ia = null; | |
| }; | |
| /** | |
| * @param {boolean} value | |
| * @return {undefined} | |
| */ | |
| var writeWord = function(value) { | |
| var vec = readFile().Vc; | |
| vec.Ac.sa.Cl(value); | |
| vec.update(); | |
| }; | |
| /** | |
| * @param {boolean} v0 | |
| * @return {undefined} | |
| */ | |
| self.hg = function(v0) { | |
| var node = exec(this.Pf); | |
| if (!node) { | |
| var opt_includeNode; | |
| for (opt_includeNode in this.ge) { | |
| /** @type {boolean} */ | |
| node = true; | |
| break; | |
| } | |
| } | |
| if (!node) { | |
| /** @type {boolean} */ | |
| node = null != this.ia; | |
| } | |
| opt_includeNode = exec(this.lc); | |
| if (node && !opt_includeNode) { | |
| /** @type {number} */ | |
| this.lc = 1337; | |
| this.lc = equals(bind(this.We, this), bind(this.Je, this)); | |
| } else { | |
| if (!node) { | |
| if (opt_includeNode) { | |
| $timeout(this.lc); | |
| delete this.lc; | |
| } | |
| } | |
| } | |
| if (node) { | |
| if (opt_includeNode) { | |
| if (v0) { | |
| isCanvas(this.lc); | |
| } | |
| } | |
| } | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.We = function() { | |
| /** | |
| * @param {Object} frame | |
| * @return {?} | |
| */ | |
| function callback(frame) { | |
| if (frame) { | |
| var tagJSON = frame.i().ga(); | |
| if (tagJSON.height && tagJSON.width) { | |
| /** @type {number} */ | |
| var shift = 0; | |
| if (frame instanceof list) { | |
| switch(frame.xa()) { | |
| case pdataOld: | |
| /** @type {number} */ | |
| shift = 3; | |
| break; | |
| case udataCur: | |
| /** @type {number} */ | |
| shift = -3; | |
| } | |
| } | |
| return tagJSON.top - offset + shift; | |
| } | |
| } | |
| return-1E5; | |
| } | |
| /** | |
| * @return {undefined} | |
| */ | |
| function buildDeck() { | |
| /** @type {string} */ | |
| s.cm = "right"; | |
| /** @type {number} */ | |
| var left = Math.round(x - size / 2); | |
| /** @type {number} */ | |
| var width = 0; | |
| if (left < right) { | |
| /** @type {number} */ | |
| width = right - left; | |
| } else { | |
| if (left + size > winH) { | |
| /** @type {number} */ | |
| width = winH - (left + size); | |
| } | |
| } | |
| /** @type {number} */ | |
| var b = toggleWidth - handleWidth; | |
| /** @type {number} */ | |
| var a = Math.round(toggleWidth / 2 - handleWidth / 2 + 9 - width); | |
| if (28 > a) { | |
| width -= 28 - a; | |
| /** @type {number} */ | |
| a = 28; | |
| } else { | |
| if (a > b) { | |
| width += a - b; | |
| /** @type {number} */ | |
| a = b; | |
| } | |
| } | |
| /** @type {number} */ | |
| s.Tj = left + width; | |
| /** @type {number} */ | |
| s.lA = a; | |
| } | |
| /** | |
| * @return {undefined} | |
| */ | |
| function _top() { | |
| /** @type {number} */ | |
| var left = x - size; | |
| if (left < right) { | |
| /** @type {string} */ | |
| s.cm = "top"; | |
| left = x + 24; | |
| } else { | |
| /** @type {string} */ | |
| s.cm = "bottom"; | |
| } | |
| /** @type {number} */ | |
| s.Tj = left; | |
| } | |
| var data = this.pa.la(); | |
| /** @type {number} */ | |
| var offset = data.ga().top - data.scrollTop(); | |
| var s = { | |
| ft : {}, | |
| et : {} | |
| }; | |
| var j; | |
| for (j in this.ge) { | |
| var d = pow(this.pa, j); | |
| data = objectToString(d); | |
| var x = callback(data); | |
| s.ft[j] = x; | |
| if (0 < x) { | |
| if (urlEncodeIfNecessary()) { | |
| d = urlappend(d); | |
| s.et[j] = d && (d.Hb && data.i().ga().top == d.i().ga().top); | |
| } | |
| } | |
| } | |
| if (this.Pf) { | |
| s.vy = callback(this.pa.ta); | |
| } | |
| j = bind(function() { | |
| /** @type {string} */ | |
| s.cm = "none"; | |
| var targets = jQuery(".annotation-reply[data-id='" + this.Ac.id() + "']"); | |
| if (targets.empty()) { | |
| /** @type {number} */ | |
| s.Tj = Math.round((right + winH) / 2 - size / 2); | |
| } else { | |
| /** @type {number} */ | |
| s.Tj = Math.max(Math.round(targets.ga().top - size), 0); | |
| } | |
| }, this); | |
| if (this.ia) { | |
| /** @type {number} */ | |
| var size = Math.round(this.ia.empty() ? 0 : this.ia.get().getBoundingClientRect().height); | |
| /** @type {number} */ | |
| var toggleWidth = size - this.ia.borderTop() - this.ia.borderBottom(); | |
| /** @type {number} */ | |
| var right = 0; | |
| /** @type {number} */ | |
| var winH = window.innerHeight; | |
| if (data = objectToString(this.Ac)) { | |
| x = callback(data) + offset; | |
| var handleWidth = this.ia.find(".arrow").height(); | |
| if (jQuery(".thread").j("focused")) { | |
| _top(); | |
| } else { | |
| buildDeck(); | |
| } | |
| } else { | |
| j(); | |
| } | |
| if (s.Tj + size < right || s.Tj > winH) { | |
| /** @type {boolean} */ | |
| s.Us = true; | |
| } else { | |
| s.Ak = _getBounds(this.Ac); | |
| } | |
| } | |
| return s; | |
| }; | |
| /** | |
| * @param {Object} e | |
| * @return {undefined} | |
| */ | |
| self.Je = function(e) { | |
| var i; | |
| for (i in this.ge) { | |
| if (val(this.ge[i], e.ft[i]), urlEncodeIfNecessary()) { | |
| var r = e.et[i]; | |
| addClass(this.ge[i], "section-status-offset", r); | |
| var d = pow(this.pa, i); | |
| if (d) { | |
| if (d = objectToString(d)) { | |
| addClass(d.i(), "section-status-offset", r); | |
| } | |
| } | |
| } | |
| } | |
| if (this.Pf) { | |
| val(this.Pf, e.vy); | |
| } | |
| if (this.ia && e.Us) { | |
| updateNodeHtml(this.ia); | |
| } else { | |
| if (this.ia) { | |
| val(this.ia, e.Tj); | |
| i = this.ia.find(".arrow"); | |
| r = e.cm; | |
| addClass(addClass(addClass(addClass(this.ia, "right", "right" == r), "top", "top" == r), "bottom", "bottom" == r), "detached", "none" == r); | |
| if ("right" == r) { | |
| val(i, e.lA); | |
| } else { | |
| css(i, "top"); | |
| } | |
| if (e.Ak) { | |
| Widget(this.Rb, e.Ak); | |
| } | |
| } | |
| } | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| self.tf = function() { | |
| if (this.ia) { | |
| updateNodeHtml(this.ia); | |
| } | |
| var prefixed; | |
| for (prefixed in this.ge) { | |
| this.ge[prefixed].remove(); | |
| delete this.ge[prefixed]; | |
| } | |
| if (exec(this.lc)) { | |
| $timeout(this.lc); | |
| delete this.lc; | |
| } | |
| if (this.Rb) { | |
| this.Rb.ua(); | |
| } | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var Text = function() { | |
| this.pw = sizeDiv.ya().g("top"); | |
| this.Lo = sizeDiv.ya().g("bottom"); | |
| this.yu = sizeDiv.ya().g("left"); | |
| this.ea = this.pw.concat(this.Lo, this.yu); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| Text.prototype.show = function() { | |
| item.append(this.ea); | |
| if (exec(this.Ye)) { | |
| protectedClearTimeout(this.Ye); | |
| delete this.Ye; | |
| } | |
| if (!exec(this.ne)) { | |
| this.ne = finish(bind(function() { | |
| this.ea.g("visible"); | |
| delete this.ne; | |
| }, this)); | |
| } | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| Text.prototype.ua = function() { | |
| if (exec(this.ne)) { | |
| getById(this.ne); | |
| delete this.ne; | |
| } | |
| if (!exec(this.Ye)) { | |
| if (this.ea.j("visible")) { | |
| this.ea.k("visible"); | |
| this.Ye = push(bind(function() { | |
| this.ea.remove(); | |
| delete this.Ye; | |
| }, this), 250); | |
| } else { | |
| this.ea.remove(); | |
| } | |
| } | |
| }; | |
| /** | |
| * @param {HTMLElement} e | |
| * @return {?} | |
| */ | |
| var _getBounds = function(e) { | |
| var coords = urlappend(e); | |
| if (coords) { | |
| e = e.document.la(); | |
| /** @type {number} */ | |
| var height = isContentHeight ? window.pageYOffset : 0; | |
| /** @type {number} */ | |
| var bottom = window.innerHeight + height; | |
| var margin; | |
| if (aborts(join(coords))) { | |
| coords = coords.i().ga(); | |
| /** @type {number} */ | |
| margin = 1; | |
| } else { | |
| coords = coords.fa().ga(); | |
| /** @type {number} */ | |
| margin = 4; | |
| } | |
| coords.top += height; | |
| coords.bottom += height; | |
| /** @type {number} */ | |
| var delta = isContentHeight ? Math.max(window.outerHeight, e.height()) : 0; | |
| return{ | |
| top : Math.max(coords.top - margin, height), | |
| bottom : Math.min(coords.bottom + margin, bottom), | |
| left : e.ga().left, | |
| Cm : delta | |
| }; | |
| } | |
| return{ | |
| top : 0, | |
| bottom : 0, | |
| left : window.innerWidth, | |
| Cm : 0 | |
| }; | |
| }; | |
| /** | |
| * @param {?} data | |
| * @param {?} rect | |
| * @return {undefined} | |
| */ | |
| var Widget = function(data, rect) { | |
| data.pw.Sa(rect.top); | |
| val(data.Lo, rect.bottom); | |
| if (rect.Cm) { | |
| data.Lo.Sa(rect.Cm - rect.bottom); | |
| } | |
| val(data.yu, rect.top).Sa(rect.bottom - rect.top).gb(rect.left); | |
| }; | |
| var sizeDiv = createElement("div", "annotation-document-cover"); | |
| $("dialog-cleanup", "annotation-tab", function() { | |
| if (this.find(".message-input").j("dirty")) { | |
| return false; | |
| } | |
| var io = readFile().Vc; | |
| io.Rb.ua(); | |
| if (io.ia && io.ia.wa(this)) { | |
| var E = urlappend(io.Ac); | |
| if (E) { | |
| E.i().k("popover-anchor"); | |
| } | |
| changePage(io.Ac, false); | |
| } | |
| return true; | |
| }); | |
| $("transitionend", "annotation-tab", function() { | |
| if (!this.j("active")) { | |
| var s = readFile().Vc; | |
| this.remove(); | |
| if (s.ia) { | |
| if (s.ia.wa(this)) { | |
| /** @type {null} */ | |
| s.ia = null; | |
| /** @type {number} */ | |
| s.rm = Number.MAX_VALUE; | |
| s.hg(false); | |
| if (this.j("newly-created")) { | |
| s = s.Ac.sa; | |
| if (this.j("remove-highlight") || splice(s)) { | |
| s.remove(); | |
| } | |
| } | |
| settings.update(); | |
| vec.update(); | |
| } | |
| } | |
| } | |
| return true; | |
| }); | |
| $("input", "annotation-tab", function() { | |
| addClass(this, "dirty", arrayContains(this.find(".text,.files").normalize())); | |
| return true; | |
| }); | |
| $("send-setup", "annotation-tab", function() { | |
| var result = this.parent(".dialog"); | |
| var that = readFile().Vc.Ac; | |
| if (result.j("newly-created")) { | |
| result.k("newly-created").find(".button.remove").ca(callback("Archive [verb]")); | |
| } | |
| if (that.kc()) { | |
| var d = this; | |
| that.document.save(function() { | |
| run(d); | |
| }); | |
| d.g("waiting"); | |
| return false; | |
| } | |
| this.setData("annotation-id", that.id()); | |
| return true; | |
| }); | |
| $("click", "annotation-tab-close", function() { | |
| var parentNode = this.parent(".dialog"); | |
| var msg = parentNode.find(".message-input"); | |
| if (msg.j("dirty") && !msg.j("waiting")) { | |
| removeClass(callback("Send pending message before closing?"), callback("Send"), callback("Discard"), function(dataAndEvents) { | |
| if (dataAndEvents) { | |
| run(msg); | |
| } | |
| updateNodeHtml(parentNode); | |
| }, void 0, true); | |
| } else { | |
| updateNodeHtml(parentNode); | |
| } | |
| return false; | |
| }); | |
| $("click", "annotation-tab-remove", function() { | |
| var result = this.parent(".dialog"); | |
| if (result.j("newly-created")) { | |
| return result.g("remove-highlight"), updateNodeHtml(result), false; | |
| } | |
| writeWord(true); | |
| return false; | |
| }); | |
| $("click", "annotation-tab-restore", function() { | |
| writeWord(false); | |
| return false; | |
| }); | |
| $("mouseover", "annotation-gutter-icon", function() { | |
| var e = this.data("id"); | |
| posFromMouse(e, "focused", true); | |
| return true; | |
| }); | |
| $("mouseout", "annotation-gutter-icon", function() { | |
| var e = this.data("id"); | |
| posFromMouse(e, "focused", false); | |
| return true; | |
| }); | |
| $("click", "annotation-focused-section-highlight", function() { | |
| var pluginMap = getNext(); | |
| if (pluginMap) { | |
| removeEventListener(pluginMap.id(), true); | |
| } | |
| return false; | |
| }); | |
| attempt(function() { | |
| mod2(function(result, el) { | |
| var e = result.document.Vc; | |
| if (e.ia) { | |
| if (e.Ac == result) { | |
| if (value(el, 12)) { | |
| addClass(e.ia, "annotation-hidden", markMatch(result.sa)); | |
| } | |
| } | |
| } | |
| }); | |
| }); | |
| /** | |
| * @return {undefined} | |
| */ | |
| var background = function() { | |
| this.Ss = createElement("div", "button highlight"); | |
| this.Ts = createElement("div", "byline"); | |
| this.hk = createElement("div", "popver-anchor").setData("click", "annotation-tab").setData("mousedown", "no-caret-move").append(this.Ss).append(this.Ts); | |
| Observable.call(this, "annotation-inspector", this.hk, new RootToken); | |
| }; | |
| inherits(background, Observable); | |
| /** | |
| * @return {undefined} | |
| */ | |
| background.prototype.update = function() { | |
| if (this.anchor.Jb()) { | |
| var pluginMap = _clone(); | |
| var classNames = dequeue(pluginMap.id()); | |
| this.hk.setData("id", pluginMap.id()); | |
| addClass(this.Ss, "numbered", 0 < classNames).ca(classNames || ""); | |
| this.Ts.ca(_update(pluginMap.sa)); | |
| this.show(); | |
| } else { | |
| this.ua(); | |
| } | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| var RootToken = function() { | |
| }; | |
| inherits(RootToken, ctorB); | |
| /** | |
| * @return {?} | |
| */ | |
| RootToken.prototype.Jb = function() { | |
| /** @type {(Selection|null)} */ | |
| var selection = window.getSelection(); | |
| if (!selection || (0 == selection.rangeCount || (!selection.isCollapsed || !encodeURIComponent()))) { | |
| return false; | |
| } | |
| selection = _clone(); | |
| return!selection || splice(selection.sa) ? false : $p1 != selection; | |
| }; | |
| var vec = new background; | |
| /** | |
| * @param {?} config | |
| * @return {undefined} | |
| */ | |
| var C = function(config) { | |
| this.pa = config; | |
| /** @type {null} */ | |
| this.ia = this.Vk = this.Rb = null; | |
| /** @type {number} */ | |
| this.nj = 0; | |
| /** @type {Array} */ | |
| this.zh = []; | |
| /** @type {Array} */ | |
| this.Sm = []; | |
| /** @type {null} */ | |
| this.zd = null; | |
| /** @type {string} */ | |
| this.Zu = "false"; | |
| }; | |
| /** @type {null} */ | |
| var destination = null; | |
| self = C.prototype; | |
| /** | |
| * @param {Object} result | |
| * @return {?} | |
| */ | |
| self.ga = function(result) { | |
| /** @type {null} */ | |
| var fz = null; | |
| if (result instanceof Constructor) { | |
| var s = prompt(result.ba.ld()); | |
| if (!s) { | |
| return null; | |
| } | |
| s = toLowerCase(this.pa, s); | |
| if (!s || !$compile(s.xa())) { | |
| return null; | |
| } | |
| result = s.o().vp(result); | |
| if (!result) { | |
| return null; | |
| } | |
| fz = result.ga(); | |
| /** @type {number} */ | |
| fz.Yq = 1; | |
| /** @type {boolean} */ | |
| fz.fz = 13 == s.xa(); | |
| } else { | |
| if (result instanceof list) { | |
| if (aborts(join(result))) { | |
| fz = result.i().ga(); | |
| /** @type {number} */ | |
| fz.Yq = 1; | |
| } else { | |
| fz = result.fa().ga(); | |
| /** @type {number} */ | |
| fz.Yq = 4; | |
| } | |
| } else { | |
| return null; | |
| } | |
| } | |
| return fz; | |
| }; | |
| /** | |
| * @param {Object} elem | |
| * @param {Function} next | |
| * @return {?} | |
| */ | |
| var tag = function(elem, next) { | |
| var scrubbed = {}; | |
| expect(elem.find("div.edit").find("span.insert, span.delete, .li-changed li"), function() { | |
| var e = jQuery(this); | |
| for (;!e.empty() && ("CONTROL" == e.get().tagName || !e.get().id && !e.data("section-id"));) { | |
| e = e.parent(); | |
| } | |
| if (!e.empty()) { | |
| var match = e.get().id || e.data("section-id"); | |
| /** @type {boolean} */ | |
| scrubbed[match] = true; | |
| if (next && !next(e, match)) { | |
| return false; | |
| } | |
| } | |
| }); | |
| return Object.keys(scrubbed); | |
| }; | |
| /** | |
| * @param {?} type | |
| * @return {undefined} | |
| */ | |
| self.open = function(type) { | |
| var value = eventType(type.parent(".page-tear-group").parent().ya(), "id").k("unread"); | |
| var child = value.find(".page-tear-group"); | |
| type = type.ya(); | |
| removeChild(child).append(type); | |
| value.k("edit-expanded"); | |
| eventType(value.find("[data-click='page-tear']"), "click"); | |
| value.find(".page-tear").setData("click", "diff-view"); | |
| child.setData("client-state", "expanded"); | |
| css(child.find(".content-height"), "height"); | |
| css(child.find(".content-body"), "top"); | |
| type.find(".edit").setData("client-state", "expanded"); | |
| type.find(".view").k("hidden").setData("click", "diff-view"); | |
| expect(type.find(".edit-group[data-section-id], .edit-group [id]"), function() { | |
| var target = jQuery(this); | |
| if (!write(target, "CONTROL")) { | |
| target.setData("click", "diff-section").g("clickable").g("fadeable"); | |
| } | |
| }); | |
| eventType(type.find(".clickable .checkboxdiff").parent(".clickable"), "click").k("clickable").k("fadeable"); | |
| eventType(type.find(".clickable").parent(".edit-group.clickable, ul.clickable, tr.clickable"), "click").k("clickable").k("fadeable"); | |
| this.ia = jQuery(".diff-tab.template").ya().g("visible").g("theme-" + this.pa.Rp().ib()); | |
| this.ia.find(".messages").append(value); | |
| this.Zu = this.ia.find(".message-input .text").getAttribute("contenteditable"); | |
| addClass(this.ia.find(".input, .button-list"), "unavailable", !prepend()); | |
| this.ia.find("button.view-comments").setData("thread-id", this.pa.tc()); | |
| var element = this.pa; | |
| /** @type {boolean} */ | |
| var e = false; | |
| value = tag(type, function(exports, boundary) { | |
| exports.g("changed"); | |
| if (!e) { | |
| var key = toLowerCase(element, boundary); | |
| if (key) { | |
| if (!key.qa()) { | |
| /** @type {boolean} */ | |
| e = true; | |
| } | |
| } | |
| } | |
| return true; | |
| }); | |
| if (e) { | |
| if (1 < value.length) { | |
| this.ia.find(".document-inline-edit").append(get("<div class='focus-bar hidden'/>")); | |
| } | |
| item.append(this.ia); | |
| expect(type.find(".clickable"), function() { | |
| var item = jQuery(this); | |
| if (!item.j("changed")) { | |
| if (!start(item, ".changed")) { | |
| eventType(item.k("clickable"), "click"); | |
| expect(item.find(".clickable"), function() { | |
| eventType(jQuery(this).k("clickable"), "click"); | |
| }); | |
| } | |
| } | |
| }); | |
| this.zh = value; | |
| top(this, this.zh); | |
| this.zd = this.zh[0]; | |
| this.Rb = new grid(true, "diff", !isMobile); | |
| this.Rb.show(); | |
| this.Vk = new grid(false, "highlight", !isMobile); | |
| this.Vk.show(); | |
| slide(this, this.zd, 12); | |
| open(this); | |
| finish(bind(function() { | |
| this.ia.g("active"); | |
| var expectationResult = toLowerCase(this.pa, this.zh[0]); | |
| /** @type {null} */ | |
| var otherElementRect = null; | |
| if (expectationResult) { | |
| otherElementRect = this.ga(expectationResult); | |
| } | |
| if (otherElementRect) { | |
| expectationResult = this.pa.Ma.we(); | |
| /** @type {number} */ | |
| var Fi = Math.min(this.ia.get().offsetHeight, layout(this) + 60); | |
| val(this.ia, Math.min(expectationResult.Fi - Fi - 12, Math.max(otherElementRect.top - 60, 12))); | |
| } else { | |
| val(this.ia, 12); | |
| } | |
| }, this)); | |
| destination = this; | |
| this.hg(); | |
| } else { | |
| type = 1 < value.length ? callback("The selected edits are no longer in the document.") : callback("The selected edit is no longer in the document."); | |
| removeClass(type, callback("OK"), null, function() { | |
| }); | |
| } | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| self.close = function() { | |
| close(this.ia); | |
| }; | |
| /** | |
| * @param {?} element | |
| * @param {Array} b | |
| * @param {Object} node | |
| * @return {undefined} | |
| */ | |
| var top = function(element, b, node) { | |
| if (!(1 >= b.length)) { | |
| node = node || {}; | |
| /** @type {number} */ | |
| var bi = 0; | |
| for (;bi < b.length;bi++) { | |
| var y = b[bi]; | |
| if (!(y in node)) { | |
| var offset = toLowerCase(element.pa, y); | |
| offset = offset ? element.ga(offset) : null; | |
| node[y] = offset ? offset.top : 1E5; | |
| } | |
| } | |
| b.sort(function(exp, bool) { | |
| return mk_block(node[exp], node[bool]); | |
| }); | |
| } | |
| }; | |
| /** | |
| * @param {undefined} data | |
| * @param {Array} b | |
| * @param {Object} val | |
| * @param {string} value | |
| * @return {undefined} | |
| */ | |
| var binding = function(data, b, val, value) { | |
| if (null != b) { | |
| top(data, b); | |
| /** @type {Array} */ | |
| data.Sm = b; | |
| } | |
| data.zd = value ? value : b[0]; | |
| slide(data, data.zd); | |
| open(data); | |
| data.ia.find(".fadeable").g("faded").k("focused"); | |
| expect(data.ia.find(".faded .faded"), function() { | |
| var exports = jQuery(this).parent(); | |
| for (;!exports.empty();) { | |
| exports.k("faded"); | |
| exports = exports.parent(); | |
| } | |
| }); | |
| if (exec(val)) { | |
| if (val.j("fadeable")) { | |
| val.k("faded").g("focused"); | |
| } | |
| val = val.find(".fadeable"); | |
| } else { | |
| val = data.ia.find(".fadeable[id='" + b[0] + "'],.fadeable[data-section-id='" + b[0] + "']"); | |
| } | |
| val.k("faded").g("focused"); | |
| }; | |
| /** | |
| * @param {Element} options | |
| * @return {undefined} | |
| */ | |
| var open = function(options) { | |
| /** @type {boolean} */ | |
| var value = false; | |
| /** @type {boolean} */ | |
| var parent = false; | |
| if (options.zd) { | |
| var target = width(options.pa, options.zd); | |
| if (target && !target.qa()) { | |
| value = matchArray(target); | |
| } else { | |
| /** @type {boolean} */ | |
| parent = true; | |
| } | |
| } | |
| var current = options.ia.find(".message-input"); | |
| addClass(current, "disabled", !value); | |
| current.find("div.text").setAttribute("contenteditable", value ? options.Zu : "false"); | |
| current.find("div.placeholder").ca(parent ? "" : callback("Add a comment about this edit")); | |
| addClass(options.ia, "show-view-comments", !parent && !value); | |
| if (!parent) { | |
| if (!value) { | |
| if (!!target) { | |
| parent = matchObject(target); | |
| options.ia.find("button.view-comments").setData("id", parent.id()); | |
| } | |
| } | |
| } | |
| if (value != exec(options.jf)) { | |
| if (value) { | |
| options.jf = createElement("editorui", "annotation-gutter-icon popover-anchor").setData("click", "diff-tab-section-highlight").setData("mousedown", "no-caret-move").setAttribute("title", callback("Add a comment")); | |
| ok(options.jf, false); | |
| options.pa.la().append(options.jf); | |
| } else { | |
| options.jf.remove(); | |
| delete options.jf; | |
| } | |
| } | |
| value = options.ia.find(".focus-bar"); | |
| if (!value.empty()) { | |
| parent = options.ia.find(".clickable[id='" + options.zd + "'],.clickable[data-section-id='" + options.zd + "']").ga(); | |
| options = _qwery(options.ia.find(".content-body")); | |
| val(value, parent.top - options.top + -2 - 2).Sa(parent.height - -2 + 4); | |
| } | |
| }; | |
| /** | |
| * @param {number} data | |
| * @param {?} f | |
| * @param {Object} b | |
| * @return {undefined} | |
| */ | |
| var slide = function(data, f, b) { | |
| var o = data.pa.Ma.we(); | |
| if (!exec(b)) { | |
| b = data.ia.get().offsetTop; | |
| } | |
| /** @type {number} */ | |
| var lvl = Math.min(data.ia.get().offsetHeight - 75, layout(data)); | |
| o.bd += b + 75; | |
| /** @type {number} */ | |
| o.Fi = lvl; | |
| o.bf = o.bd + o.Fi; | |
| if (f = width(data.pa, f)) { | |
| show(f, null, true, o); | |
| data.nj = data.pa.la().width(); | |
| } | |
| }; | |
| /** | |
| * @param {number} m | |
| * @return {?} | |
| */ | |
| var layout = function(m) { | |
| var n = m.pa.Ma.we(); | |
| /** @type {number} */ | |
| m = m.ia.get().offsetHeight - m.ia.find(".messages").get().offsetHeight; | |
| /** @type {number} */ | |
| n = n.Fi - 24; | |
| return Math.max(Math.min(400, n - m), 0.75 * n - m); | |
| }; | |
| /** | |
| * @return {undefined} | |
| */ | |
| self.hg = function() { | |
| /** @type {boolean} */ | |
| var _tryInitOnFocus = null != this.ia; | |
| var _isFocused = exec(this.lc); | |
| if (_tryInitOnFocus && !_isFocused) { | |
| /** @type {number} */ | |
| this.lc = 1337; | |
| this.lc = equals(bind(this.We, this), bind(this.Je, this)); | |
| } else { | |
| if (!_tryInitOnFocus) { | |
| if (_isFocused) { | |
| $timeout(this.lc); | |
| delete this.lc; | |
| } | |
| } | |
| } | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| self.We = function() { | |
| if (!this.ia) { | |
| return{}; | |
| } | |
| var y = this.pa.Ma; | |
| var e = y.we(); | |
| var a = { | |
| kz : layout(this) | |
| }; | |
| var item = this.pa.la(); | |
| /** @type {number} */ | |
| var delta = isContentHeight ? Math.max(window.outerHeight, item.height()) : 0; | |
| /** @type {Array} */ | |
| var content = []; | |
| /** @type {Array} */ | |
| var strip = []; | |
| var c = {}; | |
| /** @type {null} */ | |
| var GET = null; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < this.zh.length;i++) { | |
| var eventName = this.zh[i]; | |
| var entry = toLowerCase(this.pa, eventName); | |
| /** @type {boolean} */ | |
| var r = -1 != this.Sm.indexOf(eventName); | |
| if (entry && (!entry.qa() && 3 != entry.type())) { | |
| var pos = this.ga(entry); | |
| if (null !== pos) { | |
| var offset = pos.Yq; | |
| /** @type {null} */ | |
| var str = null; | |
| if (entry instanceof list) { | |
| str = entry.bc(); | |
| for (;str && processMessage(str.xa());) { | |
| str = str.bc(); | |
| } | |
| } | |
| /** @type {number} */ | |
| c[eventName] = pos.top - offset; | |
| /** @type {number} */ | |
| var n = pos.top - offset; | |
| pos = pos.bottom + offset; | |
| if (content.length && (str == GET || n - 64 <= content[content.length - 1].bottom)) { | |
| if (pos > content[content.length - 1].bottom) { | |
| content[content.length - 1].bottom = pos; | |
| } | |
| content[content.length - 1].Ev.push(eventName); | |
| } else { | |
| content.push({ | |
| Ev : [eventName], | |
| top : n, | |
| bottom : pos, | |
| left : item.ga().left, | |
| Cm : delta | |
| }); | |
| } | |
| GET = entry; | |
| if (r) { | |
| if (strip.length && n - 64 <= strip[strip.length - 1].bottom) { | |
| if (pos > strip[strip.length - 1].bottom) { | |
| strip[strip.length - 1].bottom = pos; | |
| } | |
| } else { | |
| strip.push({ | |
| top : n, | |
| bottom : pos, | |
| left : item.ga().left | |
| }); | |
| } | |
| } | |
| } | |
| } | |
| } | |
| /** @type {number} */ | |
| i = 0; | |
| for (;i < content.length;i++) { | |
| top(this, content[i].Ev, c); | |
| } | |
| /** @type {Array} */ | |
| a.hp = content; | |
| /** @type {Array} */ | |
| a.hq = strip; | |
| a.Oy = this.Sm; | |
| if (!this.zd) { | |
| return a; | |
| } | |
| item = toLowerCase(this.pa, this.zd); | |
| if (!item) { | |
| return a; | |
| } | |
| delta = y.qk(); | |
| content = this.ga(item); | |
| if (item instanceof list) { | |
| content = item.i(); | |
| for (;!("offsetTop" in content.get() || content.empty());) { | |
| content = content.parent(); | |
| } | |
| if (content.empty()) { | |
| return a; | |
| } | |
| /** @type {number} */ | |
| y = 0; | |
| switch(item.xa()) { | |
| case pdataOld: | |
| /** @type {number} */ | |
| y = 3; | |
| break; | |
| case udataCur: | |
| /** @type {number} */ | |
| y = -3; | |
| } | |
| item = content.get(); | |
| for (;item && item != delta;item = item.offsetParent) { | |
| y += item.offsetTop; | |
| } | |
| } else { | |
| y = content.top + e.bd; | |
| if (content.fz) { | |
| y += 4; | |
| } | |
| } | |
| delta = this.ia.get().offsetTop + this.ia.get().clientTop; | |
| item = this.ia.get().offsetHeight; | |
| /** @type {number} */ | |
| e = y - delta - 9 - e.bd; | |
| if (25 <= e) { | |
| if (e < item - 70) { | |
| /** @type {number} */ | |
| a.Es = e; | |
| } | |
| } | |
| if (this.jf) { | |
| a.ty = y; | |
| } | |
| return a; | |
| }; | |
| /** | |
| * @param {Object} p | |
| * @return {undefined} | |
| */ | |
| self.Je = function(p) { | |
| if (this.ia) { | |
| this.ia.find(".messages").ja("max-height", p.kz + "px"); | |
| var rvar = this.ia.find(".arrow"); | |
| if (exec(p.Es)) { | |
| val(rvar, p.Es); | |
| this.ia.k("detached"); | |
| } else { | |
| this.ia.g("detached"); | |
| } | |
| if (this.jf) { | |
| val(this.jf, p.ty); | |
| } | |
| /** @type {boolean} */ | |
| var modId = rvar = false; | |
| if (p.Oy.length) { | |
| /** @type {boolean} */ | |
| rvar = !(0 < p.hq.length); | |
| /** @type {boolean} */ | |
| modId = 1 == this.Sm.length; | |
| } else { | |
| /** @type {boolean} */ | |
| rvar = !(0 < p.hp.length); | |
| /** @type {boolean} */ | |
| modId = 1 == this.zh.length; | |
| } | |
| if (rvar) { | |
| var _results = this.ia.find(".error-bar .info"); | |
| if (modId) { | |
| _results.ca(callback("The selected edit is no longer in the document.")); | |
| } else { | |
| _results.ca(callback("The selected edits are no longer in the document.")); | |
| } | |
| addClass(this.ia, "singular", modId); | |
| } | |
| addClass(this.ia, "missing", rvar); | |
| if (p.hp) { | |
| tick(this.Rb, p.hp); | |
| } | |
| if (p.hq) { | |
| tick(this.Vk, p.hq); | |
| } | |
| if (this.zd) { | |
| if (this.nj != this.pa.la().width()) { | |
| slide(this, this.zd); | |
| } | |
| } | |
| } | |
| }; | |
| /** | |
| * @param {(Array|string)} list | |
| * @return {?} | |
| */ | |
| var size = function(list) { | |
| if (!list.zd) { | |
| return null; | |
| } | |
| var e = width(list.pa, list.zd); | |
| if (!e || (e.qa() || !matchArray(e))) { | |
| return null; | |
| } | |
| list = array(list.pa.Ze, e); | |
| /** @type {number} */ | |
| var p = 0; | |
| for (;p < list.length;p++) { | |
| var n = list[p]; | |
| if (!markMatch(n.sa)) { | |
| return n; | |
| } | |
| } | |
| return parseFile(e); | |
| }; | |
| $("click", "diff-section", function() { | |
| var pdataCur = destination; | |
| if (!pdataCur) { | |
| return true; | |
| } | |
| var b = this.getAttribute("id") || this.data("section-id"); | |
| if (!b) { | |
| b = this.parent("[id]").getAttribute("id") || this.parent("[data-section-id]").data("section-id"); | |
| } | |
| binding(pdataCur, [b]); | |
| pdataCur.ia.find(".focus-bar").k("hidden"); | |
| return false; | |
| }); | |
| $("click", "diff-view", function() { | |
| var pdataCur = destination; | |
| if (!pdataCur) { | |
| return false; | |
| } | |
| var indents = this.j("page-tear") ? this : this.parent(".page-tear"); | |
| binding(pdataCur, [], indents, pdataCur.zd); | |
| return false; | |
| }); | |
| $("input", "diff-tab", function() { | |
| addClass(this, "dirty", arrayContains(this.find(".text,.files").normalize())); | |
| return true; | |
| }); | |
| $("click", "diff-tab-close", function() { | |
| var origContext = this.parent(".dialog"); | |
| close(origContext); | |
| return true; | |
| }); | |
| $("click", "diff-tab-section-highlight", function() { | |
| var result = destination; | |
| if (result) { | |
| var io = size(result) | |
| } | |
| if (io) { | |
| result.close(); | |
| removeEventListener(io.id(), true); | |
| } | |
| return false; | |
| }); | |
| $("send-setup", "diff-tab", function() { | |
| var result = destination; | |
| if (result) { | |
| var that = size(result) | |
| } | |
| if (!that) { | |
| return removeClass("A comment cannot be added to the selected edit.", callback("OK"), null, function() { | |
| }), false; | |
| } | |
| if (that.kc()) { | |
| var d = this; | |
| that.document.save(function() { | |
| run(d); | |
| }); | |
| d.g("waiting"); | |
| return false; | |
| } | |
| this.setData("annotation-id", that.id()).g("sending"); | |
| return true; | |
| }); | |
| $("send-cleanup", "diff-tab", function() { | |
| var result = destination; | |
| if (result) { | |
| result.close(); | |
| } | |
| return true; | |
| }); | |
| $("dialog-cleanup", "diff-tab", function() { | |
| var e = destination; | |
| e.Rb.ua(); | |
| e.Vk.ua(); | |
| e.ia.k("animate"); | |
| if (e.jf) { | |
| e.jf.remove(); | |
| } | |
| return true; | |
| }); | |
| $("transitionend", "diff-tab", function() { | |
| if (this.j("active")) { | |
| this.g("animate"); | |
| } else { | |
| var e = destination; | |
| this.remove(); | |
| if (e.ia) { | |
| if (e.ia.wa(this)) { | |
| /** @type {null} */ | |
| e.ia = null; | |
| e.Rb.ua(); | |
| e.Vk.ua(); | |
| /** @type {null} */ | |
| destination = null; | |
| css(e.pa.la(), "paddingTop"); | |
| if (!isMobile) { | |
| right(getInnerWidth()); | |
| } | |
| e.hg(); | |
| } | |
| } | |
| } | |
| return true; | |
| }); | |
| /** | |
| * @param {Object} evt | |
| * @param {Function} callback | |
| * @return {undefined} | |
| */ | |
| var getClipboardDataByPastebin = function(evt, callback) { | |
| /** @type {(Selection|null)} */ | |
| var selection = window.getSelection(); | |
| var srange; | |
| if (selection) { | |
| if (selection.rangeCount) { | |
| srange = selection.getRangeAt(0); | |
| } | |
| } | |
| var focus = document.activeElement; | |
| var selected = setStyle(createElement("div").setAttribute("contenteditable", "true"), { | |
| position : "absolute", | |
| top : "-1000px", | |
| left : "-1000px" | |
| }); | |
| item.append(selected); | |
| selected.focus(); | |
| finish(function() { | |
| var data = parents(selected); | |
| selected.remove(); | |
| if (focus) { | |
| focus.focus(); | |
| } | |
| /** @type {(Selection|null)} */ | |
| selection = window.getSelection(); | |
| selection.removeAllRanges(); | |
| selection.addRange(srange); | |
| if (data) { | |
| evt["clipboard.js.synthesizedClipboardData"] = { | |
| types : ["text/html"], | |
| /** | |
| * @return {?} | |
| */ | |
| getData : function() { | |
| return data; | |
| } | |
| }; | |
| callback(); | |
| } | |
| }); | |
| }; | |
| /** | |
| * @param {Object} c | |
| * @return {?} | |
| */ | |
| var getFile = function(c) { | |
| if ("clipboard.js.synthesizedClipboardData" in c) { | |
| return false; | |
| } | |
| if (!c.clipboardData) { | |
| return true; | |
| } | |
| c = c.clipboardData.types; | |
| return external ? sortFunction(c, ["text/plain"]) : isCORS && (!applyIfNotSet && (!isMobile && c)) ? (c = slice(value, c), (c("text/rtf") || c("public.rtf")) && (!c("text/html") && (!c("application/vnd.quip.sections+pblite") && !c("image/vnd.quip.image-section")))) : false; | |
| }; | |
| /** | |
| * @param {string} str | |
| * @return {?} | |
| */ | |
| var escape = function(str) { | |
| str = (new Access).Ij(str); | |
| return str = str.replace(/./g, function(s) { | |
| var date = s.charCodeAt(0); | |
| if (32 <= date && 127 >= date) { | |
| return s; | |
| } | |
| s = date.toString(16).toUpperCase(); | |
| if (256 > date) { | |
| /** @type {string} */ | |
| s = "0" + s; | |
| } | |
| if (4096 > date) { | |
| /** @type {string} */ | |
| s = "00" + s; | |
| } | |
| return "\\u" + s; | |
| }); | |
| }; | |
| /** | |
| * @param {?} label | |
| * @return {?} | |
| */ | |
| var stylize = function(label) { | |
| return(new Slice).Ij(label); | |
| }; | |
| /** | |
| * @param {string} name | |
| * @param {Function} child | |
| * @return {?} | |
| */ | |
| var isNaN = function(name, child) { | |
| var jQuery = new Slice; | |
| var node = child.oc(); | |
| return jQuery.Oi(node, name); | |
| }; | |
| /** | |
| * @param {?} cookieName | |
| * @return {?} | |
| */ | |
| var toStr = function(cookieName) { | |
| return(new FlatMessage(1)).Ij(cookieName); | |
| }; | |
| /** | |
| * @param {?} n | |
| * @return {undefined} | |
| */ | |
| var above = function(n) { | |
| this.xp = n; | |
| this.Yy = this.gf = new Key(assertEquals(n.i(), "section-float"), n.bc(), n.wc()); | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| above.prototype.Fa = function() { | |
| return this.xp.o(); | |
| }; | |
| /** | |
| * @param {(RegExp|string)} w | |
| * @param {?} x | |
| * @param {?} h | |
| * @return {undefined} | |
| */ | |
| var Key = function(w, x, h) { | |
| /** @type {(RegExp|string)} */ | |
| this.Wd = w; | |
| this.Ki = x; | |
| this.vh = h; | |
| }; | |
| /** | |
| * @param {?} keepData | |
| * @return {?} | |
| */ | |
| Key.prototype.wa = function(keepData) { | |
| return keepData.Wd == this.Wd && (keepData.Ki == this.Ki && keepData.vh == this.vh); | |
| }; | |
| /** | |
| * @param {Object} e | |
| * @param {number} s | |
| * @param {Object} x | |
| * @return {?} | |
| */ | |
| var onMouseMove = function(e, s, x) { | |
| if (s) { | |
| if (s.cb()) { | |
| return 0; | |
| } | |
| } else { | |
| if (x && x.cb()) { | |
| return 0; | |
| } | |
| } | |
| e = e.clientX; | |
| s = readFile().la(); | |
| var start = _qwery(s); | |
| x = s.paddingLeft(); | |
| var c = s.paddingRight(); | |
| start = start.left + x; | |
| /** @type {number} */ | |
| s = s.width() - x - c; | |
| return e < start + 0.2 * s ? 1 : e > start + 0.8 * s ? 2 : 0; | |
| }; | |
| /** @type {null} */ | |
| var conn = null; | |
| $("dragstart", "section-drag", function(d) { | |
| var self = _nodeUID(this); | |
| if (d.target != self.Db.get()) { | |
| return true; | |
| } | |
| if (!self.o().rq()) { | |
| return console.warn("Got a dragstart event for an undraggable section", self.id(), ", ignoring"), true; | |
| } | |
| self = conn = new above(self); | |
| self.Em = self.Fa().ew(d); | |
| return true; | |
| }); | |
| $("dragend", "section-drag", function(event) { | |
| if (!conn) { | |
| return true; | |
| } | |
| stopEvent(event); | |
| event = conn; | |
| event.Fa().Xo(event.Em); | |
| /** @type {null} */ | |
| conn = null; | |
| return true; | |
| }); | |
| $("dragover", "section-drag", function(event) { | |
| if (isValidFileDrag(event)) { | |
| return stopEvent(event), true; | |
| } | |
| if (!conn) { | |
| return true; | |
| } | |
| stopEvent(event); | |
| a: { | |
| var data = conn; | |
| /** @type {null} */ | |
| var key = null; | |
| /** @type {null} */ | |
| var ctx = null; | |
| var node = event.target; | |
| for (;node;node = node.parentNode) { | |
| if (node == data.Em.get()) { | |
| key = new Key(onMouseMove(event, data.gf.Ki, data.gf.vh), data.gf.Ki, data.gf.vh); | |
| break; | |
| } | |
| if (ctx = _nodeUID(node)) { | |
| break; | |
| } | |
| } | |
| if (!key) { | |
| if (!ctx) { | |
| ctx = within(readFile(), event); | |
| } | |
| if (!ctx) { | |
| console.warn("Couldn't find section in dragover, target was " + event.target.nodeName); | |
| break a; | |
| } | |
| key = data.xp; | |
| var obj = ctx; | |
| var thisMouseY = event.clientY; | |
| var base = _qwery(obj.i()).top; | |
| var range = obj.i().height(); | |
| ctx = obj.bc(); | |
| node = obj; | |
| if (thisMouseY > base + 0.5 * range) { | |
| ctx = obj; | |
| node = obj.wc(); | |
| } | |
| if (ctx == key) { | |
| ctx = key.bc(); | |
| } else { | |
| if (node == key) { | |
| node = key.wc(); | |
| } | |
| } | |
| event = onMouseMove(event, ctx, node); | |
| key = new Key(event, ctx, node); | |
| } | |
| if (!(data.gf && data.gf.wa(key))) { | |
| data.gf = key; | |
| data.Fa().gv(key, data.Em); | |
| } | |
| } | |
| return true; | |
| }); | |
| $("drop", "section-drag", function(e) { | |
| if (isValidFileDrag(e)) { | |
| stopEvent(e); | |
| var name = readFile(); | |
| var ret = within(name, e); | |
| name = token(name, ret); | |
| upload_file(e.dataTransfer.files[0], name); | |
| name.Ua(); | |
| return true; | |
| } | |
| if (!conn) { | |
| return true; | |
| } | |
| stopEvent(e); | |
| e = conn; | |
| e.Fa().Xo(e.Em); | |
| if (e.gf) { | |
| if (!e.Yy.wa(e.gf)) { | |
| e.Fa().Cs(e.gf); | |
| e.xp.Ua(); | |
| } | |
| } else { | |
| console.warn("No drop info in drop, ignoring"); | |
| } | |
| return true; | |
| }); | |
| var Vu; | |
| /** | |
| * @param {Node} node | |
| * @return {?} | |
| */ | |
| var autoCode = function(node) { | |
| if (node.nodeType == SELECT) { | |
| return 1; | |
| } | |
| if (8 == node.nodeType || !node.nodeName) { | |
| return 2; | |
| } | |
| switch(node.nodeName) { | |
| case "A": | |
| ; | |
| case "B": | |
| ; | |
| case "I": | |
| ; | |
| case "U": | |
| ; | |
| case "BR": | |
| ; | |
| case "H1": | |
| ; | |
| case "H2": | |
| ; | |
| case "H3": | |
| ; | |
| case "H4": | |
| ; | |
| case "H5": | |
| ; | |
| case "P": | |
| ; | |
| case "UL": | |
| ; | |
| case "OL": | |
| ; | |
| case "LI": | |
| ; | |
| case "DIV": | |
| ; | |
| case "SPAN": | |
| ; | |
| case "DT": | |
| ; | |
| case "DD": | |
| ; | |
| case "TABLE": | |
| ; | |
| case "CAPTION": | |
| ; | |
| case "TR": | |
| ; | |
| case "TD": | |
| ; | |
| case "TH": | |
| ; | |
| case "PRE": | |
| return 1; | |
| case "INPUT": | |
| ; | |
| case "FORM": | |
| ; | |
| case "HEAD": | |
| ; | |
| case "META": | |
| ; | |
| case "LINK": | |
| ; | |
| case "#comment": | |
| return 2; | |
| } | |
| return 3; | |
| }; | |
| /** @type {function (Node): ?} */ | |
| autoCode.acceptNode = autoCode; | |
| /** @type {Array.<string>} */ | |
| var req = "h1 h2 h3 p listitem table pre".split(" "); | |
| /** @type {string} */ | |
| var pageSelector = req.join(","); | |
| var root = {}; | |
| /** | |
| * @param {Array} template | |
| * @return {?} | |
| */ | |
| var render = function(template) { | |
| /** | |
| * @param {Object} first | |
| * @param {string} event | |
| * @param {Array} key | |
| * @param {string} number | |
| * @param {Array} callbacks | |
| * @return {?} | |
| */ | |
| function fn(first, event, key, number, callbacks) { | |
| for (;;) { | |
| if (0 == callbacks.length) { | |
| return number; | |
| } | |
| var node = callbacks[callbacks.length - 1][0]; | |
| var part = callbacks[callbacks.length - 1][1]; | |
| /** @type {Object} */ | |
| var p = first; | |
| if (first && !(node !== root || (!event || event && value(req, event)) && event)) { | |
| return number; | |
| } | |
| for (;;) { | |
| if (first) { | |
| p = p.parentNode; | |
| } | |
| if (p === node) { | |
| return number; | |
| } | |
| if (null === p || p === key) { | |
| callbacks.pop(); | |
| if (-1 == part.indexOf("trailing:")) { | |
| number += "</" + part.toLowerCase() + ">"; | |
| } else { | |
| if ("trailing:br" == part) { | |
| /** @type {boolean} */ | |
| g = true; | |
| } else { | |
| number += "<" + part.substring(9) + ">"; | |
| } | |
| } | |
| break; | |
| } | |
| } | |
| } | |
| } | |
| /** | |
| * @param {Node} target | |
| * @param {(number|string)} element | |
| * @param {string} attr | |
| * @param {Array} callbacks | |
| * @return {?} | |
| */ | |
| function get(target, element, attr, callbacks) { | |
| element = element || target.nodeName; | |
| if (0 < callbacks.length) { | |
| var evt = callbacks[callbacks.length - 1][1]; | |
| if (callbacks[callbacks.length - 1][0] === root) { | |
| if (element) { | |
| if (value(req, element)) { | |
| callbacks.pop(); | |
| attr += "</" + evt.toLowerCase() + ">"; | |
| } | |
| } | |
| } | |
| } | |
| callbacks.push([target, element]); | |
| return attr; | |
| } | |
| /** | |
| * @param {(Array|string)} s | |
| * @return {?} | |
| */ | |
| function find(s) { | |
| var results = {}; | |
| s = s.getAttribute("style"); | |
| if (!s) { | |
| return results; | |
| } | |
| s = s.split(";"); | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < s.length;i++) { | |
| var parts = s[i].split(":"); | |
| if (1 == parts.length) { | |
| /** @type {string} */ | |
| results[parts[0].trim()] = ""; | |
| } else { | |
| if (1 < parts.length) { | |
| results[parts[0].trim()] = parts[1].trim(); | |
| } | |
| } | |
| } | |
| return results; | |
| } | |
| /** | |
| * @param {string} style | |
| * @return {?} | |
| */ | |
| function callback(style) { | |
| return(style = style.match(/([0-9.]+)p[tx]/)) ? parseFloat(style[1]) : -1; | |
| } | |
| /** @type {boolean} */ | |
| var isSelf = -1 != template.indexOf("urn:schemas-microsoft-com:office") || (-1 != template.indexOf("=Mso") || -1 != template.indexOf("mso-")); | |
| template = createAndInsertIframeForContent(template); | |
| /** @type {boolean} */ | |
| var g = false; | |
| /** @type {TreeWalker} */ | |
| var element = document.createTreeWalker(template.get(), 5, autoCode, false); | |
| /** @type {Array} */ | |
| var callbacks = []; | |
| /** @type {string} */ | |
| var val = ""; | |
| /** @type {number} */ | |
| var end = 0; | |
| /** @type {boolean} */ | |
| var p = false; | |
| for (;;) { | |
| /** @type {null} */ | |
| var target = null; | |
| if (p) { | |
| for (;;) { | |
| if (target = element.nextSibling(), null == target) { | |
| if (target = element.parentNode(), null == target) { | |
| break; | |
| } | |
| } else { | |
| break; | |
| } | |
| } | |
| } else { | |
| /** @type {(Node|null)} */ | |
| target = element.nextNode(); | |
| } | |
| /** @type {boolean} */ | |
| p = false; | |
| if (null == target) { | |
| break; | |
| } | |
| /** @type {null} */ | |
| var b = null; | |
| /** @type {string} */ | |
| var c = ""; | |
| /** @type {null} */ | |
| var data = null; | |
| /** @type {boolean} */ | |
| var L = false; | |
| /** @type {boolean} */ | |
| var parens = false; | |
| if (target.nodeType == SELECT) { | |
| if (!/^\n+$/.test(target.data)) { | |
| if (data = target.data, callbacks.length && "pre" == callbacks[callbacks.length - 1][1]) { | |
| data = data.split(/[\n\r]/); | |
| /** @type {number} */ | |
| var s = 0; | |
| for (;s < data.length;s++) { | |
| data[s] = tmpl(unCamelCase(data[s])); | |
| } | |
| data = data.join("<br>"); | |
| } else { | |
| data = tmpl(data.replace(/\s+/g, " ")); | |
| } | |
| } | |
| } else { | |
| if (b = target.nodeName.toLowerCase(), "br" == b) { | |
| /** @type {boolean} */ | |
| L = true; | |
| if (0 == sibling(jQuery(target)).text().trim().length) { | |
| /** @type {null} */ | |
| b = null; | |
| } | |
| } else { | |
| if (0 != target.textContent.length || start(jQuery(target), "br")) { | |
| if (0 == target.textContent.length) { | |
| /** @type {boolean} */ | |
| p = true; | |
| } | |
| var style = target.style; | |
| s = style.display || ""; | |
| var current = callback(style.fontSize || ""); | |
| var q = style.fontWeight || ""; | |
| var endpoint = style.fontStyle || ""; | |
| var relativeUrlPrefix = style.textDecoration || ""; | |
| var hosts = callback(style.marginBottom || ""); | |
| style = callback(style.marginTop || ""); | |
| if ("none" == s) { | |
| /** @type {null} */ | |
| b = null; | |
| /** @type {boolean} */ | |
| p = true; | |
| } else { | |
| switch(b) { | |
| case "a": | |
| if ((s = target.getAttribute("href")) && HCHARS.test(s)) { | |
| /** @type {string} */ | |
| c = ' href="' + s + '"'; | |
| } else { | |
| /** @type {null} */ | |
| b = null; | |
| } | |
| break; | |
| case "li": | |
| /** @type {boolean} */ | |
| parens = true; | |
| /** @type {string} */ | |
| b = "listitem"; | |
| /** @type {number} */ | |
| c = 0; | |
| s = jQuery(target).parent("ul,ol"); | |
| for (;!s.parent("ul,ol").empty();) { | |
| c++; | |
| s = s.parent("ul,ol"); | |
| } | |
| /** @type {string} */ | |
| c = ' data-indentation="' + c + '"'; | |
| break; | |
| case "ul": | |
| ; | |
| case "ol": | |
| /** @type {null} */ | |
| b = null; | |
| break; | |
| case "h4": | |
| ; | |
| case "h5": | |
| /** @type {string} */ | |
| b = "h3"; | |
| case "h1": | |
| ; | |
| case "h2": | |
| ; | |
| case "h3": | |
| /** @type {boolean} */ | |
| parens = true; | |
| break; | |
| case "b": | |
| if ("normal" == q) { | |
| /** @type {null} */ | |
| b = null; | |
| } | |
| break; | |
| case "i": | |
| ; | |
| case "u": | |
| break; | |
| case "table": | |
| /** @type {boolean} */ | |
| parens = true; | |
| break; | |
| case "caption": | |
| ; | |
| case "tr": | |
| ; | |
| case "td": | |
| ; | |
| case "th": | |
| break; | |
| case "pre": | |
| /** @type {boolean} */ | |
| parens = true; | |
| break; | |
| default: | |
| var targets = find(target); | |
| if (targets["mso-list"] && /Ignore/.test(targets["mso-list"])) { | |
| /** @type {null} */ | |
| b = null; | |
| /** @type {boolean} */ | |
| p = true; | |
| } else { | |
| if ("p" == b && targets["mso-list"]) { | |
| if (s = targets["mso-list"].match(/level([0-9]+)/)) { | |
| c = s[1]; | |
| /** @type {boolean} */ | |
| parens = true; | |
| /** @type {string} */ | |
| b = "listitem"; | |
| /** @type {string} */ | |
| c = ' data-indentation="' + c + '"'; | |
| } | |
| } else { | |
| if ("p" == b && jQuery(target).j("MsoSubtitle")) { | |
| /** @type {boolean} */ | |
| parens = true; | |
| /** @type {string} */ | |
| b = "h3"; | |
| } else { | |
| if ("span" == b && "bold" == q) { | |
| /** @type {string} */ | |
| b = "b"; | |
| } else { | |
| if ("span" == b && "italic" == endpoint) { | |
| /** @type {string} */ | |
| b = "i"; | |
| } else { | |
| if ("span" == b && "underline" == relativeUrlPrefix) { | |
| /** @type {string} */ | |
| b = "u"; | |
| } else { | |
| if (q = "p", 32 <= current ? q = "h1" : 21 <= current && (q = "h2"), "p" == q || val.substring(end)) { | |
| if ("span" != b && ("div" == b || ("p" == b || s && -1 == s.indexOf("inline")))) { | |
| if (!(2 <= style || 2 <= hosts) || jQuery(target).j("MsoNoSpacing")) { | |
| if (isSelf || "p" != b) { | |
| /** @type {string} */ | |
| c = " class=line"; | |
| } | |
| } | |
| /** @type {string} */ | |
| b = val.substring(end) ? q : "trailing:br"; | |
| } else { | |
| /** @type {null} */ | |
| b = null; | |
| } | |
| } else { | |
| if (0 < end) { | |
| /** @type {string} */ | |
| val = val.substring(0, val.lastIndexOf("<")); | |
| /** @type {string} */ | |
| callbacks[callbacks.length - 1][1] = q; | |
| } | |
| /** @type {string} */ | |
| b = q; | |
| /** @type {boolean} */ | |
| parens = true; | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| ; | |
| } | |
| } | |
| } else { | |
| /** @type {null} */ | |
| b = null; | |
| /** @type {boolean} */ | |
| p = true; | |
| } | |
| } | |
| } | |
| val = fn(parens ? null : target, b, template, val, callbacks); | |
| parens = b || data; | |
| if (!(0 != callbacks.length)) { | |
| if (!!parens) { | |
| if (!(b && (b && value(req, b)))) { | |
| val = get(root, "p", val, callbacks); | |
| val += "<p class=line>"; | |
| /** @type {number} */ | |
| end = val.length; | |
| /** @type {boolean} */ | |
| g = false; | |
| } | |
| } | |
| } | |
| if (b) { | |
| if (b) { | |
| if (value(req, b)) { | |
| if (0 < callbacks.length) { | |
| /** @type {string} */ | |
| b = "br"; | |
| /** @type {boolean} */ | |
| L = true; | |
| } | |
| } | |
| } | |
| } | |
| if (b) { | |
| if (L || (val = get(target, b, val, callbacks)), -1 == b.indexOf("trailing:") && (val += "<" + b + c + ">"), b && value(req, b) || -1 != b.indexOf("br")) { | |
| end = val.length; | |
| /** @type {boolean} */ | |
| g = false; | |
| } | |
| } | |
| if (data) { | |
| if (g) { | |
| end = val.length; | |
| /** @type {boolean} */ | |
| g = false; | |
| val += "<br>"; | |
| } | |
| val += data; | |
| } | |
| } | |
| for (;0 < callbacks.length;) { | |
| val = fn(null, null, template, val, callbacks); | |
| } | |
| return val = val.replace(/ +/g, " "); | |
| }; | |
| /** | |
| * @param {string} array | |
| * @return {?} | |
| */ | |
| var clean = function(array) { | |
| array = array.split(/[\n\r]/); | |
| /** @type {string} */ | |
| var ret = ""; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < array.length;i++) { | |
| var template = array[i]; | |
| template = template.replace(/\s+/g, " "); | |
| template = template.trim(); | |
| template = tmpl(template); | |
| /** @type {string} */ | |
| ret = ret + ("<p class=line>" + template + "</p>"); | |
| } | |
| return ret; | |
| }; | |
| /** | |
| * @param {string} str | |
| * @return {?} | |
| */ | |
| var unCamelCase = function(str) { | |
| return str.replace(/\t/g, template(" ", 4)).replace(/\s\s/g, " \u00a0").replace(/^\s/, "\u00a0"); | |
| }; | |
| /** | |
| * @param {Array} files | |
| * @return {?} | |
| */ | |
| var checkResult = function(files) { | |
| files = filter(files); | |
| var jQuery = new ref; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < files.length;++i) { | |
| jQuery.mc(files[i]); | |
| } | |
| return jQuery; | |
| }; | |
| /** | |
| * @param {Array} data | |
| * @return {?} | |
| */ | |
| var filter = function(data) { | |
| /** | |
| * @param {number} expectedNumberOfNonCommentArgs | |
| * @return {?} | |
| */ | |
| function fn(expectedNumberOfNonCommentArgs) { | |
| var b = new Transform; | |
| b.Ia("temp:" + d++); | |
| b.ri(deepDataAndEvents); | |
| b.mb(expectedNumberOfNonCommentArgs); | |
| b.Xb(0); | |
| return b; | |
| } | |
| /** | |
| * @param {(number|string)} isXML | |
| * @param {Node} value | |
| * @return {?} | |
| */ | |
| function filter(isXML, value) { | |
| var event = fn(expectedNumberOfNonCommentArgs).ja(isXML).Za((new Contact).ca((new Image).ca(md5_hh(value.get(), null, prev)))); | |
| queue.push(event); | |
| return event; | |
| } | |
| /** @type {number} */ | |
| var d = 1; | |
| /** @type {Array} */ | |
| var queue = []; | |
| /** @type {Array} */ | |
| var k = []; | |
| expect(trim(createAndInsertIframeForContent(data)), function() { | |
| var table = jQuery(this); | |
| if (!appendChild(table, ELEMENT_NODE) && table.filter(pageSelector).empty()) { | |
| console.error("Invalid top-level element in sectionRtml: ", table.get()); | |
| } else { | |
| if (write(table, "table")) { | |
| var q = table.find("th, td"); | |
| if (q.empty() || 1 == q.length() && !q.text()) { | |
| queue.pop(); | |
| } else { | |
| if (1 == q.length()) { | |
| filter(0, q); | |
| } else { | |
| q = table.find("caption"); | |
| if (!q.empty()) { | |
| filter(udataCur, q); | |
| } | |
| var templatePromise = fn(3).mb(3).ja(8); | |
| queue.push(templatePromise); | |
| /** @type {Array} */ | |
| var children = []; | |
| expect(table.find("tr"), function(dataAndEvents, deepDataAndEvents) { | |
| var c = jQuery(this); | |
| var copies; | |
| if (0 != deepDataAndEvents) { | |
| copies = fn(5).ja(9).$a((new Collection).vd(templatePromise.Da())); | |
| copies.ve(); | |
| queue.push(copies); | |
| } | |
| /** @type {Array} */ | |
| var keys = []; | |
| expect(c.find("th, td"), function(dataAndEvents, key) { | |
| var child; | |
| if (0 == deepDataAndEvents) { | |
| child = fn(4).ja(10).$a((new Collection).vd(templatePromise.Da())); | |
| children.push(child); | |
| child.ve(); | |
| queue.push(child); | |
| } else { | |
| if (child = children[key], !child) { | |
| return; | |
| } | |
| } | |
| var a; | |
| a = jQuery(this); | |
| a = md5_hh(a.get(), null, prev); | |
| var n = fn(expectedNumberOfNonCommentArgs).ja(0).$a(new Collection); | |
| if (0 == deepDataAndEvents) { | |
| n.hc().vd(child.Da()); | |
| } else { | |
| n.hc().vd(copies.Da()).vd(child.Da()); | |
| keys.push(n); | |
| } | |
| n.Za((new Contact).ca((new Image).ca(a))); | |
| queue.push(n); | |
| }); | |
| if (0 != deepDataAndEvents && keys.length < children.length) { | |
| /** @type {number} */ | |
| c = keys.length; | |
| for (;c < children.length;c++) { | |
| var modId = fn(expectedNumberOfNonCommentArgs).ja(0).$a((new Collection).vd(copies.Da()).vd(children[c].Aa())); | |
| queue.push(modId); | |
| } | |
| } | |
| }); | |
| } | |
| } | |
| } else { | |
| var tag = table.get().nodeName.toLowerCase(); | |
| /** @type {number} */ | |
| q = 0; | |
| switch(tag) { | |
| case "h1": | |
| /** @type {number} */ | |
| q = pdataOld; | |
| break; | |
| case "h2": | |
| /** @type {number} */ | |
| q = 2; | |
| break; | |
| case "h3": | |
| /** @type {number} */ | |
| q = udataCur; | |
| break; | |
| case "pre": | |
| /** @type {number} */ | |
| q = 4; | |
| } | |
| q = filter(q, table); | |
| switch(tag) { | |
| case "p": | |
| /** @type {boolean} */ | |
| table = !table.j("line"); | |
| q.He(new Tag); | |
| cb(q.Pd(), table); | |
| break; | |
| case "listitem": | |
| /** @type {number} */ | |
| table = Number(table.data("indentation")) || 0; | |
| q.He(new Tag); | |
| isPlainObject(q.Pd(), table); | |
| k.push(q); | |
| } | |
| } | |
| } | |
| }); | |
| /** @type {Array} */ | |
| data = []; | |
| /** @type {null} */ | |
| var isXML = null; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < queue.length;++i) { | |
| var p = queue[i]; | |
| if (-1 != k.indexOf(p)) { | |
| if (!isXML) { | |
| isXML = fn(1).ja(5); | |
| data.push(isXML); | |
| } | |
| p.$a((new Collection).vd(isXML.Da())); | |
| } else { | |
| /** @type {null} */ | |
| isXML = null; | |
| } | |
| data.push(p); | |
| } | |
| /** @type {null} */ | |
| isXML = null; | |
| /** @type {number} */ | |
| i = 0; | |
| for (;i < data.length;++i) { | |
| p = data[i]; | |
| isXML = filterFunc(isXML, null); | |
| p.xb(isXML); | |
| } | |
| return data; | |
| }; | |
| /** | |
| * @param {?} $particles | |
| * @param {Array} array | |
| * @param {Object} ml | |
| * @param {number} Tools | |
| * @param {?} values | |
| * @return {undefined} | |
| */ | |
| var List = function($particles, array, ml, Tools, values) { | |
| this.la = $particles; | |
| /** @type {Array} */ | |
| this.nd = array; | |
| /** @type {Object} */ | |
| this.ml = ml; | |
| /** @type {number} */ | |
| this.Cd = Tools; | |
| this.ug = values; | |
| }; | |
| /** | |
| * @param {?} arr | |
| * @return {?} | |
| */ | |
| var shift = function(arr) { | |
| var o = end(); | |
| var codeSegments = createNode(arr.get()); | |
| var options = addAttributes(arr.get()); | |
| /** @type {number} */ | |
| var foundI = -1; | |
| /** @type {number} */ | |
| var scope = -1; | |
| if (o) { | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < codeSegments.length;++i) { | |
| if (codeSegments[i] == o.Eb) { | |
| /** @type {number} */ | |
| foundI = i; | |
| scope = o.Yb; | |
| } | |
| } | |
| } | |
| return new List(arr, codeSegments, options, foundI, scope); | |
| }; | |
| /** | |
| * @param {Object} element | |
| * @return {?} | |
| */ | |
| var doAnimation = function(element) { | |
| for (;element;element = element.parentNode) { | |
| var displayNone = jQuery(element).style("display"); | |
| if (displayNone && ("inline" != displayNone && "inline-block" != displayNone)) { | |
| return jQuery(element); | |
| } | |
| } | |
| return null; | |
| }; | |
| /** | |
| * @param {number} node | |
| * @return {?} | |
| */ | |
| var parseNode = function(node) { | |
| if (0 == node.ml.length) { | |
| return true; | |
| } | |
| if (-1 == node.Cd) { | |
| return false; | |
| } | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i <= node.Cd;++i) { | |
| if (node.ml[i].nodeType != SELECT) { | |
| return false; | |
| } | |
| } | |
| var pos = doAnimation(node.nd[0]); | |
| /** @type {null} */ | |
| i = null; | |
| /** @type {number} */ | |
| i = 0; | |
| for (;i < node.nd.length;++i) { | |
| if (!pos.wa(doAnimation(node.nd[i]))) { | |
| i--; | |
| break; | |
| } | |
| if (0 < node.nd[i].data.trim().length) { | |
| break; | |
| } | |
| } | |
| /** @type {number} */ | |
| pos = i; | |
| var c = node.nd[node.Cd].data; | |
| /** @type {number} */ | |
| var start = 0; | |
| /** @type {number} */ | |
| i = 0; | |
| for (;i < c.length;i++) { | |
| if ("\u00a0" == c.charAt(i) || operate(c.charAt(i))) { | |
| /** @type {number} */ | |
| start = i; | |
| break; | |
| } | |
| } | |
| return node.Cd <= pos && node.ug <= start; | |
| }; | |
| /** | |
| * @param {number} target | |
| * @return {?} | |
| */ | |
| var populate = function(target) { | |
| var j; | |
| if (-1 == target.Cd) { | |
| return false; | |
| } | |
| if (!j) { | |
| /** @type {number} */ | |
| j = 0; | |
| /** @type {number} */ | |
| var i = target.ml.length - 1; | |
| for (;target.ml[i] != target.nd[target.Cd];--i) { | |
| if (target.ml[i].nodeType != SELECT) { | |
| j++; | |
| } | |
| } | |
| if (1 < j) { | |
| return false; | |
| } | |
| } | |
| i = doAnimation(target.nd[target.nd.length - 1]); | |
| /** @type {null} */ | |
| j = null; | |
| /** @type {number} */ | |
| j = target.nd.length - 1; | |
| for (;0 < j;--j) { | |
| if (!i.wa(doAnimation(target.nd[j]))) { | |
| j++; | |
| break; | |
| } | |
| if (0 < target.nd[j].data.trim().length) { | |
| break; | |
| } | |
| } | |
| /** @type {number} */ | |
| i = j; | |
| var input = target.nd[target.Cd].data; | |
| var il = input.length; | |
| /** @type {number} */ | |
| j = input.length - 1; | |
| for (;0 <= j;j--) { | |
| if ("\u00a0" == input.charAt(j) || operate(input.charAt(j))) { | |
| /** @type {number} */ | |
| il = j + 1; | |
| break; | |
| } | |
| } | |
| return target.Cd >= i && target.ug >= il; | |
| }; | |
| /** | |
| * @return {?} | |
| */ | |
| List.prototype.Eh = function() { | |
| /** @type {number} */ | |
| var prevChunksLen = 0; | |
| /** @type {number} */ | |
| var rCount = 0; | |
| for (;rCount < this.nd.length;++rCount) { | |
| prevChunksLen += this.nd[rCount].length; | |
| } | |
| return prevChunksLen; | |
| }; | |
| /** @type {RegExp} */ | |
| var rvar = RegExp("\\b((?:([\\w-]+):(/{1,3})|www[\\.]|(?:[A-Za-z][\\w-]*\\.(?=([A-Za-z][\\w-]*\\.)*(?:com|org|edu|gov|uk|net|ca|de|jp|fr|au|us|ru|ch|it|nl|se|no|es|mil)(?:/|$|\\)|:|\\s))))(?:(?:(?:[^\\s&()]|&|&|")*(?:[^!\"#$%&'()*+,\\.:;<=>?@\\[\\]^`{|}~\\s]))|(?:\\((?:[^\\s&()]|&|&|")*\\)))+)"); | |
| /** @type {RegExp} */ | |
| var HCHARS = /^(http(s)?|ftp|mailto|tel):/; | |
| /** @type {RegExp} */ | |
| var pattern = /[^\-<]\-\-[^\->]/; | |
| var elems = { | |
| "\u2194" : /[^\<](\<\-{1,2}\>)[^\>]/, | |
| "\u2190" : /[^\<](\<\-{1,2})[^\-]/, | |
| "\u2192" : /[^\-](\-{1,2}\>)[^\>]/ | |
| }; | |
| /** @type {RegExp} */ | |
| var vvarText = RegExp("\\b([-\\.\\w]+\\@[-\\w]+(?:\\.[-\\w]+)*\\.(?:com|org|edu|gov|uk|net|ca|de|jp|fr|au|us|ru|ch|it|nl|se|no|es|mil))"); | |
| /** @type {RegExp} */ | |
| var vvar = RegExp("(^|[!\"#'()*,\\.:;<>?@\\[\\]`{|}~\\s])((?:\\+[0-9]+[\\- \\.]*)?(?:\\([0-9]+\\)[\\- \\.]*)?(?:[0-9][0-9\\- \\.][0-9\\- \\.]+[0-9]))($|[!\"#'()*,\\.:;<>?@\\[\\]`{|}~\\s])"); | |
| /** @type {RegExp} */ | |
| var bit = /(.*[^0-9]+)([0-9]+)/; | |
| /** @type {RegExp} */ | |
| var reWhitespace = /^((?:\+[0-9]+[\- \.]*)?(?:\([0-9]+\)[\- \.]*)?(?:[0-9][0-9\- \.][0-9\- \.]+[0-9]))$/; | |
| /** | |
| * @param {Object} match | |
| * @return {?} | |
| */ | |
| var lookAhead = function(match) { | |
| /** @type {string} */ | |
| var matches = "tel:"; | |
| /** @type {number} */ | |
| var i = 0; | |
| for (;i < match.length;i++) { | |
| var ch = match[i]; | |
| if ("0" <= ch && "9" >= ch || "+" == ch) { | |
| matches += ch; | |
| } | |
| } | |
| return matches; | |
| }; | |
| var newMatch = { | |
| matches : false, | |
| Ug : 0, | |
| match : "", | |
| eh : null | |
| }; | |
| /** | |
| * @param {?} parent | |
| * @param {Array} source | |
| * @param {boolean} callback | |
| * @param {boolean} deepDataAndEvents | |
| * @return {?} | |
| */ | |
| var Class = function(parent, source, callback, deepDataAndEvents) { | |
| return walk(function(value, groupName) { | |
| var match; | |
| a: { | |
| /** @type {number} */ | |
| match = 0; | |
| for (;match < variables.length;match++) { | |
| var optgroup = (0, variables[match])(value, groupName); | |
| if (optgroup.matches) { | |
| match = optgroup; | |
| break a; | |
| } | |
| } | |
| match = newMatch; | |
| } | |
| if (!match.matches && (match = iterator(value).match, !match.matches && (match = value.search(pattern), -1 == match ? match = newMatch : (optgroup = apply(value[match] + "\u2014" + value[match + 3]), match = { | |
| matches : true, | |
| Ug : match, | |
| match : value.substr(match, 4), | |
| eh : optgroup | |
| }), !match.matches))) { | |
| /** @type {number} */ | |
| match = -1; | |
| var matches; | |
| var _; | |
| var i; | |
| for (i in elems) { | |
| if (optgroup = elems[i], matches = value.match(optgroup)) { | |
| match = value.search(optgroup); | |
| /** @type {string} */ | |
| _ = i; | |
| break; | |
| } | |
| } | |
| if (_) { | |
| _ = apply(value[match] + _ + value[match + matches[1].length + 1]); | |
| match = { | |
| matches : true, | |
| Ug : match, | |
| match : matches[0], | |
| eh : _ | |
| }; | |
| } else { | |
| match = newMatch; | |
| } | |
| } | |
| return match; | |
| }, parent, source, callback, deepDataAndEvents); | |
| }; | |
| /** | |
| * @param {Function} fn | |
| * @param {?} opts | |
| * @param {Array} s | |
| * @param {number} i | |
| * @param {boolean} action | |
| * @return {?} | |
| */ | |
| var walk = function(fn, opts, s, i, action) { | |
| i = i || false; | |
| action = action || false; | |
| /** @type {null} */ | |
| var el = null; | |
| /** @type {number} */ | |
| var len = -1; | |
| /** @type {boolean} */ | |
| var colons = false; | |
| /** @type {(Selection|null)} */ | |
| var last = window.getSelection(); | |
| if (last && 0 < last.rangeCount) { | |
| var c = end(); | |
| if (c) { | |
| el = c.Eb; | |
| len = c.Yb; | |
| } | |
| } | |
| c = shift(jQuery(s)); | |
| s = c.nd; | |
| if (0 == s.length) { | |
| return false; | |
| } | |
| /** @type {number} */ | |
| last = 0; | |
| /** @type {number} */ | |
| var n = s.length |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment