fluxxor-rails 1.3.1 → 1.3.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e1fdeb6424a27db728e310822f9ffd71a232e631
4
- data.tar.gz: 5aa67b4dd4bcf80ff9e2276264157ad75f6e8039
3
+ metadata.gz: 8ce161443f8f80328efc4fe622b64c3152463cab
4
+ data.tar.gz: 66dae89dacd2457aad81a3e7ef0762ee7d801187
5
5
  SHA512:
6
- metadata.gz: 675b46e6d4d3c8c85927b1a6910c08c49224535d5dcaacb1faf72f8b8f6bd424c0e267b2e56813b87e8ba75511dac5e50f4215169a3ecd5361b841f1683f3153
7
- data.tar.gz: 0f1819e6edcabf289c91c02a97400a8534d0517d836b230b013b4e967c01f8eee1a557c85f8578d07b616ba8add64b2f69dd51c1548e18b0710ab5e55b030740
6
+ metadata.gz: f33dede9fa13b97de793d6f3f1ce55e4caafe9af31c07f8a5fcc6f002e452d4dfe622ad8046bdb6cc01e6d9262619aca1b3398707d49e0da35cda4993478f163
7
+ data.tar.gz: cf57ba00068dbde161b520b0605dac0c9d2213f66a4b2febc10bb561144092530f8bc9ceb7829101d85c8e7108577fce80ae5a36b68d0b15e8fd119809ba3c84
@@ -1,5 +1,5 @@
1
1
  module Fluxxor
2
2
  module Rails
3
- VERSION = '1.3.1'
3
+ VERSION = '1.3.2'
4
4
  end
5
5
  end
@@ -75,3 +75,8 @@ Started GET "/assets/fluxxor.js" for 127.0.0.1 at 2015-09-23 13:50:40 -0500
75
75
  Served asset /fluxxor.js - 200 OK (2ms)
76
76
  Started GET "/assets/fluxxor.js" for 127.0.0.1 at 2015-09-23 13:50:40 -0500
77
77
  Served asset /fluxxor.js - 200 OK (0ms)
