1 line
6.8 KiB
JavaScript
1 line
6.8 KiB
JavaScript
|
|
var attributesObserver=(whenDefined,MutationObserver)=>{let attributeChanged=records=>{for(let i=0,length=records.length;i<length;i++)dispatch(records[i])},dispatch=({target,attributeName,oldValue})=>{target.attributeChangedCallback(attributeName,oldValue,target.getAttribute(attributeName))};return(target,is)=>{let attributeFilter=target.constructor.observedAttributes;return attributeFilter&&whenDefined(is).then(()=>{new MutationObserver(attributeChanged).observe(target,{attributes:!0,attributeOldValue:!0,attributeFilter:attributeFilter});for(let i=0,length=attributeFilter.length;i<length;i++)target.hasAttribute(attributeFilter[i])&&dispatch({target:target,attributeName:attributeFilter[i],oldValue:null})}),target}};let keys=Object.keys,expando=element=>{let key=keys(element),value=[],ignore=new Set,length=key.length;for(let i=0;i<length;i++){value[i]=element[key[i]];try{delete element[key[i]]}catch(SafariTP){ignore.add(i)}}return()=>{for(let i=0;i<length;i++)ignore.has(i)||(element[key[i]]=value[i])}},TRUE=!0,FALSE=!1,QSA$1="querySelectorAll",notify=(callback,root=document,MO=MutationObserver,query=["*"])=>{let loop=(nodes,selectors,added,removed,connected,pass)=>{for(var node of nodes)(pass||QSA$1 in node)&&(connected?added.has(node)||(added.add(node),removed.delete(node),callback(node,connected)):removed.has(node)||(removed.add(node),added.delete(node),callback(node,connected)),pass||loop(node[QSA$1](selectors),selectors,added,removed,connected,TRUE))},mo=new MO(records=>{if(query.length){var addedNodes,removedNodes,selectors=query.join(","),added=new Set,removed=new Set;for({addedNodes,removedNodes}of records)loop(removedNodes,selectors,added,removed,FALSE,FALSE),loop(addedNodes,selectors,added,removed,TRUE,FALSE)}}),observe=mo.observe;return(mo.observe=node=>observe.call(mo,node,{subtree:TRUE,childList:TRUE}))(root),mo},QSA="querySelectorAll",{document:document$2,Element:Element$1,MutationObserver:MutationObserver$2,Set:Set$2,WeakMap:WeakMap$1}=self,elements=element=>QSA in element,filter=[].filter;var qsaObserver=options=>{let live=new WeakMap$1;let notifier=(element,connected)=>{let selectors;if(connected)for(let q,m=(element=>element.matches||element.webkitMatchesSelector||element.msMatchesSelector)(element),i=0,length=query.length;i<length;i++)m.call(element,q=query[i])&&(live.has(element)||live.set(element,new Set$2),(selectors=live.get(element)).has(q)||(selectors.add(q),options.handle(element,connected,q)));else live.has(element)&&(selectors=live.get(element),live.delete(element),selectors.forEach(q=>{options.handle(element,connected,q)}))},parse=(elements,connected=!0)=>{for(let i=0,length=elements.length;i<length;i++)notifier(elements[i],connected)},query=options.query;var root=options.root||document$2;let observer=notify(notifier,root,MutationObserver$2,query),attachShadow=Element$1.prototype.attachShadow;return attachShadow&&(Element$1.prototype.attachShadow=function(init){init=attachShadow.call(this,init);return observer.observe(init),init}),query.length&&parse(root[QSA](query)),{drop:elements=>{for(let i=0,length=elements.length;i<length;i++)live.delete(elements[i])},flush:()=>{var records=observer.takeRecords();for(let i=0,length=records.length;i<length;i++)parse(filter.call(records[i].removedNodes,elements),!1),parse(filter.call(records[i].addedNodes,elements),!0)},observer:observer,parse:parse}};let{customElements,document:document$1,Element,MutationObserver:MutationObserver$1,Object:Object$1,Promise:Promise$1,Map,Set:Set$1,WeakMap,Reflect}=self,createElement=document$1.createElement,{define,get,upgrade}=customElements,construct=(Reflect||{construct(HTMLElement){return HTMLElement.call(this)}}).construct,{defineProperty,getOwnPropertyNames,setPrototypeOf}=Object$1,shadowRoots=new WeakMap,shadows=new Set$1,classes=new Map,defined=new Map,prototypes=new Map,registry=new Map,shadowed=[],query=[],getCE=is=>registry.get(is)||get.call(customElements,is),handle=(element,connected,selector)=>{selector=prototypes.get(selector);if(connected&&!selector.isPrototypeOf(element)){var redefine=expando(element);overr
|