summaryrefslogtreecommitdiffstats
path: root/js/vendor/ev-emitter
diff options
context:
space:
mode:
Diffstat (limited to 'js/vendor/ev-emitter')
-rw-r--r--js/vendor/ev-emitter/.bower.json38
-rw-r--r--js/vendor/ev-emitter/README.md101
-rw-r--r--js/vendor/ev-emitter/bower.json28
-rw-r--r--js/vendor/ev-emitter/ev-emitter.js109
-rw-r--r--js/vendor/ev-emitter/package.json27
5 files changed, 303 insertions, 0 deletions
diff --git a/js/vendor/ev-emitter/.bower.json b/js/vendor/ev-emitter/.bower.json
new file mode 100644
index 000000000..54903332e
--- /dev/null
+++ b/js/vendor/ev-emitter/.bower.json
@@ -0,0 +1,38 @@
+{
+ "name": "ev-emitter",
+ "main": "ev-emitter.js",
+ "homepage": "https://github.com/metafizzy/ev-emitter",
+ "authors": [
+ "David DeSandro <desandrocodes@gmail.com>"
+ ],
+ "description": "lil' event emitter",
+ "moduleType": [
+ "amd",
+ "globals",
+ "node"
+ ],
+ "keywords": [
+ "event",
+ "emitter",
+ "pubsub"
+ ],
+ "license": "MIT",
+ "ignore": [
+ "**/.*",
+ "node_modules",
+ "bower_components",
+ "test",
+ "tests",
+ "sandbox"
+ ],
+ "version": "1.0.1",
+ "_release": "1.0.1",
+ "_resolution": {
+ "type": "version",
+ "tag": "v1.0.1",
+ "commit": "e217618dcb466eb5c800602b46252083dc02cc49"
+ },
+ "_source": "git://github.com/metafizzy/ev-emitter.git",
+ "_target": "~1.0.0",
+ "_originalSource": "ev-emitter"
+} \ No newline at end of file
diff --git a/js/vendor/ev-emitter/README.md b/js/vendor/ev-emitter/README.md
new file mode 100644
index 000000000..06c642d04
--- /dev/null
+++ b/js/vendor/ev-emitter/README.md
@@ -0,0 +1,101 @@
+# EvEmitter
+
+_Lil' event emitter_ — add a little pub/sub
+
+EvEmitter adds publish/subscribe pattern to a browser class. It's a smaller version of [Olical/EventEmitter](https://github.com/Olical/EventEmitter). That EventEmitter is full featured, widely used, and great. This EvEmitter has just the base event functionality to power the event API in libraries like [Isotope](http://isotope.metafizzy.co), [Flickity](http://flickity.metafizzy.co), [Masonry](http://masonry.desandro.com), and [imagesLoaded](http://imagesloaded.desandro.com).
+
+## API
+
+``` js
+// Inherit prototype, IE8+
+MyClass.prototype = new EvEmitter();
+
+// Inherit prototype, IE9+
+MyClass.prototype = Object.create( EvEmitter.prototype );
+
+// Mixin prototype
+_.extend( MyClass.prototype, EvEmitter.prototype );
+
+// single instance
+var emitter = new EventEmitter();
+```
+
+### on
+
+Add an event listener.
+
+``` js
+emitter.on( eventName, listener )
+```
+
++ `eventName` - _String_ - name of the event
++ `listener` - _Function_
+
+### off
+
+Remove an event listener.
+
+``` js
+emitter.off( eventName, listener )
+```
+
+### once
+
+Add an event listener to be triggered only once.
+
+``` js
+emitter.once( eventName, listener )
+```
+
+### emitEvent
+
+Trigger an event.
+
+``` js
+emitter.emitEvent( eventName, args )
+```
+
++ `eventName` - _String_ - name of the event
++ `args` - _Array_ - arguments passed to listeners
+
+## Code example
+
+``` js
+// create event emitter
+var emitter = new EventEmitter();
+
+// listeners
+function hey( a, b, c ) {
+ console.log( 'Hey', a, b, c )
+}
+
+function ho( a, b, c ) {
+ console.log( 'Ho', a, b, c )
+}
+
+function letsGo( a, b, c ) {
+ console.log( 'Lets go', a, b, c )
+}
+
+// bind listeners
+emitter.on( 'rock', hey )
+emitter.once( 'rock', ho )
+// trigger letsGo once
+emitter.on( 'rock', letsGo )
+
+// emit event
+emitter.emitEvent( 'rock', [ 1, 2, 3 ] )
+// => 'Hey', 1, 2, 3
+// => 'Ho', 1, 2, 3
+// => 'Lets go', 1, 2, 3
+
+// unbind
+emitter.off( 'rock', ho )
+
+emitter.emitEvent( 'rock', [ 4, 5, 6 ] )
+// => 'Hey' 4, 5, 6
+```
+
+## License
+
+EvEmitter is released under the [MIT License](http://desandro.mit-license.org/). Have at it.
diff --git a/js/vendor/ev-emitter/bower.json b/js/vendor/ev-emitter/bower.json
new file mode 100644
index 000000000..cabd1115d
--- /dev/null
+++ b/js/vendor/ev-emitter/bower.json
@@ -0,0 +1,28 @@
+{
+ "name": "ev-emitter",
+ "main": "ev-emitter.js",
+ "homepage": "https://github.com/metafizzy/ev-emitter",
+ "authors": [
+ "David DeSandro <desandrocodes@gmail.com>"
+ ],
+ "description": "lil' event emitter",
+ "moduleType": [
+ "amd",
+ "globals",
+ "node"
+ ],
+ "keywords": [
+ "event",
+ "emitter",
+ "pubsub"
+ ],
+ "license": "MIT",
+ "ignore": [
+ "**/.*",
+ "node_modules",
+ "bower_components",
+ "test",
+ "tests",
+ "sandbox"
+ ]
+}
diff --git a/js/vendor/ev-emitter/ev-emitter.js b/js/vendor/ev-emitter/ev-emitter.js
new file mode 100644
index 000000000..212a978a8
--- /dev/null
+++ b/js/vendor/ev-emitter/ev-emitter.js
@@ -0,0 +1,109 @@
+/**
+ * EvEmitter v1.0.1
+ * Lil' event emitter
+ * MIT License
+ */
+
+/* jshint unused: true, undef: true, strict: true */
+
+( function( global, factory ) {
+ // universal module definition
+ /* jshint strict: false */ /* globals define, module */
+ if ( typeof define == 'function' && define.amd ) {
+ // AMD - RequireJS
+ define( factory );
+ } else if ( typeof module == 'object' && module.exports ) {
+ // CommonJS - Browserify, Webpack
+ module.exports = factory();
+ } else {
+ // Browser globals
+ global.EvEmitter = factory();
+ }
+
+}( this, function() {
+
+"use strict";
+
+function EvEmitter() {}
+
+var proto = EvEmitter.prototype;
+
+proto.on = function( eventName, listener ) {
+ if ( !eventName || !listener ) {
+ return;
+ }
+ // set events hash
+ var events = this._events = this._events || {};
+ // set listeners array
+ var listeners = events[ eventName ] = events[ eventName ] || [];
+ // only add once
+ if ( listeners.indexOf( listener ) == -1 ) {
+ listeners.push( listener );
+ }
+
+ return this;
+};
+
+proto.once = function( eventName, listener ) {
+ if ( !eventName || !listener ) {
+ return;
+ }
+ // add event
+ this.on( eventName, listener );
+ // set once flag
+ // set onceEvents hash
+ var onceEvents = this._onceEvents = this._onceEvents || {};
+ // set onceListeners array
+ var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || [];
+ // set flag
+ onceListeners[ listener ] = true;
+
+ return this;
+};
+
+proto.off = function( eventName, listener ) {
+ var listeners = this._events && this._events[ eventName ];
+ if ( !listeners || !listeners.length ) {
+ return;
+ }
+ var index = listeners.indexOf( listener );
+ if ( index != -1 ) {
+ listeners.splice( index, 1 );
+ }
+
+ return this;
+};
+
+proto.emitEvent = function( eventName, args ) {
+ var listeners = this._events && this._events[ eventName ];
+ if ( !listeners || !listeners.length ) {
+ return;
+ }
+ var i = 0;
+ var listener = listeners[i];
+ args = args || [];
+ // once stuff
+ var onceListeners = this._onceEvents && this._onceEvents[ eventName ];
+
+ while ( listener ) {
+ var isOnce = onceListeners && onceListeners[ listener ];
+ if ( isOnce ) {
+ // remove listener
+ // remove before trigger to prevent recursion
+ this.off( eventName, listener );
+ // unset once flag
+ delete onceListeners[ listener ];
+ }
+ // trigger listener
+ listener.apply( this, args );
+ // get next listener
+ i += isOnce ? 0 : 1;
+ listener = listeners[i];
+ }
+
+ return this;
+};
+
+return EvEmitter;
+
+}));
diff --git a/js/vendor/ev-emitter/package.json b/js/vendor/ev-emitter/package.json
new file mode 100644
index 000000000..d12f35779
--- /dev/null
+++ b/js/vendor/ev-emitter/package.json
@@ -0,0 +1,27 @@
+{
+ "name": "ev-emitter",
+ "version": "1.0.1",
+ "description": "lil' event emitter",
+ "main": "ev-emitter.js",
+ "scripts": {
+ "test": "mocha test/test"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/metafizzy/ev-emitter.git"
+ },
+ "keywords": [
+ "event",
+ "emitter",
+ "pubsub"
+ ],
+ "author": "David DeSandro",
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/metafizzy/ev-emitter/issues"
+ },
+ "homepage": "https://github.com/metafizzy/ev-emitter#readme",
+ "directories": {
+ "test": "test"
+ }
+}