fluxxor-rails 1.2.0 → 1.2.1

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: a4006ef2d26cc426519d053bc497b7e7a69cf154
4
- data.tar.gz: 07b0601a7f5e73dc8042b928f767f9d6b01d733f
3
+ metadata.gz: fbd0c934bb03efb1996942a40f775cff9222a0b4
4
+ data.tar.gz: c310d2466a77ac02116440afb5969f6fd9d188a3
5
5
  SHA512:
6
- metadata.gz: 9d84a94895664af5be5e616e2db35ba31e73db7e4aaa0bd37226a32baa6db47ec4aa182842e933b6aae1368c66bcefaf0bd2cd409af5eed206e6e010abeb9d42
7
- data.tar.gz: ac373059868265cb9f24a99332919c40dd3f189031e39d8713530aecc3dd0c174733fce4f80de50c103e99f2c1a172367bd30edba0e3065b21619dc66a88e0ea
6
+ metadata.gz: 1478c242405a64ccb46f2d3dc3b417d0d01f0621a60d71063d358dca00ec7c3ed09c74473572ff8e1eb07f44745dcbf41f9f20f5374431d5bfda443f9d5675fa
7
+ data.tar.gz: 46982d427e014d2a80c840421fe9704d91705809e30585a7aa0485d0776aa54506b1178d3f096d339b679aec5e438bcce82e9d00cab219cf95ee159f83501e52
@@ -1,5 +1,5 @@
1
1
  module Fluxxor
2
2
  module Rails
3
- VERSION = '1.2.0'
3
+ VERSION = '1.2.1'
4
4
  end
5
5
  end
@@ -51,3 +51,8 @@ Compiled fluxxor.js (1ms) (pid 13762)
51
51
  Served asset /fluxxor.js - 200 OK (9ms)
52
52
  Started GET "/assets/fluxxor.js" for 127.0.0.1 at 2015-09-23 13:48:22 -0500
53
53
  Served asset /fluxxor.js - 200 OK (0ms)
54
+ Started GET "/assets/fluxxor.js" for 127.0.0.1 at 2015-09-23 13:48:52 -0500
55
+ Compiled fluxxor.js (1ms) (pid 14381)
56
+ Served asset /fluxxor.js - 200 OK (7ms)
57
+ Started GET "/assets/fluxxor.js" for 127.0.0.1 at 2015-09-23 13:48:52 -0500
58
+ 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.2.0","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.2.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"]}}
83
83
 
84
84
  /***/ },
85
85
  /* 2 */
