1$.fn.attrchange.extensions = { disconnect: function (t) { return "undefined" != typeof t && t.isPhysicalDisconnect ? this.each(function () { var t = $(this).data("attrchange-method"); "propertychange" == t || "DOMAttrModified" == t ? $(this).off(t) : "Mutation Observer" == t ? $(this).data("attrchange-obs").disconnect() : "polling" == t && clearInterval($(this).data("attrchange-polling-timer")) }).removeData(["attrchange-method", "attrchange-status"]) : this.data("attrchange-status", "disconnected") }, remove: function () { return $.fn.attrchange.extensions.disconnect.call(this, { isPhysicalDisconnect: !0 }) }, getProperties: function () { var t = $(this).data("attrchange-method"), e = $(this).data("attrchange-pollInterval"); return { method: t, isPolling: "polling" == t, pollingInterval: "undefined" == typeof e ? 0 : parseInt(e, 10), status: "undefined" == typeof t ? "removed" : $(this).data("attrchange-status") } }, reconnect: function () { return this.data("attrchange-status", "connected") }, polling: function (t) { return this.each(t.hasOwnProperty("isComputedStyle") && "true" == t.isComputedStyle ? function (e, a) { if (!t.hasOwnProperty("properties") || "[object Array]" !== Object.prototype.toString.call(t.properties) || 0 == t.properties.length) return !1; for (var n = {}, e = 0; e < t.properties.length; e++) n[t.properties[e]] = $(this).css(t.properties[e]); var a = this; $(this).data("attrchange-polling-timer", setInterval(function () { for (var e, r = {}, o = !1, l = 0; l < t.properties.length; l++) e = $(a).css(t.properties[l]), n[t.properties[l]] !== e && (o = !0, r[t.properties[l]] = { oldValue: n[t.properties[l]], newValue: e }, n[t.properties[l]] = e); o && "connected" === $(a).data("attrchange-status") && t.callback.call(a, r) }, t.pollInterval ? t.pollInterval : 1e3)).data("attrchange-method", "polling").data("attrchange-pollInterval", t.pollInterval).data("attrchange-status", "connected") } : function (e, a) { for (var n, r = {}, e = 0, o = a.attributes, l = o.length; l > e; e++) n = o.item(e), r[n.nodeName] = n.nodeValue; $(a).data("attrchange-polling-timer", setInterval(function () { for (var e, n = {}, o = !1, l = 0, i = a.attributes, s = i.length; s > l; l++) e = i.item(l), r.hasOwnProperty(e.nodeName) && r[e.nodeName] != e.nodeValue ? (n[e.nodeName] = { oldValue: r[e.nodeName], newValue: e.nodeValue }, o = !0) : r.hasOwnProperty(e.nodeName) || (n[e.nodeName] = { oldValue: "", newValue: e.nodeValue }, o = !0), r[e.nodeName] = e.nodeValue; o && "connected" === $(a).data("attrchange-status") && t.callback.call(a, n) }, t.pollInterval ? t.pollInterval : 1e3)).data("attrchange-method", "polling").data("attrchange-pollInterval", t.pollInterval).data("attrchange-status", "connected") }) } };
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.