lodash-rails 4.11.2 → 4.12.0
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 +4 -4
- data/README.md +1 -1
- data/lib/lodash/rails/version.rb +1 -1
- data/vendor/assets/javascripts/lodash.core.js +44 -96
- data/vendor/assets/javascripts/lodash.core.min.js +22 -24
- data/vendor/assets/javascripts/lodash.js +476 -383
- data/vendor/assets/javascripts/lodash.min.js +122 -123
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dd4890be2e4926438845d1638c61ee719aa29f55
|
4
|
+
data.tar.gz: 68e86ed6bf8c3ce574949c69c05123ea04217226
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e7ddc10cca8de2294cb7673f79ba2e2dce7a7327321ed4ee630ad2c59610cd522858271d83995dca65f168c6f9fa591fbd48166c7756810f862dd528d0b59f12
|
7
|
+
data.tar.gz: 5b893890db7fcbc497af2952c7c7941ed777999fe34c61004292523598901f40deeb2658ff02154e8583f76e5c2c6c81912f084bc81c8ab20110e1cb3049d929
|
data/README.md
CHANGED
data/lib/lodash/rails/version.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
/**
|
2
2
|
* @license
|
3
|
-
* lodash
|
4
|
-
* Build: `lodash core -o ./dist/lodash.core.js`
|
3
|
+
* lodash <https://lodash.com/>
|
5
4
|
* Copyright jQuery Foundation and other contributors <https://jquery.org/>
|
6
5
|
* Released under MIT license <https://lodash.com/license>
|
7
6
|
* Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
|
@@ -13,7 +12,7 @@
|
|
13
12
|
var undefined;
|
14
13
|
|
15
14
|
/** Used as the semantic version number. */
|
16
|
-
var VERSION = '4.
|
15
|
+
var VERSION = '4.12.0';
|
17
16
|
|
18
17
|
/** Used as the `TypeError` message for "Functions" methods. */
|
19
18
|
var FUNC_ERROR_TEXT = 'Expected a function';
|
@@ -105,18 +104,6 @@
|
|
105
104
|
|
106
105
|
/*--------------------------------------------------------------------------*/
|
107
106
|
|
108
|
-
/**
|
109
|
-
* Creates a new array concatenating `array` with `other`.
|
110
|
-
*
|
111
|
-
* @private
|
112
|
-
* @param {Array} array The first array to concatenate.
|
113
|
-
* @param {Array} other The second array to concatenate.
|
114
|
-
* @returns {Array} Returns the new concatenated array.
|
115
|
-
*/
|
116
|
-
function arrayConcat(array, other) {
|
117
|
-
return arrayPush(copyArray(array), values);
|
118
|
-
}
|
119
|
-
|
120
107
|
/**
|
121
108
|
* Appends the elements of `values` to `array`.
|
122
109
|
*
|
@@ -378,10 +365,10 @@
|
|
378
365
|
* `floor`, `forEach`, `forEachRight`, `forIn`, `forInRight`, `forOwn`,
|
379
366
|
* `forOwnRight`, `get`, `gt`, `gte`, `has`, `hasIn`, `head`, `identity`,
|
380
367
|
* `includes`, `indexOf`, `inRange`, `invoke`, `isArguments`, `isArray`,
|
381
|
-
* `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`, `isBoolean`,
|
382
|
-
* `isDate`, `isElement`, `isEmpty`, `isEqual`, `isEqualWith`,
|
383
|
-
* `isFinite`, `isFunction`, `isInteger`, `isLength`, `isMap`,
|
384
|
-
* `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`, `isNumber`,
|
368
|
+
* `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`, `isBoolean`,
|
369
|
+
* `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`, `isEqualWith`,
|
370
|
+
* `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`, `isMap`,
|
371
|
+
* `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`, `isNumber`,
|
385
372
|
* `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`, `isSafeInteger`,
|
386
373
|
* `isSet`, `isString`, `isUndefined`, `isTypedArray`, `isWeakMap`, `isWeakSet`,
|
387
374
|
* `join`, `kebabCase`, `last`, `lastIndexOf`, `lowerCase`, `lowerFirst`,
|
@@ -390,9 +377,9 @@
|
|
390
377
|
* `pop`, `random`, `reduce`, `reduceRight`, `repeat`, `result`, `round`,
|
391
378
|
* `runInContext`, `sample`, `shift`, `size`, `snakeCase`, `some`, `sortedIndex`,
|
392
379
|
* `sortedIndexBy`, `sortedLastIndex`, `sortedLastIndexBy`, `startCase`,
|
393
|
-
* `startsWith`, `subtract`, `sum`, `sumBy`, `template`, `times`, `
|
394
|
-
* `toJSON`, `toLength`, `toLower`, `toNumber`, `toSafeInteger`,
|
395
|
-
* `toUpper`, `trim`, `trimEnd`, `trimStart`, `truncate`, `unescape`,
|
380
|
+
* `startsWith`, `subtract`, `sum`, `sumBy`, `template`, `times`, `toFinite`,
|
381
|
+
* `toInteger`, `toJSON`, `toLength`, `toLower`, `toNumber`, `toSafeInteger`,
|
382
|
+
* `toString`, `toUpper`, `trim`, `trimEnd`, `trimStart`, `truncate`, `unescape`,
|
396
383
|
* `uniqueId`, `upperCase`, `upperFirst`, `value`, and `words`
|
397
384
|
*
|
398
385
|
* @name _
|
@@ -651,7 +638,7 @@
|
|
651
638
|
* @private
|
652
639
|
* @param {Object} object The object to inspect.
|
653
640
|
* @param {Array} props The property names to filter.
|
654
|
-
* @returns {Array} Returns the
|
641
|
+
* @returns {Array} Returns the function names.
|
655
642
|
*/
|
656
643
|
function baseFunctions(object, props) {
|
657
644
|
return baseFilter(props, function(key) {
|
@@ -856,7 +843,7 @@
|
|
856
843
|
*
|
857
844
|
* @private
|
858
845
|
* @param {Object} source The object of property values to match.
|
859
|
-
* @returns {Function} Returns the new function.
|
846
|
+
* @returns {Function} Returns the new spec function.
|
860
847
|
*/
|
861
848
|
function baseMatches(source) {
|
862
849
|
var props = keys(source);
|
@@ -902,7 +889,7 @@
|
|
902
889
|
*
|
903
890
|
* @private
|
904
891
|
* @param {string} key The key of the property to get.
|
905
|
-
* @returns {Function} Returns the new function.
|
892
|
+
* @returns {Function} Returns the new accessor function.
|
906
893
|
*/
|
907
894
|
function baseProperty(key) {
|
908
895
|
return function(object) {
|
@@ -1067,7 +1054,7 @@
|
|
1067
1054
|
length = sources.length,
|
1068
1055
|
customizer = length > 1 ? sources[length - 1] : undefined;
|
1069
1056
|
|
1070
|
-
customizer = typeof customizer == 'function'
|
1057
|
+
customizer = (assigner.length > 3 && typeof customizer == 'function')
|
1071
1058
|
? (length--, customizer)
|
1072
1059
|
: undefined;
|
1073
1060
|
|
@@ -1212,16 +1199,16 @@
|
|
1212
1199
|
* @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.
|
1213
1200
|
*/
|
1214
1201
|
function equalArrays(array, other, equalFunc, customizer, bitmask, stack) {
|
1215
|
-
var
|
1216
|
-
isPartial = bitmask & PARTIAL_COMPARE_FLAG,
|
1217
|
-
isUnordered = bitmask & UNORDERED_COMPARE_FLAG,
|
1202
|
+
var isPartial = bitmask & PARTIAL_COMPARE_FLAG,
|
1218
1203
|
arrLength = array.length,
|
1219
1204
|
othLength = other.length;
|
1220
1205
|
|
1221
1206
|
if (arrLength != othLength && !(isPartial && othLength > arrLength)) {
|
1222
1207
|
return false;
|
1223
1208
|
}
|
1224
|
-
var
|
1209
|
+
var index = -1,
|
1210
|
+
result = true,
|
1211
|
+
seen = (bitmask & UNORDERED_COMPARE_FLAG) ? [] : undefined;
|
1225
1212
|
|
1226
1213
|
// Ignore non-index properties.
|
1227
1214
|
while (++index < arrLength) {
|
@@ -1237,10 +1224,12 @@
|
|
1237
1224
|
break;
|
1238
1225
|
}
|
1239
1226
|
// Recursively compare arrays (susceptible to call stack limits).
|
1240
|
-
if (
|
1241
|
-
if (!baseSome(other, function(othValue) {
|
1242
|
-
|
1243
|
-
|
1227
|
+
if (seen) {
|
1228
|
+
if (!baseSome(other, function(othValue, othIndex) {
|
1229
|
+
if (!indexOf(seen, othIndex) &&
|
1230
|
+
(arrValue === othValue || equalFunc(arrValue, othValue, customizer, bitmask, stack))) {
|
1231
|
+
return seen.push(othIndex);
|
1232
|
+
}
|
1244
1233
|
})) {
|
1245
1234
|
result = false;
|
1246
1235
|
break;
|
@@ -1405,7 +1394,7 @@
|
|
1405
1394
|
* @returns {boolean} Returns `true` if `value` is flattenable, else `false`.
|
1406
1395
|
*/
|
1407
1396
|
function isFlattenable(value) {
|
1408
|
-
return
|
1397
|
+
return isArray(value) || isArguments(value);
|
1409
1398
|
}
|
1410
1399
|
|
1411
1400
|
/**
|
@@ -1491,16 +1480,16 @@
|
|
1491
1480
|
*/
|
1492
1481
|
function concat() {
|
1493
1482
|
var length = arguments.length,
|
1494
|
-
|
1483
|
+
args = Array(length ? length - 1 : 0),
|
1484
|
+
array = arguments[0],
|
1485
|
+
index = length;
|
1495
1486
|
|
1496
|
-
|
1497
|
-
|
1498
|
-
}
|
1499
|
-
var args = Array(length - 1);
|
1500
|
-
while (length--) {
|
1501
|
-
args[length - 1] = arguments[length];
|
1487
|
+
while (index--) {
|
1488
|
+
args[index - 1] = arguments[index];
|
1502
1489
|
}
|
1503
|
-
return
|
1490
|
+
return length
|
1491
|
+
? arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1))
|
1492
|
+
: [];
|
1504
1493
|
}
|
1505
1494
|
|
1506
1495
|
/**
|
@@ -2280,7 +2269,7 @@
|
|
2280
2269
|
* @since 3.0.0
|
2281
2270
|
* @category Function
|
2282
2271
|
* @param {Function} predicate The predicate to negate.
|
2283
|
-
* @returns {Function} Returns the new function.
|
2272
|
+
* @returns {Function} Returns the new negated function.
|
2284
2273
|
* @example
|
2285
2274
|
*
|
2286
2275
|
* function isEven(n) {
|
@@ -2372,47 +2361,6 @@
|
|
2372
2361
|
|
2373
2362
|
/*------------------------------------------------------------------------*/
|
2374
2363
|
|
2375
|
-
/**
|
2376
|
-
* Casts `value` as an array if it's not one.
|
2377
|
-
*
|
2378
|
-
* @static
|
2379
|
-
* @memberOf _
|
2380
|
-
* @since 4.4.0
|
2381
|
-
* @category Lang
|
2382
|
-
* @param {*} value The value to inspect.
|
2383
|
-
* @returns {Array} Returns the cast array.
|
2384
|
-
* @example
|
2385
|
-
*
|
2386
|
-
* _.castArray(1);
|
2387
|
-
* // => [1]
|
2388
|
-
*
|
2389
|
-
* _.castArray({ 'a': 1 });
|
2390
|
-
* // => [{ 'a': 1 }]
|
2391
|
-
*
|
2392
|
-
* _.castArray('abc');
|
2393
|
-
* // => ['abc']
|
2394
|
-
*
|
2395
|
-
* _.castArray(null);
|
2396
|
-
* // => [null]
|
2397
|
-
*
|
2398
|
-
* _.castArray(undefined);
|
2399
|
-
* // => [undefined]
|
2400
|
-
*
|
2401
|
-
* _.castArray();
|
2402
|
-
* // => []
|
2403
|
-
*
|
2404
|
-
* var array = [1, 2, 3];
|
2405
|
-
* console.log(_.castArray(array) === array);
|
2406
|
-
* // => true
|
2407
|
-
*/
|
2408
|
-
function castArray() {
|
2409
|
-
if (!arguments.length) {
|
2410
|
-
return [];
|
2411
|
-
}
|
2412
|
-
var value = arguments[0];
|
2413
|
-
return isArray(value) ? value : [value];
|
2414
|
-
}
|
2415
|
-
|
2416
2364
|
/**
|
2417
2365
|
* Creates a shallow clone of `value`.
|
2418
2366
|
*
|
@@ -2729,14 +2677,14 @@
|
|
2729
2677
|
* _.isFinite(3);
|
2730
2678
|
* // => true
|
2731
2679
|
*
|
2732
|
-
* _.isFinite(Number.
|
2733
|
-
* // => true
|
2734
|
-
*
|
2735
|
-
* _.isFinite(3.14);
|
2680
|
+
* _.isFinite(Number.MIN_VALUE);
|
2736
2681
|
* // => true
|
2737
2682
|
*
|
2738
2683
|
* _.isFinite(Infinity);
|
2739
2684
|
* // => false
|
2685
|
+
*
|
2686
|
+
* _.isFinite('3');
|
2687
|
+
* // => false
|
2740
2688
|
*/
|
2741
2689
|
function isFinite(value) {
|
2742
2690
|
return typeof value == 'number' && nativeIsFinite(value);
|
@@ -3056,7 +3004,7 @@
|
|
3056
3004
|
* @returns {number} Returns the converted integer.
|
3057
3005
|
* @example
|
3058
3006
|
*
|
3059
|
-
* _.toInteger(3);
|
3007
|
+
* _.toInteger(3.2);
|
3060
3008
|
* // => 3
|
3061
3009
|
*
|
3062
3010
|
* _.toInteger(Number.MIN_VALUE);
|
@@ -3065,7 +3013,7 @@
|
|
3065
3013
|
* _.toInteger(Infinity);
|
3066
3014
|
* // => 1.7976931348623157e+308
|
3067
3015
|
*
|
3068
|
-
* _.toInteger('3');
|
3016
|
+
* _.toInteger('3.2');
|
3069
3017
|
* // => 3
|
3070
3018
|
*/
|
3071
3019
|
var toInteger = Number;
|
@@ -3081,8 +3029,8 @@
|
|
3081
3029
|
* @returns {number} Returns the number.
|
3082
3030
|
* @example
|
3083
3031
|
*
|
3084
|
-
* _.toNumber(3);
|
3085
|
-
* // => 3
|
3032
|
+
* _.toNumber(3.2);
|
3033
|
+
* // => 3.2
|
3086
3034
|
*
|
3087
3035
|
* _.toNumber(Number.MIN_VALUE);
|
3088
3036
|
* // => 5e-324
|
@@ -3090,8 +3038,8 @@
|
|
3090
3038
|
* _.toNumber(Infinity);
|
3091
3039
|
* // => Infinity
|
3092
3040
|
*
|
3093
|
-
* _.toNumber('3');
|
3094
|
-
* // => 3
|
3041
|
+
* _.toNumber('3.2');
|
3042
|
+
* // => 3.2
|
3095
3043
|
*/
|
3096
3044
|
var toNumber = Number;
|
3097
3045
|
|
@@ -3626,7 +3574,7 @@
|
|
3626
3574
|
* @since 3.0.0
|
3627
3575
|
* @category Util
|
3628
3576
|
* @param {Object} source The object of property values to match.
|
3629
|
-
* @returns {Function} Returns the new function.
|
3577
|
+
* @returns {Function} Returns the new spec function.
|
3630
3578
|
* @example
|
3631
3579
|
*
|
3632
3580
|
* var users = [
|
@@ -1,30 +1,28 @@
|
|
1
1
|
/**
|
2
2
|
* @license
|
3
|
-
* lodash
|
4
|
-
* Build: `lodash core -o ./dist/lodash.core.js`
|
3
|
+
* lodash lodash.com/license | Underscore.js 1.8.3 underscorejs.org/LICENSE
|
5
4
|
*/
|
6
5
|
;(function(){function n(n,t){return n.push.apply(n,t),n}function t(n,t,r){var e;return r(n,function(n,r,u){return t(n,r,u)?(e=n,false):void 0}),e}function r(n,t,r,e,u){return u(n,function(n,u,o){r=e?(e=false,n):t(r,n,u,o)}),r}function e(n,t){return O(t,function(t){return n[t]})}function u(n){return n&&n.Object===Object?n:null}function o(n){return gn[n]}function i(n){var t=false;if(null!=n&&typeof n.toString!="function")try{t=!!(n+"")}catch(r){}return t}function c(n){return n instanceof f?n:new f(n)}function f(n,t){
|
7
6
|
this.__wrapped__=n,this.__actions__=[],this.__chain__=!!t}function a(n,t,r,e){var u;return(u=n===pn)||(u=En[r],u=(n===u||n!==n&&u!==u)&&!kn.call(e,r)),u?t:n}function l(n){return nn(n)?Bn(n):{}}function p(n,t,r){if(typeof n!="function")throw new TypeError("Expected a function");return setTimeout(function(){n.apply(pn,r)},t)}function s(n,t){var r=true;return zn(n,function(n,e,u){return r=!!t(n,e,u)}),r}function h(n,t,r){for(var e=-1,u=n.length;++e<u;){var o=n[e],i=t(o);if(null!=i&&(c===pn?i===i:r(i,c)))var c=i,f=o;
|
8
7
|
}return f}function v(n,t){var r=[];return zn(n,function(n,e,u){t(n,e,u)&&r.push(n)}),r}function y(t,r,e,u,o){var i=-1,c=t.length;for(e||(e=G),o||(o=[]);++i<c;){var f=t[i];r>0&&e(f)?r>1?y(f,r-1,e,u,o):n(o,f):u||(o[o.length]=f)}return o}function g(n,t){return n&&Cn(n,t,on)}function b(n,t){return v(t,function(t){return Y(n[t])})}function _(n,t){return n>t}function d(n,t,r,e,u){return n===t?true:null==n||null==t||!nn(n)&&!tn(t)?n!==n&&t!==t:j(n,t,d,r,e,u)}function j(n,t,r,e,u,o){var c=Vn(n),f=Vn(t),a="[object Array]",l="[object Array]";
|
9
|
-
c||(a=Sn.call(n),a="[object Arguments]"==a?"[object Object]":a),f||(l=Sn.call(t),l="[object Arguments]"==l?"[object Object]":l);var p="[object Object]"==a&&!i(n),f="[object Object]"==l&&!i(t),l=a==l;o||(o=[]);var s=
|
10
|
-
o.pop(),r))}function m(n){return typeof n=="function"?n:null==n?an:(typeof n=="object"?A:k)(n)}function w(n){n=null==n?n:Object(n);var t,r=[];for(t in n)r.push(t);return r}function x(n,t){return t>n}function O(n,t){var r=-1,e=X(n)?Array(n.length):[];return zn(n,function(n,u,o){e[++r]=t(n,u,o)}),e}function A(n){var t=on(n);return function(r){var e=t.length;if(null==r)return!e;for(r=Object(r);e--;){var u=t[e];if(!(u in r&&d(n[u],r[u],pn,3)))return false}return true}}function E(n,t){return n=Object(n),
|
11
|
-
return r in n&&(t[r]=n[r]),t},{})}function k(n){return function(t){return null==t?pn:t[n]}}function N(n,t,r){var e=-1,u=n.length;for(0>t&&(t=-t>u?0:u+t),r=r>u?u:r,0>r&&(r+=u),u=t>r?0:r-t>>>0,t>>>=0,r=Array(u);++e<u;)r[e]=n[e+t];return r}function S(n){return N(n,0,n.length)}function T(n,t){var r;return zn(n,function(n,e,u){return r=t(n,e,u),!r}),!!r}function F(t,r){return
|
12
|
-
var i=t[u],c=e?e(r[i],n[i],i,r,n):n[i],f=r,a=f[i];kn.call(f,i)&&(a===c||a!==a&&c!==c)&&(c!==pn||i in f)||(f[i]=c)}return r}function B(n){return
|
13
|
-
for(;i--;)a[c++]=arguments[++o];return l.apply(t,a)}if(typeof n!="function")throw new TypeError("Expected a function");var u=D(n);return e}function $(n,t,r,e,u,o){var i
|
14
|
-
return n.name==t.name&&n.message==t.message;case"[object Number]":return n!=+n?t!=+t:n==+t;case"[object RegExp]":case"[object String]":return n==t+""}return false}function z(n,t,r,e,u,o){var i=2&u,c=on(n),f=c.length,a=on(t).length;if(f!=a&&!i)return false;for(var l=f;l--;){var p=c[l];if(!(i?p in t:kn.call(t,p)))return false}for(a=true;++l<f;){var p=c[l],s=n[p],h=t[p];if(void 0!==pn||s!==h&&!r(s,h,e,u,o)){a=false;break}i||(i="constructor"==p)}return a&&!i&&(r=n.constructor,e=t.constructor,
|
15
|
-
a}function C(n){var t=n?n.length:pn;if(Z(t)&&(Vn(n)||en(n)||W(n))){n=String;for(var r=-1,e=Array(t);++r<t;)e[r]=n(r);t=e}else t=null;return t}function G(n){return
|
16
|
-
|
17
|
-
if(
|
18
|
-
}function rn(n){return typeof n=="number"||tn(n)&&"[object Number]"==Sn.call(n)}function en(n){return typeof n=="string"||!Vn(n)&&tn(n)&&"[object String]"==Sn.call(n)}function un(n){return typeof n=="string"?n:null==n?"":n+""}function on(n){var t=M(n);if(!t&&!X(n))return $n(Object(n));var r,e=C(n),u=!!e,e=e||[],o=e.length;
|
19
|
-
var f=e[t];i&&("length"==f||J(f,c))||"constructor"==f&&(r||!kn.call(n,f))||o.push(f)}return o}function fn(n){return n?e(n,on(n)):[]}function an(n){return n}function ln(t,r,e){var u=on(r),o=b(r,u);null!=e||nn(r)&&(o.length||!u.length)||(e=r,r=t,t=this,o=b(r,on(r)));var i=!(nn(e)&&"chain"in e&&!e.chain),c=Y(t);return zn(o,function(e){
|
20
|
-
thisArg:t}),e.__chain__=r,e}return u.apply(t,n([this.value()],arguments))})}),t}var pn,sn=1/0,hn=/[&<>"'`]/g,vn=RegExp(hn.source),yn=/^(?:0|[1-9]\d*)$/,gn={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},bn={"function":true,object:true},_n=bn[typeof exports]&&exports&&!exports.nodeType?exports:pn,dn=bn[typeof module]&&module&&!module.nodeType?module:pn,jn=dn&&dn.exports===_n?_n:pn,mn=u(bn[typeof self]&&self),wn=u(bn[typeof window]&&window),xn=u(bn[typeof this]&&this),On=u(_n&&dn&&typeof global=="object"&&global)||wn!==(xn&&xn.window)&&wn||mn||xn||Function("return this")(),An=Array.prototype,En=Object.prototype,kn=En.hasOwnProperty,Nn=0,Sn=En.toString,Tn=On._,Fn=On.Reflect,Rn=Fn?Fn.a:pn,Bn=Object.create,Dn=En.propertyIsEnumerable,In=On.isFinite,$n=Object.keys,qn=Math.max;
|
21
|
-
f.prototype=l(c.prototype),f.prototype.constructor=f;var zn=function(n,t){return function(r,e){if(null==r)return r;if(!X(r))return n(r,e);for(var u=r.length,o=t?u:-1,i=Object(r);(t?o--:++o<u)&&false!==e(i[o],o,i););return r}}(g),Cn=function(n){return function(t,r,e){var u=-1,o=Object(t);e=e(t);for(var i=e.length;i--;){var c=e[n?i:++u];if(false===r(o[c],c,o))break}return t}}();Rn&&!Dn.call({valueOf:1},"valueOf")&&(w=function(n){n=Rn(n);for(var t,r=[];!(t=n.next()).done;)r.push(t.value);return r});var Gn=k("length"),Jn=String,Mn=
|
22
|
-
return I(n,t,r)}),Pn=
|
23
|
-
var t=arguments.length,r=
|
24
|
-
if(typeof n!="function")throw new TypeError("Expected a function");return function(){return!n.apply(this,arguments)}},c.once=function(n){return
|
25
|
-
r=1;break n}if(!o&&e>r||f&&u&&i||!c&&i||!a){r=-1;break n}}r=0}return r||n.index-t.index}),k("value"))},c.tap=function(n,t){return t(n),n},c.thru=function(n,t){return t(n)},c.toArray=function(n){return X(n)?n.length?S(n):[]:fn(n)},c.values=fn,c.extend=Qn,ln(c,c),c.clone=function(n){return nn(n)?Vn(n)?S(n):R(n,on(n)):n},c.escape=function(n){return(n=un(n))&&vn.test(n)?n.replace(hn,o):n},c.every=function(n,t,r){return t=r?pn:t,s(n,m(t))},c.find=
|
26
|
-
},c.head=P,c.identity=an,c.indexOf=
|
27
|
-
c.
|
28
|
-
|
29
|
-
var
|
30
|
-
return c}):_n&&dn?(jn&&((dn.exports=c)._=c),_n._=c):On._=c}).call(this);
|
8
|
+
c||(a=Sn.call(n),a="[object Arguments]"==a?"[object Object]":a),f||(l=Sn.call(t),l="[object Arguments]"==l?"[object Object]":l);var p="[object Object]"==a&&!i(n),f="[object Object]"==l&&!i(t),l=a==l;o||(o=[]);var s=V(o,function(t){return t[0]===n});return s&&s[1]?s[1]==t:(o.push([n,t]),l&&!p?(r=c||isTypedArray(n)?$(n,t,r,e,u,o):q(n,t,a),o.pop(),r):2&u||(c=p&&kn.call(n,"__wrapped__"),a=f&&kn.call(t,"__wrapped__"),!c&&!a)?l?(r=z(n,t,r,e,u,o),o.pop(),r):false:(c=c?n.value():n,t=a?t.value():t,r=r(c,t,e,u,o),
|
9
|
+
o.pop(),r))}function m(n){return typeof n=="function"?n:null==n?an:(typeof n=="object"?A:k)(n)}function w(n){n=null==n?n:Object(n);var t,r=[];for(t in n)r.push(t);return r}function x(n,t){return t>n}function O(n,t){var r=-1,e=X(n)?Array(n.length):[];return zn(n,function(n,u,o){e[++r]=t(n,u,o)}),e}function A(n){var t=on(n);return function(r){var e=t.length;if(null==r)return!e;for(r=Object(r);e--;){var u=t[e];if(!(u in r&&d(n[u],r[u],pn,3)))return false}return true}}function E(n,t){return n=Object(n),K(t,function(t,r){
|
10
|
+
return r in n&&(t[r]=n[r]),t},{})}function k(n){return function(t){return null==t?pn:t[n]}}function N(n,t,r){var e=-1,u=n.length;for(0>t&&(t=-t>u?0:u+t),r=r>u?u:r,0>r&&(r+=u),u=t>r?0:r-t>>>0,t>>>=0,r=Array(u);++e<u;)r[e]=n[e+t];return r}function S(n){return N(n,0,n.length)}function T(n,t){var r;return zn(n,function(n,e,u){return r=t(n,e,u),!r}),!!r}function F(t,r){return K(r,function(t,r){return r.func.apply(r.thisArg,n([t],r.args))},t)}function R(n,t,r,e){r||(r={});for(var u=-1,o=t.length;++u<o;){
|
11
|
+
var i=t[u],c=e?e(r[i],n[i],i,r,n):n[i],f=r,a=f[i];kn.call(f,i)&&(a===c||a!==a&&c!==c)&&(c!==pn||i in f)||(f[i]=c)}return r}function B(n){return Q(function(t,r){var e=-1,u=r.length,o=u>1?r[u-1]:pn,o=n.length>3&&typeof o=="function"?(u--,o):pn;for(t=Object(t);++e<u;){var i=r[e];i&&n(t,i,e,o)}return t})}function D(n){return function(){var t=arguments,r=l(n.prototype),t=n.apply(r,t);return nn(t)?t:r}}function I(n,t,r){function e(){for(var o=-1,i=arguments.length,c=-1,f=r.length,a=Array(f+i),l=this&&this!==On&&this instanceof e?u:n;++c<f;)a[c]=r[c];
|
12
|
+
for(;i--;)a[c++]=arguments[++o];return l.apply(t,a)}if(typeof n!="function")throw new TypeError("Expected a function");var u=D(n);return e}function $(n,t,r,e,u,o){var i=n.length,c=t.length;if(i!=c&&!(2&u&&c>i))return false;for(var c=-1,f=true,a=1&u?[]:pn;++c<i;){var l=n[c],p=t[c];if(void 0!==pn){f=false;break}if(a){if(!T(t,function(n,t){return U(a,t)||l!==n&&!r(l,n,e,u,o)?void 0:a.push(t)})){f=false;break}}else if(l!==p&&!r(l,p,e,u,o)){f=false;break}}return f}function q(n,t,r){switch(r){case"[object Boolean]":case"[object Date]":
|
13
|
+
return+n==+t;case"[object Error]":return n.name==t.name&&n.message==t.message;case"[object Number]":return n!=+n?t!=+t:n==+t;case"[object RegExp]":case"[object String]":return n==t+""}return false}function z(n,t,r,e,u,o){var i=2&u,c=on(n),f=c.length,a=on(t).length;if(f!=a&&!i)return false;for(var l=f;l--;){var p=c[l];if(!(i?p in t:kn.call(t,p)))return false}for(a=true;++l<f;){var p=c[l],s=n[p],h=t[p];if(void 0!==pn||s!==h&&!r(s,h,e,u,o)){a=false;break}i||(i="constructor"==p)}return a&&!i&&(r=n.constructor,e=t.constructor,
|
14
|
+
r!=e&&"constructor"in n&&"constructor"in t&&!(typeof r=="function"&&r instanceof r&&typeof e=="function"&&e instanceof e)&&(a=false)),a}function C(n){var t=n?n.length:pn;if(Z(t)&&(Vn(n)||en(n)||W(n))){n=String;for(var r=-1,e=Array(t);++r<t;)e[r]=n(r);t=e}else t=null;return t}function G(n){return Vn(n)||W(n)}function J(n,t){return t=null==t?9007199254740991:t,!!t&&(typeof n=="number"||yn.test(n))&&n>-1&&0==n%1&&t>n}function M(n){var t=n&&n.constructor;return n===(typeof t=="function"&&t.prototype||En);
|
15
|
+
}function P(n){return n&&n.length?n[0]:pn}function U(n,t,r){var e=n?n.length:0;r=typeof r=="number"?0>r?qn(e+r,0):r:0,r=(r||0)-1;for(var u=t===t;++r<e;){var o=n[r];if(u?o===t:o!==o)return r}return-1}function V(n,r){return t(n,m(r),zn)}function H(n,t){return zn(n,m(t))}function K(n,t,e){return r(n,m(t),e,3>arguments.length,zn)}function L(n,t){var r;if(typeof t!="function")throw new TypeError("Expected a function");return n=Hn(n),function(){return 0<--n&&(r=t.apply(this,arguments)),1>=n&&(t=pn),r}}
|
16
|
+
function Q(n){var t;if(typeof n!="function")throw new TypeError("Expected a function");return t=qn(t===pn?n.length-1:Hn(t),0),function(){for(var r=arguments,e=-1,u=qn(r.length-t,0),o=Array(u);++e<u;)o[e]=r[t+e];for(u=Array(t+1),e=-1;++e<t;)u[e]=r[e];return u[t]=o,n.apply(this,u)}}function W(n){return tn(n)&&X(n)&&kn.call(n,"callee")&&(!Dn.call(n,"callee")||"[object Arguments]"==Sn.call(n))}function X(n){return null!=n&&Z(Gn(n))&&!Y(n)}function Y(n){return n=nn(n)?Sn.call(n):"","[object Function]"==n||"[object GeneratorFunction]"==n;
|
17
|
+
}function Z(n){return typeof n=="number"&&n>-1&&0==n%1&&9007199254740991>=n}function nn(n){var t=typeof n;return!!n&&("object"==t||"function"==t)}function tn(n){return!!n&&typeof n=="object"}function rn(n){return typeof n=="number"||tn(n)&&"[object Number]"==Sn.call(n)}function en(n){return typeof n=="string"||!Vn(n)&&tn(n)&&"[object String]"==Sn.call(n)}function un(n){return typeof n=="string"?n:null==n?"":n+""}function on(n){var t=M(n);if(!t&&!X(n))return $n(Object(n));var r,e=C(n),u=!!e,e=e||[],o=e.length;
|
18
|
+
for(r in n)!kn.call(n,r)||u&&("length"==r||J(r,o))||t&&"constructor"==r||e.push(r);return e}function cn(n){for(var t=-1,r=M(n),e=w(n),u=e.length,o=C(n),i=!!o,o=o||[],c=o.length;++t<u;){var f=e[t];i&&("length"==f||J(f,c))||"constructor"==f&&(r||!kn.call(n,f))||o.push(f)}return o}function fn(n){return n?e(n,on(n)):[]}function an(n){return n}function ln(t,r,e){var u=on(r),o=b(r,u);null!=e||nn(r)&&(o.length||!u.length)||(e=r,r=t,t=this,o=b(r,on(r)));var i=!(nn(e)&&"chain"in e&&!e.chain),c=Y(t);return zn(o,function(e){
|
19
|
+
var u=r[e];t[e]=u,c&&(t.prototype[e]=function(){var r=this.__chain__;if(i||r){var e=t(this.__wrapped__);return(e.__actions__=S(this.__actions__)).push({func:u,args:arguments,thisArg:t}),e.__chain__=r,e}return u.apply(t,n([this.value()],arguments))})}),t}var pn,sn=1/0,hn=/[&<>"'`]/g,vn=RegExp(hn.source),yn=/^(?:0|[1-9]\d*)$/,gn={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},bn={"function":true,object:true},_n=bn[typeof exports]&&exports&&!exports.nodeType?exports:pn,dn=bn[typeof module]&&module&&!module.nodeType?module:pn,jn=dn&&dn.exports===_n?_n:pn,mn=u(bn[typeof self]&&self),wn=u(bn[typeof window]&&window),xn=u(bn[typeof this]&&this),On=u(_n&&dn&&typeof global=="object"&&global)||wn!==(xn&&xn.window)&&wn||mn||xn||Function("return this")(),An=Array.prototype,En=Object.prototype,kn=En.hasOwnProperty,Nn=0,Sn=En.toString,Tn=On._,Fn=On.Reflect,Rn=Fn?Fn.a:pn,Bn=Object.create,Dn=En.propertyIsEnumerable,In=On.isFinite,$n=Object.keys,qn=Math.max;
|
20
|
+
f.prototype=l(c.prototype),f.prototype.constructor=f;var zn=function(n,t){return function(r,e){if(null==r)return r;if(!X(r))return n(r,e);for(var u=r.length,o=t?u:-1,i=Object(r);(t?o--:++o<u)&&false!==e(i[o],o,i););return r}}(g),Cn=function(n){return function(t,r,e){var u=-1,o=Object(t);e=e(t);for(var i=e.length;i--;){var c=e[n?i:++u];if(false===r(o[c],c,o))break}return t}}();Rn&&!Dn.call({valueOf:1},"valueOf")&&(w=function(n){n=Rn(n);for(var t,r=[];!(t=n.next()).done;)r.push(t.value);return r});var Gn=k("length"),Jn=String,Mn=Q(function(n,t,r){
|
21
|
+
return I(n,t,r)}),Pn=Q(function(n,t){return p(n,1,t)}),Un=Q(function(n,t,r){return p(n,Kn(t)||0,r)}),Vn=Array.isArray,Hn=Number,Kn=Number,Ln=B(function(n,t){R(t,on(t),n)}),Qn=B(function(n,t){R(t,cn(t),n)}),Wn=B(function(n,t,r,e){R(t,cn(t),n,e)}),Xn=Q(function(n){return n.push(pn,a),Wn.apply(pn,n)}),Yn=Q(function(n,t){return null==n?{}:E(n,O(y(t,1),Jn))}),Zn=m;c.assignIn=Qn,c.before=L,c.bind=Mn,c.chain=function(n){return n=c(n),n.__chain__=true,n},c.compact=function(n){return v(n,Boolean)},c.concat=function(){
|
22
|
+
for(var t=arguments.length,r=Array(t?t-1:0),e=arguments[0],u=t;u--;)r[u-1]=arguments[u];return t?n(Vn(e)?S(e):[e],y(r,1)):[]},c.create=function(n,t){var r=l(n);return t?Ln(r,t):r},c.defaults=Xn,c.defer=Pn,c.delay=Un,c.filter=function(n,t){return v(n,m(t))},c.flatten=function(n){return n&&n.length?y(n,1):[]},c.flattenDeep=function(n){return n&&n.length?y(n,sn):[]},c.iteratee=Zn,c.keys=on,c.map=function(n,t){return O(n,m(t))},c.matches=function(n){return A(Ln({},n))},c.mixin=ln,c.negate=function(n){
|
23
|
+
if(typeof n!="function")throw new TypeError("Expected a function");return function(){return!n.apply(this,arguments)}},c.once=function(n){return L(2,n)},c.pick=Yn,c.slice=function(n,t,r){var e=n?n.length:0;return r=r===pn?e:+r,e?N(n,null==t?0:+t,r):[]},c.sortBy=function(n,t){var r=0;return t=m(t),O(O(n,function(n,e,u){return{value:n,index:r++,criteria:t(n,e,u)}}).sort(function(n,t){var r;n:{r=n.criteria;var e=t.criteria;if(r!==e){var u=r!==pn,o=null===r,i=r===r,c=e!==pn,f=null===e,a=e===e;if(!f&&r>e||o&&c&&a||!u&&a||!i){
|
24
|
+
r=1;break n}if(!o&&e>r||f&&u&&i||!c&&i||!a){r=-1;break n}}r=0}return r||n.index-t.index}),k("value"))},c.tap=function(n,t){return t(n),n},c.thru=function(n,t){return t(n)},c.toArray=function(n){return X(n)?n.length?S(n):[]:fn(n)},c.values=fn,c.extend=Qn,ln(c,c),c.clone=function(n){return nn(n)?Vn(n)?S(n):R(n,on(n)):n},c.escape=function(n){return(n=un(n))&&vn.test(n)?n.replace(hn,o):n},c.every=function(n,t,r){return t=r?pn:t,s(n,m(t))},c.find=V,c.forEach=H,c.has=function(n,t){return null!=n&&kn.call(n,t);
|
25
|
+
},c.head=P,c.identity=an,c.indexOf=U,c.isArguments=W,c.isArray=Vn,c.isBoolean=function(n){return true===n||false===n||tn(n)&&"[object Boolean]"==Sn.call(n)},c.isDate=function(n){return tn(n)&&"[object Date]"==Sn.call(n)},c.isEmpty=function(n){return X(n)&&(Vn(n)||en(n)||Y(n.splice)||W(n))?!n.length:!on(n).length},c.isEqual=function(n,t){return d(n,t)},c.isFinite=function(n){return typeof n=="number"&&In(n)},c.isFunction=Y,c.isNaN=function(n){return rn(n)&&n!=+n},c.isNull=function(n){return null===n},c.isNumber=rn,
|
26
|
+
c.isObject=nn,c.isRegExp=function(n){return nn(n)&&"[object RegExp]"==Sn.call(n)},c.isString=en,c.isUndefined=function(n){return n===pn},c.last=function(n){var t=n?n.length:0;return t?n[t-1]:pn},c.max=function(n){return n&&n.length?h(n,an,_):pn},c.min=function(n){return n&&n.length?h(n,an,x):pn},c.noConflict=function(){return On._===this&&(On._=Tn),this},c.noop=function(){},c.reduce=K,c.result=function(n,t,r){return t=null==n?pn:n[t],t===pn&&(t=r),Y(t)?t.call(n):t},c.size=function(n){return null==n?0:(n=X(n)?n:on(n),
|
27
|
+
n.length)},c.some=function(n,t,r){return t=r?pn:t,T(n,m(t))},c.uniqueId=function(n){var t=++Nn;return un(n)+t},c.each=H,c.first=P,ln(c,function(){var n={};return g(c,function(t,r){kn.call(c.prototype,r)||(n[r]=t)}),n}(),{chain:false}),c.VERSION="4.12.0",zn("pop join replace reverse split push shift sort splice unshift".split(" "),function(n){var t=(/^(?:replace|split)$/.test(n)?String.prototype:An)[n],r=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",e=/^(?:pop|join|replace|shift)$/.test(n);c.prototype[n]=function(){
|
28
|
+
var n=arguments;if(e&&!this.__chain__){var u=this.value();return t.apply(Vn(u)?u:[],n)}return this[r](function(r){return t.apply(Vn(r)?r:[],n)})}}),c.prototype.toJSON=c.prototype.valueOf=c.prototype.value=function(){return F(this.__wrapped__,this.__actions__)},(wn||mn||{})._=c,typeof define=="function"&&typeof define.amd=="object"&&define.amd? define(function(){return c}):_n&&dn?(jn&&((dn.exports=c)._=c),_n._=c):On._=c}).call(this);
|
@@ -1,7 +1,6 @@
|
|
1
1
|
/**
|
2
2
|
* @license
|
3
|
-
* lodash
|
4
|
-
* Build: `lodash -o ./dist/lodash.js`
|
3
|
+
* lodash <https://lodash.com/>
|
5
4
|
* Copyright jQuery Foundation and other contributors <https://jquery.org/>
|
6
5
|
* Released under MIT license <https://lodash.com/license>
|
7
6
|
* Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
|
@@ -13,7 +12,7 @@
|
|
13
12
|
var undefined;
|
14
13
|
|
15
14
|
/** Used as the semantic version number. */
|
16
|
-
var VERSION = '4.
|
15
|
+
var VERSION = '4.12.0';
|
17
16
|
|
18
17
|
/** Used as the size to enable large array optimizations. */
|
19
18
|
var LARGE_ARRAY_SIZE = 200;
|
@@ -457,30 +456,6 @@
|
|
457
456
|
return accumulator;
|
458
457
|
}
|
459
458
|
|
460
|
-
/**
|
461
|
-
* Creates a new array concatenating `array` with `other`.
|
462
|
-
*
|
463
|
-
* @private
|
464
|
-
* @param {Array} array The first array to concatenate.
|
465
|
-
* @param {Array} other The second array to concatenate.
|
466
|
-
* @returns {Array} Returns the new concatenated array.
|
467
|
-
*/
|
468
|
-
function arrayConcat(array, other) {
|
469
|
-
var index = -1,
|
470
|
-
length = array.length,
|
471
|
-
othIndex = -1,
|
472
|
-
othLength = other.length,
|
473
|
-
result = Array(length + othLength);
|
474
|
-
|
475
|
-
while (++index < length) {
|
476
|
-
result[index] = array[index];
|
477
|
-
}
|
478
|
-
while (++othIndex < othLength) {
|
479
|
-
result[index++] = other[othIndex];
|
480
|
-
}
|
481
|
-
return result;
|
482
|
-
}
|
483
|
-
|
484
459
|
/**
|
485
460
|
* A specialized version of `_.forEach` for arrays without support for
|
486
461
|
* iteratee shorthands.
|
@@ -908,7 +883,7 @@
|
|
908
883
|
* @private
|
909
884
|
* @param {Object} object The object to query.
|
910
885
|
* @param {Array} props The property names to get values for.
|
911
|
-
* @returns {Object} Returns the
|
886
|
+
* @returns {Object} Returns the key-value pairs.
|
912
887
|
*/
|
913
888
|
function baseToPairs(object, props) {
|
914
889
|
return arrayMap(props, function(key) {
|
@@ -921,7 +896,7 @@
|
|
921
896
|
*
|
922
897
|
* @private
|
923
898
|
* @param {Function} func The function to cap arguments for.
|
924
|
-
* @returns {Function} Returns the new function.
|
899
|
+
* @returns {Function} Returns the new capped function.
|
925
900
|
*/
|
926
901
|
function baseUnary(func) {
|
927
902
|
return function(value) {
|
@@ -945,6 +920,18 @@
|
|
945
920
|
});
|
946
921
|
}
|
947
922
|
|
923
|
+
/**
|
924
|
+
* Checks if a cache value for `key` exists.
|
925
|
+
*
|
926
|
+
* @private
|
927
|
+
* @param {Object} cache The cache to query.
|
928
|
+
* @param {string} key The key of the entry to check.
|
929
|
+
* @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
|
930
|
+
*/
|
931
|
+
function cacheHas(cache, key) {
|
932
|
+
return cache.has(key);
|
933
|
+
}
|
934
|
+
|
948
935
|
/**
|
949
936
|
* Used by `_.trim` and `_.trimStart` to get the index of the first string symbol
|
950
937
|
* that is not found in the character symbols.
|
@@ -1101,11 +1088,11 @@
|
|
1101
1088
|
}
|
1102
1089
|
|
1103
1090
|
/**
|
1104
|
-
* Converts `map` to
|
1091
|
+
* Converts `map` to its key-value pairs.
|
1105
1092
|
*
|
1106
1093
|
* @private
|
1107
1094
|
* @param {Object} map The map to convert.
|
1108
|
-
* @returns {Array} Returns the
|
1095
|
+
* @returns {Array} Returns the key-value pairs.
|
1109
1096
|
*/
|
1110
1097
|
function mapToArray(map) {
|
1111
1098
|
var index = -1,
|
@@ -1143,11 +1130,11 @@
|
|
1143
1130
|
}
|
1144
1131
|
|
1145
1132
|
/**
|
1146
|
-
* Converts `set` to an array.
|
1133
|
+
* Converts `set` to an array of its values.
|
1147
1134
|
*
|
1148
1135
|
* @private
|
1149
1136
|
* @param {Object} set The set to convert.
|
1150
|
-
* @returns {Array} Returns the
|
1137
|
+
* @returns {Array} Returns the values.
|
1151
1138
|
*/
|
1152
1139
|
function setToArray(set) {
|
1153
1140
|
var index = -1,
|
@@ -1159,6 +1146,23 @@
|
|
1159
1146
|
return result;
|
1160
1147
|
}
|
1161
1148
|
|
1149
|
+
/**
|
1150
|
+
* Converts `set` to its value-value pairs.
|
1151
|
+
*
|
1152
|
+
* @private
|
1153
|
+
* @param {Object} set The set to convert.
|
1154
|
+
* @returns {Array} Returns the value-value pairs.
|
1155
|
+
*/
|
1156
|
+
function setToPairs(set) {
|
1157
|
+
var index = -1,
|
1158
|
+
result = Array(set.size);
|
1159
|
+
|
1160
|
+
set.forEach(function(value) {
|
1161
|
+
result[++index] = [value, value];
|
1162
|
+
});
|
1163
|
+
return result;
|
1164
|
+
}
|
1165
|
+
|
1162
1166
|
/**
|
1163
1167
|
* Gets the number of symbols in `string`.
|
1164
1168
|
*
|
@@ -1412,10 +1416,10 @@
|
|
1412
1416
|
* `floor`, `forEach`, `forEachRight`, `forIn`, `forInRight`, `forOwn`,
|
1413
1417
|
* `forOwnRight`, `get`, `gt`, `gte`, `has`, `hasIn`, `head`, `identity`,
|
1414
1418
|
* `includes`, `indexOf`, `inRange`, `invoke`, `isArguments`, `isArray`,
|
1415
|
-
* `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`, `isBoolean`,
|
1416
|
-
* `isDate`, `isElement`, `isEmpty`, `isEqual`, `isEqualWith`,
|
1417
|
-
* `isFinite`, `isFunction`, `isInteger`, `isLength`, `isMap`,
|
1418
|
-
* `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`, `isNumber`,
|
1419
|
+
* `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`, `isBoolean`,
|
1420
|
+
* `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`, `isEqualWith`,
|
1421
|
+
* `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`, `isMap`,
|
1422
|
+
* `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`, `isNumber`,
|
1419
1423
|
* `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`, `isSafeInteger`,
|
1420
1424
|
* `isSet`, `isString`, `isUndefined`, `isTypedArray`, `isWeakMap`, `isWeakSet`,
|
1421
1425
|
* `join`, `kebabCase`, `last`, `lastIndexOf`, `lowerCase`, `lowerFirst`,
|
@@ -1424,9 +1428,9 @@
|
|
1424
1428
|
* `pop`, `random`, `reduce`, `reduceRight`, `repeat`, `result`, `round`,
|
1425
1429
|
* `runInContext`, `sample`, `shift`, `size`, `snakeCase`, `some`, `sortedIndex`,
|
1426
1430
|
* `sortedIndexBy`, `sortedLastIndex`, `sortedLastIndexBy`, `startCase`,
|
1427
|
-
* `startsWith`, `subtract`, `sum`, `sumBy`, `template`, `times`, `
|
1428
|
-
* `toJSON`, `toLength`, `toLower`, `toNumber`, `toSafeInteger`,
|
1429
|
-
* `toUpper`, `trim`, `trimEnd`, `trimStart`, `truncate`, `unescape`,
|
1431
|
+
* `startsWith`, `subtract`, `sum`, `sumBy`, `template`, `times`, `toFinite`,
|
1432
|
+
* `toInteger`, `toJSON`, `toLength`, `toLower`, `toNumber`, `toSafeInteger`,
|
1433
|
+
* `toString`, `toUpper`, `trim`, `trimEnd`, `trimStart`, `truncate`, `unescape`,
|
1430
1434
|
* `uniqueId`, `upperCase`, `upperFirst`, `value`, and `words`
|
1431
1435
|
*
|
1432
1436
|
* @name _
|
@@ -1686,64 +1690,212 @@
|
|
1686
1690
|
*
|
1687
1691
|
* @private
|
1688
1692
|
* @constructor
|
1689
|
-
* @
|
1693
|
+
* @param {Array} [entries] The key-value pairs to cache.
|
1690
1694
|
*/
|
1691
|
-
function Hash() {
|
1695
|
+
function Hash(entries) {
|
1696
|
+
var index = -1,
|
1697
|
+
length = entries ? entries.length : 0;
|
1698
|
+
|
1699
|
+
this.clear();
|
1700
|
+
while (++index < length) {
|
1701
|
+
var entry = entries[index];
|
1702
|
+
this.set(entry[0], entry[1]);
|
1703
|
+
}
|
1704
|
+
}
|
1705
|
+
|
1706
|
+
/**
|
1707
|
+
* Removes all key-value entries from the hash.
|
1708
|
+
*
|
1709
|
+
* @private
|
1710
|
+
* @name clear
|
1711
|
+
* @memberOf Hash
|
1712
|
+
*/
|
1713
|
+
function hashClear() {
|
1714
|
+
this.__data__ = nativeCreate ? nativeCreate(null) : {};
|
1715
|
+
}
|
1692
1716
|
|
1693
1717
|
/**
|
1694
1718
|
* Removes `key` and its value from the hash.
|
1695
1719
|
*
|
1696
1720
|
* @private
|
1721
|
+
* @name delete
|
1722
|
+
* @memberOf Hash
|
1697
1723
|
* @param {Object} hash The hash to modify.
|
1698
1724
|
* @param {string} key The key of the value to remove.
|
1699
1725
|
* @returns {boolean} Returns `true` if the entry was removed, else `false`.
|
1700
1726
|
*/
|
1701
|
-
function hashDelete(
|
1702
|
-
return
|
1727
|
+
function hashDelete(key) {
|
1728
|
+
return this.has(key) && delete this.__data__[key];
|
1703
1729
|
}
|
1704
1730
|
|
1705
1731
|
/**
|
1706
1732
|
* Gets the hash value for `key`.
|
1707
1733
|
*
|
1708
1734
|
* @private
|
1709
|
-
* @
|
1735
|
+
* @name get
|
1736
|
+
* @memberOf Hash
|
1710
1737
|
* @param {string} key The key of the value to get.
|
1711
1738
|
* @returns {*} Returns the entry value.
|
1712
1739
|
*/
|
1713
|
-
function hashGet(
|
1740
|
+
function hashGet(key) {
|
1741
|
+
var data = this.__data__;
|
1714
1742
|
if (nativeCreate) {
|
1715
|
-
var result =
|
1743
|
+
var result = data[key];
|
1716
1744
|
return result === HASH_UNDEFINED ? undefined : result;
|
1717
1745
|
}
|
1718
|
-
return hasOwnProperty.call(
|
1746
|
+
return hasOwnProperty.call(data, key) ? data[key] : undefined;
|
1719
1747
|
}
|
1720
1748
|
|
1721
1749
|
/**
|
1722
1750
|
* Checks if a hash value for `key` exists.
|
1723
1751
|
*
|
1724
1752
|
* @private
|
1725
|
-
* @
|
1753
|
+
* @name has
|
1754
|
+
* @memberOf Hash
|
1726
1755
|
* @param {string} key The key of the entry to check.
|
1727
1756
|
* @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
|
1728
1757
|
*/
|
1729
|
-
function hashHas(
|
1730
|
-
|
1758
|
+
function hashHas(key) {
|
1759
|
+
var data = this.__data__;
|
1760
|
+
return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);
|
1731
1761
|
}
|
1732
1762
|
|
1733
1763
|
/**
|
1734
1764
|
* Sets the hash `key` to `value`.
|
1735
1765
|
*
|
1736
1766
|
* @private
|
1737
|
-
* @
|
1767
|
+
* @name set
|
1768
|
+
* @memberOf Hash
|
1769
|
+
* @param {string} key The key of the value to set.
|
1770
|
+
* @param {*} value The value to set.
|
1771
|
+
* @returns {Object} Returns the hash instance.
|
1772
|
+
*/
|
1773
|
+
function hashSet(key, value) {
|
1774
|
+
var data = this.__data__;
|
1775
|
+
data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;
|
1776
|
+
return this;
|
1777
|
+
}
|
1778
|
+
|
1779
|
+
// Add methods to `Hash`.
|
1780
|
+
Hash.prototype.clear = hashClear;
|
1781
|
+
Hash.prototype['delete'] = hashDelete;
|
1782
|
+
Hash.prototype.get = hashGet;
|
1783
|
+
Hash.prototype.has = hashHas;
|
1784
|
+
Hash.prototype.set = hashSet;
|
1785
|
+
|
1786
|
+
/*------------------------------------------------------------------------*/
|
1787
|
+
|
1788
|
+
/**
|
1789
|
+
* Creates an list cache object.
|
1790
|
+
*
|
1791
|
+
* @private
|
1792
|
+
* @constructor
|
1793
|
+
* @param {Array} [entries] The key-value pairs to cache.
|
1794
|
+
*/
|
1795
|
+
function ListCache(entries) {
|
1796
|
+
var index = -1,
|
1797
|
+
length = entries ? entries.length : 0;
|
1798
|
+
|
1799
|
+
this.clear();
|
1800
|
+
while (++index < length) {
|
1801
|
+
var entry = entries[index];
|
1802
|
+
this.set(entry[0], entry[1]);
|
1803
|
+
}
|
1804
|
+
}
|
1805
|
+
|
1806
|
+
/**
|
1807
|
+
* Removes all key-value entries from the list cache.
|
1808
|
+
*
|
1809
|
+
* @private
|
1810
|
+
* @name clear
|
1811
|
+
* @memberOf ListCache
|
1812
|
+
*/
|
1813
|
+
function listCacheClear() {
|
1814
|
+
this.__data__ = [];
|
1815
|
+
}
|
1816
|
+
|
1817
|
+
/**
|
1818
|
+
* Removes `key` and its value from the list cache.
|
1819
|
+
*
|
1820
|
+
* @private
|
1821
|
+
* @name delete
|
1822
|
+
* @memberOf ListCache
|
1823
|
+
* @param {string} key The key of the value to remove.
|
1824
|
+
* @returns {boolean} Returns `true` if the entry was removed, else `false`.
|
1825
|
+
*/
|
1826
|
+
function listCacheDelete(key) {
|
1827
|
+
var data = this.__data__,
|
1828
|
+
index = assocIndexOf(data, key);
|
1829
|
+
|
1830
|
+
if (index < 0) {
|
1831
|
+
return false;
|
1832
|
+
}
|
1833
|
+
var lastIndex = data.length - 1;
|
1834
|
+
if (index == lastIndex) {
|
1835
|
+
data.pop();
|
1836
|
+
} else {
|
1837
|
+
splice.call(data, index, 1);
|
1838
|
+
}
|
1839
|
+
return true;
|
1840
|
+
}
|
1841
|
+
|
1842
|
+
/**
|
1843
|
+
* Gets the list cache value for `key`.
|
1844
|
+
*
|
1845
|
+
* @private
|
1846
|
+
* @name get
|
1847
|
+
* @memberOf ListCache
|
1848
|
+
* @param {string} key The key of the value to get.
|
1849
|
+
* @returns {*} Returns the entry value.
|
1850
|
+
*/
|
1851
|
+
function listCacheGet(key) {
|
1852
|
+
var data = this.__data__,
|
1853
|
+
index = assocIndexOf(data, key);
|
1854
|
+
|
1855
|
+
return index < 0 ? undefined : data[index][1];
|
1856
|
+
}
|
1857
|
+
|
1858
|
+
/**
|
1859
|
+
* Checks if a list cache value for `key` exists.
|
1860
|
+
*
|
1861
|
+
* @private
|
1862
|
+
* @name has
|
1863
|
+
* @memberOf ListCache
|
1864
|
+
* @param {string} key The key of the entry to check.
|
1865
|
+
* @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
|
1866
|
+
*/
|
1867
|
+
function listCacheHas(key) {
|
1868
|
+
return assocIndexOf(this.__data__, key) > -1;
|
1869
|
+
}
|
1870
|
+
|
1871
|
+
/**
|
1872
|
+
* Sets the list cache `key` to `value`.
|
1873
|
+
*
|
1874
|
+
* @private
|
1875
|
+
* @name set
|
1876
|
+
* @memberOf ListCache
|
1738
1877
|
* @param {string} key The key of the value to set.
|
1739
1878
|
* @param {*} value The value to set.
|
1879
|
+
* @returns {Object} Returns the list cache instance.
|
1740
1880
|
*/
|
1741
|
-
function
|
1742
|
-
|
1881
|
+
function listCacheSet(key, value) {
|
1882
|
+
var data = this.__data__,
|
1883
|
+
index = assocIndexOf(data, key);
|
1884
|
+
|
1885
|
+
if (index < 0) {
|
1886
|
+
data.push([key, value]);
|
1887
|
+
} else {
|
1888
|
+
data[index][1] = value;
|
1889
|
+
}
|
1890
|
+
return this;
|
1743
1891
|
}
|
1744
1892
|
|
1745
|
-
//
|
1746
|
-
|
1893
|
+
// Add methods to `ListCache`.
|
1894
|
+
ListCache.prototype.clear = listCacheClear;
|
1895
|
+
ListCache.prototype['delete'] = listCacheDelete;
|
1896
|
+
ListCache.prototype.get = listCacheGet;
|
1897
|
+
ListCache.prototype.has = listCacheHas;
|
1898
|
+
ListCache.prototype.set = listCacheSet;
|
1747
1899
|
|
1748
1900
|
/*------------------------------------------------------------------------*/
|
1749
1901
|
|
@@ -1752,15 +1904,15 @@
|
|
1752
1904
|
*
|
1753
1905
|
* @private
|
1754
1906
|
* @constructor
|
1755
|
-
* @param {Array} [
|
1907
|
+
* @param {Array} [entries] The key-value pairs to cache.
|
1756
1908
|
*/
|
1757
|
-
function MapCache(
|
1909
|
+
function MapCache(entries) {
|
1758
1910
|
var index = -1,
|
1759
|
-
length =
|
1911
|
+
length = entries ? entries.length : 0;
|
1760
1912
|
|
1761
1913
|
this.clear();
|
1762
1914
|
while (++index < length) {
|
1763
|
-
var entry =
|
1915
|
+
var entry = entries[index];
|
1764
1916
|
this.set(entry[0], entry[1]);
|
1765
1917
|
}
|
1766
1918
|
}
|
@@ -1772,10 +1924,10 @@
|
|
1772
1924
|
* @name clear
|
1773
1925
|
* @memberOf MapCache
|
1774
1926
|
*/
|
1775
|
-
function
|
1927
|
+
function mapCacheClear() {
|
1776
1928
|
this.__data__ = {
|
1777
1929
|
'hash': new Hash,
|
1778
|
-
'map':
|
1930
|
+
'map': new (Map || ListCache),
|
1779
1931
|
'string': new Hash
|
1780
1932
|
};
|
1781
1933
|
}
|
@@ -1789,12 +1941,8 @@
|
|
1789
1941
|
* @param {string} key The key of the value to remove.
|
1790
1942
|
* @returns {boolean} Returns `true` if the entry was removed, else `false`.
|
1791
1943
|
*/
|
1792
|
-
function
|
1793
|
-
|
1794
|
-
if (isKeyable(key)) {
|
1795
|
-
return hashDelete(typeof key == 'string' ? data.string : data.hash, key);
|
1796
|
-
}
|
1797
|
-
return Map ? data.map['delete'](key) : assocDelete(data.map, key);
|
1944
|
+
function mapCacheDelete(key) {
|
1945
|
+
return getMapData(this, key)['delete'](key);
|
1798
1946
|
}
|
1799
1947
|
|
1800
1948
|
/**
|
@@ -1806,12 +1954,8 @@
|
|
1806
1954
|
* @param {string} key The key of the value to get.
|
1807
1955
|
* @returns {*} Returns the entry value.
|
1808
1956
|
*/
|
1809
|
-
function
|
1810
|
-
|
1811
|
-
if (isKeyable(key)) {
|
1812
|
-
return hashGet(typeof key == 'string' ? data.string : data.hash, key);
|
1813
|
-
}
|
1814
|
-
return Map ? data.map.get(key) : assocGet(data.map, key);
|
1957
|
+
function mapCacheGet(key) {
|
1958
|
+
return getMapData(this, key).get(key);
|
1815
1959
|
}
|
1816
1960
|
|
1817
1961
|
/**
|
@@ -1823,12 +1967,8 @@
|
|
1823
1967
|
* @param {string} key The key of the entry to check.
|
1824
1968
|
* @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
|
1825
1969
|
*/
|
1826
|
-
function
|
1827
|
-
|
1828
|
-
if (isKeyable(key)) {
|
1829
|
-
return hashHas(typeof key == 'string' ? data.string : data.hash, key);
|
1830
|
-
}
|
1831
|
-
return Map ? data.map.has(key) : assocHas(data.map, key);
|
1970
|
+
function mapCacheHas(key) {
|
1971
|
+
return getMapData(this, key).has(key);
|
1832
1972
|
}
|
1833
1973
|
|
1834
1974
|
/**
|
@@ -1841,30 +1981,23 @@
|
|
1841
1981
|
* @param {*} value The value to set.
|
1842
1982
|
* @returns {Object} Returns the map cache instance.
|
1843
1983
|
*/
|
1844
|
-
function
|
1845
|
-
|
1846
|
-
if (isKeyable(key)) {
|
1847
|
-
hashSet(typeof key == 'string' ? data.string : data.hash, key, value);
|
1848
|
-
} else if (Map) {
|
1849
|
-
data.map.set(key, value);
|
1850
|
-
} else {
|
1851
|
-
assocSet(data.map, key, value);
|
1852
|
-
}
|
1984
|
+
function mapCacheSet(key, value) {
|
1985
|
+
getMapData(this, key).set(key, value);
|
1853
1986
|
return this;
|
1854
1987
|
}
|
1855
1988
|
|
1856
1989
|
// Add methods to `MapCache`.
|
1857
|
-
MapCache.prototype.clear =
|
1858
|
-
MapCache.prototype['delete'] =
|
1859
|
-
MapCache.prototype.get =
|
1860
|
-
MapCache.prototype.has =
|
1861
|
-
MapCache.prototype.set =
|
1990
|
+
MapCache.prototype.clear = mapCacheClear;
|
1991
|
+
MapCache.prototype['delete'] = mapCacheDelete;
|
1992
|
+
MapCache.prototype.get = mapCacheGet;
|
1993
|
+
MapCache.prototype.has = mapCacheHas;
|
1994
|
+
MapCache.prototype.set = mapCacheSet;
|
1862
1995
|
|
1863
1996
|
/*------------------------------------------------------------------------*/
|
1864
1997
|
|
1865
1998
|
/**
|
1866
1999
|
*
|
1867
|
-
* Creates
|
2000
|
+
* Creates an array cache object to store unique values.
|
1868
2001
|
*
|
1869
2002
|
* @private
|
1870
2003
|
* @constructor
|
@@ -1876,52 +2009,41 @@
|
|
1876
2009
|
|
1877
2010
|
this.__data__ = new MapCache;
|
1878
2011
|
while (++index < length) {
|
1879
|
-
this.
|
2012
|
+
this.add(values[index]);
|
1880
2013
|
}
|
1881
2014
|
}
|
1882
2015
|
|
1883
2016
|
/**
|
1884
|
-
*
|
2017
|
+
* Adds `value` to the array cache.
|
1885
2018
|
*
|
1886
2019
|
* @private
|
1887
|
-
* @
|
1888
|
-
* @
|
1889
|
-
* @
|
2020
|
+
* @name add
|
2021
|
+
* @memberOf SetCache
|
2022
|
+
* @alias push
|
2023
|
+
* @param {*} value The value to cache.
|
2024
|
+
* @returns {Object} Returns the cache instance.
|
1890
2025
|
*/
|
1891
|
-
function
|
1892
|
-
|
1893
|
-
|
1894
|
-
var data = map.__data__,
|
1895
|
-
hash = typeof value == 'string' ? data.string : data.hash;
|
1896
|
-
|
1897
|
-
return hash[value] === HASH_UNDEFINED;
|
1898
|
-
}
|
1899
|
-
return map.has(value);
|
2026
|
+
function setCacheAdd(value) {
|
2027
|
+
this.__data__.set(value, HASH_UNDEFINED);
|
2028
|
+
return this;
|
1900
2029
|
}
|
1901
2030
|
|
1902
2031
|
/**
|
1903
|
-
*
|
2032
|
+
* Checks if `value` is in the array cache.
|
1904
2033
|
*
|
1905
2034
|
* @private
|
1906
|
-
* @name
|
2035
|
+
* @name has
|
1907
2036
|
* @memberOf SetCache
|
1908
|
-
* @param {*} value The value to
|
2037
|
+
* @param {*} value The value to search for.
|
2038
|
+
* @returns {number} Returns `true` if `value` is found, else `false`.
|
1909
2039
|
*/
|
1910
|
-
function
|
1911
|
-
|
1912
|
-
if (isKeyable(value)) {
|
1913
|
-
var data = map.__data__,
|
1914
|
-
hash = typeof value == 'string' ? data.string : data.hash;
|
1915
|
-
|
1916
|
-
hash[value] = HASH_UNDEFINED;
|
1917
|
-
}
|
1918
|
-
else {
|
1919
|
-
map.set(value, HASH_UNDEFINED);
|
1920
|
-
}
|
2040
|
+
function setCacheHas(value) {
|
2041
|
+
return this.__data__.has(value);
|
1921
2042
|
}
|
1922
2043
|
|
1923
2044
|
// Add methods to `SetCache`.
|
1924
|
-
SetCache.prototype.push =
|
2045
|
+
SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;
|
2046
|
+
SetCache.prototype.has = setCacheHas;
|
1925
2047
|
|
1926
2048
|
/*------------------------------------------------------------------------*/
|
1927
2049
|
|
@@ -1930,17 +2052,10 @@
|
|
1930
2052
|
*
|
1931
2053
|
* @private
|
1932
2054
|
* @constructor
|
1933
|
-
* @param {Array} [
|
2055
|
+
* @param {Array} [entries] The key-value pairs to cache.
|
1934
2056
|
*/
|
1935
|
-
function Stack(
|
1936
|
-
|
1937
|
-
length = values ? values.length : 0;
|
1938
|
-
|
1939
|
-
this.clear();
|
1940
|
-
while (++index < length) {
|
1941
|
-
var entry = values[index];
|
1942
|
-
this.set(entry[0], entry[1]);
|
1943
|
-
}
|
2057
|
+
function Stack(entries) {
|
2058
|
+
this.__data__ = new ListCache(entries);
|
1944
2059
|
}
|
1945
2060
|
|
1946
2061
|
/**
|
@@ -1951,7 +2066,7 @@
|
|
1951
2066
|
* @memberOf Stack
|
1952
2067
|
*/
|
1953
2068
|
function stackClear() {
|
1954
|
-
this.__data__ =
|
2069
|
+
this.__data__ = new ListCache;
|
1955
2070
|
}
|
1956
2071
|
|
1957
2072
|
/**
|
@@ -1964,10 +2079,7 @@
|
|
1964
2079
|
* @returns {boolean} Returns `true` if the entry was removed, else `false`.
|
1965
2080
|
*/
|
1966
2081
|
function stackDelete(key) {
|
1967
|
-
|
1968
|
-
array = data.array;
|
1969
|
-
|
1970
|
-
return array ? assocDelete(array, key) : data.map['delete'](key);
|
2082
|
+
return this.__data__['delete'](key);
|
1971
2083
|
}
|
1972
2084
|
|
1973
2085
|
/**
|
@@ -1980,10 +2092,7 @@
|
|
1980
2092
|
* @returns {*} Returns the entry value.
|
1981
2093
|
*/
|
1982
2094
|
function stackGet(key) {
|
1983
|
-
|
1984
|
-
array = data.array;
|
1985
|
-
|
1986
|
-
return array ? assocGet(array, key) : data.map.get(key);
|
2095
|
+
return this.__data__.get(key);
|
1987
2096
|
}
|
1988
2097
|
|
1989
2098
|
/**
|
@@ -1996,10 +2105,7 @@
|
|
1996
2105
|
* @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
|
1997
2106
|
*/
|
1998
2107
|
function stackHas(key) {
|
1999
|
-
|
2000
|
-
array = data.array;
|
2001
|
-
|
2002
|
-
return array ? assocHas(array, key) : data.map.has(key);
|
2108
|
+
return this.__data__.has(key);
|
2003
2109
|
}
|
2004
2110
|
|
2005
2111
|
/**
|
@@ -2013,21 +2119,11 @@
|
|
2013
2119
|
* @returns {Object} Returns the stack cache instance.
|
2014
2120
|
*/
|
2015
2121
|
function stackSet(key, value) {
|
2016
|
-
var
|
2017
|
-
|
2018
|
-
|
2019
|
-
if (array) {
|
2020
|
-
if (array.length < (LARGE_ARRAY_SIZE - 1)) {
|
2021
|
-
assocSet(array, key, value);
|
2022
|
-
} else {
|
2023
|
-
data.array = null;
|
2024
|
-
data.map = new MapCache(array);
|
2025
|
-
}
|
2026
|
-
}
|
2027
|
-
var map = data.map;
|
2028
|
-
if (map) {
|
2029
|
-
map.set(key, value);
|
2122
|
+
var cache = this.__data__;
|
2123
|
+
if (cache instanceof ListCache && cache.__data__.length == LARGE_ARRAY_SIZE) {
|
2124
|
+
cache = this.__data__ = new MapCache(cache.__data__);
|
2030
2125
|
}
|
2126
|
+
cache.set(key, value);
|
2031
2127
|
return this;
|
2032
2128
|
}
|
2033
2129
|
|
@@ -2040,90 +2136,6 @@
|
|
2040
2136
|
|
2041
2137
|
/*------------------------------------------------------------------------*/
|
2042
2138
|
|
2043
|
-
/**
|
2044
|
-
* Removes `key` and its value from the associative array.
|
2045
|
-
*
|
2046
|
-
* @private
|
2047
|
-
* @param {Array} array The array to modify.
|
2048
|
-
* @param {string} key The key of the value to remove.
|
2049
|
-
* @returns {boolean} Returns `true` if the entry was removed, else `false`.
|
2050
|
-
*/
|
2051
|
-
function assocDelete(array, key) {
|
2052
|
-
var index = assocIndexOf(array, key);
|
2053
|
-
if (index < 0) {
|
2054
|
-
return false;
|
2055
|
-
}
|
2056
|
-
var lastIndex = array.length - 1;
|
2057
|
-
if (index == lastIndex) {
|
2058
|
-
array.pop();
|
2059
|
-
} else {
|
2060
|
-
splice.call(array, index, 1);
|
2061
|
-
}
|
2062
|
-
return true;
|
2063
|
-
}
|
2064
|
-
|
2065
|
-
/**
|
2066
|
-
* Gets the associative array value for `key`.
|
2067
|
-
*
|
2068
|
-
* @private
|
2069
|
-
* @param {Array} array The array to query.
|
2070
|
-
* @param {string} key The key of the value to get.
|
2071
|
-
* @returns {*} Returns the entry value.
|
2072
|
-
*/
|
2073
|
-
function assocGet(array, key) {
|
2074
|
-
var index = assocIndexOf(array, key);
|
2075
|
-
return index < 0 ? undefined : array[index][1];
|
2076
|
-
}
|
2077
|
-
|
2078
|
-
/**
|
2079
|
-
* Checks if an associative array value for `key` exists.
|
2080
|
-
*
|
2081
|
-
* @private
|
2082
|
-
* @param {Array} array The array to query.
|
2083
|
-
* @param {string} key The key of the entry to check.
|
2084
|
-
* @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
|
2085
|
-
*/
|
2086
|
-
function assocHas(array, key) {
|
2087
|
-
return assocIndexOf(array, key) > -1;
|
2088
|
-
}
|
2089
|
-
|
2090
|
-
/**
|
2091
|
-
* Gets the index at which the `key` is found in `array` of key-value pairs.
|
2092
|
-
*
|
2093
|
-
* @private
|
2094
|
-
* @param {Array} array The array to search.
|
2095
|
-
* @param {*} key The key to search for.
|
2096
|
-
* @returns {number} Returns the index of the matched value, else `-1`.
|
2097
|
-
*/
|
2098
|
-
function assocIndexOf(array, key) {
|
2099
|
-
var length = array.length;
|
2100
|
-
while (length--) {
|
2101
|
-
if (eq(array[length][0], key)) {
|
2102
|
-
return length;
|
2103
|
-
}
|
2104
|
-
}
|
2105
|
-
return -1;
|
2106
|
-
}
|
2107
|
-
|
2108
|
-
/**
|
2109
|
-
* Sets the associative array `key` to `value`.
|
2110
|
-
*
|
2111
|
-
* @private
|
2112
|
-
* @param {Array} array The array to modify.
|
2113
|
-
* @param {string} key The key of the value to set.
|
2114
|
-
* @param {*} value The value to set.
|
2115
|
-
*/
|
2116
|
-
function assocSet(array, key, value) {
|
2117
|
-
var index = assocIndexOf(array, key);
|
2118
|
-
if (index < 0) {
|
2119
|
-
array.push([key, value]);
|
2120
|
-
} else {
|
2121
|
-
array[index][1] = value;
|
2122
|
-
}
|
2123
|
-
}
|
2124
|
-
|
2125
|
-
/*------------------------------------------------------------------------*/
|
2126
|
-
|
2127
2139
|
/**
|
2128
2140
|
* Used by `_.defaults` to customize its `_.assignIn` use.
|
2129
2141
|
*
|
@@ -2176,6 +2188,24 @@
|
|
2176
2188
|
}
|
2177
2189
|
}
|
2178
2190
|
|
2191
|
+
/**
|
2192
|
+
* Gets the index at which the `key` is found in `array` of key-value pairs.
|
2193
|
+
*
|
2194
|
+
* @private
|
2195
|
+
* @param {Array} array The array to search.
|
2196
|
+
* @param {*} key The key to search for.
|
2197
|
+
* @returns {number} Returns the index of the matched value, else `-1`.
|
2198
|
+
*/
|
2199
|
+
function assocIndexOf(array, key) {
|
2200
|
+
var length = array.length;
|
2201
|
+
while (length--) {
|
2202
|
+
if (eq(array[length][0], key)) {
|
2203
|
+
return length;
|
2204
|
+
}
|
2205
|
+
}
|
2206
|
+
return -1;
|
2207
|
+
}
|
2208
|
+
|
2179
2209
|
/**
|
2180
2210
|
* Aggregates elements of `collection` on `accumulator` with keys transformed
|
2181
2211
|
* by `iteratee` and values set by `setter`.
|
@@ -2213,7 +2243,7 @@
|
|
2213
2243
|
* @private
|
2214
2244
|
* @param {Object} object The object to iterate over.
|
2215
2245
|
* @param {string[]} paths The property paths of elements to pick.
|
2216
|
-
* @returns {Array} Returns the
|
2246
|
+
* @returns {Array} Returns the picked elements.
|
2217
2247
|
*/
|
2218
2248
|
function baseAt(object, paths) {
|
2219
2249
|
var index = -1,
|
@@ -2328,7 +2358,7 @@
|
|
2328
2358
|
*
|
2329
2359
|
* @private
|
2330
2360
|
* @param {Object} source The object of property predicates to conform to.
|
2331
|
-
* @returns {Function} Returns the new function.
|
2361
|
+
* @returns {Function} Returns the new spec function.
|
2332
2362
|
*/
|
2333
2363
|
function baseConforms(source) {
|
2334
2364
|
var props = keys(source),
|
@@ -2641,7 +2671,7 @@
|
|
2641
2671
|
* @private
|
2642
2672
|
* @param {Object} object The object to inspect.
|
2643
2673
|
* @param {Array} props The property names to filter.
|
2644
|
-
* @returns {Array} Returns the
|
2674
|
+
* @returns {Array} Returns the function names.
|
2645
2675
|
*/
|
2646
2676
|
function baseFunctions(object, props) {
|
2647
2677
|
return arrayFilter(props, function(key) {
|
@@ -2682,9 +2712,7 @@
|
|
2682
2712
|
*/
|
2683
2713
|
function baseGetAllKeys(object, keysFunc, symbolsFunc) {
|
2684
2714
|
var result = keysFunc(object);
|
2685
|
-
return isArray(object)
|
2686
|
-
? result
|
2687
|
-
: arrayPush(result, symbolsFunc(object));
|
2715
|
+
return isArray(object) ? result : arrayPush(result, symbolsFunc(object));
|
2688
2716
|
}
|
2689
2717
|
|
2690
2718
|
/**
|
@@ -3076,7 +3104,7 @@
|
|
3076
3104
|
*
|
3077
3105
|
* @private
|
3078
3106
|
* @param {Object} source The object of property values to match.
|
3079
|
-
* @returns {Function} Returns the new function.
|
3107
|
+
* @returns {Function} Returns the new spec function.
|
3080
3108
|
*/
|
3081
3109
|
function baseMatches(source) {
|
3082
3110
|
var matchData = getMatchData(source);
|
@@ -3094,7 +3122,7 @@
|
|
3094
3122
|
* @private
|
3095
3123
|
* @param {string} path The path of the property to get.
|
3096
3124
|
* @param {*} srcValue The value to match.
|
3097
|
-
* @returns {Function} Returns the new function.
|
3125
|
+
* @returns {Function} Returns the new spec function.
|
3098
3126
|
*/
|
3099
3127
|
function baseMatchesProperty(path, srcValue) {
|
3100
3128
|
if (isKey(path) && isStrictComparable(srcValue)) {
|
@@ -3309,7 +3337,7 @@
|
|
3309
3337
|
*
|
3310
3338
|
* @private
|
3311
3339
|
* @param {string} key The key of the property to get.
|
3312
|
-
* @returns {Function} Returns the new function.
|
3340
|
+
* @returns {Function} Returns the new accessor function.
|
3313
3341
|
*/
|
3314
3342
|
function baseProperty(key) {
|
3315
3343
|
return function(object) {
|
@@ -3322,7 +3350,7 @@
|
|
3322
3350
|
*
|
3323
3351
|
* @private
|
3324
3352
|
* @param {Array|string} path The path of the property to get.
|
3325
|
-
* @returns {Function} Returns the new function.
|
3353
|
+
* @returns {Function} Returns the new accessor function.
|
3326
3354
|
*/
|
3327
3355
|
function basePropertyDeep(path) {
|
3328
3356
|
return function(object) {
|
@@ -3423,7 +3451,7 @@
|
|
3423
3451
|
* @param {number} end The end of the range.
|
3424
3452
|
* @param {number} step The value to increment or decrement by.
|
3425
3453
|
* @param {boolean} [fromRight] Specify iterating from right to left.
|
3426
|
-
* @returns {Array} Returns the
|
3454
|
+
* @returns {Array} Returns the range of numbers.
|
3427
3455
|
*/
|
3428
3456
|
function baseRange(start, end, step, fromRight) {
|
3429
3457
|
var index = -1,
|
@@ -4137,7 +4165,7 @@
|
|
4137
4165
|
* placeholders, and provided arguments into a single array of arguments.
|
4138
4166
|
*
|
4139
4167
|
* @private
|
4140
|
-
* @param {Array
|
4168
|
+
* @param {Array} args The provided arguments.
|
4141
4169
|
* @param {Array} partials The arguments to prepend to those provided.
|
4142
4170
|
* @param {Array} holders The `partials` placeholder indexes.
|
4143
4171
|
* @params {boolean} [isCurried] Specify composing for a curried function.
|
@@ -4172,7 +4200,7 @@
|
|
4172
4200
|
* is tailored for `_.partialRight`.
|
4173
4201
|
*
|
4174
4202
|
* @private
|
4175
|
-
* @param {Array
|
4203
|
+
* @param {Array} args The provided arguments.
|
4176
4204
|
* @param {Array} partials The arguments to append to those provided.
|
4177
4205
|
* @param {Array} holders The `partials` placeholder indexes.
|
4178
4206
|
* @params {boolean} [isCurried] Specify composing for a curried function.
|
@@ -4294,7 +4322,7 @@
|
|
4294
4322
|
customizer = length > 1 ? sources[length - 1] : undefined,
|
4295
4323
|
guard = length > 2 ? sources[2] : undefined;
|
4296
4324
|
|
4297
|
-
customizer = typeof customizer == 'function'
|
4325
|
+
customizer = (assigner.length > 3 && typeof customizer == 'function')
|
4298
4326
|
? (length--, customizer)
|
4299
4327
|
: undefined;
|
4300
4328
|
|
@@ -4393,7 +4421,7 @@
|
|
4393
4421
|
*
|
4394
4422
|
* @private
|
4395
4423
|
* @param {string} methodName The name of the `String` case method to use.
|
4396
|
-
* @returns {Function} Returns the new function.
|
4424
|
+
* @returns {Function} Returns the new case function.
|
4397
4425
|
*/
|
4398
4426
|
function createCaseFirst(methodName) {
|
4399
4427
|
return function(string) {
|
@@ -4478,7 +4506,7 @@
|
|
4478
4506
|
var length = arguments.length,
|
4479
4507
|
args = Array(length),
|
4480
4508
|
index = length,
|
4481
|
-
placeholder =
|
4509
|
+
placeholder = getHolder(wrapper);
|
4482
4510
|
|
4483
4511
|
while (index--) {
|
4484
4512
|
args[index] = arguments[index];
|
@@ -4593,14 +4621,14 @@
|
|
4593
4621
|
|
4594
4622
|
function wrapper() {
|
4595
4623
|
var length = arguments.length,
|
4596
|
-
|
4597
|
-
|
4624
|
+
args = Array(length),
|
4625
|
+
index = length;
|
4598
4626
|
|
4599
4627
|
while (index--) {
|
4600
4628
|
args[index] = arguments[index];
|
4601
4629
|
}
|
4602
4630
|
if (isCurried) {
|
4603
|
-
var placeholder =
|
4631
|
+
var placeholder = getHolder(wrapper),
|
4604
4632
|
holdersCount = countHolders(args, placeholder);
|
4605
4633
|
}
|
4606
4634
|
if (partials) {
|
@@ -4689,7 +4717,7 @@
|
|
4689
4717
|
*
|
4690
4718
|
* @private
|
4691
4719
|
* @param {Function} arrayFunc The function to iterate over iteratees.
|
4692
|
-
* @returns {Function} Returns the new
|
4720
|
+
* @returns {Function} Returns the new over function.
|
4693
4721
|
*/
|
4694
4722
|
function createOver(arrayFunc) {
|
4695
4723
|
return rest(function(iteratees) {
|
@@ -4887,6 +4915,26 @@
|
|
4887
4915
|
return new Set(values);
|
4888
4916
|
};
|
4889
4917
|
|
4918
|
+
/**
|
4919
|
+
* Creates a `_.toPairs` or `_.toPairsIn` function.
|
4920
|
+
*
|
4921
|
+
* @private
|
4922
|
+
* @param {Function} keysFunc The function to get the keys of a given object.
|
4923
|
+
* @returns {Function} Returns the new pairs function.
|
4924
|
+
*/
|
4925
|
+
function createToPairs(keysFunc) {
|
4926
|
+
return function(object) {
|
4927
|
+
var tag = getTag(object);
|
4928
|
+
if (tag == mapTag) {
|
4929
|
+
return mapToArray(object);
|
4930
|
+
}
|
4931
|
+
if (tag == setTag) {
|
4932
|
+
return setToPairs(object);
|
4933
|
+
}
|
4934
|
+
return baseToPairs(object, keysFunc(object));
|
4935
|
+
};
|
4936
|
+
}
|
4937
|
+
|
4890
4938
|
/**
|
4891
4939
|
* Creates a function that either curries or invokes `func` with optional
|
4892
4940
|
* `this` binding and partially applied arguments.
|
@@ -4904,6 +4952,7 @@
|
|
4904
4952
|
* 64 - `_.partialRight`
|
4905
4953
|
* 128 - `_.rearg`
|
4906
4954
|
* 256 - `_.ary`
|
4955
|
+
* 512 - `_.flip`
|
4907
4956
|
* @param {*} [thisArg] The `this` binding of `func`.
|
4908
4957
|
* @param {Array} [partials] The arguments to be partially applied.
|
4909
4958
|
* @param {Array} [holders] The `partials` placeholder indexes.
|
@@ -4982,9 +5031,7 @@
|
|
4982
5031
|
* @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.
|
4983
5032
|
*/
|
4984
5033
|
function equalArrays(array, other, equalFunc, customizer, bitmask, stack) {
|
4985
|
-
var
|
4986
|
-
isPartial = bitmask & PARTIAL_COMPARE_FLAG,
|
4987
|
-
isUnordered = bitmask & UNORDERED_COMPARE_FLAG,
|
5034
|
+
var isPartial = bitmask & PARTIAL_COMPARE_FLAG,
|
4988
5035
|
arrLength = array.length,
|
4989
5036
|
othLength = other.length;
|
4990
5037
|
|
@@ -4996,7 +5043,10 @@
|
|
4996
5043
|
if (stacked) {
|
4997
5044
|
return stacked == other;
|
4998
5045
|
}
|
4999
|
-
var
|
5046
|
+
var index = -1,
|
5047
|
+
result = true,
|
5048
|
+
seen = (bitmask & UNORDERED_COMPARE_FLAG) ? new SetCache : undefined;
|
5049
|
+
|
5000
5050
|
stack.set(array, other);
|
5001
5051
|
|
5002
5052
|
// Ignore non-index properties.
|
@@ -5017,10 +5067,12 @@
|
|
5017
5067
|
break;
|
5018
5068
|
}
|
5019
5069
|
// Recursively compare arrays (susceptible to call stack limits).
|
5020
|
-
if (
|
5021
|
-
if (!arraySome(other, function(othValue) {
|
5022
|
-
|
5023
|
-
|
5070
|
+
if (seen) {
|
5071
|
+
if (!arraySome(other, function(othValue, othIndex) {
|
5072
|
+
if (!seen.has(othIndex) &&
|
5073
|
+
(arrValue === othValue || equalFunc(arrValue, othValue, customizer, bitmask, stack))) {
|
5074
|
+
return seen.add(othIndex);
|
5075
|
+
}
|
5024
5076
|
})) {
|
5025
5077
|
result = false;
|
5026
5078
|
break;
|
@@ -5254,6 +5306,18 @@
|
|
5254
5306
|
return result;
|
5255
5307
|
}
|
5256
5308
|
|
5309
|
+
/**
|
5310
|
+
* Gets the argument placeholder value for `func`.
|
5311
|
+
*
|
5312
|
+
* @private
|
5313
|
+
* @param {Function} func The function to inspect.
|
5314
|
+
* @returns {*} Returns the placeholder value.
|
5315
|
+
*/
|
5316
|
+
function getHolder(func) {
|
5317
|
+
var object = hasOwnProperty.call(lodash, 'placeholder') ? lodash : func;
|
5318
|
+
return object.placeholder;
|
5319
|
+
}
|
5320
|
+
|
5257
5321
|
/**
|
5258
5322
|
* Gets the appropriate "iteratee" function. If `_.iteratee` is customized,
|
5259
5323
|
* this function returns the custom method, otherwise it returns `baseIteratee`.
|
@@ -5284,6 +5348,21 @@
|
|
5284
5348
|
*/
|
5285
5349
|
var getLength = baseProperty('length');
|
5286
5350
|
|
5351
|
+
/**
|
5352
|
+
* Gets the data for `map`.
|
5353
|
+
*
|
5354
|
+
* @private
|
5355
|
+
* @param {Object} map The map to query.
|
5356
|
+
* @param {string} key The reference key.
|
5357
|
+
* @returns {*} Returns the map data.
|
5358
|
+
*/
|
5359
|
+
function getMapData(map, key) {
|
5360
|
+
var data = map.__data__;
|
5361
|
+
return isKeyable(key)
|
5362
|
+
? data[typeof key == 'string' ? 'string' : 'hash']
|
5363
|
+
: data.map;
|
5364
|
+
}
|
5365
|
+
|
5287
5366
|
/**
|
5288
5367
|
* Gets the property names, values, and compare flags of `object`.
|
5289
5368
|
*
|
@@ -5314,18 +5393,6 @@
|
|
5314
5393
|
return isNative(value) ? value : undefined;
|
5315
5394
|
}
|
5316
5395
|
|
5317
|
-
/**
|
5318
|
-
* Gets the argument placeholder value for `func`.
|
5319
|
-
*
|
5320
|
-
* @private
|
5321
|
-
* @param {Function} func The function to inspect.
|
5322
|
-
* @returns {*} Returns the placeholder value.
|
5323
|
-
*/
|
5324
|
-
function getPlaceholder(func) {
|
5325
|
-
var object = hasOwnProperty.call(lodash, 'placeholder') ? lodash : func;
|
5326
|
-
return object.placeholder;
|
5327
|
-
}
|
5328
|
-
|
5329
5396
|
/**
|
5330
5397
|
* Gets the `[[Prototype]]` of `value`.
|
5331
5398
|
*
|
@@ -5575,7 +5642,7 @@
|
|
5575
5642
|
* @returns {boolean} Returns `true` if `value` is flattenable, else `false`.
|
5576
5643
|
*/
|
5577
5644
|
function isFlattenable(value) {
|
5578
|
-
return
|
5645
|
+
return isArray(value) || isArguments(value);
|
5579
5646
|
}
|
5580
5647
|
|
5581
5648
|
/**
|
@@ -5719,7 +5786,7 @@
|
|
5719
5786
|
* @private
|
5720
5787
|
* @param {string} key The key of the property to get.
|
5721
5788
|
* @param {*} srcValue The value to match.
|
5722
|
-
* @returns {Function} Returns the new function.
|
5789
|
+
* @returns {Function} Returns the new spec function.
|
5723
5790
|
*/
|
5724
5791
|
function matchesStrictComparable(key, srcValue) {
|
5725
5792
|
return function(object) {
|
@@ -5971,7 +6038,7 @@
|
|
5971
6038
|
* @param {Array} array The array to process.
|
5972
6039
|
* @param {number} [size=1] The length of each chunk
|
5973
6040
|
* @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
|
5974
|
-
* @returns {Array} Returns the new array
|
6041
|
+
* @returns {Array} Returns the new array of chunks.
|
5975
6042
|
* @example
|
5976
6043
|
*
|
5977
6044
|
* _.chunk(['a', 'b', 'c', 'd'], 2);
|
@@ -6054,16 +6121,16 @@
|
|
6054
6121
|
*/
|
6055
6122
|
function concat() {
|
6056
6123
|
var length = arguments.length,
|
6057
|
-
|
6124
|
+
args = Array(length ? length - 1 : 0),
|
6125
|
+
array = arguments[0],
|
6126
|
+
index = length;
|
6058
6127
|
|
6059
|
-
|
6060
|
-
|
6061
|
-
}
|
6062
|
-
var args = Array(length - 1);
|
6063
|
-
while (length--) {
|
6064
|
-
args[length - 1] = arguments[length];
|
6128
|
+
while (index--) {
|
6129
|
+
args[index - 1] = arguments[index];
|
6065
6130
|
}
|
6066
|
-
return
|
6131
|
+
return length
|
6132
|
+
? arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1))
|
6133
|
+
: [];
|
6067
6134
|
}
|
6068
6135
|
|
6069
6136
|
/**
|
@@ -6782,8 +6849,8 @@
|
|
6782
6849
|
}
|
6783
6850
|
|
6784
6851
|
/**
|
6785
|
-
* Gets the
|
6786
|
-
* from the end is returned.
|
6852
|
+
* Gets the element at `n` index of `array`. If `n` is negative, the nth
|
6853
|
+
* element from the end is returned.
|
6787
6854
|
*
|
6788
6855
|
* @static
|
6789
6856
|
* @memberOf _
|
@@ -7663,7 +7730,7 @@
|
|
7663
7730
|
* @memberOf _
|
7664
7731
|
* @since 0.1.0
|
7665
7732
|
* @category Array
|
7666
|
-
* @param {Array} array The array to
|
7733
|
+
* @param {Array} array The array to inspect.
|
7667
7734
|
* @param {...*} [values] The values to exclude.
|
7668
7735
|
* @returns {Array} Returns the new array of filtered values.
|
7669
7736
|
* @see _.difference, _.xor
|
@@ -7689,7 +7756,7 @@
|
|
7689
7756
|
* @since 2.4.0
|
7690
7757
|
* @category Array
|
7691
7758
|
* @param {...Array} [arrays] The arrays to inspect.
|
7692
|
-
* @returns {Array} Returns the new array of values.
|
7759
|
+
* @returns {Array} Returns the new array of filtered values.
|
7693
7760
|
* @see _.difference, _.without
|
7694
7761
|
* @example
|
7695
7762
|
*
|
@@ -7713,7 +7780,7 @@
|
|
7713
7780
|
* @param {...Array} [arrays] The arrays to inspect.
|
7714
7781
|
* @param {Array|Function|Object|string} [iteratee=_.identity]
|
7715
7782
|
* The iteratee invoked per element.
|
7716
|
-
* @returns {Array} Returns the new array of values.
|
7783
|
+
* @returns {Array} Returns the new array of filtered values.
|
7717
7784
|
* @example
|
7718
7785
|
*
|
7719
7786
|
* _.xorBy([2.1, 1.2], [4.3, 2.4], Math.floor);
|
@@ -7742,7 +7809,7 @@
|
|
7742
7809
|
* @category Array
|
7743
7810
|
* @param {...Array} [arrays] The arrays to inspect.
|
7744
7811
|
* @param {Function} [comparator] The comparator invoked per element.
|
7745
|
-
* @returns {Array} Returns the new array of values.
|
7812
|
+
* @returns {Array} Returns the new array of filtered values.
|
7746
7813
|
* @example
|
7747
7814
|
*
|
7748
7815
|
* var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];
|
@@ -8490,9 +8557,8 @@
|
|
8490
8557
|
* // => Logs 'a' then 'b' (iteration order is not guaranteed).
|
8491
8558
|
*/
|
8492
8559
|
function forEach(collection, iteratee) {
|
8493
|
-
|
8494
|
-
|
8495
|
-
: baseEach(collection, getIteratee(iteratee));
|
8560
|
+
var func = isArray(collection) ? arrayEach : baseEach;
|
8561
|
+
return func(collection, getIteratee(iteratee, 3));
|
8496
8562
|
}
|
8497
8563
|
|
8498
8564
|
/**
|
@@ -8516,9 +8582,8 @@
|
|
8516
8582
|
* // => Logs `2` then `1`.
|
8517
8583
|
*/
|
8518
8584
|
function forEachRight(collection, iteratee) {
|
8519
|
-
|
8520
|
-
|
8521
|
-
: baseEachRight(collection, getIteratee(iteratee));
|
8585
|
+
var func = isArray(collection) ? arrayEachRight : baseEachRight;
|
8586
|
+
return func(collection, getIteratee(iteratee, 3));
|
8522
8587
|
}
|
8523
8588
|
|
8524
8589
|
/**
|
@@ -9199,7 +9264,7 @@
|
|
9199
9264
|
* @param {Function} func The function to cap arguments for.
|
9200
9265
|
* @param {number} [n=func.length] The arity cap.
|
9201
9266
|
* @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
|
9202
|
-
* @returns {Function} Returns the new function.
|
9267
|
+
* @returns {Function} Returns the new capped function.
|
9203
9268
|
* @example
|
9204
9269
|
*
|
9205
9270
|
* _.map(['6', '8', '10'], _.ary(parseInt, 1));
|
@@ -9283,7 +9348,7 @@
|
|
9283
9348
|
var bind = rest(function(func, thisArg, partials) {
|
9284
9349
|
var bitmask = BIND_FLAG;
|
9285
9350
|
if (partials.length) {
|
9286
|
-
var holders = replaceHolders(partials,
|
9351
|
+
var holders = replaceHolders(partials, getHolder(bind));
|
9287
9352
|
bitmask |= PARTIAL_FLAG;
|
9288
9353
|
}
|
9289
9354
|
return createWrapper(func, bitmask, thisArg, partials, holders);
|
@@ -9337,7 +9402,7 @@
|
|
9337
9402
|
var bindKey = rest(function(object, key, partials) {
|
9338
9403
|
var bitmask = BIND_FLAG | BIND_KEY_FLAG;
|
9339
9404
|
if (partials.length) {
|
9340
|
-
var holders = replaceHolders(partials,
|
9405
|
+
var holders = replaceHolders(partials, getHolder(bindKey));
|
9341
9406
|
bitmask |= PARTIAL_FLAG;
|
9342
9407
|
}
|
9343
9408
|
return createWrapper(key, bitmask, object, partials, holders);
|
@@ -9663,7 +9728,7 @@
|
|
9663
9728
|
* @since 4.0.0
|
9664
9729
|
* @category Function
|
9665
9730
|
* @param {Function} func The function to flip arguments for.
|
9666
|
-
* @returns {Function} Returns the new function.
|
9731
|
+
* @returns {Function} Returns the new flipped function.
|
9667
9732
|
* @example
|
9668
9733
|
*
|
9669
9734
|
* var flipped = _.flip(function() {
|
@@ -9696,7 +9761,7 @@
|
|
9696
9761
|
* @category Function
|
9697
9762
|
* @param {Function} func The function to have its output memoized.
|
9698
9763
|
* @param {Function} [resolver] The function to resolve the cache key.
|
9699
|
-
* @returns {Function} Returns the new
|
9764
|
+
* @returns {Function} Returns the new memoized function.
|
9700
9765
|
* @example
|
9701
9766
|
*
|
9702
9767
|
* var object = { 'a': 1, 'b': 2 };
|
@@ -9754,7 +9819,7 @@
|
|
9754
9819
|
* @since 3.0.0
|
9755
9820
|
* @category Function
|
9756
9821
|
* @param {Function} predicate The predicate to negate.
|
9757
|
-
* @returns {Function} Returns the new function.
|
9822
|
+
* @returns {Function} Returns the new negated function.
|
9758
9823
|
* @example
|
9759
9824
|
*
|
9760
9825
|
* function isEven(n) {
|
@@ -9878,7 +9943,7 @@
|
|
9878
9943
|
* // => 'hi fred'
|
9879
9944
|
*/
|
9880
9945
|
var partial = rest(function(func, partials) {
|
9881
|
-
var holders = replaceHolders(partials,
|
9946
|
+
var holders = replaceHolders(partials, getHolder(partial));
|
9882
9947
|
return createWrapper(func, PARTIAL_FLAG, undefined, partials, holders);
|
9883
9948
|
});
|
9884
9949
|
|
@@ -9915,7 +9980,7 @@
|
|
9915
9980
|
* // => 'hello fred'
|
9916
9981
|
*/
|
9917
9982
|
var partialRight = rest(function(func, partials) {
|
9918
|
-
var holders = replaceHolders(partials,
|
9983
|
+
var holders = replaceHolders(partials, getHolder(partialRight));
|
9919
9984
|
return createWrapper(func, PARTIAL_RIGHT_FLAG, undefined, partials, holders);
|
9920
9985
|
});
|
9921
9986
|
|
@@ -10117,7 +10182,7 @@
|
|
10117
10182
|
* @since 4.0.0
|
10118
10183
|
* @category Function
|
10119
10184
|
* @param {Function} func The function to cap arguments for.
|
10120
|
-
* @returns {Function} Returns the new function.
|
10185
|
+
* @returns {Function} Returns the new capped function.
|
10121
10186
|
* @example
|
10122
10187
|
*
|
10123
10188
|
* _.map(['6', '8', '10'], _.unary(parseInt));
|
@@ -10793,14 +10858,14 @@
|
|
10793
10858
|
* _.isFinite(3);
|
10794
10859
|
* // => true
|
10795
10860
|
*
|
10796
|
-
* _.isFinite(Number.
|
10797
|
-
* // => true
|
10798
|
-
*
|
10799
|
-
* _.isFinite(3.14);
|
10861
|
+
* _.isFinite(Number.MIN_VALUE);
|
10800
10862
|
* // => true
|
10801
10863
|
*
|
10802
10864
|
* _.isFinite(Infinity);
|
10803
10865
|
* // => false
|
10866
|
+
*
|
10867
|
+
* _.isFinite('3');
|
10868
|
+
* // => false
|
10804
10869
|
*/
|
10805
10870
|
function isFinite(value) {
|
10806
10871
|
return typeof value == 'number' && nativeIsFinite(value);
|
@@ -11521,6 +11586,41 @@
|
|
11521
11586
|
return func(value);
|
11522
11587
|
}
|
11523
11588
|
|
11589
|
+
/**
|
11590
|
+
* Converts `value` to a finite number.
|
11591
|
+
*
|
11592
|
+
* @static
|
11593
|
+
* @memberOf _
|
11594
|
+
* @since 4.12.0
|
11595
|
+
* @category Lang
|
11596
|
+
* @param {*} value The value to convert.
|
11597
|
+
* @returns {number} Returns the converted number.
|
11598
|
+
* @example
|
11599
|
+
*
|
11600
|
+
* _.toFinite(3.2);
|
11601
|
+
* // => 3.2
|
11602
|
+
*
|
11603
|
+
* _.toFinite(Number.MIN_VALUE);
|
11604
|
+
* // => 5e-324
|
11605
|
+
*
|
11606
|
+
* _.toFinite(Infinity);
|
11607
|
+
* // => 1.7976931348623157e+308
|
11608
|
+
*
|
11609
|
+
* _.toFinite('3.2');
|
11610
|
+
* // => 3.2
|
11611
|
+
*/
|
11612
|
+
function toFinite(value) {
|
11613
|
+
if (!value) {
|
11614
|
+
return value === 0 ? value : 0;
|
11615
|
+
}
|
11616
|
+
value = toNumber(value);
|
11617
|
+
if (value === INFINITY || value === -INFINITY) {
|
11618
|
+
var sign = (value < 0 ? -1 : 1);
|
11619
|
+
return sign * MAX_INTEGER;
|
11620
|
+
}
|
11621
|
+
return value === value ? value : 0;
|
11622
|
+
}
|
11623
|
+
|
11524
11624
|
/**
|
11525
11625
|
* Converts `value` to an integer.
|
11526
11626
|
*
|
@@ -11535,7 +11635,7 @@
|
|
11535
11635
|
* @returns {number} Returns the converted integer.
|
11536
11636
|
* @example
|
11537
11637
|
*
|
11538
|
-
* _.toInteger(3);
|
11638
|
+
* _.toInteger(3.2);
|
11539
11639
|
* // => 3
|
11540
11640
|
*
|
11541
11641
|
* _.toInteger(Number.MIN_VALUE);
|
@@ -11544,20 +11644,14 @@
|
|
11544
11644
|
* _.toInteger(Infinity);
|
11545
11645
|
* // => 1.7976931348623157e+308
|
11546
11646
|
*
|
11547
|
-
* _.toInteger('3');
|
11647
|
+
* _.toInteger('3.2');
|
11548
11648
|
* // => 3
|
11549
11649
|
*/
|
11550
11650
|
function toInteger(value) {
|
11551
|
-
|
11552
|
-
|
11553
|
-
|
11554
|
-
|
11555
|
-
if (value === INFINITY || value === -INFINITY) {
|
11556
|
-
var sign = (value < 0 ? -1 : 1);
|
11557
|
-
return sign * MAX_INTEGER;
|
11558
|
-
}
|
11559
|
-
var remainder = value % 1;
|
11560
|
-
return value === value ? (remainder ? value - remainder : value) : 0;
|
11651
|
+
var result = toFinite(value),
|
11652
|
+
remainder = result % 1;
|
11653
|
+
|
11654
|
+
return result === result ? (remainder ? result - remainder : result) : 0;
|
11561
11655
|
}
|
11562
11656
|
|
11563
11657
|
/**
|
@@ -11575,7 +11669,7 @@
|
|
11575
11669
|
* @returns {number} Returns the converted integer.
|
11576
11670
|
* @example
|
11577
11671
|
*
|
11578
|
-
* _.toLength(3);
|
11672
|
+
* _.toLength(3.2);
|
11579
11673
|
* // => 3
|
11580
11674
|
*
|
11581
11675
|
* _.toLength(Number.MIN_VALUE);
|
@@ -11584,7 +11678,7 @@
|
|
11584
11678
|
* _.toLength(Infinity);
|
11585
11679
|
* // => 4294967295
|
11586
11680
|
*
|
11587
|
-
* _.toLength('3');
|
11681
|
+
* _.toLength('3.2');
|
11588
11682
|
* // => 3
|
11589
11683
|
*/
|
11590
11684
|
function toLength(value) {
|
@@ -11602,8 +11696,8 @@
|
|
11602
11696
|
* @returns {number} Returns the number.
|
11603
11697
|
* @example
|
11604
11698
|
*
|
11605
|
-
* _.toNumber(3);
|
11606
|
-
* // => 3
|
11699
|
+
* _.toNumber(3.2);
|
11700
|
+
* // => 3.2
|
11607
11701
|
*
|
11608
11702
|
* _.toNumber(Number.MIN_VALUE);
|
11609
11703
|
* // => 5e-324
|
@@ -11611,8 +11705,8 @@
|
|
11611
11705
|
* _.toNumber(Infinity);
|
11612
11706
|
* // => Infinity
|
11613
11707
|
*
|
11614
|
-
* _.toNumber('3');
|
11615
|
-
* // => 3
|
11708
|
+
* _.toNumber('3.2');
|
11709
|
+
* // => 3.2
|
11616
11710
|
*/
|
11617
11711
|
function toNumber(value) {
|
11618
11712
|
if (typeof value == 'number') {
|
@@ -11675,7 +11769,7 @@
|
|
11675
11769
|
* @returns {number} Returns the converted integer.
|
11676
11770
|
* @example
|
11677
11771
|
*
|
11678
|
-
* _.toSafeInteger(3);
|
11772
|
+
* _.toSafeInteger(3.2);
|
11679
11773
|
* // => 3
|
11680
11774
|
*
|
11681
11775
|
* _.toSafeInteger(Number.MIN_VALUE);
|
@@ -11684,7 +11778,7 @@
|
|
11684
11778
|
* _.toSafeInteger(Infinity);
|
11685
11779
|
* // => 9007199254740991
|
11686
11780
|
*
|
11687
|
-
* _.toSafeInteger('3');
|
11781
|
+
* _.toSafeInteger('3.2');
|
11688
11782
|
* // => 3
|
11689
11783
|
*/
|
11690
11784
|
function toSafeInteger(value) {
|
@@ -11877,7 +11971,7 @@
|
|
11877
11971
|
* @category Object
|
11878
11972
|
* @param {Object} object The object to iterate over.
|
11879
11973
|
* @param {...(string|string[])} [paths] The property paths of elements to pick.
|
11880
|
-
* @returns {Array} Returns the
|
11974
|
+
* @returns {Array} Returns the picked values.
|
11881
11975
|
* @example
|
11882
11976
|
*
|
11883
11977
|
* var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };
|
@@ -12093,7 +12187,7 @@
|
|
12093
12187
|
function forIn(object, iteratee) {
|
12094
12188
|
return object == null
|
12095
12189
|
? object
|
12096
|
-
: baseFor(object, getIteratee(iteratee), keysIn);
|
12190
|
+
: baseFor(object, getIteratee(iteratee, 3), keysIn);
|
12097
12191
|
}
|
12098
12192
|
|
12099
12193
|
/**
|
@@ -12125,7 +12219,7 @@
|
|
12125
12219
|
function forInRight(object, iteratee) {
|
12126
12220
|
return object == null
|
12127
12221
|
? object
|
12128
|
-
: baseForRight(object, getIteratee(iteratee), keysIn);
|
12222
|
+
: baseForRight(object, getIteratee(iteratee, 3), keysIn);
|
12129
12223
|
}
|
12130
12224
|
|
12131
12225
|
/**
|
@@ -12157,7 +12251,7 @@
|
|
12157
12251
|
* // => Logs 'a' then 'b' (iteration order is not guaranteed).
|
12158
12252
|
*/
|
12159
12253
|
function forOwn(object, iteratee) {
|
12160
|
-
return object && baseForOwn(object, getIteratee(iteratee));
|
12254
|
+
return object && baseForOwn(object, getIteratee(iteratee, 3));
|
12161
12255
|
}
|
12162
12256
|
|
12163
12257
|
/**
|
@@ -12187,7 +12281,7 @@
|
|
12187
12281
|
* // => Logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'.
|
12188
12282
|
*/
|
12189
12283
|
function forOwnRight(object, iteratee) {
|
12190
|
-
return object && baseForOwnRight(object, getIteratee(iteratee));
|
12284
|
+
return object && baseForOwnRight(object, getIteratee(iteratee, 3));
|
12191
12285
|
}
|
12192
12286
|
|
12193
12287
|
/**
|
@@ -12199,7 +12293,7 @@
|
|
12199
12293
|
* @memberOf _
|
12200
12294
|
* @category Object
|
12201
12295
|
* @param {Object} object The object to inspect.
|
12202
|
-
* @returns {Array} Returns the
|
12296
|
+
* @returns {Array} Returns the function names.
|
12203
12297
|
* @see _.functionsIn
|
12204
12298
|
* @example
|
12205
12299
|
*
|
@@ -12226,7 +12320,7 @@
|
|
12226
12320
|
* @since 4.0.0
|
12227
12321
|
* @category Object
|
12228
12322
|
* @param {Object} object The object to inspect.
|
12229
|
-
* @returns {Array} Returns the
|
12323
|
+
* @returns {Array} Returns the function names.
|
12230
12324
|
* @see _.functions
|
12231
12325
|
* @example
|
12232
12326
|
*
|
@@ -12579,7 +12673,7 @@
|
|
12579
12673
|
* inherited enumerable string keyed properties of source objects into the
|
12580
12674
|
* destination object. Source properties that resolve to `undefined` are
|
12581
12675
|
* skipped if a destination value exists. Array and plain object properties
|
12582
|
-
* are merged recursively.Other objects and value types are overridden by
|
12676
|
+
* are merged recursively. Other objects and value types are overridden by
|
12583
12677
|
* assignment. Source objects are applied from left to right. Subsequent
|
12584
12678
|
* sources overwrite property assignments of previous sources.
|
12585
12679
|
*
|
@@ -12864,7 +12958,8 @@
|
|
12864
12958
|
|
12865
12959
|
/**
|
12866
12960
|
* Creates an array of own enumerable string keyed-value pairs for `object`
|
12867
|
-
* which can be consumed by `_.fromPairs`.
|
12961
|
+
* which can be consumed by `_.fromPairs`. If `object` is a map or set, its
|
12962
|
+
* entries are returned.
|
12868
12963
|
*
|
12869
12964
|
* @static
|
12870
12965
|
* @memberOf _
|
@@ -12872,7 +12967,7 @@
|
|
12872
12967
|
* @alias entries
|
12873
12968
|
* @category Object
|
12874
12969
|
* @param {Object} object The object to query.
|
12875
|
-
* @returns {Array} Returns the
|
12970
|
+
* @returns {Array} Returns the key-value pairs.
|
12876
12971
|
* @example
|
12877
12972
|
*
|
12878
12973
|
* function Foo() {
|
@@ -12885,13 +12980,12 @@
|
|
12885
12980
|
* _.toPairs(new Foo);
|
12886
12981
|
* // => [['a', 1], ['b', 2]] (iteration order is not guaranteed)
|
12887
12982
|
*/
|
12888
|
-
|
12889
|
-
return baseToPairs(object, keys(object));
|
12890
|
-
}
|
12983
|
+
var toPairs = createToPairs(keys);
|
12891
12984
|
|
12892
12985
|
/**
|
12893
12986
|
* Creates an array of own and inherited enumerable string keyed-value pairs
|
12894
|
-
* for `object` which can be consumed by `_.fromPairs`.
|
12987
|
+
* for `object` which can be consumed by `_.fromPairs`. If `object` is a map
|
12988
|
+
* or set, its entries are returned.
|
12895
12989
|
*
|
12896
12990
|
* @static
|
12897
12991
|
* @memberOf _
|
@@ -12899,7 +12993,7 @@
|
|
12899
12993
|
* @alias entriesIn
|
12900
12994
|
* @category Object
|
12901
12995
|
* @param {Object} object The object to query.
|
12902
|
-
* @returns {Array} Returns the
|
12996
|
+
* @returns {Array} Returns the key-value pairs.
|
12903
12997
|
* @example
|
12904
12998
|
*
|
12905
12999
|
* function Foo() {
|
@@ -12910,11 +13004,9 @@
|
|
12910
13004
|
* Foo.prototype.c = 3;
|
12911
13005
|
*
|
12912
13006
|
* _.toPairsIn(new Foo);
|
12913
|
-
* // => [['a', 1], ['b', 2], ['c',
|
13007
|
+
* // => [['a', 1], ['b', 2], ['c', 3]] (iteration order is not guaranteed)
|
12914
13008
|
*/
|
12915
|
-
|
12916
|
-
return baseToPairs(object, keysIn(object));
|
12917
|
-
}
|
13009
|
+
var toPairsIn = createToPairs(keysIn);
|
12918
13010
|
|
12919
13011
|
/**
|
12920
13012
|
* An alternative to `_.reduce`; this method transforms `object` to a new
|
@@ -13744,7 +13836,7 @@
|
|
13744
13836
|
* @param {string} [string=''] The string to split.
|
13745
13837
|
* @param {RegExp|string} separator The separator pattern to split by.
|
13746
13838
|
* @param {number} [limit] The length to truncate results to.
|
13747
|
-
* @returns {Array} Returns the
|
13839
|
+
* @returns {Array} Returns the string segments.
|
13748
13840
|
* @example
|
13749
13841
|
*
|
13750
13842
|
* _.split('a-b-c', '-', 2);
|
@@ -13889,12 +13981,6 @@
|
|
13889
13981
|
* compiled({ 'user': 'pebbles' });
|
13890
13982
|
* // => 'hello pebbles!'
|
13891
13983
|
*
|
13892
|
-
* // Use custom template delimiters.
|
13893
|
-
* _.templateSettings.interpolate = /{{([\s\S]+?)}}/g;
|
13894
|
-
* var compiled = _.template('hello {{ user }}!');
|
13895
|
-
* compiled({ 'user': 'mustache' });
|
13896
|
-
* // => 'hello mustache!'
|
13897
|
-
*
|
13898
13984
|
* // Use backslashes to treat delimiters as plain text.
|
13899
13985
|
* var compiled = _.template('<%= "\\<%- value %\\>" %>');
|
13900
13986
|
* compiled({ 'value': 'ignored' });
|
@@ -13920,9 +14006,15 @@
|
|
13920
14006
|
* // return __p;
|
13921
14007
|
* // }
|
13922
14008
|
*
|
14009
|
+
* // Use custom template delimiters.
|
14010
|
+
* _.templateSettings.interpolate = /{{([\s\S]+?)}}/g;
|
14011
|
+
* var compiled = _.template('hello {{ user }}!');
|
14012
|
+
* compiled({ 'user': 'mustache' });
|
14013
|
+
* // => 'hello mustache!'
|
14014
|
+
*
|
13923
14015
|
* // Use the `source` property to inline compiled templates for meaningful
|
13924
14016
|
* // line numbers in error messages and stack traces.
|
13925
|
-
* fs.writeFileSync(path.join(cwd, 'jst.js'), '\
|
14017
|
+
* fs.writeFileSync(path.join(process.cwd(), 'jst.js'), '\
|
13926
14018
|
* var JST = {\
|
13927
14019
|
* "main": ' + _.template(mainText).source + '\
|
13928
14020
|
* };\
|
@@ -14458,7 +14550,7 @@
|
|
14458
14550
|
* @since 4.0.0
|
14459
14551
|
* @category Util
|
14460
14552
|
* @param {Array} pairs The predicate-function pairs.
|
14461
|
-
* @returns {Function} Returns the new function.
|
14553
|
+
* @returns {Function} Returns the new composite function.
|
14462
14554
|
* @example
|
14463
14555
|
*
|
14464
14556
|
* var func = _.cond([
|
@@ -14508,7 +14600,7 @@
|
|
14508
14600
|
* @since 4.0.0
|
14509
14601
|
* @category Util
|
14510
14602
|
* @param {Object} source The object of property predicates to conform to.
|
14511
|
-
* @returns {Function} Returns the new function.
|
14603
|
+
* @returns {Function} Returns the new spec function.
|
14512
14604
|
* @example
|
14513
14605
|
*
|
14514
14606
|
* var users = [
|
@@ -14531,7 +14623,7 @@
|
|
14531
14623
|
* @since 2.4.0
|
14532
14624
|
* @category Util
|
14533
14625
|
* @param {*} value The value to return from the new function.
|
14534
|
-
* @returns {Function} Returns the new function.
|
14626
|
+
* @returns {Function} Returns the new constant function.
|
14535
14627
|
* @example
|
14536
14628
|
*
|
14537
14629
|
* var object = { 'user': 'fred' };
|
@@ -14556,7 +14648,7 @@
|
|
14556
14648
|
* @since 3.0.0
|
14557
14649
|
* @category Util
|
14558
14650
|
* @param {...(Function|Function[])} [funcs] Functions to invoke.
|
14559
|
-
* @returns {Function} Returns the new function.
|
14651
|
+
* @returns {Function} Returns the new composite function.
|
14560
14652
|
* @see _.flowRight
|
14561
14653
|
* @example
|
14562
14654
|
*
|
@@ -14579,7 +14671,7 @@
|
|
14579
14671
|
* @memberOf _
|
14580
14672
|
* @category Util
|
14581
14673
|
* @param {...(Function|Function[])} [funcs] Functions to invoke.
|
14582
|
-
* @returns {Function} Returns the new function.
|
14674
|
+
* @returns {Function} Returns the new composite function.
|
14583
14675
|
* @see _.flow
|
14584
14676
|
* @example
|
14585
14677
|
*
|
@@ -14672,7 +14764,7 @@
|
|
14672
14764
|
* @since 3.0.0
|
14673
14765
|
* @category Util
|
14674
14766
|
* @param {Object} source The object of property values to match.
|
14675
|
-
* @returns {Function} Returns the new function.
|
14767
|
+
* @returns {Function} Returns the new spec function.
|
14676
14768
|
* @example
|
14677
14769
|
*
|
14678
14770
|
* var users = [
|
@@ -14700,7 +14792,7 @@
|
|
14700
14792
|
* @category Util
|
14701
14793
|
* @param {Array|string} path The path of the property to get.
|
14702
14794
|
* @param {*} srcValue The value to match.
|
14703
|
-
* @returns {Function} Returns the new function.
|
14795
|
+
* @returns {Function} Returns the new spec function.
|
14704
14796
|
* @example
|
14705
14797
|
*
|
14706
14798
|
* var users = [
|
@@ -14725,7 +14817,7 @@
|
|
14725
14817
|
* @category Util
|
14726
14818
|
* @param {Array|string} path The path of the method to invoke.
|
14727
14819
|
* @param {...*} [args] The arguments to invoke the method with.
|
14728
|
-
* @returns {Function} Returns the new function.
|
14820
|
+
* @returns {Function} Returns the new invoker function.
|
14729
14821
|
* @example
|
14730
14822
|
*
|
14731
14823
|
* var objects = [
|
@@ -14756,7 +14848,7 @@
|
|
14756
14848
|
* @category Util
|
14757
14849
|
* @param {Object} object The object to query.
|
14758
14850
|
* @param {...*} [args] The arguments to invoke the method with.
|
14759
|
-
* @returns {Function} Returns the new function.
|
14851
|
+
* @returns {Function} Returns the new invoker function.
|
14760
14852
|
* @example
|
14761
14853
|
*
|
14762
14854
|
* var array = _.times(3, _.constant),
|
@@ -14886,7 +14978,7 @@
|
|
14886
14978
|
}
|
14887
14979
|
|
14888
14980
|
/**
|
14889
|
-
* Creates a function that
|
14981
|
+
* Creates a function that gets the argument at `n` index. If `n` is negative,
|
14890
14982
|
* the nth argument from the end is returned.
|
14891
14983
|
*
|
14892
14984
|
* @static
|
@@ -14894,7 +14986,7 @@
|
|
14894
14986
|
* @since 4.0.0
|
14895
14987
|
* @category Util
|
14896
14988
|
* @param {number} [n=0] The index of the argument to return.
|
14897
|
-
* @returns {Function} Returns the new function.
|
14989
|
+
* @returns {Function} Returns the new pass-thru function.
|
14898
14990
|
* @example
|
14899
14991
|
*
|
14900
14992
|
* var func = _.nthArg(1);
|
@@ -14992,7 +15084,7 @@
|
|
14992
15084
|
* @since 2.4.0
|
14993
15085
|
* @category Util
|
14994
15086
|
* @param {Array|string} path The path of the property to get.
|
14995
|
-
* @returns {Function} Returns the new function.
|
15087
|
+
* @returns {Function} Returns the new accessor function.
|
14996
15088
|
* @example
|
14997
15089
|
*
|
14998
15090
|
* var objects = [
|
@@ -15019,7 +15111,7 @@
|
|
15019
15111
|
* @since 3.0.0
|
15020
15112
|
* @category Util
|
15021
15113
|
* @param {Object} object The object to query.
|
15022
|
-
* @returns {Function} Returns the new function.
|
15114
|
+
* @returns {Function} Returns the new accessor function.
|
15023
15115
|
* @example
|
15024
15116
|
*
|
15025
15117
|
* var array = [0, 1, 2],
|
@@ -15053,7 +15145,7 @@
|
|
15053
15145
|
* @param {number} [start=0] The start of the range.
|
15054
15146
|
* @param {number} end The end of the range.
|
15055
15147
|
* @param {number} [step=1] The value to increment or decrement by.
|
15056
|
-
* @returns {Array} Returns the
|
15148
|
+
* @returns {Array} Returns the range of numbers.
|
15057
15149
|
* @see _.inRange, _.rangeRight
|
15058
15150
|
* @example
|
15059
15151
|
*
|
@@ -15091,7 +15183,7 @@
|
|
15091
15183
|
* @param {number} [start=0] The start of the range.
|
15092
15184
|
* @param {number} end The end of the range.
|
15093
15185
|
* @param {number} [step=1] The value to increment or decrement by.
|
15094
|
-
* @returns {Array} Returns the
|
15186
|
+
* @returns {Array} Returns the range of numbers.
|
15095
15187
|
* @see _.inRange, _.range
|
15096
15188
|
* @example
|
15097
15189
|
*
|
@@ -15852,6 +15944,7 @@
|
|
15852
15944
|
lodash.sumBy = sumBy;
|
15853
15945
|
lodash.template = template;
|
15854
15946
|
lodash.times = times;
|
15947
|
+
lodash.toFinite = toFinite;
|
15855
15948
|
lodash.toInteger = toInteger;
|
15856
15949
|
lodash.toLength = toLength;
|
15857
15950
|
lodash.toLower = toLower;
|