UNPKG

azure-devops-ui

Version:

React components for building web UI in Azure DevOps

1 lines 2.06 kB
var EventGroup=function(){function f(e){this.id=f.uniqueId++,this.isDisposed=!1,this.parent=e,this.eventRecords=[]}return f.raise=function(e,t,n,i){var s;if(f.isElement(e)){var r=document.createEvent("HTMLEvents");r.initEvent(t,i||!1,!0),Object.assign(r,n)}else for(;e&&!1!==s;){var a=e.__events__,o=a?a[t]:null;if(o)for(var l in o)if(o.hasOwnProperty(l))for(var p=o[l],v=0;!1!==s&&v<p.length;v++){var c=p[v];c.objectCallback&&(s=c.objectCallback.call(c.parent,n))}e=i?e.parent:null}return s},f.isElement=function(e){return!!e&&(!!e.addEventListener||"undefined"!=typeof HTMLElement&&e instanceof HTMLElement)},f.prototype.dispose=function(){this.isDisposed||(this.isDisposed=!0,this.off(),this.parent=null)},f.prototype.on=function(e,t,s){var n,r=this;if(-1<t.indexOf(","))for(n in i=t.split(/[,]+/))this.on(e,n,s);else{var i,a=this.parent,o={target:e,eventName:t,parent:a,callback:s};e.__events__||(e.__events__={}),(i=e.__events__)[t]||(i[t]={}),i[t][this.id]||(i[t][this.id]=[]),i[t][this.id].push(o),f.isElement(e)?(o.elementCallback=i=function(){for(var e,t,n=[],i=0;i<arguments.length;i++)n[i]=arguments[i];if(!r.isDisposed)return!1===(e=s.apply(a,n))&&n[0]&&((t=n[0]).preventDefault&&t.preventDefault(),t.stopPropagation&&t.stopPropagation(),t.cancelBubble=!0),e},e.addEventListener&&e.addEventListener(t,i)):o.objectCallback=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];if(!r.isDisposed)return s.apply(a,e)},this.eventRecords.push(o)}},f.prototype.off=function(e,t,n){for(var i=0;i<this.eventRecords.length;i++){var s,r,a=this.eventRecords[i];e&&e!==a.target||t&&t!==a.eventName||n&&n!==a.callback||((r=(r=(s=a.target.__events__)[a.eventName])?r[this.id]:null)&&(1!==r.length&&n?r.splice(r.indexOf(a),1):delete s[a.eventName][this.id],0===Object.keys(s[a.eventName]).length)&&delete s[a.eventName],a.elementCallback&&a.target.removeEventListener(a.eventName,a.elementCallback,a.options),this.eventRecords.splice(i--,1))}},f.prototype.raise=function(e,t,n){return f.raise(this.parent,e,t,n)},f.uniqueId=0,f}();export{EventGroup};