|
|
|
@ -9599,7 +9599,7 @@ if ( typeof define === "function" && define.amd && define.amd.jQuery ) {
|
|
|
|
|
})( window );/** |
|
|
|
|
* @license |
|
|
|
|
* Lodash (Custom Build) <https://lodash.com/>
|
|
|
|
|
* Build: `lodash core plus="debounce,throttle,get,findIndex,findLastIndex,findKey,findLastKey,isArrayLike,invert,invertBy,uniq,uniqBy,omit,omitBy,zip,unzip,rest,range,random,reject,intersection,drop,countBy,union,zipObject,without"` |
|
|
|
|
* Build: `lodash core plus="debounce,throttle,get,findIndex,findLastIndex,findKey,findLastKey,isArrayLike,invert,invertBy,uniq,uniqBy,omit,omitBy,zip,unzip,rest,range,random,reject,intersection,drop,countBy,union,zipObject,initial,cloneDeep,clamp,isPlainObject,take,takeRight,without"` |
|
|
|
|
* Copyright JS Foundation and other contributors <https://js.foundation/>
|
|
|
|
|
* Released under MIT license <https://lodash.com/license>
|
|
|
|
|
* Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
|
|
|
|
@ -11581,6 +11581,27 @@ if ( typeof define === "function" && define.amd && define.amd.jQuery ) {
|
|
|
|
|
return result; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* The base implementation of `_.clamp` which doesn't coerce arguments. |
|
|
|
|
* |
|
|
|
|
* @private |
|
|
|
|
* @param {number} number The number to clamp. |
|
|
|
|
* @param {number} [lower] The lower bound. |
|
|
|
|
* @param {number} upper The upper bound. |
|
|
|
|
* @returns {number} Returns the clamped number. |
|
|
|
|
*/ |
|
|
|
|
function baseClamp(number, lower, upper) { |
|
|
|
|
if (number === number) { |
|
|
|
|
if (upper !== undefined) { |
|
|
|
|
number = number <= upper ? number : upper; |
|
|
|
|
} |
|
|
|
|
if (lower !== undefined) { |
|
|
|
|
number = number >= lower ? number : lower; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return number; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* The base implementation of `_.clone` and `_.cloneDeep` which tracks |
|
|
|
|
* traversed objects. |
|
|
|
@ -15126,6 +15147,25 @@ if ( typeof define === "function" && define.amd && define.amd.jQuery ) {
|
|
|
|
|
return baseIndexOf(array, value, index); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Gets all but the last element of `array`. |
|
|
|
|
* |
|
|
|
|
* @static |
|
|
|
|
* @memberOf _ |
|
|
|
|
* @since 0.1.0 |
|
|
|
|
* @category Array |
|
|
|
|
* @param {Array} array The array to query. |
|
|
|
|
* @returns {Array} Returns the slice of `array`. |
|
|
|
|
* @example |
|
|
|
|
* |
|
|
|
|
* _.initial([1, 2, 3]); |
|
|
|
|
* // => [1, 2]
|
|
|
|
|
*/ |
|
|
|
|
function initial(array) { |
|
|
|
|
var length = array == null ? 0 : array.length; |
|
|
|
|
return length ? baseSlice(array, 0, -1) : []; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Creates an array of unique values that are included in all given arrays |
|
|
|
|
* using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
|
|
|
|
@ -15228,6 +15268,74 @@ if ( typeof define === "function" && define.amd && define.amd.jQuery ) {
|
|
|
|
|
return baseSlice(array, start, end); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Creates a slice of `array` with `n` elements taken from the beginning. |
|
|
|
|
* |
|
|
|
|
* @static |
|
|
|
|
* @memberOf _ |
|
|
|
|
* @since 0.1.0 |
|
|
|
|
* @category Array |
|
|
|
|
* @param {Array} array The array to query. |
|
|
|
|
* @param {number} [n=1] The number of elements to take. |
|
|
|
|
* @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. |
|
|
|
|
* @returns {Array} Returns the slice of `array`. |
|
|
|
|
* @example |
|
|
|
|
* |
|
|
|
|
* _.take([1, 2, 3]); |
|
|
|
|
* // => [1]
|
|
|
|
|
* |
|
|
|
|
* _.take([1, 2, 3], 2); |
|
|
|
|
* // => [1, 2]
|
|
|
|
|
* |
|
|
|
|
* _.take([1, 2, 3], 5); |
|
|
|
|
* // => [1, 2, 3]
|
|
|
|
|
* |
|
|
|
|
* _.take([1, 2, 3], 0); |
|
|
|
|
* // => []
|
|
|
|
|
*/ |
|
|
|
|
function take(array, n, guard) { |
|
|
|
|
if (!(array && array.length)) { |
|
|
|
|
return []; |
|
|
|
|
} |
|
|
|
|
n = (guard || n === undefined) ? 1 : toInteger(n); |
|
|
|
|
return baseSlice(array, 0, n < 0 ? 0 : n); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Creates a slice of `array` with `n` elements taken from the end. |
|
|
|
|
* |
|
|
|
|
* @static |
|
|
|
|
* @memberOf _ |
|
|
|
|
* @since 3.0.0 |
|
|
|
|
* @category Array |
|
|
|
|
* @param {Array} array The array to query. |
|
|
|
|
* @param {number} [n=1] The number of elements to take. |
|
|
|
|
* @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. |
|
|
|
|
* @returns {Array} Returns the slice of `array`. |
|
|
|
|
* @example |
|
|
|
|
* |
|
|
|
|
* _.takeRight([1, 2, 3]); |
|
|
|
|
* // => [3]
|
|
|
|
|
* |
|
|
|
|
* _.takeRight([1, 2, 3], 2); |
|
|
|
|
* // => [2, 3]
|
|
|
|
|
* |
|
|
|
|
* _.takeRight([1, 2, 3], 5); |
|
|
|
|
* // => [1, 2, 3]
|
|
|
|
|
* |
|
|
|
|
* _.takeRight([1, 2, 3], 0); |
|
|
|
|
* // => []
|
|
|
|
|
*/ |
|
|
|
|
function takeRight(array, n, guard) { |
|
|
|
|
var length = array == null ? 0 : array.length; |
|
|
|
|
if (!length) { |
|
|
|
|
return []; |
|
|
|
|
} |
|
|
|
|
n = (guard || n === undefined) ? 1 : toInteger(n); |
|
|
|
|
n = length - n; |
|
|
|
|
return baseSlice(array, n < 0 ? 0 : n, length); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Creates an array of unique values, in order, from all given arrays using |
|
|
|
|
* [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
|
|
|
|
@ -16767,6 +16875,28 @@ if ( typeof define === "function" && define.amd && define.amd.jQuery ) {
|
|
|
|
|
return baseClone(value, CLONE_SYMBOLS_FLAG); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* This method is like `_.clone` except that it recursively clones `value`. |
|
|
|
|
* |
|
|
|
|
* @static |
|
|
|
|
* @memberOf _ |
|
|
|
|
* @since 1.0.0 |
|
|
|
|
* @category Lang |
|
|
|
|
* @param {*} value The value to recursively clone. |
|
|
|
|
* @returns {*} Returns the deep cloned value. |
|
|
|
|
* @see _.clone |
|
|
|
|
* @example |
|
|
|
|
* |
|
|
|
|
* var objects = [{ 'a': 1 }, { 'b': 2 }]; |
|
|
|
|
* |
|
|
|
|
* var deep = _.cloneDeep(objects); |
|
|
|
|
* console.log(deep[0] === objects[0]); |
|
|
|
|
* // => false
|
|
|
|
|
*/ |
|
|
|
|
function cloneDeep(value) { |
|
|
|
|
return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Performs a |
|
|
|
|
* [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
|
|
|
|
@ -18272,6 +18402,41 @@ if ( typeof define === "function" && define.amd && define.amd.jQuery ) {
|
|
|
|
|
|
|
|
|
|
/*------------------------------------------------------------------------*/ |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Clamps `number` within the inclusive `lower` and `upper` bounds. |
|
|
|
|
* |
|
|
|
|
* @static |
|
|
|
|
* @memberOf _ |
|
|
|
|
* @since 4.0.0 |
|
|
|
|
* @category Number |
|
|
|
|
* @param {number} number The number to clamp. |
|
|
|
|
* @param {number} [lower] The lower bound. |
|
|
|
|
* @param {number} upper The upper bound. |
|
|
|
|
* @returns {number} Returns the clamped number. |
|
|
|
|
* @example |
|
|
|
|
* |
|
|
|
|
* _.clamp(-10, -5, 5); |
|
|
|
|
* // => -5
|
|
|
|
|
* |
|
|
|
|
* _.clamp(10, -5, 5); |
|
|
|
|
* // => 5
|
|
|
|
|
*/ |
|
|
|
|
function clamp(number, lower, upper) { |
|
|
|
|
if (upper === undefined) { |
|
|
|
|
upper = lower; |
|
|
|
|
lower = undefined; |
|
|
|
|
} |
|
|
|
|
if (upper !== undefined) { |
|
|
|
|
upper = toNumber(upper); |
|
|
|
|
upper = upper === upper ? upper : 0; |
|
|
|
|
} |
|
|
|
|
if (lower !== undefined) { |
|
|
|
|
lower = toNumber(lower); |
|
|
|
|
lower = lower === lower ? lower : 0; |
|
|
|
|
} |
|
|
|
|
return baseClamp(toNumber(number), lower, upper); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Produces a random number between the inclusive `lower` and `upper` bounds. |
|
|
|
|
* If only one argument is provided a number between `0` and the given number |
|
|
|
@ -18811,6 +18976,7 @@ if ( typeof define === "function" && define.amd && define.amd.jQuery ) {
|
|
|
|
|
lodash.filter = filter; |
|
|
|
|
lodash.flatten = flatten; |
|
|
|
|
lodash.flattenDeep = flattenDeep; |
|
|
|
|
lodash.initial = initial; |
|
|
|
|
lodash.intersection = intersection; |
|
|
|
|
lodash.invert = invert; |
|
|
|
|
lodash.invertBy = invertBy; |
|
|
|
@ -18829,6 +18995,8 @@ if ( typeof define === "function" && define.amd && define.amd.jQuery ) {
|
|
|
|
|
lodash.rest = rest; |
|
|
|
|
lodash.slice = slice; |
|
|
|
|
lodash.sortBy = sortBy; |
|
|
|
|
lodash.take = take; |
|
|
|
|
lodash.takeRight = takeRight; |
|
|
|
|
lodash.tap = tap; |
|
|
|
|
lodash.throttle = throttle; |
|
|
|
|
lodash.thru = thru; |
|
|
|
@ -18851,7 +19019,9 @@ if ( typeof define === "function" && define.amd && define.amd.jQuery ) {
|
|
|
|
|
/*------------------------------------------------------------------------*/ |
|
|
|
|
|
|
|
|
|
// Add methods that return unwrapped values in chain sequences.
|
|
|
|
|
lodash.clamp = clamp; |
|
|
|
|
lodash.clone = clone; |
|
|
|
|
lodash.cloneDeep = cloneDeep; |
|
|
|
|
lodash.escape = escape; |
|
|
|
|
lodash.every = every; |
|
|
|
|
lodash.find = find; |
|
|
|
@ -18878,6 +19048,7 @@ if ( typeof define === "function" && define.amd && define.amd.jQuery ) {
|
|
|
|
|
lodash.isNull = isNull; |
|
|
|
|
lodash.isNumber = isNumber; |
|
|
|
|
lodash.isObject = isObject; |
|
|
|
|
lodash.isPlainObject = isPlainObject; |
|
|
|
|
lodash.isRegExp = isRegExp; |
|
|
|
|
lodash.isString = isString; |
|
|
|
|
lodash.isUndefined = isUndefined; |
|
|
|
|