UNPKG

event-mixer

Version:
2 lines 2.98 kB
/*! event-mixer v0.0.5 @Tue, 18 Apr 2017 16:34:59 GMT */ !function(n,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.eventMixer=t():n.eventMixer=t()}(this,function(){return function(n){function t(e){if(r[e])return r[e].exports;var u=r[e]={i:e,l:!1,exports:{}};return n[e].call(u.exports,u,u.exports,t),u.l=!0,u.exports}var r={};return t.m=n,t.c=r,t.i=function(n){return n},t.d=function(n,r,e){t.o(n,r)||Object.defineProperty(n,r,{configurable:!1,enumerable:!0,get:e})},t.n=function(n){var r=n&&n.__esModule?function(){return n.default}:function(){return n};return t.d(r,"a",r),r},t.o=function(n,t){return Object.prototype.hasOwnProperty.call(n,t)},t.p="",t(t.s=0)}([function(n,t,r){"use strict";function e(n){if(Array.isArray(n)){for(var t=0,r=Array(n.length);t<n.length;t++)r[t]=n[t];return r}return Array.from(n)}var u=function(n){return n.slice(0,1).toUpperCase()+n.slice(1)},i=function(n,t){return[].concat(n).map(t)};t.mixer=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e={},o=["on","off"],f=function(i,f){var c=u(i);return o.forEach(function(t){return n[t+c]=function(n){return this[t](i,n)}}),r["fire"+c]=function(n){return this.fire(i,n)},e[i]=t.handler(n,i,f)},c=function(t){var i=u(t),f=e[t];return e[t].clear(),delete e[t],o.forEach(function(t){return delete n[t+i]}),delete r["fire"+i],f},a={create:function(n,t){return f(n,t)},destroy:function(n){return c(n)},emitter:function(){return r},event:function(n){return e[n]},fire:function(n,t){return e[n].fire(t)},has:function(n){return!!e[n]},names:function(){return Object.keys(e)},off:function(n,t){return i(n,function(n){return e[n].remove(t)}),this},on:function(n,t){return i(n,function(n){return e[n].append(t)}),this},target:function(){return n}};return o.forEach(function(t){return n[t]=a[t]}),r.fire=a.fire,a},t.handler=function(n,t,r){var u=[],o=function(e){for(var i=!0,o=Object.assign({},r,e),f=0;f<u.length;f++){var c=u[f]({target:n,name:t,data:o})||{};if(c.remove&&(u.splice(f,1),f--),c.prevent&&(i=!1),c.stop)break}return i};return{add:function(n){return this.append(n)},append:function(n){return i(n,this.push),this},at:function(n){return n>=0&&n<u.length?u[n]:null},clear:function(){return u=[],this},count:function(){return u.length},cut:function(n){return n>=0&&n<u.length?u.splice(n,1)[0]:null},each:function(n){var t=this;return[].concat(e(u)).reduce(function(r,e,u){return t.push(n(e,u))},u=[]),this},has:function(n){return u.indexOf(n)>=0},indexOf:function(n,t){return u.indexOf(n,t)},fire:function(n){return o(n)},prepend:function(n){return[].concat(n).reverse().map(this.unshift),this},push:function(n){return"function"==typeof n&&u.push(n)},remove:function(n){var t=this;return i(n,function(n){return t.cut(u.indexOf(n))}),this},unshift:function(n){return"function"==typeof n&&u.unshift(n)}}}}])});