fluxxor-rails 1.2.0 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 */