UNPKG

iripo

Version:

A mutation observer based livequery replacement.

142 lines (141 loc) 4.57 kB
window.requestIdleCallback = window.requestIdleCallback || function(u) { var n = Date.now(); return setTimeout(function() { u({ didTimeout: !1, timeRemaining: function() { return Math.max(0, 50 - (Date.now() - n)); } }); }, 1); }; window.cancelIdleCallback = window.cancelIdleCallback || function(u) { clearTimeout(u); }; const e = window.iripo = { paused: !1, // All mutation functions have been paused at a system level, vs at a function level. allFns: /* @__PURE__ */ new Map(), pausedFns: /* @__PURE__ */ new Map(), inWatchers: /* @__PURE__ */ new Map(), outWatchers: /* @__PURE__ */ new Map(), processedElems: /* @__PURE__ */ new WeakMap(), processingQueued: !1, outElems: /* @__PURE__ */ new Map(), // Elements which are observed for changes (out functions) getSymbol: function(n, t) { const s = Array.from(e.allFns.entries()).find(([a, o]) => { if (a.description === n && t.toString() === o.toString()) return !0; }); return s && s[0]; }, getFn: function(n) { return e.allFns.get(n); }, setAction: function(n, t, s) { const a = s.get(n) || /* @__PURE__ */ new Set(); let o = e.getSymbol(n, t); return o || (o = Symbol(n), e.allFns.set(o, t), s.set(n, a.add(o))), o; }, in: function(n, t, s) { const a = e.setAction(n, t, e.inWatchers); return s && e.processInFns(), a; }, out: function(n, t) { return e.setAction(n, t, e.outWatchers); }, clear: function(n) { e.allFns.delete(n), e.pausedFns.delete(n), [e.inWatchers, e.outWatchers].forEach(function(t) { t.forEach(function(s) { s.delete(n); }); }); }, pause: function(n) { return e.pausedFns.set(n, !0), n; }, pauseAll: function() { this.paused = !0, e.allFns.forEach(function(n, t) { e.pause(t); }); }, resume: function(n, t) { return typeof t > "u" && (t = !0), this.paused = !1, e.pausedFns.delete(n), t && e.processInFns(), n; }, resumeAll: function() { this.paused = !1, e.allFns.forEach(function(n, t) { e.resume(t, !1); }), e.processInFns(); }, buildOutFn: function({ elem: n, selector: t, fn: s }) { e.outElems.has(n) ? e.outElems.get(n).has(t) ? e.outElems.get(n).get(t).add(s) : e.outElems.get(n).set(t, /* @__PURE__ */ new Set([s])) : e.outElems.set(n, /* @__PURE__ */ new Map([[t, /* @__PURE__ */ new Set([s])]])); }, processInFns: function(n) { if (e.inWatchers.size > 0) { const t = Array.from(e.inWatchers.keys()).join(","); document.querySelectorAll(t).forEach(function(s) { e.inWatchers.forEach(function(a, o) { s.matches(o) && a.forEach(function(i) { if (!e.pausedFns.get(i)) { const r = e.processedElems.get(s); if (!r || !r.has(i)) { const f = e.getFn(i), d = r || /* @__PURE__ */ new Set(); e.processedElems.set(s, d.add(i)), e.buildOutFn({ elem: s, selector: o, fn: () => { var c; (c = e.processedElems.get(s)) == null || c.delete(i); } }), f(s); } } }); }); }); } if (e.outWatchers.size > 0) { const t = Array.from(e.outWatchers.keys()).join(","); document.querySelectorAll(t).forEach(function(s) { e.outWatchers.forEach(function(a, o) { s.matches(o) && a.forEach(function(i) { const r = e.getFn(i); e.buildOutFn({ elem: s, selector: o, fn: r }); }); }); }); } }, processOutFns: function(n) { Array.from(e.outElems.entries()).forEach(([t, s]) => { Array.from(s.entries()).forEach(([a, o]) => { (!t.isConnected || !t.matches(a)) && (o.forEach((i) => i(t)), e.outElems.get(t).delete(a)), e.outElems.get(t).size || e.outElems.delete(t); }); }); } }; window.addEventListener( "DOMContentLoaded", function(n) { e.paused || e.processInFns(); function t(s) { e.paused || e.processingQueued || (e.processingQueued = !0, requestIdleCallback( function() { e.processInFns(s), e.processOutFns(s), e.processingQueued = !1; }, { timeout: 1e3 } )); } new MutationObserver(t).observe( document.documentElement || document.body, { attributes: !0, attributeOldValue: !0, childList: !0, subtree: !0 } ); } ); //# sourceMappingURL=iripo.es.js.map