-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
1 lines (1 loc) · 3.79 KB
/
index.js
1
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(e=e||self).BetterEventManager=n()}(this,(function(){"use strict";function e(e,n){for(var t=0;t<n.length;t++){var r=n[t];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function n(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function t(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){if(!(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e)))return;var t=[],r=!0,i=!1,o=void 0;try{for(var a,f=e[Symbol.iterator]();!(r=(a=f.next()).done)&&(t.push(a.value),!n||t.length!==n);r=!0);}catch(e){i=!0,o=e}finally{try{r||null==f.return||f.return()}finally{if(i)throw o}}return t}(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}var r,i=(r={},function(e){var n=e||"default",t=n?r[n]?r[n]:r[n]=new o(n):new o(n);return t.localEvents=[],t}),o=function(){function r(e){!function(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}(this,r),n(this,"namespace","default"),n(this,"events",{}),n(this,"localEvents",[]),n(this,"onceEvents",[]),n(this,"offlineEvents",[]),this.namespace=e}var i,o,a;return i=r,(o=[{key:"on",value:function(e,n){var t=this;if(Array.isArray(e))e.forEach((function(e){t.on(e,n)}));else{if("string"!=typeof e)throw new Error("event name must be string");if("function"!=typeof n)throw new Error("callback must be function");var r=this.events[e];r||(this.events[e]=r=[]),r.some((function(e){return e.toString()==n.toString()}))||this.localEvents.push([e,n]),r.push(n);var i=[];if(null!=this.offlineEvents&&this.offlineEvents.forEach((function(n,t){e==n.name&&(n.fn(),i.push(t))})),i.length)for(var o=i.length-1;o>=0;o--)this.offlineEvents.splice(i[o],1);if(null==this.offlineEvents)return;this.offlineEvents.length||(this.offlineEvents=null)}}},{key:"once",value:function(e,n){this.onceEvents.push([e,n]),this.on(e,n)}},{key:"_fire",value:function(e){for(var n=this,r=arguments.length,i=new Array(r>1?r-1:0),o=1;o<r;o++)i[o-1]=arguments[o];var a=[];(e=Array.isArray(e)?e:[e]).forEach((function(e){var r=n.events[e],o=Array.isArray(r)?r:[r],f=!0,l=!1,s=void 0;try{for(var u,c=o[Symbol.iterator]();!(f=(u=c.next()).done);f=!0){var v=u.value;if(v){v.apply(n,i);var h=!0,y=!1,p=void 0;try{for(var E,m=n.onceEvents.entries()[Symbol.iterator]();!(h=(E=m.next()).done);h=!0){var d=t(E.value,2),b=d[0],g=t(d[1],2),w=g[0],A=g[1];a.push([w,A]),n.onceEvents.splice(b,1)}}catch(e){y=!0,p=e}finally{try{h||null==m.return||m.return()}finally{if(y)throw p}}}}}catch(e){l=!0,s=e}finally{try{f||null==c.return||c.return()}finally{if(l)throw s}}})),a.forEach((function(e){var r=t(e,2),i=r[0],o=r[1];n.remove(i,o)}))}},{key:"fire",value:function(e){for(var n=this,t=arguments.length,r=new Array(t>1?t-1:0),i=1;i<t;i++)r[i-1]=arguments[i];var o=Array.isArray(e)?e:[e],a=null!=this.offlineEvents,f=Object.keys(this.events),l=o.filter((function(e){return!f.includes(e)})),s=function(e){e.forEach((function(e){n.offlineEvents.push({name:e,fn:function(){n._fire.apply(n,[e].concat(r))}})}))};if(a||l.length)return a&&s(o),void(l.length&&(this.offlineEvents=[],s(l)));this._fire.apply(this,[o].concat(r))}},{key:"remove",value:function(e,n){if(!e)throw new Error("no event name");var t=this.events[e];t&&(n?(t.forEach((function(e,r){e==n&&t.splice(r,1)})),0==t.length&&delete this.events[e]):t=this.events[e]=[])}},{key:"free",value:function(){var e=this;this.localEvents.forEach((function(n){var r=t(n,2),i=r[0],o=r[1];e.remove(i,o)})),this.localEvents=[]}},{key:"clear",value:function(){this.events={},this.localEvents=[],this.onceEvents=[]}}])&&e(i.prototype,o),a&&e(i,a),r}();return i}));