fluxxor-rails 1.5.2 → 1.5.3

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: 722541abf647edab8868f878be9c08e7851f031d
4
- data.tar.gz: 222d4fe76be0755d852667b8b3343561c3433d8d
3
+ metadata.gz: 3f891290cdee5391dda5e902aa917792ac2d3c97
4
+ data.tar.gz: 06f567ef1d600bfbbfb1abbe540304957bb3d230
5
5
  SHA512:
6
- metadata.gz: 7facc0dd1a4e4ce12903943b6605709d81765b518d27ae8182c031f70217da15e3227a7a54a1c5942af1e204721d30e87e35810b8d39524ef5aeeb742e529287
7
- data.tar.gz: c33a2b500a03d78926e821cefb8ca96541c811823b7dd3d4fac3aaee698acc09748f575900b5579f90a4f2939981d1d61447d2d62e8c745969974afcba3182fd
6
+ metadata.gz: 196f41bc6711e791b96c106508b239f8db899f17f241e05c51044736b2d4d4ef9cf6aae84c41f05eea1b0a8a215f69553cf15f7e990c8db0fa26de461437ce98
7
+ data.tar.gz: 2f86ec1b6bbe42106e65bef3a3bc241eaff65b1602eb5f86f0c4b57dff1395e85fc7f195f0a59668fe47e64acc1a87d5aeeba3ba4d44170c17527d392f16dd78
@@ -1,5 +1,5 @@
1
1
  module Fluxxor
2
2
  module Rails
3
- VERSION = '1.5.2'
3
+ VERSION = '1.5.3'
4
4
  end
5
5
  end
