UNPKG

@webreflection/elements-utils

Version:
1 lines 2 kB
self.elementsUtils=function(e){"use strict";var t=function(e,t,r){var a=new WeakMap,o=new WeakMap,u=[].filter,c=function(e,t){for(var n=0,r=e.length;n<r;n++){var a=e[n],u=a.target,c=a.attributeName,i=a.oldValue,l=u.getAttribute(c);o.get(t).call(u,c,i,l)}},i=function(e){return"querySelectorAll"in e},l=function(e){if(r.length)for(var t=0,n=e.length;t<n;t++){var a=e[t],o=a.addedNodes,c=a.removedNodes;f(u.call(o,i),"c",new Set),f(u.call(c,i),"d",new Set)}},f=function e(o,u,c){for(var i=0,l=o.length;i<l;i++){var f=o[i];c.has(f)||(c.add(f),a.has(f)?a.get(f)[u].forEach(n,f):"c"===u&&t(f),e(f.querySelectorAll(r),u,c))}},s=new MutationObserver(l);return s.observe(e,{childList:!0,subtree:!0}),function(e,t){var n=t.connectedCallback,r=t.disconnectedCallback,u=t.observedAttributes,i=t.attributeChangedCallback;l(s.takeRecords());var f=a.get(e)||function(e){var t={c:new Set,d:new Set};return a.set(e,t),t}(e),d=f.c,v=f.d;if(u){var h=new MutationObserver(c);h.observe(e,{attributes:!0,attributeOldValue:!0,attributeFilter:u.map((function(t){return e.hasAttribute(t)&&i.call(e,t,null,e.getAttribute(t)),t}))}),o.set(h,i)}return r&&v.add(r),n&&(d.add(n),e.ownerDocument.compareDocumentPosition(e)&e.DOCUMENT_POSITION_DISCONNECTED||n.call(e)),e}};function n(e){e.call(this)}var r="function"==typeof Promise?Promise:function(e){var t=[],n=0;return e((function(){n=1,t.splice(0).forEach(r)})),{then:r};function r(e){return n?setTimeout(e):t.push(e),this}};return e.default=function(e,n,a,o,u){var c=function(e,t){for(var n=0,r=e.length;n<r;n++)t.has(e[n])||(t.add(e[n]),i(e[n],t))},i=function(e,t){for(var r=0,o=n.length;r<o;r++)(e.matches||e.webkitMatchesSelector||e.msMatchesSelector).call(e,n[r])&&u(e,a[r]);t&&function(e,t){n.length&&c(e.querySelectorAll(n),t)}(e,t)};return{get:function(e){var t=n.indexOf(e);return t<0?void 0:a[t].o},upgrade:function(e){i(e,new Set)},whenDefined:function(e){if(!(e in o)){var t,n=new r((function(e){t=e}));o[e]={_:t,$:n}}return o[e].$},$:c,_:t(e,i,n)}},e}({}).default;