@revolist/revogrid 4.9.21 → 4.9.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{column.drag.plugin-9841e68f.js → column.drag.plugin-eb1db875.js} +48 -53
- package/dist/cjs/column.drag.plugin-eb1db875.js.map +1 -0
- package/dist/cjs/{column.service-2471e4f3.js → column.service-6089b047.js} +9 -19
- package/dist/cjs/column.service-6089b047.js.map +1 -0
- package/dist/{esm/debounce-e8e9464a.js → cjs/debounce-ec7a04b4.js} +36 -78
- package/dist/cjs/debounce-ec7a04b4.js.map +1 -0
- package/dist/cjs/{edit.utils-eef92df0.js → edit.utils-093fe9cd.js} +2 -2
- package/dist/cjs/{edit.utils-eef92df0.js.map → edit.utils-093fe9cd.js.map} +1 -1
- package/dist/cjs/{header-cell-renderer-751067c0.js → header-cell-renderer-2d56e8f5.js} +2 -2
- package/dist/cjs/{header-cell-renderer-751067c0.js.map → header-cell-renderer-2d56e8f5.js.map} +1 -1
- package/dist/cjs/{index-8bceed03.js → index-a9ee8eef.js} +289 -853
- package/dist/cjs/index-a9ee8eef.js.map +1 -0
- package/dist/cjs/index.cjs.js +8 -8
- package/dist/cjs/{key.utils-f548f37c.js → key.utils-1438f2ac.js} +2 -2
- package/dist/cjs/{key.utils-f548f37c.js.map → key.utils-1438f2ac.js.map} +1 -1
- package/dist/cjs/revo-grid.cjs.entry.js +41 -72
- package/dist/cjs/revo-grid.cjs.entry.js.map +1 -1
- package/dist/cjs/revogr-attribution_6.cjs.entry.js +9 -9
- package/dist/cjs/revogr-attribution_6.cjs.entry.js.map +1 -1
- package/dist/cjs/revogr-clipboard_3.cjs.entry.js +6 -6
- package/dist/cjs/revogr-clipboard_3.cjs.entry.js.map +1 -1
- package/dist/cjs/revogr-data_4.cjs.entry.js +21 -44
- package/dist/cjs/revogr-data_4.cjs.entry.js.map +1 -1
- package/dist/cjs/revogr-filter-panel.cjs.entry.js +2 -2
- package/dist/cjs/revogr-filter-panel.cjs.entry.js.map +1 -1
- package/dist/cjs/{row-header-utils-5d0d3fab.js → row-header-utils-eb5949b3.js} +7 -9
- package/dist/cjs/row-header-utils-eb5949b3.js.map +1 -0
- package/dist/cjs/{text-editor-f066d388.js → text-editor-ea3badef.js} +3 -3
- package/dist/cjs/{text-editor-f066d388.js.map → text-editor-ea3badef.js.map} +1 -1
- package/dist/cjs/{throttle-216690f1.js → throttle-6fecba1e.js} +6 -11
- package/dist/cjs/throttle-6fecba1e.js.map +1 -0
- package/dist/collection/components/revoGrid/revo-grid.js +9 -13
- package/dist/collection/components/revoGrid/revo-grid.js.map +1 -1
- package/dist/collection/services/dimension.provider.js +4 -3
- package/dist/collection/services/dimension.provider.js.map +1 -1
- package/dist/collection/store/dimension/dimension.store.js +19 -6
- package/dist/collection/store/dimension/dimension.store.js.map +1 -1
- package/dist/collection/store/vp/viewport.store.js +5 -7
- package/dist/collection/store/vp/viewport.store.js.map +1 -1
- package/dist/esm/{column.drag.plugin-c9787a50.js → column.drag.plugin-cb25a5e1.js} +45 -50
- package/dist/esm/column.drag.plugin-cb25a5e1.js.map +1 -0
- package/dist/esm/{column.service-a6682d9d.js → column.service-407956dd.js} +6 -16
- package/dist/esm/column.service-407956dd.js.map +1 -0
- package/dist/{cjs/debounce-cb5f4e35.js → esm/debounce-7b511afc.js} +26 -88
- package/dist/esm/debounce-7b511afc.js.map +1 -0
- package/dist/esm/{edit.utils-c358c970.js → edit.utils-1eeabeab.js} +2 -2
- package/dist/esm/{edit.utils-c358c970.js.map → edit.utils-1eeabeab.js.map} +1 -1
- package/dist/esm/{header-cell-renderer-52d9d6ba.js → header-cell-renderer-da468bd2.js} +2 -2
- package/dist/esm/{header-cell-renderer-52d9d6ba.js.map → header-cell-renderer-da468bd2.js.map} +1 -1
- package/dist/esm/{index-6c437a0d.js → index-b6586f9b.js} +269 -833
- package/dist/esm/index-b6586f9b.js.map +1 -0
- package/dist/esm/index.js +8 -8
- package/dist/esm/{key.utils-5a827d12.js → key.utils-562c749e.js} +2 -2
- package/dist/esm/{key.utils-5a827d12.js.map → key.utils-562c749e.js.map} +1 -1
- package/dist/esm/revo-grid.entry.js +37 -68
- package/dist/esm/revo-grid.entry.js.map +1 -1
- package/dist/esm/revogr-attribution_6.entry.js +9 -9
- package/dist/esm/revogr-attribution_6.entry.js.map +1 -1
- package/dist/esm/revogr-clipboard_3.entry.js +6 -6
- package/dist/esm/revogr-clipboard_3.entry.js.map +1 -1
- package/dist/esm/revogr-data_4.entry.js +17 -40
- package/dist/esm/revogr-data_4.entry.js.map +1 -1
- package/dist/esm/revogr-filter-panel.entry.js +2 -2
- package/dist/esm/revogr-filter-panel.entry.js.map +1 -1
- package/dist/esm/{row-header-utils-f5b04d1a.js → row-header-utils-e043f744.js} +7 -9
- package/dist/esm/row-header-utils-e043f744.js.map +1 -0
- package/dist/esm/{text-editor-79a617b5.js → text-editor-654f5d53.js} +3 -3
- package/dist/esm/{text-editor-79a617b5.js.map → text-editor-654f5d53.js.map} +1 -1
- package/dist/esm/{throttle-b94844de.js → throttle-bb3169c7.js} +4 -9
- package/dist/esm/throttle-bb3169c7.js.map +1 -0
- package/dist/revo-grid/column.drag.plugin-cb25a5e1.js +5 -0
- package/dist/revo-grid/column.drag.plugin-cb25a5e1.js.map +1 -0
- package/dist/revo-grid/column.service-407956dd.js +5 -0
- package/dist/revo-grid/column.service-407956dd.js.map +1 -0
- package/dist/revo-grid/debounce-7b511afc.js +5 -0
- package/dist/revo-grid/debounce-7b511afc.js.map +1 -0
- package/dist/revo-grid/{edit.utils-c358c970.js → edit.utils-1eeabeab.js} +2 -2
- package/dist/revo-grid/{header-cell-renderer-52d9d6ba.js → header-cell-renderer-da468bd2.js} +2 -2
- package/dist/revo-grid/index-b6586f9b.js +5 -0
- package/dist/revo-grid/index-b6586f9b.js.map +1 -0
- package/dist/revo-grid/index.esm.js +1 -1
- package/dist/revo-grid/{key.utils-5a827d12.js → key.utils-562c749e.js} +2 -2
- package/dist/revo-grid/revo-grid.entry.js +1 -1
- package/dist/revo-grid/revo-grid.entry.js.map +1 -1
- package/dist/revo-grid/revogr-attribution_6.entry.js +1 -1
- package/dist/revo-grid/revogr-clipboard_3.entry.js +1 -1
- package/dist/revo-grid/revogr-data_4.entry.js +1 -1
- package/dist/revo-grid/revogr-data_4.entry.js.map +1 -1
- package/dist/revo-grid/revogr-filter-panel.entry.js +1 -1
- package/dist/revo-grid/row-header-utils-e043f744.js +5 -0
- package/dist/revo-grid/row-header-utils-e043f744.js.map +1 -0
- package/dist/revo-grid/{text-editor-79a617b5.js → text-editor-654f5d53.js} +2 -2
- package/dist/revo-grid/throttle-bb3169c7.js +5 -0
- package/dist/revo-grid/throttle-bb3169c7.js.map +1 -0
- package/dist/types/store/dimension/dimension.store.d.ts +2 -1
- package/dist/types/store/vp/viewport.store.d.ts +0 -1
- package/hydrate/index.js +412 -1103
- package/hydrate/index.mjs +412 -1103
- package/package.json +3 -3
- package/standalone/column.service.js +5 -16
- package/standalone/column.service.js.map +1 -1
- package/standalone/debounce.js +7 -16
- package/standalone/debounce.js.map +1 -1
- package/standalone/dimension.helpers.js +15 -45
- package/standalone/dimension.helpers.js.map +1 -1
- package/standalone/index.js +0 -2
- package/standalone/index.js.map +1 -1
- package/standalone/index2.js +0 -2
- package/standalone/index2.js.map +1 -1
- package/standalone/reduce.js +1319 -474
- package/standalone/reduce.js.map +1 -1
- package/standalone/revo-grid.js +74 -111
- package/standalone/revo-grid.js.map +1 -1
- package/standalone/revogr-data2.js +0 -2
- package/standalone/revogr-data2.js.map +1 -1
- package/standalone/revogr-filter-panel.js +2 -2
- package/standalone/revogr-filter-panel.js.map +1 -1
- package/standalone/revogr-focus2.js +0 -2
- package/standalone/revogr-focus2.js.map +1 -1
- package/standalone/revogr-header2.js +12 -37
- package/standalone/revogr-header2.js.map +1 -1
- package/standalone/revogr-order-editor2.js +2 -4
- package/standalone/revogr-order-editor2.js.map +1 -1
- package/standalone/revogr-overlay-selection2.js +2 -4
- package/standalone/revogr-overlay-selection2.js.map +1 -1
- package/standalone/revogr-row-headers2.js +5 -9
- package/standalone/revogr-row-headers2.js.map +1 -1
- package/standalone/revogr-temp-range2.js +2 -2
- package/standalone/revogr-temp-range2.js.map +1 -1
- package/standalone/revogr-viewport-scroll2.js +2 -2
- package/standalone/revogr-viewport-scroll2.js.map +1 -1
- package/standalone/selection.utils.js +0 -2
- package/standalone/selection.utils.js.map +1 -1
- package/standalone/throttle.js +3 -8
- package/standalone/throttle.js.map +1 -1
- package/standalone/toNumber.js +165 -22
- package/standalone/toNumber.js.map +1 -1
- package/dist/cjs/column.drag.plugin-9841e68f.js.map +0 -1
- package/dist/cjs/column.service-2471e4f3.js.map +0 -1
- package/dist/cjs/debounce-cb5f4e35.js.map +0 -1
- package/dist/cjs/index-8bceed03.js.map +0 -1
- package/dist/cjs/row-header-utils-5d0d3fab.js.map +0 -1
- package/dist/cjs/throttle-216690f1.js.map +0 -1
- package/dist/esm/column.drag.plugin-c9787a50.js.map +0 -1
- package/dist/esm/column.service-a6682d9d.js.map +0 -1
- package/dist/esm/debounce-e8e9464a.js.map +0 -1
- package/dist/esm/index-6c437a0d.js.map +0 -1
- package/dist/esm/row-header-utils-f5b04d1a.js.map +0 -1
- package/dist/esm/throttle-b94844de.js.map +0 -1
- package/dist/revo-grid/column.drag.plugin-c9787a50.js +0 -5
- package/dist/revo-grid/column.drag.plugin-c9787a50.js.map +0 -1
- package/dist/revo-grid/column.service-a6682d9d.js +0 -5
- package/dist/revo-grid/column.service-a6682d9d.js.map +0 -1
- package/dist/revo-grid/debounce-e8e9464a.js +0 -5
- package/dist/revo-grid/debounce-e8e9464a.js.map +0 -1
- package/dist/revo-grid/index-6c437a0d.js +0 -5
- package/dist/revo-grid/index-6c437a0d.js.map +0 -1
- package/dist/revo-grid/row-header-utils-f5b04d1a.js +0 -5
- package/dist/revo-grid/row-header-utils-f5b04d1a.js.map +0 -1
- package/dist/revo-grid/throttle-b94844de.js +0 -5
- package/dist/revo-grid/throttle-b94844de.js.map +0 -1
- package/standalone/_stringToPath.js +0 -1389
- package/standalone/_stringToPath.js.map +0 -1
- package/standalone/isObjectLike.js +0 -195
- package/standalone/isObjectLike.js.map +0 -1
- /package/dist/revo-grid/{edit.utils-c358c970.js.map → edit.utils-1eeabeab.js.map} +0 -0
- /package/dist/revo-grid/{header-cell-renderer-52d9d6ba.js.map → header-cell-renderer-da468bd2.js.map} +0 -0
- /package/dist/revo-grid/{key.utils-5a827d12.js.map → key.utils-562c749e.js.map} +0 -0
- /package/dist/revo-grid/{text-editor-79a617b5.js.map → text-editor-654f5d53.js.map} +0 -0
package/standalone/reduce.js
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Built by Revolist OU ❤️
|
|
3
3
|
*/
|
|
4
|
-
import { i as
|
|
5
|
-
import { b as _SetCache, e as eq_1, c as _baseIsTypedArray, d as _nodeUtil, i as isArguments_1, f as isBuffer$2, g as isFunction_1, h as isLength_1, j as _Stack, _ as _getTag, k as _stringToPath } from './_stringToPath.js';
|
|
6
|
-
import { b as _root, d as _Symbol, i as isObjectLike_1, a as isObject_1 } from './isObjectLike.js';
|
|
4
|
+
import { a as isObject, b as baseGetTag, r as root, S as Symbol, i as isObjectLike, f as freeGlobal, c as isSymbol, t as toNumber } from './toNumber.js';
|
|
7
5
|
import { getRenderingRef, forceUpdate } from '@stencil/core/internal/client';
|
|
8
6
|
|
|
9
7
|
/**
|
|
@@ -52,8 +50,7 @@ function isProxy(k) {
|
|
|
52
50
|
* @param {boolean} [fromRight] Specify iterating from right to left.
|
|
53
51
|
* @returns {number} Returns the index of the matched value, else `-1`.
|
|
54
52
|
*/
|
|
55
|
-
|
|
56
|
-
function baseFindIndex$1(array, predicate, fromIndex, fromRight) {
|
|
53
|
+
function baseFindIndex(array, predicate, fromIndex, fromRight) {
|
|
57
54
|
var length = array.length,
|
|
58
55
|
index = fromIndex + (fromRight ? 1 : -1);
|
|
59
56
|
|
|
@@ -65,7 +62,742 @@ function baseFindIndex$1(array, predicate, fromIndex, fromRight) {
|
|
|
65
62
|
return -1;
|
|
66
63
|
}
|
|
67
64
|
|
|
68
|
-
|
|
65
|
+
/**
|
|
66
|
+
* Removes all key-value entries from the list cache.
|
|
67
|
+
*
|
|
68
|
+
* @private
|
|
69
|
+
* @name clear
|
|
70
|
+
* @memberOf ListCache
|
|
71
|
+
*/
|
|
72
|
+
function listCacheClear() {
|
|
73
|
+
this.__data__ = [];
|
|
74
|
+
this.size = 0;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Performs a
|
|
79
|
+
* [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
|
|
80
|
+
* comparison between two values to determine if they are equivalent.
|
|
81
|
+
*
|
|
82
|
+
* @static
|
|
83
|
+
* @memberOf _
|
|
84
|
+
* @since 4.0.0
|
|
85
|
+
* @category Lang
|
|
86
|
+
* @param {*} value The value to compare.
|
|
87
|
+
* @param {*} other The other value to compare.
|
|
88
|
+
* @returns {boolean} Returns `true` if the values are equivalent, else `false`.
|
|
89
|
+
* @example
|
|
90
|
+
*
|
|
91
|
+
* var object = { 'a': 1 };
|
|
92
|
+
* var other = { 'a': 1 };
|
|
93
|
+
*
|
|
94
|
+
* _.eq(object, object);
|
|
95
|
+
* // => true
|
|
96
|
+
*
|
|
97
|
+
* _.eq(object, other);
|
|
98
|
+
* // => false
|
|
99
|
+
*
|
|
100
|
+
* _.eq('a', 'a');
|
|
101
|
+
* // => true
|
|
102
|
+
*
|
|
103
|
+
* _.eq('a', Object('a'));
|
|
104
|
+
* // => false
|
|
105
|
+
*
|
|
106
|
+
* _.eq(NaN, NaN);
|
|
107
|
+
* // => true
|
|
108
|
+
*/
|
|
109
|
+
function eq(value, other) {
|
|
110
|
+
return value === other || (value !== value && other !== other);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Gets the index at which the `key` is found in `array` of key-value pairs.
|
|
115
|
+
*
|
|
116
|
+
* @private
|
|
117
|
+
* @param {Array} array The array to inspect.
|
|
118
|
+
* @param {*} key The key to search for.
|
|
119
|
+
* @returns {number} Returns the index of the matched value, else `-1`.
|
|
120
|
+
*/
|
|
121
|
+
function assocIndexOf(array, key) {
|
|
122
|
+
var length = array.length;
|
|
123
|
+
while (length--) {
|
|
124
|
+
if (eq(array[length][0], key)) {
|
|
125
|
+
return length;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
return -1;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/** Used for built-in method references. */
|
|
132
|
+
var arrayProto = Array.prototype;
|
|
133
|
+
|
|
134
|
+
/** Built-in value references. */
|
|
135
|
+
var splice = arrayProto.splice;
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* Removes `key` and its value from the list cache.
|
|
139
|
+
*
|
|
140
|
+
* @private
|
|
141
|
+
* @name delete
|
|
142
|
+
* @memberOf ListCache
|
|
143
|
+
* @param {string} key The key of the value to remove.
|
|
144
|
+
* @returns {boolean} Returns `true` if the entry was removed, else `false`.
|
|
145
|
+
*/
|
|
146
|
+
function listCacheDelete(key) {
|
|
147
|
+
var data = this.__data__,
|
|
148
|
+
index = assocIndexOf(data, key);
|
|
149
|
+
|
|
150
|
+
if (index < 0) {
|
|
151
|
+
return false;
|
|
152
|
+
}
|
|
153
|
+
var lastIndex = data.length - 1;
|
|
154
|
+
if (index == lastIndex) {
|
|
155
|
+
data.pop();
|
|
156
|
+
} else {
|
|
157
|
+
splice.call(data, index, 1);
|
|
158
|
+
}
|
|
159
|
+
--this.size;
|
|
160
|
+
return true;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* Gets the list cache value for `key`.
|
|
165
|
+
*
|
|
166
|
+
* @private
|
|
167
|
+
* @name get
|
|
168
|
+
* @memberOf ListCache
|
|
169
|
+
* @param {string} key The key of the value to get.
|
|
170
|
+
* @returns {*} Returns the entry value.
|
|
171
|
+
*/
|
|
172
|
+
function listCacheGet(key) {
|
|
173
|
+
var data = this.__data__,
|
|
174
|
+
index = assocIndexOf(data, key);
|
|
175
|
+
|
|
176
|
+
return index < 0 ? undefined : data[index][1];
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
/**
|
|
180
|
+
* Checks if a list cache value for `key` exists.
|
|
181
|
+
*
|
|
182
|
+
* @private
|
|
183
|
+
* @name has
|
|
184
|
+
* @memberOf ListCache
|
|
185
|
+
* @param {string} key The key of the entry to check.
|
|
186
|
+
* @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
|
|
187
|
+
*/
|
|
188
|
+
function listCacheHas(key) {
|
|
189
|
+
return assocIndexOf(this.__data__, key) > -1;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
/**
|
|
193
|
+
* Sets the list cache `key` to `value`.
|
|
194
|
+
*
|
|
195
|
+
* @private
|
|
196
|
+
* @name set
|
|
197
|
+
* @memberOf ListCache
|
|
198
|
+
* @param {string} key The key of the value to set.
|
|
199
|
+
* @param {*} value The value to set.
|
|
200
|
+
* @returns {Object} Returns the list cache instance.
|
|
201
|
+
*/
|
|
202
|
+
function listCacheSet(key, value) {
|
|
203
|
+
var data = this.__data__,
|
|
204
|
+
index = assocIndexOf(data, key);
|
|
205
|
+
|
|
206
|
+
if (index < 0) {
|
|
207
|
+
++this.size;
|
|
208
|
+
data.push([key, value]);
|
|
209
|
+
} else {
|
|
210
|
+
data[index][1] = value;
|
|
211
|
+
}
|
|
212
|
+
return this;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
/**
|
|
216
|
+
* Creates an list cache object.
|
|
217
|
+
*
|
|
218
|
+
* @private
|
|
219
|
+
* @constructor
|
|
220
|
+
* @param {Array} [entries] The key-value pairs to cache.
|
|
221
|
+
*/
|
|
222
|
+
function ListCache(entries) {
|
|
223
|
+
var index = -1,
|
|
224
|
+
length = entries == null ? 0 : entries.length;
|
|
225
|
+
|
|
226
|
+
this.clear();
|
|
227
|
+
while (++index < length) {
|
|
228
|
+
var entry = entries[index];
|
|
229
|
+
this.set(entry[0], entry[1]);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
// Add methods to `ListCache`.
|
|
234
|
+
ListCache.prototype.clear = listCacheClear;
|
|
235
|
+
ListCache.prototype['delete'] = listCacheDelete;
|
|
236
|
+
ListCache.prototype.get = listCacheGet;
|
|
237
|
+
ListCache.prototype.has = listCacheHas;
|
|
238
|
+
ListCache.prototype.set = listCacheSet;
|
|
239
|
+
|
|
240
|
+
/**
|
|
241
|
+
* Removes all key-value entries from the stack.
|
|
242
|
+
*
|
|
243
|
+
* @private
|
|
244
|
+
* @name clear
|
|
245
|
+
* @memberOf Stack
|
|
246
|
+
*/
|
|
247
|
+
function stackClear() {
|
|
248
|
+
this.__data__ = new ListCache;
|
|
249
|
+
this.size = 0;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
/**
|
|
253
|
+
* Removes `key` and its value from the stack.
|
|
254
|
+
*
|
|
255
|
+
* @private
|
|
256
|
+
* @name delete
|
|
257
|
+
* @memberOf Stack
|
|
258
|
+
* @param {string} key The key of the value to remove.
|
|
259
|
+
* @returns {boolean} Returns `true` if the entry was removed, else `false`.
|
|
260
|
+
*/
|
|
261
|
+
function stackDelete(key) {
|
|
262
|
+
var data = this.__data__,
|
|
263
|
+
result = data['delete'](key);
|
|
264
|
+
|
|
265
|
+
this.size = data.size;
|
|
266
|
+
return result;
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
/**
|
|
270
|
+
* Gets the stack value for `key`.
|
|
271
|
+
*
|
|
272
|
+
* @private
|
|
273
|
+
* @name get
|
|
274
|
+
* @memberOf Stack
|
|
275
|
+
* @param {string} key The key of the value to get.
|
|
276
|
+
* @returns {*} Returns the entry value.
|
|
277
|
+
*/
|
|
278
|
+
function stackGet(key) {
|
|
279
|
+
return this.__data__.get(key);
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
/**
|
|
283
|
+
* Checks if a stack value for `key` exists.
|
|
284
|
+
*
|
|
285
|
+
* @private
|
|
286
|
+
* @name has
|
|
287
|
+
* @memberOf Stack
|
|
288
|
+
* @param {string} key The key of the entry to check.
|
|
289
|
+
* @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
|
|
290
|
+
*/
|
|
291
|
+
function stackHas(key) {
|
|
292
|
+
return this.__data__.has(key);
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
/** `Object#toString` result references. */
|
|
296
|
+
var asyncTag = '[object AsyncFunction]',
|
|
297
|
+
funcTag$1 = '[object Function]',
|
|
298
|
+
genTag = '[object GeneratorFunction]',
|
|
299
|
+
proxyTag = '[object Proxy]';
|
|
300
|
+
|
|
301
|
+
/**
|
|
302
|
+
* Checks if `value` is classified as a `Function` object.
|
|
303
|
+
*
|
|
304
|
+
* @static
|
|
305
|
+
* @memberOf _
|
|
306
|
+
* @since 0.1.0
|
|
307
|
+
* @category Lang
|
|
308
|
+
* @param {*} value The value to check.
|
|
309
|
+
* @returns {boolean} Returns `true` if `value` is a function, else `false`.
|
|
310
|
+
* @example
|
|
311
|
+
*
|
|
312
|
+
* _.isFunction(_);
|
|
313
|
+
* // => true
|
|
314
|
+
*
|
|
315
|
+
* _.isFunction(/abc/);
|
|
316
|
+
* // => false
|
|
317
|
+
*/
|
|
318
|
+
function isFunction(value) {
|
|
319
|
+
if (!isObject(value)) {
|
|
320
|
+
return false;
|
|
321
|
+
}
|
|
322
|
+
// The use of `Object#toString` avoids issues with the `typeof` operator
|
|
323
|
+
// in Safari 9 which returns 'object' for typed arrays and other constructors.
|
|
324
|
+
var tag = baseGetTag(value);
|
|
325
|
+
return tag == funcTag$1 || tag == genTag || tag == asyncTag || tag == proxyTag;
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
/** Used to detect overreaching core-js shims. */
|
|
329
|
+
var coreJsData = root['__core-js_shared__'];
|
|
330
|
+
|
|
331
|
+
const coreJsData$1 = coreJsData;
|
|
332
|
+
|
|
333
|
+
/** Used to detect methods masquerading as native. */
|
|
334
|
+
var maskSrcKey = (function() {
|
|
335
|
+
var uid = /[^.]+$/.exec(coreJsData$1 && coreJsData$1.keys && coreJsData$1.keys.IE_PROTO || '');
|
|
336
|
+
return uid ? ('Symbol(src)_1.' + uid) : '';
|
|
337
|
+
}());
|
|
338
|
+
|
|
339
|
+
/**
|
|
340
|
+
* Checks if `func` has its source masked.
|
|
341
|
+
*
|
|
342
|
+
* @private
|
|
343
|
+
* @param {Function} func The function to check.
|
|
344
|
+
* @returns {boolean} Returns `true` if `func` is masked, else `false`.
|
|
345
|
+
*/
|
|
346
|
+
function isMasked(func) {
|
|
347
|
+
return !!maskSrcKey && (maskSrcKey in func);
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
/** Used for built-in method references. */
|
|
351
|
+
var funcProto$1 = Function.prototype;
|
|
352
|
+
|
|
353
|
+
/** Used to resolve the decompiled source of functions. */
|
|
354
|
+
var funcToString$1 = funcProto$1.toString;
|
|
355
|
+
|
|
356
|
+
/**
|
|
357
|
+
* Converts `func` to its source code.
|
|
358
|
+
*
|
|
359
|
+
* @private
|
|
360
|
+
* @param {Function} func The function to convert.
|
|
361
|
+
* @returns {string} Returns the source code.
|
|
362
|
+
*/
|
|
363
|
+
function toSource(func) {
|
|
364
|
+
if (func != null) {
|
|
365
|
+
try {
|
|
366
|
+
return funcToString$1.call(func);
|
|
367
|
+
} catch (e) {}
|
|
368
|
+
try {
|
|
369
|
+
return (func + '');
|
|
370
|
+
} catch (e) {}
|
|
371
|
+
}
|
|
372
|
+
return '';
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
/**
|
|
376
|
+
* Used to match `RegExp`
|
|
377
|
+
* [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).
|
|
378
|
+
*/
|
|
379
|
+
var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
|
|
380
|
+
|
|
381
|
+
/** Used to detect host constructors (Safari). */
|
|
382
|
+
var reIsHostCtor = /^\[object .+?Constructor\]$/;
|
|
383
|
+
|
|
384
|
+
/** Used for built-in method references. */
|
|
385
|
+
var funcProto = Function.prototype,
|
|
386
|
+
objectProto$9 = Object.prototype;
|
|
387
|
+
|
|
388
|
+
/** Used to resolve the decompiled source of functions. */
|
|
389
|
+
var funcToString = funcProto.toString;
|
|
390
|
+
|
|
391
|
+
/** Used to check objects for own properties. */
|
|
392
|
+
var hasOwnProperty$7 = objectProto$9.hasOwnProperty;
|
|
393
|
+
|
|
394
|
+
/** Used to detect if a method is native. */
|
|
395
|
+
var reIsNative = RegExp('^' +
|
|
396
|
+
funcToString.call(hasOwnProperty$7).replace(reRegExpChar, '\\$&')
|
|
397
|
+
.replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
|
|
398
|
+
);
|
|
399
|
+
|
|
400
|
+
/**
|
|
401
|
+
* The base implementation of `_.isNative` without bad shim checks.
|
|
402
|
+
*
|
|
403
|
+
* @private
|
|
404
|
+
* @param {*} value The value to check.
|
|
405
|
+
* @returns {boolean} Returns `true` if `value` is a native function,
|
|
406
|
+
* else `false`.
|
|
407
|
+
*/
|
|
408
|
+
function baseIsNative(value) {
|
|
409
|
+
if (!isObject(value) || isMasked(value)) {
|
|
410
|
+
return false;
|
|
411
|
+
}
|
|
412
|
+
var pattern = isFunction(value) ? reIsNative : reIsHostCtor;
|
|
413
|
+
return pattern.test(toSource(value));
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
/**
|
|
417
|
+
* Gets the value at `key` of `object`.
|
|
418
|
+
*
|
|
419
|
+
* @private
|
|
420
|
+
* @param {Object} [object] The object to query.
|
|
421
|
+
* @param {string} key The key of the property to get.
|
|
422
|
+
* @returns {*} Returns the property value.
|
|
423
|
+
*/
|
|
424
|
+
function getValue(object, key) {
|
|
425
|
+
return object == null ? undefined : object[key];
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
/**
|
|
429
|
+
* Gets the native function at `key` of `object`.
|
|
430
|
+
*
|
|
431
|
+
* @private
|
|
432
|
+
* @param {Object} object The object to query.
|
|
433
|
+
* @param {string} key The key of the method to get.
|
|
434
|
+
* @returns {*} Returns the function if it's native, else `undefined`.
|
|
435
|
+
*/
|
|
436
|
+
function getNative(object, key) {
|
|
437
|
+
var value = getValue(object, key);
|
|
438
|
+
return baseIsNative(value) ? value : undefined;
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
/* Built-in method references that are verified to be native. */
|
|
442
|
+
var Map$1 = getNative(root, 'Map');
|
|
443
|
+
|
|
444
|
+
const Map$2 = Map$1;
|
|
445
|
+
|
|
446
|
+
/* Built-in method references that are verified to be native. */
|
|
447
|
+
var nativeCreate = getNative(Object, 'create');
|
|
448
|
+
|
|
449
|
+
const nativeCreate$1 = nativeCreate;
|
|
450
|
+
|
|
451
|
+
/**
|
|
452
|
+
* Removes all key-value entries from the hash.
|
|
453
|
+
*
|
|
454
|
+
* @private
|
|
455
|
+
* @name clear
|
|
456
|
+
* @memberOf Hash
|
|
457
|
+
*/
|
|
458
|
+
function hashClear() {
|
|
459
|
+
this.__data__ = nativeCreate$1 ? nativeCreate$1(null) : {};
|
|
460
|
+
this.size = 0;
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
/**
|
|
464
|
+
* Removes `key` and its value from the hash.
|
|
465
|
+
*
|
|
466
|
+
* @private
|
|
467
|
+
* @name delete
|
|
468
|
+
* @memberOf Hash
|
|
469
|
+
* @param {Object} hash The hash to modify.
|
|
470
|
+
* @param {string} key The key of the value to remove.
|
|
471
|
+
* @returns {boolean} Returns `true` if the entry was removed, else `false`.
|
|
472
|
+
*/
|
|
473
|
+
function hashDelete(key) {
|
|
474
|
+
var result = this.has(key) && delete this.__data__[key];
|
|
475
|
+
this.size -= result ? 1 : 0;
|
|
476
|
+
return result;
|
|
477
|
+
}
|
|
478
|
+
|
|
479
|
+
/** Used to stand-in for `undefined` hash values. */
|
|
480
|
+
var HASH_UNDEFINED$2 = '__lodash_hash_undefined__';
|
|
481
|
+
|
|
482
|
+
/** Used for built-in method references. */
|
|
483
|
+
var objectProto$8 = Object.prototype;
|
|
484
|
+
|
|
485
|
+
/** Used to check objects for own properties. */
|
|
486
|
+
var hasOwnProperty$6 = objectProto$8.hasOwnProperty;
|
|
487
|
+
|
|
488
|
+
/**
|
|
489
|
+
* Gets the hash value for `key`.
|
|
490
|
+
*
|
|
491
|
+
* @private
|
|
492
|
+
* @name get
|
|
493
|
+
* @memberOf Hash
|
|
494
|
+
* @param {string} key The key of the value to get.
|
|
495
|
+
* @returns {*} Returns the entry value.
|
|
496
|
+
*/
|
|
497
|
+
function hashGet(key) {
|
|
498
|
+
var data = this.__data__;
|
|
499
|
+
if (nativeCreate$1) {
|
|
500
|
+
var result = data[key];
|
|
501
|
+
return result === HASH_UNDEFINED$2 ? undefined : result;
|
|
502
|
+
}
|
|
503
|
+
return hasOwnProperty$6.call(data, key) ? data[key] : undefined;
|
|
504
|
+
}
|
|
505
|
+
|
|
506
|
+
/** Used for built-in method references. */
|
|
507
|
+
var objectProto$7 = Object.prototype;
|
|
508
|
+
|
|
509
|
+
/** Used to check objects for own properties. */
|
|
510
|
+
var hasOwnProperty$5 = objectProto$7.hasOwnProperty;
|
|
511
|
+
|
|
512
|
+
/**
|
|
513
|
+
* Checks if a hash value for `key` exists.
|
|
514
|
+
*
|
|
515
|
+
* @private
|
|
516
|
+
* @name has
|
|
517
|
+
* @memberOf Hash
|
|
518
|
+
* @param {string} key The key of the entry to check.
|
|
519
|
+
* @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
|
|
520
|
+
*/
|
|
521
|
+
function hashHas(key) {
|
|
522
|
+
var data = this.__data__;
|
|
523
|
+
return nativeCreate$1 ? (data[key] !== undefined) : hasOwnProperty$5.call(data, key);
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
/** Used to stand-in for `undefined` hash values. */
|
|
527
|
+
var HASH_UNDEFINED$1 = '__lodash_hash_undefined__';
|
|
528
|
+
|
|
529
|
+
/**
|
|
530
|
+
* Sets the hash `key` to `value`.
|
|
531
|
+
*
|
|
532
|
+
* @private
|
|
533
|
+
* @name set
|
|
534
|
+
* @memberOf Hash
|
|
535
|
+
* @param {string} key The key of the value to set.
|
|
536
|
+
* @param {*} value The value to set.
|
|
537
|
+
* @returns {Object} Returns the hash instance.
|
|
538
|
+
*/
|
|
539
|
+
function hashSet(key, value) {
|
|
540
|
+
var data = this.__data__;
|
|
541
|
+
this.size += this.has(key) ? 0 : 1;
|
|
542
|
+
data[key] = (nativeCreate$1 && value === undefined) ? HASH_UNDEFINED$1 : value;
|
|
543
|
+
return this;
|
|
544
|
+
}
|
|
545
|
+
|
|
546
|
+
/**
|
|
547
|
+
* Creates a hash object.
|
|
548
|
+
*
|
|
549
|
+
* @private
|
|
550
|
+
* @constructor
|
|
551
|
+
* @param {Array} [entries] The key-value pairs to cache.
|
|
552
|
+
*/
|
|
553
|
+
function Hash(entries) {
|
|
554
|
+
var index = -1,
|
|
555
|
+
length = entries == null ? 0 : entries.length;
|
|
556
|
+
|
|
557
|
+
this.clear();
|
|
558
|
+
while (++index < length) {
|
|
559
|
+
var entry = entries[index];
|
|
560
|
+
this.set(entry[0], entry[1]);
|
|
561
|
+
}
|
|
562
|
+
}
|
|
563
|
+
|
|
564
|
+
// Add methods to `Hash`.
|
|
565
|
+
Hash.prototype.clear = hashClear;
|
|
566
|
+
Hash.prototype['delete'] = hashDelete;
|
|
567
|
+
Hash.prototype.get = hashGet;
|
|
568
|
+
Hash.prototype.has = hashHas;
|
|
569
|
+
Hash.prototype.set = hashSet;
|
|
570
|
+
|
|
571
|
+
/**
|
|
572
|
+
* Removes all key-value entries from the map.
|
|
573
|
+
*
|
|
574
|
+
* @private
|
|
575
|
+
* @name clear
|
|
576
|
+
* @memberOf MapCache
|
|
577
|
+
*/
|
|
578
|
+
function mapCacheClear() {
|
|
579
|
+
this.size = 0;
|
|
580
|
+
this.__data__ = {
|
|
581
|
+
'hash': new Hash,
|
|
582
|
+
'map': new (Map$2 || ListCache),
|
|
583
|
+
'string': new Hash
|
|
584
|
+
};
|
|
585
|
+
}
|
|
586
|
+
|
|
587
|
+
/**
|
|
588
|
+
* Checks if `value` is suitable for use as unique object key.
|
|
589
|
+
*
|
|
590
|
+
* @private
|
|
591
|
+
* @param {*} value The value to check.
|
|
592
|
+
* @returns {boolean} Returns `true` if `value` is suitable, else `false`.
|
|
593
|
+
*/
|
|
594
|
+
function isKeyable(value) {
|
|
595
|
+
var type = typeof value;
|
|
596
|
+
return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')
|
|
597
|
+
? (value !== '__proto__')
|
|
598
|
+
: (value === null);
|
|
599
|
+
}
|
|
600
|
+
|
|
601
|
+
/**
|
|
602
|
+
* Gets the data for `map`.
|
|
603
|
+
*
|
|
604
|
+
* @private
|
|
605
|
+
* @param {Object} map The map to query.
|
|
606
|
+
* @param {string} key The reference key.
|
|
607
|
+
* @returns {*} Returns the map data.
|
|
608
|
+
*/
|
|
609
|
+
function getMapData(map, key) {
|
|
610
|
+
var data = map.__data__;
|
|
611
|
+
return isKeyable(key)
|
|
612
|
+
? data[typeof key == 'string' ? 'string' : 'hash']
|
|
613
|
+
: data.map;
|
|
614
|
+
}
|
|
615
|
+
|
|
616
|
+
/**
|
|
617
|
+
* Removes `key` and its value from the map.
|
|
618
|
+
*
|
|
619
|
+
* @private
|
|
620
|
+
* @name delete
|
|
621
|
+
* @memberOf MapCache
|
|
622
|
+
* @param {string} key The key of the value to remove.
|
|
623
|
+
* @returns {boolean} Returns `true` if the entry was removed, else `false`.
|
|
624
|
+
*/
|
|
625
|
+
function mapCacheDelete(key) {
|
|
626
|
+
var result = getMapData(this, key)['delete'](key);
|
|
627
|
+
this.size -= result ? 1 : 0;
|
|
628
|
+
return result;
|
|
629
|
+
}
|
|
630
|
+
|
|
631
|
+
/**
|
|
632
|
+
* Gets the map value for `key`.
|
|
633
|
+
*
|
|
634
|
+
* @private
|
|
635
|
+
* @name get
|
|
636
|
+
* @memberOf MapCache
|
|
637
|
+
* @param {string} key The key of the value to get.
|
|
638
|
+
* @returns {*} Returns the entry value.
|
|
639
|
+
*/
|
|
640
|
+
function mapCacheGet(key) {
|
|
641
|
+
return getMapData(this, key).get(key);
|
|
642
|
+
}
|
|
643
|
+
|
|
644
|
+
/**
|
|
645
|
+
* Checks if a map value for `key` exists.
|
|
646
|
+
*
|
|
647
|
+
* @private
|
|
648
|
+
* @name has
|
|
649
|
+
* @memberOf MapCache
|
|
650
|
+
* @param {string} key The key of the entry to check.
|
|
651
|
+
* @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
|
|
652
|
+
*/
|
|
653
|
+
function mapCacheHas(key) {
|
|
654
|
+
return getMapData(this, key).has(key);
|
|
655
|
+
}
|
|
656
|
+
|
|
657
|
+
/**
|
|
658
|
+
* Sets the map `key` to `value`.
|
|
659
|
+
*
|
|
660
|
+
* @private
|
|
661
|
+
* @name set
|
|
662
|
+
* @memberOf MapCache
|
|
663
|
+
* @param {string} key The key of the value to set.
|
|
664
|
+
* @param {*} value The value to set.
|
|
665
|
+
* @returns {Object} Returns the map cache instance.
|
|
666
|
+
*/
|
|
667
|
+
function mapCacheSet(key, value) {
|
|
668
|
+
var data = getMapData(this, key),
|
|
669
|
+
size = data.size;
|
|
670
|
+
|
|
671
|
+
data.set(key, value);
|
|
672
|
+
this.size += data.size == size ? 0 : 1;
|
|
673
|
+
return this;
|
|
674
|
+
}
|
|
675
|
+
|
|
676
|
+
/**
|
|
677
|
+
* Creates a map cache object to store key-value pairs.
|
|
678
|
+
*
|
|
679
|
+
* @private
|
|
680
|
+
* @constructor
|
|
681
|
+
* @param {Array} [entries] The key-value pairs to cache.
|
|
682
|
+
*/
|
|
683
|
+
function MapCache(entries) {
|
|
684
|
+
var index = -1,
|
|
685
|
+
length = entries == null ? 0 : entries.length;
|
|
686
|
+
|
|
687
|
+
this.clear();
|
|
688
|
+
while (++index < length) {
|
|
689
|
+
var entry = entries[index];
|
|
690
|
+
this.set(entry[0], entry[1]);
|
|
691
|
+
}
|
|
692
|
+
}
|
|
693
|
+
|
|
694
|
+
// Add methods to `MapCache`.
|
|
695
|
+
MapCache.prototype.clear = mapCacheClear;
|
|
696
|
+
MapCache.prototype['delete'] = mapCacheDelete;
|
|
697
|
+
MapCache.prototype.get = mapCacheGet;
|
|
698
|
+
MapCache.prototype.has = mapCacheHas;
|
|
699
|
+
MapCache.prototype.set = mapCacheSet;
|
|
700
|
+
|
|
701
|
+
/** Used as the size to enable large array optimizations. */
|
|
702
|
+
var LARGE_ARRAY_SIZE = 200;
|
|
703
|
+
|
|
704
|
+
/**
|
|
705
|
+
* Sets the stack `key` to `value`.
|
|
706
|
+
*
|
|
707
|
+
* @private
|
|
708
|
+
* @name set
|
|
709
|
+
* @memberOf Stack
|
|
710
|
+
* @param {string} key The key of the value to set.
|
|
711
|
+
* @param {*} value The value to set.
|
|
712
|
+
* @returns {Object} Returns the stack cache instance.
|
|
713
|
+
*/
|
|
714
|
+
function stackSet(key, value) {
|
|
715
|
+
var data = this.__data__;
|
|
716
|
+
if (data instanceof ListCache) {
|
|
717
|
+
var pairs = data.__data__;
|
|
718
|
+
if (!Map$2 || (pairs.length < LARGE_ARRAY_SIZE - 1)) {
|
|
719
|
+
pairs.push([key, value]);
|
|
720
|
+
this.size = ++data.size;
|
|
721
|
+
return this;
|
|
722
|
+
}
|
|
723
|
+
data = this.__data__ = new MapCache(pairs);
|
|
724
|
+
}
|
|
725
|
+
data.set(key, value);
|
|
726
|
+
this.size = data.size;
|
|
727
|
+
return this;
|
|
728
|
+
}
|
|
729
|
+
|
|
730
|
+
/**
|
|
731
|
+
* Creates a stack cache object to store key-value pairs.
|
|
732
|
+
*
|
|
733
|
+
* @private
|
|
734
|
+
* @constructor
|
|
735
|
+
* @param {Array} [entries] The key-value pairs to cache.
|
|
736
|
+
*/
|
|
737
|
+
function Stack(entries) {
|
|
738
|
+
var data = this.__data__ = new ListCache(entries);
|
|
739
|
+
this.size = data.size;
|
|
740
|
+
}
|
|
741
|
+
|
|
742
|
+
// Add methods to `Stack`.
|
|
743
|
+
Stack.prototype.clear = stackClear;
|
|
744
|
+
Stack.prototype['delete'] = stackDelete;
|
|
745
|
+
Stack.prototype.get = stackGet;
|
|
746
|
+
Stack.prototype.has = stackHas;
|
|
747
|
+
Stack.prototype.set = stackSet;
|
|
748
|
+
|
|
749
|
+
/** Used to stand-in for `undefined` hash values. */
|
|
750
|
+
var HASH_UNDEFINED = '__lodash_hash_undefined__';
|
|
751
|
+
|
|
752
|
+
/**
|
|
753
|
+
* Adds `value` to the array cache.
|
|
754
|
+
*
|
|
755
|
+
* @private
|
|
756
|
+
* @name add
|
|
757
|
+
* @memberOf SetCache
|
|
758
|
+
* @alias push
|
|
759
|
+
* @param {*} value The value to cache.
|
|
760
|
+
* @returns {Object} Returns the cache instance.
|
|
761
|
+
*/
|
|
762
|
+
function setCacheAdd(value) {
|
|
763
|
+
this.__data__.set(value, HASH_UNDEFINED);
|
|
764
|
+
return this;
|
|
765
|
+
}
|
|
766
|
+
|
|
767
|
+
/**
|
|
768
|
+
* Checks if `value` is in the array cache.
|
|
769
|
+
*
|
|
770
|
+
* @private
|
|
771
|
+
* @name has
|
|
772
|
+
* @memberOf SetCache
|
|
773
|
+
* @param {*} value The value to search for.
|
|
774
|
+
* @returns {number} Returns `true` if `value` is found, else `false`.
|
|
775
|
+
*/
|
|
776
|
+
function setCacheHas(value) {
|
|
777
|
+
return this.__data__.has(value);
|
|
778
|
+
}
|
|
779
|
+
|
|
780
|
+
/**
|
|
781
|
+
*
|
|
782
|
+
* Creates an array cache object to store unique values.
|
|
783
|
+
*
|
|
784
|
+
* @private
|
|
785
|
+
* @constructor
|
|
786
|
+
* @param {Array} [values] The values to cache.
|
|
787
|
+
*/
|
|
788
|
+
function SetCache(values) {
|
|
789
|
+
var index = -1,
|
|
790
|
+
length = values == null ? 0 : values.length;
|
|
791
|
+
|
|
792
|
+
this.__data__ = new MapCache;
|
|
793
|
+
while (++index < length) {
|
|
794
|
+
this.add(values[index]);
|
|
795
|
+
}
|
|
796
|
+
}
|
|
797
|
+
|
|
798
|
+
// Add methods to `SetCache`.
|
|
799
|
+
SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;
|
|
800
|
+
SetCache.prototype.has = setCacheHas;
|
|
69
801
|
|
|
70
802
|
/**
|
|
71
803
|
* A specialized version of `_.some` for arrays without support for iteratee
|
|
@@ -77,8 +809,7 @@ var _baseFindIndex = baseFindIndex$1;
|
|
|
77
809
|
* @returns {boolean} Returns `true` if any element passes the predicate check,
|
|
78
810
|
* else `false`.
|
|
79
811
|
*/
|
|
80
|
-
|
|
81
|
-
function arraySome$1(array, predicate) {
|
|
812
|
+
function arraySome(array, predicate) {
|
|
82
813
|
var index = -1,
|
|
83
814
|
length = array == null ? 0 : array.length;
|
|
84
815
|
|
|
@@ -90,8 +821,6 @@ function arraySome$1(array, predicate) {
|
|
|
90
821
|
return false;
|
|
91
822
|
}
|
|
92
823
|
|
|
93
|
-
var _arraySome = arraySome$1;
|
|
94
|
-
|
|
95
824
|
/**
|
|
96
825
|
* Checks if a `cache` value for `key` exists.
|
|
97
826
|
*
|
|
@@ -100,17 +829,10 @@ var _arraySome = arraySome$1;
|
|
|
100
829
|
* @param {string} key The key of the entry to check.
|
|
101
830
|
* @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
|
|
102
831
|
*/
|
|
103
|
-
|
|
104
|
-
function cacheHas$1(cache, key) {
|
|
832
|
+
function cacheHas(cache, key) {
|
|
105
833
|
return cache.has(key);
|
|
106
834
|
}
|
|
107
835
|
|
|
108
|
-
var _cacheHas = cacheHas$1;
|
|
109
|
-
|
|
110
|
-
var SetCache = _SetCache,
|
|
111
|
-
arraySome = _arraySome,
|
|
112
|
-
cacheHas = _cacheHas;
|
|
113
|
-
|
|
114
836
|
/** Used to compose bitmasks for value comparisons. */
|
|
115
837
|
var COMPARE_PARTIAL_FLAG$5 = 1,
|
|
116
838
|
COMPARE_UNORDERED_FLAG$3 = 2;
|
|
@@ -128,7 +850,7 @@ var COMPARE_PARTIAL_FLAG$5 = 1,
|
|
|
128
850
|
* @param {Object} stack Tracks traversed `array` and `other` objects.
|
|
129
851
|
* @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.
|
|
130
852
|
*/
|
|
131
|
-
function equalArrays
|
|
853
|
+
function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {
|
|
132
854
|
var isPartial = bitmask & COMPARE_PARTIAL_FLAG$5,
|
|
133
855
|
arrLength = array.length,
|
|
134
856
|
othLength = other.length;
|
|
@@ -190,14 +912,10 @@ function equalArrays$2(array, other, bitmask, customizer, equalFunc, stack) {
|
|
|
190
912
|
return result;
|
|
191
913
|
}
|
|
192
914
|
|
|
193
|
-
var _equalArrays = equalArrays$2;
|
|
194
|
-
|
|
195
|
-
var root = _root;
|
|
196
|
-
|
|
197
915
|
/** Built-in value references. */
|
|
198
|
-
var Uint8Array
|
|
916
|
+
var Uint8Array = root.Uint8Array;
|
|
199
917
|
|
|
200
|
-
|
|
918
|
+
const Uint8Array$1 = Uint8Array;
|
|
201
919
|
|
|
202
920
|
/**
|
|
203
921
|
* Converts `map` to its key-value pairs.
|
|
@@ -206,8 +924,7 @@ var _Uint8Array = Uint8Array$1;
|
|
|
206
924
|
* @param {Object} map The map to convert.
|
|
207
925
|
* @returns {Array} Returns the key-value pairs.
|
|
208
926
|
*/
|
|
209
|
-
|
|
210
|
-
function mapToArray$1(map) {
|
|
927
|
+
function mapToArray(map) {
|
|
211
928
|
var index = -1,
|
|
212
929
|
result = Array(map.size);
|
|
213
930
|
|
|
@@ -217,8 +934,6 @@ function mapToArray$1(map) {
|
|
|
217
934
|
return result;
|
|
218
935
|
}
|
|
219
936
|
|
|
220
|
-
var _mapToArray = mapToArray$1;
|
|
221
|
-
|
|
222
937
|
/**
|
|
223
938
|
* Converts `set` to an array of its values.
|
|
224
939
|
*
|
|
@@ -226,8 +941,7 @@ var _mapToArray = mapToArray$1;
|
|
|
226
941
|
* @param {Object} set The set to convert.
|
|
227
942
|
* @returns {Array} Returns the values.
|
|
228
943
|
*/
|
|
229
|
-
|
|
230
|
-
function setToArray$1(set) {
|
|
944
|
+
function setToArray(set) {
|
|
231
945
|
var index = -1,
|
|
232
946
|
result = Array(set.size);
|
|
233
947
|
|
|
@@ -237,35 +951,26 @@ function setToArray$1(set) {
|
|
|
237
951
|
return result;
|
|
238
952
|
}
|
|
239
953
|
|
|
240
|
-
var _setToArray = setToArray$1;
|
|
241
|
-
|
|
242
|
-
var Symbol$1 = _Symbol,
|
|
243
|
-
Uint8Array = _Uint8Array,
|
|
244
|
-
eq$1 = eq_1,
|
|
245
|
-
equalArrays$1 = _equalArrays,
|
|
246
|
-
mapToArray = _mapToArray,
|
|
247
|
-
setToArray = _setToArray;
|
|
248
|
-
|
|
249
954
|
/** Used to compose bitmasks for value comparisons. */
|
|
250
955
|
var COMPARE_PARTIAL_FLAG$4 = 1,
|
|
251
956
|
COMPARE_UNORDERED_FLAG$2 = 2;
|
|
252
957
|
|
|
253
958
|
/** `Object#toString` result references. */
|
|
254
|
-
var boolTag = '[object Boolean]',
|
|
255
|
-
dateTag = '[object Date]',
|
|
256
|
-
errorTag = '[object Error]',
|
|
257
|
-
mapTag = '[object Map]',
|
|
258
|
-
numberTag = '[object Number]',
|
|
259
|
-
regexpTag = '[object RegExp]',
|
|
260
|
-
setTag = '[object Set]',
|
|
261
|
-
stringTag = '[object String]',
|
|
959
|
+
var boolTag$1 = '[object Boolean]',
|
|
960
|
+
dateTag$1 = '[object Date]',
|
|
961
|
+
errorTag$1 = '[object Error]',
|
|
962
|
+
mapTag$2 = '[object Map]',
|
|
963
|
+
numberTag$1 = '[object Number]',
|
|
964
|
+
regexpTag$1 = '[object RegExp]',
|
|
965
|
+
setTag$2 = '[object Set]',
|
|
966
|
+
stringTag$1 = '[object String]',
|
|
262
967
|
symbolTag = '[object Symbol]';
|
|
263
968
|
|
|
264
|
-
var arrayBufferTag = '[object ArrayBuffer]',
|
|
265
|
-
dataViewTag = '[object DataView]';
|
|
969
|
+
var arrayBufferTag$1 = '[object ArrayBuffer]',
|
|
970
|
+
dataViewTag$2 = '[object DataView]';
|
|
266
971
|
|
|
267
972
|
/** Used to convert symbols to primitives and strings. */
|
|
268
|
-
var symbolProto$1 = Symbol
|
|
973
|
+
var symbolProto$1 = Symbol ? Symbol.prototype : undefined,
|
|
269
974
|
symbolValueOf = symbolProto$1 ? symbolProto$1.valueOf : undefined;
|
|
270
975
|
|
|
271
976
|
/**
|
|
@@ -285,9 +990,9 @@ var symbolProto$1 = Symbol$1 ? Symbol$1.prototype : undefined,
|
|
|
285
990
|
* @param {Object} stack Tracks traversed `object` and `other` objects.
|
|
286
991
|
* @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
|
|
287
992
|
*/
|
|
288
|
-
function equalByTag
|
|
993
|
+
function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {
|
|
289
994
|
switch (tag) {
|
|
290
|
-
case dataViewTag:
|
|
995
|
+
case dataViewTag$2:
|
|
291
996
|
if ((object.byteLength != other.byteLength) ||
|
|
292
997
|
(object.byteOffset != other.byteOffset)) {
|
|
293
998
|
return false;
|
|
@@ -295,34 +1000,34 @@ function equalByTag$1(object, other, tag, bitmask, customizer, equalFunc, stack)
|
|
|
295
1000
|
object = object.buffer;
|
|
296
1001
|
other = other.buffer;
|
|
297
1002
|
|
|
298
|
-
case arrayBufferTag:
|
|
1003
|
+
case arrayBufferTag$1:
|
|
299
1004
|
if ((object.byteLength != other.byteLength) ||
|
|
300
|
-
!equalFunc(new Uint8Array(object), new Uint8Array(other))) {
|
|
1005
|
+
!equalFunc(new Uint8Array$1(object), new Uint8Array$1(other))) {
|
|
301
1006
|
return false;
|
|
302
1007
|
}
|
|
303
1008
|
return true;
|
|
304
1009
|
|
|
305
|
-
case boolTag:
|
|
306
|
-
case dateTag:
|
|
307
|
-
case numberTag:
|
|
1010
|
+
case boolTag$1:
|
|
1011
|
+
case dateTag$1:
|
|
1012
|
+
case numberTag$1:
|
|
308
1013
|
// Coerce booleans to `1` or `0` and dates to milliseconds.
|
|
309
1014
|
// Invalid dates are coerced to `NaN`.
|
|
310
|
-
return eq
|
|
1015
|
+
return eq(+object, +other);
|
|
311
1016
|
|
|
312
|
-
case errorTag:
|
|
1017
|
+
case errorTag$1:
|
|
313
1018
|
return object.name == other.name && object.message == other.message;
|
|
314
1019
|
|
|
315
|
-
case regexpTag:
|
|
316
|
-
case stringTag:
|
|
1020
|
+
case regexpTag$1:
|
|
1021
|
+
case stringTag$1:
|
|
317
1022
|
// Coerce regexes to strings and treat strings, primitives and objects,
|
|
318
1023
|
// as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring
|
|
319
1024
|
// for more details.
|
|
320
1025
|
return object == (other + '');
|
|
321
1026
|
|
|
322
|
-
case mapTag:
|
|
1027
|
+
case mapTag$2:
|
|
323
1028
|
var convert = mapToArray;
|
|
324
1029
|
|
|
325
|
-
case setTag:
|
|
1030
|
+
case setTag$2:
|
|
326
1031
|
var isPartial = bitmask & COMPARE_PARTIAL_FLAG$4;
|
|
327
1032
|
convert || (convert = setToArray);
|
|
328
1033
|
|
|
@@ -338,7 +1043,7 @@ function equalByTag$1(object, other, tag, bitmask, customizer, equalFunc, stack)
|
|
|
338
1043
|
|
|
339
1044
|
// Recursively compare objects (susceptible to call stack limits).
|
|
340
1045
|
stack.set(object, other);
|
|
341
|
-
var result = equalArrays
|
|
1046
|
+
var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);
|
|
342
1047
|
stack['delete'](object);
|
|
343
1048
|
return result;
|
|
344
1049
|
|
|
@@ -350,8 +1055,6 @@ function equalByTag$1(object, other, tag, bitmask, customizer, equalFunc, stack)
|
|
|
350
1055
|
return false;
|
|
351
1056
|
}
|
|
352
1057
|
|
|
353
|
-
var _equalByTag = equalByTag$1;
|
|
354
|
-
|
|
355
1058
|
/**
|
|
356
1059
|
* Appends the elements of `values` to `array`.
|
|
357
1060
|
*
|
|
@@ -360,8 +1063,7 @@ var _equalByTag = equalByTag$1;
|
|
|
360
1063
|
* @param {Array} values The values to append.
|
|
361
1064
|
* @returns {Array} Returns `array`.
|
|
362
1065
|
*/
|
|
363
|
-
|
|
364
|
-
function arrayPush$1(array, values) {
|
|
1066
|
+
function arrayPush(array, values) {
|
|
365
1067
|
var index = -1,
|
|
366
1068
|
length = values.length,
|
|
367
1069
|
offset = array.length;
|
|
@@ -372,8 +1074,6 @@ function arrayPush$1(array, values) {
|
|
|
372
1074
|
return array;
|
|
373
1075
|
}
|
|
374
1076
|
|
|
375
|
-
var _arrayPush = arrayPush$1;
|
|
376
|
-
|
|
377
1077
|
/**
|
|
378
1078
|
* Checks if `value` is classified as an `Array` object.
|
|
379
1079
|
*
|
|
@@ -397,13 +1097,9 @@ var _arrayPush = arrayPush$1;
|
|
|
397
1097
|
* _.isArray(_.noop);
|
|
398
1098
|
* // => false
|
|
399
1099
|
*/
|
|
1100
|
+
var isArray = Array.isArray;
|
|
400
1101
|
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
var isArray_1 = isArray$9;
|
|
404
|
-
|
|
405
|
-
var arrayPush = _arrayPush,
|
|
406
|
-
isArray$8 = isArray_1;
|
|
1102
|
+
const isArray$1 = isArray;
|
|
407
1103
|
|
|
408
1104
|
/**
|
|
409
1105
|
* The base implementation of `getAllKeys` and `getAllKeysIn` which uses
|
|
@@ -416,13 +1112,11 @@ var arrayPush = _arrayPush,
|
|
|
416
1112
|
* @param {Function} symbolsFunc The function to get the symbols of `object`.
|
|
417
1113
|
* @returns {Array} Returns the array of property names and symbols.
|
|
418
1114
|
*/
|
|
419
|
-
function baseGetAllKeys
|
|
1115
|
+
function baseGetAllKeys(object, keysFunc, symbolsFunc) {
|
|
420
1116
|
var result = keysFunc(object);
|
|
421
|
-
return isArray$
|
|
1117
|
+
return isArray$1(object) ? result : arrayPush(result, symbolsFunc(object));
|
|
422
1118
|
}
|
|
423
1119
|
|
|
424
|
-
var _baseGetAllKeys = baseGetAllKeys$1;
|
|
425
|
-
|
|
426
1120
|
/**
|
|
427
1121
|
* A specialized version of `_.filter` for arrays without support for
|
|
428
1122
|
* iteratee shorthands.
|
|
@@ -432,8 +1126,7 @@ var _baseGetAllKeys = baseGetAllKeys$1;
|
|
|
432
1126
|
* @param {Function} predicate The function invoked per iteration.
|
|
433
1127
|
* @returns {Array} Returns the new filtered array.
|
|
434
1128
|
*/
|
|
435
|
-
|
|
436
|
-
function arrayFilter$1(array, predicate) {
|
|
1129
|
+
function arrayFilter(array, predicate) {
|
|
437
1130
|
var index = -1,
|
|
438
1131
|
length = array == null ? 0 : array.length,
|
|
439
1132
|
resIndex = 0,
|
|
@@ -448,8 +1141,6 @@ function arrayFilter$1(array, predicate) {
|
|
|
448
1141
|
return result;
|
|
449
1142
|
}
|
|
450
1143
|
|
|
451
|
-
var _arrayFilter = arrayFilter$1;
|
|
452
|
-
|
|
453
1144
|
/**
|
|
454
1145
|
* This method returns a new empty array.
|
|
455
1146
|
*
|
|
@@ -465,72 +1156,163 @@ var _arrayFilter = arrayFilter$1;
|
|
|
465
1156
|
* console.log(arrays);
|
|
466
1157
|
* // => [[], []]
|
|
467
1158
|
*
|
|
468
|
-
* console.log(arrays[0] === arrays[1]);
|
|
469
|
-
* // => false
|
|
1159
|
+
* console.log(arrays[0] === arrays[1]);
|
|
1160
|
+
* // => false
|
|
1161
|
+
*/
|
|
1162
|
+
function stubArray() {
|
|
1163
|
+
return [];
|
|
1164
|
+
}
|
|
1165
|
+
|
|
1166
|
+
/** Used for built-in method references. */
|
|
1167
|
+
var objectProto$6 = Object.prototype;
|
|
1168
|
+
|
|
1169
|
+
/** Built-in value references. */
|
|
1170
|
+
var propertyIsEnumerable$1 = objectProto$6.propertyIsEnumerable;
|
|
1171
|
+
|
|
1172
|
+
/* Built-in method references for those with the same name as other `lodash` methods. */
|
|
1173
|
+
var nativeGetSymbols = Object.getOwnPropertySymbols;
|
|
1174
|
+
|
|
1175
|
+
/**
|
|
1176
|
+
* Creates an array of the own enumerable symbols of `object`.
|
|
1177
|
+
*
|
|
1178
|
+
* @private
|
|
1179
|
+
* @param {Object} object The object to query.
|
|
1180
|
+
* @returns {Array} Returns the array of symbols.
|
|
1181
|
+
*/
|
|
1182
|
+
var getSymbols = !nativeGetSymbols ? stubArray : function(object) {
|
|
1183
|
+
if (object == null) {
|
|
1184
|
+
return [];
|
|
1185
|
+
}
|
|
1186
|
+
object = Object(object);
|
|
1187
|
+
return arrayFilter(nativeGetSymbols(object), function(symbol) {
|
|
1188
|
+
return propertyIsEnumerable$1.call(object, symbol);
|
|
1189
|
+
});
|
|
1190
|
+
};
|
|
1191
|
+
|
|
1192
|
+
const getSymbols$1 = getSymbols;
|
|
1193
|
+
|
|
1194
|
+
/**
|
|
1195
|
+
* The base implementation of `_.times` without support for iteratee shorthands
|
|
1196
|
+
* or max array length checks.
|
|
1197
|
+
*
|
|
1198
|
+
* @private
|
|
1199
|
+
* @param {number} n The number of times to invoke `iteratee`.
|
|
1200
|
+
* @param {Function} iteratee The function invoked per iteration.
|
|
1201
|
+
* @returns {Array} Returns the array of results.
|
|
1202
|
+
*/
|
|
1203
|
+
function baseTimes(n, iteratee) {
|
|
1204
|
+
var index = -1,
|
|
1205
|
+
result = Array(n);
|
|
1206
|
+
|
|
1207
|
+
while (++index < n) {
|
|
1208
|
+
result[index] = iteratee(index);
|
|
1209
|
+
}
|
|
1210
|
+
return result;
|
|
1211
|
+
}
|
|
1212
|
+
|
|
1213
|
+
/** `Object#toString` result references. */
|
|
1214
|
+
var argsTag$2 = '[object Arguments]';
|
|
1215
|
+
|
|
1216
|
+
/**
|
|
1217
|
+
* The base implementation of `_.isArguments`.
|
|
1218
|
+
*
|
|
1219
|
+
* @private
|
|
1220
|
+
* @param {*} value The value to check.
|
|
1221
|
+
* @returns {boolean} Returns `true` if `value` is an `arguments` object,
|
|
1222
|
+
*/
|
|
1223
|
+
function baseIsArguments(value) {
|
|
1224
|
+
return isObjectLike(value) && baseGetTag(value) == argsTag$2;
|
|
1225
|
+
}
|
|
1226
|
+
|
|
1227
|
+
/** Used for built-in method references. */
|
|
1228
|
+
var objectProto$5 = Object.prototype;
|
|
1229
|
+
|
|
1230
|
+
/** Used to check objects for own properties. */
|
|
1231
|
+
var hasOwnProperty$4 = objectProto$5.hasOwnProperty;
|
|
1232
|
+
|
|
1233
|
+
/** Built-in value references. */
|
|
1234
|
+
var propertyIsEnumerable = objectProto$5.propertyIsEnumerable;
|
|
1235
|
+
|
|
1236
|
+
/**
|
|
1237
|
+
* Checks if `value` is likely an `arguments` object.
|
|
1238
|
+
*
|
|
1239
|
+
* @static
|
|
1240
|
+
* @memberOf _
|
|
1241
|
+
* @since 0.1.0
|
|
1242
|
+
* @category Lang
|
|
1243
|
+
* @param {*} value The value to check.
|
|
1244
|
+
* @returns {boolean} Returns `true` if `value` is an `arguments` object,
|
|
1245
|
+
* else `false`.
|
|
1246
|
+
* @example
|
|
1247
|
+
*
|
|
1248
|
+
* _.isArguments(function() { return arguments; }());
|
|
1249
|
+
* // => true
|
|
1250
|
+
*
|
|
1251
|
+
* _.isArguments([1, 2, 3]);
|
|
1252
|
+
* // => false
|
|
1253
|
+
*/
|
|
1254
|
+
var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {
|
|
1255
|
+
return isObjectLike(value) && hasOwnProperty$4.call(value, 'callee') &&
|
|
1256
|
+
!propertyIsEnumerable.call(value, 'callee');
|
|
1257
|
+
};
|
|
1258
|
+
|
|
1259
|
+
const isArguments$1 = isArguments;
|
|
1260
|
+
|
|
1261
|
+
/**
|
|
1262
|
+
* This method returns `false`.
|
|
1263
|
+
*
|
|
1264
|
+
* @static
|
|
1265
|
+
* @memberOf _
|
|
1266
|
+
* @since 4.13.0
|
|
1267
|
+
* @category Util
|
|
1268
|
+
* @returns {boolean} Returns `false`.
|
|
1269
|
+
* @example
|
|
1270
|
+
*
|
|
1271
|
+
* _.times(2, _.stubFalse);
|
|
1272
|
+
* // => [false, false]
|
|
470
1273
|
*/
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
return [];
|
|
1274
|
+
function stubFalse() {
|
|
1275
|
+
return false;
|
|
474
1276
|
}
|
|
475
1277
|
|
|
476
|
-
|
|
1278
|
+
/** Detect free variable `exports`. */
|
|
1279
|
+
var freeExports$1 = typeof exports == 'object' && exports && !exports.nodeType && exports;
|
|
477
1280
|
|
|
478
|
-
|
|
479
|
-
|
|
1281
|
+
/** Detect free variable `module`. */
|
|
1282
|
+
var freeModule$1 = freeExports$1 && typeof module == 'object' && module && !module.nodeType && module;
|
|
480
1283
|
|
|
481
|
-
/**
|
|
482
|
-
var
|
|
1284
|
+
/** Detect the popular CommonJS extension `module.exports`. */
|
|
1285
|
+
var moduleExports$1 = freeModule$1 && freeModule$1.exports === freeExports$1;
|
|
483
1286
|
|
|
484
1287
|
/** Built-in value references. */
|
|
485
|
-
var
|
|
1288
|
+
var Buffer = moduleExports$1 ? root.Buffer : undefined;
|
|
486
1289
|
|
|
487
1290
|
/* Built-in method references for those with the same name as other `lodash` methods. */
|
|
488
|
-
var
|
|
1291
|
+
var nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;
|
|
489
1292
|
|
|
490
1293
|
/**
|
|
491
|
-
*
|
|
1294
|
+
* Checks if `value` is a buffer.
|
|
492
1295
|
*
|
|
493
|
-
* @
|
|
494
|
-
* @
|
|
495
|
-
* @
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
}
|
|
501
|
-
object = Object(object);
|
|
502
|
-
return arrayFilter(nativeGetSymbols(object), function(symbol) {
|
|
503
|
-
return propertyIsEnumerable.call(object, symbol);
|
|
504
|
-
});
|
|
505
|
-
};
|
|
506
|
-
|
|
507
|
-
var _getSymbols = getSymbols$1;
|
|
508
|
-
|
|
509
|
-
/**
|
|
510
|
-
* The base implementation of `_.times` without support for iteratee shorthands
|
|
511
|
-
* or max array length checks.
|
|
1296
|
+
* @static
|
|
1297
|
+
* @memberOf _
|
|
1298
|
+
* @since 4.3.0
|
|
1299
|
+
* @category Lang
|
|
1300
|
+
* @param {*} value The value to check.
|
|
1301
|
+
* @returns {boolean} Returns `true` if `value` is a buffer, else `false`.
|
|
1302
|
+
* @example
|
|
512
1303
|
*
|
|
513
|
-
*
|
|
514
|
-
*
|
|
515
|
-
*
|
|
516
|
-
*
|
|
1304
|
+
* _.isBuffer(new Buffer(2));
|
|
1305
|
+
* // => true
|
|
1306
|
+
*
|
|
1307
|
+
* _.isBuffer(new Uint8Array(2));
|
|
1308
|
+
* // => false
|
|
517
1309
|
*/
|
|
1310
|
+
var isBuffer = nativeIsBuffer || stubFalse;
|
|
518
1311
|
|
|
519
|
-
|
|
520
|
-
var index = -1,
|
|
521
|
-
result = Array(n);
|
|
522
|
-
|
|
523
|
-
while (++index < n) {
|
|
524
|
-
result[index] = iteratee(index);
|
|
525
|
-
}
|
|
526
|
-
return result;
|
|
527
|
-
}
|
|
528
|
-
|
|
529
|
-
var _baseTimes = baseTimes$1;
|
|
1312
|
+
const isBuffer$1 = isBuffer;
|
|
530
1313
|
|
|
531
1314
|
/** Used as references for various `Number` constants. */
|
|
532
|
-
|
|
533
|
-
var MAX_SAFE_INTEGER = 9007199254740991;
|
|
1315
|
+
var MAX_SAFE_INTEGER$1 = 9007199254740991;
|
|
534
1316
|
|
|
535
1317
|
/** Used to detect unsigned integer values. */
|
|
536
1318
|
var reIsUint = /^(?:0|[1-9]\d*)$/;
|
|
@@ -543,9 +1325,9 @@ var reIsUint = /^(?:0|[1-9]\d*)$/;
|
|
|
543
1325
|
* @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
|
|
544
1326
|
* @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
|
|
545
1327
|
*/
|
|
546
|
-
function isIndex
|
|
1328
|
+
function isIndex(value, length) {
|
|
547
1329
|
var type = typeof value;
|
|
548
|
-
length = length == null ? MAX_SAFE_INTEGER : length;
|
|
1330
|
+
length = length == null ? MAX_SAFE_INTEGER$1 : length;
|
|
549
1331
|
|
|
550
1332
|
return !!length &&
|
|
551
1333
|
(type == 'number' ||
|
|
@@ -553,7 +1335,94 @@ function isIndex$3(value, length) {
|
|
|
553
1335
|
(value > -1 && value % 1 == 0 && value < length);
|
|
554
1336
|
}
|
|
555
1337
|
|
|
556
|
-
|
|
1338
|
+
/** Used as references for various `Number` constants. */
|
|
1339
|
+
var MAX_SAFE_INTEGER = 9007199254740991;
|
|
1340
|
+
|
|
1341
|
+
/**
|
|
1342
|
+
* Checks if `value` is a valid array-like length.
|
|
1343
|
+
*
|
|
1344
|
+
* **Note:** This method is loosely based on
|
|
1345
|
+
* [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
|
|
1346
|
+
*
|
|
1347
|
+
* @static
|
|
1348
|
+
* @memberOf _
|
|
1349
|
+
* @since 4.0.0
|
|
1350
|
+
* @category Lang
|
|
1351
|
+
* @param {*} value The value to check.
|
|
1352
|
+
* @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
|
|
1353
|
+
* @example
|
|
1354
|
+
*
|
|
1355
|
+
* _.isLength(3);
|
|
1356
|
+
* // => true
|
|
1357
|
+
*
|
|
1358
|
+
* _.isLength(Number.MIN_VALUE);
|
|
1359
|
+
* // => false
|
|
1360
|
+
*
|
|
1361
|
+
* _.isLength(Infinity);
|
|
1362
|
+
* // => false
|
|
1363
|
+
*
|
|
1364
|
+
* _.isLength('3');
|
|
1365
|
+
* // => false
|
|
1366
|
+
*/
|
|
1367
|
+
function isLength(value) {
|
|
1368
|
+
return typeof value == 'number' &&
|
|
1369
|
+
value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
|
|
1370
|
+
}
|
|
1371
|
+
|
|
1372
|
+
/** `Object#toString` result references. */
|
|
1373
|
+
var argsTag$1 = '[object Arguments]',
|
|
1374
|
+
arrayTag$1 = '[object Array]',
|
|
1375
|
+
boolTag = '[object Boolean]',
|
|
1376
|
+
dateTag = '[object Date]',
|
|
1377
|
+
errorTag = '[object Error]',
|
|
1378
|
+
funcTag = '[object Function]',
|
|
1379
|
+
mapTag$1 = '[object Map]',
|
|
1380
|
+
numberTag = '[object Number]',
|
|
1381
|
+
objectTag$2 = '[object Object]',
|
|
1382
|
+
regexpTag = '[object RegExp]',
|
|
1383
|
+
setTag$1 = '[object Set]',
|
|
1384
|
+
stringTag = '[object String]',
|
|
1385
|
+
weakMapTag$1 = '[object WeakMap]';
|
|
1386
|
+
|
|
1387
|
+
var arrayBufferTag = '[object ArrayBuffer]',
|
|
1388
|
+
dataViewTag$1 = '[object DataView]',
|
|
1389
|
+
float32Tag = '[object Float32Array]',
|
|
1390
|
+
float64Tag = '[object Float64Array]',
|
|
1391
|
+
int8Tag = '[object Int8Array]',
|
|
1392
|
+
int16Tag = '[object Int16Array]',
|
|
1393
|
+
int32Tag = '[object Int32Array]',
|
|
1394
|
+
uint8Tag = '[object Uint8Array]',
|
|
1395
|
+
uint8ClampedTag = '[object Uint8ClampedArray]',
|
|
1396
|
+
uint16Tag = '[object Uint16Array]',
|
|
1397
|
+
uint32Tag = '[object Uint32Array]';
|
|
1398
|
+
|
|
1399
|
+
/** Used to identify `toStringTag` values of typed arrays. */
|
|
1400
|
+
var typedArrayTags = {};
|
|
1401
|
+
typedArrayTags[float32Tag] = typedArrayTags[float64Tag] =
|
|
1402
|
+
typedArrayTags[int8Tag] = typedArrayTags[int16Tag] =
|
|
1403
|
+
typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =
|
|
1404
|
+
typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =
|
|
1405
|
+
typedArrayTags[uint32Tag] = true;
|
|
1406
|
+
typedArrayTags[argsTag$1] = typedArrayTags[arrayTag$1] =
|
|
1407
|
+
typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =
|
|
1408
|
+
typedArrayTags[dataViewTag$1] = typedArrayTags[dateTag] =
|
|
1409
|
+
typedArrayTags[errorTag] = typedArrayTags[funcTag] =
|
|
1410
|
+
typedArrayTags[mapTag$1] = typedArrayTags[numberTag] =
|
|
1411
|
+
typedArrayTags[objectTag$2] = typedArrayTags[regexpTag] =
|
|
1412
|
+
typedArrayTags[setTag$1] = typedArrayTags[stringTag] =
|
|
1413
|
+
typedArrayTags[weakMapTag$1] = false;
|
|
1414
|
+
|
|
1415
|
+
/**
|
|
1416
|
+
* The base implementation of `_.isTypedArray` without Node.js optimizations.
|
|
1417
|
+
*
|
|
1418
|
+
* @private
|
|
1419
|
+
* @param {*} value The value to check.
|
|
1420
|
+
* @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
|
|
1421
|
+
*/
|
|
1422
|
+
function baseIsTypedArray(value) {
|
|
1423
|
+
return isObjectLike(value) &&
|
|
1424
|
+
isLength(value.length) && !!typedArrayTags[baseGetTag(value)];
|
|
1425
|
+
}
|
|
557
1426
|
|
|
558
1427
|
/**
|
|
559
1428
|
* The base implementation of `_.unary` without support for storing metadata.
|
|
@@ -562,21 +1431,43 @@ var _isIndex = isIndex$3;
|
|
|
562
1431
|
* @param {Function} func The function to cap arguments for.
|
|
563
1432
|
* @returns {Function} Returns the new capped function.
|
|
564
1433
|
*/
|
|
565
|
-
|
|
566
|
-
function baseUnary$1(func) {
|
|
1434
|
+
function baseUnary(func) {
|
|
567
1435
|
return function(value) {
|
|
568
1436
|
return func(value);
|
|
569
1437
|
};
|
|
570
1438
|
}
|
|
571
1439
|
|
|
572
|
-
|
|
1440
|
+
/** Detect free variable `exports`. */
|
|
1441
|
+
var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;
|
|
573
1442
|
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
1443
|
+
/** Detect free variable `module`. */
|
|
1444
|
+
var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
|
|
1445
|
+
|
|
1446
|
+
/** Detect the popular CommonJS extension `module.exports`. */
|
|
1447
|
+
var moduleExports = freeModule && freeModule.exports === freeExports;
|
|
1448
|
+
|
|
1449
|
+
/** Detect free variable `process` from Node.js. */
|
|
1450
|
+
var freeProcess = moduleExports && freeGlobal.process;
|
|
1451
|
+
|
|
1452
|
+
/** Used to access faster Node.js helpers. */
|
|
1453
|
+
var nodeUtil = (function() {
|
|
1454
|
+
try {
|
|
1455
|
+
// Use `util.types` for Node.js 10+.
|
|
1456
|
+
var types = freeModule && freeModule.require && freeModule.require('util').types;
|
|
1457
|
+
|
|
1458
|
+
if (types) {
|
|
1459
|
+
return types;
|
|
1460
|
+
}
|
|
1461
|
+
|
|
1462
|
+
// Legacy `process.binding('util')` for Node.js < 10.
|
|
1463
|
+
return freeProcess && freeProcess.binding && freeProcess.binding('util');
|
|
1464
|
+
} catch (e) {}
|
|
1465
|
+
}());
|
|
1466
|
+
|
|
1467
|
+
const nodeUtil$1 = nodeUtil;
|
|
577
1468
|
|
|
578
1469
|
/* Node.js helper references. */
|
|
579
|
-
var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;
|
|
1470
|
+
var nodeIsTypedArray = nodeUtil$1 && nodeUtil$1.isTypedArray;
|
|
580
1471
|
|
|
581
1472
|
/**
|
|
582
1473
|
* Checks if `value` is classified as a typed array.
|
|
@@ -595,16 +1486,9 @@ var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;
|
|
|
595
1486
|
* _.isTypedArray([]);
|
|
596
1487
|
* // => false
|
|
597
1488
|
*/
|
|
598
|
-
var isTypedArray
|
|
599
|
-
|
|
600
|
-
var isTypedArray_1 = isTypedArray$2;
|
|
1489
|
+
var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;
|
|
601
1490
|
|
|
602
|
-
|
|
603
|
-
isArguments$1 = isArguments_1,
|
|
604
|
-
isArray$7 = isArray_1,
|
|
605
|
-
isBuffer$1 = isBuffer$2.exports,
|
|
606
|
-
isIndex$2 = _isIndex,
|
|
607
|
-
isTypedArray$1 = isTypedArray_1;
|
|
1491
|
+
const isTypedArray$1 = isTypedArray;
|
|
608
1492
|
|
|
609
1493
|
/** Used for built-in method references. */
|
|
610
1494
|
var objectProto$4 = Object.prototype;
|
|
@@ -620,8 +1504,8 @@ var hasOwnProperty$3 = objectProto$4.hasOwnProperty;
|
|
|
620
1504
|
* @param {boolean} inherited Specify returning inherited property names.
|
|
621
1505
|
* @returns {Array} Returns the array of property names.
|
|
622
1506
|
*/
|
|
623
|
-
function arrayLikeKeys
|
|
624
|
-
var isArr = isArray$
|
|
1507
|
+
function arrayLikeKeys(value, inherited) {
|
|
1508
|
+
var isArr = isArray$1(value),
|
|
625
1509
|
isArg = !isArr && isArguments$1(value),
|
|
626
1510
|
isBuff = !isArr && !isArg && isBuffer$1(value),
|
|
627
1511
|
isType = !isArr && !isArg && !isBuff && isTypedArray$1(value),
|
|
@@ -639,7 +1523,7 @@ function arrayLikeKeys$1(value, inherited) {
|
|
|
639
1523
|
// PhantomJS 2 has enumerable non-index properties on typed arrays.
|
|
640
1524
|
(isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||
|
|
641
1525
|
// Skip index properties.
|
|
642
|
-
isIndex
|
|
1526
|
+
isIndex(key, length)
|
|
643
1527
|
))) {
|
|
644
1528
|
result.push(key);
|
|
645
1529
|
}
|
|
@@ -647,10 +1531,7 @@ function arrayLikeKeys$1(value, inherited) {
|
|
|
647
1531
|
return result;
|
|
648
1532
|
}
|
|
649
1533
|
|
|
650
|
-
var _arrayLikeKeys = arrayLikeKeys$1;
|
|
651
|
-
|
|
652
1534
|
/** Used for built-in method references. */
|
|
653
|
-
|
|
654
1535
|
var objectProto$3 = Object.prototype;
|
|
655
1536
|
|
|
656
1537
|
/**
|
|
@@ -660,15 +1541,13 @@ var objectProto$3 = Object.prototype;
|
|
|
660
1541
|
* @param {*} value The value to check.
|
|
661
1542
|
* @returns {boolean} Returns `true` if `value` is a prototype, else `false`.
|
|
662
1543
|
*/
|
|
663
|
-
function isPrototype
|
|
1544
|
+
function isPrototype(value) {
|
|
664
1545
|
var Ctor = value && value.constructor,
|
|
665
1546
|
proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto$3;
|
|
666
1547
|
|
|
667
1548
|
return value === proto;
|
|
668
1549
|
}
|
|
669
1550
|
|
|
670
|
-
var _isPrototype = isPrototype$1;
|
|
671
|
-
|
|
672
1551
|
/**
|
|
673
1552
|
* Creates a unary function that invokes `func` with its argument transformed.
|
|
674
1553
|
*
|
|
@@ -677,24 +1556,16 @@ var _isPrototype = isPrototype$1;
|
|
|
677
1556
|
* @param {Function} transform The argument transform.
|
|
678
1557
|
* @returns {Function} Returns the new function.
|
|
679
1558
|
*/
|
|
680
|
-
|
|
681
|
-
function overArg$1(func, transform) {
|
|
1559
|
+
function overArg(func, transform) {
|
|
682
1560
|
return function(arg) {
|
|
683
1561
|
return func(transform(arg));
|
|
684
1562
|
};
|
|
685
1563
|
}
|
|
686
1564
|
|
|
687
|
-
var _overArg = overArg$1;
|
|
688
|
-
|
|
689
|
-
var overArg = _overArg;
|
|
690
|
-
|
|
691
1565
|
/* Built-in method references for those with the same name as other `lodash` methods. */
|
|
692
|
-
var nativeKeys
|
|
1566
|
+
var nativeKeys = overArg(Object.keys, Object);
|
|
693
1567
|
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
var isPrototype = _isPrototype,
|
|
697
|
-
nativeKeys = _nativeKeys;
|
|
1568
|
+
const nativeKeys$1 = nativeKeys;
|
|
698
1569
|
|
|
699
1570
|
/** Used for built-in method references. */
|
|
700
1571
|
var objectProto$2 = Object.prototype;
|
|
@@ -709,9 +1580,9 @@ var hasOwnProperty$2 = objectProto$2.hasOwnProperty;
|
|
|
709
1580
|
* @param {Object} object The object to query.
|
|
710
1581
|
* @returns {Array} Returns the array of property names.
|
|
711
1582
|
*/
|
|
712
|
-
function baseKeys
|
|
1583
|
+
function baseKeys(object) {
|
|
713
1584
|
if (!isPrototype(object)) {
|
|
714
|
-
return nativeKeys(object);
|
|
1585
|
+
return nativeKeys$1(object);
|
|
715
1586
|
}
|
|
716
1587
|
var result = [];
|
|
717
1588
|
for (var key in Object(object)) {
|
|
@@ -722,11 +1593,6 @@ function baseKeys$1(object) {
|
|
|
722
1593
|
return result;
|
|
723
1594
|
}
|
|
724
1595
|
|
|
725
|
-
var _baseKeys = baseKeys$1;
|
|
726
|
-
|
|
727
|
-
var isFunction = isFunction_1,
|
|
728
|
-
isLength$1 = isLength_1;
|
|
729
|
-
|
|
730
1596
|
/**
|
|
731
1597
|
* Checks if `value` is array-like. A value is considered array-like if it's
|
|
732
1598
|
* not a function and has a `value.length` that's an integer greater than or
|
|
@@ -752,16 +1618,10 @@ var isFunction = isFunction_1,
|
|
|
752
1618
|
* _.isArrayLike(_.noop);
|
|
753
1619
|
* // => false
|
|
754
1620
|
*/
|
|
755
|
-
function isArrayLike
|
|
756
|
-
return value != null && isLength
|
|
1621
|
+
function isArrayLike(value) {
|
|
1622
|
+
return value != null && isLength(value.length) && !isFunction(value);
|
|
757
1623
|
}
|
|
758
1624
|
|
|
759
|
-
var isArrayLike_1 = isArrayLike$3;
|
|
760
|
-
|
|
761
|
-
var arrayLikeKeys = _arrayLikeKeys,
|
|
762
|
-
baseKeys = _baseKeys,
|
|
763
|
-
isArrayLike$2 = isArrayLike_1;
|
|
764
|
-
|
|
765
1625
|
/**
|
|
766
1626
|
* Creates an array of the own enumerable property names of `object`.
|
|
767
1627
|
*
|
|
@@ -790,16 +1650,10 @@ var arrayLikeKeys = _arrayLikeKeys,
|
|
|
790
1650
|
* _.keys('hi');
|
|
791
1651
|
* // => ['0', '1']
|
|
792
1652
|
*/
|
|
793
|
-
function keys
|
|
794
|
-
return isArrayLike
|
|
1653
|
+
function keys(object) {
|
|
1654
|
+
return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);
|
|
795
1655
|
}
|
|
796
1656
|
|
|
797
|
-
var keys_1 = keys$3;
|
|
798
|
-
|
|
799
|
-
var baseGetAllKeys = _baseGetAllKeys,
|
|
800
|
-
getSymbols = _getSymbols,
|
|
801
|
-
keys$2 = keys_1;
|
|
802
|
-
|
|
803
1657
|
/**
|
|
804
1658
|
* Creates an array of own enumerable property names and symbols of `object`.
|
|
805
1659
|
*
|
|
@@ -807,14 +1661,10 @@ var baseGetAllKeys = _baseGetAllKeys,
|
|
|
807
1661
|
* @param {Object} object The object to query.
|
|
808
1662
|
* @returns {Array} Returns the array of property names and symbols.
|
|
809
1663
|
*/
|
|
810
|
-
function getAllKeys
|
|
811
|
-
return baseGetAllKeys(object, keys
|
|
1664
|
+
function getAllKeys(object) {
|
|
1665
|
+
return baseGetAllKeys(object, keys, getSymbols$1);
|
|
812
1666
|
}
|
|
813
1667
|
|
|
814
|
-
var _getAllKeys = getAllKeys$1;
|
|
815
|
-
|
|
816
|
-
var getAllKeys = _getAllKeys;
|
|
817
|
-
|
|
818
1668
|
/** Used to compose bitmasks for value comparisons. */
|
|
819
1669
|
var COMPARE_PARTIAL_FLAG$3 = 1;
|
|
820
1670
|
|
|
@@ -837,7 +1687,7 @@ var hasOwnProperty$1 = objectProto$1.hasOwnProperty;
|
|
|
837
1687
|
* @param {Object} stack Tracks traversed `object` and `other` objects.
|
|
838
1688
|
* @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
|
|
839
1689
|
*/
|
|
840
|
-
function equalObjects
|
|
1690
|
+
function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {
|
|
841
1691
|
var isPartial = bitmask & COMPARE_PARTIAL_FLAG$3,
|
|
842
1692
|
objProps = getAllKeys(object),
|
|
843
1693
|
objLength = objProps.length,
|
|
@@ -902,16 +1752,76 @@ function equalObjects$1(object, other, bitmask, customizer, equalFunc, stack) {
|
|
|
902
1752
|
return result;
|
|
903
1753
|
}
|
|
904
1754
|
|
|
905
|
-
|
|
1755
|
+
/* Built-in method references that are verified to be native. */
|
|
1756
|
+
var DataView = getNative(root, 'DataView');
|
|
1757
|
+
|
|
1758
|
+
const DataView$1 = DataView;
|
|
1759
|
+
|
|
1760
|
+
/* Built-in method references that are verified to be native. */
|
|
1761
|
+
var Promise$1 = getNative(root, 'Promise');
|
|
1762
|
+
|
|
1763
|
+
const Promise$2 = Promise$1;
|
|
1764
|
+
|
|
1765
|
+
/* Built-in method references that are verified to be native. */
|
|
1766
|
+
var Set = getNative(root, 'Set');
|
|
1767
|
+
|
|
1768
|
+
const Set$1 = Set;
|
|
1769
|
+
|
|
1770
|
+
/* Built-in method references that are verified to be native. */
|
|
1771
|
+
var WeakMap = getNative(root, 'WeakMap');
|
|
1772
|
+
|
|
1773
|
+
const WeakMap$1 = WeakMap;
|
|
1774
|
+
|
|
1775
|
+
/** `Object#toString` result references. */
|
|
1776
|
+
var mapTag = '[object Map]',
|
|
1777
|
+
objectTag$1 = '[object Object]',
|
|
1778
|
+
promiseTag = '[object Promise]',
|
|
1779
|
+
setTag = '[object Set]',
|
|
1780
|
+
weakMapTag = '[object WeakMap]';
|
|
1781
|
+
|
|
1782
|
+
var dataViewTag = '[object DataView]';
|
|
1783
|
+
|
|
1784
|
+
/** Used to detect maps, sets, and weakmaps. */
|
|
1785
|
+
var dataViewCtorString = toSource(DataView$1),
|
|
1786
|
+
mapCtorString = toSource(Map$2),
|
|
1787
|
+
promiseCtorString = toSource(Promise$2),
|
|
1788
|
+
setCtorString = toSource(Set$1),
|
|
1789
|
+
weakMapCtorString = toSource(WeakMap$1);
|
|
1790
|
+
|
|
1791
|
+
/**
|
|
1792
|
+
* Gets the `toStringTag` of `value`.
|
|
1793
|
+
*
|
|
1794
|
+
* @private
|
|
1795
|
+
* @param {*} value The value to query.
|
|
1796
|
+
* @returns {string} Returns the `toStringTag`.
|
|
1797
|
+
*/
|
|
1798
|
+
var getTag = baseGetTag;
|
|
1799
|
+
|
|
1800
|
+
// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.
|
|
1801
|
+
if ((DataView$1 && getTag(new DataView$1(new ArrayBuffer(1))) != dataViewTag) ||
|
|
1802
|
+
(Map$2 && getTag(new Map$2) != mapTag) ||
|
|
1803
|
+
(Promise$2 && getTag(Promise$2.resolve()) != promiseTag) ||
|
|
1804
|
+
(Set$1 && getTag(new Set$1) != setTag) ||
|
|
1805
|
+
(WeakMap$1 && getTag(new WeakMap$1) != weakMapTag)) {
|
|
1806
|
+
getTag = function(value) {
|
|
1807
|
+
var result = baseGetTag(value),
|
|
1808
|
+
Ctor = result == objectTag$1 ? value.constructor : undefined,
|
|
1809
|
+
ctorString = Ctor ? toSource(Ctor) : '';
|
|
1810
|
+
|
|
1811
|
+
if (ctorString) {
|
|
1812
|
+
switch (ctorString) {
|
|
1813
|
+
case dataViewCtorString: return dataViewTag;
|
|
1814
|
+
case mapCtorString: return mapTag;
|
|
1815
|
+
case promiseCtorString: return promiseTag;
|
|
1816
|
+
case setCtorString: return setTag;
|
|
1817
|
+
case weakMapCtorString: return weakMapTag;
|
|
1818
|
+
}
|
|
1819
|
+
}
|
|
1820
|
+
return result;
|
|
1821
|
+
};
|
|
1822
|
+
}
|
|
906
1823
|
|
|
907
|
-
|
|
908
|
-
equalArrays = _equalArrays,
|
|
909
|
-
equalByTag = _equalByTag,
|
|
910
|
-
equalObjects = _equalObjects,
|
|
911
|
-
getTag = _getTag,
|
|
912
|
-
isArray$6 = isArray_1,
|
|
913
|
-
isBuffer = isBuffer$2.exports,
|
|
914
|
-
isTypedArray = isTypedArray_1;
|
|
1824
|
+
const getTag$1 = getTag;
|
|
915
1825
|
|
|
916
1826
|
/** Used to compose bitmasks for value comparisons. */
|
|
917
1827
|
var COMPARE_PARTIAL_FLAG$2 = 1;
|
|
@@ -941,11 +1851,11 @@ var hasOwnProperty = objectProto.hasOwnProperty;
|
|
|
941
1851
|
* @param {Object} [stack] Tracks traversed `object` and `other` objects.
|
|
942
1852
|
* @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
|
|
943
1853
|
*/
|
|
944
|
-
function baseIsEqualDeep
|
|
945
|
-
var objIsArr = isArray$
|
|
946
|
-
othIsArr = isArray$
|
|
947
|
-
objTag = objIsArr ? arrayTag : getTag(object),
|
|
948
|
-
othTag = othIsArr ? arrayTag : getTag(other);
|
|
1854
|
+
function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {
|
|
1855
|
+
var objIsArr = isArray$1(object),
|
|
1856
|
+
othIsArr = isArray$1(other),
|
|
1857
|
+
objTag = objIsArr ? arrayTag : getTag$1(object),
|
|
1858
|
+
othTag = othIsArr ? arrayTag : getTag$1(other);
|
|
949
1859
|
|
|
950
1860
|
objTag = objTag == argsTag ? objectTag : objTag;
|
|
951
1861
|
othTag = othTag == argsTag ? objectTag : othTag;
|
|
@@ -954,16 +1864,16 @@ function baseIsEqualDeep$1(object, other, bitmask, customizer, equalFunc, stack)
|
|
|
954
1864
|
othIsObj = othTag == objectTag,
|
|
955
1865
|
isSameTag = objTag == othTag;
|
|
956
1866
|
|
|
957
|
-
if (isSameTag && isBuffer(object)) {
|
|
958
|
-
if (!isBuffer(other)) {
|
|
1867
|
+
if (isSameTag && isBuffer$1(object)) {
|
|
1868
|
+
if (!isBuffer$1(other)) {
|
|
959
1869
|
return false;
|
|
960
1870
|
}
|
|
961
1871
|
objIsArr = true;
|
|
962
1872
|
objIsObj = false;
|
|
963
1873
|
}
|
|
964
1874
|
if (isSameTag && !objIsObj) {
|
|
965
|
-
stack || (stack = new Stack
|
|
966
|
-
return (objIsArr || isTypedArray(object))
|
|
1875
|
+
stack || (stack = new Stack);
|
|
1876
|
+
return (objIsArr || isTypedArray$1(object))
|
|
967
1877
|
? equalArrays(object, other, bitmask, customizer, equalFunc, stack)
|
|
968
1878
|
: equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);
|
|
969
1879
|
}
|
|
@@ -975,22 +1885,17 @@ function baseIsEqualDeep$1(object, other, bitmask, customizer, equalFunc, stack)
|
|
|
975
1885
|
var objUnwrapped = objIsWrapped ? object.value() : object,
|
|
976
1886
|
othUnwrapped = othIsWrapped ? other.value() : other;
|
|
977
1887
|
|
|
978
|
-
stack || (stack = new Stack
|
|
1888
|
+
stack || (stack = new Stack);
|
|
979
1889
|
return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);
|
|
980
1890
|
}
|
|
981
1891
|
}
|
|
982
1892
|
if (!isSameTag) {
|
|
983
1893
|
return false;
|
|
984
1894
|
}
|
|
985
|
-
stack || (stack = new Stack
|
|
1895
|
+
stack || (stack = new Stack);
|
|
986
1896
|
return equalObjects(object, other, bitmask, customizer, equalFunc, stack);
|
|
987
1897
|
}
|
|
988
1898
|
|
|
989
|
-
var _baseIsEqualDeep = baseIsEqualDeep$1;
|
|
990
|
-
|
|
991
|
-
var baseIsEqualDeep = _baseIsEqualDeep,
|
|
992
|
-
isObjectLike = isObjectLike_1;
|
|
993
|
-
|
|
994
1899
|
/**
|
|
995
1900
|
* The base implementation of `_.isEqual` which supports partial comparisons
|
|
996
1901
|
* and tracks traversed objects.
|
|
@@ -1005,21 +1910,16 @@ var baseIsEqualDeep = _baseIsEqualDeep,
|
|
|
1005
1910
|
* @param {Object} [stack] Tracks traversed `value` and `other` objects.
|
|
1006
1911
|
* @returns {boolean} Returns `true` if the values are equivalent, else `false`.
|
|
1007
1912
|
*/
|
|
1008
|
-
function baseIsEqual
|
|
1913
|
+
function baseIsEqual(value, other, bitmask, customizer, stack) {
|
|
1009
1914
|
if (value === other) {
|
|
1010
1915
|
return true;
|
|
1011
1916
|
}
|
|
1012
1917
|
if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {
|
|
1013
1918
|
return value !== value && other !== other;
|
|
1014
1919
|
}
|
|
1015
|
-
return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual
|
|
1920
|
+
return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);
|
|
1016
1921
|
}
|
|
1017
1922
|
|
|
1018
|
-
var _baseIsEqual = baseIsEqual$2;
|
|
1019
|
-
|
|
1020
|
-
var Stack = _Stack,
|
|
1021
|
-
baseIsEqual$1 = _baseIsEqual;
|
|
1022
|
-
|
|
1023
1923
|
/** Used to compose bitmasks for value comparisons. */
|
|
1024
1924
|
var COMPARE_PARTIAL_FLAG$1 = 1,
|
|
1025
1925
|
COMPARE_UNORDERED_FLAG$1 = 2;
|
|
@@ -1034,7 +1934,7 @@ var COMPARE_PARTIAL_FLAG$1 = 1,
|
|
|
1034
1934
|
* @param {Function} [customizer] The function to customize comparisons.
|
|
1035
1935
|
* @returns {boolean} Returns `true` if `object` is a match, else `false`.
|
|
1036
1936
|
*/
|
|
1037
|
-
function baseIsMatch
|
|
1937
|
+
function baseIsMatch(object, source, matchData, customizer) {
|
|
1038
1938
|
var index = matchData.length,
|
|
1039
1939
|
length = index,
|
|
1040
1940
|
noCustomizer = !customizer;
|
|
@@ -1068,7 +1968,7 @@ function baseIsMatch$1(object, source, matchData, customizer) {
|
|
|
1068
1968
|
var result = customizer(objValue, srcValue, key, object, source, stack);
|
|
1069
1969
|
}
|
|
1070
1970
|
if (!(result === undefined
|
|
1071
|
-
? baseIsEqual
|
|
1971
|
+
? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG$1 | COMPARE_UNORDERED_FLAG$1, customizer, stack)
|
|
1072
1972
|
: result
|
|
1073
1973
|
)) {
|
|
1074
1974
|
return false;
|
|
@@ -1078,10 +1978,6 @@ function baseIsMatch$1(object, source, matchData, customizer) {
|
|
|
1078
1978
|
return true;
|
|
1079
1979
|
}
|
|
1080
1980
|
|
|
1081
|
-
var _baseIsMatch = baseIsMatch$1;
|
|
1082
|
-
|
|
1083
|
-
var isObject$1 = isObject_1;
|
|
1084
|
-
|
|
1085
1981
|
/**
|
|
1086
1982
|
* Checks if `value` is suitable for strict equality comparisons, i.e. `===`.
|
|
1087
1983
|
*
|
|
@@ -1090,15 +1986,10 @@ var isObject$1 = isObject_1;
|
|
|
1090
1986
|
* @returns {boolean} Returns `true` if `value` if suitable for strict
|
|
1091
1987
|
* equality comparisons, else `false`.
|
|
1092
1988
|
*/
|
|
1093
|
-
function isStrictComparable
|
|
1094
|
-
return value === value && !isObject
|
|
1989
|
+
function isStrictComparable(value) {
|
|
1990
|
+
return value === value && !isObject(value);
|
|
1095
1991
|
}
|
|
1096
1992
|
|
|
1097
|
-
var _isStrictComparable = isStrictComparable$2;
|
|
1098
|
-
|
|
1099
|
-
var isStrictComparable$1 = _isStrictComparable,
|
|
1100
|
-
keys$1 = keys_1;
|
|
1101
|
-
|
|
1102
1993
|
/**
|
|
1103
1994
|
* Gets the property names, values, and compare flags of `object`.
|
|
1104
1995
|
*
|
|
@@ -1106,21 +1997,19 @@ var isStrictComparable$1 = _isStrictComparable,
|
|
|
1106
1997
|
* @param {Object} object The object to query.
|
|
1107
1998
|
* @returns {Array} Returns the match data of `object`.
|
|
1108
1999
|
*/
|
|
1109
|
-
function getMatchData
|
|
1110
|
-
var result = keys
|
|
2000
|
+
function getMatchData(object) {
|
|
2001
|
+
var result = keys(object),
|
|
1111
2002
|
length = result.length;
|
|
1112
2003
|
|
|
1113
2004
|
while (length--) {
|
|
1114
2005
|
var key = result[length],
|
|
1115
2006
|
value = object[key];
|
|
1116
2007
|
|
|
1117
|
-
result[length] = [key, value, isStrictComparable
|
|
2008
|
+
result[length] = [key, value, isStrictComparable(value)];
|
|
1118
2009
|
}
|
|
1119
2010
|
return result;
|
|
1120
2011
|
}
|
|
1121
2012
|
|
|
1122
|
-
var _getMatchData = getMatchData$1;
|
|
1123
|
-
|
|
1124
2013
|
/**
|
|
1125
2014
|
* A specialized version of `matchesProperty` for source values suitable
|
|
1126
2015
|
* for strict equality comparisons, i.e. `===`.
|
|
@@ -1130,8 +2019,7 @@ var _getMatchData = getMatchData$1;
|
|
|
1130
2019
|
* @param {*} srcValue The value to match.
|
|
1131
2020
|
* @returns {Function} Returns the new spec function.
|
|
1132
2021
|
*/
|
|
1133
|
-
|
|
1134
|
-
function matchesStrictComparable$2(key, srcValue) {
|
|
2022
|
+
function matchesStrictComparable(key, srcValue) {
|
|
1135
2023
|
return function(object) {
|
|
1136
2024
|
if (object == null) {
|
|
1137
2025
|
return false;
|
|
@@ -1141,12 +2029,6 @@ function matchesStrictComparable$2(key, srcValue) {
|
|
|
1141
2029
|
};
|
|
1142
2030
|
}
|
|
1143
2031
|
|
|
1144
|
-
var _matchesStrictComparable = matchesStrictComparable$2;
|
|
1145
|
-
|
|
1146
|
-
var baseIsMatch = _baseIsMatch,
|
|
1147
|
-
getMatchData = _getMatchData,
|
|
1148
|
-
matchesStrictComparable$1 = _matchesStrictComparable;
|
|
1149
|
-
|
|
1150
2032
|
/**
|
|
1151
2033
|
* The base implementation of `_.matches` which doesn't clone `source`.
|
|
1152
2034
|
*
|
|
@@ -1154,21 +2036,16 @@ var baseIsMatch = _baseIsMatch,
|
|
|
1154
2036
|
* @param {Object} source The object of property values to match.
|
|
1155
2037
|
* @returns {Function} Returns the new spec function.
|
|
1156
2038
|
*/
|
|
1157
|
-
function baseMatches
|
|
2039
|
+
function baseMatches(source) {
|
|
1158
2040
|
var matchData = getMatchData(source);
|
|
1159
2041
|
if (matchData.length == 1 && matchData[0][2]) {
|
|
1160
|
-
return matchesStrictComparable
|
|
2042
|
+
return matchesStrictComparable(matchData[0][0], matchData[0][1]);
|
|
1161
2043
|
}
|
|
1162
2044
|
return function(object) {
|
|
1163
2045
|
return object === source || baseIsMatch(object, source, matchData);
|
|
1164
2046
|
};
|
|
1165
2047
|
}
|
|
1166
2048
|
|
|
1167
|
-
var _baseMatches = baseMatches$1;
|
|
1168
|
-
|
|
1169
|
-
var isArray$5 = isArray_1,
|
|
1170
|
-
isSymbol$2 = isSymbol_1;
|
|
1171
|
-
|
|
1172
2049
|
/** Used to match property names within property paths. */
|
|
1173
2050
|
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
|
|
1174
2051
|
reIsPlainProp = /^\w*$/;
|
|
@@ -1181,20 +2058,137 @@ var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
|
|
|
1181
2058
|
* @param {Object} [object] The object to query keys on.
|
|
1182
2059
|
* @returns {boolean} Returns `true` if `value` is a property name, else `false`.
|
|
1183
2060
|
*/
|
|
1184
|
-
function isKey
|
|
1185
|
-
if (isArray$
|
|
2061
|
+
function isKey(value, object) {
|
|
2062
|
+
if (isArray$1(value)) {
|
|
1186
2063
|
return false;
|
|
1187
2064
|
}
|
|
1188
2065
|
var type = typeof value;
|
|
1189
2066
|
if (type == 'number' || type == 'symbol' || type == 'boolean' ||
|
|
1190
|
-
value == null || isSymbol
|
|
2067
|
+
value == null || isSymbol(value)) {
|
|
1191
2068
|
return true;
|
|
1192
2069
|
}
|
|
1193
2070
|
return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||
|
|
1194
2071
|
(object != null && value in Object(object));
|
|
1195
2072
|
}
|
|
1196
2073
|
|
|
1197
|
-
|
|
2074
|
+
/** Error message constants. */
|
|
2075
|
+
var FUNC_ERROR_TEXT = 'Expected a function';
|
|
2076
|
+
|
|
2077
|
+
/**
|
|
2078
|
+
* Creates a function that memoizes the result of `func`. If `resolver` is
|
|
2079
|
+
* provided, it determines the cache key for storing the result based on the
|
|
2080
|
+
* arguments provided to the memoized function. By default, the first argument
|
|
2081
|
+
* provided to the memoized function is used as the map cache key. The `func`
|
|
2082
|
+
* is invoked with the `this` binding of the memoized function.
|
|
2083
|
+
*
|
|
2084
|
+
* **Note:** The cache is exposed as the `cache` property on the memoized
|
|
2085
|
+
* function. Its creation may be customized by replacing the `_.memoize.Cache`
|
|
2086
|
+
* constructor with one whose instances implement the
|
|
2087
|
+
* [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)
|
|
2088
|
+
* method interface of `clear`, `delete`, `get`, `has`, and `set`.
|
|
2089
|
+
*
|
|
2090
|
+
* @static
|
|
2091
|
+
* @memberOf _
|
|
2092
|
+
* @since 0.1.0
|
|
2093
|
+
* @category Function
|
|
2094
|
+
* @param {Function} func The function to have its output memoized.
|
|
2095
|
+
* @param {Function} [resolver] The function to resolve the cache key.
|
|
2096
|
+
* @returns {Function} Returns the new memoized function.
|
|
2097
|
+
* @example
|
|
2098
|
+
*
|
|
2099
|
+
* var object = { 'a': 1, 'b': 2 };
|
|
2100
|
+
* var other = { 'c': 3, 'd': 4 };
|
|
2101
|
+
*
|
|
2102
|
+
* var values = _.memoize(_.values);
|
|
2103
|
+
* values(object);
|
|
2104
|
+
* // => [1, 2]
|
|
2105
|
+
*
|
|
2106
|
+
* values(other);
|
|
2107
|
+
* // => [3, 4]
|
|
2108
|
+
*
|
|
2109
|
+
* object.a = 2;
|
|
2110
|
+
* values(object);
|
|
2111
|
+
* // => [1, 2]
|
|
2112
|
+
*
|
|
2113
|
+
* // Modify the result cache.
|
|
2114
|
+
* values.cache.set(object, ['a', 'b']);
|
|
2115
|
+
* values(object);
|
|
2116
|
+
* // => ['a', 'b']
|
|
2117
|
+
*
|
|
2118
|
+
* // Replace `_.memoize.Cache`.
|
|
2119
|
+
* _.memoize.Cache = WeakMap;
|
|
2120
|
+
*/
|
|
2121
|
+
function memoize(func, resolver) {
|
|
2122
|
+
if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {
|
|
2123
|
+
throw new TypeError(FUNC_ERROR_TEXT);
|
|
2124
|
+
}
|
|
2125
|
+
var memoized = function() {
|
|
2126
|
+
var args = arguments,
|
|
2127
|
+
key = resolver ? resolver.apply(this, args) : args[0],
|
|
2128
|
+
cache = memoized.cache;
|
|
2129
|
+
|
|
2130
|
+
if (cache.has(key)) {
|
|
2131
|
+
return cache.get(key);
|
|
2132
|
+
}
|
|
2133
|
+
var result = func.apply(this, args);
|
|
2134
|
+
memoized.cache = cache.set(key, result) || cache;
|
|
2135
|
+
return result;
|
|
2136
|
+
};
|
|
2137
|
+
memoized.cache = new (memoize.Cache || MapCache);
|
|
2138
|
+
return memoized;
|
|
2139
|
+
}
|
|
2140
|
+
|
|
2141
|
+
// Expose `MapCache`.
|
|
2142
|
+
memoize.Cache = MapCache;
|
|
2143
|
+
|
|
2144
|
+
/** Used as the maximum memoize cache size. */
|
|
2145
|
+
var MAX_MEMOIZE_SIZE = 500;
|
|
2146
|
+
|
|
2147
|
+
/**
|
|
2148
|
+
* A specialized version of `_.memoize` which clears the memoized function's
|
|
2149
|
+
* cache when it exceeds `MAX_MEMOIZE_SIZE`.
|
|
2150
|
+
*
|
|
2151
|
+
* @private
|
|
2152
|
+
* @param {Function} func The function to have its output memoized.
|
|
2153
|
+
* @returns {Function} Returns the new memoized function.
|
|
2154
|
+
*/
|
|
2155
|
+
function memoizeCapped(func) {
|
|
2156
|
+
var result = memoize(func, function(key) {
|
|
2157
|
+
if (cache.size === MAX_MEMOIZE_SIZE) {
|
|
2158
|
+
cache.clear();
|
|
2159
|
+
}
|
|
2160
|
+
return key;
|
|
2161
|
+
});
|
|
2162
|
+
|
|
2163
|
+
var cache = result.cache;
|
|
2164
|
+
return result;
|
|
2165
|
+
}
|
|
2166
|
+
|
|
2167
|
+
/** Used to match property names within property paths. */
|
|
2168
|
+
var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
|
|
2169
|
+
|
|
2170
|
+
/** Used to match backslashes in property paths. */
|
|
2171
|
+
var reEscapeChar = /\\(\\)?/g;
|
|
2172
|
+
|
|
2173
|
+
/**
|
|
2174
|
+
* Converts `string` to a property path array.
|
|
2175
|
+
*
|
|
2176
|
+
* @private
|
|
2177
|
+
* @param {string} string The string to convert.
|
|
2178
|
+
* @returns {Array} Returns the property path array.
|
|
2179
|
+
*/
|
|
2180
|
+
var stringToPath = memoizeCapped(function(string) {
|
|
2181
|
+
var result = [];
|
|
2182
|
+
if (string.charCodeAt(0) === 46 /* . */) {
|
|
2183
|
+
result.push('');
|
|
2184
|
+
}
|
|
2185
|
+
string.replace(rePropName, function(match, number, quote, subString) {
|
|
2186
|
+
result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));
|
|
2187
|
+
});
|
|
2188
|
+
return result;
|
|
2189
|
+
});
|
|
2190
|
+
|
|
2191
|
+
const stringToPath$1 = stringToPath;
|
|
1198
2192
|
|
|
1199
2193
|
/**
|
|
1200
2194
|
* A specialized version of `_.map` for arrays without support for iteratee
|
|
@@ -1205,8 +2199,7 @@ var _isKey = isKey$3;
|
|
|
1205
2199
|
* @param {Function} iteratee The function invoked per iteration.
|
|
1206
2200
|
* @returns {Array} Returns the new mapped array.
|
|
1207
2201
|
*/
|
|
1208
|
-
|
|
1209
|
-
function arrayMap$1(array, iteratee) {
|
|
2202
|
+
function arrayMap(array, iteratee) {
|
|
1210
2203
|
var index = -1,
|
|
1211
2204
|
length = array == null ? 0 : array.length,
|
|
1212
2205
|
result = Array(length);
|
|
@@ -1217,13 +2210,6 @@ function arrayMap$1(array, iteratee) {
|
|
|
1217
2210
|
return result;
|
|
1218
2211
|
}
|
|
1219
2212
|
|
|
1220
|
-
var _arrayMap = arrayMap$1;
|
|
1221
|
-
|
|
1222
|
-
var Symbol = _Symbol,
|
|
1223
|
-
arrayMap = _arrayMap,
|
|
1224
|
-
isArray$4 = isArray_1,
|
|
1225
|
-
isSymbol$1 = isSymbol_1;
|
|
1226
|
-
|
|
1227
2213
|
/** Used as references for various `Number` constants. */
|
|
1228
2214
|
var INFINITY$2 = 1 / 0;
|
|
1229
2215
|
|
|
@@ -1239,26 +2225,22 @@ var symbolProto = Symbol ? Symbol.prototype : undefined,
|
|
|
1239
2225
|
* @param {*} value The value to process.
|
|
1240
2226
|
* @returns {string} Returns the string.
|
|
1241
2227
|
*/
|
|
1242
|
-
function baseToString
|
|
2228
|
+
function baseToString(value) {
|
|
1243
2229
|
// Exit early for strings to avoid a performance hit in some environments.
|
|
1244
2230
|
if (typeof value == 'string') {
|
|
1245
2231
|
return value;
|
|
1246
2232
|
}
|
|
1247
|
-
if (isArray$
|
|
2233
|
+
if (isArray$1(value)) {
|
|
1248
2234
|
// Recursively convert values (susceptible to call stack limits).
|
|
1249
|
-
return arrayMap(value, baseToString
|
|
2235
|
+
return arrayMap(value, baseToString) + '';
|
|
1250
2236
|
}
|
|
1251
|
-
if (isSymbol
|
|
2237
|
+
if (isSymbol(value)) {
|
|
1252
2238
|
return symbolToString ? symbolToString.call(value) : '';
|
|
1253
2239
|
}
|
|
1254
2240
|
var result = (value + '');
|
|
1255
2241
|
return (result == '0' && (1 / value) == -INFINITY$2) ? '-0' : result;
|
|
1256
2242
|
}
|
|
1257
2243
|
|
|
1258
|
-
var _baseToString = baseToString$1;
|
|
1259
|
-
|
|
1260
|
-
var baseToString = _baseToString;
|
|
1261
|
-
|
|
1262
2244
|
/**
|
|
1263
2245
|
* Converts `value` to a string. An empty string is returned for `null`
|
|
1264
2246
|
* and `undefined` values. The sign of `-0` is preserved.
|
|
@@ -1280,17 +2262,10 @@ var baseToString = _baseToString;
|
|
|
1280
2262
|
* _.toString([1, 2, 3]);
|
|
1281
2263
|
* // => '1,2,3'
|
|
1282
2264
|
*/
|
|
1283
|
-
function toString
|
|
2265
|
+
function toString(value) {
|
|
1284
2266
|
return value == null ? '' : baseToString(value);
|
|
1285
2267
|
}
|
|
1286
2268
|
|
|
1287
|
-
var toString_1 = toString$1;
|
|
1288
|
-
|
|
1289
|
-
var isArray$3 = isArray_1,
|
|
1290
|
-
isKey$2 = _isKey,
|
|
1291
|
-
stringToPath = _stringToPath,
|
|
1292
|
-
toString = toString_1;
|
|
1293
|
-
|
|
1294
2269
|
/**
|
|
1295
2270
|
* Casts `value` to a path array if it's not one.
|
|
1296
2271
|
*
|
|
@@ -1299,17 +2274,13 @@ var isArray$3 = isArray_1,
|
|
|
1299
2274
|
* @param {Object} [object] The object to query keys on.
|
|
1300
2275
|
* @returns {Array} Returns the cast property path array.
|
|
1301
2276
|
*/
|
|
1302
|
-
function castPath
|
|
1303
|
-
if (isArray$
|
|
2277
|
+
function castPath(value, object) {
|
|
2278
|
+
if (isArray$1(value)) {
|
|
1304
2279
|
return value;
|
|
1305
2280
|
}
|
|
1306
|
-
return isKey
|
|
2281
|
+
return isKey(value, object) ? [value] : stringToPath$1(toString(value));
|
|
1307
2282
|
}
|
|
1308
2283
|
|
|
1309
|
-
var _castPath = castPath$2;
|
|
1310
|
-
|
|
1311
|
-
var isSymbol = isSymbol_1;
|
|
1312
|
-
|
|
1313
2284
|
/** Used as references for various `Number` constants. */
|
|
1314
2285
|
var INFINITY$1 = 1 / 0;
|
|
1315
2286
|
|
|
@@ -1320,7 +2291,7 @@ var INFINITY$1 = 1 / 0;
|
|
|
1320
2291
|
* @param {*} value The value to inspect.
|
|
1321
2292
|
* @returns {string|symbol} Returns the key.
|
|
1322
2293
|
*/
|
|
1323
|
-
function toKey
|
|
2294
|
+
function toKey(value) {
|
|
1324
2295
|
if (typeof value == 'string' || isSymbol(value)) {
|
|
1325
2296
|
return value;
|
|
1326
2297
|
}
|
|
@@ -1328,11 +2299,6 @@ function toKey$4(value) {
|
|
|
1328
2299
|
return (result == '0' && (1 / value) == -INFINITY$1) ? '-0' : result;
|
|
1329
2300
|
}
|
|
1330
2301
|
|
|
1331
|
-
var _toKey = toKey$4;
|
|
1332
|
-
|
|
1333
|
-
var castPath$1 = _castPath,
|
|
1334
|
-
toKey$3 = _toKey;
|
|
1335
|
-
|
|
1336
2302
|
/**
|
|
1337
2303
|
* The base implementation of `_.get` without support for default values.
|
|
1338
2304
|
*
|
|
@@ -1341,22 +2307,18 @@ var castPath$1 = _castPath,
|
|
|
1341
2307
|
* @param {Array|string} path The path of the property to get.
|
|
1342
2308
|
* @returns {*} Returns the resolved value.
|
|
1343
2309
|
*/
|
|
1344
|
-
function baseGet
|
|
1345
|
-
path = castPath
|
|
2310
|
+
function baseGet(object, path) {
|
|
2311
|
+
path = castPath(path, object);
|
|
1346
2312
|
|
|
1347
2313
|
var index = 0,
|
|
1348
2314
|
length = path.length;
|
|
1349
2315
|
|
|
1350
2316
|
while (object != null && index < length) {
|
|
1351
|
-
object = object[toKey
|
|
2317
|
+
object = object[toKey(path[index++])];
|
|
1352
2318
|
}
|
|
1353
2319
|
return (index && index == length) ? object : undefined;
|
|
1354
2320
|
}
|
|
1355
2321
|
|
|
1356
|
-
var _baseGet = baseGet$2;
|
|
1357
|
-
|
|
1358
|
-
var baseGet$1 = _baseGet;
|
|
1359
|
-
|
|
1360
2322
|
/**
|
|
1361
2323
|
* Gets the value at `path` of `object`. If the resolved value is
|
|
1362
2324
|
* `undefined`, the `defaultValue` is returned in its place.
|
|
@@ -1382,13 +2344,11 @@ var baseGet$1 = _baseGet;
|
|
|
1382
2344
|
* _.get(object, 'a.b.c', 'default');
|
|
1383
2345
|
* // => 'default'
|
|
1384
2346
|
*/
|
|
1385
|
-
function get
|
|
1386
|
-
var result = object == null ? undefined : baseGet
|
|
2347
|
+
function get(object, path, defaultValue) {
|
|
2348
|
+
var result = object == null ? undefined : baseGet(object, path);
|
|
1387
2349
|
return result === undefined ? defaultValue : result;
|
|
1388
2350
|
}
|
|
1389
2351
|
|
|
1390
|
-
var get_1 = get$1;
|
|
1391
|
-
|
|
1392
2352
|
/**
|
|
1393
2353
|
* The base implementation of `_.hasIn` without support for deep paths.
|
|
1394
2354
|
*
|
|
@@ -1397,20 +2357,10 @@ var get_1 = get$1;
|
|
|
1397
2357
|
* @param {Array|string} key The key to check.
|
|
1398
2358
|
* @returns {boolean} Returns `true` if `key` exists, else `false`.
|
|
1399
2359
|
*/
|
|
1400
|
-
|
|
1401
|
-
function baseHasIn$1(object, key) {
|
|
2360
|
+
function baseHasIn(object, key) {
|
|
1402
2361
|
return object != null && key in Object(object);
|
|
1403
2362
|
}
|
|
1404
2363
|
|
|
1405
|
-
var _baseHasIn = baseHasIn$1;
|
|
1406
|
-
|
|
1407
|
-
var castPath = _castPath,
|
|
1408
|
-
isArguments = isArguments_1,
|
|
1409
|
-
isArray$2 = isArray_1,
|
|
1410
|
-
isIndex$1 = _isIndex,
|
|
1411
|
-
isLength = isLength_1,
|
|
1412
|
-
toKey$2 = _toKey;
|
|
1413
|
-
|
|
1414
2364
|
/**
|
|
1415
2365
|
* Checks if `path` exists on `object`.
|
|
1416
2366
|
*
|
|
@@ -1420,7 +2370,7 @@ var castPath = _castPath,
|
|
|
1420
2370
|
* @param {Function} hasFunc The function to check properties.
|
|
1421
2371
|
* @returns {boolean} Returns `true` if `path` exists, else `false`.
|
|
1422
2372
|
*/
|
|
1423
|
-
function hasPath
|
|
2373
|
+
function hasPath(object, path, hasFunc) {
|
|
1424
2374
|
path = castPath(path, object);
|
|
1425
2375
|
|
|
1426
2376
|
var index = -1,
|
|
@@ -1428,7 +2378,7 @@ function hasPath$1(object, path, hasFunc) {
|
|
|
1428
2378
|
result = false;
|
|
1429
2379
|
|
|
1430
2380
|
while (++index < length) {
|
|
1431
|
-
var key = toKey
|
|
2381
|
+
var key = toKey(path[index]);
|
|
1432
2382
|
if (!(result = object != null && hasFunc(object, key))) {
|
|
1433
2383
|
break;
|
|
1434
2384
|
}
|
|
@@ -1438,15 +2388,10 @@ function hasPath$1(object, path, hasFunc) {
|
|
|
1438
2388
|
return result;
|
|
1439
2389
|
}
|
|
1440
2390
|
length = object == null ? 0 : object.length;
|
|
1441
|
-
return !!length && isLength(length) && isIndex
|
|
1442
|
-
(isArray$
|
|
2391
|
+
return !!length && isLength(length) && isIndex(key, length) &&
|
|
2392
|
+
(isArray$1(object) || isArguments$1(object));
|
|
1443
2393
|
}
|
|
1444
2394
|
|
|
1445
|
-
var _hasPath = hasPath$1;
|
|
1446
|
-
|
|
1447
|
-
var baseHasIn = _baseHasIn,
|
|
1448
|
-
hasPath = _hasPath;
|
|
1449
|
-
|
|
1450
2395
|
/**
|
|
1451
2396
|
* Checks if `path` is a direct or inherited property of `object`.
|
|
1452
2397
|
*
|
|
@@ -1473,20 +2418,10 @@ var baseHasIn = _baseHasIn,
|
|
|
1473
2418
|
* _.hasIn(object, 'b');
|
|
1474
2419
|
* // => false
|
|
1475
2420
|
*/
|
|
1476
|
-
function hasIn
|
|
2421
|
+
function hasIn(object, path) {
|
|
1477
2422
|
return object != null && hasPath(object, path, baseHasIn);
|
|
1478
2423
|
}
|
|
1479
2424
|
|
|
1480
|
-
var hasIn_1 = hasIn$1;
|
|
1481
|
-
|
|
1482
|
-
var baseIsEqual = _baseIsEqual,
|
|
1483
|
-
get = get_1,
|
|
1484
|
-
hasIn = hasIn_1,
|
|
1485
|
-
isKey$1 = _isKey,
|
|
1486
|
-
isStrictComparable = _isStrictComparable,
|
|
1487
|
-
matchesStrictComparable = _matchesStrictComparable,
|
|
1488
|
-
toKey$1 = _toKey;
|
|
1489
|
-
|
|
1490
2425
|
/** Used to compose bitmasks for value comparisons. */
|
|
1491
2426
|
var COMPARE_PARTIAL_FLAG = 1,
|
|
1492
2427
|
COMPARE_UNORDERED_FLAG = 2;
|
|
@@ -1499,9 +2434,9 @@ var COMPARE_PARTIAL_FLAG = 1,
|
|
|
1499
2434
|
* @param {*} srcValue The value to match.
|
|
1500
2435
|
* @returns {Function} Returns the new spec function.
|
|
1501
2436
|
*/
|
|
1502
|
-
function baseMatchesProperty
|
|
1503
|
-
if (isKey
|
|
1504
|
-
return matchesStrictComparable(toKey
|
|
2437
|
+
function baseMatchesProperty(path, srcValue) {
|
|
2438
|
+
if (isKey(path) && isStrictComparable(srcValue)) {
|
|
2439
|
+
return matchesStrictComparable(toKey(path), srcValue);
|
|
1505
2440
|
}
|
|
1506
2441
|
return function(object) {
|
|
1507
2442
|
var objValue = get(object, path);
|
|
@@ -1511,8 +2446,6 @@ function baseMatchesProperty$1(path, srcValue) {
|
|
|
1511
2446
|
};
|
|
1512
2447
|
}
|
|
1513
2448
|
|
|
1514
|
-
var _baseMatchesProperty = baseMatchesProperty$1;
|
|
1515
|
-
|
|
1516
2449
|
/**
|
|
1517
2450
|
* This method returns the first argument it receives.
|
|
1518
2451
|
*
|
|
@@ -1529,13 +2462,10 @@ var _baseMatchesProperty = baseMatchesProperty$1;
|
|
|
1529
2462
|
* console.log(_.identity(object) === object);
|
|
1530
2463
|
* // => true
|
|
1531
2464
|
*/
|
|
1532
|
-
|
|
1533
|
-
function identity$1(value) {
|
|
2465
|
+
function identity(value) {
|
|
1534
2466
|
return value;
|
|
1535
2467
|
}
|
|
1536
2468
|
|
|
1537
|
-
var identity_1 = identity$1;
|
|
1538
|
-
|
|
1539
2469
|
/**
|
|
1540
2470
|
* The base implementation of `_.property` without support for deep paths.
|
|
1541
2471
|
*
|
|
@@ -1543,17 +2473,12 @@ var identity_1 = identity$1;
|
|
|
1543
2473
|
* @param {string} key The key of the property to get.
|
|
1544
2474
|
* @returns {Function} Returns the new accessor function.
|
|
1545
2475
|
*/
|
|
1546
|
-
|
|
1547
|
-
function baseProperty$1(key) {
|
|
2476
|
+
function baseProperty(key) {
|
|
1548
2477
|
return function(object) {
|
|
1549
2478
|
return object == null ? undefined : object[key];
|
|
1550
2479
|
};
|
|
1551
2480
|
}
|
|
1552
2481
|
|
|
1553
|
-
var _baseProperty = baseProperty$1;
|
|
1554
|
-
|
|
1555
|
-
var baseGet = _baseGet;
|
|
1556
|
-
|
|
1557
2482
|
/**
|
|
1558
2483
|
* A specialized version of `baseProperty` which supports deep paths.
|
|
1559
2484
|
*
|
|
@@ -1561,19 +2486,12 @@ var baseGet = _baseGet;
|
|
|
1561
2486
|
* @param {Array|string} path The path of the property to get.
|
|
1562
2487
|
* @returns {Function} Returns the new accessor function.
|
|
1563
2488
|
*/
|
|
1564
|
-
function basePropertyDeep
|
|
2489
|
+
function basePropertyDeep(path) {
|
|
1565
2490
|
return function(object) {
|
|
1566
2491
|
return baseGet(object, path);
|
|
1567
2492
|
};
|
|
1568
2493
|
}
|
|
1569
2494
|
|
|
1570
|
-
var _basePropertyDeep = basePropertyDeep$1;
|
|
1571
|
-
|
|
1572
|
-
var baseProperty = _baseProperty,
|
|
1573
|
-
basePropertyDeep = _basePropertyDeep,
|
|
1574
|
-
isKey = _isKey,
|
|
1575
|
-
toKey = _toKey;
|
|
1576
|
-
|
|
1577
2495
|
/**
|
|
1578
2496
|
* Creates a function that returns the value at `path` of a given object.
|
|
1579
2497
|
*
|
|
@@ -1596,18 +2514,10 @@ var baseProperty = _baseProperty,
|
|
|
1596
2514
|
* _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');
|
|
1597
2515
|
* // => [1, 2]
|
|
1598
2516
|
*/
|
|
1599
|
-
function property
|
|
2517
|
+
function property(path) {
|
|
1600
2518
|
return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);
|
|
1601
2519
|
}
|
|
1602
2520
|
|
|
1603
|
-
var property_1 = property$1;
|
|
1604
|
-
|
|
1605
|
-
var baseMatches = _baseMatches,
|
|
1606
|
-
baseMatchesProperty = _baseMatchesProperty,
|
|
1607
|
-
identity = identity_1,
|
|
1608
|
-
isArray$1 = isArray_1,
|
|
1609
|
-
property = property_1;
|
|
1610
|
-
|
|
1611
2521
|
/**
|
|
1612
2522
|
* The base implementation of `_.iteratee`.
|
|
1613
2523
|
*
|
|
@@ -1615,7 +2525,7 @@ var baseMatches = _baseMatches,
|
|
|
1615
2525
|
* @param {*} [value=_.identity] The value to convert to an iteratee.
|
|
1616
2526
|
* @returns {Function} Returns the iteratee.
|
|
1617
2527
|
*/
|
|
1618
|
-
function baseIteratee
|
|
2528
|
+
function baseIteratee(value) {
|
|
1619
2529
|
// Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.
|
|
1620
2530
|
// See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.
|
|
1621
2531
|
if (typeof value == 'function') {
|
|
@@ -1632,10 +2542,6 @@ function baseIteratee$2(value) {
|
|
|
1632
2542
|
return property(value);
|
|
1633
2543
|
}
|
|
1634
2544
|
|
|
1635
|
-
var _baseIteratee = baseIteratee$2;
|
|
1636
|
-
|
|
1637
|
-
var toNumber = toNumber_1;
|
|
1638
|
-
|
|
1639
2545
|
/** Used as references for various `Number` constants. */
|
|
1640
2546
|
var INFINITY = 1 / 0,
|
|
1641
2547
|
MAX_INTEGER = 1.7976931348623157e+308;
|
|
@@ -1663,7 +2569,7 @@ var INFINITY = 1 / 0,
|
|
|
1663
2569
|
* _.toFinite('3.2');
|
|
1664
2570
|
* // => 3.2
|
|
1665
2571
|
*/
|
|
1666
|
-
function toFinite
|
|
2572
|
+
function toFinite(value) {
|
|
1667
2573
|
if (!value) {
|
|
1668
2574
|
return value === 0 ? value : 0;
|
|
1669
2575
|
}
|
|
@@ -1675,10 +2581,6 @@ function toFinite$2(value) {
|
|
|
1675
2581
|
return value === value ? value : 0;
|
|
1676
2582
|
}
|
|
1677
2583
|
|
|
1678
|
-
var toFinite_1 = toFinite$2;
|
|
1679
|
-
|
|
1680
|
-
var toFinite$1 = toFinite_1;
|
|
1681
|
-
|
|
1682
2584
|
/**
|
|
1683
2585
|
* Converts `value` to an integer.
|
|
1684
2586
|
*
|
|
@@ -1705,19 +2607,13 @@ var toFinite$1 = toFinite_1;
|
|
|
1705
2607
|
* _.toInteger('3.2');
|
|
1706
2608
|
* // => 3
|
|
1707
2609
|
*/
|
|
1708
|
-
function toInteger
|
|
1709
|
-
var result = toFinite
|
|
2610
|
+
function toInteger(value) {
|
|
2611
|
+
var result = toFinite(value),
|
|
1710
2612
|
remainder = result % 1;
|
|
1711
2613
|
|
|
1712
2614
|
return result === result ? (remainder ? result - remainder : result) : 0;
|
|
1713
2615
|
}
|
|
1714
2616
|
|
|
1715
|
-
var toInteger_1 = toInteger$1;
|
|
1716
|
-
|
|
1717
|
-
var baseFindIndex = _baseFindIndex,
|
|
1718
|
-
baseIteratee$1 = _baseIteratee,
|
|
1719
|
-
toInteger = toInteger_1;
|
|
1720
|
-
|
|
1721
2617
|
/* Built-in method references for those with the same name as other `lodash` methods. */
|
|
1722
2618
|
var nativeMax$1 = Math.max;
|
|
1723
2619
|
|
|
@@ -1765,13 +2661,10 @@ function findIndex(array, predicate, fromIndex) {
|
|
|
1765
2661
|
if (index < 0) {
|
|
1766
2662
|
index = nativeMax$1(length + index, 0);
|
|
1767
2663
|
}
|
|
1768
|
-
return baseFindIndex(array, baseIteratee
|
|
2664
|
+
return baseFindIndex(array, baseIteratee(predicate), index);
|
|
1769
2665
|
}
|
|
1770
2666
|
|
|
1771
|
-
var findIndex_1 = findIndex;
|
|
1772
|
-
|
|
1773
2667
|
/* Built-in method references for those with the same name as other `lodash` methods. */
|
|
1774
|
-
|
|
1775
2668
|
var nativeCeil = Math.ceil,
|
|
1776
2669
|
nativeMax = Math.max;
|
|
1777
2670
|
|
|
@@ -1786,7 +2679,7 @@ var nativeCeil = Math.ceil,
|
|
|
1786
2679
|
* @param {boolean} [fromRight] Specify iterating from right to left.
|
|
1787
2680
|
* @returns {Array} Returns the range of numbers.
|
|
1788
2681
|
*/
|
|
1789
|
-
function baseRange
|
|
2682
|
+
function baseRange(start, end, step, fromRight) {
|
|
1790
2683
|
var index = -1,
|
|
1791
2684
|
length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),
|
|
1792
2685
|
result = Array(length);
|
|
@@ -1798,13 +2691,6 @@ function baseRange$1(start, end, step, fromRight) {
|
|
|
1798
2691
|
return result;
|
|
1799
2692
|
}
|
|
1800
2693
|
|
|
1801
|
-
var _baseRange = baseRange$1;
|
|
1802
|
-
|
|
1803
|
-
var eq = eq_1,
|
|
1804
|
-
isArrayLike$1 = isArrayLike_1,
|
|
1805
|
-
isIndex = _isIndex,
|
|
1806
|
-
isObject = isObject_1;
|
|
1807
|
-
|
|
1808
2694
|
/**
|
|
1809
2695
|
* Checks if the given arguments are from an iteratee call.
|
|
1810
2696
|
*
|
|
@@ -1815,13 +2701,13 @@ var eq = eq_1,
|
|
|
1815
2701
|
* @returns {boolean} Returns `true` if the arguments are from an iteratee call,
|
|
1816
2702
|
* else `false`.
|
|
1817
2703
|
*/
|
|
1818
|
-
function isIterateeCall
|
|
2704
|
+
function isIterateeCall(value, index, object) {
|
|
1819
2705
|
if (!isObject(object)) {
|
|
1820
2706
|
return false;
|
|
1821
2707
|
}
|
|
1822
2708
|
var type = typeof index;
|
|
1823
2709
|
if (type == 'number'
|
|
1824
|
-
? (isArrayLike
|
|
2710
|
+
? (isArrayLike(object) && isIndex(index, object.length))
|
|
1825
2711
|
: (type == 'string' && index in object)
|
|
1826
2712
|
) {
|
|
1827
2713
|
return eq(object[index], value);
|
|
@@ -1829,12 +2715,6 @@ function isIterateeCall$1(value, index, object) {
|
|
|
1829
2715
|
return false;
|
|
1830
2716
|
}
|
|
1831
2717
|
|
|
1832
|
-
var _isIterateeCall = isIterateeCall$1;
|
|
1833
|
-
|
|
1834
|
-
var baseRange = _baseRange,
|
|
1835
|
-
isIterateeCall = _isIterateeCall,
|
|
1836
|
-
toFinite = toFinite_1;
|
|
1837
|
-
|
|
1838
2718
|
/**
|
|
1839
2719
|
* Creates a `_.range` or `_.rangeRight` function.
|
|
1840
2720
|
*
|
|
@@ -1842,7 +2722,7 @@ var baseRange = _baseRange,
|
|
|
1842
2722
|
* @param {boolean} [fromRight] Specify iterating from right to left.
|
|
1843
2723
|
* @returns {Function} Returns the new range function.
|
|
1844
2724
|
*/
|
|
1845
|
-
function createRange
|
|
2725
|
+
function createRange(fromRight) {
|
|
1846
2726
|
return function(start, end, step) {
|
|
1847
2727
|
if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {
|
|
1848
2728
|
end = step = undefined;
|
|
@@ -1860,10 +2740,6 @@ function createRange$1(fromRight) {
|
|
|
1860
2740
|
};
|
|
1861
2741
|
}
|
|
1862
2742
|
|
|
1863
|
-
var _createRange = createRange$1;
|
|
1864
|
-
|
|
1865
|
-
var createRange = _createRange;
|
|
1866
|
-
|
|
1867
2743
|
/**
|
|
1868
2744
|
* Creates an array of numbers (positive and/or negative) progressing from
|
|
1869
2745
|
* `start` up to, but not including, `end`. A step of `-1` is used if a negative
|
|
@@ -1907,7 +2783,7 @@ var createRange = _createRange;
|
|
|
1907
2783
|
*/
|
|
1908
2784
|
var range = createRange();
|
|
1909
2785
|
|
|
1910
|
-
|
|
2786
|
+
const range$1 = range;
|
|
1911
2787
|
|
|
1912
2788
|
const appendToMap = (map, propName, value) => {
|
|
1913
2789
|
const items = map.get(propName);
|
|
@@ -2170,7 +3046,7 @@ class DataStore {
|
|
|
2170
3046
|
}
|
|
2171
3047
|
// clear items
|
|
2172
3048
|
this.store.set('items', []);
|
|
2173
|
-
const items =
|
|
3049
|
+
const items = range$1(0, (source === null || source === void 0 ? void 0 : source.length) || 0);
|
|
2174
3050
|
// set proxy first
|
|
2175
3051
|
setStore(this.store, {
|
|
2176
3052
|
source,
|
|
@@ -2267,7 +3143,7 @@ function setItems(store, items) {
|
|
|
2267
3143
|
function getSourceItemVirtualIndexByProp(store, prop) {
|
|
2268
3144
|
const items = store.get('items');
|
|
2269
3145
|
const source = store.get('source');
|
|
2270
|
-
const physicalIndex =
|
|
3146
|
+
const physicalIndex = findIndex(source, { prop });
|
|
2271
3147
|
return items.indexOf(physicalIndex);
|
|
2272
3148
|
}
|
|
2273
3149
|
|
|
@@ -2283,8 +3159,7 @@ function getSourceItemVirtualIndexByProp(store, prop) {
|
|
|
2283
3159
|
* the initial value.
|
|
2284
3160
|
* @returns {*} Returns the accumulated value.
|
|
2285
3161
|
*/
|
|
2286
|
-
|
|
2287
|
-
function arrayReduce$1(array, iteratee, accumulator, initAccum) {
|
|
3162
|
+
function arrayReduce(array, iteratee, accumulator, initAccum) {
|
|
2288
3163
|
var index = -1,
|
|
2289
3164
|
length = array == null ? 0 : array.length;
|
|
2290
3165
|
|
|
@@ -2297,8 +3172,6 @@ function arrayReduce$1(array, iteratee, accumulator, initAccum) {
|
|
|
2297
3172
|
return accumulator;
|
|
2298
3173
|
}
|
|
2299
3174
|
|
|
2300
|
-
var _arrayReduce = arrayReduce$1;
|
|
2301
|
-
|
|
2302
3175
|
/**
|
|
2303
3176
|
* Creates a base function for methods like `_.forIn` and `_.forOwn`.
|
|
2304
3177
|
*
|
|
@@ -2306,8 +3179,7 @@ var _arrayReduce = arrayReduce$1;
|
|
|
2306
3179
|
* @param {boolean} [fromRight] Specify iterating from right to left.
|
|
2307
3180
|
* @returns {Function} Returns the new base function.
|
|
2308
3181
|
*/
|
|
2309
|
-
|
|
2310
|
-
function createBaseFor$1(fromRight) {
|
|
3182
|
+
function createBaseFor(fromRight) {
|
|
2311
3183
|
return function(object, iteratee, keysFunc) {
|
|
2312
3184
|
var index = -1,
|
|
2313
3185
|
iterable = Object(object),
|
|
@@ -2324,10 +3196,6 @@ function createBaseFor$1(fromRight) {
|
|
|
2324
3196
|
};
|
|
2325
3197
|
}
|
|
2326
3198
|
|
|
2327
|
-
var _createBaseFor = createBaseFor$1;
|
|
2328
|
-
|
|
2329
|
-
var createBaseFor = _createBaseFor;
|
|
2330
|
-
|
|
2331
3199
|
/**
|
|
2332
3200
|
* The base implementation of `baseForOwn` which iterates over `object`
|
|
2333
3201
|
* properties returned by `keysFunc` and invokes `iteratee` for each property.
|
|
@@ -2339,12 +3207,9 @@ var createBaseFor = _createBaseFor;
|
|
|
2339
3207
|
* @param {Function} keysFunc The function to get the keys of `object`.
|
|
2340
3208
|
* @returns {Object} Returns `object`.
|
|
2341
3209
|
*/
|
|
2342
|
-
var baseFor
|
|
2343
|
-
|
|
2344
|
-
var _baseFor = baseFor$1;
|
|
3210
|
+
var baseFor = createBaseFor();
|
|
2345
3211
|
|
|
2346
|
-
|
|
2347
|
-
keys = keys_1;
|
|
3212
|
+
const baseFor$1 = baseFor;
|
|
2348
3213
|
|
|
2349
3214
|
/**
|
|
2350
3215
|
* The base implementation of `_.forOwn` without support for iteratee shorthands.
|
|
@@ -2354,14 +3219,10 @@ var baseFor = _baseFor,
|
|
|
2354
3219
|
* @param {Function} iteratee The function invoked per iteration.
|
|
2355
3220
|
* @returns {Object} Returns `object`.
|
|
2356
3221
|
*/
|
|
2357
|
-
function baseForOwn
|
|
2358
|
-
return object && baseFor(object, iteratee, keys);
|
|
3222
|
+
function baseForOwn(object, iteratee) {
|
|
3223
|
+
return object && baseFor$1(object, iteratee, keys);
|
|
2359
3224
|
}
|
|
2360
3225
|
|
|
2361
|
-
var _baseForOwn = baseForOwn$1;
|
|
2362
|
-
|
|
2363
|
-
var isArrayLike = isArrayLike_1;
|
|
2364
|
-
|
|
2365
3226
|
/**
|
|
2366
3227
|
* Creates a `baseEach` or `baseEachRight` function.
|
|
2367
3228
|
*
|
|
@@ -2370,7 +3231,7 @@ var isArrayLike = isArrayLike_1;
|
|
|
2370
3231
|
* @param {boolean} [fromRight] Specify iterating from right to left.
|
|
2371
3232
|
* @returns {Function} Returns the new base function.
|
|
2372
3233
|
*/
|
|
2373
|
-
function createBaseEach
|
|
3234
|
+
function createBaseEach(eachFunc, fromRight) {
|
|
2374
3235
|
return function(collection, iteratee) {
|
|
2375
3236
|
if (collection == null) {
|
|
2376
3237
|
return collection;
|
|
@@ -2391,11 +3252,6 @@ function createBaseEach$1(eachFunc, fromRight) {
|
|
|
2391
3252
|
};
|
|
2392
3253
|
}
|
|
2393
3254
|
|
|
2394
|
-
var _createBaseEach = createBaseEach$1;
|
|
2395
|
-
|
|
2396
|
-
var baseForOwn = _baseForOwn,
|
|
2397
|
-
createBaseEach = _createBaseEach;
|
|
2398
|
-
|
|
2399
3255
|
/**
|
|
2400
3256
|
* The base implementation of `_.forEach` without support for iteratee shorthands.
|
|
2401
3257
|
*
|
|
@@ -2404,9 +3260,9 @@ var baseForOwn = _baseForOwn,
|
|
|
2404
3260
|
* @param {Function} iteratee The function invoked per iteration.
|
|
2405
3261
|
* @returns {Array|Object} Returns `collection`.
|
|
2406
3262
|
*/
|
|
2407
|
-
var baseEach
|
|
3263
|
+
var baseEach = createBaseEach(baseForOwn);
|
|
2408
3264
|
|
|
2409
|
-
|
|
3265
|
+
const baseEach$1 = baseEach;
|
|
2410
3266
|
|
|
2411
3267
|
/**
|
|
2412
3268
|
* The base implementation of `_.reduce` and `_.reduceRight`, without support
|
|
@@ -2421,8 +3277,7 @@ var _baseEach = baseEach$1;
|
|
|
2421
3277
|
* @param {Function} eachFunc The function to iterate over `collection`.
|
|
2422
3278
|
* @returns {*} Returns the accumulated value.
|
|
2423
3279
|
*/
|
|
2424
|
-
|
|
2425
|
-
function baseReduce$1(collection, iteratee, accumulator, initAccum, eachFunc) {
|
|
3280
|
+
function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {
|
|
2426
3281
|
eachFunc(collection, function(value, index, collection) {
|
|
2427
3282
|
accumulator = initAccum
|
|
2428
3283
|
? (initAccum = false, value)
|
|
@@ -2431,14 +3286,6 @@ function baseReduce$1(collection, iteratee, accumulator, initAccum, eachFunc) {
|
|
|
2431
3286
|
return accumulator;
|
|
2432
3287
|
}
|
|
2433
3288
|
|
|
2434
|
-
var _baseReduce = baseReduce$1;
|
|
2435
|
-
|
|
2436
|
-
var arrayReduce = _arrayReduce,
|
|
2437
|
-
baseEach = _baseEach,
|
|
2438
|
-
baseIteratee = _baseIteratee,
|
|
2439
|
-
baseReduce = _baseReduce,
|
|
2440
|
-
isArray = isArray_1;
|
|
2441
|
-
|
|
2442
3289
|
/**
|
|
2443
3290
|
* Reduces `collection` to a value which is the accumulated result of running
|
|
2444
3291
|
* each element in `collection` thru `iteratee`, where each successive
|
|
@@ -2477,14 +3324,12 @@ var arrayReduce = _arrayReduce,
|
|
|
2477
3324
|
* // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)
|
|
2478
3325
|
*/
|
|
2479
3326
|
function reduce(collection, iteratee, accumulator) {
|
|
2480
|
-
var func = isArray(collection) ? arrayReduce : baseReduce,
|
|
3327
|
+
var func = isArray$1(collection) ? arrayReduce : baseReduce,
|
|
2481
3328
|
initAccum = arguments.length < 3;
|
|
2482
3329
|
|
|
2483
|
-
return func(collection, baseIteratee(iteratee), accumulator, initAccum, baseEach);
|
|
3330
|
+
return func(collection, baseIteratee(iteratee), accumulator, initAccum, baseEach$1);
|
|
2484
3331
|
}
|
|
2485
3332
|
|
|
2486
|
-
|
|
2487
|
-
|
|
2488
|
-
export { DataStore as D, _isIterateeCall as _, getVisibleSourceItem as a, getSourceItem as b, setSourceByPhysicalIndex as c, setItems as d, getSourceItemVirtualIndexByProp as e, gatherTrimmedItems as f, getPhysical as g, setStore as h, createStore as i, toInteger_1 as j, isArray_1 as k, _baseProperty as l, _baseKeys as m, isArrayLike_1 as n, range_1 as o, proxyPlugin as p, findIndex_1 as q, reduce_1 as r, setSourceByVirtualIndex as s, trimmedPlugin as t, _baseEach as u, _baseIteratee as v, identity_1 as w };
|
|
3333
|
+
export { DataStore as D, getVisibleSourceItem as a, getSourceItem as b, setSourceByPhysicalIndex as c, setItems as d, getSourceItemVirtualIndexByProp as e, gatherTrimmedItems as f, getPhysical as g, setStore as h, createStore as i, toInteger as j, isIterateeCall as k, isArray$1 as l, baseProperty as m, isArrayLike as n, getTag$1 as o, proxyPlugin as p, baseKeys as q, reduce as r, setSourceByVirtualIndex as s, trimmedPlugin as t, range$1 as u, findIndex as v, getNative as w, baseEach$1 as x, baseIteratee as y, identity as z };
|
|
2489
3334
|
|
|
2490
3335
|
//# sourceMappingURL=reduce.js.map
|