78
+ Started GET "/assets/fluxxor.js" for 127.0.0.1 at 2015-09-23 13:51:18 -0500
79
+ Compiled fluxxor.js (1ms) (pid 17115)
80
+ Served asset /fluxxor.js - 200 OK (7ms)
81
+ Started GET "/assets/fluxxor.js" for 127.0.0.1 at 2015-09-23 13:51:18 -0500
82
+ Served asset /fluxxor.js - 200 OK (0ms)
@@ -79,22 +79,22 @@ return /******/ (function(modules) { // webpackBootstrap
79
79
  /* 1 */
80
80
  /***/ function(module, exports, __webpack_require__) {
81
81
 
82
- module.exports = {"name":"fluxxor","version":"1.3.1","description":"Flux architecture tools for React","repository":{"type":"git","url":"https://github.com/BinaryMuse/fluxxor.git"},"main":"index.js","scripts":{"test":"npm run jshint && mocha --recursive","jshint":"jsxhint lib/ test/","build":"./script/build-fluxxor && ./script/build-examples","preview-site":"wintersmith preview -C site","build-site":"wintersmith build -C site"},"keywords":["react","flux"],"author":"Brandon Tilley <brandon@brandontilley.com>","license":"MIT","devDependencies":{"chai":"^1.9.1","css-loader":"^0.6.12","envify":"^1.2.1","jsdom":"^0.10.5","json-loader":"^0.5.0","jsx-loader":"^0.10.2","jsxhint":"^0.4.9","less":"^1.7.0","less-loader":"^0.7.3","mocha":"^1.18.2","react":"^0.10.0","sinon":"^1.9.1","sinon-chai":"^2.5.0","style-loader":"^0.6.3","webpack":"^1.1.11","webpack-dev-server":"^1.2.7","wintersmith":"^2.0.10","wintersmith-ejs":"^0.1.4","wintersmith-less":"^0.2.2"},"dependencies":{"lodash-node":"^2.4.1"},"jshintConfig":{"camelcase":true,"curly":true,"eqeqeq":true,"forin":true,"latedef":true,"newcap":false,"undef":true,"unused":true,"trailing":true,"node":true,"browser":true,"predef":["it","describe","beforeEach","afterEach"]}}
82
+ module.exports = {"name":"fluxxor","version":"1.3.2","description":"Flux architecture tools for React","repository":{"type":"git","url":"https://github.com/BinaryMuse/fluxxor.git"},"main":"index.js","scripts":{"test":"npm run jshint && mocha --recursive","jshint":"jsxhint lib/ test/","build":"./script/build-fluxxor && ./script/build-examples","preview-site":"wintersmith preview -C site","build-site":"wintersmith build -C site"},"keywords":["react","flux"],"author":"Brandon Tilley <brandon@brandontilley.com>","license":"MIT","devDependencies":{"chai":"^1.9.1","css-loader":"^0.6.12","envify":"^1.2.1","jsdom":"^0.10.5","json-loader":"^0.5.0","jsx-loader":"^0.10.2","jsxhint":"^0.4.9","less":"^1.7.0","less-loader":"^0.7.3","mocha":"^1.18.2","react":"^0.10.0","sinon":"^1.9.1","sinon-chai":"^2.5.0","style-loader":"^0.6.3","webpack":"^1.1.11","webpack-dev-server":"^1.2.7","wintersmith":"^2.0.10","wintersmith-ejs":"^0.1.4","wintersmith-less":"^0.2.2"},"dependencies":{"lodash-node":"^2.4.1"},"jshintConfig":{"camelcase":true,"curly":true,"eqeqeq":true,"forin":true,"latedef":true,"newcap":false,"undef":true,"unused":true,"trailing":true,"node":true,"browser":true,"predef":["it","describe","beforeEach","afterEach"]}}
83
83
 
84
84
  /***/ },
85
85
  /* 2 */
86
86
  /***/ function(module, exports, __webpack_require__) {
87
87
 
88
- var _clone = __webpack_require__(11),
89
- _mapValues = __webpack_require__(12),
90
- _forOwn = __webpack_require__(13),
91
- _intersection = __webpack_require__(16),
92
- _keys = __webpack_require__(14),
93
- _map = __webpack_require__(18),
94
- _each = __webpack_require__(19),
95
- _size = __webpack_require__(20),
96
- _findKey = __webpack_require__(15),
97
- _uniq = __webpack_require__(17);
88
+ var _clone = __webpack_require__(10),
89
+ _mapValues = __webpack_require__(11),
90
+ _forOwn = __webpack_require__(12),
91
+ _intersection = __webpack_require__(15),
92
+ _keys = __webpack_require__(13),
93
+ _map = __webpack_require__(17),
94
+ _each = __webpack_require__(18),
95
+ _size = __webpack_require__(19),
96
+ _findKey = __webpack_require__(14),
97
+ _uniq = __webpack_require__(16);
98
98
 
99
99
  var Dispatcher = function(stores) {
100
100
  this.stores = stores;
@@ -321,7 +321,7 @@ return /******/ (function(modules) { // webpackBootstrap
321
321
  /* 6 */
322
322
  /***/ function(module, exports, __webpack_require__) {
323
323
 
324
- var _each = __webpack_require__(19);
324
+ var _each = __webpack_require__(18);
325
325
 
326
326
  var StoreWatchMixin = function() {
327
327
  var storeNames = Array.prototype.slice.call(arguments);
@@ -341,7 +341,9 @@ return /******/ (function(modules) { // webpackBootstrap
341
341
  },
342
342
 
343
343
  _setStateFromFlux: function() {
344
- this.setState(this.getStateFromFlux());
344
+ if(this.isMounted()) {
345
+ this.setState(this.getStateFromFlux());
346
+ }
345
347
  },
346
348
 
347
349
  getInitialState: function() {
@@ -363,7 +365,7 @@ return /******/ (function(modules) { // webpackBootstrap
363
365
  /* 7 */
364
366
  /***/ function(module, exports, __webpack_require__) {
365
367
 
366
- var _each = __webpack_require__(19),
368
+ var _each = __webpack_require__(18),
367
369
  Store = __webpack_require__(8),
368
370
  util = __webpack_require__(9);
369
371
 
@@ -408,7 +410,7 @@ return /******/ (function(modules) { // webpackBootstrap
408
410
  /* 8 */
409
411
  /***/ function(module, exports, __webpack_require__) {
410
412
 
411
- var EventEmitter = __webpack_require__(10).EventEmitter,
413
+ var EventEmitter = __webpack_require__(20).EventEmitter,
412
414
  util = __webpack_require__(9);
413
415
 
414
416
  function Store(dispatcher) {
@@ -1042,319 +1044,241 @@ return /******/ (function(modules) { // webpackBootstrap
1042
1044
  return Object.prototype.hasOwnProperty.call(obj, prop);
1043
1045
  }
1044
1046
 
1045
- /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()), __webpack_require__(25)))
1047
+ /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()), __webpack_require__(39)))
1046
1048
 
1047
1049
  /***/ },
1048
1050
  /* 10 */
1049
1051
  /***/ function(module, exports, __webpack_require__) {
1050
1052
 
1051
- // Copyright Joyent, Inc. and other Node contributors.
1052
- //
1053
- // Permission is hereby granted, free of charge, to any person obtaining a
1054
- // copy of this software and associated documentation files (the
1055
- // "Software"), to deal in the Software without restriction, including
1056
- // without limitation the rights to use, copy, modify, merge, publish,
1057
- // distribute, sublicense, and/or sell copies of the Software, and to permit
1058
- // persons to whom the Software is furnished to do so, subject to the
1059
- // following conditions:
1060
- //
1061
- // The above copyright notice and this permission notice shall be included
1062
- // in all copies or substantial portions of the Software.
1063
- //
1064
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
1065
- // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
1066
- // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
1067
- // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
1068
- // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
1069
- // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
1070
- // USE OR OTHER DEALINGS IN THE SOFTWARE.
1053
+ /**
1054
+ * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
1055
+ * Build: `lodash modularize modern exports="node" -o ./modern/`
1056
+ * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
1057
+ * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
1058
+ * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1059
+ * Available under MIT license <http://lodash.com/license>
1060
+ */
1061
+ var baseClone = __webpack_require__(25),
1062
+ baseCreateCallback = __webpack_require__(26);
1071
1063
 
1072
- function EventEmitter() {
1073
- this._events = this._events || {};
1074
- this._maxListeners = this._maxListeners || undefined;
1064
+ /**
1065
+ * Creates a clone of `value`. If `isDeep` is `true` nested objects will also
1066
+ * be cloned, otherwise they will be assigned by reference. If a callback
1067
+ * is provided it will be executed to produce the cloned values. If the
1068
+ * callback returns `undefined` cloning will be handled by the method instead.
1069
+ * The callback is bound to `thisArg` and invoked with one argument; (value).
1070
+ *
1071
+ * @static
1072
+ * @memberOf _
1073
+ * @category Objects
1074
+ * @param {*} value The value to clone.
1075
+ * @param {boolean} [isDeep=false] Specify a deep clone.
1076
+ * @param {Function} [callback] The function to customize cloning values.
1077
+ * @param {*} [thisArg] The `this` binding of `callback`.
1078
+ * @returns {*} Returns the cloned value.
1079
+ * @example
1080
+ *
1081
+ * var characters = [
1082
+ * { 'name': 'barney', 'age': 36 },
1083
+ * { 'name': 'fred', 'age': 40 }
1084
+ * ];
1085
+ *
1086
+ * var shallow = _.clone(characters);
1087
+ * shallow[0] === characters[0];
1088
+ * // => true
1089
+ *
1090
+ * var deep = _.clone(characters, true);
1091
+ * deep[0] === characters[0];
1092
+ * // => false
1093
+ *
1094
+ * _.mixin({
1095
+ * 'clone': _.partialRight(_.clone, function(value) {
1096
+ * return _.isElement(value) ? value.cloneNode(false) : undefined;
1097
+ * })
1098
+ * });
1099
+ *
1100
+ * var clone = _.clone(document.body);
1101
+ * clone.childNodes.length;
1102
+ * // => 0
1103
+ */
1104
+ function clone(value, isDeep, callback, thisArg) {
1105
+ // allows working with "Collections" methods without using their `index`
1106
+ // and `collection` arguments for `isDeep` and `callback`
1107
+ if (typeof isDeep != 'boolean' && isDeep != null) {
1108
+ thisArg = callback;
1109
+ callback = isDeep;
1110
+ isDeep = false;
1111
+ }
1112
+ return baseClone(value, isDeep, typeof callback == 'function' && baseCreateCallback(callback, thisArg, 1));
1075
1113
  }
1076
- module.exports = EventEmitter;
1077
-
1078
- // Backwards-compat with node 0.10.x
1079
- EventEmitter.EventEmitter = EventEmitter;
1080
1114
 
1081
- EventEmitter.prototype._events = undefined;
1082
- EventEmitter.prototype._maxListeners = undefined;
1115
+ module.exports = clone;
1116
+
1117
+
1118
+ /***/ },
1119
+ /* 11 */
1120
+ /***/ function(module, exports, __webpack_require__) {
1121
+
1122
+ /**
1123
+ * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
1124
+ * Build: `lodash modularize modern exports="node" -o ./modern/`
1125
+ * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
1126
+ * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
1127
+ * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1128
+ * Available under MIT license <http://lodash.com/license>
1129
+ */
1130
+ var createCallback = __webpack_require__(38),
1131
+ forOwn = __webpack_require__(12);
1083
1132
 
1084
- // By default EventEmitters will print a warning if more than 10 listeners are
1085
- // added to it. This is a useful default which helps finding memory leaks.
1086
- EventEmitter.defaultMaxListeners = 10;
1133
+ /**
1134
+ * Creates an object with the same keys as `object` and values generated by
1135
+ * running each own enumerable property of `object` through the callback.
1136
+ * The callback is bound to `thisArg` and invoked with three arguments;
1137
+ * (value, key, object).
1138
+ *
1139
+ * If a property name is provided for `callback` the created "_.pluck" style
1140
+ * callback will return the property value of the given element.
1141
+ *
1142
+ * If an object is provided for `callback` the created "_.where" style callback
1143
+ * will return `true` for elements that have the properties of the given object,
1144
+ * else `false`.
1145
+ *
1146
+ * @static
1147
+ * @memberOf _
1148
+ * @category Objects
1149
+ * @param {Object} object The object to iterate over.
1150
+ * @param {Function|Object|string} [callback=identity] The function called
1151
+ * per iteration. If a property name or object is provided it will be used
1152
+ * to create a "_.pluck" or "_.where" style callback, respectively.
1153
+ * @param {*} [thisArg] The `this` binding of `callback`.
1154
+ * @returns {Array} Returns a new object with values of the results of each `callback` execution.
1155
+ * @example
1156
+ *
1157
+ * _.mapValues({ 'a': 1, 'b': 2, 'c': 3} , function(num) { return num * 3; });
1158
+ * // => { 'a': 3, 'b': 6, 'c': 9 }
1159
+ *
1160
+ * var characters = {
1161
+ * 'fred': { 'name': 'fred', 'age': 40 },
1162
+ * 'pebbles': { 'name': 'pebbles', 'age': 1 }
1163
+ * };
1164
+ *
1165
+ * // using "_.pluck" callback shorthand
1166
+ * _.mapValues(characters, 'age');
1167
+ * // => { 'fred': 40, 'pebbles': 1 }
1168
+ */
1169
+ function mapValues(object, callback, thisArg) {
1170
+ var result = {};
1171
+ callback = createCallback(callback, thisArg, 3);
1087
1172
 
1088
- // Obviously not all Emitters should be limited to 10. This function allows
1089
- // that to be increased. Set to zero for unlimited.
1090
- EventEmitter.prototype.setMaxListeners = function(n) {
1091
- if (!isNumber(n) || n < 0 || isNaN(n))
1092
- throw TypeError('n must be a positive number');
1093
- this._maxListeners = n;
1094
- return this;
1095
- };
1173
+ forOwn(object, function(value, key, object) {
1174
+ result[key] = callback(value, key, object);
1175
+ });
1176
+ return result;
1177
+ }
1096
1178
 
1097
- EventEmitter.prototype.emit = function(type) {
1098
- var er, handler, len, args, i, listeners;
1179
+ module.exports = mapValues;
1180
+
1181
+
1182
+ /***/ },
1183
+ /* 12 */
1184
+ /***/ function(module, exports, __webpack_require__) {
1185
+
1186
+ /**
1187
+ * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
1188
+ * Build: `lodash modularize modern exports="node" -o ./modern/`
1189
+ * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
1190
+ * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
1191
+ * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1192
+ * Available under MIT license <http://lodash.com/license>
1193
+ */
1194
+ var baseCreateCallback = __webpack_require__(26),
1195
+ keys = __webpack_require__(13),
1196
+ objectTypes = __webpack_require__(27);
1099
1197
 
1100
- if (!this._events)
1101
- this._events = {};
1198
+ /**
1199
+ * Iterates over own enumerable properties of an object, executing the callback
1200
+ * for each property. The callback is bound to `thisArg` and invoked with three
1201
+ * arguments; (value, key, object). Callbacks may exit iteration early by
1202
+ * explicitly returning `false`.
1203
+ *
1204
+ * @static
1205
+ * @memberOf _
1206
+ * @type Function
1207
+ * @category Objects
1208
+ * @param {Object} object The object to iterate over.
1209
+ * @param {Function} [callback=identity] The function called per iteration.
1210
+ * @param {*} [thisArg] The `this` binding of `callback`.
1211
+ * @returns {Object} Returns `object`.
1212
+ * @example
1213
+ *
1214
+ * _.forOwn({ '0': 'zero', '1': 'one', 'length': 2 }, function(num, key) {
1215
+ * console.log(key);
1216
+ * });
1217
+ * // => logs '0', '1', and 'length' (property order is not guaranteed across environments)
1218
+ */
1219
+ var forOwn = function(collection, callback, thisArg) {
1220
+ var index, iterable = collection, result = iterable;
1221
+ if (!iterable) return result;
1222
+ if (!objectTypes[typeof iterable]) return result;
1223
+ callback = callback && typeof thisArg == 'undefined' ? callback : baseCreateCallback(callback, thisArg, 3);
1224
+ var ownIndex = -1,
1225
+ ownProps = objectTypes[typeof iterable] && keys(iterable),
1226
+ length = ownProps ? ownProps.length : 0;
1102
1227
 
1103
- // If there is no 'error' event listener then throw.
1104
- if (type === 'error') {
1105
- if (!this._events.error ||
1106
- (isObject(this._events.error) && !this._events.error.length)) {
1107
- er = arguments[1];
1108
- if (er instanceof Error) {
1109
- throw er; // Unhandled 'error' event
1110
- } else {
1111
- throw TypeError('Uncaught, unspecified "error" event.');
1112
- }
1113
- return false;
1228
+ while (++ownIndex < length) {
1229
+ index = ownProps[ownIndex];
1230
+ if (callback(iterable[index], index, collection) === false) return result;
1114
1231
  }
1115
- }
1232
+ return result
1233
+ };
1116
1234
 
1117
- handler = this._events[type];
1235
+ module.exports = forOwn;
1236
+
1237
+
1238
+ /***/ },
1239
+ /* 13 */
1240
+ /***/ function(module, exports, __webpack_require__) {
1241
+
1242
+ /**
1243
+ * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
1244
+ * Build: `lodash modularize modern exports="node" -o ./modern/`
1245
+ * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
1246
+ * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
1247
+ * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1248
+ * Available under MIT license <http://lodash.com/license>
1249
+ */
1250
+ var isNative = __webpack_require__(28),
1251
+ isObject = __webpack_require__(22),
1252
+ shimKeys = __webpack_require__(29);
1118
1253
 
1119
- if (isUndefined(handler))
1120
- return false;
1254
+ /* Native method shortcuts for methods with the same name as other `lodash` methods */
1255
+ var nativeKeys = isNative(nativeKeys = Object.keys) && nativeKeys;
1121
1256
 
1122
- if (isFunction(handler)) {
1123
- switch (arguments.length) {
1124
- // fast cases
1125
- case 1:
1126
- handler.call(this);
1127
- break;
1128
- case 2:
1129
- handler.call(this, arguments[1]);
1130
- break;
1131
- case 3:
1132
- handler.call(this, arguments[1], arguments[2]);
1133
- break;
1134
- // slower
1135
- default:
1136
- len = arguments.length;
1137
- args = new Array(len - 1);
1138
- for (i = 1; i < len; i++)
1139
- args[i - 1] = arguments[i];
1140
- handler.apply(this, args);
1141
- }
1142
- } else if (isObject(handler)) {
1143
- len = arguments.length;
1144
- args = new Array(len - 1);
1145
- for (i = 1; i < len; i++)
1146
- args[i - 1] = arguments[i];
1147
-
1148
- listeners = handler.slice();
1149
- len = listeners.length;
1150
- for (i = 0; i < len; i++)
1151
- listeners[i].apply(this, args);
1152
- }
1153
-
1154
- return true;
1155
- };
1156
-
1157
- EventEmitter.prototype.addListener = function(type, listener) {
1158
- var m;
1159
-
1160
- if (!isFunction(listener))
1161
- throw TypeError('listener must be a function');
1162
-
1163
- if (!this._events)
1164
- this._events = {};
1165
-
1166
- // To avoid recursion in the case that type === "newListener"! Before
1167
- // adding it to the listeners, first emit "newListener".
1168
- if (this._events.newListener)
1169
- this.emit('newListener', type,
1170
- isFunction(listener.listener) ?
1171
- listener.listener : listener);
1172
-
1173
- if (!this._events[type])
1174
- // Optimize the case of one listener. Don't need the extra array object.
1175
- this._events[type] = listener;
1176
- else if (isObject(this._events[type]))
1177
- // If we've already got an array, just append.
1178
- this._events[type].push(listener);
1179
- else
1180
- // Adding the second element, need to change to array.
1181
- this._events[type] = [this._events[type], listener];
1182
-
1183
- // Check for listener leak
1184
- if (isObject(this._events[type]) && !this._events[type].warned) {
1185
- var m;
1186
- if (!isUndefined(this._maxListeners)) {
1187
- m = this._maxListeners;
1188
- } else {
1189
- m = EventEmitter.defaultMaxListeners;
1190
- }
1191
-
1192
- if (m && m > 0 && this._events[type].length > m) {
1193
- this._events[type].warned = true;
1194
- console.error('(node) warning: possible EventEmitter memory ' +
1195
- 'leak detected. %d listeners added. ' +
1196
- 'Use emitter.setMaxListeners() to increase limit.',
1197
- this._events[type].length);
1198
- if (typeof console.trace === 'function') {
1199
- // not supported in IE 10
1200
- console.trace();
1201
- }
1202
- }
1203
- }
1204
-
1205
- return this;
1206
- };
1207
-
1208
- EventEmitter.prototype.on = EventEmitter.prototype.addListener;
1209
-
1210
- EventEmitter.prototype.once = function(type, listener) {
1211
- if (!isFunction(listener))
1212
- throw TypeError('listener must be a function');
1213
-
1214
- var fired = false;
1215
-
1216
- function g() {
1217
- this.removeListener(type, g);
1218
-
1219
- if (!fired) {
1220
- fired = true;
1221
- listener.apply(this, arguments);
1222
- }
1223
- }
1224
-
1225
- g.listener = listener;
1226
- this.on(type, g);
1227
-
1228
- return this;
1229
- };
1230
-
1231
- // emits a 'removeListener' event iff the listener was removed
1232
- EventEmitter.prototype.removeListener = function(type, listener) {
1233
- var list, position, length, i;
1234
-
1235
- if (!isFunction(listener))
1236
- throw TypeError('listener must be a function');
1237
-
1238
- if (!this._events || !this._events[type])
1239
- return this;
1240
-
1241
- list = this._events[type];
1242
- length = list.length;
1243
- position = -1;
1244
-
1245
- if (list === listener ||
1246
- (isFunction(list.listener) && list.listener === listener)) {
1247
- delete this._events[type];
1248
- if (this._events.removeListener)
1249
- this.emit('removeListener', type, listener);
1250
-
1251
- } else if (isObject(list)) {
1252
- for (i = length; i-- > 0;) {
1253
- if (list[i] === listener ||
1254
- (list[i].listener && list[i].listener === listener)) {
1255
- position = i;
1256
- break;
1257
- }
1258
- }
1259
-
1260
- if (position < 0)
1261
- return this;
1262
-
1263
- if (list.length === 1) {
1264
- list.length = 0;
1265
- delete this._events[type];
1266
- } else {
1267
- list.splice(position, 1);
1268
- }
1269
-
1270
- if (this._events.removeListener)
1271
- this.emit('removeListener', type, listener);
1272
- }
1273
-
1274
- return this;
1275
- };
1276
-
1277
- EventEmitter.prototype.removeAllListeners = function(type) {
1278
- var key, listeners;
1279
-
1280
- if (!this._events)
1281
- return this;
1282
-
1283
- // not listening for removeListener, no need to emit
1284
- if (!this._events.removeListener) {
1285
- if (arguments.length === 0)
1286
- this._events = {};
1287
- else if (this._events[type])
1288
- delete this._events[type];
1289
- return this;
1290
- }
1291
-
1292
- // emit removeListener for all listeners on all events
1293
- if (arguments.length === 0) {
1294
- for (key in this._events) {
1295
- if (key === 'removeListener') continue;
1296
- this.removeAllListeners(key);
1297
- }
1298
- this.removeAllListeners('removeListener');
1299
- this._events = {};
1300
- return this;
1301
- }
1302
-
1303
- listeners = this._events[type];
1304
-
1305
- if (isFunction(listeners)) {
1306
- this.removeListener(type, listeners);
1307
- } else {
1308
- // LIFO order
1309
- while (listeners.length)
1310
- this.removeListener(type, listeners[listeners.length - 1]);
1257
+ /**
1258
+ * Creates an array composed of the own enumerable property names of an object.
1259
+ *
1260
+ * @static
1261
+ * @memberOf _
1262
+ * @category Objects
1263
+ * @param {Object} object The object to inspect.
1264
+ * @returns {Array} Returns an array of property names.
1265
+ * @example
1266
+ *
1267
+ * _.keys({ 'one': 1, 'two': 2, 'three': 3 });
1268
+ * // => ['one', 'two', 'three'] (property order is not guaranteed across environments)
1269
+ */
1270
+ var keys = !nativeKeys ? shimKeys : function(object) {
1271
+ if (!isObject(object)) {
1272
+ return [];
1311
1273
  }
1312
- delete this._events[type];
1313
-
1314
- return this;
1315
- };
1316
-
1317
- EventEmitter.prototype.listeners = function(type) {
1318
- var ret;
1319
- if (!this._events || !this._events[type])
1320
- ret = [];
1321
- else if (isFunction(this._events[type]))
1322
- ret = [this._events[type]];
1323
- else
1324
- ret = this._events[type].slice();
1325
- return ret;
1326
- };
1327
-
1328
- EventEmitter.listenerCount = function(emitter, type) {
1329
- var ret;
1330
- if (!emitter._events || !emitter._events[type])
1331
- ret = 0;
1332
- else if (isFunction(emitter._events[type]))
1333
- ret = 1;
1334
- else
1335
- ret = emitter._events[type].length;
1336
- return ret;
1274
+ return nativeKeys(object);
1337
1275
  };
1338
1276
 
1339
- function isFunction(arg) {
1340
- return typeof arg === 'function';
1341
- }
1342
-
1343
- function isNumber(arg) {
1344
- return typeof arg === 'number';
1345
- }
1346
-
1347
- function isObject(arg) {
1348
- return typeof arg === 'object' && arg !== null;
1349
- }
1350
-
1351
- function isUndefined(arg) {
1352
- return arg === void 0;
1353
- }
1277
+ module.exports = keys;
1354
1278
 
1355
1279
 
1356
1280
  /***/ },
1357
- /* 11 */
1281
+ /* 14 */
1358
1282
  /***/ function(module, exports, __webpack_require__) {
1359
1283
 
1360
1284
  /**
@@ -1365,250 +1289,19 @@ return /******/ (function(modules) { // webpackBootstrap
1365
1289
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1366
1290
  * Available under MIT license <http://lodash.com/license>
1367
1291
  */
1368
- var baseClone = __webpack_require__(26),
1369
- baseCreateCallback = __webpack_require__(27);
1292
+ var createCallback = __webpack_require__(38),
1293
+ forOwn = __webpack_require__(12);
1370
1294
 
1371
1295
  /**
1372
- * Creates a clone of `value`. If `isDeep` is `true` nested objects will also
1373
- * be cloned, otherwise they will be assigned by reference. If a callback
1374
- * is provided it will be executed to produce the cloned values. If the
1375
- * callback returns `undefined` cloning will be handled by the method instead.
1376
- * The callback is bound to `thisArg` and invoked with one argument; (value).
1377
- *
1378
- * @static
1379
- * @memberOf _
1380
- * @category Objects
1381
- * @param {*} value The value to clone.
1382
- * @param {boolean} [isDeep=false] Specify a deep clone.
1383
- * @param {Function} [callback] The function to customize cloning values.
1384
- * @param {*} [thisArg] The `this` binding of `callback`.
1385
- * @returns {*} Returns the cloned value.
1386
- * @example
1387
- *
1388
- * var characters = [
1389
- * { 'name': 'barney', 'age': 36 },
1390
- * { 'name': 'fred', 'age': 40 }
1391
- * ];
1392
- *
1393
- * var shallow = _.clone(characters);
1394
- * shallow[0] === characters[0];
1395
- * // => true
1396
- *
1397
- * var deep = _.clone(characters, true);
1398
- * deep[0] === characters[0];
1399
- * // => false
1400
- *
1401
- * _.mixin({
1402
- * 'clone': _.partialRight(_.clone, function(value) {
1403
- * return _.isElement(value) ? value.cloneNode(false) : undefined;
1404
- * })
1405
- * });
1406
- *
1407
- * var clone = _.clone(document.body);
1408
- * clone.childNodes.length;
1409
- * // => 0
1410
- */
1411
- function clone(value, isDeep, callback, thisArg) {
1412
- // allows working with "Collections" methods without using their `index`
1413
- // and `collection` arguments for `isDeep` and `callback`
1414
- if (typeof isDeep != 'boolean' && isDeep != null) {
1415
- thisArg = callback;
1416
- callback = isDeep;
1417
- isDeep = false;
1418
- }
1419
- return baseClone(value, isDeep, typeof callback == 'function' && baseCreateCallback(callback, thisArg, 1));
1420
- }
1421
-
1422
- module.exports = clone;
1423
-
1424
-
1425
- /***/ },
1426
- /* 12 */
1427
- /***/ function(module, exports, __webpack_require__) {
1428
-
1429
- /**
1430
- * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
1431
- * Build: `lodash modularize modern exports="node" -o ./modern/`
1432
- * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
1433
- * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
1434
- * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1435
- * Available under MIT license <http://lodash.com/license>
1436
- */
1437
- var createCallback = __webpack_require__(39),
1438
- forOwn = __webpack_require__(13);
1439
-
1440
- /**
1441
- * Creates an object with the same keys as `object` and values generated by
1442
- * running each own enumerable property of `object` through the callback.
1443
- * The callback is bound to `thisArg` and invoked with three arguments;
1444
- * (value, key, object).
1445
- *
1446
- * If a property name is provided for `callback` the created "_.pluck" style
1447
- * callback will return the property value of the given element.
1448
- *
1449
- * If an object is provided for `callback` the created "_.where" style callback
1450
- * will return `true` for elements that have the properties of the given object,
1451
- * else `false`.
1452
- *
1453
- * @static
1454
- * @memberOf _
1455
- * @category Objects
1456
- * @param {Object} object The object to iterate over.
1457
- * @param {Function|Object|string} [callback=identity] The function called
1458
- * per iteration. If a property name or object is provided it will be used
1459
- * to create a "_.pluck" or "_.where" style callback, respectively.
1460
- * @param {*} [thisArg] The `this` binding of `callback`.
1461
- * @returns {Array} Returns a new object with values of the results of each `callback` execution.
1462
- * @example
1463
- *
1464
- * _.mapValues({ 'a': 1, 'b': 2, 'c': 3} , function(num) { return num * 3; });
1465
- * // => { 'a': 3, 'b': 6, 'c': 9 }
1466
- *
1467
- * var characters = {
1468
- * 'fred': { 'name': 'fred', 'age': 40 },
1469
- * 'pebbles': { 'name': 'pebbles', 'age': 1 }
1470
- * };
1471
- *
1472
- * // using "_.pluck" callback shorthand
1473
- * _.mapValues(characters, 'age');
1474
- * // => { 'fred': 40, 'pebbles': 1 }
1475
- */
1476
- function mapValues(object, callback, thisArg) {
1477
- var result = {};
1478
- callback = createCallback(callback, thisArg, 3);
1479
-
1480
- forOwn(object, function(value, key, object) {
1481
- result[key] = callback(value, key, object);
1482
- });
1483
- return result;
1484
- }
1485
-
1486
- module.exports = mapValues;
1487
-
1488
-
1489
- /***/ },
1490
- /* 13 */
1491
- /***/ function(module, exports, __webpack_require__) {
1492
-
1493
- /**
1494
- * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
1495
- * Build: `lodash modularize modern exports="node" -o ./modern/`
1496
- * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
1497
- * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
1498
- * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1499
- * Available under MIT license <http://lodash.com/license>
1500
- */
1501
- var baseCreateCallback = __webpack_require__(27),
1502
- keys = __webpack_require__(14),
1503
- objectTypes = __webpack_require__(28);
1504
-
1505
- /**
1506
- * Iterates over own enumerable properties of an object, executing the callback
1507
- * for each property. The callback is bound to `thisArg` and invoked with three
1508
- * arguments; (value, key, object). Callbacks may exit iteration early by
1509
- * explicitly returning `false`.
1510
- *
1511
- * @static
1512
- * @memberOf _
1513
- * @type Function
1514
- * @category Objects
1515
- * @param {Object} object The object to iterate over.
1516
- * @param {Function} [callback=identity] The function called per iteration.
1517
- * @param {*} [thisArg] The `this` binding of `callback`.
1518
- * @returns {Object} Returns `object`.
1519
- * @example
1520
- *
1521
- * _.forOwn({ '0': 'zero', '1': 'one', 'length': 2 }, function(num, key) {
1522
- * console.log(key);
1523
- * });
1524
- * // => logs '0', '1', and 'length' (property order is not guaranteed across environments)
1525
- */
1526
- var forOwn = function(collection, callback, thisArg) {
1527
- var index, iterable = collection, result = iterable;
1528
- if (!iterable) return result;
1529
- if (!objectTypes[typeof iterable]) return result;
1530
- callback = callback && typeof thisArg == 'undefined' ? callback : baseCreateCallback(callback, thisArg, 3);
1531
- var ownIndex = -1,
1532
- ownProps = objectTypes[typeof iterable] && keys(iterable),
1533
- length = ownProps ? ownProps.length : 0;
1534
-
1535
- while (++ownIndex < length) {
1536
- index = ownProps[ownIndex];
1537
- if (callback(iterable[index], index, collection) === false) return result;
1538
- }
1539
- return result
1540
- };
1541
-
1542
- module.exports = forOwn;
1543
-
1544
-
1545
- /***/ },
1546
- /* 14 */
1547
- /***/ function(module, exports, __webpack_require__) {
1548
-
1549
- /**
1550
- * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
1551
- * Build: `lodash modularize modern exports="node" -o ./modern/`
1552
- * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
1553
- * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
1554
- * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1555
- * Available under MIT license <http://lodash.com/license>
1556
- */
1557
- var isNative = __webpack_require__(29),
1558
- isObject = __webpack_require__(22),
1559
- shimKeys = __webpack_require__(30);
1560
-
1561
- /* Native method shortcuts for methods with the same name as other `lodash` methods */
1562
- var nativeKeys = isNative(nativeKeys = Object.keys) && nativeKeys;
1563
-
1564
- /**
1565
- * Creates an array composed of the own enumerable property names of an object.
1566
- *
1567
- * @static
1568
- * @memberOf _
1569
- * @category Objects
1570
- * @param {Object} object The object to inspect.
1571
- * @returns {Array} Returns an array of property names.
1572
- * @example
1573
- *
1574
- * _.keys({ 'one': 1, 'two': 2, 'three': 3 });
1575
- * // => ['one', 'two', 'three'] (property order is not guaranteed across environments)
1576
- */
1577
- var keys = !nativeKeys ? shimKeys : function(object) {
1578
- if (!isObject(object)) {
1579
- return [];
1580
- }
1581
- return nativeKeys(object);
1582
- };
1583
-
1584
- module.exports = keys;
1585
-
1586
-
1587
- /***/ },
1588
- /* 15 */
1589
- /***/ function(module, exports, __webpack_require__) {
1590
-
1591
- /**
1592
- * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
1593
- * Build: `lodash modularize modern exports="node" -o ./modern/`
1594
- * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
1595
- * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
1596
- * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1597
- * Available under MIT license <http://lodash.com/license>
1598
- */
1599
- var createCallback = __webpack_require__(39),
1600
- forOwn = __webpack_require__(13);
1601
-
1602
- /**
1603
- * This method is like `_.findIndex` except that it returns the key of the
1604
- * first element that passes the callback check, instead of the element itself.
1605
- *
1606
- * If a property name is provided for `callback` the created "_.pluck" style
1607
- * callback will return the property value of the given element.
1608
- *
1609
- * If an object is provided for `callback` the created "_.where" style callback
1610
- * will return `true` for elements that have the properties of the given object,
1611
- * else `false`.
1296
+ * This method is like `_.findIndex` except that it returns the key of the
1297
+ * first element that passes the callback check, instead of the element itself.
1298
+ *
1299
+ * If a property name is provided for `callback` the created "_.pluck" style
1300
+ * callback will return the property value of the given element.
1301
+ *
1302
+ * If an object is provided for `callback` the created "_.where" style callback
1303
+ * will return `true` for elements that have the properties of the given object,
1304
+ * else `false`.
1612
1305
  *
1613
1306
  * @static
1614
1307
  * @memberOf _
@@ -1656,7 +1349,7 @@ return /******/ (function(modules) { // webpackBootstrap
1656
1349
 
1657
1350
 
1658
1351
  /***/ },
1659
- /* 16 */
1352
+ /* 15 */
1660
1353
  /***/ function(module, exports, __webpack_require__) {
1661
1354
 
1662
1355
  /**
@@ -1667,15 +1360,15 @@ return /******/ (function(modules) { // webpackBootstrap
1667
1360
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1668
1361
  * Available under MIT license <http://lodash.com/license>
1669
1362
  */
1670
- var baseIndexOf = __webpack_require__(31),
1671
- cacheIndexOf = __webpack_require__(32),
1672
- createCache = __webpack_require__(33),
1673
- getArray = __webpack_require__(34),
1363
+ var baseIndexOf = __webpack_require__(30),
1364
+ cacheIndexOf = __webpack_require__(31),
1365
+ createCache = __webpack_require__(32),
1366
+ getArray = __webpack_require__(33),
1674
1367
  isArguments = __webpack_require__(23),
1675
1368
  isArray = __webpack_require__(24),
1676
- largeArraySize = __webpack_require__(35),
1677
- releaseArray = __webpack_require__(36),
1678
- releaseObject = __webpack_require__(37);
1369
+ largeArraySize = __webpack_require__(34),
1370
+ releaseArray = __webpack_require__(35),
1371
+ releaseObject = __webpack_require__(36);
1679
1372
 
1680
1373
  /**
1681
1374
  * Creates an array of unique values present in all provided arrays using
@@ -1745,7 +1438,7 @@ return /******/ (function(modules) { // webpackBootstrap
1745
1438
 
1746
1439
 
1747
1440
  /***/ },
1748
- /* 17 */
1441
+ /* 16 */
1749
1442
  /***/ function(module, exports, __webpack_require__) {
1750
1443
 
1751
1444
  /**
@@ -1756,8 +1449,8 @@ return /******/ (function(modules) { // webpackBootstrap
1756
1449
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1757
1450
  * Available under MIT license <http://lodash.com/license>
1758
1451
  */
1759
- var baseUniq = __webpack_require__(38),
1760
- createCallback = __webpack_require__(39);
1452
+ var baseUniq = __webpack_require__(37),
1453
+ createCallback = __webpack_require__(38);
1761
1454
 
1762
1455
  /**
1763
1456
  * Creates a duplicate-value-free version of an array using strict equality
@@ -1820,7 +1513,7 @@ return /******/ (function(modules) { // webpackBootstrap
1820
1513
 
1821
1514
 
1822
1515
  /***/ },
1823
- /* 18 */
1516
+ /* 17 */
1824
1517
  /***/ function(module, exports, __webpack_require__) {
1825
1518
 
1826
1519
  /**
@@ -1831,8 +1524,8 @@ return /******/ (function(modules) { // webpackBootstrap
1831
1524
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1832
1525
  * Available under MIT license <http://lodash.com/license>
1833
1526
  */
1834
- var createCallback = __webpack_require__(39),
1835
- forOwn = __webpack_require__(13);
1527
+ var createCallback = __webpack_require__(38),
1528
+ forOwn = __webpack_require__(12);
1836
1529
 
1837
1530
  /**
1838
1531
  * Creates an array of values by running each element in the collection
@@ -1896,7 +1589,7 @@ return /******/ (function(modules) { // webpackBootstrap
1896
1589
 
1897
1590
 
1898
1591
  /***/ },
1899
- /* 19 */
1592
+ /* 18 */
1900
1593
  /***/ function(module, exports, __webpack_require__) {
1901
1594
 
1902
1595
  /**
@@ -1907,8 +1600,8 @@ return /******/ (function(modules) { // webpackBootstrap
1907
1600
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1908
1601
  * Available under MIT license <http://lodash.com/license>
1909
1602
  */
1910
- var baseCreateCallback = __webpack_require__(27),
1911
- forOwn = __webpack_require__(13);
1603
+ var baseCreateCallback = __webpack_require__(26),
1604
+ forOwn = __webpack_require__(12);
1912
1605
 
1913
1606
  /**
1914
1607
  * Iterates over elements of a collection, executing the callback for each
@@ -1940,62 +1633,371 @@ return /******/ (function(modules) { // webpackBootstrap
1940
1633
  var index = -1,
1941
1634
  length = collection ? collection.length : 0;
1942
1635
 
1943
- callback = callback && typeof thisArg == 'undefined' ? callback : baseCreateCallback(callback, thisArg, 3);
1944
- if (typeof length == 'number') {
1945
- while (++index < length) {
1946
- if (callback(collection[index], index, collection) === false) {
1947
- break;
1948
- }
1636
+ callback = callback && typeof thisArg == 'undefined' ? callback : baseCreateCallback(callback, thisArg, 3);
1637
+ if (typeof length == 'number') {
1638
+ while (++index < length) {
1639
+ if (callback(collection[index], index, collection) === false) {
1640
+ break;
1641
+ }
1642
+ }
1643
+ } else {
1644
+ forOwn(collection, callback);
1645
+ }
1646
+ return collection;
1647
+ }
1648
+
1649
+ module.exports = forEach;
1650
+
1651
+
1652
+ /***/ },
1653
+ /* 19 */
1654
+ /***/ function(module, exports, __webpack_require__) {
1655
+
1656
+ /**
1657
+ * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
1658
+ * Build: `lodash modularize modern exports="node" -o ./modern/`
1659
+ * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
1660
+ * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
1661
+ * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1662
+ * Available under MIT license <http://lodash.com/license>
1663
+ */
1664
+ var keys = __webpack_require__(13);
1665
+
1666
+ /**
1667
+ * Gets the size of the `collection` by returning `collection.length` for arrays
1668
+ * and array-like objects or the number of own enumerable properties for objects.
1669
+ *
1670
+ * @static
1671
+ * @memberOf _
1672
+ * @category Collections
1673
+ * @param {Array|Object|string} collection The collection to inspect.
1674
+ * @returns {number} Returns `collection.length` or number of own enumerable properties.
1675
+ * @example
1676
+ *
1677
+ * _.size([1, 2]);
1678
+ * // => 2
1679
+ *
1680
+ * _.size({ 'one': 1, 'two': 2, 'three': 3 });
1681
+ * // => 3
1682
+ *
1683
+ * _.size('pebbles');
1684
+ * // => 7
1685
+ */
1686
+ function size(collection) {
1687
+ var length = collection ? collection.length : 0;
1688
+ return typeof length == 'number' ? length : keys(collection).length;
1689
+ }
1690
+
1691
+ module.exports = size;
1692
+
1693
+
1694
+ /***/ },
1695
+ /* 20 */
1696
+ /***/ function(module, exports, __webpack_require__) {
1697
+
1698
+ // Copyright Joyent, Inc. and other Node contributors.
1699
+ //
1700
+ // Permission is hereby granted, free of charge, to any person obtaining a
1701
+ // copy of this software and associated documentation files (the
1702
+ // "Software"), to deal in the Software without restriction, including
1703
+ // without limitation the rights to use, copy, modify, merge, publish,
1704
+ // distribute, sublicense, and/or sell copies of the Software, and to permit
1705
+ // persons to whom the Software is furnished to do so, subject to the
1706
+ // following conditions:
1707
+ //
1708
+ // The above copyright notice and this permission notice shall be included
1709
+ // in all copies or substantial portions of the Software.
1710
+ //
1711
+ // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
1712
+ // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
1713
+ // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
1714
+ // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
1715
+ // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
1716
+ // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
1717
+ // USE OR OTHER DEALINGS IN THE SOFTWARE.
1718
+
1719
+ function EventEmitter() {
1720
+ this._events = this._events || {};
1721
+ this._maxListeners = this._maxListeners || undefined;
1722
+ }
1723
+ module.exports = EventEmitter;
1724
+
1725
+ // Backwards-compat with node 0.10.x
1726
+ EventEmitter.EventEmitter = EventEmitter;
1727
+
1728
+ EventEmitter.prototype._events = undefined;
1729
+ EventEmitter.prototype._maxListeners = undefined;
1730
+
1731
+ // By default EventEmitters will print a warning if more than 10 listeners are
1732
+ // added to it. This is a useful default which helps finding memory leaks.
1733
+ EventEmitter.defaultMaxListeners = 10;
1734
+
1735
+ // Obviously not all Emitters should be limited to 10. This function allows
1736
+ // that to be increased. Set to zero for unlimited.
1737
+ EventEmitter.prototype.setMaxListeners = function(n) {
1738
+ if (!isNumber(n) || n < 0 || isNaN(n))
1739
+ throw TypeError('n must be a positive number');
1740
+ this._maxListeners = n;
1741
+ return this;
1742
+ };
1743
+
1744
+ EventEmitter.prototype.emit = function(type) {
1745
+ var er, handler, len, args, i, listeners;
1746
+
1747
+ if (!this._events)
1748
+ this._events = {};
1749
+
1750
+ // If there is no 'error' event listener then throw.
1751
+ if (type === 'error') {
1752
+ if (!this._events.error ||
1753
+ (isObject(this._events.error) && !this._events.error.length)) {
1754
+ er = arguments[1];
1755
+ if (er instanceof Error) {
1756
+ throw er; // Unhandled 'error' event
1757
+ } else {
1758
+ throw TypeError('Uncaught, unspecified "error" event.');
1759
+ }
1760
+ return false;
1761
+ }
1762
+ }
1763
+
1764
+ handler = this._events[type];
1765
+
1766
+ if (isUndefined(handler))
1767
+ return false;
1768
+
1769
+ if (isFunction(handler)) {
1770
+ switch (arguments.length) {
1771
+ // fast cases
1772
+ case 1:
1773
+ handler.call(this);
1774
+ break;
1775
+ case 2:
1776
+ handler.call(this, arguments[1]);
1777
+ break;
1778
+ case 3:
1779
+ handler.call(this, arguments[1], arguments[2]);
1780
+ break;
1781
+ // slower
1782
+ default:
1783
+ len = arguments.length;
1784
+ args = new Array(len - 1);
1785
+ for (i = 1; i < len; i++)
1786
+ args[i - 1] = arguments[i];
1787
+ handler.apply(this, args);
1788
+ }
1789
+ } else if (isObject(handler)) {
1790
+ len = arguments.length;
1791
+ args = new Array(len - 1);
1792
+ for (i = 1; i < len; i++)
1793
+ args[i - 1] = arguments[i];
1794
+
1795
+ listeners = handler.slice();
1796
+ len = listeners.length;
1797
+ for (i = 0; i < len; i++)
1798
+ listeners[i].apply(this, args);
1799
+ }
1800
+
1801
+ return true;
1802
+ };
1803
+
1804
+ EventEmitter.prototype.addListener = function(type, listener) {
1805
+ var m;
1806
+
1807
+ if (!isFunction(listener))
1808
+ throw TypeError('listener must be a function');
1809
+
1810
+ if (!this._events)
1811
+ this._events = {};
1812
+
1813
+ // To avoid recursion in the case that type === "newListener"! Before
1814
+ // adding it to the listeners, first emit "newListener".
1815
+ if (this._events.newListener)
1816
+ this.emit('newListener', type,
1817
+ isFunction(listener.listener) ?
1818
+ listener.listener : listener);
1819
+
1820
+ if (!this._events[type])
1821
+ // Optimize the case of one listener. Don't need the extra array object.
1822
+ this._events[type] = listener;
1823
+ else if (isObject(this._events[type]))
1824
+ // If we've already got an array, just append.
1825
+ this._events[type].push(listener);
1826
+ else
1827
+ // Adding the second element, need to change to array.
1828
+ this._events[type] = [this._events[type], listener];
1829
+
1830
+ // Check for listener leak
1831
+ if (isObject(this._events[type]) && !this._events[type].warned) {
1832
+ var m;
1833
+ if (!isUndefined(this._maxListeners)) {
1834
+ m = this._maxListeners;
1835
+ } else {
1836
+ m = EventEmitter.defaultMaxListeners;
1837
+ }
1838
+
1839
+ if (m && m > 0 && this._events[type].length > m) {
1840
+ this._events[type].warned = true;
1841
+ console.error('(node) warning: possible EventEmitter memory ' +
1842
+ 'leak detected. %d listeners added. ' +
1843
+ 'Use emitter.setMaxListeners() to increase limit.',
1844
+ this._events[type].length);
1845
+ if (typeof console.trace === 'function') {
1846
+ // not supported in IE 10
1847
+ console.trace();
1848
+ }
1849
+ }
1850
+ }
1851
+
1852
+ return this;
1853
+ };
1854
+
1855
+ EventEmitter.prototype.on = EventEmitter.prototype.addListener;
1856
+
1857
+ EventEmitter.prototype.once = function(type, listener) {
1858
+ if (!isFunction(listener))
1859
+ throw TypeError('listener must be a function');
1860
+
1861
+ var fired = false;
1862
+
1863
+ function g() {
1864
+ this.removeListener(type, g);
1865
+
1866
+ if (!fired) {
1867
+ fired = true;
1868
+ listener.apply(this, arguments);
1869
+ }
1870
+ }
1871
+
1872
+ g.listener = listener;
1873
+ this.on(type, g);
1874
+
1875
+ return this;
1876
+ };
1877
+
1878
+ // emits a 'removeListener' event iff the listener was removed
1879
+ EventEmitter.prototype.removeListener = function(type, listener) {
1880
+ var list, position, length, i;
1881
+
1882
+ if (!isFunction(listener))
1883
+ throw TypeError('listener must be a function');
1884
+
1885
+ if (!this._events || !this._events[type])
1886
+ return this;
1887
+
1888
+ list = this._events[type];
1889
+ length = list.length;
1890
+ position = -1;
1891
+
1892
+ if (list === listener ||
1893
+ (isFunction(list.listener) && list.listener === listener)) {
1894
+ delete this._events[type];
1895
+ if (this._events.removeListener)
1896
+ this.emit('removeListener', type, listener);
1897
+
1898
+ } else if (isObject(list)) {
1899
+ for (i = length; i-- > 0;) {
1900
+ if (list[i] === listener ||
1901
+ (list[i].listener && list[i].listener === listener)) {
1902
+ position = i;
1903
+ break;
1904
+ }
1905
+ }
1906
+
1907
+ if (position < 0)
1908
+ return this;
1909
+
1910
+ if (list.length === 1) {
1911
+ list.length = 0;
1912
+ delete this._events[type];
1913
+ } else {
1914
+ list.splice(position, 1);
1915
+ }
1916
+
1917
+ if (this._events.removeListener)
1918
+ this.emit('removeListener', type, listener);
1919
+ }
1920
+
1921
+ return this;
1922
+ };
1923
+
1924
+ EventEmitter.prototype.removeAllListeners = function(type) {
1925
+ var key, listeners;
1926
+
1927
+ if (!this._events)
1928
+ return this;
1929
+
1930
+ // not listening for removeListener, no need to emit
1931
+ if (!this._events.removeListener) {
1932
+ if (arguments.length === 0)
1933
+ this._events = {};
1934
+ else if (this._events[type])
1935
+ delete this._events[type];
1936
+ return this;
1937
+ }
1938
+
1939
+ // emit removeListener for all listeners on all events
1940
+ if (arguments.length === 0) {
1941
+ for (key in this._events) {
1942
+ if (key === 'removeListener') continue;
1943
+ this.removeAllListeners(key);
1949
1944
  }
1945
+ this.removeAllListeners('removeListener');
1946
+ this._events = {};
1947
+ return this;
1948
+ }
1949
+
1950
+ listeners = this._events[type];
1951
+
1952
+ if (isFunction(listeners)) {
1953
+ this.removeListener(type, listeners);
1950
1954
  } else {
1951
- forOwn(collection, callback);
1955
+ // LIFO order
1956
+ while (listeners.length)
1957
+ this.removeListener(type, listeners[listeners.length - 1]);
1952
1958
  }
1953
- return collection;
1959
+ delete this._events[type];
1960
+
1961
+ return this;
1962
+ };
1963
+
1964
+ EventEmitter.prototype.listeners = function(type) {
1965
+ var ret;
1966
+ if (!this._events || !this._events[type])
1967
+ ret = [];
1968
+ else if (isFunction(this._events[type]))
1969
+ ret = [this._events[type]];
1970
+ else
1971
+ ret = this._events[type].slice();
1972
+ return ret;
1973
+ };
1974
+
1975
+ EventEmitter.listenerCount = function(emitter, type) {
1976
+ var ret;
1977
+ if (!emitter._events || !emitter._events[type])
1978
+ ret = 0;
1979
+ else if (isFunction(emitter._events[type]))
1980
+ ret = 1;
1981
+ else
1982
+ ret = emitter._events[type].length;
1983
+ return ret;
1984
+ };
1985
+
1986
+ function isFunction(arg) {
1987
+ return typeof arg === 'function';
1954
1988
  }
1955
1989
 
1956
- module.exports = forEach;
1957
-
1958
-
1959
- /***/ },
1960
- /* 20 */
1961
- /***/ function(module, exports, __webpack_require__) {
1962
-
1963
- /**
1964
- * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
1965
- * Build: `lodash modularize modern exports="node" -o ./modern/`
1966
- * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
1967
- * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
1968
- * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1969
- * Available under MIT license <http://lodash.com/license>
1970
- */
1971
- var keys = __webpack_require__(14);
1990
+ function isNumber(arg) {
1991
+ return typeof arg === 'number';
1992
+ }
1972
1993
 
1973
- /**
1974
- * Gets the size of the `collection` by returning `collection.length` for arrays
1975
- * and array-like objects or the number of own enumerable properties for objects.
1976
- *
1977
- * @static
1978
- * @memberOf _
1979
- * @category Collections
1980
- * @param {Array|Object|string} collection The collection to inspect.
1981
- * @returns {number} Returns `collection.length` or number of own enumerable properties.
1982
- * @example
1983
- *
1984
- * _.size([1, 2]);
1985
- * // => 2
1986
- *
1987
- * _.size({ 'one': 1, 'two': 2, 'three': 3 });
1988
- * // => 3
1989
- *
1990
- * _.size('pebbles');
1991
- * // => 7
1992
- */
1993
- function size(collection) {
1994
- var length = collection ? collection.length : 0;
1995
- return typeof length == 'number' ? length : keys(collection).length;
1994
+ function isObject(arg) {
1995
+ return typeof arg === 'object' && arg !== null;
1996
1996
  }
1997
1997
 
1998
- module.exports = size;
1998
+ function isUndefined(arg) {
1999
+ return arg === void 0;
2000
+ }
1999
2001
 
2000
2002
 
2001
2003
  /***/ },
@@ -2021,7 +2023,7 @@ return /******/ (function(modules) { // webpackBootstrap
2021
2023
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
2022
2024
  * Available under MIT license <http://lodash.com/license>
2023
2025
  */
2024
- var objectTypes = __webpack_require__(28);
2026
+ var objectTypes = __webpack_require__(27);
2025
2027
 
2026
2028
  /**
2027
2029
  * Checks if `value` is the language type of Object.
@@ -2112,7 +2114,7 @@ return /******/ (function(modules) { // webpackBootstrap
2112
2114
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
2113
2115
  * Available under MIT license <http://lodash.com/license>
2114
2116
  */
2115
- var isNative = __webpack_require__(29);
2117
+ var isNative = __webpack_require__(28);
2116
2118
 
2117
2119
  /** `Object#toString` result shortcuts */
2118
2120
  var arrayClass = '[object Array]';
@@ -2153,72 +2155,6 @@ return /******/ (function(modules) { // webpackBootstrap
2153
2155
 
2154
2156
  /***/ },
2155
2157
  /* 25 */
2156
- /***/ function(module, exports, __webpack_require__) {
2157
-
2158
- // shim for using process in browser
2159
-
2160
- var process = module.exports = {};
2161
-
2162
- process.nextTick = (function () {
2163
- var canSetImmediate = typeof window !== 'undefined'
2164
- && window.setImmediate;
2165
- var canPost = typeof window !== 'undefined'
2166
- && window.postMessage && window.addEventListener
2167
- ;
2168
-
2169
- if (canSetImmediate) {
2170
- return function (f) { return window.setImmediate(f) };
2171
- }
2172
-
2173
- if (canPost) {
2174
- var queue = [];
2175
- window.addEventListener('message', function (ev) {
2176
- var source = ev.source;
2177
- if ((source === window || source === null) && ev.data === 'process-tick') {
2178
- ev.stopPropagation();
2179
- if (queue.length > 0) {
2180
- var fn = queue.shift();
2181
- fn();
2182
- }
2183
- }
2184
- }, true);
2185
-
2186
- return function nextTick(fn) {
2187
- queue.push(fn);
2188
- window.postMessage('process-tick', '*');
2189
- };
2190
- }
2191
-
2192
- return function nextTick(fn) {
2193
- setTimeout(fn, 0);
2194
- };
2195
- })();
2196
-
2197
- process.title = 'browser';
2198
- process.browser = true;
2199
- process.env = {};
2200
- process.argv = [];
2201
-
2202
- function noop() {}
2203
-
2204
- process.on = noop;
2205
- process.once = noop;
2206
- process.off = noop;
2207
- process.emit = noop;
2208
-
2209
- process.binding = function (name) {
2210
- throw new Error('process.binding is not supported');
2211
- }
2212
-
2213
- // TODO(shtylman)
2214
- process.cwd = function () { return '/' };
2215
- process.chdir = function (dir) {
2216
- throw new Error('process.chdir is not supported');
2217
- };
2218
-
2219
-
2220
- /***/ },
2221
- /* 26 */
2222
2158
  /***/ function(module, exports, __webpack_require__) {
2223
2159
 
2224
2160
  /**
@@ -2230,12 +2166,12 @@ return /******/ (function(modules) { // webpackBootstrap
2230
2166
  * Available under MIT license <http://lodash.com/license>
2231
2167
  */
2232
2168
  var assign = __webpack_require__(41),
2233
- forEach = __webpack_require__(19),
2234
- forOwn = __webpack_require__(13),
2235
- getArray = __webpack_require__(34),
2169
+ forEach = __webpack_require__(18),
2170
+ forOwn = __webpack_require__(12),
2171
+ getArray = __webpack_require__(33),
2236
2172
  isArray = __webpack_require__(24),
2237
2173
  isObject = __webpack_require__(22),
2238
- releaseArray = __webpack_require__(36),
2174
+ releaseArray = __webpack_require__(35),
2239
2175
  slice = __webpack_require__(42);
2240
2176
 
2241
2177
  /** Used to match regexp flags from their coerced string values */
@@ -2376,7 +2312,7 @@ return /******/ (function(modules) { // webpackBootstrap
2376
2312
 
2377
2313
 
2378
2314
  /***/ },
2379
- /* 27 */
2315
+ /* 26 */
2380
2316
  /***/ function(module, exports, __webpack_require__) {
2381
2317
 
2382
2318
  /**
@@ -2388,7 +2324,7 @@ return /******/ (function(modules) { // webpackBootstrap
2388
2324
  * Available under MIT license <http://lodash.com/license>
2389
2325
  */
2390
2326
  var bind = __webpack_require__(43),
2391
- identity = __webpack_require__(51),
2327
+ identity = __webpack_require__(53),
2392
2328
  setBindData = __webpack_require__(44),
2393
2329
  support = __webpack_require__(45);
2394
2330
 
@@ -2462,7 +2398,7 @@ return /******/ (function(modules) { // webpackBootstrap
2462
2398
 
2463
2399
 
2464
2400
  /***/ },
2465
- /* 28 */
2401
+ /* 27 */
2466
2402
  /***/ function(module, exports, __webpack_require__) {
2467
2403
 
2468
2404
  /**
@@ -2488,7 +2424,7 @@ return /******/ (function(modules) { // webpackBootstrap
2488
2424
 
2489
2425
 
2490
2426
  /***/ },
2491
- /* 29 */
2427
+ /* 28 */
2492
2428
  /***/ function(module, exports, __webpack_require__) {
2493
2429
 
2494
2430
  /**
@@ -2528,7 +2464,7 @@ return /******/ (function(modules) { // webpackBootstrap
2528
2464
 
2529
2465
 
2530
2466
  /***/ },
2531
- /* 30 */
2467
+ /* 29 */
2532
2468
  /***/ function(module, exports, __webpack_require__) {
2533
2469
 
2534
2470
  /**
@@ -2539,7 +2475,7 @@ return /******/ (function(modules) { // webpackBootstrap
2539
2475
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
2540
2476
  * Available under MIT license <http://lodash.com/license>
2541
2477
  */
2542
- var objectTypes = __webpack_require__(28);
2478
+ var objectTypes = __webpack_require__(27);
2543
2479
 
2544
2480
  /** Used for native method references */
2545
2481
  var objectProto = Object.prototype;
@@ -2572,7 +2508,7 @@ return /******/ (function(modules) { // webpackBootstrap
2572
2508
 
2573
2509
 
2574
2510
  /***/ },
2575
- /* 31 */
2511
+ /* 30 */
2576
2512
  /***/ function(module, exports, __webpack_require__) {
2577
2513
 
2578
2514
  /**
@@ -2610,7 +2546,7 @@ return /******/ (function(modules) { // webpackBootstrap
2610
2546
 
2611
2547
 
2612
2548
  /***/ },
2613
- /* 32 */
2549
+ /* 31 */
2614
2550
  /***/ function(module, exports, __webpack_require__) {
2615
2551
 
2616
2552
  /**
@@ -2621,8 +2557,8 @@ return /******/ (function(modules) { // webpackBootstrap
2621
2557
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
2622
2558
  * Available under MIT license <http://lodash.com/license>
2623
2559
  */
2624
- var baseIndexOf = __webpack_require__(31),
2625
- keyPrefix = __webpack_require__(46);
2560
+ var baseIndexOf = __webpack_require__(30),
2561
+ keyPrefix = __webpack_require__(48);
2626
2562
 
2627
2563
  /**
2628
2564
  * An implementation of `_.contains` for cache objects that mimics the return
@@ -2655,7 +2591,7 @@ return /******/ (function(modules) { // webpackBootstrap
2655
2591
 
2656
2592
 
2657
2593
  /***/ },
2658
- /* 33 */
2594
+ /* 32 */
2659
2595
  /***/ function(module, exports, __webpack_require__) {
2660
2596
 
2661
2597
  /**
@@ -2666,9 +2602,9 @@ return /******/ (function(modules) { // webpackBootstrap
2666
2602
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
2667
2603
  * Available under MIT license <http://lodash.com/license>
2668
2604
  */
2669
- var cachePush = __webpack_require__(49),
2670
- getObject = __webpack_require__(50),
2671
- releaseObject = __webpack_require__(37);
2605
+ var cachePush = __webpack_require__(46),
2606
+ getObject = __webpack_require__(47),
2607
+ releaseObject = __webpack_require__(36);
2672
2608
 
2673
2609
  /**
2674
2610
  * Creates a cache object to optimize linear searches of large arrays.
@@ -2706,7 +2642,7 @@ return /******/ (function(modules) { // webpackBootstrap
2706
2642
 
2707
2643
 
2708
2644
  /***/ },
2709
- /* 34 */
2645
+ /* 33 */
2710
2646
  /***/ function(module, exports, __webpack_require__) {
2711
2647
 
2712
2648
  /**
@@ -2717,7 +2653,7 @@ return /******/ (function(modules) { // webpackBootstrap
2717
2653
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
2718
2654
  * Available under MIT license <http://lodash.com/license>
2719
2655
  */
2720
- var arrayPool = __webpack_require__(47);
2656
+ var arrayPool = __webpack_require__(51);
2721
2657
 
2722
2658
  /**
2723
2659
  * Gets an array from the array pool or creates a new one if the pool is empty.
@@ -2733,7 +2669,7 @@ return /******/ (function(modules) { // webpackBootstrap
2733
2669
 
2734
2670
 
2735
2671
  /***/ },
2736
- /* 35 */
2672
+ /* 34 */
2737
2673
  /***/ function(module, exports, __webpack_require__) {
2738
2674
 
2739
2675
  /**
@@ -2752,7 +2688,7 @@ return /******/ (function(modules) { // webpackBootstrap
2752
2688
 
2753
2689
 
2754
2690
  /***/ },
2755
- /* 36 */
2691
+ /* 35 */
2756
2692
  /***/ function(module, exports, __webpack_require__) {
2757
2693
 
2758
2694
  /**
@@ -2763,8 +2699,8 @@ return /******/ (function(modules) { // webpackBootstrap
2763
2699
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
2764
2700
  * Available under MIT license <http://lodash.com/license>
2765
2701
  */
2766
- var arrayPool = __webpack_require__(47),
2767
- maxPoolSize = __webpack_require__(48);
2702
+ var arrayPool = __webpack_require__(51),
2703
+ maxPoolSize = __webpack_require__(49);
2768
2704
 
2769
2705
  /**
2770
2706
  * Releases the given array back to the array pool.
@@ -2783,7 +2719,7 @@ return /******/ (function(modules) { // webpackBootstrap
2783
2719
 
2784
2720
 
2785
2721
  /***/ },
2786
- /* 37 */
2722
+ /* 36 */
2787
2723
  /***/ function(module, exports, __webpack_require__) {
2788
2724
 
2789
2725
  /**
@@ -2794,8 +2730,8 @@ return /******/ (function(modules) { // webpackBootstrap
2794
2730
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
2795
2731
  * Available under MIT license <http://lodash.com/license>
2796
2732
  */
2797
- var maxPoolSize = __webpack_require__(48),
2798
- objectPool = __webpack_require__(52);
2733
+ var maxPoolSize = __webpack_require__(49),
2734
+ objectPool = __webpack_require__(50);
2799
2735
 
2800
2736
  /**
2801
2737
  * Releases the given object back to the object pool.
@@ -2818,7 +2754,7 @@ return /******/ (function(modules) { // webpackBootstrap
2818
2754
 
2819
2755
 
2820
2756
  /***/ },
2821
- /* 38 */
2757
+ /* 37 */
2822
2758
  /***/ function(module, exports, __webpack_require__) {
2823
2759
 
2824
2760
  /**
@@ -2829,13 +2765,13 @@ return /******/ (function(modules) { // webpackBootstrap
2829
2765
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
2830
2766
  * Available under MIT license <http://lodash.com/license>
2831
2767
  */
2832
- var baseIndexOf = __webpack_require__(31),
2833
- cacheIndexOf = __webpack_require__(32),
2834
- createCache = __webpack_require__(33),
2835
- getArray = __webpack_require__(34),
2836
- largeArraySize = __webpack_require__(35),
2837
- releaseArray = __webpack_require__(36),
2838
- releaseObject = __webpack_require__(37);
2768
+ var baseIndexOf = __webpack_require__(30),
2769
+ cacheIndexOf = __webpack_require__(31),
2770
+ createCache = __webpack_require__(32),
2771
+ getArray = __webpack_require__(33),
2772
+ largeArraySize = __webpack_require__(34),
2773
+ releaseArray = __webpack_require__(35),
2774
+ releaseObject = __webpack_require__(36);
2839
2775
 
2840
2776
  /**
2841
2777
  * The base implementation of `_.uniq` without support for callback shorthands
@@ -2888,7 +2824,7 @@ return /******/ (function(modules) { // webpackBootstrap
2888
2824
 
2889
2825
 
2890
2826
  /***/ },
2891
- /* 39 */
2827
+ /* 38 */
2892
2828
  /***/ function(module, exports, __webpack_require__) {
2893
2829
 
2894
2830
  /**
@@ -2899,10 +2835,10 @@ return /******/ (function(modules) { // webpackBootstrap
2899
2835
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
2900
2836
  * Available under MIT license <http://lodash.com/license>
2901
2837
  */
2902
- var baseCreateCallback = __webpack_require__(27),
2903
- baseIsEqual = __webpack_require__(53),
2838
+ var baseCreateCallback = __webpack_require__(26),
2839
+ baseIsEqual = __webpack_require__(52),
2904
2840
  isObject = __webpack_require__(22),
2905
- keys = __webpack_require__(14),
2841
+ keys = __webpack_require__(13),
2906
2842
  property = __webpack_require__(54);
2907
2843
 
2908
2844
  /**
@@ -2962,16 +2898,82 @@ return /******/ (function(modules) { // webpackBootstrap
2962
2898
  var length = props.length,
2963
2899
  result = false;
2964
2900
 
2965
- while (length--) {
2966
- if (!(result = baseIsEqual(object[props[length]], func[props[length]], null, true))) {
2967
- break;
2968
- }
2901
+ while (length--) {
2902
+ if (!(result = baseIsEqual(object[props[length]], func[props[length]], null, true))) {
2903
+ break;
2904
+ }
2905
+ }
2906
+ return result;
2907
+ };
2908
+ }
2909
+
2910
+ module.exports = createCallback;
2911
+
2912
+
2913
+ /***/ },
2914
+ /* 39 */
2915
+ /***/ function(module, exports, __webpack_require__) {
2916
+
2917
+ // shim for using process in browser
2918
+
2919
+ var process = module.exports = {};
2920
+
2921
+ process.nextTick = (function () {
2922
+ var canSetImmediate = typeof window !== 'undefined'
2923
+ && window.setImmediate;
2924
+ var canPost = typeof window !== 'undefined'
2925
+ && window.postMessage && window.addEventListener
2926
+ ;
2927
+
2928
+ if (canSetImmediate) {
2929
+ return function (f) { return window.setImmediate(f) };
2930
+ }
2931
+
2932
+ if (canPost) {
2933
+ var queue = [];
2934
+ window.addEventListener('message', function (ev) {
2935
+ var source = ev.source;
2936
+ if ((source === window || source === null) && ev.data === 'process-tick') {
2937
+ ev.stopPropagation();
2938
+ if (queue.length > 0) {
2939
+ var fn = queue.shift();
2940
+ fn();
2941
+ }
2942
+ }
2943
+ }, true);
2944
+
2945
+ return function nextTick(fn) {
2946
+ queue.push(fn);
2947
+ window.postMessage('process-tick', '*');
2948
+ };
2969
2949
  }
2970
- return result;
2971
- };
2950
+
2951
+ return function nextTick(fn) {
2952
+ setTimeout(fn, 0);
2953
+ };
2954
+ })();
2955
+
2956
+ process.title = 'browser';
2957
+ process.browser = true;
2958
+ process.env = {};
2959
+ process.argv = [];
2960
+
2961
+ function noop() {}
2962
+
2963
+ process.on = noop;
2964
+ process.once = noop;
2965
+ process.off = noop;
2966
+ process.emit = noop;
2967
+
2968
+ process.binding = function (name) {
2969
+ throw new Error('process.binding is not supported');
2972
2970
  }
2973
2971
 
2974
- module.exports = createCallback;
2972
+ // TODO(shtylman)
2973
+ process.cwd = function () { return '/' };
2974
+ process.chdir = function (dir) {
2975
+ throw new Error('process.chdir is not supported');
2976
+ };
2975
2977
 
2976
2978
 
2977
2979
  /***/ },
@@ -3015,9 +3017,9 @@ return /******/ (function(modules) { // webpackBootstrap
3015
3017
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
3016
3018
  * Available under MIT license <http://lodash.com/license>
3017
3019
  */
3018
- var baseCreateCallback = __webpack_require__(27),
3019
- keys = __webpack_require__(14),
3020
- objectTypes = __webpack_require__(28);
3020
+ var baseCreateCallback = __webpack_require__(26),
3021
+ keys = __webpack_require__(13),
3022
+ objectTypes = __webpack_require__(27);
3021
3023
 
3022
3024
  /**
3023
3025
  * Assigns own enumerable properties of source object(s) to the destination
@@ -3135,7 +3137,7 @@ return /******/ (function(modules) { // webpackBootstrap
3135
3137
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
3136
3138
  * Available under MIT license <http://lodash.com/license>
3137
3139
  */
3138
- var createWrapper = __webpack_require__(56),
3140
+ var createWrapper = __webpack_require__(55),
3139
3141
  slice = __webpack_require__(42);
3140
3142
 
3141
3143
  /**
@@ -3181,8 +3183,8 @@ return /******/ (function(modules) { // webpackBootstrap
3181
3183
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
3182
3184
  * Available under MIT license <http://lodash.com/license>
3183
3185
  */
3184
- var isNative = __webpack_require__(29),
3185
- noop = __webpack_require__(55);
3186
+ var isNative = __webpack_require__(28),
3187
+ noop = __webpack_require__(56);
3186
3188
 
3187
3189
  /** Used as the property descriptor for `__bindData__` */
3188
3190
  var descriptor = {
@@ -3230,7 +3232,7 @@ return /******/ (function(modules) { // webpackBootstrap
3230
3232
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
3231
3233
  * Available under MIT license <http://lodash.com/license>
3232
3234
  */
3233
- var isNative = __webpack_require__(29);
3235
+ var isNative = __webpack_require__(28);
3234
3236
 
3235
3237
  /** Used to detect functions containing a `this` reference */
3236
3238
  var reThis = /\bthis\b/;
@@ -3277,64 +3279,7 @@ return /******/ (function(modules) { // webpackBootstrap
3277
3279
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
3278
3280
  * Available under MIT license <http://lodash.com/license>
3279
3281
  */
3280
-
3281
- /** Used to prefix keys to avoid issues with `__proto__` and properties on `Object.prototype` */
3282
- var keyPrefix = +new Date + '';
3283
-
3284
- module.exports = keyPrefix;
3285
-
3286
-
3287
- /***/ },
3288
- /* 47 */
3289
- /***/ function(module, exports, __webpack_require__) {
3290
-
3291
- /**
3292
- * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
3293
- * Build: `lodash modularize modern exports="node" -o ./modern/`
3294
- * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
3295
- * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
3296
- * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
3297
- * Available under MIT license <http://lodash.com/license>
3298
- */
3299
-
3300
- /** Used to pool arrays and objects used internally */
3301
- var arrayPool = [];
3302
-
3303
- module.exports = arrayPool;
3304
-
3305
-
3306
- /***/ },
3307
- /* 48 */
3308
- /***/ function(module, exports, __webpack_require__) {
3309
-
3310
- /**
3311
- * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
3312
- * Build: `lodash modularize modern exports="node" -o ./modern/`
3313
- * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
3314
- * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
3315
- * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
3316
- * Available under MIT license <http://lodash.com/license>
3317
- */
3318
-
3319
- /** Used as the max size of the `arrayPool` and `objectPool` */
3320
- var maxPoolSize = 40;
3321
-
3322
- module.exports = maxPoolSize;
3323
-
3324
-
3325
- /***/ },
3326
- /* 49 */
3327
- /***/ function(module, exports, __webpack_require__) {
3328
-
3329
- /**
3330
- * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
3331
- * Build: `lodash modularize modern exports="node" -o ./modern/`
3332
- * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
3333
- * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
3334
- * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
3335
- * Available under MIT license <http://lodash.com/license>
3336
- */
3337
- var keyPrefix = __webpack_require__(46);
3282
+ var keyPrefix = __webpack_require__(48);
3338
3283
 
3339
3284
  /**
3340
3285
  * Adds a given value to the corresponding cache object.
@@ -3367,7 +3312,7 @@ return /******/ (function(modules) { // webpackBootstrap
3367
3312
 
3368
3313
 
3369
3314
  /***/ },
3370
- /* 50 */
3315
+ /* 47 */
3371
3316
  /***/ function(module, exports, __webpack_require__) {
3372
3317
 
3373
3318
  /**
@@ -3378,7 +3323,7 @@ return /******/ (function(modules) { // webpackBootstrap
3378
3323
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
3379
3324
  * Available under MIT license <http://lodash.com/license>
3380
3325
  */
3381
- var objectPool = __webpack_require__(52);
3326
+ var objectPool = __webpack_require__(50);
3382
3327
 
3383
3328
  /**
3384
3329
  * Gets an object from the object pool or creates a new one if the pool is empty.
@@ -3408,7 +3353,7 @@ return /******/ (function(modules) { // webpackBootstrap
3408
3353
 
3409
3354
 
3410
3355
  /***/ },
3411
- /* 51 */
3356
+ /* 48 */
3412
3357
  /***/ function(module, exports, __webpack_require__) {
3413
3358
 
3414
3359
  /**
@@ -3420,29 +3365,33 @@ return /******/ (function(modules) { // webpackBootstrap
3420
3365
  * Available under MIT license <http://lodash.com/license>
3421
3366
  */
3422
3367
 
3368
+ /** Used to prefix keys to avoid issues with `__proto__` and properties on `Object.prototype` */
3369
+ var keyPrefix = +new Date + '';
3370
+
3371
+ module.exports = keyPrefix;
3372
+
3373
+
3374
+ /***/ },
3375
+ /* 49 */
3376
+ /***/ function(module, exports, __webpack_require__) {
3377
+
3423
3378
  /**
3424
- * This method returns the first argument provided to it.
3425
- *
3426
- * @static
3427
- * @memberOf _
3428
- * @category Utilities
3429
- * @param {*} value Any value.
3430
- * @returns {*} Returns `value`.
3431
- * @example
3432
- *
3433
- * var object = { 'name': 'fred' };
3434
- * _.identity(object) === object;
3435
- * // => true
3379
+ * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
3380
+ * Build: `lodash modularize modern exports="node" -o ./modern/`
3381
+ * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
3382
+ * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
3383
+ * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
3384
+ * Available under MIT license <http://lodash.com/license>
3436
3385
  */
3437
- function identity(value) {
3438
- return value;
3439
- }
3440
3386
 
3441
- module.exports = identity;
3387
+ /** Used as the max size of the `arrayPool` and `objectPool` */
3388
+ var maxPoolSize = 40;
3389
+
3390
+ module.exports = maxPoolSize;
3442
3391
 
3443
3392
 
3444
3393
  /***/ },
3445
- /* 52 */
3394
+ /* 50 */
3446
3395
  /***/ function(module, exports, __webpack_require__) {
3447
3396
 
3448
3397
  /**
@@ -3461,7 +3410,26 @@ return /******/ (function(modules) { // webpackBootstrap
3461
3410
 
3462
3411
 
3463
3412
  /***/ },
3464
- /* 53 */
3413
+ /* 51 */
3414
+ /***/ function(module, exports, __webpack_require__) {
3415
+
3416
+ /**
3417
+ * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
3418
+ * Build: `lodash modularize modern exports="node" -o ./modern/`
3419
+ * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
3420
+ * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
3421
+ * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
3422
+ * Available under MIT license <http://lodash.com/license>
3423
+ */
3424
+
3425
+ /** Used to pool arrays and objects used internally */
3426
+ var arrayPool = [];
3427
+
3428
+ module.exports = arrayPool;
3429
+
3430
+
3431
+ /***/ },
3432
+ /* 52 */
3465
3433
  /***/ function(module, exports, __webpack_require__) {
3466
3434
 
3467
3435
  /**
@@ -3473,10 +3441,10 @@ return /******/ (function(modules) { // webpackBootstrap
3473
3441
  * Available under MIT license <http://lodash.com/license>
3474
3442
  */
3475
3443
  var forIn = __webpack_require__(57),
3476
- getArray = __webpack_require__(34),
3444
+ getArray = __webpack_require__(33),
3477
3445
  isFunction = __webpack_require__(58),
3478
- objectTypes = __webpack_require__(28),
3479
- releaseArray = __webpack_require__(36);
3446
+ objectTypes = __webpack_require__(27),
3447
+ releaseArray = __webpack_require__(35);
3480
3448
 
3481
3449
  /** `Object#toString` result shortcuts */
3482
3450
  var argsClass = '[object Arguments]',
@@ -3676,7 +3644,7 @@ return /******/ (function(modules) { // webpackBootstrap
3676
3644
 
3677
3645
 
3678
3646
  /***/ },
3679
- /* 54 */
3647
+ /* 53 */
3680
3648
  /***/ function(module, exports, __webpack_require__) {
3681
3649
 
3682
3650
  /**
@@ -3689,40 +3657,28 @@ return /******/ (function(modules) { // webpackBootstrap
3689
3657
  */
3690
3658
 
3691
3659
  /**
3692
- * Creates a "_.pluck" style function, which returns the `key` value of a
3693
- * given object.
3660
+ * This method returns the first argument provided to it.
3694
3661
  *
3695
3662
  * @static
3696
3663
  * @memberOf _
3697
3664
  * @category Utilities
3698
- * @param {string} key The name of the property to retrieve.
3699
- * @returns {Function} Returns the new function.
3665
+ * @param {*} value Any value.
3666
+ * @returns {*} Returns `value`.
3700
3667
  * @example
3701
3668
  *
3702
- * var characters = [
3703
- * { 'name': 'fred', 'age': 40 },
3704
- * { 'name': 'barney', 'age': 36 }
3705
- * ];
3706
- *
3707
- * var getName = _.property('name');
3708
- *
3709
- * _.map(characters, getName);
3710
- * // => ['barney', 'fred']
3711
- *
3712
- * _.sortBy(characters, getName);
3713
- * // => [{ 'name': 'barney', 'age': 36 }, { 'name': 'fred', 'age': 40 }]
3669
+ * var object = { 'name': 'fred' };
3670
+ * _.identity(object) === object;
3671
+ * // => true
3714
3672
  */
3715
- function property(key) {
3716
- return function(object) {
3717
- return object[key];
3718
- };
3673
+ function identity(value) {
3674
+ return value;
3719
3675
  }
3720
3676
 
3721
- module.exports = property;
3677
+ module.exports = identity;
3722
3678
 
3723
3679
 
3724
3680
  /***/ },
3725
- /* 55 */
3681
+ /* 54 */
3726
3682
  /***/ function(module, exports, __webpack_require__) {
3727
3683
 
3728
3684
  /**
@@ -3735,26 +3691,40 @@ return /******/ (function(modules) { // webpackBootstrap
3735
3691
  */
3736
3692
 
3737
3693
  /**
3738
- * A no-operation function.
3694
+ * Creates a "_.pluck" style function, which returns the `key` value of a
3695
+ * given object.
3739
3696
  *
3740
3697
  * @static
3741
3698
  * @memberOf _
3742
3699
  * @category Utilities
3700
+ * @param {string} key The name of the property to retrieve.
3701
+ * @returns {Function} Returns the new function.
3743
3702
  * @example
3744
3703
  *
3745
- * var object = { 'name': 'fred' };
3746
- * _.noop(object) === undefined;
3747
- * // => true
3704
+ * var characters = [
3705
+ * { 'name': 'fred', 'age': 40 },
3706
+ * { 'name': 'barney', 'age': 36 }
3707
+ * ];
3708
+ *
3709
+ * var getName = _.property('name');
3710
+ *
3711
+ * _.map(characters, getName);
3712
+ * // => ['barney', 'fred']
3713
+ *
3714
+ * _.sortBy(characters, getName);
3715
+ * // => [{ 'name': 'barney', 'age': 36 }, { 'name': 'fred', 'age': 40 }]
3748
3716
  */
3749
- function noop() {
3750
- // no operation performed
3717
+ function property(key) {
3718
+ return function(object) {
3719
+ return object[key];
3720
+ };
3751
3721
  }
3752
3722
 
3753
- module.exports = noop;
3723
+ module.exports = property;
3754
3724
 
3755
3725
 
3756
3726
  /***/ },
3757
- /* 56 */
3727
+ /* 55 */
3758
3728
  /***/ function(module, exports, __webpack_require__) {
3759
3729
 
3760
3730
  /**
@@ -3865,6 +3835,38 @@ return /******/ (function(modules) { // webpackBootstrap
3865
3835
  module.exports = createWrapper;
3866
3836
 
3867
3837
 
3838
+ /***/ },
3839
+ /* 56 */
3840
+ /***/ function(module, exports, __webpack_require__) {
3841
+
3842
+ /**
3843
+ * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
3844
+ * Build: `lodash modularize modern exports="node" -o ./modern/`
3845
+ * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
3846
+ * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
3847
+ * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
3848
+ * Available under MIT license <http://lodash.com/license>
3849
+ */
3850
+
3851
+ /**
3852
+ * A no-operation function.
3853
+ *
3854
+ * @static
3855
+ * @memberOf _
3856
+ * @category Utilities
3857
+ * @example
3858
+ *
3859
+ * var object = { 'name': 'fred' };
3860
+ * _.noop(object) === undefined;
3861
+ * // => true
3862
+ */
3863
+ function noop() {
3864
+ // no operation performed
3865
+ }
3866
+
3867
+ module.exports = noop;
3868
+
3869
+
3868
3870
  /***/ },
3869
3871
  /* 57 */
3870
3872
  /***/ function(module, exports, __webpack_require__) {
@@ -3877,8 +3879,8 @@ return /******/ (function(modules) { // webpackBootstrap
3877
3879
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
3878
3880
  * Available under MIT license <http://lodash.com/license>
3879
3881
  */
3880
- var baseCreateCallback = __webpack_require__(27),
3881
- objectTypes = __webpack_require__(28);
3882
+ var baseCreateCallback = __webpack_require__(26),
3883
+ objectTypes = __webpack_require__(27);
3882
3884
 
3883
3885
  /**
3884
3886
  * Iterates over own and inherited enumerable properties of an object,
@@ -4122,9 +4124,9 @@ return /******/ (function(modules) { // webpackBootstrap
4122
4124
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
4123
4125
  * Available under MIT license <http://lodash.com/license>
4124
4126
  */
4125
- var isNative = __webpack_require__(29),
4127
+ var isNative = __webpack_require__(28),
4126
4128
  isObject = __webpack_require__(22),
4127
- noop = __webpack_require__(55);
4129
+ noop = __webpack_require__(56);
4128
4130
 
4129
4131
  /* Native method shortcuts for methods with the same name as other `lodash` methods */
4130
4132
  var nativeCreate = isNative(nativeCreate = Object.create) && nativeCreate;