cione-comp-lib
Version:
`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`
2 lines (1 loc) • 1.61 kB
JavaScript
"use strict";function t(t,r){this.action=t,this.context=r}Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var r={trigger:function(t){if(this.hasOwnProperty("__handlers__")&&this.__handlers__.hasOwnProperty(t)){var r=this.__handlers__[t],n=r.length,e=-1,i=arguments;switch(i.length){case 1:for(;++e<n;)r[e].action.call(r[e].context);return;case 2:for(;++e<n;)r[e].action.call(r[e].context,i[1]);return;case 3:for(;++e<n;)r[e].action.call(r[e].context,i[1],i[2]);return;case 4:for(;++e<n;)r[e].action.call(r[e].context,i[1],i[2],i[3]);return;case 5:for(;++e<n;)r[e].action.call(r[e].context,i[1],i[2],i[3],i[4]);return;default:for(;++e<n;)r[e].action.apply(r[e].context,Array.prototype.slice.call(i,1));return}}},on:function(r,n,e){if(r&&n){var i=this.__handlers__||(this.__handlers__={});if(i[r]){if(this.has(r,n))return}else i[r]=[];var o=new t(n,e||this);return i[r].push(o),this}},once:function(t,r,n){if(t&&r){var e=this;return this.on(t,(function n(){e.off(t,n),r.apply(this,arguments)}),n)}},before:function(t,r,n){if(t&&r)return t="before"+t,this.on(t,r,n)},after:function(t,r,n){if(t&&r)return t="after"+t,this.on(t,r,n)},success:function(t,r){return this.once("success",t,r)},error:function(t,r){return this.once("error",t,r)},off:function(t,r){var n=this.__handlers__||(this.__handlers__={});if(r){if(n[t]){for(var e=n[t],i=[],o=0;o<e.length;o++)r&&e[o].action!==r&&i.push(e[o]);n[t]=i}return this}n[t]=[]},has:function(t,r){var n=this.__handlers__;if(!n||!n[t])return!1;for(var e=n[t],i=0;i<e.length;i++)if(e[i].action===r)return!0}};exports.default=r;