lodash-rails 4.11.2 → 4.12.0
Sign up to get free protection for your applications and to get access to all the features.
- 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;
|