@@ -228,9 +228,9 @@ return /******/ (function(modules) { // webpackBootstrap
228
228
  /* 2 */
229
229
  /***/ function(module, exports, __webpack_require__) {
230
230
 
231
- var EventEmitter = __webpack_require__(9),
232
- inherits = __webpack_require__(11),
233
- objectPath = __webpack_require__(10),
231
+ var EventEmitter = __webpack_require__(10),
232
+ inherits = __webpack_require__(8),
233
+ objectPath = __webpack_require__(11),
234
234
  _each = __webpack_require__(22),
235
235
  _reduce = __webpack_require__(24),
236
236
  _isFunction = __webpack_require__(13),
@@ -473,8 +473,8 @@ return /******/ (function(modules) { // webpackBootstrap
473
473
 
474
474
  var _each = __webpack_require__(22),
475
475
  _isFunction = __webpack_require__(13),
476
- Store = __webpack_require__(8),
477
- inherits = __webpack_require__(11);
476
+ Store = __webpack_require__(9),
477
+ inherits = __webpack_require__(8);
478
478
 
479
479
  var RESERVED_KEYS = ["flux", "waitFor"];
480
480
 
@@ -517,14 +517,63 @@ return /******/ (function(modules) { // webpackBootstrap
517
517
  /* 7 */
518
518
  /***/ function(module, exports, __webpack_require__) {
519
519
 
520
- module.exports = "1.5.2"
520
+ module.exports = "1.5.3"
521
521
 
522
522
  /***/ },
523
523
  /* 8 */
524
524
  /***/ function(module, exports, __webpack_require__) {
525
525
 
526
- var EventEmitter = __webpack_require__(9),
527
- inherits = __webpack_require__(11),
526
+ // From https://github.com/isaacs/inherits
527
+ // inherits is licensed under the ISC license:
528
+ //
529
+ //
530
+ // The ISC License
531
+ //
532
+ // Copyright (c) Isaac Z. Schlueter
533
+ //
534
+ // Permission to use, copy, modify, and/or distribute this software for any
535
+ // purpose with or without fee is hereby granted, provided that the above
536
+ // copyright notice and this permission notice appear in all copies.
537
+ //
538
+ // THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
539
+ // REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
540
+ // FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
541
+ // INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
542
+ // LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
543
+ // OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
544
+ // PERFORMANCE OF THIS SOFTWARE.
545
+
546
+ if (typeof Object.create === 'function') {
547
+ // implementation from standard node.js 'util' module
548
+ module.exports = function inherits(ctor, superCtor) {
549
+ ctor.super_ = superCtor;
550
+ ctor.prototype = Object.create(superCtor.prototype, {
551
+ constructor: {
552
+ value: ctor,
553
+ enumerable: false,
554
+ writable: true,
555
+ configurable: true
556
+ }
557
+ });
558
+ };
559
+ } else {
560
+ // old school shim for old browsers
561
+ module.exports = function inherits(ctor, superCtor) {
562
+ ctor.super_ = superCtor;
563
+ var TempCtor = function () {};
564
+ TempCtor.prototype = superCtor.prototype;
565
+ ctor.prototype = new TempCtor();
566
+ ctor.prototype.constructor = ctor;
567
+ };
568
+ }
569
+
570
+
571
+ /***/ },
572
+ /* 9 */
573
+ /***/ function(module, exports, __webpack_require__) {
574
+
575
+ var EventEmitter = __webpack_require__(10),
576
+ inherits = __webpack_require__(8),
528
577
  _isFunction = __webpack_require__(13),
529
578
  _isObject = __webpack_require__(25);
530
579
 
@@ -596,7 +645,7 @@ return /******/ (function(modules) { // webpackBootstrap
596
645
 
597
646
 
598
647
  /***/ },
599
- /* 9 */
648
+ /* 10 */
600
649
  /***/ function(module, exports, __webpack_require__) {
601
650
 
602
651
  'use strict';
@@ -831,7 +880,7 @@ return /******/ (function(modules) { // webpackBootstrap
831
880
 
832
881
 
833
882
  /***/ },
834
- /* 10 */
883
+ /* 11 */
835
884
  /***/ function(module, exports, __webpack_require__) {
836
885
 
837
886
  var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (root, factory){
@@ -1076,42 +1125,13 @@ return /******/ (function(modules) { // webpackBootstrap
1076
1125
  return objectPath;
1077
1126
  });
1078
1127
 
1079
- /***/ },
1080
- /* 11 */
1081
- /***/ function(module, exports, __webpack_require__) {
1082
-
1083
- if (typeof Object.create === 'function') {
1084
- // implementation from standard node.js 'util' module
1085
- module.exports = function inherits(ctor, superCtor) {
1086
- ctor.super_ = superCtor
1087
- ctor.prototype = Object.create(superCtor.prototype, {
1088
- constructor: {
1089
- value: ctor,
1090
- enumerable: false,
1091
- writable: true,
1092
- configurable: true
1093
- }
1094
- });
1095
- };
1096
- } else {
1097
- // old school shim for old browsers
1098
- module.exports = function inherits(ctor, superCtor) {
1099
- ctor.super_ = superCtor
1100
- var TempCtor = function () {}
1101
- TempCtor.prototype = superCtor.prototype
1102
- ctor.prototype = new TempCtor()
1103
- ctor.prototype.constructor = ctor
1104
- }
1105
- }
1106
-
1107
-
1108
1128
  /***/ },
1109
1129
  /* 12 */
1110
1130
  /***/ function(module, exports, __webpack_require__) {
1111
1131
 
1112
- var baseClone = __webpack_require__(27),
1113
- bindCallback = __webpack_require__(28),
1114
- isIterateeCall = __webpack_require__(29);
1132
+ var baseClone = __webpack_require__(26),
1133
+ bindCallback = __webpack_require__(27),
1134
+ isIterateeCall = __webpack_require__(28);
1115
1135
 
1116
1136
  /**
1117
1137
  * Creates a clone of `value`. If `isDeep` is `true` nested objects are cloned,
@@ -1120,12 +1140,12 @@ return /******/ (function(modules) { // webpackBootstrap
1120
1140
  * cloning is handled by the method instead. The `customizer` is bound to
1121
1141
  * `thisArg` and invoked with two argument; (value [, index|key, object]).
1122
1142
  *
1123
- * **Note:** This method is loosely based on the structured clone algorithm.
1143
+ * **Note:** This method is loosely based on the
1144
+ * [structured clone algorithm](http://www.w3.org/TR/html5/infrastructure.html#internal-structured-cloning-algorithm).
1124
1145
  * The enumerable properties of `arguments` objects and objects created by
1125
1146
  * constructors other than `Object` are cloned to plain `Object` objects. An
1126
1147
  * empty object is returned for uncloneable values such as functions, DOM nodes,
1127
- * Maps, Sets, and WeakMaps. See the [HTML5 specification](http://www.w3.org/TR/html5/infrastructure.html#internal-structured-cloning-algorithm)
1128
- * for more details.
1148
+ * Maps, Sets, and WeakMaps.
1129
1149
  *
1130
1150
  * @static
1131
1151
  * @memberOf _
@@ -1151,22 +1171,26 @@ return /******/ (function(modules) { // webpackBootstrap
1151
1171
  * // => false
1152
1172
  *
1153
1173
  * // using a customizer callback
1154
- * var body = _.clone(document.body, function(value) {
1155
- * return _.isElement(value) ? value.cloneNode(false) : undefined;
1174
+ * var el = _.clone(document.body, function(value) {
1175
+ * if (_.isElement(value)) {
1176
+ * return value.cloneNode(false);
1177
+ * }
1156
1178
  * });
1157
1179
  *
1158
- * body === document.body
1180
+ * el === document.body
1159
1181
  * // => false
1160
- * body.nodeName
1182
+ * el.nodeName
1161
1183
  * // => BODY
1162
- * body.childNodes.length;
1184
+ * el.childNodes.length;
1163
1185
  * // => 0
1164
1186
  */
1165
1187
  function clone(value, isDeep, customizer, thisArg) {
1166
- // Juggle arguments.
1167
- if (typeof isDeep != 'boolean' && isDeep != null) {
1188
+ if (isDeep && typeof isDeep != 'boolean' && isIterateeCall(value, isDeep, customizer)) {
1189
+ isDeep = false;
1190
+ }
1191
+ else if (typeof isDeep == 'function') {
1168
1192
  thisArg = customizer;
1169
- customizer = isIterateeCall(value, isDeep, thisArg) ? null : isDeep;
1193
+ customizer = isDeep;
1170
1194
  isDeep = false;
1171
1195
  }
1172
1196
  customizer = typeof customizer == 'function' && bindCallback(customizer, thisArg, 1);
@@ -1180,7 +1204,8 @@ return /******/ (function(modules) { // webpackBootstrap
1180
1204
  /* 13 */
1181
1205
  /***/ function(module, exports, __webpack_require__) {
1182
1206
 
1183
- /* WEBPACK VAR INJECTION */(function(global) {var isNative = __webpack_require__(30);
1207
+ /* WEBPACK VAR INJECTION */(function(global) {var baseIsFunction = __webpack_require__(29),
1208
+ isNative = __webpack_require__(30);
1184
1209
 
1185
1210
  /** `Object#toString` result references. */
1186
1211
  var funcTag = '[object Function]';
@@ -1189,9 +1214,8 @@ return /******/ (function(modules) { // webpackBootstrap
1189
1214
  var objectProto = Object.prototype;
1190
1215
 
1191
1216
  /**
1192
- * Used to resolve the `toStringTag` of values.
1193
- * See the [ES spec](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
1194
- * for more details.
1217
+ * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
1218
+ * of values.
1195
1219
  */
1196
1220
  var objToString = objectProto.toString;
1197
1221
 
@@ -1214,20 +1238,12 @@ return /******/ (function(modules) { // webpackBootstrap
1214
1238
  * _.isFunction(/abc/);
1215
1239
  * // => false
1216
1240
  */
1217
- function isFunction(value) {
1218
- // Avoid a Chakra JIT bug in compatibility modes of IE 11.
1219
- // See https://github.com/jashkenas/underscore/issues/1621 for more details.
1220
- return typeof value == 'function' || false;
1221
- }
1222
- // Fallback for environments that return incorrect `typeof` operator results.
1223
- if (isFunction(/x/) || (Uint8Array && !isFunction(Uint8Array))) {
1224
- isFunction = function(value) {
1225
- // The use of `Object#toString` avoids issues with the `typeof` operator
1226
- // in older versions of Chrome and Safari which return 'function' for regexes
1227
- // and Safari 8 equivalents which return 'object' for typed array constructors.
1228
- return objToString.call(value) == funcTag;
1229
- };
1230
- }
1241
+ var isFunction = !(baseIsFunction(/x/) || (Uint8Array && !baseIsFunction(Uint8Array))) ? baseIsFunction : function(value) {
1242
+ // The use of `Object#toString` avoids issues with the `typeof` operator
1243
+ // in older versions of Chrome and Safari which return 'function' for regexes
1244
+ // and Safari 8 equivalents which return 'object' for typed array constructors.
1245
+ return objToString.call(value) == funcTag;
1246
+ };
1231
1247
 
1232
1248
  module.exports = isFunction;
1233
1249
 
@@ -1237,7 +1253,7 @@ return /******/ (function(modules) { // webpackBootstrap
1237
1253
  /* 14 */
1238
1254
  /***/ function(module, exports, __webpack_require__) {
1239
1255
 
1240
- var isObjectLike = __webpack_require__(26);
1256
+ var isObjectLike = __webpack_require__(31);
1241
1257
 
1242
1258
  /** `Object#toString` result references. */
1243
1259
  var stringTag = '[object String]';
@@ -1246,9 +1262,8 @@ return /******/ (function(modules) { // webpackBootstrap
1246
1262
  var objectProto = Object.prototype;
1247
1263
 
1248
1264
  /**
1249
- * Used to resolve the `toStringTag` of values.
1250
- * See the [ES spec](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
1251
- * for more details.
1265
+ * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
1266
+ * of values.
1252
1267
  */
1253
1268
  var objToString = objectProto.toString;
1254
1269
 
@@ -1269,7 +1284,7 @@ return /******/ (function(modules) { // webpackBootstrap
1269
1284
  * // => false
1270
1285
  */
1271
1286
  function isString(value) {
1272
- return typeof value == 'string' || (isObjectLike(value) && objToString.call(value) == stringTag) || false;
1287
+ return typeof value == 'string' || (isObjectLike(value) && objToString.call(value) == stringTag);
1273
1288
  }
1274
1289
 
1275
1290
  module.exports = isString;
@@ -1279,19 +1294,23 @@ return /******/ (function(modules) { // webpackBootstrap
1279
1294
  /* 15 */
1280
1295
  /***/ function(module, exports, __webpack_require__) {
1281
1296
 
1282
- var baseCallback = __webpack_require__(31),
1297
+ var baseCallback = __webpack_require__(34),
1283
1298
  baseForOwn = __webpack_require__(32);
1284
1299
 
1285
1300
  /**
1286
1301
  * Creates an object with the same keys as `object` and values generated by
1287
1302
  * running each own enumerable property of `object` through `iteratee`. The
1288
- * iteratee function is bound to `thisArg` and invoked with three arguments;
1303
+ * iteratee function is bound to `thisArg` and invoked with three arguments:
1289
1304
  * (value, key, object).
1290
1305
  *
1291
- * If a property name is provided for `iteratee` the created "_.property"
1306
+ * If a property name is provided for `iteratee` the created `_.property`
1292
1307
  * style callback returns the property value of the given element.
1293
1308
  *
1294
- * If an object is provided for `iteratee` the created "_.matches" style
1309
+ * If a value is also provided for `thisArg` the created `_.matchesProperty`
1310
+ * style callback returns `true` for elements that have a matching property
1311
+ * value, else `false`.
1312
+ *
1313
+ * If an object is provided for `iteratee` the created `_.matches` style
1295
1314
  * callback returns `true` for elements that have the properties of the given
1296
1315
  * object, else `false`.
1297
1316
  *
@@ -1300,21 +1319,22 @@ return /******/ (function(modules) { // webpackBootstrap
1300
1319
  * @category Object
1301
1320
  * @param {Object} object The object to iterate over.
1302
1321
  * @param {Function|Object|string} [iteratee=_.identity] The function invoked
1303
- * per iteration. If a property name or object is provided it is used to
1304
- * create a "_.property" or "_.matches" style callback respectively.
1322
+ * per iteration.
1305
1323
  * @param {*} [thisArg] The `this` binding of `iteratee`.
1306
1324
  * @returns {Object} Returns the new mapped object.
1307
1325
  * @example
1308
1326
  *
1309
- * _.mapValues({ 'a': 1, 'b': 2, 'c': 3} , function(n) { return n * 3; });
1310
- * // => { 'a': 3, 'b': 6, 'c': 9 }
1327
+ * _.mapValues({ 'a': 1, 'b': 2 }, function(n) {
1328
+ * return n * 3;
1329
+ * });
1330
+ * // => { 'a': 3, 'b': 6 }
1311
1331
  *
1312
1332
  * var users = {
1313
1333
  * 'fred': { 'user': 'fred', 'age': 40 },
1314
1334
  * 'pebbles': { 'user': 'pebbles', 'age': 1 }
1315
1335
  * };
1316
1336
  *
1317
- * // using the "_.property" callback shorthand
1337
+ * // using the `_.property` callback shorthand
1318
1338
  * _.mapValues(users, 'age');
1319
1339
  * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)
1320
1340
  */
@@ -1336,12 +1356,12 @@ return /******/ (function(modules) { // webpackBootstrap
1336
1356
  /***/ function(module, exports, __webpack_require__) {
1337
1357
 
1338
1358
  var baseForOwn = __webpack_require__(32),
1339
- bindCallback = __webpack_require__(28);
1359
+ createForOwn = __webpack_require__(33);
1340
1360
 
1341
1361
  /**
1342
1362
  * Iterates over own enumerable properties of an object invoking `iteratee`
1343
1363
  * for each property. The `iteratee` is bound to `thisArg` and invoked with
1344
- * three arguments; (value, key, object). Iterator functions may exit iteration
1364
+ * three arguments: (value, key, object). Iterator functions may exit iteration
1345
1365
  * early by explicitly returning `false`.
1346
1366
  *
1347
1367
  * @static
@@ -1353,17 +1373,19 @@ return /******/ (function(modules) { // webpackBootstrap
1353
1373
  * @returns {Object} Returns `object`.
1354
1374
  * @example
1355
1375
  *
1356
- * _.forOwn({ '0': 'zero', '1': 'one', 'length': 2 }, function(n, key) {
1376
+ * function Foo() {
1377
+ * this.a = 1;
1378
+ * this.b = 2;
1379
+ * }
1380
+ *
1381
+ * Foo.prototype.c = 3;
1382
+ *
1383
+ * _.forOwn(new Foo, function(value, key) {
1357
1384
  * console.log(key);
1358
1385
  * });
1359
- * // => logs '0', '1', and 'length' (iteration order is not guaranteed)
1386
+ * // => logs 'a' and 'b' (iteration order is not guaranteed)
1360
1387
  */
1361
- function forOwn(object, iteratee, thisArg) {
1362
- if (typeof iteratee != 'function' || typeof thisArg != 'undefined') {
1363
- iteratee = bindCallback(iteratee, thisArg, 3);
1364
- }
1365
- return baseForOwn(object, iteratee);
1366
- }
1388
+ var forOwn = createForOwn(baseForOwn);
1367
1389
 
1368
1390
  module.exports = forOwn;
1369
1391
 
@@ -1372,10 +1394,10 @@ return /******/ (function(modules) { // webpackBootstrap
1372
1394
  /* 17 */
1373
1395
  /***/ function(module, exports, __webpack_require__) {
1374
1396
 
1375
- var isLength = __webpack_require__(33),
1397
+ var isLength = __webpack_require__(35),
1376
1398
  isNative = __webpack_require__(30),
1377
1399
  isObject = __webpack_require__(25),
1378
- shimKeys = __webpack_require__(34);
1400
+ shimKeys = __webpack_require__(36);
1379
1401
 
1380
1402
  /* Native method references for those with the same name as other `lodash` methods. */
1381
1403
  var nativeKeys = isNative(nativeKeys = Object.keys) && nativeKeys;
@@ -1413,7 +1435,7 @@ return /******/ (function(modules) { // webpackBootstrap
1413
1435
  length = object.length;
1414
1436
  }
1415
1437
  if ((typeof Ctor == 'function' && Ctor.prototype === object) ||
1416
- (typeof object != 'function' && (length && isLength(length)))) {
1438
+ (typeof object != 'function' && (length && isLength(length)))) {
1417
1439
  return shimKeys(object);
1418
1440
  }
1419
1441
  return isObject(object) ? nativeKeys(object) : [];
@@ -1426,18 +1448,21 @@ return /******/ (function(modules) { // webpackBootstrap
1426
1448
  /* 18 */
1427
1449
  /***/ function(module, exports, __webpack_require__) {
1428
1450
 
1429
- var baseCallback = __webpack_require__(31),
1430
- baseFind = __webpack_require__(35),
1431
- baseForOwn = __webpack_require__(32);
1451
+ var baseForOwn = __webpack_require__(32),
1452
+ createFindKey = __webpack_require__(39);
1432
1453
 
1433
1454
  /**
1434
- * This method is like `_.findIndex` except that it returns the key of the
1435
- * first element `predicate` returns truthy for, instead of the element itself.
1455
+ * This method is like `_.find` except that it returns the key of the first
1456
+ * element `predicate` returns truthy for instead of the element itself.
1436
1457
  *
1437
- * If a property name is provided for `predicate` the created "_.property"
1458
+ * If a property name is provided for `predicate` the created `_.property`
1438
1459
  * style callback returns the property value of the given element.
1439
1460
  *
1440
- * If an object is provided for `predicate` the created "_.matches" style
1461
+ * If a value is also provided for `thisArg` the created `_.matchesProperty`
1462
+ * style callback returns `true` for elements that have a matching property
1463
+ * value, else `false`.
1464
+ *
1465
+ * If an object is provided for `predicate` the created `_.matches` style
1441
1466
  * callback returns `true` for elements that have the properties of the given
1442
1467
  * object, else `false`.
1443
1468
  *
@@ -1446,8 +1471,7 @@ return /******/ (function(modules) { // webpackBootstrap
1446
1471
  * @category Object
1447
1472
  * @param {Object} object The object to search.
1448
1473
  * @param {Function|Object|string} [predicate=_.identity] The function invoked
1449
- * per iteration. If a property name or object is provided it is used to
1450
- * create a "_.property" or "_.matches" style callback respectively.
1474
+ * per iteration.
1451
1475
  * @param {*} [thisArg] The `this` binding of `predicate`.
1452
1476
  * @returns {string|undefined} Returns the key of the matched element, else `undefined`.
1453
1477
  * @example
@@ -1458,21 +1482,24 @@ return /******/ (function(modules) { // webpackBootstrap
1458
1482
  * 'pebbles': { 'age': 1, 'active': true }
1459
1483
  * };
1460
1484
  *
1461
- * _.findKey(users, function(chr) { return chr.age < 40; });
1485
+ * _.findKey(users, function(chr) {
1486
+ * return chr.age < 40;
1487
+ * });
1462
1488
  * // => 'barney' (iteration order is not guaranteed)
1463
1489
  *
1464
- * // using the "_.matches" callback shorthand
1465
- * _.findKey(users, { 'age': 1 });
1490
+ * // using the `_.matches` callback shorthand
1491
+ * _.findKey(users, { 'age': 1, 'active': true });
1466
1492
  * // => 'pebbles'
1467
1493
  *
1468
- * // using the "_.property" callback shorthand
1494
+ * // using the `_.matchesProperty` callback shorthand
1495
+ * _.findKey(users, 'active', false);
1496
+ * // => 'fred'
1497
+ *
1498
+ * // using the `_.property` callback shorthand
1469
1499
  * _.findKey(users, 'active');
1470
1500
  * // => 'barney'
1471
1501
  */
1472
- function findKey(object, predicate, thisArg) {
1473
- predicate = baseCallback(predicate, thisArg, 3);
1474
- return baseFind(object, predicate, baseForOwn, true);
1475
- }
1502
+ var findKey = createFindKey(baseForOwn);
1476
1503
 
1477
1504
  module.exports = findKey;
1478
1505
 
@@ -1481,20 +1508,19 @@ return /******/ (function(modules) { // webpackBootstrap
1481
1508
  /* 19 */
1482
1509
  /***/ function(module, exports, __webpack_require__) {
1483
1510
 
1484
- var baseIndexOf = __webpack_require__(36),
1485
- cacheIndexOf = __webpack_require__(37),
1486
- createCache = __webpack_require__(38),
1487
- isArguments = __webpack_require__(39),
1488
- isArray = __webpack_require__(40);
1511
+ var baseIndexOf = __webpack_require__(40),
1512
+ cacheIndexOf = __webpack_require__(41),
1513
+ createCache = __webpack_require__(42),
1514
+ isArguments = __webpack_require__(43),
1515
+ isArray = __webpack_require__(44);
1489
1516
 
1490
1517
  /**
1491
1518
  * Creates an array of unique values in all provided arrays using `SameValueZero`
1492
1519
  * for equality comparisons.
1493
1520
  *
1494
- * **Note:** `SameValueZero` comparisons are like strict equality comparisons,
1495
- * e.g. `===`, except that `NaN` matches `NaN`. See the
1496
- * [ES spec](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero)
1497
- * for more details.
1521
+ * **Note:** [`SameValueZero`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero)
1522
+ * comparisons are like strict equality comparisons, e.g. `===`, except that
1523
+ * `NaN` matches `NaN`.
1498
1524
  *
1499
1525
  * @static
1500
1526
  * @memberOf _
@@ -1502,9 +1528,8 @@ return /******/ (function(modules) { // webpackBootstrap
1502
1528
  * @param {...Array} [arrays] The arrays to inspect.
1503
1529
  * @returns {Array} Returns the new array of shared values.
1504
1530
  * @example
1505
- *
1506
- * _.intersection([1, 2, 3], [5, 2, 1, 4], [2, 1]);
1507
- * // => [1, 2]
1531
+ * _.intersection([1, 2], [4, 2], [2, 1]);
1532
+ * // => [2]
1508
1533
  */
1509
1534
  function intersection() {
1510
1535
  var args = [],
@@ -1518,7 +1543,7 @@ return /******/ (function(modules) { // webpackBootstrap
1518
1543
  var value = arguments[argsIndex];
1519
1544
  if (isArray(value) || isArguments(value)) {
1520
1545
  args.push(value);
1521
- caches.push(isCommon && value.length >= 120 && createCache(argsIndex && value));
1546
+ caches.push((isCommon && value.length >= 120) ? createCache(argsIndex && value) : null);
1522
1547
  }
1523
1548
  }
1524
1549
  argsLength = args.length;
@@ -1531,11 +1556,11 @@ return /******/ (function(modules) { // webpackBootstrap
1531
1556
  outer:
1532
1557
  while (++index < length) {
1533
1558
  value = array[index];
1534
- if ((seen ? cacheIndexOf(seen, value) : indexOf(result, value)) < 0) {
1559
+ if ((seen ? cacheIndexOf(seen, value) : indexOf(result, value, 0)) < 0) {
1535
1560
  argsIndex = argsLength;
1536
1561
  while (--argsIndex) {
1537
1562
  var cache = caches[argsIndex];
1538
- if ((cache ? cacheIndexOf(cache, value) : indexOf(args[argsIndex], value)) < 0) {
1563
+ if ((cache ? cacheIndexOf(cache, value) : indexOf(args[argsIndex], value, 0)) < 0) {
1539
1564
  continue outer;
1540
1565
  }
1541
1566
  }
@@ -1555,10 +1580,10 @@ return /******/ (function(modules) { // webpackBootstrap
1555
1580
  /* 20 */
1556
1581
  /***/ function(module, exports, __webpack_require__) {
1557
1582
 
1558
- var baseCallback = __webpack_require__(31),
1559
- baseUniq = __webpack_require__(41),
1560
- isIterateeCall = __webpack_require__(29),
1561
- sortedUniq = __webpack_require__(42);
1583
+ var baseCallback = __webpack_require__(34),
1584
+ baseUniq = __webpack_require__(37),
1585
+ isIterateeCall = __webpack_require__(28),
1586
+ sortedUniq = __webpack_require__(38);
1562
1587
 
1563
1588
  /**
1564
1589
  * Creates a duplicate-value-free version of an array using `SameValueZero`
@@ -1566,19 +1591,22 @@ return /******/ (function(modules) { // webpackBootstrap
1566
1591
  * search algorithm for sorted arrays. If an iteratee function is provided it
1567
1592
  * is invoked for each value in the array to generate the criterion by which
1568
1593
  * uniqueness is computed. The `iteratee` is bound to `thisArg` and invoked
1569
- * with three arguments; (value, index, array).
1594
+ * with three arguments: (value, index, array).
1570
1595
  *
1571
- * If a property name is provided for `predicate` the created "_.property"
1596
+ * If a property name is provided for `iteratee` the created `_.property`
1572
1597
  * style callback returns the property value of the given element.
1573
1598
  *
1574
- * If an object is provided for `predicate` the created "_.matches" style
1599
+ * If a value is also provided for `thisArg` the created `_.matchesProperty`
1600
+ * style callback returns `true` for elements that have a matching property
1601
+ * value, else `false`.
1602
+ *
1603
+ * If an object is provided for `iteratee` the created `_.matches` style
1575
1604
  * callback returns `true` for elements that have the properties of the given
1576
1605
  * object, else `false`.
1577
1606
  *
1578
- * **Note:** `SameValueZero` comparisons are like strict equality comparisons,
1579
- * e.g. `===`, except that `NaN` matches `NaN`. See the
1580
- * [ES spec](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero)
1581
- * for more details.
1607
+ * **Note:** [`SameValueZero`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero)
1608
+ * comparisons are like strict equality comparisons, e.g. `===`, except that
1609
+ * `NaN` matches `NaN`.
1582
1610
  *
1583
1611
  * @static
1584
1612
  * @memberOf _
@@ -1587,8 +1615,6 @@ return /******/ (function(modules) { // webpackBootstrap
1587
1615
  * @param {Array} array The array to inspect.
1588
1616
  * @param {boolean} [isSorted] Specify the array is sorted.
1589
1617
  * @param {Function|Object|string} [iteratee] The function invoked per iteration.
1590
- * If a property name or object is provided it is used to create a "_.property"
1591
- * or "_.matches" style callback respectively.
1592
1618
  * @param {*} [thisArg] The `this` binding of `iteratee`.
1593
1619
  * @returns {Array} Returns the new duplicate-value-free array.
1594
1620
  * @example
@@ -1601,10 +1627,12 @@ return /******/ (function(modules) { // webpackBootstrap
1601
1627
  * // => [1, 2]
1602
1628
  *
1603
1629
  * // using an iteratee function
1604
- * _.uniq([1, 2.5, 1.5, 2], function(n) { return this.floor(n); }, Math);
1630
+ * _.uniq([1, 2.5, 1.5, 2], function(n) {
1631
+ * return this.floor(n);
1632
+ * }, Math);
1605
1633
  * // => [1, 2.5]
1606
1634
  *
1607
- * // using the "_.property" callback shorthand
1635
+ * // using the `_.property` callback shorthand
1608
1636
  * _.uniq([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');
1609
1637
  * // => [{ 'x': 1 }, { 'x': 2 }]
1610
1638
  */
@@ -1613,8 +1641,7 @@ return /******/ (function(modules) { // webpackBootstrap
1613
1641
  if (!length) {
1614
1642
  return [];
1615
1643
  }
1616
- // Juggle arguments.
1617
- if (typeof isSorted != 'boolean' && isSorted != null) {
1644
+ if (isSorted != null && typeof isSorted != 'boolean') {
1618
1645
  thisArg = iteratee;
1619
1646
  iteratee = isIterateeCall(array, isSorted, thisArg) ? null : isSorted;
1620
1647
  isSorted = false;
@@ -1632,47 +1659,64 @@ return /******/ (function(modules) { // webpackBootstrap
1632
1659
  /* 21 */
1633
1660
  /***/ function(module, exports, __webpack_require__) {
1634
1661
 
1635
- var arrayMap = __webpack_require__(43),
1636
- baseCallback = __webpack_require__(31),
1637
- baseMap = __webpack_require__(44),
1638
- isArray = __webpack_require__(40);
1662
+ var arrayMap = __webpack_require__(45),
1663
+ baseCallback = __webpack_require__(34),
1664
+ baseMap = __webpack_require__(46),
1665
+ isArray = __webpack_require__(44);
1639
1666
 
1640
1667
  /**
1641
1668
  * Creates an array of values by running each element in `collection` through
1642
1669
  * `iteratee`. The `iteratee` is bound to `thisArg` and invoked with three
1643
- * arguments; (value, index|key, collection).
1670
+ * arguments: (value, index|key, collection).
1644
1671
  *
1645
- * If a property name is provided for `predicate` the created "_.property"
1672
+ * If a property name is provided for `iteratee` the created `_.property`
1646
1673
  * style callback returns the property value of the given element.
1647
1674
  *
1648
- * If an object is provided for `predicate` the created "_.matches" style
1675
+ * If a value is also provided for `thisArg` the created `_.matchesProperty`
1676
+ * style callback returns `true` for elements that have a matching property
1677
+ * value, else `false`.
1678
+ *
1679
+ * If an object is provided for `iteratee` the created `_.matches` style
1649
1680
  * callback returns `true` for elements that have the properties of the given
1650
1681
  * object, else `false`.
1651
1682
  *
1683
+ * Many lodash methods are guarded to work as interatees for methods like
1684
+ * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.
1685
+ *
1686
+ * The guarded methods are:
1687
+ * `ary`, `callback`, `chunk`, `clone`, `create`, `curry`, `curryRight`, `drop`,
1688
+ * `dropRight`, `every`, `fill`, `flatten`, `invert`, `max`, `min`, `parseInt`,
1689
+ * `slice`, `sortBy`, `take`, `takeRight`, `template`, `trim`, `trimLeft`,
1690
+ * `trimRight`, `trunc`, `random`, `range`, `sample`, `some`, `uniq`, and `words`
1691
+ *
1652
1692
  * @static
1653
1693
  * @memberOf _
1654
1694
  * @alias collect
1655
1695
  * @category Collection
1656
1696
  * @param {Array|Object|string} collection The collection to iterate over.
1657
1697
  * @param {Function|Object|string} [iteratee=_.identity] The function invoked
1658
- * per iteration. If a property name or object is provided it is used to
1659
- * create a "_.property" or "_.matches" style callback respectively.
1698
+ * per iteration.
1699
+ * create a `_.property` or `_.matches` style callback respectively.
1660
1700
  * @param {*} [thisArg] The `this` binding of `iteratee`.
1661
1701
  * @returns {Array} Returns the new mapped array.
1662
1702
  * @example
1663
1703
  *
1664
- * _.map([1, 2, 3], function(n) { return n * 3; });
1665
- * // => [3, 6, 9]
1704
+ * function timesThree(n) {
1705
+ * return n * 3;
1706
+ * }
1707
+ *
1708
+ * _.map([1, 2], timesThree);
1709
+ * // => [3, 6]
1666
1710
  *
1667
- * _.map({ 'one': 1, 'two': 2, 'three': 3 }, function(n) { return n * 3; });
1668
- * // => [3, 6, 9] (iteration order is not guaranteed)
1711
+ * _.map({ 'a': 1, 'b': 2 }, timesThree);
1712
+ * // => [3, 6] (iteration order is not guaranteed)
1669
1713
  *
1670
1714
  * var users = [
1671
1715
  * { 'user': 'barney' },
1672
1716
  * { 'user': 'fred' }
1673
1717
  * ];
1674
1718
  *
1675
- * // using the "_.property" callback shorthand
1719
+ * // using the `_.property` callback shorthand
1676
1720
  * _.map(users, 'user');
1677
1721
  * // => ['barney', 'fred']
1678
1722
  */
@@ -1689,14 +1733,13 @@ return /******/ (function(modules) { // webpackBootstrap
1689
1733
  /* 22 */
1690
1734
  /***/ function(module, exports, __webpack_require__) {
1691
1735
 
1692
- var arrayEach = __webpack_require__(45),
1693
- baseEach = __webpack_require__(46),
1694
- bindCallback = __webpack_require__(28),
1695
- isArray = __webpack_require__(40);
1736
+ var arrayEach = __webpack_require__(47),
1737
+ baseEach = __webpack_require__(48),
1738
+ createForEach = __webpack_require__(49);
1696
1739
 
1697
1740
  /**
1698
1741
  * Iterates over elements of `collection` invoking `iteratee` for each element.
1699
- * The `iteratee` is bound to `thisArg` and invoked with three arguments;
1742
+ * The `iteratee` is bound to `thisArg` and invoked with three arguments:
1700
1743
  * (value, index|key, collection). Iterator functions may exit iteration early
1701
1744
  * by explicitly returning `false`.
1702
1745
  *
@@ -1714,17 +1757,17 @@ return /******/ (function(modules) { // webpackBootstrap
1714
1757
  * @returns {Array|Object|string} Returns `collection`.
1715
1758
  * @example
1716
1759
  *
1717
- * _([1, 2, 3]).forEach(function(n) { console.log(n); }).value();
1760
+ * _([1, 2]).forEach(function(n) {
1761
+ * console.log(n);
1762
+ * }).value();
1718
1763
  * // => logs each value from left to right and returns the array
1719
1764
  *
1720
- * _.forEach({ 'one': 1, 'two': 2, 'three': 3 }, function(n, key) { console.log(n, key); });
1765
+ * _.forEach({ 'a': 1, 'b': 2 }, function(n, key) {
1766
+ * console.log(n, key);
1767
+ * });
1721
1768
  * // => logs each value-key pair and returns the object (iteration order is not guaranteed)
1722
1769
  */
1723
- function forEach(collection, iteratee, thisArg) {
1724
- return (typeof iteratee == 'function' && typeof thisArg == 'undefined' && isArray(collection))
1725
- ? arrayEach(collection, iteratee)
1726
- : baseEach(collection, bindCallback(iteratee, thisArg, 3));
1727
- }
1770
+ var forEach = createForEach(arrayEach, baseEach);
1728
1771
 
1729
1772
  module.exports = forEach;
1730
1773
 
@@ -1733,12 +1776,12 @@ return /******/ (function(modules) { // webpackBootstrap
1733
1776
  /* 23 */
1734
1777
  /***/ function(module, exports, __webpack_require__) {
1735
1778
 
1736
- var isLength = __webpack_require__(33),
1779
+ var isLength = __webpack_require__(35),
1737
1780
  keys = __webpack_require__(17);
1738
1781
 
1739
1782
  /**
1740
- * Gets the size of `collection` by returning `collection.length` for
1741
- * array-like values or the number of own enumerable properties for objects.
1783
+ * Gets the size of `collection` by returning its length for array-like
1784
+ * values or the number of own enumerable properties for objects.
1742
1785
  *
1743
1786
  * @static
1744
1787
  * @memberOf _
@@ -1747,12 +1790,12 @@ return /******/ (function(modules) { // webpackBootstrap
1747
1790
  * @returns {number} Returns the size of `collection`.
1748
1791
  * @example
1749
1792
  *
1750
- * _.size([1, 2]);
1751
- * // => 2
1752
- *
1753
- * _.size({ 'one': 1, 'two': 2, 'three': 3 });
1793
+ * _.size([1, 2, 3]);
1754
1794
  * // => 3
1755
1795
  *
1796
+ * _.size({ 'a': 1, 'b': 2 });
1797
+ * // => 2
1798
+ *
1756
1799
  * _.size('pebbles');
1757
1800
  * // => 7
1758
1801
  */
@@ -1768,20 +1811,24 @@ return /******/ (function(modules) { // webpackBootstrap
1768
1811
  /* 24 */
1769
1812
  /***/ function(module, exports, __webpack_require__) {
1770
1813
 
1771
- var arrayReduce = __webpack_require__(47),
1772
- baseCallback = __webpack_require__(31),
1773
- baseEach = __webpack_require__(46),
1774
- baseReduce = __webpack_require__(48),
1775
- isArray = __webpack_require__(40);
1814
+ var arrayReduce = __webpack_require__(50),
1815
+ baseEach = __webpack_require__(48),
1816
+ createReduce = __webpack_require__(51);
1776
1817
 
1777
1818
  /**
1778
1819
  * Reduces `collection` to a value which is the accumulated result of running
1779
1820
  * each element in `collection` through `iteratee`, where each successive
1780
1821
  * invocation is supplied the return value of the previous. If `accumulator`
1781
1822
  * is not provided the first element of `collection` is used as the initial
1782
- * value. The `iteratee` is bound to `thisArg`and invoked with four arguments;
1823
+ * value. The `iteratee` is bound to `thisArg` and invoked with four arguments:
1783
1824
  * (accumulator, value, index|key, collection).
1784
1825
  *
1826
+ * Many lodash methods are guarded to work as interatees for methods like
1827
+ * `_.reduce`, `_.reduceRight`, and `_.transform`.
1828
+ *
1829
+ * The guarded methods are:
1830
+ * `assign`, `defaults`, `includes`, `merge`, `sortByAll`, and `sortByOrder`
1831
+ *
1785
1832
  * @static
1786
1833
  * @memberOf _
1787
1834
  * @alias foldl, inject
@@ -1793,19 +1840,18 @@ return /******/ (function(modules) { // webpackBootstrap
1793
1840
  * @returns {*} Returns the accumulated value.
1794
1841
  * @example
1795
1842
  *
1796
- * var sum = _.reduce([1, 2, 3], function(sum, n) { return sum + n; });
1797
- * // => 6
1843
+ * _.reduce([1, 2], function(sum, n) {
1844
+ * return sum + n;
1845
+ * });
1846
+ * // => 3
1798
1847
  *
1799
- * var mapped = _.reduce({ 'a': 1, 'b': 2, 'c': 3 }, function(result, n, key) {
1848
+ * _.reduce({ 'a': 1, 'b': 2 }, function(result, n, key) {
1800
1849
  * result[key] = n * 3;
1801
1850
  * return result;
1802
1851
  * }, {});
1803
- * // => { 'a': 3, 'b': 6, 'c': 9 } (iteration order is not guaranteed)
1852
+ * // => { 'a': 3, 'b': 6 } (iteration order is not guaranteed)
1804
1853
  */
1805
- function reduce(collection, iteratee, accumulator, thisArg) {
1806
- var func = isArray(collection) ? arrayReduce : baseReduce;
1807
- return func(collection, baseCallback(iteratee, thisArg, 4), accumulator, arguments.length < 3, baseEach);
1808
- }
1854
+ var reduce = createReduce(arrayReduce, baseEach);
1809
1855
 
1810
1856
  module.exports = reduce;
1811
1857
 
@@ -1815,11 +1861,9 @@ return /******/ (function(modules) { // webpackBootstrap
1815
1861
  /***/ function(module, exports, __webpack_require__) {
1816
1862
 
1817
1863
  /**
1818
- * Checks if `value` is the language type of `Object`.
1864
+ * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
1819
1865
  * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
1820
1866
  *
1821
- * **Note:** See the [ES5 spec](https://es5.github.io/#x8) for more details.
1822
- *
1823
1867
  * @static
1824
1868
  * @memberOf _
1825
1869
  * @category Lang
@@ -1840,7 +1884,7 @@ return /******/ (function(modules) { // webpackBootstrap
1840
1884
  // Avoid a V8 JIT bug in Chrome 19-20.
1841
1885
  // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
1842
1886
  var type = typeof value;
1843
- return type == 'function' || (value && type == 'object') || false;
1887
+ return type == 'function' || (!!value && type == 'object');
1844
1888
  }
1845
1889
 
1846
1890
  module.exports = isObject;
@@ -1850,32 +1894,14 @@ return /******/ (function(modules) { // webpackBootstrap
1850
1894
  /* 26 */
1851
1895
  /***/ function(module, exports, __webpack_require__) {
1852
1896
 
1853
- /**
1854
- * Checks if `value` is object-like.
1855
- *
1856
- * @private
1857
- * @param {*} value The value to check.
1858
- * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
1859
- */
1860
- function isObjectLike(value) {
1861
- return (value && typeof value == 'object') || false;
1862
- }
1863
-
1864
- module.exports = isObjectLike;
1865
-
1866
-
1867
- /***/ },
1868
- /* 27 */
1869
- /***/ function(module, exports, __webpack_require__) {
1870
-
1871
- var arrayCopy = __webpack_require__(49),
1872
- arrayEach = __webpack_require__(45),
1873
- baseCopy = __webpack_require__(50),
1897
+ var arrayCopy = __webpack_require__(52),
1898
+ arrayEach = __webpack_require__(47),
1899
+ baseCopy = __webpack_require__(53),
1874
1900
  baseForOwn = __webpack_require__(32),
1875
- initCloneArray = __webpack_require__(51),
1876
- initCloneByTag = __webpack_require__(52),
1877
- initCloneObject = __webpack_require__(53),
1878
- isArray = __webpack_require__(40),
1901
+ initCloneArray = __webpack_require__(54),
1902
+ initCloneByTag = __webpack_require__(55),
1903
+ initCloneObject = __webpack_require__(56),
1904
+ isArray = __webpack_require__(44),
1879
1905
  isObject = __webpack_require__(25),
1880
1906
  keys = __webpack_require__(17);
1881
1907
 
@@ -1924,9 +1950,8 @@ return /******/ (function(modules) { // webpackBootstrap
1924
1950
  var objectProto = Object.prototype;
1925
1951
 
1926
1952
  /**
1927
- * Used to resolve the `toStringTag` of values.
1928
- * See the [ES spec](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
1929
- * for more details.
1953
+ * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
1954
+ * of values.
1930
1955
  */
1931
1956
  var objToString = objectProto.toString;
1932
1957
 
@@ -2001,10 +2026,10 @@ return /******/ (function(modules) { // webpackBootstrap
2001
2026
 
2002
2027
 
2003
2028
  /***/ },
2004
- /* 28 */
2029
+ /* 27 */
2005
2030
  /***/ function(module, exports, __webpack_require__) {
2006
2031
 
2007
- var identity = __webpack_require__(54);
2032
+ var identity = __webpack_require__(57);
2008
2033
 
2009
2034
  /**
2010
2035
  * A specialized version of `baseCallback` which only supports `this` binding
@@ -2046,11 +2071,11 @@ return /******/ (function(modules) { // webpackBootstrap
2046
2071
 
2047
2072
 
2048
2073
  /***/ },
2049
- /* 29 */
2074
+ /* 28 */
2050
2075
  /***/ function(module, exports, __webpack_require__) {
2051
2076
 
2052
- var isIndex = __webpack_require__(55),
2053
- isLength = __webpack_require__(33),
2077
+ var isIndex = __webpack_require__(58),
2078
+ isLength = __webpack_require__(35),
2054
2079
  isObject = __webpack_require__(25);
2055
2080
 
2056
2081
  /**
@@ -2071,20 +2096,45 @@ return /******/ (function(modules) { // webpackBootstrap
2071
2096
  var length = object.length,
2072
2097
  prereq = isLength(length) && isIndex(index, length);
2073
2098
  } else {
2074
- prereq = type == 'string' && index in value;
2099
+ prereq = type == 'string' && index in object;
2075
2100
  }
2076
- return prereq && object[index] === value;
2101
+ if (prereq) {
2102
+ var other = object[index];
2103
+ return value === value ? (value === other) : (other !== other);
2104
+ }
2105
+ return false;
2077
2106
  }
2078
2107
 
2079
2108
  module.exports = isIterateeCall;
2080
2109
 
2081
2110
 
2111
+ /***/ },
2112
+ /* 29 */
2113
+ /***/ function(module, exports, __webpack_require__) {
2114
+
2115
+ /**
2116
+ * The base implementation of `_.isFunction` without support for environments
2117
+ * with incorrect `typeof` results.
2118
+ *
2119
+ * @private
2120
+ * @param {*} value The value to check.
2121
+ * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
2122
+ */
2123
+ function baseIsFunction(value) {
2124
+ // Avoid a Chakra JIT bug in compatibility modes of IE 11.
2125
+ // See https://github.com/jashkenas/underscore/issues/1621 for more details.
2126
+ return typeof value == 'function' || false;
2127
+ }
2128
+
2129
+ module.exports = baseIsFunction;
2130
+
2131
+
2082
2132
  /***/ },
2083
2133
  /* 30 */
2084
2134
  /***/ function(module, exports, __webpack_require__) {
2085
2135
 
2086
- var escapeRegExp = __webpack_require__(56),
2087
- isObjectLike = __webpack_require__(26);
2136
+ var escapeRegExp = __webpack_require__(59),
2137
+ isObjectLike = __webpack_require__(31);
2088
2138
 
2089
2139
  /** `Object#toString` result references. */
2090
2140
  var funcTag = '[object Function]';
@@ -2099,9 +2149,8 @@ return /******/ (function(modules) { // webpackBootstrap
2099
2149
  var fnToString = Function.prototype.toString;
2100
2150
 
2101
2151
  /**
2102
- * Used to resolve the `toStringTag` of values.
2103
- * See the [ES spec](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
2104
- * for more details.
2152
+ * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
2153
+ * of values.
2105
2154
  */
2106
2155
  var objToString = objectProto.toString;
2107
2156
 
@@ -2134,7 +2183,7 @@ return /******/ (function(modules) { // webpackBootstrap
2134
2183
  if (objToString.call(value) == funcTag) {
2135
2184
  return reNative.test(fnToString.call(value));
2136
2185
  }
2137
- return (isObjectLike(value) && reHostCtor.test(value)) || false;
2186
+ return isObjectLike(value) && reHostCtor.test(value);
2138
2187
  }
2139
2188
 
2140
2189
  module.exports = isNative;
@@ -2144,39 +2193,18 @@ return /******/ (function(modules) { // webpackBootstrap
2144
2193
  /* 31 */
2145
2194
  /***/ function(module, exports, __webpack_require__) {
2146
2195
 
2147
- var baseMatches = __webpack_require__(57),
2148
- baseProperty = __webpack_require__(58),
2149
- bindCallback = __webpack_require__(28),
2150
- identity = __webpack_require__(54),
2151
- isBindable = __webpack_require__(59);
2152
-
2153
2196
  /**
2154
- * The base implementation of `_.callback` which supports specifying the
2155
- * number of arguments to provide to `func`.
2197
+ * Checks if `value` is object-like.
2156
2198
  *
2157
2199
  * @private
2158
- * @param {*} [func=_.identity] The value to convert to a callback.
2159
- * @param {*} [thisArg] The `this` binding of `func`.
2160
- * @param {number} [argCount] The number of arguments to provide to `func`.
2161
- * @returns {Function} Returns the callback.
2200
+ * @param {*} value The value to check.
2201
+ * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
2162
2202
  */
2163
- function baseCallback(func, thisArg, argCount) {
2164
- var type = typeof func;
2165
- if (type == 'function') {
2166
- return (typeof thisArg != 'undefined' && isBindable(func))
2167
- ? bindCallback(func, thisArg, argCount)
2168
- : func;
2169
- }
2170
- if (func == null) {
2171
- return identity;
2172
- }
2173
- // Handle "_.property" and "_.matches" style callback shorthands.
2174
- return type == 'object'
2175
- ? baseMatches(func, !argCount)
2176
- : baseProperty(func + '');
2203
+ function isObjectLike(value) {
2204
+ return !!value && typeof value == 'object';
2177
2205
  }
2178
2206
 
2179
- module.exports = baseCallback;
2207
+ module.exports = isObjectLike;
2180
2208
 
2181
2209
 
2182
2210
  /***/ },
@@ -2206,16 +2234,83 @@ return /******/ (function(modules) { // webpackBootstrap
2206
2234
  /* 33 */
2207
2235
  /***/ function(module, exports, __webpack_require__) {
2208
2236
 
2237
+ var bindCallback = __webpack_require__(27);
2238
+
2209
2239
  /**
2210
- * Used as the maximum length of an array-like value.
2211
- * See the [ES spec](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength)
2212
- * for more details.
2240
+ * Creates a function for `_.forOwn` or `_.forOwnRight`.
2241
+ *
2242
+ * @private
2243
+ * @param {Function} objectFunc The function to iterate over an object.
2244
+ * @returns {Function} Returns the new each function.
2245
+ */
2246
+ function createForOwn(objectFunc) {
2247
+ return function(object, iteratee, thisArg) {
2248
+ if (typeof iteratee != 'function' || typeof thisArg != 'undefined') {
2249
+ iteratee = bindCallback(iteratee, thisArg, 3);
2250
+ }
2251
+ return objectFunc(object, iteratee);
2252
+ };
2253
+ }
2254
+
2255
+ module.exports = createForOwn;
2256
+
2257
+
2258
+ /***/ },
2259
+ /* 34 */
2260
+ /***/ function(module, exports, __webpack_require__) {
2261
+
2262
+ var baseMatches = __webpack_require__(61),
2263
+ baseMatchesProperty = __webpack_require__(62),
2264
+ baseProperty = __webpack_require__(63),
2265
+ bindCallback = __webpack_require__(27),
2266
+ identity = __webpack_require__(57);
2267
+
2268
+ /**
2269
+ * The base implementation of `_.callback` which supports specifying the
2270
+ * number of arguments to provide to `func`.
2271
+ *
2272
+ * @private
2273
+ * @param {*} [func=_.identity] The value to convert to a callback.
2274
+ * @param {*} [thisArg] The `this` binding of `func`.
2275
+ * @param {number} [argCount] The number of arguments to provide to `func`.
2276
+ * @returns {Function} Returns the callback.
2277
+ */
2278
+ function baseCallback(func, thisArg, argCount) {
2279
+ var type = typeof func;
2280
+ if (type == 'function') {
2281
+ return typeof thisArg == 'undefined'
2282
+ ? func
2283
+ : bindCallback(func, thisArg, argCount);
2284
+ }
2285
+ if (func == null) {
2286
+ return identity;
2287
+ }
2288
+ if (type == 'object') {
2289
+ return baseMatches(func);
2290
+ }
2291
+ return typeof thisArg == 'undefined'
2292
+ ? baseProperty(func + '')
2293
+ : baseMatchesProperty(func + '', thisArg);
2294
+ }
2295
+
2296
+ module.exports = baseCallback;
2297
+
2298
+
2299
+ /***/ },
2300
+ /* 35 */
2301
+ /***/ function(module, exports, __webpack_require__) {
2302
+
2303
+ /**
2304
+ * Used as the [maximum length](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.max_safe_integer)
2305
+ * of an array-like value.
2213
2306
  */
2214
2307
  var MAX_SAFE_INTEGER = Math.pow(2, 53) - 1;
2215
2308
 
2216
2309
  /**
2217
2310
  * Checks if `value` is a valid array-like length.
2218
2311
  *
2312
+ * **Note:** This function is based on [`ToLength`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength).
2313
+ *
2219
2314
  * @private
2220
2315
  * @param {*} value The value to check.
2221
2316
  * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
@@ -2228,15 +2323,15 @@ return /******/ (function(modules) { // webpackBootstrap
2228
2323
 
2229
2324
 
2230
2325
  /***/ },
2231
- /* 34 */
2326
+ /* 36 */
2232
2327
  /***/ function(module, exports, __webpack_require__) {
2233
2328
 
2234
- var isArguments = __webpack_require__(39),
2235
- isArray = __webpack_require__(40),
2236
- isIndex = __webpack_require__(55),
2237
- isLength = __webpack_require__(33),
2238
- keysIn = __webpack_require__(61),
2239
- support = __webpack_require__(62);
2329
+ var isArguments = __webpack_require__(43),
2330
+ isArray = __webpack_require__(44),
2331
+ isIndex = __webpack_require__(58),
2332
+ isLength = __webpack_require__(35),
2333
+ keysIn = __webpack_require__(64),
2334
+ support = __webpack_require__(65);
2240
2335
 
2241
2336
  /** Used for native method references. */
2242
2337
  var objectProto = Object.prototype;
@@ -2276,41 +2371,132 @@ return /******/ (function(modules) { // webpackBootstrap
2276
2371
 
2277
2372
 
2278
2373
  /***/ },
2279
- /* 35 */
2374
+ /* 37 */
2280
2375
  /***/ function(module, exports, __webpack_require__) {
2281
2376
 
2377
+ var baseIndexOf = __webpack_require__(40),
2378
+ cacheIndexOf = __webpack_require__(41),
2379
+ createCache = __webpack_require__(42);
2380
+
2282
2381
  /**
2283
- * The base implementation of `_.find`, `_.findLast`, `_.findKey`, and `_.findLastKey`,
2284
- * without support for callback shorthands and `this` binding, which iterates
2285
- * over `collection` using the provided `eachFunc`.
2382
+ * The base implementation of `_.uniq` without support for callback shorthands
2383
+ * and `this` binding.
2286
2384
  *
2287
2385
  * @private
2288
- * @param {Array|Object|string} collection The collection to search.
2289
- * @param {Function} predicate The function invoked per iteration.
2290
- * @param {Function} eachFunc The function to iterate over `collection`.
2291
- * @param {boolean} [retKey] Specify returning the key of the found element
2292
- * instead of the element itself.
2293
- * @returns {*} Returns the found element or its key, else `undefined`.
2386
+ * @param {Array} array The array to inspect.
2387
+ * @param {Function} [iteratee] The function invoked per iteration.
2388
+ * @returns {Array} Returns the new duplicate-value-free array.
2294
2389
  */
2295
- function baseFind(collection, predicate, eachFunc, retKey) {
2296
- var result;
2297
- eachFunc(collection, function(value, key, collection) {
2298
- if (predicate(value, key, collection)) {
2299
- result = retKey ? key : value;
2300
- return false;
2301
- }
2302
- });
2303
- return result;
2304
- }
2390
+ function baseUniq(array, iteratee) {
2391
+ var index = -1,
2392
+ indexOf = baseIndexOf,
2393
+ length = array.length,
2394
+ isCommon = true,
2395
+ isLarge = isCommon && length >= 200,
2396
+ seen = isLarge ? createCache() : null,
2397
+ result = [];
2305
2398
 
2306
- module.exports = baseFind;
2307
-
2308
-
2309
- /***/ },
2310
- /* 36 */
2399
+ if (seen) {
2400
+ indexOf = cacheIndexOf;
2401
+ isCommon = false;
2402
+ } else {
2403
+ isLarge = false;
2404
+ seen = iteratee ? [] : result;
2405
+ }
2406
+ outer:
2407
+ while (++index < length) {
2408
+ var value = array[index],
2409
+ computed = iteratee ? iteratee(value, index, array) : value;
2410
+
2411
+ if (isCommon && value === value) {
2412
+ var seenIndex = seen.length;
2413
+ while (seenIndex--) {
2414
+ if (seen[seenIndex] === computed) {
2415
+ continue outer;
2416
+ }
2417
+ }
2418
+ if (iteratee) {
2419
+ seen.push(computed);
2420
+ }
2421
+ result.push(value);
2422
+ }
2423
+ else if (indexOf(seen, computed, 0) < 0) {
2424
+ if (iteratee || isLarge) {
2425
+ seen.push(computed);
2426
+ }
2427
+ result.push(value);
2428
+ }
2429
+ }
2430
+ return result;
2431
+ }
2432
+
2433
+ module.exports = baseUniq;
2434
+
2435
+
2436
+ /***/ },
2437
+ /* 38 */
2438
+ /***/ function(module, exports, __webpack_require__) {
2439
+
2440
+ /**
2441
+ * An implementation of `_.uniq` optimized for sorted arrays without support
2442
+ * for callback shorthands and `this` binding.
2443
+ *
2444
+ * @private
2445
+ * @param {Array} array The array to inspect.
2446
+ * @param {Function} [iteratee] The function invoked per iteration.
2447
+ * @returns {Array} Returns the new duplicate-value-free array.
2448
+ */
2449
+ function sortedUniq(array, iteratee) {
2450
+ var seen,
2451
+ index = -1,
2452
+ length = array.length,
2453
+ resIndex = -1,
2454
+ result = [];
2455
+
2456
+ while (++index < length) {
2457
+ var value = array[index],
2458
+ computed = iteratee ? iteratee(value, index, array) : value;
2459
+
2460
+ if (!index || seen !== computed) {
2461
+ seen = computed;
2462
+ result[++resIndex] = value;
2463
+ }
2464
+ }
2465
+ return result;
2466
+ }
2467
+
2468
+ module.exports = sortedUniq;
2469
+
2470
+
2471
+ /***/ },
2472
+ /* 39 */
2311
2473
  /***/ function(module, exports, __webpack_require__) {
2312
2474
 
2313
- var indexOfNaN = __webpack_require__(63);
2475
+ var baseCallback = __webpack_require__(34),
2476
+ baseFind = __webpack_require__(66);
2477
+
2478
+ /**
2479
+ * Creates a `_.findKey` or `_.findLastKey` function.
2480
+ *
2481
+ * @private
2482
+ * @param {Function} objectFunc The function to iterate over an object.
2483
+ * @returns {Function} Returns the new find function.
2484
+ */
2485
+ function createFindKey(objectFunc) {
2486
+ return function(object, predicate, thisArg) {
2487
+ predicate = baseCallback(predicate, thisArg, 3);
2488
+ return baseFind(object, predicate, objectFunc, true);
2489
+ };
2490
+ }
2491
+
2492
+ module.exports = createFindKey;
2493
+
2494
+
2495
+ /***/ },
2496
+ /* 40 */
2497
+ /***/ function(module, exports, __webpack_require__) {
2498
+
2499
+ var indexOfNaN = __webpack_require__(67);
2314
2500
 
2315
2501
  /**
2316
2502
  * The base implementation of `_.indexOf` without support for binary searches.
@@ -2318,14 +2504,14 @@ return /******/ (function(modules) { // webpackBootstrap
2318
2504
  * @private
2319
2505
  * @param {Array} array The array to search.
2320
2506
  * @param {*} value The value to search for.
2321
- * @param {number} [fromIndex=0] The index to search from.
2507
+ * @param {number} fromIndex The index to search from.
2322
2508
  * @returns {number} Returns the index of the matched value, else `-1`.
2323
2509
  */
2324
2510
  function baseIndexOf(array, value, fromIndex) {
2325
2511
  if (value !== value) {
2326
2512
  return indexOfNaN(array, fromIndex);
2327
2513
  }
2328
- var index = (fromIndex || 0) - 1,
2514
+ var index = fromIndex - 1,
2329
2515
  length = array.length;
2330
2516
 
2331
2517
  while (++index < length) {
@@ -2340,7 +2526,7 @@ return /******/ (function(modules) { // webpackBootstrap
2340
2526
 
2341
2527
 
2342
2528
  /***/ },
2343
- /* 37 */
2529
+ /* 41 */
2344
2530
  /***/ function(module, exports, __webpack_require__) {
2345
2531
 
2346
2532
  var isObject = __webpack_require__(25);
@@ -2365,11 +2551,11 @@ return /******/ (function(modules) { // webpackBootstrap
2365
2551
 
2366
2552
 
2367
2553
  /***/ },
2368
- /* 38 */
2554
+ /* 42 */
2369
2555
  /***/ function(module, exports, __webpack_require__) {
2370
2556
 
2371
- /* WEBPACK VAR INJECTION */(function(global) {var SetCache = __webpack_require__(64),
2372
- constant = __webpack_require__(65),
2557
+ /* WEBPACK VAR INJECTION */(function(global) {var SetCache = __webpack_require__(68),
2558
+ constant = __webpack_require__(69),
2373
2559
  isNative = __webpack_require__(30);
2374
2560
 
2375
2561
  /** Native method references. */
@@ -2394,11 +2580,11 @@ return /******/ (function(modules) { // webpackBootstrap
2394
2580
  /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))
2395
2581
 
2396
2582
  /***/ },
2397
- /* 39 */
2583
+ /* 43 */
2398
2584
  /***/ function(module, exports, __webpack_require__) {
2399
2585
 
2400
- var isLength = __webpack_require__(33),
2401
- isObjectLike = __webpack_require__(26);
2586
+ var isLength = __webpack_require__(35),
2587
+ isObjectLike = __webpack_require__(31);
2402
2588
 
2403
2589
  /** `Object#toString` result references. */
2404
2590
  var argsTag = '[object Arguments]';
@@ -2407,9 +2593,8 @@ return /******/ (function(modules) { // webpackBootstrap
2407
2593
  var objectProto = Object.prototype;
2408
2594
 
2409
2595
  /**
2410
- * Used to resolve the `toStringTag` of values.
2411
- * See the [ES spec](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
2412
- * for more details.
2596
+ * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
2597
+ * of values.
2413
2598
  */
2414
2599
  var objToString = objectProto.toString;
2415
2600
 
@@ -2423,7 +2608,7 @@ return /******/ (function(modules) { // webpackBootstrap
2423
2608
  * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
2424
2609
  * @example
2425
2610
  *
2426
- * (function() { return _.isArguments(arguments); })();
2611
+ * _.isArguments(function() { return arguments; }());
2427
2612
  * // => true
2428
2613
  *
2429
2614
  * _.isArguments([1, 2, 3]);
@@ -2431,19 +2616,19 @@ return /******/ (function(modules) { // webpackBootstrap
2431
2616
  */
2432
2617
  function isArguments(value) {
2433
2618
  var length = isObjectLike(value) ? value.length : undefined;
2434
- return (isLength(length) && objToString.call(value) == argsTag) || false;
2619
+ return isLength(length) && objToString.call(value) == argsTag;
2435
2620
  }
2436
2621
 
2437
2622
  module.exports = isArguments;
2438
2623
 
2439
2624
 
2440
2625
  /***/ },
2441
- /* 40 */
2626
+ /* 44 */
2442
2627
  /***/ function(module, exports, __webpack_require__) {
2443
2628
 
2444
- var isLength = __webpack_require__(33),
2629
+ var isLength = __webpack_require__(35),
2445
2630
  isNative = __webpack_require__(30),
2446
- isObjectLike = __webpack_require__(26);
2631
+ isObjectLike = __webpack_require__(31);
2447
2632
 
2448
2633
  /** `Object#toString` result references. */
2449
2634
  var arrayTag = '[object Array]';
@@ -2452,9 +2637,8 @@ return /******/ (function(modules) { // webpackBootstrap
2452
2637
  var objectProto = Object.prototype;
2453
2638
 
2454
2639
  /**
2455
- * Used to resolve the `toStringTag` of values.
2456
- * See the [ES spec](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
2457
- * for more details.
2640
+ * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
2641
+ * of values.
2458
2642
  */
2459
2643
  var objToString = objectProto.toString;
2460
2644
 
@@ -2474,121 +2658,23 @@ return /******/ (function(modules) { // webpackBootstrap
2474
2658
  * _.isArray([1, 2, 3]);
2475
2659
  * // => true
2476
2660
  *
2477
- * (function() { return _.isArray(arguments); })();
2661
+ * _.isArray(function() { return arguments; }());
2478
2662
  * // => false
2479
2663
  */
2480
2664
  var isArray = nativeIsArray || function(value) {
2481
- return (isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag) || false;
2665
+ return isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag;
2482
2666
  };
2483
2667
 
2484
2668
  module.exports = isArray;
2485
2669
 
2486
2670
 
2487
2671
  /***/ },
2488
- /* 41 */
2489
- /***/ function(module, exports, __webpack_require__) {
2490
-
2491
- var baseIndexOf = __webpack_require__(36),
2492
- cacheIndexOf = __webpack_require__(37),
2493
- createCache = __webpack_require__(38);
2494
-
2495
- /**
2496
- * The base implementation of `_.uniq` without support for callback shorthands
2497
- * and `this` binding.
2498
- *
2499
- * @private
2500
- * @param {Array} array The array to inspect.
2501
- * @param {Function} [iteratee] The function invoked per iteration.
2502
- * @returns {Array} Returns the new duplicate-value-free array.
2503
- */
2504
- function baseUniq(array, iteratee) {
2505
- var index = -1,
2506
- indexOf = baseIndexOf,
2507
- length = array.length,
2508
- isCommon = true,
2509
- isLarge = isCommon && length >= 200,
2510
- seen = isLarge && createCache(),
2511
- result = [];
2512
-
2513
- if (seen) {
2514
- indexOf = cacheIndexOf;
2515
- isCommon = false;
2516
- } else {
2517
- isLarge = false;
2518
- seen = iteratee ? [] : result;
2519
- }
2520
- outer:
2521
- while (++index < length) {
2522
- var value = array[index],
2523
- computed = iteratee ? iteratee(value, index, array) : value;
2524
-
2525
- if (isCommon && value === value) {
2526
- var seenIndex = seen.length;
2527
- while (seenIndex--) {
2528
- if (seen[seenIndex] === computed) {
2529
- continue outer;
2530
- }
2531
- }
2532
- if (iteratee) {
2533
- seen.push(computed);
2534
- }
2535
- result.push(value);
2536
- }
2537
- else if (indexOf(seen, computed) < 0) {
2538
- if (iteratee || isLarge) {
2539
- seen.push(computed);
2540
- }
2541
- result.push(value);
2542
- }
2543
- }
2544
- return result;
2545
- }
2546
-
2547
- module.exports = baseUniq;
2548
-
2549
-
2550
- /***/ },
2551
- /* 42 */
2552
- /***/ function(module, exports, __webpack_require__) {
2553
-
2554
- /**
2555
- * An implementation of `_.uniq` optimized for sorted arrays without support
2556
- * for callback shorthands and `this` binding.
2557
- *
2558
- * @private
2559
- * @param {Array} array The array to inspect.
2560
- * @param {Function} [iteratee] The function invoked per iteration.
2561
- * @returns {Array} Returns the new duplicate-value-free array.
2562
- */
2563
- function sortedUniq(array, iteratee) {
2564
- var seen,
2565
- index = -1,
2566
- length = array.length,
2567
- resIndex = -1,
2568
- result = [];
2569
-
2570
- while (++index < length) {
2571
- var value = array[index],
2572
- computed = iteratee ? iteratee(value, index, array) : value;
2573
-
2574
- if (!index || seen !== computed) {
2575
- seen = computed;
2576
- result[++resIndex] = value;
2577
- }
2578
- }
2579
- return result;
2580
- }
2581
-
2582
- module.exports = sortedUniq;
2583
-
2584
-
2585
- /***/ },
2586
- /* 43 */
2672
+ /* 45 */
2587
2673
  /***/ function(module, exports, __webpack_require__) {
2588
2674
 
2589
2675
  /**
2590
2676
  * A specialized version of `_.map` for arrays without support for callback
2591
- * shorthands or `this` binding.
2677
+ * shorthands and `this` binding.
2592
2678
  *
2593
2679
  * @private
2594
2680
  * @param {Array} array The array to iterate over.
@@ -2610,14 +2696,14 @@ return /******/ (function(modules) { // webpackBootstrap
2610
2696
 
2611
2697
 
2612
2698
  /***/ },
2613
- /* 44 */
2699
+ /* 46 */
2614
2700
  /***/ function(module, exports, __webpack_require__) {
2615
2701
 
2616
- var baseEach = __webpack_require__(46);
2702
+ var baseEach = __webpack_require__(48);
2617
2703
 
2618
2704
  /**
2619
2705
  * The base implementation of `_.map` without support for callback shorthands
2620
- * or `this` binding.
2706
+ * and `this` binding.
2621
2707
  *
2622
2708
  * @private
2623
2709
  * @param {Array|Object|string} collection The collection to iterate over.
@@ -2636,12 +2722,12 @@ return /******/ (function(modules) { // webpackBootstrap
2636
2722
 
2637
2723
 
2638
2724
  /***/ },
2639
- /* 45 */
2725
+ /* 47 */
2640
2726
  /***/ function(module, exports, __webpack_require__) {
2641
2727
 
2642
2728
  /**
2643
2729
  * A specialized version of `_.forEach` for arrays without support for callback
2644
- * shorthands or `this` binding.
2730
+ * shorthands and `this` binding.
2645
2731
  *
2646
2732
  * @private
2647
2733
  * @param {Array} array The array to iterate over.
@@ -2664,12 +2750,11 @@ return /******/ (function(modules) { // webpackBootstrap
2664
2750
 
2665
2751
 
2666
2752
  /***/ },
2667
- /* 46 */
2753
+ /* 48 */
2668
2754
  /***/ function(module, exports, __webpack_require__) {
2669
2755
 
2670
2756
  var baseForOwn = __webpack_require__(32),
2671
- isLength = __webpack_require__(33),
2672
- toObject = __webpack_require__(66);
2757
+ createBaseEach = __webpack_require__(70);
2673
2758
 
2674
2759
  /**
2675
2760
  * The base implementation of `_.forEach` without support for callback
@@ -2680,32 +2765,44 @@ return /******/ (function(modules) { // webpackBootstrap
2680
2765
  * @param {Function} iteratee The function invoked per iteration.
2681
2766
  * @returns {Array|Object|string} Returns `collection`.
2682
2767
  */
2683
- function baseEach(collection, iteratee) {
2684
- var length = collection ? collection.length : 0;
2685
- if (!isLength(length)) {
2686
- return baseForOwn(collection, iteratee);
2687
- }
2688
- var index = -1,
2689
- iterable = toObject(collection);
2768
+ var baseEach = createBaseEach(baseForOwn);
2690
2769
 
2691
- while (++index < length) {
2692
- if (iteratee(iterable[index], index, iterable) === false) {
2693
- break;
2694
- }
2695
- }
2696
- return collection;
2770
+ module.exports = baseEach;
2771
+
2772
+
2773
+ /***/ },
2774
+ /* 49 */
2775
+ /***/ function(module, exports, __webpack_require__) {
2776
+
2777
+ var bindCallback = __webpack_require__(27),
2778
+ isArray = __webpack_require__(44);
2779
+
2780
+ /**
2781
+ * Creates a function for `_.forEach` or `_.forEachRight`.
2782
+ *
2783
+ * @private
2784
+ * @param {Function} arrayFunc The function to iterate over an array.
2785
+ * @param {Function} eachFunc The function to iterate over a collection.
2786
+ * @returns {Function} Returns the new each function.
2787
+ */
2788
+ function createForEach(arrayFunc, eachFunc) {
2789
+ return function(collection, iteratee, thisArg) {
2790
+ return (typeof iteratee == 'function' && typeof thisArg == 'undefined' && isArray(collection))
2791
+ ? arrayFunc(collection, iteratee)
2792
+ : eachFunc(collection, bindCallback(iteratee, thisArg, 3));
2793
+ };
2697
2794
  }
2698
2795
 
2699
- module.exports = baseEach;
2796
+ module.exports = createForEach;
2700
2797
 
2701
2798
 
2702
2799
  /***/ },
2703
- /* 47 */
2800
+ /* 50 */
2704
2801
  /***/ function(module, exports, __webpack_require__) {
2705
2802
 
2706
2803
  /**
2707
2804
  * A specialized version of `_.reduce` for arrays without support for callback
2708
- * shorthands or `this` binding.
2805
+ * shorthands and `this` binding.
2709
2806
  *
2710
2807
  * @private
2711
2808
  * @param {Array} array The array to iterate over.
@@ -2732,37 +2829,35 @@ return /******/ (function(modules) { // webpackBootstrap
2732
2829
 
2733
2830
 
2734
2831
  /***/ },
2735
- /* 48 */
2832
+ /* 51 */
2736
2833
  /***/ function(module, exports, __webpack_require__) {
2737
2834
 
2835
+ var baseCallback = __webpack_require__(34),
2836
+ baseReduce = __webpack_require__(71),
2837
+ isArray = __webpack_require__(44);
2838
+
2738
2839
  /**
2739
- * The base implementation of `_.reduce` and `_.reduceRight` without support
2740
- * for callback shorthands or `this` binding, which iterates over `collection`
2741
- * using the provided `eachFunc`.
2840
+ * Creates a function for `_.reduce` or `_.reduceRight`.
2742
2841
  *
2743
2842
  * @private
2744
- * @param {Array|Object|string} collection The collection to iterate over.
2745
- * @param {Function} iteratee The function invoked per iteration.
2746
- * @param {*} accumulator The initial value.
2747
- * @param {boolean} initFromCollection Specify using the first or last element
2748
- * of `collection` as the initial value.
2749
- * @param {Function} eachFunc The function to iterate over `collection`.
2750
- * @returns {*} Returns the accumulated value.
2843
+ * @param {Function} arrayFunc The function to iterate over an array.
2844
+ * @param {Function} eachFunc The function to iterate over a collection.
2845
+ * @returns {Function} Returns the new each function.
2751
2846
  */
2752
- function baseReduce(collection, iteratee, accumulator, initFromCollection, eachFunc) {
2753
- eachFunc(collection, function(value, index, collection) {
2754
- accumulator = initFromCollection
2755
- ? (initFromCollection = false, value)
2756
- : iteratee(accumulator, value, index, collection)
2757
- });
2758
- return accumulator;
2847
+ function createReduce(arrayFunc, eachFunc) {
2848
+ return function(collection, iteratee, accumulator, thisArg) {
2849
+ var initFromArray = arguments.length < 3;
2850
+ return (typeof iteratee == 'function' && typeof thisArg == 'undefined' && isArray(collection))
2851
+ ? arrayFunc(collection, iteratee, accumulator, initFromArray)
2852
+ : baseReduce(collection, baseCallback(iteratee, thisArg, 4), accumulator, initFromArray, eachFunc);
2853
+ };
2759
2854
  }
2760
2855
 
2761
- module.exports = baseReduce;
2856
+ module.exports = createReduce;
2762
2857
 
2763
2858
 
2764
2859
  /***/ },
2765
- /* 49 */
2860
+ /* 52 */
2766
2861
  /***/ function(module, exports, __webpack_require__) {
2767
2862
 
2768
2863
  /**
@@ -2788,7 +2883,7 @@ return /******/ (function(modules) { // webpackBootstrap
2788
2883
 
2789
2884
 
2790
2885
  /***/ },
2791
- /* 50 */
2886
+ /* 53 */
2792
2887
  /***/ function(module, exports, __webpack_require__) {
2793
2888
 
2794
2889
  /**
@@ -2819,7 +2914,7 @@ return /******/ (function(modules) { // webpackBootstrap
2819
2914
 
2820
2915
 
2821
2916
  /***/ },
2822
- /* 51 */
2917
+ /* 54 */
2823
2918
  /***/ function(module, exports, __webpack_require__) {
2824
2919
 
2825
2920
  /** Used for native method references. */
@@ -2851,10 +2946,10 @@ return /******/ (function(modules) { // webpackBootstrap
2851
2946
 
2852
2947
 
2853
2948
  /***/ },
2854
- /* 52 */
2949
+ /* 55 */
2855
2950
  /***/ function(module, exports, __webpack_require__) {
2856
2951
 
2857
- var bufferClone = __webpack_require__(67);
2952
+ var bufferClone = __webpack_require__(72);
2858
2953
 
2859
2954
  /** `Object#toString` result references. */
2860
2955
  var boolTag = '[object Boolean]',
@@ -2921,7 +3016,7 @@ return /******/ (function(modules) { // webpackBootstrap
2921
3016
 
2922
3017
 
2923
3018
  /***/ },
2924
- /* 53 */
3019
+ /* 56 */
2925
3020
  /***/ function(module, exports, __webpack_require__) {
2926
3021
 
2927
3022
  /**
@@ -2943,7 +3038,7 @@ return /******/ (function(modules) { // webpackBootstrap
2943
3038
 
2944
3039
 
2945
3040
  /***/ },
2946
- /* 54 */
3041
+ /* 57 */
2947
3042
  /***/ function(module, exports, __webpack_require__) {
2948
3043
 
2949
3044
  /**
@@ -2957,6 +3052,7 @@ return /******/ (function(modules) { // webpackBootstrap
2957
3052
  * @example
2958
3053
  *
2959
3054
  * var object = { 'user': 'fred' };
3055
+ *
2960
3056
  * _.identity(object) === object;
2961
3057
  * // => true
2962
3058
  */
@@ -2968,13 +3064,12 @@ return /******/ (function(modules) { // webpackBootstrap
2968
3064
 
2969
3065
 
2970
3066
  /***/ },
2971
- /* 55 */
3067
+ /* 58 */
2972
3068
  /***/ function(module, exports, __webpack_require__) {
2973
3069
 
2974
3070
  /**
2975
- * Used as the maximum length of an array-like value.
2976
- * See the [ES spec](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength)
2977
- * for more details.
3071
+ * Used as the [maximum length](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.max_safe_integer)
3072
+ * of an array-like value.
2978
3073
  */
2979
3074
  var MAX_SAFE_INTEGER = Math.pow(2, 53) - 1;
2980
3075
 
@@ -2996,22 +3091,22 @@ return /******/ (function(modules) { // webpackBootstrap
2996
3091
 
2997
3092
 
2998
3093
  /***/ },
2999
- /* 56 */
3094
+ /* 59 */
3000
3095
  /***/ function(module, exports, __webpack_require__) {
3001
3096
 
3002
- var baseToString = __webpack_require__(68);
3097
+ var baseToString = __webpack_require__(73);
3003
3098
 
3004
3099
  /**
3005
- * Used to match `RegExp` special characters.
3006
- * See this [article on `RegExp` characters](http://www.regular-expressions.info/characters.html#special)
3007
- * for more details.
3100
+ * Used to match `RegExp` [special characters](http://www.regular-expressions.info/characters.html#special).
3101
+ * In addition to special characters the forward slash is escaped to allow for
3102
+ * easier `eval` use and `Function` compilation.
3008
3103
  */
3009
3104
  var reRegExpChars = /[.*+?^${}()|[\]\/\\]/g,
3010
3105
  reHasRegExpChars = RegExp(reRegExpChars.source);
3011
3106
 
3012
3107
  /**
3013
- * Escapes the `RegExp` special characters "\", "^", "$", ".", "|", "?", "*",
3014
- * "+", "(", ")", "[", "]", "{" and "}" in `string`.
3108
+ * Escapes the `RegExp` special characters "\", "/", "^", "$", ".", "|", "?",
3109
+ * "*", "+", "(", ")", "[", "]", "{" and "}" in `string`.
3015
3110
  *
3016
3111
  * @static
3017
3112
  * @memberOf _
@@ -3021,7 +3116,7 @@ return /******/ (function(modules) { // webpackBootstrap
3021
3116
  * @example
3022
3117
  *
3023
3118
  * _.escapeRegExp('[lodash](https://lodash.com/)');
3024
- * // => '\[lodash\]\(https://lodash\.com/\)'
3119
+ * // => '\[lodash\]\(https:\/\/lodash\.com\/\)'
3025
3120
  */
3026
3121
  function escapeRegExp(string) {
3027
3122
  string = baseToString(string);
@@ -3034,172 +3129,141 @@ return /******/ (function(modules) { // webpackBootstrap
3034
3129
 
3035
3130
 
3036
3131
  /***/ },
3037
- /* 57 */
3132
+ /* 60 */
3038
3133
  /***/ function(module, exports, __webpack_require__) {
3039
3134
 
3040
- var baseClone = __webpack_require__(27),
3041
- baseIsMatch = __webpack_require__(69),
3042
- isStrictComparable = __webpack_require__(70),
3043
- keys = __webpack_require__(17);
3135
+ var createBaseFor = __webpack_require__(74);
3044
3136
 
3045
- /** Used for native method references. */
3046
- var objectProto = Object.prototype;
3137
+ /**
3138
+ * The base implementation of `baseForIn` and `baseForOwn` which iterates
3139
+ * over `object` properties returned by `keysFunc` invoking `iteratee` for
3140
+ * each property. Iterator functions may exit iteration early by explicitly
3141
+ * returning `false`.
3142
+ *
3143
+ * @private
3144
+ * @param {Object} object The object to iterate over.
3145
+ * @param {Function} iteratee The function invoked per iteration.
3146
+ * @param {Function} keysFunc The function to get the keys of `object`.
3147
+ * @returns {Object} Returns `object`.
3148
+ */
3149
+ var baseFor = createBaseFor();
3047
3150
 
3048
- /** Used to check objects for own properties. */
3049
- var hasOwnProperty = objectProto.hasOwnProperty;
3151
+ module.exports = baseFor;
3152
+
3153
+
3154
+ /***/ },
3155
+ /* 61 */
3156
+ /***/ function(module, exports, __webpack_require__) {
3157
+
3158
+ var baseIsMatch = __webpack_require__(75),
3159
+ constant = __webpack_require__(69),
3160
+ isStrictComparable = __webpack_require__(76),
3161
+ keys = __webpack_require__(17),
3162
+ toObject = __webpack_require__(77);
3050
3163
 
3051
3164
  /**
3052
- * The base implementation of `_.matches` which supports specifying whether
3053
- * `source` should be cloned.
3165
+ * The base implementation of `_.matches` which does not clone `source`.
3054
3166
  *
3055
3167
  * @private
3056
3168
  * @param {Object} source The object of property values to match.
3057
- * @param {boolean} [isCloned] Specify cloning the source object.
3058
3169
  * @returns {Function} Returns the new function.
3059
3170
  */
3060
- function baseMatches(source, isCloned) {
3171
+ function baseMatches(source) {
3061
3172
  var props = keys(source),
3062
3173
  length = props.length;
3063
3174
 
3175
+ if (!length) {
3176
+ return constant(true);
3177
+ }
3064
3178
  if (length == 1) {
3065
3179
  var key = props[0],
3066
3180
  value = source[key];
3067
3181
 
3068
3182
  if (isStrictComparable(value)) {
3069
3183
  return function(object) {
3070
- return object != null && value === object[key] && hasOwnProperty.call(object, key);
3184
+ return object != null && object[key] === value &&
3185
+ (typeof value != 'undefined' || (key in toObject(object)));
3071
3186
  };
3072
3187
  }
3073
3188
  }
3074
- if (isCloned) {
3075
- source = baseClone(source, true);
3076
- }
3077
3189
  var values = Array(length),
3078
3190
  strictCompareFlags = Array(length);
3079
3191
 
3080
- while (length--) {
3081
- value = source[props[length]];
3082
- values[length] = value;
3083
- strictCompareFlags[length] = isStrictComparable(value);
3084
- }
3085
- return function(object) {
3086
- return baseIsMatch(object, props, values, strictCompareFlags);
3087
- };
3088
- }
3089
-
3090
- module.exports = baseMatches;
3091
-
3092
-
3093
- /***/ },
3094
- /* 58 */
3095
- /***/ function(module, exports, __webpack_require__) {
3096
-
3097
- /**
3098
- * The base implementation of `_.property` which does not coerce `key` to a string.
3099
- *
3100
- * @private
3101
- * @param {string} key The key of the property to get.
3102
- * @returns {Function} Returns the new function.
3103
- */
3104
- function baseProperty(key) {
3192
+ while (length--) {
3193
+ value = source[props[length]];
3194
+ values[length] = value;
3195
+ strictCompareFlags[length] = isStrictComparable(value);
3196
+ }
3105
3197
  return function(object) {
3106
- return object == null ? undefined : object[key];
3198
+ return object != null && baseIsMatch(toObject(object), props, values, strictCompareFlags);
3107
3199
  };
3108
3200
  }
3109
3201
 
3110
- module.exports = baseProperty;
3202
+ module.exports = baseMatches;
3111
3203
 
3112
3204
 
3113
3205
  /***/ },
3114
- /* 59 */
3206
+ /* 62 */
3115
3207
  /***/ function(module, exports, __webpack_require__) {
3116
3208
 
3117
- var baseSetData = __webpack_require__(71),
3118
- isNative = __webpack_require__(30),
3119
- support = __webpack_require__(62);
3120
-
3121
- /** Used to detect named functions. */
3122
- var reFuncName = /^\s*function[ \n\r\t]+\w/;
3123
-
3124
- /** Used to detect functions containing a `this` reference. */
3125
- var reThis = /\bthis\b/;
3126
-
3127
- /** Used to resolve the decompiled source of functions. */
3128
- var fnToString = Function.prototype.toString;
3209
+ var baseIsEqual = __webpack_require__(78),
3210
+ isStrictComparable = __webpack_require__(76),
3211
+ toObject = __webpack_require__(77);
3129
3212
 
3130
3213
  /**
3131
- * Checks if `func` is eligible for `this` binding.
3214
+ * The base implementation of `_.matchesProperty` which does not coerce `key`
3215
+ * to a string.
3132
3216
  *
3133
3217
  * @private
3134
- * @param {Function} func The function to check.
3135
- * @returns {boolean} Returns `true` if `func` is eligible, else `false`.
3218
+ * @param {string} key The key of the property to get.
3219
+ * @param {*} value The value to compare.
3220
+ * @returns {Function} Returns the new function.
3136
3221
  */
3137
- function isBindable(func) {
3138
- var result = !(support.funcNames ? func.name : support.funcDecomp);
3139
-
3140
- if (!result) {
3141
- var source = fnToString.call(func);
3142
- if (!support.funcNames) {
3143
- result = !reFuncName.test(source);
3144
- }
3145
- if (!result) {
3146
- // Check if `func` references the `this` keyword and store the result.
3147
- result = reThis.test(source) || isNative(func);
3148
- baseSetData(func, result);
3149
- }
3222
+ function baseMatchesProperty(key, value) {
3223
+ if (isStrictComparable(value)) {
3224
+ return function(object) {
3225
+ return object != null && object[key] === value &&
3226
+ (typeof value != 'undefined' || (key in toObject(object)));
3227
+ };
3150
3228
  }
3151
- return result;
3229
+ return function(object) {
3230
+ return object != null && baseIsEqual(value, object[key], null, true);
3231
+ };
3152
3232
  }
3153
3233
 
3154
- module.exports = isBindable;
3234
+ module.exports = baseMatchesProperty;
3155
3235
 
3156
3236
 
3157
3237
  /***/ },
3158
- /* 60 */
3238
+ /* 63 */
3159
3239
  /***/ function(module, exports, __webpack_require__) {
3160
3240
 
3161
- var toObject = __webpack_require__(66);
3162
-
3163
3241
  /**
3164
- * The base implementation of `baseForIn` and `baseForOwn` which iterates
3165
- * over `object` properties returned by `keysFunc` invoking `iteratee` for
3166
- * each property. Iterator functions may exit iteration early by explicitly
3167
- * returning `false`.
3242
+ * The base implementation of `_.property` which does not coerce `key` to a string.
3168
3243
  *
3169
3244
  * @private
3170
- * @param {Object} object The object to iterate over.
3171
- * @param {Function} iteratee The function invoked per iteration.
3172
- * @param {Function} keysFunc The function to get the keys of `object`.
3173
- * @returns {Object} Returns `object`.
3245
+ * @param {string} key The key of the property to get.
3246
+ * @returns {Function} Returns the new function.
3174
3247
  */
3175
- function baseFor(object, iteratee, keysFunc) {
3176
- var index = -1,
3177
- iterable = toObject(object),
3178
- props = keysFunc(object),
3179
- length = props.length;
3180
-
3181
- while (++index < length) {
3182
- var key = props[index];
3183
- if (iteratee(iterable[key], key, iterable) === false) {
3184
- break;
3185
- }
3186
- }
3187
- return object;
3248
+ function baseProperty(key) {
3249
+ return function(object) {
3250
+ return object == null ? undefined : object[key];
3251
+ };
3188
3252
  }
3189
3253
 
3190
- module.exports = baseFor;
3254
+ module.exports = baseProperty;
3191
3255
 
3192
3256
 
3193
3257
  /***/ },
3194
- /* 61 */
3258
+ /* 64 */
3195
3259
  /***/ function(module, exports, __webpack_require__) {
3196
3260
 
3197
- var isArguments = __webpack_require__(39),
3198
- isArray = __webpack_require__(40),
3199
- isIndex = __webpack_require__(55),
3200
- isLength = __webpack_require__(33),
3261
+ var isArguments = __webpack_require__(43),
3262
+ isArray = __webpack_require__(44),
3263
+ isIndex = __webpack_require__(58),
3264
+ isLength = __webpack_require__(35),
3201
3265
  isObject = __webpack_require__(25),
3202
- support = __webpack_require__(62);
3266
+ support = __webpack_require__(65);
3203
3267
 
3204
3268
  /** Used for native method references. */
3205
3269
  var objectProto = Object.prototype;
@@ -3242,7 +3306,7 @@ return /******/ (function(modules) { // webpackBootstrap
3242
3306
 
3243
3307
  var Ctor = object.constructor,
3244
3308
  index = -1,
3245
- isProto = typeof Ctor == 'function' && Ctor.prototype == object,
3309
+ isProto = typeof Ctor == 'function' && Ctor.prototype === object,
3246
3310
  result = Array(length),
3247
3311
  skipIndexes = length > 0;
3248
3312
 
@@ -3262,15 +3326,10 @@ return /******/ (function(modules) { // webpackBootstrap
3262
3326
 
3263
3327
 
3264
3328
  /***/ },
3265
- /* 62 */
3329
+ /* 65 */
3266
3330
  /***/ function(module, exports, __webpack_require__) {
3267
3331
 
3268
- /* WEBPACK VAR INJECTION */(function(global) {var isNative = __webpack_require__(30);
3269
-
3270
- /** Used to detect functions containing a `this` reference. */
3271
- var reThis = /\bthis\b/;
3272
-
3273
- /** Used for native method references. */
3332
+ /* WEBPACK VAR INJECTION */(function(global) {/** Used for native method references. */
3274
3333
  var objectProto = Object.prototype;
3275
3334
 
3276
3335
  /** Used to detect DOM support. */
@@ -3298,7 +3357,7 @@ return /******/ (function(modules) { // webpackBootstrap
3298
3357
  * @memberOf _.support
3299
3358
  * @type boolean
3300
3359
  */
3301
- support.funcDecomp = !isNative(global.WinRTError) && reThis.test(function() { return this; });
3360
+ support.funcDecomp = /\bthis\b/.test(function() { return this; });
3302
3361
 
3303
3362
  /**
3304
3363
  * Detect if `Function#name` is supported (all but IE).
@@ -3344,22 +3403,52 @@ return /******/ (function(modules) { // webpackBootstrap
3344
3403
  /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))
3345
3404
 
3346
3405
  /***/ },
3347
- /* 63 */
3406
+ /* 66 */
3407
+ /***/ function(module, exports, __webpack_require__) {
3408
+
3409
+ /**
3410
+ * The base implementation of `_.find`, `_.findLast`, `_.findKey`, and `_.findLastKey`,
3411
+ * without support for callback shorthands and `this` binding, which iterates
3412
+ * over `collection` using the provided `eachFunc`.
3413
+ *
3414
+ * @private
3415
+ * @param {Array|Object|string} collection The collection to search.
3416
+ * @param {Function} predicate The function invoked per iteration.
3417
+ * @param {Function} eachFunc The function to iterate over `collection`.
3418
+ * @param {boolean} [retKey] Specify returning the key of the found element
3419
+ * instead of the element itself.
3420
+ * @returns {*} Returns the found element or its key, else `undefined`.
3421
+ */
3422
+ function baseFind(collection, predicate, eachFunc, retKey) {
3423
+ var result;
3424
+ eachFunc(collection, function(value, key, collection) {
3425
+ if (predicate(value, key, collection)) {
3426
+ result = retKey ? key : value;
3427
+ return false;
3428
+ }
3429
+ });
3430
+ return result;
3431
+ }
3432
+
3433
+ module.exports = baseFind;
3434
+
3435
+
3436
+ /***/ },
3437
+ /* 67 */
3348
3438
  /***/ function(module, exports, __webpack_require__) {
3349
3439
 
3350
3440
  /**
3351
3441
  * Gets the index at which the first occurrence of `NaN` is found in `array`.
3352
- * If `fromRight` is provided elements of `array` are iterated from right to left.
3353
3442
  *
3354
3443
  * @private
3355
3444
  * @param {Array} array The array to search.
3356
- * @param {number} [fromIndex] The index to search from.
3445
+ * @param {number} fromIndex The index to search from.
3357
3446
  * @param {boolean} [fromRight] Specify iterating from right to left.
3358
3447
  * @returns {number} Returns the index of the matched `NaN`, else `-1`.
3359
3448
  */
3360
3449
  function indexOfNaN(array, fromIndex, fromRight) {
3361
3450
  var length = array.length,
3362
- index = fromRight ? (fromIndex || length) : ((fromIndex || 0) - 1);
3451
+ index = fromIndex + (fromRight ? 0 : -1);
3363
3452
 
3364
3453
  while ((fromRight ? index-- : ++index < length)) {
3365
3454
  var other = array[index];
@@ -3374,10 +3463,10 @@ return /******/ (function(modules) { // webpackBootstrap
3374
3463
 
3375
3464
 
3376
3465
  /***/ },
3377
- /* 64 */
3466
+ /* 68 */
3378
3467
  /***/ function(module, exports, __webpack_require__) {
3379
3468
 
3380
- /* WEBPACK VAR INJECTION */(function(global) {var cachePush = __webpack_require__(72),
3469
+ /* WEBPACK VAR INJECTION */(function(global) {var cachePush = __webpack_require__(79),
3381
3470
  isNative = __webpack_require__(30);
3382
3471
 
3383
3472
  /** Native method references. */
@@ -3410,7 +3499,7 @@ return /******/ (function(modules) { // webpackBootstrap
3410
3499
  /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))
3411
3500
 
3412
3501
  /***/ },
3413
- /* 65 */
3502
+ /* 69 */
3414
3503
  /***/ function(module, exports, __webpack_require__) {
3415
3504
 
3416
3505
  /**
@@ -3425,6 +3514,7 @@ return /******/ (function(modules) { // webpackBootstrap
3425
3514
  *
3426
3515
  * var object = { 'user': 'fred' };
3427
3516
  * var getter = _.constant(object);
3517
+ *
3428
3518
  * getter() === object;
3429
3519
  * // => true
3430
3520
  */
@@ -3438,30 +3528,76 @@ return /******/ (function(modules) { // webpackBootstrap
3438
3528
 
3439
3529
 
3440
3530
  /***/ },
3441
- /* 66 */
3531
+ /* 70 */
3442
3532
  /***/ function(module, exports, __webpack_require__) {
3443
3533
 
3444
- var isObject = __webpack_require__(25);
3534
+ var isLength = __webpack_require__(35),
3535
+ toObject = __webpack_require__(77);
3445
3536
 
3446
3537
  /**
3447
- * Converts `value` to an object if it is not one.
3538
+ * Creates a `baseEach` or `baseEachRight` function.
3448
3539
  *
3449
3540
  * @private
3450
- * @param {*} value The value to process.
3451
- * @returns {Object} Returns the object.
3541
+ * @param {Function} eachFunc The function to iterate over a collection.
3542
+ * @param {boolean} [fromRight] Specify iterating from right to left.
3543
+ * @returns {Function} Returns the new base function.
3452
3544
  */
3453
- function toObject(value) {
3454
- return isObject(value) ? value : Object(value);
3545
+ function createBaseEach(eachFunc, fromRight) {
3546
+ return function(collection, iteratee) {
3547
+ var length = collection ? collection.length : 0;
3548
+ if (!isLength(length)) {
3549
+ return eachFunc(collection, iteratee);
3550
+ }
3551
+ var index = fromRight ? length : -1,
3552
+ iterable = toObject(collection);
3553
+
3554
+ while ((fromRight ? index-- : ++index < length)) {
3555
+ if (iteratee(iterable[index], index, iterable) === false) {
3556
+ break;
3557
+ }
3558
+ }
3559
+ return collection;
3560
+ };
3455
3561
  }
3456
3562
 
3457
- module.exports = toObject;
3563
+ module.exports = createBaseEach;
3458
3564
 
3459
3565
 
3460
3566
  /***/ },
3461
- /* 67 */
3567
+ /* 71 */
3568
+ /***/ function(module, exports, __webpack_require__) {
3569
+
3570
+ /**
3571
+ * The base implementation of `_.reduce` and `_.reduceRight` without support
3572
+ * for callback shorthands and `this` binding, which iterates over `collection`
3573
+ * using the provided `eachFunc`.
3574
+ *
3575
+ * @private
3576
+ * @param {Array|Object|string} collection The collection to iterate over.
3577
+ * @param {Function} iteratee The function invoked per iteration.
3578
+ * @param {*} accumulator The initial value.
3579
+ * @param {boolean} initFromCollection Specify using the first or last element
3580
+ * of `collection` as the initial value.
3581
+ * @param {Function} eachFunc The function to iterate over `collection`.
3582
+ * @returns {*} Returns the accumulated value.
3583
+ */
3584
+ function baseReduce(collection, iteratee, accumulator, initFromCollection, eachFunc) {
3585
+ eachFunc(collection, function(value, index, collection) {
3586
+ accumulator = initFromCollection
3587
+ ? (initFromCollection = false, value)
3588
+ : iteratee(accumulator, value, index, collection);
3589
+ });
3590
+ return accumulator;
3591
+ }
3592
+
3593
+ module.exports = baseReduce;
3594
+
3595
+
3596
+ /***/ },
3597
+ /* 72 */
3462
3598
  /***/ function(module, exports, __webpack_require__) {
3463
3599
 
3464
- /* WEBPACK VAR INJECTION */(function(global) {var constant = __webpack_require__(65),
3600
+ /* WEBPACK VAR INJECTION */(function(global) {var constant = __webpack_require__(69),
3465
3601
  isNative = __webpack_require__(30);
3466
3602
 
3467
3603
  /** Native method references. */
@@ -3520,7 +3656,7 @@ return /******/ (function(modules) { // webpackBootstrap
3520
3656
  /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))
3521
3657
 
3522
3658
  /***/ },
3523
- /* 68 */
3659
+ /* 73 */
3524
3660
  /***/ function(module, exports, __webpack_require__) {
3525
3661
 
3526
3662
  /**
@@ -3542,23 +3678,50 @@ return /******/ (function(modules) { // webpackBootstrap
3542
3678
 
3543
3679
 
3544
3680
  /***/ },
3545
- /* 69 */
3681
+ /* 74 */
3546
3682
  /***/ function(module, exports, __webpack_require__) {
3547
3683
 
3548
- var baseIsEqual = __webpack_require__(73);
3684
+ var toObject = __webpack_require__(77);
3549
3685
 
3550
- /** Used for native method references. */
3551
- var objectProto = Object.prototype;
3686
+ /**
3687
+ * Creates a base function for `_.forIn` or `_.forInRight`.
3688
+ *
3689
+ * @private
3690
+ * @param {boolean} [fromRight] Specify iterating from right to left.
3691
+ * @returns {Function} Returns the new base function.
3692
+ */
3693
+ function createBaseFor(fromRight) {
3694
+ return function(object, iteratee, keysFunc) {
3695
+ var iterable = toObject(object),
3696
+ props = keysFunc(object),
3697
+ length = props.length,
3698
+ index = fromRight ? length : -1;
3699
+
3700
+ while ((fromRight ? index-- : ++index < length)) {
3701
+ var key = props[index];
3702
+ if (iteratee(iterable[key], key, iterable) === false) {
3703
+ break;
3704
+ }
3705
+ }
3706
+ return object;
3707
+ };
3708
+ }
3552
3709
 
3553
- /** Used to check objects for own properties. */
3554
- var hasOwnProperty = objectProto.hasOwnProperty;
3710
+ module.exports = createBaseFor;
3711
+
3712
+
3713
+ /***/ },
3714
+ /* 75 */
3715
+ /***/ function(module, exports, __webpack_require__) {
3716
+
3717
+ var baseIsEqual = __webpack_require__(78);
3555
3718
 
3556
3719
  /**
3557
3720
  * The base implementation of `_.isMatch` without support for callback
3558
- * shorthands or `this` binding.
3721
+ * shorthands and `this` binding.
3559
3722
  *
3560
3723
  * @private
3561
- * @param {Object} source The object to inspect.
3724
+ * @param {Object} object The object to inspect.
3562
3725
  * @param {Array} props The source property names to match.
3563
3726
  * @param {Array} values The source values to match.
3564
3727
  * @param {Array} strictCompareFlags Strict comparison flags for source values.
@@ -3566,30 +3729,27 @@ return /******/ (function(modules) { // webpackBootstrap
3566
3729
  * @returns {boolean} Returns `true` if `object` is a match, else `false`.
3567
3730
  */
3568
3731
  function baseIsMatch(object, props, values, strictCompareFlags, customizer) {
3569
- var length = props.length;
3570
- if (object == null) {
3571
- return !length;
3572
- }
3573
3732
  var index = -1,
3733
+ length = props.length,
3574
3734
  noCustomizer = !customizer;
3575
3735
 
3576
3736
  while (++index < length) {
3577
3737
  if ((noCustomizer && strictCompareFlags[index])
3578
3738
  ? values[index] !== object[props[index]]
3579
- : !hasOwnProperty.call(object, props[index])
3739
+ : !(props[index] in object)
3580
3740
  ) {
3581
3741
  return false;
3582
3742
  }
3583
3743
  }
3584
3744
  index = -1;
3585
3745
  while (++index < length) {
3586
- var key = props[index];
3746
+ var key = props[index],
3747
+ objValue = object[key],
3748
+ srcValue = values[index];
3749
+
3587
3750
  if (noCustomizer && strictCompareFlags[index]) {
3588
- var result = hasOwnProperty.call(object, key);
3751
+ var result = typeof objValue != 'undefined' || (key in object);
3589
3752
  } else {
3590
- var objValue = object[key],
3591
- srcValue = values[index];
3592
-
3593
3753
  result = customizer ? customizer(objValue, srcValue, key) : undefined;
3594
3754
  if (typeof result == 'undefined') {
3595
3755
  result = baseIsEqual(srcValue, objValue, customizer, true);
@@ -3606,7 +3766,7 @@ return /******/ (function(modules) { // webpackBootstrap
3606
3766
 
3607
3767
 
3608
3768
  /***/ },
3609
- /* 70 */
3769
+ /* 76 */
3610
3770
  /***/ function(module, exports, __webpack_require__) {
3611
3771
 
3612
3772
  var isObject = __webpack_require__(25);
@@ -3627,59 +3787,30 @@ return /******/ (function(modules) { // webpackBootstrap
3627
3787
 
3628
3788
 
3629
3789
  /***/ },
3630
- /* 71 */
3631
- /***/ function(module, exports, __webpack_require__) {
3632
-
3633
- var identity = __webpack_require__(54),
3634
- metaMap = __webpack_require__(74);
3635
-
3636
- /**
3637
- * The base implementation of `setData` without support for hot loop detection.
3638
- *
3639
- * @private
3640
- * @param {Function} func The function to associate metadata with.
3641
- * @param {*} data The metadata.
3642
- * @returns {Function} Returns `func`.
3643
- */
3644
- var baseSetData = !metaMap ? identity : function(func, data) {
3645
- metaMap.set(func, data);
3646
- return func;
3647
- };
3648
-
3649
- module.exports = baseSetData;
3650
-
3651
-
3652
- /***/ },
3653
- /* 72 */
3790
+ /* 77 */
3654
3791
  /***/ function(module, exports, __webpack_require__) {
3655
3792
 
3656
3793
  var isObject = __webpack_require__(25);
3657
3794
 
3658
3795
  /**
3659
- * Adds `value` to the cache.
3796
+ * Converts `value` to an object if it is not one.
3660
3797
  *
3661
3798
  * @private
3662
- * @name push
3663
- * @memberOf SetCache
3664
- * @param {*} value The value to cache.
3799
+ * @param {*} value The value to process.
3800
+ * @returns {Object} Returns the object.
3665
3801
  */
3666
- function cachePush(value) {
3667
- var data = this.data;
3668
- if (typeof value == 'string' || isObject(value)) {
3669
- data.set.add(value);
3670
- } else {
3671
- data.hash[value] = true;
3672
- }
3802
+ function toObject(value) {
3803
+ return isObject(value) ? value : Object(value);
3673
3804
  }
3674
3805
 
3675
- module.exports = cachePush;
3806
+ module.exports = toObject;
3676
3807
 
3677
3808
 
3678
3809
  /***/ },
3679
- /* 73 */
3810
+ /* 78 */
3680
3811
  /***/ function(module, exports, __webpack_require__) {
3681
3812
 
3682
- var baseIsEqualDeep = __webpack_require__(75);
3813
+ var baseIsEqualDeep = __webpack_require__(80);
3683
3814
 
3684
3815
  /**
3685
3816
  * The base implementation of `_.isEqual` without support for `this` binding
@@ -3689,12 +3820,12 @@ return /******/ (function(modules) { // webpackBootstrap
3689
3820
  * @param {*} value The value to compare.
3690
3821
  * @param {*} other The other value to compare.
3691
3822
  * @param {Function} [customizer] The function to customize comparing values.
3692
- * @param {boolean} [isWhere] Specify performing partial comparisons.
3823
+ * @param {boolean} [isLoose] Specify performing partial comparisons.
3693
3824
  * @param {Array} [stackA] Tracks traversed `value` objects.
3694
3825
  * @param {Array} [stackB] Tracks traversed `other` objects.
3695
3826
  * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
3696
3827
  */
3697
- function baseIsEqual(value, other, customizer, isWhere, stackA, stackB) {
3828
+ function baseIsEqual(value, other, customizer, isLoose, stackA, stackB) {
3698
3829
  // Exit early for identical values.
3699
3830
  if (value === other) {
3700
3831
  // Treat `+0` vs. `-0` as not equal.
@@ -3709,41 +3840,52 @@ return /******/ (function(modules) { // webpackBootstrap
3709
3840
  // Return `false` unless both values are `NaN`.
3710
3841
  return value !== value && other !== other;
3711
3842
  }
3712
- return baseIsEqualDeep(value, other, baseIsEqual, customizer, isWhere, stackA, stackB);
3843
+ return baseIsEqualDeep(value, other, baseIsEqual, customizer, isLoose, stackA, stackB);
3713
3844
  }
3714
3845
 
3715
3846
  module.exports = baseIsEqual;
3716
3847
 
3717
3848
 
3718
3849
  /***/ },
3719
- /* 74 */
3850
+ /* 79 */
3720
3851
  /***/ function(module, exports, __webpack_require__) {
3721
3852
 
3722
- /* WEBPACK VAR INJECTION */(function(global) {var isNative = __webpack_require__(30);
3723
-
3724
- /** Native method references. */
3725
- var WeakMap = isNative(WeakMap = global.WeakMap) && WeakMap;
3726
-
3727
- /** Used to store function metadata. */
3728
- var metaMap = WeakMap && new WeakMap;
3853
+ var isObject = __webpack_require__(25);
3729
3854
 
3730
- module.exports = metaMap;
3855
+ /**
3856
+ * Adds `value` to the cache.
3857
+ *
3858
+ * @private
3859
+ * @name push
3860
+ * @memberOf SetCache
3861
+ * @param {*} value The value to cache.
3862
+ */
3863
+ function cachePush(value) {
3864
+ var data = this.data;
3865
+ if (typeof value == 'string' || isObject(value)) {
3866
+ data.set.add(value);
3867
+ } else {
3868
+ data.hash[value] = true;
3869
+ }
3870
+ }
3731
3871
 
3732
- /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))
3872
+ module.exports = cachePush;
3873
+
3733
3874
 
3734
3875
  /***/ },
3735
- /* 75 */
3876
+ /* 80 */
3736
3877
  /***/ function(module, exports, __webpack_require__) {
3737
3878
 
3738
- var equalArrays = __webpack_require__(76),
3739
- equalByTag = __webpack_require__(77),
3740
- equalObjects = __webpack_require__(78),
3741
- isArray = __webpack_require__(40),
3742
- isTypedArray = __webpack_require__(79);
3879
+ var equalArrays = __webpack_require__(81),
3880
+ equalByTag = __webpack_require__(82),
3881
+ equalObjects = __webpack_require__(83),
3882
+ isArray = __webpack_require__(44),
3883
+ isTypedArray = __webpack_require__(84);
3743
3884
 
3744
3885
  /** `Object#toString` result references. */
3745
3886
  var argsTag = '[object Arguments]',
3746
3887
  arrayTag = '[object Array]',
3888
+ funcTag = '[object Function]',
3747
3889
  objectTag = '[object Object]';
3748
3890
 
3749
3891
  /** Used for native method references. */
@@ -3753,9 +3895,8 @@ return /******/ (function(modules) { // webpackBootstrap
3753
3895
  var hasOwnProperty = objectProto.hasOwnProperty;
3754
3896
 
3755
3897
  /**
3756
- * Used to resolve the `toStringTag` of values.
3757
- * See the [ES spec](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
3758
- * for more details.
3898
+ * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
3899
+ * of values.
3759
3900
  */
3760
3901
  var objToString = objectProto.toString;
3761
3902
 
@@ -3769,12 +3910,12 @@ return /******/ (function(modules) { // webpackBootstrap
3769
3910
  * @param {Object} other The other object to compare.
3770
3911
  * @param {Function} equalFunc The function to determine equivalents of values.
3771
3912
  * @param {Function} [customizer] The function to customize comparing objects.
3772
- * @param {boolean} [isWhere] Specify performing partial comparisons.
3913
+ * @param {boolean} [isLoose] Specify performing partial comparisons.
3773
3914
  * @param {Array} [stackA=[]] Tracks traversed `value` objects.
3774
3915
  * @param {Array} [stackB=[]] Tracks traversed `other` objects.
3775
3916
  * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
3776
3917
  */
3777
- function baseIsEqualDeep(object, other, equalFunc, customizer, isWhere, stackA, stackB) {
3918
+ function baseIsEqualDeep(object, other, equalFunc, customizer, isLoose, stackA, stackB) {
3778
3919
  var objIsArr = isArray(object),
3779
3920
  othIsArr = isArray(other),
3780
3921
  objTag = arrayTag,
@@ -3796,21 +3937,27 @@ return /******/ (function(modules) { // webpackBootstrap
3796
3937
  othIsArr = isTypedArray(other);
3797
3938
  }
3798
3939
  }
3799
- var objIsObj = objTag == objectTag,
3800
- othIsObj = othTag == objectTag,
3940
+ var objIsObj = (objTag == objectTag || (isLoose && objTag == funcTag)),
3941
+ othIsObj = (othTag == objectTag || (isLoose && othTag == funcTag)),
3801
3942
  isSameTag = objTag == othTag;
3802
3943
 
3803
3944
  if (isSameTag && !(objIsArr || objIsObj)) {
3804
3945
  return equalByTag(object, other, objTag);
3805
3946
  }
3806
- var valWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),
3807
- othWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');
3947
+ if (isLoose) {
3948
+ if (!isSameTag && !(objIsObj && othIsObj)) {
3949
+ return false;
3950
+ }
3951
+ } else {
3952
+ var valWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),
3953
+ othWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');
3808
3954
 
3809
- if (valWrapped || othWrapped) {
3810
- return equalFunc(valWrapped ? object.value() : object, othWrapped ? other.value() : other, customizer, isWhere, stackA, stackB);
3811
- }
3812
- if (!isSameTag) {
3813
- return false;
3955
+ if (valWrapped || othWrapped) {
3956
+ return equalFunc(valWrapped ? object.value() : object, othWrapped ? other.value() : other, customizer, isLoose, stackA, stackB);
3957
+ }
3958
+ if (!isSameTag) {
3959
+ return false;
3960
+ }
3814
3961
  }
3815
3962
  // Assume cyclic values are equal.
3816
3963
  // For more information on detecting circular references see https://es5.github.io/#JO.
@@ -3827,7 +3974,7 @@ return /******/ (function(modules) { // webpackBootstrap
3827
3974
  stackA.push(object);
3828
3975
  stackB.push(other);
3829
3976
 
3830
- var result = (objIsArr ? equalArrays : equalObjects)(object, other, equalFunc, customizer, isWhere, stackA, stackB);
3977
+ var result = (objIsArr ? equalArrays : equalObjects)(object, other, equalFunc, customizer, isLoose, stackA, stackB);
3831
3978
 
3832
3979
  stackA.pop();
3833
3980
  stackB.pop();
@@ -3839,7 +3986,7 @@ return /******/ (function(modules) { // webpackBootstrap
3839
3986
 
3840
3987
 
3841
3988
  /***/ },
3842
- /* 76 */
3989
+ /* 81 */
3843
3990
  /***/ function(module, exports, __webpack_require__) {
3844
3991
 
3845
3992
  /**
@@ -3851,18 +3998,18 @@ return /******/ (function(modules) { // webpackBootstrap
3851
3998
  * @param {Array} other The other array to compare.
3852
3999
  * @param {Function} equalFunc The function to determine equivalents of values.
3853
4000
  * @param {Function} [customizer] The function to customize comparing arrays.
3854
- * @param {boolean} [isWhere] Specify performing partial comparisons.
4001
+ * @param {boolean} [isLoose] Specify performing partial comparisons.
3855
4002
  * @param {Array} [stackA] Tracks traversed `value` objects.
3856
4003
  * @param {Array} [stackB] Tracks traversed `other` objects.
3857
4004
  * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.
3858
4005
  */
3859
- function equalArrays(array, other, equalFunc, customizer, isWhere, stackA, stackB) {
4006
+ function equalArrays(array, other, equalFunc, customizer, isLoose, stackA, stackB) {
3860
4007
  var index = -1,
3861
4008
  arrLength = array.length,
3862
4009
  othLength = other.length,
3863
4010
  result = true;
3864
4011
 
3865
- if (arrLength != othLength && !(isWhere && othLength > arrLength)) {
4012
+ if (arrLength != othLength && !(isLoose && othLength > arrLength)) {
3866
4013
  return false;
3867
4014
  }
3868
4015
  // Deep compare the contents, ignoring non-numeric properties.
@@ -3872,23 +4019,23 @@ return /******/ (function(modules) { // webpackBootstrap
3872
4019
 
3873
4020
  result = undefined;
3874
4021
  if (customizer) {
3875
- result = isWhere
4022
+ result = isLoose
3876
4023
  ? customizer(othValue, arrValue, index)
3877
4024
  : customizer(arrValue, othValue, index);
3878
4025
  }
3879
4026
  if (typeof result == 'undefined') {
3880
4027
  // Recursively compare arrays (susceptible to call stack limits).
3881
- if (isWhere) {
4028
+ if (isLoose) {
3882
4029
  var othIndex = othLength;
3883
4030
  while (othIndex--) {
3884
4031
  othValue = other[othIndex];
3885
- result = (arrValue && arrValue === othValue) || equalFunc(arrValue, othValue, customizer, isWhere, stackA, stackB);
4032
+ result = (arrValue && arrValue === othValue) || equalFunc(arrValue, othValue, customizer, isLoose, stackA, stackB);
3886
4033
  if (result) {
3887
4034
  break;
3888
4035
  }
3889
4036
  }
3890
4037
  } else {
3891
- result = (arrValue && arrValue === othValue) || equalFunc(arrValue, othValue, customizer, isWhere, stackA, stackB);
4038
+ result = (arrValue && arrValue === othValue) || equalFunc(arrValue, othValue, customizer, isLoose, stackA, stackB);
3892
4039
  }
3893
4040
  }
3894
4041
  }
@@ -3899,7 +4046,7 @@ return /******/ (function(modules) { // webpackBootstrap
3899
4046
 
3900
4047
 
3901
4048
  /***/ },
3902
- /* 77 */
4049
+ /* 82 */
3903
4050
  /***/ function(module, exports, __webpack_require__) {
3904
4051
 
3905
4052
  /** `Object#toString` result references. */
@@ -3954,7 +4101,7 @@ return /******/ (function(modules) { // webpackBootstrap
3954
4101
 
3955
4102
 
3956
4103
  /***/ },
3957
- /* 78 */
4104
+ /* 83 */
3958
4105
  /***/ function(module, exports, __webpack_require__) {
3959
4106
 
3960
4107
  var keys = __webpack_require__(17);
@@ -3974,26 +4121,26 @@ return /******/ (function(modules) { // webpackBootstrap
3974
4121
  * @param {Object} other The other object to compare.
3975
4122
  * @param {Function} equalFunc The function to determine equivalents of values.
3976
4123
  * @param {Function} [customizer] The function to customize comparing values.
3977
- * @param {boolean} [isWhere] Specify performing partial comparisons.
4124
+ * @param {boolean} [isLoose] Specify performing partial comparisons.
3978
4125
  * @param {Array} [stackA] Tracks traversed `value` objects.
3979
4126
  * @param {Array} [stackB] Tracks traversed `other` objects.
3980
4127
  * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
3981
4128
  */
3982
- function equalObjects(object, other, equalFunc, customizer, isWhere, stackA, stackB) {
4129
+ function equalObjects(object, other, equalFunc, customizer, isLoose, stackA, stackB) {
3983
4130
  var objProps = keys(object),
3984
4131
  objLength = objProps.length,
3985
4132
  othProps = keys(other),
3986
4133
  othLength = othProps.length;
3987
4134
 
3988
- if (objLength != othLength && !isWhere) {
4135
+ if (objLength != othLength && !isLoose) {
3989
4136
  return false;
3990
4137
  }
3991
- var hasCtor,
4138
+ var skipCtor = isLoose,
3992
4139
  index = -1;
3993
4140
 
3994
4141
  while (++index < objLength) {
3995
4142
  var key = objProps[index],
3996
- result = hasOwnProperty.call(other, key);
4143
+ result = isLoose ? key in other : hasOwnProperty.call(other, key);
3997
4144
 
3998
4145
  if (result) {
3999
4146
  var objValue = object[key],
@@ -4001,27 +4148,29 @@ return /******/ (function(modules) { // webpackBootstrap
4001
4148
 
4002
4149
  result = undefined;
4003
4150
  if (customizer) {
4004
- result = isWhere
4151
+ result = isLoose
4005
4152
  ? customizer(othValue, objValue, key)
4006
4153
  : customizer(objValue, othValue, key);
4007
4154
  }
4008
4155
  if (typeof result == 'undefined') {
4009
4156
  // Recursively compare objects (susceptible to call stack limits).
4010
- result = (objValue && objValue === othValue) || equalFunc(objValue, othValue, customizer, isWhere, stackA, stackB);
4157
+ result = (objValue && objValue === othValue) || equalFunc(objValue, othValue, customizer, isLoose, stackA, stackB);
4011
4158
  }
4012
4159
  }
4013
4160
  if (!result) {
4014
4161
  return false;
4015
4162
  }
4016
- hasCtor || (hasCtor = key == 'constructor');
4163
+ skipCtor || (skipCtor = key == 'constructor');
4017
4164
  }
4018
- if (!hasCtor) {
4165
+ if (!skipCtor) {
4019
4166
  var objCtor = object.constructor,
4020
4167
  othCtor = other.constructor;
4021
4168
 
4022
4169
  // Non `Object` object instances with different constructors are not equal.
4023
- if (objCtor != othCtor && ('constructor' in object && 'constructor' in other) &&
4024
- !(typeof objCtor == 'function' && objCtor instanceof objCtor && typeof othCtor == 'function' && othCtor instanceof othCtor)) {
4170
+ if (objCtor != othCtor &&
4171
+ ('constructor' in object && 'constructor' in other) &&
4172
+ !(typeof objCtor == 'function' && objCtor instanceof objCtor &&
4173
+ typeof othCtor == 'function' && othCtor instanceof othCtor)) {
4025
4174
  return false;
4026
4175
  }
4027
4176
  }
@@ -4032,11 +4181,11 @@ return /******/ (function(modules) { // webpackBootstrap
4032
4181
 
4033
4182
 
4034
4183
  /***/ },
4035
- /* 79 */
4184
+ /* 84 */
4036
4185
  /***/ function(module, exports, __webpack_require__) {
4037
4186
 
4038
- var isLength = __webpack_require__(33),
4039
- isObjectLike = __webpack_require__(26);
4187
+ var isLength = __webpack_require__(35),
4188
+ isObjectLike = __webpack_require__(31);
4040
4189
 
4041
4190
  /** `Object#toString` result references. */
4042
4191
  var argsTag = '[object Arguments]',
@@ -4083,9 +4232,8 @@ return /******/ (function(modules) { // webpackBootstrap
4083
4232
  var objectProto = Object.prototype;
4084
4233
 
4085
4234
  /**
4086
- * Used to resolve the `toStringTag` of values.
4087
- * See the [ES spec](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
4088
- * for more details.
4235
+ * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
4236
+ * of values.
4089
4237
  */
4090
4238
  var objToString = objectProto.toString;
4091
4239
 
@@ -4106,7 +4254,7 @@ return /******/ (function(modules) { // webpackBootstrap
4106
4254
  * // => false
4107
4255
  */
4108
4256
  function isTypedArray(value) {
4109
- return (isObjectLike(value) && isLength(value.length) && typedArrayTags[objToString.call(value)]) || false;
4257
+ return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[objToString.call(value)];
4110
4258
  }
4111
4259
 
4112
4260
  module.exports = isTypedArray;
@@ -4115,5 +4263,5 @@ return /******/ (function(modules) { // webpackBootstrap
4115
4263
  /***/ }
4116
4264
  /******/ ])
4117
4265
  });
4118
-
4266
+ ;
4119
4267
  //# sourceMappingURL=fluxxor.js.map