fluxxor-rails 1.5.0 → 1.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3ef884df7d54fece25d83fdaff68aca6ce2b04cd
4
- data.tar.gz: 422f629a88869d171f0e047ae67df93eb019c43c
3
+ metadata.gz: 8df48dd8c7811b4337083a93fcc0377547aa5f28
4
+ data.tar.gz: afac8d2572b89f9ac3d26d286a287c5c4bcf4d1d
5
5
  SHA512:
6
- metadata.gz: fbbec4c8d1ee047dab95746906855c26249e1aa69428f9de7fc453157444e1b2525fe0ff7c5c4f5a1bd85b70ecf74e7c2cb8c4e15825ca6abb6fdd5cdb824038
7
- data.tar.gz: fc72ec36d0e6c78217aabacee92c1d3994aed1bf652925d0a92716055dbc55afb4f846ad3ffa363f0f0c434bc7f19b3b80437f490bb2fdbac0c2526972e289f4
6
+ metadata.gz: 2b03df4d808e2cda07c487ccd55c95e6e7a580d2a7592f2f726ff3a254bc2fe2b5bded27c162c7d567240d60393cc64b0853b89ac70bc4f505f07edbbc03f581
7
+ data.tar.gz: 28dfe2ff0491020dfaa0030d83c3e183dd1d0760e7aa226b1c0e7b19439fbc294a05f8a4e0650c1d8e71d93c4c473a7f7bbfd0e526534ca1904122d55f6ad755
@@ -1,5 +1,5 @@
1
1
  module Fluxxor
2
2
  module Rails
3
- VERSION = '1.5.0'
3
+ VERSION = '1.5.1'
4
4
  end
5
5
  end
