summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2016-10-10 00:37:08 +0200
committerFlorian Dold <florian.dold@gmail.com>2016-10-10 00:37:08 +0200
commitdb0fc776982a61181baf286c8344a3b11d3531ec (patch)
treeed38671873074fcec34e1fafaf8b1426fcda5efb
parent153765d76e6af95669add8717a2a3126fb6432b0 (diff)
downloadwallet-core-db0fc776982a61181baf286c8344a3b11d3531ec.tar.gz
wallet-core-db0fc776982a61181baf286c8344a3b11d3531ec.tar.bz2
wallet-core-db0fc776982a61181baf286c8344a3b11d3531ec.zip
refactor / remove lodash dependency
-rw-r--r--README2
-rw-r--r--lib/decl/lodash.d.ts16525
-rw-r--r--lib/decl/mithril.d.ts926
-rw-r--r--lib/module-trampoline.js10
-rw-r--r--lib/vendor/lodash.core.min.js29
-rw-r--r--lib/vendor/mithril.js2233
-rw-r--r--lib/wallet/db.ts5
-rw-r--r--lib/wallet/renderHtml.tsx4
-rw-r--r--pages/confirm-contract.html2
-rw-r--r--pogen/pogen.ts3
-rw-r--r--popup/popup.html12
-rw-r--r--popup/popup.tsx406
12 files changed, 259 insertions, 19898 deletions
diff --git a/README b/README
index 7ea8dd11c..710d19e86 100644
--- a/README
+++ b/README
@@ -16,9 +16,7 @@ Dependencies
This project has the following third-party runtime dependencies:
* URI.js: URL parsing and construction
-* mithril.js: view-layer based on virtual DOMs
* jed: gettext parsing for JavaScript
-* lodash: standard helper library for JavaScript
* system.js: Module loader for browsers that don't support
ES6 modules
diff --git a/lib/decl/lodash.d.ts b/lib/decl/lodash.d.ts
deleted file mode 100644
index f9249d16b..000000000
--- a/lib/decl/lodash.d.ts
+++ /dev/null
@@ -1,16525 +0,0 @@
-// Type definitions for Lo-Dash
-// Project: http://lodash.com/
-// Definitions by: Brian Zengel <https://github.com/bczengel>, Ilya Mochalov <https://github.com/chrootsu>
-// Definitions: https://github.com/borisyankov/DefinitelyTyped
-
-
-/**
-### 4.0.0 Changelog (https://github.com/lodash/lodash/wiki/Changelog)
-
-#### TODO:
-removed:
-- [x] Removed _.support
-- [x] Removed _.findWhere in favor of _.find with iteratee shorthand
-- [x] Removed _.where in favor of _.filter with iteratee shorthand
-- [x] Removed _.pluck in favor of _.map with iteratee shorthand
-
-renamed:
-- [x] Renamed _.first to _.head
-- [x] Renamed _.indexBy to _.keyBy
-- [x] Renamed _.invoke to _.invokeMap
-- [x] Renamed _.overArgs to _.overArgs
-- [x] Renamed _.padLeft & _.padRight to _.padStart & _.padEnd
-- [x] Renamed _.pairs to _.toPairs
-- [x] Renamed _.rest to _.tail
-- [x] Renamed _.restParam to _.rest
-- [x] Renamed _.sortByOrder to _.orderBy
-- [x] Renamed _.trimLeft & _.trimRight to _.trimStart & _.trimEnd
-- [x] Renamed _.trunc to _.truncate
-
-split:
-- [x] Split _.indexOf & _.lastIndexOf into _.sortedIndexOf & _.sortedLastIndexOf
-- [x] Split _.max & _.min into _.maxBy & _.minBy
-- [x] Split _.omit & _.pick into _.omitBy & _.pickBy
-- [x] Split _.sample into _.sampleSize
-- [x] Split _.sortedIndex into _.sortedIndexBy
-- [x] Split _.sortedLastIndex into _.sortedLastIndexBy
-- [x] Split _.uniq into _.sortedUniq, _.sortedUniqBy, & _.uniqBy
-
-changes:
-- [x] Absorbed _.sortByAll into _.sortBy
-- [x] Changed the category of _.at to “Object”
-- [x] Changed the category of _.bindAll to “Utility”
-- [x] Made _.capitalize uppercase the first character & lowercase the rest
-- [x] Made _.functions return only own method names
-
-
-added 23 array methods:
-- [x] _.concat
-- [x] _.differenceBy
-- [x] _.differenceWith
-- [x] _.flatMap
-- [x] _.fromPairs
-- [x] _.intersectionBy
-- [x] _.intersectionWith
-- [x] _.join
-- [x] _.pullAll
-- [x] _.pullAllBy
-- [x] _.reverse
-- [x] _.sortedIndexBy
-- [x] _.sortedIndexOf
-- [x] _.sortedLastIndexBy
-- [x] _.sortedLastIndexOf
-- [x] _.sortedUniq
-- [x] _.sortedUniqBy
-- [x] _.unionBy
-- [x] _.unionWith
-- [x] _.uniqBy
-- [x] _.uniqWith
-- [x] _.xorBy
-- [x] _.xorWith
-
-added 18 lang methods:
-- [x] _.cloneDeepWith
-- [x] _.cloneWith
-- [x] _.eq
-- [x] _.isArrayLike
-- [x] _.isArrayLikeObject
-- [x] _.isEqualWith
-- [x] _.isInteger
-- [x] _.isLength
-- [x] _.isMatchWith
-- [x] _.isNil
-- [x] _.isObjectLike
-- [x] _.isSafeInteger
-- [x] _.isSymbol
-- [x] _.toInteger
-- [x] _.toLength
-- [x] _.toNumber
-- [x] _.toSafeInteger
-- [x] _.toString
-
-added 13 object methods:
-- [x] _.assignIn
-- [x] _.assignInWith
-- [x] _.assignWith
-- [x] _.functionsIn
-- [x] _.hasIn
-- [x] _.mergeWith
-- [x] _.omitBy
-- [x] _.pickBy
-
-
-added 8 string methods:
-- [x] _.lowerCase
-- [x] _.lowerFirst
-- [x] _.upperCase
-- [x] _.upperFirst
-- [x] _.toLower
-- [x] _.toUpper
-
-added 8 utility methods:
-- [x] _.toPath
-
-added 4 math methods:
-- [x] _.maxBy
-- [x] _.mean
-- [x] _.minBy
-- [x] _.sumBy
-
-added 2 function methods:
-- [x] _.flip
-- [x] _.unary
-
-added 2 number methods:
-- [x] _.clamp
-- [x] _.subtract
-
-added collection method:
-- [x] _.sampleSize
-
-Added 3 aliases
-
-- [x] _.first as an alias of _.head
-
-Removed 17 aliases
-- [x] Removed aliase _.all
-- [x] Removed aliase _.any
-- [x] Removed aliase _.backflow
-- [x] Removed aliase _.callback
-- [x] Removed aliase _.collect
-- [x] Removed aliase _.compose
-- [x] Removed aliase _.contains
-- [x] Removed aliase _.detect
-- [x] Removed aliase _.foldl
-- [x] Removed aliase _.foldr
-- [x] Removed aliase _.include
-- [x] Removed aliase _.inject
-- [x] Removed aliase _.methods
-- [x] Removed aliase _.object
-- [x] Removed aliase _.run
-- [x] Removed aliase _.select
-- [x] Removed aliase _.unique
-
-Other changes
-- [x] Added support for array buffers to _.isEqual
-- [x] Added support for converting iterators to _.toArray
-- [x] Added support for deep paths to _.zipObject
-- [x] Changed UMD to export to window or self when available regardless of other exports
-- [x] Ensured debounce cancel clears args & thisArg references
-- [x] Ensured _.add, _.subtract, & _.sum don’t skip NaN values
-- [x] Ensured _.clone treats generators like functions
-- [x] Ensured _.clone produces clones with the source’s [[Prototype]]
-- [x] Ensured _.defaults assigns properties that shadow Object.prototype
-- [x] Ensured _.defaultsDeep doesn’t merge a string into an array
-- [x] Ensured _.defaultsDeep & _.merge don’t modify sources
-- [x] Ensured _.defaultsDeep works with circular references
-- [x] Ensured _.keys skips “length” on strict mode arguments objects in Safari 9
-- [x] Ensured _.merge doesn’t convert strings to arrays
-- [x] Ensured _.merge merges plain-objects onto non plain-objects
-- [x] Ensured _#plant resets iterator data of cloned sequences
-- [x] Ensured _.random swaps min & max if min is greater than max
-- [x] Ensured _.range preserves the sign of start of -0
-- [x] Ensured _.reduce & _.reduceRight use getIteratee in their array branch
-- [x] Fixed rounding issue with the precision param of _.floor
-
-** LATER **
-Misc:
-- [ ] Made _.forEach, _.forIn, _.forOwn, & _.times implicitly end a chain sequence
-- [ ] Removed thisArg params from most methods
-- [ ] Made “By” methods provide a single param to iteratees
-- [ ] Made _.words chainable by default
-- [ ] Removed isDeep params from _.clone & _.flatten
-- [ ] Removed _.bindAll support for binding all methods when no names are provided
-- [ ] Removed func-first param signature from _.before & _.after
-- [ ] _.extend as an alias of _.assignIn
-- [ ] _.extendWith as an alias of _.assignInWith
-- [ ] Added clear method to _.memoize.Cache
-- [ ] Added flush method to debounced & throttled functions
-- [ ] Added support for ES6 maps, sets, & symbols to _.clone, _.isEqual, & _.toArray
-- [ ] Enabled _.flow & _.flowRight to accept an array of functions
-- [ ] Ensured “Collection” methods treat functions as objects
-- [ ] Ensured _.assign, _.defaults, & _.merge coerce object values to objects
-- [ ] Ensured _.bindKey bound functions call object[key] when called with the new operator
-- [ ] Ensured _.isFunction returns true for generator functions
-- [ ] Ensured _.merge assigns typed arrays directly
-- [ ] Made _(...) an iterator & iterable
-- [ ] Made _.drop, _.take, & right forms coerce n of undefined to 0
-
-Methods:
-- [ ] _.concat
-- [ ] _.differenceBy
-- [ ] _.differenceWith
-- [ ] _.flatMap
-- [ ] _.fromPairs
-- [ ] _.intersectionBy
-- [ ] _.intersectionWith
-- [ ] _.join
-- [ ] _.pullAll
-- [ ] _.pullAllBy
-- [ ] _.reverse
-- [ ] _.sortedLastIndexOf
-- [ ] _.unionBy
-- [ ] _.unionWith
-- [ ] _.uniqWith
-- [ ] _.xorBy
-- [ ] _.xorWith
-- [ ] _.toString
-
-- [ ] _.invoke
-- [ ] _.setWith
-- [ ] _.toPairs
-- [ ] _.toPairsIn
-- [ ] _.unset
-
-- [ ] _.replace
-- [ ] _.split
-
-- [ ] _.cond
-- [ ] _.conforms
-- [ ] _.nthArg
-- [ ] _.over
-- [ ] _.overEvery
-- [ ] _.overSome
-- [ ] _.rangeRight
-
-- [ ] _.next
-*/
-
-declare var _: _.LoDashStatic;
-
-declare module _ {
- interface LoDashStatic {
- /**
- * Creates a lodash object which wraps the given value to enable intuitive method chaining.
- *
- * In addition to Lo-Dash methods, wrappers also have the following Array methods:
- * concat, join, pop, push, reverse, shift, slice, sort, splice, and unshift
- *
- * Chaining is supported in custom builds as long as the value method is implicitly or
- * explicitly included in the build.
- *
- * The chainable wrapper functions are:
- * after, assign, bind, bindAll, bindKey, chain, chunk, compact, compose, concat, countBy,
- * createCallback, curry, debounce, defaults, defer, delay, difference, filter, flatten,
- * forEach, forEachRight, forIn, forInRight, forOwn, forOwnRight, functions, groupBy,
- * keyBy, initial, intersection, invert, invoke, keys, map, max, memoize, merge, min,
- * object, omit, once, pairs, partial, partialRight, pick, pluck, pull, push, range, reject,
- * remove, rest, reverse, sample, shuffle, slice, sort, sortBy, splice, tap, throttle, times,
- * toArray, transform, union, uniq, unshift, unzip, values, where, without, wrap, and zip
- *
- * The non-chainable wrapper functions are:
- * clone, cloneDeep, contains, escape, every, find, findIndex, findKey, findLast,
- * findLastIndex, findLastKey, has, identity, indexOf, isArguments, isArray, isBoolean,
- * isDate, isElement, isEmpty, isEqual, isFinite, isFunction, isNaN, isNull, isNumber,
- * isObject, isPlainObject, isRegExp, isString, isUndefined, join, lastIndexOf, mixin,
- * noConflict, parseInt, pop, random, reduce, reduceRight, result, shift, size, some,
- * sortedIndex, runInContext, template, unescape, uniqueId, and value
- *
- * The wrapper functions first and last return wrapped values when n is provided, otherwise
- * they return unwrapped values.
- *
- * Explicit chaining can be enabled by using the _.chain method.
- **/
- (value: number): LoDashImplicitWrapper<number>;
- (value: string): LoDashImplicitStringWrapper;
- (value: boolean): LoDashImplicitWrapper<boolean>;
- (value: Array<number>): LoDashImplicitNumberArrayWrapper;
- <T>(value: Array<T>): LoDashImplicitArrayWrapper<T>;
- <T extends {}>(value: T): LoDashImplicitObjectWrapper<T>;
- (value: any): LoDashImplicitWrapper<any>;
-
- /**
- * The semantic version number.
- **/
- VERSION: string;
-
- /**
- * By default, the template delimiters used by Lo-Dash are similar to those in embedded Ruby
- * (ERB). Change the following template settings to use alternative delimiters.
- **/
- templateSettings: TemplateSettings;
- }
-
- /**
- * By default, the template delimiters used by Lo-Dash are similar to those in embedded Ruby
- * (ERB). Change the following template settings to use alternative delimiters.
- **/
- interface TemplateSettings {
- /**
- * The "escape" delimiter.
- **/
- escape?: RegExp;
-
- /**
- * The "evaluate" delimiter.
- **/
- evaluate?: RegExp;
-
- /**
- * An object to import into the template as local variables.
- **/
- imports?: Dictionary<any>;
-
- /**
- * The "interpolate" delimiter.
- **/
- interpolate?: RegExp;
-
- /**
- * Used to reference the data object in the template text.
- **/
- variable?: string;
- }
-
- /**
- * Creates a cache object to store key/value pairs.
- */
- interface MapCache {
- /**
- * Removes `key` and its value from the cache.
- * @param key The key of the value to remove.
- * @return Returns `true` if the entry was removed successfully, else `false`.
- */
- delete(key: string): boolean;
-
- /**
- * Gets the cached value for `key`.
- * @param key The key of the value to get.
- * @return Returns the cached value.
- */
- get(key: string): any;
-
- /**
- * Checks if a cached value for `key` exists.
- * @param key The key of the entry to check.
- * @return Returns `true` if an entry for `key` exists, else `false`.
- */
- has(key: string): boolean;
-
- /**
- * Sets `value` to `key` of the cache.
- * @param key The key of the value to cache.
- * @param value The value to cache.
- * @return Returns the cache object.
- */
- set(key: string, value: any): _.Dictionary<any>;
- }
-
- interface LoDashWrapperBase<T, TWrapper> { }
-
- interface LoDashImplicitWrapperBase<T, TWrapper> extends LoDashWrapperBase<T, TWrapper> { }
-
- interface LoDashExplicitWrapperBase<T, TWrapper> extends LoDashWrapperBase<T, TWrapper> { }
-
- interface LoDashImplicitWrapper<T> extends LoDashImplicitWrapperBase<T, LoDashImplicitWrapper<T>> { }
-
- interface LoDashExplicitWrapper<T> extends LoDashExplicitWrapperBase<T, LoDashExplicitWrapper<T>> { }
-
- interface LoDashImplicitStringWrapper extends LoDashImplicitWrapper<string> { }
-
- interface LoDashExplicitStringWrapper extends LoDashExplicitWrapper<string> { }
-
- interface LoDashImplicitObjectWrapper<T> extends LoDashImplicitWrapperBase<T, LoDashImplicitObjectWrapper<T>> { }
-
- interface LoDashExplicitObjectWrapper<T> extends LoDashExplicitWrapperBase<T, LoDashExplicitObjectWrapper<T>> { }
-
- interface LoDashImplicitArrayWrapper<T> extends LoDashImplicitWrapperBase<T[], LoDashImplicitArrayWrapper<T>> {
- join(seperator?: string): string;
- pop(): T;
- push(...items: T[]): LoDashImplicitArrayWrapper<T>;
- shift(): T;
- sort(compareFn?: (a: T, b: T) => number): LoDashImplicitArrayWrapper<T>;
- splice(start: number): LoDashImplicitArrayWrapper<T>;
- splice(start: number, deleteCount: number, ...items: any[]): LoDashImplicitArrayWrapper<T>;
- unshift(...items: T[]): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitArrayWrapper<T> extends LoDashExplicitWrapperBase<T[], LoDashExplicitArrayWrapper<T>> { }
-
- interface LoDashImplicitNumberArrayWrapper extends LoDashImplicitArrayWrapper<number> { }
-
- interface LoDashExplicitNumberArrayWrapper extends LoDashExplicitArrayWrapper<number> { }
-
- /*********
- * Array *
- *********/
-
- //_.chunk
- interface LoDashStatic {
- /**
- * Creates an array of elements split into groups the length of size. If collection can’t be split evenly, the
- * final chunk will be the remaining elements.
- *
- * @param array The array to process.
- * @param size The length of each chunk.
- * @return Returns the new array containing chunks.
- */
- chunk<T>(
- array: List<T>,
- size?: number
- ): T[][];
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.chunk
- */
- chunk(size?: number): LoDashImplicitArrayWrapper<T[]>;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.chunk
- */
- chunk<TResult>(size?: number): LoDashImplicitArrayWrapper<TResult[]>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.chunk
- */
- chunk(size?: number): LoDashExplicitArrayWrapper<T[]>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.chunk
- */
- chunk<TResult>(size?: number): LoDashExplicitArrayWrapper<TResult[]>;
- }
-
- //_.compact
- interface LoDashStatic {
- /**
- * Creates an array with all falsey values removed. The values false, null, 0, "", undefined, and NaN are
- * falsey.
- *
- * @param array The array to compact.
- * @return (Array) Returns the new array of filtered values.
- */
- compact<T>(array?: List<T>): T[];
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.compact
- */
- compact(): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.compact
- */
- compact<TResult>(): LoDashImplicitArrayWrapper<TResult>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.compact
- */
- compact(): LoDashExplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.compact
- */
- compact<TResult>(): LoDashExplicitArrayWrapper<TResult>;
- }
-
- //_.concat DUMMY
- interface LoDashStatic {
- /**
- * Creates a new array concatenating `array` with any additional arrays
- * and/or values.
- *
- * @static
- * @memberOf _
- * @category Array
- * @param {Array} array The array to concatenate.
- * @param {...*} [values] The values to concatenate.
- * @returns {Array} Returns the new concatenated array.
- * @example
- *
- * var array = [1];
- * var other = _.concat(array, 2, [3], [[4]]);
- *
- * console.log(other);
- * // => [1, 2, 3, [4]]
- *
- * console.log(array);
- * // => [1]
- */
- concat<T>(...values: (T[]|List<T>)[]) : T[];
- }
-
- //_.difference
- interface LoDashStatic {
- /**
- * Creates an array of unique array values not included in the other provided arrays using SameValueZero for
- * equality comparisons.
- *
- * @param array The array to inspect.
- * @param values The arrays of values to exclude.
- * @return Returns the new array of filtered values.
- */
- difference<T>(
- array: any[]|List<any>,
- ...values: any[]
- ): T[];
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.difference
- */
- difference(...values: (T[]|List<T>)[]): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.difference
- */
- difference<TValue>(...values: (TValue[]|List<TValue>)[]): LoDashImplicitArrayWrapper<TValue>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.difference
- */
- difference(...values: (T[]|List<T>)[]): LoDashExplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.difference
- */
- difference<TValue>(...values: (TValue[]|List<TValue>)[]): LoDashExplicitArrayWrapper<TValue>;
- }
-
- //_.differenceBy DUMMY
- interface LoDashStatic {
- /**
- * Creates an array of unique `array` values not included in the other
- * provided arrays using [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
- * for equality comparisons.
- *
- * @static
- * @memberOf _
- * @category Array
- * @param {Array} array The array to inspect.
- * @param {...Array} [values] The values to exclude.
- * @returns {Array} Returns the new array of filtered values.
- * @example
- *
- * _.difference([3, 2, 1], [4, 2]);
- * // => [3, 1]
- */
- differenceBy(
- array: any[]|List<any>,
- ...values: any[]
- ): any[];
- }
-
- //_.differenceWith DUMMY
- interface LoDashStatic {
- /**
- * Creates an array of unique `array` values not included in the other
- * provided arrays using [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
- * for equality comparisons.
- *
- * @static
- * @memberOf _
- * @category Array
- * @param {Array} array The array to inspect.
- * @param {...Array} [values] The values to exclude.
- * @returns {Array} Returns the new array of filtered values.
- * @example
- *
- * _.difference([3, 2, 1], [4, 2]);
- * // => [3, 1]
- */
- differenceWith(
- array: any[]|List<any>,
- ...values: any[]
- ): any[];
- }
-
- //_.drop
- interface LoDashStatic {
- /**
- * Creates a slice of array with n elements dropped from the beginning.
- *
- * @param array The array to query.
- * @param n The number of elements to drop.
- * @return Returns the slice of array.
- */
- drop<T>(array: T[]|List<T>, n?: number): T[];
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.drop
- */
- drop(n?: number): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.drop
- */
- drop<T>(n?: number): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.drop
- */
- drop(n?: number): LoDashExplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.drop
- */
- drop<T>(n?: number): LoDashExplicitArrayWrapper<T>;
- }
-
- //_.dropRight
- interface LoDashStatic {
- /**
- * Creates a slice of array with n elements dropped from the end.
- *
- * @param array The array to query.
- * @param n The number of elements to drop.
- * @return Returns the slice of array.
- */
- dropRight<T>(
- array: List<T>,
- n?: number
- ): T[];
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.dropRight
- */
- dropRight(n?: number): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.dropRight
- */
- dropRight<TResult>(n?: number): LoDashImplicitArrayWrapper<TResult>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.dropRight
- */
- dropRight(n?: number): LoDashExplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.dropRight
- */
- dropRight<TResult>(n?: number): LoDashExplicitArrayWrapper<TResult>;
- }
-
- //_.dropRightWhile
- interface LoDashStatic {
- /**
- * Creates a slice of array excluding elements dropped from the end. Elements are dropped until predicate
- * returns falsey. The predicate is bound to thisArg and invoked with three arguments: (value, index, array).
- *
- * If a property name is provided for predicate the created _.property style callback returns the property
- * value of the given element.
- *
- * If a value is also provided for thisArg the created _.matchesProperty style callback returns true for
- * elements that have a matching property value, else false.
- *
- * If an object is provided for predicate the created _.matches style callback returns true for elements that
- * match the properties of the given object, else false.
- *
- * @param array The array to query.
- * @param predicate The function invoked per iteration.
- * @param thisArg The this binding of predicate.
- * @return Returns the slice of array.
- */
- dropRightWhile<TValue>(
- array: List<TValue>,
- predicate?: ListIterator<TValue, boolean>,
- thisArg?: any
- ): TValue[];
-
- /**
- * @see _.dropRightWhile
- */
- dropRightWhile<TValue>(
- array: List<TValue>,
- predicate?: string,
- thisArg?: any
- ): TValue[];
-
- /**
- * @see _.dropRightWhile
- */
- dropRightWhile<TWhere, TValue>(
- array: List<TValue>,
- predicate?: TWhere
- ): TValue[];
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.dropRightWhile
- */
- dropRightWhile(
- predicate?: ListIterator<T, boolean>,
- thisArg?: any
- ): LoDashImplicitArrayWrapper<T>;
-
- /**
- * @see _.dropRightWhile
- */
- dropRightWhile(
- predicate?: string,
- thisArg?: any
- ): LoDashImplicitArrayWrapper<T>;
-
- /**
- * @see _.dropRightWhile
- */
- dropRightWhile<TWhere>(
- predicate?: TWhere
- ): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.dropRightWhile
- */
- dropRightWhile<TValue>(
- predicate?: ListIterator<TValue, boolean>,
- thisArg?: any
- ): LoDashImplicitArrayWrapper<TValue>;
-
- /**
- * @see _.dropRightWhile
- */
- dropRightWhile<TValue>(
- predicate?: string,
- thisArg?: any
- ): LoDashImplicitArrayWrapper<TValue>;
-
- /**
- * @see _.dropRightWhile
- */
- dropRightWhile<TWhere, TValue>(
- predicate?: TWhere
- ): LoDashImplicitArrayWrapper<TValue>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.dropRightWhile
- */
- dropRightWhile(
- predicate?: ListIterator<T, boolean>,
- thisArg?: any
- ): LoDashExplicitArrayWrapper<T>;
-
- /**
- * @see _.dropRightWhile
- */
- dropRightWhile(
- predicate?: string,
- thisArg?: any
- ): LoDashExplicitArrayWrapper<T>;
-
- /**
- * @see _.dropRightWhile
- */
- dropRightWhile<TWhere>(
- predicate?: TWhere
- ): LoDashExplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.dropRightWhile
- */
- dropRightWhile<TValue>(
- predicate?: ListIterator<TValue, boolean>,
- thisArg?: any
- ): LoDashExplicitArrayWrapper<TValue>;
-
- /**
- * @see _.dropRightWhile
- */
- dropRightWhile<TValue>(
- predicate?: string,
- thisArg?: any
- ): LoDashExplicitArrayWrapper<TValue>;
-
- /**
- * @see _.dropRightWhile
- */
- dropRightWhile<TWhere, TValue>(
- predicate?: TWhere
- ): LoDashExplicitArrayWrapper<TValue>;
- }
-
- //_.dropWhile
- interface LoDashStatic {
- /**
- * Creates a slice of array excluding elements dropped from the beginning. Elements are dropped until predicate
- * returns falsey. The predicate is bound to thisArg and invoked with three arguments: (value, index, array).
- *
- * If a property name is provided for predicate the created _.property style callback returns the property
- * value of the given element.
- *
- * If a value is also provided for thisArg the created _.matchesProperty style callback returns true for
- * elements that have a matching property value, else false.
- *
- * If an object is provided for predicate the created _.matches style callback returns true for elements that
- * have the properties of the given object, else false.
- *
- * @param array The array to query.
- * @param predicate The function invoked per iteration.
- * @param thisArg The this binding of predicate.
- * @return Returns the slice of array.
- */
- dropWhile<TValue>(
- array: List<TValue>,
- predicate?: ListIterator<TValue, boolean>,
- thisArg?: any
- ): TValue[];
-
- /**
- * @see _.dropWhile
- */
- dropWhile<TValue>(
- array: List<TValue>,
- predicate?: string,
- thisArg?: any
- ): TValue[];
-
- /**
- * @see _.dropWhile
- */
- dropWhile<TWhere, TValue>(
- array: List<TValue>,
- predicate?: TWhere
- ): TValue[];
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.dropWhile
- */
- dropWhile(
- predicate?: ListIterator<T, boolean>,
- thisArg?: any
- ): LoDashImplicitArrayWrapper<T>;
-
- /**
- * @see _.dropWhile
- */
- dropWhile(
- predicate?: string,
- thisArg?: any
- ): LoDashImplicitArrayWrapper<T>;
-
- /**
- * @see _.dropWhile
- */
- dropWhile<TWhere>(
- predicate?: TWhere
- ): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.dropWhile
- */
- dropWhile<TValue>(
- predicate?: ListIterator<TValue, boolean>,
- thisArg?: any
- ): LoDashImplicitArrayWrapper<TValue>;
-
- /**
- * @see _.dropWhile
- */
- dropWhile<TValue>(
- predicate?: string,
- thisArg?: any
- ): LoDashImplicitArrayWrapper<TValue>;
-
- /**
- * @see _.dropWhile
- */
- dropWhile<TWhere, TValue>(
- predicate?: TWhere
- ): LoDashImplicitArrayWrapper<TValue>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.dropWhile
- */
- dropWhile(
- predicate?: ListIterator<T, boolean>,
- thisArg?: any
- ): LoDashExplicitArrayWrapper<T>;
-
- /**
- * @see _.dropWhile
- */
- dropWhile(
- predicate?: string,
- thisArg?: any
- ): LoDashExplicitArrayWrapper<T>;
-
- /**
- * @see _.dropWhile
- */
- dropWhile<TWhere>(
- predicate?: TWhere
- ): LoDashExplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.dropWhile
- */
- dropWhile<TValue>(
- predicate?: ListIterator<TValue, boolean>,
- thisArg?: any
- ): LoDashExplicitArrayWrapper<TValue>;
-
- /**
- * @see _.dropWhile
- */
- dropWhile<TValue>(
- predicate?: string,
- thisArg?: any
- ): LoDashExplicitArrayWrapper<TValue>;
-
- /**
- * @see _.dropWhile
- */
- dropWhile<TWhere, TValue>(
- predicate?: TWhere
- ): LoDashExplicitArrayWrapper<TValue>;
- }
-
- //_.fill
- interface LoDashStatic {
- /**
- * Fills elements of array with value from start up to, but not including, end.
- *
- * Note: This method mutates array.
- *
- * @param array The array to fill.
- * @param value The value to fill array with.
- * @param start The start position.
- * @param end The end position.
- * @return Returns array.
- */
- fill<T>(
- array: any[],
- value: T,
- start?: number,
- end?: number
- ): T[];
-
- /**
- * @see _.fill
- */
- fill<T>(
- array: List<any>,
- value: T,
- start?: number,
- end?: number
- ): List<T>;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.fill
- */
- fill<T>(
- value: T,
- start?: number,
- end?: number
- ): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.fill
- */
- fill<T>(
- value: T,
- start?: number,
- end?: number
- ): LoDashImplicitObjectWrapper<List<T>>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.fill
- */
- fill<T>(
- value: T,
- start?: number,
- end?: number
- ): LoDashExplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.fill
- */
- fill<T>(
- value: T,
- start?: number,
- end?: number
- ): LoDashExplicitObjectWrapper<List<T>>;
- }
-
- //_.findIndex
- interface LoDashStatic {
- /**
- * This method is like _.find except that it returns the index of the first element predicate returns truthy
- * for instead of the element itself.
- *
- * If a property name is provided for predicate the created _.property style callback returns the property
- * value of the given element.
- *
- * If a value is also provided for thisArg the created _.matchesProperty style callback returns true for
- * elements that have a matching property value, else false.
- *
- * If an object is provided for predicate the created _.matches style callback returns true for elements that
- * have the properties of the given object, else false.
- *
- * @param array The array to search.
- * @param predicate The function invoked per iteration.
- * @param thisArg The this binding of predicate.
- * @return Returns the index of the found element, else -1.
- */
- findIndex<T>(
- array: List<T>,
- predicate?: ListIterator<T, boolean>,
- thisArg?: any
- ): number;
-
- /**
- * @see _.findIndex
- */
- findIndex<T>(
- array: List<T>,
- predicate?: string,
- thisArg?: any
- ): number;
-
- /**
- * @see _.findIndex
- */
- findIndex<W, T>(
- array: List<T>,
- predicate?: W
- ): number;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.findIndex
- */
- findIndex(
- predicate?: ListIterator<T, boolean>,
- thisArg?: any
- ): number;
-
- /**
- * @see _.findIndex
- */
- findIndex(
- predicate?: string,
- thisArg?: any
- ): number;
-
- /**
- * @see _.findIndex
- */
- findIndex<W>(
- predicate?: W
- ): number;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.findIndex
- */
- findIndex<TResult>(
- predicate?: ListIterator<TResult, boolean>,
- thisArg?: any
- ): number;
-
- /**
- * @see _.findIndex
- */
- findIndex(
- predicate?: string,
- thisArg?: any
- ): number;
-
- /**
- * @see _.findIndex
- */
- findIndex<W>(
- predicate?: W
- ): number;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.findIndex
- */
- findIndex(
- predicate?: ListIterator<T, boolean>,
- thisArg?: any
- ): LoDashExplicitWrapper<number>;
-
- /**
- * @see _.findIndex
- */
- findIndex(
- predicate?: string,
- thisArg?: any
- ): LoDashExplicitWrapper<number>;
-
- /**
- * @see _.findIndex
- */
- findIndex<W>(
- predicate?: W
- ): LoDashExplicitWrapper<number>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.findIndex
- */
- findIndex<TResult>(
- predicate?: ListIterator<TResult, boolean>,
- thisArg?: any
- ): LoDashExplicitWrapper<number>;
-
- /**
- * @see _.findIndex
- */
- findIndex(
- predicate?: string,
- thisArg?: any
- ): LoDashExplicitWrapper<number>;
-
- /**
- * @see _.findIndex
- */
- findIndex<W>(
- predicate?: W
- ): LoDashExplicitWrapper<number>;
- }
-
- //_.findLastIndex
- interface LoDashStatic {
- /**
- * This method is like _.findIndex except that it iterates over elements of collection from right to left.
- *
- * If a property name is provided for predicate the created _.property style callback returns the property
- * value of the given element.
- *
- * If a value is also provided for thisArg the created _.matchesProperty style callback returns true for
- * elements that have a matching property value, else false.
- *
- * If an object is provided for predicate the created _.matches style callback returns true for elements that
- * have the properties of the given object, else false.
- *
- * @param array The array to search.
- * @param predicate The function invoked per iteration.
- * @param thisArg The function invoked per iteration.
- * @return Returns the index of the found element, else -1.
- */
- findLastIndex<T>(
- array: List<T>,
- predicate?: ListIterator<T, boolean>,
- thisArg?: any
- ): number;
-
- /**
- * @see _.findLastIndex
- */
- findLastIndex<T>(
- array: List<T>,
- predicate?: string,
- thisArg?: any
- ): number;
-
- /**
- * @see _.findLastIndex
- */
- findLastIndex<W, T>(
- array: List<T>,
- predicate?: W
- ): number;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.findLastIndex
- */
- findLastIndex(
- predicate?: ListIterator<T, boolean>,
- thisArg?: any
- ): number;
-
- /**
- * @see _.findLastIndex
- */
- findLastIndex(
- predicate?: string,
- thisArg?: any
- ): number;
-
- /**
- * @see _.findLastIndex
- */
- findLastIndex<W>(
- predicate?: W
- ): number;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.findLastIndex
- */
- findLastIndex<TResult>(
- predicate?: ListIterator<TResult, boolean>,
- thisArg?: any
- ): number;
-
- /**
- * @see _.findLastIndex
- */
- findLastIndex(
- predicate?: string,
- thisArg?: any
- ): number;
-
- /**
- * @see _.findLastIndex
- */
- findLastIndex<W>(
- predicate?: W
- ): number;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.findLastIndex
- */
- findLastIndex(
- predicate?: ListIterator<T, boolean>,
- thisArg?: any
- ): LoDashExplicitWrapper<number>;
-
- /**
- * @see _.findLastIndex
- */
- findLastIndex(
- predicate?: string,
- thisArg?: any
- ): LoDashExplicitWrapper<number>;
-
- /**
- * @see _.findLastIndex
- */
- findLastIndex<W>(
- predicate?: W
- ): LoDashExplicitWrapper<number>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.findLastIndex
- */
- findLastIndex<TResult>(
- predicate?: ListIterator<TResult, boolean>,
- thisArg?: any
- ): LoDashExplicitWrapper<number>;
-
- /**
- * @see _.findLastIndex
- */
- findLastIndex(
- predicate?: string,
- thisArg?: any
- ): LoDashExplicitWrapper<number>;
-
- /**
- * @see _.findLastIndex
- */
- findLastIndex<W>(
- predicate?: W
- ): LoDashExplicitWrapper<number>;
- }
-
- //_.first
- interface LoDashStatic {
- /**
- * @see _.head
- */
- first<T>(array: List<T>): T;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.head
- */
- first(): T;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.head
- */
- first<TResult>(): TResult;
- }
-
- interface RecursiveArray<T> extends Array<T|RecursiveArray<T>> {}
- interface ListOfRecursiveArraysOrValues<T> extends List<T|RecursiveArray<T>> {}
-
- //_.flatMap DUMMY
- interface LoDashStatic {
- /**
- * Creates an array of flattened values by running each element in `array`
- * through `iteratee` and concating its result to the other mapped values.
- * The iteratee is invoked with three arguments: (value, index|key, array).
- *
- * @static
- * @memberOf _
- * @category Array
- * @param {Array} array The array to iterate over.
- * @param {Function|Object|string} [iteratee=_.identity] The function invoked per iteration.
- * @returns {Array} Returns the new array.
- * @example
- *
- * function duplicate(n) {
- * return [n, n];
- * }
- *
- * _.flatMap([1, 2], duplicate);
- * // => [1, 1, 2, 2]
- */
- flatMap(
- array: any[]|List<any>,
- ...values: any[]
- ): any[];
- }
-
- //_.flatten
- interface LoDashStatic {
- /**
- * Flattens a nested array. If isDeep is true the array is recursively flattened, otherwise it’s only
- * flattened a single level.
- *
- * @param array The array to flatten.
- * @param isDeep Specify a deep flatten.
- * @return Returns the new flattened array.
- */
- flatten<T>(array: ListOfRecursiveArraysOrValues<T>, isDeep: boolean): T[];
-
- /**
- * @see _.flatten
- */
- flatten<T>(array: List<T|T[]>): T[];
-
- /**
- * @see _.flatten
- */
- flatten<T>(array: ListOfRecursiveArraysOrValues<T>): RecursiveArray<T>;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.flatten
- */
- flatten(): LoDashImplicitArrayWrapper<string>;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.flatten
- */
- flatten<TResult>(isDeep?: boolean): LoDashImplicitArrayWrapper<TResult>;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.flatten
- */
- flatten<TResult>(isDeep?: boolean): LoDashImplicitArrayWrapper<TResult>;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.flatten
- */
- flatten(): LoDashExplicitArrayWrapper<string>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.flatten
- */
- flatten<TResult>(isDeep?: boolean): LoDashExplicitArrayWrapper<TResult>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.flatten
- */
- flatten<TResult>(isDeep?: boolean): LoDashExplicitArrayWrapper<TResult>;
- }
-
- //_.flattenDeep
- interface LoDashStatic {
- /**
- * Recursively flattens a nested array.
- *
- * @param array The array to recursively flatten.
- * @return Returns the new flattened array.
- */
- flattenDeep<T>(array: ListOfRecursiveArraysOrValues<T>): T[];
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.flattenDeep
- */
- flattenDeep(): LoDashImplicitArrayWrapper<string>;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.flattenDeep
- */
- flattenDeep<T>(): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.flattenDeep
- */
- flattenDeep<T>(): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.flattenDeep
- */
- flattenDeep(): LoDashExplicitArrayWrapper<string>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.flattenDeep
- */
- flattenDeep<T>(): LoDashExplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.flattenDeep
- */
- flattenDeep<T>(): LoDashExplicitArrayWrapper<T>;
- }
-
- //_.fromPairs DUMMY
- interface LoDashStatic {
- /**
- * The inverse of `_.toPairs`; this method returns an object composed
- * from key-value `pairs`.
- *
- * @static
- * @memberOf _
- * @category Array
- * @param {Array} pairs The key-value pairs.
- * @returns {Object} Returns the new object.
- * @example
- *
- * _.fromPairs([['fred', 30], ['barney', 40]]);
- * // => { 'fred': 30, 'barney': 40 }
- */
- fromPairs(
- array: any[]|List<any>
- ): any[];
- }
-
- //_.head
- interface LoDashStatic {
- /**
- * Gets the first element of array.
- *
- * @alias _.first
- *
- * @param array The array to query.
- * @return Returns the first element of array.
- */
- head<T>(array: List<T>): T;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.first
- */
- head(): T;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.first
- */
- head<TResult>(): TResult;
- }
-
- //_.indexOf
- interface LoDashStatic {
- /**
- * Gets the index at which the first occurrence of `value` is found in `array`
- * using [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
- * for equality comparisons. If `fromIndex` is negative, it's used as the offset
- * from the end of `array`. If `array` is sorted providing `true` for `fromIndex`
- * performs a faster binary search.
- *
- * @static
- * @memberOf _
- * @category Array
- * @param {Array} array The array to search.
- * @param {*} value The value to search for.
- * @param {number} [fromIndex=0] The index to search from.
- * @returns {number} Returns the index of the matched value, else `-1`.
- * @example
- *
- * _.indexOf([1, 2, 1, 2], 2);
- * // => 1
- *
- * // using `fromIndex`
- * _.indexOf([1, 2, 1, 2], 2, 2);
- * // => 3
- */
- indexOf<T>(
- array: List<T>,
- value: T,
- fromIndex?: boolean|number
- ): number;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.indexOf
- */
- indexOf(
- value: T,
- fromIndex?: boolean|number
- ): number;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.indexOf
- */
- indexOf<TValue>(
- value: TValue,
- fromIndex?: boolean|number
- ): number;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.indexOf
- */
- indexOf(
- value: T,
- fromIndex?: boolean|number
- ): LoDashExplicitWrapper<number>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.indexOf
- */
- indexOf<TValue>(
- value: TValue,
- fromIndex?: boolean|number
- ): LoDashExplicitWrapper<number>;
- }
-
- //_.intersectionBy DUMMY
- interface LoDashStatic {
- /**
- * This method is like `_.intersection` except that it accepts `iteratee`
- * which is invoked for each element of each `arrays` to generate the criterion
- * by which uniqueness is computed. The iteratee is invoked with one argument: (value).
- *
- * @static
- * @memberOf _
- * @category Array
- * @param {...Array} [arrays] The arrays to inspect.
- * @param {Function|Object|string} [iteratee=_.identity] The iteratee invoked per element.
- * @returns {Array} Returns the new array of shared values.
- * @example
- *
- * _.intersectionBy([2.1, 1.2], [4.3, 2.4], Math.floor);
- * // => [2.1]
- *
- * // using the `_.property` iteratee shorthand
- * _.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');
- * // => [{ 'x': 1 }]
- */
- intersectionBy(
- array: any[]|List<any>,
- ...values: any[]
- ): any[];
- }
-
- //_.intersectionWith DUMMY
- interface LoDashStatic {
- /**
- * This method is like `_.intersection` except that it accepts `comparator`
- * which is invoked to compare elements of `arrays`. The comparator is invoked
- * with two arguments: (arrVal, othVal).
- *
- * @static
- * @memberOf _
- * @category Array
- * @param {...Array} [arrays] The arrays to inspect.
- * @param {Function} [comparator] The comparator invoked per element.
- * @returns {Array} Returns the new array of shared values.
- * @example
- *
- * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];
- * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];
- *
- * _.intersectionWith(objects, others, _.isEqual);
- * // => [{ 'x': 1, 'y': 2 }]
- */
- intersectionWith(
- array: any[]|List<any>,
- ...values: any[]
- ): any[];
- }
-
- //_.join DUMMY
- interface LoDashStatic {
- /**
- * Converts all elements in `array` into a string separated by `separator`.
- *
- * @static
- * @memberOf _
- * @category Array
- * @param {Array} array The array to convert.
- * @param {string} [separator=','] The element separator.
- * @returns {string} Returns the joined string.
- * @example
- *
- * _.join(['a', 'b', 'c'], '~');
- * // => 'a~b~c'
- */
- join(
- array: any[]|List<any>,
- ...values: any[]
- ): any[];
- }
-
- //_.pullAll DUMMY
- interface LoDashStatic {
- /**
- * This method is like `_.pull` except that it accepts an array of values to remove.
- *
- * **Note:** Unlike `_.difference`, this method mutates `array`.
- *
- * @static
- * @memberOf _
- * @category Array
- * @param {Array} array The array to modify.
- * @param {Array} values The values to remove.
- * @returns {Array} Returns `array`.
- * @example
- *
- * var array = [1, 2, 3, 1, 2, 3];
- *
- * _.pull(array, [2, 3]);
- * console.log(array);
- * // => [1, 1]
- */
- pullAll(
- array: any[]|List<any>,
- ...values: any[]
- ): any[];
- }
-
- //_.pullAllBy DUMMY
- interface LoDashStatic {
- /**
- * This method is like `_.pullAll` except that it accepts `iteratee` which is
- * invoked for each element of `array` and `values` to to generate the criterion
- * by which uniqueness is computed. The iteratee is invoked with one argument: (value).
- *
- * **Note:** Unlike `_.differenceBy`, this method mutates `array`.
- *
- * @static
- * @memberOf _
- * @category Array
- * @param {Array} array The array to modify.
- * @param {Array} values The values to remove.
- * @param {Function|Object|string} [iteratee=_.identity] The iteratee invoked per element.
- * @returns {Array} Returns `array`.
- * @example
- *
- * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];
- *
- * _.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x');
- * console.log(array);
- * // => [{ 'x': 2 }]
- */
- pullAllBy(
- array: any[]|List<any>,
- ...values: any[]
- ): any[];
- }
-
- //_.reverse DUMMY
- interface LoDashStatic {
- /**
- * Reverses `array` so that the first element becomes the last, the second
- * element becomes the second to last, and so on.
- *
- * **Note:** This method mutates `array` and is based on
- * [`Array#reverse`](https://mdn.io/Array/reverse).
- *
- * @memberOf _
- * @category Array
- * @returns {Array} Returns `array`.
- * @example
- *
- * var array = [1, 2, 3];
- *
- * _.reverse(array);
- * // => [3, 2, 1]
- *
- * console.log(array);
- * // => [3, 2, 1]
- */
- reverse(
- array: any[]|List<any>,
- ...values: any[]
- ): any[];
- }
-
- //_.sortedIndexOf
- interface LoDashStatic {
- /**
- * This method is like `_.indexOf` except that it performs a binary
- * search on a sorted `array`.
- *
- * @static
- * @memberOf _
- * @category Array
- * @param {Array} array The array to search.
- * @param {*} value The value to search for.
- * @returns {number} Returns the index of the matched value, else `-1`.
- * @example
- *
- * _.sortedIndexOf([1, 1, 2, 2], 2);
- * // => 2
- */
- sortedIndexOf<T>(
- array: List<T>,
- value: T
- ): number;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.sortedIndexOf
- */
- sortedIndexOf(
- value: T
- ): number;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.sortedIndexOf
- */
- sortedIndexOf<TValue>(
- value: TValue
- ): number;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.sortedIndexOf
- */
- sortedIndexOf(
- value: T
- ): LoDashExplicitWrapper<number>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.sortedIndexOf
- */
- sortedIndexOf<TValue>(
- value: TValue
- ): LoDashExplicitWrapper<number>;
- }
-
- //_.initial
- interface LoDashStatic {
- /**
- * Gets all but the last element of array.
- *
- * @param array The array to query.
- * @return Returns the slice of array.
- */
- initial<T>(array: List<T>): T[];
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.initial
- */
- initial(): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.initial
- */
- initial<T>(): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.initial
- */
- initial(): LoDashExplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.initial
- */
- initial<T>(): LoDashExplicitArrayWrapper<T>;
- }
-
- //_.intersection
- interface LoDashStatic {
- /**
- * Creates an array of unique values that are included in all of the provided arrays using SameValueZero for
- * equality comparisons.
- *
- * @param arrays The arrays to inspect.
- * @return Returns the new array of shared values.
- */
- intersection<T>(...arrays: (T[]|List<T>)[]): T[];
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.intersection
- */
- intersection<TResult>(...arrays: (TResult[]|List<TResult>)[]): LoDashImplicitArrayWrapper<TResult>;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.intersection
- */
- intersection<TResult>(...arrays: (TResult[]|List<TResult>)[]): LoDashImplicitArrayWrapper<TResult>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.intersection
- */
- intersection<TResult>(...arrays: (TResult[]|List<TResult>)[]): LoDashExplicitArrayWrapper<TResult>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.intersection
- */
- intersection<TResult>(...arrays: (TResult[]|List<TResult>)[]): LoDashExplicitArrayWrapper<TResult>;
- }
-
- //_.last
- interface LoDashStatic {
- /**
- * Gets the last element of array.
- *
- * @param array The array to query.
- * @return Returns the last element of array.
- */
- last<T>(array: List<T>): T;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.last
- */
- last(): T;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.last
- */
- last<T>(): T;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.last
- */
- last(): LoDashExplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.last
- */
- last<T>(): LoDashExplicitObjectWrapper<T>;
- }
-
- //_.lastIndexOf
- interface LoDashStatic {
- /**
- * This method is like _.indexOf except that it iterates over elements of array from right to left.
- *
- * @param array The array to search.
- * @param value The value to search for.
- * @param fromIndex The index to search from or true to perform a binary search on a sorted array.
- * @return Returns the index of the matched value, else -1.
- */
- lastIndexOf<T>(
- array: List<T>,
- value: T,
- fromIndex?: boolean|number
- ): number;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.lastIndexOf
- */
- lastIndexOf(
- value: T,
- fromIndex?: boolean|number
- ): number;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.lastIndexOf
- */
- lastIndexOf<TResult>(
- value: TResult,
- fromIndex?: boolean|number
- ): number;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.lastIndexOf
- */
- lastIndexOf(
- value: T,
- fromIndex?: boolean|number
- ): LoDashExplicitWrapper<number>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.lastIndexOf
- */
- lastIndexOf<TResult>(
- value: TResult,
- fromIndex?: boolean|number
- ): LoDashExplicitWrapper<number>;
- }
-
- //_.pull
- interface LoDashStatic {
- /**
- * Removes all provided values from array using SameValueZero for equality comparisons.
- *
- * Note: Unlike _.without, this method mutates array.
- *
- * @param array The array to modify.
- * @param values The values to remove.
- * @return Returns array.
- */
- pull<T>(
- array: T[],
- ...values: T[]
- ): T[];
-
- /**
- * @see _.pull
- */
- pull<T>(
- array: List<T>,
- ...values: T[]
- ): List<T>;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.pull
- */
- pull(...values: T[]): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.pull
- */
- pull<TValue>(...values: TValue[]): LoDashImplicitObjectWrapper<List<TValue>>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.pull
- */
- pull(...values: T[]): LoDashExplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.pull
- */
- pull<TValue>(...values: TValue[]): LoDashExplicitObjectWrapper<List<TValue>>;
- }
-
- //_.pullAt
- interface LoDashStatic {
- /**
- * Removes elements from array corresponding to the given indexes and returns an array of the removed elements.
- * Indexes may be specified as an array of indexes or as individual arguments.
- *
- * Note: Unlike _.at, this method mutates array.
- *
- * @param array The array to modify.
- * @param indexes The indexes of elements to remove, specified as individual indexes or arrays of indexes.
- * @return Returns the new array of removed elements.
- */
- pullAt<T>(
- array: List<T>,
- ...indexes: (number|number[])[]
- ): T[];
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.pullAt
- */
- pullAt(...indexes: (number|number[])[]): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.pullAt
- */
- pullAt<T>(...indexes: (number|number[])[]): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.pullAt
- */
- pullAt(...indexes: (number|number[])[]): LoDashExplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.pullAt
- */
- pullAt<T>(...indexes: (number|number[])[]): LoDashExplicitArrayWrapper<T>;
- }
-
- //_.remove
- interface LoDashStatic {
- /**
- * Removes all elements from array that predicate returns truthy for and returns an array of the removed
- * elements. The predicate is bound to thisArg and invoked with three arguments: (value, index, array).
- *
- * If a property name is provided for predicate the created _.property style callback returns the property
- * value of the given element.
- *
- * If a value is also provided for thisArg the created _.matchesProperty style callback returns true for
- * elements that have a matching property value, else false.
- *
- * If an object is provided for predicate the created _.matches style callback returns true for elements that
- * have the properties of the given object, else false.
- *
- * Note: Unlike _.filter, this method mutates array.
- *
- * @param array The array to modify.
- * @param predicate The function invoked per iteration.
- * @param thisArg The this binding of predicate.
- * @return Returns the new array of removed elements.
- */
- remove<T>(
- array: List<T>,
- predicate?: ListIterator<T, boolean>,
- thisArg?: any
- ): T[];
-
- /**
- * @see _.remove
- */
- remove<T>(
- array: List<T>,
- predicate?: string,
- thisArg?: any
- ): T[];
-
- /**
- * @see _.remove
- */
- remove<W, T>(
- array: List<T>,
- predicate?: W
- ): T[];
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.remove
- */
- remove(
- predicate?: ListIterator<T, boolean>,
- thisArg?: any
- ): LoDashImplicitArrayWrapper<T>;
-
- /**
- * @see _.remove
- */
- remove(
- predicate?: string,
- thisArg?: any
- ): LoDashImplicitArrayWrapper<T>;
-
- /**
- * @see _.remove
- */
- remove<W>(
- predicate?: W
- ): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.remove
- */
- remove<TResult>(
- predicate?: ListIterator<TResult, boolean>,
- thisArg?: any
- ): LoDashImplicitArrayWrapper<TResult>;
-
- /**
- * @see _.remove
- */
- remove<TResult>(
- predicate?: string,
- thisArg?: any
- ): LoDashImplicitArrayWrapper<TResult>;
-
- /**
- * @see _.remove
- */
- remove<W, TResult>(
- predicate?: W
- ): LoDashImplicitArrayWrapper<TResult>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.remove
- */
- remove(
- predicate?: ListIterator<T, boolean>,
- thisArg?: any
- ): LoDashExplicitArrayWrapper<T>;
-
- /**
- * @see _.remove
- */
- remove(
- predicate?: string,
- thisArg?: any
- ): LoDashExplicitArrayWrapper<T>;
-
- /**
- * @see _.remove
- */
- remove<W>(
- predicate?: W
- ): LoDashExplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.remove
- */
- remove<TResult>(
- predicate?: ListIterator<TResult, boolean>,
- thisArg?: any
- ): LoDashExplicitArrayWrapper<TResult>;
-
- /**
- * @see _.remove
- */
- remove<TResult>(
- predicate?: string,
- thisArg?: any
- ): LoDashExplicitArrayWrapper<TResult>;
-
- /**
- * @see _.remove
- */
- remove<W, TResult>(
- predicate?: W
- ): LoDashExplicitArrayWrapper<TResult>;
- }
-
- //_.tail
- interface LoDashStatic {
- /**
- * Gets all but the first element of array.
- *
- * @alias _.tail
- *
- * @param array The array to query.
- * @return Returns the slice of array.
- */
- tail<T>(array: List<T>): T[];
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.tail
- */
- tail(): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.tail
- */
- tail<T>(): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.tail
- */
- tail(): LoDashExplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.tail
- */
- tail<T>(): LoDashExplicitArrayWrapper<T>;
- }
-
- //_.slice
- interface LoDashStatic {
- /**
- * Creates a slice of array from start up to, but not including, end.
- *
- * @param array The array to slice.
- * @param start The start position.
- * @param end The end position.
- * @return Returns the slice of array.
- */
- slice<T>(
- array: T[],
- start?: number,
- end?: number
- ): T[];
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.slice
- */
- slice(
- start?: number,
- end?: number
- ): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.slice
- */
- slice(
- start?: number,
- end?: number
- ): LoDashExplicitArrayWrapper<T>;
- }
-
- //_.sortedIndex
- interface LoDashStatic {
- /**
- * Uses a binary search to determine the lowest index at which `value` should
- * be inserted into `array` in order to maintain its sort order.
- *
- * @static
- * @memberOf _
- * @category Array
- * @param {Array} array The sorted array to inspect.
- * @param {*} value The value to evaluate.
- * @returns {number} Returns the index at which `value` should be inserted into `array`.
- * @example
- *
- * _.sortedIndex([30, 50], 40);
- * // => 1
- *
- * _.sortedIndex([4, 5], 4);
- * // => 0
- */
- sortedIndex<T, TSort>(
- array: List<T>,
- value: T
- ): number;
-
- /**
- * @see _.sortedIndex
- */
- sortedIndex<T>(
- array: List<T>,
- value: T
- ): number;
-
- /**
- * @see _.sortedIndex
- */
- sortedIndex<T>(
- array: List<T>,
- value: T
- ): number;
-
- /**
- * @see _.sortedIndex
- */
- sortedIndex<W, T>(
- array: List<T>,
- value: T
- ): number;
-
- /**
- * @see _.sortedIndex
- */
- sortedIndex<T>(
- array: List<T>,
- value: T
- ): number;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.sortedIndex
- */
- sortedIndex<TSort>(
- value: string
- ): number;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.sortedIndex
- */
- sortedIndex<TSort>(
- value: T
- ): number;
-
- /**
- * @see _.sortedIndex
- */
- sortedIndex(
- value: T
- ): number;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.sortedIndex
- */
- sortedIndex<T, TSort>(
- value: T
- ): number;
-
- /**
- * @see _.sortedIndex
- */
- sortedIndex<T>(
- value: T
- ): number;
-
- /**
- * @see _.sortedIndex
- */
- sortedIndex<W, T>(
- value: T
- ): number;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.sortedIndex
- */
- sortedIndex<TSort>(
- value: string
- ): LoDashExplicitWrapper<number>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.sortedIndex
- */
- sortedIndex<TSort>(
- value: T
- ): LoDashExplicitWrapper<number>;
-
- /**
- * @see _.sortedIndex
- */
- sortedIndex(
- value: T
- ): LoDashExplicitWrapper<number>;
-
- /**
- * @see _.sortedIndex
- */
- sortedIndex<W>(
- value: T
- ): LoDashExplicitWrapper<number>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.sortedIndex
- */
- sortedIndex<T, TSort>(
- value: T
- ): LoDashExplicitWrapper<number>;
-
- /**
- * @see _.sortedIndex
- */
- sortedIndex<T>(
- value: T
- ): LoDashExplicitWrapper<number>;
-
- /**
- * @see _.sortedIndex
- */
- sortedIndex<W, T>(
- value: T
- ): LoDashExplicitWrapper<number>;
-
-
- }
-
- //_.sortedIndexBy
- interface LoDashStatic {
- /**
- * This method is like `_.sortedIndex` except that it accepts `iteratee`
- * which is invoked for `value` and each element of `array` to compute their
- * sort ranking. The iteratee is invoked with one argument: (value).
- *
- * @static
- * @memberOf _
- * @category Array
- * @param {Array} array The sorted array to inspect.
- * @param {*} value The value to evaluate.
- * @param {Function|Object|string} [iteratee=_.identity] The iteratee invoked per element.
- * @returns {number} Returns the index at which `value` should be inserted into `array`.
- * @example
- *
- * var dict = { 'thirty': 30, 'forty': 40, 'fifty': 50 };
- *
- * _.sortedIndexBy(['thirty', 'fifty'], 'forty', _.propertyOf(dict));
- * // => 1
- *
- * // using the `_.property` iteratee shorthand
- * _.sortedIndexBy([{ 'x': 4 }, { 'x': 5 }], { 'x': 4 }, 'x');
- * // => 0
- */
- sortedIndexBy<T, TSort>(
- array: List<T>,
- value: T,
- iteratee: (x: T) => TSort
- ): number;
-
- /**
- * @see _.sortedIndexBy
- */
- sortedIndexBy<T>(
- array: List<T>,
- value: T,
- iteratee: (x: T) => any
- ): number;
-
- /**
- * @see _.sortedIndexBy
- */
- sortedIndexBy<T>(
- array: List<T>,
- value: T,
- iteratee: string
- ): number;
-
- /**
- * @see _.sortedIndexBy
- */
- sortedIndexBy<W, T>(
- array: List<T>,
- value: T,
- iteratee: W
- ): number;
-
- /**
- * @see _.sortedIndexBy
- */
- sortedIndexBy<T>(
- array: List<T>,
- value: T,
- iteratee: Object
- ): number;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.sortedIndexBy
- */
- sortedIndexBy<TSort>(
- value: string,
- iteratee: (x: string) => TSort
- ): number;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.sortedIndexBy
- */
- sortedIndexBy<TSort>(
- value: T,
- iteratee: (x: T) => TSort
- ): number;
-
- /**
- * @see _.sortedIndexBy
- */
- sortedIndexBy(
- value: T,
- iteratee: string
- ): number;
-
- /**
- * @see _.sortedIndexBy
- */
- sortedIndexBy<W>(
- value: T,
- iteratee: W
- ): number;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.sortedIndexBy
- */
- sortedIndexBy<T, TSort>(
- value: T,
- iteratee: (x: T) => TSort
- ): number;
-
- /**
- * @see _.sortedIndexBy
- */
- sortedIndexBy<T>(
- value: T,
- iteratee: (x: T) => any
- ): number;
-
- /**
- * @see _.sortedIndexBy
- */
- sortedIndexBy<T>(
- value: T,
- iteratee: string
- ): number;
-
- /**
- * @see _.sortedIndexBy
- */
- sortedIndexBy<W, T>(
- value: T,
- iteratee: W
- ): number;
-
- /**
- * @see _.sortedIndexBy
- */
- sortedIndexBy<T>(
- value: T,
- iteratee: Object
- ): number;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.sortedIndexBy
- */
- sortedIndexBy<TSort>(
- value: string,
- iteratee: (x: string) => TSort
- ): LoDashExplicitWrapper<number>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.sortedIndexBy
- */
- sortedIndexBy<TSort>(
- value: T,
- iteratee: (x: T) => TSort
- ): LoDashExplicitWrapper<number>;
-
- /**
- * @see _.sortedIndexBy
- */
- sortedIndexBy(
- value: T,
- iteratee: string
- ): LoDashExplicitWrapper<number>;
-
- /**
- * @see _.sortedIndexBy
- */
- sortedIndexBy<W>(
- value: T,
- iteratee: W
- ): LoDashExplicitWrapper<number>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.sortedIndexBy
- */
- sortedIndexBy<T, TSort>(
- value: T,
- iteratee: (x: T) => TSort
- ): LoDashExplicitWrapper<number>;
-
- /**
- * @see _.sortedIndexBy
- */
- sortedIndexBy<T>(
- value: T,
- iteratee: (x: T) => any
- ): LoDashExplicitWrapper<number>;
-
- /**
- * @see _.sortedIndexBy
- */
- sortedIndexBy<T>(
- value: T,
- iteratee: string
- ): LoDashExplicitWrapper<number>;
-
- /**
- * @see _.sortedIndexBy
- */
- sortedIndexBy<W, T>(
- value: T,
- iteratee: W
- ): LoDashExplicitWrapper<number>;
-
- /**
- * @see _.sortedIndexBy
- */
- sortedIndexBy<T>(
- value: T,
- iteratee: Object
- ): LoDashExplicitWrapper<number>;
- }
-
- //_.sortedLastIndex
- interface LoDashStatic {
- /**
- * This method is like `_.sortedIndex` except that it returns the highest
- * index at which `value` should be inserted into `array` in order to
- * maintain its sort order.
- *
- * @static
- * @memberOf _
- * @category Array
- * @param {Array} array The sorted array to inspect.
- * @param {*} value The value to evaluate.
- * @returns {number} Returns the index at which `value` should be inserted into `array`.
- * @example
- *
- * _.sortedLastIndex([4, 5], 4);
- * // => 1
- */
- sortedLastIndex<T, TSort>(
- array: List<T>,
- value: T
- ): number;
-
- /**
- * @see _.sortedLastIndex
- */
- sortedLastIndex<T>(
- array: List<T>,
- value: T
- ): number;
-
- /**
- * @see _.sortedLastIndex
- */
- sortedLastIndex<T>(
- array: List<T>,
- value: T
- ): number;
-
- /**
- * @see _.sortedLastIndex
- */
- sortedLastIndex<W, T>(
- array: List<T>,
- value: T
- ): number;
-
- /**
- * @see _.sortedLastIndex
- */
- sortedLastIndex<T>(
- array: List<T>,
- value: T
- ): number;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.sortedLastIndex
- */
- sortedLastIndex<TSort>(
- value: string
- ): number;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.sortedLastIndex
- */
- sortedLastIndex<TSort>(
- value: T
- ): number;
-
- /**
- * @see _.sortedLastIndex
- */
- sortedLastIndex(
- value: T
- ): number;
-
- /**
- * @see _.sortedLastIndex
- */
- sortedLastIndex<W>(
- value: T
- ): number;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.sortedLastIndex
- */
- sortedLastIndex<T, TSort>(
- value: T
- ): number;
-
- /**
- * @see _.sortedLastIndex
- */
- sortedLastIndex<T>(
- value: T
- ): number;
-
- /**
- * @see _.sortedLastIndex
- */
- sortedLastIndex<W, T>(
- value: T
- ): number;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.sortedLastIndex
- */
- sortedLastIndex<TSort>(
- value: string
- ): LoDashExplicitWrapper<number>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.sortedLastIndex
- */
- sortedLastIndex<TSort>(
- value: T
- ): LoDashExplicitWrapper<number>;
-
- /**
- * @see _.sortedLastIndex
- */
- sortedLastIndex(
- value: T
- ): LoDashExplicitWrapper<number>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.sortedLastIndex
- */
- sortedLastIndex<T, TSort>(
- value: T
- ): LoDashExplicitWrapper<number>;
-
- /**
- * @see _.sortedLastIndex
- */
- sortedLastIndex<T>(
- value: T
- ): LoDashExplicitWrapper<number>;
-
- /**
- * @see _.sortedLastIndex
- */
- sortedLastIndex<W, T>(
- value: T
- ): LoDashExplicitWrapper<number>;
- }
-
- //_.sortedLastIndexBy
- interface LoDashStatic {
- /**
- * This method is like `_.sortedLastIndex` except that it accepts `iteratee`
- * which is invoked for `value` and each element of `array` to compute their
- * sort ranking. The iteratee is invoked with one argument: (value).
- *
- * @static
- * @memberOf _
- * @category Array
- * @param {Array} array The sorted array to inspect.
- * @param {*} value The value to evaluate.
- * @param {Function|Object|string} [iteratee=_.identity] The iteratee invoked per element.
- * @returns {number} Returns the index at which `value` should be inserted into `array`.
- * @example
- *
- * // using the `_.property` iteratee shorthand
- * _.sortedLastIndexBy([{ 'x': 4 }, { 'x': 5 }], { 'x': 4 }, 'x');
- * // => 1
- */
- sortedLastIndexBy<T, TSort>(
- array: List<T>,
- value: T,
- iteratee: (x: T) => TSort
- ): number;
-
- /**
- * @see _.sortedLastIndexBy
- */
- sortedLastIndexBy<T>(
- array: List<T>,
- value: T,
- iteratee: (x: T) => any
- ): number;
-
- /**
- * @see _.sortedLastIndexBy
- */
- sortedLastIndexBy<T>(
- array: List<T>,
- value: T,
- iteratee: string
- ): number;
-
- /**
- * @see _.sortedLastIndexBy
- */
- sortedLastIndexBy<W, T>(
- array: List<T>,
- value: T,
- iteratee: W
- ): number;
-
- /**
- * @see _.sortedLastIndexBy
- */
- sortedLastIndexBy<T>(
- array: List<T>,
- value: T,
- iteratee: Object
- ): number;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.sortedLastIndexBy
- */
- sortedLastIndexBy<TSort>(
- value: string,
- iteratee: (x: string) => TSort
- ): number;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.sortedLastIndexBy
- */
- sortedLastIndexBy<TSort>(
- value: T,
- iteratee: (x: T) => TSort
- ): number;
-
- /**
- * @see _.sortedLastIndexBy
- */
- sortedLastIndexBy(
- value: T,
- iteratee: string
- ): number;
-
- /**
- * @see _.sortedLastIndexBy
- */
- sortedLastIndexBy<W>(
- value: T,
- iteratee: W
- ): number;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.sortedLastIndexBy
- */
- sortedLastIndexBy<T, TSort>(
- value: T,
- iteratee: (x: T) => TSort
- ): number;
-
- /**
- * @see _.sortedLastIndexBy
- */
- sortedLastIndexBy<T>(
- value: T,
- iteratee: (x: T) => any
- ): number;
-
- /**
- * @see _.sortedLastIndexBy
- */
- sortedLastIndexBy<T>(
- value: T,
- iteratee: string
- ): number;
-
- /**
- * @see _.sortedLastIndexBy
- */
- sortedLastIndexBy<W, T>(
- value: T,
- iteratee: W
- ): number;
-
- /**
- * @see _.sortedLastIndexBy
- */
- sortedLastIndexBy<T>(
- value: T,
- iteratee: Object
- ): number;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.sortedLastIndexBy
- */
- sortedLastIndexBy<TSort>(
- value: string,
- iteratee: (x: string) => TSort
- ): LoDashExplicitWrapper<number>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.sortedLastIndexBy
- */
- sortedLastIndexBy<TSort>(
- value: T,
- iteratee: (x: T) => TSort
- ): LoDashExplicitWrapper<number>;
-
- /**
- * @see _.sortedLastIndexBy
- */
- sortedLastIndexBy(
- value: T,
- iteratee: string
- ): LoDashExplicitWrapper<number>;
-
- /**
- * @see _.sortedLastIndexBy
- */
- sortedLastIndexBy<W>(
- value: T,
- iteratee: W
- ): LoDashExplicitWrapper<number>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.sortedLastIndexBy
- */
- sortedLastIndexBy<T, TSort>(
- value: T,
- iteratee: (x: T) => TSort
- ): LoDashExplicitWrapper<number>;
-
- /**
- * @see _.sortedLastIndexBy
- */
- sortedLastIndexBy<T>(
- value: T,
- iteratee: (x: T) => any
- ): LoDashExplicitWrapper<number>;
-
- /**
- * @see _.sortedLastIndexBy
- */
- sortedLastIndexBy<T>(
- value: T,
- iteratee: string
- ): LoDashExplicitWrapper<number>;
-
- /**
- * @see _.sortedLastIndexBy
- */
- sortedLastIndexBy<W, T>(
- value: T,
- iteratee: W
- ): LoDashExplicitWrapper<number>;
-
- /**
- * @see _.sortedLastIndexBy
- */
- sortedLastIndexBy<T>(
- value: T,
- iteratee: Object
- ): LoDashExplicitWrapper<number>;
- }
-
- //_.sortedLastIndexOf DUMMY
- interface LoDashStatic {
- /**
- * This method is like `_.lastIndexOf` except that it performs a binary
- * search on a sorted `array`.
- *
- * @static
- * @memberOf _
- * @category Array
- * @param {Array} array The array to search.
- * @param {*} value The value to search for.
- * @returns {number} Returns the index of the matched value, else `-1`.
- * @example
- *
- * _.sortedLastIndexOf([1, 1, 2, 2], 2);
- * // => 3
- */
- sortedLastIndexOf(
- array: any[]|List<any>,
- ...values: any[]
- ): any[];
- }
-
- //_.tail
- interface LoDashStatic {
- /**
- * @see _.rest
- */
- tail<T>(array: List<T>): T[];
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.rest
- */
- tail(): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.rest
- */
- tail<T>(): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.rest
- */
- tail(): LoDashExplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.rest
- */
- tail<T>(): LoDashExplicitArrayWrapper<T>;
- }
-
- //_.take
- interface LoDashStatic {
- /**
- * Creates a slice of array with n elements taken from the beginning.
- *
- * @param array The array to query.
- * @param n The number of elements to take.
- * @return Returns the slice of array.
- */
- take<T>(
- array: List<T>,
- n?: number
- ): T[];
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.take
- */
- take(n?: number): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.take
- */
- take<TResult>(n?: number): LoDashImplicitArrayWrapper<TResult>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.take
- */
- take(n?: number): LoDashExplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.take
- */
- take<TResult>(n?: number): LoDashExplicitArrayWrapper<TResult>;
- }
-
- //_.takeRight
- interface LoDashStatic {
- /**
- * Creates a slice of array with n elements taken from the end.
- *
- * @param array The array to query.
- * @param n The number of elements to take.
- * @return Returns the slice of array.
- */
- takeRight<T>(
- array: List<T>,
- n?: number
- ): T[];
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.takeRight
- */
- takeRight(n?: number): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.takeRight
- */
- takeRight<TResult>(n?: number): LoDashImplicitArrayWrapper<TResult>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.takeRight
- */
- takeRight(n?: number): LoDashExplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.takeRight
- */
- takeRight<TResult>(n?: number): LoDashExplicitArrayWrapper<TResult>;
- }
-
- //_.takeRightWhile
- interface LoDashStatic {
- /**
- * Creates a slice of array with elements taken from the end. Elements are taken until predicate returns
- * falsey. The predicate is bound to thisArg and invoked with three arguments: (value, index, array).
- *
- * If a property name is provided for predicate the created _.property style callback returns the property
- * value of the given element.
- *
- * If a value is also provided for thisArg the created _.matchesProperty style callback returns true for
- * elements that have a matching property value, else false.
- *
- * If an object is provided for predicate the created _.matches style callback returns true for elements that
- * have the properties of the given object, else false.
- *
- * @param array The array to query.
- * @param predicate The function invoked per iteration.
- * @param thisArg The this binding of predicate.
- * @return Returns the slice of array.
- */
- takeRightWhile<TValue>(
- array: List<TValue>,
- predicate?: ListIterator<TValue, boolean>,
- thisArg?: any
- ): TValue[];
-
- /**
- * @see _.takeRightWhile
- */
- takeRightWhile<TValue>(
- array: List<TValue>,
- predicate?: string,
- thisArg?: any
- ): TValue[];
-
- /**
- * @see _.takeRightWhile
- */
- takeRightWhile<TWhere, TValue>(
- array: List<TValue>,
- predicate?: TWhere
- ): TValue[];
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.takeRightWhile
- */
- takeRightWhile(
- predicate?: ListIterator<T, boolean>,
- thisArg?: any
- ): LoDashImplicitArrayWrapper<T>;
-
- /**
- * @see _.takeRightWhile
- */
- takeRightWhile(
- predicate?: string,
- thisArg?: any
- ): LoDashImplicitArrayWrapper<T>;
-
- /**
- * @see _.takeRightWhile
- */
- takeRightWhile<TWhere>(
- predicate?: TWhere
- ): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.takeRightWhile
- */
- takeRightWhile<TValue>(
- predicate?: ListIterator<TValue, boolean>,
- thisArg?: any
- ): LoDashImplicitArrayWrapper<TValue>;
-
- /**
- * @see _.takeRightWhile
- */
- takeRightWhile<TValue>(
- predicate?: string,
- thisArg?: any
- ): LoDashImplicitArrayWrapper<TValue>;
-
- /**
- * @see _.takeRightWhile
- */
- takeRightWhile<TWhere, TValue>(
- predicate?: TWhere
- ): LoDashImplicitArrayWrapper<TValue>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.takeRightWhile
- */
- takeRightWhile(
- predicate?: ListIterator<T, boolean>,
- thisArg?: any
- ): LoDashExplicitArrayWrapper<T>;
-
- /**
- * @see _.takeRightWhile
- */
- takeRightWhile(
- predicate?: string,
- thisArg?: any
- ): LoDashExplicitArrayWrapper<T>;
-
- /**
- * @see _.takeRightWhile
- */
- takeRightWhile<TWhere>(
- predicate?: TWhere
- ): LoDashExplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.takeRightWhile
- */
- takeRightWhile<TValue>(
- predicate?: ListIterator<TValue, boolean>,
- thisArg?: any
- ): LoDashExplicitArrayWrapper<TValue>;
-
- /**
- * @see _.takeRightWhile
- */
- takeRightWhile<TValue>(
- predicate?: string,
- thisArg?: any
- ): LoDashExplicitArrayWrapper<TValue>;
-
- /**
- * @see _.takeRightWhile
- */
- takeRightWhile<TWhere, TValue>(
- predicate?: TWhere
- ): LoDashExplicitArrayWrapper<TValue>;
- }
-
- //_.takeWhile
- interface LoDashStatic {
- /**
- * Creates a slice of array with elements taken from the beginning. Elements are taken until predicate returns
- * falsey. The predicate is bound to thisArg and invoked with three arguments: (value, index, array).
- *
- * If a property name is provided for predicate the created _.property style callback returns the property
- * value of the given element.
- *
- * If a value is also provided for thisArg the created _.matchesProperty style callback returns true for
- * elements that have a matching property value, else false.
- *
- * If an object is provided for predicate the created _.matches style callback returns true for elements that
- * have the properties of the given object, else false.
- *
- * @param array The array to query.
- * @param predicate The function invoked per iteration.
- * @param thisArg The this binding of predicate.
- * @return Returns the slice of array.
- */
- takeWhile<TValue>(
- array: List<TValue>,
- predicate?: ListIterator<TValue, boolean>,
- thisArg?: any
- ): TValue[];
-
- /**
- * @see _.takeWhile
- */
- takeWhile<TValue>(
- array: List<TValue>,
- predicate?: string,
- thisArg?: any
- ): TValue[];
-
- /**
- * @see _.takeWhile
- */
- takeWhile<TWhere, TValue>(
- array: List<TValue>,
- predicate?: TWhere
- ): TValue[];
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.takeWhile
- */
- takeWhile(
- predicate?: ListIterator<T, boolean>,
- thisArg?: any
- ): LoDashImplicitArrayWrapper<T>;
-
- /**
- * @see _.takeWhile
- */
- takeWhile(
- predicate?: string,
- thisArg?: any
- ): LoDashImplicitArrayWrapper<T>;
-
- /**
- * @see _.takeWhile
- */
- takeWhile<TWhere>(
- predicate?: TWhere
- ): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.takeWhile
- */
- takeWhile<TValue>(
- predicate?: ListIterator<TValue, boolean>,
- thisArg?: any
- ): LoDashImplicitArrayWrapper<TValue>;
-
- /**
- * @see _.takeWhile
- */
- takeWhile<TValue>(
- predicate?: string,
- thisArg?: any
- ): LoDashImplicitArrayWrapper<TValue>;
-
- /**
- * @see _.takeWhile
- */
- takeWhile<TWhere, TValue>(
- predicate?: TWhere
- ): LoDashImplicitArrayWrapper<TValue>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.takeWhile
- */
- takeWhile(
- predicate?: ListIterator<T, boolean>,
- thisArg?: any
- ): LoDashExplicitArrayWrapper<T>;
-
- /**
- * @see _.takeWhile
- */
- takeWhile(
- predicate?: string,
- thisArg?: any
- ): LoDashExplicitArrayWrapper<T>;
-
- /**
- * @see _.takeWhile
- */
- takeWhile<TWhere>(
- predicate?: TWhere
- ): LoDashExplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.takeWhile
- */
- takeWhile<TValue>(
- predicate?: ListIterator<TValue, boolean>,
- thisArg?: any
- ): LoDashExplicitArrayWrapper<TValue>;
-
- /**
- * @see _.takeWhile
- */
- takeWhile<TValue>(
- predicate?: string,
- thisArg?: any
- ): LoDashExplicitArrayWrapper<TValue>;
-
- /**
- * @see _.takeWhile
- */
- takeWhile<TWhere, TValue>(
- predicate?: TWhere
- ): LoDashExplicitArrayWrapper<TValue>;
- }
-
- //_.union
- interface LoDashStatic {
- /**
- * Creates an array of unique values, in order, from all of the provided arrays using SameValueZero for
- * equality comparisons.
- *
- * @param arrays The arrays to inspect.
- * @return Returns the new array of combined values.
- */
- union<T>(...arrays: List<T>[]): T[];
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.union
- */
- union(...arrays: List<T>[]): LoDashImplicitArrayWrapper<T>;
-
- /**
- * @see _.union
- */
- union<T>(...arrays: List<T>[]): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.union
- */
- union<T>(...arrays: List<T>[]): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.union
- */
- union(...arrays: List<T>[]): LoDashExplicitArrayWrapper<T>;
-
- /**
- * @see _.union
- */
- union<T>(...arrays: List<T>[]): LoDashExplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.union
- */
- union<T>(...arrays: List<T>[]): LoDashExplicitArrayWrapper<T>;
- }
-
- //_.uniq
- interface LoDashStatic {
- /**
- * Creates a duplicate-free version of an array, using
- * [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
- * for equality comparisons, in which only the first occurrence of each element
- * is kept.
- *
- * @static
- * @memberOf _
- * @category Array
- * @param {Array} array The array to inspect.
- * @returns {Array} Returns the new duplicate free array.
- * @example
- *
- * _.uniq([2, 1, 2]);
- * // => [2, 1]
- */
- uniq<T>(
- array: List<T>
- ): T[];
-
- /**
- * @see _.uniq
- */
- uniq<T, TSort>(
- array: List<T>
- ): T[];
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.uniq
- */
- uniq<TSort>(): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.uniq
- */
- uniq<TSort>(): LoDashImplicitArrayWrapper<T>;
-
- /**
- * @see _.uniq
- */
- uniq(): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- uniq<T>(): LoDashImplicitArrayWrapper<T>;
-
- /**
- * @see _.uniq
- */
- uniq<T, TSort>(): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.uniq
- */
- uniq<TSort>(): LoDashExplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.uniq
- */
- uniq<TSort>(): LoDashExplicitArrayWrapper<T>;
-
- /**
- * @see _.uniq
- */
- uniq(): LoDashExplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.uniq
- */
- uniq<T>(): LoDashExplicitArrayWrapper<T>;
-
- /**
- * @see _.uniq
- */
- uniq<T, TSort>(): LoDashExplicitArrayWrapper<T>;
- }
-
- //_.uniqBy
- interface LoDashStatic {
- /**
- * This method is like `_.uniq` except that it accepts `iteratee` which is
- * invoked for each element in `array` to generate the criterion by which
- * uniqueness is computed. The iteratee is invoked with one argument: (value).
- *
- * @static
- * @memberOf _
- * @category Array
- * @param {Array} array The array to inspect.
- * @param {Function|Object|string} [iteratee=_.identity] The iteratee invoked per element.
- * @returns {Array} Returns the new duplicate free array.
- * @example
- *
- * _.uniqBy([2.1, 1.2, 2.3], Math.floor);
- * // => [2.1, 1.2]
- *
- * // using the `_.property` iteratee shorthand
- * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');
- * // => [{ 'x': 1 }, { 'x': 2 }]
- */
- uniqBy<T>(
- array: List<T>,
- iteratee: ListIterator<T, any>
- ): T[];
-
- /**
- * @see _.uniqBy
- */
- uniqBy<T, TSort>(
- array: List<T>,
- iteratee: ListIterator<T, TSort>
- ): T[];
-
- /**
- * @see _.uniqBy
- */
- uniqBy<T>(
- array: List<T>,
- iteratee: string
- ): T[];
-
- /**
- * @see _.uniqBy
- */
- uniqBy<T>(
- array: List<T>,
- iteratee: Object
- ): T[];
-
- /**
- * @see _.uniqBy
- */
- uniqBy<TWhere extends {}, T>(
- array: List<T>,
- iteratee: TWhere
- ): T[];
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.uniqBy
- */
- uniqBy<TSort>(
- iteratee: ListIterator<T, TSort>
- ): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.uniqBy
- */
- uniqBy<TSort>(
- iteratee: ListIterator<T, TSort>
- ): LoDashImplicitArrayWrapper<T>;
-
- /**
- * @see _.uniqBy
- */
- uniqBy(
- iteratee: string
- ): LoDashImplicitArrayWrapper<T>;
-
- /**
- * @see _.uniqBy
- */
- uniqBy<TWhere extends {}>(
- iteratee: TWhere
- ): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.uniqBy
- */
- uniqBy<T>(
- iteratee: ListIterator<T, any>
- ): LoDashImplicitArrayWrapper<T>;
-
- /**
- * @see _.uniqBy
- */
- uniqBy<T, TSort>(
- iteratee: ListIterator<T, TSort>
- ): LoDashImplicitArrayWrapper<T>;
-
- /**
- * @see _.uniqBy
- */
- uniqBy<T>(
- iteratee: string
- ): LoDashImplicitArrayWrapper<T>;
-
- /**
- * @see _.uniqBy
- */
- uniqBy<T>(
- iteratee: Object
- ): LoDashImplicitArrayWrapper<T>;
-
- /**
- * @see _.uniqBy
- */
- uniqBy<TWhere extends {}, T>(
- iteratee: TWhere
- ): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.uniqBy
- */
- uniqBy<TSort>(
- iteratee: ListIterator<T, TSort>
- ): LoDashExplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.uniqBy
- */
- uniqBy<TSort>(
- iteratee: ListIterator<T, TSort>
- ): LoDashExplicitArrayWrapper<T>;
-
- /**
- * @see _.uniqBy
- */
- uniqBy(
- iteratee: string
- ): LoDashExplicitArrayWrapper<T>;
-
- /**
- * @see _.uniqBy
- */
- uniqBy<TWhere extends {}>(
- iteratee: TWhere
- ): LoDashExplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.uniqBy
- */
- uniqBy<T>(
- iteratee: ListIterator<T, any>
- ): LoDashExplicitArrayWrapper<T>;
-
- /**
- * @see _.uniqBy
- */
- uniqBy<T, TSort>(
- iteratee: ListIterator<T, TSort>
- ): LoDashExplicitArrayWrapper<T>;
-
- /**
- * @see _.uniqBy
- */
- uniqBy<T>(
- iteratee: string
- ): LoDashExplicitArrayWrapper<T>;
-
- /**
- * @see _.uniqBy
- */
- uniqBy<T>(
- iteratee: Object
- ): LoDashExplicitArrayWrapper<T>;
-
- /**
- * @see _.uniqBy
- */
- uniqBy<TWhere extends {}, T>(
- iteratee: TWhere
- ): LoDashExplicitArrayWrapper<T>;
- }
-
- //_.sortedUniq
- interface LoDashStatic {
- /**
- * This method is like `_.uniq` except that it's designed and optimized
- * for sorted arrays.
- *
- * @static
- * @memberOf _
- * @category Array
- * @param {Array} array The array to inspect.
- * @returns {Array} Returns the new duplicate free array.
- * @example
- *
- * _.sortedUniq([1, 1, 2]);
- * // => [1, 2]
- */
- sortedUniq<T>(
- array: List<T>
- ): T[];
-
- /**
- * @see _.sortedUniq
- */
- sortedUniq<T, TSort>(
- array: List<T>
- ): T[];
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.sortedUniq
- */
- sortedUniq<TSort>(): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.sortedUniq
- */
- sortedUniq<TSort>(): LoDashImplicitArrayWrapper<T>;
-
- /**
- * @see _.sortedUniq
- */
- sortedUniq(): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- sortedUniq<T>(): LoDashImplicitArrayWrapper<T>;
-
- /**
- * @see _.sortedUniq
- */
- sortedUniq<T, TSort>(): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.sortedUniq
- */
- sortedUniq<TSort>(): LoDashExplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.sortedUniq
- */
- sortedUniq<TSort>(): LoDashExplicitArrayWrapper<T>;
-
- /**
- * @see _.sortedUniq
- */
- sortedUniq(): LoDashExplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.sortedUniq
- */
- sortedUniq<T>(): LoDashExplicitArrayWrapper<T>;
-
- /**
- * @see _.sortedUniq
- */
- sortedUniq<T, TSort>(): LoDashExplicitArrayWrapper<T>;
- }
-
- //_.sortedUniqBy
- interface LoDashStatic {
- /**
- * This method is like `_.uniqBy` except that it's designed and optimized
- * for sorted arrays.
- *
- * @static
- * @memberOf _
- * @category Array
- * @param {Array} array The array to inspect.
- * @param {Function} [iteratee] The iteratee invoked per element.
- * @returns {Array} Returns the new duplicate free array.
- * @example
- *
- * _.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor);
- * // => [1.1, 2.2]
- */
- sortedUniqBy<T>(
- array: List<T>,
- iteratee: ListIterator<T, any>
- ): T[];
-
- /**
- * @see _.sortedUniqBy
- */
- sortedUniqBy<T, TSort>(
- array: List<T>,
- iteratee: ListIterator<T, TSort>
- ): T[];
-
- /**
- * @see _.sortedUniqBy
- */
- sortedUniqBy<T>(
- array: List<T>,
- iteratee: string
- ): T[];
-
- /**
- * @see _.sortedUniqBy
- */
- sortedUniqBy<T>(
- array: List<T>,
- iteratee: Object
- ): T[];
-
- /**
- * @see _.sortedUniqBy
- */
- sortedUniqBy<TWhere extends {}, T>(
- array: List<T>,
- iteratee: TWhere
- ): T[];
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.sortedUniqBy
- */
- sortedUniqBy<TSort>(
- iteratee: ListIterator<T, TSort>
- ): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.sortedUniqBy
- */
- sortedUniqBy<TSort>(
- iteratee: ListIterator<T, TSort>
- ): LoDashImplicitArrayWrapper<T>;
-
- /**
- * @see _.sortedUniqBy
- */
- sortedUniqBy(
- iteratee: string
- ): LoDashImplicitArrayWrapper<T>;
-
- /**
- * @see _.sortedUniqBy
- */
- sortedUniqBy<TWhere extends {}>(
- iteratee: TWhere
- ): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.sortedUniqBy
- */
- sortedUniqBy<T>(
- iteratee: ListIterator<T, any>
- ): LoDashImplicitArrayWrapper<T>;
-
- /**
- * @see _.sortedUniqBy
- */
- sortedUniqBy<T, TSort>(
- iteratee: ListIterator<T, TSort>
- ): LoDashImplicitArrayWrapper<T>;
-
- /**
- * @see _.sortedUniqBy
- */
- sortedUniqBy<T>(
- iteratee: string
- ): LoDashImplicitArrayWrapper<T>;
-
- /**
- * @see _.sortedUniqBy
- */
- sortedUniqBy<T>(
- iteratee: Object
- ): LoDashImplicitArrayWrapper<T>;
-
- /**
- * @see _.sortedUniqBy
- */
- sortedUniqBy<TWhere extends {}, T>(
- iteratee: TWhere
- ): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.sortedUniqBy
- */
- sortedUniqBy<TSort>(
- iteratee: ListIterator<T, TSort>
- ): LoDashExplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.sortedUniqBy
- */
- sortedUniqBy<TSort>(
- iteratee: ListIterator<T, TSort>
- ): LoDashExplicitArrayWrapper<T>;
-
- /**
- * @see _.sortedUniqBy
- */
- sortedUniqBy(
- iteratee: string
- ): LoDashExplicitArrayWrapper<T>;
-
- /**
- * @see _.sortedUniqBy
- */
- sortedUniqBy<TWhere extends {}>(
- iteratee: TWhere
- ): LoDashExplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.sortedUniqBy
- */
- sortedUniqBy<T>(
- iteratee: ListIterator<T, any>
- ): LoDashExplicitArrayWrapper<T>;
-
- /**
- * @see _.sortedUniqBy
- */
- sortedUniqBy<T, TSort>(
- iteratee: ListIterator<T, TSort>
- ): LoDashExplicitArrayWrapper<T>;
-
- /**
- * @see _.sortedUniqBy
- */
- sortedUniqBy<T>(
- iteratee: string
- ): LoDashExplicitArrayWrapper<T>;
-
- /**
- * @see _.sortedUniqBy
- */
- sortedUniqBy<T>(
- iteratee: Object
- ): LoDashExplicitArrayWrapper<T>;
-
- /**
- * @see _.sortedUniqBy
- */
- sortedUniqBy<TWhere extends {}, T>(
- iteratee: TWhere
- ): LoDashExplicitArrayWrapper<T>;
- }
-
- //_.unionBy DUMMY
- interface LoDashStatic {
- /**
- * This method is like `_.union` except that it accepts `iteratee` which is
- * invoked for each element of each `arrays` to generate the criterion by which
- * uniqueness is computed. The iteratee is invoked with one argument: (value).
- *
- * @static
- * @memberOf _
- * @category Array
- * @param {...Array} [arrays] The arrays to inspect.
- * @param {Function|Object|string} [iteratee=_.identity] The iteratee invoked per element.
- * @returns {Array} Returns the new array of combined values.
- * @example
- *
- * _.unionBy([2.1, 1.2], [4.3, 2.4], Math.floor);
- * // => [2.1, 1.2, 4.3]
- *
- * // using the `_.property` iteratee shorthand
- * _.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');
- * // => [{ 'x': 1 }, { 'x': 2 }]
- */
- unionBy(
- array: any[]|List<any>,
- ...values: any[]
- ): any[];
- }
-
- //_.unionWith DUMMY
- interface LoDashStatic {
- /**
- * This method is like `_.union` except that it accepts `comparator` which
- * is invoked to compare elements of `arrays`. The comparator is invoked
- * with two arguments: (arrVal, othVal).
- *
- * @static
- * @memberOf _
- * @category Array
- * @param {...Array} [arrays] The arrays to inspect.
- * @param {Function} [comparator] The comparator invoked per element.
- * @returns {Array} Returns the new array of combined values.
- * @example
- *
- * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];
- * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];
- *
- * _.unionWith(objects, others, _.isEqual);
- * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]
- */
- unionWith(
- array: any[]|List<any>,
- ...values: any[]
- ): any[];
- }
-
- //_.uniqWith DUMMY
- interface LoDashStatic {
- /**
- * This method is like `_.uniq` except that it accepts `comparator` which
- * is invoked to compare elements of `array`. The comparator is invoked with
- * two arguments: (arrVal, othVal).
- *
- * @static
- * @memberOf _
- * @category Array
- * @param {Array} array The array to inspect.
- * @param {Function} [comparator] The comparator invoked per element.
- * @returns {Array} Returns the new duplicate free array.
- * @example
- *
- * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }];
- *
- * _.uniqWith(objects, _.isEqual);
- * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]
- */
- uniqWith(
- array: any[]|List<any>,
- ...values: any[]
- ): any[];
- }
-
- //_.unzip
- interface LoDashStatic {
- /**
- * This method is like _.zip except that it accepts an array of grouped elements and creates an array
- * regrouping the elements to their pre-zip configuration.
- *
- * @param array The array of grouped elements to process.
- * @return Returns the new array of regrouped elements.
- */
- unzip<T>(array: List<List<T>>): T[][];
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.unzip
- */
- unzip<T>(): LoDashImplicitArrayWrapper<T[]>;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.unzip
- */
- unzip<T>(): LoDashImplicitArrayWrapper<T[]>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.unzip
- */
- unzip<T>(): LoDashExplicitArrayWrapper<T[]>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.unzip
- */
- unzip<T>(): LoDashExplicitArrayWrapper<T[]>;
- }
-
- //_.unzipWith
- interface LoDashStatic {
- /**
- * This method is like _.unzip except that it accepts an iteratee to specify how regrouped values should be
- * combined. The iteratee is bound to thisArg and invoked with four arguments: (accumulator, value, index,
- * group).
- *
- * @param array The array of grouped elements to process.
- * @param iteratee The function to combine regrouped values.
- * @param thisArg The this binding of iteratee.
- * @return Returns the new array of regrouped elements.
- */
- unzipWith<TArray, TResult>(
- array: List<List<TArray>>,
- iteratee?: MemoIterator<TArray, TResult>,
- thisArg?: any
- ): TResult[];
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.unzipWith
- */
- unzipWith<TArr, TResult>(
- iteratee?: MemoIterator<TArr, TResult>,
- thisArg?: any
- ): LoDashImplicitArrayWrapper<TResult>;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.unzipWith
- */
- unzipWith<TArr, TResult>(
- iteratee?: MemoIterator<TArr, TResult>,
- thisArg?: any
- ): LoDashImplicitArrayWrapper<TResult>;
- }
-
- //_.without
- interface LoDashStatic {
- /**
- * Creates an array excluding all provided values using SameValueZero for equality comparisons.
- *
- * @param array The array to filter.
- * @param values The values to exclude.
- * @return Returns the new array of filtered values.
- */
- without<T>(
- array: List<T>,
- ...values: T[]
- ): T[];
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.without
- */
- without(...values: T[]): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.without
- */
- without<T>(...values: T[]): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.without
- */
- without(...values: T[]): LoDashExplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.without
- */
- without<T>(...values: T[]): LoDashExplicitArrayWrapper<T>;
- }
-
- //_.xor
- interface LoDashStatic {
- /**
- * Creates an array of unique values that is the symmetric difference of the provided arrays.
- *
- * @param arrays The arrays to inspect.
- * @return Returns the new array of values.
- */
- xor<T>(...arrays: List<T>[]): T[];
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.xor
- */
- xor(...arrays: List<T>[]): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.xor
- */
- xor<T>(...arrays: List<T>[]): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.xor
- */
- xor(...arrays: List<T>[]): LoDashExplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.xor
- */
- xor<T>(...arrays: List<T>[]): LoDashExplicitArrayWrapper<T>;
- }
-
- //_.xorBy DUMMY
- interface LoDashStatic {
- /**
- * This method is like `_.xor` except that it accepts `iteratee` which is
- * invoked for each element of each `arrays` to generate the criterion by which
- * uniqueness is computed. The iteratee is invoked with one argument: (value).
- *
- * @static
- * @memberOf _
- * @category Array
- * @param {...Array} [arrays] The arrays to inspect.
- * @param {Function|Object|string} [iteratee=_.identity] The iteratee invoked per element.
- * @returns {Array} Returns the new array of values.
- * @example
- *
- * _.xorBy([2.1, 1.2], [4.3, 2.4], Math.floor);
- * // => [1.2, 4.3]
- *
- * // using the `_.property` iteratee shorthand
- * _.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');
- * // => [{ 'x': 2 }]
- */
- xorBy(
- array: any[]|List<any>,
- ...values: any[]
- ): any[];
- }
-
- //_.xorWith DUMMY
- interface LoDashStatic {
- /**
- * This method is like `_.xor` except that it accepts `comparator` which is
- * invoked to compare elements of `arrays`. The comparator is invoked with
- * two arguments: (arrVal, othVal).
- *
- * @static
- * @memberOf _
- * @category Array
- * @param {...Array} [arrays] The arrays to inspect.
- * @param {Function} [comparator] The comparator invoked per element.
- * @returns {Array} Returns the new array of values.
- * @example
- *
- * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];
- * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];
- *
- * _.xorWith(objects, others, _.isEqual);
- * // => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]
- */
- xorWith(
- array: any[]|List<any>,
- ...values: any[]
- ): any[];
- }
-
- //_.zip
- interface LoDashStatic {
- /**
- * Creates an array of grouped elements, the first of which contains the first elements of the given arrays,
- * the second of which contains the second elements of the given arrays, and so on.
- *
- * @param arrays The arrays to process.
- * @return Returns the new array of grouped elements.
- */
- zip<T>(...arrays: List<T>[]): T[][];
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.zip
- */
- zip<T>(...arrays: List<T>[]): _.LoDashImplicitArrayWrapper<T[]>;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.zip
- */
- zip<T>(...arrays: List<T>[]): _.LoDashImplicitArrayWrapper<T[]>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.zip
- */
- zip<T>(...arrays: List<T>[]): _.LoDashExplicitArrayWrapper<T[]>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.zip
- */
- zip<T>(...arrays: List<T>[]): _.LoDashExplicitArrayWrapper<T[]>;
- }
-
- //_.zipObject
- interface LoDashStatic {
- /**
- * The inverse of _.pairs; this method returns an object composed from arrays of property names and values.
- * Provide either a single two dimensional array, e.g. [[key1, value1], [key2, value2]] or two arrays, one of
- * property names and one of corresponding values.
- *
- * @param props The property names.
- * @param values The property values.
- * @return Returns the new object.
- */
- zipObject<TValues, TResult extends {}>(
- props: List<StringRepresentable>|List<List<any>>,
- values?: List<TValues>
- ): TResult;
-
- /**
- * @see _.zipObject
- */
- zipObject<TResult extends {}>(
- props: List<StringRepresentable>|List<List<any>>,
- values?: List<any>
- ): TResult;
-
- /**
- * @see _.zipObject
- */
- zipObject(
- props: List<StringRepresentable>|List<List<any>>,
- values?: List<any>
- ): _.Dictionary<any>;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.zipObject
- */
- zipObject<TValues, TResult extends {}>(
- values?: List<TValues>
- ): _.LoDashImplicitObjectWrapper<TResult>;
-
- /**
- * @see _.zipObject
- */
- zipObject<TResult extends {}>(
- values?: List<any>
- ): _.LoDashImplicitObjectWrapper<TResult>;
-
- /**
- * @see _.zipObject
- */
- zipObject(
- values?: List<any>
- ): _.LoDashImplicitObjectWrapper<_.Dictionary<any>>;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.zipObject
- */
- zipObject<TValues, TResult extends {}>(
- values?: List<TValues>
- ): _.LoDashImplicitObjectWrapper<TResult>;
-
- /**
- * @see _.zipObject
- */
- zipObject<TResult extends {}>(
- values?: List<any>
- ): _.LoDashImplicitObjectWrapper<TResult>;
-
- /**
- * @see _.zipObject
- */
- zipObject(
- values?: List<any>
- ): _.LoDashImplicitObjectWrapper<_.Dictionary<any>>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.zipObject
- */
- zipObject<TValues, TResult extends {}>(
- values?: List<TValues>
- ): _.LoDashExplicitObjectWrapper<TResult>;
-
- /**
- * @see _.zipObject
- */
- zipObject<TResult extends {}>(
- values?: List<any>
- ): _.LoDashExplicitObjectWrapper<TResult>;
-
- /**
- * @see _.zipObject
- */
- zipObject(
- values?: List<any>
- ): _.LoDashExplicitObjectWrapper<_.Dictionary<any>>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.zipObject
- */
- zipObject<TValues, TResult extends {}>(
- values?: List<TValues>
- ): _.LoDashExplicitObjectWrapper<TResult>;
-
- /**
- * @see _.zipObject
- */
- zipObject<TResult extends {}>(
- values?: List<any>
- ): _.LoDashExplicitObjectWrapper<TResult>;
-
- /**
- * @see _.zipObject
- */
- zipObject(
- values?: List<any>
- ): _.LoDashExplicitObjectWrapper<_.Dictionary<any>>;
- }
-
- //_.zipWith
- interface LoDashStatic {
- /**
- * This method is like _.zip except that it accepts an iteratee to specify how grouped values should be
- * combined. The iteratee is bound to thisArg and invoked with four arguments: (accumulator, value, index,
- * group).
- * @param {...Array} [arrays] The arrays to process.
- * @param {Function} [iteratee] The function to combine grouped values.
- * @param {*} [thisArg] The `this` binding of `iteratee`.
- * @return Returns the new array of grouped elements.
- */
- zipWith<TResult>(...args: any[]): TResult[];
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.zipWith
- */
- zipWith<TResult>(...args: any[]): LoDashImplicitArrayWrapper<TResult>;
- }
-
- /*********
- * Chain *
- *********/
-
- //_.chain
- interface LoDashStatic {
- /**
- * Creates a lodash object that wraps value with explicit method chaining enabled.
- *
- * @param value The value to wrap.
- * @return Returns the new lodash wrapper instance.
- */
- chain(value: number): LoDashExplicitWrapper<number>;
- chain(value: string): LoDashExplicitWrapper<string>;
- chain(value: boolean): LoDashExplicitWrapper<boolean>;
- chain<T>(value: T[]): LoDashExplicitArrayWrapper<T>;
- chain<T extends {}>(value: T): LoDashExplicitObjectWrapper<T>;
- chain(value: any): LoDashExplicitWrapper<any>;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.chain
- */
- chain(): LoDashExplicitWrapper<T>;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.chain
- */
- chain(): LoDashExplicitArrayWrapper<T>;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.chain
- */
- chain(): LoDashExplicitObjectWrapper<T>;
- }
-
- interface LoDashExplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.chain
- */
- chain(): TWrapper;
- }
-
- //_.tap
- interface LoDashStatic {
- /**
- * This method invokes interceptor and returns value. The interceptor is bound to thisArg and invoked with one
- * argument; (value). The purpose of this method is to "tap into" a method chain in order to perform operations
- * on intermediate results within the chain.
- *
- * @param value The value to provide to interceptor.
- * @param interceptor The function to invoke.
- * @parem thisArg The this binding of interceptor.
- * @return Returns value.
- **/
- tap<T>(
- value: T,
- interceptor: (value: T) => void,
- thisArg?: any
- ): T;
- }
-
- interface LoDashImplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.tap
- */
- tap(
- interceptor: (value: T) => void,
- thisArg?: any
- ): TWrapper;
- }
-
- interface LoDashExplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.tap
- */
- tap(
- interceptor: (value: T) => void,
- thisArg?: any
- ): TWrapper;
- }
-
- //_.thru
- interface LoDashStatic {
- /**
- * This method is like _.tap except that it returns the result of interceptor.
- *
- * @param value The value to provide to interceptor.
- * @param interceptor The function to invoke.
- * @param thisArg The this binding of interceptor.
- * @return Returns the result of interceptor.
- */
- thru<T, TResult>(
- value: T,
- interceptor: (value: T) => TResult,
- thisArg?: any
- ): TResult;
- }
-
- interface LoDashImplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.thru
- */
- thru<TResult extends number>(
- interceptor: (value: T) => TResult,
- thisArg?: any): LoDashImplicitWrapper<TResult>;
-
- /**
- * @see _.thru
- */
- thru<TResult extends string>(
- interceptor: (value: T) => TResult,
- thisArg?: any): LoDashImplicitWrapper<TResult>;
-
- /**
- * @see _.thru
- */
- thru<TResult extends boolean>(
- interceptor: (value: T) => TResult,
- thisArg?: any): LoDashImplicitWrapper<TResult>;
-
- /**
- * @see _.thru
- */
- thru<TResult extends {}>(
- interceptor: (value: T) => TResult,
- thisArg?: any): LoDashImplicitObjectWrapper<TResult>;
-
- /**
- * @see _.thru
- */
- thru<TResult>(
- interceptor: (value: T) => TResult[],
- thisArg?: any): LoDashImplicitArrayWrapper<TResult>;
- }
-
- interface LoDashExplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.thru
- */
- thru<TResult extends number>(
- interceptor: (value: T) => TResult,
- thisArg?: any
- ): LoDashExplicitWrapper<TResult>;
-
- /**
- * @see _.thru
- */
- thru<TResult extends string>(
- interceptor: (value: T) => TResult,
- thisArg?: any
- ): LoDashExplicitWrapper<TResult>;
-
- /**
- * @see _.thru
- */
- thru<TResult extends boolean>(
- interceptor: (value: T) => TResult,
- thisArg?: any
- ): LoDashExplicitWrapper<TResult>;
-
- /**
- * @see _.thru
- */
- thru<TResult extends {}>(
- interceptor: (value: T) => TResult,
- thisArg?: any
- ): LoDashExplicitObjectWrapper<TResult>;
-
- /**
- * @see _.thru
- */
- thru<TResult>(
- interceptor: (value: T) => TResult[],
- thisArg?: any
- ): LoDashExplicitArrayWrapper<TResult>;
- }
-
- //_.prototype.commit
- interface LoDashImplicitWrapperBase<T, TWrapper> {
- /**
- * Executes the chained sequence and returns the wrapped result.
- *
- * @return Returns the new lodash wrapper instance.
- */
- commit(): TWrapper;
- }
-
- interface LoDashExplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.commit
- */
- commit(): TWrapper;
- }
-
- //_.prototype.concat
- interface LoDashImplicitWrapperBase<T, TWrapper> {
- /**
- * Creates a new array joining a wrapped array with any additional arrays and/or values.
- *
- * @param items
- * @return Returns the new concatenated array.
- */
- concat<TItem>(...items: Array<TItem|Array<TItem>>): LoDashImplicitArrayWrapper<TItem>;
-
- /**
- * @see _.concat
- */
- concat(...items: Array<T|Array<T>>): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.concat
- */
- concat<TItem>(...items: Array<TItem|Array<TItem>>): LoDashExplicitArrayWrapper<TItem>;
-
- /**
- * @see _.concat
- */
- concat(...items: Array<T|Array<T>>): LoDashExplicitArrayWrapper<T>;
- }
-
- //_.prototype.plant
- interface LoDashImplicitWrapperBase<T, TWrapper> {
- /**
- * Creates a clone of the chained sequence planting value as the wrapped value.
- * @param value The value to plant as the wrapped value.
- * @return Returns the new lodash wrapper instance.
- */
- plant(value: number): LoDashImplicitWrapper<number>;
-
- /**
- * @see _.plant
- */
- plant(value: string): LoDashImplicitStringWrapper;
-
- /**
- * @see _.plant
- */
- plant(value: boolean): LoDashImplicitWrapper<boolean>;
-
- /**
- * @see _.plant
- */
- plant(value: number[]): LoDashImplicitNumberArrayWrapper;
-
- /**
- * @see _.plant
- */
- plant<T>(value: T[]): LoDashImplicitArrayWrapper<T>;
-
- /**
- * @see _.plant
- */
- plant<T extends {}>(value: T): LoDashImplicitObjectWrapper<T>;
-
- /**
- * @see _.plant
- */
- plant(value: any): LoDashImplicitWrapper<any>;
- }
-
- interface LoDashExplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.plant
- */
- plant(value: number): LoDashExplicitWrapper<number>;
-
- /**
- * @see _.plant
- */
- plant(value: string): LoDashExplicitStringWrapper;
-
- /**
- * @see _.plant
- */
- plant(value: boolean): LoDashExplicitWrapper<boolean>;
-
- /**
- * @see _.plant
- */
- plant(value: number[]): LoDashExplicitNumberArrayWrapper;
-
- /**
- * @see _.plant
- */
- plant<T>(value: T[]): LoDashExplicitArrayWrapper<T>;
-
- /**
- * @see _.plant
- */
- plant<T extends {}>(value: T): LoDashExplicitObjectWrapper<T>;
-
- /**
- * @see _.plant
- */
- plant(value: any): LoDashExplicitWrapper<any>;
- }
-
- //_.prototype.reverse
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * Reverses the wrapped array so the first element becomes the last, the second element becomes the second to
- * last, and so on.
- *
- * Note: This method mutates the wrapped array.
- *
- * @return Returns the new reversed lodash wrapper instance.
- */
- reverse(): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.reverse
- */
- reverse(): LoDashExplicitArrayWrapper<T>;
- }
-
- //_.prototype.toJSON
- interface LoDashWrapperBase<T, TWrapper> {
- /**
- * @see _.value
- */
- toJSON(): T;
- }
-
- //_.prototype.toString
- interface LoDashWrapperBase<T, TWrapper> {
- /**
- * Produces the result of coercing the unwrapped value to a string.
- *
- * @return Returns the coerced string value.
- */
- toString(): string;
- }
-
- //_.prototype.value
- interface LoDashWrapperBase<T, TWrapper> {
- /**
- * Executes the chained sequence to extract the unwrapped value.
- *
- * @alias _.toJSON, _.valueOf
- *
- * @return Returns the resolved unwrapped value.
- */
- value(): T;
- }
-
- //_.valueOf
- interface LoDashWrapperBase<T, TWrapper> {
- /**
- * @see _.value
- */
- valueOf(): T;
- }
-
- /**************
- * Collection *
- **************/
-
- //_.at
- interface LoDashStatic {
- /**
- * Creates an array of elements corresponding to the given keys, or indexes, of collection. Keys may be
- * specified as individual arguments or as arrays of keys.
- *
- * @param collection The collection to iterate over.
- * @param props The property names or indexes of elements to pick, specified individually or in arrays.
- * @return Returns the new array of picked elements.
- */
- at<T>(
- collection: List<T>|Dictionary<T>,
- ...props: (number|string|(number|string)[])[]
- ): T[];
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.at
- */
- at(...props: (number|string|(number|string)[])[]): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.at
- */
- at<T>(...props: (number|string|(number|string)[])[]): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.at
- */
- at(...props: (number|string|(number|string)[])[]): LoDashExplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.at
- */
- at<T>(...props: (number|string|(number|string)[])[]): LoDashExplicitArrayWrapper<T>;
- }
-
- //_.countBy
- interface LoDashStatic {
- /**
- * Creates an object composed of keys generated from the results of running each element of collection through
- * iteratee. The corresponding value of each key is the number of times the key was returned by iteratee. The
- * iteratee is bound to thisArg and invoked with three arguments:
- * (value, index|key, collection).
- *
- * If a property name is provided for iteratee the created _.property style callback returns the property
- * value of the given element.
- *
- * If a value is also provided for thisArg the created _.matchesProperty style callback returns true for
- * elements that have a matching property value, else false.
- *
- * If an object is provided for iteratee the created _.matches style callback returns true for elements that
- * have the properties of the given object, else false.
- *
- * @param collection The collection to iterate over.
- * @param iteratee The function invoked per iteration.
- * @param thisArg The this binding of iteratee.
- * @return Returns the composed aggregate object.
- */
- countBy<T>(
- collection: List<T>,
- iteratee?: ListIterator<T, any>,
- thisArg?: any
- ): Dictionary<number>;
-
- /**
- * @see _.countBy
- */
- countBy<T>(
- collection: Dictionary<T>,
- iteratee?: DictionaryIterator<T, any>,
- thisArg?: any
- ): Dictionary<number>;
-
- /**
- * @see _.countBy
- */
- countBy<T>(
- collection: NumericDictionary<T>,
- iteratee?: NumericDictionaryIterator<T, any>,
- thisArg?: any
- ): Dictionary<number>;
-
- /**
- * @see _.countBy
- */
- countBy<T>(
- collection: List<T>|Dictionary<T>|NumericDictionary<T>,
- iteratee?: string,
- thisArg?: any
- ): Dictionary<number>;
-
- /**
- * @see _.countBy
- */
- countBy<W, T>(
- collection: List<T>|Dictionary<T>|NumericDictionary<T>,
- iteratee?: W
- ): Dictionary<number>;
-
- /**
- * @see _.countBy
- */
- countBy<T>(
- collection: List<T>|Dictionary<T>|NumericDictionary<T>,
- iteratee?: Object
- ): Dictionary<number>;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.countBy
- */
- countBy(
- iteratee?: ListIterator<T, any>,
- thisArg?: any
- ): LoDashImplicitObjectWrapper<Dictionary<number>>;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.countBy
- */
- countBy(
- iteratee?: ListIterator<T, any>,
- thisArg?: any
- ): LoDashImplicitObjectWrapper<Dictionary<number>>;
-
- /**
- * @see _.countBy
- */
- countBy(
- iteratee?: string,
- thisArg?: any
- ): LoDashImplicitObjectWrapper<Dictionary<number>>;
-
- /**
- * @see _.countBy
- */
- countBy<W>(
- iteratee?: W
- ): LoDashImplicitObjectWrapper<Dictionary<number>>;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.countBy
- */
- countBy<T>(
- iteratee?: ListIterator<T, any>|DictionaryIterator<T, any>|NumericDictionaryIterator<T, any>,
- thisArg?: any
- ): LoDashImplicitObjectWrapper<Dictionary<number>>;
-
- /**
- * @see _.countBy
- */
- countBy(
- iteratee?: string,
- thisArg?: any
- ): LoDashImplicitObjectWrapper<Dictionary<number>>;
-
- /**
- * @see _.countBy
- */
- countBy<W>(
- iteratee?: W
- ): LoDashImplicitObjectWrapper<Dictionary<number>>;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.countBy
- */
- countBy(
- iteratee?: ListIterator<T, any>,
- thisArg?: any
- ): LoDashExplicitObjectWrapper<Dictionary<number>>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.countBy
- */
- countBy(
- iteratee?: ListIterator<T, any>,
- thisArg?: any
- ): LoDashExplicitObjectWrapper<Dictionary<number>>;
-
- /**
- * @see _.countBy
- */
- countBy(
- iteratee?: string,
- thisArg?: any
- ): LoDashExplicitObjectWrapper<Dictionary<number>>;
-
- /**
- * @see _.countBy
- */
- countBy<W>(
- iteratee?: W
- ): LoDashExplicitObjectWrapper<Dictionary<number>>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.countBy
- */
- countBy<T>(
- iteratee?: ListIterator<T, any>|DictionaryIterator<T, any>|NumericDictionaryIterator<T, any>,
- thisArg?: any
- ): LoDashExplicitObjectWrapper<Dictionary<number>>;
-
- /**
- * @see _.countBy
- */
- countBy(
- iteratee?: string,
- thisArg?: any
- ): LoDashExplicitObjectWrapper<Dictionary<number>>;
-
- /**
- * @see _.countBy
- */
- countBy<W>(
- iteratee?: W
- ): LoDashExplicitObjectWrapper<Dictionary<number>>;
- }
-
- //_.each
- interface LoDashStatic {
- /**
- * @see _.forEach
- */
- each<T>(
- collection: T[],
- iteratee?: ListIterator<T, any>,
- thisArg?: any
- ): T[];
-
- /**
- * @see _.forEach
- */
- each<T>(
- collection: List<T>,
- iteratee?: ListIterator<T, any>,
- thisArg?: any
- ): List<T>;
-
- /**
- * @see _.forEach
- */
- each<T>(
- collection: Dictionary<T>,
- iteratee?: DictionaryIterator<T, any>,
- thisArg?: any
- ): Dictionary<T>;
-
- /**
- * @see _.forEach
- */
- each<T extends {}>(
- collection: T,
- iteratee?: ObjectIterator<any, any>,
- thisArgs?: any
- ): T;
-
- /**
- * @see _.forEach
- */
- each<T extends {}, TValue>(
- collection: T,
- iteratee?: ObjectIterator<TValue, any>,
- thisArgs?: any
- ): T;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.forEach
- */
- each(
- iteratee: ListIterator<string, any>,
- thisArg?: any
- ): LoDashImplicitWrapper<string>;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.forEach
- */
- each(
- iteratee: ListIterator<T, any>,
- thisArg?: any
- ): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.forEach
- */
- each<TValue>(
- iteratee?: ListIterator<TValue, any>|DictionaryIterator<TValue, any>,
- thisArg?: any
- ): LoDashImplicitObjectWrapper<T>;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.forEach
- */
- each(
- iteratee: ListIterator<string, any>,
- thisArg?: any
- ): LoDashExplicitWrapper<string>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.forEach
- */
- each(
- iteratee: ListIterator<T, any>,
- thisArg?: any
- ): LoDashExplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.forEach
- */
- each<TValue>(
- iteratee?: ListIterator<TValue, any>|DictionaryIterator<TValue, any>,
- thisArg?: any
- ): LoDashExplicitObjectWrapper<T>;
- }
-
- //_.eachRight
- interface LoDashStatic {
- /**
- * @see _.forEachRight
- */
- eachRight<T>(
- collection: T[],
- iteratee?: ListIterator<T, any>,
- thisArg?: any
- ): T[];
-
- /**
- * @see _.forEachRight
- */
- eachRight<T>(
- collection: List<T>,
- iteratee?: ListIterator<T, any>,
- thisArg?: any
- ): List<T>;
-
- /**
- * @see _.forEachRight
- */
- eachRight<T>(
- collection: Dictionary<T>,
- iteratee?: DictionaryIterator<T, any>,
- thisArg?: any
- ): Dictionary<T>;
-
- /**
- * @see _.forEachRight
- */
- eachRight<T extends {}>(
- collection: T,
- iteratee?: ObjectIterator<any, any>,
- thisArgs?: any
- ): T;
-
- /**
- * @see _.forEachRight
- */
- eachRight<T extends {}, TValue>(
- collection: T,
- iteratee?: ObjectIterator<TValue, any>,
- thisArgs?: any
- ): T;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.forEachRight
- */
- eachRight(
- iteratee: ListIterator<string, any>,
- thisArg?: any
- ): LoDashImplicitWrapper<string>;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.forEachRight
- */
- eachRight(
- iteratee: ListIterator<T, any>,
- thisArg?: any
- ): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.forEachRight
- */
- eachRight<TValue>(
- iteratee?: ListIterator<TValue, any>|DictionaryIterator<TValue, any>,
- thisArg?: any
- ): LoDashImplicitObjectWrapper<T>;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.forEachRight
- */
- eachRight(
- iteratee: ListIterator<string, any>,
- thisArg?: any
- ): LoDashExplicitWrapper<string>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.forEachRight
- */
- eachRight(
- iteratee: ListIterator<T, any>,
- thisArg?: any
- ): LoDashExplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.forEachRight
- */
- eachRight<TValue>(
- iteratee?: ListIterator<TValue, any>|DictionaryIterator<TValue, any>,
- thisArg?: any
- ): LoDashExplicitObjectWrapper<T>;
- }
-
- //_.every
- interface LoDashStatic {
- /**
- * Checks if predicate returns truthy for all elements of collection. The predicate is bound to thisArg and
- * invoked with three arguments: (value, index|key, collection).
- *
- * If a property name is provided for predicate the created _.property style callback returns the property
- * value of the given element.
- *
- * If a value is also provided for thisArg the created _.matchesProperty style callback returns true for
- * elements that have a matching property value, else false.
- *
- * If an object is provided for predicate the created _.matches style callback returns true for elements that
- * have the properties of the given object, else false.
- *
- * @param collection The collection to iterate over.
- * @param predicate The function invoked per iteration.
- * @param thisArg The this binding of predicate.
- * @return Returns true if all elements pass the predicate check, else false.
- */
- every<T>(
- collection: List<T>,
- predicate?: ListIterator<T, boolean>,
- thisArg?: any
- ): boolean;
-
- /**
- * @see _.every
- */
- every<T>(
- collection: Dictionary<T>,
- predicate?: DictionaryIterator<T, boolean>,
- thisArg?: any
- ): boolean;
-
- /**
- * @see _.every
- */
- every<T>(
- collection: List<T>|Dictionary<T>,
- predicate?: string,
- thisArg?: any
- ): boolean;
-
- /**
- * @see _.every
- */
- every<TObject extends {}, T>(
- collection: List<T>|Dictionary<T>,
- predicate?: TObject
- ): boolean;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.every
- */
- every(
- predicate?: ListIterator<T, boolean>,
- thisArg?: any
- ): boolean;
-
- /**
- * @see _.every
- */
- every(
- predicate?: string,
- thisArg?: any
- ): boolean;
-
- /**
- * @see _.every
- */
- every<TObject extends {}>(
- predicate?: TObject
- ): boolean;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.every
- */
- every<TResult>(
- predicate?: ListIterator<TResult, boolean>|DictionaryIterator<TResult, boolean>,
- thisArg?: any
- ): boolean;
-
- /**
- * @see _.every
- */
- every(
- predicate?: string,
- thisArg?: any
- ): boolean;
-
- /**
- * @see _.every
- */
- every<TObject extends {}>(
- predicate?: TObject
- ): boolean;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.every
- */
- every(
- predicate?: ListIterator<T, boolean>,
- thisArg?: any
- ): LoDashExplicitWrapper<boolean>;
-
- /**
- * @see _.every
- */
- every(
- predicate?: string,
- thisArg?: any
- ): LoDashExplicitWrapper<boolean>;
-
- /**
- * @see _.every
- */
- every<TObject extends {}>(
- predicate?: TObject
- ): LoDashExplicitWrapper<boolean>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.every
- */
- every<TResult>(
- predicate?: ListIterator<TResult, boolean>|DictionaryIterator<TResult, boolean>,
- thisArg?: any
- ): LoDashExplicitWrapper<boolean>;
-
- /**
- * @see _.every
- */
- every(
- predicate?: string,
- thisArg?: any
- ): LoDashExplicitWrapper<boolean>;
-
- /**
- * @see _.every
- */
- every<TObject extends {}>(
- predicate?: TObject
- ): LoDashExplicitWrapper<boolean>;
- }
-
- //_.filter
- interface LoDashStatic {
- /**
- * Iterates over elements of collection, returning an array of all elements predicate returns truthy for. The
- * predicate is bound to thisArg and invoked with three arguments: (value, index|key, collection).
- *
- * If a property name is provided for predicate the created _.property style callback returns the property
- * value of the given element.
- *
- * If a value is also provided for thisArg the created _.matchesProperty style callback returns true for
- * elements that have a matching property value, else false.
- *
- * If an object is provided for predicate the created _.matches style callback returns true for elements that
- * have the properties of the given object, else false.
- *
- * @param collection The collection to iterate over.
- * @param predicate The function invoked per iteration.
- * @param thisArg The this binding of predicate.
- * @return Returns the new filtered array.
- */
- filter<T>(
- collection: List<T>,
- predicate?: ListIterator<T, boolean>,
- thisArg?: any
- ): T[];
-
- /**
- * @see _.filter
- */
- filter<T>(
- collection: Dictionary<T>,
- predicate?: DictionaryIterator<T, boolean>,
- thisArg?: any
- ): T[];
-
- /**
- * @see _.filter
- */
- filter(
- collection: string,
- predicate?: StringIterator<boolean>,
- thisArg?: any
- ): string[];
-
- /**
- * @see _.filter
- */
- filter<T>(
- collection: List<T>|Dictionary<T>,
- predicate: string,
- thisArg?: any
- ): T[];
-
- /**
- * @see _.filter
- */
- filter<W extends {}, T>(
- collection: List<T>|Dictionary<T>,
- predicate: W
- ): T[];
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.filter
- */
- filter(
- predicate?: StringIterator<boolean>,
- thisArg?: any
- ): LoDashImplicitArrayWrapper<string>;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.filter
- */
- filter(
- predicate: ListIterator<T, boolean>,
- thisArg?: any
- ): LoDashImplicitArrayWrapper<T>;
-
- /**
- * @see _.filter
- */
- filter(
- predicate: string,
- thisArg?: any
- ): LoDashImplicitArrayWrapper<T>;
-
- /**
- * @see _.filter
- */
- filter<W>(predicate: W): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.filter
- */
- filter<T>(
- predicate: ListIterator<T, boolean>|DictionaryIterator<T, boolean>,
- thisArg?: any
- ): LoDashImplicitArrayWrapper<T>;
-
- /**
- * @see _.filter
- */
- filter<T>(
- predicate: string,
- thisArg?: any
- ): LoDashImplicitArrayWrapper<T>;
-
- /**
- * @see _.filter
- */
- filter<W, T>(predicate: W): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.filter
- */
- filter(
- predicate?: StringIterator<boolean>,
- thisArg?: any
- ): LoDashExplicitArrayWrapper<string>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.filter
- */
- filter(
- predicate: ListIterator<T, boolean>,
- thisArg?: any
- ): LoDashExplicitArrayWrapper<T>;
-
- /**
- * @see _.filter
- */
- filter(
- predicate: string,
- thisArg?: any
- ): LoDashExplicitArrayWrapper<T>;
-
- /**
- * @see _.filter
- */
- filter<W>(predicate: W): LoDashExplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.filter
- */
- filter<T>(
- predicate: ListIterator<T, boolean>|DictionaryIterator<T, boolean>,
- thisArg?: any
- ): LoDashExplicitArrayWrapper<T>;
-
- /**
- * @see _.filter
- */
- filter<T>(
- predicate: string,
- thisArg?: any
- ): LoDashExplicitArrayWrapper<T>;
-
- /**
- * @see _.filter
- */
- filter<W, T>(predicate: W): LoDashExplicitArrayWrapper<T>;
- }
-
- //_.find
- interface LoDashStatic {
- /**
- * Iterates over elements of collection, returning the first element predicate returns truthy for.
- * The predicate is bound to thisArg and invoked with three arguments: (value, index|key, collection).
- *
- * If a property name is provided for predicate the created _.property style callback returns the property
- * value of the given element.
- *
- * If a value is also provided for thisArg the created _.matchesProperty style callback returns true for
- * elements that have a matching property value, else false.
- *
- * If an object is provided for predicate the created _.matches style callback returns true for elements that
- * have the properties of the given object, else false.
- *
- * @param collection The collection to search.
- * @param predicate The function invoked per iteration.
- * @param thisArg The this binding of predicate.
- * @return Returns the matched element, else undefined.
- */
- find<T>(
- collection: List<T>,
- predicate?: ListIterator<T, boolean>,
- thisArg?: any
- ): T;
-
- /**
- * @see _.find
- */
- find<T>(
- collection: Dictionary<T>,
- predicate?: DictionaryIterator<T, boolean>,
- thisArg?: any
- ): T;
-
- /**
- * @see _.find
- */
- find<T>(
- collection: List<T>|Dictionary<T>,
- predicate?: string,
- thisArg?: any
- ): T;
-
- /**
- * @see _.find
- */
- find<TObject extends {}, T>(
- collection: List<T>|Dictionary<T>,
- predicate?: TObject
- ): T;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.find
- */
- find(
- predicate?: ListIterator<T, boolean>,
- thisArg?: any
- ): T;
-
- /**
- * @see _.find
- */
- find(
- predicate?: string,
- thisArg?: any
- ): T;
-
- /**
- * @see _.find
- */
- find<TObject extends {}>(
- predicate?: TObject
- ): T;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.find
- */
- find<TResult>(
- predicate?: ListIterator<TResult, boolean>|DictionaryIterator<TResult, boolean>,
- thisArg?: any
- ): TResult;
-
- /**
- * @see _.find
- */
- find<TResult>(
- predicate?: string,
- thisArg?: any
- ): TResult;
-
- /**
- * @see _.find
- */
- find<TObject extends {}, TResult>(
- predicate?: TObject
- ): TResult;
- }
-
- //_.findLast
- interface LoDashStatic {
- /**
- * This method is like _.find except that it iterates over elements of a collection from
- * right to left.
- * @param collection Searches for a value in this list.
- * @param callback The function called per iteration.
- * @param thisArg The this binding of callback.
- * @return The found element, else undefined.
- **/
- findLast<T>(
- collection: Array<T>,
- callback: ListIterator<T, boolean>,
- thisArg?: any): T;
-
- /**
- * @see _.find
- **/
- findLast<T>(
- collection: List<T>,
- callback: ListIterator<T, boolean>,
- thisArg?: any): T;
-
- /**
- * @see _.find
- **/
- findLast<T>(
- collection: Dictionary<T>,
- callback: DictionaryIterator<T, boolean>,
- thisArg?: any): T;
-
- /**
- * @see _.find
- * @param _.pluck style callback
- **/
- findLast<W, T>(
- collection: Array<T>,
- whereValue: W): T;
-
- /**
- * @see _.find
- * @param _.pluck style callback
- **/
- findLast<W, T>(
- collection: List<T>,
- whereValue: W): T;
-
- /**
- * @see _.find
- * @param _.pluck style callback
- **/
- findLast<W, T>(
- collection: Dictionary<T>,
- whereValue: W): T;
-
- /**
- * @see _.find
- * @param _.where style callback
- **/
- findLast<T>(
- collection: Array<T>,
- pluckValue: string): T;
-
- /**
- * @see _.find
- * @param _.where style callback
- **/
- findLast<T>(
- collection: List<T>,
- pluckValue: string): T;
-
- /**
- * @see _.find
- * @param _.where style callback
- **/
- findLast<T>(
- collection: Dictionary<T>,
- pluckValue: string): T;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.findLast
- */
- findLast(
- callback: ListIterator<T, boolean>,
- thisArg?: any): T;
- /**
- * @see _.findLast
- * @param _.where style callback
- */
- findLast<W>(
- whereValue: W): T;
-
- /**
- * @see _.findLast
- * @param _.where style callback
- */
- findLast(
- pluckValue: string): T;
- }
-
- //_.forEach
- interface LoDashStatic {
- /**
- * Iterates over elements of collection invoking iteratee for each element. The iteratee is bound to thisArg
- * and invoked with three arguments:
- * (value, index|key, collection). Iteratee functions may exit iteration early by explicitly returning false.
- *
- * Note: As with other "Collections" methods, objects with a "length" property are iterated like arrays. To
- * avoid this behavior _.forIn or _.forOwn may be used for object iteration.
- *
- * @alias _.each
- *
- * @param collection The collection to iterate over.
- * @param iteratee The function invoked per iteration.
- * @param thisArg The this binding of iteratee.
- */
- forEach<T>(
- collection: T[],
- iteratee?: ListIterator<T, any>,
- thisArg?: any
- ): T[];
-
- /**
- * @see _.forEach
- */
- forEach<T>(
- collection: List<T>,
- iteratee?: ListIterator<T, any>,
- thisArg?: any
- ): List<T>;
-
- /**
- * @see _.forEach
- */
- forEach<T>(
- collection: Dictionary<T>,
- iteratee?: DictionaryIterator<T, any>,
- thisArg?: any
- ): Dictionary<T>;
-
- /**
- * @see _.forEach
- */
- forEach<T extends {}>(
- collection: T,
- iteratee?: ObjectIterator<any, any>,
- thisArgs?: any
- ): T;
-
- /**
- * @see _.forEach
- */
- forEach<T extends {}, TValue>(
- collection: T,
- iteratee?: ObjectIterator<TValue, any>,
- thisArgs?: any
- ): T;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.forEach
- */
- forEach(
- iteratee: ListIterator<string, any>,
- thisArg?: any
- ): LoDashImplicitWrapper<string>;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.forEach
- */
- forEach(
- iteratee: ListIterator<T, any>,
- thisArg?: any
- ): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.forEach
- */
- forEach<TValue>(
- iteratee?: ListIterator<TValue, any>|DictionaryIterator<TValue, any>,
- thisArg?: any
- ): LoDashImplicitObjectWrapper<T>;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.forEach
- */
- forEach(
- iteratee: ListIterator<string, any>,
- thisArg?: any
- ): LoDashExplicitWrapper<string>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.forEach
- */
- forEach(
- iteratee: ListIterator<T, any>,
- thisArg?: any
- ): LoDashExplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.forEach
- */
- forEach<TValue>(
- iteratee?: ListIterator<TValue, any>|DictionaryIterator<TValue, any>,
- thisArg?: any
- ): LoDashExplicitObjectWrapper<T>;
- }
-
- //_.forEachRight
- interface LoDashStatic {
- /**
- * This method is like _.forEach except that it iterates over elements of collection from right to left.
- *
- * @alias _.eachRight
- *
- * @param collection The collection to iterate over.
- * @param iteratee The function called per iteration.
- * @param thisArg The this binding of callback.
- */
- forEachRight<T>(
- collection: T[],
- iteratee?: ListIterator<T, any>,
- thisArg?: any
- ): T[];
-
- /**
- * @see _.forEachRight
- */
- forEachRight<T>(
- collection: List<T>,
- iteratee?: ListIterator<T, any>,
- thisArg?: any
- ): List<T>;
-
- /**
- * @see _.forEachRight
- */
- forEachRight<T>(
- collection: Dictionary<T>,
- iteratee?: DictionaryIterator<T, any>,
- thisArg?: any
- ): Dictionary<T>;
-
- /**
- * @see _.forEachRight
- */
- forEachRight<T extends {}>(
- collection: T,
- iteratee?: ObjectIterator<any, any>,
- thisArgs?: any
- ): T;
-
- /**
- * @see _.forEachRight
- */
- forEachRight<T extends {}, TValue>(
- collection: T,
- iteratee?: ObjectIterator<TValue, any>,
- thisArgs?: any
- ): T;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.forEachRight
- */
- forEachRight(
- iteratee: ListIterator<string, any>,
- thisArg?: any
- ): LoDashImplicitWrapper<string>;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.forEachRight
- */
- forEachRight(
- iteratee: ListIterator<T, any>,
- thisArg?: any
- ): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.forEachRight
- */
- forEachRight<TValue>(
- iteratee?: ListIterator<TValue, any>|DictionaryIterator<TValue, any>,
- thisArg?: any
- ): LoDashImplicitObjectWrapper<T>;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.forEachRight
- */
- forEachRight(
- iteratee: ListIterator<string, any>,
- thisArg?: any
- ): LoDashExplicitWrapper<string>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.forEachRight
- */
- forEachRight(
- iteratee: ListIterator<T, any>,
- thisArg?: any
- ): LoDashExplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.forEachRight
- */
- forEachRight<TValue>(
- iteratee?: ListIterator<TValue, any>|DictionaryIterator<TValue, any>,
- thisArg?: any
- ): LoDashExplicitObjectWrapper<T>;
- }
-
- //_.groupBy
- interface LoDashStatic {
- /**
- * Creates an object composed of keys generated from the results of running each element of collection through
- * iteratee. The corresponding value of each key is an array of the elements responsible for generating the
- * key. The iteratee is bound to thisArg and invoked with three arguments:
- * (value, index|key, collection).
- *
- * If a property name is provided for iteratee the created _.property style callback returns the property
- * value of the given element.
- *
- * If a value is also provided for thisArg the created _.matchesProperty style callback returns true for
- * elements that have a matching property value, else false.
- *
- * If an object is provided for iteratee the created _.matches style callback returns true for elements that
- * have the properties of the given object, else false.
- *
- * @param collection The collection to iterate over.
- * @param iteratee The function invoked per iteration.
- * @param thisArg The this binding of iteratee.
- * @return Returns the composed aggregate object.
- */
- groupBy<T, TKey>(
- collection: List<T>,
- iteratee?: ListIterator<T, TKey>,
- thisArg?: any
- ): Dictionary<T[]>;
-
- /**
- * @see _.groupBy
- */
- groupBy<T>(
- collection: List<any>,
- iteratee?: ListIterator<T, any>,
- thisArg?: any
- ): Dictionary<T[]>;
-
- /**
- * @see _.groupBy
- */
- groupBy<T, TKey>(
- collection: Dictionary<T>,
- iteratee?: DictionaryIterator<T, TKey>,
- thisArg?: any
- ): Dictionary<T[]>;
-
- /**
- * @see _.groupBy
- */
- groupBy<T>(
- collection: Dictionary<any>,
- iteratee?: DictionaryIterator<T, any>,
- thisArg?: any
- ): Dictionary<T[]>;
-
- /**
- * @see _.groupBy
- */
- groupBy<T, TValue>(
- collection: List<T>|Dictionary<T>,
- iteratee?: string,
- thisArg?: TValue
- ): Dictionary<T[]>;
-
- /**
- * @see _.groupBy
- */
- groupBy<T>(
- collection: List<T>|Dictionary<T>,
- iteratee?: string,
- thisArg?: any
- ): Dictionary<T[]>;
-
- /**
- * @see _.groupBy
- */
- groupBy<TWhere, T>(
- collection: List<T>|Dictionary<T>,
- iteratee?: TWhere
- ): Dictionary<T[]>;
-
- /**
- * @see _.groupBy
- */
- groupBy<T>(
- collection: List<T>|Dictionary<T>,
- iteratee?: Object
- ): Dictionary<T[]>;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.groupBy
- */
- groupBy<TKey>(
- iteratee?: ListIterator<T, TKey>,
- thisArg?: any
- ): LoDashImplicitObjectWrapper<Dictionary<T[]>>;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.groupBy
- */
- groupBy<TKey>(
- iteratee?: ListIterator<T, TKey>,
- thisArg?: any
- ): LoDashImplicitObjectWrapper<Dictionary<T[]>>;
-
- /**
- * @see _.groupBy
- */
- groupBy<TValue>(
- iteratee?: string,
- thisArg?: TValue
- ): LoDashImplicitObjectWrapper<Dictionary<T[]>>;
-
- /**
- * @see _.groupBy
- */
- groupBy<TWhere>(
- iteratee?: TWhere
- ): LoDashImplicitObjectWrapper<Dictionary<T[]>>;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.groupBy
- */
- groupBy<T, TKey>(
- iteratee?: ListIterator<T, TKey>|DictionaryIterator<T, TKey>,
- thisArg?: any
- ): LoDashImplicitObjectWrapper<Dictionary<T[]>>;
-
- /**
- * @see _.groupBy
- */
- groupBy<T>(
- iteratee?: ListIterator<T, any>|DictionaryIterator<T, any>,
- thisArg?: any
- ): LoDashImplicitObjectWrapper<Dictionary<T[]>>;
-
- /**
- * @see _.groupBy
- */
- groupBy<T, TValue>(
- iteratee?: string,
- thisArg?: TValue
- ): LoDashImplicitObjectWrapper<Dictionary<T[]>>;
-
- /**
- * @see _.groupBy
- */
- groupBy<T>(
- iteratee?: string,
- thisArg?: any
- ): LoDashImplicitObjectWrapper<Dictionary<T[]>>;
-
- /**
- * @see _.groupBy
- */
- groupBy<TWhere, T>(
- iteratee?: TWhere
- ): LoDashImplicitObjectWrapper<Dictionary<T[]>>;
-
- /**
- * @see _.groupBy
- */
- groupBy<T>(
- iteratee?: Object
- ): LoDashImplicitObjectWrapper<Dictionary<T[]>>;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.groupBy
- */
- groupBy<TKey>(
- iteratee?: ListIterator<T, TKey>,
- thisArg?: any
- ): LoDashExplicitObjectWrapper<Dictionary<T[]>>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.groupBy
- */
- groupBy<TKey>(
- iteratee?: ListIterator<T, TKey>,
- thisArg?: any
- ): LoDashExplicitObjectWrapper<Dictionary<T[]>>;
-
- /**
- * @see _.groupBy
- */
- groupBy<TValue>(
- iteratee?: string,
- thisArg?: TValue
- ): LoDashExplicitObjectWrapper<Dictionary<T[]>>;
-
- /**
- * @see _.groupBy
- */
- groupBy<TWhere>(
- iteratee?: TWhere
- ): LoDashExplicitObjectWrapper<Dictionary<T[]>>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.groupBy
- */
- groupBy<T, TKey>(
- iteratee?: ListIterator<T, TKey>|DictionaryIterator<T, TKey>,
- thisArg?: any
- ): LoDashExplicitObjectWrapper<Dictionary<T[]>>;
-
- /**
- * @see _.groupBy
- */
- groupBy<T>(
- iteratee?: ListIterator<T, any>|DictionaryIterator<T, any>,
- thisArg?: any
- ): LoDashExplicitObjectWrapper<Dictionary<T[]>>;
-
- /**
- * @see _.groupBy
- */
- groupBy<T, TValue>(
- iteratee?: string,
- thisArg?: TValue
- ): LoDashExplicitObjectWrapper<Dictionary<T[]>>;
-
- /**
- * @see _.groupBy
- */
- groupBy<T>(
- iteratee?: string,
- thisArg?: any
- ): LoDashExplicitObjectWrapper<Dictionary<T[]>>;
-
- /**
- * @see _.groupBy
- */
- groupBy<TWhere, T>(
- iteratee?: TWhere
- ): LoDashExplicitObjectWrapper<Dictionary<T[]>>;
-
- /**
- * @see _.groupBy
- */
- groupBy<T>(
- iteratee?: Object
- ): LoDashExplicitObjectWrapper<Dictionary<T[]>>;
- }
-
- //_.includes
- interface LoDashStatic {
- /**
- * Checks if target is in collection using SameValueZero for equality comparisons. If fromIndex is negative,
- * it’s used as the offset from the end of collection.
- *
- * @param collection The collection to search.
- * @param target The value to search for.
- * @param fromIndex The index to search from.
- * @return True if the target element is found, else false.
- */
- includes<T>(
- collection: List<T>|Dictionary<T>,
- target: T,
- fromIndex?: number
- ): boolean;
-
- /**
- * @see _.includes
- */
- includes(
- collection: string,
- target: string,
- fromIndex?: number
- ): boolean;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.includes
- */
- includes(
- target: T,
- fromIndex?: number
- ): boolean;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.includes
- */
- includes<TValue>(
- target: TValue,
- fromIndex?: number
- ): boolean;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.includes
- */
- includes(
- target: string,
- fromIndex?: number
- ): boolean;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.includes
- */
- includes(
- target: T,
- fromIndex?: number
- ): LoDashExplicitWrapper<boolean>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.includes
- */
- includes<TValue>(
- target: TValue,
- fromIndex?: number
- ): LoDashExplicitWrapper<boolean>;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.includes
- */
- includes(
- target: string,
- fromIndex?: number
- ): LoDashExplicitWrapper<boolean>;
- }
-
- //_.keyBy
- interface LoDashStatic {
- /**
- * Creates an object composed of keys generated from the results of running each element of collection through
- * iteratee. The corresponding value of each key is the last element responsible for generating the key. The
- * iteratee function is bound to thisArg and invoked with three arguments:
- * (value, index|key, collection).
- *
- * If a property name is provided for iteratee the created _.property style callback returns the property
- * value of the given element.
- *
- * If a value is also provided for thisArg the created _.matchesProperty style callback returns true for
- * elements that have a matching property value, else false.
- *
- * If an object is provided for iteratee the created _.matches style callback returns true for elements that
- * have the properties of the given object, else false.
- *
- * @param collection The collection to iterate over.
- * @param iteratee The function invoked per iteration.
- * @param thisArg The this binding of iteratee.
- * @return Returns the composed aggregate object.
- */
- keyBy<T>(
- collection: List<T>,
- iteratee?: ListIterator<T, any>,
- thisArg?: any
- ): Dictionary<T>;
-
- /**
- * @see _.keyBy
- */
- keyBy<T>(
- collection: NumericDictionary<T>,
- iteratee?: NumericDictionaryIterator<T, any>,
- thisArg?: any
- ): Dictionary<T>;
-
- /**
- * @see _.keyBy
- */
- keyBy<T>(
- collection: Dictionary<T>,
- iteratee?: DictionaryIterator<T, any>,
- thisArg?: any
- ): Dictionary<T>;
-
- /**
- * @see _.keyBy
- */
- keyBy<T>(
- collection: List<T>|NumericDictionary<T>|Dictionary<T>,
- iteratee?: string,
- thisArg?: any
- ): Dictionary<T>;
-
- /**
- * @see _.keyBy
- */
- keyBy<W extends Object, T>(
- collection: List<T>|NumericDictionary<T>|Dictionary<T>,
- iteratee?: W
- ): Dictionary<T>;
-
- /**
- * @see _.keyBy
- */
- keyBy<T>(
- collection: List<T>|NumericDictionary<T>|Dictionary<T>,
- iteratee?: Object
- ): Dictionary<T>;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.keyBy
- */
- keyBy(
- iteratee?: ListIterator<T, any>,
- thisArg?: any
- ): LoDashImplicitObjectWrapper<Dictionary<T>>;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.keyBy
- */
- keyBy(
- iteratee?: ListIterator<T, any>,
- thisArg?: any
- ): LoDashImplicitObjectWrapper<Dictionary<T>>;
-
- /**
- * @see _.keyBy
- */
- keyBy(
- iteratee?: string,
- thisArg?: any
- ): LoDashImplicitObjectWrapper<Dictionary<T>>;
-
- /**
- * @see _.keyBy
- */
- keyBy<W extends Object>(
- iteratee?: W
- ): LoDashImplicitObjectWrapper<Dictionary<T>>;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.keyBy
- */
- keyBy<T>(
- iteratee?: ListIterator<T, any>|NumericDictionaryIterator<T, any>|DictionaryIterator<T, any>,
- thisArg?: any
- ): LoDashImplicitObjectWrapper<Dictionary<T>>;
-
- /**
- * @see _.keyBy
- */
- keyBy<T>(
- iteratee?: string,
- thisArg?: any
- ): LoDashImplicitObjectWrapper<Dictionary<T>>;
-
- /**
- * @see _.keyBy
- */
- keyBy<W extends Object, T>(
- iteratee?: W
- ): LoDashImplicitObjectWrapper<Dictionary<T>>;
-
- /**
- * @see _.keyBy
- */
- keyBy<T>(
- iteratee?: Object
- ): LoDashImplicitObjectWrapper<Dictionary<T>>;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.keyBy
- */
- keyBy(
- iteratee?: ListIterator<T, any>,
- thisArg?: any
- ): LoDashExplicitObjectWrapper<Dictionary<T>>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.keyBy
- */
- keyBy(
- iteratee?: ListIterator<T, any>,
- thisArg?: any
- ): LoDashExplicitObjectWrapper<Dictionary<T>>;
-
- /**
- * @see _.keyBy
- */
- keyBy(
- iteratee?: string,
- thisArg?: any
- ): LoDashExplicitObjectWrapper<Dictionary<T>>;
-
- /**
- * @see _.keyBy
- */
- keyBy<W extends Object>(
- iteratee?: W
- ): LoDashExplicitObjectWrapper<Dictionary<T>>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.keyBy
- */
- keyBy<T>(
- iteratee?: ListIterator<T, any>|NumericDictionaryIterator<T, any>|DictionaryIterator<T, any>,
- thisArg?: any
- ): LoDashExplicitObjectWrapper<Dictionary<T>>;
-
- /**
- * @see _.keyBy
- */
- keyBy<T>(
- iteratee?: string,
- thisArg?: any
- ): LoDashExplicitObjectWrapper<Dictionary<T>>;
-
- /**
- * @see _.keyBy
- */
- keyBy<W extends Object, T>(
- iteratee?: W
- ): LoDashExplicitObjectWrapper<Dictionary<T>>;
-
- /**
- * @see _.keyBy
- */
- keyBy<T>(
- iteratee?: Object
- ): LoDashExplicitObjectWrapper<Dictionary<T>>;
- }
-
- //_.invokeMap
- interface LoDashStatic {
- /**
- * Invokes the method named by methodName on each element in the collection returning
- * an array of the results of each invoked method. Additional arguments will be provided
- * to each invoked method. If methodName is a function it will be invoked for, and this
- * bound to, each element in the collection.
- * @param collection The collection to iterate over.
- * @param methodName The name of the method to invoke.
- * @param args Arguments to invoke the method with.
- **/
- invokeMap<T extends {}>(
- collection: Array<T>,
- methodName: string,
- ...args: any[]): any;
-
- /**
- * @see _.invokeMap
- **/
- invokeMap<T extends {}>(
- collection: List<T>,
- methodName: string,
- ...args: any[]): any;
-
- /**
- * @see _.invokeMap
- **/
- invokeMap<T extends {}>(
- collection: Dictionary<T>,
- methodName: string,
- ...args: any[]): any;
-
- /**
- * @see _.invokeMap
- **/
- invokeMap<T extends {}>(
- collection: Array<T>,
- method: Function,
- ...args: any[]): any;
-
- /**
- * @see _.invokeMap
- **/
- invokeMap<T extends {}>(
- collection: List<T>,
- method: Function,
- ...args: any[]): any;
-
- /**
- * @see _.invokeMap
- **/
- invokeMap<T extends {}>(
- collection: Dictionary<T>,
- method: Function,
- ...args: any[]): any;
- }
-
- //_.map
- interface LoDashStatic {
- /**
- * Creates an array of values by running each element in collection through iteratee. The iteratee is bound to
- * thisArg and invoked with three arguments: (value, index|key, collection).
- *
- * If a property name is provided for iteratee the created _.property style callback returns the property value
- * of the given element.
- *
- * If a value is also provided for thisArg the created _.matchesProperty style callback returns true for
- * elements that have a matching property value, else false.
- *
- * If an object is provided for iteratee the created _.matches style callback returns true for elements that
- * have the properties of the given object, else false.
- *
- * Many lodash methods are guarded to work as iteratees for methods like _.every, _.filter, _.map, _.mapValues,
- * _.reject, and _.some.
- *
- * The guarded methods are:
- * ary, callback, chunk, clone, create, curry, curryRight, drop, dropRight, every, fill, flatten, invert, max,
- * min, parseInt, slice, sortBy, take, takeRight, template, trim, trimLeft, trimRight, trunc, random, range,
- * sample, some, sum, uniq, and words
- *
- * @param collection The collection to iterate over.
- * @param iteratee The function invoked per iteration.
- * @param thisArg The this binding of iteratee.
- * @return Returns the new mapped array.
- */
- map<T, TResult>(
- collection: List<T>,
- iteratee?: ListIterator<T, TResult>,
- thisArg?: any
- ): TResult[];
-
- /**
- * @see _.map
- */
- map<T extends {}, TResult>(
- collection: Dictionary<T>,
- iteratee?: DictionaryIterator<T, TResult>,
- thisArg?: any
- ): TResult[];
-
- /**
- * @see _.map
- */
- map<T, TResult>(
- collection: List<T>|Dictionary<T>,
- iteratee?: string
- ): TResult[];
-
- /**
- * @see _.map
- */
- map<T, TObject extends {}>(
- collection: List<T>|Dictionary<T>,
- iteratee?: TObject
- ): boolean[];
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.map
- */
- map<TResult>(
- iteratee?: ListIterator<T, TResult>,
- thisArg?: any
- ): LoDashImplicitArrayWrapper<TResult>;
-
- /**
- * @see _.map
- */
- map<TResult>(
- iteratee?: string
- ): LoDashImplicitArrayWrapper<TResult>;
-
- /**
- * @see _.map
- */
- map<TObject extends {}>(
- iteratee?: TObject
- ): LoDashImplicitArrayWrapper<boolean>;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.map
- */
- map<TValue, TResult>(
- iteratee?: ListIterator<TValue, TResult>|DictionaryIterator<TValue, TResult>,
- thisArg?: any
- ): LoDashImplicitArrayWrapper<TResult>;
-
- /**
- * @see _.map
- */
- map<TValue, TResult>(
- iteratee?: string
- ): LoDashImplicitArrayWrapper<TResult>;
-
- /**
- * @see _.map
- */
- map<TObject extends {}>(
- iteratee?: TObject
- ): LoDashImplicitArrayWrapper<boolean>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.map
- */
- map<TResult>(
- iteratee?: ListIterator<T, TResult>,
- thisArg?: any
- ): LoDashExplicitArrayWrapper<TResult>;
-
- /**
- * @see _.map
- */
- map<TResult>(
- iteratee?: string
- ): LoDashExplicitArrayWrapper<TResult>;
-
- /**
- * @see _.map
- */
- map<TObject extends {}>(
- iteratee?: TObject
- ): LoDashExplicitArrayWrapper<boolean>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.map
- */
- map<TValue, TResult>(
- iteratee?: ListIterator<TValue, TResult>|DictionaryIterator<TValue, TResult>,
- thisArg?: any
- ): LoDashExplicitArrayWrapper<TResult>;
-
- /**
- * @see _.map
- */
- map<TValue, TResult>(
- iteratee?: string
- ): LoDashExplicitArrayWrapper<TResult>;
-
- /**
- * @see _.map
- */
- map<TObject extends {}>(
- iteratee?: TObject
- ): LoDashExplicitArrayWrapper<boolean>;
- }
-
- //_.partition
- interface LoDashStatic {
- /**
- * Creates an array of elements split into two groups, the first of which contains elements predicate returns truthy for,
- * while the second of which contains elements predicate returns falsey for.
- * The predicate is bound to thisArg and invoked with three arguments: (value, index|key, collection).
- *
- * If a property name is provided for predicate the created _.property style callback
- * returns the property value of the given element.
- *
- * If a value is also provided for thisArg the created _.matchesProperty style callback
- * returns true for elements that have a matching property value, else false.
- *
- * If an object is provided for predicate the created _.matches style callback returns
- * true for elements that have the properties of the given object, else false.
- *
- * @param collection The collection to iterate over.
- * @param callback The function called per iteration.
- * @param thisArg The this binding of predicate.
- * @return Returns the array of grouped elements.
- **/
- partition<T>(
- collection: List<T>,
- callback: ListIterator<T, boolean>,
- thisArg?: any): T[][];
-
- /**
- * @see _.partition
- **/
- partition<T>(
- collection: Dictionary<T>,
- callback: DictionaryIterator<T, boolean>,
- thisArg?: any): T[][];
-
- /**
- * @see _.partition
- **/
- partition<W, T>(
- collection: List<T>,
- whereValue: W): T[][];
-
- /**
- * @see _.partition
- **/
- partition<W, T>(
- collection: Dictionary<T>,
- whereValue: W): T[][];
-
- /**
- * @see _.partition
- **/
- partition<T>(
- collection: List<T>,
- path: string,
- srcValue: any): T[][];
-
- /**
- * @see _.partition
- **/
- partition<T>(
- collection: Dictionary<T>,
- path: string,
- srcValue: any): T[][];
-
- /**
- * @see _.partition
- **/
- partition<T>(
- collection: List<T>,
- pluckValue: string): T[][];
-
- /**
- * @see _.partition
- **/
- partition<T>(
- collection: Dictionary<T>,
- pluckValue: string): T[][];
- }
-
- interface LoDashImplicitStringWrapper {
- /**
- * @see _.partition
- */
- partition(
- callback: ListIterator<string, boolean>,
- thisArg?: any): LoDashImplicitArrayWrapper<string[]>;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.partition
- */
- partition(
- callback: ListIterator<T, boolean>,
- thisArg?: any): LoDashImplicitArrayWrapper<T[]>;
- /**
- * @see _.partition
- */
- partition<W>(
- whereValue: W): LoDashImplicitArrayWrapper<T[]>;
- /**
- * @see _.partition
- */
- partition(
- path: string,
- srcValue: any): LoDashImplicitArrayWrapper<T[]>;
- /**
- * @see _.partition
- */
- partition(
- pluckValue: string): LoDashImplicitArrayWrapper<T[]>;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.partition
- */
- partition<TResult>(
- callback: ListIterator<TResult, boolean>,
- thisArg?: any): LoDashImplicitArrayWrapper<TResult[]>;
-
- /**
- * @see _.partition
- */
- partition<TResult>(
- callback: DictionaryIterator<TResult, boolean>,
- thisArg?: any): LoDashImplicitArrayWrapper<TResult[]>;
-
- /**
- * @see _.partition
- */
- partition<W, TResult>(
- whereValue: W): LoDashImplicitArrayWrapper<TResult[]>;
-
- /**
- * @see _.partition
- */
- partition<TResult>(
- path: string,
- srcValue: any): LoDashImplicitArrayWrapper<TResult[]>;
-
- /**
- * @see _.partition
- */
- partition<TResult>(
- pluckValue: string): LoDashImplicitArrayWrapper<TResult[]>;
- }
-
- //_.reduce
- interface LoDashStatic {
- /**
- * Reduces a collection to a value which is the accumulated result of running each
- * element in the collection through the callback, where each successive callback execution
- * consumes the return value of the previous execution. If accumulator is not provided the
- * first element of the collection will be used as the initial accumulator value. The callback
- * is bound to thisArg and invoked with four arguments; (accumulator, value, index|key, collection).
- * @param collection The collection to iterate over.
- * @param callback The function called per iteration.
- * @param accumulator Initial value of the accumulator.
- * @param thisArg The this binding of callback.
- * @return Returns the accumulated value.
- **/
- reduce<T, TResult>(
- collection: Array<T>,
- callback: MemoIterator<T, TResult>,
- accumulator: TResult,
- thisArg?: any): TResult;
-
- /**
- * @see _.reduce
- **/
- reduce<T, TResult>(
- collection: List<T>,
- callback: MemoIterator<T, TResult>,
- accumulator: TResult,
- thisArg?: any): TResult;
-
- /**
- * @see _.reduce
- **/
- reduce<T, TResult>(
- collection: Dictionary<T>,
- callback: MemoIterator<T, TResult>,
- accumulator: TResult,
- thisArg?: any): TResult;
-
- /**
- * @see _.reduce
- **/
- reduce<T, TResult>(
- collection: Array<T>,
- callback: MemoIterator<T, TResult>,
- thisArg?: any): TResult;
-
- /**
- * @see _.reduce
- **/
- reduce<T, TResult>(
- collection: List<T>,
- callback: MemoIterator<T, TResult>,
- thisArg?: any): TResult;
-
- /**
- * @see _.reduce
- **/
- reduce<T, TResult>(
- collection: Dictionary<T>,
- callback: MemoIterator<T, TResult>,
- thisArg?: any): TResult;
-
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.reduce
- **/
- reduce<TResult>(
- callback: MemoIterator<T, TResult>,
- accumulator: TResult,
- thisArg?: any): TResult;
-
- /**
- * @see _.reduce
- **/
- reduce<TResult>(
- callback: MemoIterator<T, TResult>,
- thisArg?: any): TResult;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.reduce
- **/
- reduce<TValue, TResult>(
- callback: MemoIterator<TValue, TResult>,
- accumulator: TResult,
- thisArg?: any): TResult;
-
- /**
- * @see _.reduce
- **/
- reduce<TValue, TResult>(
- callback: MemoIterator<TValue, TResult>,
- thisArg?: any): TResult;
- }
-
- //_.reduceRight
- interface LoDashStatic {
- /**
- * This method is like _.reduce except that it iterates over elements of a collection from
- * right to left.
- * @param collection The collection to iterate over.
- * @param callback The function called per iteration.
- * @param accumulator Initial value of the accumulator.
- * @param thisArg The this binding of callback.
- * @return The accumulated value.
- **/
- reduceRight<T, TResult>(
- collection: Array<T>,
- callback: MemoIterator<T, TResult>,
- accumulator: TResult,
- thisArg?: any): TResult;
-
- /**
- * @see _.reduceRight
- **/
- reduceRight<T, TResult>(
- collection: List<T>,
- callback: MemoIterator<T, TResult>,
- accumulator: TResult,
- thisArg?: any): TResult;
-
- /**
- * @see _.reduceRight
- **/
- reduceRight<T, TResult>(
- collection: Dictionary<T>,
- callback: MemoIterator<T, TResult>,
- accumulator: TResult,
- thisArg?: any): TResult;
-
- /**
- * @see _.reduceRight
- **/
- reduceRight<T, TResult>(
- collection: Array<T>,
- callback: MemoIterator<T, TResult>,
- thisArg?: any): TResult;
-
- /**
- * @see _.reduceRight
- **/
- reduceRight<T, TResult>(
- collection: List<T>,
- callback: MemoIterator<T, TResult>,
- thisArg?: any): TResult;
-
- /**
- * @see _.reduceRight
- **/
- reduceRight<T, TResult>(
- collection: Dictionary<T>,
- callback: MemoIterator<T, TResult>,
- thisArg?: any): TResult;
- }
-
- //_.reject
- interface LoDashStatic {
- /**
- * The opposite of _.filter; this method returns the elements of collection that predicate does not return
- * truthy for.
- *
- * @param collection The collection to iterate over.
- * @param predicate The function invoked per iteration.
- * @param thisArg The this binding of predicate.
- * @return Returns the new filtered array.
- */
- reject<T>(
- collection: List<T>,
- predicate?: ListIterator<T, boolean>,
- thisArg?: any
- ): T[];
-
- /**
- * @see _.reject
- */
- reject<T>(
- collection: Dictionary<T>,
- predicate?: DictionaryIterator<T, boolean>,
- thisArg?: any
- ): T[];
-
- /**
- * @see _.reject
- */
- reject(
- collection: string,
- predicate?: StringIterator<boolean>,
- thisArg?: any
- ): string[];
-
- /**
- * @see _.reject
- */
- reject<T>(
- collection: List<T>|Dictionary<T>,
- predicate: string,
- thisArg?: any
- ): T[];
-
- /**
- * @see _.reject
- */
- reject<W extends {}, T>(
- collection: List<T>|Dictionary<T>,
- predicate: W
- ): T[];
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.reject
- */
- reject(
- predicate?: StringIterator<boolean>,
- thisArg?: any
- ): LoDashImplicitArrayWrapper<string>;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.reject
- */
- reject(
- predicate: ListIterator<T, boolean>,
- thisArg?: any
- ): LoDashImplicitArrayWrapper<T>;
-
- /**
- * @see _.reject
- */
- reject(
- predicate: string,
- thisArg?: any
- ): LoDashImplicitArrayWrapper<T>;
-
- /**
- * @see _.reject
- */
- reject<W>(predicate: W): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.reject
- */
- reject<T>(
- predicate: ListIterator<T, boolean>|DictionaryIterator<T, boolean>,
- thisArg?: any
- ): LoDashImplicitArrayWrapper<T>;
-
- /**
- * @see _.reject
- */
- reject<T>(
- predicate: string,
- thisArg?: any
- ): LoDashImplicitArrayWrapper<T>;
-
- /**
- * @see _.reject
- */
- reject<W, T>(predicate: W): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.reject
- */
- reject(
- predicate?: StringIterator<boolean>,
- thisArg?: any
- ): LoDashExplicitArrayWrapper<string>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.reject
- */
- reject(
- predicate: ListIterator<T, boolean>,
- thisArg?: any
- ): LoDashExplicitArrayWrapper<T>;
-
- /**
- * @see _.reject
- */
- reject(
- predicate: string,
- thisArg?: any
- ): LoDashExplicitArrayWrapper<T>;
-
- /**
- * @see _.reject
- */
- reject<W>(predicate: W): LoDashExplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.reject
- */
- reject<T>(
- predicate: ListIterator<T, boolean>|DictionaryIterator<T, boolean>,
- thisArg?: any
- ): LoDashExplicitArrayWrapper<T>;
-
- /**
- * @see _.reject
- */
- reject<T>(
- predicate: string,
- thisArg?: any
- ): LoDashExplicitArrayWrapper<T>;
-
- /**
- * @see _.reject
- */
- reject<W, T>(predicate: W): LoDashExplicitArrayWrapper<T>;
- }
-
- //_.sample
- interface LoDashStatic {
- /**
- * Gets a random element from `collection`.
- *
- * @static
- * @memberOf _
- * @category Collection
- * @param {Array|Object} collection The collection to sample.
- * @returns {*} Returns the random element.
- * @example
- *
- * _.sample([1, 2, 3, 4]);
- * // => 2
- */
- sample<T>(collection: Array<T>): T;
-
- /**
- * @see _.sample
- **/
- sample<T>(collection: List<T>): T;
-
- /**
- * @see _.sample
- **/
- sample<T>(collection: Dictionary<T>): T;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.sample
- **/
- sample(): LoDashImplicitWrapper<T>;
- }
-
- //_.sampleSize
- interface LoDashStatic {
- /**
- * Gets `n` random elements from `collection`.
- *
- * @static
- * @memberOf _
- * @category Collection
- * @param {Array|Object} collection The collection to sample.
- * @param {number} [n=0] The number of elements to sample.
- * @returns {Array} Returns the random elements.
- * @example
- *
- * _.sampleSize([1, 2, 3, 4], 2);
- * // => [3, 1]
- */
- sampleSize<T>(collection: Array<T>, n: number): T[];
-
- /**
- * @see _.sampleSize
- **/
- sampleSize<T>(collection: List<T>, n: number): T[];
-
- /**
- * @see _.sampleSize
- **/
- sampleSize<T>(collection: Dictionary<T>, n: number): T[];
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.sampleSize
- **/
- sampleSize(n: number): LoDashImplicitArrayWrapper<T>;
-
- /**
- * @see _.sampleSize
- **/
- sampleSize(): LoDashImplicitWrapper<T>;
- }
-
- //_.shuffle
- interface LoDashStatic {
- /**
- * Creates an array of shuffled values, using a version of the Fisher-Yates shuffle.
- *
- * @param collection The collection to shuffle.
- * @return Returns the new shuffled array.
- */
- shuffle<T>(collection: List<T>|Dictionary<T>): T[];
-
- /**
- * @see _.shuffle
- */
- shuffle(collection: string): string[];
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.shuffle
- */
- shuffle(): LoDashImplicitArrayWrapper<string>;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.shuffle
- */
- shuffle(): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.shuffle
- */
- shuffle<T>(): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.shuffle
- */
- shuffle(): LoDashExplicitArrayWrapper<string>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.shuffle
- */
- shuffle(): LoDashExplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.shuffle
- */
- shuffle<T>(): LoDashExplicitArrayWrapper<T>;
- }
-
- //_.size
- interface LoDashStatic {
- /**
- * Gets the size of collection by returning its length for array-like values or the number of own enumerable
- * properties for objects.
- *
- * @param collection The collection to inspect.
- * @return Returns the size of collection.
- */
- size<T>(collection: List<T>|Dictionary<T>): number;
-
- /**
- * @see _.size
- */
- size(collection: string): number;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.size
- */
- size(): number;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.size
- */
- size(): number;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.size
- */
- size(): number;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.size
- */
- size(): LoDashExplicitWrapper<number>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.size
- */
- size(): LoDashExplicitWrapper<number>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.size
- */
- size(): LoDashExplicitWrapper<number>;
- }
-
- //_.some
- interface LoDashStatic {
- /**
- * Checks if predicate returns truthy for any element of collection. The function returns as soon as it finds
- * a passing value and does not iterate over the entire collection. The predicate is bound to thisArg and
- * invoked with three arguments: (value, index|key, collection).
- *
- * If a property name is provided for predicate the created _.property style callback returns the property
- * value of the given element.
- *
- * If a value is also provided for thisArg the created _.matchesProperty style callback returns true for
- * elements that have a matching property value, else false.
- *
- * If an object is provided for predicate the created _.matches style callback returns true for elements that
- * have the properties of the given object, else false.
- *
- * @param collection The collection to iterate over.
- * @param predicate The function invoked per iteration.
- * @param thisArg The this binding of predicate.
- * @return Returns true if any element passes the predicate check, else false.
- */
- some<T>(
- collection: List<T>,
- predicate?: ListIterator<T, boolean>,
- thisArg?: any
- ): boolean;
-
- /**
- * @see _.some
- */
- some<T>(
- collection: Dictionary<T>,
- predicate?: DictionaryIterator<T, boolean>,
- thisArg?: any
- ): boolean;
-
- /**
- * @see _.some
- */
- some<T>(
- collection: NumericDictionary<T>,
- predicate?: NumericDictionaryIterator<T, boolean>,
- thisArg?: any
- ): boolean;
-
- /**
- * @see _.some
- */
- some<T>(
- collection: List<T>|Dictionary<T>|NumericDictionary<T>,
- predicate?: string,
- thisArg?: any
- ): boolean;
-
- /**
- * @see _.some
- */
- some<TObject extends {}, T>(
- collection: List<T>|Dictionary<T>|NumericDictionary<T>,
- predicate?: TObject
- ): boolean;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.some
- */
- some(
- predicate?: ListIterator<T, boolean>|NumericDictionaryIterator<T, boolean>,
- thisArg?: any
- ): boolean;
-
- /**
- * @see _.some
- */
- some(
- predicate?: string,
- thisArg?: any
- ): boolean;
-
- /**
- * @see _.some
- */
- some<TObject extends {}>(
- predicate?: TObject
- ): boolean;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.some
- */
- some<TResult>(
- predicate?: ListIterator<TResult, boolean>|DictionaryIterator<TResult, boolean>|NumericDictionaryIterator<T, boolean>,
- thisArg?: any
- ): boolean;
-
- /**
- * @see _.some
- */
- some(
- predicate?: string,
- thisArg?: any
- ): boolean;
-
- /**
- * @see _.some
- */
- some<TObject extends {}>(
- predicate?: TObject
- ): boolean;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.some
- */
- some(
- predicate?: ListIterator<T, boolean>|NumericDictionaryIterator<T, boolean>,
- thisArg?: any
- ): LoDashExplicitWrapper<boolean>;
-
- /**
- * @see _.some
- */
- some(
- predicate?: string,
- thisArg?: any
- ): LoDashExplicitWrapper<boolean>;
-
- /**
- * @see _.some
- */
- some<TObject extends {}>(
- predicate?: TObject
- ): LoDashExplicitWrapper<boolean>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.some
- */
- some<TResult>(
- predicate?: ListIterator<TResult, boolean>|DictionaryIterator<TResult, boolean>|NumericDictionaryIterator<T, boolean>,
- thisArg?: any
- ): LoDashExplicitWrapper<boolean>;
-
- /**
- * @see _.some
- */
- some(
- predicate?: string,
- thisArg?: any
- ): LoDashExplicitWrapper<boolean>;
-
- /**
- * @see _.some
- */
- some<TObject extends {}>(
- predicate?: TObject
- ): LoDashExplicitWrapper<boolean>;
- }
-
- //_.sortBy
- interface LoDashStatic {
- /**
- * Creates an array of elements, sorted in ascending order by the results of
- * running each element in a collection through each iteratee. This method
- * performs a stable sort, that is, it preserves the original sort order of
- * equal elements. The iteratees are invoked with one argument: (value).
- *
- * @static
- * @memberOf _
- * @category Collection
- * @param {Array|Object} collection The collection to iterate over.
- * @param {...(Function|Function[]|Object|Object[]|string|string[])} [iteratees=[_.identity]]
- * The iteratees to sort by, specified individually or in arrays.
- * @returns {Array} Returns the new sorted array.
- * @example
- *
- * var users = [
- * { 'user': 'fred', 'age': 48 },
- * { 'user': 'barney', 'age': 36 },
- * { 'user': 'fred', 'age': 42 },
- * { 'user': 'barney', 'age': 34 }
- * ];
- *
- * _.sortBy(users, function(o) { return o.user; });
- * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 42]]
- *
- * _.sortBy(users, ['user', 'age']);
- * // => objects for [['barney', 34], ['barney', 36], ['fred', 42], ['fred', 48]]
- *
- * _.sortBy(users, 'user', function(o) {
- * return Math.floor(o.age / 10);
- * });
- * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 42]]
- */
- sortBy<T, TSort>(
- collection: List<T>,
- iteratee?: ListIterator<T, TSort>
- ): T[];
-
- /**
- * @see _.sortBy
- */
- sortBy<T, TSort>(
- collection: Dictionary<T>,
- iteratee?: DictionaryIterator<T, TSort>
- ): T[];
-
- /**
- * @see _.sortBy
- */
- sortBy<T>(
- collection: List<T>|Dictionary<T>,
- iteratee: string
- ): T[];
-
- /**
- * @see _.sortBy
- */
- sortBy<W extends {}, T>(
- collection: List<T>|Dictionary<T>,
- whereValue: W
- ): T[];
-
- /**
- * @see _.sortBy
- */
- sortBy<T>(
- collection: List<T>|Dictionary<T>
- ): T[];
-
- /**
- * @see _.sortBy
- */
- sortBy<T>(
- collection: (Array<T>|List<T>),
- iteratees: (ListIterator<T, any>|string|Object)[]): T[];
-
- /**
- * @see _.sortBy
- */
- sortBy<T>(
- collection: (Array<T>|List<T>),
- ...iteratees: (ListIterator<T, boolean>|Object|string)[]): T[];
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.sortBy
- */
- sortBy<TSort>(
- iteratee?: ListIterator<T, TSort>
- ): LoDashImplicitArrayWrapper<T>;
-
- /**
- * @see _.sortBy
- */
- sortBy(iteratee: string): LoDashImplicitArrayWrapper<T>;
-
- /**
- * @see _.sortBy
- */
- sortBy<W extends {}>(whereValue: W): LoDashImplicitArrayWrapper<T>;
-
- /**
- * @see _.sortBy
- */
- sortBy(): LoDashImplicitArrayWrapper<T>;
-
- /**
- * @see _.sortBy
- */
- sortBy(...iteratees: (ListIterator<T, boolean>|Object|string)[]): LoDashImplicitArrayWrapper<T>;
-
- /**
- * @see _.sortBy
- **/
- sortBy(iteratees: (ListIterator<T, any>|string|Object)[]): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.sortBy
- */
- sortBy<T, TSort>(
- iteratee?: ListIterator<T, TSort>|DictionaryIterator<T, TSort>
- ): LoDashImplicitArrayWrapper<T>;
-
- /**
- * @see _.sortBy
- */
- sortBy<T>(iteratee: string): LoDashImplicitArrayWrapper<T>;
-
- /**
- * @see _.sortBy
- */
- sortBy<W extends {}, T>(whereValue: W): LoDashImplicitArrayWrapper<T>;
-
- /**
- * @see _.sortBy
- */
- sortBy<T>(): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.sortBy
- */
- sortBy<TSort>(
- iteratee?: ListIterator<T, TSort>
- ): LoDashExplicitArrayWrapper<T>;
-
- /**
- * @see _.sortBy
- */
- sortBy(iteratee: string): LoDashExplicitArrayWrapper<T>;
-
- /**
- * @see _.sortBy
- */
- sortBy<W extends {}>(whereValue: W): LoDashExplicitArrayWrapper<T>;
-
- /**
- * @see _.sortBy
- */
- sortBy(): LoDashExplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.sortBy
- */
- sortBy<T, TSort>(
- iteratee?: ListIterator<T, TSort>|DictionaryIterator<T, TSort>
- ): LoDashExplicitArrayWrapper<T>;
-
- /**
- * @see _.sortBy
- */
- sortBy<T>(iteratee: string): LoDashExplicitArrayWrapper<T>;
-
- /**
- * @see _.sortBy
- */
- sortBy<W extends {}, T>(whereValue: W): LoDashExplicitArrayWrapper<T>;
-
- /**
- * @see _.sortBy
- */
- sortBy<T>(): LoDashExplicitArrayWrapper<T>;
- }
-
- //_.orderBy
- interface LoDashStatic {
- /**
- * This method is like `_.sortBy` except that it allows specifying the sort
- * orders of the iteratees to sort by. If `orders` is unspecified, all values
- * are sorted in ascending order. Otherwise, specify an order of "desc" for
- * descending or "asc" for ascending sort order of corresponding values.
- *
- * @static
- * @memberOf _
- * @category Collection
- * @param {Array|Object} collection The collection to iterate over.
- * @param {Function[]|Object[]|string[]} [iteratees=[_.identity]] The iteratees to sort by.
- * @param {string[]} [orders] The sort orders of `iteratees`.
- * @param- {Object} [guard] Enables use as an iteratee for functions like `_.reduce`.
- * @returns {Array} Returns the new sorted array.
- * @example
- *
- * var users = [
- * { 'user': 'fred', 'age': 48 },
- * { 'user': 'barney', 'age': 34 },
- * { 'user': 'fred', 'age': 42 },
- * { 'user': 'barney', 'age': 36 }
- * ];
- *
- * // sort by `user` in ascending order and by `age` in descending order
- * _.orderBy(users, ['user', 'age'], ['asc', 'desc']);
- * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 42]]
- */
- orderBy<W extends Object, T>(
- collection: List<T>,
- iteratees: ListIterator<T, any>|string|W|(ListIterator<T, any>|string|W)[],
- orders?: boolean|string|(boolean|string)[]
- ): T[];
-
- /**
- * @see _.orderBy
- */
- orderBy<T>(
- collection: List<T>,
- iteratees: ListIterator<T, any>|string|Object|(ListIterator<T, any>|string|Object)[],
- orders?: boolean|string|(boolean|string)[]
- ): T[];
-
- /**
- * @see _.orderBy
- */
- orderBy<W extends Object, T>(
- collection: NumericDictionary<T>,
- iteratees: NumericDictionaryIterator<T, any>|string|W|(NumericDictionaryIterator<T, any>|string|W)[],
- orders?: boolean|string|(boolean|string)[]
- ): T[];
-
- /**
- * @see _.orderBy
- */
- orderBy<T>(
- collection: NumericDictionary<T>,
- iteratees: NumericDictionaryIterator<T, any>|string|Object|(NumericDictionaryIterator<T, any>|string|Object)[],
- orders?: boolean|string|(boolean|string)[]
- ): T[];
-
- /**
- * @see _.orderBy
- */
- orderBy<W extends Object, T>(
- collection: Dictionary<T>,
- iteratees: DictionaryIterator<T, any>|string|W|(DictionaryIterator<T, any>|string|W)[],
- orders?: boolean|string|(boolean|string)[]
- ): T[];
-
- /**
- * @see _.orderBy
- */
- orderBy<T>(
- collection: Dictionary<T>,
- iteratees: DictionaryIterator<T, any>|string|Object|(DictionaryIterator<T, any>|string|Object)[],
- orders?: boolean|string|(boolean|string)[]
- ): T[];
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.orderBy
- */
- orderBy(
- iteratees: ListIterator<T, any>|string|(ListIterator<T, any>|string)[],
- orders?: boolean|string|(boolean|string)[]
- ): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.orderBy
- */
- orderBy<W extends Object>(
- iteratees: ListIterator<T, any>|string|W|(ListIterator<T, any>|string|W)[],
- orders?: boolean|string|(boolean|string)[]
- ): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.orderBy
- */
- orderBy<W extends Object, T>(
- iteratees: ListIterator<T, any>|string|W|(ListIterator<T, any>|string|W)[],
- orders?: boolean|string|(boolean|string)[]
- ): LoDashImplicitArrayWrapper<T>;
-
- /**
- * @see _.orderBy
- */
- orderBy<T>(
- iteratees: ListIterator<T, any>|string|Object|(ListIterator<T, any>|string|Object)[],
- orders?: boolean|string|(boolean|string)[]
- ): LoDashImplicitArrayWrapper<T>;
-
- /**
- * @see _.orderBy
- */
- orderBy<W extends Object, T>(
- iteratees: NumericDictionaryIterator<T, any>|string|W|(NumericDictionaryIterator<T, any>|string|W)[],
- orders?: boolean|string|(boolean|string)[]
- ): LoDashImplicitArrayWrapper<T>;
-
- /**
- * @see _.orderBy
- */
- orderBy<T>(
- iteratees: NumericDictionaryIterator<T, any>|string|Object|(NumericDictionaryIterator<T, any>|string|Object)[],
- orders?: boolean|string|(boolean|string)[]
- ): LoDashImplicitArrayWrapper<T>;
-
- /**
- * @see _.orderBy
- */
- orderBy<W extends Object, T>(
- iteratees: DictionaryIterator<T, any>|string|W|(DictionaryIterator<T, any>|string|W)[],
- orders?: boolean|string|(boolean|string)[]
- ): LoDashImplicitArrayWrapper<T>;
-
- /**
- * @see _.orderBy
- */
- orderBy<T>(
- iteratees: DictionaryIterator<T, any>|string|Object|(DictionaryIterator<T, any>|string|Object)[],
- orders?: boolean|string|(boolean|string)[]
- ): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.orderBy
- */
- orderBy(
- iteratees: ListIterator<T, any>|string|(ListIterator<T, any>|string)[],
- orders?: boolean|string|(boolean|string)[]
- ): LoDashExplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.orderBy
- */
- orderBy<W extends Object>(
- iteratees: ListIterator<T, any>|string|W|(ListIterator<T, any>|string|W)[],
- orders?: boolean|string|(boolean|string)[]
- ): LoDashExplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.orderBy
- */
- orderBy<W extends Object, T>(
- iteratees: ListIterator<T, any>|string|W|(ListIterator<T, any>|string|W)[],
- orders?: boolean|string|(boolean|string)[]
- ): LoDashExplicitArrayWrapper<T>;
-
- /**
- * @see _.orderBy
- */
- orderBy<T>(
- iteratees: ListIterator<T, any>|string|Object|(ListIterator<T, any>|string|Object)[],
- orders?: boolean|string|(boolean|string)[]
- ): LoDashExplicitArrayWrapper<T>;
-
- /**
- * @see _.orderBy
- */
- orderBy<W extends Object, T>(
- iteratees: NumericDictionaryIterator<T, any>|string|W|(NumericDictionaryIterator<T, any>|string|W)[],
- orders?: boolean|string|(boolean|string)[]
- ): LoDashExplicitArrayWrapper<T>;
-
- /**
- * @see _.orderBy
- */
- orderBy<T>(
- iteratees: NumericDictionaryIterator<T, any>|string|Object|(NumericDictionaryIterator<T, any>|string|Object)[],
- orders?: boolean|string|(boolean|string)[]
- ): LoDashExplicitArrayWrapper<T>;
-
- /**
- * @see _.orderBy
- */
- orderBy<W extends Object, T>(
- iteratees: DictionaryIterator<T, any>|string|W|(DictionaryIterator<T, any>|string|W)[],
- orders?: boolean|string|(boolean|string)[]
- ): LoDashExplicitArrayWrapper<T>;
-
- /**
- * @see _.orderBy
- */
- orderBy<T>(
- iteratees: DictionaryIterator<T, any>|string|Object|(DictionaryIterator<T, any>|string|Object)[],
- orders?: boolean|string|(boolean|string)[]
- ): LoDashExplicitArrayWrapper<T>;
- }
-
- /********
- * Date *
- ********/
-
- //_.now
- interface LoDashStatic {
- /**
- * Gets the number of milliseconds that have elapsed since the Unix epoch (1 January 1970 00:00:00 UTC).
- *
- * @return The number of milliseconds.
- */
- now(): number;
- }
-
- interface LoDashImplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.now
- */
- now(): number;
- }
-
- interface LoDashExplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.now
- */
- now(): LoDashExplicitWrapper<number>;
- }
-
- /*************
- * Functions *
- *************/
-
- //_.after
- interface LoDashStatic {
- /**
- * The opposite of _.before; this method creates a function that invokes func once it’s called n or more times.
- *
- * @param n The number of calls before func is invoked.
- * @param func The function to restrict.
- * @return Returns the new restricted function.
- */
- after<TFunc extends Function>(
- n: number,
- func: TFunc
- ): TFunc;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.after
- **/
- after<TFunc extends Function>(func: TFunc): LoDashImplicitObjectWrapper<TFunc>;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.after
- **/
- after<TFunc extends Function>(func: TFunc): LoDashExplicitObjectWrapper<TFunc>;
- }
-
- //_.ary
- interface LoDashStatic {
- /**
- * Creates a function that accepts up to n arguments ignoring any additional arguments.
- *
- * @param func The function to cap arguments for.
- * @param n The arity cap.
- * @returns Returns the new function.
- */
- ary<TResult extends Function>(
- func: Function,
- n?: number
- ): TResult;
-
- ary<T extends Function, TResult extends Function>(
- func: T,
- n?: number
- ): TResult;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.ary
- */
- ary<TResult extends Function>(n?: number): LoDashImplicitObjectWrapper<TResult>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.ary
- */
- ary<TResult extends Function>(n?: number): LoDashExplicitObjectWrapper<TResult>;
- }
-
- //_.before
- interface LoDashStatic {
- /**
- * Creates a function that invokes func, with the this binding and arguments of the created function, while
- * it’s called less than n times. Subsequent calls to the created function return the result of the last func
- * invocation.
- *
- * @param n The number of calls at which func is no longer invoked.
- * @param func The function to restrict.
- * @return Returns the new restricted function.
- */
- before<TFunc extends Function>(
- n: number,
- func: TFunc
- ): TFunc;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.before
- **/
- before<TFunc extends Function>(func: TFunc): LoDashImplicitObjectWrapper<TFunc>;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.before
- **/
- before<TFunc extends Function>(func: TFunc): LoDashExplicitObjectWrapper<TFunc>;
- }
-
- //_.bind
- interface FunctionBind {
- placeholder: any;
-
- <T extends Function, TResult extends Function>(
- func: T,
- thisArg: any,
- ...partials: any[]
- ): TResult;
-
- <TResult extends Function>(
- func: Function,
- thisArg: any,
- ...partials: any[]
- ): TResult;
- }
-
- interface LoDashStatic {
- /**
- * Creates a function that invokes func with the this binding of thisArg and prepends any additional _.bind
- * arguments to those provided to the bound function.
- *
- * The _.bind.placeholder value, which defaults to _ in monolithic builds, may be used as a placeholder for
- * partially applied arguments.
- *
- * Note: Unlike native Function#bind this method does not set the "length" property of bound functions.
- *
- * @param func The function to bind.
- * @param thisArg The this binding of func.
- * @param partials The arguments to be partially applied.
- * @return Returns the new bound function.
- */
- bind: FunctionBind;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.bind
- */
- bind<TResult extends Function>(
- thisArg: any,
- ...partials: any[]
- ): LoDashImplicitObjectWrapper<TResult>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.bind
- */
- bind<TResult extends Function>(
- thisArg: any,
- ...partials: any[]
- ): LoDashExplicitObjectWrapper<TResult>;
- }
-
- //_.bindAll
- interface LoDashStatic {
- /**
- * Binds methods of an object to the object itself, overwriting the existing method. Method names may be
- * specified as individual arguments or as arrays of method names. If no method names are provided all
- * enumerable function properties, own and inherited, of object are bound.
- *
- * Note: This method does not set the "length" property of bound functions.
- *
- * @param object The object to bind and assign the bound methods to.
- * @param methodNames The object method names to bind, specified as individual method names or arrays of
- * method names.
- * @return Returns object.
- */
- bindAll<T>(
- object: T,
- ...methodNames: (string|string[])[]
- ): T;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.bindAll
- */
- bindAll(...methodNames: (string|string[])[]): LoDashImplicitObjectWrapper<T>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.bindAll
- */
- bindAll(...methodNames: (string|string[])[]): LoDashExplicitObjectWrapper<T>;
- }
-
- //_.bindKey
- interface FunctionBindKey {
- placeholder: any;
-
- <T extends Object, TResult extends Function>(
- object: T,
- key: any,
- ...partials: any[]
- ): TResult;
-
- <TResult extends Function>(
- object: Object,
- key: any,
- ...partials: any[]
- ): TResult;
- }
-
- interface LoDashStatic {
- /**
- * Creates a function that invokes the method at object[key] and prepends any additional _.bindKey arguments
- * to those provided to the bound function.
- *
- * This method differs from _.bind by allowing bound functions to reference methods that may be redefined
- * or don’t yet exist. See Peter Michaux’s article for more details.
- *
- * The _.bindKey.placeholder value, which defaults to _ in monolithic builds, may be used as a placeholder
- * for partially applied arguments.
- *
- * @param object The object the method belongs to.
- * @param key The key of the method.
- * @param partials The arguments to be partially applied.
- * @return Returns the new bound function.
- */
- bindKey: FunctionBindKey;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.bindKey
- */
- bindKey<TResult extends Function>(
- key: any,
- ...partials: any[]
- ): LoDashImplicitObjectWrapper<TResult>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.bindKey
- */
- bindKey<TResult extends Function>(
- key: any,
- ...partials: any[]
- ): LoDashExplicitObjectWrapper<TResult>;
- }
-
- //_.createCallback
- interface LoDashStatic {
- /**
- * Produces a callback bound to an optional thisArg. If func is a property name the created
- * callback will return the property value for a given element. If func is an object the created
- * callback will return true for elements that contain the equivalent object properties,
- * otherwise it will return false.
- * @param func The value to convert to a callback.
- * @param thisArg The this binding of the created callback.
- * @param argCount The number of arguments the callback accepts.
- * @return A callback function.
- **/
- createCallback(
- func: string,
- thisArg?: any,
- argCount?: number): () => any;
-
- /**
- * @see _.createCallback
- **/
- createCallback(
- func: Dictionary<any>,
- thisArg?: any,
- argCount?: number): () => boolean;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.createCallback
- **/
- createCallback(
- thisArg?: any,
- argCount?: number): LoDashImplicitObjectWrapper<() => any>;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.createCallback
- **/
- createCallback(
- thisArg?: any,
- argCount?: number): LoDashImplicitObjectWrapper<() => any>;
- }
-
- //_.curry
- interface LoDashStatic {
- /**
- * Creates a function that accepts one or more arguments of func that when called either invokes func returning
- * its result, if all func arguments have been provided, or returns a function that accepts one or more of the
- * remaining func arguments, and so on. The arity of func may be specified if func.length is not sufficient.
- * @param func The function to curry.
- * @return Returns the new curried function.
- */
- curry<T1, R>(func: (t1: T1) => R):
- CurriedFunction1<T1, R>;
- /**
- * Creates a function that accepts one or more arguments of func that when called either invokes func returning
- * its result, if all func arguments have been provided, or returns a function that accepts one or more of the
- * remaining func arguments, and so on. The arity of func may be specified if func.length is not sufficient.
- * @param func The function to curry.
- * @return Returns the new curried function.
- */
- curry<T1, T2, R>(func: (t1: T1, t2: T2) => R):
- CurriedFunction2<T1, T2, R>;
- /**
- * Creates a function that accepts one or more arguments of func that when called either invokes func returning
- * its result, if all func arguments have been provided, or returns a function that accepts one or more of the
- * remaining func arguments, and so on. The arity of func may be specified if func.length is not sufficient.
- * @param func The function to curry.
- * @return Returns the new curried function.
- */
- curry<T1, T2, T3, R>(func: (t1: T1, t2: T2, t3: T3) => R):
- CurriedFunction3<T1, T2, T3, R>;
- /**
- * Creates a function that accepts one or more arguments of func that when called either invokes func returning
- * its result, if all func arguments have been provided, or returns a function that accepts one or more of the
- * remaining func arguments, and so on. The arity of func may be specified if func.length is not sufficient.
- * @param func The function to curry.
- * @return Returns the new curried function.
- */
- curry<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R):
- CurriedFunction4<T1, T2, T3, T4, R>;
- /**
- * Creates a function that accepts one or more arguments of func that when called either invokes func returning
- * its result, if all func arguments have been provided, or returns a function that accepts one or more of the
- * remaining func arguments, and so on. The arity of func may be specified if func.length is not sufficient.
- * @param func The function to curry.
- * @return Returns the new curried function.
- */
- curry<T1, T2, T3, T4, T5, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4, t5: T5) => R):
- CurriedFunction5<T1, T2, T3, T4, T5, R>;
- /**
- * Creates a function that accepts one or more arguments of func that when called either invokes func returning
- * its result, if all func arguments have been provided, or returns a function that accepts one or more of the
- * remaining func arguments, and so on. The arity of func may be specified if func.length is not sufficient.
- * @param func The function to curry.
- * @param arity The arity of func.
- * @return Returns the new curried function.
- */
- curry<TResult extends Function>(
- func: Function,
- arity?: number): TResult;
- }
-
- interface CurriedFunction1<T1, R> {
- (): CurriedFunction1<T1, R>;
- (t1: T1): R;
- }
-
- interface CurriedFunction2<T1, T2, R> {
- (): CurriedFunction2<T1, T2, R>;
- (t1: T1): CurriedFunction1<T2, R>;
- (t1: T1, t2: T2): R;
- }
-
- interface CurriedFunction3<T1, T2, T3, R> {
- (): CurriedFunction3<T1, T2, T3, R>;
- (t1: T1): CurriedFunction2<T2, T3, R>;
- (t1: T1, t2: T2): CurriedFunction1<T3, R>;
- (t1: T1, t2: T2, t3: T3): R;
- }
-
- interface CurriedFunction4<T1, T2, T3, T4, R> {
- (): CurriedFunction4<T1, T2, T3, T4, R>;
- (t1: T1): CurriedFunction3<T2, T3, T4, R>;
- (t1: T1, t2: T2): CurriedFunction2<T3, T4, R>;
- (t1: T1, t2: T2, t3: T3): CurriedFunction1<T4, R>;
- (t1: T1, t2: T2, t3: T3, t4: T4): R;
- }
-
- interface CurriedFunction5<T1, T2, T3, T4, T5, R> {
- (): CurriedFunction5<T1, T2, T3, T4, T5, R>;
- (t1: T1): CurriedFunction4<T2, T3, T4, T5, R>;
- (t1: T1, t2: T2): CurriedFunction3<T3, T4, T5, R>;
- (t1: T1, t2: T2, t3: T3): CurriedFunction2<T4, T5, R>;
- (t1: T1, t2: T2, t3: T3, t4: T4): CurriedFunction1<T5, R>;
- (t1: T1, t2: T2, t3: T3, t4: T4, t5: T5): R;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.curry
- **/
- curry<TResult extends Function>(arity?: number): LoDashImplicitObjectWrapper<TResult>;
- }
-
- //_.curryRight
- interface LoDashStatic {
- /**
- * This method is like _.curry except that arguments are applied to func in the manner of _.partialRight
- * instead of _.partial.
- * @param func The function to curry.
- * @return Returns the new curried function.
- */
- curryRight<T1, R>(func: (t1: T1) => R):
- CurriedFunction1<T1, R>;
- /**
- * This method is like _.curry except that arguments are applied to func in the manner of _.partialRight
- * instead of _.partial.
- * @param func The function to curry.
- * @return Returns the new curried function.
- */
- curryRight<T1, T2, R>(func: (t1: T1, t2: T2) => R):
- CurriedFunction2<T2, T1, R>;
- /**
- * This method is like _.curry except that arguments are applied to func in the manner of _.partialRight
- * instead of _.partial.
- * @param func The function to curry.
- * @return Returns the new curried function.
- */
- curryRight<T1, T2, T3, R>(func: (t1: T1, t2: T2, t3: T3) => R):
- CurriedFunction3<T3, T2, T1, R>;
- /**
- * This method is like _.curry except that arguments are applied to func in the manner of _.partialRight
- * instead of _.partial.
- * @param func The function to curry.
- * @return Returns the new curried function.
- */
- curryRight<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R):
- CurriedFunction4<T4, T3, T2, T1, R>;
- /**
- * This method is like _.curry except that arguments are applied to func in the manner of _.partialRight
- * instead of _.partial.
- * @param func The function to curry.
- * @return Returns the new curried function.
- */
- curryRight<T1, T2, T3, T4, T5, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4, t5: T5) => R):
- CurriedFunction5<T5, T4, T3, T2, T1, R>;
- /**
- * This method is like _.curry except that arguments are applied to func in the manner of _.partialRight
- * instead of _.partial.
- * @param func The function to curry.
- * @param arity The arity of func.
- * @return Returns the new curried function.
- */
- curryRight<TResult extends Function>(
- func: Function,
- arity?: number): TResult;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.curryRight
- **/
- curryRight<TResult extends Function>(arity?: number): LoDashImplicitObjectWrapper<TResult>;
- }
-
- //_.debounce
- interface DebounceSettings {
- /**
- * Specify invoking on the leading edge of the timeout.
- */
- leading?: boolean;
-
- /**
- * The maximum time func is allowed to be delayed before it’s invoked.
- */
- maxWait?: number;
-
- /**
- * Specify invoking on the trailing edge of the timeout.
- */
- trailing?: boolean;
- }
-
- interface LoDashStatic {
- /**
- * Creates a debounced function that delays invoking func until after wait milliseconds have elapsed since
- * the last time the debounced function was invoked. The debounced function comes with a cancel method to
- * cancel delayed invocations. Provide an options object to indicate that func should be invoked on the
- * leading and/or trailing edge of the wait timeout. Subsequent calls to the debounced function return the
- * result of the last func invocation.
- *
- * Note: If leading and trailing options are true, func is invoked on the trailing edge of the timeout only
- * if the the debounced function is invoked more than once during the wait timeout.
- *
- * See David Corbacho’s article for details over the differences between _.debounce and _.throttle.
- *
- * @param func The function to debounce.
- * @param wait The number of milliseconds to delay.
- * @param options The options object.
- * @param options.leading Specify invoking on the leading edge of the timeout.
- * @param options.maxWait The maximum time func is allowed to be delayed before it’s invoked.
- * @param options.trailing Specify invoking on the trailing edge of the timeout.
- * @return Returns the new debounced function.
- */
- debounce<T extends Function>(
- func: T,
- wait?: number,
- options?: DebounceSettings
- ): T & Cancelable;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.debounce
- */
- debounce(
- wait?: number,
- options?: DebounceSettings
- ): LoDashImplicitObjectWrapper<T & Cancelable>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.debounce
- */
- debounce(
- wait?: number,
- options?: DebounceSettings
- ): LoDashExplicitObjectWrapper<T & Cancelable>;
- }
-
- //_.defer
- interface LoDashStatic {
- /**
- * Defers invoking the func until the current call stack has cleared. Any additional arguments are provided to
- * func when it’s invoked.
- *
- * @param func The function to defer.
- * @param args The arguments to invoke the function with.
- * @return Returns the timer id.
- */
- defer<T extends Function>(
- func: T,
- ...args: any[]
- ): number;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.defer
- */
- defer(...args: any[]): LoDashImplicitWrapper<number>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.defer
- */
- defer(...args: any[]): LoDashExplicitWrapper<number>;
- }
-
- //_.delay
- interface LoDashStatic {
- /**
- * Invokes func after wait milliseconds. Any additional arguments are provided to func when it’s invoked.
- *
- * @param func The function to delay.
- * @param wait The number of milliseconds to delay invocation.
- * @param args The arguments to invoke the function with.
- * @return Returns the timer id.
- */
- delay<T extends Function>(
- func: T,
- wait: number,
- ...args: any[]
- ): number;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.delay
- */
- delay(
- wait: number,
- ...args: any[]
- ): LoDashImplicitWrapper<number>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.delay
- */
- delay(
- wait: number,
- ...args: any[]
- ): LoDashExplicitWrapper<number>;
- }
-
- interface LoDashStatic {
- /**
- * Creates a function that invokes `func` with arguments reversed.
- *
- * @static
- * @memberOf _
- * @category Function
- * @param {Function} func The function to flip arguments for.
- * @returns {Function} Returns the new function.
- * @example
- *
- * var flipped = _.flip(function() {
- * return _.toArray(arguments);
- * });
- *
- * flipped('a', 'b', 'c', 'd');
- * // => ['d', 'c', 'b', 'a']
- */
- flip<T extends Function>(func: T): T;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.flip
- */
- flip(): LoDashImplicitObjectWrapper<T>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.flip
- */
- flip(): LoDashExplicitObjectWrapper<T>;
- }
-
- //_.flow
- interface LoDashStatic {
- /**
- * Creates a function that returns the result of invoking the provided functions with the this binding of the
- * created function, where each successive invocation is supplied the return value of the previous.
- *
- * @param funcs Functions to invoke.
- * @return Returns the new function.
- */
- flow<TResult extends Function>(...funcs: Function[]): TResult;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.flow
- */
- flow<TResult extends Function>(...funcs: Function[]): LoDashImplicitObjectWrapper<TResult>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.flow
- */
- flow<TResult extends Function>(...funcs: Function[]): LoDashExplicitObjectWrapper<TResult>;
- }
-
- //_.flowRight
- interface LoDashStatic {
- /**
- * This method is like _.flow except that it creates a function that invokes the provided functions from right
- * to left.
- *
- * @param funcs Functions to invoke.
- * @return Returns the new function.
- */
- flowRight<TResult extends Function>(...funcs: Function[]): TResult;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.flowRight
- */
- flowRight<TResult extends Function>(...funcs: Function[]): LoDashImplicitObjectWrapper<TResult>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.flowRight
- */
- flowRight<TResult extends Function>(...funcs: Function[]): LoDashExplicitObjectWrapper<TResult>;
- }
-
-
- //_.memoize
- interface MemoizedFunction extends Function {
- cache: MapCache;
- }
-
- interface LoDashStatic {
- /**
- * Creates a function that memoizes the result of func. If resolver is provided it determines the cache key for
- * storing the result based on the arguments provided to the memoized function. By default, the first argument
- * provided to the memoized function is coerced to a string and used as the cache key. The func is invoked with
- * the this binding of the memoized function.
- * @param func The function to have its output memoized.
- * @param resolver The function to resolve the cache key.
- * @return Returns the new memoizing function.
- */
- memoize<TResult extends MemoizedFunction>(
- func: Function,
- resolver?: Function): TResult;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.memoize
- */
- memoize<TResult extends MemoizedFunction>(resolver?: Function): LoDashImplicitObjectWrapper<TResult>;
- }
-
- //_.overArgs (was _.modArgs)
- interface LoDashStatic {
- /**
- * Creates a function that runs each argument through a corresponding transform function.
- *
- * @param func The function to wrap.
- * @param transforms The functions to transform arguments, specified as individual functions or arrays
- * of functions.
- * @return Returns the new function.
- */
- overArgs<T extends Function, TResult extends Function>(
- func: T,
- ...transforms: Function[]
- ): TResult;
-
- /**
- * @see _.overArgs
- */
- overArgs<T extends Function, TResult extends Function>(
- func: T,
- transforms: Function[]
- ): TResult;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.overArgs
- */
- overArgs<TResult extends Function>(...transforms: Function[]): LoDashImplicitObjectWrapper<TResult>;
-
- /**
- * @see _.overArgs
- */
- overArgs<TResult extends Function>(transforms: Function[]): LoDashImplicitObjectWrapper<TResult>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.overArgs
- */
- overArgs<TResult extends Function>(...transforms: Function[]): LoDashExplicitObjectWrapper<TResult>;
-
- /**
- * @see _.overArgs
- */
- overArgs<TResult extends Function>(transforms: Function[]): LoDashExplicitObjectWrapper<TResult>;
- }
-
- //_.negate
- interface LoDashStatic {
- /**
- * Creates a function that negates the result of the predicate func. The func predicate is invoked with
- * the this binding and arguments of the created function.
- *
- * @param predicate The predicate to negate.
- * @return Returns the new function.
- */
- negate<T extends Function>(predicate: T): (...args: any[]) => boolean;
-
- /**
- * @see _.negate
- */
- negate<T extends Function, TResult extends Function>(predicate: T): TResult;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.negate
- */
- negate(): LoDashImplicitObjectWrapper<(...args: any[]) => boolean>;
-
- /**
- * @see _.negate
- */
- negate<TResult extends Function>(): LoDashImplicitObjectWrapper<TResult>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.negate
- */
- negate(): LoDashExplicitObjectWrapper<(...args: any[]) => boolean>;
-
- /**
- * @see _.negate
- */
- negate<TResult extends Function>(): LoDashExplicitObjectWrapper<TResult>;
- }
-
- //_.once
- interface LoDashStatic {
- /**
- * Creates a function that is restricted to invoking func once. Repeat calls to the function return the value
- * of the first call. The func is invoked with the this binding and arguments of the created function.
- *
- * @param func The function to restrict.
- * @return Returns the new restricted function.
- */
- once<T extends Function>(func: T): T;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.once
- */
- once(): LoDashImplicitObjectWrapper<T>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.once
- */
- once(): LoDashExplicitObjectWrapper<T>;
- }
-
- //_.partial
- interface LoDashStatic {
- /**
- * Creates a function that, when called, invokes func with any additional partial arguments
- * prepended to those provided to the new function. This method is similar to _.bind except
- * it does not alter the this binding.
- * @param func The function to partially apply arguments to.
- * @param args Arguments to be partially applied.
- * @return The new partially applied function.
- **/
- partial: Partial;
- }
-
- type PH = LoDashStatic;
-
- interface Function0<R> {
- (): R;
- }
- interface Function1<T1, R> {
- (t1: T1): R;
- }
- interface Function2<T1, T2, R> {
- (t1: T1, t2: T2): R;
- }
- interface Function3<T1, T2, T3, R> {
- (t1: T1, t2: T2, t3: T3): R;
- }
- interface Function4<T1, T2, T3, T4, R> {
- (t1: T1, t2: T2, t3: T3, t4: T4): R;
- }
-
- interface Partial {
- // arity 0
- <R>(func: Function0<R>): Function0<R>;
- // arity 1
- <T1, R>(func: Function1<T1, R>): Function1<T1, R>;
- <T1, R>(func: Function1<T1, R>, arg1: T1): Function0<R>;
- // arity 2
- <T1, T2, R>(func: Function2<T1, T2, R>): Function2<T1, T2, R>;
- <T1, T2, R>(func: Function2<T1, T2, R>, arg1: T1): Function1< T2, R>;
- <T1, T2, R>(func: Function2<T1, T2, R>, plc1: PH, arg2: T2): Function1<T1, R>;
- <T1, T2, R>(func: Function2<T1, T2, R>, arg1: T1, arg2: T2): Function0< R>;
- // arity 3
- <T1, T2, T3, R>(func: Function3<T1, T2, T3, R>): Function3<T1, T2, T3, R>;
- <T1, T2, T3, R>(func: Function3<T1, T2, T3, R>, arg1: T1): Function2< T2, T3, R>;
- <T1, T2, T3, R>(func: Function3<T1, T2, T3, R>, plc1: PH, arg2: T2): Function2<T1, T3, R>;
- <T1, T2, T3, R>(func: Function3<T1, T2, T3, R>, arg1: T1, arg2: T2): Function1< T3, R>;
- <T1, T2, T3, R>(func: Function3<T1, T2, T3, R>, plc1: PH, plc2: PH, arg3: T3): Function2<T1, T2, R>;
- <T1, T2, T3, R>(func: Function3<T1, T2, T3, R>, arg1: T1, plc2: PH, arg3: T3): Function1< T2, R>;
- <T1, T2, T3, R>(func: Function3<T1, T2, T3, R>, plc1: PH, arg2: T2, arg3: T3): Function1<T1, R>;
- <T1, T2, T3, R>(func: Function3<T1, T2, T3, R>, arg1: T1, arg2: T2, arg3: T3): Function0< R>;
- // arity 4
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>): Function4<T1, T2, T3, T4, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg1: T1): Function3< T2, T3, T4, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, plc1: PH, arg2: T2): Function3<T1, T3, T4, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg1: T1, arg2: T2): Function2< T3, T4, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, plc1: PH, plc2: PH, arg3: T3): Function3<T1, T2, T4, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg1: T1, plc2: PH, arg3: T3): Function2< T2, T4, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, plc1: PH, arg2: T2, arg3: T3): Function2<T1, T4, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg1: T1, arg2: T2, arg3: T3): Function1< T4, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, plc1: PH, plc2: PH, plc3: PH, arg4: T4): Function3<T1, T2, T3, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg1: T1, plc2: PH, plc3: PH, arg4: T4): Function2< T2, T3, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, plc1: PH, arg2: T2, plc3: PH, arg4: T4): Function2<T1, T3, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg1: T1, arg2: T2, plc3: PH, arg4: T4): Function1< T3, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, plc1: PH, plc2: PH, arg3: T3, arg4: T4): Function2<T1, T2, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg1: T1, plc2: PH, arg3: T3, arg4: T4): Function1< T2, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, plc1: PH, arg2: T2, arg3: T3, arg4: T4): Function1<T1, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg1: T1, arg2: T2, arg3: T3, arg4: T4): Function0< R>;
- // catch-all
- (func: Function, ...args: any[]): Function;
- }
-
- //_.partialRight
- interface LoDashStatic {
- /**
- * This method is like _.partial except that partial arguments are appended to those provided
- * to the new function.
- * @param func The function to partially apply arguments to.
- * @param args Arguments to be partially applied.
- * @return The new partially applied function.
- **/
- partialRight: PartialRight
- }
-
- interface PartialRight {
- // arity 0
- <R>(func: Function0<R>): Function0<R>;
- // arity 1
- <T1, R>(func: Function1<T1, R>): Function1<T1, R>;
- <T1, R>(func: Function1<T1, R>, arg1: T1): Function0<R>;
- // arity 2
- <T1, T2, R>(func: Function2<T1, T2, R>): Function2<T1, T2, R>;
- <T1, T2, R>(func: Function2<T1, T2, R>, arg1: T1, plc2: PH): Function1< T2, R>;
- <T1, T2, R>(func: Function2<T1, T2, R>, arg2: T2): Function1<T1, R>;
- <T1, T2, R>(func: Function2<T1, T2, R>, arg1: T1, arg2: T2): Function0< R>;
- // arity 3
- <T1, T2, T3, R>(func: Function3<T1, T2, T3, R>): Function3<T1, T2, T3, R>;
- <T1, T2, T3, R>(func: Function3<T1, T2, T3, R>, arg1: T1, plc2: PH, plc3: PH): Function2< T2, T3, R>;
- <T1, T2, T3, R>(func: Function3<T1, T2, T3, R>, arg2: T2, plc3: PH): Function2<T1, T3, R>;
- <T1, T2, T3, R>(func: Function3<T1, T2, T3, R>, arg1: T1, arg2: T2, plc3: PH): Function1< T3, R>;
- <T1, T2, T3, R>(func: Function3<T1, T2, T3, R>, arg3: T3): Function2<T1, T2, R>;
- <T1, T2, T3, R>(func: Function3<T1, T2, T3, R>, arg1: T1, plc2: PH, arg3: T3): Function1< T2, R>;
- <T1, T2, T3, R>(func: Function3<T1, T2, T3, R>, arg2: T2, arg3: T3): Function1<T1, R>;
- <T1, T2, T3, R>(func: Function3<T1, T2, T3, R>, arg1: T1, arg2: T2, arg3: T3): Function0< R>;
- // arity 4
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>): Function4<T1, T2, T3, T4, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg1: T1, plc2: PH, plc3: PH, plc4: PH): Function3< T2, T3, T4, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg2: T2, plc3: PH, plc4: PH): Function3<T1, T3, T4, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg1: T1, arg2: T2, plc3: PH, plc4: PH): Function2< T3, T4, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg3: T3, plc4: PH): Function3<T1, T2, T4, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg1: T1, plc2: PH, arg3: T3, plc4: PH): Function2< T2, T4, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg2: T2, arg3: T3, plc4: PH): Function2<T1, T4, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg1: T1, arg2: T2, arg3: T3, plc4: PH): Function1< T4, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg4: T4): Function3<T1, T2, T3, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg1: T1, plc2: PH, plc3: PH, arg4: T4): Function2< T2, T3, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg2: T2, plc3: PH, arg4: T4): Function2<T1, T3, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg1: T1, arg2: T2, plc3: PH, arg4: T4): Function1< T3, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg3: T3, arg4: T4): Function2<T1, T2, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg1: T1, plc2: PH, arg3: T3, arg4: T4): Function1< T2, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg2: T2, arg3: T3, arg4: T4): Function1<T1, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg1: T1, arg2: T2, arg3: T3, arg4: T4): Function0< R>;
- // catch-all
- (func: Function, ...args: any[]): Function;
- }
-
- //_.rearg
- interface LoDashStatic {
- /**
- * Creates a function that invokes func with arguments arranged according to the specified indexes where the
- * argument value at the first index is provided as the first argument, the argument value at the second index
- * is provided as the second argument, and so on.
- * @param func The function to rearrange arguments for.
- * @param indexes The arranged argument indexes, specified as individual indexes or arrays of indexes.
- * @return Returns the new function.
- */
- rearg<TResult extends Function>(func: Function, indexes: number[]): TResult;
-
- /**
- * @see _.rearg
- */
- rearg<TResult extends Function>(func: Function, ...indexes: number[]): TResult;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.rearg
- */
- rearg<TResult extends Function>(indexes: number[]): LoDashImplicitObjectWrapper<TResult>;
-
- /**
- * @see _.rearg
- */
- rearg<TResult extends Function>(...indexes: number[]): LoDashImplicitObjectWrapper<TResult>;
- }
-
- //_.rest
- interface LoDashStatic {
- /**
- * Creates a function that invokes func with the this binding of the created function and arguments from start
- * and beyond provided as an array.
- *
- * Note: This method is based on the rest parameter.
- *
- * @param func The function to apply a rest parameter to.
- * @param start The start position of the rest parameter.
- * @return Returns the new function.
- */
- rest<TResult extends Function>(
- func: Function,
- start?: number
- ): TResult;
-
- /**
- * @see _.rest
- */
- rest<TResult extends Function, TFunc extends Function>(
- func: TFunc,
- start?: number
- ): TResult;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.rest
- */
- rest<TResult extends Function>(start?: number): LoDashImplicitObjectWrapper<TResult>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.rest
- */
- rest<TResult extends Function>(start?: number): LoDashExplicitObjectWrapper<TResult>;
- }
-
- //_.spread
- interface LoDashStatic {
- /**
- * Creates a function that invokes func with the this binding of the created function and an array of arguments
- * much like Function#apply.
- *
- * Note: This method is based on the spread operator.
- *
- * @param func The function to spread arguments over.
- * @return Returns the new function.
- */
- spread<F extends Function, T extends Function>(func: F): T;
-
- /**
- * @see _.spread
- */
- spread<T extends Function>(func: Function): T;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.spread
- */
- spread<T extends Function>(): LoDashImplicitObjectWrapper<T>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.spread
- */
- spread<T extends Function>(): LoDashExplicitObjectWrapper<T>;
- }
-
- //_.throttle
- interface ThrottleSettings {
- /**
- * If you'd like to disable the leading-edge call, pass this as false.
- */
- leading?: boolean;
-
- /**
- * If you'd like to disable the execution on the trailing-edge, pass false.
- */
- trailing?: boolean;
- }
-
- interface LoDashStatic {
- /**
- * Creates a throttled function that only invokes func at most once per every wait milliseconds. The throttled
- * function comes with a cancel method to cancel delayed invocations. Provide an options object to indicate
- * that func should be invoked on the leading and/or trailing edge of the wait timeout. Subsequent calls to
- * the throttled function return the result of the last func call.
- *
- * Note: If leading and trailing options are true, func is invoked on the trailing edge of the timeout only if
- * the the throttled function is invoked more than once during the wait timeout.
- *
- * @param func The function to throttle.
- * @param wait The number of milliseconds to throttle invocations to.
- * @param options The options object.
- * @param options.leading Specify invoking on the leading edge of the timeout.
- * @param options.trailing Specify invoking on the trailing edge of the timeout.
- * @return Returns the new throttled function.
- */
- throttle<T extends Function>(
- func: T,
- wait?: number,
- options?: ThrottleSettings
- ): T & Cancelable;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.throttle
- */
- throttle(
- wait?: number,
- options?: ThrottleSettings
- ): LoDashImplicitObjectWrapper<T & Cancelable>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.throttle
- */
- throttle(
- wait?: number,
- options?: ThrottleSettings
- ): LoDashExplicitObjectWrapper<T & Cancelable>;
- }
-
- //_.unary
- interface LoDashStatic {
- /**
- * Creates a function that accepts up to one argument, ignoring any
- * additional arguments.
- *
- * @static
- * @memberOf _
- * @category Function
- * @param {Function} func The function to cap arguments for.
- * @returns {Function} Returns the new function.
- * @example
- *
- * _.map(['6', '8', '10'], _.unary(parseInt));
- * // => [6, 8, 10]
- */
- unary<T extends Function>(func: T): T;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.unary
- */
- unary(): LoDashImplicitObjectWrapper<T>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.unary
- */
- unary(): LoDashExplicitObjectWrapper<T>;
- }
-
- //_.wrap
- interface LoDashStatic {
- /**
- * Creates a function that provides value to the wrapper function as its first argument. Any additional
- * arguments provided to the function are appended to those provided to the wrapper function. The wrapper is
- * invoked with the this binding of the created function.
- *
- * @param value The value to wrap.
- * @param wrapper The wrapper function.
- * @return Returns the new function.
- */
- wrap<V, W extends Function, R extends Function>(
- value: V,
- wrapper: W
- ): R;
-
- /**
- * @see _.wrap
- */
- wrap<V, R extends Function>(
- value: V,
- wrapper: Function
- ): R;
-
- /**
- * @see _.wrap
- */
- wrap<R extends Function>(
- value: any,
- wrapper: Function
- ): R;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.wrap
- */
- wrap<W extends Function, R extends Function>(wrapper: W): LoDashImplicitObjectWrapper<R>;
-
- /**
- * @see _.wrap
- */
- wrap<R extends Function>(wrapper: Function): LoDashImplicitObjectWrapper<R>;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.wrap
- */
- wrap<W extends Function, R extends Function>(wrapper: W): LoDashImplicitObjectWrapper<R>;
-
- /**
- * @see _.wrap
- */
- wrap<R extends Function>(wrapper: Function): LoDashImplicitObjectWrapper<R>;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.wrap
- */
- wrap<W extends Function, R extends Function>(wrapper: W): LoDashImplicitObjectWrapper<R>;
-
- /**
- * @see _.wrap
- */
- wrap<R extends Function>(wrapper: Function): LoDashImplicitObjectWrapper<R>;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.wrap
- */
- wrap<W extends Function, R extends Function>(wrapper: W): LoDashExplicitObjectWrapper<R>;
-
- /**
- * @see _.wrap
- */
- wrap<R extends Function>(wrapper: Function): LoDashExplicitObjectWrapper<R>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.wrap
- */
- wrap<W extends Function, R extends Function>(wrapper: W): LoDashExplicitObjectWrapper<R>;
-
- /**
- * @see _.wrap
- */
- wrap<R extends Function>(wrapper: Function): LoDashExplicitObjectWrapper<R>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.wrap
- */
- wrap<W extends Function, R extends Function>(wrapper: W): LoDashExplicitObjectWrapper<R>;
-
- /**
- * @see _.wrap
- */
- wrap<R extends Function>(wrapper: Function): LoDashExplicitObjectWrapper<R>;
- }
-
- /********
- * Lang *
- ********/
-
- //_.clone
- interface LoDashStatic {
- /**
- * Creates a shallow clone of `value`.
- *
- * **Note:** This method is loosely based on the
- * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)
- * and supports cloning arrays, array buffers, booleans, date objects, maps,
- * numbers, `Object` objects, regexes, sets, strings, symbols, and typed
- * arrays. The own enumerable properties of `arguments` objects are cloned
- * as plain objects. An empty object is returned for uncloneable values such
- * as error objects, functions, DOM nodes, and WeakMaps.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to clone.
- * @returns {*} Returns the cloned value.
- * @example
- *
- * var objects = [{ 'a': 1 }, { 'b': 2 }];
- *
- * var shallow = _.clone(objects);
- * console.log(shallow[0] === objects[0]);
- * // => true
- */
- clone<T>(value: T): T;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.clone
- */
- clone(): T;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
-
- /**
- * @see _.clone
- */
- clone(): T[];
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.clone
- */
- clone(): T;
- }
-
- //_.cloneDeep
- interface LoDashStatic {
- /**
- * This method is like `_.clone` except that it recursively clones `value`.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to recursively clone.
- * @returns {*} Returns the deep cloned value.
- * @example
- *
- * var objects = [{ 'a': 1 }, { 'b': 2 }];
- *
- * var deep = _.cloneDeep(objects);
- * console.log(deep[0] === objects[0]);
- * // => false
- */
- cloneDeep<T>(value: T): T;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.cloneDeep
- */
- cloneDeep(): T;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.cloneDeep
- */
- cloneDeep(): T[];
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.cloneDeep
- */
- cloneDeep(): T;
- }
-
- //_.cloneWith
- interface LoDashStatic {
- /**
- * Creates a shallow clone of `value`.
- *
- * **Note:** This method is loosely based on the
- * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)
- * and supports cloning arrays, array buffers, booleans, date objects, maps,
- * numbers, `Object` objects, regexes, sets, strings, symbols, and typed
- * arrays. The own enumerable properties of `arguments` objects are cloned
- * as plain objects. An empty object is returned for uncloneable values such
- * as error objects, functions, DOM nodes, and WeakMaps.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to clone.
- * @returns {*} Returns the cloned value.
- * @example
- *
- * var objects = [{ 'a': 1 }, { 'b': 2 }];
- *
- * var shallow = _.clone(objects);
- * console.log(shallow[0] === objects[0]);
- * // => true
- */
- clone<T>(
- value: T,
- customizer: (value: any) => any): T;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.clone
- */
- clone(customizer: (value: any) => any): T;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
-
- /**
- * @see _.clone
- */
- clone(customizer: (value: any) => any): T[];
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.clone
- */
- clone(customizer: (value: any) => any): T;
- }
-
- //_.cloneDeepWith
- interface LoDashStatic {
- /**
- * Creates a deep clone of value. If customizer is provided it’s invoked to produce the cloned values. If
- * customizer returns undefined cloning is handled by the method instead. The customizer is bound to thisArg
- * and invoked with up to three argument; (value [, index|key, object]).
- * Note: This method is loosely based on the structured clone algorithm. The enumerable properties of arguments
- * objects and objects created by constructors other than Object are cloned to plain Object objects. An empty
- * object is returned for uncloneable values such as functions, DOM nodes, Maps, Sets, and WeakMaps.
- * @param value The value to deep clone.
- * @param customizer The function to customize cloning values.
- * @param thisArg The this binding of customizer.
- * @return Returns the deep cloned value.
- */
- cloneDeep<T>(
- value: T,
- customizer: (value: any) => any): T;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.cloneDeep
- */
- cloneDeep(customizer: (value: any) => any): T;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.cloneDeep
- */
- cloneDeep(customizer: (value: any) => any): T[];
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.cloneDeep
- */
- cloneDeep(customizer: (value: any) => any): T;
- }
-
- //_.eq
- interface LoDashStatic {
- /**
- * Performs a [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
- * comparison between two values to determine if they are equivalent.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to compare.
- * @param {*} other The other value to compare.
- * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
- * @example
- *
- * var object = { 'user': 'fred' };
- * var other = { 'user': 'fred' };
- *
- * _.eq(object, object);
- * // => true
- *
- * _.eq(object, other);
- * // => false
- *
- * _.eq('a', 'a');
- * // => true
- *
- * _.eq('a', Object('a'));
- * // => false
- *
- * _.eq(NaN, NaN);
- * // => true
- */
- eq(
- value: any,
- other: any
- ): boolean;
- }
-
- interface LoDashImplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.isEqual
- */
- eq(
- other: any
- ): boolean;
- }
-
- interface LoDashExplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.isEqual
- */
- eq(
- other: any
- ): LoDashExplicitWrapper<boolean>;
- }
-
- //_.gt
- interface LoDashStatic {
- /**
- * Checks if value is greater than other.
- *
- * @param value The value to compare.
- * @param other The other value to compare.
- * @return Returns true if value is greater than other, else false.
- */
- gt(
- value: any,
- other: any
- ): boolean;
- }
-
- interface LoDashImplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.gt
- */
- gt(other: any): boolean;
- }
-
- interface LoDashExplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.gt
- */
- gt(other: any): LoDashExplicitWrapper<boolean>;
- }
-
- //_.gte
- interface LoDashStatic {
- /**
- * Checks if value is greater than or equal to other.
- *
- * @param value The value to compare.
- * @param other The other value to compare.
- * @return Returns true if value is greater than or equal to other, else false.
- */
- gte(
- value: any,
- other: any
- ): boolean;
- }
-
- interface LoDashImplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.gte
- */
- gte(other: any): boolean;
- }
-
- interface LoDashExplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.gte
- */
- gte(other: any): LoDashExplicitWrapper<boolean>;
- }
-
- //_.isArguments
- interface LoDashStatic {
- /**
- * Checks if value is classified as an arguments object.
- *
- * @param value The value to check.
- * @return Returns true if value is correctly classified, else false.
- */
- isArguments(value?: any): value is IArguments;
- }
-
- interface LoDashImplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.isArguments
- */
- isArguments(): boolean;
- }
-
- interface LoDashExplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.isArguments
- */
- isArguments(): LoDashExplicitWrapper<boolean>;
- }
-
- //_.isArray
- interface LoDashStatic {
- /**
- * Checks if value is classified as an Array object.
- * @param value The value to check.
- *
- * @return Returns true if value is correctly classified, else false.
- */
- isArray<T>(value?: any): value is T[];
- }
-
- interface LoDashImplicitWrapperBase<T,TWrapper> {
- /**
- * @see _.isArray
- */
- isArray(): boolean;
- }
-
- interface LoDashExplicitWrapperBase<T,TWrapper> {
- /**
- * @see _.isArray
- */
- isArray(): LoDashExplicitWrapper<boolean>;
- }
-
- //_.isArrayLike
- interface LoDashStatic {
- /**
- * Checks if `value` is array-like. A value is considered array-like if it's
- * not a function and has a `value.length` that's an integer greater than or
- * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
- *
- * @static
- * @memberOf _
- * @type Function
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
- * @example
- *
- * _.isArrayLike([1, 2, 3]);
- * // => true
- *
- * _.isArrayLike(document.body.children);
- * // => true
- *
- * _.isArrayLike('abc');
- * // => true
- *
- * _.isArrayLike(_.noop);
- * // => false
- */
- isArrayLike<T>(value?: any): value is T[];
- }
-
- interface LoDashImplicitWrapperBase<T,TWrapper> {
- /**
- * @see _.isArrayLike
- */
- isArrayLike(): boolean;
- }
-
- interface LoDashExplicitWrapperBase<T,TWrapper> {
- /**
- * @see _.isArrayLike
- */
- isArrayLike(): LoDashExplicitWrapper<boolean>;
- }
-
- //_.isArrayLikeObject
- interface LoDashStatic {
- /**
- * This method is like `_.isArrayLike` except that it also checks if `value`
- * is an object.
- *
- * @static
- * @memberOf _
- * @type Function
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is an array-like object, else `false`.
- * @example
- *
- * _.isArrayLikeObject([1, 2, 3]);
- * // => true
- *
- * _.isArrayLikeObject(document.body.children);
- * // => true
- *
- * _.isArrayLikeObject('abc');
- * // => false
- *
- * _.isArrayLikeObject(_.noop);
- * // => false
- */
- isArrayLikeObject<T>(value?: any): value is T[];
- }
-
- interface LoDashImplicitWrapperBase<T,TWrapper> {
- /**
- * @see _.isArrayLikeObject
- */
- isArrayLikeObject(): boolean;
- }
-
- interface LoDashExplicitWrapperBase<T,TWrapper> {
- /**
- * @see _.isArrayLikeObject
- */
- isArrayLikeObject(): LoDashExplicitWrapper<boolean>;
- }
-
- //_.isBoolean
- interface LoDashStatic {
- /**
- * Checks if value is classified as a boolean primitive or object.
- *
- * @param value The value to check.
- * @return Returns true if value is correctly classified, else false.
- */
- isBoolean(value?: any): value is boolean;
- }
-
- interface LoDashImplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.isBoolean
- */
- isBoolean(): boolean;
- }
-
- interface LoDashExplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.isBoolean
- */
- isBoolean(): LoDashExplicitWrapper<boolean>;
- }
-
- //_.isDate
- interface LoDashStatic {
- /**
- * Checks if value is classified as a Date object.
- * @param value The value to check.
- *
- * @return Returns true if value is correctly classified, else false.
- */
- isDate(value?: any): value is Date;
- }
-
- interface LoDashImplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.isDate
- */
- isDate(): boolean;
- }
-
- interface LoDashExplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.isDate
- */
- isDate(): LoDashExplicitWrapper<boolean>;
- }
-
- //_.isElement
- interface LoDashStatic {
- /**
- * Checks if value is a DOM element.
- *
- * @param value The value to check.
- * @return Returns true if value is a DOM element, else false.
- */
- isElement(value?: any): boolean;
- }
-
- interface LoDashImplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.isElement
- */
- isElement(): boolean;
- }
-
- interface LoDashExplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.isElement
- */
- isElement(): LoDashExplicitWrapper<boolean>;
- }
-
- //_.isEmpty
- interface LoDashStatic {
- /**
- * Checks if value is empty. A value is considered empty unless it’s an arguments object, array, string, or
- * jQuery-like collection with a length greater than 0 or an object with own enumerable properties.
- * @param value The value to inspect.
- * @return Returns true if value is empty, else false.
- **/
- isEmpty(value?: any[]|Dictionary<any>|string|any): boolean;
- }
-
- interface LoDashImplicitWrapperBase<T,TWrapper> {
- /**
- * @see _.isEmpty
- */
- isEmpty(): boolean;
- }
-
- //_.isEqual
- interface LoDashStatic {
- /**
- * Performs a deep comparison between two values to determine if they are
- * equivalent.
- *
- * **Note:** This method supports comparing arrays, array buffers, booleans,
- * date objects, error objects, maps, numbers, `Object` objects, regexes,
- * sets, strings, symbols, and typed arrays. `Object` objects are compared
- * by their own, not inherited, enumerable properties. Functions and DOM
- * nodes are **not** supported.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to compare.
- * @param {*} other The other value to compare.
- * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
- * @example
- *
- * var object = { 'user': 'fred' };
- * var other = { 'user': 'fred' };
- *
- * _.isEqual(object, other);
- * // => true
- *
- * object === other;
- * // => false
- */
- isEqual(
- value: any,
- other: any
- ): boolean;
- }
-
- interface LoDashImplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.isEqual
- */
- isEqual(
- other: any
- ): boolean;
- }
-
- interface LoDashExplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.isEqual
- */
- isEqual(
- other: any
- ): LoDashExplicitWrapper<boolean>;
- }
-
- // _.isEqualWith
- interface IsEqualCustomizer {
- (value: any, other: any, indexOrKey?: number|string): boolean;
- }
-
- interface LoDashStatic {
- /**
- * This method is like `_.isEqual` except that it accepts `customizer` which is
- * invoked to compare values. If `customizer` returns `undefined` comparisons are
- * handled by the method instead. The `customizer` is invoked with up to seven arguments:
- * (objValue, othValue [, index|key, object, other, stack]).
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to compare.
- * @param {*} other The other value to compare.
- * @param {Function} [customizer] The function to customize comparisons.
- * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
- * @example
- *
- * function isGreeting(value) {
- * return /^h(?:i|ello)$/.test(value);
- * }
- *
- * function customizer(objValue, othValue) {
- * if (isGreeting(objValue) && isGreeting(othValue)) {
- * return true;
- * }
- * }
- *
- * var array = ['hello', 'goodbye'];
- * var other = ['hi', 'goodbye'];
- *
- * _.isEqualWith(array, other, customizer);
- * // => true
- */
- isEqualWith(
- value: any,
- other: any,
- customizer: IsEqualCustomizer
- ): boolean;
- }
-
- interface LoDashImplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.isEqualWith
- */
- isEqualWith(
- other: any,
- customizer: IsEqualCustomizer
- ): boolean;
- }
-
- interface LoDashExplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.isEqualWith
- */
- isEqualWith(
- other: any,
- customizer: IsEqualCustomizer
- ): LoDashExplicitWrapper<boolean>;
- }
-
- //_.isError
- interface LoDashStatic {
- /**
- * Checks if value is an Error, EvalError, RangeError, ReferenceError, SyntaxError, TypeError, or URIError
- * object.
- *
- * @param value The value to check.
- * @return Returns true if value is an error object, else false.
- */
- isError(value: any): value is Error;
- }
-
- interface LoDashImplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.isError
- */
- isError(): boolean;
- }
-
- interface LoDashExplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.isError
- */
- isError(): LoDashExplicitWrapper<boolean>;
- }
-
- //_.isFinite
- interface LoDashStatic {
- /**
- * Checks if value is a finite primitive number.
- *
- * Note: This method is based on Number.isFinite.
- *
- * @param value The value to check.
- * @return Returns true if value is a finite number, else false.
- */
- isFinite(value?: any): boolean;
- }
-
- interface LoDashImplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.isFinite
- */
- isFinite(): boolean;
- }
-
- interface LoDashExplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.isFinite
- */
- isFinite(): LoDashExplicitWrapper<boolean>;
- }
-
- //_.isFunction
- interface LoDashStatic {
- /**
- * Checks if value is classified as a Function object.
- *
- * @param value The value to check.
- * @return Returns true if value is correctly classified, else false.
- */
- isFunction(value?: any): value is Function;
- }
-
- interface LoDashImplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.isFunction
- */
- isFunction(): boolean;
- }
-
- interface LoDashExplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.isFunction
- */
- isFunction(): LoDashExplicitWrapper<boolean>;
- }
-
- //_.isInteger
- interface LoDashStatic {
- /**
- * Checks if `value` is an integer.
- *
- * **Note:** This method is based on [`Number.isInteger`](https://mdn.io/Number/isInteger).
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is an integer, else `false`.
- * @example
- *
- * _.isInteger(3);
- * // => true
- *
- * _.isInteger(Number.MIN_VALUE);
- * // => false
- *
- * _.isInteger(Infinity);
- * // => false
- *
- * _.isInteger('3');
- * // => false
- */
- isInteger(value?: any): boolean;
- }
-
- interface LoDashImplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.isInteger
- */
- isInteger(): boolean;
- }
-
- interface LoDashExplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.isInteger
- */
- isInteger(): LoDashExplicitWrapper<boolean>;
- }
-
- //_.isLength
- interface LoDashStatic {
- /**
- * Checks if `value` is a valid array-like length.
- *
- * **Note:** This function is loosely based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
- * @example
- *
- * _.isLength(3);
- * // => true
- *
- * _.isLength(Number.MIN_VALUE);
- * // => false
- *
- * _.isLength(Infinity);
- * // => false
- *
- * _.isLength('3');
- * // => false
- */
- isLength(value?: any): boolean;
- }
-
- interface LoDashImplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.isLength
- */
- isLength(): boolean;
- }
-
- interface LoDashExplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.isLength
- */
- isLength(): LoDashExplicitWrapper<boolean>;
- }
-
- //_.isMatch
- interface isMatchCustomizer {
- (value: any, other: any, indexOrKey?: number|string): boolean;
- }
-
- interface LoDashStatic {
- /**
- * Performs a deep comparison between `object` and `source` to determine if
- * `object` contains equivalent property values.
- *
- * **Note:** This method supports comparing the same values as `_.isEqual`.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {Object} object The object to inspect.
- * @param {Object} source The object of property values to match.
- * @returns {boolean} Returns `true` if `object` is a match, else `false`.
- * @example
- *
- * var object = { 'user': 'fred', 'age': 40 };
- *
- * _.isMatch(object, { 'age': 40 });
- * // => true
- *
- * _.isMatch(object, { 'age': 36 });
- * // => false
- */
- isMatch(object: Object, source: Object): boolean;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.isMatch
- */
- isMatch(source: Object): boolean;
- }
-
- //_.isMatchWith
- interface isMatchWithCustomizer {
- (value: any, other: any, indexOrKey?: number|string): boolean;
- }
-
- interface LoDashStatic {
- /**
- * This method is like `_.isMatch` except that it accepts `customizer` which
- * is invoked to compare values. If `customizer` returns `undefined` comparisons
- * are handled by the method instead. The `customizer` is invoked with three
- * arguments: (objValue, srcValue, index|key, object, source).
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {Object} object The object to inspect.
- * @param {Object} source The object of property values to match.
- * @param {Function} [customizer] The function to customize comparisons.
- * @returns {boolean} Returns `true` if `object` is a match, else `false`.
- * @example
- *
- * function isGreeting(value) {
- * return /^h(?:i|ello)$/.test(value);
- * }
- *
- * function customizer(objValue, srcValue) {
- * if (isGreeting(objValue) && isGreeting(srcValue)) {
- * return true;
- * }
- * }
- *
- * var object = { 'greeting': 'hello' };
- * var source = { 'greeting': 'hi' };
- *
- * _.isMatchWith(object, source, customizer);
- * // => true
- */
- isMatchWith(object: Object, source: Object, customizer: isMatchWithCustomizer): boolean;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.isMatchWith
- */
- isMatchWith(source: Object, customizer: isMatchWithCustomizer): boolean;
- }
-
- //_.isNaN
- interface LoDashStatic {
- /**
- * Checks if value is NaN.
- *
- * Note: This method is not the same as isNaN which returns true for undefined and other non-numeric values.
- *
- * @param value The value to check.
- * @return Returns true if value is NaN, else false.
- */
- isNaN(value?: any): boolean;
- }
-
- interface LoDashImplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.isNaN
- */
- isNaN(): boolean;
- }
-
- interface LoDashExplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.isNaN
- */
- isNaN(): LoDashExplicitWrapper<boolean>;
- }
-
- //_.isNative
- interface LoDashStatic {
- /**
- * Checks if value is a native function.
- * @param value The value to check.
- *
- * @retrun Returns true if value is a native function, else false.
- */
- isNative(value: any): value is Function;
- }
-
- interface LoDashImplicitWrapperBase<T, TWrapper> {
- /**
- * see _.isNative
- */
- isNative(): boolean;
- }
-
- interface LoDashExplicitWrapperBase<T, TWrapper> {
- /**
- * see _.isNative
- */
- isNative(): LoDashExplicitWrapper<boolean>;
- }
-
- //_.isNil
- interface LoDashStatic {
- /**
- * Checks if `value` is `null` or `undefined`.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is nullish, else `false`.
- * @example
- *
- * _.isNil(null);
- * // => true
- *
- * _.isNil(void 0);
- * // => true
- *
- * _.isNil(NaN);
- * // => false
- */
- isNil(value?: any): boolean;
- }
-
- interface LoDashImplicitWrapperBase<T, TWrapper> {
- /**
- * see _.isNil
- */
- isNil(): boolean;
- }
-
- interface LoDashExplicitWrapperBase<T, TWrapper> {
- /**
- * see _.isNil
- */
- isNil(): LoDashExplicitWrapper<boolean>;
- }
-
- //_.isNull
- interface LoDashStatic {
- /**
- * Checks if value is null.
- *
- * @param value The value to check.
- * @return Returns true if value is null, else false.
- */
- isNull(value?: any): boolean;
- }
-
- interface LoDashImplicitWrapperBase<T, TWrapper> {
- /**
- * see _.isNull
- */
- isNull(): boolean;
- }
-
- interface LoDashExplicitWrapperBase<T, TWrapper> {
- /**
- * see _.isNull
- */
- isNull(): LoDashExplicitWrapper<boolean>;
- }
-
- //_.isNumber
- interface LoDashStatic {
- /**
- * Checks if value is classified as a Number primitive or object.
- *
- * Note: To exclude Infinity, -Infinity, and NaN, which are classified as numbers, use the _.isFinite method.
- *
- * @param value The value to check.
- * @return Returns true if value is correctly classified, else false.
- */
- isNumber(value?: any): value is number;
- }
-
- interface LoDashImplicitWrapperBase<T, TWrapper> {
- /**
- * see _.isNumber
- */
- isNumber(): boolean;
- }
-
- interface LoDashExplicitWrapperBase<T, TWrapper> {
- /**
- * see _.isNumber
- */
- isNumber(): LoDashExplicitWrapper<boolean>;
- }
-
- //_.isObject
- interface LoDashStatic {
- /**
- * Checks if value is the language type of Object. (e.g. arrays, functions, objects, regexes, new Number(0),
- * and new String(''))
- *
- * @param value The value to check.
- * @return Returns true if value is an object, else false.
- */
- isObject(value?: any): boolean;
- }
-
- interface LoDashImplicitWrapperBase<T, TWrapper> {
- /**
- * see _.isObject
- */
- isObject(): boolean;
- }
-
- interface LoDashExplicitWrapperBase<T, TWrapper> {
- /**
- * see _.isObject
- */
- isObject(): LoDashExplicitWrapper<boolean>;
- }
-
- //_.isObjectLike
- interface LoDashStatic {
- /**
- * Checks if `value` is object-like. A value is object-like if it's not `null`
- * and has a `typeof` result of "object".
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
- * @example
- *
- * _.isObjectLike({});
- * // => true
- *
- * _.isObjectLike([1, 2, 3]);
- * // => true
- *
- * _.isObjectLike(_.noop);
- * // => false
- *
- * _.isObjectLike(null);
- * // => false
- */
- isObjectLike(value?: any): boolean;
- }
-
- interface LoDashImplicitWrapperBase<T, TWrapper> {
- /**
- * see _.isObjectLike
- */
- isObjectLike(): boolean;
- }
-
- interface LoDashExplicitWrapperBase<T, TWrapper> {
- /**
- * see _.isObjectLike
- */
- isObjectLike(): LoDashExplicitWrapper<boolean>;
- }
-
- //_.isPlainObject
- interface LoDashStatic {
- /**
- * Checks if value is a plain object, that is, an object created by the Object constructor or one with a
- * [[Prototype]] of null.
- *
- * Note: This method assumes objects created by the Object constructor have no inherited enumerable properties.
- *
- * @param value The value to check.
- * @return Returns true if value is a plain object, else false.
- */
- isPlainObject(value?: any): boolean;
- }
-
- interface LoDashImplicitWrapperBase<T, TWrapper> {
- /**
- * see _.isPlainObject
- */
- isPlainObject(): boolean;
- }
-
- interface LoDashExplicitWrapperBase<T, TWrapper> {
- /**
- * see _.isPlainObject
- */
- isPlainObject(): LoDashExplicitWrapper<boolean>;
- }
-
- //_.isRegExp
- interface LoDashStatic {
- /**
- * Checks if value is classified as a RegExp object.
- * @param value The value to check.
- *
- * @return Returns true if value is correctly classified, else false.
- */
- isRegExp(value?: any): value is RegExp;
- }
-
- interface LoDashImplicitWrapperBase<T, TWrapper> {
- /**
- * see _.isRegExp
- */
- isRegExp(): boolean;
- }
-
- interface LoDashExplicitWrapperBase<T, TWrapper> {
- /**
- * see _.isRegExp
- */
- isRegExp(): LoDashExplicitWrapper<boolean>;
- }
-
- //_.isSafeInteger
- interface LoDashStatic {
- /**
- * Checks if `value` is a safe integer. An integer is safe if it's an IEEE-754
- * double precision number which isn't the result of a rounded unsafe integer.
- *
- * **Note:** This method is based on [`Number.isSafeInteger`](https://mdn.io/Number/isSafeInteger).
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a safe integer, else `false`.
- * @example
- *
- * _.isSafeInteger(3);
- * // => true
- *
- * _.isSafeInteger(Number.MIN_VALUE);
- * // => false
- *
- * _.isSafeInteger(Infinity);
- * // => false
- *
- * _.isSafeInteger('3');
- * // => false
- */
- isSafeInteger(value: any): boolean;
- }
-
- interface LoDashImplicitWrapperBase<T, TWrapper> {
- /**
- * see _.isSafeInteger
- */
- isSafeInteger(): boolean;
- }
-
- interface LoDashExplicitWrapperBase<T, TWrapper> {
- /**
- * see _.isSafeInteger
- */
- isSafeInteger(): LoDashExplicitWrapper<boolean>;
- }
-
- //_.isString
- interface LoDashStatic {
- /**
- * Checks if value is classified as a String primitive or object.
- *
- * @param value The value to check.
- * @return Returns true if value is correctly classified, else false.
- */
- isString(value?: any): value is string;
- }
-
- interface LoDashImplicitWrapperBase<T, TWrapper> {
- /**
- * see _.isString
- */
- isString(): boolean;
- }
-
- interface LoDashExplicitWrapperBase<T, TWrapper> {
- /**
- * see _.isString
- */
- isString(): LoDashExplicitWrapper<boolean>;
- }
-
- //_.isSymbol
- interface LoDashStatic {
- /**
- * Checks if `value` is classified as a `Symbol` primitive or object.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
- * @example
- *
- * _.isSymbol(Symbol.iterator);
- * // => true
- *
- * _.isSymbol('abc');
- * // => false
- */
- isSymbol(value: any): boolean;
- }
-
- interface LoDashImplicitWrapperBase<T, TWrapper> {
- /**
- * see _.isSymbol
- */
- isSymbol(): boolean;
- }
-
- interface LoDashExplicitWrapperBase<T, TWrapper> {
- /**
- * see _.isSymbol
- */
- isSymbol(): LoDashExplicitWrapper<boolean>;
- }
-
- //_.isTypedArray
- interface LoDashStatic {
- /**
- * Checks if value is classified as a typed array.
- *
- * @param value The value to check.
- * @return Returns true if value is correctly classified, else false.
- */
- isTypedArray(value: any): boolean;
- }
-
- interface LoDashImplicitWrapperBase<T, TWrapper> {
- /**
- * see _.isTypedArray
- */
- isTypedArray(): boolean;
- }
-
- interface LoDashExplicitWrapperBase<T, TWrapper> {
- /**
- * see _.isTypedArray
- */
- isTypedArray(): LoDashExplicitWrapper<boolean>;
- }
-
- //_.isUndefined
- interface LoDashStatic {
- /**
- * Checks if value is undefined.
- *
- * @param value The value to check.
- * @return Returns true if value is undefined, else false.
- */
- isUndefined(value: any): boolean;
- }
-
- interface LoDashImplicitWrapperBase<T, TWrapper> {
- /**
- * see _.isUndefined
- */
- isUndefined(): boolean;
- }
-
- interface LoDashExplicitWrapperBase<T, TWrapper> {
- /**
- * see _.isUndefined
- */
- isUndefined(): LoDashExplicitWrapper<boolean>;
- }
-
- //_.lt
- interface LoDashStatic {
- /**
- * Checks if value is less than other.
- *
- * @param value The value to compare.
- * @param other The other value to compare.
- * @return Returns true if value is less than other, else false.
- */
- lt(
- value: any,
- other: any
- ): boolean;
- }
-
- interface LoDashImplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.lt
- */
- lt(other: any): boolean;
- }
-
- interface LoDashExplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.lt
- */
- lt(other: any): LoDashExplicitWrapper<boolean>;
- }
-
- //_.lte
- interface LoDashStatic {
- /**
- * Checks if value is less than or equal to other.
- *
- * @param value The value to compare.
- * @param other The other value to compare.
- * @return Returns true if value is less than or equal to other, else false.
- */
- lte(
- value: any,
- other: any
- ): boolean;
- }
-
- interface LoDashImplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.lte
- */
- lte(other: any): boolean;
- }
-
- interface LoDashExplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.lte
- */
- lte(other: any): LoDashExplicitWrapper<boolean>;
- }
-
- //_.toArray
- interface LoDashStatic {
- /**
- * Converts value to an array.
- *
- * @param value The value to convert.
- * @return Returns the converted array.
- */
- toArray<T>(value: List<T>|Dictionary<T>|NumericDictionary<T>): T[];
-
- /**
- * @see _.toArray
- */
- toArray<TValue, TResult>(value: TValue): TResult[];
-
- /**
- * @see _.toArray
- */
- toArray<TResult>(value?: any): TResult[];
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.toArray
- */
- toArray<TResult>(): LoDashImplicitArrayWrapper<TResult>;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.toArray
- */
- toArray(): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.toArray
- */
- toArray<TResult>(): LoDashImplicitArrayWrapper<TResult>;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.toArray
- */
- toArray<TResult>(): LoDashExplicitArrayWrapper<TResult>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.toArray
- */
- toArray(): LoDashExplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.toArray
- */
- toArray<TResult>(): LoDashExplicitArrayWrapper<TResult>;
- }
-
- //_.toPlainObject
- interface LoDashStatic {
- /**
- * Converts value to a plain object flattening inherited enumerable properties of value to own properties
- * of the plain object.
- *
- * @param value The value to convert.
- * @return Returns the converted plain object.
- */
- toPlainObject<TResult extends {}>(value?: any): TResult;
- }
-
- interface LoDashImplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.toPlainObject
- */
- toPlainObject<TResult extends {}>(): LoDashImplicitObjectWrapper<TResult>;
- }
-
- //_.toInteger
- interface LoDashStatic {
- /**
- * Converts `value` to an integer.
- *
- * **Note:** This function is loosely based on [`ToInteger`](http://www.ecma-international.org/ecma-262/6.0/#sec-tointeger).
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to convert.
- * @returns {number} Returns the converted integer.
- * @example
- *
- * _.toInteger(3);
- * // => 3
- *
- * _.toInteger(Number.MIN_VALUE);
- * // => 0
- *
- * _.toInteger(Infinity);
- * // => 1.7976931348623157e+308
- *
- * _.toInteger('3');
- * // => 3
- */
- toInteger(value: any): number;
- }
-
- interface LoDashImplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.toInteger
- */
- toInteger(): LoDashImplicitWrapper<number>;
- }
-
- interface LoDashExplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.toInteger
- */
- toInteger(): LoDashExplicitWrapper<number>;
- }
-
- //_.toLength
- interface LoDashStatic {
- /**
- * Converts `value` to an integer suitable for use as the length of an
- * array-like object.
- *
- * **Note:** This method is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to convert.
- * @return {number} Returns the converted integer.
- * @example
- *
- * _.toLength(3);
- * // => 3
- *
- * _.toLength(Number.MIN_VALUE);
- * // => 0
- *
- * _.toLength(Infinity);
- * // => 4294967295
- *
- * _.toLength('3');
- * // => 3
- */
- toLength(value: any): number;
- }
-
- interface LoDashImplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.toLength
- */
- toLength(): LoDashImplicitWrapper<number>;
- }
-
- interface LoDashExplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.toLength
- */
- toLength(): LoDashExplicitWrapper<number>;
- }
-
- //_.toNumber
- interface LoDashStatic {
- /**
- * Converts `value` to a number.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to process.
- * @returns {number} Returns the number.
- * @example
- *
- * _.toNumber(3);
- * // => 3
- *
- * _.toNumber(Number.MIN_VALUE);
- * // => 5e-324
- *
- * _.toNumber(Infinity);
- * // => Infinity
- *
- * _.toNumber('3');
- * // => 3
- */
- toNumber(value: any): number;
- }
-
- interface LoDashImplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.toNumber
- */
- toNumber(): LoDashImplicitWrapper<number>;
- }
-
- interface LoDashExplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.toNumber
- */
- toNumber(): LoDashExplicitWrapper<number>;
- }
-
- //_.toSafeInteger
- interface LoDashStatic {
- /**
- * Converts `value` to a safe integer. A safe integer can be compared and
- * represented correctly.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to convert.
- * @returns {number} Returns the converted integer.
- * @example
- *
- * _.toSafeInteger(3);
- * // => 3
- *
- * _.toSafeInteger(Number.MIN_VALUE);
- * // => 0
- *
- * _.toSafeInteger(Infinity);
- * // => 9007199254740991
- *
- * _.toSafeInteger('3');
- * // => 3
- */
- toSafeInteger(value: any): number;
- }
-
- interface LoDashImplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.toSafeInteger
- */
- toSafeInteger(): LoDashImplicitWrapper<number>;
- }
-
- interface LoDashExplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.toSafeInteger
- */
- toSafeInteger(): LoDashExplicitWrapper<number>;
- }
-
- //_.toString DUMMY
- interface LoDashStatic {
- /**
- * Converts `value` to a string if it's not one. An empty string is returned
- * for `null` and `undefined` values. The sign of `-0` is preserved.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to process.
- * @returns {string} Returns the string.
- * @example
- *
- * _.toString(null);
- * // => ''
- *
- * _.toString(-0);
- * // => '-0'
- *
- * _.toString([1, 2, 3]);
- * // => '1,2,3'
- */
- toString(value: any): string;
- }
-
- /********
- * Math *
- ********/
-
- //_.add
- interface LoDashStatic {
- /**
- * Adds two numbers.
- *
- * @param augend The first number to add.
- * @param addend The second number to add.
- * @return Returns the sum.
- */
- add(
- augend: number,
- addend: number
- ): number;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.add
- */
- add(addend: number): number;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.add
- */
- add(addend: number): LoDashExplicitWrapper<number>;
- }
-
- //_.ceil
- interface LoDashStatic {
- /**
- * Calculates n rounded up to precision.
- *
- * @param n The number to round up.
- * @param precision The precision to round up to.
- * @return Returns the rounded up number.
- */
- ceil(
- n: number,
- precision?: number
- ): number;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.ceil
- */
- ceil(precision?: number): number;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.ceil
- */
- ceil(precision?: number): LoDashExplicitWrapper<number>;
- }
-
- //_.floor
- interface LoDashStatic {
- /**
- * Calculates n rounded down to precision.
- *
- * @param n The number to round down.
- * @param precision The precision to round down to.
- * @return Returns the rounded down number.
- */
- floor(
- n: number,
- precision?: number
- ): number;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.floor
- */
- floor(precision?: number): number;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.floor
- */
- floor(precision?: number): LoDashExplicitWrapper<number>;
- }
-
- //_.max
- interface LoDashStatic {
- /**
- * Computes the maximum value of `array`. If `array` is empty or falsey
- * `undefined` is returned.
- *
- * @static
- * @memberOf _
- * @category Math
- * @param {Array} array The array to iterate over.
- * @returns {*} Returns the maximum value.
- */
- max<T>(
- collection: List<T>
- ): T;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.max
- */
- max(): T;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.max
- */
- max<T>(): T;
- }
-
- //_.maxBy
- interface LoDashStatic {
- /**
- * This method is like `_.max` except that it accepts `iteratee` which is
- * invoked for each element in `array` to generate the criterion by which
- * the value is ranked. The iteratee is invoked with one argument: (value).
- *
- * @static
- * @memberOf _
- * @category Math
- * @param {Array} array The array to iterate over.
- * @param {Function|Object|string} [iteratee=_.identity] The iteratee invoked per element.
- * @returns {*} Returns the maximum value.
- * @example
- *
- * var objects = [{ 'n': 1 }, { 'n': 2 }];
- *
- * _.maxBy(objects, function(o) { return o.a; });
- * // => { 'n': 2 }
- *
- * // using the `_.property` iteratee shorthand
- * _.maxBy(objects, 'n');
- * // => { 'n': 2 }
- */
- maxBy<T>(
- collection: List<T>,
- iteratee?: ListIterator<T, any>
- ): T;
-
- /**
- * @see _.maxBy
- */
- maxBy<T>(
- collection: Dictionary<T>,
- iteratee?: DictionaryIterator<T, any>
- ): T;
-
- /**
- * @see _.maxBy
- */
- maxBy<T>(
- collection: List<T>|Dictionary<T>,
- iteratee?: string
- ): T;
-
- /**
- * @see _.maxBy
- */
- maxBy<TObject extends {}, T>(
- collection: List<T>|Dictionary<T>,
- whereValue?: TObject
- ): T;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.maxBy
- */
- maxBy(
- iteratee?: ListIterator<T, any>
- ): T;
-
- /**
- * @see _.maxBy
- */
- maxBy(
- iteratee?: string
- ): T;
-
- /**
- * @see _.maxBy
- */
- maxBy<TObject extends {}>(
- whereValue?: TObject
- ): T;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.maxBy
- */
- maxBy<T>(
- iteratee?: ListIterator<T, any>|DictionaryIterator<T, any>,
- thisArg?: any
- ): T;
-
- /**
- * @see _.maxBy
- */
- maxBy<T>(
- iteratee?: string,
- thisArg?: any
- ): T;
-
- /**
- * @see _.maxBy
- */
- maxBy<TObject extends {}, T>(
- whereValue?: TObject
- ): T;
- }
-
- //_.mean
- interface LoDashStatic {
- /**
- * Computes the mean of the values in `array`.
- *
- * @static
- * @memberOf _
- * @category Math
- * @param {Array} array The array to iterate over.
- * @returns {number} Returns the mean.
- * @example
- *
- * _.mean([4, 2, 8, 6]);
- * // => 5
- */
- mean<T>(
- collection: List<T>
- ): number;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.mean
- */
- mean<T>(): number;
-
- /**
- * @see _.mean
- */
- mean(): number;
- }
-
- //_.min
- interface LoDashStatic {
- /**
- * Computes the minimum value of `array`. If `array` is empty or falsey
- * `undefined` is returned.
- *
- * @static
- * @memberOf _
- * @category Math
- * @param {Array} array The array to iterate over.
- * @returns {*} Returns the minimum value.
- */
- min<T>(
- collection: List<T>
- ): T;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.min
- */
- min(): T;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.min
- */
- min<T>(): T;
- }
-
- //_.minBy
- interface LoDashStatic {
- /**
- * This method is like `_.min` except that it accepts `iteratee` which is
- * invoked for each element in `array` to generate the criterion by which
- * the value is ranked. The iteratee is invoked with one argument: (value).
- *
- * @static
- * @memberOf _
- * @category Math
- * @param {Array} array The array to iterate over.
- * @param {Function|Object|string} [iteratee=_.identity] The iteratee invoked per element.
- * @returns {*} Returns the minimum value.
- * @example
- *
- * var objects = [{ 'n': 1 }, { 'n': 2 }];
- *
- * _.minBy(objects, function(o) { return o.a; });
- * // => { 'n': 1 }
- *
- * // using the `_.property` iteratee shorthand
- * _.minBy(objects, 'n');
- * // => { 'n': 1 }
- */
- minBy<T>(
- collection: List<T>,
- iteratee?: ListIterator<T, any>
- ): T;
-
- /**
- * @see _.minBy
- */
- minBy<T>(
- collection: Dictionary<T>,
- iteratee?: DictionaryIterator<T, any>
- ): T;
-
- /**
- * @see _.minBy
- */
- minBy<T>(
- collection: List<T>|Dictionary<T>,
- iteratee?: string
- ): T;
-
- /**
- * @see _.minBy
- */
- minBy<TObject extends {}, T>(
- collection: List<T>|Dictionary<T>,
- whereValue?: TObject
- ): T;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.minBy
- */
- minBy(
- iteratee?: ListIterator<T, any>
- ): T;
-
- /**
- * @see _.minBy
- */
- minBy(
- iteratee?: string
- ): T;
-
- /**
- * @see _.minBy
- */
- minBy<TObject extends {}>(
- whereValue?: TObject
- ): T;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.minBy
- */
- minBy<T>(
- iteratee?: ListIterator<T, any>|DictionaryIterator<T, any>,
- thisArg?: any
- ): T;
-
- /**
- * @see _.minBy
- */
- minBy<T>(
- iteratee?: string,
- thisArg?: any
- ): T;
-
- /**
- * @see _.minBy
- */
- minBy<TObject extends {}, T>(
- whereValue?: TObject
- ): T;
- }
-
- //_.round
- interface LoDashStatic {
- /**
- * Calculates n rounded to precision.
- *
- * @param n The number to round.
- * @param precision The precision to round to.
- * @return Returns the rounded number.
- */
- round(
- n: number,
- precision?: number
- ): number;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.round
- */
- round(precision?: number): number;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.round
- */
- round(precision?: number): LoDashExplicitWrapper<number>;
- }
-
- //_.sum
- interface LoDashStatic {
- /**
- * Computes the sum of the values in `array`.
- *
- * @static
- * @memberOf _
- * @category Math
- * @param {Array} array The array to iterate over.
- * @returns {number} Returns the sum.
- * @example
- *
- * _.sum([4, 2, 8, 6]);
- * // => 20
- */
- sum<T>(collection: List<T>): number;
-
- /**
- * @see _.sum
- */
- sum(collection: List<number>|Dictionary<number>): number;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.sum
- */
- sum(): number;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.sum
- **/
- sum<TValue>(): number;
-
- /**
- * @see _.sum
- */
- sum(): number;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.sum
- */
- sum(): LoDashExplicitWrapper<number>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.sum
- */
- sum<TValue>(): LoDashExplicitWrapper<number>;
-
- /**
- * @see _.sum
- */
- sum(): LoDashExplicitWrapper<number>;
- }
-
- //_.sumBy
- interface LoDashStatic {
- /**
- * This method is like `_.sum` except that it accepts `iteratee` which is
- * invoked for each element in `array` to generate the value to be summed.
- * The iteratee is invoked with one argument: (value).
- *
- * @static
- * @memberOf _
- * @category Math
- * @param {Array} array The array to iterate over.
- * @param {Function|Object|string} [iteratee=_.identity] The iteratee invoked per element.
- * @returns {number} Returns the sum.
- * @example
- *
- * var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }];
- *
- * _.sumBy(objects, function(o) { return o.n; });
- * // => 20
- *
- * // using the `_.property` iteratee shorthand
- * _.sumBy(objects, 'n');
- * // => 20
- */
- sumBy<T>(
- collection: List<T>,
- iteratee: ListIterator<T, number>
- ): number;
-
- /**
- * @see _.sumBy
- **/
- sumBy<T>(
- collection: Dictionary<T>,
- iteratee: DictionaryIterator<T, number>
- ): number;
-
- /**
- * @see _.sumBy
- */
- sumBy<T>(
- collection: List<number>|Dictionary<number>,
- iteratee: string
- ): number;
-
- /**
- * @see _.sumBy
- */
- sumBy<T>(collection: List<T>|Dictionary<T>): number;
-
- /**
- * @see _.sumBy
- */
- sumBy(collection: List<number>|Dictionary<number>): number;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.sumBy
- */
- sumBy(
- iteratee: ListIterator<T, number>
- ): number;
-
- /**
- * @see _.sumBy
- */
- sumBy(iteratee: string): number;
-
- /**
- * @see _.sumBy
- */
- sumBy(): number;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.sumBy
- **/
- sumBy<TValue>(
- iteratee: ListIterator<TValue, number>|DictionaryIterator<TValue, number>
- ): number;
-
- /**
- * @see _.sumBy
- */
- sumBy(iteratee: string): number;
-
- /**
- * @see _.sumBy
- */
- sumBy(): number;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.sumBy
- */
- sumBy(
- iteratee: ListIterator<T, number>
- ): LoDashExplicitWrapper<number>;
-
- /**
- * @see _.sumBy
- */
- sumBy(iteratee: string): LoDashExplicitWrapper<number>;
-
- /**
- * @see _.sumBy
- */
- sumBy(): LoDashExplicitWrapper<number>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.sumBy
- */
- sumBy<TValue>(
- iteratee: ListIterator<TValue, number>|DictionaryIterator<TValue, number>
- ): LoDashExplicitWrapper<number>;
-
- /**
- * @see _.sumBy
- */
- sumBy(iteratee: string): LoDashExplicitWrapper<number>;
-
- /**
- * @see _.sumBy
- */
- sumBy(): LoDashExplicitWrapper<number>;
- }
-
- /**********
- * Number *
- **********/
-
- //_.subtract
- interface LoDashStatic {
- /**
- * Subtract two numbers.
- *
- * @static
- * @memberOf _
- * @category Math
- * @param {number} minuend The first number in a subtraction.
- * @param {number} subtrahend The second number in a subtraction.
- * @returns {number} Returns the difference.
- * @example
- *
- * _.subtract(6, 4);
- * // => 2
- */
- subtract(
- minuend: number,
- subtrahend: number
- ): number;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.subtract
- */
- subtract(
- subtrahend: number
- ): number;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.subtract
- */
- subtract(
- subtrahend: number
- ): LoDashExplicitWrapper<number>;
- }
-
- //_.clamp
- interface LoDashStatic {
- /**
- * Clamps `number` within the inclusive `lower` and `upper` bounds.
- *
- * @static
- * @memberOf _
- * @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
- */
- clamp(
- number: number,
- lower: number,
- upper: number
- ): number;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.clamp
- */
- clamp(
- lower: number,
- upper: number
- ): number;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.clamp
- */
- clamp(
- lower: number,
- upper: number
- ): LoDashExplicitWrapper<number>;
- }
-
- //_.inRange
- interface LoDashStatic {
- /**
- * Checks if n is between start and up to but not including, end. If end is not specified it’s set to start
- * with start then set to 0.
- *
- * @param n The number to check.
- * @param start The start of the range.
- * @param end The end of the range.
- * @return Returns true if n is in the range, else false.
- */
- inRange(
- n: number,
- start: number,
- end: number
- ): boolean;
-
-
- /**
- * @see _.inRange
- */
- inRange(
- n: number,
- end: number
- ): boolean;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.inRange
- */
- inRange(
- start: number,
- end: number
- ): boolean;
-
- /**
- * @see _.inRange
- */
- inRange(end: number): boolean;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.inRange
- */
- inRange(
- start: number,
- end: number
- ): LoDashExplicitWrapper<boolean>;
-
- /**
- * @see _.inRange
- */
- inRange(end: number): LoDashExplicitWrapper<boolean>;
- }
-
- //_.random
- interface LoDashStatic {
- /**
- * Produces a random number between min and max (inclusive). If only one argument is provided a number between
- * 0 and the given number is returned. If floating is true, or either min or max are floats, a floating-point
- * number is returned instead of an integer.
- *
- * @param min The minimum possible value.
- * @param max The maximum possible value.
- * @param floating Specify returning a floating-point number.
- * @return Returns the random number.
- */
- random(
- min?: number,
- max?: number,
- floating?: boolean
- ): number;
-
- /**
- * @see _.random
- */
- random(
- min?: number,
- floating?: boolean
- ): number;
-
- /**
- * @see _.random
- */
- random(floating?: boolean): number;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.random
- */
- random(
- max?: number,
- floating?: boolean
- ): number;
-
- /**
- * @see _.random
- */
- random(floating?: boolean): number;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.random
- */
- random(
- max?: number,
- floating?: boolean
- ): LoDashExplicitWrapper<number>;
-
- /**
- * @see _.random
- */
- random(floating?: boolean): LoDashExplicitWrapper<number>;
- }
-
- /**********
- * Object *
- **********/
-
- //_.assign
- interface LoDashStatic {
- /**
- * Assigns own enumerable properties of source objects to the destination
- * object. Source objects are applied from left to right. Subsequent sources
- * overwrite property assignments of previous sources.
- *
- * **Note:** This method mutates `object` and is loosely based on
- * [`Object.assign`](https://mdn.io/Object/assign).
- *
- * @static
- * @memberOf _
- * @category Object
- * @param {Object} object The destination object.
- * @param {...Object} [sources] The source objects.
- * @returns {Object} Returns `object`.
- * @example
- *
- * function Foo() {
- * this.c = 3;
- * }
- *
- * function Bar() {
- * this.e = 5;
- * }
- *
- * Foo.prototype.d = 4;
- * Bar.prototype.f = 6;
- *
- * _.assign({ 'a': 1 }, new Foo, new Bar);
- * // => { 'a': 1, 'c': 3, 'e': 5 }
- */
- assign<TObject extends {}, TSource extends {}, TResult extends {}>(
- object: TObject,
- source: TSource
- ): TResult;
-
- /**
- * @see assign
- */
- assign<TObject extends {}, TSource1 extends {}, TSource2 extends {}, TResult extends {}>(
- object: TObject,
- source1: TSource1,
- source2: TSource2
- ): TResult;
-
- /**
- * @see assign
- */
- assign<TObject extends {}, TSource1 extends {}, TSource2 extends {}, TSource3 extends {}, TResult extends {}>(
- object: TObject,
- source1: TSource1,
- source2: TSource2,
- source3: TSource3
- ): TResult;
-
- /**
- * @see assign
- */
- assign<TObject extends {}, TSource1 extends {}, TSource2 extends {}, TSource3 extends {}, TSource4 extends {},
- TResult extends {}>
- (
- object: TObject,
- source1: TSource1,
- source2: TSource2,
- source3: TSource3,
- source4: TSource4
- ): TResult;
-
- /**
- * @see _.assign
- */
- assign<TObject extends {}>(object: TObject): TObject;
-
- /**
- * @see _.assign
- */
- assign<TObject extends {}, TResult extends {}>(
- object: TObject, ...otherArgs: any[]
- ): TResult;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.assign
- */
- assign<TSource extends {}, TResult extends {}>(
- source: TSource
- ): LoDashImplicitObjectWrapper<TResult>;
-
- /**
- * @see assign
- */
- assign<TSource1 extends {}, TSource2 extends {}, TResult extends {}>(
- source1: TSource1,
- source2: TSource2
- ): LoDashImplicitObjectWrapper<TResult>;
-
- /**
- * @see assign
- */
- assign<TSource1 extends {}, TSource2 extends {}, TSource3 extends {}, TResult extends {}>(
- source1: TSource1,
- source2: TSource2,
- source3: TSource3
- ): LoDashImplicitObjectWrapper<TResult>;
-
- /**
- * @see assign
- */
- assign<TSource1 extends {}, TSource2 extends {}, TSource3 extends {}, TSource4 extends {}, TResult extends {}>(
- source1: TSource1,
- source2: TSource2,
- source3: TSource3,
- source4: TSource4
- ): LoDashImplicitObjectWrapper<TResult>;
-
- /**
- * @see _.assign
- */
- assign(): LoDashImplicitObjectWrapper<T>;
-
- /**
- * @see _.assign
- */
- assign<TResult extends {}>(...otherArgs: any[]): LoDashImplicitObjectWrapper<TResult>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.assign
- */
- assign<TSource extends {}, TResult extends {}>(
- source: TSource
- ): LoDashExplicitObjectWrapper<TResult>;
-
- /**
- * @see assign
- */
- assign<TSource1 extends {}, TSource2 extends {}, TResult extends {}>(
- source1: TSource1,
- source2: TSource2
- ): LoDashExplicitObjectWrapper<TResult>;
-
- /**
- * @see assign
- */
- assign<TSource1 extends {}, TSource2 extends {}, TSource3 extends {}, TResult extends {}>(
- source1: TSource1,
- source2: TSource2,
- source3: TSource3
- ): LoDashExplicitObjectWrapper<TResult>;
-
- /**
- * @see assign
- */
- assign<TSource1 extends {}, TSource2 extends {}, TSource3 extends {}, TSource4 extends {}, TResult extends {}>(
- source1: TSource1,
- source2: TSource2,
- source3: TSource3,
- source4: TSource4
- ): LoDashExplicitObjectWrapper<TResult>;
-
- /**
- * @see _.assign
- */
- assign(): LoDashExplicitObjectWrapper<T>;
-
- /**
- * @see _.assign
- */
- assign<TResult extends {}>(...otherArgs: any[]): LoDashExplicitObjectWrapper<TResult>;
- }
-
- //_.assignWith
- interface AssignCustomizer {
- (objectValue: any, sourceValue: any, key?: string, object?: {}, source?: {}): any;
- }
-
- interface LoDashStatic {
- /**
- * This method is like `_.assign` except that it accepts `customizer` which
- * is invoked to produce the assigned values. If `customizer` returns `undefined`
- * assignment is handled by the method instead. The `customizer` is invoked
- * with five arguments: (objValue, srcValue, key, object, source).
- *
- * **Note:** This method mutates `object`.
- *
- * @static
- * @memberOf _
- * @category Object
- * @param {Object} object The destination object.
- * @param {...Object} sources The source objects.
- * @param {Function} [customizer] The function to customize assigned values.
- * @returns {Object} Returns `object`.
- * @example
- *
- * function customizer(objValue, srcValue) {
- * return _.isUndefined(objValue) ? srcValue : objValue;
- * }
- *
- * var defaults = _.partialRight(_.assignWith, customizer);
- *
- * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });
- * // => { 'a': 1, 'b': 2 }
- */
- assignWith<TObject extends {}, TSource extends {}, TResult extends {}>(
- object: TObject,
- source: TSource,
- customizer: AssignCustomizer
- ): TResult;
-
- /**
- * @see assignWith
- */
- assignWith<TObject extends {}, TSource1 extends {}, TSource2 extends {}, TResult extends {}>(
- object: TObject,
- source1: TSource1,
- source2: TSource2,
- customizer: AssignCustomizer
- ): TResult;
-
- /**
- * @see assignWith
- */
- assignWith<TObject extends {}, TSource1 extends {}, TSource2 extends {}, TSource3 extends {}, TResult extends {}>(
- object: TObject,
- source1: TSource1,
- source2: TSource2,
- source3: TSource3,
- customizer: AssignCustomizer
- ): TResult;
-
- /**
- * @see assignWith
- */
- assignWith<TObject extends {}, TSource1 extends {}, TSource2 extends {}, TSource3 extends {}, TSource4 extends {},
- TResult extends {}>
- (
- object: TObject,
- source1: TSource1,
- source2: TSource2,
- source3: TSource3,
- source4: TSource4,
- customizer: AssignCustomizer
- ): TResult;
-
- /**
- * @see _.assignWith
- */
- assignWith<TObject extends {}>(object: TObject): TObject;
-
- /**
- * @see _.assignWith
- */
- assignWith<TObject extends {}, TResult extends {}>(
- object: TObject, ...otherArgs: any[]
- ): TResult;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.assignWith
- */
- assignWith<TSource extends {}, TResult extends {}>(
- source: TSource,
- customizer: AssignCustomizer
- ): LoDashImplicitObjectWrapper<TResult>;
-
- /**
- * @see assignWith
- */
- assignWith<TSource1 extends {}, TSource2 extends {}, TResult extends {}>(
- source1: TSource1,
- source2: TSource2,
- customizer: AssignCustomizer
- ): LoDashImplicitObjectWrapper<TResult>;
-
- /**
- * @see assignWith
- */
- assignWith<TSource1 extends {}, TSource2 extends {}, TSource3 extends {}, TResult extends {}>(
- source1: TSource1,
- source2: TSource2,
- source3: TSource3,
- customizer: AssignCustomizer
- ): LoDashImplicitObjectWrapper<TResult>;
-
- /**
- * @see assignWith
- */
- assignWith<TSource1 extends {}, TSource2 extends {}, TSource3 extends {}, TSource4 extends {}, TResult extends {}>(
- source1: TSource1,
- source2: TSource2,
- source3: TSource3,
- source4: TSource4,
- customizer: AssignCustomizer
- ): LoDashImplicitObjectWrapper<TResult>;
-
- /**
- * @see _.assignWith
- */
- assignWith(): LoDashImplicitObjectWrapper<T>;
-
- /**
- * @see _.assignWith
- */
- assignWith<TResult extends {}>(...otherArgs: any[]): LoDashImplicitObjectWrapper<TResult>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.assignWith
- */
- assignWith<TSource extends {}, TResult extends {}>(
- source: TSource,
- customizer: AssignCustomizer
- ): LoDashExplicitObjectWrapper<TResult>;
-
- /**
- * @see assignWith
- */
- assignWith<TSource1 extends {}, TSource2 extends {}, TResult extends {}>(
- source1: TSource1,
- source2: TSource2,
- customizer: AssignCustomizer
- ): LoDashExplicitObjectWrapper<TResult>;
-
- /**
- * @see assignWith
- */
- assignWith<TSource1 extends {}, TSource2 extends {}, TSource3 extends {}, TResult extends {}>(
- source1: TSource1,
- source2: TSource2,
- source3: TSource3,
- customizer: AssignCustomizer
- ): LoDashExplicitObjectWrapper<TResult>;
-
- /**
- * @see assignWith
- */
- assignWith<TSource1 extends {}, TSource2 extends {}, TSource3 extends {}, TSource4 extends {}, TResult extends {}>(
- source1: TSource1,
- source2: TSource2,
- source3: TSource3,
- source4: TSource4,
- customizer: AssignCustomizer
- ): LoDashExplicitObjectWrapper<TResult>;
-
- /**
- * @see _.assignWith
- */
- assignWith(): LoDashExplicitObjectWrapper<T>;
-
- /**
- * @see _.assignWith
- */
- assignWith<TResult extends {}>(...otherArgs: any[]): LoDashExplicitObjectWrapper<TResult>;
- }
-
- //_.assignIn
- interface LoDashStatic {
- /**
- * This method is like `_.assign` except that it iterates over own and
- * inherited source properties.
- *
- * **Note:** This method mutates `object`.
- *
- * @static
- * @memberOf _
- * @alias extend
- * @category Object
- * @param {Object} object The destination object.
- * @param {...Object} [sources] The source objects.
- * @returns {Object} Returns `object`.
- * @example
- *
- * function Foo() {
- * this.b = 2;
- * }
- *
- * function Bar() {
- * this.d = 4;
- * }
- *
- * Foo.prototype.c = 3;
- * Bar.prototype.e = 5;
- *
- * _.assignIn({ 'a': 1 }, new Foo, new Bar);
- * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5 }
- */
- assignIn<TObject extends {}, TSource extends {}, TResult extends {}>(
- object: TObject,
- source: TSource
- ): TResult;
-
- /**
- * @see assignIn
- */
- assignIn<TObject extends {}, TSource1 extends {}, TSource2 extends {}, TResult extends {}>(
- object: TObject,
- source1: TSource1,
- source2: TSource2
- ): TResult;
-
- /**
- * @see assignIn
- */
- assignIn<TObject extends {}, TSource1 extends {}, TSource2 extends {}, TSource3 extends {}, TResult extends {}>(
- object: TObject,
- source1: TSource1,
- source2: TSource2,
- source3: TSource3
- ): TResult;
-
- /**
- * @see assignIn
- */
- assignIn<TObject extends {}, TSource1 extends {}, TSource2 extends {}, TSource3 extends {}, TSource4 extends {},
- TResult extends {}>
- (
- object: TObject,
- source1: TSource1,
- source2: TSource2,
- source3: TSource3,
- source4: TSource4
- ): TResult;
-
- /**
- * @see _.assignIn
- */
- assignIn<TObject extends {}>(object: TObject): TObject;
-
- /**
- * @see _.assignIn
- */
- assignIn<TObject extends {}, TResult extends {}>(
- object: TObject, ...otherArgs: any[]
- ): TResult;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.assignIn
- */
- assignIn<TSource extends {}, TResult extends {}>(
- source: TSource
- ): LoDashImplicitObjectWrapper<TResult>;
-
- /**
- * @see assignIn
- */
- assignIn<TSource1 extends {}, TSource2 extends {}, TResult extends {}>(
- source1: TSource1,
- source2: TSource2
- ): LoDashImplicitObjectWrapper<TResult>;
-
- /**
- * @see assignIn
- */
- assignIn<TSource1 extends {}, TSource2 extends {}, TSource3 extends {}, TResult extends {}>(
- source1: TSource1,
- source2: TSource2,
- source3: TSource3
- ): LoDashImplicitObjectWrapper<TResult>;
-
- /**
- * @see assignIn
- */
- assignIn<TSource1 extends {}, TSource2 extends {}, TSource3 extends {}, TSource4 extends {}, TResult extends {}>(
- source1: TSource1,
- source2: TSource2,
- source3: TSource3,
- source4: TSource4
- ): LoDashImplicitObjectWrapper<TResult>;
-
- /**
- * @see _.assignIn
- */
- assignIn(): LoDashImplicitObjectWrapper<T>;
-
- /**
- * @see _.assignIn
- */
- assignIn<TResult extends {}>(...otherArgs: any[]): LoDashImplicitObjectWrapper<TResult>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.assignIn
- */
- assignIn<TSource extends {}, TResult extends {}>(
- source: TSource
- ): LoDashExplicitObjectWrapper<TResult>;
-
- /**
- * @see assignIn
- */
- assignIn<TSource1 extends {}, TSource2 extends {}, TResult extends {}>(
- source1: TSource1,
- source2: TSource2
- ): LoDashExplicitObjectWrapper<TResult>;
-
- /**
- * @see assignIn
- */
- assignIn<TSource1 extends {}, TSource2 extends {}, TSource3 extends {}, TResult extends {}>(
- source1: TSource1,
- source2: TSource2,
- source3: TSource3
- ): LoDashExplicitObjectWrapper<TResult>;
-
- /**
- * @see assignIn
- */
- assignIn<TSource1 extends {}, TSource2 extends {}, TSource3 extends {}, TSource4 extends {}, TResult extends {}>(
- source1: TSource1,
- source2: TSource2,
- source3: TSource3,
- source4: TSource4
- ): LoDashExplicitObjectWrapper<TResult>;
-
- /**
- * @see _.assignIn
- */
- assignIn(): LoDashExplicitObjectWrapper<T>;
-
- /**
- * @see _.assignIn
- */
- assignIn<TResult extends {}>(...otherArgs: any[]): LoDashExplicitObjectWrapper<TResult>;
- }
-
- //_.assignInWith
- interface AssignCustomizer {
- (objectValue: any, sourceValue: any, key?: string, object?: {}, source?: {}): any;
- }
-
- interface LoDashStatic {
- /**
- * This method is like `_.assignIn` except that it accepts `customizer` which
- * is invoked to produce the assigned values. If `customizer` returns `undefined`
- * assignment is handled by the method instead. The `customizer` is invoked
- * with five arguments: (objValue, srcValue, key, object, source).
- *
- * **Note:** This method mutates `object`.
- *
- * @static
- * @memberOf _
- * @alias extendWith
- * @category Object
- * @param {Object} object The destination object.
- * @param {...Object} sources The source objects.
- * @param {Function} [customizer] The function to customize assigned values.
- * @returns {Object} Returns `object`.
- * @example
- *
- * function customizer(objValue, srcValue) {
- * return _.isUndefined(objValue) ? srcValue : objValue;
- * }
- *
- * var defaults = _.partialRight(_.assignInWith, customizer);
- *
- * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });
- * // => { 'a': 1, 'b': 2 }
- */
- assignInWith<TObject extends {}, TSource extends {}, TResult extends {}>(
- object: TObject,
- source: TSource,
- customizer: AssignCustomizer
- ): TResult;
-
- /**
- * @see assignInWith
- */
- assignInWith<TObject extends {}, TSource1 extends {}, TSource2 extends {}, TResult extends {}>(
- object: TObject,
- source1: TSource1,
- source2: TSource2,
- customizer: AssignCustomizer
- ): TResult;
-
- /**
- * @see assignInWith
- */
- assignInWith<TObject extends {}, TSource1 extends {}, TSource2 extends {}, TSource3 extends {}, TResult extends {}>(
- object: TObject,
- source1: TSource1,
- source2: TSource2,
- source3: TSource3,
- customizer: AssignCustomizer
- ): TResult;
-
- /**
- * @see assignInWith
- */
- assignInWith<TObject extends {}, TSource1 extends {}, TSource2 extends {}, TSource3 extends {}, TSource4 extends {},
- TResult extends {}>
- (
- object: TObject,
- source1: TSource1,
- source2: TSource2,
- source3: TSource3,
- source4: TSource4,
- customizer: AssignCustomizer
- ): TResult;
-
- /**
- * @see _.assignInWith
- */
- assignInWith<TObject extends {}>(object: TObject): TObject;
-
- /**
- * @see _.assignInWith
- */
- assignInWith<TObject extends {}, TResult extends {}>(
- object: TObject, ...otherArgs: any[]
- ): TResult;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.assignInWith
- */
- assignInWith<TSource extends {}, TResult extends {}>(
- source: TSource,
- customizer: AssignCustomizer
- ): LoDashImplicitObjectWrapper<TResult>;
-
- /**
- * @see assignInWith
- */
- assignInWith<TSource1 extends {}, TSource2 extends {}, TResult extends {}>(
- source1: TSource1,
- source2: TSource2,
- customizer: AssignCustomizer
- ): LoDashImplicitObjectWrapper<TResult>;
-
- /**
- * @see assignInWith
- */
- assignInWith<TSource1 extends {}, TSource2 extends {}, TSource3 extends {}, TResult extends {}>(
- source1: TSource1,
- source2: TSource2,
- source3: TSource3,
- customizer: AssignCustomizer
- ): LoDashImplicitObjectWrapper<TResult>;
-
- /**
- * @see assignInWith
- */
- assignInWith<TSource1 extends {}, TSource2 extends {}, TSource3 extends {}, TSource4 extends {}, TResult extends {}>(
- source1: TSource1,
- source2: TSource2,
- source3: TSource3,
- source4: TSource4,
- customizer: AssignCustomizer
- ): LoDashImplicitObjectWrapper<TResult>;
-
- /**
- * @see _.assignInWith
- */
- assignInWith(): LoDashImplicitObjectWrapper<T>;
-
- /**
- * @see _.assignInWith
- */
- assignInWith<TResult extends {}>(...otherArgs: any[]): LoDashImplicitObjectWrapper<TResult>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.assignInWith
- */
- assignInWith<TSource extends {}, TResult extends {}>(
- source: TSource,
- customizer: AssignCustomizer
- ): LoDashExplicitObjectWrapper<TResult>;
-
- /**
- * @see assignInWith
- */
- assignInWith<TSource1 extends {}, TSource2 extends {}, TResult extends {}>(
- source1: TSource1,
- source2: TSource2,
- customizer: AssignCustomizer
- ): LoDashExplicitObjectWrapper<TResult>;
-
- /**
- * @see assignInWith
- */
- assignInWith<TSource1 extends {}, TSource2 extends {}, TSource3 extends {}, TResult extends {}>(
- source1: TSource1,
- source2: TSource2,
- source3: TSource3,
- customizer: AssignCustomizer
- ): LoDashExplicitObjectWrapper<TResult>;
-
- /**
- * @see assignInWith
- */
- assignInWith<TSource1 extends {}, TSource2 extends {}, TSource3 extends {}, TSource4 extends {}, TResult extends {}>(
- source1: TSource1,
- source2: TSource2,
- source3: TSource3,
- source4: TSource4,
- customizer: AssignCustomizer
- ): LoDashExplicitObjectWrapper<TResult>;
-
- /**
- * @see _.assignInWith
- */
- assignInWith(): LoDashExplicitObjectWrapper<T>;
-
- /**
- * @see _.assignInWith
- */
- assignInWith<TResult extends {}>(...otherArgs: any[]): LoDashExplicitObjectWrapper<TResult>;
- }
-
- //_.create
- interface LoDashStatic {
- /**
- * Creates an object that inherits from the given prototype object. If a properties object is provided its own
- * enumerable properties are assigned to the created object.
- *
- * @param prototype The object to inherit from.
- * @param properties The properties to assign to the object.
- * @return Returns the new object.
- */
- create<T extends Object, U extends Object>(
- prototype: T,
- properties?: U
- ): T & U;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.create
- */
- create<U extends Object>(properties?: U): LoDashImplicitObjectWrapper<T & U>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.create
- */
- create<U extends Object>(properties?: U): LoDashExplicitObjectWrapper<T & U>;
- }
-
- //_.defaults
- interface LoDashStatic {
- /**
- * Assigns own enumerable properties of source object(s) to the destination object for all destination
- * properties that resolve to undefined. Once a property is set, additional values of the same property are
- * ignored.
- *
- * Note: This method mutates object.
- *
- * @param object The destination object.
- * @param sources The source objects.
- * @return The destination object.
- */
- defaults<Obj extends {}, TResult extends {}>(
- object: Obj,
- ...sources: {}[]
- ): TResult;
-
- /**
- * @see _.defaults
- */
- defaults<Obj extends {}, S1 extends {}, TResult extends {}>(
- object: Obj,
- source1: S1,
- ...sources: {}[]
- ): TResult;
-
- /**
- * @see _.defaults
- */
- defaults<Obj extends {}, S1 extends {}, S2 extends {}, TResult extends {}>(
- object: Obj,
- source1: S1,
- source2: S2,
- ...sources: {}[]
- ): TResult;
-
- /**
- * @see _.defaults
- */
- defaults<Obj extends {}, S1 extends {}, S2 extends {}, S3 extends {}, TResult extends {}>(
- object: Obj,
- source1: S1,
- source2: S2,
- source3: S3,
- ...sources: {}[]
- ): TResult;
-
- /**
- * @see _.defaults
- */
- defaults<Obj extends {}, S1 extends {}, S2 extends {}, S3 extends {}, S4 extends {}, TResult extends {}>(
- object: Obj,
- source1: S1,
- source2: S2,
- source3: S3,
- source4: S4,
- ...sources: {}[]
- ): TResult;
-
- /**
- * @see _.defaults
- */
- defaults<TResult extends {}>(
- object: {},
- ...sources: {}[]
- ): TResult;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.defaults
- */
- defaults<S1 extends {}, TResult extends {}>(
- source1: S1,
- ...sources: {}[]
- ): LoDashImplicitObjectWrapper<TResult>;
-
- /**
- * @see _.defaults
- */
- defaults<S1 extends {}, S2 extends {}, TResult extends {}>(
- source1: S1,
- source2: S2,
- ...sources: {}[]
- ): LoDashImplicitObjectWrapper<TResult>;
-
- /**
- * @see _.defaults
- */
- defaults<S1 extends {}, S2 extends {}, S3 extends {}, TResult extends {}>(
- source1: S1,
- source2: S2,
- source3: S3,
- ...sources: {}[]
- ): LoDashImplicitObjectWrapper<TResult>;
-
- /**
- * @see _.defaults
- */
- defaults<S1 extends {}, S2 extends {}, S3 extends {}, S4 extends {}, TResult extends {}>(
- source1: S1,
- source2: S2,
- source3: S3,
- source4: S4,
- ...sources: {}[]
- ): LoDashImplicitObjectWrapper<TResult>;
-
- /**
- * @see _.defaults
- */
- defaults(): LoDashImplicitObjectWrapper<T>;
-
- /**
- * @see _.defaults
- */
- defaults<TResult>(...sources: {}[]): LoDashImplicitObjectWrapper<TResult>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.defaults
- */
- defaults<S1 extends {}, TResult extends {}>(
- source1: S1,
- ...sources: {}[]
- ): LoDashExplicitObjectWrapper<TResult>;
-
- /**
- * @see _.defaults
- */
- defaults<S1 extends {}, S2 extends {}, TResult extends {}>(
- source1: S1,
- source2: S2,
- ...sources: {}[]
- ): LoDashExplicitObjectWrapper<TResult>;
-
- /**
- * @see _.defaults
- */
- defaults<S1 extends {}, S2 extends {}, S3 extends {}, TResult extends {}>(
- source1: S1,
- source2: S2,
- source3: S3,
- ...sources: {}[]
- ): LoDashExplicitObjectWrapper<TResult>;
-
- /**
- * @see _.defaults
- */
- defaults<S1 extends {}, S2 extends {}, S3 extends {}, S4 extends {}, TResult extends {}>(
- source1: S1,
- source2: S2,
- source3: S3,
- source4: S4,
- ...sources: {}[]
- ): LoDashExplicitObjectWrapper<TResult>;
-
- /**
- * @see _.defaults
- */
- defaults(): LoDashExplicitObjectWrapper<T>;
-
- /**
- * @see _.defaults
- */
- defaults<TResult>(...sources: {}[]): LoDashExplicitObjectWrapper<TResult>;
- }
-
- //_.defaultsDeep
- interface LoDashStatic {
- /**
- * This method is like _.defaults except that it recursively assigns default properties.
- * @param object The destination object.
- * @param sources The source objects.
- * @return Returns object.
- **/
- defaultsDeep<T, TResult>(
- object: T,
- ...sources: any[]): TResult;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.defaultsDeep
- **/
- defaultsDeep<TResult>(...sources: any[]): LoDashImplicitObjectWrapper<TResult>
- }
-
- //_.extend
- interface LoDashStatic {
- /**
- * @see assign
- */
- extend<TObject extends {}, TSource extends {}, TResult extends {}>(
- object: TObject,
- source: TSource,
- customizer?: AssignCustomizer,
- thisArg?: any
- ): TResult;
-
- /**
- * @see assign
- */
- extend<TObject extends {}, TSource1 extends {}, TSource2 extends {}, TResult extends {}>(
- object: TObject,
- source1: TSource1,
- source2: TSource2,
- customizer?: AssignCustomizer,
- thisArg?: any
- ): TResult;
-
- /**
- * @see assign
- */
- extend<TObject extends {}, TSource1 extends {}, TSource2 extends {}, TSource3 extends {}, TResult extends {}>(
- object: TObject,
- source1: TSource1,
- source2: TSource2,
- source3: TSource3,
- customizer?: AssignCustomizer,
- thisArg?: any
- ): TResult;
-
- /**
- * @see assign
- */
- extend<TObject extends {}, TSource1 extends {}, TSource2 extends {}, TSource3 extends {}, TSource4 extends {},
- TResult extends {}>
- (
- object: TObject,
- source1: TSource1,
- source2: TSource2,
- source3: TSource3,
- source4: TSource4,
- customizer?: AssignCustomizer,
- thisArg?: any
- ): TResult;
-
- /**
- * @see _.assign
- */
- extend<TObject extends {}>(object: TObject): TObject;
-
- /**
- * @see _.assign
- */
- extend<TObject extends {}, TResult extends {}>(
- object: TObject, ...otherArgs: any[]
- ): TResult;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.assign
- */
- extend<TSource extends {}, TResult extends {}>(
- source: TSource,
- customizer?: AssignCustomizer,
- thisArg?: any
- ): LoDashImplicitObjectWrapper<TResult>;
-
- /**
- * @see assign
- */
- extend<TSource1 extends {}, TSource2 extends {}, TResult extends {}>(
- source1: TSource1,
- source2: TSource2,
- customizer?: AssignCustomizer,
- thisArg?: any
- ): LoDashImplicitObjectWrapper<TResult>;
-
- /**
- * @see assign
- */
- extend<TSource1 extends {}, TSource2 extends {}, TSource3 extends {}, TResult extends {}>(
- source1: TSource1,
- source2: TSource2,
- source3: TSource3,
- customizer?: AssignCustomizer,
- thisArg?: any
- ): LoDashImplicitObjectWrapper<TResult>;
-
- /**
- * @see assign
- */
- extend<TSource1 extends {}, TSource2 extends {}, TSource3 extends {}, TSource4 extends {}, TResult extends {}>(
- source1: TSource1,
- source2: TSource2,
- source3: TSource3,
- source4: TSource4,
- customizer?: AssignCustomizer,
- thisArg?: any
- ): LoDashImplicitObjectWrapper<TResult>;
-
- /**
- * @see _.assign
- */
- extend(): LoDashImplicitObjectWrapper<T>;
-
- /**
- * @see _.assign
- */
- extend<TResult extends {}>(...otherArgs: any[]): LoDashImplicitObjectWrapper<TResult>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.assign
- */
- extend<TSource extends {}, TResult extends {}>(
- source: TSource,
- customizer?: AssignCustomizer,
- thisArg?: any
- ): LoDashExplicitObjectWrapper<TResult>;
-
- /**
- * @see assign
- */
- extend<TSource1 extends {}, TSource2 extends {}, TResult extends {}>(
- source1: TSource1,
- source2: TSource2,
- customizer?: AssignCustomizer,
- thisArg?: any
- ): LoDashExplicitObjectWrapper<TResult>;
-
- /**
- * @see assign
- */
- extend<TSource1 extends {}, TSource2 extends {}, TSource3 extends {}, TResult extends {}>(
- source1: TSource1,
- source2: TSource2,
- source3: TSource3,
- customizer?: AssignCustomizer,
- thisArg?: any
- ): LoDashExplicitObjectWrapper<TResult>;
-
- /**
- * @see assign
- */
- extend<TSource1 extends {}, TSource2 extends {}, TSource3 extends {}, TSource4 extends {}, TResult extends {}>(
- source1: TSource1,
- source2: TSource2,
- source3: TSource3,
- source4: TSource4,
- customizer?: AssignCustomizer,
- thisArg?: any
- ): LoDashExplicitObjectWrapper<TResult>;
-
- /**
- * @see _.assign
- */
- extend(): LoDashExplicitObjectWrapper<T>;
-
- /**
- * @see _.assign
- */
- extend<TResult extends {}>(...otherArgs: any[]): LoDashExplicitObjectWrapper<TResult>;
- }
-
- //_.findKey
- interface LoDashStatic {
- /**
- * This method is like _.find except that it returns the key of the first element predicate returns truthy for
- * instead of the element itself.
- *
- * If a property name is provided for predicate the created _.property style callback returns the property
- * value of the given element.
- *
- * If a value is also provided for thisArg the created _.matchesProperty style callback returns true for
- * elements that have a matching property value, else false.
- *
- * If an object is provided for predicate the created _.matches style callback returns true for elements that
- * have the properties of the given object, else false.
- *
- * @param object The object to search.
- * @param predicate The function invoked per iteration.
- * @param thisArg The this binding of predicate.
- * @return Returns the key of the matched element, else undefined.
- */
- findKey<TValues, TObject>(
- object: TObject,
- predicate?: DictionaryIterator<TValues, boolean>,
- thisArg?: any
- ): string;
-
- /**
- * @see _.findKey
- */
- findKey<TObject>(
- object: TObject,
- predicate?: ObjectIterator<any, boolean>,
- thisArg?: any
- ): string;
-
- /**
- * @see _.findKey
- */
- findKey<TObject>(
- object: TObject,
- predicate?: string,
- thisArg?: any
- ): string;
-
- /**
- * @see _.findKey
- */
- findKey<TWhere extends Dictionary<any>, TObject>(
- object: TObject,
- predicate?: TWhere
- ): string;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.findKey
- */
- findKey<TValues>(
- predicate?: DictionaryIterator<TValues, boolean>,
- thisArg?: any
- ): string;
-
- /**
- * @see _.findKey
- */
- findKey(
- predicate?: ObjectIterator<any, boolean>,
- thisArg?: any
- ): string;
-
- /**
- * @see _.findKey
- */
- findKey(
- predicate?: string,
- thisArg?: any
- ): string;
-
- /**
- * @see _.findKey
- */
- findKey<TWhere extends Dictionary<any>>(
- predicate?: TWhere
- ): string;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.findKey
- */
- findKey<TValues>(
- predicate?: DictionaryIterator<TValues, boolean>,
- thisArg?: any
- ): LoDashExplicitWrapper<string>;
-
- /**
- * @see _.findKey
- */
- findKey(
- predicate?: ObjectIterator<any, boolean>,
- thisArg?: any
- ): LoDashExplicitWrapper<string>;
-
- /**
- * @see _.findKey
- */
- findKey(
- predicate?: string,
- thisArg?: any
- ): LoDashExplicitWrapper<string>;
-
- /**
- * @see _.findKey
- */
- findKey<TWhere extends Dictionary<any>>(
- predicate?: TWhere
- ): LoDashExplicitWrapper<string>;
- }
-
- //_.findLastKey
- interface LoDashStatic {
- /**
- * This method is like _.findKey except that it iterates over elements of a collection in the opposite order.
- *
- * If a property name is provided for predicate the created _.property style callback returns the property
- * value of the given element.
- *
- * If a value is also provided for thisArg the created _.matchesProperty style callback returns true for
- * elements that have a matching property value, else false.
- *
- * If an object is provided for predicate the created _.matches style callback returns true for elements that
- * have the properties of the given object, else false.
- *
- * @param object The object to search.
- * @param predicate The function invoked per iteration.
- * @param thisArg The this binding of predicate.
- * @return Returns the key of the matched element, else undefined.
- */
- findLastKey<TValues, TObject>(
- object: TObject,
- predicate?: DictionaryIterator<TValues, boolean>,
- thisArg?: any
- ): string;
-
- /**
- * @see _.findLastKey
- */
- findLastKey<TObject>(
- object: TObject,
- predicate?: ObjectIterator<any, boolean>,
- thisArg?: any
- ): string;
-
- /**
- * @see _.findLastKey
- */
- findLastKey<TObject>(
- object: TObject,
- predicate?: string,
- thisArg?: any
- ): string;
-
- /**
- * @see _.findLastKey
- */
- findLastKey<TWhere extends Dictionary<any>, TObject>(
- object: TObject,
- predicate?: TWhere
- ): string;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.findLastKey
- */
- findLastKey<TValues>(
- predicate?: DictionaryIterator<TValues, boolean>,
- thisArg?: any
- ): string;
-
- /**
- * @see _.findLastKey
- */
- findLastKey(
- predicate?: ObjectIterator<any, boolean>,
- thisArg?: any
- ): string;
-
- /**
- * @see _.findLastKey
- */
- findLastKey(
- predicate?: string,
- thisArg?: any
- ): string;
-
- /**
- * @see _.findLastKey
- */
- findLastKey<TWhere extends Dictionary<any>>(
- predicate?: TWhere
- ): string;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.findLastKey
- */
- findLastKey<TValues>(
- predicate?: DictionaryIterator<TValues, boolean>,
- thisArg?: any
- ): LoDashExplicitWrapper<string>;
-
- /**
- * @see _.findLastKey
- */
- findLastKey(
- predicate?: ObjectIterator<any, boolean>,
- thisArg?: any
- ): LoDashExplicitWrapper<string>;
-
- /**
- * @see _.findLastKey
- */
- findLastKey(
- predicate?: string,
- thisArg?: any
- ): LoDashExplicitWrapper<string>;
-
- /**
- * @see _.findLastKey
- */
- findLastKey<TWhere extends Dictionary<any>>(
- predicate?: TWhere
- ): LoDashExplicitWrapper<string>;
- }
-
- //_.forIn
- interface LoDashStatic {
- /**
- * Iterates over own and inherited enumerable properties of an object invoking iteratee for each property. The
- * iteratee is bound to thisArg and invoked with three arguments: (value, key, object). Iteratee functions may
- * exit iteration early by explicitly returning false.
- *
- * @param object The object to iterate over.
- * @param iteratee The function invoked per iteration.
- * @param thisArg The this binding of iteratee.
- * @return Returns object.
- */
- forIn<T>(
- object: Dictionary<T>,
- iteratee?: DictionaryIterator<T, any>,
- thisArg?: any
- ): Dictionary<T>;
-
- /**
- * @see _.forIn
- */
- forIn<T extends {}>(
- object: T,
- iteratee?: ObjectIterator<any, any>,
- thisArg?: any
- ): T;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.forIn
- */
- forIn<TValue>(
- iteratee?: DictionaryIterator<TValue, any>,
- thisArg?: any
- ): _.LoDashImplicitObjectWrapper<T>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.forIn
- */
- forIn<TValue>(
- iteratee?: DictionaryIterator<TValue, any>,
- thisArg?: any
- ): _.LoDashExplicitObjectWrapper<T>;
- }
-
- //_.forInRight
- interface LoDashStatic {
- /**
- * This method is like _.forIn except that it iterates over properties of object in the opposite order.
- *
- * @param object The object to iterate over.
- * @param iteratee The function invoked per iteration.
- * @param thisArg The this binding of iteratee.
- * @return Returns object.
- */
- forInRight<T>(
- object: Dictionary<T>,
- iteratee?: DictionaryIterator<T, any>,
- thisArg?: any
- ): Dictionary<T>;
-
- /**
- * @see _.forInRight
- */
- forInRight<T extends {}>(
- object: T,
- iteratee?: ObjectIterator<any, any>,
- thisArg?: any
- ): T;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.forInRight
- */
- forInRight<TValue>(
- iteratee?: DictionaryIterator<TValue, any>,
- thisArg?: any
- ): _.LoDashImplicitObjectWrapper<T>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.forInRight
- */
- forInRight<TValue>(
- iteratee?: DictionaryIterator<TValue, any>,
- thisArg?: any
- ): _.LoDashExplicitObjectWrapper<T>;
- }
-
- //_.forOwn
- interface LoDashStatic {
- /**
- * Iterates over own enumerable properties of an object invoking iteratee for each property. The iteratee is
- * bound to thisArg and invoked with three arguments: (value, key, object). Iteratee functions may exit
- * iteration early by explicitly returning false.
- *
- * @param object The object to iterate over.
- * @param iteratee The function invoked per iteration.
- * @param thisArg The this binding of iteratee.
- * @return Returns object.
- */
- forOwn<T>(
- object: Dictionary<T>,
- iteratee?: DictionaryIterator<T, any>,
- thisArg?: any
- ): Dictionary<T>;
-
- /**
- * @see _.forOwn
- */
- forOwn<T extends {}>(
- object: T,
- iteratee?: ObjectIterator<any, any>,
- thisArg?: any
- ): T;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.forOwn
- */
- forOwn<TValue>(
- iteratee?: DictionaryIterator<TValue, any>,
- thisArg?: any
- ): _.LoDashImplicitObjectWrapper<T>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.forOwn
- */
- forOwn<TValue>(
- iteratee?: DictionaryIterator<TValue, any>,
- thisArg?: any
- ): _.LoDashExplicitObjectWrapper<T>;
- }
-
- //_.forOwnRight
- interface LoDashStatic {
- /**
- * This method is like _.forOwn except that it iterates over properties of object in the opposite order.
- *
- * @param object The object to iterate over.
- * @param iteratee The function invoked per iteration.
- * @param thisArg The this binding of iteratee.
- * @return Returns object.
- */
- forOwnRight<T>(
- object: Dictionary<T>,
- iteratee?: DictionaryIterator<T, any>,
- thisArg?: any
- ): Dictionary<T>;
-
- /**
- * @see _.forOwnRight
- */
- forOwnRight<T extends {}>(
- object: T,
- iteratee?: ObjectIterator<any, any>,
- thisArg?: any
- ): T;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.forOwnRight
- */
- forOwnRight<TValue>(
- iteratee?: DictionaryIterator<TValue, any>,
- thisArg?: any
- ): _.LoDashImplicitObjectWrapper<T>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.forOwnRight
- */
- forOwnRight<TValue>(
- iteratee?: DictionaryIterator<TValue, any>,
- thisArg?: any
- ): _.LoDashExplicitObjectWrapper<T>;
- }
-
- //_.functions
- interface LoDashStatic {
- /**
- * Creates an array of function property names from own enumerable properties
- * of `object`.
- *
- * @static
- * @memberOf _
- * @category Object
- * @param {Object} object The object to inspect.
- * @returns {Array} Returns the new array of property names.
- * @example
- *
- * function Foo() {
- * this.a = _.constant('a');
- * this.b = _.constant('b');
- * }
- *
- * Foo.prototype.c = _.constant('c');
- *
- * _.functions(new Foo);
- * // => ['a', 'b']
- */
- functions<T extends {}>(object: any): string[];
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.functions
- */
- functions(): _.LoDashImplicitArrayWrapper<string>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.functions
- */
- functions(): _.LoDashExplicitArrayWrapper<string>;
- }
-
- //_.functionsIn
- interface LoDashStatic {
- /**
- * Creates an array of function property names from own and inherited
- * enumerable properties of `object`.
- *
- * @static
- * @memberOf _
- * @category Object
- * @param {Object} object The object to inspect.
- * @returns {Array} Returns the new array of property names.
- * @example
- *
- * function Foo() {
- * this.a = _.constant('a');
- * this.b = _.constant('b');
- * }
- *
- * Foo.prototype.c = _.constant('c');
- *
- * _.functionsIn(new Foo);
- * // => ['a', 'b', 'c']
- */
- functionsIn<T extends {}>(object: any): string[];
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.functionsIn
- */
- functionsIn(): _.LoDashImplicitArrayWrapper<string>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.functionsIn
- */
- functionsIn(): _.LoDashExplicitArrayWrapper<string>;
- }
-
- //_.get
- interface LoDashStatic {
- /**
- * Gets the property value at path of object. If the resolved
- * value is undefined the defaultValue is used in its place.
- * @param object The object to query.
- * @param path The path of the property to get.
- * @param defaultValue The value returned if the resolved value is undefined.
- * @return Returns the resolved value.
- **/
- get<TResult>(object: Object,
- path: string|number|boolean|Array<string|number|boolean>,
- defaultValue?:TResult
- ): TResult;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.get
- **/
- get<TResult>(path: string|number|boolean|Array<string|number|boolean>,
- defaultValue?: TResult
- ): TResult;
- }
-
- //_.has
- interface LoDashStatic {
- /**
- * Checks if `path` is a direct property of `object`.
- *
- * @static
- * @memberOf _
- * @category Object
- * @param {Object} object The object to query.
- * @param {Array|string} path The path to check.
- * @returns {boolean} Returns `true` if `path` exists, else `false`.
- * @example
- *
- * var object = { 'a': { 'b': { 'c': 3 } } };
- * var other = _.create({ 'a': _.create({ 'b': _.create({ 'c': 3 }) }) });
- *
- * _.has(object, 'a');
- * // => true
- *
- * _.has(object, 'a.b.c');
- * // => true
- *
- * _.has(object, ['a', 'b', 'c']);
- * // => true
- *
- * _.has(other, 'a');
- * // => false
- */
- has<T extends {}>(
- object: T,
- path: StringRepresentable|StringRepresentable[]
- ): boolean;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.has
- */
- has(path: StringRepresentable|StringRepresentable[]): boolean;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.has
- */
- has(path: StringRepresentable|StringRepresentable[]): LoDashExplicitWrapper<boolean>;
- }
-
- //_.hasIn
- interface LoDashStatic {
- /**
- * Checks if `path` is a direct or inherited property of `object`.
- *
- * @static
- * @memberOf _
- * @category Object
- * @param {Object} object The object to query.
- * @param {Array|string} path The path to check.
- * @returns {boolean} Returns `true` if `path` exists, else `false`.
- * @example
- *
- * var object = _.create({ 'a': _.create({ 'b': _.create({ 'c': 3 }) }) });
- *
- * _.hasIn(object, 'a');
- * // => true
- *
- * _.hasIn(object, 'a.b.c');
- * // => true
- *
- * _.hasIn(object, ['a', 'b', 'c']);
- * // => true
- *
- * _.hasIn(object, 'b');
- * // => false
- */
- hasIn<T extends {}>(
- object: T,
- path: StringRepresentable|StringRepresentable[]
- ): boolean;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.hasIn
- */
- hasIn(path: StringRepresentable|StringRepresentable[]): boolean;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.hasIn
- */
- hasIn(path: StringRepresentable|StringRepresentable[]): LoDashExplicitWrapper<boolean>;
- }
-
- //_.invert
- interface LoDashStatic {
- /**
- * Creates an object composed of the inverted keys and values of object. If object contains duplicate values,
- * subsequent values overwrite property assignments of previous values unless multiValue is true.
- *
- * @param object The object to invert.
- * @param multiValue Allow multiple values per key.
- * @return Returns the new inverted object.
- */
- invert<T extends {}, TResult extends {}>(
- object: T,
- multiValue?: boolean
- ): TResult;
-
- /**
- * @see _.invert
- */
- invert<TResult extends {}>(
- object: Object,
- multiValue?: boolean
- ): TResult;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.invert
- */
- invert<TResult extends {}>(multiValue?: boolean): LoDashImplicitObjectWrapper<TResult>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.invert
- */
- invert<TResult extends {}>(multiValue?: boolean): LoDashExplicitObjectWrapper<TResult>;
- }
-
- //_.keys
- interface LoDashStatic {
- /**
- * Creates an array of the own enumerable property names of object.
- *
- * Note: Non-object values are coerced to objects. See the ES spec for more details.
- *
- * @param object The object to query.
- * @return Returns the array of property names.
- */
- keys(object?: any): string[];
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.keys
- */
- keys(): LoDashImplicitArrayWrapper<string>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.keys
- */
- keys(): LoDashExplicitArrayWrapper<string>;
- }
-
- //_.keysIn
- interface LoDashStatic {
- /**
- * Creates an array of the own and inherited enumerable property names of object.
- *
- * Note: Non-object values are coerced to objects.
- *
- * @param object The object to query.
- * @return An array of property names.
- */
- keysIn(object?: any): string[];
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.keysIn
- */
- keysIn(): LoDashImplicitArrayWrapper<string>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.keysIn
- */
- keysIn(): LoDashExplicitArrayWrapper<string>;
- }
-
- //_.mapKeys
- interface LoDashStatic {
- /**
- * The opposite of _.mapValues; this method creates an object with the same values as object and keys generated
- * by running each own enumerable property of object through iteratee.
- *
- * @param object The object to iterate over.
- * @param iteratee The function invoked per iteration.
- * @param thisArg The this binding of iteratee.
- * @return Returns the new mapped object.
- */
- mapKeys<T, TKey>(
- object: List<T>,
- iteratee?: ListIterator<T, TKey>,
- thisArg?: any
- ): Dictionary<T>;
-
- /**
- * @see _.mapKeys
- */
- mapKeys<T, TKey>(
- object: Dictionary<T>,
- iteratee?: DictionaryIterator<T, TKey>,
- thisArg?: any
- ): Dictionary<T>;
-
- /**
- * @see _.mapKeys
- */
- mapKeys<T, TObject extends {}>(
- object: List<T>|Dictionary<T>,
- iteratee?: TObject
- ): Dictionary<T>;
-
- /**
- * @see _.mapKeys
- */
- mapKeys<T>(
- object: List<T>|Dictionary<T>,
- iteratee?: string,
- thisArg?: any
- ): Dictionary<T>;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.mapKeys
- */
- mapKeys<TKey>(
- iteratee?: ListIterator<T, TKey>,
- thisArg?: any
- ): LoDashImplicitObjectWrapper<Dictionary<T>>;
-
- /**
- * @see _.mapKeys
- */
- mapKeys<TObject extends {}>(
- iteratee?: TObject
- ): LoDashImplicitObjectWrapper<Dictionary<T>>;
-
- /**
- * @see _.mapKeys
- */
- mapKeys(
- iteratee?: string,
- thisArg?: any
- ): LoDashImplicitObjectWrapper<Dictionary<T>>;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.mapKeys
- */
- mapKeys<TResult, TKey>(
- iteratee?: ListIterator<TResult, TKey>|DictionaryIterator<TResult, TKey>,
- thisArg?: any
- ): LoDashImplicitObjectWrapper<Dictionary<TResult>>;
-
- /**
- * @see _.mapKeys
- */
- mapKeys<TResult, TObject extends {}>(
- iteratee?: TObject
- ): LoDashImplicitObjectWrapper<Dictionary<TResult>>;
-
- /**
- * @see _.mapKeys
- */
- mapKeys<TResult>(
- iteratee?: string,
- thisArg?: any
- ): LoDashImplicitObjectWrapper<Dictionary<TResult>>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.mapKeys
- */
- mapKeys<TKey>(
- iteratee?: ListIterator<T, TKey>,
- thisArg?: any
- ): LoDashExplicitObjectWrapper<Dictionary<T>>;
-
- /**
- * @see _.mapKeys
- */
- mapKeys<TObject extends {}>(
- iteratee?: TObject
- ): LoDashExplicitObjectWrapper<Dictionary<T>>;
-
- /**
- * @see _.mapKeys
- */
- mapKeys(
- iteratee?: string,
- thisArg?: any
- ): LoDashExplicitObjectWrapper<Dictionary<T>>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.mapKeys
- */
- mapKeys<TResult, TKey>(
- iteratee?: ListIterator<TResult, TKey>|DictionaryIterator<TResult, TKey>,
- thisArg?: any
- ): LoDashExplicitObjectWrapper<Dictionary<TResult>>;
-
- /**
- * @see _.mapKeys
- */
- mapKeys<TResult, TObject extends {}>(
- iteratee?: TObject
- ): LoDashExplicitObjectWrapper<Dictionary<TResult>>;
-
- /**
- * @see _.mapKeys
- */
- mapKeys<TResult>(
- iteratee?: string,
- thisArg?: any
- ): LoDashExplicitObjectWrapper<Dictionary<TResult>>;
- }
-
- //_.mapValues
- interface LoDashStatic {
- /**
- * Creates an object with the same keys as object and values generated by running each own
- * enumerable property of object through iteratee. The iteratee function is bound to thisArg
- * and invoked with three arguments: (value, key, object).
- *
- * If a property name is provided iteratee the created "_.property" style callback returns
- * the property value of the given element.
- *
- * If a value is also provided for thisArg the creted "_.matchesProperty" style callback returns
- * true for elements that have a matching property value, else false;.
- *
- * If an object is provided for iteratee the created "_.matches" style callback returns true
- * for elements that have the properties of the given object, else false.
- *
- * @param {Object} object The object to iterate over.
- * @param {Function|Object|string} [iteratee=_.identity] The function invoked per iteration.
- * @param {Object} [thisArg] The `this` binding of `iteratee`.
- * @return {Object} Returns the new mapped object.
- */
- mapValues<T, TResult>(obj: Dictionary<T>, callback: ObjectIterator<T, TResult>, thisArg?: any): Dictionary<TResult>;
- mapValues<T>(obj: Dictionary<T>, where: Dictionary<T>): Dictionary<boolean>;
- mapValues<T, TMapped>(obj: T, pluck: string): TMapped;
- mapValues<T>(obj: T, callback: ObjectIterator<any, any>, thisArg?: any): T;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.mapValues
- * TValue is the type of the property values of T.
- * TResult is the type output by the ObjectIterator function
- */
- mapValues<TValue, TResult>(callback: ObjectIterator<TValue, TResult>, thisArg?: any): LoDashImplicitObjectWrapper<Dictionary<TResult>>;
-
- /**
- * @see _.mapValues
- * TResult is the type of the property specified by pluck.
- * T should be a Dictionary<Dictionary<TResult>>
- */
- mapValues<TResult>(pluck: string): LoDashImplicitObjectWrapper<Dictionary<TResult>>;
-
- /**
- * @see _.mapValues
- * TResult is the type of the properties on the object specified by pluck.
- * T should be a Dictionary<Dictionary<Dictionary<TResult>>>
- */
- mapValues<TResult>(pluck: string, where: Dictionary<TResult>): LoDashImplicitArrayWrapper<Dictionary<boolean>>;
-
- /**
- * @see _.mapValues
- * TResult is the type of the properties of each object in the values of T
- * T should be a Dictionary<Dictionary<TResult>>
- */
- mapValues<TResult>(where: Dictionary<TResult>): LoDashImplicitArrayWrapper<boolean>;
- }
-
- //_.merge
- interface LoDashStatic {
- /**
- * Recursively merges own and inherited enumerable properties of source
- * objects into the destination object, skipping source properties that resolve
- * to `undefined`. Array and plain object properties are merged recursively.
- * Other objects and value types are overridden by assignment. Source objects
- * are applied from left to right. Subsequent sources overwrite property
- * assignments of previous sources.
- *
- * **Note:** This method mutates `object`.
- *
- * @static
- * @memberOf _
- * @category Object
- * @param {Object} object The destination object.
- * @param {...Object} [sources] The source objects.
- * @returns {Object} Returns `object`.
- * @example
- *
- * var users = {
- * 'data': [{ 'user': 'barney' }, { 'user': 'fred' }]
- * };
- *
- * var ages = {
- * 'data': [{ 'age': 36 }, { 'age': 40 }]
- * };
- *
- * _.merge(users, ages);
- * // => { 'data': [{ 'user': 'barney', 'age': 36 }, { 'user': 'fred', 'age': 40 }] }
- */
- merge<TObject, TSource>(
- object: TObject,
- source: TSource
- ): TObject & TSource;
-
- /**
- * @see _.merge
- */
- merge<TObject, TSource1, TSource2>(
- object: TObject,
- source1: TSource1,
- source2: TSource2
- ): TObject & TSource1 & TSource2;
-
- /**
- * @see _.merge
- */
- merge<TObject, TSource1, TSource2, TSource3>(
- object: TObject,
- source1: TSource1,
- source2: TSource2,
- source3: TSource3
- ): TObject & TSource1 & TSource2 & TSource3;
-
- /**
- * @see _.merge
- */
- merge<TObject, TSource1, TSource2, TSource3, TSource4>(
- object: TObject,
- source1: TSource1,
- source2: TSource2,
- source3: TSource3,
- source4: TSource4
- ): TObject & TSource1 & TSource2 & TSource3 & TSource4;
-
- /**
- * @see _.merge
- */
- merge<TResult>(
- object: any,
- ...otherArgs: any[]
- ): TResult;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.merge
- */
- merge<TSource>(
- source: TSource
- ): LoDashImplicitObjectWrapper<T & TSource>;
-
- /**
- * @see _.merge
- */
- merge<TSource1, TSource2>(
- source1: TSource1,
- source2: TSource2
- ): LoDashImplicitObjectWrapper<T & TSource1 & TSource2>;
-
- /**
- * @see _.merge
- */
- merge<TSource1, TSource2, TSource3>(
- source1: TSource1,
- source2: TSource2,
- source3: TSource3
- ): LoDashImplicitObjectWrapper<T & TSource1 & TSource2 & TSource3>;
-
- /**
- * @see _.merge
- */
- merge<TSource1, TSource2, TSource3, TSource4>(
- source1: TSource1,
- source2: TSource2,
- source3: TSource3,
- source4: TSource4
- ): LoDashImplicitObjectWrapper<T & TSource1 & TSource2 & TSource3 & TSource4>;
-
- /**
- * @see _.merge
- */
- merge<TResult>(
- ...otherArgs: any[]
- ): LoDashImplicitObjectWrapper<TResult>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.merge
- */
- merge<TSource>(
- source: TSource
- ): LoDashExplicitObjectWrapper<T & TSource>;
-
- /**
- * @see _.merge
- */
- merge<TSource1, TSource2>(
- source1: TSource1,
- source2: TSource2
- ): LoDashExplicitObjectWrapper<T & TSource1 & TSource2>;
-
- /**
- * @see _.merge
- */
- merge<TSource1, TSource2, TSource3>(
- source1: TSource1,
- source2: TSource2,
- source3: TSource3
- ): LoDashExplicitObjectWrapper<T & TSource1 & TSource2 & TSource3>;
-
- /**
- * @see _.merge
- */
- merge<TSource1, TSource2, TSource3, TSource4>(
- ): LoDashExplicitObjectWrapper<T & TSource1 & TSource2 & TSource3 & TSource4>;
-
- /**
- * @see _.merge
- */
- merge<TResult>(
- ...otherArgs: any[]
- ): LoDashExplicitObjectWrapper<TResult>;
- }
-
- //_.mergeWith
- interface MergeWithCustomizer {
- (value: any, srcValue: any, key?: string, object?: Object, source?: Object): any;
- }
-
- interface LoDashStatic {
- /**
- * This method is like `_.merge` except that it accepts `customizer` which
- * is invoked to produce the merged values of the destination and source
- * properties. If `customizer` returns `undefined` merging is handled by the
- * method instead. The `customizer` is invoked with seven arguments:
- * (objValue, srcValue, key, object, source, stack).
- *
- * @static
- * @memberOf _
- * @category Object
- * @param {Object} object The destination object.
- * @param {...Object} sources The source objects.
- * @param {Function} customizer The function to customize assigned values.
- * @returns {Object} Returns `object`.
- * @example
- *
- * function customizer(objValue, srcValue) {
- * if (_.isArray(objValue)) {
- * return objValue.concat(srcValue);
- * }
- * }
- *
- * var object = {
- * 'fruits': ['apple'],
- * 'vegetables': ['beet']
- * };
- *
- * var other = {
- * 'fruits': ['banana'],
- * 'vegetables': ['carrot']
- * };
- *
- * _.merge(object, other, customizer);
- * // => { 'fruits': ['apple', 'banana'], 'vegetables': ['beet', 'carrot'] }
- */
- mergeWith<TObject, TSource>(
- object: TObject,
- source: TSource,
- customizer: MergeWithCustomizer
- ): TObject & TSource;
-
- /**
- * @see _.mergeWith
- */
- mergeWith<TObject, TSource1, TSource2>(
- object: TObject,
- source1: TSource1,
- source2: TSource2,
- customizer: MergeWithCustomizer
- ): TObject & TSource1 & TSource2;
-
- /**
- * @see _.mergeWith
- */
- mergeWith<TObject, TSource1, TSource2, TSource3>(
- object: TObject,
- source1: TSource1,
- source2: TSource2,
- source3: TSource3,
- customizer: MergeWithCustomizer
- ): TObject & TSource1 & TSource2 & TSource3;
-
- /**
- * @see _.mergeWith
- */
- mergeWith<TObject, TSource1, TSource2, TSource3, TSource4>(
- object: TObject,
- source1: TSource1,
- source2: TSource2,
- source3: TSource3,
- source4: TSource4,
- customizer: MergeWithCustomizer
- ): TObject & TSource1 & TSource2 & TSource3 & TSource4;
-
- /**
- * @see _.mergeWith
- */
- mergeWith<TResult>(
- object: any,
- ...otherArgs: any[]
- ): TResult;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.mergeWith
- */
- mergeWith<TSource>(
- source: TSource,
- customizer: MergeWithCustomizer
- ): LoDashImplicitObjectWrapper<T & TSource>;
-
- /**
- * @see _.mergeWith
- */
- mergeWith<TSource1, TSource2>(
- source1: TSource1,
- source2: TSource2,
- customizer: MergeWithCustomizer
- ): LoDashImplicitObjectWrapper<T & TSource1 & TSource2>;
-
- /**
- * @see _.mergeWith
- */
- mergeWith<TSource1, TSource2, TSource3>(
- source1: TSource1,
- source2: TSource2,
- source3: TSource3,
- customizer: MergeWithCustomizer
- ): LoDashImplicitObjectWrapper<T & TSource1 & TSource2 & TSource3>;
-
- /**
- * @see _.mergeWith
- */
- mergeWith<TSource1, TSource2, TSource3, TSource4>(
- source1: TSource1,
- source2: TSource2,
- source3: TSource3,
- source4: TSource4,
- customizer: MergeWithCustomizer
- ): LoDashImplicitObjectWrapper<T & TSource1 & TSource2 & TSource3 & TSource4>;
-
- /**
- * @see _.mergeWith
- */
- mergeWith<TResult>(
- ...otherArgs: any[]
- ): LoDashImplicitObjectWrapper<TResult>;
- }
-
- //_.omit
- interface LoDashStatic {
- /**
- * The opposite of `_.pick`; this method creates an object composed of the
- * own and inherited enumerable properties of `object` that are not omitted.
- *
- * @static
- * @memberOf _
- * @category Object
- * @param {Object} object The source object.
- * @param {...(string|string[])} [props] The property names to omit, specified
- * individually or in arrays..
- * @returns {Object} Returns the new object.
- * @example
- *
- * var object = { 'a': 1, 'b': '2', 'c': 3 };
- *
- * _.omit(object, ['a', 'c']);
- * // => { 'b': '2' }
- */
-
- omit<TResult extends {}, T extends {}>(
- object: T,
- ...predicate: (StringRepresentable|StringRepresentable[])[]
- ): TResult;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
-
- /**
- * @see _.omit
- */
- omit<TResult extends {}>(
- ...predicate: (StringRepresentable|StringRepresentable[])[]
- ): LoDashImplicitObjectWrapper<TResult>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
-
- /**
- * @see _.omit
- */
- omit<TResult extends {}>(
- ...predicate: (StringRepresentable|StringRepresentable[])[]
- ): LoDashExplicitObjectWrapper<TResult>;
- }
-
- //_.omitBy
- interface LoDashStatic {
- /**
- * The opposite of `_.pickBy`; this method creates an object composed of the
- * own and inherited enumerable properties of `object` that `predicate`
- * doesn't return truthy for.
- *
- * @static
- * @memberOf _
- * @category Object
- * @param {Object} object The source object.
- * @param {Function|Object|string} [predicate=_.identity] The function invoked per property.
- * @returns {Object} Returns the new object.
- * @example
- *
- * var object = { 'a': 1, 'b': '2', 'c': 3 };
- *
- * _.omitBy(object, _.isNumber);
- * // => { 'b': '2' }
- */
- omitBy<TResult extends {}, T extends {}>(
- object: T,
- predicate: ObjectIterator<any, boolean>
- ): TResult;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.omitBy
- */
- omitBy<TResult extends {}>(
- predicate: ObjectIterator<any, boolean>
- ): LoDashImplicitObjectWrapper<TResult>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.omitBy
- */
- omitBy<TResult extends {}>(
- predicate: ObjectIterator<any, boolean>
- ): LoDashExplicitObjectWrapper<TResult>;
- }
-
- //_.toPairs
- interface LoDashStatic {
- /**
- * Creates a two dimensional array of the key-value pairs for object, e.g. [[key1, value1], [key2, value2]].
- *
- * @param object The object to query.
- * @return Returns the new array of key-value pairs.
- */
- toPairs<T extends {}>(object?: T): any[][];
-
- toPairs<T extends {}, TResult>(object?: T): TResult[][];
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.toPairs
- */
- toPairs<TResult>(): LoDashImplicitArrayWrapper<TResult[]>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.toPairs
- */
- toPairs<TResult>(): LoDashExplicitArrayWrapper<TResult[]>;
- }
-
- //_.pick
- interface LoDashStatic {
- /**
- * Creates an object composed of the picked `object` properties.
- *
- * @static
- * @memberOf _
- * @category Object
- * @param {Object} object The source object.
- * @param {...(string|string[])} [props] The property names to pick, specified
- * individually or in arrays.
- * @returns {Object} Returns the new object.
- * @example
- *
- * var object = { 'a': 1, 'b': '2', 'c': 3 };
- *
- * _.pick(object, ['a', 'c']);
- * // => { 'a': 1, 'c': 3 }
- */
- pick<TResult extends {}, T extends {}>(
- object: T,
- ...predicate: (StringRepresentable|StringRepresentable[])[]
- ): TResult;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.pick
- */
- pick<TResult extends {}>(
- ...predicate: (StringRepresentable|StringRepresentable[])[]
- ): LoDashImplicitObjectWrapper<TResult>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.pick
- */
- pick<TResult extends {}>(
- ...predicate: (StringRepresentable|StringRepresentable[])[]
- ): LoDashExplicitObjectWrapper<TResult>;
- }
-
- //_.pickBy
- interface LoDashStatic {
- /**
- * Creates an object composed of the `object` properties `predicate` returns
- * truthy for. The predicate is invoked with one argument: (value).
- *
- * @static
- * @memberOf _
- * @category Object
- * @param {Object} object The source object.
- * @param {Function|Object|string} [predicate=_.identity] The function invoked per property.
- * @returns {Object} Returns the new object.
- * @example
- *
- * var object = { 'a': 1, 'b': '2', 'c': 3 };
- *
- * _.pickBy(object, _.isNumber);
- * // => { 'a': 1, 'c': 3 }
- */
- pickBy<TResult extends {}, T extends {}>(
- object: T,
- predicate: ObjectIterator<any, boolean>
- ): TResult;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.pickBy
- */
- pickBy<TResult extends {}>(
- predicate: ObjectIterator<any, boolean>
- ): LoDashImplicitObjectWrapper<TResult>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.pickBy
- */
- pickBy<TResult extends {}>(
- predicate: ObjectIterator<any, boolean>
- ): LoDashExplicitObjectWrapper<TResult>;
- }
-
- //_.result
- interface LoDashStatic {
- /**
- * This method is like _.get except that if the resolved value is a function it’s invoked with the this binding
- * of its parent object and its result is returned.
- *
- * @param object The object to query.
- * @param path The path of the property to resolve.
- * @param defaultValue The value returned if the resolved value is undefined.
- * @return Returns the resolved value.
- */
- result<TObject, TResult>(
- object: TObject,
- path: number|string|boolean|Array<number|string|boolean>,
- defaultValue?: TResult
- ): TResult;
- }
-
- interface LoDashImplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.result
- */
- result<TResult>(
- path: number|string|boolean|Array<number|string|boolean>,
- defaultValue?: TResult
- ): TResult;
- }
-
- //_.set
- interface LoDashStatic {
- /**
- * Sets the property value of path on object. If a portion of path does not exist it’s created.
- *
- * @param object The object to augment.
- * @param path The path of the property to set.
- * @param value The value to set.
- * @return Returns object.
- */
- set<T>(
- object: T,
- path: StringRepresentable|StringRepresentable[],
- value: any
- ): T;
-
- /**
- * @see _.set
- */
- set<V, T>(
- object: T,
- path: StringRepresentable|StringRepresentable[],
- value: V
- ): T;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.set
- */
- set<V>(
- path: StringRepresentable|StringRepresentable[],
- value: V
- ): LoDashImplicitObjectWrapper<T>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.set
- */
- set<V>(
- path: StringRepresentable|StringRepresentable[],
- value: V
- ): LoDashExplicitObjectWrapper<T>;
- }
-
- //_.transform
- interface LoDashStatic {
- /**
- * An alternative to _.reduce; this method transforms object to a new accumulator object which is the result of
- * running each of its own enumerable properties through iteratee, with each invocation potentially mutating
- * the accumulator object. The iteratee is bound to thisArg and invoked with four arguments: (accumulator,
- * value, key, object). Iteratee functions may exit iteration early by explicitly returning false.
- *
- * @param object The object to iterate over.
- * @param iteratee The function invoked per iteration.
- * @param accumulator The custom accumulator value.
- * @param thisArg The this binding of iteratee.
- * @return Returns the accumulated value.
- */
- transform<T, TResult>(
- object: T[],
- iteratee?: MemoVoidArrayIterator<T, TResult[]>,
- accumulator?: TResult[],
- thisArg?: any
- ): TResult[];
-
- /**
- * @see _.transform
- */
- transform<T, TResult>(
- object: T[],
- iteratee?: MemoVoidArrayIterator<T, Dictionary<TResult>>,
- accumulator?: Dictionary<TResult>,
- thisArg?: any
- ): Dictionary<TResult>;
-
- /**
- * @see _.transform
- */
- transform<T, TResult>(
- object: Dictionary<T>,
- iteratee?: MemoVoidDictionaryIterator<T, Dictionary<TResult>>,
- accumulator?: Dictionary<TResult>,
- thisArg?: any
- ): Dictionary<TResult>;
-
- /**
- * @see _.transform
- */
- transform<T, TResult>(
- object: Dictionary<T>,
- iteratee?: MemoVoidDictionaryIterator<T, TResult[]>,
- accumulator?: TResult[],
- thisArg?: any
- ): TResult[];
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.transform
- */
- transform<TResult>(
- iteratee?: MemoVoidArrayIterator<T, TResult[]>,
- accumulator?: TResult[],
- thisArg?: any
- ): LoDashImplicitArrayWrapper<TResult>;
-
- /**
- * @see _.transform
- */
- transform<TResult>(
- iteratee?: MemoVoidArrayIterator<T, Dictionary<TResult>>,
- accumulator?: Dictionary<TResult>,
- thisArg?: any
- ): LoDashImplicitObjectWrapper<Dictionary<TResult>>;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.transform
- */
- transform<T, TResult>(
- iteratee?: MemoVoidDictionaryIterator<T, Dictionary<TResult>>,
- accumulator?: Dictionary<TResult>,
- thisArg?: any
- ): LoDashImplicitObjectWrapper<Dictionary<TResult>>;
-
- /**
- * @see _.transform
- */
- transform<T, TResult>(
- iteratee?: MemoVoidDictionaryIterator<T, TResult[]>,
- accumulator?: TResult[],
- thisArg?: any
- ): LoDashImplicitArrayWrapper<TResult>;
- }
-
- //_.values
- interface LoDashStatic {
- /**
- * Creates an array of the own enumerable property values of object.
- *
- * @param object The object to query.
- * @return Returns an array of property values.
- */
- values<T>(object?: any): T[];
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.values
- */
- values<T>(): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.values
- */
- values<T>(): LoDashExplicitArrayWrapper<T>;
- }
-
- //_.valuesIn
- interface LoDashStatic {
- /**
- * Creates an array of the own and inherited enumerable property values of object.
- *
- * @param object The object to query.
- * @return Returns the array of property values.
- */
- valuesIn<T>(object?: any): T[];
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.valuesIn
- */
- valuesIn<T>(): LoDashImplicitArrayWrapper<T>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.valuesIn
- */
- valuesIn<T>(): LoDashExplicitArrayWrapper<T>;
- }
-
- /**********
- * String *
- **********/
-
- //_.camelCase
- interface LoDashStatic {
- /**
- * Converts string to camel case.
- *
- * @param string The string to convert.
- * @return Returns the camel cased string.
- */
- camelCase(string?: string): string;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.camelCase
- */
- camelCase(): string;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.camelCase
- */
- camelCase(): LoDashExplicitWrapper<string>;
- }
-
- //_.capitalize
- interface LoDashStatic {
- capitalize(string?: string): string;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.capitalize
- */
- capitalize(): string;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.capitalize
- */
- capitalize(): LoDashExplicitWrapper<string>;
- }
-
- //_.deburr
- interface LoDashStatic {
- /**
- * Deburrs string by converting latin-1 supplementary letters to basic latin letters and removing combining
- * diacritical marks.
- *
- * @param string The string to deburr.
- * @return Returns the deburred string.
- */
- deburr(string?: string): string;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.deburr
- */
- deburr(): string;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.deburr
- */
- deburr(): LoDashExplicitWrapper<string>;
- }
-
- //_.endsWith
- interface LoDashStatic {
- /**
- * Checks if string ends with the given target string.
- *
- * @param string The string to search.
- * @param target The string to search for.
- * @param position The position to search from.
- * @return Returns true if string ends with target, else false.
- */
- endsWith(
- string?: string,
- target?: string,
- position?: number
- ): boolean;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.endsWith
- */
- endsWith(
- target?: string,
- position?: number
- ): boolean;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.endsWith
- */
- endsWith(
- target?: string,
- position?: number
- ): LoDashExplicitWrapper<boolean>;
- }
-
- // _.escape
- interface LoDashStatic {
- /**
- * Converts the characters "&", "<", ">", '"', "'", and "`", in string to their corresponding HTML entities.
- *
- * Note: No other characters are escaped. To escape additional characters use a third-party library like he.
- *
- * Though the ">" character is escaped for symmetry, characters like ">" and "/" don’t need escaping in HTML
- * and have no special meaning unless they're part of a tag or unquoted attribute value. See Mathias Bynens’s
- * article (under "semi-related fun fact") for more details.
- *
- * Backticks are escaped because in Internet Explorer < 9, they can break out of attribute values or HTML
- * comments. See #59, #102, #108, and #133 of the HTML5 Security Cheatsheet for more details.
- *
- * When working with HTML you should always quote attribute values to reduce XSS vectors.
- *
- * @param string The string to escape.
- * @return Returns the escaped string.
- */
- escape(string?: string): string;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.escape
- */
- escape(): string;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.escape
- */
- escape(): LoDashExplicitWrapper<string>;
- }
-
- // _.escapeRegExp
- interface LoDashStatic {
- /**
- * Escapes the RegExp special characters "\", "/", "^", "$", ".", "|", "?", "*", "+", "(", ")", "[", "]",
- * "{" and "}" in string.
- *
- * @param string The string to escape.
- * @return Returns the escaped string.
- */
- escapeRegExp(string?: string): string;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.escapeRegExp
- */
- escapeRegExp(): string;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.escapeRegExp
- */
- escapeRegExp(): LoDashExplicitWrapper<string>;
- }
-
- //_.kebabCase
- interface LoDashStatic {
- /**
- * Converts string to kebab case.
- *
- * @param string The string to convert.
- * @return Returns the kebab cased string.
- */
- kebabCase(string?: string): string;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.kebabCase
- */
- kebabCase(): string;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.kebabCase
- */
- kebabCase(): LoDashExplicitWrapper<string>;
- }
-
- //_.lowerCase
- interface LoDashStatic {
- /**
- * Converts `string`, as space separated words, to lower case.
- *
- * @static
- * @memberOf _
- * @category String
- * @param {string} [string=''] The string to convert.
- * @returns {string} Returns the lower cased string.
- * @example
- *
- * _.lowerCase('--Foo-Bar');
- * // => 'foo bar'
- *
- * _.lowerCase('fooBar');
- * // => 'foo bar'
- *
- * _.lowerCase('__FOO_BAR__');
- * // => 'foo bar'
- */
- lowerCase(string?: string): string;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.lowerCase
- */
- lowerCase(): string;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.lowerCase
- */
- lowerCase(): LoDashExplicitWrapper<string>;
- }
-
- //_.lowerFirst
- interface LoDashStatic {
- /**
- * Converts the first character of `string` to lower case.
- *
- * @static
- * @memberOf _
- * @category String
- * @param {string} [string=''] The string to convert.
- * @returns {string} Returns the converted string.
- * @example
- *
- * _.lowerFirst('Fred');
- * // => 'fred'
- *
- * _.lowerFirst('FRED');
- * // => 'fRED'
- */
- lowerFirst(string?: string): string;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.lowerFirst
- */
- lowerFirst(): string;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.lowerFirst
- */
- lowerFirst(): LoDashExplicitWrapper<string>;
- }
-
- //_.pad
- interface LoDashStatic {
- /**
- * Pads string on the left and right sides if it’s shorter than length. Padding characters are truncated if
- * they can’t be evenly divided by length.
- *
- * @param string The string to pad.
- * @param length The padding length.
- * @param chars The string used as padding.
- * @return Returns the padded string.
- */
- pad(
- string?: string,
- length?: number,
- chars?: string
- ): string;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.pad
- */
- pad(
- length?: number,
- chars?: string
- ): string;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.pad
- */
- pad(
- length?: number,
- chars?: string
- ): LoDashExplicitWrapper<string>;
- }
-
- //_.padStart
- interface LoDashStatic {
- /**
- * Pads string on the left side if it’s shorter than length. Padding characters are truncated if they exceed
- * length.
- *
- * @param string The string to pad.
- * @param length The padding length.
- * @param chars The string used as padding.
- * @return Returns the padded string.
- */
- padStart(
- string?: string,
- length?: number,
- chars?: string
- ): string;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.padStart
- */
- padStart(
- length?: number,
- chars?: string
- ): string;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.padStart
- */
- padStart(
- length?: number,
- chars?: string
- ): LoDashExplicitWrapper<string>;
- }
-
- //_.padEnd
- interface LoDashStatic {
- /**
- * Pads string on the right side if it’s shorter than length. Padding characters are truncated if they exceed
- * length.
- *
- * @param string The string to pad.
- * @param length The padding length.
- * @param chars The string used as padding.
- * @return Returns the padded string.
- */
- padEnd(
- string?: string,
- length?: number,
- chars?: string
- ): string;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.padEnd
- */
- padEnd(
- length?: number,
- chars?: string
- ): string;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.padEnd
- */
- padEnd(
- length?: number,
- chars?: string
- ): LoDashExplicitWrapper<string>;
- }
-
- //_.parseInt
- interface LoDashStatic {
- /**
- * Converts string to an integer of the specified radix. If radix is undefined or 0, a radix of 10 is used
- * unless value is a hexadecimal, in which case a radix of 16 is used.
- *
- * Note: This method aligns with the ES5 implementation of parseInt.
- *
- * @param string The string to convert.
- * @param radix The radix to interpret value by.
- * @return Returns the converted integer.
- */
- parseInt(
- string: string,
- radix?: number
- ): number;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.parseInt
- */
- parseInt(radix?: number): number;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.parseInt
- */
- parseInt(radix?: number): LoDashExplicitWrapper<number>;
- }
-
- //_.repeat
- interface LoDashStatic {
- /**
- * Repeats the given string n times.
- *
- * @param string The string to repeat.
- * @param n The number of times to repeat the string.
- * @return Returns the repeated string.
- */
- repeat(
- string?: string,
- n?: number
- ): string;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.repeat
- */
- repeat(n?: number): string;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.repeat
- */
- repeat(n?: number): LoDashExplicitWrapper<string>;
- }
-
- //_.snakeCase
- interface LoDashStatic {
- /**
- * Converts string to snake case.
- *
- * @param string The string to convert.
- * @return Returns the snake cased string.
- */
- snakeCase(string?: string): string;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.snakeCase
- */
- snakeCase(): string;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.snakeCase
- */
- snakeCase(): LoDashExplicitWrapper<string>;
- }
-
- //_.startCase
- interface LoDashStatic {
- /**
- * Converts string to start case.
- *
- * @param string The string to convert.
- * @return Returns the start cased string.
- */
- startCase(string?: string): string;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.startCase
- */
- startCase(): string;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.startCase
- */
- startCase(): LoDashExplicitWrapper<string>;
- }
-
- //_.startsWith
- interface LoDashStatic {
- /**
- * Checks if string starts with the given target string.
- *
- * @param string The string to search.
- * @param target The string to search for.
- * @param position The position to search from.
- * @return Returns true if string starts with target, else false.
- */
- startsWith(
- string?: string,
- target?: string,
- position?: number
- ): boolean;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.startsWith
- */
- startsWith(
- target?: string,
- position?: number
- ): boolean;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.startsWith
- */
- startsWith(
- target?: string,
- position?: number
- ): LoDashExplicitWrapper<boolean>;
- }
-
- //_.template
- interface TemplateOptions extends TemplateSettings {
- /**
- * The sourceURL of the template's compiled source.
- */
- sourceURL?: string;
- }
-
- interface TemplateExecutor {
- (data?: Object): string;
- source: string;
- }
-
- interface LoDashStatic {
- /**
- * Creates a compiled template function that can interpolate data properties in "interpolate" delimiters,
- * HTML-escape interpolated data properties in "escape" delimiters, and execute JavaScript in "evaluate"
- * delimiters. Data properties may be accessed as free variables in the template. If a setting object is
- * provided it takes precedence over _.templateSettings values.
- *
- * Note: In the development build _.template utilizes
- * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl) for easier
- * debugging.
- *
- * For more information on precompiling templates see
- * [lodash's custom builds documentation](https://lodash.com/custom-builds).
- *
- * For more information on Chrome extension sandboxes see
- * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval).
- *
- * @param string The template string.
- * @param options The options object.
- * @param options.escape The HTML "escape" delimiter.
- * @param options.evaluate The "evaluate" delimiter.
- * @param options.imports An object to import into the template as free variables.
- * @param options.interpolate The "interpolate" delimiter.
- * @param options.sourceURL The sourceURL of the template's compiled source.
- * @param options.variable The data object variable name.
- * @return Returns the compiled template function.
- */
- template(
- string: string,
- options?: TemplateOptions
- ): TemplateExecutor;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.template
- */
- template(options?: TemplateOptions): TemplateExecutor;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.template
- */
- template(options?: TemplateOptions): LoDashExplicitObjectWrapper<TemplateExecutor>;
- }
-
- //_.toLower
- interface LoDashStatic {
- /**
- * Converts `string`, as a whole, to lower case.
- *
- * @static
- * @memberOf _
- * @category String
- * @param {string} [string=''] The string to convert.
- * @returns {string} Returns the lower cased string.
- * @example
- *
- * _.toLower('--Foo-Bar');
- * // => '--foo-bar'
- *
- * _.toLower('fooBar');
- * // => 'foobar'
- *
- * _.toLower('__FOO_BAR__');
- * // => '__foo_bar__'
- */
- toLower(string?: string): string;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.toLower
- */
- toLower(): string;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.toLower
- */
- toLower(): LoDashExplicitWrapper<string>;
- }
-
- //_.toUpper
- interface LoDashStatic {
- /**
- * Converts `string`, as a whole, to upper case.
- *
- * @static
- * @memberOf _
- * @category String
- * @param {string} [string=''] The string to convert.
- * @returns {string} Returns the upper cased string.
- * @example
- *
- * _.toUpper('--foo-bar');
- * // => '--FOO-BAR'
- *
- * _.toUpper('fooBar');
- * // => 'FOOBAR'
- *
- * _.toUpper('__foo_bar__');
- * // => '__FOO_BAR__'
- */
- toUpper(string?: string): string;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.toUpper
- */
- toUpper(): string;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.toUpper
- */
- toUpper(): LoDashExplicitWrapper<string>;
- }
-
- //_.trim
- interface LoDashStatic {
- /**
- * Removes leading and trailing whitespace or specified characters from string.
- *
- * @param string The string to trim.
- * @param chars The characters to trim.
- * @return Returns the trimmed string.
- */
- trim(
- string?: string,
- chars?: string
- ): string;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.trim
- */
- trim(chars?: string): string;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.trim
- */
- trim(chars?: string): LoDashExplicitWrapper<string>;
- }
-
- //_.trimStart
- interface LoDashStatic {
- /**
- * Removes leading whitespace or specified characters from string.
- *
- * @param string The string to trim.
- * @param chars The characters to trim.
- * @return Returns the trimmed string.
- */
- trimStart(
- string?: string,
- chars?: string
- ): string;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.trimStart
- */
- trimStart(chars?: string): string;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.trimStart
- */
- trimStart(chars?: string): LoDashExplicitWrapper<string>;
- }
-
- //_.trimEnd
- interface LoDashStatic {
- /**
- * Removes trailing whitespace or specified characters from string.
- *
- * @param string The string to trim.
- * @param chars The characters to trim.
- * @return Returns the trimmed string.
- */
- trimEnd(
- string?: string,
- chars?: string
- ): string;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.trimEnd
- */
- trimEnd(chars?: string): string;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.trimEnd
- */
- trimEnd(chars?: string): LoDashExplicitWrapper<string>;
- }
-
- //_.truncate
- interface TruncateOptions {
- /** The maximum string length. */
- length?: number;
- /** The string to indicate text is omitted. */
- omission?: string;
- /** The separator pattern to truncate to. */
- separator?: string|RegExp;
- }
-
- interface LoDashStatic {
- /**
- * Truncates string if it’s longer than the given maximum string length. The last characters of the truncated
- * string are replaced with the omission string which defaults to "…".
- *
- * @param string The string to truncate.
- * @param options The options object or maximum string length.
- * @return Returns the truncated string.
- */
- truncate(
- string?: string,
- options?: TruncateOptions|number
- ): string;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.truncate
- */
- truncate(options?: TruncateOptions|number): string;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.truncate
- */
- truncate(options?: TruncateOptions|number): LoDashExplicitWrapper<string>;
- }
-
- //_.upperCase
- interface LoDashStatic {
- /**
- * Converts `string`, as space separated words, to upper case.
- *
- * @static
- * @memberOf _
- * @category String
- * @param {string} [string=''] The string to convert.
- * @returns {string} Returns the upper cased string.
- * @example
- *
- * _.upperCase('--foo-bar');
- * // => 'FOO BAR'
- *
- * _.upperCase('fooBar');
- * // => 'FOO BAR'
- *
- * _.upperCase('__foo_bar__');
- * // => 'FOO BAR'
- */
- upperCase(string?: string): string;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.upperCase
- */
- upperCase(): string;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.upperCase
- */
- upperCase(): LoDashExplicitWrapper<string>;
- }
-
- //_.upperFirst
- interface LoDashStatic {
- /**
- * Converts the first character of `string` to upper case.
- *
- * @static
- * @memberOf _
- * @category String
- * @param {string} [string=''] The string to convert.
- * @returns {string} Returns the converted string.
- * @example
- *
- * _.upperFirst('fred');
- * // => 'Fred'
- *
- * _.upperFirst('FRED');
- * // => 'FRED'
- */
- upperFirst(string?: string): string;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.upperFirst
- */
- upperFirst(): string;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.upperFirst
- */
- upperFirst(): LoDashExplicitWrapper<string>;
- }
-
- //_.unescape
- interface LoDashStatic {
- /**
- * The inverse of _.escape; this method converts the HTML entities &amp;, &lt;, &gt;, &quot;, &#39;, and &#96;
- * in string to their corresponding characters.
- *
- * @param string The string to unescape.
- * @return Returns the unescaped string.
- */
- unescape(string?: string): string;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.unescape
- */
- unescape(): string;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.unescape
- */
- unescape(): LoDashExplicitWrapper<string>;
- }
-
- //_.words
- interface LoDashStatic {
- /**
- * Splits `string` into an array of its words.
- *
- * @static
- * @memberOf _
- * @category String
- * @param {string} [string=''] The string to inspect.
- * @param {RegExp|string} [pattern] The pattern to match words.
- * @param- {Object} [guard] Enables use as an iteratee for functions like `_.map`.
- * @returns {Array} Returns the words of `string`.
- * @example
- *
- * _.words('fred, barney, & pebbles');
- * // => ['fred', 'barney', 'pebbles']
- *
- * _.words('fred, barney, & pebbles', /[^, ]+/g);
- * // => ['fred', 'barney', '&', 'pebbles']
- */
- words(
- string?: string,
- pattern?: string|RegExp
- ): string[];
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.words
- */
- words(pattern?: string|RegExp): string[];
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.words
- */
- words(pattern?: string|RegExp): LoDashExplicitArrayWrapper<string>;
- }
-
- /***********
- * Utility *
- ***********/
-
- //_.attempt
- interface LoDashStatic {
- /**
- * Attempts to invoke func, returning either the result or the caught error object. Any additional arguments
- * are provided to func when it’s invoked.
- *
- * @param func The function to attempt.
- * @return Returns the func result or error object.
- */
- attempt<TResult>(func: (...args: any[]) => TResult): TResult|Error;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.attempt
- */
- attempt<TResult>(): TResult|Error;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.attempt
- */
- attempt<TResult>(): LoDashExplicitObjectWrapper<TResult|Error>;
- }
-
- //_.constant
- interface LoDashStatic {
- /**
- * Creates a function that returns value.
- *
- * @param value The value to return from the new function.
- * @return Returns the new function.
- */
- constant<T>(value: T): () => T;
- }
-
- interface LoDashImplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.constant
- */
- constant<TResult>(): LoDashImplicitObjectWrapper<() => TResult>;
- }
-
- interface LoDashExplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.constant
- */
- constant<TResult>(): LoDashExplicitObjectWrapper<() => TResult>;
- }
-
- //_.identity
- interface LoDashStatic {
- /**
- * This method returns the first argument provided to it.
- * @param value Any value.
- * @return Returns value.
- */
- identity<T>(value?: T): T;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.identity
- */
- identity(): T;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.identity
- */
- identity(): T[];
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.identity
- */
- identity(): T;
- }
-
- //_.iteratee
- interface LoDashStatic {
- /**
- * Creates a function that invokes `func` with the arguments of the created
- * function. If `func` is a property name the created callback returns the
- * property value for a given element. If `func` is an object the created
- * callback returns `true` for elements that contain the equivalent object properties, otherwise it returns `false`.
- *
- * @static
- * @memberOf _
- * @category Util
- * @param {*} [func=_.identity] The value to convert to a callback.
- * @returns {Function} Returns the callback.
- * @example
- *
- * var users = [
- * { 'user': 'barney', 'age': 36 },
- * { 'user': 'fred', 'age': 40 }
- * ];
- *
- * // create custom iteratee shorthands
- * _.iteratee = _.wrap(_.iteratee, function(callback, func) {
- * var p = /^(\S+)\s*([<>])\s*(\S+)$/.exec(func);
- * return !p ? callback(func) : function(object) {
- * return (p[2] == '>' ? object[p[1]] > p[3] : object[p[1]] < p[3]);
- * };
- * });
- *
- * _.filter(users, 'age > 36');
- * // => [{ 'user': 'fred', 'age': 40 }]
- */
- iteratee<TResult>(
- func: Function,
- thisArg?: any
- ): (...args: any[]) => TResult;
-
- /**
- * @see _.iteratee
- */
- iteratee<TResult>(
- func: string,
- thisArg?: any
- ): (object: any) => TResult;
-
- /**
- * @see _.iteratee
- */
- iteratee(
- func: Object,
- thisArg?: any
- ): (object: any) => boolean;
-
- /**
- * @see _.iteratee
- */
- iteratee<TResult>(): (value: TResult) => TResult;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.iteratee
- */
- iteratee<TResult>(thisArg?: any): LoDashImplicitObjectWrapper<(object: any) => TResult>;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.iteratee
- */
- iteratee(thisArg?: any): LoDashImplicitObjectWrapper<(object: any) => boolean>;
-
- /**
- * @see _.iteratee
- */
- iteratee<TResult>(thisArg?: any): LoDashImplicitObjectWrapper<(...args: any[]) => TResult>;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.iteratee
- */
- iteratee<TResult>(thisArg?: any): LoDashExplicitObjectWrapper<(object: any) => TResult>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.iteratee
- */
- iteratee(thisArg?: any): LoDashExplicitObjectWrapper<(object: any) => boolean>;
-
- /**
- * @see _.iteratee
- */
- iteratee<TResult>(thisArg?: any): LoDashExplicitObjectWrapper<(...args: any[]) => TResult>;
- }
-
- //_.matches
- interface LoDashStatic {
- /**
- * Creates a function that performs a deep comparison between a given object and source, returning true if the
- * given object has equivalent property values, else false.
- *
- * Note: This method supports comparing arrays, booleans, Date objects, numbers, Object objects, regexes, and
- * strings. Objects are compared by their own, not inherited, enumerable properties. For comparing a single own
- * or inherited property value see _.matchesProperty.
- *
- * @param source The object of property values to match.
- * @return Returns the new function.
- */
- matches<T>(source: T): (value: any) => boolean;
-
- /**
- * @see _.matches
- */
- matches<T, V>(source: T): (value: V) => boolean;
- }
-
- interface LoDashImplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.matches
- */
- matches<V>(): LoDashImplicitObjectWrapper<(value: V) => boolean>;
- }
-
- interface LoDashExplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.matches
- */
- matches<V>(): LoDashExplicitObjectWrapper<(value: V) => boolean>;
- }
-
- //_.matchesProperty
- interface LoDashStatic {
- /**
- * Creates a function that compares the property value of path on a given object to value.
- *
- * Note: This method supports comparing arrays, booleans, Date objects, numbers, Object objects, regexes, and
- * strings. Objects are compared by their own, not inherited, enumerable properties.
- *
- * @param path The path of the property to get.
- * @param srcValue The value to match.
- * @return Returns the new function.
- */
- matchesProperty<T>(
- path: StringRepresentable|StringRepresentable[],
- srcValue: T
- ): (value: any) => boolean;
-
- /**
- * @see _.matchesProperty
- */
- matchesProperty<T, V>(
- path: StringRepresentable|StringRepresentable[],
- srcValue: T
- ): (value: V) => boolean;
- }
-
- interface LoDashImplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.matchesProperty
- */
- matchesProperty<SrcValue>(
- srcValue: SrcValue
- ): LoDashImplicitObjectWrapper<(value: any) => boolean>;
-
- /**
- * @see _.matchesProperty
- */
- matchesProperty<SrcValue, Value>(
- srcValue: SrcValue
- ): LoDashImplicitObjectWrapper<(value: Value) => boolean>;
- }
-
- interface LoDashExplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.matchesProperty
- */
- matchesProperty<SrcValue>(
- srcValue: SrcValue
- ): LoDashExplicitObjectWrapper<(value: any) => boolean>;
-
- /**
- * @see _.matchesProperty
- */
- matchesProperty<SrcValue, Value>(
- srcValue: SrcValue
- ): LoDashExplicitObjectWrapper<(value: Value) => boolean>;
- }
-
- //_.method
- interface LoDashStatic {
- /**
- * Creates a function that invokes the method at path on a given object. Any additional arguments are provided
- * to the invoked method.
- *
- * @param path The path of the method to invoke.
- * @param args The arguments to invoke the method with.
- * @return Returns the new function.
- */
- method<TObject, TResult>(
- path: string|StringRepresentable[],
- ...args: any[]
- ): (object: TObject) => TResult;
-
- /**
- * @see _.method
- */
- method<TResult>(
- path: string|StringRepresentable[],
- ...args: any[]
- ): (object: any) => TResult;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.method
- */
- method<TObject, TResult>(...args: any[]): LoDashImplicitObjectWrapper<(object: TObject) => TResult>;
-
- /**
- * @see _.method
- */
- method<TResult>(...args: any[]): LoDashImplicitObjectWrapper<(object: any) => TResult>;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.method
- */
- method<TObject, TResult>(...args: any[]): LoDashImplicitObjectWrapper<(object: TObject) => TResult>;
-
- /**
- * @see _.method
- */
- method<TResult>(...args: any[]): LoDashImplicitObjectWrapper<(object: any) => TResult>;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.method
- */
- method<TObject, TResult>(...args: any[]): LoDashExplicitObjectWrapper<(object: TObject) => TResult>;
-
- /**
- * @see _.method
- */
- method<TResult>(...args: any[]): LoDashExplicitObjectWrapper<(object: any) => TResult>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.method
- */
- method<TObject, TResult>(...args: any[]): LoDashExplicitObjectWrapper<(object: TObject) => TResult>;
-
- /**
- * @see _.method
- */
- method<TResult>(...args: any[]): LoDashExplicitObjectWrapper<(object: any) => TResult>;
- }
-
- //_.methodOf
- interface LoDashStatic {
- /**
- * The opposite of _.method; this method creates a function that invokes the method at a given path on object.
- * Any additional arguments are provided to the invoked method.
- *
- * @param object The object to query.
- * @param args The arguments to invoke the method with.
- * @return Returns the new function.
- */
- methodOf<TObject extends {}, TResult>(
- object: TObject,
- ...args: any[]
- ): (path: StringRepresentable|StringRepresentable[]) => TResult;
-
- /**
- * @see _.methodOf
- */
- methodOf<TResult>(
- object: {},
- ...args: any[]
- ): (path: StringRepresentable|StringRepresentable[]) => TResult;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.methodOf
- */
- methodOf<TResult>(
- ...args: any[]
- ): LoDashImplicitObjectWrapper<(path: StringRepresentable|StringRepresentable[]) => TResult>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.methodOf
- */
- methodOf<TResult>(
- ...args: any[]
- ): LoDashExplicitObjectWrapper<(path: StringRepresentable|StringRepresentable[]) => TResult>;
- }
-
- //_.mixin
- interface MixinOptions {
- chain?: boolean;
- }
-
- interface LoDashStatic {
- /**
- * Adds all own enumerable function properties of a source object to the destination object. If object is a
- * function then methods are added to its prototype as well.
- *
- * Note: Use _.runInContext to create a pristine lodash function to avoid conflicts caused by modifying
- * the original.
- *
- * @param object The destination object.
- * @param source The object of functions to add.
- * @param options The options object.
- * @param options.chain Specify whether the functions added are chainable.
- * @return Returns object.
- */
- mixin<TResult, TObject>(
- object: TObject,
- source: Dictionary<Function>,
- options?: MixinOptions
- ): TResult;
-
- /**
- * @see _.mixin
- */
- mixin<TResult>(
- source: Dictionary<Function>,
- options?: MixinOptions
- ): TResult;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.mixin
- */
- mixin<TResult>(
- source: Dictionary<Function>,
- options?: MixinOptions
- ): LoDashImplicitObjectWrapper<TResult>;
-
- /**
- * @see _.mixin
- */
- mixin<TResult>(
- options?: MixinOptions
- ): LoDashImplicitObjectWrapper<TResult>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.mixin
- */
- mixin<TResult>(
- source: Dictionary<Function>,
- options?: MixinOptions
- ): LoDashExplicitObjectWrapper<TResult>;
-
- /**
- * @see _.mixin
- */
- mixin<TResult>(
- options?: MixinOptions
- ): LoDashExplicitObjectWrapper<TResult>;
- }
-
- //_.noConflict
- interface LoDashStatic {
- /**
- * Reverts the _ variable to its previous value and returns a reference to the lodash function.
- *
- * @return Returns the lodash function.
- */
- noConflict(): typeof _;
- }
-
- interface LoDashImplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.noConflict
- */
- noConflict(): typeof _;
- }
-
- //_.noop
- interface LoDashStatic {
- /**
- * A no-operation function that returns undefined regardless of the arguments it receives.
- *
- * @return undefined
- */
- noop(...args: any[]): void;
- }
-
- interface LoDashImplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.noop
- */
- noop(...args: any[]): void;
- }
-
- interface LoDashExplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.noop
- */
- noop(...args: any[]): _.LoDashExplicitWrapper<void>;
- }
-
- //_.property
- interface LoDashStatic {
- /**
- * Creates a function that returns the property value at path on a given object.
- *
- * @param path The path of the property to get.
- * @return Returns the new function.
- */
- property<TObj, TResult>(path: StringRepresentable|StringRepresentable[]): (obj: TObj) => TResult;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.property
- */
- property<TObj, TResult>(): LoDashImplicitObjectWrapper<(obj: TObj) => TResult>;
- }
-
- interface LoDashImplicitArrayWrapper<T> {
- /**
- * @see _.property
- */
- property<TObj, TResult>(): LoDashImplicitObjectWrapper<(obj: TObj) => TResult>;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.property
- */
- property<TObj, TResult>(): LoDashExplicitObjectWrapper<(obj: TObj) => TResult>;
- }
-
- interface LoDashExplicitArrayWrapper<T> {
- /**
- * @see _.property
- */
- property<TObj, TResult>(): LoDashExplicitObjectWrapper<(obj: TObj) => TResult>;
- }
-
- //_.propertyOf
- interface LoDashStatic {
- /**
- * The opposite of _.property; this method creates a function that returns the property value at a given path
- * on object.
- *
- * @param object The object to query.
- * @return Returns the new function.
- */
- propertyOf<T extends {}>(object: T): (path: string|string[]) => any;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.propertyOf
- */
- propertyOf(): LoDashImplicitObjectWrapper<(path: string|string[]) => any>;
- }
-
- interface LoDashExplicitObjectWrapper<T> {
- /**
- * @see _.propertyOf
- */
- propertyOf(): LoDashExplicitObjectWrapper<(path: string|string[]) => any>;
- }
-
- //_.range
- interface LoDashStatic {
- /**
- * Creates an array of numbers (positive and/or negative) progressing from start up to, but not including, end.
- * If end is not specified it’s set to start with start then set to 0. If end is less than start a zero-length
- * range is created unless a negative step is specified.
- *
- * @param start The start of the range.
- * @param end The end of the range.
- * @param step The value to increment or decrement by.
- * @return Returns a new range array.
- */
- range(
- start: number,
- end: number,
- step?: number
- ): number[];
-
- /**
- * @see _.range
- */
- range(
- end: number,
- step?: number
- ): number[];
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.range
- */
- range(
- end?: number,
- step?: number
- ): LoDashImplicitArrayWrapper<number>;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.range
- */
- range(
- end?: number,
- step?: number
- ): LoDashExplicitArrayWrapper<number>;
- }
-
- //_.rangeRight
- interface LoDashStatic {
- /**
- * This method is like `_.range` except that it populates values in
- * descending order.
- *
- * @static
- * @memberOf _
- * @category Util
- * @param {number} [start=0] The start of the range.
- * @param {number} end The end of the range.
- * @param {number} [step=1] The value to increment or decrement by.
- * @returns {Array} Returns the new array of numbers.
- * @example
- *
- * _.rangeRight(4);
- * // => [3, 2, 1, 0]
- *
- * _.rangeRight(-4);
- * // => [-3, -2, -1, 0]
- *
- * _.rangeRight(1, 5);
- * // => [4, 3, 2, 1]
- *
- * _.rangeRight(0, 20, 5);
- * // => [15, 10, 5, 0]
- *
- * _.rangeRight(0, -4, -1);
- * // => [-3, -2, -1, 0]
- *
- * _.rangeRight(1, 4, 0);
- * // => [1, 1, 1]
- *
- * _.rangeRight(0);
- * // => []
- */
- rangeRight(
- start: number,
- end: number,
- step?: number
- ): number[];
-
- /**
- * @see _.rangeRight
- */
- rangeRight(
- end: number,
- step?: number
- ): number[];
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.rangeRight
- */
- rangeRight(
- end?: number,
- step?: number
- ): LoDashImplicitArrayWrapper<number>;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.rangeRight
- */
- rangeRight(
- end?: number,
- step?: number
- ): LoDashExplicitArrayWrapper<number>;
- }
-
- //_.runInContext
- interface LoDashStatic {
- /**
- * Create a new pristine lodash function using the given context object.
- *
- * @param context The context object.
- * @return Returns a new lodash function.
- */
- runInContext(context?: Object): typeof _;
- }
-
- interface LoDashImplicitObjectWrapper<T> {
- /**
- * @see _.runInContext
- */
- runInContext(): typeof _;
- }
-
- //_.times
- interface LoDashStatic {
- /**
- * Invokes the iteratee function n times, returning an array of the results of each invocation. The iteratee is
- * bound to thisArg and invoked with one argument; (index).
- *
- * @param n The number of times to invoke iteratee.
- * @param iteratee The function invoked per iteration.
- * @param thisArg The this binding of iteratee.
- * @return Returns the array of results.
- */
- times<TResult>(
- n: number,
- iteratee: (num: number) => TResult,
- thisArg?: any
- ): TResult[];
-
- /**
- * @see _.times
- */
- times(n: number): number[];
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.times
- */
- times<TResult>(
- iteratee: (num: number) => TResult,
- thisArgs?: any
- ): LoDashImplicitArrayWrapper<TResult>;
-
- /**
- * @see _.times
- */
- times(): LoDashImplicitArrayWrapper<number>;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.times
- */
- times<TResult>(
- iteratee: (num: number) => TResult,
- thisArgs?: any
- ): LoDashExplicitArrayWrapper<TResult>;
-
- /**
- * @see _.times
- */
- times(): LoDashExplicitArrayWrapper<number>;
- }
-
- //_.toPath
- interface LoDashStatic {
- /**
- * Converts `value` to a property path array.
- *
- * @static
- * @memberOf _
- * @category Util
- * @param {*} value The value to convert.
- * @returns {Array} Returns the new property path array.
- * @example
- *
- * _.toPath('a.b.c');
- * // => ['a', 'b', 'c']
- *
- * _.toPath('a[0].b.c');
- * // => ['a', '0', 'b', 'c']
- *
- * var path = ['a', 'b', 'c'],
- * newPath = _.toPath(path);
- *
- * console.log(newPath);
- * // => ['a', 'b', 'c']
- *
- * console.log(path === newPath);
- * // => false
- */
- toPath(value: any): string[];
- }
-
- interface LoDashImplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.toPath
- */
- toPath(): LoDashImplicitWrapper<string[]>;
- }
-
- interface LoDashExplicitWrapperBase<T, TWrapper> {
- /**
- * @see _.toPath
- */
- toPath(): LoDashExplicitWrapper<string[]>;
- }
-
- //_.uniqueId
- interface LoDashStatic {
- /**
- * Generates a unique ID. If prefix is provided the ID is appended to it.
- *
- * @param prefix The value to prefix the ID with.
- * @return Returns the unique ID.
- */
- uniqueId(prefix?: string): string;
- }
-
- interface LoDashImplicitWrapper<T> {
- /**
- * @see _.uniqueId
- */
- uniqueId(): string;
- }
-
- interface LoDashExplicitWrapper<T> {
- /**
- * @see _.uniqueId
- */
- uniqueId(): LoDashExplicitWrapper<string>;
- }
-
- interface ListIterator<T, TResult> {
- (value: T, index: number, collection: List<T>): TResult;
- }
-
- interface DictionaryIterator<T, TResult> {
- (value: T, key?: string, collection?: Dictionary<T>): TResult;
- }
-
- interface NumericDictionaryIterator<T, TResult> {
- (value: T, key?: number, collection?: Dictionary<T>): TResult;
- }
-
- interface ObjectIterator<T, TResult> {
- (element: T, key?: string, collection?: any): TResult;
- }
-
- interface StringIterator<TResult> {
- (char: string, index?: number, string?: string): TResult;
- }
-
- interface MemoVoidIterator<T, TResult> {
- (prev: TResult, curr: T, indexOrKey?: any, list?: T[]): void;
- }
- interface MemoIterator<T, TResult> {
- (prev: TResult, curr: T, indexOrKey?: any, list?: T[]): TResult;
- }
-
- interface MemoVoidArrayIterator<T, TResult> {
- (acc: TResult, curr: T, index?: number, arr?: T[]): void;
- }
- interface MemoVoidDictionaryIterator<T, TResult> {
- (acc: TResult, curr: T, key?: string, dict?: Dictionary<T>): void;
- }
-
- //interface Collection<T> {}
-
- // Common interface between Arrays and jQuery objects
- interface List<T> {
- [index: number]: T;
- length: number;
- }
-
- interface Dictionary<T> {
- [index: string]: T;
- }
-
- interface NumericDictionary<T> {
- [index: number]: T;
- }
-
- interface StringRepresentable {
- toString(): string;
- }
-
- interface Cancelable {
- cancel(): void;
- }
-}
-
-declare module "lodash" {
- export = _;
-}
diff --git a/lib/decl/mithril.d.ts b/lib/decl/mithril.d.ts
deleted file mode 100644
index c45633490..000000000
--- a/lib/decl/mithril.d.ts
+++ /dev/null
@@ -1,926 +0,0 @@
-// Mithril type definitions for Typescript
-
-/**
-* This is the module containing all the types/declarations/etc. for Mithril
-*/
-declare module _mithril {
- interface MithrilStatic {
- /**
- * Creates a virtual element for use with m.render, m.mount, etc.
- *
- * @param selector A simple CSS selector. May include SVG tags. Nested
- * selectors are not supported.
- * @param attributes Attributes to add. Any DOM attribute may be used
- * as an attribute, although innerHTML and the like may be overwritten
- * silently.
- * @param children Child elements, components, and text to add.
- * @return A virtual element.
- *
- * @see m.render
- * @see m.mount
- * @see m.component
- */
- <T extends MithrilController>(
- selector: string,
- attributes: MithrilAttributes,
- ...children: Array<string |
- MithrilVirtualElement<T> |
- MithrilComponent<T>>
- ): MithrilVirtualElement<T>;
-
- /**
- * Initializes a component for use with m.render, m.mount, etc.
- *
- * @param component A component.
- * @param args Arguments to optionally pass to the component.
- * @return A component.
- *
- * @see m.render
- * @see m.mount
- * @see m
- */
- <T extends MithrilController>(
- component: MithrilComponent<T>,
- ...args: any[]
- ): MithrilComponent<T>;
-
- /**
- * Creates a virtual element for use with m.render, m.mount, etc.
- *
- * @param selector A simple CSS selector. Nested selectors are not
- * supported.
- * @param children Child elements, components, and text to add.
- * @return A virtual element.
- *
- * @see m.render
- * @see m.mount
- * @see m.component
- */
- <T extends MithrilController>(
- selector: string,
- ...children: Array<string |
- MithrilVirtualElement<T> |
- MithrilComponent<T>>
- ): MithrilVirtualElement<T>;
-
- /**
- * Initializes a component for use with m.render, m.mount, etc.
- * Shorthand for m.component.
- *
- * @param selector A component.
- * @param args Arguments to optionally pass to the component.
- * @return A component.
- *
- * @see m.render
- * @see m.mount
- * @see m.component
- */
- <T extends MithrilController>(
- component: MithrilComponent<T>,
- ...args: any[]
- ): MithrilComponent<T>;
-
- /**
- * Creates a getter-setter function that wraps a Mithril promise. Useful
- * for uniform data access, m.withAttr, etc.
- *
- * @param promise A thennable to initialize the property with. It may
- * optionally be a Mithril promise.
- * @return A getter-setter function wrapping the promise.
- *
- * @see m.withAttr
- */
- prop<T>(promise: Thennable<T>) : MithrilPromiseProperty<T>;
-
- /**
- * Creates a getter-setter function that wraps a simple value. Useful
- * for uniform data access, m.withAttr, etc.
- *
- * @param value A value to initialize the property with
- * @return A getter-setter function wrapping the value.
- *
- * @see m.withAttr
- */
- prop<T>(value: T): MithrilBasicProperty<T>;
-
- /**
- * Creates a getter-setter function that wraps a simple value. Useful
- * for uniform data access, m.withAttr, etc.
- *
- * @return A getter-setter function wrapping the value.
- *
- * @see m.withAttr
- */
- prop<T>(): MithrilBasicProperty<T>;
-
- /**
- * Returns a event handler that can be bound to an element, firing with
- * the specified property.
- *
- * @param property The property to get from the event.
- * @param callback The handler to use the value from the event.
- * @return A function suitable for listening to an event.
- */
- withAttr(
- property: string,
- callback: (value: any) => void,
- callbackThis: any
- ): (e: Event) => any;
-
- /**
- * Returns a event handler that can be bound to an element, firing with
- * the specified property.
- *
- * @param attributeName Name of the element's attribute to bind to.
- * @param property The property to bind.
- * @return A function suitable for listening to an event.
- */
- withAttr<T>(
- attributeName: string,
- property: MithrilBasicProperty<T>
- ) : (e: Event) => any;
-
- /**
- * @deprecated Use m.mount instead
- */
- module<T extends MithrilController>(
- rootElement: Node,
- component: MithrilComponent<T>
- ): T;
-
- /**
- * Mounts a component to a base DOM node.
- *
- * @param rootElement The base node.
- * @param component The component to mount.
- * @return An instance of the top-level component's controller
- */
- mount<T extends MithrilController>(
- rootElement: Node,
- component: MithrilComponent<T>
- ): T;
-
- /**
- * Initializes a component for use with m.render, m.mount, etc.
- *
- * @param selector A component.
- * @param args Arguments to optionally pass to the component.
- * @return A component.
- *
- * @see m.render
- * @see m.mount
- * @see m
- */
- component<T extends MithrilController>(
- component: MithrilComponent<T>,
- ...args: any[]
- ): MithrilComponent<T>;
-
- /**
- * Trust this string of HTML.
- *
- * @param html The HTML to trust
- * @return A String object instance with an added internal flag to mark
- * it as trusted.
- */
- trust(html: string): MithrilTrustedString;
-
- /**
- * Render a virtual DOM tree.
- *
- * @param rootElement The base element/node to render the tree from.
- * @param children One or more child nodes to add to the tree.
- * @param forceRecreation If true, overwrite the entire tree without
- * diffing against it.
- */
- render<T extends MithrilController>(
- rootElement: Element,
- children: MithrilVirtualElement<T>|MithrilVirtualElement<T>[],
- forceRecreation?: boolean
- ): void;
-
- redraw: {
- /**
- * Force a redraw the active component. It redraws asynchronously by
- * default to allow for simultaneous events to run before redrawing,
- * such as the event combination keypress + input frequently used for
- * input.
- *
- * @param force If true, redraw synchronously.
- */
- (force?: boolean): void;
-
- strategy: {
- /**
- * Gets the current redraw strategy, which returns one of the
- * following:
- *
- * "all" - recreates the DOM tree from scratch
- * "diff" - recreates the DOM tree from scratch
- * "none" - leaves the DOM tree intact
- *
- * This is useful for event handlers, which may want to cancel
- * the next redraw if the event doesn't update the UI.
- *
- * @return The current strategy
- */
- (): string;
-
- /**
- * Sets the current redraw strategy. The parameter must be one of
- * the following values:
- *
- * "all" - recreates the DOM tree from scratch
- * "diff" - recreates the DOM tree from scratch
- * "none" - leaves the DOM tree intact
- *
- * This is useful for event handlers, which may want to cancel
- * the next redraw if the event doesn't update the UI.
- *
- * @param value The value to set
- * @return The new strategy
- */
- (value: string): string;
-
- /**
- * @private
- * Implementation detail - it's a MithrilBasicProperty instance
- */
- toJSON(): string;
- }
- }
-
- route: {
- /**
- * Enable routing, mounting a controller based on the route. It
- * automatically mounts the components for you, starting with the one
- * specified by the default route.
- *
- * @param rootElement The element to mount the active controller to.
- * @param defaultRoute The route to start with.
- * @param routes A key-value mapping of pathname to controller.
- */
- <T extends MithrilController>(
- rootElement: Element,
- defaultRoute: string,
- routes: MithrilRoutes
- ): void;
-
- /**
- * This allows m.route to be used as the `config` attribute for a
- * virtual element, particularly useful for cases like this:
- *
- * ```ts
- * // Note that the '#' is not required in `href`, thanks to the
- * `config` setting.
- * m("a[href='/dashboard/alicesmith']", {config: m.route});
- * ```
- */
- <T extends MithrilController>(
- element: Element,
- isInitialized: boolean,
- context?: MithrilContext,
- vdom?: MithrilVirtualElement<T>
- ): void;
-
- /**
- * Programmatically redirect to another route.
- *
- * @param path The route to go to.
- * @param params Parameters to pass as a query string.
- * @param shouldReplaceHistory Whether to replace the current history
- * instead of adding a new one.
- */
- (path: string, params?: any, shouldReplaceHistory?: boolean): void;
-
- /**
- * Gets the current route.
- *
- * @return The current route.
- */
- (): string;
-
- /**
- * Gets a route parameter.
- *
- * @param key The key to get.
- * @return The value associated with the parameter key.
- */
- param(key: string): string;
-
- /**
- * The current routing mode. This may be changed before calling
- * m.route to change the part of the URL used to perform the routing.
- *
- * The value can be set to one of the following, defaulting to
- * "hash":
- *
- * "search" - Uses the query string. This allows for named anchors to
- * work on the page, but changes cause IE8 and lower to refresh the
- * page.
- *
- * "hash" - Uses the hash. This is the only routing mode that does
- * not cause page refreshes on any browser, but it does not support
- * named anchors.
- *
- * "pathname" - Uses the URL pathname. This requires server-side
- * setup to support bookmarking and page refreshes. It always causes
- * page refreshes on IE8 and lower. Note that this requires that the
- * application to be run from the root of the URL.
- */
- mode: string;
-
- /**
- * Serialize an object into a query string.
- *
- * @param data The data to serialize.
- * @return The serialized string.
- */
- buildQueryString(data: Object): String
-
- /**
- * Parse a query string into an object.
- *
- * @param data The data to parse.
- * @return The parsed object data.
- */
- parseQueryString(data: String): Object
- }
-
- /**
- * Send a request to a server to server. Note that the `url` option is
- * required.
- *
- * @param options The options to use
- * @return A promise to the returned data for "GET" requests, or a void
- * promise for any other request type.
- *
- * @see MithrilXHROptions for the available options.
- */
- request<T>(options: MithrilXHROptions<T>): MithrilPromise<T>;
-
- deferred: {
- /**
- * Create a Mithril deferred object. It behaves synchronously if
- * possible, an intentional deviation from Promises/A+. Note that
- * deferreds are completely separate from the redrawing system, and
- * never trigger a redraw on their own.
- *
- * @return A new Mithril deferred instance.
- *
- * @see m.deferred.onerror for the error callback called for Error
- * subclasses
- */
- <T>(): MithrilDeferred<T>;
-
- /**
- * A callback for all uncaught native Error subclasses in deferreds.
- * This defaults to synchronously rethrowing all errors, a deviation
- * from Promises/A+, but the behavior is configurable. To restore
- * Promises/A+-compatible behavior. simply set this to a no-op.
- */
- onerror(e: Error): void;
- }
-
- /**
- * Takes a list of promises or thennables and returns a Mithril promise
- * that resolves once all in the list are resolved, or rejects if any of
- * them reject.
- *
- * @param promises A list of promises to try to resolve.
- * @return A promise that resolves to all the promises if all resolve, or
- * rejects with the error contained in the first rejection.
- */
- sync<T>(promises: Thennable<T>[]): MithrilPromise<T[]>;
-
- /**
- * Use this and endComputation if your views aren't redrawing after
- * calls to third-party libraries. For integrating asynchronous code,
- * this should be called before any asynchronous work is done. For
- * synchronous code, this should be called at the beginning of the
- * problematic segment. Note that these calls must be balanced, much like
- * braces and parentheses. This is mostly used internally. Prefer
- * m.redraw where possible, especially when making repeated calls.
- *
- * @see endComputation
- * @see m.render
- */
- startComputation(): void;
-
- /**
- * Use startComputation and this if your views aren't redrawing after
- * calls to third-party libraries. For integrating asynchronous code,
- * this should be called after all asynchronous work completes. For
- * synchronous code, this should be called at the end of the problematic
- * segment. Note that these calls must be balanced, much like braces and
- * parentheses. This is mostly used internally. Prefer m.redraw where
- * possible, especially when making repeated calls.
- *
- * @see startComputation
- * @see m.render
- */
- endComputation(): void;
-
- /**
- * This overwrites the internal version of window used by Mithril.
- * It's mostly useful for testing, and is also used internally by
- * Mithril to test itself. By default Mithril uses `window` for the
- * dependency.
- *
- * @param mockWindow The mock to use for the window.
- * @return The mock that was passed in.
- */
- deps(mockWindow: Window): Window;
- }
-
- interface MithrilTrustedString extends String {
- /** @private Implementation detail. Don't depend on it. */
- $trusted: boolean;
- }
-
- /**
- * The interface for a virtual element. It's best to consider this immutable
- * for most use cases.
- *
- * @see m
- */
- interface MithrilVirtualElement<T extends MithrilController> {
- /**
- * A key to optionally associate with this element.
- */
- key?: number;
-
- /**
- * The tag name of this element.
- */
- tag?: string;
-
- /**
- * The attributes of this element.
- */
- attrs?: MithrilAttributes;
-
- /**
- * The children of this element.
- */
- children?: Array<string|MithrilVirtualElement<T>|MithrilComponent<T>>;
- }
-
- /**
- * An event passed by Mithril to unload event handlers.
- */
- interface MithrilEvent {
- /**
- * Prevent the default behavior of scrolling the page and updating the
- * URL on next route change.
- */
- preventDefault(): void;
- }
-
- /**
- * A context object for configuration functions.
- *
- * @see MithrilElementConfig
- */
- interface MithrilContext {
- /**
- * A function to call when the node is unloaded. Useful for cleanup.
- */
- onunload?(): any;
-
- /**
- * Set true if the backing DOM node needs to be retained between route
- * changes if possible. Set false if this node needs to be recreated
- * every single time, regardless of how "different" it is.
- */
- retain?: boolean;
- }
-
- /**
- * This represents a callback function for a virtual element's config
- * attribute. It's a low-level function useful for extra cleanup after
- * removal from the tree, storing instances of third-party classes that
- * need to be associated with the DOM, etc.
- *
- * @see MithrilAttributes
- * @see MithrilContext
- */
- interface MithrilElementConfig {
- /**
- * A callback function for a virtual element's config attribute.
- *
- * @param element The associated DOM element.
- * @param isInitialized Whether this is the first call for the virtual
- * element or not.
- * @param context The associated context for this element.
- * @param vdom The associated virtual element.
- */
- <T extends MithrilController>(
- element: Element,
- isInitialized: boolean,
- context: MithrilContext,
- vdom: MithrilVirtualElement<T>
- ): void;
- }
-
- /**
- * This represents the attributes available for configuring virtual elements,
- * beyond the applicable DOM attributes.
- *
- * @see m
- */
- interface MithrilAttributes {
- /**
- * The class name(s) for this virtual element, as a space-separated list.
- */
- className?: string;
-
- /**
- * The class name(s) for this virtual element, as a space-separated list.
- */
- class?: string;
-
- /**
- * A custom, low-level configuration in case this element needs special
- * cleanup after removal from the tree.
- *
- * @see MithrilElementConfig
- */
- config?: MithrilElementConfig;
-
- /**
- * Any other virtual element properties including attributes and
- * event handlers
- */
- [property: string]: any;
- }
-
- /**
- * The basis of a Mithril controller instance.
- */
- interface MithrilController {
- /**
- * An optional handler to call when the associated virtual element is
- * destroyed.
- *
- * @param evt An associated event.
- */
- onunload?(evt: MithrilEvent): any;
- }
-
- /**
- * This represents a controller function.
- *
- * @see MithrilControllerConstructor
- */
- interface MithrilControllerFunction<T extends MithrilController> {
- (opts?: any): T;
- }
-
- /**
- * This represents a controller constructor.
- *
- * @see MithrilControllerFunction
- */
- interface MithrilControllerConstructor<T extends MithrilController> {
- new(): T;
- }
-
- /**
- * This represents a view factory.
- */
- interface MithrilView<T extends MithrilController> {
- /**
- * Creates a view out of virtual elements.
- */
- (ctrl: T): MithrilVirtualElement<T>;
- }
-
- /**
- * This represents a Mithril component.
- *
- * @see m
- * @see m.component
- */
- interface MithrilComponent<T extends MithrilController> {
- /**
- * The component's controller.
- *
- * @see m.component
- */
- controller?: MithrilControllerFunction<T> |
- MithrilControllerConstructor<T>;
-
- /**
- * Creates a view out of virtual elements.
- *
- * @see m.component
- */
- view(ctrl?: T, opts?: any): MithrilVirtualElement<T>;
- }
-
- /**
- * This is the base interface for property getter-setters
- *
- * @see m.prop
- */
- interface MithrilProperty<T> {
- /**
- * Gets the contained value.
- *
- * @return The contained value.
- */
- (): T;
-
- /**
- * Sets the contained value.
- *
- * @param value The new value to set.
- * @return The newly set value.
- */
- (value: T): T;
- }
-
- /**
- * This represents a non-promise getter-setter functions.
- *
- * @see m.prop which returns objects that implement this interface.
- */
- interface MithrilBasicProperty<T> extends MithrilProperty<T> {
- /**
- * Makes this serializable to JSON.
- */
- toJSON(): T;
- }
-
- /**
- * This represents a promise getter-setter function.
- *
- * @see m.prop which returns objects that implement this interface.
- */
- interface MithrilPromiseProperty<T> extends MithrilPromise<T>,
- MithrilProperty<MithrilPromise<T>> {
- /**
- * Gets the contained promise.
- *
- * @return The contained value.
- */
- (): MithrilPromise<T>;
-
- /**
- * Sets the contained promise.
- *
- * @param value The new value to set.
- * @return The newly set value.
- */
- (value: MithrilPromise<T>): MithrilPromise<T>;
-
- /**
- * Sets the contained wrapped value.
- *
- * @param value The new value to set.
- * @return The newly set value.
- */
- (value: T): MithrilPromise<T>;
- }
-
- /**
- * This represents a key-value mapping linking routes to components.
- */
- interface MithrilRoutes {
- /**
- * The key represents the route. The value represents the corresponding
- * component.
- */
- [key: string]: MithrilComponent<MithrilController>;
- }
-
- /**
- * This represents a Mithril deferred object.
- */
- interface MithrilDeferred<T> {
- /**
- * Resolve this deferred's promise with a value.
- *
- * @param value The value to resolve the promise with.
- */
- resolve(value?: T): void;
-
- /**
- * Reject this deferred with an error.
- *
- * @param value The reason for rejecting the promise.
- */
- reject(reason?: any): void;
-
- /**
- * The backing promise.
- *
- * @see MithrilPromise
- */
- promise: MithrilPromise<T>;
- }
-
- /**
- * This represents a thennable success callback.
- */
- interface MithrilSuccessCallback<T, U> {
- (value: T): U | Thennable<U>;
- }
-
- /**
- * This represents a thennable error callback.
- */
- interface MithrilErrorCallback<T> {
- (value: Error): T | Thennable<T>;
- }
-
- /**
- * This represents a thennable.
- */
- interface Thennable<T> {
- then<U>(success: (value: T) => U): Thennable<U>;
- then<U,V>(success: (value: T) => U, error: (value: Error) => V): Thennable<U>|Thennable<V>;
- catch?: <U>(error: (value: Error) => U) => Thennable<U>;
- }
-
- /**
- * This represents a Mithril promise object.
- */
- interface MithrilPromise<T> extends Thennable<T>, MithrilProperty<MithrilPromise<T>> {
- /**
- * Chain this promise with a simple success callback, propogating
- * rejections.
- *
- * @param success The callback to call when the promise is resolved.
- * @return The chained promise.
- */
- then<U>(success: MithrilSuccessCallback<T,U>): MithrilPromise<U>;
-
- /**
- * Chain this promise with a success callback and error callback, without
- * propogating rejections.
- *
- * @param success The callback to call when the promise is resolved.
- * @param error The callback to call when the promise is rejected.
- * @return The chained promise.
- */
- then<U, V>(
- success: MithrilSuccessCallback<T, U>,
- error: MithrilErrorCallback<V>
- ): MithrilPromise<U> | MithrilPromise<V>;
-
- /**
- * Chain this promise with a single error callback, without propogating
- * rejections.
- *
- * @param error The callback to call when the promise is rejected.
- * @return The chained promise.
- */
- catch<U>(error: MithrilErrorCallback<U>): MithrilPromise<T> |
- MithrilPromise<U>;
- }
-
- /**
- * This represents the available options for configuring m.request.
- *
- * @see m.request
- */
- interface MithrilXHROptions<T> {
- /**
- * This represents the HTTP method used, one of the following:
- *
- * - "GET" (default)
- * - "POST"
- * - "PUT"
- * - "DELETE"
- * - "HEAD"
- * - "OPTIONS"
- */
- method?: string;
-
- /**
- * The URL to send the request to.
- */
- url: string;
-
- /**
- * The username for HTTP authentication.
- */
- user?: string;
-
- /**
- * The password for HTTP authentication.
- */
- password?: string;
-
- /**
- * The data to be sent. It's automatically serialized in the right format
- * depending on the method (with exception of HTML5 FormData), and put in
- * the appropriate section of the request.
- */
- data?: any;
-
- /**
- * Whether to run it in the background, i.e. true if it doesn't affect
- * template rendering.
- */
- background?: boolean;
-
- /**
- * Set an initial value while the request is working, to populate the
- * promise getter-setter.
- */
- initialValue?: T;
-
- /**
- * An optional preprocessor function to unwrap a successful response, in
- * case the response contains metadata wrapping the data.
- *
- * @param data The data to unwrap.
- * @return The unwrapped result.
- */
- unwrapSuccess?(data: any): T;
-
- /**
- * An optional preprocessor function to unwrap an unsuccessful response,
- * in case the response contains metadata wrapping the data.
- *
- * @param data The data to unwrap.
- * @return The unwrapped result.
- */
- unwrapError?(data: any): T;
-
- /**
- * An optional function to serialize the data. This defaults to
- * `JSON.stringify`.
- *
- * @param dataToSerialize The data to serialize.
- * @return The serialized form as a string.
- */
- serialize?(dataToSerialize: any): string;
-
- /**
- * An optional function to deserialize the data. This defaults to
- * `JSON.parse`.
- *
- * @param dataToSerialize The data to parse.
- * @return The parsed form.
- */
- deserialize?(dataToDeserialize: string): any;
-
- /**
- * An optional function to extract the data from a raw XMLHttpRequest,
- * useful if the relevant data is in a response header or the status
- * field.
- *
- * @param xhr The associated XMLHttpRequest.
- * @param options The options passed to this request.
- * @return string The serialized format.
- */
- extract?(xhr: XMLHttpRequest, options: MithrilXHROptions<T>): string;
-
- /**
- * The parsed data, or its children if it's an array, will be passed to
- * this class constructor if it's given, to parse it into classes.
- *
- * @param data The data to parse.
- * @return The new instance for the list.
- */
- type?: new (data: Object) => any;
-
- /**
- * An optional function to run between `open` and `send`, useful for
- * adding request headers or using XHR2 features such as the `upload`
- * property. It is even possible to override the XHR altogether with a
- * similar object, such as an XDomainRequest instance.
- *
- * @param xhr The associated XMLHttpRequest.
- * @param options The options passed to this request.
- * @return The new XMLHttpRequest, or nothing if the same one is kept.
- */
- config?(xhr: XMLHttpRequest, options: MithrilXHROptions<T>): any;
-
- /**
- * For JSONP requests, this must be the string "jsonp". Otherwise, it's
- * ignored.
- */
- dataType?: string;
-
- /**
- * For JSONP requests, this is the query string key for the JSONP
- * request. This is useful for APIs that don't use common conventions,
- * such as `www.example.com/?jsonpCallback=doSomething`. It defaults to
- * `callback` for JSONP requests, and is ignored for any other kind of
- * request.
- */
- callbackKey?: string;
- }
-}
-
-declare var Mithril: _mithril.MithrilStatic;
-declare var m: _mithril.MithrilStatic;
-
-declare module "mithril" {
- export = m;
-}
diff --git a/lib/module-trampoline.js b/lib/module-trampoline.js
index 3eb94e36a..4815fdfb8 100644
--- a/lib/module-trampoline.js
+++ b/lib/module-trampoline.js
@@ -32,16 +32,6 @@ System.config({
defaultJSExtensions: true,
});
-
-// Register mithril as a module,
-// but only if it is ambient.
-if (typeof m !== "undefined") {
- let mod = System.newModule({default: m});
- let modName = "mithril";
- System.set(modName, mod);
-}
-
-
let me = window.location.protocol
+ "//" + window.location.host
+ window.location.pathname.replace(/[.]html$/, ".js");
diff --git a/lib/vendor/lodash.core.min.js b/lib/vendor/lodash.core.min.js
deleted file mode 100644
index 062e55d49..000000000
--- a/lib/vendor/lodash.core.min.js
+++ /dev/null
@@ -1,29 +0,0 @@
-/**
- * @license
- * lodash 4.0.0 (Custom Build) lodash.com/license | Underscore.js 1.8.3 underscorejs.org/LICENSE
- * Build: `lodash core -o ./dist/lodash.core.js`
- */
-;(function(){function n(n,t){for(var r=-1,e=t.length,u=n.length;++r<e;)n[u+r]=t[r];return n}function t(n,t,r){for(var e=-1,u=n.length;++e<u;){var o=n[e],i=t(o);if(null!=i&&(c===ln?i===i:r(i,c)))var c=i,f=o}return f}function r(n,t,r){var e;return r(n,function(n,r,u){return t(n,r,u)?(e=n,false):void 0}),e}function e(n,t,r,e,u){return u(n,function(n,u,o){r=e?(e=false,n):t(r,n,u,o)}),r}function u(n,t){return w(t,function(t){return n[t]})}function o(n){return n&&n.Object===Object?n:null}function i(n){return vn[n];
-}function c(n){var t=false;if(null!=n&&typeof n.toString!="function")try{t=!!(n+"")}catch(r){}return t}function f(n,t){return n=typeof n=="number"||hn.test(n)?+n:-1,n>-1&&0==n%1&&(null==t?9007199254740991:t)>n}function a(n){if(Z(n)&&!Vn(n)){if(n instanceof l)return n;if(En.call(n,"__wrapped__")){var t=new l(n.__wrapped__,n.__chain__);return t.__actions__=k(n.__actions__),t}}return new l(n)}function l(n,t){this.__wrapped__=n,this.__actions__=[],this.__chain__=!!t}function p(n,t,r,e){return n===ln||H(n,xn[r])&&!En.call(e,r)?t:n;
-}function s(n,t,r){if(typeof n!="function")throw new TypeError("Expected a function");return setTimeout(function(){n.apply(ln,r)},t)}function h(n,t){var r=true;return $n(n,function(n,e,u){return r=!!t(n,e,u)}),r}function v(n,t){var r=[];return $n(n,function(n,e,u){t(n,e,u)&&r.push(n)}),r}function y(t,r,e,u){u||(u=[]);for(var o=-1,i=t.length;++o<i;){var c=t[o];Z(c)&&Q(c)&&(e||Vn(c)||L(c))?r?y(c,r,e,u):n(u,c):e||(u[u.length]=c)}return u}function _(n,t){return n&&qn(n,t,un)}function g(n,t){return v(t,function(t){
-return W(n[t])})}function b(n,t,r,e,u){return n===t?true:null==n||null==t||!Y(n)&&!Z(t)?n!==n&&t!==t:j(n,t,b,r,e,u)}function j(n,t,r,e,u,o){var i=Vn(n),f=Vn(t),a="[object Array]",l="[object Array]";i||(a=kn.call(n),"[object Arguments]"==a&&(a="[object Object]")),f||(l=kn.call(t),"[object Arguments]"==l&&(l="[object Object]"));var p="[object Object]"==a&&!c(n),f="[object Object]"==l&&!c(t);return!(l=a==l)||i||p?2&u||(a=p&&En.call(n,"__wrapped__"),f=f&&En.call(t,"__wrapped__"),!a&&!f)?l?(o||(o=[]),(a=C(o,function(t){
-return t[0]===n}))&&a[1]?a[1]==t:(o.push([n,t]),t=(i?R:$)(n,t,r,e,u,o),o.pop(),t)):false:r(a?n.value():n,f?t.value():t,e,u,o):I(n,t,a)}function d(n){var t=typeof n;return"function"==t?n:null==n?fn:("object"==t?O:E)(n)}function m(n){n=null==n?n:Object(n);var t,r=[];for(t in n)r.push(t);return r}function w(n,t){var r=-1,e=Q(n)?Array(n.length):[];return $n(n,function(n,u,o){e[++r]=t(n,u,o)}),e}function O(n){var t=un(n),r=t.length;return function(e){if(null==e)return!r;for(e=Object(e);r--;){var u=t[r];if(!(u in e&&b(n[u],e[u],ln,true)))return false;
-}return true}}function x(n,t){return n=Object(n),J(t,function(t,r){return r in n&&(t[r]=n[r]),t},{})}function E(n){return function(t){return null==t?ln:t[n]}}function A(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 k(n){return A(n,0,n.length)}function N(n,t){var r;return $n(n,function(n,e,u){return r=t(n,e,u),!r}),!!r}function S(t,r){return J(r,function(t,r){return r.func.apply(r.thisArg,n([t],r.args))},t);
-}function T(n,t,r,e){r||(r={});for(var u=-1,o=t.length;++u<o;){var i=t[u],c=e?e(r[i],n[i],i,r,n):n[i],f=r,a=f[i];(!H(a,c)||H(a,xn[i])&&!En.call(f,i)||c===ln&&!(i in f))&&(f[i]=c)}return r}function F(n){return V(function(t,r){var e=-1,u=r.length,o=u>1?r[u-1]:ln,o=typeof o=="function"?(u--,o):ln;for(t=Object(t);++e<u;){var i=r[e];i&&n(t,i,o)}return t})}function B(n){return function(){var t=arguments,r=In(n.prototype),t=n.apply(r,t);return Y(t)?t:r}}function D(n,t,r){function e(){for(var o=-1,i=arguments.length,c=-1,f=r.length,a=Array(f+i),l=this&&this!==wn&&this instanceof e?u:n;++c<f;)a[c]=r[c];
-for(;i--;)a[c++]=arguments[++o];return l.apply(t,a)}if(typeof n!="function")throw new TypeError("Expected a function");var u=B(n);return e}function R(n,t,r,e,u,o){var i=-1,c=1&u,f=n.length,a=t.length;if(f!=a&&!(2&u&&a>f))return false;for(a=true;++i<f;){var l=n[i],p=t[i];if(void 0!==ln){a=false;break}if(c){if(!N(t,function(n){return l===n||r(l,n,e,u,o)})){a=false;break}}else if(l!==p&&!r(l,p,e,u,o)){a=false;break}}return a}function I(n,t,r){switch(r){case"[object Boolean]":case"[object Date]":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 $(n,t,r,e,u,o){var i=2&u,c=1&u,f=un(n),a=f.length,l=un(t);if(a!=l.length&&!i)return false;for(var p=a;p--;){var s=f[p];if(!(i?s in t:En.call(t,s))||!c&&s!=l[p])return false}for(c=true;++p<a;){var s=f[p],l=n[s],h=t[s];if(void 0!==ln||l!==h&&!r(l,h,e,u,o)){c=false;break}i||(i="constructor"==s)}return c&&!i&&(r=n.constructor,e=t.constructor,r!=e&&"constructor"in n&&"constructor"in t&&!(typeof r=="function"&&r instanceof r&&typeof e=="function"&&e instanceof e)&&(c=false)),
-c}function q(n){var t=n?n.length:ln;if(X(t)&&(Vn(n)||tn(n)||L(n))){n=String;for(var r=-1,e=Array(t);++r<t;)e[r]=n(r);t=e}else t=null;return t}function M(n){var t=n&&n.constructor;return n===(typeof t=="function"&&t.prototype||xn)}function z(n){return n?n[0]:ln}function C(n,t){return r(n,d(t),$n)}function G(n,t){return $n(n,typeof t=="function"?t:fn)}function J(n,t,r){return e(n,d(t),r,3>arguments.length,$n)}function P(n){return null==n?0:(n=Q(n)?n:un(n),n.length)}function U(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=ln),r}}function V(n){var t;if(typeof n!="function")throw new TypeError("Expected a function");return t=Rn(t===ln?n.length-1:Hn(t),0),function(){for(var r=arguments,e=-1,u=Rn(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 H(n,t){return n===t||n!==n&&t!==t}function K(n,t){return n>t}function L(n){return Z(n)&&Q(n)&&En.call(n,"callee")&&(!Fn.call(n,"callee")||"[object Arguments]"==kn.call(n));
-}function Q(n){return null!=n&&!(typeof n=="function"&&W(n))&&X(Mn(n))}function W(n){return n=Y(n)?kn.call(n):"","[object Function]"==n||"[object GeneratorFunction]"==n}function X(n){return typeof n=="number"&&n>-1&&0==n%1&&9007199254740991>=n}function Y(n){var t=typeof n;return!!n&&("object"==t||"function"==t)}function Z(n){return!!n&&typeof n=="object"}function nn(n){return typeof n=="number"||Z(n)&&"[object Number]"==kn.call(n)}function tn(n){return typeof n=="string"||!Vn(n)&&Z(n)&&"[object String]"==kn.call(n);
-}function rn(n,t){return t>n}function en(n){return typeof n=="string"?n:null==n?"":n+""}function un(n){var t=M(n);if(!t&&!Q(n))return Dn(Object(n));var r,e=q(n),u=!!e,e=e||[],o=e.length;for(r in n)!En.call(n,r)||u&&("length"==r||f(r,o))||t&&"constructor"==r||e.push(r);return e}function on(n){for(var t=-1,r=M(n),e=m(n),u=e.length,o=q(n),i=!!o,o=o||[],c=o.length;++t<u;){var a=e[t];i&&("length"==a||f(a,c))||"constructor"==a&&(r||!En.call(n,a))||o.push(a)}return o}function cn(n){return n?u(n,un(n)):[];
-}function fn(n){return n}function an(t,r,e){var u=un(r),o=g(r,u);null!=e||Y(r)&&(o.length||!u.length)||(e=r,r=t,t=this,o=g(r,un(r)));var i=Y(e)&&"chain"in e?e.chain:true,c=W(t);return $n(o,function(e){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__=k(this.__actions__)).push({func:u,args:arguments,thisArg:t}),e.__chain__=r,e}return u.apply(t,n([this.value()],arguments))})}),t}var ln,pn=/[&<>"'`]/g,sn=RegExp(pn.source),hn=/^(?:0|[1-9]\d*)$/,vn={
-"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","`":"&#96;"},yn={"function":true,object:true},_n=yn[typeof exports]&&exports&&!exports.nodeType?exports:null,gn=yn[typeof module]&&module&&!module.nodeType?module:null,bn=o(yn[typeof self]&&self),jn=o(yn[typeof window]&&window),dn=gn&&gn.exports===_n?_n:null,mn=o(yn[typeof this]&&this),wn=o(_n&&gn&&typeof global=="object"&&global)||jn!==(mn&&mn.window)&&jn||bn||mn||Function("return this")(),On=Array.prototype,xn=Object.prototype,En=xn.hasOwnProperty,An=0,kn=xn.toString,Nn=wn._,Sn=wn.f,Tn=Sn?Sn.g:ln,Fn=xn.propertyIsEnumerable,Bn=wn.isFinite,Dn=Object.keys,Rn=Math.max,In=function(){
-function n(){}return function(t){if(Y(t)){n.prototype=t;var r=new n;n.prototype=ln}return r||{}}}(),$n=function(n,t){return function(r,e){if(null==r)return r;if(!Q(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}}(_),qn=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}}();Tn&&!Fn.call({valueOf:1},"valueOf")&&(m=function(n){n=Tn(n);for(var t,r=[];!(t=n.next()).done;)r.push(t.value);
-return r});var Mn=E("length"),zn=V(function(t,r){y(r);var e=Vn(t)?t:[Object(t)];return n(k(e),cn)}),Cn=V(function(n,t,r){var e=typeof t=="function";return w(n,function(n){var u=e?t:n[t];return null==u?u:u.apply(n,r)})}),Gn=Date.now,Jn=V(function(n,t,r){return D(n,t,r)}),Pn=V(function(n,t){return s(n,1,t)}),Un=V(function(n,t,r){return s(n,Kn(t)||0,r)}),Vn=Array.isArray,Hn=Number,Kn=Number,Ln=F(function(n,t){T(t,un(t),n)}),Qn=F(function(n,t){T(t,on(t),n)}),Wn=F(function(n,t,r){T(t,on(t),n,r)}),Xn=V(function(n){
-return n.push(ln,p),Wn.apply(ln,n)}),Yn=V(function(n,t){return null==n?{}:x(n,y(t))}),Zn=d;l.prototype=In(a.prototype),l.prototype.constructor=l,a.assignIn=Qn,a.before=U,a.bind=Jn,a.chain=function(n){return n=a(n),n.__chain__=true,n},a.compact=function(n){return v(n,Boolean)},a.concat=zn,a.create=function(n,t){var r=In(n);return t?Ln(r,t):r},a.defaults=Xn,a.defer=Pn,a.delay=Un,a.filter=function(n,t){return v(n,d(t))},a.flatten=function(n){return n&&n.length?y(n):[]},a.flattenDeep=function(n){return n&&n.length?y(n,true):[];
-},a.invokeMap=Cn,a.iteratee=Zn,a.keys=un,a.map=function(n,t){return w(n,d(t))},a.mixin=an,a.negate=function(n){if(typeof n!="function")throw new TypeError("Expected a function");return function(){return!n.apply(this,arguments)}},a.once=function(n){return U(2,n)},a.pick=Yn,a.slice=function(n,t,r){return n&&n.length?A(n,t,r):[]},a.sortBy=function(n,t){var r=0;return t=d(t),w(w(n,function(n,e,u){return{c:n,b:r++,a:t(n,e,u)}}).sort(function(n,t){var r;n:{r=n.a;var e=t.a;if(r!==e){var u=null===r,o=r===ln,i=r===r,c=null===e,f=e===ln,a=e===e;
-if(r>e&&!c||!i||u&&!f&&a||o&&a){r=1;break n}if(e>r&&!u||!a||c&&!o&&i||f&&i){r=-1;break n}}r=0}return r||n.b-t.b}),E("c"))},a.tap=function(n,t){return t(n),n},a.thru=function(n,t){return t(n)},a.toArray=function(n){return Q(n)?n.length?k(n):[]:cn(n)},a.values=cn,a.each=G,a.extend=Qn,an(a,a),a.clone=function(n){return Y(n)?Vn(n)?k(n):T(n,un(n)):n},a.escape=function(n){return(n=en(n))&&sn.test(n)?n.replace(pn,i):n},a.every=function(n,t,r){return t=r?ln:t,h(n,d(t))},a.find=C,a.forEach=G,a.has=function(n,t){
-return null!=n&&En.call(n,t)},a.head=z,a.identity=fn,a.indexOf=function(n,t,r){var e=n?n.length:0;r=typeof r=="number"?0>r?Rn(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},a.isArguments=L,a.isArray=Vn,a.isBoolean=function(n){return true===n||false===n||Z(n)&&"[object Boolean]"==kn.call(n)},a.isDate=function(n){return Z(n)&&"[object Date]"==kn.call(n)},a.isEmpty=function(n){return!Z(n)||W(n.splice)?!P(n):!un(n).length},a.isEqual=function(n,t){return b(n,t)},
-a.isFinite=function(n){return typeof n=="number"&&Bn(n)},a.isFunction=W,a.isNaN=function(n){return nn(n)&&n!=+n},a.isNull=function(n){return null===n},a.isNumber=nn,a.isObject=Y,a.isRegExp=function(n){return Y(n)&&"[object RegExp]"==kn.call(n)},a.isString=tn,a.isUndefined=function(n){return n===ln},a.last=function(n){var t=n?n.length:0;return t?n[t-1]:ln},a.max=function(n){return n&&n.length?t(n,fn,K):ln},a.min=function(n){return n&&n.length?t(n,fn,rn):ln},a.noConflict=function(){return wn._=Nn,this;
-},a.noop=function(){},a.now=Gn,a.reduce=J,a.result=function(n,t,r){return t=null==n?ln:n[t],t===ln&&(t=r),W(t)?t.call(n):t},a.size=P,a.some=function(n,t,r){return t=r?ln:t,N(n,d(t))},a.uniqueId=function(n){var t=++An;return en(n)+t},a.first=z,an(a,function(){var n={};return _(a,function(t,r){En.call(a.prototype,r)||(n[r]=t)}),n}(),{chain:false}),a.VERSION="4.0.0",$n("pop join replace reverse split push shift sort splice unshift".split(" "),function(n){var t=(/^(?:replace|split)$/.test(n)?String.prototype:On)[n],r=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",e=/^(?:pop|join|replace|shift)$/.test(n);
-a.prototype[n]=function(){var n=arguments;return e&&!this.__chain__?t.apply(this.value(),n):this[r](function(r){return t.apply(r,n)})}}),a.prototype.toJSON=a.prototype.valueOf=a.prototype.value=function(){return S(this.__wrapped__,this.__actions__)},(jn||bn||{})._=a,typeof define=="function"&&typeof define.amd=="object"&&define.amd? define(function(){return a}):_n&&gn?(dn&&((gn.exports=a)._=a),_n._=a):wn._=a}).call(this); \ No newline at end of file
diff --git a/lib/vendor/mithril.js b/lib/vendor/mithril.js
deleted file mode 100644
index 55bef997f..000000000
--- a/lib/vendor/mithril.js
+++ /dev/null
@@ -1,2233 +0,0 @@
-;(function (global, factory) { // eslint-disable-line
- "use strict"
- /* eslint-disable no-undef */
- var m = factory(global)
- if (typeof module === "object" && module != null && module.exports) {
- module.exports = m
- } else if (typeof define === "function" && define.amd) {
- define(function () { return m })
- } else {
- global.m = m
- }
- /* eslint-enable no-undef */
-})(typeof window !== "undefined" ? window : this, function (global, undefined) { // eslint-disable-line
- "use strict"
-
- m.version = function () {
- return "v0.2.5"
- }
-
- var hasOwn = {}.hasOwnProperty
- var type = {}.toString
-
- function isFunction(object) {
- return typeof object === "function"
- }
-
- function isObject(object) {
- return type.call(object) === "[object Object]"
- }
-
- function isString(object) {
- return type.call(object) === "[object String]"
- }
-
- var isArray = Array.isArray || function (object) {
- return type.call(object) === "[object Array]"
- }
-
- function noop() {}
-
- var voidElements = {
- AREA: 1,
- BASE: 1,
- BR: 1,
- COL: 1,
- COMMAND: 1,
- EMBED: 1,
- HR: 1,
- IMG: 1,
- INPUT: 1,
- KEYGEN: 1,
- LINK: 1,
- META: 1,
- PARAM: 1,
- SOURCE: 1,
- TRACK: 1,
- WBR: 1
- }
-
- // caching commonly used variables
- var $document, $location, $requestAnimationFrame, $cancelAnimationFrame
-
- // self invoking function needed because of the way mocks work
- function initialize(mock) {
- $document = mock.document
- $location = mock.location
- $cancelAnimationFrame = mock.cancelAnimationFrame || mock.clearTimeout
- $requestAnimationFrame = mock.requestAnimationFrame || mock.setTimeout
- }
-
- // testing API
- m.deps = function (mock) {
- initialize(global = mock || window)
- return global
- }
-
- m.deps(global)
-
- /**
- * @typedef {String} Tag
- * A string that looks like -> div.classname#id[param=one][param2=two]
- * Which describes a DOM node
- */
-
- function parseTagAttrs(cell, tag) {
- var classes = []
- var parser = /(?:(^|#|\.)([^#\.\[\]]+))|(\[.+?\])/g
- var match
-
- while ((match = parser.exec(tag))) {
- if (match[1] === "" && match[2]) {
- cell.tag = match[2]
- } else if (match[1] === "#") {
- cell.attrs.id = match[2]
- } else if (match[1] === ".") {
- classes.push(match[2])
- } else if (match[3][0] === "[") {
- var pair = /\[(.+?)(?:=("|'|)(.*?)\2)?\]/.exec(match[3])
- cell.attrs[pair[1]] = pair[3] || ""
- }
- }
-
- return classes
- }
-
- function getVirtualChildren(args, hasAttrs) {
- var children = hasAttrs ? args.slice(1) : args
-
- if (children.length === 1 && isArray(children[0])) {
- return children[0]
- } else {
- return children
- }
- }
-
- function assignAttrs(target, attrs, classes) {
- var classAttr = "class" in attrs ? "class" : "className"
-
- for (var attrName in attrs) {
- if (hasOwn.call(attrs, attrName)) {
- if (attrName === classAttr &&
- attrs[attrName] != null &&
- attrs[attrName] !== "") {
- classes.push(attrs[attrName])
- // create key in correct iteration order
- target[attrName] = ""
- } else {
- target[attrName] = attrs[attrName]
- }
- }
- }
-
- if (classes.length) target[classAttr] = classes.join(" ")
- }
-
- /**
- *
- * @param {Tag} The DOM node tag
- * @param {Object=[]} optional key-value pairs to be mapped to DOM attrs
- * @param {...mNode=[]} Zero or more Mithril child nodes. Can be an array,
- * or splat (optional)
- */
- function m(tag, pairs) {
- var args = []
-
- for (var i = 1, length = arguments.length; i < length; i++) {
- args[i - 1] = arguments[i]
- }
-
- if (isObject(tag)) return parameterize(tag, args)
-
- if (!isString(tag)) {
- throw new Error("selector in m(selector, attrs, children) should " +
- "be a string")
- }
-
- var hasAttrs = pairs != null && isObject(pairs) &&
- !("tag" in pairs || "view" in pairs || "subtree" in pairs)
-
- var attrs = hasAttrs ? pairs : {}
- var cell = {
- tag: "div",
- attrs: {},
- children: getVirtualChildren(args, hasAttrs)
- }
-
- assignAttrs(cell.attrs, attrs, parseTagAttrs(cell, tag))
- return cell
- }
-
- function forEach(list, f) {
- for (var i = 0; i < list.length && !f(list[i], i++);) {
- // function called in condition
- }
- }
-
- function forKeys(list, f) {
- forEach(list, function (attrs, i) {
- return (attrs = attrs && attrs.attrs) &&
- attrs.key != null &&
- f(attrs, i)
- })
- }
- // This function was causing deopts in Chrome.
- function dataToString(data) {
- // data.toString() might throw or return null if data is the return
- // value of Console.log in some versions of Firefox (behavior depends on
- // version)
- try {
- if (data != null && data.toString() != null) return data
- } catch (e) {
- // silently ignore errors
- }
- return ""
- }
-
- // This function was causing deopts in Chrome.
- function injectTextNode(parentElement, first, index, data) {
- try {
- insertNode(parentElement, first, index)
- first.nodeValue = data
- } catch (e) {
- // IE erroneously throws error when appending an empty text node
- // after a null
- }
- }
-
- function flatten(list) {
- // recursively flatten array
- for (var i = 0; i < list.length; i++) {
- if (isArray(list[i])) {
- list = list.concat.apply([], list)
- // check current index again and flatten until there are no more
- // nested arrays at that index
- i--
- }
- }
- return list
- }
-
- function insertNode(parentElement, node, index) {
- parentElement.insertBefore(node,
- parentElement.childNodes[index] || null)
- }
-
- var DELETION = 1
- var INSERTION = 2
- var MOVE = 3
-
- function handleKeysDiffer(data, existing, cached, parentElement) {
- forKeys(data, function (key, i) {
- existing[key = key.key] = existing[key] ? {
- action: MOVE,
- index: i,
- from: existing[key].index,
- element: cached.nodes[existing[key].index] ||
- $document.createElement("div")
- } : {action: INSERTION, index: i}
- })
-
- var actions = []
- for (var prop in existing) {
- if (hasOwn.call(existing, prop)) {
- actions.push(existing[prop])
- }
- }
-
- var changes = actions.sort(sortChanges)
- var newCached = new Array(cached.length)
-
- newCached.nodes = cached.nodes.slice()
-
- forEach(changes, function (change) {
- var index = change.index
- if (change.action === DELETION) {
- clear(cached[index].nodes, cached[index])
- newCached.splice(index, 1)
- }
- if (change.action === INSERTION) {
- var dummy = $document.createElement("div")
- dummy.key = data[index].attrs.key
- insertNode(parentElement, dummy, index)
- newCached.splice(index, 0, {
- attrs: {key: data[index].attrs.key},
- nodes: [dummy]
- })
- newCached.nodes[index] = dummy
- }
-
- if (change.action === MOVE) {
- var changeElement = change.element
- var maybeChanged = parentElement.childNodes[index]
- if (maybeChanged !== changeElement && changeElement !== null) {
- parentElement.insertBefore(changeElement,
- maybeChanged || null)
- }
- newCached[index] = cached[change.from]
- newCached.nodes[index] = changeElement
- }
- })
-
- return newCached
- }
-
- function diffKeys(data, cached, existing, parentElement) {
- var keysDiffer = data.length !== cached.length
-
- if (!keysDiffer) {
- forKeys(data, function (attrs, i) {
- var cachedCell = cached[i]
- return keysDiffer = cachedCell &&
- cachedCell.attrs &&
- cachedCell.attrs.key !== attrs.key
- })
- }
-
- if (keysDiffer) {
- return handleKeysDiffer(data, existing, cached, parentElement)
- } else {
- return cached
- }
- }
-
- function diffArray(data, cached, nodes) {
- // diff the array itself
-
- // update the list of DOM nodes by collecting the nodes from each item
- forEach(data, function (_, i) {
- if (cached[i] != null) nodes.push.apply(nodes, cached[i].nodes)
- })
- // remove items from the end of the array if the new array is shorter
- // than the old one. if errors ever happen here, the issue is most
- // likely a bug in the construction of the `cached` data structure
- // somewhere earlier in the program
- forEach(cached.nodes, function (node, i) {
- if (node.parentNode != null && nodes.indexOf(node) < 0) {
- clear([node], [cached[i]])
- }
- })
-
- if (data.length < cached.length) cached.length = data.length
- cached.nodes = nodes
- }
-
- function buildArrayKeys(data) {
- var guid = 0
- forKeys(data, function () {
- forEach(data, function (attrs) {
- if ((attrs = attrs && attrs.attrs) && attrs.key == null) {
- attrs.key = "__mithril__" + guid++
- }
- })
- return 1
- })
- }
-
- function isDifferentEnough(data, cached, dataAttrKeys) {
- if (data.tag !== cached.tag) return true
-
- if (dataAttrKeys.sort().join() !==
- Object.keys(cached.attrs).sort().join()) {
- return true
- }
-
- if (data.attrs.id !== cached.attrs.id) {
- return true
- }
-
- if (data.attrs.key !== cached.attrs.key) {
- return true
- }
-
- if (m.redraw.strategy() === "all") {
- return !cached.configContext || cached.configContext.retain !== true
- }
-
- if (m.redraw.strategy() === "diff") {
- return cached.configContext && cached.configContext.retain === false
- }
-
- return false
- }
-
- function maybeRecreateObject(data, cached, dataAttrKeys) {
- // if an element is different enough from the one in cache, recreate it
- if (isDifferentEnough(data, cached, dataAttrKeys)) {
- if (cached.nodes.length) clear(cached.nodes)
-
- if (cached.configContext &&
- isFunction(cached.configContext.onunload)) {
- cached.configContext.onunload()
- }
-
- if (cached.controllers) {
- forEach(cached.controllers, function (controller) {
- if (controller.onunload) {
- controller.onunload({preventDefault: noop})
- }
- })
- }
- }
- }
-
- function getObjectNamespace(data, namespace) {
- if (data.attrs.xmlns) return data.attrs.xmlns
- if (data.tag === "svg") return "http://www.w3.org/2000/svg"
- if (data.tag === "math") return "http://www.w3.org/1998/Math/MathML"
- return namespace
- }
-
- var pendingRequests = 0
- m.startComputation = function () { pendingRequests++ }
- m.endComputation = function () {
- if (pendingRequests > 1) {
- pendingRequests--
- } else {
- pendingRequests = 0
- m.redraw()
- }
- }
-
- function unloadCachedControllers(cached, views, controllers) {
- if (controllers.length) {
- cached.views = views
- cached.controllers = controllers
- forEach(controllers, function (controller) {
- if (controller.onunload && controller.onunload.$old) {
- controller.onunload = controller.onunload.$old
- }
-
- if (pendingRequests && controller.onunload) {
- var onunload = controller.onunload
- controller.onunload = noop
- controller.onunload.$old = onunload
- }
- })
- }
- }
-
- function scheduleConfigsToBeCalled(configs, data, node, isNew, cached) {
- // schedule configs to be called. They are called after `build` finishes
- // running
- if (isFunction(data.attrs.config)) {
- var context = cached.configContext = cached.configContext || {}
-
- // bind
- configs.push(function () {
- return data.attrs.config.call(data, node, !isNew, context,
- cached)
- })
- }
- }
-
- function buildUpdatedNode(
- cached,
- data,
- editable,
- hasKeys,
- namespace,
- views,
- configs,
- controllers
- ) {
- var node = cached.nodes[0]
-
- if (hasKeys) {
- setAttributes(node, data.tag, data.attrs, cached.attrs, namespace)
- }
-
- cached.children = build(
- node,
- data.tag,
- undefined,
- undefined,
- data.children,
- cached.children,
- false,
- 0,
- data.attrs.contenteditable ? node : editable,
- namespace,
- configs
- )
-
- cached.nodes.intact = true
-
- if (controllers.length) {
- cached.views = views
- cached.controllers = controllers
- }
-
- return node
- }
-
- function handleNonexistentNodes(data, parentElement, index) {
- var nodes
- if (data.$trusted) {
- nodes = injectHTML(parentElement, index, data)
- } else {
- nodes = [$document.createTextNode(data)]
- if (!(parentElement.nodeName in voidElements)) {
- insertNode(parentElement, nodes[0], index)
- }
- }
-
- var cached
-
- if (typeof data === "string" ||
- typeof data === "number" ||
- typeof data === "boolean") {
- cached = new data.constructor(data)
- } else {
- cached = data
- }
-
- cached.nodes = nodes
- return cached
- }
-
- function reattachNodes(
- data,
- cached,
- parentElement,
- editable,
- index,
- parentTag
- ) {
- var nodes = cached.nodes
- if (!editable || editable !== $document.activeElement) {
- if (data.$trusted) {
- clear(nodes, cached)
- nodes = injectHTML(parentElement, index, data)
- } else if (parentTag === "textarea") {
- // <textarea> uses `value` instead of `nodeValue`.
- parentElement.value = data
- } else if (editable) {
- // contenteditable nodes use `innerHTML` instead of `nodeValue`.
- editable.innerHTML = data
- } else {
- // was a trusted string
- if (nodes[0].nodeType === 1 || nodes.length > 1 ||
- (nodes[0].nodeValue.trim &&
- !nodes[0].nodeValue.trim())) {
- clear(cached.nodes, cached)
- nodes = [$document.createTextNode(data)]
- }
-
- injectTextNode(parentElement, nodes[0], index, data)
- }
- }
- cached = new data.constructor(data)
- cached.nodes = nodes
- return cached
- }
-
- function handleTextNode(
- cached,
- data,
- index,
- parentElement,
- shouldReattach,
- editable,
- parentTag
- ) {
- if (!cached.nodes.length) {
- return handleNonexistentNodes(data, parentElement, index)
- } else if (cached.valueOf() !== data.valueOf() || shouldReattach) {
- return reattachNodes(data, cached, parentElement, editable, index,
- parentTag)
- } else {
- return (cached.nodes.intact = true, cached)
- }
- }
-
- function getSubArrayCount(item) {
- if (item.$trusted) {
- // fix offset of next element if item was a trusted string w/ more
- // than one html element
- // the first clause in the regexp matches elements
- // the second clause (after the pipe) matches text nodes
- var match = item.match(/<[^\/]|\>\s*[^<]/g)
- if (match != null) return match.length
- } else if (isArray(item)) {
- return item.length
- }
- return 1
- }
-
- function buildArray(
- data,
- cached,
- parentElement,
- index,
- parentTag,
- shouldReattach,
- editable,
- namespace,
- configs
- ) {
- data = flatten(data)
- var nodes = []
- var intact = cached.length === data.length
- var subArrayCount = 0
-
- // keys algorithm: sort elements without recreating them if keys are
- // present
- //
- // 1) create a map of all existing keys, and mark all for deletion
- // 2) add new keys to map and mark them for addition
- // 3) if key exists in new list, change action from deletion to a move
- // 4) for each key, handle its corresponding action as marked in
- // previous steps
-
- var existing = {}
- var shouldMaintainIdentities = false
-
- forKeys(cached, function (attrs, i) {
- shouldMaintainIdentities = true
- existing[cached[i].attrs.key] = {action: DELETION, index: i}
- })
-
- buildArrayKeys(data)
- if (shouldMaintainIdentities) {
- cached = diffKeys(data, cached, existing, parentElement)
- }
- // end key algorithm
-
- var cacheCount = 0
- // faster explicitly written
- for (var i = 0, len = data.length; i < len; i++) {
- // diff each item in the array
- var item = build(
- parentElement,
- parentTag,
- cached,
- index,
- data[i],
- cached[cacheCount],
- shouldReattach,
- index + subArrayCount || subArrayCount,
- editable,
- namespace,
- configs)
-
- if (item !== undefined) {
- intact = intact && item.nodes.intact
- subArrayCount += getSubArrayCount(item)
- cached[cacheCount++] = item
- }
- }
-
- if (!intact) diffArray(data, cached, nodes)
- return cached
- }
-
- function makeCache(data, cached, index, parentIndex, parentCache) {
- if (cached != null) {
- if (type.call(cached) === type.call(data)) return cached
-
- if (parentCache && parentCache.nodes) {
- var offset = index - parentIndex
- var end = offset + (isArray(data) ? data : cached.nodes).length
- clear(
- parentCache.nodes.slice(offset, end),
- parentCache.slice(offset, end))
- } else if (cached.nodes) {
- clear(cached.nodes, cached)
- }
- }
-
- cached = new data.constructor()
- // if constructor creates a virtual dom element, use a blank object as
- // the base cached node instead of copying the virtual el (#277)
- if (cached.tag) cached = {}
- cached.nodes = []
- return cached
- }
-
- function constructNode(data, namespace) {
- if (data.attrs.is) {
- if (namespace == null) {
- return $document.createElement(data.tag, data.attrs.is)
- } else {
- return $document.createElementNS(namespace, data.tag,
- data.attrs.is)
- }
- } else if (namespace == null) {
- return $document.createElement(data.tag)
- } else {
- return $document.createElementNS(namespace, data.tag)
- }
- }
-
- function constructAttrs(data, node, namespace, hasKeys) {
- if (hasKeys) {
- return setAttributes(node, data.tag, data.attrs, {}, namespace)
- } else {
- return data.attrs
- }
- }
-
- function constructChildren(
- data,
- node,
- cached,
- editable,
- namespace,
- configs
- ) {
- if (data.children != null && data.children.length > 0) {
- return build(
- node,
- data.tag,
- undefined,
- undefined,
- data.children,
- cached.children,
- true,
- 0,
- data.attrs.contenteditable ? node : editable,
- namespace,
- configs)
- } else {
- return data.children
- }
- }
-
- function reconstructCached(
- data,
- attrs,
- children,
- node,
- namespace,
- views,
- controllers
- ) {
- var cached = {
- tag: data.tag,
- attrs: attrs,
- children: children,
- nodes: [node]
- }
-
- unloadCachedControllers(cached, views, controllers)
-
- if (cached.children && !cached.children.nodes) {
- cached.children.nodes = []
- }
-
- // edge case: setting value on <select> doesn't work before children
- // exist, so set it again after children have been created
- if (data.tag === "select" && "value" in data.attrs) {
- setAttributes(node, data.tag, {value: data.attrs.value}, {},
- namespace)
- }
-
- return cached
- }
-
- function getController(views, view, cachedControllers, controller) {
- var controllerIndex
-
- if (m.redraw.strategy() === "diff" && views) {
- controllerIndex = views.indexOf(view)
- } else {
- controllerIndex = -1
- }
-
- if (controllerIndex > -1) {
- return cachedControllers[controllerIndex]
- } else if (isFunction(controller)) {
- return new controller()
- } else {
- return {}
- }
- }
-
- var unloaders = []
-
- function updateLists(views, controllers, view, controller) {
- if (controller.onunload != null &&
- unloaders.map(function (u) { return u.handler })
- .indexOf(controller.onunload) < 0) {
- unloaders.push({
- controller: controller,
- handler: controller.onunload
- })
- }
-
- views.push(view)
- controllers.push(controller)
- }
-
- var forcing = false
- function checkView(
- data,
- view,
- cached,
- cachedControllers,
- controllers,
- views
- ) {
- var controller = getController(
- cached.views,
- view,
- cachedControllers,
- data.controller)
-
- var key = data && data.attrs && data.attrs.key
-
- if (pendingRequests === 0 ||
- forcing ||
- cachedControllers &&
- cachedControllers.indexOf(controller) > -1) {
- data = data.view(controller)
- } else {
- data = {tag: "placeholder"}
- }
-
- if (data.subtree === "retain") return data
- data.attrs = data.attrs || {}
- data.attrs.key = key
- updateLists(views, controllers, view, controller)
- return data
- }
-
- function markViews(data, cached, views, controllers) {
- var cachedControllers = cached && cached.controllers
-
- while (data.view != null) {
- data = checkView(
- data,
- data.view.$original || data.view,
- cached,
- cachedControllers,
- controllers,
- views)
- }
-
- return data
- }
-
- function buildObject( // eslint-disable-line max-statements
- data,
- cached,
- editable,
- parentElement,
- index,
- shouldReattach,
- namespace,
- configs
- ) {
- var views = []
- var controllers = []
-
- data = markViews(data, cached, views, controllers)
-
- if (data.subtree === "retain") return cached
-
- if (!data.tag && controllers.length) {
- throw new Error("Component template must return a virtual " +
- "element, not an array, string, etc.")
- }
-
- data.attrs = data.attrs || {}
- cached.attrs = cached.attrs || {}
-
- var dataAttrKeys = Object.keys(data.attrs)
- var hasKeys = dataAttrKeys.length > ("key" in data.attrs ? 1 : 0)
-
- maybeRecreateObject(data, cached, dataAttrKeys)
-
- if (!isString(data.tag)) return
-
- var isNew = cached.nodes.length === 0
-
- namespace = getObjectNamespace(data, namespace)
-
- var node
- if (isNew) {
- node = constructNode(data, namespace)
- // set attributes first, then create children
- var attrs = constructAttrs(data, node, namespace, hasKeys)
-
- // add the node to its parent before attaching children to it
- insertNode(parentElement, node, index)
-
- var children = constructChildren(data, node, cached, editable,
- namespace, configs)
-
- cached = reconstructCached(
- data,
- attrs,
- children,
- node,
- namespace,
- views,
- controllers)
- } else {
- node = buildUpdatedNode(
- cached,
- data,
- editable,
- hasKeys,
- namespace,
- views,
- configs,
- controllers)
- }
-
- if (!isNew && shouldReattach === true && node != null) {
- insertNode(parentElement, node, index)
- }
-
- // The configs are called after `build` finishes running
- scheduleConfigsToBeCalled(configs, data, node, isNew, cached)
-
- return cached
- }
-
- function build(
- parentElement,
- parentTag,
- parentCache,
- parentIndex,
- data,
- cached,
- shouldReattach,
- index,
- editable,
- namespace,
- configs
- ) {
- /*
- * `build` is a recursive function that manages creation/diffing/removal
- * of DOM elements based on comparison between `data` and `cached` the
- * diff algorithm can be summarized as this:
- *
- * 1 - compare `data` and `cached`
- * 2 - if they are different, copy `data` to `cached` and update the DOM
- * based on what the difference is
- * 3 - recursively apply this algorithm for every array and for the
- * children of every virtual element
- *
- * The `cached` data structure is essentially the same as the previous
- * redraw's `data` data structure, with a few additions:
- * - `cached` always has a property called `nodes`, which is a list of
- * DOM elements that correspond to the data represented by the
- * respective virtual element
- * - in order to support attaching `nodes` as a property of `cached`,
- * `cached` is *always* a non-primitive object, i.e. if the data was
- * a string, then cached is a String instance. If data was `null` or
- * `undefined`, cached is `new String("")`
- * - `cached also has a `configContext` property, which is the state
- * storage object exposed by config(element, isInitialized, context)
- * - when `cached` is an Object, it represents a virtual element; when
- * it's an Array, it represents a list of elements; when it's a
- * String, Number or Boolean, it represents a text node
- *
- * `parentElement` is a DOM element used for W3C DOM API calls
- * `parentTag` is only used for handling a corner case for textarea
- * values
- * `parentCache` is used to remove nodes in some multi-node cases
- * `parentIndex` and `index` are used to figure out the offset of nodes.
- * They're artifacts from before arrays started being flattened and are
- * likely refactorable
- * `data` and `cached` are, respectively, the new and old nodes being
- * diffed
- * `shouldReattach` is a flag indicating whether a parent node was
- * recreated (if so, and if this node is reused, then this node must
- * reattach itself to the new parent)
- * `editable` is a flag that indicates whether an ancestor is
- * contenteditable
- * `namespace` indicates the closest HTML namespace as it cascades down
- * from an ancestor
- * `configs` is a list of config functions to run after the topmost
- * `build` call finishes running
- *
- * there's logic that relies on the assumption that null and undefined
- * data are equivalent to empty strings
- * - this prevents lifecycle surprises from procedural helpers that mix
- * implicit and explicit return statements (e.g.
- * function foo() {if (cond) return m("div")}
- * - it simplifies diffing code
- */
- data = dataToString(data)
- if (data.subtree === "retain") return cached
- cached = makeCache(data, cached, index, parentIndex, parentCache)
-
- if (isArray(data)) {
- return buildArray(
- data,
- cached,
- parentElement,
- index,
- parentTag,
- shouldReattach,
- editable,
- namespace,
- configs)
- } else if (data != null && isObject(data)) {
- return buildObject(
- data,
- cached,
- editable,
- parentElement,
- index,
- shouldReattach,
- namespace,
- configs)
- } else if (!isFunction(data)) {
- return handleTextNode(
- cached,
- data,
- index,
- parentElement,
- shouldReattach,
- editable,
- parentTag)
- } else {
- return cached
- }
- }
-
- function sortChanges(a, b) {
- return a.action - b.action || a.index - b.index
- }
-
- function copyStyleAttrs(node, dataAttr, cachedAttr) {
- for (var rule in dataAttr) {
- if (hasOwn.call(dataAttr, rule)) {
- if (cachedAttr == null || cachedAttr[rule] !== dataAttr[rule]) {
- node.style[rule] = dataAttr[rule]
- }
- }
- }
-
- for (rule in cachedAttr) {
- if (hasOwn.call(cachedAttr, rule)) {
- if (!hasOwn.call(dataAttr, rule)) node.style[rule] = ""
- }
- }
- }
-
- var shouldUseSetAttribute = {
- list: 1,
- style: 1,
- form: 1,
- type: 1,
- width: 1,
- height: 1
- }
-
- function setSingleAttr(
- node,
- attrName,
- dataAttr,
- cachedAttr,
- tag,
- namespace
- ) {
- if (attrName === "config" || attrName === "key") {
- // `config` isn't a real attribute, so ignore it
- return true
- } else if (isFunction(dataAttr) && attrName.slice(0, 2) === "on") {
- // hook event handlers to the auto-redrawing system
- node[attrName] = autoredraw(dataAttr, node)
- } else if (attrName === "style" && dataAttr != null &&
- isObject(dataAttr)) {
- // handle `style: {...}`
- copyStyleAttrs(node, dataAttr, cachedAttr)
- } else if (namespace != null) {
- // handle SVG
- if (attrName === "href") {
- node.setAttributeNS("http://www.w3.org/1999/xlink",
- "href", dataAttr)
- } else {
- node.setAttribute(
- attrName === "className" ? "class" : attrName,
- dataAttr)
- }
- } else if (attrName in node && !shouldUseSetAttribute[attrName]) {
- // handle cases that are properties (but ignore cases where we
- // should use setAttribute instead)
- //
- // - list and form are typically used as strings, but are DOM
- // element references in js
- //
- // - when using CSS selectors (e.g. `m("[style='']")`), style is
- // used as a string, but it's an object in js
- //
- // #348 don't set the value if not needed - otherwise, cursor
- // placement breaks in Chrome
- try {
- if (tag !== "input" || node[attrName] !== dataAttr) {
- node[attrName] = dataAttr
- }
- } catch (e) {
- node.setAttribute(attrName, dataAttr)
- }
- }
- else node.setAttribute(attrName, dataAttr)
- }
-
- function trySetAttr(
- node,
- attrName,
- dataAttr,
- cachedAttr,
- cachedAttrs,
- tag,
- namespace
- ) {
- if (!(attrName in cachedAttrs) || (cachedAttr !== dataAttr) || ($document.activeElement === node)) {
- cachedAttrs[attrName] = dataAttr
- try {
- return setSingleAttr(
- node,
- attrName,
- dataAttr,
- cachedAttr,
- tag,
- namespace)
- } catch (e) {
- // swallow IE's invalid argument errors to mimic HTML's
- // fallback-to-doing-nothing-on-invalid-attributes behavior
- if (e.message.indexOf("Invalid argument") < 0) throw e
- }
- } else if (attrName === "value" && tag === "input" &&
- node.value !== dataAttr) {
- // #348 dataAttr may not be a string, so use loose comparison
- node.value = dataAttr
- }
- }
-
- function setAttributes(node, tag, dataAttrs, cachedAttrs, namespace) {
- for (var attrName in dataAttrs) {
- if (hasOwn.call(dataAttrs, attrName)) {
- if (trySetAttr(
- node,
- attrName,
- dataAttrs[attrName],
- cachedAttrs[attrName],
- cachedAttrs,
- tag,
- namespace)) {
- continue
- }
- }
- }
- return cachedAttrs
- }
-
- function clear(nodes, cached) {
- for (var i = nodes.length - 1; i > -1; i--) {
- if (nodes[i] && nodes[i].parentNode) {
- try {
- nodes[i].parentNode.removeChild(nodes[i])
- } catch (e) {
- /* eslint-disable max-len */
- // ignore if this fails due to order of events (see
- // http://stackoverflow.com/questions/21926083/failed-to-execute-removechild-on-node)
- /* eslint-enable max-len */
- }
- cached = [].concat(cached)
- if (cached[i]) unload(cached[i])
- }
- }
- // release memory if nodes is an array. This check should fail if nodes
- // is a NodeList (see loop above)
- if (nodes.length) {
- nodes.length = 0
- }
- }
-
- function unload(cached) {
- if (cached.configContext && isFunction(cached.configContext.onunload)) {
- cached.configContext.onunload()
- cached.configContext.onunload = null
- }
- if (cached.controllers) {
- forEach(cached.controllers, function (controller) {
- if (isFunction(controller.onunload)) {
- controller.onunload({preventDefault: noop})
- }
- })
- }
- if (cached.children) {
- if (isArray(cached.children)) forEach(cached.children, unload)
- else if (cached.children.tag) unload(cached.children)
- }
- }
-
- function appendTextFragment(parentElement, data) {
- try {
- parentElement.appendChild(
- $document.createRange().createContextualFragment(data))
- } catch (e) {
- parentElement.insertAdjacentHTML("beforeend", data)
- replaceScriptNodes(parentElement)
- }
- }
-
- // Replace script tags inside given DOM element with executable ones.
- // Will also check children recursively and replace any found script
- // tags in same manner.
- function replaceScriptNodes(node) {
- if (node.tagName === "SCRIPT") {
- node.parentNode.replaceChild(buildExecutableNode(node), node)
- } else {
- var children = node.childNodes
- if (children && children.length) {
- for (var i = 0; i < children.length; i++) {
- replaceScriptNodes(children[i])
- }
- }
- }
-
- return node
- }
-
- // Replace script element with one whose contents are executable.
- function buildExecutableNode(node){
- var scriptEl = document.createElement("script")
- var attrs = node.attributes
-
- for (var i = 0; i < attrs.length; i++) {
- scriptEl.setAttribute(attrs[i].name, attrs[i].value)
- }
-
- scriptEl.text = node.innerHTML
- return scriptEl
- }
-
- function injectHTML(parentElement, index, data) {
- var nextSibling = parentElement.childNodes[index]
- if (nextSibling) {
- var isElement = nextSibling.nodeType !== 1
- var placeholder = $document.createElement("span")
- if (isElement) {
- parentElement.insertBefore(placeholder, nextSibling || null)
- placeholder.insertAdjacentHTML("beforebegin", data)
- parentElement.removeChild(placeholder)
- } else {
- nextSibling.insertAdjacentHTML("beforebegin", data)
- }
- } else {
- appendTextFragment(parentElement, data)
- }
-
- var nodes = []
-
- while (parentElement.childNodes[index] !== nextSibling) {
- nodes.push(parentElement.childNodes[index])
- index++
- }
-
- return nodes
- }
-
- function autoredraw(callback, object) {
- return function (e) {
- e = e || event
- m.redraw.strategy("diff")
- m.startComputation()
- try {
- return callback.call(object, e)
- } finally {
- endFirstComputation()
- }
- }
- }
-
- var html
- var documentNode = {
- appendChild: function (node) {
- if (html === undefined) html = $document.createElement("html")
- if ($document.documentElement &&
- $document.documentElement !== node) {
- $document.replaceChild(node, $document.documentElement)
- } else {
- $document.appendChild(node)
- }
-
- this.childNodes = $document.childNodes
- },
-
- insertBefore: function (node) {
- this.appendChild(node)
- },
-
- childNodes: []
- }
-
- var nodeCache = []
- var cellCache = {}
-
- m.render = function (root, cell, forceRecreation) {
- if (!root) {
- throw new Error("Ensure the DOM element being passed to " +
- "m.route/m.mount/m.render is not undefined.")
- }
- var configs = []
- var id = getCellCacheKey(root)
- var isDocumentRoot = root === $document
- var node
-
- if (isDocumentRoot || root === $document.documentElement) {
- node = documentNode
- } else {
- node = root
- }
-
- if (isDocumentRoot && cell.tag !== "html") {
- cell = {tag: "html", attrs: {}, children: cell}
- }
-
- if (cellCache[id] === undefined) clear(node.childNodes)
- if (forceRecreation === true) reset(root)
-
- cellCache[id] = build(
- node,
- null,
- undefined,
- undefined,
- cell,
- cellCache[id],
- false,
- 0,
- null,
- undefined,
- configs)
-
- forEach(configs, function (config) { config() })
- }
-
- function getCellCacheKey(element) {
- var index = nodeCache.indexOf(element)
- return index < 0 ? nodeCache.push(element) - 1 : index
- }
-
- m.trust = function (value) {
- value = new String(value) // eslint-disable-line no-new-wrappers
- value.$trusted = true
- return value
- }
-
- function gettersetter(store) {
- function prop() {
- if (arguments.length) store = arguments[0]
- return store
- }
-
- prop.toJSON = function () {
- return store
- }
-
- return prop
- }
-
- m.prop = function (store) {
- if ((store != null && (isObject(store) || isFunction(store)) || ((typeof Promise !== "undefined") && (store instanceof Promise))) &&
- isFunction(store.then)) {
- return propify(store)
- }
-
- return gettersetter(store)
- }
-
- var roots = []
- var components = []
- var controllers = []
- var lastRedrawId = null
- var lastRedrawCallTime = 0
- var computePreRedrawHook = null
- var computePostRedrawHook = null
- var topComponent
- var FRAME_BUDGET = 16 // 60 frames per second = 1 call per 16 ms
-
- function parameterize(component, args) {
- function controller() {
- /* eslint-disable no-invalid-this */
- return (component.controller || noop).apply(this, args) || this
- /* eslint-enable no-invalid-this */
- }
-
- if (component.controller) {
- controller.prototype = component.controller.prototype
- }
-
- function view(ctrl) {
- var currentArgs = [ctrl].concat(args)
- for (var i = 1; i < arguments.length; i++) {
- currentArgs.push(arguments[i])
- }
-
- return component.view.apply(component, currentArgs)
- }
-
- view.$original = component.view
- var output = {controller: controller, view: view}
- if (args[0] && args[0].key != null) output.attrs = {key: args[0].key}
- return output
- }
-
- m.component = function (component) {
- var args = new Array(arguments.length - 1)
-
- for (var i = 1; i < arguments.length; i++) {
- args[i - 1] = arguments[i]
- }
-
- return parameterize(component, args)
- }
-
- function checkPrevented(component, root, index, isPrevented) {
- if (!isPrevented) {
- m.redraw.strategy("all")
- m.startComputation()
- roots[index] = root
- var currentComponent
-
- if (component) {
- currentComponent = topComponent = component
- } else {
- currentComponent = topComponent = component = {controller: noop}
- }
-
- var controller = new (component.controller || noop)()
-
- // controllers may call m.mount recursively (via m.route redirects,
- // for example)
- // this conditional ensures only the last recursive m.mount call is
- // applied
- if (currentComponent === topComponent) {
- controllers[index] = controller
- components[index] = component
- }
- endFirstComputation()
- if (component === null) {
- removeRootElement(root, index)
- }
- return controllers[index]
- } else if (component == null) {
- removeRootElement(root, index)
- }
- }
-
- m.mount = m.module = function (root, component) {
- if (!root) {
- throw new Error("Please ensure the DOM element exists before " +
- "rendering a template into it.")
- }
-
- var index = roots.indexOf(root)
- if (index < 0) index = roots.length
-
- var isPrevented = false
- var event = {
- preventDefault: function () {
- isPrevented = true
- computePreRedrawHook = computePostRedrawHook = null
- }
- }
-
- forEach(unloaders, function (unloader) {
- unloader.handler.call(unloader.controller, event)
- unloader.controller.onunload = null
- })
-
- if (isPrevented) {
- forEach(unloaders, function (unloader) {
- unloader.controller.onunload = unloader.handler
- })
- } else {
- unloaders = []
- }
-
- if (controllers[index] && isFunction(controllers[index].onunload)) {
- controllers[index].onunload(event)
- }
-
- return checkPrevented(component, root, index, isPrevented)
- }
-
- function removeRootElement(root, index) {
- roots.splice(index, 1)
- controllers.splice(index, 1)
- components.splice(index, 1)
- reset(root)
- nodeCache.splice(getCellCacheKey(root), 1)
- }
-
- var redrawing = false
- m.redraw = function (force) {
- if (redrawing) return
- redrawing = true
- if (force) forcing = true
-
- try {
- // lastRedrawId is a positive number if a second redraw is requested
- // before the next animation frame
- // lastRedrawId is null if it's the first redraw and not an event
- // handler
- if (lastRedrawId && !force) {
- // when setTimeout: only reschedule redraw if time between now
- // and previous redraw is bigger than a frame, otherwise keep
- // currently scheduled timeout
- // when rAF: always reschedule redraw
- if ($requestAnimationFrame === global.requestAnimationFrame ||
- new Date() - lastRedrawCallTime > FRAME_BUDGET) {
- if (lastRedrawId > 0) $cancelAnimationFrame(lastRedrawId)
- lastRedrawId = $requestAnimationFrame(redraw, FRAME_BUDGET)
- }
- } else {
- redraw()
- lastRedrawId = $requestAnimationFrame(function () {
- lastRedrawId = null
- }, FRAME_BUDGET)
- }
- } finally {
- redrawing = forcing = false
- }
- }
-
- m.redraw.strategy = m.prop()
- function redraw() {
- if (computePreRedrawHook) {
- computePreRedrawHook()
- computePreRedrawHook = null
- }
- forEach(roots, function (root, i) {
- var component = components[i]
- if (controllers[i]) {
- var args = [controllers[i]]
- m.render(root,
- component.view ? component.view(controllers[i], args) : "")
- }
- })
- // after rendering within a routed context, we need to scroll back to
- // the top, and fetch the document title for history.pushState
- if (computePostRedrawHook) {
- computePostRedrawHook()
- computePostRedrawHook = null
- }
- lastRedrawId = null
- lastRedrawCallTime = new Date()
- m.redraw.strategy("diff")
- }
-
- function endFirstComputation() {
- if (m.redraw.strategy() === "none") {
- pendingRequests--
- m.redraw.strategy("diff")
- } else {
- m.endComputation()
- }
- }
-
- m.withAttr = function (prop, withAttrCallback, callbackThis) {
- return function (e) {
- e = e || window.event
- /* eslint-disable no-invalid-this */
- var currentTarget = e.currentTarget || this
- var _this = callbackThis || this
- /* eslint-enable no-invalid-this */
- var target = prop in currentTarget ?
- currentTarget[prop] :
- currentTarget.getAttribute(prop)
- withAttrCallback.call(_this, target)
- }
- }
-
- // routing
- var modes = {pathname: "", hash: "#", search: "?"}
- var redirect = noop
- var isDefaultRoute = false
- var routeParams, currentRoute
-
- m.route = function (root, arg1, arg2, vdom) { // eslint-disable-line
- // m.route()
- if (arguments.length === 0) return currentRoute
- // m.route(el, defaultRoute, routes)
- if (arguments.length === 3 && isString(arg1)) {
- redirect = function (source) {
- var path = currentRoute = normalizeRoute(source)
- if (!routeByValue(root, arg2, path)) {
- if (isDefaultRoute) {
- throw new Error("Ensure the default route matches " +
- "one of the routes defined in m.route")
- }
-
- isDefaultRoute = true
- m.route(arg1, true)
- isDefaultRoute = false
- }
- }
-
- var listener = m.route.mode === "hash" ?
- "onhashchange" :
- "onpopstate"
-
- global[listener] = function () {
- var path = $location[m.route.mode]
- if (m.route.mode === "pathname") path += $location.search
- if (currentRoute !== normalizeRoute(path)) redirect(path)
- }
-
- computePreRedrawHook = setScroll
- global[listener]()
-
- return
- }
-
- // config: m.route
- if (root.addEventListener || root.attachEvent) {
- var base = m.route.mode !== "pathname" ? $location.pathname : ""
- root.href = base + modes[m.route.mode] + vdom.attrs.href
- if (root.addEventListener) {
- root.removeEventListener("click", routeUnobtrusive)
- root.addEventListener("click", routeUnobtrusive)
- } else {
- root.detachEvent("onclick", routeUnobtrusive)
- root.attachEvent("onclick", routeUnobtrusive)
- }
-
- return
- }
- // m.route(route, params, shouldReplaceHistoryEntry)
- if (isString(root)) {
- var oldRoute = currentRoute
- currentRoute = root
-
- var args = arg1 || {}
- var queryIndex = currentRoute.indexOf("?")
- var params
-
- if (queryIndex > -1) {
- params = parseQueryString(currentRoute.slice(queryIndex + 1))
- } else {
- params = {}
- }
-
- for (var i in args) {
- if (hasOwn.call(args, i)) {
- params[i] = args[i]
- }
- }
-
- var querystring = buildQueryString(params)
- var currentPath
-
- if (queryIndex > -1) {
- currentPath = currentRoute.slice(0, queryIndex)
- } else {
- currentPath = currentRoute
- }
-
- if (querystring) {
- currentRoute = currentPath +
- (currentPath.indexOf("?") === -1 ? "?" : "&") +
- querystring
- }
-
- var replaceHistory =
- (arguments.length === 3 ? arg2 : arg1) === true ||
- oldRoute === root
-
- if (global.history.pushState) {
- var method = replaceHistory ? "replaceState" : "pushState"
- computePreRedrawHook = setScroll
- computePostRedrawHook = function () {
- try {
- global.history[method](null, $document.title,
- modes[m.route.mode] + currentRoute)
- } catch (err) {
- // In the event of a pushState or replaceState failure,
- // fallback to a standard redirect. This is specifically
- // to address a Safari security error when attempting to
- // call pushState more than 100 times.
- $location[m.route.mode] = currentRoute
- }
- }
- redirect(modes[m.route.mode] + currentRoute)
- } else {
- $location[m.route.mode] = currentRoute
- redirect(modes[m.route.mode] + currentRoute)
- }
- }
- }
-
- m.route.param = function (key) {
- if (!routeParams) {
- throw new Error("You must call m.route(element, defaultRoute, " +
- "routes) before calling m.route.param()")
- }
-
- if (!key) {
- return routeParams
- }
-
- return routeParams[key]
- }
-
- m.route.mode = "search"
-
- function normalizeRoute(route) {
- return route.slice(modes[m.route.mode].length)
- }
-
- function routeByValue(root, router, path) {
- routeParams = {}
-
- var queryStart = path.indexOf("?")
- if (queryStart !== -1) {
- routeParams = parseQueryString(
- path.substr(queryStart + 1, path.length))
- path = path.substr(0, queryStart)
- }
-
- // Get all routes and check if there's
- // an exact match for the current path
- var keys = Object.keys(router)
- var index = keys.indexOf(path)
-
- if (index !== -1){
- m.mount(root, router[keys [index]])
- return true
- }
-
- for (var route in router) {
- if (hasOwn.call(router, route)) {
- if (route === path) {
- m.mount(root, router[route])
- return true
- }
-
- var matcher = new RegExp("^" + route
- .replace(/:[^\/]+?\.{3}/g, "(.*?)")
- .replace(/:[^\/]+/g, "([^\\/]+)") + "\/?$")
-
- if (matcher.test(path)) {
- /* eslint-disable no-loop-func */
- path.replace(matcher, function () {
- var keys = route.match(/:[^\/]+/g) || []
- var values = [].slice.call(arguments, 1, -2)
- forEach(keys, function (key, i) {
- routeParams[key.replace(/:|\./g, "")] =
- decodeURIComponent(values[i])
- })
- m.mount(root, router[route])
- })
- /* eslint-enable no-loop-func */
- return true
- }
- }
- }
- }
-
- function routeUnobtrusive(e) {
- e = e || event
- if (e.ctrlKey || e.metaKey || e.shiftKey || e.which === 2) return
-
- if (e.preventDefault) {
- e.preventDefault()
- } else {
- e.returnValue = false
- }
-
- var currentTarget = e.currentTarget || e.srcElement
- var args
-
- if (m.route.mode === "pathname" && currentTarget.search) {
- args = parseQueryString(currentTarget.search.slice(1))
- } else {
- args = {}
- }
-
- while (currentTarget && !/a/i.test(currentTarget.nodeName)) {
- currentTarget = currentTarget.parentNode
- }
-
- // clear pendingRequests because we want an immediate route change
- pendingRequests = 0
- m.route(currentTarget[m.route.mode]
- .slice(modes[m.route.mode].length), args)
- }
-
- function setScroll() {
- if (m.route.mode !== "hash" && $location.hash) {
- $location.hash = $location.hash
- } else {
- global.scrollTo(0, 0)
- }
- }
-
- function buildQueryString(object, prefix) {
- var duplicates = {}
- var str = []
-
- for (var prop in object) {
- if (hasOwn.call(object, prop)) {
- var key = prefix ? prefix + "[" + prop + "]" : prop
- var value = object[prop]
-
- if (value === null) {
- str.push(encodeURIComponent(key))
- } else if (isObject(value)) {
- str.push(buildQueryString(value, key))
- } else if (isArray(value)) {
- var keys = []
- duplicates[key] = duplicates[key] || {}
- /* eslint-disable no-loop-func */
- forEach(value, function (item) {
- /* eslint-enable no-loop-func */
- if (!duplicates[key][item]) {
- duplicates[key][item] = true
- keys.push(encodeURIComponent(key) + "=" +
- encodeURIComponent(item))
- }
- })
- str.push(keys.join("&"))
- } else if (value !== undefined) {
- str.push(encodeURIComponent(key) + "=" +
- encodeURIComponent(value))
- }
- }
- }
-
- return str.join("&")
- }
-
- function parseQueryString(str) {
- if (str === "" || str == null) return {}
- if (str.charAt(0) === "?") str = str.slice(1)
-
- var pairs = str.split("&")
- var params = {}
-
- forEach(pairs, function (string) {
- var pair = string.split("=")
- var key = decodeURIComponent(pair[0])
- var value = pair.length === 2 ? decodeURIComponent(pair[1]) : null
- if (params[key] != null) {
- if (!isArray(params[key])) params[key] = [params[key]]
- params[key].push(value)
- }
- else params[key] = value
- })
-
- return params
- }
-
- m.route.buildQueryString = buildQueryString
- m.route.parseQueryString = parseQueryString
-
- function reset(root) {
- var cacheKey = getCellCacheKey(root)
- clear(root.childNodes, cellCache[cacheKey])
- cellCache[cacheKey] = undefined
- }
-
- m.deferred = function () {
- var deferred = new Deferred()
- deferred.promise = propify(deferred.promise)
- return deferred
- }
-
- function propify(promise, initialValue) {
- var prop = m.prop(initialValue)
- promise.then(prop)
- prop.then = function (resolve, reject) {
- return propify(promise.then(resolve, reject), initialValue)
- }
-
- prop.catch = prop.then.bind(null, null)
- return prop
- }
- // Promiz.mithril.js | Zolmeister | MIT
- // a modified version of Promiz.js, which does not conform to Promises/A+
- // for two reasons:
- //
- // 1) `then` callbacks are called synchronously (because setTimeout is too
- // slow, and the setImmediate polyfill is too big
- //
- // 2) throwing subclasses of Error cause the error to be bubbled up instead
- // of triggering rejection (because the spec does not account for the
- // important use case of default browser error handling, i.e. message w/
- // line number)
-
- var RESOLVING = 1
- var REJECTING = 2
- var RESOLVED = 3
- var REJECTED = 4
-
- function Deferred(onSuccess, onFailure) {
- var self = this
- var state = 0
- var promiseValue = 0
- var next = []
-
- self.promise = {}
-
- self.resolve = function (value) {
- if (!state) {
- promiseValue = value
- state = RESOLVING
-
- fire()
- }
-
- return self
- }
-
- self.reject = function (value) {
- if (!state) {
- promiseValue = value
- state = REJECTING
-
- fire()
- }
-
- return self
- }
-
- self.promise.then = function (onSuccess, onFailure) {
- var deferred = new Deferred(onSuccess, onFailure)
-
- if (state === RESOLVED) {
- deferred.resolve(promiseValue)
- } else if (state === REJECTED) {
- deferred.reject(promiseValue)
- } else {
- next.push(deferred)
- }
-
- return deferred.promise
- }
-
- function finish(type) {
- state = type || REJECTED
- next.map(function (deferred) {
- if (state === RESOLVED) {
- deferred.resolve(promiseValue)
- } else {
- deferred.reject(promiseValue)
- }
- })
- }
-
- function thennable(then, success, failure, notThennable) {
- if (((promiseValue != null && isObject(promiseValue)) ||
- isFunction(promiseValue)) && isFunction(then)) {
- try {
- // count protects against abuse calls from spec checker
- var count = 0
- then.call(promiseValue, function (value) {
- if (count++) return
- promiseValue = value
- success()
- }, function (value) {
- if (count++) return
- promiseValue = value
- failure()
- })
- } catch (e) {
- m.deferred.onerror(e)
- promiseValue = e
- failure()
- }
- } else {
- notThennable()
- }
- }
-
- function fire() {
- // check if it's a thenable
- var then
- try {
- then = promiseValue && promiseValue.then
- } catch (e) {
- m.deferred.onerror(e)
- promiseValue = e
- state = REJECTING
- return fire()
- }
-
- if (state === REJECTING) {
- m.deferred.onerror(promiseValue)
- }
-
- thennable(then, function () {
- state = RESOLVING
- fire()
- }, function () {
- state = REJECTING
- fire()
- }, function () {
- try {
- if (state === RESOLVING && isFunction(onSuccess)) {
- promiseValue = onSuccess(promiseValue)
- } else if (state === REJECTING && isFunction(onFailure)) {
- promiseValue = onFailure(promiseValue)
- state = RESOLVING
- }
- } catch (e) {
- m.deferred.onerror(e)
- promiseValue = e
- return finish()
- }
-
- if (promiseValue === self) {
- promiseValue = TypeError()
- finish()
- } else {
- thennable(then, function () {
- finish(RESOLVED)
- }, finish, function () {
- finish(state === RESOLVING && RESOLVED)
- })
- }
- })
- }
- }
-
- m.deferred.onerror = function (e) {
- if (type.call(e) === "[object Error]" &&
- !/ Error/.test(e.constructor.toString())) {
- pendingRequests = 0
- throw e
- }
- }
-
- m.sync = function (args) {
- var deferred = m.deferred()
- var outstanding = args.length
- var results = []
- var method = "resolve"
-
- function synchronizer(pos, resolved) {
- return function (value) {
- results[pos] = value
- if (!resolved) method = "reject"
- if (--outstanding === 0) {
- deferred.promise(results)
- deferred[method](results)
- }
- return value
- }
- }
-
- if (args.length > 0) {
- forEach(args, function (arg, i) {
- arg.then(synchronizer(i, true), synchronizer(i, false))
- })
- } else {
- deferred.resolve([])
- }
-
- return deferred.promise
- }
-
- function identity(value) { return value }
-
- function handleJsonp(options) {
- var callbackKey = options.callbackName || "mithril_callback_" +
- new Date().getTime() + "_" +
- (Math.round(Math.random() * 1e16)).toString(36)
-
- var script = $document.createElement("script")
-
- global[callbackKey] = function (resp) {
- script.parentNode.removeChild(script)
- options.onload({
- type: "load",
- target: {
- responseText: resp
- }
- })
- global[callbackKey] = undefined
- }
-
- script.onerror = function () {
- script.parentNode.removeChild(script)
-
- options.onerror({
- type: "error",
- target: {
- status: 500,
- responseText: JSON.stringify({
- error: "Error making jsonp request"
- })
- }
- })
- global[callbackKey] = undefined
-
- return false
- }
-
- script.onload = function () {
- return false
- }
-
- script.src = options.url +
- (options.url.indexOf("?") > 0 ? "&" : "?") +
- (options.callbackKey ? options.callbackKey : "callback") +
- "=" + callbackKey +
- "&" + buildQueryString(options.data || {})
-
- $document.body.appendChild(script)
- }
-
- function createXhr(options) {
- var xhr = new global.XMLHttpRequest()
- xhr.open(options.method, options.url, true, options.user,
- options.password)
-
- xhr.onreadystatechange = function () {
- if (xhr.readyState === 4) {
- if (xhr.status >= 200 && xhr.status < 300) {
- options.onload({type: "load", target: xhr})
- } else {
- options.onerror({type: "error", target: xhr})
- }
- }
- }
-
- if (options.serialize === JSON.stringify &&
- options.data &&
- options.method !== "GET") {
- xhr.setRequestHeader("Content-Type",
- "application/json; charset=utf-8")
- }
-
- if (options.deserialize === JSON.parse) {
- xhr.setRequestHeader("Accept", "application/json, text/*")
- }
-
- if (isFunction(options.config)) {
- var maybeXhr = options.config(xhr, options)
- if (maybeXhr != null) xhr = maybeXhr
- }
-
- var data = options.method === "GET" || !options.data ? "" : options.data
-
- if (data && !isString(data) && data.constructor !== global.FormData) {
- throw new Error("Request data should be either be a string or " +
- "FormData. Check the `serialize` option in `m.request`")
- }
-
- xhr.send(data)
- return xhr
- }
-
- function ajax(options) {
- if (options.dataType && options.dataType.toLowerCase() === "jsonp") {
- return handleJsonp(options)
- } else {
- return createXhr(options)
- }
- }
-
- function bindData(options, data, serialize) {
- if (options.method === "GET" && options.dataType !== "jsonp") {
- var prefix = options.url.indexOf("?") < 0 ? "?" : "&"
- var querystring = buildQueryString(data)
- options.url += (querystring ? prefix + querystring : "")
- } else {
- options.data = serialize(data)
- }
- }
-
- function parameterizeUrl(url, data) {
- if (data) {
- url = url.replace(/:[a-z]\w+/gi, function (token){
- var key = token.slice(1)
- var value = data[key] || token
- delete data[key]
- return value
- })
- }
- return url
- }
-
- m.request = function (options) {
- if (options.background !== true) m.startComputation()
- var deferred = new Deferred()
- var isJSONP = options.dataType &&
- options.dataType.toLowerCase() === "jsonp"
-
- var serialize, deserialize, extract
-
- if (isJSONP) {
- serialize = options.serialize =
- deserialize = options.deserialize = identity
-
- extract = function (jsonp) { return jsonp.responseText }
- } else {
- serialize = options.serialize = options.serialize || JSON.stringify
-
- deserialize = options.deserialize =
- options.deserialize || JSON.parse
- extract = options.extract || function (xhr) {
- if (xhr.responseText.length || deserialize !== JSON.parse) {
- return xhr.responseText
- } else {
- return null
- }
- }
- }
-
- options.method = (options.method || "GET").toUpperCase()
- options.url = parameterizeUrl(options.url, options.data)
- bindData(options, options.data, serialize)
- options.onload = options.onerror = function (ev) {
- try {
- ev = ev || event
- var response = deserialize(extract(ev.target, options))
- if (ev.type === "load") {
- if (options.unwrapSuccess) {
- response = options.unwrapSuccess(response, ev.target)
- }
-
- if (isArray(response) && options.type) {
- forEach(response, function (res, i) {
- response[i] = new options.type(res)
- })
- } else if (options.type) {
- response = new options.type(response)
- }
-
- deferred.resolve(response)
- } else {
- if (options.unwrapError) {
- response = options.unwrapError(response, ev.target)
- }
-
- deferred.reject(response)
- }
- } catch (e) {
- deferred.reject(e)
- m.deferred.onerror(e)
- } finally {
- if (options.background !== true) m.endComputation()
- }
- }
-
- ajax(options)
- deferred.promise = propify(deferred.promise, options.initialValue)
- return deferred.promise
- }
-
- return m
-}); // eslint-disable-line
diff --git a/lib/wallet/db.ts b/lib/wallet/db.ts
index 5104f28fb..23cc9eb07 100644
--- a/lib/wallet/db.ts
+++ b/lib/wallet/db.ts
@@ -15,7 +15,6 @@
*/
"use strict";
-import Dictionary = _.Dictionary;
/**
* Declarations and helpers for
@@ -88,7 +87,7 @@ export function exportDb(db: IDBDatabase): Promise<any> {
let dump = {
name: db.name,
version: db.version,
- stores: {} as Dictionary<any>,
+ stores: {} as {[s: string]: any},
};
return new Promise((resolve, reject) => {
@@ -99,7 +98,7 @@ export function exportDb(db: IDBDatabase): Promise<any> {
});
for (let i = 0; i < db.objectStoreNames.length; i++) {
let name = db.objectStoreNames[i];
- let storeDump = {} as Dictionary<any>;
+ let storeDump = {} as {[s: string]: any};
dump.stores[name] = storeDump;
let store = tx.objectStore(name)
.openCursor()
diff --git a/lib/wallet/renderHtml.tsx b/lib/wallet/renderHtml.tsx
index f3059f940..db0f00ec5 100644
--- a/lib/wallet/renderHtml.tsx
+++ b/lib/wallet/renderHtml.tsx
@@ -29,8 +29,8 @@ export function prettyAmount(amount: AmountJson) {
}
export function renderContract(contract: Contract): JSX.Element {
- let merchantName = m("strong", contract.merchant.name);
- let amount = m("strong", prettyAmount(contract.amount));
+ let merchantName = <strong>{contract.merchant.name}</strong>;
+ let amount = <strong>{prettyAmount(contract.amount)}</strong>;
return (
<div>
diff --git a/pages/confirm-contract.html b/pages/confirm-contract.html
index 6e773f1b6..809b2177f 100644
--- a/pages/confirm-contract.html
+++ b/pages/confirm-contract.html
@@ -10,9 +10,7 @@
<link rel="icon" href="../img/icon.png">
<script src="../lib/vendor/URI.js"></script>
- <script src="../lib/vendor/mithril.js"></script>
<script src="../lib/vendor/preact.js"></script>
- <script src="../lib/vendor/lodash.core.min.js"></script>
<script src="../lib/vendor/system-csp-production.src.js"></script>
<!-- <script src="../lib/vendor/jed.js"></script> -->
<script src="../lib/i18n.js"></script>
diff --git a/pogen/pogen.ts b/pogen/pogen.ts
index a622c9990..bba11240b 100644
--- a/pogen/pogen.ts
+++ b/pogen/pogen.ts
@@ -181,6 +181,9 @@ export function processFile(sourceFile: ts.SourceFile) {
function processNode(node: ts.Node) {
+ console.log(ts.SyntaxKind[node.kind]);
+ ts.forEachChild(node, processNode);
+ return;
switch (node.kind) {
case ts.SyntaxKind.CallExpression:
{
diff --git a/popup/popup.html b/popup/popup.html
index 551d49f9b..71d99b12e 100644
--- a/popup/popup.html
+++ b/popup/popup.html
@@ -7,18 +7,18 @@
<link rel="stylesheet" type="text/css" href="../style/lang.css">
<link rel="stylesheet" type="text/css" href="popup.css">
- <script src="../lib/vendor/mithril.js"></script>
- <script src="../lib/vendor/lodash.core.min.js"></script>
- <script src="../lib/vendor/system-csp-production.src.js"></script>
+ <script src="../lib/vendor/preact.js"></script>
+
<script src="../lib/vendor/jed.js"></script>
- <script src="../lib/i18n.js"></script>
+ <script src="../lib/i18n.js"></script>
<script src="../i18n/strings.js"></script>
+
+ <script src="../lib/vendor/system-csp-production.src.js"></script>
<script src="../lib/module-trampoline.js"></script>
</head>
<body>
- <div id="nav"></div>
- <div id="content"></div>
+<div id="content"></div>
</body>
</html>
diff --git a/popup/popup.tsx b/popup/popup.tsx
index 5b2b1e9f9..5fcc871e2 100644
--- a/popup/popup.tsx
+++ b/popup/popup.tsx
@@ -23,9 +23,6 @@
*/
-/// <reference path="../lib/decl/mithril.d.ts" />
-/// <reference path="../lib/decl/lodash.d.ts" />
-
"use strict";
import {substituteFulfillmentUrl} from "../lib/wallet/helpers";
@@ -33,10 +30,8 @@ import BrowserClickedEvent = chrome.browserAction.BrowserClickedEvent;
import {HistoryRecord, HistoryLevel} from "../lib/wallet/wallet";
import {AmountJson} from "../lib/wallet/types";
-declare var m: any;
declare var i18n: any;
-
function onUpdateNotification(f: () => void) {
let port = chrome.runtime.connect({name: "notifications"});
port.onMessage.addListener((msg, port) => {
@@ -45,116 +40,198 @@ function onUpdateNotification(f: () => void) {
}
+class Router extends preact.Component<any,any> {
+ static setRoute(s: string): void {
+ window.location.hash = s;
+ preact.rerender();
+ }
+
+ static getRoute(): string {
+ // Omit the '#' at the beginning
+ return window.location.hash.substring(1);
+ }
+
+ static onRoute(f: any): () => void {
+ this.routeHandlers.push(f);
+ return () => {
+ let i = this.routeHandlers.indexOf(f);
+ this.routeHandlers = this.routeHandlers.splice(i, 1);
+ }
+ }
+
+ static routeHandlers: any[] = [];
+
+ componentWillMount() {
+ console.log("router mounted");
+ window.onhashchange = () => {
+ this.forceUpdate();
+ for (let f of Router.routeHandlers) {
+ f();
+ }
+ }
+ }
+
+ componentWillUnmount() {
+ console.log("router unmounted");
+ }
+
+
+ render(props: any, state: any): JSX.Element {
+ let route = window.location.hash.substring(1);
+ console.log("rendering route", route);
+ let defaultChild: JSX.Element|null = null;
+ for (let child of props.children) {
+ if (child.attributes["default"]) {
+ defaultChild = child;
+ }
+ if (child.attributes["route"] == route) {
+ return <div>{child}</div>;
+ }
+ }
+ if (defaultChild == null) {
+ throw Error("unknown route");
+ }
+ console.log("rendering default route");
+ Router.setRoute(defaultChild.attributes["route"]);
+ return <div>{defaultChild}</div>;
+ }
+}
+
export function main() {
console.log("popup main");
- m.route.mode = "hash";
- m.route(document.getElementById("content"), "/balance", {
- "/balance": WalletBalance,
- "/history": WalletHistory,
- "/debug": WalletDebug,
- });
- m.mount(document.getElementById("nav"), WalletNavBar);
-}
-console.log("this is popup");
+ let el = (
+ <div>
+ <WalletNavBar />
+ <Router>
+ <WalletBalance route="/balance" default/>
+ <WalletHistory route="/history"/>
+ <WalletDebug route="/debug"/>
+ </Router>
+ </div>
+ );
+
+ preact.render(el, document.getElementById("content")!);
+}
+interface TabProps extends preact.ComponentProps {
+ target: string;
+}
-function makeTab(target: string, name: string) {
+function Tab(props: TabProps) {
let cssClass = "";
- if (target == m.route()) {
+ if (props.target == Router.getRoute()) {
cssClass = "active";
}
- return m("a", {config: m.route, href: target, "class": cssClass}, name);
+ let onClick = (e: Event) => {
+ Router.setRoute(props.target);
+ e.preventDefault();
+ };
+ return (
+ <a onClick={onClick} href={props.target} className={cssClass}>
+ {props.children}
+ </a>
+ );
}
-namespace WalletNavBar {
- export function view() {
- return m("div#header.nav", [
- makeTab("/balance", i18n`Balance`),
- makeTab("/history", i18n`History`),
- makeTab("/debug", i18n`Debug`),
- ]);
+
+class WalletNavBar extends preact.Component<any,any> {
+ cancelSubscription: any;
+
+ componentWillMount() {
+ this.cancelSubscription = Router.onRoute(() => {
+ this.setState({});
+ });
}
- export function controller() {
- // empty
+ componentWillUnmount() {
+ if (this.cancelSubscription) {
+ this.cancelSubscription();
+ }
+ }
+
+ render() {
+ console.log("rendering nav bar");
+ return (
+ <div class="nav" id="header">
+ <Tab target="/balance">
+ Balance
+ </Tab>
+ <Tab target="/history">
+ History
+ </Tab>
+ <Tab target="/debug">
+ Debug
+ </Tab>
+ </div>);
}
}
-function openInExtension(element: HTMLAnchorElement, isInitialized: boolean) {
- element.addEventListener("click", (e: Event) => {
+function ExtensionLink(props: any) {
+ let onClick = (e: Event) => {
chrome.tabs.create({
- "url": element.href
+ "url": chrome.extension.getURL(props.target)
});
e.preventDefault();
- });
+ };
+ return (
+ <a onClick={onClick}>
+ {props.children}
+ </a>)
}
+class WalletBalance extends preact.Component<any, any> {
+ myWallet: any;
+ gotError = false;
-namespace WalletBalance {
- export function controller() {
- return new Controller();
- }
-
- class Controller {
- myWallet: any;
- gotError = false;
+ componentWillMount() {
+ this.updateBalance();
- constructor() {
- this.updateBalance();
-
- onUpdateNotification(() => this.updateBalance());
- }
+ onUpdateNotification(() => this.updateBalance());
+ }
- updateBalance() {
- m.startComputation();
- chrome.runtime.sendMessage({type: "balances"}, (resp) => {
- if (resp.error) {
- this.gotError = true;
- console.error("could not retrieve balances", resp);
- m.endComputation();
- return;
- }
- this.gotError = false;
- console.log("got wallet", resp);
- this.myWallet = resp.balances;
- m.endComputation();
- });
- }
+ updateBalance() {
+ chrome.runtime.sendMessage({type: "balances"}, (resp) => {
+ if (resp.error) {
+ this.gotError = true;
+ console.error("could not retrieve balances", resp);
+ this.forceUpdate();
+ return;
+ }
+ this.gotError = false;
+ console.log("got wallet", resp);
+ this.myWallet = resp.balances;
+ this.forceUpdate();
+ });
}
- export function view(ctrl: Controller) {
- let wallet = ctrl.myWallet;
- if (ctrl.gotError) {
+ render(): JSX.Element {
+ let wallet = this.myWallet;
+ if (this.gotError) {
return i18n`Error: could not retrieve balance information.`;
}
if (!wallet) {
- throw Error("Could not retrieve wallet");
+ return <div></div>
}
- let listing = _.map(wallet, (x: any) => m("p", formatAmount(x)));
+ console.log(wallet);
+ let listing = Object.keys(wallet).map((key) => {
+ return <p>{formatAmount(wallet[key])}</p>
+ });
if (listing.length > 0) {
- return listing;
+ return <div>{listing}</div>;
}
- let helpLink = m("a",
- {
- config: openInExtension,
- href: chrome.extension.getURL(
- "pages/help/empty-wallet.html")
- },
- i18n`help`);
+ let helpLink = (
+ <ExtensionLink target="pages/help/empty-wallet.html">
+ help
+ </ExtensionLink>
+ );
return i18n.parts`You have no balance to show. Need some ${helpLink} getting started?`;
}
}
-function formatTimestamp(t: number) {
- let x = new Date(t);
- return x.toLocaleString();
-}
-
-
function formatAmount(amount: AmountJson) {
let v = amount.value + amount.fraction / 1e6;
return `${v.toFixed(2)} ${amount.currency}`;
@@ -166,17 +243,11 @@ function abbrev(s: string, n: number = 5) {
if (s.length > n) {
sAbbrev = s.slice(0, n) + "..";
}
- return m("span.abbrev", {title: s}, sAbbrev);
-}
-
-
-function retryPayment(url: string, contractHash: string) {
- return function() {
- chrome.tabs.create({
- "url": substituteFulfillmentUrl(url,
- {H_contract: contractHash})
- });
- }
+ return (
+ <span className="abbrev" title={s}>
+ {sAbbrev}
+ </span>
+ );
}
@@ -186,78 +257,85 @@ function formatHistoryItem(historyItem: HistoryRecord) {
console.log("hist item", historyItem);
switch (historyItem.type) {
case "create-reserve":
- return m("p",
- i18n.parts`Bank requested reserve (${abbrev(d.reservePub)}) for ${formatAmount(
- d.requestedAmount)}.`);
+ return (
+ <p>
+ {i18n.parts`Bank requested reserve (${abbrev(d.reservePub)}) for ${formatAmount(
+ d.requestedAmount)}.`}
+ </p>
+ );
case "confirm-reserve":
- return m("p",
- i18n.parts`Started to withdraw from reserve (${abbrev(d.reservePub)}) of ${formatAmount(
- d.requestedAmount)}.`);
+ return (
+ <p>
+ {i18n.parts`Started to withdraw from reserve (${abbrev(d.reservePub)}) of ${formatAmount(
+ d.requestedAmount)}.`}
+ </p>
+ );
case "offer-contract": {
let link = chrome.extension.getURL("view-contract.html");
- let linkElem = m("a", {href: link}, abbrev(d.contractHash));
- let merchantElem = m("em", abbrev(d.merchantName, 15));
- return m("p",
- i18n.parts`Merchant ${merchantElem} offered contract ${linkElem}.`);
+ let linkElem = <a href={link}>{abbrev(d.contractHash)}</a>;
+ let merchantElem = <em>{abbrev(d.merchantName, 15)}</em>;
+ return (
+ <p>
+ {i18n.parts`Merchant ${merchantElem} offered contract ${linkElem}.`}
+ </p>
+ );
}
case "depleted-reserve":
- return m("p",
- i18n.parts`Withdraw from reserve (${abbrev(d.reservePub)}) of ${formatAmount(
- d.requestedAmount)} completed.`);
+ return (<p>
+ {i18n.parts`Withdraw from reserve (${abbrev(d.reservePub)}) of ${formatAmount(
+ d.requestedAmount)} completed.`}
+ </p>);
case "pay": {
let url = substituteFulfillmentUrl(d.fulfillmentUrl,
{H_contract: d.contractHash});
- let merchantElem = m("em", abbrev(d.merchantName, 15));
- let fulfillmentLinkElem = m(`a`,
- {href: url, onclick: openTab(url)},
- "view product");
- return m("p",
- i18n.parts`Confirmed payment of ${formatAmount(d.amount)} to merchant ${merchantElem}. (${fulfillmentLinkElem})`);
+ let merchantElem = <em>{abbrev(d.merchantName, 15)}</em>;
+ let fulfillmentLinkElem = <a href={url} onClick={openTab(url)}>view product</a>;
+ return (
+ <p>
+ {i18n.parts`Confirmed payment of ${formatAmount(d.amount)} to merchant ${merchantElem}. (${fulfillmentLinkElem})`}
+ </p>);
}
default:
- return m("p", i18n`Unknown event (${historyItem.type})`);
+ return (<p>i18n`Unknown event (${historyItem.type})`</p>);
}
}
-namespace WalletHistory {
- export function controller() {
- return new Controller();
- }
-
- class Controller {
- myHistory: any[];
- gotError = false;
+class WalletHistory extends preact.Component<any, any> {
+ myHistory: any[];
+ gotError = false;
- constructor() {
- this.update();
- onUpdateNotification(() => this.update());
- }
+ componentWillMount() {
+ this.update();
+ onUpdateNotification(() => this.update());
+ }
- update() {
- m.startComputation();
- chrome.runtime.sendMessage({type: "get-history"}, (resp) => {
- if (resp.error) {
- this.gotError = true;
- console.error("could not retrieve history", resp);
- m.endComputation();
- return;
- }
- this.gotError = false;
- console.log("got history", resp.history);
- this.myHistory = resp.history;
- m.endComputation();
- });
- }
+ update() {
+ chrome.runtime.sendMessage({type: "get-history"}, (resp) => {
+ console.log("got history response");
+ if (resp.error) {
+ this.gotError = true;
+ console.error("could not retrieve history", resp);
+ this.forceUpdate();
+ return;
+ }
+ this.gotError = false;
+ console.log("got history", resp.history);
+ this.myHistory = resp.history;
+ this.forceUpdate();
+ });
}
- export function view(ctrl: Controller) {
- let history: HistoryRecord[] = ctrl.myHistory;
- if (ctrl.gotError) {
+ render(): JSX.Element {
+ console.log("rendering history");
+ let history: HistoryRecord[] = this.myHistory;
+ if (this.gotError) {
return i18n`Error: could not retrieve event history`;
}
+
if (!history) {
- throw Error("Could not retrieve history");
+ // We're not ready yet
+ return <span />;
}
let subjectMemo: {[s: string]: boolean} = {};
@@ -271,19 +349,24 @@ namespace WalletHistory {
}
subjectMemo[record.subjectId as string] = true;
- let item = m("div.historyItem", {}, [
- m("div.historyDate", {}, (new Date(record.timestamp)).toString()),
- formatHistoryItem(record)
- ]);
+ let item = (
+ <div className="historyItem">
+ <div className="historyDate">
+ {(new Date(record.timestamp)).toString()}
+ </div>
+ {formatHistoryItem(record)}
+ </div>
+ );
listing.push(item);
}
if (listing.length > 0) {
- return m("div.container", listing);
+ return <div className="container">{listing}</div>;
}
- return i18n`Your wallet has no events recorded.`;
+ return <p>{i18n`Your wallet has no events recorded.`}</p>
}
+
}
@@ -305,21 +388,24 @@ function confirmReset() {
}
-var WalletDebug = {
- view() {
- return [
- m("button",
- {onclick: openExtensionPage("popup/popup.html")},
- "wallet tab"),
- m("button",
- {onclick: openExtensionPage("pages/show-db.html")},
- "show db"),
- m("br"),
- m("button", {onclick: confirmReset}, "reset"),
- m("button", {onclick: reload}, "reload chrome extension"),
- ]
- }
-};
+function WalletDebug(props: any) {
+ return (<div>
+ <p>Debug tools:</p>
+ <button onClick={openExtensionPage("popup/popup.html")}>
+ wallet tab
+ </button>
+ <button onClick={openExtensionPage("pages/show-db.html")}>
+ show db
+ </button>
+ <br />
+ <button onClick={confirmReset}>
+ reset
+ </button>
+ <button onClick={reload}>
+ reload chrome extension
+ </button>
+ </div>);
+}
function openExtensionPage(page: string) {