diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 451795e..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1,12 +0,0 @@ -module.exports = { - root: true, - extends: ['jwalker', 'plugin:prettier/recommended'], - rules: { - 'no-console': 0, - 'prettier/prettier': 'error', - }, - globals: { - Geocoder: true, - ol: true, - }, -}; diff --git a/.eslintrc.yaml b/.eslintrc.yaml new file mode 100644 index 0000000..b2c71fa --- /dev/null +++ b/.eslintrc.yaml @@ -0,0 +1,156 @@ +--- +root: true +env: + browser: true + node: true +parser: babel-eslint +parserOptions: + ecmaVersion: 2020 + ecmaFeatures: + impliedStrict: true +globals: + Geocoder: true + ol: true +extends: + - airbnb-base + - hardcore + - plugin:prettier/recommended +rules: + no-sync: 0 + no-magic-numbers: 0 + no-inline-comments: 0 + line-comment-position: 0 + max-statements: 0 + no-process-env: 0 + array-callback-return: 0 + no-return-assign: 0 + no-underscore-dangle: 0 + no-nested-ternary: 0 + no-negated-condition: 0 + no-new: 0 + max-lines: 0 + no-plusplus: 0 + no-cond-assign: 0 + prefer-destructuring: 0 + no-param-reassign: 0 + no-process-exit: 0 + class-methods-use-this: 0 + no-this-before-super: 0 + no-constructor-return: 0 + no-console: + - warn + - allow: + - warn + - error + - trace + complexity: + - error + - max: 20 + prettier/prettier: + - error + - singleQuote: true + printWidth: 100 + tabWidth: 2 + useTabs: false + semi: true + quoteProps: as-needed + trailingComma: es5 + bracketSpacing: true + arrowParens: always + proseWrap: preserve + htmlWhitespaceSensitivity: css + endOfLine: lf + no-unused-vars: + - error + - args: none + ignoreRestSiblings: true + vars: local + caughtErrors: none + no-use-before-define: + - error + - functions: false + no-unused-expressions: + - error + - allowTernary: true + allowShortCircuit: true + id-length: + - error + - properties: never + exceptions: + - R + - h + - t + - i + - k + - q + - c + - r + - v + - x + - $ + no-shadow: + - error + - builtinGlobals: true + allow: + - find + - name + - external + - status + - event + - open + consistent-return: + - error + - treatUndefinedAsUnspecified: true + max-params: + - error + - 4 + func-style: + - error + - declaration + - allowArrowFunctions: true + import/group-exports: 0 + import/exports-last: 0 + import/max-dependencies: 0 + import/no-unused-modules: 0 + import/no-unassigned-import: 0 + import/prefer-default-export: 0 + import/no-namespace: 0 + import/no-extraneous-dependencies: + - error + - devDependencies: true + import/extensions: 0 + import/unambiguous: 0 + import/no-anonymous-default-export: + - error + - allowArray: true + allowArrowFunction: true + allowObject: true + node/no-unpublished-import: 0 + node/no-process-exit: 0 + node/no-process-env: 0 + node/no-sync: 0 + promise/avoid-new: 0 + promise/always-return: 0 + unicorn/catch-error-name: 0 + unicorn/prefer-query-selector: 0 + unicorn/prefer-node-remove: 0 + unicorn/no-null: 0 + unicorn/prevent-abbreviations: 0 + sonarjs/no-small-switch: 0 + sonarjs/cognitive-complexity: + - error + - 40 + +overrides: + - files: + - 'test/unit/*.test.js' + plugins: + - jest + extends: + - plugin:jest/recommended + - files: + - 'test/e2e/**/*.test.js' + plugins: + - testcafe + extends: + - plugin:testcafe/recommended diff --git a/.prettierrc.yaml b/.prettierrc.yaml new file mode 100644 index 0000000..df72a94 --- /dev/null +++ b/.prettierrc.yaml @@ -0,0 +1,12 @@ +printWidth: 100 +tabWidth: 2 +useTabs: false +semi: true +singleQuote: true +quoteProps: as-needed +trailingComma: es5 +bracketSpacing: true +arrowParens: always +proseWrap: preserve +htmlWhitespaceSensitivity: css +endOfLine: lf diff --git a/.travis.yml b/.travis.yml index 5aba846..c1c8537 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,7 +3,7 @@ dist: xenial language: node_js node_js: - - '12' + - '14' cache: bundler: true @@ -13,9 +13,9 @@ cache: addons: apt: sources: - - google-chrome + - google-chrome packages: - - google-chrome-stable + - google-chrome-stable services: - xvfb diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..da59662 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,8 @@ +{ + "[javascript]": {}, + "editor.codeActionsOnSave": { + "source.fixAll": true, + }, + "editor.formatOnSave": true, + "editor.formatOnPaste": false, +} \ No newline at end of file diff --git a/.vscode/snipsnap.code-snippets b/.vscode/snipsnap.code-snippets new file mode 100644 index 0000000..8d7214a --- /dev/null +++ b/.vscode/snipsnap.code-snippets @@ -0,0 +1 @@ +{"lodash-runincontext-52c4843":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash runincontext"],"body":["_.runInContext(${context})"],"description":"_.mixin({ 'foo': _.constant('foo') });\n\nvar lodash = _.runInContext();\nlodash.mixin({ 'bar': lodash.constant('bar') });\n\n_.isFunction(_.foo);\n// => true\n_.isFunction(_.bar);\n// => false\n\nlodash.isFunction(lodash.foo);\n// => false\nlodash.isFunction(lodash.bar);\n// => true\n\n// Create a suped-up `defer` in Node.js.\nvar defer = _.runInContext({ 'setTimeout': setImmediate }).defer;\n\nCreate a new pristine `lodash` function using the `context` object."},"lodash-chunk-a28a8a6":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash chunk"],"body":["_.chunk(${array}, ${size})"],"description":"_.chunk(['a', 'b', 'c', 'd'], 2);\n// => [['a', 'b'], ['c', 'd']]\n\n_.chunk(['a', 'b', 'c', 'd'], 3);\n// => [['a', 'b', 'c'], ['d']]\n\nCreates an array of elements split into groups the length of `size`.\nIf `array` can't be split evenly, the final chunk will be the remaining\nelements."},"lodash-compact-dc15555":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash compact"],"body":["_.compact(${array})"],"description":"_.compact([0, 1, false, 2, '', 3]);\n// => [1, 2, 3]\n\nCreates an array with all falsey values removed. The values `false`, `null`,\n`0`, `\"\"`, `undefined`, and `NaN` are falsey."},"lodash-concat-74ee3e2":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash concat"],"body":["_.concat(${array}, ${values})"],"description":"var array = [1];\nvar other = _.concat(array, 2, [3], [[4]]);\n\nconsole.log(other);\n// => [1, 2, 3, [4]]\n\nconsole.log(array);\n// => [1]\n\nCreates a new array concatenating `array` with any additional arrays\nand/or values."},"lodash-difference-8d72b56":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash difference"],"body":["_.difference(${array}, ${values})"],"description":"_.difference([2, 1], [2, 3]);\n// => [1]\n\nCreates an array of `array` values not included in the other given arrays\nusing [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\nfor equality comparisons. The order and references of result values are\ndetermined by the first array.\n\n**Note:** Unlike `_.pullAll`, this method returns a new array."},"lodash-differenceby-9911827":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash differenceby"],"body":["_.differenceBy(${array}, ${values}, ${iteratee})"],"description":"_.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n// => [1.2]\n\n// The `_.property` iteratee shorthand.\n_.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x');\n// => [{ 'x': 2 }]\n\nThis method is like `_.difference` except that it accepts `iteratee` which\nis invoked for each element of `array` and `values` to generate the criterion\nby which they're compared. The order and references of result values are\ndetermined by the first array. The iteratee is invoked with one argument:\n(value).\n\n**Note:** Unlike `_.pullAllBy`, this method returns a new array."},"lodash-differencewith-7fc73aa":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash differencewith"],"body":["_.differenceWith(${array}, ${values}, ${comparator})"],"description":"var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n\n_.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual);\n// => [{ 'x': 2, 'y': 1 }]\n\nThis method is like `_.difference` except that it accepts `comparator`\nwhich is invoked to compare elements of `array` to `values`. The order and\nreferences of result values are determined by the first array. The comparator\nis invoked with two arguments: (arrVal, othVal).\n\n**Note:** Unlike `_.pullAllWith`, this method returns a new array."},"lodash-drop-7e47270":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash drop"],"body":["_.drop(${array}, ${n})"],"description":"_.drop([1, 2, 3]);\n// => [2, 3]\n\n_.drop([1, 2, 3], 2);\n// => [3]\n\n_.drop([1, 2, 3], 5);\n// => []\n\n_.drop([1, 2, 3], 0);\n// => [1, 2, 3]\n\nCreates a slice of `array` with `n` elements dropped from the beginning."},"lodash-dropright-7f9f89d":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash dropright"],"body":["_.dropRight(${array}, ${n})"],"description":"_.dropRight([1, 2, 3]);\n// => [1, 2]\n\n_.dropRight([1, 2, 3], 2);\n// => [1]\n\n_.dropRight([1, 2, 3], 5);\n// => []\n\n_.dropRight([1, 2, 3], 0);\n// => [1, 2, 3]\n\nCreates a slice of `array` with `n` elements dropped from the end."},"lodash-droprightwhile-5dfd2ad":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash droprightwhile"],"body":["_.dropRightWhile(${array}, ${predicate})"],"description":"var users = [\n { 'user': 'barney', 'active': true },\n { 'user': 'fred', 'active': false },\n { 'user': 'pebbles', 'active': false }\n];\n\n_.dropRightWhile(users, function(o) { return !o.active; });\n// => objects for ['barney']\n\n// The `_.matches` iteratee shorthand.\n_.dropRightWhile(users, { 'user': 'pebbles', 'active': false });\n// => objects for ['barney', 'fred']\n\n// The `_.matchesProperty` iteratee shorthand.\n_.dropRightWhile(users, ['active', false]);\n// => objects for ['barney']\n\n// The `_.property` iteratee shorthand.\n_.dropRightWhile(users, 'active');\n// => objects for ['barney', 'fred', 'pebbles']\n\nCreates a slice of `array` excluding elements dropped from the end.\nElements are dropped until `predicate` returns falsey. The predicate is\ninvoked with three arguments: (value, index, array)."},"lodash-dropwhile-b3d48f3":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash dropwhile"],"body":["_.dropWhile(${array}, ${predicate})"],"description":"var users = [\n { 'user': 'barney', 'active': false },\n { 'user': 'fred', 'active': false },\n { 'user': 'pebbles', 'active': true }\n];\n\n_.dropWhile(users, function(o) { return !o.active; });\n// => objects for ['pebbles']\n\n// The `_.matches` iteratee shorthand.\n_.dropWhile(users, { 'user': 'barney', 'active': false });\n// => objects for ['fred', 'pebbles']\n\n// The `_.matchesProperty` iteratee shorthand.\n_.dropWhile(users, ['active', false]);\n// => objects for ['pebbles']\n\n// The `_.property` iteratee shorthand.\n_.dropWhile(users, 'active');\n// => objects for ['barney', 'fred', 'pebbles']\n\nCreates a slice of `array` excluding elements dropped from the beginning.\nElements are dropped until `predicate` returns falsey. The predicate is\ninvoked with three arguments: (value, index, array)."},"lodash-fill-d1349e3":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash fill"],"body":["_.fill(${array}, ${value}, ${start}, ${end})"],"description":"var array = [1, 2, 3];\n\n_.fill(array, 'a');\nconsole.log(array);\n// => ['a', 'a', 'a']\n\n_.fill(Array(3), 2);\n// => [2, 2, 2]\n\n_.fill([4, 6, 8, 10], '*', 1, 3);\n// => [4, '*', '*', 10]\n\nFills elements of `array` with `value` from `start` up to, but not\nincluding, `end`.\n\n**Note:** This method mutates `array`."},"lodash-findindex-c4cbb0a":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash findindex"],"body":["_.findIndex(${array}, ${predicate}, ${fromIndex})"],"description":"var users = [\n { 'user': 'barney', 'active': false },\n { 'user': 'fred', 'active': false },\n { 'user': 'pebbles', 'active': true }\n];\n\n_.findIndex(users, function(o) { return o.user == 'barney'; });\n// => 0\n\n// The `_.matches` iteratee shorthand.\n_.findIndex(users, { 'user': 'fred', 'active': false });\n// => 1\n\n// The `_.matchesProperty` iteratee shorthand.\n_.findIndex(users, ['active', false]);\n// => 0\n\n// The `_.property` iteratee shorthand.\n_.findIndex(users, 'active');\n// => 2\n\nThis method is like `_.find` except that it returns the index of the first\nelement `predicate` returns truthy for instead of the element itself."},"lodash-findlastindex-a9ee87a":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash findlastindex"],"body":["_.findLastIndex(${array}, ${predicate}, ${fromIndex})"],"description":"var users = [\n { 'user': 'barney', 'active': true },\n { 'user': 'fred', 'active': false },\n { 'user': 'pebbles', 'active': false }\n];\n\n_.findLastIndex(users, function(o) { return o.user == 'pebbles'; });\n// => 2\n\n// The `_.matches` iteratee shorthand.\n_.findLastIndex(users, { 'user': 'barney', 'active': true });\n// => 0\n\n// The `_.matchesProperty` iteratee shorthand.\n_.findLastIndex(users, ['active', false]);\n// => 2\n\n// The `_.property` iteratee shorthand.\n_.findLastIndex(users, 'active');\n// => 0\n\nThis method is like `_.findIndex` except that it iterates over elements\nof `collection` from right to left."},"lodash-flatten-9c990e3":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash flatten"],"body":["_.flatten(${array})"],"description":"_.flatten([1, [2, [3, [4]], 5]]);\n// => [1, 2, [3, [4]], 5]\n\nFlattens `array` a single level deep."},"lodash-flattendeep-a07047f":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash flattendeep"],"body":["_.flattenDeep(${array})"],"description":"_.flattenDeep([1, [2, [3, [4]], 5]]);\n// => [1, 2, 3, 4, 5]\n\nRecursively flattens `array`."},"lodash-flattendepth-7a70fa9":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash flattendepth"],"body":["_.flattenDepth(${array}, ${depth})"],"description":"var array = [1, [2, [3, [4]], 5]];\n\n_.flattenDepth(array, 1);\n// => [1, 2, [3, [4]], 5]\n\n_.flattenDepth(array, 2);\n// => [1, 2, 3, [4], 5]\n\nRecursively flatten `array` up to `depth` times."},"lodash-frompairs-8d75451":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash frompairs"],"body":["_.fromPairs(${pairs})"],"description":"_.fromPairs([['a', 1], ['b', 2]]);\n// => { 'a': 1, 'b': 2 }\n\nThe inverse of `_.toPairs`; this method returns an object composed\nfrom key-value `pairs`."},"lodash-first-d539caa":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash first"],"body":["_.first(${array})"],"description":"_.head([1, 2, 3]);\n// => 1\n\n_.head([]);\n// => undefined\n\nGets the first element of `array`."},"lodash-indexof-acb78c9":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash indexof"],"body":["_.indexOf(${array}, ${value}, ${fromIndex})"],"description":"_.indexOf([1, 2, 1, 2], 2);\n// => 1\n\n// Search from the `fromIndex`.\n_.indexOf([1, 2, 1, 2], 2, 2);\n// => 3\n\nGets the index at which the first occurrence of `value` is found in `array`\nusing [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\nfor equality comparisons. If `fromIndex` is negative, it's used as the\noffset from the end of `array`."},"lodash-initial-79d48ce":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash initial"],"body":["_.initial(${array})"],"description":"_.initial([1, 2, 3]);\n// => [1, 2]\n\nGets all but the last element of `array`."},"lodash-intersection-ac140cd":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash intersection"],"body":["_.intersection(${arrays})"],"description":"_.intersection([2, 1], [2, 3]);\n// => [2]\n\nCreates an array of unique values that are included in all given arrays\nusing [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\nfor equality comparisons. The order and references of result values are\ndetermined by the first array."},"lodash-intersectionby-0c7802e":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash intersectionby"],"body":["_.intersectionBy(${arrays}, ${iteratee})"],"description":"_.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n// => [2.1]\n\n// The `_.property` iteratee shorthand.\n_.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n// => [{ 'x': 1 }]\n\nThis method is like `_.intersection` except that it accepts `iteratee`\nwhich is invoked for each element of each `arrays` to generate the criterion\nby which they're compared. The order and references of result values are\ndetermined by the first array. The iteratee is invoked with one argument:\n(value)."},"lodash-intersectionwith-646868a":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash intersectionwith"],"body":["_.intersectionWith(${arrays}, ${comparator})"],"description":"var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\nvar others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n\n_.intersectionWith(objects, others, _.isEqual);\n// => [{ 'x': 1, 'y': 2 }]\n\nThis method is like `_.intersection` except that it accepts `comparator`\nwhich is invoked to compare elements of `arrays`. The order and references\nof result values are determined by the first array. The comparator is\ninvoked with two arguments: (arrVal, othVal)."},"lodash-join-1a4d3ae":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash join"],"body":["_.join(${array}, ${separator})"],"description":"_.join(['a', 'b', 'c'], '~');\n// => 'a~b~c'\n\nConverts all elements in `array` into a string separated by `separator`."},"lodash-last-520e3b4":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash last"],"body":["_.last(${array})"],"description":"_.last([1, 2, 3]);\n// => 3\n\nGets the last element of `array`."},"lodash-lastindexof-56011fa":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash lastindexof"],"body":["_.lastIndexOf(${array}, ${value}, ${fromIndex})"],"description":"_.lastIndexOf([1, 2, 1, 2], 2);\n// => 3\n\n// Search from the `fromIndex`.\n_.lastIndexOf([1, 2, 1, 2], 2, 2);\n// => 1\n\nThis method is like `_.indexOf` except that it iterates over elements of\n`array` from right to left."},"lodash-nth-043cb30":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash nth"],"body":["_.nth(${array}, ${n})"],"description":"var array = ['a', 'b', 'c', 'd'];\n\n_.nth(array, 1);\n// => 'b'\n\n_.nth(array, -2);\n// => 'c';\n\nGets the element at index `n` of `array`. If `n` is negative, the nth\nelement from the end is returned."},"lodash-pull-347954f":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash pull"],"body":["_.pull(${array}, ${values})"],"description":"var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n\n_.pull(array, 'a', 'c');\nconsole.log(array);\n// => ['b', 'b']\n\nRemoves all given values from `array` using\n[`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\nfor equality comparisons.\n\n**Note:** Unlike `_.without`, this method mutates `array`. Use `_.remove`\nto remove elements from an array by predicate."},"lodash-pullall-8f81b65":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash pullall"],"body":["_.pullAll(${array}, ${values})"],"description":"var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n\n_.pullAll(array, ['a', 'c']);\nconsole.log(array);\n// => ['b', 'b']\n\nThis method is like `_.pull` except that it accepts an array of values to remove.\n\n**Note:** Unlike `_.difference`, this method mutates `array`."},"lodash-pullallby-37dce9c":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash pullallby"],"body":["_.pullAllBy(${array}, ${values}, ${iteratee})"],"description":"var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];\n\n_.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x');\nconsole.log(array);\n// => [{ 'x': 2 }]\n\nThis method is like `_.pullAll` except that it accepts `iteratee` which is\ninvoked for each element of `array` and `values` to generate the criterion\nby which they're compared. The iteratee is invoked with one argument: (value).\n\n**Note:** Unlike `_.differenceBy`, this method mutates `array`."},"lodash-pullallwith-5a723f9":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash pullallwith"],"body":["_.pullAllWith(${array}, ${values}, ${comparator})"],"description":"var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }];\n\n_.pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual);\nconsole.log(array);\n// => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }]\n\nThis method is like `_.pullAll` except that it accepts `comparator` which\nis invoked to compare elements of `array` to `values`. The comparator is\ninvoked with two arguments: (arrVal, othVal).\n\n**Note:** Unlike `_.differenceWith`, this method mutates `array`."},"lodash-pullat-c4b4576":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash pullat"],"body":["_.pullAt(${array}, ${indexes})"],"description":"var array = ['a', 'b', 'c', 'd'];\nvar pulled = _.pullAt(array, [1, 3]);\n\nconsole.log(array);\n// => ['a', 'c']\n\nconsole.log(pulled);\n// => ['b', 'd']\n\nRemoves elements from `array` corresponding to `indexes` and returns an\narray of removed elements.\n\n**Note:** Unlike `_.at`, this method mutates `array`."},"lodash-remove-4f5bf54":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash remove"],"body":["_.remove(${array}, ${predicate})"],"description":"var array = [1, 2, 3, 4];\nvar evens = _.remove(array, function(n) {\n return n % 2 == 0;\n});\n\nconsole.log(array);\n// => [1, 3]\n\nconsole.log(evens);\n// => [2, 4]\n\nRemoves all elements from `array` that `predicate` returns truthy for\nand returns an array of the removed elements. The predicate is invoked\nwith three arguments: (value, index, array).\n\n**Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull`\nto pull elements from an array by value."},"lodash-reverse-c629bdb":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash reverse"],"body":["_.reverse()"],"description":"var array = [1, 2, 3];\n\n_(array).reverse().value()\n// => [3, 2, 1]\n\nconsole.log(array);\n// => [3, 2, 1]\n\nThis method is the wrapper version of `_.reverse`.\n\n**Note:** This method mutates the wrapped array."},"lodash-slice-724d2b2":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash slice"],"body":["_.slice(${array}, ${start}, ${end})"],"description":"undefined\n\nCreates a slice of `array` from `start` up to, but not including, `end`.\n\n**Note:** This method is used instead of\n[`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are\nreturned."},"lodash-sortedindex-9a51253":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash sortedindex"],"body":["_.sortedIndex(${array}, ${value})"],"description":"_.sortedIndex([30, 50], 40);\n// => 1\n\nUses a binary search to determine the lowest index at which `value`\nshould be inserted into `array` in order to maintain its sort order."},"lodash-sortedindexby-8099125":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash sortedindexby"],"body":["_.sortedIndexBy(${array}, ${value}, ${iteratee})"],"description":"var objects = [{ 'x': 4 }, { 'x': 5 }];\n\n_.sortedIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n// => 0\n\n// The `_.property` iteratee shorthand.\n_.sortedIndexBy(objects, { 'x': 4 }, 'x');\n// => 0\n\nThis method is like `_.sortedIndex` except that it accepts `iteratee`\nwhich is invoked for `value` and each element of `array` to compute their\nsort ranking. The iteratee is invoked with one argument: (value)."},"lodash-sortedindexof-8102cc6":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash sortedindexof"],"body":["_.sortedIndexOf(${array}, ${value})"],"description":"_.sortedIndexOf([4, 5, 5, 5, 6], 5);\n// => 1\n\nThis method is like `_.indexOf` except that it performs a binary\nsearch on a sorted `array`."},"lodash-sortedlastindex-ae7ca67":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash sortedlastindex"],"body":["_.sortedLastIndex(${array}, ${value})"],"description":"_.sortedLastIndex([4, 5, 5, 5, 6], 5);\n// => 4\n\nThis method is like `_.sortedIndex` except that it returns the highest\nindex at which `value` should be inserted into `array` in order to\nmaintain its sort order."},"lodash-sortedlastindexby-5d6617b":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash sortedlastindexby"],"body":["_.sortedLastIndexBy(${array}, ${value}, ${iteratee})"],"description":"var objects = [{ 'x': 4 }, { 'x': 5 }];\n\n_.sortedLastIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n// => 1\n\n// The `_.property` iteratee shorthand.\n_.sortedLastIndexBy(objects, { 'x': 4 }, 'x');\n// => 1\n\nThis method is like `_.sortedLastIndex` except that it accepts `iteratee`\nwhich is invoked for `value` and each element of `array` to compute their\nsort ranking. The iteratee is invoked with one argument: (value)."},"lodash-sortedlastindexof-3f94043":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash sortedlastindexof"],"body":["_.sortedLastIndexOf(${array}, ${value})"],"description":"_.sortedLastIndexOf([4, 5, 5, 5, 6], 5);\n// => 3\n\nThis method is like `_.lastIndexOf` except that it performs a binary\nsearch on a sorted `array`."},"lodash-sorteduniq-944ab1e":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash sorteduniq"],"body":["_.sortedUniq(${array})"],"description":"_.sortedUniq([1, 1, 2]);\n// => [1, 2]\n\nThis method is like `_.uniq` except that it's designed and optimized\nfor sorted arrays."},"lodash-sorteduniqby-f802aa1":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash sorteduniqby"],"body":["_.sortedUniqBy(${array}, ${iteratee})"],"description":"_.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor);\n// => [1.1, 2.3]\n\nThis method is like `_.uniqBy` except that it's designed and optimized\nfor sorted arrays."},"lodash-tail-39e66e2":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash tail"],"body":["_.tail(${array})"],"description":"_.tail([1, 2, 3]);\n// => [2, 3]\n\nGets all but the first element of `array`."},"lodash-take-2cc1d47":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash take"],"body":["_.take(${array}, ${n})"],"description":"_.take([1, 2, 3]);\n// => [1]\n\n_.take([1, 2, 3], 2);\n// => [1, 2]\n\n_.take([1, 2, 3], 5);\n// => [1, 2, 3]\n\n_.take([1, 2, 3], 0);\n// => []\n\nCreates a slice of `array` with `n` elements taken from the beginning."},"lodash-takeright-fe806e4":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash takeright"],"body":["_.takeRight(${array}, ${n})"],"description":"_.takeRight([1, 2, 3]);\n// => [3]\n\n_.takeRight([1, 2, 3], 2);\n// => [2, 3]\n\n_.takeRight([1, 2, 3], 5);\n// => [1, 2, 3]\n\n_.takeRight([1, 2, 3], 0);\n// => []\n\nCreates a slice of `array` with `n` elements taken from the end."},"lodash-takerightwhile-5ed58df":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash takerightwhile"],"body":["_.takeRightWhile(${array}, ${predicate})"],"description":"var users = [\n { 'user': 'barney', 'active': true },\n { 'user': 'fred', 'active': false },\n { 'user': 'pebbles', 'active': false }\n];\n\n_.takeRightWhile(users, function(o) { return !o.active; });\n// => objects for ['fred', 'pebbles']\n\n// The `_.matches` iteratee shorthand.\n_.takeRightWhile(users, { 'user': 'pebbles', 'active': false });\n// => objects for ['pebbles']\n\n// The `_.matchesProperty` iteratee shorthand.\n_.takeRightWhile(users, ['active', false]);\n// => objects for ['fred', 'pebbles']\n\n// The `_.property` iteratee shorthand.\n_.takeRightWhile(users, 'active');\n// => []\n\nCreates a slice of `array` with elements taken from the end. Elements are\ntaken until `predicate` returns falsey. The predicate is invoked with\nthree arguments: (value, index, array)."},"lodash-takewhile-17dc3ee":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash takewhile"],"body":["_.takeWhile(${array}, ${predicate})"],"description":"var users = [\n { 'user': 'barney', 'active': false },\n { 'user': 'fred', 'active': false },\n { 'user': 'pebbles', 'active': true }\n];\n\n_.takeWhile(users, function(o) { return !o.active; });\n// => objects for ['barney', 'fred']\n\n// The `_.matches` iteratee shorthand.\n_.takeWhile(users, { 'user': 'barney', 'active': false });\n// => objects for ['barney']\n\n// The `_.matchesProperty` iteratee shorthand.\n_.takeWhile(users, ['active', false]);\n// => objects for ['barney', 'fred']\n\n// The `_.property` iteratee shorthand.\n_.takeWhile(users, 'active');\n// => []\n\nCreates a slice of `array` with elements taken from the beginning. Elements\nare taken until `predicate` returns falsey. The predicate is invoked with\nthree arguments: (value, index, array)."},"lodash-union-2d53274":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash union"],"body":["_.union(${arrays})"],"description":"_.union([2], [1, 2]);\n// => [2, 1]\n\nCreates an array of unique values, in order, from all given arrays using\n[`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\nfor equality comparisons."},"lodash-unionby-d3e875b":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash unionby"],"body":["_.unionBy(${arrays}, ${iteratee})"],"description":"_.unionBy([2.1], [1.2, 2.3], Math.floor);\n// => [2.1, 1.2]\n\n// The `_.property` iteratee shorthand.\n_.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n// => [{ 'x': 1 }, { 'x': 2 }]\n\nThis method is like `_.union` except that it accepts `iteratee` which is\ninvoked for each element of each `arrays` to generate the criterion by\nwhich uniqueness is computed. Result values are chosen from the first\narray in which the value occurs. The iteratee is invoked with one argument:\n(value)."},"lodash-unionwith-df0c033":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash unionwith"],"body":["_.unionWith(${arrays}, ${comparator})"],"description":"var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\nvar others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n\n_.unionWith(objects, others, _.isEqual);\n// => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n\nThis method is like `_.union` except that it accepts `comparator` which\nis invoked to compare elements of `arrays`. Result values are chosen from\nthe first array in which the value occurs. The comparator is invoked\nwith two arguments: (arrVal, othVal)."},"lodash-uniq-70436a1":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash uniq"],"body":["_.uniq(${array})"],"description":"_.uniq([2, 1, 2]);\n// => [2, 1]\n\nCreates a duplicate-free version of an array, using\n[`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\nfor equality comparisons, in which only the first occurrence of each element\nis kept. The order of result values is determined by the order they occur\nin the array."},"lodash-uniqby-e5b7f48":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash uniqby"],"body":["_.uniqBy(${array}, ${iteratee})"],"description":"_.uniqBy([2.1, 1.2, 2.3], Math.floor);\n// => [2.1, 1.2]\n\n// The `_.property` iteratee shorthand.\n_.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n// => [{ 'x': 1 }, { 'x': 2 }]\n\nThis method is like `_.uniq` except that it accepts `iteratee` which is\ninvoked for each element in `array` to generate the criterion by which\nuniqueness is computed. The order of result values is determined by the\norder they occur in the array. The iteratee is invoked with one argument:\n(value)."},"lodash-uniqwith-6057923":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash uniqwith"],"body":["_.uniqWith(${array}, ${comparator})"],"description":"var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }];\n\n_.uniqWith(objects, _.isEqual);\n// => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]\n\nThis method is like `_.uniq` except that it accepts `comparator` which\nis invoked to compare elements of `array`. The order of result values is\ndetermined by the order they occur in the array.The comparator is invoked\nwith two arguments: (arrVal, othVal)."},"lodash-unzip-1e7066a":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash unzip"],"body":["_.unzip(${array})"],"description":"var zipped = _.zip(['a', 'b'], [1, 2], [true, false]);\n// => [['a', 1, true], ['b', 2, false]]\n\n_.unzip(zipped);\n// => [['a', 'b'], [1, 2], [true, false]]\n\nThis method is like `_.zip` except that it accepts an array of grouped\nelements and creates an array regrouping the elements to their pre-zip\nconfiguration."},"lodash-unzipwith-8e145e3":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash unzipwith"],"body":["_.unzipWith(${array}, ${iteratee})"],"description":"var zipped = _.zip([1, 2], [10, 20], [100, 200]);\n// => [[1, 10, 100], [2, 20, 200]]\n\n_.unzipWith(zipped, _.add);\n// => [3, 30, 300]\n\nThis method is like `_.unzip` except that it accepts `iteratee` to specify\nhow regrouped values should be combined. The iteratee is invoked with the\nelements of each group: (...group)."},"lodash-without-aafde75":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash without"],"body":["_.without(${array}, ${values})"],"description":"_.without([2, 1, 2, 3], 1, 2);\n// => [3]\n\nCreates an array excluding all given values using\n[`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\nfor equality comparisons.\n\n**Note:** Unlike `_.pull`, this method returns a new array."},"lodash-xor-59abfff":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash xor"],"body":["_.xor(${arrays})"],"description":"_.xor([2, 1], [2, 3]);\n// => [1, 3]\n\nCreates an array of unique values that is the\n[symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference)\nof the given arrays. The order of result values is determined by the order\nthey occur in the arrays."},"lodash-xorby-e1c6199":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash xorby"],"body":["_.xorBy(${arrays}, ${iteratee})"],"description":"_.xorBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n// => [1.2, 3.4]\n\n// The `_.property` iteratee shorthand.\n_.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n// => [{ 'x': 2 }]\n\nThis method is like `_.xor` except that it accepts `iteratee` which is\ninvoked for each element of each `arrays` to generate the criterion by\nwhich by which they're compared. The order of result values is determined\nby the order they occur in the arrays. The iteratee is invoked with one\nargument: (value)."},"lodash-xorwith-e3d4ba3":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash xorwith"],"body":["_.xorWith(${arrays}, ${comparator})"],"description":"var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\nvar others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n\n_.xorWith(objects, others, _.isEqual);\n// => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n\nThis method is like `_.xor` except that it accepts `comparator` which is\ninvoked to compare elements of `arrays`. The order of result values is\ndetermined by the order they occur in the arrays. The comparator is invoked\nwith two arguments: (arrVal, othVal)."},"lodash-zip-3e0c4d9":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash zip"],"body":["_.zip(${arrays})"],"description":"_.zip(['a', 'b'], [1, 2], [true, false]);\n// => [['a', 1, true], ['b', 2, false]]\n\nCreates an array of grouped elements, the first of which contains the\nfirst elements of the given arrays, the second of which contains the\nsecond elements of the given arrays, and so on."},"lodash-zipobject-41ab19b":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash zipobject"],"body":["_.zipObject(${props}, ${values})"],"description":"_.zipObject(['a', 'b'], [1, 2]);\n// => { 'a': 1, 'b': 2 }\n\nThis method is like `_.fromPairs` except that it accepts two arrays,\none of property identifiers and one of corresponding values."},"lodash-zipobjectdeep-8ebb581":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash zipobjectdeep"],"body":["_.zipObjectDeep(${props}, ${values})"],"description":"_.zipObjectDeep(['a.b[0].c', 'a.b[1].d'], [1, 2]);\n// => { 'a': { 'b': [{ 'c': 1 }, { 'd': 2 }] } }\n\nThis method is like `_.zipObject` except that it supports property paths."},"lodash-zipwith-7f20170":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash zipwith"],"body":["_.zipWith(${arrays}, ${iteratee})"],"description":"_.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) {\n return a + b + c;\n});\n// => [1, 222]\n\nThis method is like `_.zip` except that it accepts `iteratee` to specify\nhow grouped values should be combined. The iteratee is invoked with the\nelements of each group: (...group)."},"lodash-chain-108b95a":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash chain"],"body":["_.chain()"],"description":"var users = [\n { 'user': 'barney', 'age': 36 },\n { 'user': 'fred', 'age': 40 }\n];\n\n// A sequence without explicit chaining.\n_(users).head();\n// => { 'user': 'barney', 'age': 36 }\n\n// A sequence with explicit chaining.\n_(users)\n .chain()\n .head()\n .pick('user')\n .value();\n// => { 'user': 'barney' }\n\nCreates a `lodash` wrapper instance with explicit method chain sequences enabled."},"lodash-tap-30b1e1a":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash tap"],"body":["_.tap(${value}, ${interceptor})"],"description":"_([1, 2, 3])\n .tap(function(array) {\n // Mutate input array.\n array.pop();\n })\n .reverse()\n .value();\n// => [2, 1]\n\nThis method invokes `interceptor` and returns `value`. The interceptor\nis invoked with one argument; (value). The purpose of this method is to\n\"tap into\" a method chain sequence in order to modify intermediate results."},"lodash-thru-62f2120":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash thru"],"body":["_.thru(${value}, ${interceptor})"],"description":"_(' abc ')\n .chain()\n .trim()\n .thru(function(value) {\n return [value];\n })\n .value();\n// => ['abc']\n\nThis method is like `_.tap` except that it returns the result of `interceptor`.\nThe purpose of this method is to \"pass thru\" values replacing intermediate\nresults in a method chain sequence."},"lodash-at-3867082":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash at"],"body":["_.at(${object}, ${paths})"],"description":"var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n\n_.at(object, ['a[0].b.c', 'a[1]']);\n// => [3, 4]\n\nCreates an array of values corresponding to `paths` of `object`."},"lodash-commit-88eff62":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash commit"],"body":["_.commit()"],"description":"var array = [1, 2];\nvar wrapped = _(array).push(3);\n\nconsole.log(array);\n// => [1, 2]\n\nwrapped = wrapped.commit();\nconsole.log(array);\n// => [1, 2, 3]\n\nwrapped.last();\n// => 3\n\nconsole.log(array);\n// => [1, 2, 3]\n\nExecutes the chain sequence and returns the wrapped result."},"lodash-next-9a6c31c":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash next"],"body":["_.next()"],"description":"var wrapped = _([1, 2]);\n\nwrapped.next();\n// => { 'done': false, 'value': 1 }\n\nwrapped.next();\n// => { 'done': false, 'value': 2 }\n\nwrapped.next();\n// => { 'done': true, 'value': undefined }\n\nGets the next value on a wrapped object following the\n[iterator protocol](https://mdn.io/iteration_protocols#iterator)."},"lodash-plant-62b02f6":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash plant"],"body":["_.plant(${value})"],"description":"function square(n) {\n return n * n;\n}\n\nvar wrapped = _([1, 2]).map(square);\nvar other = wrapped.plant([3, 4]);\n\nother.value();\n// => [9, 16]\n\nwrapped.value();\n// => [1, 4]\n\nCreates a clone of the chain sequence planting `value` as the wrapped value."},"lodash-value-d6a46f6":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash value"],"body":["_.value()"],"description":"_([1, 2, 3]).value();\n// => [1, 2, 3]\n\nExecutes the chain sequence to resolve the unwrapped value."},"lodash-countby-9251b01":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash countby"],"body":["_.countBy(${collection}, ${iteratee})"],"description":"_.countBy([6.1, 4.2, 6.3], Math.floor);\n// => { '4': 1, '6': 2 }\n\n// The `_.property` iteratee shorthand.\n_.countBy(['one', 'two', 'three'], 'length');\n// => { '3': 2, '5': 1 }\n\nCreates an object composed of keys generated from the results of running\neach element of `collection` thru `iteratee`. The corresponding value of\neach key is the number of times the key was returned by `iteratee`. The\niteratee is invoked with one argument: (value)."},"lodash-every-59aded0":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash every"],"body":["_.every(${collection}, ${predicate})"],"description":"_.every([true, 1, null, 'yes'], Boolean);\n// => false\n\nvar users = [\n { 'user': 'barney', 'age': 36, 'active': false },\n { 'user': 'fred', 'age': 40, 'active': false }\n];\n\n// The `_.matches` iteratee shorthand.\n_.every(users, { 'user': 'barney', 'active': false });\n// => false\n\n// The `_.matchesProperty` iteratee shorthand.\n_.every(users, ['active', false]);\n// => true\n\n// The `_.property` iteratee shorthand.\n_.every(users, 'active');\n// => false\n\nChecks if `predicate` returns truthy for **all** elements of `collection`.\nIteration is stopped once `predicate` returns falsey. The predicate is\ninvoked with three arguments: (value, index|key, collection).\n\n**Note:** This method returns `true` for\n[empty collections](https://en.wikipedia.org/wiki/Empty_set) because\n[everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of\nelements of empty collections."},"lodash-filter-70d63df":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash filter"],"body":["_.filter(${collection}, ${predicate})"],"description":"var users = [\n { 'user': 'barney', 'age': 36, 'active': true },\n { 'user': 'fred', 'age': 40, 'active': false }\n];\n\n_.filter(users, function(o) { return !o.active; });\n// => objects for ['fred']\n\n// The `_.matches` iteratee shorthand.\n_.filter(users, { 'age': 36, 'active': true });\n// => objects for ['barney']\n\n// The `_.matchesProperty` iteratee shorthand.\n_.filter(users, ['active', false]);\n// => objects for ['fred']\n\n// The `_.property` iteratee shorthand.\n_.filter(users, 'active');\n// => objects for ['barney']\n\nIterates over elements of `collection`, returning an array of all elements\n`predicate` returns truthy for. The predicate is invoked with three\narguments: (value, index|key, collection).\n\n**Note:** Unlike `_.remove`, this method returns a new array."},"lodash-find-fcc258d":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash find"],"body":["_.find(${collection}, ${predicate}, ${fromIndex})"],"description":"var users = [\n { 'user': 'barney', 'age': 36, 'active': true },\n { 'user': 'fred', 'age': 40, 'active': false },\n { 'user': 'pebbles', 'age': 1, 'active': true }\n];\n\n_.find(users, function(o) { return o.age < 40; });\n// => object for 'barney'\n\n// The `_.matches` iteratee shorthand.\n_.find(users, { 'age': 1, 'active': true });\n// => object for 'pebbles'\n\n// The `_.matchesProperty` iteratee shorthand.\n_.find(users, ['active', false]);\n// => object for 'fred'\n\n// The `_.property` iteratee shorthand.\n_.find(users, 'active');\n// => object for 'barney'\n\nIterates over elements of `collection`, returning the first element\n`predicate` returns truthy for. The predicate is invoked with three\narguments: (value, index|key, collection)."},"lodash-findlast-8636139":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash findlast"],"body":["_.findLast(${collection}, ${predicate}, ${fromIndex})"],"description":"_.findLast([1, 2, 3, 4], function(n) {\n return n % 2 == 1;\n});\n// => 3\n\nThis method is like `_.find` except that it iterates over elements of\n`collection` from right to left."},"lodash-flatmap-5ef15c4":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash flatmap"],"body":["_.flatMap(${collection}, ${iteratee})"],"description":"function duplicate(n) {\n return [n, n];\n}\n\n_.flatMap([1, 2], duplicate);\n// => [1, 1, 2, 2]\n\nCreates a flattened array of values by running each element in `collection`\nthru `iteratee` and flattening the mapped results. The iteratee is invoked\nwith three arguments: (value, index|key, collection)."},"lodash-flatmapdeep-16ff88d":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash flatmapdeep"],"body":["_.flatMapDeep(${collection}, ${iteratee})"],"description":"function duplicate(n) {\n return [[[n, n]]];\n}\n\n_.flatMapDeep([1, 2], duplicate);\n// => [1, 1, 2, 2]\n\nThis method is like `_.flatMap` except that it recursively flattens the\nmapped results."},"lodash-flatmapdepth-9d34795":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash flatmapdepth"],"body":["_.flatMapDepth(${collection}, ${iteratee}, ${depth})"],"description":"function duplicate(n) {\n return [[[n, n]]];\n}\n\n_.flatMapDepth([1, 2], duplicate, 2);\n// => [[1, 1], [2, 2]]\n\nThis method is like `_.flatMap` except that it recursively flattens the\nmapped results up to `depth` times."},"lodash-each-75cdedb":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash each"],"body":["_.each(${collection}, ${iteratee})"],"description":"_.forEach([1, 2], function(value) {\n console.log(value);\n});\n// => Logs `1` then `2`.\n\n_.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n console.log(key);\n});\n// => Logs 'a' then 'b' (iteration order is not guaranteed).\n\nIterates over elements of `collection` and invokes `iteratee` for each element.\nThe iteratee is invoked with three arguments: (value, index|key, collection).\nIteratee functions may exit iteration early by explicitly returning `false`.\n\n**Note:** As with other \"Collections\" methods, objects with a \"length\"\nproperty are iterated like arrays. To avoid this behavior use `_.forIn`\nor `_.forOwn` for object iteration."},"lodash-eachright-323f54f":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash eachright"],"body":["_.eachRight(${collection}, ${iteratee})"],"description":"_.forEachRight([1, 2], function(value) {\n console.log(value);\n});\n// => Logs `2` then `1`.\n\nThis method is like `_.forEach` except that it iterates over elements of\n`collection` from right to left."},"lodash-groupby-1c0c723":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash groupby"],"body":["_.groupBy(${collection}, ${iteratee})"],"description":"_.groupBy([6.1, 4.2, 6.3], Math.floor);\n// => { '4': [4.2], '6': [6.1, 6.3] }\n\n// The `_.property` iteratee shorthand.\n_.groupBy(['one', 'two', 'three'], 'length');\n// => { '3': ['one', 'two'], '5': ['three'] }\n\nCreates an object composed of keys generated from the results of running\neach element of `collection` thru `iteratee`. The order of grouped values\nis determined by the order they occur in `collection`. The corresponding\nvalue of each key is an array of elements responsible for generating the\nkey. The iteratee is invoked with one argument: (value)."},"lodash-includes-cd95ae4":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash includes"],"body":["_.includes(${collection}, ${value}, ${fromIndex})"],"description":"_.includes([1, 2, 3], 1);\n// => true\n\n_.includes([1, 2, 3], 1, 2);\n// => false\n\n_.includes({ 'a': 1, 'b': 2 }, 1);\n// => true\n\n_.includes('abcd', 'bc');\n// => true\n\nChecks if `value` is in `collection`. If `collection` is a string, it's\nchecked for a substring of `value`, otherwise\n[`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\nis used for equality comparisons. If `fromIndex` is negative, it's used as\nthe offset from the end of `collection`."},"lodash-invokemap-d2a4852":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash invokemap"],"body":["_.invokeMap(${collection}, ${path}, ${args})"],"description":"_.invokeMap([[5, 1, 7], [3, 2, 1]], 'sort');\n// => [[1, 5, 7], [1, 2, 3]]\n\n_.invokeMap([123, 456], String.prototype.split, '');\n// => [['1', '2', '3'], ['4', '5', '6']]\n\nInvokes the method at `path` of each element in `collection`, returning\nan array of the results of each invoked method. Any additional arguments\nare provided to each invoked method. If `path` is a function, it's invoked\nfor, and `this` bound to, each element in `collection`."},"lodash-keyby-d7d9848":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash keyby"],"body":["_.keyBy(${collection}, ${iteratee})"],"description":"var array = [\n { 'dir': 'left', 'code': 97 },\n { 'dir': 'right', 'code': 100 }\n];\n\n_.keyBy(array, function(o) {\n return String.fromCharCode(o.code);\n});\n// => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }\n\n_.keyBy(array, 'dir');\n// => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } }\n\nCreates an object composed of keys generated from the results of running\neach element of `collection` thru `iteratee`. The corresponding value of\neach key is the last element responsible for generating the key. The\niteratee is invoked with one argument: (value)."},"lodash-map-39da26a":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash map"],"body":["_.map(${collection}, ${iteratee})"],"description":"function square(n) {\n return n * n;\n}\n\n_.map([4, 8], square);\n// => [16, 64]\n\n_.map({ 'a': 4, 'b': 8 }, square);\n// => [16, 64] (iteration order is not guaranteed)\n\nvar users = [\n { 'user': 'barney' },\n { 'user': 'fred' }\n];\n\n// The `_.property` iteratee shorthand.\n_.map(users, 'user');\n// => ['barney', 'fred']\n\nCreates an array of values by running each element in `collection` thru\n`iteratee`. The iteratee is invoked with three arguments:\n(value, index|key, collection).\n\nMany lodash methods are guarded to work as iteratees for methods like\n`_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n\nThe guarded methods are:\n`ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n`fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n`sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n`template`, `trim`, `trimEnd`, `trimStart`, and `words`"},"lodash-orderby-774fa76":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash orderby"],"body":["_.orderBy(${collection}, ${iteratees}, ${orders})"],"description":"var users = [\n { 'user': 'fred', 'age': 48 },\n { 'user': 'barney', 'age': 34 },\n { 'user': 'fred', 'age': 40 },\n { 'user': 'barney', 'age': 36 }\n];\n\n// Sort by `user` in ascending order and by `age` in descending order.\n_.orderBy(users, ['user', 'age'], ['asc', 'desc']);\n// => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n\nThis method is like `_.sortBy` except that it allows specifying the sort\norders of the iteratees to sort by. If `orders` is unspecified, all values\nare sorted in ascending order. Otherwise, specify an order of \"desc\" for\ndescending or \"asc\" for ascending sort order of corresponding values."},"lodash-partition-8b69083":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash partition"],"body":["_.partition(${collection}, ${predicate})"],"description":"var users = [\n { 'user': 'barney', 'age': 36, 'active': false },\n { 'user': 'fred', 'age': 40, 'active': true },\n { 'user': 'pebbles', 'age': 1, 'active': false }\n];\n\n_.partition(users, function(o) { return o.active; });\n// => objects for [['fred'], ['barney', 'pebbles']]\n\n// The `_.matches` iteratee shorthand.\n_.partition(users, { 'age': 1, 'active': false });\n// => objects for [['pebbles'], ['barney', 'fred']]\n\n// The `_.matchesProperty` iteratee shorthand.\n_.partition(users, ['active', false]);\n// => objects for [['barney', 'pebbles'], ['fred']]\n\n// The `_.property` iteratee shorthand.\n_.partition(users, 'active');\n// => objects for [['fred'], ['barney', 'pebbles']]\n\nCreates an array of elements split into two groups, the first of which\ncontains elements `predicate` returns truthy for, the second of which\ncontains elements `predicate` returns falsey for. The predicate is\ninvoked with one argument: (value)."},"lodash-reduce-580195c":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash reduce"],"body":["_.reduce(${collection}, ${iteratee}, ${accumulator})"],"description":"_.reduce([1, 2], function(sum, n) {\n return sum + n;\n}, 0);\n// => 3\n\n_.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n (result[value] || (result[value] = [])).push(key);\n return result;\n}, {});\n// => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)\n\nReduces `collection` to a value which is the accumulated result of running\neach element in `collection` thru `iteratee`, where each successive\ninvocation is supplied the return value of the previous. If `accumulator`\nis not given, the first element of `collection` is used as the initial\nvalue. The iteratee is invoked with four arguments:\n(accumulator, value, index|key, collection).\n\nMany lodash methods are guarded to work as iteratees for methods like\n`_.reduce`, `_.reduceRight`, and `_.transform`.\n\nThe guarded methods are:\n`assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,\nand `sortBy`"},"lodash-reduceright-37aae99":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash reduceright"],"body":["_.reduceRight(${collection}, ${iteratee}, ${accumulator})"],"description":"var array = [[0, 1], [2, 3], [4, 5]];\n\n_.reduceRight(array, function(flattened, other) {\n return flattened.concat(other);\n}, []);\n// => [4, 5, 2, 3, 0, 1]\n\nThis method is like `_.reduce` except that it iterates over elements of\n`collection` from right to left."},"lodash-reject-af8cef8":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash reject"],"body":["_.reject(${collection}, ${predicate})"],"description":"var users = [\n { 'user': 'barney', 'age': 36, 'active': false },\n { 'user': 'fred', 'age': 40, 'active': true }\n];\n\n_.reject(users, function(o) { return !o.active; });\n// => objects for ['fred']\n\n// The `_.matches` iteratee shorthand.\n_.reject(users, { 'age': 40, 'active': true });\n// => objects for ['barney']\n\n// The `_.matchesProperty` iteratee shorthand.\n_.reject(users, ['active', false]);\n// => objects for ['fred']\n\n// The `_.property` iteratee shorthand.\n_.reject(users, 'active');\n// => objects for ['barney']\n\nThe opposite of `_.filter`; this method returns the elements of `collection`\nthat `predicate` does **not** return truthy for."},"lodash-sample-6ea99b2":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash sample"],"body":["_.sample(${collection})"],"description":"_.sample([1, 2, 3, 4]);\n// => 2\n\nGets a random element from `collection`."},"lodash-samplesize-cfeea05":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash samplesize"],"body":["_.sampleSize(${collection}, ${n})"],"description":"_.sampleSize([1, 2, 3], 2);\n// => [3, 1]\n\n_.sampleSize([1, 2, 3], 4);\n// => [2, 3, 1]\n\nGets `n` random elements at unique keys from `collection` up to the\nsize of `collection`."},"lodash-shuffle-d34af08":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash shuffle"],"body":["_.shuffle(${collection})"],"description":"_.shuffle([1, 2, 3, 4]);\n// => [4, 1, 3, 2]\n\nCreates an array of shuffled values, using a version of the\n[Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle)."},"lodash-size-dbc9cb8":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash size"],"body":["_.size(${collection})"],"description":"_.size([1, 2, 3]);\n// => 3\n\n_.size({ 'a': 1, 'b': 2 });\n// => 2\n\n_.size('pebbles');\n// => 7\n\nGets the size of `collection` by returning its length for array-like\nvalues or the number of own enumerable string keyed properties for objects."},"lodash-some-b992c70":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash some"],"body":["_.some(${collection}, ${predicate})"],"description":"_.some([null, 0, 'yes', false], Boolean);\n// => true\n\nvar users = [\n { 'user': 'barney', 'active': true },\n { 'user': 'fred', 'active': false }\n];\n\n// The `_.matches` iteratee shorthand.\n_.some(users, { 'user': 'barney', 'active': false });\n// => false\n\n// The `_.matchesProperty` iteratee shorthand.\n_.some(users, ['active', false]);\n// => true\n\n// The `_.property` iteratee shorthand.\n_.some(users, 'active');\n// => true\n\nChecks if `predicate` returns truthy for **any** element of `collection`.\nIteration is stopped once `predicate` returns truthy. The predicate is\ninvoked with three arguments: (value, index|key, collection)."},"lodash-sortby-89e2815":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash sortby"],"body":["_.sortBy(${collection}, ${iteratees})"],"description":"var users = [\n { 'user': 'fred', 'age': 48 },\n { 'user': 'barney', 'age': 36 },\n { 'user': 'fred', 'age': 40 },\n { 'user': 'barney', 'age': 34 }\n];\n\n_.sortBy(users, [function(o) { return o.user; }]);\n// => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n\n_.sortBy(users, ['user', 'age']);\n// => objects for [['barney', 34], ['barney', 36], ['fred', 40], ['fred', 48]]\n\nCreates an array of elements, sorted in ascending order by the results of\nrunning each element in a collection thru each iteratee. This method\nperforms a stable sort, that is, it preserves the original sort order of\nequal elements. The iteratees are invoked with one argument: (value)."},"lodash-now-e024a13":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash now"],"body":["_.now()"],"description":"_.defer(function(stamp) {\n console.log(_.now() - stamp);\n}, _.now());\n// => Logs the number of milliseconds it took for the deferred invocation.\n\nGets the timestamp of the number of milliseconds that have elapsed since\nthe Unix epoch (1 January 1970 00:00:00 UTC)."},"lodash-after-9b3b92a":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash after"],"body":["_.after(${n}, ${func})"],"description":"var saves = ['profile', 'settings'];\n\nvar done = _.after(saves.length, function() {\n console.log('done saving!');\n});\n\n_.forEach(saves, function(type) {\n asyncSave({ 'type': type, 'complete': done });\n});\n// => Logs 'done saving!' after the two async saves have completed.\n\nThe opposite of `_.before`; this method creates a function that invokes\n`func` once it's called `n` or more times."},"lodash-ary-8e8e5ff":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash ary"],"body":["_.ary(${func}, ${n})"],"description":"_.map(['6', '8', '10'], _.ary(parseInt, 1));\n// => [6, 8, 10]\n\nCreates a function that invokes `func`, with up to `n` arguments,\nignoring any additional arguments."},"lodash-before-7686e67":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash before"],"body":["_.before(${n}, ${func})"],"description":"jQuery(element).on('click', _.before(5, addContactToList));\n// => Allows adding up to 4 contacts to the list.\n\nCreates a function that invokes `func`, with the `this` binding and arguments\nof the created function, while it's called less than `n` times. Subsequent\ncalls to the created function return the result of the last `func` invocation."},"lodash-bind-9c3d8e1":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash bind"],"body":["_.bind(${func}, ${thisArg}, ${partials})"],"description":"function greet(greeting, punctuation) {\n return greeting + ' ' + this.user + punctuation;\n}\n\nvar object = { 'user': 'fred' };\n\nvar bound = _.bind(greet, object, 'hi');\nbound('!');\n// => 'hi fred!'\n\n// Bound with placeholders.\nvar bound = _.bind(greet, object, _, '!');\nbound('hi');\n// => 'hi fred!'\n\nCreates a function that invokes `func` with the `this` binding of `thisArg`\nand `partials` prepended to the arguments it receives.\n\nThe `_.bind.placeholder` value, which defaults to `_` in monolithic builds,\nmay be used as a placeholder for partially applied arguments.\n\n**Note:** Unlike native `Function#bind`, this method doesn't set the \"length\"\nproperty of bound functions."},"lodash-bindkey-1c27a22":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash bindkey"],"body":["_.bindKey(${object}, ${key}, ${partials})"],"description":"var object = {\n 'user': 'fred',\n 'greet': function(greeting, punctuation) {\n return greeting + ' ' + this.user + punctuation;\n }\n};\n\nvar bound = _.bindKey(object, 'greet', 'hi');\nbound('!');\n// => 'hi fred!'\n\nobject.greet = function(greeting, punctuation) {\n return greeting + 'ya ' + this.user + punctuation;\n};\n\nbound('!');\n// => 'hiya fred!'\n\n// Bound with placeholders.\nvar bound = _.bindKey(object, 'greet', _, '!');\nbound('hi');\n// => 'hiya fred!'\n\nCreates a function that invokes the method at `object[key]` with `partials`\nprepended to the arguments it receives.\n\nThis method differs from `_.bind` by allowing bound functions to reference\nmethods that may be redefined or don't yet exist. See\n[Peter Michaux's article](http://peter.michaux.ca/articles/lazy-function-definition-pattern)\nfor more details.\n\nThe `_.bindKey.placeholder` value, which defaults to `_` in monolithic\nbuilds, may be used as a placeholder for partially applied arguments."},"lodash-curry-c7cee7a":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash curry"],"body":["_.curry(${func}, ${arity})"],"description":"var abc = function(a, b, c) {\n return [a, b, c];\n};\n\nvar curried = _.curry(abc);\n\ncurried(1)(2)(3);\n// => [1, 2, 3]\n\ncurried(1, 2)(3);\n// => [1, 2, 3]\n\ncurried(1, 2, 3);\n// => [1, 2, 3]\n\n// Curried with placeholders.\ncurried(1)(_, 3)(2);\n// => [1, 2, 3]\n\nCreates a function that accepts arguments of `func` and either invokes\n`func` returning its result, if at least `arity` number of arguments have\nbeen provided, or returns a function that accepts the remaining `func`\narguments, and so on. The arity of `func` may be specified if `func.length`\nis not sufficient.\n\nThe `_.curry.placeholder` value, which defaults to `_` in monolithic builds,\nmay be used as a placeholder for provided arguments.\n\n**Note:** This method doesn't set the \"length\" property of curried functions."},"lodash-curryright-9d02c96":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash curryright"],"body":["_.curryRight(${func}, ${arity})"],"description":"var abc = function(a, b, c) {\n return [a, b, c];\n};\n\nvar curried = _.curryRight(abc);\n\ncurried(3)(2)(1);\n// => [1, 2, 3]\n\ncurried(2, 3)(1);\n// => [1, 2, 3]\n\ncurried(1, 2, 3);\n// => [1, 2, 3]\n\n// Curried with placeholders.\ncurried(3)(1, _)(2);\n// => [1, 2, 3]\n\nThis method is like `_.curry` except that arguments are applied to `func`\nin the manner of `_.partialRight` instead of `_.partial`.\n\nThe `_.curryRight.placeholder` value, which defaults to `_` in monolithic\nbuilds, may be used as a placeholder for provided arguments.\n\n**Note:** This method doesn't set the \"length\" property of curried functions."},"lodash-debounce-a8fe72f":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash debounce"],"body":["_.debounce(${func}, ${wait}, ${options}, ${options.leading}, ${options.maxWait}, ${options.trailing})"],"description":"// Avoid costly calculations while the window size is in flux.\njQuery(window).on('resize', _.debounce(calculateLayout, 150));\n\n// Invoke `sendMail` when clicked, debouncing subsequent calls.\njQuery(element).on('click', _.debounce(sendMail, 300, {\n 'leading': true,\n 'trailing': false\n}));\n\n// Ensure `batchLog` is invoked once after 1 second of debounced calls.\nvar debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\nvar source = new EventSource('/stream');\njQuery(source).on('message', debounced);\n\n// Cancel the trailing debounced invocation.\njQuery(window).on('popstate', debounced.cancel);\n\nCreates a debounced function that delays invoking `func` until after `wait`\nmilliseconds have elapsed since the last time the debounced function was\ninvoked. The debounced function comes with a `cancel` method to cancel\ndelayed `func` invocations and a `flush` method to immediately invoke them.\nProvide `options` to indicate whether `func` should be invoked on the\nleading and/or trailing edge of the `wait` timeout. The `func` is invoked\nwith the last arguments provided to the debounced function. Subsequent\ncalls to the debounced function return the result of the last `func`\ninvocation.\n\n**Note:** If `leading` and `trailing` options are `true`, `func` is\ninvoked on the trailing edge of the timeout only if the debounced function\nis invoked more than once during the `wait` timeout.\n\nIf `wait` is `0` and `leading` is `false`, `func` invocation is deferred\nuntil to the next tick, similar to `setTimeout` with a timeout of `0`.\n\nSee [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\nfor details over the differences between `_.debounce` and `_.throttle`."},"lodash-defer-0e6fe12":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash defer"],"body":["_.defer(${func}, ${args})"],"description":"_.defer(function(text) {\n console.log(text);\n}, 'deferred');\n// => Logs 'deferred' after one millisecond.\n\nDefers invoking the `func` until the current call stack has cleared. Any\nadditional arguments are provided to `func` when it's invoked."},"lodash-delay-8f3ceb3":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash delay"],"body":["_.delay(${func}, ${wait}, ${args})"],"description":"_.delay(function(text) {\n console.log(text);\n}, 1000, 'later');\n// => Logs 'later' after one second.\n\nInvokes `func` after `wait` milliseconds. Any additional arguments are\nprovided to `func` when it's invoked."},"lodash-flip-13907d7":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash flip"],"body":["_.flip(${func})"],"description":"var flipped = _.flip(function() {\n return _.toArray(arguments);\n});\n\nflipped('a', 'b', 'c', 'd');\n// => ['d', 'c', 'b', 'a']\n\nCreates a function that invokes `func` with arguments reversed."},"lodash-memoize-88d086e":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash memoize"],"body":["_.memoize(${func}, ${resolver})"],"description":"var object = { 'a': 1, 'b': 2 };\nvar other = { 'c': 3, 'd': 4 };\n\nvar values = _.memoize(_.values);\nvalues(object);\n// => [1, 2]\n\nvalues(other);\n// => [3, 4]\n\nobject.a = 2;\nvalues(object);\n// => [1, 2]\n\n// Modify the result cache.\nvalues.cache.set(object, ['a', 'b']);\nvalues(object);\n// => ['a', 'b']\n\n// Replace `_.memoize.Cache`.\n_.memoize.Cache = WeakMap;\n\nCreates a function that memoizes the result of `func`. If `resolver` is\nprovided, it determines the cache key for storing the result based on the\narguments provided to the memoized function. By default, the first argument\nprovided to the memoized function is used as the map cache key. The `func`\nis invoked with the `this` binding of the memoized function.\n\n**Note:** The cache is exposed as the `cache` property on the memoized\nfunction. Its creation may be customized by replacing the `_.memoize.Cache`\nconstructor with one whose instances implement the\n[`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\nmethod interface of `clear`, `delete`, `get`, `has`, and `set`."},"lodash-negate-170bbcd":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash negate"],"body":["_.negate(${predicate})"],"description":"function isEven(n) {\n return n % 2 == 0;\n}\n\n_.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));\n// => [1, 3, 5]\n\nCreates a function that negates the result of the predicate `func`. The\n`func` predicate is invoked with the `this` binding and arguments of the\ncreated function."},"lodash-once-54aa492":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash once"],"body":["_.once(${func})"],"description":"var initialize = _.once(createApplication);\ninitialize();\ninitialize();\n// => `createApplication` is invoked once\n\nCreates a function that is restricted to invoking `func` once. Repeat calls\nto the function return the value of the first invocation. The `func` is\ninvoked with the `this` binding and arguments of the created function."},"lodash-overargs-c8922a3":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash overargs"],"body":["_.overArgs(${func}, ${transforms})"],"description":"function doubled(n) {\n return n * 2;\n}\n\nfunction square(n) {\n return n * n;\n}\n\nvar func = _.overArgs(function(x, y) {\n return [x, y];\n}, [square, doubled]);\n\nfunc(9, 3);\n// => [81, 6]\n\nfunc(10, 5);\n// => [100, 10]\n\nCreates a function that invokes `func` with its arguments transformed."},"lodash-partial-26413f3":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash partial"],"body":["_.partial(${func}, ${partials})"],"description":"function greet(greeting, name) {\n return greeting + ' ' + name;\n}\n\nvar sayHelloTo = _.partial(greet, 'hello');\nsayHelloTo('fred');\n// => 'hello fred'\n\n// Partially applied with placeholders.\nvar greetFred = _.partial(greet, _, 'fred');\ngreetFred('hi');\n// => 'hi fred'\n\nCreates a function that invokes `func` with `partials` prepended to the\narguments it receives. This method is like `_.bind` except it does **not**\nalter the `this` binding.\n\nThe `_.partial.placeholder` value, which defaults to `_` in monolithic\nbuilds, may be used as a placeholder for partially applied arguments.\n\n**Note:** This method doesn't set the \"length\" property of partially\napplied functions."},"lodash-partialright-eaba6b9":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash partialright"],"body":["_.partialRight(${func}, ${partials})"],"description":"function greet(greeting, name) {\n return greeting + ' ' + name;\n}\n\nvar greetFred = _.partialRight(greet, 'fred');\ngreetFred('hi');\n// => 'hi fred'\n\n// Partially applied with placeholders.\nvar sayHelloTo = _.partialRight(greet, 'hello', _);\nsayHelloTo('fred');\n// => 'hello fred'\n\nThis method is like `_.partial` except that partially applied arguments\nare appended to the arguments it receives.\n\nThe `_.partialRight.placeholder` value, which defaults to `_` in monolithic\nbuilds, may be used as a placeholder for partially applied arguments.\n\n**Note:** This method doesn't set the \"length\" property of partially\napplied functions."},"lodash-rearg-9ce2ba8":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash rearg"],"body":["_.rearg(${func}, ${indexes})"],"description":"var rearged = _.rearg(function(a, b, c) {\n return [a, b, c];\n}, [2, 0, 1]);\n\nrearged('b', 'c', 'a')\n// => ['a', 'b', 'c']\n\nCreates a function that invokes `func` with arguments arranged according\nto the specified `indexes` where the argument value at the first index is\nprovided as the first argument, the argument value at the second index is\nprovided as the second argument, and so on."},"lodash-rest-babc592":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash rest"],"body":["_.rest(${func}, ${start})"],"description":"var say = _.rest(function(what, names) {\n return what + ' ' + _.initial(names).join(', ') +\n (_.size(names) > 1 ? ', & ' : '') + _.last(names);\n});\n\nsay('hello', 'fred', 'barney', 'pebbles');\n// => 'hello fred, barney, & pebbles'\n\nCreates a function that invokes `func` with the `this` binding of the\ncreated function and arguments from `start` and beyond provided as\nan array.\n\n**Note:** This method is based on the\n[rest parameter](https://mdn.io/rest_parameters)."},"lodash-spread-a86233a":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash spread"],"body":["_.spread(${func}, ${start})"],"description":"var say = _.spread(function(who, what) {\n return who + ' says ' + what;\n});\n\nsay(['fred', 'hello']);\n// => 'fred says hello'\n\nvar numbers = Promise.all([\n Promise.resolve(40),\n Promise.resolve(36)\n]);\n\nnumbers.then(_.spread(function(x, y) {\n return x + y;\n}));\n// => a Promise of 76\n\nCreates a function that invokes `func` with the `this` binding of the\ncreate function and an array of arguments much like\n[`Function#apply`](http://www.ecma-international.org/ecma-262/7.0/#sec-function.prototype.apply).\n\n**Note:** This method is based on the\n[spread operator](https://mdn.io/spread_operator)."},"lodash-throttle-ecb76f0":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash throttle"],"body":["_.throttle(${func}, ${wait}, ${options}, ${options.leading}, ${options.trailing})"],"description":"// Avoid excessively updating the position while scrolling.\njQuery(window).on('scroll', _.throttle(updatePosition, 100));\n\n// Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\nvar throttled = _.throttle(renewToken, 300000, { 'trailing': false });\njQuery(element).on('click', throttled);\n\n// Cancel the trailing throttled invocation.\njQuery(window).on('popstate', throttled.cancel);\n\nCreates a throttled function that only invokes `func` at most once per\nevery `wait` milliseconds. The throttled function comes with a `cancel`\nmethod to cancel delayed `func` invocations and a `flush` method to\nimmediately invoke them. Provide `options` to indicate whether `func`\nshould be invoked on the leading and/or trailing edge of the `wait`\ntimeout. The `func` is invoked with the last arguments provided to the\nthrottled function. Subsequent calls to the throttled function return the\nresult of the last `func` invocation.\n\n**Note:** If `leading` and `trailing` options are `true`, `func` is\ninvoked on the trailing edge of the timeout only if the throttled function\nis invoked more than once during the `wait` timeout.\n\nIf `wait` is `0` and `leading` is `false`, `func` invocation is deferred\nuntil to the next tick, similar to `setTimeout` with a timeout of `0`.\n\nSee [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\nfor details over the differences between `_.throttle` and `_.debounce`."},"lodash-unary-7ac6fc3":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash unary"],"body":["_.unary(${func})"],"description":"_.map(['6', '8', '10'], _.unary(parseInt));\n// => [6, 8, 10]\n\nCreates a function that accepts up to one argument, ignoring any\nadditional arguments."},"lodash-wrap-fd328a4":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash wrap"],"body":["_.wrap(${value}, ${wrapper})"],"description":"var p = _.wrap(_.escape, function(func, text) {\n return '

' + func(text) + '

';\n});\n\np('fred, barney, & pebbles');\n// => '

fred, barney, & pebbles

'\n\nCreates a function that provides `value` to `wrapper` as its first\nargument. Any additional arguments provided to the function are appended\nto those provided to the `wrapper`. The wrapper is invoked with the `this`\nbinding of the created function."},"lodash-castarray-804d0a5":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash castarray"],"body":["_.castArray(${value})"],"description":"_.castArray(1);\n// => [1]\n\n_.castArray({ 'a': 1 });\n// => [{ 'a': 1 }]\n\n_.castArray('abc');\n// => ['abc']\n\n_.castArray(null);\n// => [null]\n\n_.castArray(undefined);\n// => [undefined]\n\n_.castArray();\n// => []\n\nvar array = [1, 2, 3];\nconsole.log(_.castArray(array) === array);\n// => true\n\nCasts `value` as an array if it's not one."},"lodash-clone-a7745ce":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash clone"],"body":["_.clone(${value})"],"description":"var objects = [{ 'a': 1 }, { 'b': 2 }];\n\nvar shallow = _.clone(objects);\nconsole.log(shallow[0] === objects[0]);\n// => true\n\nCreates a shallow clone of `value`.\n\n**Note:** This method is loosely based on the\n[structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\nand supports cloning arrays, array buffers, booleans, date objects, maps,\nnumbers, `Object` objects, regexes, sets, strings, symbols, and typed\narrays. The own enumerable properties of `arguments` objects are cloned\nas plain objects. An empty object is returned for uncloneable values such\nas error objects, functions, DOM nodes, and WeakMaps."},"lodash-clonewith-39ad58d":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash clonewith"],"body":["_.cloneWith(${value}, ${customizer})"],"description":"function customizer(value) {\n if (_.isElement(value)) {\n return value.cloneNode(false);\n }\n}\n\nvar el = _.cloneWith(document.body, customizer);\n\nconsole.log(el === document.body);\n// => false\nconsole.log(el.nodeName);\n// => 'BODY'\nconsole.log(el.childNodes.length);\n// => 0\n\nThis method is like `_.clone` except that it accepts `customizer` which\nis invoked to produce the cloned value. If `customizer` returns `undefined`,\ncloning is handled by the method instead. The `customizer` is invoked with\nup to four arguments; (value [, index|key, object, stack])."},"lodash-clonedeep-92a4625":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash clonedeep"],"body":["_.cloneDeep(${value})"],"description":"var objects = [{ 'a': 1 }, { 'b': 2 }];\n\nvar deep = _.cloneDeep(objects);\nconsole.log(deep[0] === objects[0]);\n// => false\n\nThis method is like `_.clone` except that it recursively clones `value`."},"lodash-clonedeepwith-d4fb17c":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash clonedeepwith"],"body":["_.cloneDeepWith(${value}, ${customizer})"],"description":"function customizer(value) {\n if (_.isElement(value)) {\n return value.cloneNode(true);\n }\n}\n\nvar el = _.cloneDeepWith(document.body, customizer);\n\nconsole.log(el === document.body);\n// => false\nconsole.log(el.nodeName);\n// => 'BODY'\nconsole.log(el.childNodes.length);\n// => 20\n\nThis method is like `_.cloneWith` except that it recursively clones `value`."},"lodash-conformsto-15021be":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash conformsto"],"body":["_.conformsTo(${object}, ${source})"],"description":"var object = { 'a': 1, 'b': 2 };\n\n_.conformsTo(object, { 'b': function(n) { return n > 1; } });\n// => true\n\n_.conformsTo(object, { 'b': function(n) { return n > 2; } });\n// => false\n\nChecks if `object` conforms to `source` by invoking the predicate\nproperties of `source` with the corresponding property values of `object`.\n\n**Note:** This method is equivalent to `_.conforms` when `source` is\npartially applied."},"lodash-eq-a0ba0d1":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash eq"],"body":["_.eq(${value}, ${other})"],"description":"var object = { 'a': 1 };\nvar other = { 'a': 1 };\n\n_.eq(object, object);\n// => true\n\n_.eq(object, other);\n// => false\n\n_.eq('a', 'a');\n// => true\n\n_.eq('a', Object('a'));\n// => false\n\n_.eq(NaN, NaN);\n// => true\n\nPerforms a\n[`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\ncomparison between two values to determine if they are equivalent."},"lodash-gt-4867333":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash gt"],"body":["_.gt(${value}, ${other})"],"description":"_.gt(3, 1);\n// => true\n\n_.gt(3, 3);\n// => false\n\n_.gt(1, 3);\n// => false\n\nChecks if `value` is greater than `other`."},"lodash-gte-fe4303c":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash gte"],"body":["_.gte(${value}, ${other})"],"description":"_.gte(3, 1);\n// => true\n\n_.gte(3, 3);\n// => true\n\n_.gte(1, 3);\n// => false\n\nChecks if `value` is greater than or equal to `other`."},"lodash-isarguments-097b01f":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash isarguments"],"body":["_.isArguments(${value})"],"description":"_.isArguments(function() { return arguments; }());\n// => true\n\n_.isArguments([1, 2, 3]);\n// => false\n\nChecks if `value` is likely an `arguments` object."},"lodash-isarray-977c33f":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash isarray"],"body":["_.isArray(${value})"],"description":"_.isArray([1, 2, 3]);\n// => true\n\n_.isArray(document.body.children);\n// => false\n\n_.isArray('abc');\n// => false\n\n_.isArray(_.noop);\n// => false\n\nChecks if `value` is classified as an `Array` object."},"lodash-isarraybuffer-a3636bb":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash isarraybuffer"],"body":["_.isArrayBuffer(${value})"],"description":"_.isArrayBuffer(new ArrayBuffer(2));\n// => true\n\n_.isArrayBuffer(new Array(2));\n// => false\n\nChecks if `value` is classified as an `ArrayBuffer` object."},"lodash-isarraylike-4fe1d87":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash isarraylike"],"body":["_.isArrayLike(${value})"],"description":"_.isArrayLike([1, 2, 3]);\n// => true\n\n_.isArrayLike(document.body.children);\n// => true\n\n_.isArrayLike('abc');\n// => true\n\n_.isArrayLike(_.noop);\n// => false\n\nChecks if `value` is array-like. A value is considered array-like if it's\nnot a function and has a `value.length` that's an integer greater than or\nequal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`."},"lodash-isarraylikeobject-b9cc26d":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash isarraylikeobject"],"body":["_.isArrayLikeObject(${value})"],"description":"_.isArrayLikeObject([1, 2, 3]);\n// => true\n\n_.isArrayLikeObject(document.body.children);\n// => true\n\n_.isArrayLikeObject('abc');\n// => false\n\n_.isArrayLikeObject(_.noop);\n// => false\n\nThis method is like `_.isArrayLike` except that it also checks if `value`\nis an object."},"lodash-isboolean-bd394b1":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash isboolean"],"body":["_.isBoolean(${value})"],"description":"_.isBoolean(false);\n// => true\n\n_.isBoolean(null);\n// => false\n\nChecks if `value` is classified as a boolean primitive or object."},"lodash-isbuffer-ea5cc9a":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash isbuffer"],"body":["_.isBuffer(${value})"],"description":"_.isBuffer(new Buffer(2));\n// => true\n\n_.isBuffer(new Uint8Array(2));\n// => false\n\nChecks if `value` is a buffer."},"lodash-isdate-787c1f1":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash isdate"],"body":["_.isDate(${value})"],"description":"_.isDate(new Date);\n// => true\n\n_.isDate('Mon April 23 2012');\n// => false\n\nChecks if `value` is classified as a `Date` object."},"lodash-iselement-49d3290":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash iselement"],"body":["_.isElement(${value})"],"description":"_.isElement(document.body);\n// => true\n\n_.isElement('');\n// => false\n\nChecks if `value` is likely a DOM element."},"lodash-isempty-41dcda0":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash isempty"],"body":["_.isEmpty(${value})"],"description":"_.isEmpty(null);\n// => true\n\n_.isEmpty(true);\n// => true\n\n_.isEmpty(1);\n// => true\n\n_.isEmpty([1, 2, 3]);\n// => false\n\n_.isEmpty({ 'a': 1 });\n// => false\n\nChecks if `value` is an empty object, collection, map, or set.\n\nObjects are considered empty if they have no own enumerable string keyed\nproperties.\n\nArray-like values such as `arguments` objects, arrays, buffers, strings, or\njQuery-like collections are considered empty if they have a `length` of `0`.\nSimilarly, maps and sets are considered empty if they have a `size` of `0`."},"lodash-isequal-4ac8f6f":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash isequal"],"body":["_.isEqual(${value}, ${other})"],"description":"var object = { 'a': 1 };\nvar other = { 'a': 1 };\n\n_.isEqual(object, other);\n// => true\n\nobject === other;\n// => false\n\nPerforms a deep comparison between two values to determine if they are\nequivalent.\n\n**Note:** This method supports comparing arrays, array buffers, booleans,\ndate objects, error objects, maps, numbers, `Object` objects, regexes,\nsets, strings, symbols, and typed arrays. `Object` objects are compared\nby their own, not inherited, enumerable properties. Functions and DOM\nnodes are compared by strict equality, i.e. `===`."},"lodash-isequalwith-6a9c557":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash isequalwith"],"body":["_.isEqualWith(${value}, ${other}, ${customizer})"],"description":"function isGreeting(value) {\n return /^h(?:i|ello)$/.test(value);\n}\n\nfunction customizer(objValue, othValue) {\n if (isGreeting(objValue) && isGreeting(othValue)) {\n return true;\n }\n}\n\nvar array = ['hello', 'goodbye'];\nvar other = ['hi', 'goodbye'];\n\n_.isEqualWith(array, other, customizer);\n// => true\n\nThis method is like `_.isEqual` except that it accepts `customizer` which\nis invoked to compare values. If `customizer` returns `undefined`, comparisons\nare handled by the method instead. The `customizer` is invoked with up to\nsix arguments: (objValue, othValue [, index|key, object, other, stack])."},"lodash-iserror-aa6e607":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash iserror"],"body":["_.isError(${value})"],"description":"_.isError(new Error);\n// => true\n\n_.isError(Error);\n// => false\n\nChecks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,\n`SyntaxError`, `TypeError`, or `URIError` object."},"lodash-isfinite-5e3b1af":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash isfinite"],"body":["_.isFinite(${value})"],"description":"_.isFinite(3);\n// => true\n\n_.isFinite(Number.MIN_VALUE);\n// => true\n\n_.isFinite(Infinity);\n// => false\n\n_.isFinite('3');\n// => false\n\nChecks if `value` is a finite primitive number.\n\n**Note:** This method is based on\n[`Number.isFinite`](https://mdn.io/Number/isFinite)."},"lodash-isfunction-a46f204":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash isfunction"],"body":["_.isFunction(${value})"],"description":"_.isFunction(_);\n// => true\n\n_.isFunction(/abc/);\n// => false\n\nChecks if `value` is classified as a `Function` object."},"lodash-isinteger-f29c851":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash isinteger"],"body":["_.isInteger(${value})"],"description":"_.isInteger(3);\n// => true\n\n_.isInteger(Number.MIN_VALUE);\n// => false\n\n_.isInteger(Infinity);\n// => false\n\n_.isInteger('3');\n// => false\n\nChecks if `value` is an integer.\n\n**Note:** This method is based on\n[`Number.isInteger`](https://mdn.io/Number/isInteger)."},"lodash-islength-8d0a4e9":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash islength"],"body":["_.isLength(${value})"],"description":"_.isLength(3);\n// => true\n\n_.isLength(Number.MIN_VALUE);\n// => false\n\n_.isLength(Infinity);\n// => false\n\n_.isLength('3');\n// => false\n\nChecks if `value` is a valid array-like length.\n\n**Note:** This method is loosely based on\n[`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength)."},"lodash-isobject-c38a47a":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash isobject"],"body":["_.isObject(${value})"],"description":"_.isObject({});\n// => true\n\n_.isObject([1, 2, 3]);\n// => true\n\n_.isObject(_.noop);\n// => true\n\n_.isObject(null);\n// => false\n\nChecks if `value` is the\n[language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\nof `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)"},"lodash-isobjectlike-edcc4dd":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash isobjectlike"],"body":["_.isObjectLike(${value})"],"description":"_.isObjectLike({});\n// => true\n\n_.isObjectLike([1, 2, 3]);\n// => true\n\n_.isObjectLike(_.noop);\n// => false\n\n_.isObjectLike(null);\n// => false\n\nChecks if `value` is object-like. A value is object-like if it's not `null`\nand has a `typeof` result of \"object\"."},"lodash-ismap-5bba944":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash ismap"],"body":["_.isMap(${value})"],"description":"_.isMap(new Map);\n// => true\n\n_.isMap(new WeakMap);\n// => false\n\nChecks if `value` is classified as a `Map` object."},"lodash-ismatch-9cba6f6":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash ismatch"],"body":["_.isMatch(${object}, ${source})"],"description":"var object = { 'a': 1, 'b': 2 };\n\n_.isMatch(object, { 'b': 2 });\n// => true\n\n_.isMatch(object, { 'b': 1 });\n// => false\n\nPerforms a partial deep comparison between `object` and `source` to\ndetermine if `object` contains equivalent property values.\n\n**Note:** This method is equivalent to `_.matches` when `source` is\npartially applied.\n\nPartial comparisons will match empty array and empty object `source`\nvalues against any array or object value, respectively. See `_.isEqual`\nfor a list of supported value comparisons."},"lodash-ismatchwith-ba0d026":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash ismatchwith"],"body":["_.isMatchWith(${object}, ${source}, ${customizer})"],"description":"function isGreeting(value) {\n return /^h(?:i|ello)$/.test(value);\n}\n\nfunction customizer(objValue, srcValue) {\n if (isGreeting(objValue) && isGreeting(srcValue)) {\n return true;\n }\n}\n\nvar object = { 'greeting': 'hello' };\nvar source = { 'greeting': 'hi' };\n\n_.isMatchWith(object, source, customizer);\n// => true\n\nThis method is like `_.isMatch` except that it accepts `customizer` which\nis invoked to compare values. If `customizer` returns `undefined`, comparisons\nare handled by the method instead. The `customizer` is invoked with five\narguments: (objValue, srcValue, index|key, object, source)."},"lodash-isnan-b43c7ff":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash isnan"],"body":["_.isNaN(${value})"],"description":"_.isNaN(NaN);\n// => true\n\n_.isNaN(new Number(NaN));\n// => true\n\nisNaN(undefined);\n// => true\n\n_.isNaN(undefined);\n// => false\n\nChecks if `value` is `NaN`.\n\n**Note:** This method is based on\n[`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\nglobal [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n`undefined` and other non-number values."},"lodash-isnative-5e8fa92":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash isnative"],"body":["_.isNative(${value})"],"description":"_.isNative(Array.prototype.push);\n// => true\n\n_.isNative(_);\n// => false\n\nChecks if `value` is a pristine native function.\n\n**Note:** This method can't reliably detect native functions in the presence\nof the core-js package because core-js circumvents this kind of detection.\nDespite multiple requests, the core-js maintainer has made it clear: any\nattempt to fix the detection will be obstructed. As a result, we're left\nwith little choice but to throw an error. Unfortunately, this also affects\npackages, like [babel-polyfill](https://www.npmjs.com/package/babel-polyfill),\nwhich rely on core-js."},"lodash-isnull-0b030ae":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash isnull"],"body":["_.isNull(${value})"],"description":"_.isNull(null);\n// => true\n\n_.isNull(void 0);\n// => false\n\nChecks if `value` is `null`."},"lodash-isnil-f2b993f":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash isnil"],"body":["_.isNil(${value})"],"description":"_.isNil(null);\n// => true\n\n_.isNil(void 0);\n// => true\n\n_.isNil(NaN);\n// => false\n\nChecks if `value` is `null` or `undefined`."},"lodash-isnumber-d0118ff":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash isnumber"],"body":["_.isNumber(${value})"],"description":"_.isNumber(3);\n// => true\n\n_.isNumber(Number.MIN_VALUE);\n// => true\n\n_.isNumber(Infinity);\n// => true\n\n_.isNumber('3');\n// => false\n\nChecks if `value` is classified as a `Number` primitive or object.\n\n**Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\nclassified as numbers, use the `_.isFinite` method."},"lodash-isplainobject-e4d0aa7":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash isplainobject"],"body":["_.isPlainObject(${value})"],"description":"function Foo() {\n this.a = 1;\n}\n\n_.isPlainObject(new Foo);\n// => false\n\n_.isPlainObject([1, 2, 3]);\n// => false\n\n_.isPlainObject({ 'x': 0, 'y': 0 });\n// => true\n\n_.isPlainObject(Object.create(null));\n// => true\n\nChecks if `value` is a plain object, that is, an object created by the\n`Object` constructor or one with a `[[Prototype]]` of `null`."},"lodash-isregexp-5310928":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash isregexp"],"body":["_.isRegExp(${value})"],"description":"_.isRegExp(/abc/);\n// => true\n\n_.isRegExp('/abc/');\n// => false\n\nChecks if `value` is classified as a `RegExp` object."},"lodash-issafeinteger-7571b00":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash issafeinteger"],"body":["_.isSafeInteger(${value})"],"description":"_.isSafeInteger(3);\n// => true\n\n_.isSafeInteger(Number.MIN_VALUE);\n// => false\n\n_.isSafeInteger(Infinity);\n// => false\n\n_.isSafeInteger('3');\n// => false\n\nChecks if `value` is a safe integer. An integer is safe if it's an IEEE-754\ndouble precision number which isn't the result of a rounded unsafe integer.\n\n**Note:** This method is based on\n[`Number.isSafeInteger`](https://mdn.io/Number/isSafeInteger)."},"lodash-isset-53764d8":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash isset"],"body":["_.isSet(${value})"],"description":"_.isSet(new Set);\n// => true\n\n_.isSet(new WeakSet);\n// => false\n\nChecks if `value` is classified as a `Set` object."},"lodash-isstring-607aaf4":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash isstring"],"body":["_.isString(${value})"],"description":"_.isString('abc');\n// => true\n\n_.isString(1);\n// => false\n\nChecks if `value` is classified as a `String` primitive or object."},"lodash-issymbol-d73d8f3":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash issymbol"],"body":["_.isSymbol(${value})"],"description":"_.isSymbol(Symbol.iterator);\n// => true\n\n_.isSymbol('abc');\n// => false\n\nChecks if `value` is classified as a `Symbol` primitive or object."},"lodash-istypedarray-ddc4ee3":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash istypedarray"],"body":["_.isTypedArray(${value})"],"description":"_.isTypedArray(new Uint8Array);\n// => true\n\n_.isTypedArray([]);\n// => false\n\nChecks if `value` is classified as a typed array."},"lodash-isundefined-3388713":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash isundefined"],"body":["_.isUndefined(${value})"],"description":"_.isUndefined(void 0);\n// => true\n\n_.isUndefined(null);\n// => false\n\nChecks if `value` is `undefined`."},"lodash-isweakmap-e784adf":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash isweakmap"],"body":["_.isWeakMap(${value})"],"description":"_.isWeakMap(new WeakMap);\n// => true\n\n_.isWeakMap(new Map);\n// => false\n\nChecks if `value` is classified as a `WeakMap` object."},"lodash-isweakset-17ae503":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash isweakset"],"body":["_.isWeakSet(${value})"],"description":"_.isWeakSet(new WeakSet);\n// => true\n\n_.isWeakSet(new Set);\n// => false\n\nChecks if `value` is classified as a `WeakSet` object."},"lodash-lt-06e571e":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash lt"],"body":["_.lt(${value}, ${other})"],"description":"_.lt(1, 3);\n// => true\n\n_.lt(3, 3);\n// => false\n\n_.lt(3, 1);\n// => false\n\nChecks if `value` is less than `other`."},"lodash-lte-0ae83c2":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash lte"],"body":["_.lte(${value}, ${other})"],"description":"_.lte(1, 3);\n// => true\n\n_.lte(3, 3);\n// => true\n\n_.lte(3, 1);\n// => false\n\nChecks if `value` is less than or equal to `other`."},"lodash-toarray-eb223a1":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash toarray"],"body":["_.toArray(${value})"],"description":"_.toArray({ 'a': 1, 'b': 2 });\n// => [1, 2]\n\n_.toArray('abc');\n// => ['a', 'b', 'c']\n\n_.toArray(1);\n// => []\n\n_.toArray(null);\n// => []\n\nConverts `value` to an array."},"lodash-tofinite-e7a3c20":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash tofinite"],"body":["_.toFinite(${value})"],"description":"_.toFinite(3.2);\n// => 3.2\n\n_.toFinite(Number.MIN_VALUE);\n// => 5e-324\n\n_.toFinite(Infinity);\n// => 1.7976931348623157e+308\n\n_.toFinite('3.2');\n// => 3.2\n\nConverts `value` to a finite number."},"lodash-tointeger-e45f23d":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash tointeger"],"body":["_.toInteger(${value})"],"description":"_.toInteger(3.2);\n// => 3\n\n_.toInteger(Number.MIN_VALUE);\n// => 0\n\n_.toInteger(Infinity);\n// => 1.7976931348623157e+308\n\n_.toInteger('3.2');\n// => 3\n\nConverts `value` to an integer.\n\n**Note:** This method is loosely based on\n[`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger)."},"lodash-tolength-9226926":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash tolength"],"body":["_.toLength(${value})"],"description":"_.toLength(3.2);\n// => 3\n\n_.toLength(Number.MIN_VALUE);\n// => 0\n\n_.toLength(Infinity);\n// => 4294967295\n\n_.toLength('3.2');\n// => 3\n\nConverts `value` to an integer suitable for use as the length of an\narray-like object.\n\n**Note:** This method is based on\n[`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength)."},"lodash-tonumber-7aa6ab0":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash tonumber"],"body":["_.toNumber(${value})"],"description":"_.toNumber(3.2);\n// => 3.2\n\n_.toNumber(Number.MIN_VALUE);\n// => 5e-324\n\n_.toNumber(Infinity);\n// => Infinity\n\n_.toNumber('3.2');\n// => 3.2\n\nConverts `value` to a number."},"lodash-toplainobject-23ca49f":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash toplainobject"],"body":["_.toPlainObject(${value})"],"description":"function Foo() {\n this.b = 2;\n}\n\nFoo.prototype.c = 3;\n\n_.assign({ 'a': 1 }, new Foo);\n// => { 'a': 1, 'b': 2 }\n\n_.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n// => { 'a': 1, 'b': 2, 'c': 3 }\n\nConverts `value` to a plain object flattening inherited enumerable string\nkeyed properties of `value` to own properties of the plain object."},"lodash-tosafeinteger-0f60796":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash tosafeinteger"],"body":["_.toSafeInteger(${value})"],"description":"_.toSafeInteger(3.2);\n// => 3\n\n_.toSafeInteger(Number.MIN_VALUE);\n// => 0\n\n_.toSafeInteger(Infinity);\n// => 9007199254740991\n\n_.toSafeInteger('3.2');\n// => 3\n\nConverts `value` to a safe integer. A safe integer can be compared and\nrepresented correctly."},"lodash-tostring-a48abd9":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash tostring"],"body":["_.toString(${value})"],"description":"_.toString(null);\n// => ''\n\n_.toString(-0);\n// => '-0'\n\n_.toString([1, 2, 3]);\n// => '1,2,3'\n\nConverts `value` to a string. An empty string is returned for `null`\nand `undefined` values. The sign of `-0` is preserved."},"lodash-assign-8fd2320":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash assign"],"body":["_.assign(${object}, ${sources})"],"description":"function Foo() {\n this.a = 1;\n}\n\nfunction Bar() {\n this.c = 3;\n}\n\nFoo.prototype.b = 2;\nBar.prototype.d = 4;\n\n_.assign({ 'a': 0 }, new Foo, new Bar);\n// => { 'a': 1, 'c': 3 }\n\nAssigns own enumerable string keyed properties of source objects to the\ndestination object. Source objects are applied from left to right.\nSubsequent sources overwrite property assignments of previous sources.\n\n**Note:** This method mutates `object` and is loosely based on\n[`Object.assign`](https://mdn.io/Object/assign)."},"lodash-extend-64a7c20":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash extend"],"body":["_.extend(${object}, ${sources})"],"description":"function Foo() {\n this.a = 1;\n}\n\nfunction Bar() {\n this.c = 3;\n}\n\nFoo.prototype.b = 2;\nBar.prototype.d = 4;\n\n_.assignIn({ 'a': 0 }, new Foo, new Bar);\n// => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 }\n\nThis method is like `_.assign` except that it iterates over own and\ninherited source properties.\n\n**Note:** This method mutates `object`."},"lodash-extendwith-890c50f":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash extendwith"],"body":["_.extendWith(${object}, ${sources}, ${customizer})"],"description":"function customizer(objValue, srcValue) {\n return _.isUndefined(objValue) ? srcValue : objValue;\n}\n\nvar defaults = _.partialRight(_.assignInWith, customizer);\n\ndefaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n// => { 'a': 1, 'b': 2 }\n\nThis method is like `_.assignIn` except that it accepts `customizer`\nwhich is invoked to produce the assigned values. If `customizer` returns\n`undefined`, assignment is handled by the method instead. The `customizer`\nis invoked with five arguments: (objValue, srcValue, key, object, source).\n\n**Note:** This method mutates `object`."},"lodash-assignwith-5062399":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash assignwith"],"body":["_.assignWith(${object}, ${sources}, ${customizer})"],"description":"function customizer(objValue, srcValue) {\n return _.isUndefined(objValue) ? srcValue : objValue;\n}\n\nvar defaults = _.partialRight(_.assignWith, customizer);\n\ndefaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n// => { 'a': 1, 'b': 2 }\n\nThis method is like `_.assign` except that it accepts `customizer`\nwhich is invoked to produce the assigned values. If `customizer` returns\n`undefined`, assignment is handled by the method instead. The `customizer`\nis invoked with five arguments: (objValue, srcValue, key, object, source).\n\n**Note:** This method mutates `object`."},"lodash-create-c286c3d":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash create"],"body":["_.create(${prototype}, ${properties})"],"description":"function Shape() {\n this.x = 0;\n this.y = 0;\n}\n\nfunction Circle() {\n Shape.call(this);\n}\n\nCircle.prototype = _.create(Shape.prototype, {\n 'constructor': Circle\n});\n\nvar circle = new Circle;\ncircle instanceof Circle;\n// => true\n\ncircle instanceof Shape;\n// => true\n\nCreates an object that inherits from the `prototype` object. If a\n`properties` object is given, its own enumerable string keyed properties\nare assigned to the created object."},"lodash-defaults-8b0d9d0":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash defaults"],"body":["_.defaults(${object}, ${sources})"],"description":"_.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n// => { 'a': 1, 'b': 2 }\n\nAssigns own and inherited enumerable string keyed properties of source\nobjects to the destination object for all destination properties that\nresolve to `undefined`. Source objects are applied from left to right.\nOnce a property is set, additional values of the same property are ignored.\n\n**Note:** This method mutates `object`."},"lodash-defaultsdeep-ad055ba":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash defaultsdeep"],"body":["_.defaultsDeep(${object}, ${sources})"],"description":"_.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } });\n// => { 'a': { 'b': 2, 'c': 3 } }\n\nThis method is like `_.defaults` except that it recursively assigns\ndefault properties.\n\n**Note:** This method mutates `object`."},"lodash-findkey-2fce59a":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash findkey"],"body":["_.findKey(${object}, ${predicate})"],"description":"var users = {\n 'barney': { 'age': 36, 'active': true },\n 'fred': { 'age': 40, 'active': false },\n 'pebbles': { 'age': 1, 'active': true }\n};\n\n_.findKey(users, function(o) { return o.age < 40; });\n// => 'barney' (iteration order is not guaranteed)\n\n// The `_.matches` iteratee shorthand.\n_.findKey(users, { 'age': 1, 'active': true });\n// => 'pebbles'\n\n// The `_.matchesProperty` iteratee shorthand.\n_.findKey(users, ['active', false]);\n// => 'fred'\n\n// The `_.property` iteratee shorthand.\n_.findKey(users, 'active');\n// => 'barney'\n\nThis method is like `_.find` except that it returns the key of the first\nelement `predicate` returns truthy for instead of the element itself."},"lodash-findlastkey-3d18438":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash findlastkey"],"body":["_.findLastKey(${object}, ${predicate})"],"description":"var users = {\n 'barney': { 'age': 36, 'active': true },\n 'fred': { 'age': 40, 'active': false },\n 'pebbles': { 'age': 1, 'active': true }\n};\n\n_.findLastKey(users, function(o) { return o.age < 40; });\n// => returns 'pebbles' assuming `_.findKey` returns 'barney'\n\n// The `_.matches` iteratee shorthand.\n_.findLastKey(users, { 'age': 36, 'active': true });\n// => 'barney'\n\n// The `_.matchesProperty` iteratee shorthand.\n_.findLastKey(users, ['active', false]);\n// => 'fred'\n\n// The `_.property` iteratee shorthand.\n_.findLastKey(users, 'active');\n// => 'pebbles'\n\nThis method is like `_.findKey` except that it iterates over elements of\na collection in the opposite order."},"lodash-forin-bb076f0":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash forin"],"body":["_.forIn(${object}, ${iteratee})"],"description":"function Foo() {\n this.a = 1;\n this.b = 2;\n}\n\nFoo.prototype.c = 3;\n\n_.forIn(new Foo, function(value, key) {\n console.log(key);\n});\n// => Logs 'a', 'b', then 'c' (iteration order is not guaranteed).\n\nIterates over own and inherited enumerable string keyed properties of an\nobject and invokes `iteratee` for each property. The iteratee is invoked\nwith three arguments: (value, key, object). Iteratee functions may exit\niteration early by explicitly returning `false`."},"lodash-forinright-fd24cb4":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash forinright"],"body":["_.forInRight(${object}, ${iteratee})"],"description":"function Foo() {\n this.a = 1;\n this.b = 2;\n}\n\nFoo.prototype.c = 3;\n\n_.forInRight(new Foo, function(value, key) {\n console.log(key);\n});\n// => Logs 'c', 'b', then 'a' assuming `_.forIn` logs 'a', 'b', then 'c'.\n\nThis method is like `_.forIn` except that it iterates over properties of\n`object` in the opposite order."},"lodash-forown-3c68d3d":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash forown"],"body":["_.forOwn(${object}, ${iteratee})"],"description":"function Foo() {\n this.a = 1;\n this.b = 2;\n}\n\nFoo.prototype.c = 3;\n\n_.forOwn(new Foo, function(value, key) {\n console.log(key);\n});\n// => Logs 'a' then 'b' (iteration order is not guaranteed).\n\nIterates over own enumerable string keyed properties of an object and\ninvokes `iteratee` for each property. The iteratee is invoked with three\narguments: (value, key, object). Iteratee functions may exit iteration\nearly by explicitly returning `false`."},"lodash-forownright-5bb9ddc":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash forownright"],"body":["_.forOwnRight(${object}, ${iteratee})"],"description":"function Foo() {\n this.a = 1;\n this.b = 2;\n}\n\nFoo.prototype.c = 3;\n\n_.forOwnRight(new Foo, function(value, key) {\n console.log(key);\n});\n// => Logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'.\n\nThis method is like `_.forOwn` except that it iterates over properties of\n`object` in the opposite order."},"lodash-functions-d846f7a":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash functions"],"body":["_.functions(${object})"],"description":"function Foo() {\n this.a = _.constant('a');\n this.b = _.constant('b');\n}\n\nFoo.prototype.c = _.constant('c');\n\n_.functions(new Foo);\n// => ['a', 'b']\n\nCreates an array of function property names from own enumerable properties\nof `object`."},"lodash-functionsin-99cb1dd":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash functionsin"],"body":["_.functionsIn(${object})"],"description":"function Foo() {\n this.a = _.constant('a');\n this.b = _.constant('b');\n}\n\nFoo.prototype.c = _.constant('c');\n\n_.functionsIn(new Foo);\n// => ['a', 'b', 'c']\n\nCreates an array of function property names from own and inherited\nenumerable properties of `object`."},"lodash-get-b68ee91":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash get"],"body":["_.get(${object}, ${path}, ${defaultValue})"],"description":"var object = { 'a': [{ 'b': { 'c': 3 } }] };\n\n_.get(object, 'a[0].b.c');\n// => 3\n\n_.get(object, ['a', '0', 'b', 'c']);\n// => 3\n\n_.get(object, 'a.b.c', 'default');\n// => 'default'\n\nGets the value at `path` of `object`. If the resolved value is\n`undefined`, the `defaultValue` is returned in its place."},"lodash-has-f1d76ed":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash has"],"body":["_.has(${object}, ${path})"],"description":"var object = { 'a': { 'b': 2 } };\nvar other = _.create({ 'a': _.create({ 'b': 2 }) });\n\n_.has(object, 'a');\n// => true\n\n_.has(object, 'a.b');\n// => true\n\n_.has(object, ['a', 'b']);\n// => true\n\n_.has(other, 'a');\n// => false\n\nChecks if `path` is a direct property of `object`."},"lodash-hasin-fe8ddda":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash hasin"],"body":["_.hasIn(${object}, ${path})"],"description":"var object = _.create({ 'a': _.create({ 'b': 2 }) });\n\n_.hasIn(object, 'a');\n// => true\n\n_.hasIn(object, 'a.b');\n// => true\n\n_.hasIn(object, ['a', 'b']);\n// => true\n\n_.hasIn(object, 'b');\n// => false\n\nChecks if `path` is a direct or inherited property of `object`."},"lodash-invert-26bf8a4":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash invert"],"body":["_.invert(${object})"],"description":"var object = { 'a': 1, 'b': 2, 'c': 1 };\n\n_.invert(object);\n// => { '1': 'c', '2': 'b' }\n\nCreates an object composed of the inverted keys and values of `object`.\nIf `object` contains duplicate values, subsequent values overwrite\nproperty assignments of previous values."},"lodash-invertby-e4ec1b8":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash invertby"],"body":["_.invertBy(${object}, ${iteratee})"],"description":"var object = { 'a': 1, 'b': 2, 'c': 1 };\n\n_.invertBy(object);\n// => { '1': ['a', 'c'], '2': ['b'] }\n\n_.invertBy(object, function(value) {\n return 'group' + value;\n});\n// => { 'group1': ['a', 'c'], 'group2': ['b'] }\n\nThis method is like `_.invert` except that the inverted object is generated\nfrom the results of running each element of `object` thru `iteratee`. The\ncorresponding inverted value of each inverted key is an array of keys\nresponsible for generating the inverted value. The iteratee is invoked\nwith one argument: (value)."},"lodash-invoke-bcca9f8":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash invoke"],"body":["_.invoke(${object}, ${path}, ${args})"],"description":"var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] };\n\n_.invoke(object, 'a[0].b.c.slice', 1, 3);\n// => [2, 3]\n\nInvokes the method at `path` of `object`."},"lodash-keys-ea3b923":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash keys"],"body":["_.keys(${object})"],"description":"function Foo() {\n this.a = 1;\n this.b = 2;\n}\n\nFoo.prototype.c = 3;\n\n_.keys(new Foo);\n// => ['a', 'b'] (iteration order is not guaranteed)\n\n_.keys('hi');\n// => ['0', '1']\n\nCreates an array of the own enumerable property names of `object`.\n\n**Note:** Non-object values are coerced to objects. See the\n[ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\nfor more details."},"lodash-keysin-e92c965":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash keysin"],"body":["_.keysIn(${object})"],"description":"function Foo() {\n this.a = 1;\n this.b = 2;\n}\n\nFoo.prototype.c = 3;\n\n_.keysIn(new Foo);\n// => ['a', 'b', 'c'] (iteration order is not guaranteed)\n\nCreates an array of the own and inherited enumerable property names of `object`.\n\n**Note:** Non-object values are coerced to objects."},"lodash-mapkeys-f69167c":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash mapkeys"],"body":["_.mapKeys(${object}, ${iteratee})"],"description":"_.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {\n return key + value;\n});\n// => { 'a1': 1, 'b2': 2 }\n\nThe opposite of `_.mapValues`; this method creates an object with the\nsame values as `object` and keys generated by running each own enumerable\nstring keyed property of `object` thru `iteratee`. The iteratee is invoked\nwith three arguments: (value, key, object)."},"lodash-mapvalues-71982bc":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash mapvalues"],"body":["_.mapValues(${object}, ${iteratee})"],"description":"var users = {\n 'fred': { 'user': 'fred', 'age': 40 },\n 'pebbles': { 'user': 'pebbles', 'age': 1 }\n};\n\n_.mapValues(users, function(o) { return o.age; });\n// => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n\n// The `_.property` iteratee shorthand.\n_.mapValues(users, 'age');\n// => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n\nCreates an object with the same keys as `object` and values generated\nby running each own enumerable string keyed property of `object` thru\n`iteratee`. The iteratee is invoked with three arguments:\n(value, key, object)."},"lodash-merge-9dab1d4":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash merge"],"body":["_.merge(${object}, ${sources})"],"description":"var object = {\n 'a': [{ 'b': 2 }, { 'd': 4 }]\n};\n\nvar other = {\n 'a': [{ 'c': 3 }, { 'e': 5 }]\n};\n\n_.merge(object, other);\n// => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n\nThis method is like `_.assign` except that it recursively merges own and\ninherited enumerable string keyed properties of source objects into the\ndestination object. Source properties that resolve to `undefined` are\nskipped if a destination value exists. Array and plain object properties\nare merged recursively. Other objects and value types are overridden by\nassignment. Source objects are applied from left to right. Subsequent\nsources overwrite property assignments of previous sources.\n\n**Note:** This method mutates `object`."},"lodash-mergewith-4297258":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash mergewith"],"body":["_.mergeWith(${object}, ${sources}, ${customizer})"],"description":"function customizer(objValue, srcValue) {\n if (_.isArray(objValue)) {\n return objValue.concat(srcValue);\n }\n}\n\nvar object = { 'a': [1], 'b': [2] };\nvar other = { 'a': [3], 'b': [4] };\n\n_.mergeWith(object, other, customizer);\n// => { 'a': [1, 3], 'b': [2, 4] }\n\nThis method is like `_.merge` except that it accepts `customizer` which\nis invoked to produce the merged values of the destination and source\nproperties. If `customizer` returns `undefined`, merging is handled by the\nmethod instead. The `customizer` is invoked with six arguments:\n(objValue, srcValue, key, object, source, stack).\n\n**Note:** This method mutates `object`."},"lodash-omit-09ffc34":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash omit"],"body":["_.omit(${object}, ${paths})"],"description":"var object = { 'a': 1, 'b': '2', 'c': 3 };\n\n_.omit(object, ['a', 'c']);\n// => { 'b': '2' }\n\nThe opposite of `_.pick`; this method creates an object composed of the\nown and inherited enumerable property paths of `object` that are not omitted.\n\n**Note:** This method is considerably slower than `_.pick`."},"lodash-omitby-e510188":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash omitby"],"body":["_.omitBy(${object}, ${predicate})"],"description":"var object = { 'a': 1, 'b': '2', 'c': 3 };\n\n_.omitBy(object, _.isNumber);\n// => { 'b': '2' }\n\nThe opposite of `_.pickBy`; this method creates an object composed of\nthe own and inherited enumerable string keyed properties of `object` that\n`predicate` doesn't return truthy for. The predicate is invoked with two\narguments: (value, key)."},"lodash-pick-ead2d45":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash pick"],"body":["_.pick(${object}, ${paths})"],"description":"var object = { 'a': 1, 'b': '2', 'c': 3 };\n\n_.pick(object, ['a', 'c']);\n// => { 'a': 1, 'c': 3 }\n\nCreates an object composed of the picked `object` properties."},"lodash-pickby-989dcb8":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash pickby"],"body":["_.pickBy(${object}, ${predicate})"],"description":"var object = { 'a': 1, 'b': '2', 'c': 3 };\n\n_.pickBy(object, _.isNumber);\n// => { 'a': 1, 'c': 3 }\n\nCreates an object composed of the `object` properties `predicate` returns\ntruthy for. The predicate is invoked with two arguments: (value, key)."},"lodash-result-3f49c34":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash result"],"body":["_.result(${object}, ${path}, ${defaultValue})"],"description":"var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] };\n\n_.result(object, 'a[0].b.c1');\n// => 3\n\n_.result(object, 'a[0].b.c2');\n// => 4\n\n_.result(object, 'a[0].b.c3', 'default');\n// => 'default'\n\n_.result(object, 'a[0].b.c3', _.constant('default'));\n// => 'default'\n\nThis method is like `_.get` except that if the resolved value is a\nfunction it's invoked with the `this` binding of its parent object and\nits result is returned."},"lodash-set-9d6e100":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash set"],"body":["_.set(${object}, ${path}, ${value})"],"description":"var object = { 'a': [{ 'b': { 'c': 3 } }] };\n\n_.set(object, 'a[0].b.c', 4);\nconsole.log(object.a[0].b.c);\n// => 4\n\n_.set(object, ['x', '0', 'y', 'z'], 5);\nconsole.log(object.x[0].y.z);\n// => 5\n\nSets the value at `path` of `object`. If a portion of `path` doesn't exist,\nit's created. Arrays are created for missing index properties while objects\nare created for all other missing properties. Use `_.setWith` to customize\n`path` creation.\n\n**Note:** This method mutates `object`."},"lodash-setwith-669b522":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash setwith"],"body":["_.setWith(${object}, ${path}, ${value}, ${customizer})"],"description":"var object = {};\n\n_.setWith(object, '[0][1]', 'a', Object);\n// => { '0': { '1': 'a' } }\n\nThis method is like `_.set` except that it accepts `customizer` which is\ninvoked to produce the objects of `path`. If `customizer` returns `undefined`\npath creation is handled by the method instead. The `customizer` is invoked\nwith three arguments: (nsValue, key, nsObject).\n\n**Note:** This method mutates `object`."},"lodash-entries-35bf3be":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash entries"],"body":["_.entries(${object})"],"description":"function Foo() {\n this.a = 1;\n this.b = 2;\n}\n\nFoo.prototype.c = 3;\n\n_.toPairs(new Foo);\n// => [['a', 1], ['b', 2]] (iteration order is not guaranteed)\n\nCreates an array of own enumerable string keyed-value pairs for `object`\nwhich can be consumed by `_.fromPairs`. If `object` is a map or set, its\nentries are returned."},"lodash-entriesin-1f3446c":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash entriesin"],"body":["_.entriesIn(${object})"],"description":"function Foo() {\n this.a = 1;\n this.b = 2;\n}\n\nFoo.prototype.c = 3;\n\n_.toPairsIn(new Foo);\n// => [['a', 1], ['b', 2], ['c', 3]] (iteration order is not guaranteed)\n\nCreates an array of own and inherited enumerable string keyed-value pairs\nfor `object` which can be consumed by `_.fromPairs`. If `object` is a map\nor set, its entries are returned."},"lodash-transform-69001e9":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash transform"],"body":["_.transform(${object}, ${iteratee}, ${accumulator})"],"description":"_.transform([2, 3, 4], function(result, n) {\n result.push(n *= n);\n return n % 2 == 0;\n}, []);\n// => [4, 9]\n\n_.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n (result[value] || (result[value] = [])).push(key);\n}, {});\n// => { '1': ['a', 'c'], '2': ['b'] }\n\nAn alternative to `_.reduce`; this method transforms `object` to a new\n`accumulator` object which is the result of running each of its own\nenumerable string keyed properties thru `iteratee`, with each invocation\npotentially mutating the `accumulator` object. If `accumulator` is not\nprovided, a new object with the same `[[Prototype]]` will be used. The\niteratee is invoked with four arguments: (accumulator, value, key, object).\nIteratee functions may exit iteration early by explicitly returning `false`."},"lodash-unset-1a4beb5":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash unset"],"body":["_.unset(${object}, ${path})"],"description":"var object = { 'a': [{ 'b': { 'c': 7 } }] };\n_.unset(object, 'a[0].b.c');\n// => true\n\nconsole.log(object);\n// => { 'a': [{ 'b': {} }] };\n\n_.unset(object, ['a', '0', 'b', 'c']);\n// => true\n\nconsole.log(object);\n// => { 'a': [{ 'b': {} }] };\n\nRemoves the property at `path` of `object`.\n\n**Note:** This method mutates `object`."},"lodash-update-7b6de4a":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash update"],"body":["_.update(${object}, ${path}, ${updater})"],"description":"var object = { 'a': [{ 'b': { 'c': 3 } }] };\n\n_.update(object, 'a[0].b.c', function(n) { return n * n; });\nconsole.log(object.a[0].b.c);\n// => 9\n\n_.update(object, 'x[0].y.z', function(n) { return n ? n + 1 : 0; });\nconsole.log(object.x[0].y.z);\n// => 0\n\nThis method is like `_.set` except that accepts `updater` to produce the\nvalue to set. Use `_.updateWith` to customize `path` creation. The `updater`\nis invoked with one argument: (value).\n\n**Note:** This method mutates `object`."},"lodash-updatewith-a2078f2":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash updatewith"],"body":["_.updateWith(${object}, ${path}, ${updater}, ${customizer})"],"description":"var object = {};\n\n_.updateWith(object, '[0][1]', _.constant('a'), Object);\n// => { '0': { '1': 'a' } }\n\nThis method is like `_.update` except that it accepts `customizer` which is\ninvoked to produce the objects of `path`. If `customizer` returns `undefined`\npath creation is handled by the method instead. The `customizer` is invoked\nwith three arguments: (nsValue, key, nsObject).\n\n**Note:** This method mutates `object`."},"lodash-values-04293a4":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash values"],"body":["_.values(${object})"],"description":"function Foo() {\n this.a = 1;\n this.b = 2;\n}\n\nFoo.prototype.c = 3;\n\n_.values(new Foo);\n// => [1, 2] (iteration order is not guaranteed)\n\n_.values('hi');\n// => ['h', 'i']\n\nCreates an array of the own enumerable string keyed property values of `object`.\n\n**Note:** Non-object values are coerced to objects."},"lodash-valuesin-aabb462":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash valuesin"],"body":["_.valuesIn(${object})"],"description":"function Foo() {\n this.a = 1;\n this.b = 2;\n}\n\nFoo.prototype.c = 3;\n\n_.valuesIn(new Foo);\n// => [1, 2, 3] (iteration order is not guaranteed)\n\nCreates an array of the own and inherited enumerable string keyed property\nvalues of `object`.\n\n**Note:** Non-object values are coerced to objects."},"lodash-clamp-eca5d5c":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash clamp"],"body":["_.clamp(${number}, ${lower}, ${upper})"],"description":"_.clamp(-10, -5, 5);\n// => -5\n\n_.clamp(10, -5, 5);\n// => 5\n\nClamps `number` within the inclusive `lower` and `upper` bounds."},"lodash-inrange-c163a53":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash inrange"],"body":["_.inRange(${number}, ${start}, ${end})"],"description":"_.inRange(3, 2, 4);\n// => true\n\n_.inRange(4, 8);\n// => true\n\n_.inRange(4, 2);\n// => false\n\n_.inRange(2, 2);\n// => false\n\n_.inRange(1.2, 2);\n// => true\n\n_.inRange(5.2, 4);\n// => false\n\n_.inRange(-3, -2, -6);\n// => true\n\nChecks if `n` is between `start` and up to, but not including, `end`. If\n`end` is not specified, it's set to `start` with `start` then set to `0`.\nIf `start` is greater than `end` the params are swapped to support\nnegative ranges."},"lodash-random-b9dd61d":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash random"],"body":["_.random(${lower}, ${upper}, ${floating})"],"description":"_.random(0, 5);\n// => an integer between 0 and 5\n\n_.random(5);\n// => also an integer between 0 and 5\n\n_.random(5, true);\n// => a floating-point number between 0 and 5\n\n_.random(1.2, 5.2);\n// => a floating-point number between 1.2 and 5.2\n\nProduces a random number between the inclusive `lower` and `upper` bounds.\nIf only one argument is provided a number between `0` and the given number\nis returned. If `floating` is `true`, or either `lower` or `upper` are\nfloats, a floating-point number is returned instead of an integer.\n\n**Note:** JavaScript follows the IEEE-754 standard for resolving\nfloating-point values which can produce unexpected results."},"lodash-camelcase-8d811d5":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash camelcase"],"body":["_.camelCase(${string})"],"description":"_.camelCase('Foo Bar');\n// => 'fooBar'\n\n_.camelCase('--foo-bar--');\n// => 'fooBar'\n\n_.camelCase('__FOO_BAR__');\n// => 'fooBar'\n\nConverts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase)."},"lodash-capitalize-5b35cb8":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash capitalize"],"body":["_.capitalize(${string})"],"description":"_.capitalize('FRED');\n// => 'Fred'\n\nConverts the first character of `string` to upper case and the remaining\nto lower case."},"lodash-deburr-912da0e":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash deburr"],"body":["_.deburr(${string})"],"description":"_.deburr('déjà vu');\n// => 'deja vu'\n\nDeburrs `string` by converting\n[Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\nand [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\nletters to basic Latin letters and removing\n[combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks)."},"lodash-endswith-d3d3ee0":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash endswith"],"body":["_.endsWith(${string}, ${target}, ${position})"],"description":"_.endsWith('abc', 'c');\n// => true\n\n_.endsWith('abc', 'b');\n// => false\n\n_.endsWith('abc', 'b', 2);\n// => true\n\nChecks if `string` ends with the given target string."},"lodash-escape-cc5c5c3":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash escape"],"body":["_.escape(${string})"],"description":"_.escape('fred, barney, & pebbles');\n// => 'fred, barney, & pebbles'\n\nConverts the characters \"&\", \"<\", \">\", '\"', and \"'\" in `string` to their\ncorresponding HTML entities.\n\n**Note:** No other characters are escaped. To escape additional\ncharacters use a third-party library like [_he_](https://mths.be/he).\n\nThough the \">\" character is escaped for symmetry, characters like\n\">\" and \"/\" don't need escaping in HTML and have no special meaning\nunless they're part of a tag or unquoted attribute value. See\n[Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands)\n(under \"semi-related fun fact\") for more details.\n\nWhen working with HTML you should always\n[quote attribute values](http://wonko.com/post/html-escaping) to reduce\nXSS vectors."},"lodash-escaperegexp-c2ce775":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash escaperegexp"],"body":["_.escapeRegExp(${string})"],"description":"_.escapeRegExp('[lodash](https://lodash.com/)');\n// => '\\[lodash\\]\\(https://lodash\\.com/\\)'\n\nEscapes the `RegExp` special characters \"^\", \"$\", \"\\\", \".\", \"*\", \"+\",\n\"?\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", and \"|\" in `string`."},"lodash-kebabcase-2ed7ea8":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash kebabcase"],"body":["_.kebabCase(${string})"],"description":"_.kebabCase('Foo Bar');\n// => 'foo-bar'\n\n_.kebabCase('fooBar');\n// => 'foo-bar'\n\n_.kebabCase('__FOO_BAR__');\n// => 'foo-bar'\n\nConverts `string` to\n[kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles)."},"lodash-lowercase-de1ba86":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash lowercase"],"body":["_.lowerCase(${string})"],"description":"_.lowerCase('--Foo-Bar--');\n// => 'foo bar'\n\n_.lowerCase('fooBar');\n// => 'foo bar'\n\n_.lowerCase('__FOO_BAR__');\n// => 'foo bar'\n\nConverts `string`, as space separated words, to lower case."},"lodash-lowerfirst-68f58ef":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash lowerfirst"],"body":["_.lowerFirst(${string})"],"description":"_.lowerFirst('Fred');\n// => 'fred'\n\n_.lowerFirst('FRED');\n// => 'fRED'\n\nConverts the first character of `string` to lower case."},"lodash-pad-bf38c87":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash pad"],"body":["_.pad(${string}, ${length}, ${chars})"],"description":"_.pad('abc', 8);\n// => ' abc '\n\n_.pad('abc', 8, '_-');\n// => '_-abc_-_'\n\n_.pad('abc', 3);\n// => 'abc'\n\nPads `string` on the left and right sides if it's shorter than `length`.\nPadding characters are truncated if they can't be evenly divided by `length`."},"lodash-padend-0cc5443":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash padend"],"body":["_.padEnd(${string}, ${length}, ${chars})"],"description":"_.padEnd('abc', 6);\n// => 'abc '\n\n_.padEnd('abc', 6, '_-');\n// => 'abc_-_'\n\n_.padEnd('abc', 3);\n// => 'abc'\n\nPads `string` on the right side if it's shorter than `length`. Padding\ncharacters are truncated if they exceed `length`."},"lodash-padstart-fa5731c":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash padstart"],"body":["_.padStart(${string}, ${length}, ${chars})"],"description":"_.padStart('abc', 6);\n// => ' abc'\n\n_.padStart('abc', 6, '_-');\n// => '_-_abc'\n\n_.padStart('abc', 3);\n// => 'abc'\n\nPads `string` on the left side if it's shorter than `length`. Padding\ncharacters are truncated if they exceed `length`."},"lodash-parseint-a393e5d":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash parseint"],"body":["_.parseInt(${string}, ${radix})"],"description":"_.parseInt('08');\n// => 8\n\n_.map(['6', '08', '10'], _.parseInt);\n// => [6, 8, 10]\n\nConverts `string` to an integer of the specified radix. If `radix` is\n`undefined` or `0`, a `radix` of `10` is used unless `value` is a\nhexadecimal, in which case a `radix` of `16` is used.\n\n**Note:** This method aligns with the\n[ES5 implementation](https://es5.github.io/#x15.1.2.2) of `parseInt`."},"lodash-repeat-d30d137":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash repeat"],"body":["_.repeat(${string}, ${n})"],"description":"_.repeat('*', 3);\n// => '***'\n\n_.repeat('abc', 2);\n// => 'abcabc'\n\n_.repeat('abc', 0);\n// => ''\n\nRepeats the given string `n` times."},"lodash-replace-2493893":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash replace"],"body":["_.replace(${string}, ${pattern}, ${replacement})"],"description":"_.replace('Hi Fred', 'Fred', 'Barney');\n// => 'Hi Barney'\n\nReplaces matches for `pattern` in `string` with `replacement`.\n\n**Note:** This method is based on\n[`String#replace`](https://mdn.io/String/replace)."},"lodash-snakecase-e2bc35f":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash snakecase"],"body":["_.snakeCase(${string})"],"description":"_.snakeCase('Foo Bar');\n// => 'foo_bar'\n\n_.snakeCase('fooBar');\n// => 'foo_bar'\n\n_.snakeCase('--FOO-BAR--');\n// => 'foo_bar'\n\nConverts `string` to\n[snake case](https://en.wikipedia.org/wiki/Snake_case)."},"lodash-split-0e73a1e":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash split"],"body":["_.split(${string}, ${separator}, ${limit})"],"description":"_.split('a-b-c', '-', 2);\n// => ['a', 'b']\n\nSplits `string` by `separator`.\n\n**Note:** This method is based on\n[`String#split`](https://mdn.io/String/split)."},"lodash-startcase-2b1ea21":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash startcase"],"body":["_.startCase(${string})"],"description":"_.startCase('--foo-bar--');\n// => 'Foo Bar'\n\n_.startCase('fooBar');\n// => 'Foo Bar'\n\n_.startCase('__FOO_BAR__');\n// => 'FOO BAR'\n\nConverts `string` to\n[start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage)."},"lodash-startswith-8924d3c":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash startswith"],"body":["_.startsWith(${string}, ${target}, ${position})"],"description":"_.startsWith('abc', 'a');\n// => true\n\n_.startsWith('abc', 'b');\n// => false\n\n_.startsWith('abc', 'b', 1);\n// => true\n\nChecks if `string` starts with the given target string."},"lodash-template-1ba237d":{"scope":"javascript,javascriptreact,typescript,typescriptreact","prefix":["lodash template"],"body":["_.template(${string}, ${options}, ${options.escape}, ${options.evaluate}, ${options.imports}, ${options.interpolate}, ${options.sourceURL}, ${options.variable})"],"description":"// Use the \"interpolate\" delimiter to create a compiled template.\nvar compiled = _.template('hello <%= user %>!');\ncompiled({ 'user': 'fred' });\n// => 'hello fred!'\n\n// Use the HTML \"escape\" delimiter to escape data property values.\nvar compiled = _.template('<%- value %>');\ncompiled({ 'value': '