@@ -79,7 +79,7 @@ return /******/ (function(modules) { // webpackBootstrap
79
79
  /* 1 */
80
80
  /***/ function(module, exports, __webpack_require__) {
81
81
 
82
- module.exports = "1.5.0"
82
+ module.exports = "1.5.1"
83
83
 
84
84
  /***/ },
85
85
  /* 2 */
@@ -439,7 +439,7 @@ return /******/ (function(modules) { // webpackBootstrap
439
439
  var StoreWatchMixin = function() {
440
440
  var storeNames = Array.prototype.slice.call(arguments);
441
441
  return {
442
- componentWillMount: function() {
442
+ componentDidMount: function() {
443
443
  var flux = this.props.flux || this.context.flux;
444
444
  _each(storeNames, function(store) {
445
445
  flux.store(store).on("change", this._setStateFromFlux);
@@ -1093,8 +1093,8 @@ return /******/ (function(modules) { // webpackBootstrap
1093
1093
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1094
1094
  * Available under MIT license <http://lodash.com/license>
1095
1095
  */
1096
- var baseClone = __webpack_require__(29),
1097
- baseCreateCallback = __webpack_require__(30);
1096
+ var baseClone = __webpack_require__(28),
1097
+ baseCreateCallback = __webpack_require__(29);
1098
1098
 
1099
1099
  /**
1100
1100
  * Creates a clone of `value`. If `isDeep` is `true` nested objects will also
@@ -1162,7 +1162,7 @@ return /******/ (function(modules) { // webpackBootstrap
1162
1162
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1163
1163
  * Available under MIT license <http://lodash.com/license>
1164
1164
  */
1165
- var createCallback = __webpack_require__(28),
1165
+ var createCallback = __webpack_require__(41),
1166
1166
  forOwn = __webpack_require__(14);
1167
1167
 
1168
1168
  /**
@@ -1226,9 +1226,9 @@ return /******/ (function(modules) { // webpackBootstrap
1226
1226
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1227
1227
  * Available under MIT license <http://lodash.com/license>
1228
1228
  */
1229
- var baseCreateCallback = __webpack_require__(30),
1229
+ var baseCreateCallback = __webpack_require__(29),
1230
1230
  keys = __webpack_require__(15),
1231
- objectTypes = __webpack_require__(31);
1231
+ objectTypes = __webpack_require__(30);
1232
1232
 
1233
1233
  /**
1234
1234
  * Iterates over own enumerable properties of an object, executing the callback
@@ -1282,9 +1282,9 @@ return /******/ (function(modules) { // webpackBootstrap
1282
1282
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1283
1283
  * Available under MIT license <http://lodash.com/license>
1284
1284
  */
1285
- var isNative = __webpack_require__(32),
1285
+ var isNative = __webpack_require__(31),
1286
1286
  isObject = __webpack_require__(25),
1287
- shimKeys = __webpack_require__(33);
1287
+ shimKeys = __webpack_require__(32);
1288
1288
 
1289
1289
  /* Native method shortcuts for methods with the same name as other `lodash` methods */
1290
1290
  var nativeKeys = isNative(nativeKeys = Object.keys) && nativeKeys;
@@ -1324,7 +1324,7 @@ return /******/ (function(modules) { // webpackBootstrap
1324
1324
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1325
1325
  * Available under MIT license <http://lodash.com/license>
1326
1326
  */
1327
- var createCallback = __webpack_require__(28),
1327
+ var createCallback = __webpack_require__(41),
1328
1328
  forOwn = __webpack_require__(14);
1329
1329
 
1330
1330
  /**
@@ -1471,15 +1471,15 @@ return /******/ (function(modules) { // webpackBootstrap
1471
1471
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1472
1472
  * Available under MIT license <http://lodash.com/license>
1473
1473
  */
1474
- var baseIndexOf = __webpack_require__(34),
1475
- cacheIndexOf = __webpack_require__(35),
1476
- createCache = __webpack_require__(36),
1477
- getArray = __webpack_require__(37),
1474
+ var baseIndexOf = __webpack_require__(33),
1475
+ cacheIndexOf = __webpack_require__(34),
1476
+ createCache = __webpack_require__(35),
1477
+ getArray = __webpack_require__(36),
1478
1478
  isArguments = __webpack_require__(26),
1479
1479
  isArray = __webpack_require__(27),
1480
- largeArraySize = __webpack_require__(38),
1481
- releaseArray = __webpack_require__(39),
1482
- releaseObject = __webpack_require__(40);
1480
+ largeArraySize = __webpack_require__(37),
1481
+ releaseArray = __webpack_require__(38),
1482
+ releaseObject = __webpack_require__(39);
1483
1483
 
1484
1484
  /**
1485
1485
  * Creates an array of unique values present in all provided arrays using
@@ -1560,8 +1560,8 @@ return /******/ (function(modules) { // webpackBootstrap
1560
1560
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1561
1561
  * Available under MIT license <http://lodash.com/license>
1562
1562
  */
1563
- var baseUniq = __webpack_require__(41),
1564
- createCallback = __webpack_require__(28);
1563
+ var baseUniq = __webpack_require__(40),
1564
+ createCallback = __webpack_require__(41);
1565
1565
 
1566
1566
  /**
1567
1567
  * Creates a duplicate-value-free version of an array using strict equality
@@ -1635,7 +1635,7 @@ return /******/ (function(modules) { // webpackBootstrap
1635
1635
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1636
1636
  * Available under MIT license <http://lodash.com/license>
1637
1637
  */
1638
- var createCallback = __webpack_require__(28),
1638
+ var createCallback = __webpack_require__(41),
1639
1639
  forOwn = __webpack_require__(14);
1640
1640
 
1641
1641
  /**
@@ -1711,7 +1711,7 @@ return /******/ (function(modules) { // webpackBootstrap
1711
1711
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1712
1712
  * Available under MIT license <http://lodash.com/license>
1713
1713
  */
1714
- var baseCreateCallback = __webpack_require__(30),
1714
+ var baseCreateCallback = __webpack_require__(29),
1715
1715
  forOwn = __webpack_require__(14);
1716
1716
 
1717
1717
  /**
@@ -1814,7 +1814,7 @@ return /******/ (function(modules) { // webpackBootstrap
1814
1814
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1815
1815
  * Available under MIT license <http://lodash.com/license>
1816
1816
  */
1817
- var createCallback = __webpack_require__(28),
1817
+ var createCallback = __webpack_require__(41),
1818
1818
  forOwn = __webpack_require__(14);
1819
1819
 
1820
1820
  /**
@@ -1887,7 +1887,7 @@ return /******/ (function(modules) { // webpackBootstrap
1887
1887
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1888
1888
  * Available under MIT license <http://lodash.com/license>
1889
1889
  */
1890
- var objectTypes = __webpack_require__(31);
1890
+ var objectTypes = __webpack_require__(30);
1891
1891
 
1892
1892
  /**
1893
1893
  * Checks if `value` is the language type of Object.
@@ -1978,7 +1978,7 @@ return /******/ (function(modules) { // webpackBootstrap
1978
1978
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1979
1979
  * Available under MIT license <http://lodash.com/license>
1980
1980
  */
1981
- var isNative = __webpack_require__(32);
1981
+ var isNative = __webpack_require__(31);
1982
1982
 
1983
1983
  /** `Object#toString` result shortcuts */
1984
1984
  var arrayClass = '[object Array]';
@@ -2029,101 +2029,14 @@ return /******/ (function(modules) { // webpackBootstrap
2029
2029
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
2030
2030
  * Available under MIT license <http://lodash.com/license>
2031
2031
  */
2032
- var baseCreateCallback = __webpack_require__(30),
2033
- baseIsEqual = __webpack_require__(42),
2034
- isObject = __webpack_require__(25),
2035
- keys = __webpack_require__(15),
2036
- property = __webpack_require__(54);
2037
-
2038
- /**
2039
- * Produces a callback bound to an optional `thisArg`. If `func` is a property
2040
- * name the created callback will return the property value for a given element.
2041
- * If `func` is an object the created callback will return `true` for elements
2042
- * that contain the equivalent object properties, otherwise it will return `false`.
2043
- *
2044
- * @static
2045
- * @memberOf _
2046
- * @category Utilities
2047
- * @param {*} [func=identity] The value to convert to a callback.
2048
- * @param {*} [thisArg] The `this` binding of the created callback.
2049
- * @param {number} [argCount] The number of arguments the callback accepts.
2050
- * @returns {Function} Returns a callback function.
2051
- * @example
2052
- *
2053
- * var characters = [
2054
- * { 'name': 'barney', 'age': 36 },
2055
- * { 'name': 'fred', 'age': 40 }
2056
- * ];
2057
- *
2058
- * // wrap to create custom callback shorthands
2059
- * _.createCallback = _.wrap(_.createCallback, function(func, callback, thisArg) {
2060
- * var match = /^(.+?)__([gl]t)(.+)$/.exec(callback);
2061
- * return !match ? func(callback, thisArg) : function(object) {
2062
- * return match[2] == 'gt' ? object[match[1]] > match[3] : object[match[1]] < match[3];
2063
- * };
2064
- * });
2065
- *
2066
- * _.filter(characters, 'age__gt38');
2067
- * // => [{ 'name': 'fred', 'age': 40 }]
2068
- */
2069
- function createCallback(func, thisArg, argCount) {
2070
- var type = typeof func;
2071
- if (func == null || type == 'function') {
2072
- return baseCreateCallback(func, thisArg, argCount);
2073
- }
2074
- // handle "_.pluck" style callback shorthands
2075
- if (type != 'object') {
2076
- return property(func);
2077
- }
2078
- var props = keys(func),
2079
- key = props[0],
2080
- a = func[key];
2081
-
2082
- // handle "_.where" style callback shorthands
2083
- if (props.length == 1 && a === a && !isObject(a)) {
2084
- // fast path the common case of providing an object with a single
2085
- // property containing a primitive value
2086
- return function(object) {
2087
- var b = object[key];
2088
- return a === b && (a !== 0 || (1 / a == 1 / b));
2089
- };
2090
- }
2091
- return function(object) {
2092
- var length = props.length,
2093
- result = false;
2094
-
2095
- while (length--) {
2096
- if (!(result = baseIsEqual(object[props[length]], func[props[length]], null, true))) {
2097
- break;
2098
- }
2099
- }
2100
- return result;
2101
- };
2102
- }
2103
-
2104
- module.exports = createCallback;
2105
-
2106
-
2107
- /***/ },
2108
- /* 29 */
2109
- /***/ function(module, exports, __webpack_require__) {
2110
-
2111
- /**
2112
- * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
2113
- * Build: `lodash modularize modern exports="node" -o ./modern/`
2114
- * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
2115
- * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
2116
- * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
2117
- * Available under MIT license <http://lodash.com/license>
2118
- */
2119
- var assign = __webpack_require__(43),
2032
+ var assign = __webpack_require__(42),
2120
2033
  forEach = __webpack_require__(22),
2121
2034
  forOwn = __webpack_require__(14),
2122
- getArray = __webpack_require__(37),
2035
+ getArray = __webpack_require__(36),
2123
2036
  isArray = __webpack_require__(27),
2124
2037
  isObject = __webpack_require__(25),
2125
- releaseArray = __webpack_require__(39),
2126
- slice = __webpack_require__(44);
2038
+ releaseArray = __webpack_require__(38),
2039
+ slice = __webpack_require__(43);
2127
2040
 
2128
2041
  /** Used to match regexp flags from their coerced string values */
2129
2042
  var reFlags = /\w*$/;
@@ -2263,7 +2176,7 @@ return /******/ (function(modules) { // webpackBootstrap
2263
2176
 
2264
2177
 
2265
2178
  /***/ },
2266
- /* 30 */
2179
+ /* 29 */
2267
2180
  /***/ function(module, exports, __webpack_require__) {
2268
2181
 
2269
2182
  /**
@@ -2274,10 +2187,10 @@ return /******/ (function(modules) { // webpackBootstrap
2274
2187
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
2275
2188
  * Available under MIT license <http://lodash.com/license>
2276
2189
  */
2277
- var bind = __webpack_require__(45),
2278
- identity = __webpack_require__(55),
2279
- setBindData = __webpack_require__(46),
2280
- support = __webpack_require__(47);
2190
+ var bind = __webpack_require__(44),
2191
+ identity = __webpack_require__(54),
2192
+ setBindData = __webpack_require__(45),
2193
+ support = __webpack_require__(46);
2281
2194
 
2282
2195
  /** Used to detected named functions */
2283
2196
  var reFuncName = /^\s*function[ \n\r\t]+\w/;
@@ -2349,7 +2262,7 @@ return /******/ (function(modules) { // webpackBootstrap
2349
2262
 
2350
2263
 
2351
2264
  /***/ },
2352
- /* 31 */
2265
+ /* 30 */
2353
2266
  /***/ function(module, exports, __webpack_require__) {
2354
2267
 
2355
2268
  /**
@@ -2375,7 +2288,7 @@ return /******/ (function(modules) { // webpackBootstrap
2375
2288
 
2376
2289
 
2377
2290
  /***/ },
2378
- /* 32 */
2291
+ /* 31 */
2379
2292
  /***/ function(module, exports, __webpack_require__) {
2380
2293
 
2381
2294
  /**
@@ -2415,7 +2328,7 @@ return /******/ (function(modules) { // webpackBootstrap
2415
2328
 
2416
2329
 
2417
2330
  /***/ },
2418
- /* 33 */
2331
+ /* 32 */
2419
2332
  /***/ function(module, exports, __webpack_require__) {
2420
2333
 
2421
2334
  /**
@@ -2426,7 +2339,7 @@ return /******/ (function(modules) { // webpackBootstrap
2426
2339
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
2427
2340
  * Available under MIT license <http://lodash.com/license>
2428
2341
  */
2429
- var objectTypes = __webpack_require__(31);
2342
+ var objectTypes = __webpack_require__(30);
2430
2343
 
2431
2344
  /** Used for native method references */
2432
2345
  var objectProto = Object.prototype;
@@ -2459,7 +2372,7 @@ return /******/ (function(modules) { // webpackBootstrap
2459
2372
 
2460
2373
 
2461
2374
  /***/ },
2462
- /* 34 */
2375
+ /* 33 */
2463
2376
  /***/ function(module, exports, __webpack_require__) {
2464
2377
 
2465
2378
  /**
@@ -2497,7 +2410,7 @@ return /******/ (function(modules) { // webpackBootstrap
2497
2410
 
2498
2411
 
2499
2412
  /***/ },
2500
- /* 35 */
2413
+ /* 34 */
2501
2414
  /***/ function(module, exports, __webpack_require__) {
2502
2415
 
2503
2416
  /**
@@ -2508,8 +2421,8 @@ return /******/ (function(modules) { // webpackBootstrap
2508
2421
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
2509
2422
  * Available under MIT license <http://lodash.com/license>
2510
2423
  */
2511
- var baseIndexOf = __webpack_require__(34),
2512
- keyPrefix = __webpack_require__(48);
2424
+ var baseIndexOf = __webpack_require__(33),
2425
+ keyPrefix = __webpack_require__(47);
2513
2426
 
2514
2427
  /**
2515
2428
  * An implementation of `_.contains` for cache objects that mimics the return
@@ -2542,7 +2455,7 @@ return /******/ (function(modules) { // webpackBootstrap
2542
2455
 
2543
2456
 
2544
2457
  /***/ },
2545
- /* 36 */
2458
+ /* 35 */
2546
2459
  /***/ function(module, exports, __webpack_require__) {
2547
2460
 
2548
2461
  /**
@@ -2553,9 +2466,9 @@ return /******/ (function(modules) { // webpackBootstrap
2553
2466
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
2554
2467
  * Available under MIT license <http://lodash.com/license>
2555
2468
  */
2556
- var cachePush = __webpack_require__(49),
2557
- getObject = __webpack_require__(50),
2558
- releaseObject = __webpack_require__(40);
2469
+ var cachePush = __webpack_require__(48),
2470
+ getObject = __webpack_require__(49),
2471
+ releaseObject = __webpack_require__(39);
2559
2472
 
2560
2473
  /**
2561
2474
  * Creates a cache object to optimize linear searches of large arrays.
@@ -2593,7 +2506,7 @@ return /******/ (function(modules) { // webpackBootstrap
2593
2506
 
2594
2507
 
2595
2508
  /***/ },
2596
- /* 37 */
2509
+ /* 36 */
2597
2510
  /***/ function(module, exports, __webpack_require__) {
2598
2511
 
2599
2512
  /**
@@ -2604,7 +2517,7 @@ return /******/ (function(modules) { // webpackBootstrap
2604
2517
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
2605
2518
  * Available under MIT license <http://lodash.com/license>
2606
2519
  */
2607
- var arrayPool = __webpack_require__(51);
2520
+ var arrayPool = __webpack_require__(50);
2608
2521
 
2609
2522
  /**
2610
2523
  * Gets an array from the array pool or creates a new one if the pool is empty.
@@ -2620,7 +2533,7 @@ return /******/ (function(modules) { // webpackBootstrap
2620
2533
 
2621
2534
 
2622
2535
  /***/ },
2623
- /* 38 */
2536
+ /* 37 */
2624
2537
  /***/ function(module, exports, __webpack_require__) {
2625
2538
 
2626
2539
  /**
@@ -2639,7 +2552,7 @@ return /******/ (function(modules) { // webpackBootstrap
2639
2552
 
2640
2553
 
2641
2554
  /***/ },
2642
- /* 39 */
2555
+ /* 38 */
2643
2556
  /***/ function(module, exports, __webpack_require__) {
2644
2557
 
2645
2558
  /**
@@ -2650,8 +2563,8 @@ return /******/ (function(modules) { // webpackBootstrap
2650
2563
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
2651
2564
  * Available under MIT license <http://lodash.com/license>
2652
2565
  */
2653
- var arrayPool = __webpack_require__(51),
2654
- maxPoolSize = __webpack_require__(52);
2566
+ var arrayPool = __webpack_require__(50),
2567
+ maxPoolSize = __webpack_require__(51);
2655
2568
 
2656
2569
  /**
2657
2570
  * Releases the given array back to the array pool.
@@ -2670,7 +2583,7 @@ return /******/ (function(modules) { // webpackBootstrap
2670
2583
 
2671
2584
 
2672
2585
  /***/ },
2673
- /* 40 */
2586
+ /* 39 */
2674
2587
  /***/ function(module, exports, __webpack_require__) {
2675
2588
 
2676
2589
  /**
@@ -2681,8 +2594,8 @@ return /******/ (function(modules) { // webpackBootstrap
2681
2594
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
2682
2595
  * Available under MIT license <http://lodash.com/license>
2683
2596
  */
2684
- var maxPoolSize = __webpack_require__(52),
2685
- objectPool = __webpack_require__(53);
2597
+ var maxPoolSize = __webpack_require__(51),
2598
+ objectPool = __webpack_require__(52);
2686
2599
 
2687
2600
  /**
2688
2601
  * Releases the given object back to the object pool.
@@ -2705,7 +2618,7 @@ return /******/ (function(modules) { // webpackBootstrap
2705
2618
 
2706
2619
 
2707
2620
  /***/ },
2708
- /* 41 */
2621
+ /* 40 */
2709
2622
  /***/ function(module, exports, __webpack_require__) {
2710
2623
 
2711
2624
  /**
@@ -2716,13 +2629,13 @@ return /******/ (function(modules) { // webpackBootstrap
2716
2629
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
2717
2630
  * Available under MIT license <http://lodash.com/license>
2718
2631
  */
2719
- var baseIndexOf = __webpack_require__(34),
2720
- cacheIndexOf = __webpack_require__(35),
2721
- createCache = __webpack_require__(36),
2722
- getArray = __webpack_require__(37),
2723
- largeArraySize = __webpack_require__(38),
2724
- releaseArray = __webpack_require__(39),
2725
- releaseObject = __webpack_require__(40);
2632
+ var baseIndexOf = __webpack_require__(33),
2633
+ cacheIndexOf = __webpack_require__(34),
2634
+ createCache = __webpack_require__(35),
2635
+ getArray = __webpack_require__(36),
2636
+ largeArraySize = __webpack_require__(37),
2637
+ releaseArray = __webpack_require__(38),
2638
+ releaseObject = __webpack_require__(39);
2726
2639
 
2727
2640
  /**
2728
2641
  * The base implementation of `_.uniq` without support for callback shorthands
@@ -2775,7 +2688,7 @@ return /******/ (function(modules) { // webpackBootstrap
2775
2688
 
2776
2689
 
2777
2690
  /***/ },
2778
- /* 42 */
2691
+ /* 41 */
2779
2692
  /***/ function(module, exports, __webpack_require__) {
2780
2693
 
2781
2694
  /**
@@ -2786,211 +2699,83 @@ return /******/ (function(modules) { // webpackBootstrap
2786
2699
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
2787
2700
  * Available under MIT license <http://lodash.com/license>
2788
2701
  */
2789
- var forIn = __webpack_require__(56),
2790
- getArray = __webpack_require__(37),
2791
- isFunction = __webpack_require__(17),
2792
- objectTypes = __webpack_require__(31),
2793
- releaseArray = __webpack_require__(39);
2794
-
2795
- /** `Object#toString` result shortcuts */
2796
- var argsClass = '[object Arguments]',
2797
- arrayClass = '[object Array]',
2798
- boolClass = '[object Boolean]',
2799
- dateClass = '[object Date]',
2800
- numberClass = '[object Number]',
2801
- objectClass = '[object Object]',
2802
- regexpClass = '[object RegExp]',
2803
- stringClass = '[object String]';
2804
-
2805
- /** Used for native method references */
2806
- var objectProto = Object.prototype;
2807
-
2808
- /** Used to resolve the internal [[Class]] of values */
2809
- var toString = objectProto.toString;
2810
-
2811
- /** Native method shortcuts */
2812
- var hasOwnProperty = objectProto.hasOwnProperty;
2702
+ var baseCreateCallback = __webpack_require__(29),
2703
+ baseIsEqual = __webpack_require__(53),
2704
+ isObject = __webpack_require__(25),
2705
+ keys = __webpack_require__(15),
2706
+ property = __webpack_require__(55);
2813
2707
 
2814
2708
  /**
2815
- * The base implementation of `_.isEqual`, without support for `thisArg` binding,
2816
- * that allows partial "_.where" style comparisons.
2709
+ * Produces a callback bound to an optional `thisArg`. If `func` is a property
2710
+ * name the created callback will return the property value for a given element.
2711
+ * If `func` is an object the created callback will return `true` for elements
2712
+ * that contain the equivalent object properties, otherwise it will return `false`.
2817
2713
  *
2818
- * @private
2819
- * @param {*} a The value to compare.
2820
- * @param {*} b The other value to compare.
2821
- * @param {Function} [callback] The function to customize comparing values.
2822
- * @param {Function} [isWhere=false] A flag to indicate performing partial comparisons.
2823
- * @param {Array} [stackA=[]] Tracks traversed `a` objects.
2824
- * @param {Array} [stackB=[]] Tracks traversed `b` objects.
2825
- * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
2714
+ * @static
2715
+ * @memberOf _
2716
+ * @category Utilities
2717
+ * @param {*} [func=identity] The value to convert to a callback.
2718
+ * @param {*} [thisArg] The `this` binding of the created callback.
2719
+ * @param {number} [argCount] The number of arguments the callback accepts.
2720
+ * @returns {Function} Returns a callback function.
2721
+ * @example
2722
+ *
2723
+ * var characters = [
2724
+ * { 'name': 'barney', 'age': 36 },
2725
+ * { 'name': 'fred', 'age': 40 }
2726
+ * ];
2727
+ *
2728
+ * // wrap to create custom callback shorthands
2729
+ * _.createCallback = _.wrap(_.createCallback, function(func, callback, thisArg) {
2730
+ * var match = /^(.+?)__([gl]t)(.+)$/.exec(callback);
2731
+ * return !match ? func(callback, thisArg) : function(object) {
2732
+ * return match[2] == 'gt' ? object[match[1]] > match[3] : object[match[1]] < match[3];
2733
+ * };
2734
+ * });
2735
+ *
2736
+ * _.filter(characters, 'age__gt38');
2737
+ * // => [{ 'name': 'fred', 'age': 40 }]
2826
2738
  */
2827
- function baseIsEqual(a, b, callback, isWhere, stackA, stackB) {
2828
- // used to indicate that when comparing objects, `a` has at least the properties of `b`
2829
- if (callback) {
2830
- var result = callback(a, b);
2831
- if (typeof result != 'undefined') {
2832
- return !!result;
2833
- }
2834
- }
2835
- // exit early for identical values
2836
- if (a === b) {
2837
- // treat `+0` vs. `-0` as not equal
2838
- return a !== 0 || (1 / a == 1 / b);
2839
- }
2840
- var type = typeof a,
2841
- otherType = typeof b;
2842
-
2843
- // exit early for unlike primitive values
2844
- if (a === a &&
2845
- !(a && objectTypes[type]) &&
2846
- !(b && objectTypes[otherType])) {
2847
- return false;
2739
+ function createCallback(func, thisArg, argCount) {
2740
+ var type = typeof func;
2741
+ if (func == null || type == 'function') {
2742
+ return baseCreateCallback(func, thisArg, argCount);
2848
2743
  }
2849
- // exit early for `null` and `undefined` avoiding ES3's Function#call behavior
2850
- // http://es5.github.io/#x15.3.4.4
2851
- if (a == null || b == null) {
2852
- return a === b;
2744
+ // handle "_.pluck" style callback shorthands
2745
+ if (type != 'object') {
2746
+ return property(func);
2853
2747
  }
2854
- // compare [[Class]] names
2855
- var className = toString.call(a),
2856
- otherClass = toString.call(b);
2748
+ var props = keys(func),
2749
+ key = props[0],
2750
+ a = func[key];
2857
2751
 
2858
- if (className == argsClass) {
2859
- className = objectClass;
2860
- }
2861
- if (otherClass == argsClass) {
2862
- otherClass = objectClass;
2863
- }
2864
- if (className != otherClass) {
2865
- return false;
2752
+ // handle "_.where" style callback shorthands
2753
+ if (props.length == 1 && a === a && !isObject(a)) {
2754
+ // fast path the common case of providing an object with a single
2755
+ // property containing a primitive value
2756
+ return function(object) {
2757
+ var b = object[key];
2758
+ return a === b && (a !== 0 || (1 / a == 1 / b));
2759
+ };
2866
2760
  }
2867
- switch (className) {
2868
- case boolClass:
2869
- case dateClass:
2870
- // coerce dates and booleans to numbers, dates to milliseconds and booleans
2871
- // to `1` or `0` treating invalid dates coerced to `NaN` as not equal
2872
- return +a == +b;
2761
+ return function(object) {
2762
+ var length = props.length,
2763
+ result = false;
2873
2764
 
2874
- case numberClass:
2875
- // treat `NaN` vs. `NaN` as equal
2876
- return (a != +a)
2877
- ? b != +b
2878
- // but treat `+0` vs. `-0` as not equal
2879
- : (a == 0 ? (1 / a == 1 / b) : a == +b);
2765
+ while (length--) {
2766
+ if (!(result = baseIsEqual(object[props[length]], func[props[length]], null, true))) {
2767
+ break;
2768
+ }
2769
+ }
2770
+ return result;
2771
+ };
2772
+ }
2880
2773
 
2881
- case regexpClass:
2882
- case stringClass:
2883
- // coerce regexes to strings (http://es5.github.io/#x15.10.6.4)
2884
- // treat string primitives and their corresponding object instances as equal
2885
- return a == String(b);
2886
- }
2887
- var isArr = className == arrayClass;
2888
- if (!isArr) {
2889
- // unwrap any `lodash` wrapped values
2890
- var aWrapped = hasOwnProperty.call(a, '__wrapped__'),
2891
- bWrapped = hasOwnProperty.call(b, '__wrapped__');
2892
-
2893
- if (aWrapped || bWrapped) {
2894
- return baseIsEqual(aWrapped ? a.__wrapped__ : a, bWrapped ? b.__wrapped__ : b, callback, isWhere, stackA, stackB);
2895
- }
2896
- // exit for functions and DOM nodes
2897
- if (className != objectClass) {
2898
- return false;
2899
- }
2900
- // in older versions of Opera, `arguments` objects have `Array` constructors
2901
- var ctorA = a.constructor,
2902
- ctorB = b.constructor;
2903
-
2904
- // non `Object` object instances with different constructors are not equal
2905
- if (ctorA != ctorB &&
2906
- !(isFunction(ctorA) && ctorA instanceof ctorA && isFunction(ctorB) && ctorB instanceof ctorB) &&
2907
- ('constructor' in a && 'constructor' in b)
2908
- ) {
2909
- return false;
2910
- }
2911
- }
2912
- // assume cyclic structures are equal
2913
- // the algorithm for detecting cyclic structures is adapted from ES 5.1
2914
- // section 15.12.3, abstract operation `JO` (http://es5.github.io/#x15.12.3)
2915
- var initedStack = !stackA;
2916
- stackA || (stackA = getArray());
2917
- stackB || (stackB = getArray());
2918
-
2919
- var length = stackA.length;
2920
- while (length--) {
2921
- if (stackA[length] == a) {
2922
- return stackB[length] == b;
2923
- }
2924
- }
2925
- var size = 0;
2926
- result = true;
2927
-
2928
- // add `a` and `b` to the stack of traversed objects
2929
- stackA.push(a);
2930
- stackB.push(b);
2931
-
2932
- // recursively compare objects and arrays (susceptible to call stack limits)
2933
- if (isArr) {
2934
- // compare lengths to determine if a deep comparison is necessary
2935
- length = a.length;
2936
- size = b.length;
2937
- result = size == length;
2938
-
2939
- if (result || isWhere) {
2940
- // deep compare the contents, ignoring non-numeric properties
2941
- while (size--) {
2942
- var index = length,
2943
- value = b[size];
2944
-
2945
- if (isWhere) {
2946
- while (index--) {
2947
- if ((result = baseIsEqual(a[index], value, callback, isWhere, stackA, stackB))) {
2948
- break;
2949
- }
2950
- }
2951
- } else if (!(result = baseIsEqual(a[size], value, callback, isWhere, stackA, stackB))) {
2952
- break;
2953
- }
2954
- }
2955
- }
2956
- }
2957
- else {
2958
- // deep compare objects using `forIn`, instead of `forOwn`, to avoid `Object.keys`
2959
- // which, in this case, is more costly
2960
- forIn(b, function(value, key, b) {
2961
- if (hasOwnProperty.call(b, key)) {
2962
- // count the number of properties.
2963
- size++;
2964
- // deep compare each property value.
2965
- return (result = hasOwnProperty.call(a, key) && baseIsEqual(a[key], value, callback, isWhere, stackA, stackB));
2966
- }
2967
- });
2968
-
2969
- if (result && !isWhere) {
2970
- // ensure both objects have the same number of properties
2971
- forIn(a, function(value, key, a) {
2972
- if (hasOwnProperty.call(a, key)) {
2973
- // `size` will be `-1` if `a` has more properties than `b`
2974
- return (result = --size > -1);
2975
- }
2976
- });
2977
- }
2978
- }
2979
- stackA.pop();
2980
- stackB.pop();
2981
-
2982
- if (initedStack) {
2983
- releaseArray(stackA);
2984
- releaseArray(stackB);
2985
- }
2986
- return result;
2987
- }
2988
-
2989
- module.exports = baseIsEqual;
2774
+ module.exports = createCallback;
2990
2775
 
2991
2776
 
2992
2777
  /***/ },
2993
- /* 43 */
2778
+ /* 42 */
2994
2779
  /***/ function(module, exports, __webpack_require__) {
2995
2780
 
2996
2781
  /**
@@ -3001,9 +2786,9 @@ return /******/ (function(modules) { // webpackBootstrap
3001
2786
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
3002
2787
  * Available under MIT license <http://lodash.com/license>
3003
2788
  */
3004
- var baseCreateCallback = __webpack_require__(30),
2789
+ var baseCreateCallback = __webpack_require__(29),
3005
2790
  keys = __webpack_require__(15),
3006
- objectTypes = __webpack_require__(31);
2791
+ objectTypes = __webpack_require__(30);
3007
2792
 
3008
2793
  /**
3009
2794
  * Assigns own enumerable properties of source object(s) to the destination
@@ -3066,7 +2851,7 @@ return /******/ (function(modules) { // webpackBootstrap
3066
2851
 
3067
2852
 
3068
2853
  /***/ },
3069
- /* 44 */
2854
+ /* 43 */
3070
2855
  /***/ function(module, exports, __webpack_require__) {
3071
2856
 
3072
2857
  /**
@@ -3110,7 +2895,7 @@ return /******/ (function(modules) { // webpackBootstrap
3110
2895
 
3111
2896
 
3112
2897
  /***/ },
3113
- /* 45 */
2898
+ /* 44 */
3114
2899
  /***/ function(module, exports, __webpack_require__) {
3115
2900
 
3116
2901
  /**
@@ -3121,8 +2906,8 @@ return /******/ (function(modules) { // webpackBootstrap
3121
2906
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
3122
2907
  * Available under MIT license <http://lodash.com/license>
3123
2908
  */
3124
- var createWrapper = __webpack_require__(57),
3125
- slice = __webpack_require__(44);
2909
+ var createWrapper = __webpack_require__(56),
2910
+ slice = __webpack_require__(43);
3126
2911
 
3127
2912
  /**
3128
2913
  * Creates a function that, when called, invokes `func` with the `this`
@@ -3156,7 +2941,7 @@ return /******/ (function(modules) { // webpackBootstrap
3156
2941
 
3157
2942
 
3158
2943
  /***/ },
3159
- /* 46 */
2944
+ /* 45 */
3160
2945
  /***/ function(module, exports, __webpack_require__) {
3161
2946
 
3162
2947
  /**
@@ -3167,8 +2952,8 @@ return /******/ (function(modules) { // webpackBootstrap
3167
2952
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
3168
2953
  * Available under MIT license <http://lodash.com/license>
3169
2954
  */
3170
- var isNative = __webpack_require__(32),
3171
- noop = __webpack_require__(58);
2955
+ var isNative = __webpack_require__(31),
2956
+ noop = __webpack_require__(57);
3172
2957
 
3173
2958
  /** Used as the property descriptor for `__bindData__` */
3174
2959
  var descriptor = {
@@ -3205,7 +2990,7 @@ return /******/ (function(modules) { // webpackBootstrap
3205
2990
 
3206
2991
 
3207
2992
  /***/ },
3208
- /* 47 */
2993
+ /* 46 */
3209
2994
  /***/ function(module, exports, __webpack_require__) {
3210
2995
 
3211
2996
  /* WEBPACK VAR INJECTION */(function(global) {/**
@@ -3216,7 +3001,7 @@ return /******/ (function(modules) { // webpackBootstrap
3216
3001
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
3217
3002
  * Available under MIT license <http://lodash.com/license>
3218
3003
  */
3219
- var isNative = __webpack_require__(32);
3004
+ var isNative = __webpack_require__(31);
3220
3005
 
3221
3006
  /** Used to detect functions containing a `this` reference */
3222
3007
  var reThis = /\bthis\b/;
@@ -3252,7 +3037,7 @@ return /******/ (function(modules) { // webpackBootstrap
3252
3037
  /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))
3253
3038
 
3254
3039
  /***/ },
3255
- /* 48 */
3040
+ /* 47 */
3256
3041
  /***/ function(module, exports, __webpack_require__) {
3257
3042
 
3258
3043
  /**
@@ -3271,7 +3056,7 @@ return /******/ (function(modules) { // webpackBootstrap
3271
3056
 
3272
3057
 
3273
3058
  /***/ },
3274
- /* 49 */
3059
+ /* 48 */
3275
3060
  /***/ function(module, exports, __webpack_require__) {
3276
3061
 
3277
3062
  /**
@@ -3282,7 +3067,7 @@ return /******/ (function(modules) { // webpackBootstrap
3282
3067
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
3283
3068
  * Available under MIT license <http://lodash.com/license>
3284
3069
  */
3285
- var keyPrefix = __webpack_require__(48);
3070
+ var keyPrefix = __webpack_require__(47);
3286
3071
 
3287
3072
  /**
3288
3073
  * Adds a given value to the corresponding cache object.
@@ -3315,7 +3100,7 @@ return /******/ (function(modules) { // webpackBootstrap
3315
3100
 
3316
3101
 
3317
3102
  /***/ },
3318
- /* 50 */
3103
+ /* 49 */
3319
3104
  /***/ function(module, exports, __webpack_require__) {
3320
3105
 
3321
3106
  /**
@@ -3326,7 +3111,7 @@ return /******/ (function(modules) { // webpackBootstrap
3326
3111
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
3327
3112
  * Available under MIT license <http://lodash.com/license>
3328
3113
  */
3329
- var objectPool = __webpack_require__(53);
3114
+ var objectPool = __webpack_require__(52);
3330
3115
 
3331
3116
  /**
3332
3117
  * Gets an object from the object pool or creates a new one if the pool is empty.
@@ -3356,7 +3141,7 @@ return /******/ (function(modules) { // webpackBootstrap
3356
3141
 
3357
3142
 
3358
3143
  /***/ },
3359
- /* 51 */
3144
+ /* 50 */
3360
3145
  /***/ function(module, exports, __webpack_require__) {
3361
3146
 
3362
3147
  /**
@@ -3375,7 +3160,7 @@ return /******/ (function(modules) { // webpackBootstrap
3375
3160
 
3376
3161
 
3377
3162
  /***/ },
3378
- /* 52 */
3163
+ /* 51 */
3379
3164
  /***/ function(module, exports, __webpack_require__) {
3380
3165
 
3381
3166
  /**
@@ -3394,7 +3179,7 @@ return /******/ (function(modules) { // webpackBootstrap
3394
3179
 
3395
3180
 
3396
3181
  /***/ },
3397
- /* 53 */
3182
+ /* 52 */
3398
3183
  /***/ function(module, exports, __webpack_require__) {
3399
3184
 
3400
3185
  /**
@@ -3413,7 +3198,7 @@ return /******/ (function(modules) { // webpackBootstrap
3413
3198
 
3414
3199
 
3415
3200
  /***/ },
3416
- /* 54 */
3201
+ /* 53 */
3417
3202
  /***/ function(module, exports, __webpack_require__) {
3418
3203
 
3419
3204
  /**
@@ -3424,42 +3209,211 @@ return /******/ (function(modules) { // webpackBootstrap
3424
3209
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
3425
3210
  * Available under MIT license <http://lodash.com/license>
3426
3211
  */
3212
+ var forIn = __webpack_require__(58),
3213
+ getArray = __webpack_require__(36),
3214
+ isFunction = __webpack_require__(17),
3215
+ objectTypes = __webpack_require__(30),
3216
+ releaseArray = __webpack_require__(38);
3217
+
3218
+ /** `Object#toString` result shortcuts */
3219
+ var argsClass = '[object Arguments]',
3220
+ arrayClass = '[object Array]',
3221
+ boolClass = '[object Boolean]',
3222
+ dateClass = '[object Date]',
3223
+ numberClass = '[object Number]',
3224
+ objectClass = '[object Object]',
3225
+ regexpClass = '[object RegExp]',
3226
+ stringClass = '[object String]';
3227
+
3228
+ /** Used for native method references */
3229
+ var objectProto = Object.prototype;
3230
+
3231
+ /** Used to resolve the internal [[Class]] of values */
3232
+ var toString = objectProto.toString;
3233
+
3234
+ /** Native method shortcuts */
3235
+ var hasOwnProperty = objectProto.hasOwnProperty;
3427
3236
 
3428
3237
  /**
3429
- * Creates a "_.pluck" style function, which returns the `key` value of a
3430
- * given object.
3431
- *
3432
- * @static
3433
- * @memberOf _
3434
- * @category Utilities
3435
- * @param {string} key The name of the property to retrieve.
3436
- * @returns {Function} Returns the new function.
3437
- * @example
3438
- *
3439
- * var characters = [
3440
- * { 'name': 'fred', 'age': 40 },
3441
- * { 'name': 'barney', 'age': 36 }
3442
- * ];
3443
- *
3444
- * var getName = _.property('name');
3445
- *
3446
- * _.map(characters, getName);
3447
- * // => ['barney', 'fred']
3238
+ * The base implementation of `_.isEqual`, without support for `thisArg` binding,
3239
+ * that allows partial "_.where" style comparisons.
3448
3240
  *
3449
- * _.sortBy(characters, getName);
3450
- * // => [{ 'name': 'barney', 'age': 36 }, { 'name': 'fred', 'age': 40 }]
3241
+ * @private
3242
+ * @param {*} a The value to compare.
3243
+ * @param {*} b The other value to compare.
3244
+ * @param {Function} [callback] The function to customize comparing values.
3245
+ * @param {Function} [isWhere=false] A flag to indicate performing partial comparisons.
3246
+ * @param {Array} [stackA=[]] Tracks traversed `a` objects.
3247
+ * @param {Array} [stackB=[]] Tracks traversed `b` objects.
3248
+ * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
3451
3249
  */
3452
- function property(key) {
3453
- return function(object) {
3454
- return object[key];
3455
- };
3250
+ function baseIsEqual(a, b, callback, isWhere, stackA, stackB) {
3251
+ // used to indicate that when comparing objects, `a` has at least the properties of `b`
3252
+ if (callback) {
3253
+ var result = callback(a, b);
3254
+ if (typeof result != 'undefined') {
3255
+ return !!result;
3256
+ }
3257
+ }
3258
+ // exit early for identical values
3259
+ if (a === b) {
3260
+ // treat `+0` vs. `-0` as not equal
3261
+ return a !== 0 || (1 / a == 1 / b);
3262
+ }
3263
+ var type = typeof a,
3264
+ otherType = typeof b;
3265
+
3266
+ // exit early for unlike primitive values
3267
+ if (a === a &&
3268
+ !(a && objectTypes[type]) &&
3269
+ !(b && objectTypes[otherType])) {
3270
+ return false;
3271
+ }
3272
+ // exit early for `null` and `undefined` avoiding ES3's Function#call behavior
3273
+ // http://es5.github.io/#x15.3.4.4
3274
+ if (a == null || b == null) {
3275
+ return a === b;
3276
+ }
3277
+ // compare [[Class]] names
3278
+ var className = toString.call(a),
3279
+ otherClass = toString.call(b);
3280
+
3281
+ if (className == argsClass) {
3282
+ className = objectClass;
3283
+ }
3284
+ if (otherClass == argsClass) {
3285
+ otherClass = objectClass;
3286
+ }
3287
+ if (className != otherClass) {
3288
+ return false;
3289
+ }
3290
+ switch (className) {
3291
+ case boolClass:
3292
+ case dateClass:
3293
+ // coerce dates and booleans to numbers, dates to milliseconds and booleans
3294
+ // to `1` or `0` treating invalid dates coerced to `NaN` as not equal
3295
+ return +a == +b;
3296
+
3297
+ case numberClass:
3298
+ // treat `NaN` vs. `NaN` as equal
3299
+ return (a != +a)
3300
+ ? b != +b
3301
+ // but treat `+0` vs. `-0` as not equal
3302
+ : (a == 0 ? (1 / a == 1 / b) : a == +b);
3303
+
3304
+ case regexpClass:
3305
+ case stringClass:
3306
+ // coerce regexes to strings (http://es5.github.io/#x15.10.6.4)
3307
+ // treat string primitives and their corresponding object instances as equal
3308
+ return a == String(b);
3309
+ }
3310
+ var isArr = className == arrayClass;
3311
+ if (!isArr) {
3312
+ // unwrap any `lodash` wrapped values
3313
+ var aWrapped = hasOwnProperty.call(a, '__wrapped__'),
3314
+ bWrapped = hasOwnProperty.call(b, '__wrapped__');
3315
+
3316
+ if (aWrapped || bWrapped) {
3317
+ return baseIsEqual(aWrapped ? a.__wrapped__ : a, bWrapped ? b.__wrapped__ : b, callback, isWhere, stackA, stackB);
3318
+ }
3319
+ // exit for functions and DOM nodes
3320
+ if (className != objectClass) {
3321
+ return false;
3322
+ }
3323
+ // in older versions of Opera, `arguments` objects have `Array` constructors
3324
+ var ctorA = a.constructor,
3325
+ ctorB = b.constructor;
3326
+
3327
+ // non `Object` object instances with different constructors are not equal
3328
+ if (ctorA != ctorB &&
3329
+ !(isFunction(ctorA) && ctorA instanceof ctorA && isFunction(ctorB) && ctorB instanceof ctorB) &&
3330
+ ('constructor' in a && 'constructor' in b)
3331
+ ) {
3332
+ return false;
3333
+ }
3334
+ }
3335
+ // assume cyclic structures are equal
3336
+ // the algorithm for detecting cyclic structures is adapted from ES 5.1
3337
+ // section 15.12.3, abstract operation `JO` (http://es5.github.io/#x15.12.3)
3338
+ var initedStack = !stackA;
3339
+ stackA || (stackA = getArray());
3340
+ stackB || (stackB = getArray());
3341
+
3342
+ var length = stackA.length;
3343
+ while (length--) {
3344
+ if (stackA[length] == a) {
3345
+ return stackB[length] == b;
3346
+ }
3347
+ }
3348
+ var size = 0;
3349
+ result = true;
3350
+
3351
+ // add `a` and `b` to the stack of traversed objects
3352
+ stackA.push(a);
3353
+ stackB.push(b);
3354
+
3355
+ // recursively compare objects and arrays (susceptible to call stack limits)
3356
+ if (isArr) {
3357
+ // compare lengths to determine if a deep comparison is necessary
3358
+ length = a.length;
3359
+ size = b.length;
3360
+ result = size == length;
3361
+
3362
+ if (result || isWhere) {
3363
+ // deep compare the contents, ignoring non-numeric properties
3364
+ while (size--) {
3365
+ var index = length,
3366
+ value = b[size];
3367
+
3368
+ if (isWhere) {
3369
+ while (index--) {
3370
+ if ((result = baseIsEqual(a[index], value, callback, isWhere, stackA, stackB))) {
3371
+ break;
3372
+ }
3373
+ }
3374
+ } else if (!(result = baseIsEqual(a[size], value, callback, isWhere, stackA, stackB))) {
3375
+ break;
3376
+ }
3377
+ }
3378
+ }
3379
+ }
3380
+ else {
3381
+ // deep compare objects using `forIn`, instead of `forOwn`, to avoid `Object.keys`
3382
+ // which, in this case, is more costly
3383
+ forIn(b, function(value, key, b) {
3384
+ if (hasOwnProperty.call(b, key)) {
3385
+ // count the number of properties.
3386
+ size++;
3387
+ // deep compare each property value.
3388
+ return (result = hasOwnProperty.call(a, key) && baseIsEqual(a[key], value, callback, isWhere, stackA, stackB));
3389
+ }
3390
+ });
3391
+
3392
+ if (result && !isWhere) {
3393
+ // ensure both objects have the same number of properties
3394
+ forIn(a, function(value, key, a) {
3395
+ if (hasOwnProperty.call(a, key)) {
3396
+ // `size` will be `-1` if `a` has more properties than `b`
3397
+ return (result = --size > -1);
3398
+ }
3399
+ });
3400
+ }
3401
+ }
3402
+ stackA.pop();
3403
+ stackB.pop();
3404
+
3405
+ if (initedStack) {
3406
+ releaseArray(stackA);
3407
+ releaseArray(stackB);
3408
+ }
3409
+ return result;
3456
3410
  }
3457
3411
 
3458
- module.exports = property;
3412
+ module.exports = baseIsEqual;
3459
3413
 
3460
3414
 
3461
3415
  /***/ },
3462
- /* 55 */
3416
+ /* 54 */
3463
3417
  /***/ function(module, exports, __webpack_require__) {
3464
3418
 
3465
3419
  /**
@@ -3493,7 +3447,7 @@ return /******/ (function(modules) { // webpackBootstrap
3493
3447
 
3494
3448
 
3495
3449
  /***/ },
3496
- /* 56 */
3450
+ /* 55 */
3497
3451
  /***/ function(module, exports, __webpack_require__) {
3498
3452
 
3499
3453
  /**
@@ -3504,56 +3458,42 @@ return /******/ (function(modules) { // webpackBootstrap
3504
3458
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
3505
3459
  * Available under MIT license <http://lodash.com/license>
3506
3460
  */
3507
- var baseCreateCallback = __webpack_require__(30),
3508
- objectTypes = __webpack_require__(31);
3509
3461
 
3510
3462
  /**
3511
- * Iterates over own and inherited enumerable properties of an object,
3512
- * executing the callback for each property. The callback is bound to `thisArg`
3513
- * and invoked with three arguments; (value, key, object). Callbacks may exit
3514
- * iteration early by explicitly returning `false`.
3463
+ * Creates a "_.pluck" style function, which returns the `key` value of a
3464
+ * given object.
3515
3465
  *
3516
3466
  * @static
3517
3467
  * @memberOf _
3518
- * @type Function
3519
- * @category Objects
3520
- * @param {Object} object The object to iterate over.
3521
- * @param {Function} [callback=identity] The function called per iteration.
3522
- * @param {*} [thisArg] The `this` binding of `callback`.
3523
- * @returns {Object} Returns `object`.
3468
+ * @category Utilities
3469
+ * @param {string} key The name of the property to retrieve.
3470
+ * @returns {Function} Returns the new function.
3524
3471
  * @example
3525
3472
  *
3526
- * function Shape() {
3527
- * this.x = 0;
3528
- * this.y = 0;
3529
- * }
3473
+ * var characters = [
3474
+ * { 'name': 'fred', 'age': 40 },
3475
+ * { 'name': 'barney', 'age': 36 }
3476
+ * ];
3530
3477
  *
3531
- * Shape.prototype.move = function(x, y) {
3532
- * this.x += x;
3533
- * this.y += y;
3534
- * };
3478
+ * var getName = _.property('name');
3535
3479
  *
3536
- * _.forIn(new Shape, function(value, key) {
3537
- * console.log(key);
3538
- * });
3539
- * // => logs 'x', 'y', and 'move' (property order is not guaranteed across environments)
3480
+ * _.map(characters, getName);
3481
+ * // => ['barney', 'fred']
3482
+ *
3483
+ * _.sortBy(characters, getName);
3484
+ * // => [{ 'name': 'barney', 'age': 36 }, { 'name': 'fred', 'age': 40 }]
3540
3485
  */
3541
- var forIn = function(collection, callback, thisArg) {
3542
- var index, iterable = collection, result = iterable;
3543
- if (!iterable) return result;
3544
- if (!objectTypes[typeof iterable]) return result;
3545
- callback = callback && typeof thisArg == 'undefined' ? callback : baseCreateCallback(callback, thisArg, 3);
3546
- for (index in iterable) {
3547
- if (callback(iterable[index], index, collection) === false) return result;
3548
- }
3549
- return result
3550
- };
3486
+ function property(key) {
3487
+ return function(object) {
3488
+ return object[key];
3489
+ };
3490
+ }
3551
3491
 
3552
- module.exports = forIn;
3492
+ module.exports = property;
3553
3493
 
3554
3494
 
3555
3495
  /***/ },
3556
- /* 57 */
3496
+ /* 56 */
3557
3497
  /***/ function(module, exports, __webpack_require__) {
3558
3498
 
3559
3499
  /**
@@ -3567,7 +3507,7 @@ return /******/ (function(modules) { // webpackBootstrap
3567
3507
  var baseBind = __webpack_require__(59),
3568
3508
  baseCreateWrapper = __webpack_require__(60),
3569
3509
  isFunction = __webpack_require__(17),
3570
- slice = __webpack_require__(44);
3510
+ slice = __webpack_require__(43);
3571
3511
 
3572
3512
  /**
3573
3513
  * Used for `Array` method references.
@@ -3665,7 +3605,7 @@ return /******/ (function(modules) { // webpackBootstrap
3665
3605
 
3666
3606
 
3667
3607
  /***/ },
3668
- /* 58 */
3608
+ /* 57 */
3669
3609
  /***/ function(module, exports, __webpack_require__) {
3670
3610
 
3671
3611
  /**
@@ -3696,6 +3636,66 @@ return /******/ (function(modules) { // webpackBootstrap
3696
3636
  module.exports = noop;
3697
3637
 
3698
3638
 
3639
+ /***/ },
3640
+ /* 58 */
3641
+ /***/ function(module, exports, __webpack_require__) {
3642
+
3643
+ /**
3644
+ * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
3645
+ * Build: `lodash modularize modern exports="node" -o ./modern/`
3646
+ * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
3647
+ * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
3648
+ * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
3649
+ * Available under MIT license <http://lodash.com/license>
3650
+ */
3651
+ var baseCreateCallback = __webpack_require__(29),
3652
+ objectTypes = __webpack_require__(30);
3653
+
3654
+ /**
3655
+ * Iterates over own and inherited enumerable properties of an object,
3656
+ * executing the callback for each property. The callback is bound to `thisArg`
3657
+ * and invoked with three arguments; (value, key, object). Callbacks may exit
3658
+ * iteration early by explicitly returning `false`.
3659
+ *
3660
+ * @static
3661
+ * @memberOf _
3662
+ * @type Function
3663
+ * @category Objects
3664
+ * @param {Object} object The object to iterate over.
3665
+ * @param {Function} [callback=identity] The function called per iteration.
3666
+ * @param {*} [thisArg] The `this` binding of `callback`.
3667
+ * @returns {Object} Returns `object`.
3668
+ * @example
3669
+ *
3670
+ * function Shape() {
3671
+ * this.x = 0;
3672
+ * this.y = 0;
3673
+ * }
3674
+ *
3675
+ * Shape.prototype.move = function(x, y) {
3676
+ * this.x += x;
3677
+ * this.y += y;
3678
+ * };
3679
+ *
3680
+ * _.forIn(new Shape, function(value, key) {
3681
+ * console.log(key);
3682
+ * });
3683
+ * // => logs 'x', 'y', and 'move' (property order is not guaranteed across environments)
3684
+ */
3685
+ var forIn = function(collection, callback, thisArg) {
3686
+ var index, iterable = collection, result = iterable;
3687
+ if (!iterable) return result;
3688
+ if (!objectTypes[typeof iterable]) return result;
3689
+ callback = callback && typeof thisArg == 'undefined' ? callback : baseCreateCallback(callback, thisArg, 3);
3690
+ for (index in iterable) {
3691
+ if (callback(iterable[index], index, collection) === false) return result;
3692
+ }
3693
+ return result
3694
+ };
3695
+
3696
+ module.exports = forIn;
3697
+
3698
+
3699
3699
  /***/ },
3700
3700
  /* 59 */
3701
3701
  /***/ function(module, exports, __webpack_require__) {
@@ -3710,8 +3710,8 @@ return /******/ (function(modules) { // webpackBootstrap
3710
3710
  */
3711
3711
  var baseCreate = __webpack_require__(61),
3712
3712
  isObject = __webpack_require__(25),
3713
- setBindData = __webpack_require__(46),
3714
- slice = __webpack_require__(44);
3713
+ setBindData = __webpack_require__(45),
3714
+ slice = __webpack_require__(43);
3715
3715
 
3716
3716
  /**
3717
3717
  * Used for `Array` method references.
@@ -3778,8 +3778,8 @@ return /******/ (function(modules) { // webpackBootstrap
3778
3778
  */
3779
3779
  var baseCreate = __webpack_require__(61),
3780
3780
  isObject = __webpack_require__(25),
3781
- setBindData = __webpack_require__(46),
3782
- slice = __webpack_require__(44);
3781
+ setBindData = __webpack_require__(45),
3782
+ slice = __webpack_require__(43);
3783
3783
 
3784
3784
  /**
3785
3785
  * Used for `Array` method references.
@@ -3860,9 +3860,9 @@ return /******/ (function(modules) { // webpackBootstrap
3860
3860
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
3861
3861
  * Available under MIT license <http://lodash.com/license>
3862
3862
  */
3863
- var isNative = __webpack_require__(32),
3863
+ var isNative = __webpack_require__(31),
3864
3864
  isObject = __webpack_require__(25),
3865
- noop = __webpack_require__(58);
3865
+ noop = __webpack_require__(57);
3866
3866
 
3867
3867
  /* Native method shortcuts for methods with the same name as other `lodash` methods */
3868
3868
  var nativeCreate = isNative(nativeCreate = Object.create) && nativeCreate;