wcs-core 4.0.2 → 4.1.0
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/README.md +4 -2
- package/dist/cjs/grid-pagination-4b55c908.js.map +1 -1
- package/dist/cjs/isEqual-9ea7ee49.js +2047 -0
- package/dist/cjs/isEqual-9ea7ee49.js.map +1 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/wcs-button.cjs.entry.js +4 -0
- package/dist/cjs/wcs-button.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-com-nav.cjs.entry.js +22 -2
- package/dist/cjs/wcs-com-nav.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-counter.cjs.entry.js +61 -34
- package/dist/cjs/wcs-counter.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-error_2.cjs.entry.js +1 -1
- package/dist/cjs/wcs-error_2.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-grid-column.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-grid-custom-cell.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-grid.cjs.entry.js +1104 -12
- package/dist/cjs/wcs-grid.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-native-select.cjs.entry.js +1 -1
- package/dist/cjs/wcs-native-select.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-select_2.cjs.entry.js +2 -2
- package/dist/cjs/wcs-select_2.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-skeleton-circle.cjs.entry.js +23 -0
- package/dist/cjs/wcs-skeleton-circle.cjs.entry.js.map +1 -0
- package/dist/cjs/wcs-skeleton-rectangle.cjs.entry.js +25 -0
- package/dist/cjs/wcs-skeleton-rectangle.cjs.entry.js.map +1 -0
- package/dist/cjs/wcs-skeleton-text.cjs.entry.js +23 -0
- package/dist/cjs/wcs-skeleton-text.cjs.entry.js.map +1 -0
- package/dist/cjs/wcs.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +3 -0
- package/dist/collection/components/button/button.js +12 -0
- package/dist/collection/components/button/button.js.map +1 -1
- package/dist/collection/components/com-nav/com-nav.css +15 -0
- package/dist/collection/components/com-nav/com-nav.js +27 -1
- package/dist/collection/components/com-nav/com-nav.js.map +1 -1
- package/dist/collection/components/counter/counter.js +64 -40
- package/dist/collection/components/counter/counter.js.map +1 -1
- package/dist/collection/components/form-field/form-field.js +1 -1
- package/dist/collection/components/form-field/form-field.js.map +1 -1
- package/dist/collection/components/grid/grid.js +30 -20
- package/dist/collection/components/grid/grid.js.map +1 -1
- package/dist/collection/components/grid-column/grid-column.js +16 -11
- package/dist/collection/components/grid-column/grid-column.js.map +1 -1
- package/dist/collection/components/grid-custom-cell/grid-custom-cell.js +3 -0
- package/dist/collection/components/grid-custom-cell/grid-custom-cell.js.map +1 -1
- package/dist/collection/components/grid-pagination/grid-pagination.js +9 -6
- package/dist/collection/components/grid-pagination/grid-pagination.js.map +1 -1
- package/dist/collection/components/native-select/native-select.css +5 -3
- package/dist/collection/components/select/select.js +3 -3
- package/dist/collection/components/select/select.js.map +1 -1
- package/dist/collection/components/skeleton/skeleton-interface.js +2 -0
- package/dist/collection/components/skeleton/skeleton-interface.js.map +1 -0
- package/dist/collection/components/skeleton-circle/skeleton-circle.css +47 -0
- package/dist/collection/components/skeleton-circle/skeleton-circle.js +71 -0
- package/dist/collection/components/skeleton-circle/skeleton-circle.js.map +1 -0
- package/dist/collection/components/skeleton-rectangle/skeleton-rectangle.css +53 -0
- package/dist/collection/components/skeleton-rectangle/skeleton-rectangle.js +121 -0
- package/dist/collection/components/skeleton-rectangle/skeleton-rectangle.js.map +1 -0
- package/dist/collection/components/skeleton-text/skeleton-text.css +62 -0
- package/dist/collection/components/skeleton-text/skeleton-text.js +71 -0
- package/dist/collection/components/skeleton-text/skeleton-text.js.map +1 -0
- package/dist/collection/shared-types.js.map +1 -1
- package/dist/esm/grid-pagination-41354861.js.map +1 -1
- package/dist/esm/isEqual-20881bca.js +2020 -0
- package/dist/esm/isEqual-20881bca.js.map +1 -0
- package/dist/esm/loader.js +1 -1
- package/dist/esm/wcs-button.entry.js +4 -0
- package/dist/esm/wcs-button.entry.js.map +1 -1
- package/dist/esm/wcs-com-nav.entry.js +22 -2
- package/dist/esm/wcs-com-nav.entry.js.map +1 -1
- package/dist/esm/wcs-counter.entry.js +61 -34
- package/dist/esm/wcs-counter.entry.js.map +1 -1
- package/dist/esm/wcs-error_2.entry.js +1 -1
- package/dist/esm/wcs-error_2.entry.js.map +1 -1
- package/dist/esm/wcs-grid-column.entry.js.map +1 -1
- package/dist/esm/wcs-grid-custom-cell.entry.js.map +1 -1
- package/dist/esm/wcs-grid.entry.js +1104 -12
- package/dist/esm/wcs-grid.entry.js.map +1 -1
- package/dist/esm/wcs-native-select.entry.js +1 -1
- package/dist/esm/wcs-native-select.entry.js.map +1 -1
- package/dist/esm/wcs-select_2.entry.js +2 -2
- package/dist/esm/wcs-select_2.entry.js.map +1 -1
- package/dist/esm/wcs-skeleton-circle.entry.js +19 -0
- package/dist/esm/wcs-skeleton-circle.entry.js.map +1 -0
- package/dist/esm/wcs-skeleton-rectangle.entry.js +21 -0
- package/dist/esm/wcs-skeleton-rectangle.entry.js.map +1 -0
- package/dist/esm/wcs-skeleton-text.entry.js +19 -0
- package/dist/esm/wcs-skeleton-text.entry.js.map +1 -0
- package/dist/esm/wcs.js +1 -1
- package/dist/types/components/button/button.d.ts +12 -0
- package/dist/types/components/com-nav/com-nav.d.ts +11 -0
- package/dist/types/components/counter/counter.d.ts +8 -10
- package/dist/types/components/grid/grid.d.ts +22 -5
- package/dist/types/components/grid-column/grid-column.d.ts +37 -1
- package/dist/types/components/grid-custom-cell/grid-custom-cell.d.ts +3 -0
- package/dist/types/components/grid-pagination/grid-pagination.d.ts +26 -0
- package/dist/types/components/skeleton/skeleton-interface.d.ts +1 -0
- package/dist/types/components/skeleton-circle/skeleton-circle.d.ts +16 -0
- package/dist/types/components/skeleton-rectangle/skeleton-rectangle.d.ts +27 -0
- package/dist/types/components/skeleton-text/skeleton-text.d.ts +16 -0
- package/dist/types/components.d.ts +350 -16
- package/dist/types/shared-types.d.ts +22 -0
- package/dist/wcs/p-15058c29.entry.js +2 -0
- package/dist/wcs/p-15058c29.entry.js.map +1 -0
- package/dist/wcs/p-22480bd8.entry.js +2 -0
- package/dist/wcs/p-22480bd8.entry.js.map +1 -0
- package/dist/wcs/p-292ca644.entry.js +2 -0
- package/dist/wcs/p-292ca644.entry.js.map +1 -0
- package/dist/wcs/p-30d8f9c3.entry.js.map +1 -1
- package/dist/wcs/{p-26e7de5c.entry.js → p-405140f9.entry.js} +3 -3
- package/dist/wcs/{p-26e7de5c.entry.js.map → p-405140f9.entry.js.map} +1 -1
- package/dist/wcs/p-475ac7c5.js.map +1 -1
- package/dist/wcs/{p-4b2d8a6d.entry.js → p-57560d7d.entry.js} +2 -2
- package/dist/wcs/{p-4b2d8a6d.entry.js.map → p-57560d7d.entry.js.map} +1 -1
- package/dist/wcs/p-627bbb6a.entry.js.map +1 -1
- package/dist/wcs/p-6b66ce85.entry.js +2 -0
- package/dist/wcs/p-6b66ce85.entry.js.map +1 -0
- package/dist/wcs/p-8181f8cd.js +2 -0
- package/dist/wcs/p-8181f8cd.js.map +1 -0
- package/dist/wcs/p-84afb8af.entry.js +2 -0
- package/dist/wcs/p-84afb8af.entry.js.map +1 -0
- package/dist/wcs/p-b229a91c.entry.js.map +1 -1
- package/dist/wcs/p-cfcacc44.entry.js +2 -0
- package/dist/wcs/p-cfcacc44.entry.js.map +1 -0
- package/dist/wcs/p-dfddec76.entry.js +2 -0
- package/dist/wcs/p-dfddec76.entry.js.map +1 -0
- package/dist/wcs/wcs.esm.js +1 -1
- package/dist/wcs/wcs.esm.js.map +1 -1
- package/package.json +5 -9
- package/dist/cjs/lodash-776d6f03.js +0 -17211
- package/dist/cjs/lodash-776d6f03.js.map +0 -1
- package/dist/esm/lodash-d6d9d079.js +0 -17209
- package/dist/esm/lodash-d6d9d079.js.map +0 -1
- package/dist/wcs/p-5a7999bb.entry.js +0 -2
- package/dist/wcs/p-5a7999bb.entry.js.map +0 -1
- package/dist/wcs/p-a24fa4f4.entry.js +0 -2
- package/dist/wcs/p-a24fa4f4.entry.js.map +0 -1
- package/dist/wcs/p-adef7aaf.js +0 -2
- package/dist/wcs/p-adef7aaf.js.map +0 -1
- package/dist/wcs/p-bcb8b731.entry.js +0 -2
- package/dist/wcs/p-bcb8b731.entry.js.map +0 -1
- package/dist/wcs/p-f386bb8b.entry.js +0 -2
- package/dist/wcs/p-f386bb8b.entry.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as registerInstance, c as createEvent, f as forceUpdate, h, H as Host, g as getElement } from './index-dc4d96d4.js';
|
|
2
|
-
import { l as lodash } from './lodash-d6d9d079.js';
|
|
3
2
|
import { G as GridPagination } from './grid-pagination-41354861.js';
|
|
3
|
+
import { i as isObjectLike, b as baseGetTag, a as isArray, S as Symbol, c as isObject, g as getNative, e as eq, d as isPrototype, f as isArrayLike, h as arrayLikeKeys, M as MapCache, o as overArg, k as keys, r as root, j as getSymbols, s as stubArray, l as arrayPush, m as baseGetAllKeys, U as Uint8Array$1, n as getTag, p as baseUnary, q as nodeUtil, t as isBuffer, u as Stack, v as getAllKeys, w as isEqual } from './isEqual-20881bca.js';
|
|
4
4
|
|
|
5
5
|
function getSortOrderInteger(sortOrder) {
|
|
6
6
|
switch (sortOrder) {
|
|
@@ -85,6 +85,1097 @@ function v4(options, buf, offset) {
|
|
|
85
85
|
return stringify(rnds);
|
|
86
86
|
}
|
|
87
87
|
|
|
88
|
+
/** `Object#toString` result references. */
|
|
89
|
+
var symbolTag$2 = '[object Symbol]';
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Checks if `value` is classified as a `Symbol` primitive or object.
|
|
93
|
+
*
|
|
94
|
+
* @static
|
|
95
|
+
* @memberOf _
|
|
96
|
+
* @since 4.0.0
|
|
97
|
+
* @category Lang
|
|
98
|
+
* @param {*} value The value to check.
|
|
99
|
+
* @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
|
|
100
|
+
* @example
|
|
101
|
+
*
|
|
102
|
+
* _.isSymbol(Symbol.iterator);
|
|
103
|
+
* // => true
|
|
104
|
+
*
|
|
105
|
+
* _.isSymbol('abc');
|
|
106
|
+
* // => false
|
|
107
|
+
*/
|
|
108
|
+
function isSymbol(value) {
|
|
109
|
+
return typeof value == 'symbol' ||
|
|
110
|
+
(isObjectLike(value) && baseGetTag(value) == symbolTag$2);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* A specialized version of `_.map` for arrays without support for iteratee
|
|
115
|
+
* shorthands.
|
|
116
|
+
*
|
|
117
|
+
* @private
|
|
118
|
+
* @param {Array} [array] The array to iterate over.
|
|
119
|
+
* @param {Function} iteratee The function invoked per iteration.
|
|
120
|
+
* @returns {Array} Returns the new mapped array.
|
|
121
|
+
*/
|
|
122
|
+
function arrayMap(array, iteratee) {
|
|
123
|
+
var index = -1,
|
|
124
|
+
length = array == null ? 0 : array.length,
|
|
125
|
+
result = Array(length);
|
|
126
|
+
|
|
127
|
+
while (++index < length) {
|
|
128
|
+
result[index] = iteratee(array[index], index, array);
|
|
129
|
+
}
|
|
130
|
+
return result;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/** Used as references for various `Number` constants. */
|
|
134
|
+
var INFINITY$1 = 1 / 0;
|
|
135
|
+
|
|
136
|
+
/** Used to convert symbols to primitives and strings. */
|
|
137
|
+
var symbolProto$1 = Symbol ? Symbol.prototype : undefined,
|
|
138
|
+
symbolToString = symbolProto$1 ? symbolProto$1.toString : undefined;
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* The base implementation of `_.toString` which doesn't convert nullish
|
|
142
|
+
* values to empty strings.
|
|
143
|
+
*
|
|
144
|
+
* @private
|
|
145
|
+
* @param {*} value The value to process.
|
|
146
|
+
* @returns {string} Returns the string.
|
|
147
|
+
*/
|
|
148
|
+
function baseToString(value) {
|
|
149
|
+
// Exit early for strings to avoid a performance hit in some environments.
|
|
150
|
+
if (typeof value == 'string') {
|
|
151
|
+
return value;
|
|
152
|
+
}
|
|
153
|
+
if (isArray(value)) {
|
|
154
|
+
// Recursively convert values (susceptible to call stack limits).
|
|
155
|
+
return arrayMap(value, baseToString) + '';
|
|
156
|
+
}
|
|
157
|
+
if (isSymbol(value)) {
|
|
158
|
+
return symbolToString ? symbolToString.call(value) : '';
|
|
159
|
+
}
|
|
160
|
+
var result = (value + '');
|
|
161
|
+
return (result == '0' && (1 / value) == -INFINITY$1) ? '-0' : result;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
/** Built-in value references. */
|
|
165
|
+
var objectCreate = Object.create;
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* The base implementation of `_.create` without support for assigning
|
|
169
|
+
* properties to the created object.
|
|
170
|
+
*
|
|
171
|
+
* @private
|
|
172
|
+
* @param {Object} proto The object to inherit from.
|
|
173
|
+
* @returns {Object} Returns the new object.
|
|
174
|
+
*/
|
|
175
|
+
var baseCreate = (function() {
|
|
176
|
+
function object() {}
|
|
177
|
+
return function(proto) {
|
|
178
|
+
if (!isObject(proto)) {
|
|
179
|
+
return {};
|
|
180
|
+
}
|
|
181
|
+
if (objectCreate) {
|
|
182
|
+
return objectCreate(proto);
|
|
183
|
+
}
|
|
184
|
+
object.prototype = proto;
|
|
185
|
+
var result = new object;
|
|
186
|
+
object.prototype = undefined;
|
|
187
|
+
return result;
|
|
188
|
+
};
|
|
189
|
+
}());
|
|
190
|
+
|
|
191
|
+
/**
|
|
192
|
+
* Copies the values of `source` to `array`.
|
|
193
|
+
*
|
|
194
|
+
* @private
|
|
195
|
+
* @param {Array} source The array to copy values from.
|
|
196
|
+
* @param {Array} [array=[]] The array to copy values to.
|
|
197
|
+
* @returns {Array} Returns `array`.
|
|
198
|
+
*/
|
|
199
|
+
function copyArray(source, array) {
|
|
200
|
+
var index = -1,
|
|
201
|
+
length = source.length;
|
|
202
|
+
|
|
203
|
+
array || (array = Array(length));
|
|
204
|
+
while (++index < length) {
|
|
205
|
+
array[index] = source[index];
|
|
206
|
+
}
|
|
207
|
+
return array;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
var defineProperty = (function() {
|
|
211
|
+
try {
|
|
212
|
+
var func = getNative(Object, 'defineProperty');
|
|
213
|
+
func({}, '', {});
|
|
214
|
+
return func;
|
|
215
|
+
} catch (e) {}
|
|
216
|
+
}());
|
|
217
|
+
|
|
218
|
+
/**
|
|
219
|
+
* A specialized version of `_.forEach` for arrays without support for
|
|
220
|
+
* iteratee shorthands.
|
|
221
|
+
*
|
|
222
|
+
* @private
|
|
223
|
+
* @param {Array} [array] The array to iterate over.
|
|
224
|
+
* @param {Function} iteratee The function invoked per iteration.
|
|
225
|
+
* @returns {Array} Returns `array`.
|
|
226
|
+
*/
|
|
227
|
+
function arrayEach(array, iteratee) {
|
|
228
|
+
var index = -1,
|
|
229
|
+
length = array == null ? 0 : array.length;
|
|
230
|
+
|
|
231
|
+
while (++index < length) {
|
|
232
|
+
if (iteratee(array[index], index, array) === false) {
|
|
233
|
+
break;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
return array;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
/**
|
|
240
|
+
* The base implementation of `assignValue` and `assignMergeValue` without
|
|
241
|
+
* value checks.
|
|
242
|
+
*
|
|
243
|
+
* @private
|
|
244
|
+
* @param {Object} object The object to modify.
|
|
245
|
+
* @param {string} key The key of the property to assign.
|
|
246
|
+
* @param {*} value The value to assign.
|
|
247
|
+
*/
|
|
248
|
+
function baseAssignValue(object, key, value) {
|
|
249
|
+
if (key == '__proto__' && defineProperty) {
|
|
250
|
+
defineProperty(object, key, {
|
|
251
|
+
'configurable': true,
|
|
252
|
+
'enumerable': true,
|
|
253
|
+
'value': value,
|
|
254
|
+
'writable': true
|
|
255
|
+
});
|
|
256
|
+
} else {
|
|
257
|
+
object[key] = value;
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
/** Used for built-in method references. */
|
|
262
|
+
var objectProto$2 = Object.prototype;
|
|
263
|
+
|
|
264
|
+
/** Used to check objects for own properties. */
|
|
265
|
+
var hasOwnProperty$2 = objectProto$2.hasOwnProperty;
|
|
266
|
+
|
|
267
|
+
/**
|
|
268
|
+
* Assigns `value` to `key` of `object` if the existing value is not equivalent
|
|
269
|
+
* using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
|
|
270
|
+
* for equality comparisons.
|
|
271
|
+
*
|
|
272
|
+
* @private
|
|
273
|
+
* @param {Object} object The object to modify.
|
|
274
|
+
* @param {string} key The key of the property to assign.
|
|
275
|
+
* @param {*} value The value to assign.
|
|
276
|
+
*/
|
|
277
|
+
function assignValue(object, key, value) {
|
|
278
|
+
var objValue = object[key];
|
|
279
|
+
if (!(hasOwnProperty$2.call(object, key) && eq(objValue, value)) ||
|
|
280
|
+
(value === undefined && !(key in object))) {
|
|
281
|
+
baseAssignValue(object, key, value);
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
/**
|
|
286
|
+
* Copies properties of `source` to `object`.
|
|
287
|
+
*
|
|
288
|
+
* @private
|
|
289
|
+
* @param {Object} source The object to copy properties from.
|
|
290
|
+
* @param {Array} props The property identifiers to copy.
|
|
291
|
+
* @param {Object} [object={}] The object to copy properties to.
|
|
292
|
+
* @param {Function} [customizer] The function to customize copied values.
|
|
293
|
+
* @returns {Object} Returns `object`.
|
|
294
|
+
*/
|
|
295
|
+
function copyObject(source, props, object, customizer) {
|
|
296
|
+
var isNew = !object;
|
|
297
|
+
object || (object = {});
|
|
298
|
+
|
|
299
|
+
var index = -1,
|
|
300
|
+
length = props.length;
|
|
301
|
+
|
|
302
|
+
while (++index < length) {
|
|
303
|
+
var key = props[index];
|
|
304
|
+
|
|
305
|
+
var newValue = customizer
|
|
306
|
+
? customizer(object[key], source[key], key, object, source)
|
|
307
|
+
: undefined;
|
|
308
|
+
|
|
309
|
+
if (newValue === undefined) {
|
|
310
|
+
newValue = source[key];
|
|
311
|
+
}
|
|
312
|
+
if (isNew) {
|
|
313
|
+
baseAssignValue(object, key, newValue);
|
|
314
|
+
} else {
|
|
315
|
+
assignValue(object, key, newValue);
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
return object;
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
/**
|
|
322
|
+
* This function is like
|
|
323
|
+
* [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
|
|
324
|
+
* except that it includes inherited enumerable properties.
|
|
325
|
+
*
|
|
326
|
+
* @private
|
|
327
|
+
* @param {Object} object The object to query.
|
|
328
|
+
* @returns {Array} Returns the array of property names.
|
|
329
|
+
*/
|
|
330
|
+
function nativeKeysIn(object) {
|
|
331
|
+
var result = [];
|
|
332
|
+
if (object != null) {
|
|
333
|
+
for (var key in Object(object)) {
|
|
334
|
+
result.push(key);
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
return result;
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
/** Used for built-in method references. */
|
|
341
|
+
var objectProto$1 = Object.prototype;
|
|
342
|
+
|
|
343
|
+
/** Used to check objects for own properties. */
|
|
344
|
+
var hasOwnProperty$1 = objectProto$1.hasOwnProperty;
|
|
345
|
+
|
|
346
|
+
/**
|
|
347
|
+
* The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.
|
|
348
|
+
*
|
|
349
|
+
* @private
|
|
350
|
+
* @param {Object} object The object to query.
|
|
351
|
+
* @returns {Array} Returns the array of property names.
|
|
352
|
+
*/
|
|
353
|
+
function baseKeysIn(object) {
|
|
354
|
+
if (!isObject(object)) {
|
|
355
|
+
return nativeKeysIn(object);
|
|
356
|
+
}
|
|
357
|
+
var isProto = isPrototype(object),
|
|
358
|
+
result = [];
|
|
359
|
+
|
|
360
|
+
for (var key in object) {
|
|
361
|
+
if (!(key == 'constructor' && (isProto || !hasOwnProperty$1.call(object, key)))) {
|
|
362
|
+
result.push(key);
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
return result;
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
/**
|
|
369
|
+
* Creates an array of the own and inherited enumerable property names of `object`.
|
|
370
|
+
*
|
|
371
|
+
* **Note:** Non-object values are coerced to objects.
|
|
372
|
+
*
|
|
373
|
+
* @static
|
|
374
|
+
* @memberOf _
|
|
375
|
+
* @since 3.0.0
|
|
376
|
+
* @category Object
|
|
377
|
+
* @param {Object} object The object to query.
|
|
378
|
+
* @returns {Array} Returns the array of property names.
|
|
379
|
+
* @example
|
|
380
|
+
*
|
|
381
|
+
* function Foo() {
|
|
382
|
+
* this.a = 1;
|
|
383
|
+
* this.b = 2;
|
|
384
|
+
* }
|
|
385
|
+
*
|
|
386
|
+
* Foo.prototype.c = 3;
|
|
387
|
+
*
|
|
388
|
+
* _.keysIn(new Foo);
|
|
389
|
+
* // => ['a', 'b', 'c'] (iteration order is not guaranteed)
|
|
390
|
+
*/
|
|
391
|
+
function keysIn(object) {
|
|
392
|
+
return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
/** Used to match property names within property paths. */
|
|
396
|
+
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
|
|
397
|
+
reIsPlainProp = /^\w*$/;
|
|
398
|
+
|
|
399
|
+
/**
|
|
400
|
+
* Checks if `value` is a property name and not a property path.
|
|
401
|
+
*
|
|
402
|
+
* @private
|
|
403
|
+
* @param {*} value The value to check.
|
|
404
|
+
* @param {Object} [object] The object to query keys on.
|
|
405
|
+
* @returns {boolean} Returns `true` if `value` is a property name, else `false`.
|
|
406
|
+
*/
|
|
407
|
+
function isKey(value, object) {
|
|
408
|
+
if (isArray(value)) {
|
|
409
|
+
return false;
|
|
410
|
+
}
|
|
411
|
+
var type = typeof value;
|
|
412
|
+
if (type == 'number' || type == 'symbol' || type == 'boolean' ||
|
|
413
|
+
value == null || isSymbol(value)) {
|
|
414
|
+
return true;
|
|
415
|
+
}
|
|
416
|
+
return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||
|
|
417
|
+
(object != null && value in Object(object));
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
/** Error message constants. */
|
|
421
|
+
var FUNC_ERROR_TEXT = 'Expected a function';
|
|
422
|
+
|
|
423
|
+
/**
|
|
424
|
+
* Creates a function that memoizes the result of `func`. If `resolver` is
|
|
425
|
+
* provided, it determines the cache key for storing the result based on the
|
|
426
|
+
* arguments provided to the memoized function. By default, the first argument
|
|
427
|
+
* provided to the memoized function is used as the map cache key. The `func`
|
|
428
|
+
* is invoked with the `this` binding of the memoized function.
|
|
429
|
+
*
|
|
430
|
+
* **Note:** The cache is exposed as the `cache` property on the memoized
|
|
431
|
+
* function. Its creation may be customized by replacing the `_.memoize.Cache`
|
|
432
|
+
* constructor with one whose instances implement the
|
|
433
|
+
* [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)
|
|
434
|
+
* method interface of `clear`, `delete`, `get`, `has`, and `set`.
|
|
435
|
+
*
|
|
436
|
+
* @static
|
|
437
|
+
* @memberOf _
|
|
438
|
+
* @since 0.1.0
|
|
439
|
+
* @category Function
|
|
440
|
+
* @param {Function} func The function to have its output memoized.
|
|
441
|
+
* @param {Function} [resolver] The function to resolve the cache key.
|
|
442
|
+
* @returns {Function} Returns the new memoized function.
|
|
443
|
+
* @example
|
|
444
|
+
*
|
|
445
|
+
* var object = { 'a': 1, 'b': 2 };
|
|
446
|
+
* var other = { 'c': 3, 'd': 4 };
|
|
447
|
+
*
|
|
448
|
+
* var values = _.memoize(_.values);
|
|
449
|
+
* values(object);
|
|
450
|
+
* // => [1, 2]
|
|
451
|
+
*
|
|
452
|
+
* values(other);
|
|
453
|
+
* // => [3, 4]
|
|
454
|
+
*
|
|
455
|
+
* object.a = 2;
|
|
456
|
+
* values(object);
|
|
457
|
+
* // => [1, 2]
|
|
458
|
+
*
|
|
459
|
+
* // Modify the result cache.
|
|
460
|
+
* values.cache.set(object, ['a', 'b']);
|
|
461
|
+
* values(object);
|
|
462
|
+
* // => ['a', 'b']
|
|
463
|
+
*
|
|
464
|
+
* // Replace `_.memoize.Cache`.
|
|
465
|
+
* _.memoize.Cache = WeakMap;
|
|
466
|
+
*/
|
|
467
|
+
function memoize(func, resolver) {
|
|
468
|
+
if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {
|
|
469
|
+
throw new TypeError(FUNC_ERROR_TEXT);
|
|
470
|
+
}
|
|
471
|
+
var memoized = function() {
|
|
472
|
+
var args = arguments,
|
|
473
|
+
key = resolver ? resolver.apply(this, args) : args[0],
|
|
474
|
+
cache = memoized.cache;
|
|
475
|
+
|
|
476
|
+
if (cache.has(key)) {
|
|
477
|
+
return cache.get(key);
|
|
478
|
+
}
|
|
479
|
+
var result = func.apply(this, args);
|
|
480
|
+
memoized.cache = cache.set(key, result) || cache;
|
|
481
|
+
return result;
|
|
482
|
+
};
|
|
483
|
+
memoized.cache = new (memoize.Cache || MapCache);
|
|
484
|
+
return memoized;
|
|
485
|
+
}
|
|
486
|
+
|
|
487
|
+
// Expose `MapCache`.
|
|
488
|
+
memoize.Cache = MapCache;
|
|
489
|
+
|
|
490
|
+
/** Used as the maximum memoize cache size. */
|
|
491
|
+
var MAX_MEMOIZE_SIZE = 500;
|
|
492
|
+
|
|
493
|
+
/**
|
|
494
|
+
* A specialized version of `_.memoize` which clears the memoized function's
|
|
495
|
+
* cache when it exceeds `MAX_MEMOIZE_SIZE`.
|
|
496
|
+
*
|
|
497
|
+
* @private
|
|
498
|
+
* @param {Function} func The function to have its output memoized.
|
|
499
|
+
* @returns {Function} Returns the new memoized function.
|
|
500
|
+
*/
|
|
501
|
+
function memoizeCapped(func) {
|
|
502
|
+
var result = memoize(func, function(key) {
|
|
503
|
+
if (cache.size === MAX_MEMOIZE_SIZE) {
|
|
504
|
+
cache.clear();
|
|
505
|
+
}
|
|
506
|
+
return key;
|
|
507
|
+
});
|
|
508
|
+
|
|
509
|
+
var cache = result.cache;
|
|
510
|
+
return result;
|
|
511
|
+
}
|
|
512
|
+
|
|
513
|
+
/** Used to match property names within property paths. */
|
|
514
|
+
var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
|
|
515
|
+
|
|
516
|
+
/** Used to match backslashes in property paths. */
|
|
517
|
+
var reEscapeChar = /\\(\\)?/g;
|
|
518
|
+
|
|
519
|
+
/**
|
|
520
|
+
* Converts `string` to a property path array.
|
|
521
|
+
*
|
|
522
|
+
* @private
|
|
523
|
+
* @param {string} string The string to convert.
|
|
524
|
+
* @returns {Array} Returns the property path array.
|
|
525
|
+
*/
|
|
526
|
+
var stringToPath = memoizeCapped(function(string) {
|
|
527
|
+
var result = [];
|
|
528
|
+
if (string.charCodeAt(0) === 46 /* . */) {
|
|
529
|
+
result.push('');
|
|
530
|
+
}
|
|
531
|
+
string.replace(rePropName, function(match, number, quote, subString) {
|
|
532
|
+
result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));
|
|
533
|
+
});
|
|
534
|
+
return result;
|
|
535
|
+
});
|
|
536
|
+
|
|
537
|
+
/**
|
|
538
|
+
* Converts `value` to a string. An empty string is returned for `null`
|
|
539
|
+
* and `undefined` values. The sign of `-0` is preserved.
|
|
540
|
+
*
|
|
541
|
+
* @static
|
|
542
|
+
* @memberOf _
|
|
543
|
+
* @since 4.0.0
|
|
544
|
+
* @category Lang
|
|
545
|
+
* @param {*} value The value to convert.
|
|
546
|
+
* @returns {string} Returns the converted string.
|
|
547
|
+
* @example
|
|
548
|
+
*
|
|
549
|
+
* _.toString(null);
|
|
550
|
+
* // => ''
|
|
551
|
+
*
|
|
552
|
+
* _.toString(-0);
|
|
553
|
+
* // => '-0'
|
|
554
|
+
*
|
|
555
|
+
* _.toString([1, 2, 3]);
|
|
556
|
+
* // => '1,2,3'
|
|
557
|
+
*/
|
|
558
|
+
function toString(value) {
|
|
559
|
+
return value == null ? '' : baseToString(value);
|
|
560
|
+
}
|
|
561
|
+
|
|
562
|
+
/**
|
|
563
|
+
* Casts `value` to a path array if it's not one.
|
|
564
|
+
*
|
|
565
|
+
* @private
|
|
566
|
+
* @param {*} value The value to inspect.
|
|
567
|
+
* @param {Object} [object] The object to query keys on.
|
|
568
|
+
* @returns {Array} Returns the cast property path array.
|
|
569
|
+
*/
|
|
570
|
+
function castPath(value, object) {
|
|
571
|
+
if (isArray(value)) {
|
|
572
|
+
return value;
|
|
573
|
+
}
|
|
574
|
+
return isKey(value, object) ? [value] : stringToPath(toString(value));
|
|
575
|
+
}
|
|
576
|
+
|
|
577
|
+
/** Used as references for various `Number` constants. */
|
|
578
|
+
var INFINITY = 1 / 0;
|
|
579
|
+
|
|
580
|
+
/**
|
|
581
|
+
* Converts `value` to a string key if it's not a string or symbol.
|
|
582
|
+
*
|
|
583
|
+
* @private
|
|
584
|
+
* @param {*} value The value to inspect.
|
|
585
|
+
* @returns {string|symbol} Returns the key.
|
|
586
|
+
*/
|
|
587
|
+
function toKey(value) {
|
|
588
|
+
if (typeof value == 'string' || isSymbol(value)) {
|
|
589
|
+
return value;
|
|
590
|
+
}
|
|
591
|
+
var result = (value + '');
|
|
592
|
+
return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
|
|
593
|
+
}
|
|
594
|
+
|
|
595
|
+
/**
|
|
596
|
+
* The base implementation of `_.get` without support for default values.
|
|
597
|
+
*
|
|
598
|
+
* @private
|
|
599
|
+
* @param {Object} object The object to query.
|
|
600
|
+
* @param {Array|string} path The path of the property to get.
|
|
601
|
+
* @returns {*} Returns the resolved value.
|
|
602
|
+
*/
|
|
603
|
+
function baseGet(object, path) {
|
|
604
|
+
path = castPath(path, object);
|
|
605
|
+
|
|
606
|
+
var index = 0,
|
|
607
|
+
length = path.length;
|
|
608
|
+
|
|
609
|
+
while (object != null && index < length) {
|
|
610
|
+
object = object[toKey(path[index++])];
|
|
611
|
+
}
|
|
612
|
+
return (index && index == length) ? object : undefined;
|
|
613
|
+
}
|
|
614
|
+
|
|
615
|
+
/**
|
|
616
|
+
* Gets the value at `path` of `object`. If the resolved value is
|
|
617
|
+
* `undefined`, the `defaultValue` is returned in its place.
|
|
618
|
+
*
|
|
619
|
+
* @static
|
|
620
|
+
* @memberOf _
|
|
621
|
+
* @since 3.7.0
|
|
622
|
+
* @category Object
|
|
623
|
+
* @param {Object} object The object to query.
|
|
624
|
+
* @param {Array|string} path The path of the property to get.
|
|
625
|
+
* @param {*} [defaultValue] The value returned for `undefined` resolved values.
|
|
626
|
+
* @returns {*} Returns the resolved value.
|
|
627
|
+
* @example
|
|
628
|
+
*
|
|
629
|
+
* var object = { 'a': [{ 'b': { 'c': 3 } }] };
|
|
630
|
+
*
|
|
631
|
+
* _.get(object, 'a[0].b.c');
|
|
632
|
+
* // => 3
|
|
633
|
+
*
|
|
634
|
+
* _.get(object, ['a', '0', 'b', 'c']);
|
|
635
|
+
* // => 3
|
|
636
|
+
*
|
|
637
|
+
* _.get(object, 'a.b.c', 'default');
|
|
638
|
+
* // => 'default'
|
|
639
|
+
*/
|
|
640
|
+
function get(object, path, defaultValue) {
|
|
641
|
+
var result = object == null ? undefined : baseGet(object, path);
|
|
642
|
+
return result === undefined ? defaultValue : result;
|
|
643
|
+
}
|
|
644
|
+
|
|
645
|
+
/** Built-in value references. */
|
|
646
|
+
var getPrototype = overArg(Object.getPrototypeOf, Object);
|
|
647
|
+
|
|
648
|
+
/**
|
|
649
|
+
* The base implementation of `_.assign` without support for multiple sources
|
|
650
|
+
* or `customizer` functions.
|
|
651
|
+
*
|
|
652
|
+
* @private
|
|
653
|
+
* @param {Object} object The destination object.
|
|
654
|
+
* @param {Object} source The source object.
|
|
655
|
+
* @returns {Object} Returns `object`.
|
|
656
|
+
*/
|
|
657
|
+
function baseAssign(object, source) {
|
|
658
|
+
return object && copyObject(source, keys(source), object);
|
|
659
|
+
}
|
|
660
|
+
|
|
661
|
+
/**
|
|
662
|
+
* The base implementation of `_.assignIn` without support for multiple sources
|
|
663
|
+
* or `customizer` functions.
|
|
664
|
+
*
|
|
665
|
+
* @private
|
|
666
|
+
* @param {Object} object The destination object.
|
|
667
|
+
* @param {Object} source The source object.
|
|
668
|
+
* @returns {Object} Returns `object`.
|
|
669
|
+
*/
|
|
670
|
+
function baseAssignIn(object, source) {
|
|
671
|
+
return object && copyObject(source, keysIn(source), object);
|
|
672
|
+
}
|
|
673
|
+
|
|
674
|
+
/** Detect free variable `exports`. */
|
|
675
|
+
var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;
|
|
676
|
+
|
|
677
|
+
/** Detect free variable `module`. */
|
|
678
|
+
var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
|
|
679
|
+
|
|
680
|
+
/** Detect the popular CommonJS extension `module.exports`. */
|
|
681
|
+
var moduleExports = freeModule && freeModule.exports === freeExports;
|
|
682
|
+
|
|
683
|
+
/** Built-in value references. */
|
|
684
|
+
var Buffer = moduleExports ? root.Buffer : undefined,
|
|
685
|
+
allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;
|
|
686
|
+
|
|
687
|
+
/**
|
|
688
|
+
* Creates a clone of `buffer`.
|
|
689
|
+
*
|
|
690
|
+
* @private
|
|
691
|
+
* @param {Buffer} buffer The buffer to clone.
|
|
692
|
+
* @param {boolean} [isDeep] Specify a deep clone.
|
|
693
|
+
* @returns {Buffer} Returns the cloned buffer.
|
|
694
|
+
*/
|
|
695
|
+
function cloneBuffer(buffer, isDeep) {
|
|
696
|
+
if (isDeep) {
|
|
697
|
+
return buffer.slice();
|
|
698
|
+
}
|
|
699
|
+
var length = buffer.length,
|
|
700
|
+
result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);
|
|
701
|
+
|
|
702
|
+
buffer.copy(result);
|
|
703
|
+
return result;
|
|
704
|
+
}
|
|
705
|
+
|
|
706
|
+
/**
|
|
707
|
+
* Copies own symbols of `source` to `object`.
|
|
708
|
+
*
|
|
709
|
+
* @private
|
|
710
|
+
* @param {Object} source The object to copy symbols from.
|
|
711
|
+
* @param {Object} [object={}] The object to copy symbols to.
|
|
712
|
+
* @returns {Object} Returns `object`.
|
|
713
|
+
*/
|
|
714
|
+
function copySymbols(source, object) {
|
|
715
|
+
return copyObject(source, getSymbols(source), object);
|
|
716
|
+
}
|
|
717
|
+
|
|
718
|
+
/* Built-in method references for those with the same name as other `lodash` methods. */
|
|
719
|
+
var nativeGetSymbols = Object.getOwnPropertySymbols;
|
|
720
|
+
|
|
721
|
+
/**
|
|
722
|
+
* Creates an array of the own and inherited enumerable symbols of `object`.
|
|
723
|
+
*
|
|
724
|
+
* @private
|
|
725
|
+
* @param {Object} object The object to query.
|
|
726
|
+
* @returns {Array} Returns the array of symbols.
|
|
727
|
+
*/
|
|
728
|
+
var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {
|
|
729
|
+
var result = [];
|
|
730
|
+
while (object) {
|
|
731
|
+
arrayPush(result, getSymbols(object));
|
|
732
|
+
object = getPrototype(object);
|
|
733
|
+
}
|
|
734
|
+
return result;
|
|
735
|
+
};
|
|
736
|
+
|
|
737
|
+
/**
|
|
738
|
+
* Copies own and inherited symbols of `source` to `object`.
|
|
739
|
+
*
|
|
740
|
+
* @private
|
|
741
|
+
* @param {Object} source The object to copy symbols from.
|
|
742
|
+
* @param {Object} [object={}] The object to copy symbols to.
|
|
743
|
+
* @returns {Object} Returns `object`.
|
|
744
|
+
*/
|
|
745
|
+
function copySymbolsIn(source, object) {
|
|
746
|
+
return copyObject(source, getSymbolsIn(source), object);
|
|
747
|
+
}
|
|
748
|
+
|
|
749
|
+
/**
|
|
750
|
+
* Creates an array of own and inherited enumerable property names and
|
|
751
|
+
* symbols of `object`.
|
|
752
|
+
*
|
|
753
|
+
* @private
|
|
754
|
+
* @param {Object} object The object to query.
|
|
755
|
+
* @returns {Array} Returns the array of property names and symbols.
|
|
756
|
+
*/
|
|
757
|
+
function getAllKeysIn(object) {
|
|
758
|
+
return baseGetAllKeys(object, keysIn, getSymbolsIn);
|
|
759
|
+
}
|
|
760
|
+
|
|
761
|
+
/** Used for built-in method references. */
|
|
762
|
+
var objectProto = Object.prototype;
|
|
763
|
+
|
|
764
|
+
/** Used to check objects for own properties. */
|
|
765
|
+
var hasOwnProperty = objectProto.hasOwnProperty;
|
|
766
|
+
|
|
767
|
+
/**
|
|
768
|
+
* Initializes an array clone.
|
|
769
|
+
*
|
|
770
|
+
* @private
|
|
771
|
+
* @param {Array} array The array to clone.
|
|
772
|
+
* @returns {Array} Returns the initialized clone.
|
|
773
|
+
*/
|
|
774
|
+
function initCloneArray(array) {
|
|
775
|
+
var length = array.length,
|
|
776
|
+
result = new array.constructor(length);
|
|
777
|
+
|
|
778
|
+
// Add properties assigned by `RegExp#exec`.
|
|
779
|
+
if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {
|
|
780
|
+
result.index = array.index;
|
|
781
|
+
result.input = array.input;
|
|
782
|
+
}
|
|
783
|
+
return result;
|
|
784
|
+
}
|
|
785
|
+
|
|
786
|
+
/**
|
|
787
|
+
* Creates a clone of `arrayBuffer`.
|
|
788
|
+
*
|
|
789
|
+
* @private
|
|
790
|
+
* @param {ArrayBuffer} arrayBuffer The array buffer to clone.
|
|
791
|
+
* @returns {ArrayBuffer} Returns the cloned array buffer.
|
|
792
|
+
*/
|
|
793
|
+
function cloneArrayBuffer(arrayBuffer) {
|
|
794
|
+
var result = new arrayBuffer.constructor(arrayBuffer.byteLength);
|
|
795
|
+
new Uint8Array$1(result).set(new Uint8Array$1(arrayBuffer));
|
|
796
|
+
return result;
|
|
797
|
+
}
|
|
798
|
+
|
|
799
|
+
/**
|
|
800
|
+
* Creates a clone of `dataView`.
|
|
801
|
+
*
|
|
802
|
+
* @private
|
|
803
|
+
* @param {Object} dataView The data view to clone.
|
|
804
|
+
* @param {boolean} [isDeep] Specify a deep clone.
|
|
805
|
+
* @returns {Object} Returns the cloned data view.
|
|
806
|
+
*/
|
|
807
|
+
function cloneDataView(dataView, isDeep) {
|
|
808
|
+
var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;
|
|
809
|
+
return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);
|
|
810
|
+
}
|
|
811
|
+
|
|
812
|
+
/** Used to match `RegExp` flags from their coerced string values. */
|
|
813
|
+
var reFlags = /\w*$/;
|
|
814
|
+
|
|
815
|
+
/**
|
|
816
|
+
* Creates a clone of `regexp`.
|
|
817
|
+
*
|
|
818
|
+
* @private
|
|
819
|
+
* @param {Object} regexp The regexp to clone.
|
|
820
|
+
* @returns {Object} Returns the cloned regexp.
|
|
821
|
+
*/
|
|
822
|
+
function cloneRegExp(regexp) {
|
|
823
|
+
var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));
|
|
824
|
+
result.lastIndex = regexp.lastIndex;
|
|
825
|
+
return result;
|
|
826
|
+
}
|
|
827
|
+
|
|
828
|
+
/** Used to convert symbols to primitives and strings. */
|
|
829
|
+
var symbolProto = Symbol ? Symbol.prototype : undefined,
|
|
830
|
+
symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;
|
|
831
|
+
|
|
832
|
+
/**
|
|
833
|
+
* Creates a clone of the `symbol` object.
|
|
834
|
+
*
|
|
835
|
+
* @private
|
|
836
|
+
* @param {Object} symbol The symbol object to clone.
|
|
837
|
+
* @returns {Object} Returns the cloned symbol object.
|
|
838
|
+
*/
|
|
839
|
+
function cloneSymbol(symbol) {
|
|
840
|
+
return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};
|
|
841
|
+
}
|
|
842
|
+
|
|
843
|
+
/**
|
|
844
|
+
* Creates a clone of `typedArray`.
|
|
845
|
+
*
|
|
846
|
+
* @private
|
|
847
|
+
* @param {Object} typedArray The typed array to clone.
|
|
848
|
+
* @param {boolean} [isDeep] Specify a deep clone.
|
|
849
|
+
* @returns {Object} Returns the cloned typed array.
|
|
850
|
+
*/
|
|
851
|
+
function cloneTypedArray(typedArray, isDeep) {
|
|
852
|
+
var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;
|
|
853
|
+
return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);
|
|
854
|
+
}
|
|
855
|
+
|
|
856
|
+
/** `Object#toString` result references. */
|
|
857
|
+
var boolTag$1 = '[object Boolean]',
|
|
858
|
+
dateTag$1 = '[object Date]',
|
|
859
|
+
mapTag$2 = '[object Map]',
|
|
860
|
+
numberTag$1 = '[object Number]',
|
|
861
|
+
regexpTag$1 = '[object RegExp]',
|
|
862
|
+
setTag$2 = '[object Set]',
|
|
863
|
+
stringTag$1 = '[object String]',
|
|
864
|
+
symbolTag$1 = '[object Symbol]';
|
|
865
|
+
|
|
866
|
+
var arrayBufferTag$1 = '[object ArrayBuffer]',
|
|
867
|
+
dataViewTag$1 = '[object DataView]',
|
|
868
|
+
float32Tag$1 = '[object Float32Array]',
|
|
869
|
+
float64Tag$1 = '[object Float64Array]',
|
|
870
|
+
int8Tag$1 = '[object Int8Array]',
|
|
871
|
+
int16Tag$1 = '[object Int16Array]',
|
|
872
|
+
int32Tag$1 = '[object Int32Array]',
|
|
873
|
+
uint8Tag$1 = '[object Uint8Array]',
|
|
874
|
+
uint8ClampedTag$1 = '[object Uint8ClampedArray]',
|
|
875
|
+
uint16Tag$1 = '[object Uint16Array]',
|
|
876
|
+
uint32Tag$1 = '[object Uint32Array]';
|
|
877
|
+
|
|
878
|
+
/**
|
|
879
|
+
* Initializes an object clone based on its `toStringTag`.
|
|
880
|
+
*
|
|
881
|
+
* **Note:** This function only supports cloning values with tags of
|
|
882
|
+
* `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.
|
|
883
|
+
*
|
|
884
|
+
* @private
|
|
885
|
+
* @param {Object} object The object to clone.
|
|
886
|
+
* @param {string} tag The `toStringTag` of the object to clone.
|
|
887
|
+
* @param {boolean} [isDeep] Specify a deep clone.
|
|
888
|
+
* @returns {Object} Returns the initialized clone.
|
|
889
|
+
*/
|
|
890
|
+
function initCloneByTag(object, tag, isDeep) {
|
|
891
|
+
var Ctor = object.constructor;
|
|
892
|
+
switch (tag) {
|
|
893
|
+
case arrayBufferTag$1:
|
|
894
|
+
return cloneArrayBuffer(object);
|
|
895
|
+
|
|
896
|
+
case boolTag$1:
|
|
897
|
+
case dateTag$1:
|
|
898
|
+
return new Ctor(+object);
|
|
899
|
+
|
|
900
|
+
case dataViewTag$1:
|
|
901
|
+
return cloneDataView(object, isDeep);
|
|
902
|
+
|
|
903
|
+
case float32Tag$1: case float64Tag$1:
|
|
904
|
+
case int8Tag$1: case int16Tag$1: case int32Tag$1:
|
|
905
|
+
case uint8Tag$1: case uint8ClampedTag$1: case uint16Tag$1: case uint32Tag$1:
|
|
906
|
+
return cloneTypedArray(object, isDeep);
|
|
907
|
+
|
|
908
|
+
case mapTag$2:
|
|
909
|
+
return new Ctor;
|
|
910
|
+
|
|
911
|
+
case numberTag$1:
|
|
912
|
+
case stringTag$1:
|
|
913
|
+
return new Ctor(object);
|
|
914
|
+
|
|
915
|
+
case regexpTag$1:
|
|
916
|
+
return cloneRegExp(object);
|
|
917
|
+
|
|
918
|
+
case setTag$2:
|
|
919
|
+
return new Ctor;
|
|
920
|
+
|
|
921
|
+
case symbolTag$1:
|
|
922
|
+
return cloneSymbol(object);
|
|
923
|
+
}
|
|
924
|
+
}
|
|
925
|
+
|
|
926
|
+
/**
|
|
927
|
+
* Initializes an object clone.
|
|
928
|
+
*
|
|
929
|
+
* @private
|
|
930
|
+
* @param {Object} object The object to clone.
|
|
931
|
+
* @returns {Object} Returns the initialized clone.
|
|
932
|
+
*/
|
|
933
|
+
function initCloneObject(object) {
|
|
934
|
+
return (typeof object.constructor == 'function' && !isPrototype(object))
|
|
935
|
+
? baseCreate(getPrototype(object))
|
|
936
|
+
: {};
|
|
937
|
+
}
|
|
938
|
+
|
|
939
|
+
/** `Object#toString` result references. */
|
|
940
|
+
var mapTag$1 = '[object Map]';
|
|
941
|
+
|
|
942
|
+
/**
|
|
943
|
+
* The base implementation of `_.isMap` without Node.js optimizations.
|
|
944
|
+
*
|
|
945
|
+
* @private
|
|
946
|
+
* @param {*} value The value to check.
|
|
947
|
+
* @returns {boolean} Returns `true` if `value` is a map, else `false`.
|
|
948
|
+
*/
|
|
949
|
+
function baseIsMap(value) {
|
|
950
|
+
return isObjectLike(value) && getTag(value) == mapTag$1;
|
|
951
|
+
}
|
|
952
|
+
|
|
953
|
+
/* Node.js helper references. */
|
|
954
|
+
var nodeIsMap = nodeUtil && nodeUtil.isMap;
|
|
955
|
+
|
|
956
|
+
/**
|
|
957
|
+
* Checks if `value` is classified as a `Map` object.
|
|
958
|
+
*
|
|
959
|
+
* @static
|
|
960
|
+
* @memberOf _
|
|
961
|
+
* @since 4.3.0
|
|
962
|
+
* @category Lang
|
|
963
|
+
* @param {*} value The value to check.
|
|
964
|
+
* @returns {boolean} Returns `true` if `value` is a map, else `false`.
|
|
965
|
+
* @example
|
|
966
|
+
*
|
|
967
|
+
* _.isMap(new Map);
|
|
968
|
+
* // => true
|
|
969
|
+
*
|
|
970
|
+
* _.isMap(new WeakMap);
|
|
971
|
+
* // => false
|
|
972
|
+
*/
|
|
973
|
+
var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;
|
|
974
|
+
|
|
975
|
+
/** `Object#toString` result references. */
|
|
976
|
+
var setTag$1 = '[object Set]';
|
|
977
|
+
|
|
978
|
+
/**
|
|
979
|
+
* The base implementation of `_.isSet` without Node.js optimizations.
|
|
980
|
+
*
|
|
981
|
+
* @private
|
|
982
|
+
* @param {*} value The value to check.
|
|
983
|
+
* @returns {boolean} Returns `true` if `value` is a set, else `false`.
|
|
984
|
+
*/
|
|
985
|
+
function baseIsSet(value) {
|
|
986
|
+
return isObjectLike(value) && getTag(value) == setTag$1;
|
|
987
|
+
}
|
|
988
|
+
|
|
989
|
+
/* Node.js helper references. */
|
|
990
|
+
var nodeIsSet = nodeUtil && nodeUtil.isSet;
|
|
991
|
+
|
|
992
|
+
/**
|
|
993
|
+
* Checks if `value` is classified as a `Set` object.
|
|
994
|
+
*
|
|
995
|
+
* @static
|
|
996
|
+
* @memberOf _
|
|
997
|
+
* @since 4.3.0
|
|
998
|
+
* @category Lang
|
|
999
|
+
* @param {*} value The value to check.
|
|
1000
|
+
* @returns {boolean} Returns `true` if `value` is a set, else `false`.
|
|
1001
|
+
* @example
|
|
1002
|
+
*
|
|
1003
|
+
* _.isSet(new Set);
|
|
1004
|
+
* // => true
|
|
1005
|
+
*
|
|
1006
|
+
* _.isSet(new WeakSet);
|
|
1007
|
+
* // => false
|
|
1008
|
+
*/
|
|
1009
|
+
var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;
|
|
1010
|
+
|
|
1011
|
+
/** Used to compose bitmasks for cloning. */
|
|
1012
|
+
var CLONE_DEEP_FLAG$1 = 1,
|
|
1013
|
+
CLONE_FLAT_FLAG = 2,
|
|
1014
|
+
CLONE_SYMBOLS_FLAG$1 = 4;
|
|
1015
|
+
|
|
1016
|
+
/** `Object#toString` result references. */
|
|
1017
|
+
var argsTag = '[object Arguments]',
|
|
1018
|
+
arrayTag = '[object Array]',
|
|
1019
|
+
boolTag = '[object Boolean]',
|
|
1020
|
+
dateTag = '[object Date]',
|
|
1021
|
+
errorTag = '[object Error]',
|
|
1022
|
+
funcTag = '[object Function]',
|
|
1023
|
+
genTag = '[object GeneratorFunction]',
|
|
1024
|
+
mapTag = '[object Map]',
|
|
1025
|
+
numberTag = '[object Number]',
|
|
1026
|
+
objectTag = '[object Object]',
|
|
1027
|
+
regexpTag = '[object RegExp]',
|
|
1028
|
+
setTag = '[object Set]',
|
|
1029
|
+
stringTag = '[object String]',
|
|
1030
|
+
symbolTag = '[object Symbol]',
|
|
1031
|
+
weakMapTag = '[object WeakMap]';
|
|
1032
|
+
|
|
1033
|
+
var arrayBufferTag = '[object ArrayBuffer]',
|
|
1034
|
+
dataViewTag = '[object DataView]',
|
|
1035
|
+
float32Tag = '[object Float32Array]',
|
|
1036
|
+
float64Tag = '[object Float64Array]',
|
|
1037
|
+
int8Tag = '[object Int8Array]',
|
|
1038
|
+
int16Tag = '[object Int16Array]',
|
|
1039
|
+
int32Tag = '[object Int32Array]',
|
|
1040
|
+
uint8Tag = '[object Uint8Array]',
|
|
1041
|
+
uint8ClampedTag = '[object Uint8ClampedArray]',
|
|
1042
|
+
uint16Tag = '[object Uint16Array]',
|
|
1043
|
+
uint32Tag = '[object Uint32Array]';
|
|
1044
|
+
|
|
1045
|
+
/** Used to identify `toStringTag` values supported by `_.clone`. */
|
|
1046
|
+
var cloneableTags = {};
|
|
1047
|
+
cloneableTags[argsTag] = cloneableTags[arrayTag] =
|
|
1048
|
+
cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =
|
|
1049
|
+
cloneableTags[boolTag] = cloneableTags[dateTag] =
|
|
1050
|
+
cloneableTags[float32Tag] = cloneableTags[float64Tag] =
|
|
1051
|
+
cloneableTags[int8Tag] = cloneableTags[int16Tag] =
|
|
1052
|
+
cloneableTags[int32Tag] = cloneableTags[mapTag] =
|
|
1053
|
+
cloneableTags[numberTag] = cloneableTags[objectTag] =
|
|
1054
|
+
cloneableTags[regexpTag] = cloneableTags[setTag] =
|
|
1055
|
+
cloneableTags[stringTag] = cloneableTags[symbolTag] =
|
|
1056
|
+
cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =
|
|
1057
|
+
cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;
|
|
1058
|
+
cloneableTags[errorTag] = cloneableTags[funcTag] =
|
|
1059
|
+
cloneableTags[weakMapTag] = false;
|
|
1060
|
+
|
|
1061
|
+
/**
|
|
1062
|
+
* The base implementation of `_.clone` and `_.cloneDeep` which tracks
|
|
1063
|
+
* traversed objects.
|
|
1064
|
+
*
|
|
1065
|
+
* @private
|
|
1066
|
+
* @param {*} value The value to clone.
|
|
1067
|
+
* @param {boolean} bitmask The bitmask flags.
|
|
1068
|
+
* 1 - Deep clone
|
|
1069
|
+
* 2 - Flatten inherited properties
|
|
1070
|
+
* 4 - Clone symbols
|
|
1071
|
+
* @param {Function} [customizer] The function to customize cloning.
|
|
1072
|
+
* @param {string} [key] The key of `value`.
|
|
1073
|
+
* @param {Object} [object] The parent object of `value`.
|
|
1074
|
+
* @param {Object} [stack] Tracks traversed objects and their clone counterparts.
|
|
1075
|
+
* @returns {*} Returns the cloned value.
|
|
1076
|
+
*/
|
|
1077
|
+
function baseClone(value, bitmask, customizer, key, object, stack) {
|
|
1078
|
+
var result,
|
|
1079
|
+
isDeep = bitmask & CLONE_DEEP_FLAG$1,
|
|
1080
|
+
isFlat = bitmask & CLONE_FLAT_FLAG,
|
|
1081
|
+
isFull = bitmask & CLONE_SYMBOLS_FLAG$1;
|
|
1082
|
+
|
|
1083
|
+
if (customizer) {
|
|
1084
|
+
result = object ? customizer(value, key, object, stack) : customizer(value);
|
|
1085
|
+
}
|
|
1086
|
+
if (result !== undefined) {
|
|
1087
|
+
return result;
|
|
1088
|
+
}
|
|
1089
|
+
if (!isObject(value)) {
|
|
1090
|
+
return value;
|
|
1091
|
+
}
|
|
1092
|
+
var isArr = isArray(value);
|
|
1093
|
+
if (isArr) {
|
|
1094
|
+
result = initCloneArray(value);
|
|
1095
|
+
if (!isDeep) {
|
|
1096
|
+
return copyArray(value, result);
|
|
1097
|
+
}
|
|
1098
|
+
} else {
|
|
1099
|
+
var tag = getTag(value),
|
|
1100
|
+
isFunc = tag == funcTag || tag == genTag;
|
|
1101
|
+
|
|
1102
|
+
if (isBuffer(value)) {
|
|
1103
|
+
return cloneBuffer(value, isDeep);
|
|
1104
|
+
}
|
|
1105
|
+
if (tag == objectTag || tag == argsTag || (isFunc && !object)) {
|
|
1106
|
+
result = (isFlat || isFunc) ? {} : initCloneObject(value);
|
|
1107
|
+
if (!isDeep) {
|
|
1108
|
+
return isFlat
|
|
1109
|
+
? copySymbolsIn(value, baseAssignIn(result, value))
|
|
1110
|
+
: copySymbols(value, baseAssign(result, value));
|
|
1111
|
+
}
|
|
1112
|
+
} else {
|
|
1113
|
+
if (!cloneableTags[tag]) {
|
|
1114
|
+
return object ? value : {};
|
|
1115
|
+
}
|
|
1116
|
+
result = initCloneByTag(value, tag, isDeep);
|
|
1117
|
+
}
|
|
1118
|
+
}
|
|
1119
|
+
// Check for circular references and return its corresponding clone.
|
|
1120
|
+
stack || (stack = new Stack);
|
|
1121
|
+
var stacked = stack.get(value);
|
|
1122
|
+
if (stacked) {
|
|
1123
|
+
return stacked;
|
|
1124
|
+
}
|
|
1125
|
+
stack.set(value, result);
|
|
1126
|
+
|
|
1127
|
+
if (isSet(value)) {
|
|
1128
|
+
value.forEach(function(subValue) {
|
|
1129
|
+
result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));
|
|
1130
|
+
});
|
|
1131
|
+
} else if (isMap(value)) {
|
|
1132
|
+
value.forEach(function(subValue, key) {
|
|
1133
|
+
result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));
|
|
1134
|
+
});
|
|
1135
|
+
}
|
|
1136
|
+
|
|
1137
|
+
var keysFunc = isFull
|
|
1138
|
+
? (isFlat ? getAllKeysIn : getAllKeys)
|
|
1139
|
+
: (isFlat ? keysIn : keys);
|
|
1140
|
+
|
|
1141
|
+
var props = isArr ? undefined : keysFunc(value);
|
|
1142
|
+
arrayEach(props || value, function(subValue, key) {
|
|
1143
|
+
if (props) {
|
|
1144
|
+
key = subValue;
|
|
1145
|
+
subValue = value[key];
|
|
1146
|
+
}
|
|
1147
|
+
// Recursively populate clone (susceptible to call stack limits).
|
|
1148
|
+
assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));
|
|
1149
|
+
});
|
|
1150
|
+
return result;
|
|
1151
|
+
}
|
|
1152
|
+
|
|
1153
|
+
/** Used to compose bitmasks for cloning. */
|
|
1154
|
+
var CLONE_DEEP_FLAG = 1,
|
|
1155
|
+
CLONE_SYMBOLS_FLAG = 4;
|
|
1156
|
+
|
|
1157
|
+
/**
|
|
1158
|
+
* This method is like `_.clone` except that it recursively clones `value`.
|
|
1159
|
+
*
|
|
1160
|
+
* @static
|
|
1161
|
+
* @memberOf _
|
|
1162
|
+
* @since 1.0.0
|
|
1163
|
+
* @category Lang
|
|
1164
|
+
* @param {*} value The value to recursively clone.
|
|
1165
|
+
* @returns {*} Returns the deep cloned value.
|
|
1166
|
+
* @see _.clone
|
|
1167
|
+
* @example
|
|
1168
|
+
*
|
|
1169
|
+
* var objects = [{ 'a': 1 }, { 'b': 2 }];
|
|
1170
|
+
*
|
|
1171
|
+
* var deep = _.cloneDeep(objects);
|
|
1172
|
+
* console.log(deep[0] === objects[0]);
|
|
1173
|
+
* // => false
|
|
1174
|
+
*/
|
|
1175
|
+
function cloneDeep(value) {
|
|
1176
|
+
return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);
|
|
1177
|
+
}
|
|
1178
|
+
|
|
88
1179
|
const gridCss = ":host{display:block;--wcs-grid-highlight-color:var(--wcs-light)}:host th{background-color:var(--wcs-light)}:host th:not(:first-child){border-left:solid 1px var(--wcs-text-light)}:host ::slotted([slot=grid-column]:first-child){--wcs-grid-column-border-left:none}:host table{width:100%;border-spacing:0}:host td{color:var(--wcs-gray-light);margin:0;padding:calc(var(--wcs-padding) / 2) var(--wcs-padding)}:host tr:not(:last-child) td{border-bottom:solid 1px var(--wcs-text-light)}:host .wcs-grid-selection-column{padding:calc(var(--wcs-padding) / 2) var(--wcs-padding);width:40px}:host tr.selected{background-color:var(--wcs-grid-highlight-color)}:host .loading{text-align:center}:host([selection]) ::slotted([slot=grid-column]:first-child){--wcs-grid-column-border-left:solid 1px var(--wcs-text-light) !important}";
|
|
89
1180
|
|
|
90
1181
|
const Grid = class {
|
|
@@ -92,7 +1183,7 @@ const Grid = class {
|
|
|
92
1183
|
registerInstance(this, hostRef);
|
|
93
1184
|
this.wcsGridSelectionChange = createEvent(this, "wcsGridSelectionChange", 7);
|
|
94
1185
|
this.wcsGridAllSelectionChange = createEvent(this, "wcsGridAllSelectionChange", 7);
|
|
95
|
-
this.serverMode =
|
|
1186
|
+
this.serverMode = false;
|
|
96
1187
|
this.data = undefined;
|
|
97
1188
|
this.loading = undefined;
|
|
98
1189
|
this.selectionConfig = 'none';
|
|
@@ -119,7 +1210,7 @@ const Grid = class {
|
|
|
119
1210
|
if (this.selectionConfig === 'single') {
|
|
120
1211
|
this.rows.map(r => r.selected = false);
|
|
121
1212
|
for (const row of this.rows) {
|
|
122
|
-
if (
|
|
1213
|
+
if (isEqual(row.data, values)) {
|
|
123
1214
|
row.selected = true;
|
|
124
1215
|
break; // only one line can be selected
|
|
125
1216
|
}
|
|
@@ -128,12 +1219,12 @@ const Grid = class {
|
|
|
128
1219
|
else if (this.selectionConfig === 'multiple') {
|
|
129
1220
|
this.rows.map(r => r.selected = false);
|
|
130
1221
|
for (const row of this.rows) {
|
|
131
|
-
if (values.find(x =>
|
|
1222
|
+
if (values.find(x => isEqual(x, row.data))) {
|
|
132
1223
|
row.selected = true;
|
|
133
1224
|
}
|
|
134
1225
|
}
|
|
135
1226
|
}
|
|
136
|
-
this.rows =
|
|
1227
|
+
this.rows = cloneDeep(this.rows);
|
|
137
1228
|
}
|
|
138
1229
|
wcsGridRowToWcsGridRowData(row) {
|
|
139
1230
|
return { selected: row.selected, page: row.page, data: row.data };
|
|
@@ -141,6 +1232,7 @@ const Grid = class {
|
|
|
141
1232
|
updateGridRows(data) {
|
|
142
1233
|
const rows = [];
|
|
143
1234
|
if (data && this.columns) {
|
|
1235
|
+
// eslint-disable-next-line @typescript-eslint/prefer-for-of
|
|
144
1236
|
for (let i = 0; i < data.length; i++) {
|
|
145
1237
|
const row = {
|
|
146
1238
|
uuid: v4(),
|
|
@@ -150,7 +1242,7 @@ const Grid = class {
|
|
|
150
1242
|
};
|
|
151
1243
|
for (const column of this.columns) {
|
|
152
1244
|
row.cells.push({
|
|
153
|
-
content:
|
|
1245
|
+
content: get(data[i], column.path),
|
|
154
1246
|
column,
|
|
155
1247
|
formatter: column.formatter
|
|
156
1248
|
});
|
|
@@ -214,14 +1306,14 @@ const Grid = class {
|
|
|
214
1306
|
*/
|
|
215
1307
|
sortBy(colmun) {
|
|
216
1308
|
if (colmun.sortFn) {
|
|
217
|
-
this.rows =
|
|
1309
|
+
this.rows = cloneDeep(this.rows)
|
|
218
1310
|
.sort((a, b) => colmun.sortFn(a.data, b.data, colmun) * getSortOrderInteger(colmun.sortOrder));
|
|
219
1311
|
}
|
|
220
1312
|
else {
|
|
221
|
-
this.rows =
|
|
1313
|
+
this.rows = cloneDeep(this.rows)
|
|
222
1314
|
.sort((a, b) => {
|
|
223
1315
|
const path = colmun.path;
|
|
224
|
-
return ((
|
|
1316
|
+
return ((get(a.data, path) < get(b.data, path)) ? -1 : (get(a.data, path) > get(b.data, path)) ? 1 : 0) * getSortOrderInteger(colmun.sortOrder);
|
|
225
1317
|
});
|
|
226
1318
|
}
|
|
227
1319
|
}
|
|
@@ -238,7 +1330,7 @@ const Grid = class {
|
|
|
238
1330
|
else if (this.paginationEl.pageCount > 0 && this.paginationEl.currentPage + 1 > this.paginationEl.pageCount) {
|
|
239
1331
|
this.paginationEl.currentPage = this.paginationEl.pageCount - 1;
|
|
240
1332
|
}
|
|
241
|
-
const rows =
|
|
1333
|
+
const rows = cloneDeep(this.rows);
|
|
242
1334
|
rows.forEach((row, index) => row.page = Math.floor(index / this.paginationEl.pageSize));
|
|
243
1335
|
this.rows = [...rows];
|
|
244
1336
|
}
|
|
@@ -264,14 +1356,14 @@ const Grid = class {
|
|
|
264
1356
|
if (this.selectionConfig !== 'single' || row.selected) {
|
|
265
1357
|
this.wcsGridSelectionChange.emit({ row: this.wcsGridRowToWcsGridRowData(row) });
|
|
266
1358
|
}
|
|
267
|
-
this.rows =
|
|
1359
|
+
this.rows = cloneDeep(this.rows);
|
|
268
1360
|
}
|
|
269
1361
|
selectAllRows() {
|
|
270
1362
|
const rows = this.getRowsForCurrentPage();
|
|
271
1363
|
const selected = !this.allRowsAreSelected();
|
|
272
1364
|
rows.map(r => r.selected = selected);
|
|
273
1365
|
this.wcsGridAllSelectionChange.emit({ rows: selected ? rows.map(row => this.wcsGridRowToWcsGridRowData(row)) : [] });
|
|
274
|
-
this.rows =
|
|
1366
|
+
this.rows = cloneDeep(this.rows);
|
|
275
1367
|
}
|
|
276
1368
|
allRowsAreSelected() {
|
|
277
1369
|
const rows = this.getRowsForCurrentPage();
|