86
86
  /***/ function(module, exports, __webpack_require__) {
87
87
 
88
88
  var _clone = __webpack_require__(11),
89
- _mapValues = __webpack_require__(10),
90
- _forOwn = __webpack_require__(12),
91
- _intersection = __webpack_require__(15),
92
- _keys = __webpack_require__(13),
89
+ _mapValues = __webpack_require__(12),
90
+ _forOwn = __webpack_require__(13),
91
+ _intersection = __webpack_require__(16),
92
+ _keys = __webpack_require__(14),
93
93
  _map = __webpack_require__(18),
94
- _each = __webpack_require__(17),
95
- _size = __webpack_require__(19),
96
- _findKey = __webpack_require__(14),
97
- _uniq = __webpack_require__(16);
94
+ _each = __webpack_require__(19),
95
+ _size = __webpack_require__(20),
96
+ _findKey = __webpack_require__(15),
97
+ _uniq = __webpack_require__(17);
98
98
 
99
99
  var Dispatcher = function(stores) {
100
100
  this.stores = stores;
@@ -113,6 +113,10 @@ return /******/ (function(modules) { // webpackBootstrap
113
113
  throw new Error("Cannot dispatch an action while another action is being dispatched");
114
114
  }
115
115
 
116
+ if (!action || !action.type) {
117
+ throw new Error("Can only dispatch actions with a 'type' property");
118
+ }
119
+
116
120
  this.waitingToDispatch = _clone(this.stores);
117
121
 
118
122
  this.currentDispatch = _mapValues(this.stores, function() {
@@ -307,7 +311,7 @@ return /******/ (function(modules) { // webpackBootstrap
307
311
  /* 6 */
308
312
  /***/ function(module, exports, __webpack_require__) {
309
313
 
310
- var _each = __webpack_require__(17);
314
+ var _each = __webpack_require__(19);
311
315
 
312
316
  var StoreWatchMixin = function() {
313
317
  var storeNames = Array.prototype.slice.call(arguments);
@@ -349,7 +353,7 @@ return /******/ (function(modules) { // webpackBootstrap
349
353
  /* 7 */
350
354
  /***/ function(module, exports, __webpack_require__) {
351
355
 
352
- var _each = __webpack_require__(17),
356
+ var _each = __webpack_require__(19),
353
357
  Store = __webpack_require__(8),
354
358
  util = __webpack_require__(9);
355
359
 
@@ -394,7 +398,7 @@ return /******/ (function(modules) { // webpackBootstrap
394
398
  /* 8 */
395
399
  /***/ function(module, exports, __webpack_require__) {
396
400
 
397
- var EventEmitter = __webpack_require__(20).EventEmitter,
401
+ var EventEmitter = __webpack_require__(10).EventEmitter,
398
402
  util = __webpack_require__(9);
399
403
 
400
404
  function Store(dispatcher) {
@@ -966,7 +970,7 @@ return /******/ (function(modules) { // webpackBootstrap
966
970
  }
967
971
  exports.isPrimitive = isPrimitive;
968
972
 
969
- exports.isBuffer = __webpack_require__(38);
973
+ exports.isBuffer = __webpack_require__(21);
970
974
 
971
975
  function objectToString(o) {
972
976
  return Object.prototype.toString.call(o);
@@ -1028,241 +1032,319 @@ return /******/ (function(modules) { // webpackBootstrap
1028
1032
  return Object.prototype.hasOwnProperty.call(obj, prop);
1029
1033
  }
1030
1034
 
1031
- /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()), __webpack_require__(39)))
1035
+ /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()), __webpack_require__(38)))
1032
1036
 
1033
1037
  /***/ },
1034
1038
  /* 10 */
1035
1039
  /***/ function(module, exports, __webpack_require__) {
1036
1040
 
1037
- /**
1038
- * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
1039
- * Build: `lodash modularize modern exports="node" -o ./modern/`
1040
- * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
1041
- * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
1042
- * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1043
- * Available under MIT license <http://lodash.com/license>
1044
- */
1045
- var createCallback = __webpack_require__(37),
1046
- forOwn = __webpack_require__(12);
1047
-
1048
- /**
1049
- * Creates an object with the same keys as `object` and values generated by
1050
- * running each own enumerable property of `object` through the callback.
1051
- * The callback is bound to `thisArg` and invoked with three arguments;
1052
- * (value, key, object).
1053
- *
1054
- * If a property name is provided for `callback` the created "_.pluck" style
1055
- * callback will return the property value of the given element.
1056
- *
1057
- * If an object is provided for `callback` the created "_.where" style callback
1058
- * will return `true` for elements that have the properties of the given object,
1059
- * else `false`.
1060
- *
1061
- * @static
1062
- * @memberOf _
1063
- * @category Objects
1064
- * @param {Object} object The object to iterate over.
1065
- * @param {Function|Object|string} [callback=identity] The function called
1066
- * per iteration. If a property name or object is provided it will be used
1067
- * to create a "_.pluck" or "_.where" style callback, respectively.
1068
- * @param {*} [thisArg] The `this` binding of `callback`.
1069
- * @returns {Array} Returns a new object with values of the results of each `callback` execution.
1070
- * @example
1071
- *
1072
- * _.mapValues({ 'a': 1, 'b': 2, 'c': 3} , function(num) { return num * 3; });
1073
- * // => { 'a': 3, 'b': 6, 'c': 9 }
1074
- *
1075
- * var characters = {
1076
- * 'fred': { 'name': 'fred', 'age': 40 },
1077
- * 'pebbles': { 'name': 'pebbles', 'age': 1 }
1078
- * };
1079
- *
1080
- * // using "_.pluck" callback shorthand
1081
- * _.mapValues(characters, 'age');
1082
- * // => { 'fred': 40, 'pebbles': 1 }
1083
- */
1084
- function mapValues(object, callback, thisArg) {
1085
- var result = {};
1086
- callback = createCallback(callback, thisArg, 3);
1041
+ // Copyright Joyent, Inc. and other Node contributors.
1042
+ //
1043
+ // Permission is hereby granted, free of charge, to any person obtaining a
1044
+ // copy of this software and associated documentation files (the
1045
+ // "Software"), to deal in the Software without restriction, including
1046
+ // without limitation the rights to use, copy, modify, merge, publish,
1047
+ // distribute, sublicense, and/or sell copies of the Software, and to permit
1048
+ // persons to whom the Software is furnished to do so, subject to the
1049
+ // following conditions:
1050
+ //
1051
+ // The above copyright notice and this permission notice shall be included
1052
+ // in all copies or substantial portions of the Software.
1053
+ //
1054
+ // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
1055
+ // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
1056
+ // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
1057
+ // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
1058
+ // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
1059
+ // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
1060
+ // USE OR OTHER DEALINGS IN THE SOFTWARE.
1087
1061
 
1088
- forOwn(object, function(value, key, object) {
1089
- result[key] = callback(value, key, object);
1090
- });
1091
- return result;
1062
+ function EventEmitter() {
1063
+ this._events = this._events || {};
1064
+ this._maxListeners = this._maxListeners || undefined;
1092
1065
  }
1066
+ module.exports = EventEmitter;
1093
1067
 
1094
- module.exports = mapValues;
1095
-
1096
-
1097
- /***/ },
1098
- /* 11 */
1099
- /***/ function(module, exports, __webpack_require__) {
1100
-
1101
- /**
1102
- * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
1103
- * Build: `lodash modularize modern exports="node" -o ./modern/`
1104
- * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
1105
- * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
1106
- * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1107
- * Available under MIT license <http://lodash.com/license>
1108
- */
1109
- var baseClone = __webpack_require__(24),
1110
- baseCreateCallback = __webpack_require__(25);
1111
-
1112
- /**
1113
- * Creates a clone of `value`. If `isDeep` is `true` nested objects will also
1114
- * be cloned, otherwise they will be assigned by reference. If a callback
1115
- * is provided it will be executed to produce the cloned values. If the
1116
- * callback returns `undefined` cloning will be handled by the method instead.
1117
- * The callback is bound to `thisArg` and invoked with one argument; (value).
1118
- *
1119
- * @static
1120
- * @memberOf _
1121
- * @category Objects
1122
- * @param {*} value The value to clone.
1123
- * @param {boolean} [isDeep=false] Specify a deep clone.
1124
- * @param {Function} [callback] The function to customize cloning values.
1125
- * @param {*} [thisArg] The `this` binding of `callback`.
1126
- * @returns {*} Returns the cloned value.
1127
- * @example
1128
- *
1129
- * var characters = [
1130
- * { 'name': 'barney', 'age': 36 },
1131
- * { 'name': 'fred', 'age': 40 }
1132
- * ];
1133
- *
1134
- * var shallow = _.clone(characters);
1135
- * shallow[0] === characters[0];
1136
- * // => true
1137
- *
1138
- * var deep = _.clone(characters, true);
1139
- * deep[0] === characters[0];
1140
- * // => false
1141
- *
1142
- * _.mixin({
1143
- * 'clone': _.partialRight(_.clone, function(value) {
1144
- * return _.isElement(value) ? value.cloneNode(false) : undefined;
1145
- * })
1146
- * });
1147
- *
1148
- * var clone = _.clone(document.body);
1149
- * clone.childNodes.length;
1150
- * // => 0
1151
- */
1152
- function clone(value, isDeep, callback, thisArg) {
1153
- // allows working with "Collections" methods without using their `index`
1154
- // and `collection` arguments for `isDeep` and `callback`
1155
- if (typeof isDeep != 'boolean' && isDeep != null) {
1156
- thisArg = callback;
1157
- callback = isDeep;
1158
- isDeep = false;
1159
- }
1160
- return baseClone(value, isDeep, typeof callback == 'function' && baseCreateCallback(callback, thisArg, 1));
1161
- }
1068
+ // Backwards-compat with node 0.10.x
1069
+ EventEmitter.EventEmitter = EventEmitter;
1162
1070
 
1163
- module.exports = clone;
1164
-
1165
-
1166
- /***/ },
1167
- /* 12 */
1168
- /***/ function(module, exports, __webpack_require__) {
1169
-
1170
- /**
1171
- * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
1172
- * Build: `lodash modularize modern exports="node" -o ./modern/`
1173
- * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
1174
- * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
1175
- * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1176
- * Available under MIT license <http://lodash.com/license>
1177
- */
1178
- var baseCreateCallback = __webpack_require__(25),
1179
- keys = __webpack_require__(13),
1180
- objectTypes = __webpack_require__(26);
1071
+ EventEmitter.prototype._events = undefined;
1072
+ EventEmitter.prototype._maxListeners = undefined;
1181
1073
 
1182
- /**
1183
- * Iterates over own enumerable properties of an object, executing the callback
1184
- * for each property. The callback is bound to `thisArg` and invoked with three
1185
- * arguments; (value, key, object). Callbacks may exit iteration early by
1186
- * explicitly returning `false`.
1187
- *
1188
- * @static
1189
- * @memberOf _
1190
- * @type Function
1191
- * @category Objects
1192
- * @param {Object} object The object to iterate over.
1193
- * @param {Function} [callback=identity] The function called per iteration.
1194
- * @param {*} [thisArg] The `this` binding of `callback`.
1195
- * @returns {Object} Returns `object`.
1196
- * @example
1197
- *
1198
- * _.forOwn({ '0': 'zero', '1': 'one', 'length': 2 }, function(num, key) {
1199
- * console.log(key);
1200
- * });
1201
- * // => logs '0', '1', and 'length' (property order is not guaranteed across environments)
1202
- */
1203
- var forOwn = function(collection, callback, thisArg) {
1204
- var index, iterable = collection, result = iterable;
1205
- if (!iterable) return result;
1206
- if (!objectTypes[typeof iterable]) return result;
1207
- callback = callback && typeof thisArg == 'undefined' ? callback : baseCreateCallback(callback, thisArg, 3);
1208
- var ownIndex = -1,
1209
- ownProps = objectTypes[typeof iterable] && keys(iterable),
1210
- length = ownProps ? ownProps.length : 0;
1074
+ // By default EventEmitters will print a warning if more than 10 listeners are
1075
+ // added to it. This is a useful default which helps finding memory leaks.
1076
+ EventEmitter.defaultMaxListeners = 10;
1211
1077
 
1212
- while (++ownIndex < length) {
1213
- index = ownProps[ownIndex];
1214
- if (callback(iterable[index], index, collection) === false) return result;
1215
- }
1216
- return result
1078
+ // Obviously not all Emitters should be limited to 10. This function allows
1079
+ // that to be increased. Set to zero for unlimited.
1080
+ EventEmitter.prototype.setMaxListeners = function(n) {
1081
+ if (!isNumber(n) || n < 0 || isNaN(n))
1082
+ throw TypeError('n must be a positive number');
1083
+ this._maxListeners = n;
1084
+ return this;
1217
1085
  };
1218
1086
 
1219
- module.exports = forOwn;
1220
-
1221
-
1222
- /***/ },
1223
- /* 13 */
1224
- /***/ function(module, exports, __webpack_require__) {
1225
-
1226
- /**
1227
- * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
1228
- * Build: `lodash modularize modern exports="node" -o ./modern/`
1229
- * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
1230
- * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
1231
- * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1232
- * Available under MIT license <http://lodash.com/license>
1233
- */
1234
- var isNative = __webpack_require__(27),
1235
- isObject = __webpack_require__(21),
1236
- shimKeys = __webpack_require__(28);
1087
+ EventEmitter.prototype.emit = function(type) {
1088
+ var er, handler, len, args, i, listeners;
1237
1089
 
1238
- /* Native method shortcuts for methods with the same name as other `lodash` methods */
1239
- var nativeKeys = isNative(nativeKeys = Object.keys) && nativeKeys;
1090
+ if (!this._events)
1091
+ this._events = {};
1240
1092
 
1241
- /**
1242
- * Creates an array composed of the own enumerable property names of an object.
1243
- *
1244
- * @static
1245
- * @memberOf _
1246
- * @category Objects
1247
- * @param {Object} object The object to inspect.
1248
- * @returns {Array} Returns an array of property names.
1249
- * @example
1250
- *
1251
- * _.keys({ 'one': 1, 'two': 2, 'three': 3 });
1252
- * // => ['one', 'two', 'three'] (property order is not guaranteed across environments)
1253
- */
1254
- var keys = !nativeKeys ? shimKeys : function(object) {
1255
- if (!isObject(object)) {
1256
- return [];
1093
+ // If there is no 'error' event listener then throw.
1094
+ if (type === 'error') {
1095
+ if (!this._events.error ||
1096
+ (isObject(this._events.error) && !this._events.error.length)) {
1097
+ er = arguments[1];
1098
+ if (er instanceof Error) {
1099
+ throw er; // Unhandled 'error' event
1100
+ } else {
1101
+ throw TypeError('Uncaught, unspecified "error" event.');
1102
+ }
1103
+ return false;
1104
+ }
1257
1105
  }
1258
- return nativeKeys(object);
1106
+
1107
+ handler = this._events[type];
1108
+
1109
+ if (isUndefined(handler))
1110
+ return false;
1111
+
1112
+ if (isFunction(handler)) {
1113
+ switch (arguments.length) {
1114
+ // fast cases
1115
+ case 1:
1116
+ handler.call(this);
1117
+ break;
1118
+ case 2:
1119
+ handler.call(this, arguments[1]);
1120
+ break;
1121
+ case 3:
1122
+ handler.call(this, arguments[1], arguments[2]);
1123
+ break;
1124
+ // slower
1125
+ default:
1126
+ len = arguments.length;
1127
+ args = new Array(len - 1);
1128
+ for (i = 1; i < len; i++)
1129
+ args[i - 1] = arguments[i];
1130
+ handler.apply(this, args);
1131
+ }
1132
+ } else if (isObject(handler)) {
1133
+ len = arguments.length;
1134
+ args = new Array(len - 1);
1135
+ for (i = 1; i < len; i++)
1136
+ args[i - 1] = arguments[i];
1137
+
1138
+ listeners = handler.slice();
1139
+ len = listeners.length;
1140
+ for (i = 0; i < len; i++)
1141
+ listeners[i].apply(this, args);
1142
+ }
1143
+
1144
+ return true;
1259
1145
  };
1260
1146
 
1261
- module.exports = keys;
1147
+ EventEmitter.prototype.addListener = function(type, listener) {
1148
+ var m;
1149
+
1150
+ if (!isFunction(listener))
1151
+ throw TypeError('listener must be a function');
1152
+
1153
+ if (!this._events)
1154
+ this._events = {};
1155
+
1156
+ // To avoid recursion in the case that type === "newListener"! Before
1157
+ // adding it to the listeners, first emit "newListener".
1158
+ if (this._events.newListener)
1159
+ this.emit('newListener', type,
1160
+ isFunction(listener.listener) ?
1161
+ listener.listener : listener);
1162
+
1163
+ if (!this._events[type])
1164
+ // Optimize the case of one listener. Don't need the extra array object.
1165
+ this._events[type] = listener;
1166
+ else if (isObject(this._events[type]))
1167
+ // If we've already got an array, just append.
1168
+ this._events[type].push(listener);
1169
+ else
1170
+ // Adding the second element, need to change to array.
1171
+ this._events[type] = [this._events[type], listener];
1172
+
1173
+ // Check for listener leak
1174
+ if (isObject(this._events[type]) && !this._events[type].warned) {
1175
+ var m;
1176
+ if (!isUndefined(this._maxListeners)) {
1177
+ m = this._maxListeners;
1178
+ } else {
1179
+ m = EventEmitter.defaultMaxListeners;
1180
+ }
1181
+
1182
+ if (m && m > 0 && this._events[type].length > m) {
1183
+ this._events[type].warned = true;
1184
+ console.error('(node) warning: possible EventEmitter memory ' +
1185
+ 'leak detected. %d listeners added. ' +
1186
+ 'Use emitter.setMaxListeners() to increase limit.',
1187
+ this._events[type].length);
1188
+ if (typeof console.trace === 'function') {
1189
+ // not supported in IE 10
1190
+ console.trace();
1191
+ }
1192
+ }
1193
+ }
1194
+
1195
+ return this;
1196
+ };
1197
+
1198
+ EventEmitter.prototype.on = EventEmitter.prototype.addListener;
1199
+
1200
+ EventEmitter.prototype.once = function(type, listener) {
1201
+ if (!isFunction(listener))
1202
+ throw TypeError('listener must be a function');
1203
+
1204
+ var fired = false;
1205
+
1206
+ function g() {
1207
+ this.removeListener(type, g);
1208
+
1209
+ if (!fired) {
1210
+ fired = true;
1211
+ listener.apply(this, arguments);
1212
+ }
1213
+ }
1214
+
1215
+ g.listener = listener;
1216
+ this.on(type, g);
1217
+
1218
+ return this;
1219
+ };
1220
+
1221
+ // emits a 'removeListener' event iff the listener was removed
1222
+ EventEmitter.prototype.removeListener = function(type, listener) {
1223
+ var list, position, length, i;
1224
+
1225
+ if (!isFunction(listener))
1226
+ throw TypeError('listener must be a function');
1227
+
1228
+ if (!this._events || !this._events[type])
1229
+ return this;
1230
+
1231
+ list = this._events[type];
1232
+ length = list.length;
1233
+ position = -1;
1234
+
1235
+ if (list === listener ||
1236
+ (isFunction(list.listener) && list.listener === listener)) {
1237
+ delete this._events[type];
1238
+ if (this._events.removeListener)
1239
+ this.emit('removeListener', type, listener);
1240
+
1241
+ } else if (isObject(list)) {
1242
+ for (i = length; i-- > 0;) {
1243
+ if (list[i] === listener ||
1244
+ (list[i].listener && list[i].listener === listener)) {
1245
+ position = i;
1246
+ break;
1247
+ }
1248
+ }
1249
+
1250
+ if (position < 0)
1251
+ return this;
1252
+
1253
+ if (list.length === 1) {
1254
+ list.length = 0;
1255
+ delete this._events[type];
1256
+ } else {
1257
+ list.splice(position, 1);
1258
+ }
1259
+
1260
+ if (this._events.removeListener)
1261
+ this.emit('removeListener', type, listener);
1262
+ }
1263
+
1264
+ return this;
1265
+ };
1266
+
1267
+ EventEmitter.prototype.removeAllListeners = function(type) {
1268
+ var key, listeners;
1269
+
1270
+ if (!this._events)
1271
+ return this;
1272
+
1273
+ // not listening for removeListener, no need to emit
1274
+ if (!this._events.removeListener) {
1275
+ if (arguments.length === 0)
1276
+ this._events = {};
1277
+ else if (this._events[type])
1278
+ delete this._events[type];
1279
+ return this;
1280
+ }
1281
+
1282
+ // emit removeListener for all listeners on all events
1283
+ if (arguments.length === 0) {
1284
+ for (key in this._events) {
1285
+ if (key === 'removeListener') continue;
1286
+ this.removeAllListeners(key);
1287
+ }
1288
+ this.removeAllListeners('removeListener');
1289
+ this._events = {};
1290
+ return this;
1291
+ }
1292
+
1293
+ listeners = this._events[type];
1294
+
1295
+ if (isFunction(listeners)) {
1296
+ this.removeListener(type, listeners);
1297
+ } else {
1298
+ // LIFO order
1299
+ while (listeners.length)
1300
+ this.removeListener(type, listeners[listeners.length - 1]);
1301
+ }
1302
+ delete this._events[type];
1303
+
1304
+ return this;
1305
+ };
1306
+
1307
+ EventEmitter.prototype.listeners = function(type) {
1308
+ var ret;
1309
+ if (!this._events || !this._events[type])
1310
+ ret = [];
1311
+ else if (isFunction(this._events[type]))
1312
+ ret = [this._events[type]];
1313
+ else
1314
+ ret = this._events[type].slice();
1315
+ return ret;
1316
+ };
1317
+
1318
+ EventEmitter.listenerCount = function(emitter, type) {
1319
+ var ret;
1320
+ if (!emitter._events || !emitter._events[type])
1321
+ ret = 0;
1322
+ else if (isFunction(emitter._events[type]))
1323
+ ret = 1;
1324
+ else
1325
+ ret = emitter._events[type].length;
1326
+ return ret;
1327
+ };
1328
+
1329
+ function isFunction(arg) {
1330
+ return typeof arg === 'function';
1331
+ }
1332
+
1333
+ function isNumber(arg) {
1334
+ return typeof arg === 'number';
1335
+ }
1336
+
1337
+ function isObject(arg) {
1338
+ return typeof arg === 'object' && arg !== null;
1339
+ }
1340
+
1341
+ function isUndefined(arg) {
1342
+ return arg === void 0;
1343
+ }
1262
1344
 
1263
1345
 
1264
1346
  /***/ },
1265
- /* 14 */
1347
+ /* 11 */
1266
1348
  /***/ function(module, exports, __webpack_require__) {
1267
1349
 
1268
1350
  /**
@@ -1273,25 +1355,256 @@ return /******/ (function(modules) { // webpackBootstrap
1273
1355
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1274
1356
  * Available under MIT license <http://lodash.com/license>
1275
1357
  */
1276
- var createCallback = __webpack_require__(37),
1277
- forOwn = __webpack_require__(12);
1358
+ var baseClone = __webpack_require__(25),
1359
+ baseCreateCallback = __webpack_require__(26);
1278
1360
 
1279
1361
  /**
1280
- * This method is like `_.findIndex` except that it returns the key of the
1281
- * first element that passes the callback check, instead of the element itself.
1282
- *
1283
- * If a property name is provided for `callback` the created "_.pluck" style
1284
- * callback will return the property value of the given element.
1285
- *
1286
- * If an object is provided for `callback` the created "_.where" style callback
1287
- * will return `true` for elements that have the properties of the given object,
1288
- * else `false`.
1362
+ * Creates a clone of `value`. If `isDeep` is `true` nested objects will also
1363
+ * be cloned, otherwise they will be assigned by reference. If a callback
1364
+ * is provided it will be executed to produce the cloned values. If the
1365
+ * callback returns `undefined` cloning will be handled by the method instead.
1366
+ * The callback is bound to `thisArg` and invoked with one argument; (value).
1289
1367
  *
1290
1368
  * @static
1291
1369
  * @memberOf _
1292
1370
  * @category Objects
1293
- * @param {Object} object The object to search.
1294
- * @param {Function|Object|string} [callback=identity] The function called per
1371
+ * @param {*} value The value to clone.
1372
+ * @param {boolean} [isDeep=false] Specify a deep clone.
1373
+ * @param {Function} [callback] The function to customize cloning values.
1374
+ * @param {*} [thisArg] The `this` binding of `callback`.
1375
+ * @returns {*} Returns the cloned value.
1376
+ * @example
1377
+ *
1378
+ * var characters = [
1379
+ * { 'name': 'barney', 'age': 36 },
1380
+ * { 'name': 'fred', 'age': 40 }
1381
+ * ];
1382
+ *
1383
+ * var shallow = _.clone(characters);
1384
+ * shallow[0] === characters[0];
1385
+ * // => true
1386
+ *
1387
+ * var deep = _.clone(characters, true);
1388
+ * deep[0] === characters[0];
1389
+ * // => false
1390
+ *
1391
+ * _.mixin({
1392
+ * 'clone': _.partialRight(_.clone, function(value) {
1393
+ * return _.isElement(value) ? value.cloneNode(false) : undefined;
1394
+ * })
1395
+ * });
1396
+ *
1397
+ * var clone = _.clone(document.body);
1398
+ * clone.childNodes.length;
1399
+ * // => 0
1400
+ */
1401
+ function clone(value, isDeep, callback, thisArg) {
1402
+ // allows working with "Collections" methods without using their `index`
1403
+ // and `collection` arguments for `isDeep` and `callback`
1404
+ if (typeof isDeep != 'boolean' && isDeep != null) {
1405
+ thisArg = callback;
1406
+ callback = isDeep;
1407
+ isDeep = false;
1408
+ }
1409
+ return baseClone(value, isDeep, typeof callback == 'function' && baseCreateCallback(callback, thisArg, 1));
1410
+ }
1411
+
1412
+ module.exports = clone;
1413
+
1414
+
1415
+ /***/ },
1416
+ /* 12 */
1417
+ /***/ function(module, exports, __webpack_require__) {
1418
+
1419
+ /**
1420
+ * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
1421
+ * Build: `lodash modularize modern exports="node" -o ./modern/`
1422
+ * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
1423
+ * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
1424
+ * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1425
+ * Available under MIT license <http://lodash.com/license>
1426
+ */
1427
+ var createCallback = __webpack_require__(39),
1428
+ forOwn = __webpack_require__(13);
1429
+
1430
+ /**
1431
+ * Creates an object with the same keys as `object` and values generated by
1432
+ * running each own enumerable property of `object` through the callback.
1433
+ * The callback is bound to `thisArg` and invoked with three arguments;
1434
+ * (value, key, object).
1435
+ *
1436
+ * If a property name is provided for `callback` the created "_.pluck" style
1437
+ * callback will return the property value of the given element.
1438
+ *
1439
+ * If an object is provided for `callback` the created "_.where" style callback
1440
+ * will return `true` for elements that have the properties of the given object,
1441
+ * else `false`.
1442
+ *
1443
+ * @static
1444
+ * @memberOf _
1445
+ * @category Objects
1446
+ * @param {Object} object The object to iterate over.
1447
+ * @param {Function|Object|string} [callback=identity] The function called
1448
+ * per iteration. If a property name or object is provided it will be used
1449
+ * to create a "_.pluck" or "_.where" style callback, respectively.
1450
+ * @param {*} [thisArg] The `this` binding of `callback`.
1451
+ * @returns {Array} Returns a new object with values of the results of each `callback` execution.
1452
+ * @example
1453
+ *
1454
+ * _.mapValues({ 'a': 1, 'b': 2, 'c': 3} , function(num) { return num * 3; });
1455
+ * // => { 'a': 3, 'b': 6, 'c': 9 }
1456
+ *
1457
+ * var characters = {
1458
+ * 'fred': { 'name': 'fred', 'age': 40 },
1459
+ * 'pebbles': { 'name': 'pebbles', 'age': 1 }
1460
+ * };
1461
+ *
1462
+ * // using "_.pluck" callback shorthand
1463
+ * _.mapValues(characters, 'age');
1464
+ * // => { 'fred': 40, 'pebbles': 1 }
1465
+ */
1466
+ function mapValues(object, callback, thisArg) {
1467
+ var result = {};
1468
+ callback = createCallback(callback, thisArg, 3);
1469
+
1470
+ forOwn(object, function(value, key, object) {
1471
+ result[key] = callback(value, key, object);
1472
+ });
1473
+ return result;
1474
+ }
1475
+
1476
+ module.exports = mapValues;
1477
+
1478
+
1479
+ /***/ },
1480
+ /* 13 */
1481
+ /***/ function(module, exports, __webpack_require__) {
1482
+
1483
+ /**
1484
+ * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
1485
+ * Build: `lodash modularize modern exports="node" -o ./modern/`
1486
+ * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
1487
+ * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
1488
+ * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1489
+ * Available under MIT license <http://lodash.com/license>
1490
+ */
1491
+ var baseCreateCallback = __webpack_require__(26),
1492
+ keys = __webpack_require__(14),
1493
+ objectTypes = __webpack_require__(27);
1494
+
1495
+ /**
1496
+ * Iterates over own enumerable properties of an object, executing the callback
1497
+ * for each property. The callback is bound to `thisArg` and invoked with three
1498
+ * arguments; (value, key, object). Callbacks may exit iteration early by
1499
+ * explicitly returning `false`.
1500
+ *
1501
+ * @static
1502
+ * @memberOf _
1503
+ * @type Function
1504
+ * @category Objects
1505
+ * @param {Object} object The object to iterate over.
1506
+ * @param {Function} [callback=identity] The function called per iteration.
1507
+ * @param {*} [thisArg] The `this` binding of `callback`.
1508
+ * @returns {Object} Returns `object`.
1509
+ * @example
1510
+ *
1511
+ * _.forOwn({ '0': 'zero', '1': 'one', 'length': 2 }, function(num, key) {
1512
+ * console.log(key);
1513
+ * });
1514
+ * // => logs '0', '1', and 'length' (property order is not guaranteed across environments)
1515
+ */
1516
+ var forOwn = function(collection, callback, thisArg) {
1517
+ var index, iterable = collection, result = iterable;
1518
+ if (!iterable) return result;
1519
+ if (!objectTypes[typeof iterable]) return result;
1520
+ callback = callback && typeof thisArg == 'undefined' ? callback : baseCreateCallback(callback, thisArg, 3);
1521
+ var ownIndex = -1,
1522
+ ownProps = objectTypes[typeof iterable] && keys(iterable),
1523
+ length = ownProps ? ownProps.length : 0;
1524
+
1525
+ while (++ownIndex < length) {
1526
+ index = ownProps[ownIndex];
1527
+ if (callback(iterable[index], index, collection) === false) return result;
1528
+ }
1529
+ return result
1530
+ };
1531
+
1532
+ module.exports = forOwn;
1533
+
1534
+
1535
+ /***/ },
1536
+ /* 14 */
1537
+ /***/ function(module, exports, __webpack_require__) {
1538
+
1539
+ /**
1540
+ * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
1541
+ * Build: `lodash modularize modern exports="node" -o ./modern/`
1542
+ * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
1543
+ * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
1544
+ * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1545
+ * Available under MIT license <http://lodash.com/license>
1546
+ */
1547
+ var isNative = __webpack_require__(28),
1548
+ isObject = __webpack_require__(22),
1549
+ shimKeys = __webpack_require__(29);
1550
+
1551
+ /* Native method shortcuts for methods with the same name as other `lodash` methods */
1552
+ var nativeKeys = isNative(nativeKeys = Object.keys) && nativeKeys;
1553
+
1554
+ /**
1555
+ * Creates an array composed of the own enumerable property names of an object.
1556
+ *
1557
+ * @static
1558
+ * @memberOf _
1559
+ * @category Objects
1560
+ * @param {Object} object The object to inspect.
1561
+ * @returns {Array} Returns an array of property names.
1562
+ * @example
1563
+ *
1564
+ * _.keys({ 'one': 1, 'two': 2, 'three': 3 });
1565
+ * // => ['one', 'two', 'three'] (property order is not guaranteed across environments)
1566
+ */
1567
+ var keys = !nativeKeys ? shimKeys : function(object) {
1568
+ if (!isObject(object)) {
1569
+ return [];
1570
+ }
1571
+ return nativeKeys(object);
1572
+ };
1573
+
1574
+ module.exports = keys;
1575
+
1576
+
1577
+ /***/ },
1578
+ /* 15 */
1579
+ /***/ function(module, exports, __webpack_require__) {
1580
+
1581
+ /**
1582
+ * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
1583
+ * Build: `lodash modularize modern exports="node" -o ./modern/`
1584
+ * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
1585
+ * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
1586
+ * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1587
+ * Available under MIT license <http://lodash.com/license>
1588
+ */
1589
+ var createCallback = __webpack_require__(39),
1590
+ forOwn = __webpack_require__(13);
1591
+
1592
+ /**
1593
+ * This method is like `_.findIndex` except that it returns the key of the
1594
+ * first element that passes the callback check, instead of the element itself.
1595
+ *
1596
+ * If a property name is provided for `callback` the created "_.pluck" style
1597
+ * callback will return the property value of the given element.
1598
+ *
1599
+ * If an object is provided for `callback` the created "_.where" style callback
1600
+ * will return `true` for elements that have the properties of the given object,
1601
+ * else `false`.
1602
+ *
1603
+ * @static
1604
+ * @memberOf _
1605
+ * @category Objects
1606
+ * @param {Object} object The object to search.
1607
+ * @param {Function|Object|string} [callback=identity] The function called per
1295
1608
  * iteration. If a property name or object is provided it will be used to
1296
1609
  * create a "_.pluck" or "_.where" style callback, respectively.
1297
1610
  * @param {*} [thisArg] The `this` binding of `callback`.
@@ -1333,7 +1646,7 @@ return /******/ (function(modules) { // webpackBootstrap
1333
1646
 
1334
1647
 
1335
1648
  /***/ },
1336
- /* 15 */
1649
+ /* 16 */
1337
1650
  /***/ function(module, exports, __webpack_require__) {
1338
1651
 
1339
1652
  /**
@@ -1348,8 +1661,8 @@ return /******/ (function(modules) { // webpackBootstrap
1348
1661
  cacheIndexOf = __webpack_require__(31),
1349
1662
  createCache = __webpack_require__(32),
1350
1663
  getArray = __webpack_require__(33),
1351
- isArguments = __webpack_require__(22),
1352
- isArray = __webpack_require__(23),
1664
+ isArguments = __webpack_require__(23),
1665
+ isArray = __webpack_require__(24),
1353
1666
  largeArraySize = __webpack_require__(34),
1354
1667
  releaseArray = __webpack_require__(35),
1355
1668
  releaseObject = __webpack_require__(36);
@@ -1422,7 +1735,7 @@ return /******/ (function(modules) { // webpackBootstrap
1422
1735
 
1423
1736
 
1424
1737
  /***/ },
1425
- /* 16 */
1738
+ /* 17 */
1426
1739
  /***/ function(module, exports, __webpack_require__) {
1427
1740
 
1428
1741
  /**
@@ -1433,8 +1746,8 @@ return /******/ (function(modules) { // webpackBootstrap
1433
1746
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1434
1747
  * Available under MIT license <http://lodash.com/license>
1435
1748
  */
1436
- var baseUniq = __webpack_require__(29),
1437
- createCallback = __webpack_require__(37);
1749
+ var baseUniq = __webpack_require__(37),
1750
+ createCallback = __webpack_require__(39);
1438
1751
 
1439
1752
  /**
1440
1753
  * Creates a duplicate-value-free version of an array using strict equality
@@ -1497,7 +1810,7 @@ return /******/ (function(modules) { // webpackBootstrap
1497
1810
 
1498
1811
 
1499
1812
  /***/ },
1500
- /* 17 */
1813
+ /* 18 */
1501
1814
  /***/ function(module, exports, __webpack_require__) {
1502
1815
 
1503
1816
  /**
@@ -1508,90 +1821,29 @@ return /******/ (function(modules) { // webpackBootstrap
1508
1821
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1509
1822
  * Available under MIT license <http://lodash.com/license>
1510
1823
  */
1511
- var baseCreateCallback = __webpack_require__(25),
1512
- forOwn = __webpack_require__(12);
1824
+ var createCallback = __webpack_require__(39),
1825
+ forOwn = __webpack_require__(13);
1513
1826
 
1514
1827
  /**
1515
- * Iterates over elements of a collection, executing the callback for each
1516
- * element. The callback is bound to `thisArg` and invoked with three arguments;
1517
- * (value, index|key, collection). Callbacks may exit iteration early by
1518
- * explicitly returning `false`.
1828
+ * Creates an array of values by running each element in the collection
1829
+ * through the callback. The callback is bound to `thisArg` and invoked with
1830
+ * three arguments; (value, index|key, collection).
1519
1831
  *
1520
- * Note: As with other "Collections" methods, objects with a `length` property
1521
- * are iterated like arrays. To avoid this behavior `_.forIn` or `_.forOwn`
1522
- * may be used for object iteration.
1832
+ * If a property name is provided for `callback` the created "_.pluck" style
1833
+ * callback will return the property value of the given element.
1834
+ *
1835
+ * If an object is provided for `callback` the created "_.where" style callback
1836
+ * will return `true` for elements that have the properties of the given object,
1837
+ * else `false`.
1523
1838
  *
1524
1839
  * @static
1525
1840
  * @memberOf _
1526
- * @alias each
1841
+ * @alias collect
1527
1842
  * @category Collections
1528
1843
  * @param {Array|Object|string} collection The collection to iterate over.
1529
- * @param {Function} [callback=identity] The function called per iteration.
1530
- * @param {*} [thisArg] The `this` binding of `callback`.
1531
- * @returns {Array|Object|string} Returns `collection`.
1532
- * @example
1533
- *
1534
- * _([1, 2, 3]).forEach(function(num) { console.log(num); }).join(',');
1535
- * // => logs each number and returns '1,2,3'
1536
- *
1537
- * _.forEach({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { console.log(num); });
1538
- * // => logs each number and returns the object (property order is not guaranteed across environments)
1539
- */
1540
- function forEach(collection, callback, thisArg) {
1541
- var index = -1,
1542
- length = collection ? collection.length : 0;
1543
-
1544
- callback = callback && typeof thisArg == 'undefined' ? callback : baseCreateCallback(callback, thisArg, 3);
1545
- if (typeof length == 'number') {
1546
- while (++index < length) {
1547
- if (callback(collection[index], index, collection) === false) {
1548
- break;
1549
- }
1550
- }
1551
- } else {
1552
- forOwn(collection, callback);
1553
- }
1554
- return collection;
1555
- }
1556
-
1557
- module.exports = forEach;
1558
-
1559
-
1560
- /***/ },
1561
- /* 18 */
1562
- /***/ function(module, exports, __webpack_require__) {
1563
-
1564
- /**
1565
- * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
1566
- * Build: `lodash modularize modern exports="node" -o ./modern/`
1567
- * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
1568
- * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
1569
- * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1570
- * Available under MIT license <http://lodash.com/license>
1571
- */
1572
- var createCallback = __webpack_require__(37),
1573
- forOwn = __webpack_require__(12);
1574
-
1575
- /**
1576
- * Creates an array of values by running each element in the collection
1577
- * through the callback. The callback is bound to `thisArg` and invoked with
1578
- * three arguments; (value, index|key, collection).
1579
- *
1580
- * If a property name is provided for `callback` the created "_.pluck" style
1581
- * callback will return the property value of the given element.
1582
- *
1583
- * If an object is provided for `callback` the created "_.where" style callback
1584
- * will return `true` for elements that have the properties of the given object,
1585
- * else `false`.
1586
- *
1587
- * @static
1588
- * @memberOf _
1589
- * @alias collect
1590
- * @category Collections
1591
- * @param {Array|Object|string} collection The collection to iterate over.
1592
- * @param {Function|Object|string} [callback=identity] The function called
1593
- * per iteration. If a property name or object is provided it will be used
1594
- * to create a "_.pluck" or "_.where" style callback, respectively.
1844
+ * @param {Function|Object|string} [callback=identity] The function called
1845
+ * per iteration. If a property name or object is provided it will be used
1846
+ * to create a "_.pluck" or "_.where" style callback, respectively.
1595
1847
  * @param {*} [thisArg] The `this` binding of `callback`.
1596
1848
  * @returns {Array} Returns a new array of the results of each `callback` execution.
1597
1849
  * @example
@@ -1604,388 +1856,151 @@ return /******/ (function(modules) { // webpackBootstrap
1604
1856
  *
1605
1857
  * var characters = [
1606
1858
  * { 'name': 'barney', 'age': 36 },
1607
- * { 'name': 'fred', 'age': 40 }
1608
- * ];
1609
- *
1610
- * // using "_.pluck" callback shorthand
1611
- * _.map(characters, 'name');
1612
- * // => ['barney', 'fred']
1613
- */
1614
- function map(collection, callback, thisArg) {
1615
- var index = -1,
1616
- length = collection ? collection.length : 0;
1617
-
1618
- callback = createCallback(callback, thisArg, 3);
1619
- if (typeof length == 'number') {
1620
- var result = Array(length);
1621
- while (++index < length) {
1622
- result[index] = callback(collection[index], index, collection);
1623
- }
1624
- } else {
1625
- result = [];
1626
- forOwn(collection, function(value, key, collection) {
1627
- result[++index] = callback(value, key, collection);
1628
- });
1629
- }
1630
- return result;
1631
- }
1632
-
1633
- module.exports = map;
1634
-
1635
-
1636
- /***/ },
1637
- /* 19 */
1638
- /***/ function(module, exports, __webpack_require__) {
1639
-
1640
- /**
1641
- * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
1642
- * Build: `lodash modularize modern exports="node" -o ./modern/`
1643
- * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
1644
- * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
1645
- * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1646
- * Available under MIT license <http://lodash.com/license>
1647
- */
1648
- var keys = __webpack_require__(13);
1649
-
1650
- /**
1651
- * Gets the size of the `collection` by returning `collection.length` for arrays
1652
- * and array-like objects or the number of own enumerable properties for objects.
1653
- *
1654
- * @static
1655
- * @memberOf _
1656
- * @category Collections
1657
- * @param {Array|Object|string} collection The collection to inspect.
1658
- * @returns {number} Returns `collection.length` or number of own enumerable properties.
1659
- * @example
1660
- *
1661
- * _.size([1, 2]);
1662
- * // => 2
1663
- *
1664
- * _.size({ 'one': 1, 'two': 2, 'three': 3 });
1665
- * // => 3
1666
- *
1667
- * _.size('pebbles');
1668
- * // => 7
1669
- */
1670
- function size(collection) {
1671
- var length = collection ? collection.length : 0;
1672
- return typeof length == 'number' ? length : keys(collection).length;
1673
- }
1674
-
1675
- module.exports = size;
1676
-
1677
-
1678
- /***/ },
1679
- /* 20 */
1680
- /***/ function(module, exports, __webpack_require__) {
1681
-
1682
- // Copyright Joyent, Inc. and other Node contributors.
1683
- //
1684
- // Permission is hereby granted, free of charge, to any person obtaining a
1685
- // copy of this software and associated documentation files (the
1686
- // "Software"), to deal in the Software without restriction, including
1687
- // without limitation the rights to use, copy, modify, merge, publish,
1688
- // distribute, sublicense, and/or sell copies of the Software, and to permit
1689
- // persons to whom the Software is furnished to do so, subject to the
1690
- // following conditions:
1691
- //
1692
- // The above copyright notice and this permission notice shall be included
1693
- // in all copies or substantial portions of the Software.
1694
- //
1695
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
1696
- // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
1697
- // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
1698
- // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
1699
- // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
1700
- // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
1701
- // USE OR OTHER DEALINGS IN THE SOFTWARE.
1702
-
1703
- function EventEmitter() {
1704
- this._events = this._events || {};
1705
- this._maxListeners = this._maxListeners || undefined;
1706
- }
1707
- module.exports = EventEmitter;
1708
-
1709
- // Backwards-compat with node 0.10.x
1710
- EventEmitter.EventEmitter = EventEmitter;
1711
-
1712
- EventEmitter.prototype._events = undefined;
1713
- EventEmitter.prototype._maxListeners = undefined;
1714
-
1715
- // By default EventEmitters will print a warning if more than 10 listeners are
1716
- // added to it. This is a useful default which helps finding memory leaks.
1717
- EventEmitter.defaultMaxListeners = 10;
1718
-
1719
- // Obviously not all Emitters should be limited to 10. This function allows
1720
- // that to be increased. Set to zero for unlimited.
1721
- EventEmitter.prototype.setMaxListeners = function(n) {
1722
- if (!isNumber(n) || n < 0 || isNaN(n))
1723
- throw TypeError('n must be a positive number');
1724
- this._maxListeners = n;
1725
- return this;
1726
- };
1727
-
1728
- EventEmitter.prototype.emit = function(type) {
1729
- var er, handler, len, args, i, listeners;
1730
-
1731
- if (!this._events)
1732
- this._events = {};
1733
-
1734
- // If there is no 'error' event listener then throw.
1735
- if (type === 'error') {
1736
- if (!this._events.error ||
1737
- (isObject(this._events.error) && !this._events.error.length)) {
1738
- er = arguments[1];
1739
- if (er instanceof Error) {
1740
- throw er; // Unhandled 'error' event
1741
- } else {
1742
- throw TypeError('Uncaught, unspecified "error" event.');
1743
- }
1744
- return false;
1745
- }
1746
- }
1747
-
1748
- handler = this._events[type];
1749
-
1750
- if (isUndefined(handler))
1751
- return false;
1752
-
1753
- if (isFunction(handler)) {
1754
- switch (arguments.length) {
1755
- // fast cases
1756
- case 1:
1757
- handler.call(this);
1758
- break;
1759
- case 2:
1760
- handler.call(this, arguments[1]);
1761
- break;
1762
- case 3:
1763
- handler.call(this, arguments[1], arguments[2]);
1764
- break;
1765
- // slower
1766
- default:
1767
- len = arguments.length;
1768
- args = new Array(len - 1);
1769
- for (i = 1; i < len; i++)
1770
- args[i - 1] = arguments[i];
1771
- handler.apply(this, args);
1772
- }
1773
- } else if (isObject(handler)) {
1774
- len = arguments.length;
1775
- args = new Array(len - 1);
1776
- for (i = 1; i < len; i++)
1777
- args[i - 1] = arguments[i];
1778
-
1779
- listeners = handler.slice();
1780
- len = listeners.length;
1781
- for (i = 0; i < len; i++)
1782
- listeners[i].apply(this, args);
1783
- }
1784
-
1785
- return true;
1786
- };
1787
-
1788
- EventEmitter.prototype.addListener = function(type, listener) {
1789
- var m;
1790
-
1791
- if (!isFunction(listener))
1792
- throw TypeError('listener must be a function');
1793
-
1794
- if (!this._events)
1795
- this._events = {};
1796
-
1797
- // To avoid recursion in the case that type === "newListener"! Before
1798
- // adding it to the listeners, first emit "newListener".
1799
- if (this._events.newListener)
1800
- this.emit('newListener', type,
1801
- isFunction(listener.listener) ?
1802
- listener.listener : listener);
1803
-
1804
- if (!this._events[type])
1805
- // Optimize the case of one listener. Don't need the extra array object.
1806
- this._events[type] = listener;
1807
- else if (isObject(this._events[type]))
1808
- // If we've already got an array, just append.
1809
- this._events[type].push(listener);
1810
- else
1811
- // Adding the second element, need to change to array.
1812
- this._events[type] = [this._events[type], listener];
1813
-
1814
- // Check for listener leak
1815
- if (isObject(this._events[type]) && !this._events[type].warned) {
1816
- var m;
1817
- if (!isUndefined(this._maxListeners)) {
1818
- m = this._maxListeners;
1819
- } else {
1820
- m = EventEmitter.defaultMaxListeners;
1821
- }
1822
-
1823
- if (m && m > 0 && this._events[type].length > m) {
1824
- this._events[type].warned = true;
1825
- console.error('(node) warning: possible EventEmitter memory ' +
1826
- 'leak detected. %d listeners added. ' +
1827
- 'Use emitter.setMaxListeners() to increase limit.',
1828
- this._events[type].length);
1829
- if (typeof console.trace === 'function') {
1830
- // not supported in IE 10
1831
- console.trace();
1832
- }
1833
- }
1834
- }
1835
-
1836
- return this;
1837
- };
1838
-
1839
- EventEmitter.prototype.on = EventEmitter.prototype.addListener;
1840
-
1841
- EventEmitter.prototype.once = function(type, listener) {
1842
- if (!isFunction(listener))
1843
- throw TypeError('listener must be a function');
1844
-
1845
- var fired = false;
1846
-
1847
- function g() {
1848
- this.removeListener(type, g);
1849
-
1850
- if (!fired) {
1851
- fired = true;
1852
- listener.apply(this, arguments);
1853
- }
1854
- }
1855
-
1856
- g.listener = listener;
1857
- this.on(type, g);
1858
-
1859
- return this;
1860
- };
1861
-
1862
- // emits a 'removeListener' event iff the listener was removed
1863
- EventEmitter.prototype.removeListener = function(type, listener) {
1864
- var list, position, length, i;
1865
-
1866
- if (!isFunction(listener))
1867
- throw TypeError('listener must be a function');
1868
-
1869
- if (!this._events || !this._events[type])
1870
- return this;
1871
-
1872
- list = this._events[type];
1873
- length = list.length;
1874
- position = -1;
1875
-
1876
- if (list === listener ||
1877
- (isFunction(list.listener) && list.listener === listener)) {
1878
- delete this._events[type];
1879
- if (this._events.removeListener)
1880
- this.emit('removeListener', type, listener);
1881
-
1882
- } else if (isObject(list)) {
1883
- for (i = length; i-- > 0;) {
1884
- if (list[i] === listener ||
1885
- (list[i].listener && list[i].listener === listener)) {
1886
- position = i;
1887
- break;
1888
- }
1889
- }
1890
-
1891
- if (position < 0)
1892
- return this;
1893
-
1894
- if (list.length === 1) {
1895
- list.length = 0;
1896
- delete this._events[type];
1897
- } else {
1898
- list.splice(position, 1);
1899
- }
1900
-
1901
- if (this._events.removeListener)
1902
- this.emit('removeListener', type, listener);
1903
- }
1904
-
1905
- return this;
1906
- };
1907
-
1908
- EventEmitter.prototype.removeAllListeners = function(type) {
1909
- var key, listeners;
1910
-
1911
- if (!this._events)
1912
- return this;
1913
-
1914
- // not listening for removeListener, no need to emit
1915
- if (!this._events.removeListener) {
1916
- if (arguments.length === 0)
1917
- this._events = {};
1918
- else if (this._events[type])
1919
- delete this._events[type];
1920
- return this;
1921
- }
1859
+ * { 'name': 'fred', 'age': 40 }
1860
+ * ];
1861
+ *
1862
+ * // using "_.pluck" callback shorthand
1863
+ * _.map(characters, 'name');
1864
+ * // => ['barney', 'fred']
1865
+ */
1866
+ function map(collection, callback, thisArg) {
1867
+ var index = -1,
1868
+ length = collection ? collection.length : 0;
1922
1869
 
1923
- // emit removeListener for all listeners on all events
1924
- if (arguments.length === 0) {
1925
- for (key in this._events) {
1926
- if (key === 'removeListener') continue;
1927
- this.removeAllListeners(key);
1870
+ callback = createCallback(callback, thisArg, 3);
1871
+ if (typeof length == 'number') {
1872
+ var result = Array(length);
1873
+ while (++index < length) {
1874
+ result[index] = callback(collection[index], index, collection);
1928
1875
  }
1929
- this.removeAllListeners('removeListener');
1930
- this._events = {};
1931
- return this;
1932
- }
1933
-
1934
- listeners = this._events[type];
1935
-
1936
- if (isFunction(listeners)) {
1937
- this.removeListener(type, listeners);
1938
1876
  } else {
1939
- // LIFO order
1940
- while (listeners.length)
1941
- this.removeListener(type, listeners[listeners.length - 1]);
1877
+ result = [];
1878
+ forOwn(collection, function(value, key, collection) {
1879
+ result[++index] = callback(value, key, collection);
1880
+ });
1942
1881
  }
1943
- delete this._events[type];
1944
-
1945
- return this;
1946
- };
1882
+ return result;
1883
+ }
1947
1884
 
1948
- EventEmitter.prototype.listeners = function(type) {
1949
- var ret;
1950
- if (!this._events || !this._events[type])
1951
- ret = [];
1952
- else if (isFunction(this._events[type]))
1953
- ret = [this._events[type]];
1954
- else
1955
- ret = this._events[type].slice();
1956
- return ret;
1957
- };
1885
+ module.exports = map;
1886
+
1887
+
1888
+ /***/ },
1889
+ /* 19 */
1890
+ /***/ function(module, exports, __webpack_require__) {
1891
+
1892
+ /**
1893
+ * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
1894
+ * Build: `lodash modularize modern exports="node" -o ./modern/`
1895
+ * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
1896
+ * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
1897
+ * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1898
+ * Available under MIT license <http://lodash.com/license>
1899
+ */
1900
+ var baseCreateCallback = __webpack_require__(26),
1901
+ forOwn = __webpack_require__(13);
1958
1902
 
1959
- EventEmitter.listenerCount = function(emitter, type) {
1960
- var ret;
1961
- if (!emitter._events || !emitter._events[type])
1962
- ret = 0;
1963
- else if (isFunction(emitter._events[type]))
1964
- ret = 1;
1965
- else
1966
- ret = emitter._events[type].length;
1967
- return ret;
1968
- };
1903
+ /**
1904
+ * Iterates over elements of a collection, executing the callback for each
1905
+ * element. The callback is bound to `thisArg` and invoked with three arguments;
1906
+ * (value, index|key, collection). Callbacks may exit iteration early by
1907
+ * explicitly returning `false`.
1908
+ *
1909
+ * Note: As with other "Collections" methods, objects with a `length` property
1910
+ * are iterated like arrays. To avoid this behavior `_.forIn` or `_.forOwn`
1911
+ * may be used for object iteration.
1912
+ *
1913
+ * @static
1914
+ * @memberOf _
1915
+ * @alias each
1916
+ * @category Collections
1917
+ * @param {Array|Object|string} collection The collection to iterate over.
1918
+ * @param {Function} [callback=identity] The function called per iteration.
1919
+ * @param {*} [thisArg] The `this` binding of `callback`.
1920
+ * @returns {Array|Object|string} Returns `collection`.
1921
+ * @example
1922
+ *
1923
+ * _([1, 2, 3]).forEach(function(num) { console.log(num); }).join(',');
1924
+ * // => logs each number and returns '1,2,3'
1925
+ *
1926
+ * _.forEach({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { console.log(num); });
1927
+ * // => logs each number and returns the object (property order is not guaranteed across environments)
1928
+ */
1929
+ function forEach(collection, callback, thisArg) {
1930
+ var index = -1,
1931
+ length = collection ? collection.length : 0;
1969
1932
 
1970
- function isFunction(arg) {
1971
- return typeof arg === 'function';
1933
+ callback = callback && typeof thisArg == 'undefined' ? callback : baseCreateCallback(callback, thisArg, 3);
1934
+ if (typeof length == 'number') {
1935
+ while (++index < length) {
1936
+ if (callback(collection[index], index, collection) === false) {
1937
+ break;
1938
+ }
1939
+ }
1940
+ } else {
1941
+ forOwn(collection, callback);
1942
+ }
1943
+ return collection;
1972
1944
  }
1973
1945
 
1974
- function isNumber(arg) {
1975
- return typeof arg === 'number';
1976
- }
1946
+ module.exports = forEach;
1947
+
1948
+
1949
+ /***/ },
1950
+ /* 20 */
1951
+ /***/ function(module, exports, __webpack_require__) {
1952
+
1953
+ /**
1954
+ * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
1955
+ * Build: `lodash modularize modern exports="node" -o ./modern/`
1956
+ * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
1957
+ * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
1958
+ * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1959
+ * Available under MIT license <http://lodash.com/license>
1960
+ */
1961
+ var keys = __webpack_require__(14);
1977
1962
 
1978
- function isObject(arg) {
1979
- return typeof arg === 'object' && arg !== null;
1963
+ /**
1964
+ * Gets the size of the `collection` by returning `collection.length` for arrays
1965
+ * and array-like objects or the number of own enumerable properties for objects.
1966
+ *
1967
+ * @static
1968
+ * @memberOf _
1969
+ * @category Collections
1970
+ * @param {Array|Object|string} collection The collection to inspect.
1971
+ * @returns {number} Returns `collection.length` or number of own enumerable properties.
1972
+ * @example
1973
+ *
1974
+ * _.size([1, 2]);
1975
+ * // => 2
1976
+ *
1977
+ * _.size({ 'one': 1, 'two': 2, 'three': 3 });
1978
+ * // => 3
1979
+ *
1980
+ * _.size('pebbles');
1981
+ * // => 7
1982
+ */
1983
+ function size(collection) {
1984
+ var length = collection ? collection.length : 0;
1985
+ return typeof length == 'number' ? length : keys(collection).length;
1980
1986
  }
1981
1987
 
1982
- function isUndefined(arg) {
1983
- return arg === void 0;
1984
- }
1988
+ module.exports = size;
1985
1989
 
1986
1990
 
1987
1991
  /***/ },
1988
1992
  /* 21 */
1993
+ /***/ function(module, exports, __webpack_require__) {
1994
+
1995
+ module.exports = function isBuffer(arg) {
1996
+ return arg && typeof arg === 'object'
1997
+ && typeof arg.copy === 'function'
1998
+ && typeof arg.fill === 'function'
1999
+ && typeof arg.readUInt8 === 'function';
2000
+ }
2001
+
2002
+ /***/ },
2003
+ /* 22 */
1989
2004
  /***/ function(module, exports, __webpack_require__) {
1990
2005
 
1991
2006
  /**
@@ -1996,7 +2011,7 @@ return /******/ (function(modules) { // webpackBootstrap
1996
2011
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1997
2012
  * Available under MIT license <http://lodash.com/license>
1998
2013
  */
1999
- var objectTypes = __webpack_require__(26);
2014
+ var objectTypes = __webpack_require__(27);
2000
2015
 
2001
2016
  /**
2002
2017
  * Checks if `value` is the language type of Object.
@@ -2030,7 +2045,7 @@ return /******/ (function(modules) { // webpackBootstrap
2030
2045
 
2031
2046
 
2032
2047
  /***/ },
2033
- /* 22 */
2048
+ /* 23 */
2034
2049
  /***/ function(module, exports, __webpack_require__) {
2035
2050
 
2036
2051
  /**
@@ -2076,7 +2091,7 @@ return /******/ (function(modules) { // webpackBootstrap
2076
2091
 
2077
2092
 
2078
2093
  /***/ },
2079
- /* 23 */
2094
+ /* 24 */
2080
2095
  /***/ function(module, exports, __webpack_require__) {
2081
2096
 
2082
2097
  /**
@@ -2087,7 +2102,7 @@ return /******/ (function(modules) { // webpackBootstrap
2087
2102
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
2088
2103
  * Available under MIT license <http://lodash.com/license>
2089
2104
  */
2090
- var isNative = __webpack_require__(27);
2105
+ var isNative = __webpack_require__(28);
2091
2106
 
2092
2107
  /** `Object#toString` result shortcuts */
2093
2108
  var arrayClass = '[object Array]';
@@ -2127,7 +2142,7 @@ return /******/ (function(modules) { // webpackBootstrap
2127
2142
 
2128
2143
 
2129
2144
  /***/ },
2130
- /* 24 */
2145
+ /* 25 */
2131
2146
  /***/ function(module, exports, __webpack_require__) {
2132
2147
 
2133
2148
  /**
@@ -2139,11 +2154,11 @@ return /******/ (function(modules) { // webpackBootstrap
2139
2154
  * Available under MIT license <http://lodash.com/license>
2140
2155
  */
2141
2156
  var assign = __webpack_require__(41),
2142
- forEach = __webpack_require__(17),
2143
- forOwn = __webpack_require__(12),
2157
+ forEach = __webpack_require__(19),
2158
+ forOwn = __webpack_require__(13),
2144
2159
  getArray = __webpack_require__(33),
2145
- isArray = __webpack_require__(23),
2146
- isObject = __webpack_require__(21),
2160
+ isArray = __webpack_require__(24),
2161
+ isObject = __webpack_require__(22),
2147
2162
  releaseArray = __webpack_require__(35),
2148
2163
  slice = __webpack_require__(42);
2149
2164
 
@@ -2285,7 +2300,7 @@ return /******/ (function(modules) { // webpackBootstrap
2285
2300
 
2286
2301
 
2287
2302
  /***/ },
2288
- /* 25 */
2303
+ /* 26 */
2289
2304
  /***/ function(module, exports, __webpack_require__) {
2290
2305
 
2291
2306
  /**
@@ -2371,7 +2386,7 @@ return /******/ (function(modules) { // webpackBootstrap
2371
2386
 
2372
2387
 
2373
2388
  /***/ },
2374
- /* 26 */
2389
+ /* 27 */
2375
2390
  /***/ function(module, exports, __webpack_require__) {
2376
2391
 
2377
2392
  /**
@@ -2397,7 +2412,7 @@ return /******/ (function(modules) { // webpackBootstrap
2397
2412
 
2398
2413
 
2399
2414
  /***/ },
2400
- /* 27 */
2415
+ /* 28 */
2401
2416
  /***/ function(module, exports, __webpack_require__) {
2402
2417
 
2403
2418
  /**
@@ -2437,7 +2452,7 @@ return /******/ (function(modules) { // webpackBootstrap
2437
2452
 
2438
2453
 
2439
2454
  /***/ },
2440
- /* 28 */
2455
+ /* 29 */
2441
2456
  /***/ function(module, exports, __webpack_require__) {
2442
2457
 
2443
2458
  /**
@@ -2448,7 +2463,7 @@ return /******/ (function(modules) { // webpackBootstrap
2448
2463
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
2449
2464
  * Available under MIT license <http://lodash.com/license>
2450
2465
  */
2451
- var objectTypes = __webpack_require__(26);
2466
+ var objectTypes = __webpack_require__(27);
2452
2467
 
2453
2468
  /** Used for native method references */
2454
2469
  var objectProto = Object.prototype;
@@ -2469,85 +2484,15 @@ return /******/ (function(modules) { // webpackBootstrap
2469
2484
  var index, iterable = object, result = [];
2470
2485
  if (!iterable) return result;
2471
2486
  if (!(objectTypes[typeof object])) return result;
2472
- for (index in iterable) {
2473
- if (hasOwnProperty.call(iterable, index)) {
2474
- result.push(index);
2475
- }
2476
- }
2477
- return result
2478
- };
2479
-
2480
- module.exports = shimKeys;
2481
-
2482
-
2483
- /***/ },
2484
- /* 29 */
2485
- /***/ function(module, exports, __webpack_require__) {
2486
-
2487
- /**
2488
- * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
2489
- * Build: `lodash modularize modern exports="node" -o ./modern/`
2490
- * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
2491
- * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
2492
- * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
2493
- * Available under MIT license <http://lodash.com/license>
2494
- */
2495
- var baseIndexOf = __webpack_require__(30),
2496
- cacheIndexOf = __webpack_require__(31),
2497
- createCache = __webpack_require__(32),
2498
- getArray = __webpack_require__(33),
2499
- largeArraySize = __webpack_require__(34),
2500
- releaseArray = __webpack_require__(35),
2501
- releaseObject = __webpack_require__(36);
2502
-
2503
- /**
2504
- * The base implementation of `_.uniq` without support for callback shorthands
2505
- * or `thisArg` binding.
2506
- *
2507
- * @private
2508
- * @param {Array} array The array to process.
2509
- * @param {boolean} [isSorted=false] A flag to indicate that `array` is sorted.
2510
- * @param {Function} [callback] The function called per iteration.
2511
- * @returns {Array} Returns a duplicate-value-free array.
2512
- */
2513
- function baseUniq(array, isSorted, callback) {
2514
- var index = -1,
2515
- indexOf = baseIndexOf,
2516
- length = array ? array.length : 0,
2517
- result = [];
2518
-
2519
- var isLarge = !isSorted && length >= largeArraySize,
2520
- seen = (callback || isLarge) ? getArray() : result;
2521
-
2522
- if (isLarge) {
2523
- var cache = createCache(seen);
2524
- indexOf = cacheIndexOf;
2525
- seen = cache;
2526
- }
2527
- while (++index < length) {
2528
- var value = array[index],
2529
- computed = callback ? callback(value, index, array) : value;
2530
-
2531
- if (isSorted
2532
- ? !index || seen[seen.length - 1] !== computed
2533
- : indexOf(seen, computed) < 0
2534
- ) {
2535
- if (callback || isLarge) {
2536
- seen.push(computed);
2487
+ for (index in iterable) {
2488
+ if (hasOwnProperty.call(iterable, index)) {
2489
+ result.push(index);
2537
2490
  }
2538
- result.push(value);
2539
2491
  }
2540
- }
2541
- if (isLarge) {
2542
- releaseArray(seen.array);
2543
- releaseObject(seen);
2544
- } else if (callback) {
2545
- releaseArray(seen);
2546
- }
2547
- return result;
2548
- }
2492
+ return result
2493
+ };
2549
2494
 
2550
- module.exports = baseUniq;
2495
+ module.exports = shimKeys;
2551
2496
 
2552
2497
 
2553
2498
  /***/ },
@@ -2645,8 +2590,8 @@ return /******/ (function(modules) { // webpackBootstrap
2645
2590
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
2646
2591
  * Available under MIT license <http://lodash.com/license>
2647
2592
  */
2648
- var cachePush = __webpack_require__(48),
2649
- getObject = __webpack_require__(49),
2593
+ var cachePush = __webpack_require__(47),
2594
+ getObject = __webpack_require__(48),
2650
2595
  releaseObject = __webpack_require__(36);
2651
2596
 
2652
2597
  /**
@@ -2696,7 +2641,7 @@ return /******/ (function(modules) { // webpackBootstrap
2696
2641
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
2697
2642
  * Available under MIT license <http://lodash.com/license>
2698
2643
  */
2699
- var arrayPool = __webpack_require__(47);
2644
+ var arrayPool = __webpack_require__(49);
2700
2645
 
2701
2646
  /**
2702
2647
  * Gets an array from the array pool or creates a new one if the pool is empty.
@@ -2742,7 +2687,7 @@ return /******/ (function(modules) { // webpackBootstrap
2742
2687
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
2743
2688
  * Available under MIT license <http://lodash.com/license>
2744
2689
  */
2745
- var arrayPool = __webpack_require__(47),
2690
+ var arrayPool = __webpack_require__(49),
2746
2691
  maxPoolSize = __webpack_require__(50);
2747
2692
 
2748
2693
  /**
@@ -2808,94 +2753,66 @@ return /******/ (function(modules) { // webpackBootstrap
2808
2753
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
2809
2754
  * Available under MIT license <http://lodash.com/license>
2810
2755
  */
2811
- var baseCreateCallback = __webpack_require__(25),
2812
- baseIsEqual = __webpack_require__(52),
2813
- isObject = __webpack_require__(21),
2814
- keys = __webpack_require__(13),
2815
- property = __webpack_require__(54);
2756
+ var baseIndexOf = __webpack_require__(30),
2757
+ cacheIndexOf = __webpack_require__(31),
2758
+ createCache = __webpack_require__(32),
2759
+ getArray = __webpack_require__(33),
2760
+ largeArraySize = __webpack_require__(34),
2761
+ releaseArray = __webpack_require__(35),
2762
+ releaseObject = __webpack_require__(36);
2816
2763
 
2817
2764
  /**
2818
- * Produces a callback bound to an optional `thisArg`. If `func` is a property
2819
- * name the created callback will return the property value for a given element.
2820
- * If `func` is an object the created callback will return `true` for elements
2821
- * that contain the equivalent object properties, otherwise it will return `false`.
2822
- *
2823
- * @static
2824
- * @memberOf _
2825
- * @category Utilities
2826
- * @param {*} [func=identity] The value to convert to a callback.
2827
- * @param {*} [thisArg] The `this` binding of the created callback.
2828
- * @param {number} [argCount] The number of arguments the callback accepts.
2829
- * @returns {Function} Returns a callback function.
2830
- * @example
2831
- *
2832
- * var characters = [
2833
- * { 'name': 'barney', 'age': 36 },
2834
- * { 'name': 'fred', 'age': 40 }
2835
- * ];
2836
- *
2837
- * // wrap to create custom callback shorthands
2838
- * _.createCallback = _.wrap(_.createCallback, function(func, callback, thisArg) {
2839
- * var match = /^(.+?)__([gl]t)(.+)$/.exec(callback);
2840
- * return !match ? func(callback, thisArg) : function(object) {
2841
- * return match[2] == 'gt' ? object[match[1]] > match[3] : object[match[1]] < match[3];
2842
- * };
2843
- * });
2765
+ * The base implementation of `_.uniq` without support for callback shorthands
2766
+ * or `thisArg` binding.
2844
2767
  *
2845
- * _.filter(characters, 'age__gt38');
2846
- * // => [{ 'name': 'fred', 'age': 40 }]
2768
+ * @private
2769
+ * @param {Array} array The array to process.
2770
+ * @param {boolean} [isSorted=false] A flag to indicate that `array` is sorted.
2771
+ * @param {Function} [callback] The function called per iteration.
2772
+ * @returns {Array} Returns a duplicate-value-free array.
2847
2773
  */
2848
- function createCallback(func, thisArg, argCount) {
2849
- var type = typeof func;
2850
- if (func == null || type == 'function') {
2851
- return baseCreateCallback(func, thisArg, argCount);
2852
- }
2853
- // handle "_.pluck" style callback shorthands
2854
- if (type != 'object') {
2855
- return property(func);
2856
- }
2857
- var props = keys(func),
2858
- key = props[0],
2859
- a = func[key];
2774
+ function baseUniq(array, isSorted, callback) {
2775
+ var index = -1,
2776
+ indexOf = baseIndexOf,
2777
+ length = array ? array.length : 0,
2778
+ result = [];
2860
2779
 
2861
- // handle "_.where" style callback shorthands
2862
- if (props.length == 1 && a === a && !isObject(a)) {
2863
- // fast path the common case of providing an object with a single
2864
- // property containing a primitive value
2865
- return function(object) {
2866
- var b = object[key];
2867
- return a === b && (a !== 0 || (1 / a == 1 / b));
2868
- };
2780
+ var isLarge = !isSorted && length >= largeArraySize,
2781
+ seen = (callback || isLarge) ? getArray() : result;
2782
+
2783
+ if (isLarge) {
2784
+ var cache = createCache(seen);
2785
+ indexOf = cacheIndexOf;
2786
+ seen = cache;
2869
2787
  }
2870
- return function(object) {
2871
- var length = props.length,
2872
- result = false;
2788
+ while (++index < length) {
2789
+ var value = array[index],
2790
+ computed = callback ? callback(value, index, array) : value;
2873
2791
 
2874
- while (length--) {
2875
- if (!(result = baseIsEqual(object[props[length]], func[props[length]], null, true))) {
2876
- break;
2792
+ if (isSorted
2793
+ ? !index || seen[seen.length - 1] !== computed
2794
+ : indexOf(seen, computed) < 0
2795
+ ) {
2796
+ if (callback || isLarge) {
2797
+ seen.push(computed);
2877
2798
  }
2799
+ result.push(value);
2878
2800
  }
2879
- return result;
2880
- };
2801
+ }
2802
+ if (isLarge) {
2803
+ releaseArray(seen.array);
2804
+ releaseObject(seen);
2805
+ } else if (callback) {
2806
+ releaseArray(seen);
2807
+ }
2808
+ return result;
2881
2809
  }
2882
2810
 
2883
- module.exports = createCallback;
2811
+ module.exports = baseUniq;
2884
2812
 
2885
2813
 
2886
2814
  /***/ },
2887
2815
  /* 38 */
2888
- /***/ function(module, exports, __webpack_require__) {
2889
-
2890
- module.exports = function isBuffer(arg) {
2891
- return arg && typeof arg === 'object'
2892
- && typeof arg.copy === 'function'
2893
- && typeof arg.fill === 'function'
2894
- && typeof arg.readUInt8 === 'function';
2895
- }
2896
-
2897
- /***/ },
2898
- /* 39 */
2899
2816
  /***/ function(module, exports, __webpack_require__) {
2900
2817
 
2901
2818
  // shim for using process in browser
@@ -2960,6 +2877,93 @@ return /******/ (function(modules) { // webpackBootstrap
2960
2877
  };
2961
2878
 
2962
2879
 
2880
+ /***/ },
2881
+ /* 39 */
2882
+ /***/ function(module, exports, __webpack_require__) {
2883
+
2884
+ /**
2885
+ * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
2886
+ * Build: `lodash modularize modern exports="node" -o ./modern/`
2887
+ * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
2888
+ * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
2889
+ * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
2890
+ * Available under MIT license <http://lodash.com/license>
2891
+ */
2892
+ var baseCreateCallback = __webpack_require__(26),
2893
+ baseIsEqual = __webpack_require__(52),
2894
+ isObject = __webpack_require__(22),
2895
+ keys = __webpack_require__(14),
2896
+ property = __webpack_require__(54);
2897
+
2898
+ /**
2899
+ * Produces a callback bound to an optional `thisArg`. If `func` is a property
2900
+ * name the created callback will return the property value for a given element.
2901
+ * If `func` is an object the created callback will return `true` for elements
2902
+ * that contain the equivalent object properties, otherwise it will return `false`.
2903
+ *
2904
+ * @static
2905
+ * @memberOf _
2906
+ * @category Utilities
2907
+ * @param {*} [func=identity] The value to convert to a callback.
2908
+ * @param {*} [thisArg] The `this` binding of the created callback.
2909
+ * @param {number} [argCount] The number of arguments the callback accepts.
2910
+ * @returns {Function} Returns a callback function.
2911
+ * @example
2912
+ *
2913
+ * var characters = [
2914
+ * { 'name': 'barney', 'age': 36 },
2915
+ * { 'name': 'fred', 'age': 40 }
2916
+ * ];
2917
+ *
2918
+ * // wrap to create custom callback shorthands
2919
+ * _.createCallback = _.wrap(_.createCallback, function(func, callback, thisArg) {
2920
+ * var match = /^(.+?)__([gl]t)(.+)$/.exec(callback);
2921
+ * return !match ? func(callback, thisArg) : function(object) {
2922
+ * return match[2] == 'gt' ? object[match[1]] > match[3] : object[match[1]] < match[3];
2923
+ * };
2924
+ * });
2925
+ *
2926
+ * _.filter(characters, 'age__gt38');
2927
+ * // => [{ 'name': 'fred', 'age': 40 }]
2928
+ */
2929
+ function createCallback(func, thisArg, argCount) {
2930
+ var type = typeof func;
2931
+ if (func == null || type == 'function') {
2932
+ return baseCreateCallback(func, thisArg, argCount);
2933
+ }
2934
+ // handle "_.pluck" style callback shorthands
2935
+ if (type != 'object') {
2936
+ return property(func);
2937
+ }
2938
+ var props = keys(func),
2939
+ key = props[0],
2940
+ a = func[key];
2941
+
2942
+ // handle "_.where" style callback shorthands
2943
+ if (props.length == 1 && a === a && !isObject(a)) {
2944
+ // fast path the common case of providing an object with a single
2945
+ // property containing a primitive value
2946
+ return function(object) {
2947
+ var b = object[key];
2948
+ return a === b && (a !== 0 || (1 / a == 1 / b));
2949
+ };
2950
+ }
2951
+ return function(object) {
2952
+ var length = props.length,
2953
+ result = false;
2954
+
2955
+ while (length--) {
2956
+ if (!(result = baseIsEqual(object[props[length]], func[props[length]], null, true))) {
2957
+ break;
2958
+ }
2959
+ }
2960
+ return result;
2961
+ };
2962
+ }
2963
+
2964
+ module.exports = createCallback;
2965
+
2966
+
2963
2967
  /***/ },
2964
2968
  /* 40 */
2965
2969
  /***/ function(module, exports, __webpack_require__) {
@@ -3001,9 +3005,9 @@ return /******/ (function(modules) { // webpackBootstrap
3001
3005
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
3002
3006
  * Available under MIT license <http://lodash.com/license>
3003
3007
  */
3004
- var baseCreateCallback = __webpack_require__(25),
3005
- keys = __webpack_require__(13),
3006
- objectTypes = __webpack_require__(26);
3008
+ var baseCreateCallback = __webpack_require__(26),
3009
+ keys = __webpack_require__(14),
3010
+ objectTypes = __webpack_require__(27);
3007
3011
 
3008
3012
  /**
3009
3013
  * Assigns own enumerable properties of source object(s) to the destination
@@ -3167,7 +3171,7 @@ return /******/ (function(modules) { // webpackBootstrap
3167
3171
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
3168
3172
  * Available under MIT license <http://lodash.com/license>
3169
3173
  */
3170
- var isNative = __webpack_require__(27),
3174
+ var isNative = __webpack_require__(28),
3171
3175
  noop = __webpack_require__(56);
3172
3176
 
3173
3177
  /** Used as the property descriptor for `__bindData__` */
@@ -3216,7 +3220,7 @@ return /******/ (function(modules) { // webpackBootstrap
3216
3220
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
3217
3221
  * Available under MIT license <http://lodash.com/license>
3218
3222
  */
3219
- var isNative = __webpack_require__(27);
3223
+ var isNative = __webpack_require__(28);
3220
3224
 
3221
3225
  /** Used to detect functions containing a `this` reference */
3222
3226
  var reThis = /\bthis\b/;
@@ -3272,25 +3276,6 @@ return /******/ (function(modules) { // webpackBootstrap
3272
3276
 
3273
3277
  /***/ },
3274
3278
  /* 47 */
3275
- /***/ function(module, exports, __webpack_require__) {
3276
-
3277
- /**
3278
- * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
3279
- * Build: `lodash modularize modern exports="node" -o ./modern/`
3280
- * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
3281
- * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
3282
- * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
3283
- * Available under MIT license <http://lodash.com/license>
3284
- */
3285
-
3286
- /** Used to pool arrays and objects used internally */
3287
- var arrayPool = [];
3288
-
3289
- module.exports = arrayPool;
3290
-
3291
-
3292
- /***/ },
3293
- /* 48 */
3294
3279
  /***/ function(module, exports, __webpack_require__) {
3295
3280
 
3296
3281
  /**
@@ -3334,7 +3319,7 @@ return /******/ (function(modules) { // webpackBootstrap
3334
3319
 
3335
3320
 
3336
3321
  /***/ },
3337
- /* 49 */
3322
+ /* 48 */
3338
3323
  /***/ function(module, exports, __webpack_require__) {
3339
3324
 
3340
3325
  /**
@@ -3374,6 +3359,25 @@ return /******/ (function(modules) { // webpackBootstrap
3374
3359
  module.exports = getObject;
3375
3360
 
3376
3361
 
3362
+ /***/ },
3363
+ /* 49 */
3364
+ /***/ function(module, exports, __webpack_require__) {
3365
+
3366
+ /**
3367
+ * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
3368
+ * Build: `lodash modularize modern exports="node" -o ./modern/`
3369
+ * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
3370
+ * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
3371
+ * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
3372
+ * Available under MIT license <http://lodash.com/license>
3373
+ */
3374
+
3375
+ /** Used to pool arrays and objects used internally */
3376
+ var arrayPool = [];
3377
+
3378
+ module.exports = arrayPool;
3379
+
3380
+
3377
3381
  /***/ },
3378
3382
  /* 50 */
3379
3383
  /***/ function(module, exports, __webpack_require__) {
@@ -3427,7 +3431,7 @@ return /******/ (function(modules) { // webpackBootstrap
3427
3431
  var forIn = __webpack_require__(57),
3428
3432
  getArray = __webpack_require__(33),
3429
3433
  isFunction = __webpack_require__(58),
3430
- objectTypes = __webpack_require__(26),
3434
+ objectTypes = __webpack_require__(27),
3431
3435
  releaseArray = __webpack_require__(35);
3432
3436
 
3433
3437
  /** `Object#toString` result shortcuts */
@@ -3863,8 +3867,8 @@ return /******/ (function(modules) { // webpackBootstrap
3863
3867
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
3864
3868
  * Available under MIT license <http://lodash.com/license>
3865
3869
  */
3866
- var baseCreateCallback = __webpack_require__(25),
3867
- objectTypes = __webpack_require__(26);
3870
+ var baseCreateCallback = __webpack_require__(26),
3871
+ objectTypes = __webpack_require__(27);
3868
3872
 
3869
3873
  /**
3870
3874
  * Iterates over own and inherited enumerable properties of an object,
@@ -3957,7 +3961,7 @@ return /******/ (function(modules) { // webpackBootstrap
3957
3961
  * Available under MIT license <http://lodash.com/license>
3958
3962
  */
3959
3963
  var baseCreate = __webpack_require__(61),
3960
- isObject = __webpack_require__(21),
3964
+ isObject = __webpack_require__(22),
3961
3965
  setBindData = __webpack_require__(44),
3962
3966
  slice = __webpack_require__(42);
3963
3967
 
@@ -4025,7 +4029,7 @@ return /******/ (function(modules) { // webpackBootstrap
4025
4029
  * Available under MIT license <http://lodash.com/license>
4026
4030
  */
4027
4031
  var baseCreate = __webpack_require__(61),
4028
- isObject = __webpack_require__(21),
4032
+ isObject = __webpack_require__(22),
4029
4033
  setBindData = __webpack_require__(44),
4030
4034
  slice = __webpack_require__(42);
4031
4035
 
@@ -4108,8 +4112,8 @@ return /******/ (function(modules) { // webpackBootstrap
4108
4112
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
4109
4113
  * Available under MIT license <http://lodash.com/license>
4110
4114
  */
4111
- var isNative = __webpack_require__(27),
4112
- isObject = __webpack_require__(21),
4115
+ var isNative = __webpack_require__(28),
4116
+ isObject = __webpack_require__(22),
4113
4117
  noop = __webpack_require__(56);
4114
4118
 
4115
4119
  /* Native method shortcuts for methods with the same name as other `lodash` methods */