import from la bonne adresse and first refactoring for ouidade.com
This commit is contained in:
@@ -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.2",
|
||||
"_release": "1.0.2",
|
||||
"_resolution": {
|
||||
"type": "version",
|
||||
"tag": "v1.0.2",
|
||||
"commit": "0f5ad20bda45710afe9744ed779395e25a530a87"
|
||||
},
|
||||
"_source": "git://github.com/metafizzy/ev-emitter.git",
|
||||
"_target": "~1.0.0",
|
||||
"_originalSource": "ev-emitter"
|
||||
}
|
||||
@@ -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.
|
||||
@@ -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"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
/**
|
||||
* EvEmitter v1.0.2
|
||||
* 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 object
|
||||
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;
|
||||
|
||||
}));
|
||||
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"name": "ev-emitter",
|
||||
"version": "1.0.2",
|
||||
"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"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user