vis-data 8.0.4 → 8.0.5

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.
Files changed (62) hide show
  1. package/declarations/data-interface.d.ts.map +1 -1
  2. package/declarations/data-pipe.d.ts.map +1 -1
  3. package/declarations/data-set-part.d.ts.map +1 -1
  4. package/declarations/data-set.d.ts +3 -2
  5. package/declarations/data-set.d.ts.map +1 -1
  6. package/declarations/data-view-check.d.ts +1 -1
  7. package/declarations/data-view-check.d.ts.map +1 -1
  8. package/declarations/data-view.d.ts +2 -2
  9. package/declarations/data-view.d.ts.map +1 -1
  10. package/dist/esm.js +1924 -1048
  11. package/dist/esm.js.map +1 -1
  12. package/dist/umd.js +1924 -1048
  13. package/dist/umd.js.map +1 -1
  14. package/esnext/esm/vis-data.js +162 -162
  15. package/esnext/esm/vis-data.js.map +1 -1
  16. package/esnext/esm/vis-data.min.js +3 -3
  17. package/esnext/esm/vis-data.min.js.map +1 -1
  18. package/esnext/esm/vis-data.min.mjs +3 -3
  19. package/esnext/esm/vis-data.min.mjs.map +1 -1
  20. package/esnext/esm/vis-data.mjs +162 -162
  21. package/esnext/esm/vis-data.mjs.map +1 -1
  22. package/esnext/umd/vis-data.cjs +162 -162
  23. package/esnext/umd/vis-data.cjs.map +1 -1
  24. package/esnext/umd/vis-data.js +162 -162
  25. package/esnext/umd/vis-data.js.map +1 -1
  26. package/esnext/umd/vis-data.min.cjs +3 -3
  27. package/esnext/umd/vis-data.min.cjs.map +1 -1
  28. package/esnext/umd/vis-data.min.js +3 -3
  29. package/esnext/umd/vis-data.min.js.map +1 -1
  30. package/package.json +132 -136
  31. package/peer/esm/vis-data.js +1450 -675
  32. package/peer/esm/vis-data.js.map +1 -1
  33. package/peer/esm/vis-data.min.js +4 -4
  34. package/peer/esm/vis-data.min.js.map +1 -1
  35. package/peer/esm/vis-data.min.mjs +4 -4
  36. package/peer/esm/vis-data.min.mjs.map +1 -1
  37. package/peer/esm/vis-data.mjs +1450 -675
  38. package/peer/esm/vis-data.mjs.map +1 -1
  39. package/peer/umd/vis-data.cjs +1450 -675
  40. package/peer/umd/vis-data.cjs.map +1 -1
  41. package/peer/umd/vis-data.js +1450 -675
  42. package/peer/umd/vis-data.js.map +1 -1
  43. package/peer/umd/vis-data.min.cjs +4 -4
  44. package/peer/umd/vis-data.min.cjs.map +1 -1
  45. package/peer/umd/vis-data.min.js +4 -4
  46. package/peer/umd/vis-data.min.js.map +1 -1
  47. package/standalone/esm/vis-data.js +1450 -675
  48. package/standalone/esm/vis-data.js.map +1 -1
  49. package/standalone/esm/vis-data.min.js +4 -4
  50. package/standalone/esm/vis-data.min.js.map +1 -1
  51. package/standalone/esm/vis-data.min.mjs +4 -4
  52. package/standalone/esm/vis-data.min.mjs.map +1 -1
  53. package/standalone/esm/vis-data.mjs +1450 -675
  54. package/standalone/esm/vis-data.mjs.map +1 -1
  55. package/standalone/umd/vis-data.cjs +1450 -675
  56. package/standalone/umd/vis-data.cjs.map +1 -1
  57. package/standalone/umd/vis-data.js +1450 -675
  58. package/standalone/umd/vis-data.js.map +1 -1
  59. package/standalone/umd/vis-data.min.cjs +4 -4
  60. package/standalone/umd/vis-data.min.cjs.map +1 -1
  61. package/standalone/umd/vis-data.min.js +4 -4
  62. package/standalone/umd/vis-data.min.js.map +1 -1
package/dist/esm.js CHANGED
@@ -4,8 +4,8 @@
4
4
  *
5
5
  * Manage unstructured data using DataSet. Add, update, and remove data, and listen for changes in the data.
6
6
  *
7
- * @version 8.0.4
8
- * @date 2026-05-07T14:01:37.689Z
7
+ * @version 8.0.5
8
+ * @date 2026-08-06T17:35:50.737Z
9
9
  *
10
10
  * @copyright (c) 2011-2017 Almende B.V, http://almende.com
11
11
  * @copyright (c) 2017-2019 visjs contributors, https://github.com/visjs
@@ -84,7 +84,7 @@ function requireFunctionBindNative () {
84
84
 
85
85
  functionBindNative = !fails(function () {
86
86
  // eslint-disable-next-line es/no-function-prototype-bind -- safe
87
- var test = (function () { /* empty */ }).bind();
87
+ var test = function () { /* empty */ }.bind();
88
88
  // eslint-disable-next-line no-prototype-builtins -- safe
89
89
  return typeof test != 'function' || test.hasOwnProperty('prototype');
90
90
  });
@@ -630,10 +630,10 @@ function requireSharedStore () {
630
630
  var store = sharedStore.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {});
631
631
 
632
632
  (store.versions || (store.versions = [])).push({
633
- version: '3.44.0',
633
+ version: '3.49.0',
634
634
  mode: IS_PURE ? 'pure' : 'global',
635
- copyright: '© 2014-2025 Denis Pushkarev (zloirock.ru)',
636
- license: 'https://github.com/zloirock/core-js/blob/v3.44.0/LICENSE',
635
+ copyright: '© 2013–2025 Denis Pushkarev (zloirock.ru), 2025–2026 CoreJS Company (core-js.io). All rights reserved.',
636
+ license: 'https://github.com/zloirock/core-js/blob/v3.49.0/LICENSE',
637
637
  source: 'https://github.com/zloirock/core-js'
638
638
  });
639
639
  return sharedStore.exports;
@@ -1160,11 +1160,11 @@ function requireDefineProperty$5 () {
1160
1160
 
1161
1161
  var Object = path.Object;
1162
1162
 
1163
- var defineProperty = defineProperty$5.exports = function defineProperty(it, key, desc) {
1163
+ var $defineProperty = defineProperty$5.exports = function defineProperty(it, key, desc) {
1164
1164
  return Object.defineProperty(it, key, desc);
1165
1165
  };
1166
1166
 
1167
- if (Object.defineProperty.sham) defineProperty.sham = true;
1167
+ if (Object.defineProperty.sham) $defineProperty.sham = true;
1168
1168
  return defineProperty$5.exports;
1169
1169
  }
1170
1170
 
@@ -1219,21 +1219,21 @@ var _Object$defineProperty$1 = /*@__PURE__*/getDefaultExportFromCjs(defineProper
1219
1219
 
1220
1220
  var es_array_concat = {};
1221
1221
 
1222
- var isArray$3;
1223
- var hasRequiredIsArray$3;
1222
+ var isArray$6;
1223
+ var hasRequiredIsArray$6;
1224
1224
 
1225
- function requireIsArray$3 () {
1226
- if (hasRequiredIsArray$3) return isArray$3;
1227
- hasRequiredIsArray$3 = 1;
1225
+ function requireIsArray$6 () {
1226
+ if (hasRequiredIsArray$6) return isArray$6;
1227
+ hasRequiredIsArray$6 = 1;
1228
1228
  var classof = /*@__PURE__*/ requireClassofRaw();
1229
1229
 
1230
1230
  // `IsArray` abstract operation
1231
1231
  // https://tc39.es/ecma262/#sec-isarray
1232
1232
  // eslint-disable-next-line es/no-array-isarray -- safe
1233
- isArray$3 = Array.isArray || function isArray(argument) {
1233
+ isArray$6 = Array.isArray || function isArray(argument) {
1234
1234
  return classof(argument) === 'Array';
1235
1235
  };
1236
- return isArray$3;
1236
+ return isArray$6;
1237
1237
  }
1238
1238
 
1239
1239
  var mathTrunc;
@@ -1318,7 +1318,7 @@ function requireDoesNotExceedSafeInteger () {
1318
1318
  var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991
1319
1319
 
1320
1320
  doesNotExceedSafeInteger = function (it) {
1321
- if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');
1321
+ if (it > MAX_SAFE_INTEGER) throw new $TypeError('Maximum allowed index exceeded');
1322
1322
  return it;
1323
1323
  };
1324
1324
  return doesNotExceedSafeInteger;
@@ -1341,6 +1341,41 @@ function requireCreateProperty () {
1341
1341
  return createProperty;
1342
1342
  }
1343
1343
 
1344
+ var arraySetLength;
1345
+ var hasRequiredArraySetLength;
1346
+
1347
+ function requireArraySetLength () {
1348
+ if (hasRequiredArraySetLength) return arraySetLength;
1349
+ hasRequiredArraySetLength = 1;
1350
+ var DESCRIPTORS = /*@__PURE__*/ requireDescriptors();
1351
+ var isArray = /*@__PURE__*/ requireIsArray$6();
1352
+
1353
+ var $TypeError = TypeError;
1354
+ // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
1355
+ var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
1356
+
1357
+ // Safari < 13 does not throw an error in this case
1358
+ var SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {
1359
+ // makes no sense without proper strict mode support
1360
+ if (this !== undefined) return true;
1361
+ try {
1362
+ // eslint-disable-next-line es/no-object-defineproperty -- safe
1363
+ Object.defineProperty([], 'length', { writable: false }).length = 1;
1364
+ } catch (error) {
1365
+ return error instanceof TypeError;
1366
+ }
1367
+ }();
1368
+
1369
+ arraySetLength = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {
1370
+ if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {
1371
+ throw new $TypeError('Cannot set read only .length');
1372
+ } return O.length = length;
1373
+ } : function (O, length) {
1374
+ return O.length = length;
1375
+ };
1376
+ return arraySetLength;
1377
+ }
1378
+
1344
1379
  var toStringTagSupport;
1345
1380
  var hasRequiredToStringTagSupport;
1346
1381
 
@@ -1351,7 +1386,7 @@ function requireToStringTagSupport () {
1351
1386
 
1352
1387
  var TO_STRING_TAG = wellKnownSymbol('toStringTag');
1353
1388
  var test = {};
1354
-
1389
+ // eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation
1355
1390
  test[TO_STRING_TAG] = 'z';
1356
1391
 
1357
1392
  toStringTagSupport = String(test) === '[object z]';
@@ -1485,7 +1520,7 @@ var hasRequiredArraySpeciesConstructor;
1485
1520
  function requireArraySpeciesConstructor () {
1486
1521
  if (hasRequiredArraySpeciesConstructor) return arraySpeciesConstructor;
1487
1522
  hasRequiredArraySpeciesConstructor = 1;
1488
- var isArray = /*@__PURE__*/ requireIsArray$3();
1523
+ var isArray = /*@__PURE__*/ requireIsArray$6();
1489
1524
  var isConstructor = /*@__PURE__*/ requireIsConstructor();
1490
1525
  var isObject = /*@__PURE__*/ requireIsObject();
1491
1526
  var wellKnownSymbol = /*@__PURE__*/ requireWellKnownSymbol();
@@ -1561,12 +1596,13 @@ function requireEs_array_concat () {
1561
1596
  hasRequiredEs_array_concat = 1;
1562
1597
  var $ = /*@__PURE__*/ require_export();
1563
1598
  var fails = /*@__PURE__*/ requireFails();
1564
- var isArray = /*@__PURE__*/ requireIsArray$3();
1599
+ var isArray = /*@__PURE__*/ requireIsArray$6();
1565
1600
  var isObject = /*@__PURE__*/ requireIsObject();
1566
1601
  var toObject = /*@__PURE__*/ requireToObject();
1567
1602
  var lengthOfArrayLike = /*@__PURE__*/ requireLengthOfArrayLike();
1568
1603
  var doesNotExceedSafeInteger = /*@__PURE__*/ requireDoesNotExceedSafeInteger();
1569
1604
  var createProperty = /*@__PURE__*/ requireCreateProperty();
1605
+ var setArrayLength = /*@__PURE__*/ requireArraySetLength();
1570
1606
  var arraySpeciesCreate = /*@__PURE__*/ requireArraySpeciesCreate();
1571
1607
  var arrayMethodHasSpeciesSupport = /*@__PURE__*/ requireArrayMethodHasSpeciesSupport();
1572
1608
  var wellKnownSymbol = /*@__PURE__*/ requireWellKnownSymbol();
@@ -1612,7 +1648,7 @@ function requireEs_array_concat () {
1612
1648
  createProperty(A, n++, E);
1613
1649
  }
1614
1650
  }
1615
- A.length = n;
1651
+ setArrayLength(A, n);
1616
1652
  return A;
1617
1653
  }
1618
1654
  });
@@ -2248,13 +2284,11 @@ function requireArrayIteration () {
2248
2284
  if (hasRequiredArrayIteration) return arrayIteration;
2249
2285
  hasRequiredArrayIteration = 1;
2250
2286
  var bind = /*@__PURE__*/ requireFunctionBindContext();
2251
- var uncurryThis = /*@__PURE__*/ requireFunctionUncurryThis();
2252
2287
  var IndexedObject = /*@__PURE__*/ requireIndexedObject();
2253
2288
  var toObject = /*@__PURE__*/ requireToObject();
2254
2289
  var lengthOfArrayLike = /*@__PURE__*/ requireLengthOfArrayLike();
2255
2290
  var arraySpeciesCreate = /*@__PURE__*/ requireArraySpeciesCreate();
2256
-
2257
- var push = uncurryThis([].push);
2291
+ var createProperty = /*@__PURE__*/ requireCreateProperty();
2258
2292
 
2259
2293
  // `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation
2260
2294
  var createMethod = function (TYPE) {
@@ -2265,28 +2299,28 @@ function requireArrayIteration () {
2265
2299
  var IS_FIND_INDEX = TYPE === 6;
2266
2300
  var IS_FILTER_REJECT = TYPE === 7;
2267
2301
  var NO_HOLES = TYPE === 5 || IS_FIND_INDEX;
2268
- return function ($this, callbackfn, that, specificCreate) {
2302
+ return function ($this, callbackfn, that) {
2269
2303
  var O = toObject($this);
2270
2304
  var self = IndexedObject(O);
2271
2305
  var length = lengthOfArrayLike(self);
2272
2306
  var boundFunction = bind(callbackfn, that);
2273
2307
  var index = 0;
2274
- var create = specificCreate || arraySpeciesCreate;
2275
- var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;
2308
+ var resIndex = 0;
2309
+ var target = IS_MAP ? arraySpeciesCreate($this, length) : IS_FILTER || IS_FILTER_REJECT ? arraySpeciesCreate($this, 0) : undefined;
2276
2310
  var value, result;
2277
2311
  for (;length > index; index++) if (NO_HOLES || index in self) {
2278
2312
  value = self[index];
2279
2313
  result = boundFunction(value, index, O);
2280
2314
  if (TYPE) {
2281
- if (IS_MAP) target[index] = result; // map
2315
+ if (IS_MAP) createProperty(target, index, result); // map
2282
2316
  else if (result) switch (TYPE) {
2283
- case 3: return true; // some
2284
- case 5: return value; // find
2285
- case 6: return index; // findIndex
2286
- case 2: push(target, value); // filter
2317
+ case 3: return true; // some
2318
+ case 5: return value; // find
2319
+ case 6: return index; // findIndex
2320
+ case 2: createProperty(target, resIndex++, value); // filter
2287
2321
  } else switch (TYPE) {
2288
- case 4: return false; // every
2289
- case 7: push(target, value); // filterReject
2322
+ case 4: return false; // every
2323
+ case 7: createProperty(target, resIndex++, value); // filterReject
2290
2324
  }
2291
2325
  }
2292
2326
  }
@@ -2399,7 +2433,7 @@ function requireEs_symbol_constructor () {
2399
2433
  nativeDefineProperty(O, P, Attributes);
2400
2434
  if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {
2401
2435
  nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);
2402
- }
2436
+ } return O;
2403
2437
  };
2404
2438
 
2405
2439
  var setSymbolDescriptor = DESCRIPTORS && fails(function () {
@@ -2425,7 +2459,8 @@ function requireEs_symbol_constructor () {
2425
2459
  var key = toPropertyKey(P);
2426
2460
  anObject(Attributes);
2427
2461
  if (hasOwn(AllSymbols, key)) {
2428
- if (!Attributes.enumerable) {
2462
+ // first definition - default non-enumerable; redefinition - preserve existing state
2463
+ if (!('enumerable' in Attributes) ? !hasOwn(O, key) || (hasOwn(O, HIDDEN) && O[HIDDEN][key]) : !Attributes.enumerable) {
2429
2464
  if (!hasOwn(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, nativeObjectCreate(null)));
2430
2465
  O[HIDDEN][key] = true;
2431
2466
  } else {
@@ -2667,42 +2702,104 @@ function requireEs_symbol_keyFor () {
2667
2702
 
2668
2703
  var es_json_stringify = {};
2669
2704
 
2670
- var getJsonReplacerFunction;
2671
- var hasRequiredGetJsonReplacerFunction;
2705
+ var isRawJson;
2706
+ var hasRequiredIsRawJson;
2707
+
2708
+ function requireIsRawJson () {
2709
+ if (hasRequiredIsRawJson) return isRawJson;
2710
+ hasRequiredIsRawJson = 1;
2711
+ var isObject = /*@__PURE__*/ requireIsObject();
2712
+ var getInternalState = /*@__PURE__*/ requireInternalState().get;
2713
+
2714
+ isRawJson = function isRawJSON(O) {
2715
+ if (!isObject(O)) return false;
2716
+ var state = getInternalState(O);
2717
+ return !!state && state.type === 'RawJSON';
2718
+ };
2719
+ return isRawJson;
2720
+ }
2721
+
2722
+ var parseJsonString;
2723
+ var hasRequiredParseJsonString;
2672
2724
 
2673
- function requireGetJsonReplacerFunction () {
2674
- if (hasRequiredGetJsonReplacerFunction) return getJsonReplacerFunction;
2675
- hasRequiredGetJsonReplacerFunction = 1;
2725
+ function requireParseJsonString () {
2726
+ if (hasRequiredParseJsonString) return parseJsonString;
2727
+ hasRequiredParseJsonString = 1;
2676
2728
  var uncurryThis = /*@__PURE__*/ requireFunctionUncurryThis();
2677
- var isArray = /*@__PURE__*/ requireIsArray$3();
2678
- var isCallable = /*@__PURE__*/ requireIsCallable();
2679
- var classof = /*@__PURE__*/ requireClassofRaw();
2680
- var toString = /*@__PURE__*/ requireToString();
2729
+ var hasOwn = /*@__PURE__*/ requireHasOwnProperty();
2681
2730
 
2682
- var push = uncurryThis([].push);
2731
+ var $SyntaxError = SyntaxError;
2732
+ var $parseInt = parseInt;
2733
+ var fromCharCode = String.fromCharCode;
2734
+ var at = uncurryThis(''.charAt);
2735
+ var slice = uncurryThis(''.slice);
2736
+ var exec = uncurryThis(/./.exec);
2683
2737
 
2684
- getJsonReplacerFunction = function (replacer) {
2685
- if (isCallable(replacer)) return replacer;
2686
- if (!isArray(replacer)) return;
2687
- var rawLength = replacer.length;
2688
- var keys = [];
2689
- for (var i = 0; i < rawLength; i++) {
2690
- var element = replacer[i];
2691
- if (typeof element == 'string') push(keys, element);
2692
- else if (typeof element == 'number' || classof(element) === 'Number' || classof(element) === 'String') push(keys, toString(element));
2693
- }
2694
- var keysLength = keys.length;
2695
- var root = true;
2696
- return function (key, value) {
2697
- if (root) {
2698
- root = false;
2699
- return value;
2738
+ var codePoints = {
2739
+ '\\"': '"',
2740
+ '\\\\': '\\',
2741
+ '\\/': '/',
2742
+ '\\b': '\b',
2743
+ '\\f': '\f',
2744
+ '\\n': '\n',
2745
+ '\\r': '\r',
2746
+ '\\t': '\t'
2747
+ };
2748
+
2749
+ var IS_4_HEX_DIGITS = /^[\da-f]{4}$/i;
2750
+ // eslint-disable-next-line regexp/no-control-character -- safe
2751
+ var IS_C0_CONTROL_CODE = /^[\u0000-\u001F]$/;
2752
+
2753
+ parseJsonString = function (source, i) {
2754
+ var unterminated = true;
2755
+ var value = '';
2756
+ while (i < source.length) {
2757
+ var chr = at(source, i);
2758
+ if (chr === '\\') {
2759
+ var twoChars = slice(source, i, i + 2);
2760
+ if (hasOwn(codePoints, twoChars)) {
2761
+ value += codePoints[twoChars];
2762
+ i += 2;
2763
+ } else if (twoChars === '\\u') {
2764
+ i += 2;
2765
+ var fourHexDigits = slice(source, i, i + 4);
2766
+ if (!exec(IS_4_HEX_DIGITS, fourHexDigits)) throw new $SyntaxError('Bad Unicode escape at: ' + i);
2767
+ value += fromCharCode($parseInt(fourHexDigits, 16));
2768
+ i += 4;
2769
+ } else throw new $SyntaxError('Unknown escape sequence: "' + twoChars + '"');
2770
+ } else if (chr === '"') {
2771
+ unterminated = false;
2772
+ i++;
2773
+ break;
2774
+ } else {
2775
+ if (exec(IS_C0_CONTROL_CODE, chr)) throw new $SyntaxError('Bad control character in string literal at: ' + i);
2776
+ value += chr;
2777
+ i++;
2700
2778
  }
2701
- if (isArray(this)) return value;
2702
- for (var j = 0; j < keysLength; j++) if (keys[j] === key) return value;
2703
- };
2779
+ }
2780
+ if (unterminated) throw new $SyntaxError('Unterminated string at: ' + i);
2781
+ return { value: value, end: i };
2704
2782
  };
2705
- return getJsonReplacerFunction;
2783
+ return parseJsonString;
2784
+ }
2785
+
2786
+ var nativeRawJson;
2787
+ var hasRequiredNativeRawJson;
2788
+
2789
+ function requireNativeRawJson () {
2790
+ if (hasRequiredNativeRawJson) return nativeRawJson;
2791
+ hasRequiredNativeRawJson = 1;
2792
+ /* eslint-disable es/no-json -- safe */
2793
+ var fails = /*@__PURE__*/ requireFails();
2794
+
2795
+ nativeRawJson = !fails(function () {
2796
+ var unsafeInt = '9007199254740993';
2797
+ // eslint-disable-next-line es/no-json-rawjson -- feature detection
2798
+ var raw = JSON.rawJSON(unsafeInt);
2799
+ // eslint-disable-next-line es/no-json-israwjson -- feature detection
2800
+ return !JSON.isRawJSON(raw) || JSON.stringify(raw) !== unsafeInt;
2801
+ });
2802
+ return nativeRawJson;
2706
2803
  }
2707
2804
 
2708
2805
  var hasRequiredEs_json_stringify;
@@ -2716,11 +2813,17 @@ function requireEs_json_stringify () {
2716
2813
  var call = /*@__PURE__*/ requireFunctionCall();
2717
2814
  var uncurryThis = /*@__PURE__*/ requireFunctionUncurryThis();
2718
2815
  var fails = /*@__PURE__*/ requireFails();
2816
+ var isArray = /*@__PURE__*/ requireIsArray$6();
2719
2817
  var isCallable = /*@__PURE__*/ requireIsCallable();
2818
+ var isRawJSON = /*@__PURE__*/ requireIsRawJson();
2720
2819
  var isSymbol = /*@__PURE__*/ requireIsSymbol();
2820
+ var classof = /*@__PURE__*/ requireClassofRaw();
2821
+ var toString = /*@__PURE__*/ requireToString();
2721
2822
  var arraySlice = /*@__PURE__*/ requireArraySlice();
2722
- var getReplacerFunction = /*@__PURE__*/ requireGetJsonReplacerFunction();
2823
+ var parseJSONString = /*@__PURE__*/ requireParseJsonString();
2824
+ var uid = /*@__PURE__*/ requireUid();
2723
2825
  var NATIVE_SYMBOL = /*@__PURE__*/ requireSymbolConstructorDetection();
2826
+ var NATIVE_RAW_JSON = /*@__PURE__*/ requireNativeRawJson();
2724
2827
 
2725
2828
  var $String = String;
2726
2829
  var $stringify = getBuiltIn('JSON', 'stringify');
@@ -2728,11 +2831,16 @@ function requireEs_json_stringify () {
2728
2831
  var charAt = uncurryThis(''.charAt);
2729
2832
  var charCodeAt = uncurryThis(''.charCodeAt);
2730
2833
  var replace = uncurryThis(''.replace);
2834
+ var slice = uncurryThis(''.slice);
2835
+ var push = uncurryThis([].push);
2731
2836
  var numberToString = uncurryThis(1.1.toString);
2732
2837
 
2733
- var tester = /[\uD800-\uDFFF]/g;
2734
- var low = /^[\uD800-\uDBFF]$/;
2735
- var hi = /^[\uDC00-\uDFFF]$/;
2838
+ var surrogates = /[\uD800-\uDFFF]/g;
2839
+ var leadingSurrogates = /^[\uD800-\uDBFF]$/;
2840
+ var trailingSurrogates = /^[\uDC00-\uDFFF]$/;
2841
+
2842
+ var MARK = uid();
2843
+ var MARK_LENGTH = MARK.length;
2736
2844
 
2737
2845
  var WRONG_SYMBOLS_CONVERSION = !NATIVE_SYMBOL || fails(function () {
2738
2846
  var symbol = getBuiltIn('Symbol')('stringify detection');
@@ -2750,7 +2858,7 @@ function requireEs_json_stringify () {
2750
2858
  || $stringify('\uDEAD') !== '"\\udead"';
2751
2859
  });
2752
2860
 
2753
- var stringifyWithSymbolsFix = function (it, replacer) {
2861
+ var stringifyWithProperSymbolsConversion = WRONG_SYMBOLS_CONVERSION ? function (it, replacer) {
2754
2862
  var args = arraySlice(arguments);
2755
2863
  var $replacer = getReplacerFunction(replacer);
2756
2864
  if (!isCallable($replacer) && (it === undefined || isSymbol(it))) return; // IE8 returns string on undefined
@@ -2760,28 +2868,79 @@ function requireEs_json_stringify () {
2760
2868
  if (!isSymbol(value)) return value;
2761
2869
  };
2762
2870
  return apply($stringify, null, args);
2763
- };
2871
+ } : $stringify;
2764
2872
 
2765
- var fixIllFormed = function (match, offset, string) {
2873
+ var fixIllFormedJSON = function (match, offset, string) {
2766
2874
  var prev = charAt(string, offset - 1);
2767
2875
  var next = charAt(string, offset + 1);
2768
- if ((exec(low, match) && !exec(hi, next)) || (exec(hi, match) && !exec(low, prev))) {
2876
+ if (
2877
+ (exec(leadingSurrogates, match) && !exec(trailingSurrogates, next)) ||
2878
+ (exec(trailingSurrogates, match) && !exec(leadingSurrogates, prev))
2879
+ ) {
2769
2880
  return '\\u' + numberToString(charCodeAt(match, 0), 16);
2770
2881
  } return match;
2771
2882
  };
2772
2883
 
2773
- if ($stringify) {
2774
- // `JSON.stringify` method
2775
- // https://tc39.es/ecma262/#sec-json.stringify
2776
- $({ target: 'JSON', stat: true, arity: 3, forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE }, {
2777
- // eslint-disable-next-line no-unused-vars -- required for `.length`
2778
- stringify: function stringify(it, replacer, space) {
2779
- var args = arraySlice(arguments);
2780
- var result = apply(WRONG_SYMBOLS_CONVERSION ? stringifyWithSymbolsFix : $stringify, null, args);
2781
- return ILL_FORMED_UNICODE && typeof result == 'string' ? replace(result, tester, fixIllFormed) : result;
2884
+ var getReplacerFunction = function (replacer) {
2885
+ if (isCallable(replacer)) return replacer;
2886
+ if (!isArray(replacer)) return;
2887
+ var rawLength = replacer.length;
2888
+ var keys = [];
2889
+ for (var i = 0; i < rawLength; i++) {
2890
+ var element = replacer[i];
2891
+ if (typeof element == 'string') push(keys, element);
2892
+ else if (typeof element == 'number' || classof(element) === 'Number' || classof(element) === 'String') push(keys, toString(element));
2893
+ }
2894
+ var keysLength = keys.length;
2895
+ var root = true;
2896
+ return function (key, value) {
2897
+ if (root) {
2898
+ root = false;
2899
+ return value;
2900
+ }
2901
+ if (isArray(this)) return value;
2902
+ for (var j = 0; j < keysLength; j++) if (keys[j] === key) return value;
2903
+ };
2904
+ };
2905
+
2906
+ // `JSON.stringify` method
2907
+ // https://tc39.es/ecma262/#sec-json.stringify
2908
+ // https://github.com/tc39/proposal-json-parse-with-source
2909
+ if ($stringify) $({ target: 'JSON', stat: true, arity: 3, forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE || !NATIVE_RAW_JSON }, {
2910
+ stringify: function stringify(text, replacer, space) {
2911
+ var replacerFunction = getReplacerFunction(replacer);
2912
+ var rawStrings = [];
2913
+
2914
+ var json = stringifyWithProperSymbolsConversion(text, function (key, value) {
2915
+ // some old implementations (like WebKit) could pass numbers as keys
2916
+ var v = isCallable(replacerFunction) ? call(replacerFunction, this, $String(key), value) : value;
2917
+ return !NATIVE_RAW_JSON && isRawJSON(v) ? MARK + (push(rawStrings, v.rawJSON) - 1) : v;
2918
+ }, space);
2919
+
2920
+ if (typeof json != 'string') return json;
2921
+
2922
+ if (ILL_FORMED_UNICODE) json = replace(json, surrogates, fixIllFormedJSON);
2923
+
2924
+ if (NATIVE_RAW_JSON) return json;
2925
+
2926
+ var result = '';
2927
+ var length = json.length;
2928
+
2929
+ for (var i = 0; i < length; i++) {
2930
+ var chr = charAt(json, i);
2931
+ if (chr === '"') {
2932
+ var end = parseJSONString(json, ++i).end - 1;
2933
+ var string = slice(json, i, end);
2934
+ result += slice(string, 0, MARK_LENGTH) === MARK
2935
+ ? rawStrings[slice(string, MARK_LENGTH)]
2936
+ : '"' + string + '"';
2937
+ i = end;
2938
+ } else result += chr;
2782
2939
  }
2783
- });
2784
- }
2940
+
2941
+ return result;
2942
+ }
2943
+ });
2785
2944
  return es_json_stringify;
2786
2945
  }
2787
2946
 
@@ -3146,7 +3305,7 @@ function requireFunctionName () {
3146
3305
 
3147
3306
  var EXISTS = hasOwn(FunctionPrototype, 'name');
3148
3307
  // additional protection from minified / mangled / dropped function names
3149
- var PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';
3308
+ var PROPER = EXISTS && function something() { /* empty */ }.name === 'something';
3150
3309
  var CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));
3151
3310
 
3152
3311
  functionName = {
@@ -4742,10 +4901,11 @@ var hasRequiredFlattenIntoArray;
4742
4901
  function requireFlattenIntoArray () {
4743
4902
  if (hasRequiredFlattenIntoArray) return flattenIntoArray_1;
4744
4903
  hasRequiredFlattenIntoArray = 1;
4745
- var isArray = /*@__PURE__*/ requireIsArray$3();
4904
+ var isArray = /*@__PURE__*/ requireIsArray$6();
4746
4905
  var lengthOfArrayLike = /*@__PURE__*/ requireLengthOfArrayLike();
4747
4906
  var doesNotExceedSafeInteger = /*@__PURE__*/ requireDoesNotExceedSafeInteger();
4748
4907
  var bind = /*@__PURE__*/ requireFunctionBindContext();
4908
+ var createProperty = /*@__PURE__*/ requireCreateProperty();
4749
4909
 
4750
4910
  // `FlattenIntoArray` abstract operation
4751
4911
  // https://tc39.es/ecma262/#sec-flattenintoarray
@@ -4764,7 +4924,7 @@ function requireFlattenIntoArray () {
4764
4924
  targetIndex = flattenIntoArray(target, original, element, elementLen, targetIndex, depth - 1) - 1;
4765
4925
  } else {
4766
4926
  doesNotExceedSafeInteger(targetIndex + 1);
4767
- target[targetIndex] = element;
4927
+ createProperty(target, targetIndex, element);
4768
4928
  }
4769
4929
 
4770
4930
  targetIndex++;
@@ -4799,7 +4959,7 @@ function requireEs_array_flatMap () {
4799
4959
  var A;
4800
4960
  aCallable(callbackfn);
4801
4961
  A = arraySpeciesCreate(O, 0);
4802
- A.length = flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
4962
+ flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
4803
4963
  return A;
4804
4964
  }
4805
4965
  });
@@ -8568,11 +8728,11 @@ function requireGetOwnPropertyDescriptor$2 () {
8568
8728
 
8569
8729
  var Object = path.Object;
8570
8730
 
8571
- var getOwnPropertyDescriptor = getOwnPropertyDescriptor$2.exports = function getOwnPropertyDescriptor(it, key) {
8731
+ var $getOwnPropertyDescriptor = getOwnPropertyDescriptor$2.exports = function getOwnPropertyDescriptor(it, key) {
8572
8732
  return Object.getOwnPropertyDescriptor(it, key);
8573
8733
  };
8574
8734
 
8575
- if (Object.getOwnPropertyDescriptor.sham) getOwnPropertyDescriptor.sham = true;
8735
+ if (Object.getOwnPropertyDescriptor.sham) $getOwnPropertyDescriptor.sham = true;
8576
8736
  return getOwnPropertyDescriptor$2.exports;
8577
8737
  }
8578
8738
 
@@ -8831,11 +8991,11 @@ function requireDefineProperties$2 () {
8831
8991
 
8832
8992
  var Object = path.Object;
8833
8993
 
8834
- var defineProperties = defineProperties$2.exports = function defineProperties(T, D) {
8994
+ var $defineProperties = defineProperties$2.exports = function defineProperties(T, D) {
8835
8995
  return Object.defineProperties(T, D);
8836
8996
  };
8837
8997
 
8838
- if (Object.defineProperties.sham) defineProperties.sham = true;
8998
+ if (Object.defineProperties.sham) $defineProperties.sham = true;
8839
8999
  return defineProperties$2.exports;
8840
9000
  }
8841
9001
 
@@ -8885,7 +9045,7 @@ function requireEs_array_isArray () {
8885
9045
  if (hasRequiredEs_array_isArray) return es_array_isArray;
8886
9046
  hasRequiredEs_array_isArray = 1;
8887
9047
  var $ = /*@__PURE__*/ require_export();
8888
- var isArray = /*@__PURE__*/ requireIsArray$3();
9048
+ var isArray = /*@__PURE__*/ requireIsArray$6();
8889
9049
 
8890
9050
  // `Array.isArray` method
8891
9051
  // https://tc39.es/ecma262/#sec-array.isarray
@@ -8895,43 +9055,43 @@ function requireEs_array_isArray () {
8895
9055
  return es_array_isArray;
8896
9056
  }
8897
9057
 
8898
- var isArray$2;
8899
- var hasRequiredIsArray$2;
9058
+ var isArray$5;
9059
+ var hasRequiredIsArray$5;
8900
9060
 
8901
- function requireIsArray$2 () {
8902
- if (hasRequiredIsArray$2) return isArray$2;
8903
- hasRequiredIsArray$2 = 1;
9061
+ function requireIsArray$5 () {
9062
+ if (hasRequiredIsArray$5) return isArray$5;
9063
+ hasRequiredIsArray$5 = 1;
8904
9064
  requireEs_array_isArray();
8905
9065
  var path = /*@__PURE__*/ requirePath();
8906
9066
 
8907
- isArray$2 = path.Array.isArray;
8908
- return isArray$2;
9067
+ isArray$5 = path.Array.isArray;
9068
+ return isArray$5;
8909
9069
  }
8910
9070
 
8911
- var isArray$1;
8912
- var hasRequiredIsArray$1;
9071
+ var isArray$4;
9072
+ var hasRequiredIsArray$4;
8913
9073
 
8914
- function requireIsArray$1 () {
8915
- if (hasRequiredIsArray$1) return isArray$1;
8916
- hasRequiredIsArray$1 = 1;
8917
- var parent = /*@__PURE__*/ requireIsArray$2();
9074
+ function requireIsArray$4 () {
9075
+ if (hasRequiredIsArray$4) return isArray$4;
9076
+ hasRequiredIsArray$4 = 1;
9077
+ var parent = /*@__PURE__*/ requireIsArray$5();
8918
9078
 
8919
- isArray$1 = parent;
8920
- return isArray$1;
9079
+ isArray$4 = parent;
9080
+ return isArray$4;
8921
9081
  }
8922
9082
 
8923
- var isArray;
8924
- var hasRequiredIsArray;
9083
+ var isArray$3;
9084
+ var hasRequiredIsArray$3;
8925
9085
 
8926
- function requireIsArray () {
8927
- if (hasRequiredIsArray) return isArray;
8928
- hasRequiredIsArray = 1;
8929
- isArray = /*@__PURE__*/ requireIsArray$1();
8930
- return isArray;
9086
+ function requireIsArray$3 () {
9087
+ if (hasRequiredIsArray$3) return isArray$3;
9088
+ hasRequiredIsArray$3 = 1;
9089
+ isArray$3 = /*@__PURE__*/ requireIsArray$4();
9090
+ return isArray$3;
8931
9091
  }
8932
9092
 
8933
- var isArrayExports = requireIsArray();
8934
- var _Array$isArray = /*@__PURE__*/getDefaultExportFromCjs(isArrayExports);
9093
+ var isArrayExports$1 = requireIsArray$3();
9094
+ var _Array$isArray$1 = /*@__PURE__*/getDefaultExportFromCjs(isArrayExports$1);
8935
9095
 
8936
9096
  var es_map = {};
8937
9097
 
@@ -9064,6 +9224,7 @@ function requireInternalMetadata () {
9064
9224
  var getOwnPropertyNames = getOwnPropertyNamesModule.f;
9065
9225
  var splice = uncurryThis([].splice);
9066
9226
  var test = {};
9227
+ // eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation
9067
9228
  test[METADATA] = 1;
9068
9229
 
9069
9230
  // prevent exposing of metadata key
@@ -9114,12 +9275,12 @@ function requireIsArrayIteratorMethod () {
9114
9275
  return isArrayIteratorMethod;
9115
9276
  }
9116
9277
 
9117
- var getIteratorMethod;
9118
- var hasRequiredGetIteratorMethod;
9278
+ var getIteratorMethod$4;
9279
+ var hasRequiredGetIteratorMethod$5;
9119
9280
 
9120
- function requireGetIteratorMethod () {
9121
- if (hasRequiredGetIteratorMethod) return getIteratorMethod;
9122
- hasRequiredGetIteratorMethod = 1;
9281
+ function requireGetIteratorMethod$5 () {
9282
+ if (hasRequiredGetIteratorMethod$5) return getIteratorMethod$4;
9283
+ hasRequiredGetIteratorMethod$5 = 1;
9123
9284
  var classof = /*@__PURE__*/ requireClassof();
9124
9285
  var getMethod = /*@__PURE__*/ requireGetMethod();
9125
9286
  var isNullOrUndefined = /*@__PURE__*/ requireIsNullOrUndefined();
@@ -9128,12 +9289,12 @@ function requireGetIteratorMethod () {
9128
9289
 
9129
9290
  var ITERATOR = wellKnownSymbol('iterator');
9130
9291
 
9131
- getIteratorMethod = function (it) {
9292
+ getIteratorMethod$4 = function (it) {
9132
9293
  if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)
9133
9294
  || getMethod(it, '@@iterator')
9134
9295
  || Iterators[classof(it)];
9135
9296
  };
9136
- return getIteratorMethod;
9297
+ return getIteratorMethod$4;
9137
9298
  }
9138
9299
 
9139
9300
  var getIterator$5;
@@ -9146,7 +9307,7 @@ function requireGetIterator$6 () {
9146
9307
  var aCallable = /*@__PURE__*/ requireACallable();
9147
9308
  var anObject = /*@__PURE__*/ requireAnObject();
9148
9309
  var tryToString = /*@__PURE__*/ requireTryToString();
9149
- var getIteratorMethod = /*@__PURE__*/ requireGetIteratorMethod();
9310
+ var getIteratorMethod = /*@__PURE__*/ requireGetIteratorMethod$5();
9150
9311
 
9151
9312
  var $TypeError = TypeError;
9152
9313
 
@@ -9204,7 +9365,7 @@ function requireIterate () {
9204
9365
  var lengthOfArrayLike = /*@__PURE__*/ requireLengthOfArrayLike();
9205
9366
  var isPrototypeOf = /*@__PURE__*/ requireObjectIsPrototypeOf();
9206
9367
  var getIterator = /*@__PURE__*/ requireGetIterator$6();
9207
- var getIteratorMethod = /*@__PURE__*/ requireGetIteratorMethod();
9368
+ var getIteratorMethod = /*@__PURE__*/ requireGetIteratorMethod$5();
9208
9369
  var iteratorClose = /*@__PURE__*/ requireIteratorClose();
9209
9370
 
9210
9371
  var $TypeError = TypeError;
@@ -9226,7 +9387,9 @@ function requireIterate () {
9226
9387
  var iterator, iterFn, index, length, result, next, step;
9227
9388
 
9228
9389
  var stop = function (condition) {
9229
- if (iterator) iteratorClose(iterator, 'normal');
9390
+ var $iterator = iterator;
9391
+ iterator = undefined;
9392
+ if ($iterator) iteratorClose($iterator, 'normal');
9230
9393
  return new Result(true, condition);
9231
9394
  };
9232
9395
 
@@ -9256,10 +9419,13 @@ function requireIterate () {
9256
9419
 
9257
9420
  next = IS_RECORD ? iterable.next : iterator.next;
9258
9421
  while (!(step = call(next, iterator)).done) {
9422
+ // `IteratorValue` errors should propagate without closing the iterator
9423
+ var value = step.value;
9259
9424
  try {
9260
- result = callFn(step.value);
9425
+ result = callFn(value);
9261
9426
  } catch (error) {
9262
- iteratorClose(iterator, 'throw', error);
9427
+ if (iterator) iteratorClose(iterator, 'throw', error);
9428
+ else throw error;
9263
9429
  }
9264
9430
  if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;
9265
9431
  } return new Result(false);
@@ -9293,6 +9459,7 @@ function requireCollection () {
9293
9459
  var $ = /*@__PURE__*/ require_export();
9294
9460
  var globalThis = /*@__PURE__*/ requireGlobalThis();
9295
9461
  var InternalMetadataModule = /*@__PURE__*/ requireInternalMetadata();
9462
+ var call = /*@__PURE__*/ requireFunctionCall();
9296
9463
  var fails = /*@__PURE__*/ requireFails();
9297
9464
  var createNonEnumerableProperty = /*@__PURE__*/ requireCreateNonEnumerableProperty();
9298
9465
  var iterate = /*@__PURE__*/ requireIterate();
@@ -9341,10 +9508,13 @@ function requireCollection () {
9341
9508
  var IS_ADDER = KEY === 'add' || KEY === 'set';
9342
9509
  if (KEY in NativePrototype && !(IS_WEAK && KEY === 'clear')) {
9343
9510
  createNonEnumerableProperty(Prototype, KEY, function (a, b) {
9344
- var collection = getInternalState(this).collection;
9511
+ var that = this;
9512
+ var collection = getInternalState(that).collection;
9345
9513
  if (!IS_ADDER && IS_WEAK && !isObject(a)) return KEY === 'get' ? undefined : false;
9346
- var result = collection[KEY](a === 0 ? 0 : a, b);
9347
- return IS_ADDER ? this : result;
9514
+ var result = collection[KEY](KEY === 'forEach' ? function (value, key) {
9515
+ call(a, b, value, key, that);
9516
+ } : a === 0 ? 0 : a, b);
9517
+ return IS_ADDER ? that : result;
9348
9518
  });
9349
9519
  }
9350
9520
  });
@@ -9738,6 +9908,66 @@ function requireEs_map_groupBy () {
9738
9908
  return es_map_groupBy;
9739
9909
  }
9740
9910
 
9911
+ var es_map_getOrInsert = {};
9912
+
9913
+ var hasRequiredEs_map_getOrInsert;
9914
+
9915
+ function requireEs_map_getOrInsert () {
9916
+ if (hasRequiredEs_map_getOrInsert) return es_map_getOrInsert;
9917
+ hasRequiredEs_map_getOrInsert = 1;
9918
+ var $ = /*@__PURE__*/ require_export();
9919
+ var MapHelpers = /*@__PURE__*/ requireMapHelpers();
9920
+ var IS_PURE = /*@__PURE__*/ requireIsPure();
9921
+
9922
+ var get = MapHelpers.get;
9923
+ var has = MapHelpers.has;
9924
+ var set = MapHelpers.set;
9925
+
9926
+ // `Map.prototype.getOrInsert` method
9927
+ // https://tc39.es/ecma262/#sec-map.prototype.getorinsert
9928
+ $({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
9929
+ getOrInsert: function getOrInsert(key, value) {
9930
+ if (has(this, key)) return get(this, key);
9931
+ set(this, key, value);
9932
+ return value;
9933
+ }
9934
+ });
9935
+ return es_map_getOrInsert;
9936
+ }
9937
+
9938
+ var es_map_getOrInsertComputed = {};
9939
+
9940
+ var hasRequiredEs_map_getOrInsertComputed;
9941
+
9942
+ function requireEs_map_getOrInsertComputed () {
9943
+ if (hasRequiredEs_map_getOrInsertComputed) return es_map_getOrInsertComputed;
9944
+ hasRequiredEs_map_getOrInsertComputed = 1;
9945
+ var $ = /*@__PURE__*/ require_export();
9946
+ var aCallable = /*@__PURE__*/ requireACallable();
9947
+ var MapHelpers = /*@__PURE__*/ requireMapHelpers();
9948
+ var IS_PURE = /*@__PURE__*/ requireIsPure();
9949
+
9950
+ var get = MapHelpers.get;
9951
+ var has = MapHelpers.has;
9952
+ var set = MapHelpers.set;
9953
+
9954
+ // `Map.prototype.getOrInsertComputed` method
9955
+ // https://tc39.es/ecma262/#sec-map.prototype.getorinsertcomputed
9956
+ $({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
9957
+ getOrInsertComputed: function getOrInsertComputed(key, callbackfn) {
9958
+ var hasKey = has(this, key);
9959
+ aCallable(callbackfn);
9960
+ if (hasKey) return get(this, key);
9961
+ // CanonicalizeKeyedCollectionKey
9962
+ if (key === 0 && 1 / key === -Infinity) key = 0;
9963
+ var value = callbackfn(key);
9964
+ set(this, key, value);
9965
+ return value;
9966
+ }
9967
+ });
9968
+ return es_map_getOrInsertComputed;
9969
+ }
9970
+
9741
9971
  var map$2;
9742
9972
  var hasRequiredMap$2;
9743
9973
 
@@ -9747,6 +9977,8 @@ function requireMap$2 () {
9747
9977
  requireEs_array_iterator();
9748
9978
  requireEs_map();
9749
9979
  requireEs_map_groupBy();
9980
+ requireEs_map_getOrInsert();
9981
+ requireEs_map_getOrInsertComputed();
9750
9982
  requireEs_string_iterator();
9751
9983
  var path = /*@__PURE__*/ requirePath();
9752
9984
 
@@ -10350,7 +10582,9 @@ function requireEs_array_sort () {
10350
10582
  if (y === undefined) return -1;
10351
10583
  if (x === undefined) return 1;
10352
10584
  if (comparefn !== undefined) return +comparefn(x, y) || 0;
10353
- return toString(x) > toString(y) ? 1 : -1;
10585
+ var xString = toString(x);
10586
+ var yString = toString(y);
10587
+ return xString === yString ? 0 : xString > yString ? 1 : -1;
10354
10588
  };
10355
10589
  };
10356
10590
 
@@ -10520,6 +10754,7 @@ function requireStringRepeat () {
10520
10754
  var requireObjectCoercible = /*@__PURE__*/ requireRequireObjectCoercible();
10521
10755
 
10522
10756
  var $RangeError = RangeError;
10757
+ var floor = Math.floor;
10523
10758
 
10524
10759
  // `String.prototype.repeat` method implementation
10525
10760
  // https://tc39.es/ecma262/#sec-string.prototype.repeat
@@ -10528,7 +10763,7 @@ function requireStringRepeat () {
10528
10763
  var result = '';
10529
10764
  var n = toIntegerOrInfinity(count);
10530
10765
  if (n < 0 || n === Infinity) throw new $RangeError('Wrong number of repetitions');
10531
- for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;
10766
+ for (;n > 0; (n = floor(n / 2)) && (str += str)) if (n % 2) result += str;
10532
10767
  return result;
10533
10768
  };
10534
10769
  return stringRepeat;
@@ -10556,9 +10791,10 @@ function requireStringPad () {
10556
10791
  var S = toString(requireObjectCoercible($this));
10557
10792
  var intMaxLength = toLength(maxLength);
10558
10793
  var stringLength = S.length;
10794
+ if (intMaxLength <= stringLength) return S;
10559
10795
  var fillStr = fillString === undefined ? ' ' : toString(fillString);
10560
10796
  var fillLen, stringFiller;
10561
- if (intMaxLength <= stringLength || fillStr === '') return S;
10797
+ if (fillStr === '') return S;
10562
10798
  fillLen = intMaxLength - stringLength;
10563
10799
  stringFiller = repeat(fillStr, ceil(fillLen / fillStr.length));
10564
10800
  if (stringFiller.length > fillLen) stringFiller = stringSlice(stringFiller, 0, fillLen);
@@ -10840,543 +11076,726 @@ function isId(value) {
10840
11076
  return typeof value === "string" || typeof value === "number";
10841
11077
  }
10842
11078
 
10843
- var web_timers = {};
10844
-
10845
- var web_setInterval = {};
11079
+ /**
11080
+ * {@link DataSet} code that can be reused in {@link DataView} or other similar implementations of {@link DataInterface}.
11081
+ * @typeParam Item - Item type that may or may not have an id.
11082
+ * @typeParam IdProp - Name of the property that contains the id.
11083
+ */
11084
+ class DataSetPart {
11085
+ constructor() {
11086
+ _defineProperty(this, "_subscribers", {
11087
+ "*": [],
11088
+ add: [],
11089
+ remove: [],
11090
+ update: []
11091
+ });
11092
+ /**
11093
+ * @deprecated Use on instead (PS: DataView.subscribe === DataView.on).
11094
+ */
11095
+ _defineProperty(this, "subscribe", DataSetPart.prototype.on);
11096
+ /**
11097
+ * @deprecated Use off instead (PS: DataView.unsubscribe === DataView.off).
11098
+ */
11099
+ _defineProperty(this, "unsubscribe", DataSetPart.prototype.off);
11100
+ }
11101
+ /**
11102
+ * Trigger an event
11103
+ * @param event - Event name.
11104
+ * @param payload - Event payload.
11105
+ * @param senderId - Id of the sender.
11106
+ */
11107
+ _trigger(event, payload, senderId) {
11108
+ var _context;
11109
+ if (event === "*") {
11110
+ throw new Error("Cannot trigger event *");
11111
+ }
11112
+ _forEachInstanceProperty(_context = [...this._subscribers[event], ...this._subscribers["*"]]).call(_context, subscriber => {
11113
+ subscriber(event, payload, senderId != null ? senderId : null);
11114
+ });
11115
+ }
11116
+ /**
11117
+ * Subscribe to an event, add an event listener.
11118
+ * @remarks Non-function callbacks are ignored.
11119
+ * @param event - Event name.
11120
+ * @param callback - Callback method.
11121
+ */
11122
+ on(event, callback) {
11123
+ if (typeof callback === "function") {
11124
+ this._subscribers[event].push(callback);
11125
+ }
11126
+ // @TODO: Maybe throw for invalid callbacks?
11127
+ }
11128
+ /**
11129
+ * Unsubscribe from an event, remove an event listener.
11130
+ * @remarks If the same callback was subscribed more than once **all** occurences will be removed.
11131
+ * @param event - Event name.
11132
+ * @param callback - Callback method.
11133
+ */
11134
+ off(event, callback) {
11135
+ var _context2;
11136
+ this._subscribers[event] = _filterInstanceProperty(_context2 = this._subscribers[event]).call(_context2, subscriber => subscriber !== callback);
11137
+ }
11138
+ }
10846
11139
 
10847
- var validateArgumentsLength;
10848
- var hasRequiredValidateArgumentsLength;
11140
+ var isArray$2;
11141
+ var hasRequiredIsArray$2;
10849
11142
 
10850
- function requireValidateArgumentsLength () {
10851
- if (hasRequiredValidateArgumentsLength) return validateArgumentsLength;
10852
- hasRequiredValidateArgumentsLength = 1;
10853
- var $TypeError = TypeError;
11143
+ function requireIsArray$2 () {
11144
+ if (hasRequiredIsArray$2) return isArray$2;
11145
+ hasRequiredIsArray$2 = 1;
11146
+ var parent = /*@__PURE__*/ requireIsArray$4();
10854
11147
 
10855
- validateArgumentsLength = function (passed, required) {
10856
- if (passed < required) throw new $TypeError('Not enough arguments');
10857
- return passed;
10858
- };
10859
- return validateArgumentsLength;
11148
+ isArray$2 = parent;
11149
+ return isArray$2;
10860
11150
  }
10861
11151
 
10862
- var schedulersFix;
10863
- var hasRequiredSchedulersFix;
10864
-
10865
- function requireSchedulersFix () {
10866
- if (hasRequiredSchedulersFix) return schedulersFix;
10867
- hasRequiredSchedulersFix = 1;
10868
- var globalThis = /*@__PURE__*/ requireGlobalThis();
10869
- var apply = /*@__PURE__*/ requireFunctionApply();
10870
- var isCallable = /*@__PURE__*/ requireIsCallable();
10871
- var ENVIRONMENT = /*@__PURE__*/ requireEnvironment();
10872
- var USER_AGENT = /*@__PURE__*/ requireEnvironmentUserAgent();
10873
- var arraySlice = /*@__PURE__*/ requireArraySlice();
10874
- var validateArgumentsLength = /*@__PURE__*/ requireValidateArgumentsLength();
11152
+ var isArray$1;
11153
+ var hasRequiredIsArray$1;
10875
11154
 
10876
- var Function = globalThis.Function;
10877
- // dirty IE9- and Bun 0.3.0- checks
10878
- var WRAP = /MSIE .\./.test(USER_AGENT) || ENVIRONMENT === 'BUN' && (function () {
10879
- var version = globalThis.Bun.version.split('.');
10880
- return version.length < 3 || version[0] === '0' && (version[1] < 3 || version[1] === '3' && version[2] === '0');
10881
- })();
11155
+ function requireIsArray$1 () {
11156
+ if (hasRequiredIsArray$1) return isArray$1;
11157
+ hasRequiredIsArray$1 = 1;
11158
+ var parent = /*@__PURE__*/ requireIsArray$2();
10882
11159
 
10883
- // IE9- / Bun 0.3.0- setTimeout / setInterval / setImmediate additional parameters fix
10884
- // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timers
10885
- // https://github.com/oven-sh/bun/issues/1633
10886
- schedulersFix = function (scheduler, hasTimeArg) {
10887
- var firstParamIndex = hasTimeArg ? 2 : 1;
10888
- return WRAP ? function (handler, timeout /* , ...arguments */) {
10889
- var boundArgs = validateArgumentsLength(arguments.length, 1) > firstParamIndex;
10890
- var fn = isCallable(handler) ? handler : Function(handler);
10891
- var params = boundArgs ? arraySlice(arguments, firstParamIndex) : [];
10892
- var callback = boundArgs ? function () {
10893
- apply(fn, this, params);
10894
- } : fn;
10895
- return hasTimeArg ? scheduler(callback, timeout) : scheduler(callback);
10896
- } : scheduler;
10897
- };
10898
- return schedulersFix;
11160
+ isArray$1 = parent;
11161
+ return isArray$1;
10899
11162
  }
10900
11163
 
10901
- var hasRequiredWeb_setInterval;
11164
+ var isArray;
11165
+ var hasRequiredIsArray;
10902
11166
 
10903
- function requireWeb_setInterval () {
10904
- if (hasRequiredWeb_setInterval) return web_setInterval;
10905
- hasRequiredWeb_setInterval = 1;
10906
- var $ = /*@__PURE__*/ require_export();
10907
- var globalThis = /*@__PURE__*/ requireGlobalThis();
10908
- var schedulersFix = /*@__PURE__*/ requireSchedulersFix();
11167
+ function requireIsArray () {
11168
+ if (hasRequiredIsArray) return isArray;
11169
+ hasRequiredIsArray = 1;
11170
+ isArray = /*@__PURE__*/ requireIsArray$1();
11171
+ return isArray;
11172
+ }
10909
11173
 
10910
- var setInterval = schedulersFix(globalThis.setInterval, true);
11174
+ var isArrayExports = /*@__PURE__*/ requireIsArray();
11175
+ var _Array$isArray = /*@__PURE__*/getDefaultExportFromCjs(isArrayExports);
10911
11176
 
10912
- // Bun / IE9- setInterval additional parameters fix
10913
- // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-setinterval
10914
- $({ global: true, bind: true, forced: globalThis.setInterval !== setInterval }, {
10915
- setInterval: setInterval
10916
- });
10917
- return web_setInterval;
11177
+ function _arrayWithHoles(r) {
11178
+ if (_Array$isArray(r)) return r;
10918
11179
  }
10919
11180
 
10920
- var web_setTimeout = {};
11181
+ var getIteratorMethod_1;
11182
+ var hasRequiredGetIteratorMethod$4;
10921
11183
 
10922
- var hasRequiredWeb_setTimeout;
11184
+ function requireGetIteratorMethod$4 () {
11185
+ if (hasRequiredGetIteratorMethod$4) return getIteratorMethod_1;
11186
+ hasRequiredGetIteratorMethod$4 = 1;
11187
+ requireEs_array_iterator();
11188
+ requireEs_string_iterator();
11189
+ var getIteratorMethod = /*@__PURE__*/ requireGetIteratorMethod$5();
10923
11190
 
10924
- function requireWeb_setTimeout () {
10925
- if (hasRequiredWeb_setTimeout) return web_setTimeout;
10926
- hasRequiredWeb_setTimeout = 1;
10927
- var $ = /*@__PURE__*/ require_export();
10928
- var globalThis = /*@__PURE__*/ requireGlobalThis();
10929
- var schedulersFix = /*@__PURE__*/ requireSchedulersFix();
11191
+ getIteratorMethod_1 = getIteratorMethod;
11192
+ return getIteratorMethod_1;
11193
+ }
10930
11194
 
10931
- var setTimeout = schedulersFix(globalThis.setTimeout, true);
11195
+ var getIteratorMethod$3;
11196
+ var hasRequiredGetIteratorMethod$3;
10932
11197
 
10933
- // Bun / IE9- setTimeout additional parameters fix
10934
- // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-settimeout
10935
- $({ global: true, bind: true, forced: globalThis.setTimeout !== setTimeout }, {
10936
- setTimeout: setTimeout
10937
- });
10938
- return web_setTimeout;
11198
+ function requireGetIteratorMethod$3 () {
11199
+ if (hasRequiredGetIteratorMethod$3) return getIteratorMethod$3;
11200
+ hasRequiredGetIteratorMethod$3 = 1;
11201
+ var parent = /*@__PURE__*/ requireGetIteratorMethod$4();
11202
+ requireWeb_domCollections_iterator();
11203
+
11204
+ getIteratorMethod$3 = parent;
11205
+ return getIteratorMethod$3;
10939
11206
  }
10940
11207
 
10941
- var hasRequiredWeb_timers;
11208
+ var getIteratorMethod$2;
11209
+ var hasRequiredGetIteratorMethod$2;
10942
11210
 
10943
- function requireWeb_timers () {
10944
- if (hasRequiredWeb_timers) return web_timers;
10945
- hasRequiredWeb_timers = 1;
10946
- // TODO: Remove this module from `core-js@4` since it's split to modules listed below
10947
- requireWeb_setInterval();
10948
- requireWeb_setTimeout();
10949
- return web_timers;
11211
+ function requireGetIteratorMethod$2 () {
11212
+ if (hasRequiredGetIteratorMethod$2) return getIteratorMethod$2;
11213
+ hasRequiredGetIteratorMethod$2 = 1;
11214
+ var parent = /*@__PURE__*/ requireGetIteratorMethod$3();
11215
+
11216
+ getIteratorMethod$2 = parent;
11217
+ return getIteratorMethod$2;
10950
11218
  }
10951
11219
 
10952
- var setTimeout$2;
10953
- var hasRequiredSetTimeout$1;
11220
+ var getIteratorMethod$1;
11221
+ var hasRequiredGetIteratorMethod$1;
10954
11222
 
10955
- function requireSetTimeout$1 () {
10956
- if (hasRequiredSetTimeout$1) return setTimeout$2;
10957
- hasRequiredSetTimeout$1 = 1;
10958
- requireWeb_timers();
10959
- var path = /*@__PURE__*/ requirePath();
11223
+ function requireGetIteratorMethod$1 () {
11224
+ if (hasRequiredGetIteratorMethod$1) return getIteratorMethod$1;
11225
+ hasRequiredGetIteratorMethod$1 = 1;
11226
+ var parent = /*@__PURE__*/ requireGetIteratorMethod$2();
10960
11227
 
10961
- setTimeout$2 = path.setTimeout;
10962
- return setTimeout$2;
11228
+ getIteratorMethod$1 = parent;
11229
+ return getIteratorMethod$1;
10963
11230
  }
10964
11231
 
10965
- var setTimeout$1;
10966
- var hasRequiredSetTimeout;
11232
+ var getIteratorMethod;
11233
+ var hasRequiredGetIteratorMethod;
10967
11234
 
10968
- function requireSetTimeout () {
10969
- if (hasRequiredSetTimeout) return setTimeout$1;
10970
- hasRequiredSetTimeout = 1;
10971
- setTimeout$1 = /*@__PURE__*/ requireSetTimeout$1();
10972
- return setTimeout$1;
11235
+ function requireGetIteratorMethod () {
11236
+ if (hasRequiredGetIteratorMethod) return getIteratorMethod;
11237
+ hasRequiredGetIteratorMethod = 1;
11238
+ getIteratorMethod = /*@__PURE__*/ requireGetIteratorMethod$1();
11239
+ return getIteratorMethod;
10973
11240
  }
10974
11241
 
10975
- var setTimeoutExports = requireSetTimeout();
10976
- var _setTimeout = /*@__PURE__*/getDefaultExportFromCjs(setTimeoutExports);
11242
+ var getIteratorMethodExports = /*@__PURE__*/ requireGetIteratorMethod();
11243
+ var _getIteratorMethod = /*@__PURE__*/getDefaultExportFromCjs(getIteratorMethodExports);
10977
11244
 
10978
- var es_array_splice = {};
11245
+ var es_array_push = {};
10979
11246
 
10980
- var arraySetLength;
10981
- var hasRequiredArraySetLength;
11247
+ var hasRequiredEs_array_push;
10982
11248
 
10983
- function requireArraySetLength () {
10984
- if (hasRequiredArraySetLength) return arraySetLength;
10985
- hasRequiredArraySetLength = 1;
10986
- var DESCRIPTORS = /*@__PURE__*/ requireDescriptors();
10987
- var isArray = /*@__PURE__*/ requireIsArray$3();
11249
+ function requireEs_array_push () {
11250
+ if (hasRequiredEs_array_push) return es_array_push;
11251
+ hasRequiredEs_array_push = 1;
11252
+ var $ = /*@__PURE__*/ require_export();
11253
+ var toObject = /*@__PURE__*/ requireToObject();
11254
+ var lengthOfArrayLike = /*@__PURE__*/ requireLengthOfArrayLike();
11255
+ var setArrayLength = /*@__PURE__*/ requireArraySetLength();
11256
+ var doesNotExceedSafeInteger = /*@__PURE__*/ requireDoesNotExceedSafeInteger();
11257
+ var fails = /*@__PURE__*/ requireFails();
10988
11258
 
10989
- var $TypeError = TypeError;
10990
- // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
10991
- var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
11259
+ var INCORRECT_TO_LENGTH = fails(function () {
11260
+ return [].push.call({ length: 0x100000000 }, 1) !== 4294967297;
11261
+ });
10992
11262
 
10993
- // Safari < 13 does not throw an error in this case
10994
- var SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {
10995
- // makes no sense without proper strict mode support
10996
- if (this !== undefined) return true;
11263
+ // V8 <= 121 and Safari <= 15.4; FF < 23 throws InternalError
11264
+ // https://bugs.chromium.org/p/v8/issues/detail?id=12681
11265
+ var properErrorOnNonWritableLength = function () {
10997
11266
  try {
10998
11267
  // eslint-disable-next-line es/no-object-defineproperty -- safe
10999
- Object.defineProperty([], 'length', { writable: false }).length = 1;
11268
+ Object.defineProperty([], 'length', { writable: false }).push();
11000
11269
  } catch (error) {
11001
11270
  return error instanceof TypeError;
11002
11271
  }
11003
- }();
11004
-
11005
- arraySetLength = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {
11006
- if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {
11007
- throw new $TypeError('Cannot set read only .length');
11008
- } return O.length = length;
11009
- } : function (O, length) {
11010
- return O.length = length;
11011
11272
  };
11012
- return arraySetLength;
11013
- }
11014
-
11015
- var hasRequiredEs_array_splice;
11016
-
11017
- function requireEs_array_splice () {
11018
- if (hasRequiredEs_array_splice) return es_array_splice;
11019
- hasRequiredEs_array_splice = 1;
11020
- var $ = /*@__PURE__*/ require_export();
11021
- var toObject = /*@__PURE__*/ requireToObject();
11022
- var toAbsoluteIndex = /*@__PURE__*/ requireToAbsoluteIndex();
11023
- var toIntegerOrInfinity = /*@__PURE__*/ requireToIntegerOrInfinity();
11024
- var lengthOfArrayLike = /*@__PURE__*/ requireLengthOfArrayLike();
11025
- var setArrayLength = /*@__PURE__*/ requireArraySetLength();
11026
- var doesNotExceedSafeInteger = /*@__PURE__*/ requireDoesNotExceedSafeInteger();
11027
- var arraySpeciesCreate = /*@__PURE__*/ requireArraySpeciesCreate();
11028
- var createProperty = /*@__PURE__*/ requireCreateProperty();
11029
- var deletePropertyOrThrow = /*@__PURE__*/ requireDeletePropertyOrThrow();
11030
- var arrayMethodHasSpeciesSupport = /*@__PURE__*/ requireArrayMethodHasSpeciesSupport();
11031
-
11032
- var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');
11033
11273
 
11034
- var max = Math.max;
11035
- var min = Math.min;
11274
+ var FORCED = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength();
11036
11275
 
11037
- // `Array.prototype.splice` method
11038
- // https://tc39.es/ecma262/#sec-array.prototype.splice
11039
- // with adding support of @@species
11040
- $({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {
11041
- splice: function splice(start, deleteCount /* , ...items */) {
11276
+ // `Array.prototype.push` method
11277
+ // https://tc39.es/ecma262/#sec-array.prototype.push
11278
+ $({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {
11279
+ // eslint-disable-next-line no-unused-vars -- required for `.length`
11280
+ push: function push(item) {
11042
11281
  var O = toObject(this);
11043
11282
  var len = lengthOfArrayLike(O);
11044
- var actualStart = toAbsoluteIndex(start, len);
11045
- var argumentsLength = arguments.length;
11046
- var insertCount, actualDeleteCount, A, k, from, to;
11047
- if (argumentsLength === 0) {
11048
- insertCount = actualDeleteCount = 0;
11049
- } else if (argumentsLength === 1) {
11050
- insertCount = 0;
11051
- actualDeleteCount = len - actualStart;
11052
- } else {
11053
- insertCount = argumentsLength - 2;
11054
- actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart);
11055
- }
11056
- doesNotExceedSafeInteger(len + insertCount - actualDeleteCount);
11057
- A = arraySpeciesCreate(O, actualDeleteCount);
11058
- for (k = 0; k < actualDeleteCount; k++) {
11059
- from = actualStart + k;
11060
- if (from in O) createProperty(A, k, O[from]);
11061
- }
11062
- A.length = actualDeleteCount;
11063
- if (insertCount < actualDeleteCount) {
11064
- for (k = actualStart; k < len - actualDeleteCount; k++) {
11065
- from = k + actualDeleteCount;
11066
- to = k + insertCount;
11067
- if (from in O) O[to] = O[from];
11068
- else deletePropertyOrThrow(O, to);
11069
- }
11070
- for (k = len; k > len - actualDeleteCount + insertCount; k--) deletePropertyOrThrow(O, k - 1);
11071
- } else if (insertCount > actualDeleteCount) {
11072
- for (k = len - actualDeleteCount; k > actualStart; k--) {
11073
- from = k + actualDeleteCount - 1;
11074
- to = k + insertCount - 1;
11075
- if (from in O) O[to] = O[from];
11076
- else deletePropertyOrThrow(O, to);
11077
- }
11078
- }
11079
- for (k = 0; k < insertCount; k++) {
11080
- O[k + actualStart] = arguments[k + 2];
11283
+ var argCount = arguments.length;
11284
+ doesNotExceedSafeInteger(len + argCount);
11285
+ for (var i = 0; i < argCount; i++) {
11286
+ O[len] = arguments[i];
11287
+ len++;
11081
11288
  }
11082
- setArrayLength(O, len - actualDeleteCount + insertCount);
11083
- return A;
11289
+ setArrayLength(O, len);
11290
+ return len;
11084
11291
  }
11085
11292
  });
11086
- return es_array_splice;
11293
+ return es_array_push;
11087
11294
  }
11088
11295
 
11089
- var splice$3;
11090
- var hasRequiredSplice$3;
11296
+ var push$5;
11297
+ var hasRequiredPush$5;
11091
11298
 
11092
- function requireSplice$3 () {
11093
- if (hasRequiredSplice$3) return splice$3;
11094
- hasRequiredSplice$3 = 1;
11095
- requireEs_array_splice();
11299
+ function requirePush$5 () {
11300
+ if (hasRequiredPush$5) return push$5;
11301
+ hasRequiredPush$5 = 1;
11302
+ requireEs_array_push();
11096
11303
  var getBuiltInPrototypeMethod = /*@__PURE__*/ requireGetBuiltInPrototypeMethod();
11097
11304
 
11098
- splice$3 = getBuiltInPrototypeMethod('Array', 'splice');
11099
- return splice$3;
11305
+ push$5 = getBuiltInPrototypeMethod('Array', 'push');
11306
+ return push$5;
11100
11307
  }
11101
11308
 
11102
- var splice$2;
11103
- var hasRequiredSplice$2;
11309
+ var push$4;
11310
+ var hasRequiredPush$4;
11104
11311
 
11105
- function requireSplice$2 () {
11106
- if (hasRequiredSplice$2) return splice$2;
11107
- hasRequiredSplice$2 = 1;
11312
+ function requirePush$4 () {
11313
+ if (hasRequiredPush$4) return push$4;
11314
+ hasRequiredPush$4 = 1;
11108
11315
  var isPrototypeOf = /*@__PURE__*/ requireObjectIsPrototypeOf();
11109
- var method = /*@__PURE__*/ requireSplice$3();
11316
+ var method = /*@__PURE__*/ requirePush$5();
11110
11317
 
11111
11318
  var ArrayPrototype = Array.prototype;
11112
11319
 
11113
- splice$2 = function (it) {
11114
- var own = it.splice;
11115
- return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.splice) ? method : own;
11320
+ push$4 = function (it) {
11321
+ var own = it.push;
11322
+ return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.push) ? method : own;
11116
11323
  };
11117
- return splice$2;
11324
+ return push$4;
11118
11325
  }
11119
11326
 
11120
- var splice$1;
11121
- var hasRequiredSplice$1;
11327
+ var push$3;
11328
+ var hasRequiredPush$3;
11122
11329
 
11123
- function requireSplice$1 () {
11124
- if (hasRequiredSplice$1) return splice$1;
11125
- hasRequiredSplice$1 = 1;
11126
- var parent = /*@__PURE__*/ requireSplice$2();
11330
+ function requirePush$3 () {
11331
+ if (hasRequiredPush$3) return push$3;
11332
+ hasRequiredPush$3 = 1;
11333
+ var parent = /*@__PURE__*/ requirePush$4();
11127
11334
 
11128
- splice$1 = parent;
11129
- return splice$1;
11335
+ push$3 = parent;
11336
+ return push$3;
11130
11337
  }
11131
11338
 
11132
- var splice;
11133
- var hasRequiredSplice;
11339
+ var push$2;
11340
+ var hasRequiredPush$2;
11134
11341
 
11135
- function requireSplice () {
11136
- if (hasRequiredSplice) return splice;
11137
- hasRequiredSplice = 1;
11138
- splice = /*@__PURE__*/ requireSplice$1();
11139
- return splice;
11342
+ function requirePush$2 () {
11343
+ if (hasRequiredPush$2) return push$2;
11344
+ hasRequiredPush$2 = 1;
11345
+ var parent = /*@__PURE__*/ requirePush$3();
11346
+
11347
+ push$2 = parent;
11348
+ return push$2;
11140
11349
  }
11141
11350
 
11142
- var spliceExports = requireSplice();
11143
- var _spliceInstanceProperty = /*@__PURE__*/getDefaultExportFromCjs(spliceExports);
11351
+ var push$1;
11352
+ var hasRequiredPush$1;
11144
11353
 
11145
- /**
11146
- * A queue.
11147
- * @typeParam T - The type of method names to be replaced by queued versions.
11148
- */
11149
- class Queue {
11150
- /**
11151
- * Construct a new Queue.
11152
- * @param options - Queue configuration.
11153
- */
11154
- constructor(options) {
11155
- /** Delay in milliseconds. If defined the queue will be periodically flushed. */
11156
- /** Maximum number of entries in the queue before it will be flushed. */
11157
- _defineProperty(this, "_queue", []);
11158
- _defineProperty(this, "_timeout", null);
11159
- _defineProperty(this, "_extended", null);
11160
- // options
11161
- this.delay = null;
11162
- this.max = Infinity;
11163
- this.setOptions(options);
11164
- }
11165
- /**
11166
- * Update the configuration of the queue.
11167
- * @param options - Queue configuration.
11168
- */
11169
- setOptions(options) {
11170
- if (options && typeof options.delay !== "undefined") {
11171
- this.delay = options.delay;
11172
- }
11173
- if (options && typeof options.max !== "undefined") {
11174
- this.max = options.max;
11175
- }
11176
- this._flushIfNeeded();
11177
- }
11178
- /**
11179
- * Extend an object with queuing functionality.
11180
- * The object will be extended with a function flush, and the methods provided in options.replace will be replaced with queued ones.
11181
- * @param object - The object to be extended.
11182
- * @param options - Additional options.
11183
- * @returns The created queue.
11184
- */
11185
- static extend(object, options) {
11186
- const queue = new Queue(options);
11187
- if (object.flush !== undefined) {
11188
- throw new Error("Target object already has a property flush");
11189
- }
11190
- object.flush = () => {
11191
- queue.flush();
11192
- };
11193
- const methods = [{
11194
- name: "flush",
11195
- original: undefined
11196
- }];
11197
- if (options && options.replace) {
11198
- for (let i = 0; i < options.replace.length; i++) {
11199
- const name = options.replace[i];
11200
- methods.push({
11201
- name: name,
11202
- // @TODO: better solution?
11203
- original: object[name]
11204
- });
11205
- // @TODO: better solution?
11206
- queue.replace(object, name);
11207
- }
11208
- }
11209
- queue._extended = {
11210
- object: object,
11211
- methods: methods
11212
- };
11213
- return queue;
11214
- }
11215
- /**
11216
- * Destroy the queue. The queue will first flush all queued actions, and in case it has extended an object, will restore the original object.
11217
- */
11218
- destroy() {
11219
- this.flush();
11220
- if (this._extended) {
11221
- const object = this._extended.object;
11222
- const methods = this._extended.methods;
11223
- for (let i = 0; i < methods.length; i++) {
11224
- const method = methods[i];
11225
- if (method.original) {
11226
- // @TODO: better solution?
11227
- object[method.name] = method.original;
11228
- } else {
11229
- // @TODO: better solution?
11230
- delete object[method.name];
11231
- }
11232
- }
11233
- this._extended = null;
11234
- }
11235
- }
11236
- /**
11237
- * Replace a method on an object with a queued version.
11238
- * @param object - Object having the method.
11239
- * @param method - The method name.
11240
- */
11241
- replace(object, method) {
11242
- /* eslint-disable-next-line @typescript-eslint/no-this-alias -- Function this is necessary in the function bellow, so class this has to be saved into a variable here. */
11243
- const me = this;
11244
- const original = object[method];
11245
- if (!original) {
11246
- throw new Error("Method " + method + " undefined");
11247
- }
11248
- object[method] = function () {
11249
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
11250
- args[_key] = arguments[_key];
11251
- }
11252
- // add this call to the queue
11253
- me.queue({
11254
- args: args,
11255
- fn: original,
11256
- context: this
11257
- });
11258
- };
11259
- }
11260
- /**
11261
- * Queue a call.
11262
- * @param entry - The function or entry to be queued.
11263
- */
11264
- queue(entry) {
11265
- if (typeof entry === "function") {
11266
- this._queue.push({
11267
- fn: entry
11268
- });
11269
- } else {
11270
- this._queue.push(entry);
11271
- }
11272
- this._flushIfNeeded();
11273
- }
11274
- /**
11275
- * Check whether the queue needs to be flushed.
11276
- */
11277
- _flushIfNeeded() {
11278
- // flush when the maximum is exceeded.
11279
- if (this._queue.length > this.max) {
11280
- this.flush();
11281
- }
11282
- // flush after a period of inactivity when a delay is configured
11283
- if (this._timeout != null) {
11284
- clearTimeout(this._timeout);
11285
- this._timeout = null;
11286
- }
11287
- if (this.queue.length > 0 && typeof this.delay === "number") {
11288
- this._timeout = _setTimeout(() => {
11289
- this.flush();
11290
- }, this.delay);
11291
- }
11292
- }
11293
- /**
11294
- * Flush all queued calls
11295
- */
11296
- flush() {
11297
- var _context, _context2;
11298
- _forEachInstanceProperty(_context = _spliceInstanceProperty(_context2 = this._queue).call(_context2, 0)).call(_context, entry => {
11299
- entry.fn.apply(entry.context || entry.fn, entry.args || []);
11300
- });
11301
- }
11354
+ function requirePush$1 () {
11355
+ if (hasRequiredPush$1) return push$1;
11356
+ hasRequiredPush$1 = 1;
11357
+ var parent = /*@__PURE__*/ requirePush$2();
11358
+
11359
+ push$1 = parent;
11360
+ return push$1;
11302
11361
  }
11303
11362
 
11304
- /**
11305
- * {@link DataSet} code that can be reused in {@link DataView} or other similar implementations of {@link DataInterface}.
11306
- * @typeParam Item - Item type that may or may not have an id.
11307
- * @typeParam IdProp - Name of the property that contains the id.
11308
- */
11309
- class DataSetPart {
11310
- constructor() {
11311
- _defineProperty(this, "_subscribers", {
11312
- "*": [],
11313
- add: [],
11314
- remove: [],
11315
- update: []
11316
- });
11317
- /**
11318
- * @deprecated Use on instead (PS: DataView.subscribe === DataView.on).
11319
- */
11320
- _defineProperty(this, "subscribe", DataSetPart.prototype.on);
11321
- /**
11322
- * @deprecated Use off instead (PS: DataView.unsubscribe === DataView.off).
11323
- */
11324
- _defineProperty(this, "unsubscribe", DataSetPart.prototype.off);
11325
- }
11326
- /**
11327
- * Trigger an event
11328
- * @param event - Event name.
11329
- * @param payload - Event payload.
11330
- * @param senderId - Id of the sender.
11331
- */
11332
- _trigger(event, payload, senderId) {
11333
- var _context;
11334
- if (event === "*") {
11335
- throw new Error("Cannot trigger event *");
11336
- }
11337
- _forEachInstanceProperty(_context = [...this._subscribers[event], ...this._subscribers["*"]]).call(_context, subscriber => {
11338
- subscriber(event, payload, senderId != null ? senderId : null);
11339
- });
11340
- }
11341
- /**
11342
- * Subscribe to an event, add an event listener.
11343
- * @remarks Non-function callbacks are ignored.
11344
- * @param event - Event name.
11345
- * @param callback - Callback method.
11346
- */
11347
- on(event, callback) {
11348
- if (typeof callback === "function") {
11349
- this._subscribers[event].push(callback);
11363
+ var push;
11364
+ var hasRequiredPush;
11365
+
11366
+ function requirePush () {
11367
+ if (hasRequiredPush) return push;
11368
+ hasRequiredPush = 1;
11369
+ push = /*@__PURE__*/ requirePush$1();
11370
+ return push;
11371
+ }
11372
+
11373
+ var pushExports = /*@__PURE__*/ requirePush();
11374
+ var _pushInstanceProperty = /*@__PURE__*/getDefaultExportFromCjs(pushExports);
11375
+
11376
+ function _iterableToArrayLimit(r, l) {
11377
+ var t = null == r ? null : "undefined" != typeof _Symbol && _getIteratorMethod(r) || r["@@iterator"];
11378
+ if (null != t) {
11379
+ var e,
11380
+ n,
11381
+ i,
11382
+ u,
11383
+ a = [],
11384
+ f = true,
11385
+ o = false;
11386
+ try {
11387
+ if (i = (t = t.call(r)).next, 0 === l) {
11388
+ if (Object(t) !== t) return;
11389
+ f = !1;
11390
+ } else for (; !(f = (e = i.call(t)).done) && (_pushInstanceProperty(a).call(a, e.value), a.length !== l); f = !0);
11391
+ } catch (r) {
11392
+ o = true, n = r;
11393
+ } finally {
11394
+ try {
11395
+ if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
11396
+ } finally {
11397
+ if (o) throw n;
11398
+ }
11350
11399
  }
11351
- // @TODO: Maybe throw for invalid callbacks?
11352
- }
11353
- /**
11354
- * Unsubscribe from an event, remove an event listener.
11355
- * @remarks If the same callback was subscribed more than once **all** occurences will be removed.
11356
- * @param event - Event name.
11357
- * @param callback - Callback method.
11358
- */
11359
- off(event, callback) {
11360
- var _context2;
11361
- this._subscribers[event] = _filterInstanceProperty(_context2 = this._subscribers[event]).call(_context2, subscriber => subscriber !== callback);
11400
+ return a;
11362
11401
  }
11363
11402
  }
11364
11403
 
11365
- var es_object_create = {};
11404
+ var es_array_slice = {};
11366
11405
 
11367
- var hasRequiredEs_object_create;
11406
+ var hasRequiredEs_array_slice;
11368
11407
 
11369
- function requireEs_object_create () {
11370
- if (hasRequiredEs_object_create) return es_object_create;
11371
- hasRequiredEs_object_create = 1;
11372
- // TODO: Remove from `core-js@4`
11408
+ function requireEs_array_slice () {
11409
+ if (hasRequiredEs_array_slice) return es_array_slice;
11410
+ hasRequiredEs_array_slice = 1;
11373
11411
  var $ = /*@__PURE__*/ require_export();
11374
- var DESCRIPTORS = /*@__PURE__*/ requireDescriptors();
11375
- var create = /*@__PURE__*/ requireObjectCreate();
11412
+ var isArray = /*@__PURE__*/ requireIsArray$6();
11413
+ var isConstructor = /*@__PURE__*/ requireIsConstructor();
11414
+ var isObject = /*@__PURE__*/ requireIsObject();
11415
+ var toAbsoluteIndex = /*@__PURE__*/ requireToAbsoluteIndex();
11416
+ var lengthOfArrayLike = /*@__PURE__*/ requireLengthOfArrayLike();
11417
+ var toIndexedObject = /*@__PURE__*/ requireToIndexedObject();
11418
+ var createProperty = /*@__PURE__*/ requireCreateProperty();
11419
+ var setArrayLength = /*@__PURE__*/ requireArraySetLength();
11420
+ var wellKnownSymbol = /*@__PURE__*/ requireWellKnownSymbol();
11421
+ var arrayMethodHasSpeciesSupport = /*@__PURE__*/ requireArrayMethodHasSpeciesSupport();
11422
+ var nativeSlice = /*@__PURE__*/ requireArraySlice();
11376
11423
 
11377
- // `Object.create` method
11378
- // https://tc39.es/ecma262/#sec-object.create
11379
- $({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {
11424
+ var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');
11425
+
11426
+ var SPECIES = wellKnownSymbol('species');
11427
+ var $Array = Array;
11428
+ var max = Math.max;
11429
+
11430
+ // `Array.prototype.slice` method
11431
+ // https://tc39.es/ecma262/#sec-array.prototype.slice
11432
+ // fallback for not array-like ES3 strings and DOM objects
11433
+ $({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {
11434
+ slice: function slice(start, end) {
11435
+ var O = toIndexedObject(this);
11436
+ var length = lengthOfArrayLike(O);
11437
+ var k = toAbsoluteIndex(start, length);
11438
+ var fin = toAbsoluteIndex(end === undefined ? length : end, length);
11439
+ // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible
11440
+ var Constructor, result, n;
11441
+ if (isArray(O)) {
11442
+ Constructor = O.constructor;
11443
+ // cross-realm fallback
11444
+ if (isConstructor(Constructor) && (Constructor === $Array || isArray(Constructor.prototype))) {
11445
+ Constructor = undefined;
11446
+ } else if (isObject(Constructor)) {
11447
+ Constructor = Constructor[SPECIES];
11448
+ if (Constructor === null) Constructor = undefined;
11449
+ }
11450
+ if (Constructor === $Array || Constructor === undefined) {
11451
+ return nativeSlice(O, k, fin);
11452
+ }
11453
+ }
11454
+ result = new (Constructor === undefined ? $Array : Constructor)(max(fin - k, 0));
11455
+ for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);
11456
+ setArrayLength(result, n);
11457
+ return result;
11458
+ }
11459
+ });
11460
+ return es_array_slice;
11461
+ }
11462
+
11463
+ var slice$5;
11464
+ var hasRequiredSlice$5;
11465
+
11466
+ function requireSlice$5 () {
11467
+ if (hasRequiredSlice$5) return slice$5;
11468
+ hasRequiredSlice$5 = 1;
11469
+ requireEs_array_slice();
11470
+ var getBuiltInPrototypeMethod = /*@__PURE__*/ requireGetBuiltInPrototypeMethod();
11471
+
11472
+ slice$5 = getBuiltInPrototypeMethod('Array', 'slice');
11473
+ return slice$5;
11474
+ }
11475
+
11476
+ var slice$4;
11477
+ var hasRequiredSlice$4;
11478
+
11479
+ function requireSlice$4 () {
11480
+ if (hasRequiredSlice$4) return slice$4;
11481
+ hasRequiredSlice$4 = 1;
11482
+ var isPrototypeOf = /*@__PURE__*/ requireObjectIsPrototypeOf();
11483
+ var method = /*@__PURE__*/ requireSlice$5();
11484
+
11485
+ var ArrayPrototype = Array.prototype;
11486
+
11487
+ slice$4 = function (it) {
11488
+ var own = it.slice;
11489
+ return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.slice) ? method : own;
11490
+ };
11491
+ return slice$4;
11492
+ }
11493
+
11494
+ var slice$3;
11495
+ var hasRequiredSlice$3;
11496
+
11497
+ function requireSlice$3 () {
11498
+ if (hasRequiredSlice$3) return slice$3;
11499
+ hasRequiredSlice$3 = 1;
11500
+ var parent = /*@__PURE__*/ requireSlice$4();
11501
+
11502
+ slice$3 = parent;
11503
+ return slice$3;
11504
+ }
11505
+
11506
+ var slice$2;
11507
+ var hasRequiredSlice$2;
11508
+
11509
+ function requireSlice$2 () {
11510
+ if (hasRequiredSlice$2) return slice$2;
11511
+ hasRequiredSlice$2 = 1;
11512
+ var parent = /*@__PURE__*/ requireSlice$3();
11513
+
11514
+ slice$2 = parent;
11515
+ return slice$2;
11516
+ }
11517
+
11518
+ var slice$1;
11519
+ var hasRequiredSlice$1;
11520
+
11521
+ function requireSlice$1 () {
11522
+ if (hasRequiredSlice$1) return slice$1;
11523
+ hasRequiredSlice$1 = 1;
11524
+ var parent = /*@__PURE__*/ requireSlice$2();
11525
+
11526
+ slice$1 = parent;
11527
+ return slice$1;
11528
+ }
11529
+
11530
+ var slice;
11531
+ var hasRequiredSlice;
11532
+
11533
+ function requireSlice () {
11534
+ if (hasRequiredSlice) return slice;
11535
+ hasRequiredSlice = 1;
11536
+ slice = /*@__PURE__*/ requireSlice$1();
11537
+ return slice;
11538
+ }
11539
+
11540
+ var sliceExports = /*@__PURE__*/ requireSlice();
11541
+ var _sliceInstanceProperty = /*@__PURE__*/getDefaultExportFromCjs(sliceExports);
11542
+
11543
+ var es_array_from = {};
11544
+
11545
+ var callWithSafeIterationClosing;
11546
+ var hasRequiredCallWithSafeIterationClosing;
11547
+
11548
+ function requireCallWithSafeIterationClosing () {
11549
+ if (hasRequiredCallWithSafeIterationClosing) return callWithSafeIterationClosing;
11550
+ hasRequiredCallWithSafeIterationClosing = 1;
11551
+ var anObject = /*@__PURE__*/ requireAnObject();
11552
+ var iteratorClose = /*@__PURE__*/ requireIteratorClose();
11553
+
11554
+ // call something on iterator step with safe closing on error
11555
+ callWithSafeIterationClosing = function (iterator, fn, value, ENTRIES) {
11556
+ try {
11557
+ return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);
11558
+ } catch (error) {
11559
+ iteratorClose(iterator, 'throw', error);
11560
+ }
11561
+ };
11562
+ return callWithSafeIterationClosing;
11563
+ }
11564
+
11565
+ var arrayFrom;
11566
+ var hasRequiredArrayFrom;
11567
+
11568
+ function requireArrayFrom () {
11569
+ if (hasRequiredArrayFrom) return arrayFrom;
11570
+ hasRequiredArrayFrom = 1;
11571
+ var bind = /*@__PURE__*/ requireFunctionBindContext();
11572
+ var call = /*@__PURE__*/ requireFunctionCall();
11573
+ var toObject = /*@__PURE__*/ requireToObject();
11574
+ var callWithSafeIterationClosing = /*@__PURE__*/ requireCallWithSafeIterationClosing();
11575
+ var isArrayIteratorMethod = /*@__PURE__*/ requireIsArrayIteratorMethod();
11576
+ var isConstructor = /*@__PURE__*/ requireIsConstructor();
11577
+ var lengthOfArrayLike = /*@__PURE__*/ requireLengthOfArrayLike();
11578
+ var createProperty = /*@__PURE__*/ requireCreateProperty();
11579
+ var setArrayLength = /*@__PURE__*/ requireArraySetLength();
11580
+ var getIterator = /*@__PURE__*/ requireGetIterator$6();
11581
+ var getIteratorMethod = /*@__PURE__*/ requireGetIteratorMethod$5();
11582
+ var iteratorClose = /*@__PURE__*/ requireIteratorClose();
11583
+
11584
+ var $Array = Array;
11585
+
11586
+ // `Array.from` method implementation
11587
+ // https://tc39.es/ecma262/#sec-array.from
11588
+ arrayFrom = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {
11589
+ var IS_CONSTRUCTOR = isConstructor(this);
11590
+ var argumentsLength = arguments.length;
11591
+ var mapfn = argumentsLength > 1 ? arguments[1] : undefined;
11592
+ var mapping = mapfn !== undefined;
11593
+ if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);
11594
+ var O = toObject(arrayLike);
11595
+ var iteratorMethod = getIteratorMethod(O);
11596
+ var index = 0;
11597
+ var length, result, step, iterator, next, value;
11598
+ // if the target is not iterable or it's an array with the default iterator - use a simple case
11599
+ if (iteratorMethod && !(this === $Array && isArrayIteratorMethod(iteratorMethod))) {
11600
+ result = IS_CONSTRUCTOR ? new this() : [];
11601
+ iterator = getIterator(O, iteratorMethod);
11602
+ next = iterator.next;
11603
+ for (;!(step = call(next, iterator)).done; index++) {
11604
+ value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;
11605
+ try {
11606
+ createProperty(result, index, value);
11607
+ } catch (error) {
11608
+ iteratorClose(iterator, 'throw', error);
11609
+ }
11610
+ }
11611
+ } else {
11612
+ length = lengthOfArrayLike(O);
11613
+ result = IS_CONSTRUCTOR ? new this(length) : $Array(length);
11614
+ for (;length > index; index++) {
11615
+ value = mapping ? mapfn(O[index], index) : O[index];
11616
+ createProperty(result, index, value);
11617
+ }
11618
+ }
11619
+ setArrayLength(result, index);
11620
+ return result;
11621
+ };
11622
+ return arrayFrom;
11623
+ }
11624
+
11625
+ var checkCorrectnessOfIteration;
11626
+ var hasRequiredCheckCorrectnessOfIteration;
11627
+
11628
+ function requireCheckCorrectnessOfIteration () {
11629
+ if (hasRequiredCheckCorrectnessOfIteration) return checkCorrectnessOfIteration;
11630
+ hasRequiredCheckCorrectnessOfIteration = 1;
11631
+ var wellKnownSymbol = /*@__PURE__*/ requireWellKnownSymbol();
11632
+
11633
+ var ITERATOR = wellKnownSymbol('iterator');
11634
+ var SAFE_CLOSING = false;
11635
+
11636
+ try {
11637
+ var called = 0;
11638
+ var iteratorWithReturn = {
11639
+ next: function () {
11640
+ return { done: !!called++ };
11641
+ },
11642
+ 'return': function () {
11643
+ SAFE_CLOSING = true;
11644
+ }
11645
+ };
11646
+ // eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation
11647
+ iteratorWithReturn[ITERATOR] = function () {
11648
+ return this;
11649
+ };
11650
+ // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing
11651
+ Array.from(iteratorWithReturn, function () { throw 2; });
11652
+ } catch (error) { /* empty */ }
11653
+
11654
+ checkCorrectnessOfIteration = function (exec, SKIP_CLOSING) {
11655
+ try {
11656
+ if (!SKIP_CLOSING && !SAFE_CLOSING) return false;
11657
+ } catch (error) { return false; } // workaround of old WebKit + `eval` bug
11658
+ var ITERATION_SUPPORT = false;
11659
+ try {
11660
+ var object = {};
11661
+ // eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation
11662
+ object[ITERATOR] = function () {
11663
+ return {
11664
+ next: function () {
11665
+ return { done: ITERATION_SUPPORT = true };
11666
+ }
11667
+ };
11668
+ };
11669
+ exec(object);
11670
+ } catch (error) { /* empty */ }
11671
+ return ITERATION_SUPPORT;
11672
+ };
11673
+ return checkCorrectnessOfIteration;
11674
+ }
11675
+
11676
+ var hasRequiredEs_array_from;
11677
+
11678
+ function requireEs_array_from () {
11679
+ if (hasRequiredEs_array_from) return es_array_from;
11680
+ hasRequiredEs_array_from = 1;
11681
+ var $ = /*@__PURE__*/ require_export();
11682
+ var from = /*@__PURE__*/ requireArrayFrom();
11683
+ var checkCorrectnessOfIteration = /*@__PURE__*/ requireCheckCorrectnessOfIteration();
11684
+
11685
+ var INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {
11686
+ // eslint-disable-next-line es/no-array-from -- required for testing
11687
+ Array.from(iterable);
11688
+ });
11689
+
11690
+ // `Array.from` method
11691
+ // https://tc39.es/ecma262/#sec-array.from
11692
+ $({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {
11693
+ from: from
11694
+ });
11695
+ return es_array_from;
11696
+ }
11697
+
11698
+ var from$4;
11699
+ var hasRequiredFrom$4;
11700
+
11701
+ function requireFrom$4 () {
11702
+ if (hasRequiredFrom$4) return from$4;
11703
+ hasRequiredFrom$4 = 1;
11704
+ requireEs_string_iterator();
11705
+ requireEs_array_from();
11706
+ var path = /*@__PURE__*/ requirePath();
11707
+
11708
+ from$4 = path.Array.from;
11709
+ return from$4;
11710
+ }
11711
+
11712
+ var from$3;
11713
+ var hasRequiredFrom$3;
11714
+
11715
+ function requireFrom$3 () {
11716
+ if (hasRequiredFrom$3) return from$3;
11717
+ hasRequiredFrom$3 = 1;
11718
+ var parent = /*@__PURE__*/ requireFrom$4();
11719
+
11720
+ from$3 = parent;
11721
+ return from$3;
11722
+ }
11723
+
11724
+ var from$2;
11725
+ var hasRequiredFrom$2;
11726
+
11727
+ function requireFrom$2 () {
11728
+ if (hasRequiredFrom$2) return from$2;
11729
+ hasRequiredFrom$2 = 1;
11730
+ var parent = /*@__PURE__*/ requireFrom$3();
11731
+
11732
+ from$2 = parent;
11733
+ return from$2;
11734
+ }
11735
+
11736
+ var from$1;
11737
+ var hasRequiredFrom$1;
11738
+
11739
+ function requireFrom$1 () {
11740
+ if (hasRequiredFrom$1) return from$1;
11741
+ hasRequiredFrom$1 = 1;
11742
+ var parent = /*@__PURE__*/ requireFrom$2();
11743
+
11744
+ from$1 = parent;
11745
+ return from$1;
11746
+ }
11747
+
11748
+ var from;
11749
+ var hasRequiredFrom;
11750
+
11751
+ function requireFrom () {
11752
+ if (hasRequiredFrom) return from;
11753
+ hasRequiredFrom = 1;
11754
+ from = /*@__PURE__*/ requireFrom$1();
11755
+ return from;
11756
+ }
11757
+
11758
+ var fromExports = /*@__PURE__*/ requireFrom();
11759
+ var _Array$from = /*@__PURE__*/getDefaultExportFromCjs(fromExports);
11760
+
11761
+ function _arrayLikeToArray(r, a) {
11762
+ (null == a || a > r.length) && (a = r.length);
11763
+ for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
11764
+ return n;
11765
+ }
11766
+
11767
+ function _unsupportedIterableToArray(r, a) {
11768
+ if (r) {
11769
+ var _context;
11770
+ if ("string" == typeof r) return _arrayLikeToArray(r, a);
11771
+ var t = _sliceInstanceProperty(_context = {}.toString.call(r)).call(_context, 8, -1);
11772
+ return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? _Array$from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;
11773
+ }
11774
+ }
11775
+
11776
+ function _nonIterableRest() {
11777
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
11778
+ }
11779
+
11780
+ function _slicedToArray(r, e) {
11781
+ return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();
11782
+ }
11783
+
11784
+ var es_object_create = {};
11785
+
11786
+ var hasRequiredEs_object_create;
11787
+
11788
+ function requireEs_object_create () {
11789
+ if (hasRequiredEs_object_create) return es_object_create;
11790
+ hasRequiredEs_object_create = 1;
11791
+ // TODO: Remove from `core-js@4`
11792
+ var $ = /*@__PURE__*/ require_export();
11793
+ var DESCRIPTORS = /*@__PURE__*/ requireDescriptors();
11794
+ var create = /*@__PURE__*/ requireObjectCreate();
11795
+
11796
+ // `Object.create` method
11797
+ // https://tc39.es/ecma262/#sec-object.create
11798
+ $({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {
11380
11799
  create: create
11381
11800
  });
11382
11801
  return es_object_create;
@@ -11653,7 +12072,7 @@ function requireSetDifference () {
11653
12072
  var O = aSet(this);
11654
12073
  var otherRec = getSetRecord(other);
11655
12074
  var result = clone(O);
11656
- if (size(O) <= otherRec.size) iterateSet(O, function (e) {
12075
+ if (size(result) <= otherRec.size) iterateSet(result, function (e) {
11657
12076
  if (otherRec.includes(e)) remove(result, e);
11658
12077
  });
11659
12078
  else iterateSimple(otherRec.getIterator(), function (e) {
@@ -11812,7 +12231,7 @@ function requireSetIsDisjointFrom () {
11812
12231
  }, true) !== false;
11813
12232
  var iterator = otherRec.getIterator();
11814
12233
  return iterateSimple(iterator, function (e) {
11815
- if (has(O, e)) return iteratorClose(iterator, 'normal', false);
12234
+ if (has(O, e)) return iteratorClose(iterator.iterator, 'normal', false);
11816
12235
  }) !== false;
11817
12236
  };
11818
12237
  return setIsDisjointFrom;
@@ -11909,7 +12328,7 @@ function requireSetIsSupersetOf () {
11909
12328
  if (size(O) < otherRec.size) return false;
11910
12329
  var iterator = otherRec.getIterator();
11911
12330
  return iterateSimple(iterator, function (e) {
11912
- if (!has(O, e)) return iteratorClose(iterator, 'normal', false);
12331
+ if (!has(O, e)) return iteratorClose(iterator.iterator, 'normal', false);
11913
12332
  }) !== false;
11914
12333
  };
11915
12334
  return setIsSupersetOf;
@@ -11936,531 +12355,990 @@ function requireEs_set_isSupersetOf_v2 () {
11936
12355
  return es_set_isSupersetOf_v2;
11937
12356
  }
11938
12357
 
11939
- var es_set_symmetricDifference_v2 = {};
12358
+ var es_set_symmetricDifference_v2 = {};
12359
+
12360
+ var setSymmetricDifference;
12361
+ var hasRequiredSetSymmetricDifference;
12362
+
12363
+ function requireSetSymmetricDifference () {
12364
+ if (hasRequiredSetSymmetricDifference) return setSymmetricDifference;
12365
+ hasRequiredSetSymmetricDifference = 1;
12366
+ var aSet = /*@__PURE__*/ requireASet();
12367
+ var SetHelpers = /*@__PURE__*/ requireSetHelpers();
12368
+ var clone = /*@__PURE__*/ requireSetClone();
12369
+ var getSetRecord = /*@__PURE__*/ requireGetSetRecord();
12370
+ var iterateSimple = /*@__PURE__*/ requireIterateSimple();
12371
+
12372
+ var add = SetHelpers.add;
12373
+ var has = SetHelpers.has;
12374
+ var remove = SetHelpers.remove;
12375
+
12376
+ // `Set.prototype.symmetricDifference` method
12377
+ // https://tc39.es/ecma262/#sec-set.prototype.symmetricdifference
12378
+ setSymmetricDifference = function symmetricDifference(other) {
12379
+ var O = aSet(this);
12380
+ var keysIter = getSetRecord(other).getIterator();
12381
+ var result = clone(O);
12382
+ iterateSimple(keysIter, function (e) {
12383
+ if (has(O, e)) remove(result, e);
12384
+ else add(result, e);
12385
+ });
12386
+ return result;
12387
+ };
12388
+ return setSymmetricDifference;
12389
+ }
12390
+
12391
+ var setMethodGetKeysBeforeCloningDetection;
12392
+ var hasRequiredSetMethodGetKeysBeforeCloningDetection;
12393
+
12394
+ function requireSetMethodGetKeysBeforeCloningDetection () {
12395
+ if (hasRequiredSetMethodGetKeysBeforeCloningDetection) return setMethodGetKeysBeforeCloningDetection;
12396
+ hasRequiredSetMethodGetKeysBeforeCloningDetection = 1;
12397
+ // Should get iterator record of a set-like object before cloning this
12398
+ // https://bugs.webkit.org/show_bug.cgi?id=289430
12399
+ setMethodGetKeysBeforeCloningDetection = function (METHOD_NAME) {
12400
+ try {
12401
+ // eslint-disable-next-line es/no-set -- needed for test
12402
+ var baseSet = new Set();
12403
+ var setLike = {
12404
+ size: 0,
12405
+ has: function () { return true; },
12406
+ keys: function () {
12407
+ // eslint-disable-next-line es/no-object-defineproperty -- needed for test
12408
+ return Object.defineProperty({}, 'next', {
12409
+ get: function () {
12410
+ baseSet.clear();
12411
+ baseSet.add(4);
12412
+ return function () {
12413
+ return { done: true };
12414
+ };
12415
+ }
12416
+ });
12417
+ }
12418
+ };
12419
+ var result = baseSet[METHOD_NAME](setLike);
12420
+
12421
+ return result.size === 1 && result.values().next().value === 4;
12422
+ } catch (error) {
12423
+ return false;
12424
+ }
12425
+ };
12426
+ return setMethodGetKeysBeforeCloningDetection;
12427
+ }
12428
+
12429
+ var hasRequiredEs_set_symmetricDifference_v2;
12430
+
12431
+ function requireEs_set_symmetricDifference_v2 () {
12432
+ if (hasRequiredEs_set_symmetricDifference_v2) return es_set_symmetricDifference_v2;
12433
+ hasRequiredEs_set_symmetricDifference_v2 = 1;
12434
+ var $ = /*@__PURE__*/ require_export();
12435
+ var symmetricDifference = /*@__PURE__*/ requireSetSymmetricDifference();
12436
+ var setMethodGetKeysBeforeCloning = /*@__PURE__*/ requireSetMethodGetKeysBeforeCloningDetection();
12437
+ var setMethodAcceptSetLike = /*@__PURE__*/ requireSetMethodAcceptSetLike();
12438
+
12439
+ var FORCED = !setMethodAcceptSetLike('symmetricDifference') || !setMethodGetKeysBeforeCloning('symmetricDifference');
12440
+
12441
+ // `Set.prototype.symmetricDifference` method
12442
+ // https://tc39.es/ecma262/#sec-set.prototype.symmetricdifference
12443
+ $({ target: 'Set', proto: true, real: true, forced: FORCED }, {
12444
+ symmetricDifference: symmetricDifference
12445
+ });
12446
+ return es_set_symmetricDifference_v2;
12447
+ }
12448
+
12449
+ var es_set_union_v2 = {};
12450
+
12451
+ var setUnion;
12452
+ var hasRequiredSetUnion;
12453
+
12454
+ function requireSetUnion () {
12455
+ if (hasRequiredSetUnion) return setUnion;
12456
+ hasRequiredSetUnion = 1;
12457
+ var aSet = /*@__PURE__*/ requireASet();
12458
+ var add = /*@__PURE__*/ requireSetHelpers().add;
12459
+ var clone = /*@__PURE__*/ requireSetClone();
12460
+ var getSetRecord = /*@__PURE__*/ requireGetSetRecord();
12461
+ var iterateSimple = /*@__PURE__*/ requireIterateSimple();
12462
+
12463
+ // `Set.prototype.union` method
12464
+ // https://tc39.es/ecma262/#sec-set.prototype.union
12465
+ setUnion = function union(other) {
12466
+ var O = aSet(this);
12467
+ var keysIter = getSetRecord(other).getIterator();
12468
+ var result = clone(O);
12469
+ iterateSimple(keysIter, function (it) {
12470
+ add(result, it);
12471
+ });
12472
+ return result;
12473
+ };
12474
+ return setUnion;
12475
+ }
12476
+
12477
+ var hasRequiredEs_set_union_v2;
12478
+
12479
+ function requireEs_set_union_v2 () {
12480
+ if (hasRequiredEs_set_union_v2) return es_set_union_v2;
12481
+ hasRequiredEs_set_union_v2 = 1;
12482
+ var $ = /*@__PURE__*/ require_export();
12483
+ var union = /*@__PURE__*/ requireSetUnion();
12484
+ var setMethodGetKeysBeforeCloning = /*@__PURE__*/ requireSetMethodGetKeysBeforeCloningDetection();
12485
+ var setMethodAcceptSetLike = /*@__PURE__*/ requireSetMethodAcceptSetLike();
12486
+
12487
+ var FORCED = !setMethodAcceptSetLike('union') || !setMethodGetKeysBeforeCloning('union');
12488
+
12489
+ // `Set.prototype.union` method
12490
+ // https://tc39.es/ecma262/#sec-set.prototype.union
12491
+ $({ target: 'Set', proto: true, real: true, forced: FORCED }, {
12492
+ union: union
12493
+ });
12494
+ return es_set_union_v2;
12495
+ }
12496
+
12497
+ var set$2;
12498
+ var hasRequiredSet$2;
12499
+
12500
+ function requireSet$2 () {
12501
+ if (hasRequiredSet$2) return set$2;
12502
+ hasRequiredSet$2 = 1;
12503
+ requireEs_array_iterator();
12504
+ requireEs_set();
12505
+ requireEs_set_difference_v2();
12506
+ requireEs_set_intersection_v2();
12507
+ requireEs_set_isDisjointFrom_v2();
12508
+ requireEs_set_isSubsetOf_v2();
12509
+ requireEs_set_isSupersetOf_v2();
12510
+ requireEs_set_symmetricDifference_v2();
12511
+ requireEs_set_union_v2();
12512
+ requireEs_string_iterator();
12513
+ var path = /*@__PURE__*/ requirePath();
12514
+
12515
+ set$2 = path.Set;
12516
+ return set$2;
12517
+ }
12518
+
12519
+ var set$1;
12520
+ var hasRequiredSet$1;
12521
+
12522
+ function requireSet$1 () {
12523
+ if (hasRequiredSet$1) return set$1;
12524
+ hasRequiredSet$1 = 1;
12525
+ var parent = /*@__PURE__*/ requireSet$2();
12526
+ requireWeb_domCollections_iterator();
12527
+
12528
+ set$1 = parent;
12529
+ return set$1;
12530
+ }
12531
+
12532
+ var set;
12533
+ var hasRequiredSet;
12534
+
12535
+ function requireSet () {
12536
+ if (hasRequiredSet) return set;
12537
+ hasRequiredSet = 1;
12538
+ set = /*@__PURE__*/ requireSet$1();
12539
+ return set;
12540
+ }
12541
+
12542
+ var setExports = requireSet();
12543
+ var _Set = /*@__PURE__*/getDefaultExportFromCjs(setExports);
12544
+
12545
+ var getIterator_1;
12546
+ var hasRequiredGetIterator$5;
12547
+
12548
+ function requireGetIterator$5 () {
12549
+ if (hasRequiredGetIterator$5) return getIterator_1;
12550
+ hasRequiredGetIterator$5 = 1;
12551
+ requireEs_array_iterator();
12552
+ requireEs_string_iterator();
12553
+ var getIterator = /*@__PURE__*/ requireGetIterator$6();
12554
+
12555
+ getIterator_1 = getIterator;
12556
+ return getIterator_1;
12557
+ }
12558
+
12559
+ var getIterator$4;
12560
+ var hasRequiredGetIterator$4;
12561
+
12562
+ function requireGetIterator$4 () {
12563
+ if (hasRequiredGetIterator$4) return getIterator$4;
12564
+ hasRequiredGetIterator$4 = 1;
12565
+ var parent = /*@__PURE__*/ requireGetIterator$5();
12566
+ requireWeb_domCollections_iterator();
12567
+
12568
+ getIterator$4 = parent;
12569
+ return getIterator$4;
12570
+ }
12571
+
12572
+ var getIterator$3;
12573
+ var hasRequiredGetIterator$3;
12574
+
12575
+ function requireGetIterator$3 () {
12576
+ if (hasRequiredGetIterator$3) return getIterator$3;
12577
+ hasRequiredGetIterator$3 = 1;
12578
+ var parent = /*@__PURE__*/ requireGetIterator$4();
12579
+
12580
+ getIterator$3 = parent;
12581
+ return getIterator$3;
12582
+ }
12583
+
12584
+ var getIterator$2;
12585
+ var hasRequiredGetIterator$2;
12586
+
12587
+ function requireGetIterator$2 () {
12588
+ if (hasRequiredGetIterator$2) return getIterator$2;
12589
+ hasRequiredGetIterator$2 = 1;
12590
+ var parent = /*@__PURE__*/ requireGetIterator$3();
12591
+
12592
+ getIterator$2 = parent;
12593
+ return getIterator$2;
12594
+ }
12595
+
12596
+ var getIterator$1;
12597
+ var hasRequiredGetIterator$1;
12598
+
12599
+ function requireGetIterator$1 () {
12600
+ if (hasRequiredGetIterator$1) return getIterator$1;
12601
+ hasRequiredGetIterator$1 = 1;
12602
+ getIterator$1 = /*@__PURE__*/ requireGetIterator$2();
12603
+ return getIterator$1;
12604
+ }
12605
+
12606
+ var getIterator;
12607
+ var hasRequiredGetIterator;
12608
+
12609
+ function requireGetIterator () {
12610
+ if (hasRequiredGetIterator) return getIterator;
12611
+ hasRequiredGetIterator = 1;
12612
+ getIterator = /*@__PURE__*/ requireGetIterator$1();
12613
+ return getIterator;
12614
+ }
12615
+
12616
+ var getIteratorExports = requireGetIterator();
12617
+ var _getIterator = /*@__PURE__*/getDefaultExportFromCjs(getIteratorExports);
12618
+
12619
+ /**
12620
+ * Data stream
12621
+ * @remarks
12622
+ * {@link DataStream} offers an always up to date stream of items from a {@link DataSet} or {@link DataView}.
12623
+ * That means that the stream is evaluated at the time of iteration, conversion to another data type or when {@link cache} is called, not when the {@link DataStream} was created.
12624
+ * Multiple invocations of for example {@link toItemArray} may yield different results (if the data source like for example {@link DataSet} gets modified).
12625
+ * @typeParam Item - The item type this stream is going to work with.
12626
+ */
12627
+ class DataStream {
12628
+ /**
12629
+ * Create a new data stream.
12630
+ * @param pairs - The id, item pairs.
12631
+ */
12632
+ constructor(pairs) {
12633
+ this._pairs = pairs;
12634
+ }
12635
+ /**
12636
+ * Return an iterable of key, value pairs for every entry in the stream.
12637
+ */
12638
+ *[_Symbol$iterator]() {
12639
+ for (const _ref of this._pairs) {
12640
+ var _ref2 = _slicedToArray(_ref, 2);
12641
+ const id = _ref2[0];
12642
+ const item = _ref2[1];
12643
+ yield [id, item];
12644
+ }
12645
+ }
12646
+ /**
12647
+ * Return an iterable of key, value pairs for every entry in the stream.
12648
+ */
12649
+ *entries() {
12650
+ for (const _ref3 of this._pairs) {
12651
+ var _ref4 = _slicedToArray(_ref3, 2);
12652
+ const id = _ref4[0];
12653
+ const item = _ref4[1];
12654
+ yield [id, item];
12655
+ }
12656
+ }
12657
+ /**
12658
+ * Return an iterable of keys in the stream.
12659
+ */
12660
+ *keys() {
12661
+ for (const _ref5 of this._pairs) {
12662
+ var _ref6 = _slicedToArray(_ref5, 1);
12663
+ const id = _ref6[0];
12664
+ yield id;
12665
+ }
12666
+ }
12667
+ /**
12668
+ * Return an iterable of values in the stream.
12669
+ */
12670
+ *values() {
12671
+ for (const _ref7 of this._pairs) {
12672
+ var _ref8 = _slicedToArray(_ref7, 2);
12673
+ const item = _ref8[1];
12674
+ yield item;
12675
+ }
12676
+ }
12677
+ /**
12678
+ * Return an array containing all the ids in this stream.
12679
+ * @remarks
12680
+ * The array may contain duplicities.
12681
+ * @returns The array with all ids from this stream.
12682
+ */
12683
+ toIdArray() {
12684
+ var _context;
12685
+ return _mapInstanceProperty(_context = [...this._pairs]).call(_context, pair => pair[0]);
12686
+ }
12687
+ /**
12688
+ * Return an array containing all the items in this stream.
12689
+ * @remarks
12690
+ * The array may contain duplicities.
12691
+ * @returns The array with all items from this stream.
12692
+ */
12693
+ toItemArray() {
12694
+ var _context2;
12695
+ return _mapInstanceProperty(_context2 = [...this._pairs]).call(_context2, pair => pair[1]);
12696
+ }
12697
+ /**
12698
+ * Return an array containing all the entries in this stream.
12699
+ * @remarks
12700
+ * The array may contain duplicities.
12701
+ * @returns The array with all entries from this stream.
12702
+ */
12703
+ toEntryArray() {
12704
+ return [...this._pairs];
12705
+ }
12706
+ /**
12707
+ * Return an object map containing all the items in this stream accessible by ids.
12708
+ * @remarks
12709
+ * In case of duplicate ids (coerced to string so `7 == '7'`) the last encoutered appears in the returned object.
12710
+ * @returns The object map of all id → item pairs from this stream.
12711
+ */
12712
+ toObjectMap() {
12713
+ const map = _Object$create(null);
12714
+ for (const _ref9 of this._pairs) {
12715
+ var _ref0 = _slicedToArray(_ref9, 2);
12716
+ const id = _ref0[0];
12717
+ const item = _ref0[1];
12718
+ map[id] = item;
12719
+ }
12720
+ return map;
12721
+ }
12722
+ /**
12723
+ * Return a map containing all the items in this stream accessible by ids.
12724
+ * @returns The map of all id → item pairs from this stream.
12725
+ */
12726
+ toMap() {
12727
+ return new _Map(this._pairs);
12728
+ }
12729
+ /**
12730
+ * Return a set containing all the (unique) ids in this stream.
12731
+ * @returns The set of all ids from this stream.
12732
+ */
12733
+ toIdSet() {
12734
+ return new _Set(this.toIdArray());
12735
+ }
12736
+ /**
12737
+ * Return a set containing all the (unique) items in this stream.
12738
+ * @returns The set of all items from this stream.
12739
+ */
12740
+ toItemSet() {
12741
+ return new _Set(this.toItemArray());
12742
+ }
12743
+ /**
12744
+ * Cache the items from this stream.
12745
+ * @remarks
12746
+ * This method allows for items to be fetched immediatelly and used (possibly multiple times) later.
12747
+ * It can also be used to optimize performance as {@link DataStream} would otherwise reevaluate everything upon each iteration.
12748
+ *
12749
+ * ## Example
12750
+ * ```javascript
12751
+ * const ds = new DataSet([…])
12752
+ *
12753
+ * const cachedStream = ds.stream()
12754
+ * .filter(…)
12755
+ * .sort(…)
12756
+ * .map(…)
12757
+ * .cached(…) // Data are fetched, processed and cached here.
12758
+ *
12759
+ * ds.clear()
12760
+ * chachedStream // Still has all the items.
12761
+ * ```
12762
+ * @returns A new {@link DataStream} with cached items (detached from the original {@link DataSet}).
12763
+ */
12764
+ cache() {
12765
+ return new DataStream([...this._pairs]);
12766
+ }
12767
+ /**
12768
+ * Get the distinct values of given property.
12769
+ * @param callback - The function that picks and possibly converts the property.
12770
+ * @typeParam T - The type of the distinct value.
12771
+ * @returns A set of all distinct properties.
12772
+ */
12773
+ distinct(callback) {
12774
+ const set = new _Set();
12775
+ for (const _ref1 of this._pairs) {
12776
+ var _ref10 = _slicedToArray(_ref1, 2);
12777
+ const id = _ref10[0];
12778
+ const item = _ref10[1];
12779
+ set.add(callback(item, id));
12780
+ }
12781
+ return set;
12782
+ }
12783
+ /**
12784
+ * Filter the items of the stream.
12785
+ * @param callback - The function that decides whether an item will be included.
12786
+ * @returns A new data stream with the filtered items.
12787
+ */
12788
+ filter(callback) {
12789
+ const pairs = this._pairs;
12790
+ return new DataStream({
12791
+ *[_Symbol$iterator]() {
12792
+ for (const _ref11 of pairs) {
12793
+ var _ref12 = _slicedToArray(_ref11, 2);
12794
+ const id = _ref12[0];
12795
+ const item = _ref12[1];
12796
+ if (callback(item, id)) {
12797
+ yield [id, item];
12798
+ }
12799
+ }
12800
+ }
12801
+ });
12802
+ }
12803
+ /**
12804
+ * Execute a callback for each item of the stream.
12805
+ * @param callback - The function that will be invoked for each item.
12806
+ */
12807
+ forEach(callback) {
12808
+ for (const _ref13 of this._pairs) {
12809
+ var _ref14 = _slicedToArray(_ref13, 2);
12810
+ const id = _ref14[0];
12811
+ const item = _ref14[1];
12812
+ callback(item, id);
12813
+ }
12814
+ }
12815
+ /**
12816
+ * Map the items into a different type.
12817
+ * @param callback - The function that does the conversion.
12818
+ * @typeParam Mapped - The type of the item after mapping.
12819
+ * @returns A new data stream with the mapped items.
12820
+ */
12821
+ map(callback) {
12822
+ const pairs = this._pairs;
12823
+ return new DataStream({
12824
+ *[_Symbol$iterator]() {
12825
+ for (const _ref15 of pairs) {
12826
+ var _ref16 = _slicedToArray(_ref15, 2);
12827
+ const id = _ref16[0];
12828
+ const item = _ref16[1];
12829
+ yield [id, callback(item, id)];
12830
+ }
12831
+ }
12832
+ });
12833
+ }
12834
+ /**
12835
+ * Get the item with the maximum value of given property.
12836
+ * @param callback - The function that picks and possibly converts the property.
12837
+ * @returns The item with the maximum if found otherwise null.
12838
+ */
12839
+ max(callback) {
12840
+ const iter = _getIterator(this._pairs);
12841
+ let curr = iter.next();
12842
+ if (curr.done) {
12843
+ return null;
12844
+ }
12845
+ let maxItem = curr.value[1];
12846
+ let maxValue = callback(curr.value[1], curr.value[0]);
12847
+ while (!(curr = iter.next()).done) {
12848
+ const _curr$value = _slicedToArray(curr.value, 2),
12849
+ id = _curr$value[0],
12850
+ item = _curr$value[1];
12851
+ const value = callback(item, id);
12852
+ if (value > maxValue) {
12853
+ maxValue = value;
12854
+ maxItem = item;
12855
+ }
12856
+ }
12857
+ return maxItem;
12858
+ }
12859
+ /**
12860
+ * Get the item with the minimum value of given property.
12861
+ * @param callback - The function that picks and possibly converts the property.
12862
+ * @returns The item with the minimum if found otherwise null.
12863
+ */
12864
+ min(callback) {
12865
+ const iter = _getIterator(this._pairs);
12866
+ let curr = iter.next();
12867
+ if (curr.done) {
12868
+ return null;
12869
+ }
12870
+ let minItem = curr.value[1];
12871
+ let minValue = callback(curr.value[1], curr.value[0]);
12872
+ while (!(curr = iter.next()).done) {
12873
+ const _curr$value2 = _slicedToArray(curr.value, 2),
12874
+ id = _curr$value2[0],
12875
+ item = _curr$value2[1];
12876
+ const value = callback(item, id);
12877
+ if (value < minValue) {
12878
+ minValue = value;
12879
+ minItem = item;
12880
+ }
12881
+ }
12882
+ return minItem;
12883
+ }
12884
+ /**
12885
+ * Reduce the items into a single value.
12886
+ * @param callback - The function that does the reduction.
12887
+ * @param accumulator - The initial value of the accumulator.
12888
+ * @typeParam T - The type of the accumulated value.
12889
+ * @returns The reduced value.
12890
+ */
12891
+ reduce(callback, accumulator) {
12892
+ for (const _ref17 of this._pairs) {
12893
+ var _ref18 = _slicedToArray(_ref17, 2);
12894
+ const id = _ref18[0];
12895
+ const item = _ref18[1];
12896
+ accumulator = callback(accumulator, item, id);
12897
+ }
12898
+ return accumulator;
12899
+ }
12900
+ /**
12901
+ * Sort the items.
12902
+ * @param callback - Item comparator.
12903
+ * @returns A new stream with sorted items.
12904
+ */
12905
+ sort(callback) {
12906
+ return new DataStream({
12907
+ [_Symbol$iterator]: () => _getIterator([...this._pairs].toSorted((_ref19, _ref20) => {
12908
+ let _ref21 = _slicedToArray(_ref19, 2),
12909
+ idA = _ref21[0],
12910
+ itemA = _ref21[1];
12911
+ let _ref22 = _slicedToArray(_ref20, 2),
12912
+ idB = _ref22[0],
12913
+ itemB = _ref22[1];
12914
+ return callback(itemA, itemB, idA, idB);
12915
+ }))
12916
+ });
12917
+ }
12918
+ }
12919
+
12920
+ var web_timers = {};
11940
12921
 
11941
- var setSymmetricDifference;
11942
- var hasRequiredSetSymmetricDifference;
12922
+ var web_setInterval = {};
11943
12923
 
11944
- function requireSetSymmetricDifference () {
11945
- if (hasRequiredSetSymmetricDifference) return setSymmetricDifference;
11946
- hasRequiredSetSymmetricDifference = 1;
11947
- var aSet = /*@__PURE__*/ requireASet();
11948
- var SetHelpers = /*@__PURE__*/ requireSetHelpers();
11949
- var clone = /*@__PURE__*/ requireSetClone();
11950
- var getSetRecord = /*@__PURE__*/ requireGetSetRecord();
11951
- var iterateSimple = /*@__PURE__*/ requireIterateSimple();
12924
+ var validateArgumentsLength;
12925
+ var hasRequiredValidateArgumentsLength;
11952
12926
 
11953
- var add = SetHelpers.add;
11954
- var has = SetHelpers.has;
11955
- var remove = SetHelpers.remove;
12927
+ function requireValidateArgumentsLength () {
12928
+ if (hasRequiredValidateArgumentsLength) return validateArgumentsLength;
12929
+ hasRequiredValidateArgumentsLength = 1;
12930
+ var $TypeError = TypeError;
11956
12931
 
11957
- // `Set.prototype.symmetricDifference` method
11958
- // https://tc39.es/ecma262/#sec-set.prototype.symmetricdifference
11959
- setSymmetricDifference = function symmetricDifference(other) {
11960
- var O = aSet(this);
11961
- var keysIter = getSetRecord(other).getIterator();
11962
- var result = clone(O);
11963
- iterateSimple(keysIter, function (e) {
11964
- if (has(O, e)) remove(result, e);
11965
- else add(result, e);
11966
- });
11967
- return result;
12932
+ validateArgumentsLength = function (passed, required) {
12933
+ if (passed < required) throw new $TypeError('Not enough arguments');
12934
+ return passed;
11968
12935
  };
11969
- return setSymmetricDifference;
12936
+ return validateArgumentsLength;
11970
12937
  }
11971
12938
 
11972
- var setMethodGetKeysBeforeCloningDetection;
11973
- var hasRequiredSetMethodGetKeysBeforeCloningDetection;
12939
+ var schedulersFix;
12940
+ var hasRequiredSchedulersFix;
11974
12941
 
11975
- function requireSetMethodGetKeysBeforeCloningDetection () {
11976
- if (hasRequiredSetMethodGetKeysBeforeCloningDetection) return setMethodGetKeysBeforeCloningDetection;
11977
- hasRequiredSetMethodGetKeysBeforeCloningDetection = 1;
11978
- // Should get iterator record of a set-like object before cloning this
11979
- // https://bugs.webkit.org/show_bug.cgi?id=289430
11980
- setMethodGetKeysBeforeCloningDetection = function (METHOD_NAME) {
11981
- try {
11982
- // eslint-disable-next-line es/no-set -- needed for test
11983
- var baseSet = new Set();
11984
- var setLike = {
11985
- size: 0,
11986
- has: function () { return true; },
11987
- keys: function () {
11988
- // eslint-disable-next-line es/no-object-defineproperty -- needed for test
11989
- return Object.defineProperty({}, 'next', {
11990
- get: function () {
11991
- baseSet.clear();
11992
- baseSet.add(4);
11993
- return function () {
11994
- return { done: true };
11995
- };
11996
- }
11997
- });
11998
- }
11999
- };
12000
- var result = baseSet[METHOD_NAME](setLike);
12942
+ function requireSchedulersFix () {
12943
+ if (hasRequiredSchedulersFix) return schedulersFix;
12944
+ hasRequiredSchedulersFix = 1;
12945
+ var globalThis = /*@__PURE__*/ requireGlobalThis();
12946
+ var apply = /*@__PURE__*/ requireFunctionApply();
12947
+ var isCallable = /*@__PURE__*/ requireIsCallable();
12948
+ var ENVIRONMENT = /*@__PURE__*/ requireEnvironment();
12949
+ var USER_AGENT = /*@__PURE__*/ requireEnvironmentUserAgent();
12950
+ var arraySlice = /*@__PURE__*/ requireArraySlice();
12951
+ var validateArgumentsLength = /*@__PURE__*/ requireValidateArgumentsLength();
12001
12952
 
12002
- return result.size === 1 && result.values().next().value === 4;
12003
- } catch (error) {
12004
- return false;
12005
- }
12953
+ var Function = globalThis.Function;
12954
+ // dirty IE9- and Bun 0.3.0- checks
12955
+ var WRAP = /MSIE .\./.test(USER_AGENT) || ENVIRONMENT === 'BUN' && (function () {
12956
+ var version = globalThis.Bun.version.split('.');
12957
+ return version.length < 3 || version[0] === '0' && (version[1] < 3 || version[1] === '3' && version[2] === '0');
12958
+ })();
12959
+
12960
+ // IE9- / Bun 0.3.0- setTimeout / setInterval / setImmediate additional parameters fix
12961
+ // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timers
12962
+ // https://github.com/oven-sh/bun/issues/1633
12963
+ schedulersFix = function (scheduler, hasTimeArg) {
12964
+ var firstParamIndex = hasTimeArg ? 2 : 1;
12965
+ return WRAP ? function (handler, timeout /* , ...arguments */) {
12966
+ var boundArgs = validateArgumentsLength(arguments.length, 1) > firstParamIndex;
12967
+ var fn = isCallable(handler) ? handler : Function(handler);
12968
+ var params = boundArgs ? arraySlice(arguments, firstParamIndex) : [];
12969
+ var callback = boundArgs ? function () {
12970
+ apply(fn, this, params);
12971
+ } : fn;
12972
+ return hasTimeArg ? scheduler(callback, timeout) : scheduler(callback);
12973
+ } : scheduler;
12006
12974
  };
12007
- return setMethodGetKeysBeforeCloningDetection;
12975
+ return schedulersFix;
12008
12976
  }
12009
12977
 
12010
- var hasRequiredEs_set_symmetricDifference_v2;
12978
+ var hasRequiredWeb_setInterval;
12011
12979
 
12012
- function requireEs_set_symmetricDifference_v2 () {
12013
- if (hasRequiredEs_set_symmetricDifference_v2) return es_set_symmetricDifference_v2;
12014
- hasRequiredEs_set_symmetricDifference_v2 = 1;
12980
+ function requireWeb_setInterval () {
12981
+ if (hasRequiredWeb_setInterval) return web_setInterval;
12982
+ hasRequiredWeb_setInterval = 1;
12015
12983
  var $ = /*@__PURE__*/ require_export();
12016
- var symmetricDifference = /*@__PURE__*/ requireSetSymmetricDifference();
12017
- var setMethodGetKeysBeforeCloning = /*@__PURE__*/ requireSetMethodGetKeysBeforeCloningDetection();
12018
- var setMethodAcceptSetLike = /*@__PURE__*/ requireSetMethodAcceptSetLike();
12984
+ var globalThis = /*@__PURE__*/ requireGlobalThis();
12985
+ var schedulersFix = /*@__PURE__*/ requireSchedulersFix();
12019
12986
 
12020
- var FORCED = !setMethodAcceptSetLike('symmetricDifference') || !setMethodGetKeysBeforeCloning('symmetricDifference');
12987
+ var setInterval = schedulersFix(globalThis.setInterval, true);
12021
12988
 
12022
- // `Set.prototype.symmetricDifference` method
12023
- // https://tc39.es/ecma262/#sec-set.prototype.symmetricdifference
12024
- $({ target: 'Set', proto: true, real: true, forced: FORCED }, {
12025
- symmetricDifference: symmetricDifference
12989
+ // Bun / IE9- setInterval additional parameters fix
12990
+ // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-setinterval
12991
+ $({ global: true, bind: true, forced: globalThis.setInterval !== setInterval }, {
12992
+ setInterval: setInterval
12026
12993
  });
12027
- return es_set_symmetricDifference_v2;
12994
+ return web_setInterval;
12028
12995
  }
12029
12996
 
12030
- var es_set_union_v2 = {};
12031
-
12032
- var setUnion;
12033
- var hasRequiredSetUnion;
12034
-
12035
- function requireSetUnion () {
12036
- if (hasRequiredSetUnion) return setUnion;
12037
- hasRequiredSetUnion = 1;
12038
- var aSet = /*@__PURE__*/ requireASet();
12039
- var add = /*@__PURE__*/ requireSetHelpers().add;
12040
- var clone = /*@__PURE__*/ requireSetClone();
12041
- var getSetRecord = /*@__PURE__*/ requireGetSetRecord();
12042
- var iterateSimple = /*@__PURE__*/ requireIterateSimple();
12043
-
12044
- // `Set.prototype.union` method
12045
- // https://tc39.es/ecma262/#sec-set.prototype.union
12046
- setUnion = function union(other) {
12047
- var O = aSet(this);
12048
- var keysIter = getSetRecord(other).getIterator();
12049
- var result = clone(O);
12050
- iterateSimple(keysIter, function (it) {
12051
- add(result, it);
12052
- });
12053
- return result;
12054
- };
12055
- return setUnion;
12056
- }
12997
+ var web_setTimeout = {};
12057
12998
 
12058
- var hasRequiredEs_set_union_v2;
12999
+ var hasRequiredWeb_setTimeout;
12059
13000
 
12060
- function requireEs_set_union_v2 () {
12061
- if (hasRequiredEs_set_union_v2) return es_set_union_v2;
12062
- hasRequiredEs_set_union_v2 = 1;
13001
+ function requireWeb_setTimeout () {
13002
+ if (hasRequiredWeb_setTimeout) return web_setTimeout;
13003
+ hasRequiredWeb_setTimeout = 1;
12063
13004
  var $ = /*@__PURE__*/ require_export();
12064
- var union = /*@__PURE__*/ requireSetUnion();
12065
- var setMethodGetKeysBeforeCloning = /*@__PURE__*/ requireSetMethodGetKeysBeforeCloningDetection();
12066
- var setMethodAcceptSetLike = /*@__PURE__*/ requireSetMethodAcceptSetLike();
13005
+ var globalThis = /*@__PURE__*/ requireGlobalThis();
13006
+ var schedulersFix = /*@__PURE__*/ requireSchedulersFix();
12067
13007
 
12068
- var FORCED = !setMethodAcceptSetLike('union') || !setMethodGetKeysBeforeCloning('union');
13008
+ var setTimeout = schedulersFix(globalThis.setTimeout, true);
12069
13009
 
12070
- // `Set.prototype.union` method
12071
- // https://tc39.es/ecma262/#sec-set.prototype.union
12072
- $({ target: 'Set', proto: true, real: true, forced: FORCED }, {
12073
- union: union
13010
+ // Bun / IE9- setTimeout additional parameters fix
13011
+ // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-settimeout
13012
+ $({ global: true, bind: true, forced: globalThis.setTimeout !== setTimeout }, {
13013
+ setTimeout: setTimeout
12074
13014
  });
12075
- return es_set_union_v2;
12076
- }
12077
-
12078
- var set$2;
12079
- var hasRequiredSet$2;
12080
-
12081
- function requireSet$2 () {
12082
- if (hasRequiredSet$2) return set$2;
12083
- hasRequiredSet$2 = 1;
12084
- requireEs_array_iterator();
12085
- requireEs_set();
12086
- requireEs_set_difference_v2();
12087
- requireEs_set_intersection_v2();
12088
- requireEs_set_isDisjointFrom_v2();
12089
- requireEs_set_isSubsetOf_v2();
12090
- requireEs_set_isSupersetOf_v2();
12091
- requireEs_set_symmetricDifference_v2();
12092
- requireEs_set_union_v2();
12093
- requireEs_string_iterator();
12094
- var path = /*@__PURE__*/ requirePath();
12095
-
12096
- set$2 = path.Set;
12097
- return set$2;
12098
- }
12099
-
12100
- var set$1;
12101
- var hasRequiredSet$1;
12102
-
12103
- function requireSet$1 () {
12104
- if (hasRequiredSet$1) return set$1;
12105
- hasRequiredSet$1 = 1;
12106
- var parent = /*@__PURE__*/ requireSet$2();
12107
- requireWeb_domCollections_iterator();
12108
-
12109
- set$1 = parent;
12110
- return set$1;
13015
+ return web_setTimeout;
12111
13016
  }
12112
13017
 
12113
- var set;
12114
- var hasRequiredSet;
13018
+ var hasRequiredWeb_timers;
12115
13019
 
12116
- function requireSet () {
12117
- if (hasRequiredSet) return set;
12118
- hasRequiredSet = 1;
12119
- set = /*@__PURE__*/ requireSet$1();
12120
- return set;
13020
+ function requireWeb_timers () {
13021
+ if (hasRequiredWeb_timers) return web_timers;
13022
+ hasRequiredWeb_timers = 1;
13023
+ // TODO: Remove this module from `core-js@4` since it's split to modules listed below
13024
+ requireWeb_setInterval();
13025
+ requireWeb_setTimeout();
13026
+ return web_timers;
12121
13027
  }
12122
13028
 
12123
- var setExports = requireSet();
12124
- var _Set = /*@__PURE__*/getDefaultExportFromCjs(setExports);
13029
+ var setTimeout$2;
13030
+ var hasRequiredSetTimeout$1;
12125
13031
 
12126
- var getIterator_1;
12127
- var hasRequiredGetIterator$5;
13032
+ function requireSetTimeout$1 () {
13033
+ if (hasRequiredSetTimeout$1) return setTimeout$2;
13034
+ hasRequiredSetTimeout$1 = 1;
13035
+ requireWeb_timers();
13036
+ var path = /*@__PURE__*/ requirePath();
12128
13037
 
12129
- function requireGetIterator$5 () {
12130
- if (hasRequiredGetIterator$5) return getIterator_1;
12131
- hasRequiredGetIterator$5 = 1;
12132
- requireEs_array_iterator();
12133
- requireEs_string_iterator();
12134
- var getIterator = /*@__PURE__*/ requireGetIterator$6();
13038
+ setTimeout$2 = path.setTimeout;
13039
+ return setTimeout$2;
13040
+ }
12135
13041
 
12136
- getIterator_1 = getIterator;
12137
- return getIterator_1;
13042
+ var setTimeout$1;
13043
+ var hasRequiredSetTimeout;
13044
+
13045
+ function requireSetTimeout () {
13046
+ if (hasRequiredSetTimeout) return setTimeout$1;
13047
+ hasRequiredSetTimeout = 1;
13048
+ setTimeout$1 = /*@__PURE__*/ requireSetTimeout$1();
13049
+ return setTimeout$1;
12138
13050
  }
12139
13051
 
12140
- var getIterator$4;
12141
- var hasRequiredGetIterator$4;
13052
+ var setTimeoutExports = requireSetTimeout();
13053
+ var _setTimeout = /*@__PURE__*/getDefaultExportFromCjs(setTimeoutExports);
12142
13054
 
12143
- function requireGetIterator$4 () {
12144
- if (hasRequiredGetIterator$4) return getIterator$4;
12145
- hasRequiredGetIterator$4 = 1;
12146
- var parent = /*@__PURE__*/ requireGetIterator$5();
12147
- requireWeb_domCollections_iterator();
13055
+ var es_array_splice = {};
12148
13056
 
12149
- getIterator$4 = parent;
12150
- return getIterator$4;
12151
- }
13057
+ var hasRequiredEs_array_splice;
12152
13058
 
12153
- var getIterator$3;
12154
- var hasRequiredGetIterator$3;
13059
+ function requireEs_array_splice () {
13060
+ if (hasRequiredEs_array_splice) return es_array_splice;
13061
+ hasRequiredEs_array_splice = 1;
13062
+ var $ = /*@__PURE__*/ require_export();
13063
+ var toObject = /*@__PURE__*/ requireToObject();
13064
+ var toAbsoluteIndex = /*@__PURE__*/ requireToAbsoluteIndex();
13065
+ var toIntegerOrInfinity = /*@__PURE__*/ requireToIntegerOrInfinity();
13066
+ var lengthOfArrayLike = /*@__PURE__*/ requireLengthOfArrayLike();
13067
+ var setArrayLength = /*@__PURE__*/ requireArraySetLength();
13068
+ var doesNotExceedSafeInteger = /*@__PURE__*/ requireDoesNotExceedSafeInteger();
13069
+ var arraySpeciesCreate = /*@__PURE__*/ requireArraySpeciesCreate();
13070
+ var createProperty = /*@__PURE__*/ requireCreateProperty();
13071
+ var deletePropertyOrThrow = /*@__PURE__*/ requireDeletePropertyOrThrow();
13072
+ var arrayMethodHasSpeciesSupport = /*@__PURE__*/ requireArrayMethodHasSpeciesSupport();
12155
13073
 
12156
- function requireGetIterator$3 () {
12157
- if (hasRequiredGetIterator$3) return getIterator$3;
12158
- hasRequiredGetIterator$3 = 1;
12159
- var parent = /*@__PURE__*/ requireGetIterator$4();
13074
+ var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');
12160
13075
 
12161
- getIterator$3 = parent;
12162
- return getIterator$3;
13076
+ var max = Math.max;
13077
+ var min = Math.min;
13078
+
13079
+ // `Array.prototype.splice` method
13080
+ // https://tc39.es/ecma262/#sec-array.prototype.splice
13081
+ // with adding support of @@species
13082
+ $({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {
13083
+ splice: function splice(start, deleteCount /* , ...items */) {
13084
+ var O = toObject(this);
13085
+ var len = lengthOfArrayLike(O);
13086
+ var actualStart = toAbsoluteIndex(start, len);
13087
+ var argumentsLength = arguments.length;
13088
+ var insertCount, actualDeleteCount, A, k, from, to;
13089
+ if (argumentsLength === 0) {
13090
+ insertCount = actualDeleteCount = 0;
13091
+ } else if (argumentsLength === 1) {
13092
+ insertCount = 0;
13093
+ actualDeleteCount = len - actualStart;
13094
+ } else {
13095
+ insertCount = argumentsLength - 2;
13096
+ actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart);
13097
+ }
13098
+ doesNotExceedSafeInteger(len + insertCount - actualDeleteCount);
13099
+ A = arraySpeciesCreate(O, actualDeleteCount);
13100
+ for (k = 0; k < actualDeleteCount; k++) {
13101
+ from = actualStart + k;
13102
+ if (from in O) createProperty(A, k, O[from]);
13103
+ }
13104
+ setArrayLength(A, actualDeleteCount);
13105
+ if (insertCount < actualDeleteCount) {
13106
+ for (k = actualStart; k < len - actualDeleteCount; k++) {
13107
+ from = k + actualDeleteCount;
13108
+ to = k + insertCount;
13109
+ if (from in O) O[to] = O[from];
13110
+ else deletePropertyOrThrow(O, to);
13111
+ }
13112
+ for (k = len; k > len - actualDeleteCount + insertCount; k--) deletePropertyOrThrow(O, k - 1);
13113
+ } else if (insertCount > actualDeleteCount) {
13114
+ for (k = len - actualDeleteCount; k > actualStart; k--) {
13115
+ from = k + actualDeleteCount - 1;
13116
+ to = k + insertCount - 1;
13117
+ if (from in O) O[to] = O[from];
13118
+ else deletePropertyOrThrow(O, to);
13119
+ }
13120
+ }
13121
+ for (k = 0; k < insertCount; k++) {
13122
+ O[k + actualStart] = arguments[k + 2];
13123
+ }
13124
+ setArrayLength(O, len - actualDeleteCount + insertCount);
13125
+ return A;
13126
+ }
13127
+ });
13128
+ return es_array_splice;
12163
13129
  }
12164
13130
 
12165
- var getIterator$2;
12166
- var hasRequiredGetIterator$2;
13131
+ var splice$3;
13132
+ var hasRequiredSplice$3;
12167
13133
 
12168
- function requireGetIterator$2 () {
12169
- if (hasRequiredGetIterator$2) return getIterator$2;
12170
- hasRequiredGetIterator$2 = 1;
12171
- var parent = /*@__PURE__*/ requireGetIterator$3();
13134
+ function requireSplice$3 () {
13135
+ if (hasRequiredSplice$3) return splice$3;
13136
+ hasRequiredSplice$3 = 1;
13137
+ requireEs_array_splice();
13138
+ var getBuiltInPrototypeMethod = /*@__PURE__*/ requireGetBuiltInPrototypeMethod();
12172
13139
 
12173
- getIterator$2 = parent;
12174
- return getIterator$2;
13140
+ splice$3 = getBuiltInPrototypeMethod('Array', 'splice');
13141
+ return splice$3;
12175
13142
  }
12176
13143
 
12177
- var getIterator$1;
12178
- var hasRequiredGetIterator$1;
13144
+ var splice$2;
13145
+ var hasRequiredSplice$2;
12179
13146
 
12180
- function requireGetIterator$1 () {
12181
- if (hasRequiredGetIterator$1) return getIterator$1;
12182
- hasRequiredGetIterator$1 = 1;
12183
- getIterator$1 = /*@__PURE__*/ requireGetIterator$2();
12184
- return getIterator$1;
12185
- }
13147
+ function requireSplice$2 () {
13148
+ if (hasRequiredSplice$2) return splice$2;
13149
+ hasRequiredSplice$2 = 1;
13150
+ var isPrototypeOf = /*@__PURE__*/ requireObjectIsPrototypeOf();
13151
+ var method = /*@__PURE__*/ requireSplice$3();
12186
13152
 
12187
- var getIterator;
12188
- var hasRequiredGetIterator;
13153
+ var ArrayPrototype = Array.prototype;
12189
13154
 
12190
- function requireGetIterator () {
12191
- if (hasRequiredGetIterator) return getIterator;
12192
- hasRequiredGetIterator = 1;
12193
- getIterator = /*@__PURE__*/ requireGetIterator$1();
12194
- return getIterator;
13155
+ splice$2 = function (it) {
13156
+ var own = it.splice;
13157
+ return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.splice) ? method : own;
13158
+ };
13159
+ return splice$2;
12195
13160
  }
12196
13161
 
12197
- var getIteratorExports = requireGetIterator();
12198
- var _getIterator = /*@__PURE__*/getDefaultExportFromCjs(getIteratorExports);
12199
-
12200
- /**
12201
- * Data stream
12202
- * @remarks
12203
- * {@link DataStream} offers an always up to date stream of items from a {@link DataSet} or {@link DataView}.
12204
- * That means that the stream is evaluated at the time of iteration, conversion to another data type or when {@link cache} is called, not when the {@link DataStream} was created.
12205
- * Multiple invocations of for example {@link toItemArray} may yield different results (if the data source like for example {@link DataSet} gets modified).
12206
- * @typeParam Item - The item type this stream is going to work with.
12207
- */
12208
- class DataStream {
12209
- /**
12210
- * Create a new data stream.
12211
- * @param pairs - The id, item pairs.
12212
- */
12213
- constructor(pairs) {
12214
- this._pairs = pairs;
12215
- }
12216
- /**
12217
- * Return an iterable of key, value pairs for every entry in the stream.
12218
- */
12219
- *[_Symbol$iterator]() {
12220
- for (const [id, item] of this._pairs) {
12221
- yield [id, item];
12222
- }
12223
- }
12224
- /**
12225
- * Return an iterable of key, value pairs for every entry in the stream.
12226
- */
12227
- *entries() {
12228
- for (const [id, item] of this._pairs) {
12229
- yield [id, item];
12230
- }
12231
- }
12232
- /**
12233
- * Return an iterable of keys in the stream.
12234
- */
12235
- *keys() {
12236
- for (const [id] of this._pairs) {
12237
- yield id;
12238
- }
12239
- }
12240
- /**
12241
- * Return an iterable of values in the stream.
12242
- */
12243
- *values() {
12244
- for (const [, item] of this._pairs) {
12245
- yield item;
12246
- }
12247
- }
12248
- /**
12249
- * Return an array containing all the ids in this stream.
12250
- * @remarks
12251
- * The array may contain duplicities.
12252
- * @returns The array with all ids from this stream.
12253
- */
12254
- toIdArray() {
12255
- var _context;
12256
- return _mapInstanceProperty(_context = [...this._pairs]).call(_context, pair => pair[0]);
12257
- }
12258
- /**
12259
- * Return an array containing all the items in this stream.
12260
- * @remarks
12261
- * The array may contain duplicities.
12262
- * @returns The array with all items from this stream.
12263
- */
12264
- toItemArray() {
12265
- var _context2;
12266
- return _mapInstanceProperty(_context2 = [...this._pairs]).call(_context2, pair => pair[1]);
12267
- }
12268
- /**
12269
- * Return an array containing all the entries in this stream.
12270
- * @remarks
12271
- * The array may contain duplicities.
12272
- * @returns The array with all entries from this stream.
12273
- */
12274
- toEntryArray() {
12275
- return [...this._pairs];
12276
- }
12277
- /**
12278
- * Return an object map containing all the items in this stream accessible by ids.
12279
- * @remarks
12280
- * In case of duplicate ids (coerced to string so `7 == '7'`) the last encoutered appears in the returned object.
12281
- * @returns The object map of all id → item pairs from this stream.
12282
- */
12283
- toObjectMap() {
12284
- const map = _Object$create(null);
12285
- for (const [id, item] of this._pairs) {
12286
- map[id] = item;
12287
- }
12288
- return map;
12289
- }
12290
- /**
12291
- * Return a map containing all the items in this stream accessible by ids.
12292
- * @returns The map of all id → item pairs from this stream.
12293
- */
12294
- toMap() {
12295
- return new _Map(this._pairs);
12296
- }
12297
- /**
12298
- * Return a set containing all the (unique) ids in this stream.
12299
- * @returns The set of all ids from this stream.
12300
- */
12301
- toIdSet() {
12302
- return new _Set(this.toIdArray());
12303
- }
12304
- /**
12305
- * Return a set containing all the (unique) items in this stream.
12306
- * @returns The set of all items from this stream.
12307
- */
12308
- toItemSet() {
12309
- return new _Set(this.toItemArray());
12310
- }
13162
+ var splice$1;
13163
+ var hasRequiredSplice$1;
13164
+
13165
+ function requireSplice$1 () {
13166
+ if (hasRequiredSplice$1) return splice$1;
13167
+ hasRequiredSplice$1 = 1;
13168
+ var parent = /*@__PURE__*/ requireSplice$2();
13169
+
13170
+ splice$1 = parent;
13171
+ return splice$1;
13172
+ }
13173
+
13174
+ var splice;
13175
+ var hasRequiredSplice;
13176
+
13177
+ function requireSplice () {
13178
+ if (hasRequiredSplice) return splice;
13179
+ hasRequiredSplice = 1;
13180
+ splice = /*@__PURE__*/ requireSplice$1();
13181
+ return splice;
13182
+ }
13183
+
13184
+ var spliceExports = requireSplice();
13185
+ var _spliceInstanceProperty = /*@__PURE__*/getDefaultExportFromCjs(spliceExports);
13186
+
13187
+ /**
13188
+ * A queue.
13189
+ * @typeParam T - The type of method names to be replaced by queued versions.
13190
+ */
13191
+ class Queue {
12311
13192
  /**
12312
- * Cache the items from this stream.
12313
- * @remarks
12314
- * This method allows for items to be fetched immediatelly and used (possibly multiple times) later.
12315
- * It can also be used to optimize performance as {@link DataStream} would otherwise reevaluate everything upon each iteration.
12316
- *
12317
- * ## Example
12318
- * ```javascript
12319
- * const ds = new DataSet([…])
12320
- *
12321
- * const cachedStream = ds.stream()
12322
- * .filter(…)
12323
- * .sort(…)
12324
- * .map(…)
12325
- * .cached(…) // Data are fetched, processed and cached here.
12326
- *
12327
- * ds.clear()
12328
- * chachedStream // Still has all the items.
12329
- * ```
12330
- * @returns A new {@link DataStream} with cached items (detached from the original {@link DataSet}).
13193
+ * Construct a new Queue.
13194
+ * @param options - Queue configuration.
12331
13195
  */
12332
- cache() {
12333
- return new DataStream([...this._pairs]);
13196
+ constructor(options) {
13197
+ /** Delay in milliseconds. If defined the queue will be periodically flushed. */
13198
+ /** Maximum number of entries in the queue before it will be flushed. */
13199
+ _defineProperty(this, "_queue", []);
13200
+ _defineProperty(this, "_timeout", null);
13201
+ _defineProperty(this, "_extended", null);
13202
+ // options
13203
+ this.delay = null;
13204
+ this.max = Infinity;
13205
+ this.setOptions(options);
12334
13206
  }
12335
13207
  /**
12336
- * Get the distinct values of given property.
12337
- * @param callback - The function that picks and possibly converts the property.
12338
- * @typeParam T - The type of the distinct value.
12339
- * @returns A set of all distinct properties.
13208
+ * Update the configuration of the queue.
13209
+ * @param options - Queue configuration.
12340
13210
  */
12341
- distinct(callback) {
12342
- const set = new _Set();
12343
- for (const [id, item] of this._pairs) {
12344
- set.add(callback(item, id));
13211
+ setOptions(options) {
13212
+ if (options && typeof options.delay !== "undefined") {
13213
+ this.delay = options.delay;
12345
13214
  }
12346
- return set;
13215
+ if (options && typeof options.max !== "undefined") {
13216
+ this.max = options.max;
13217
+ }
13218
+ this._flushIfNeeded();
12347
13219
  }
12348
13220
  /**
12349
- * Filter the items of the stream.
12350
- * @param callback - The function that decides whether an item will be included.
12351
- * @returns A new data stream with the filtered items.
13221
+ * Extend an object with queuing functionality.
13222
+ * The object will be extended with a function flush, and the methods provided in options.replace will be replaced with queued ones.
13223
+ * @param object - The object to be extended.
13224
+ * @param options - Additional options.
13225
+ * @returns The created queue.
12352
13226
  */
12353
- filter(callback) {
12354
- const pairs = this._pairs;
12355
- return new DataStream({
12356
- *[_Symbol$iterator]() {
12357
- for (const [id, item] of pairs) {
12358
- if (callback(item, id)) {
12359
- yield [id, item];
12360
- }
12361
- }
13227
+ static extend(object, options) {
13228
+ const queue = new Queue(options);
13229
+ if (object.flush !== undefined) {
13230
+ throw new Error("Target object already has a property flush");
13231
+ }
13232
+ object.flush = () => {
13233
+ queue.flush();
13234
+ };
13235
+ const methods = [{
13236
+ name: "flush",
13237
+ original: undefined
13238
+ }];
13239
+ if (options && options.replace) {
13240
+ for (let i = 0; i < options.replace.length; i++) {
13241
+ const name = options.replace[i];
13242
+ methods.push({
13243
+ name: name,
13244
+ // @TODO: better solution?
13245
+ original: object[name]
13246
+ });
13247
+ // @TODO: better solution?
13248
+ queue.replace(object, name);
12362
13249
  }
12363
- });
12364
- }
12365
- /**
12366
- * Execute a callback for each item of the stream.
12367
- * @param callback - The function that will be invoked for each item.
12368
- */
12369
- forEach(callback) {
12370
- for (const [id, item] of this._pairs) {
12371
- callback(item, id);
12372
13250
  }
13251
+ queue._extended = {
13252
+ object: object,
13253
+ methods: methods
13254
+ };
13255
+ return queue;
12373
13256
  }
12374
13257
  /**
12375
- * Map the items into a different type.
12376
- * @param callback - The function that does the conversion.
12377
- * @typeParam Mapped - The type of the item after mapping.
12378
- * @returns A new data stream with the mapped items.
13258
+ * Destroy the queue. The queue will first flush all queued actions, and in case it has extended an object, will restore the original object.
12379
13259
  */
12380
- map(callback) {
12381
- const pairs = this._pairs;
12382
- return new DataStream({
12383
- *[_Symbol$iterator]() {
12384
- for (const [id, item] of pairs) {
12385
- yield [id, callback(item, id)];
13260
+ destroy() {
13261
+ this.flush();
13262
+ if (this._extended) {
13263
+ const object = this._extended.object;
13264
+ const methods = this._extended.methods;
13265
+ for (let i = 0; i < methods.length; i++) {
13266
+ const method = methods[i];
13267
+ if (method.original) {
13268
+ // @TODO: better solution?
13269
+ object[method.name] = method.original;
13270
+ } else {
13271
+ // @TODO: better solution?
13272
+ delete object[method.name];
12386
13273
  }
12387
13274
  }
12388
- });
13275
+ this._extended = null;
13276
+ }
12389
13277
  }
12390
13278
  /**
12391
- * Get the item with the maximum value of given property.
12392
- * @param callback - The function that picks and possibly converts the property.
12393
- * @returns The item with the maximum if found otherwise null.
13279
+ * Replace a method on an object with a queued version.
13280
+ * @param object - Object having the method.
13281
+ * @param method - The method name.
12394
13282
  */
12395
- max(callback) {
12396
- const iter = _getIterator(this._pairs);
12397
- let curr = iter.next();
12398
- if (curr.done) {
12399
- return null;
13283
+ replace(object, method) {
13284
+ /* eslint-disable-next-line @typescript-eslint/no-this-alias -- Function this is necessary in the function bellow, so class this has to be saved into a variable here. */
13285
+ const me = this;
13286
+ const original = object[method];
13287
+ if (!original) {
13288
+ throw new Error("Method " + method + " undefined");
12400
13289
  }
12401
- let maxItem = curr.value[1];
12402
- let maxValue = callback(curr.value[1], curr.value[0]);
12403
- while (!(curr = iter.next()).done) {
12404
- const [id, item] = curr.value;
12405
- const value = callback(item, id);
12406
- if (value > maxValue) {
12407
- maxValue = value;
12408
- maxItem = item;
13290
+ object[method] = function () {
13291
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
13292
+ args[_key] = arguments[_key];
12409
13293
  }
12410
- }
12411
- return maxItem;
13294
+ // add this call to the queue
13295
+ me.queue({
13296
+ args: args,
13297
+ fn: original,
13298
+ context: this
13299
+ });
13300
+ };
12412
13301
  }
12413
13302
  /**
12414
- * Get the item with the minimum value of given property.
12415
- * @param callback - The function that picks and possibly converts the property.
12416
- * @returns The item with the minimum if found otherwise null.
13303
+ * Queue a call.
13304
+ * @param entry - The function or entry to be queued.
12417
13305
  */
12418
- min(callback) {
12419
- const iter = _getIterator(this._pairs);
12420
- let curr = iter.next();
12421
- if (curr.done) {
12422
- return null;
12423
- }
12424
- let minItem = curr.value[1];
12425
- let minValue = callback(curr.value[1], curr.value[0]);
12426
- while (!(curr = iter.next()).done) {
12427
- const [id, item] = curr.value;
12428
- const value = callback(item, id);
12429
- if (value < minValue) {
12430
- minValue = value;
12431
- minItem = item;
12432
- }
13306
+ queue(entry) {
13307
+ if (typeof entry === "function") {
13308
+ this._queue.push({
13309
+ fn: entry
13310
+ });
13311
+ } else {
13312
+ this._queue.push(entry);
12433
13313
  }
12434
- return minItem;
13314
+ this._flushIfNeeded();
12435
13315
  }
12436
13316
  /**
12437
- * Reduce the items into a single value.
12438
- * @param callback - The function that does the reduction.
12439
- * @param accumulator - The initial value of the accumulator.
12440
- * @typeParam T - The type of the accumulated value.
12441
- * @returns The reduced value.
13317
+ * Check whether the queue needs to be flushed.
12442
13318
  */
12443
- reduce(callback, accumulator) {
12444
- for (const [id, item] of this._pairs) {
12445
- accumulator = callback(accumulator, item, id);
13319
+ _flushIfNeeded() {
13320
+ // flush when the maximum is exceeded.
13321
+ if (this._queue.length > this.max) {
13322
+ this.flush();
13323
+ }
13324
+ // flush after a period of inactivity when a delay is configured
13325
+ if (this._timeout != null) {
13326
+ clearTimeout(this._timeout);
13327
+ this._timeout = null;
13328
+ }
13329
+ if (this.queue.length > 0 && typeof this.delay === "number") {
13330
+ this._timeout = _setTimeout(() => {
13331
+ this.flush();
13332
+ }, this.delay);
12446
13333
  }
12447
- return accumulator;
12448
13334
  }
12449
13335
  /**
12450
- * Sort the items.
12451
- * @param callback - Item comparator.
12452
- * @returns A new stream with sorted items.
13336
+ * Flush all queued calls
12453
13337
  */
12454
- sort(callback) {
12455
- return new DataStream({
12456
- [_Symbol$iterator]: () => {
12457
- var _context3;
12458
- return _getIterator(_sortInstanceProperty(_context3 = [...this._pairs]).call(_context3, (_ref, _ref2) => {
12459
- let [idA, itemA] = _ref;
12460
- let [idB, itemB] = _ref2;
12461
- return callback(itemA, itemB, idA, idB);
12462
- }));
12463
- }
13338
+ flush() {
13339
+ var _context, _context2;
13340
+ _forEachInstanceProperty(_context = _spliceInstanceProperty(_context2 = this._queue).call(_context2, 0)).call(_context, entry => {
13341
+ entry.fn.apply(entry.context || entry.fn, entry.args || []);
12464
13342
  });
12465
13343
  }
12466
13344
  }
@@ -12560,7 +13438,7 @@ class DataSet extends DataSetPart {
12560
13438
  super();
12561
13439
  // correctly read optional arguments
12562
13440
  _defineProperty(this, "_queue", null);
12563
- if (data && !_Array$isArray(data)) {
13441
+ if (data && !_Array$isArray$1(data)) {
12564
13442
  options = data;
12565
13443
  data = [];
12566
13444
  }
@@ -12627,7 +13505,7 @@ class DataSet extends DataSetPart {
12627
13505
  add(data, senderId) {
12628
13506
  const addedIds = [];
12629
13507
  let id;
12630
- if (_Array$isArray(data)) {
13508
+ if (_Array$isArray$1(data)) {
12631
13509
  // Array
12632
13510
  const idsToAdd = _mapInstanceProperty(data).call(data, d => d[this._idProp]);
12633
13511
  if (_someInstanceProperty(idsToAdd).call(idsToAdd, id => this._data.has(id))) {
@@ -12706,7 +13584,7 @@ class DataSet extends DataSetPart {
12706
13584
  addedIds.push(id);
12707
13585
  }
12708
13586
  };
12709
- if (_Array$isArray(data)) {
13587
+ if (_Array$isArray$1(data)) {
12710
13588
  // Array
12711
13589
  for (let i = 0, len = data.length; i < len; i++) {
12712
13590
  if (data[i] && typeof data[i] === "object") {
@@ -12778,7 +13656,7 @@ class DataSet extends DataSetPart {
12778
13656
  */
12779
13657
  updateOnly(data, senderId) {
12780
13658
  var _context;
12781
- if (!_Array$isArray(data)) {
13659
+ if (!_Array$isArray$1(data)) {
12782
13660
  data = [data];
12783
13661
  }
12784
13662
  const updateEventData = _mapInstanceProperty(_context = _mapInstanceProperty(data).call(data, update => {
@@ -12791,10 +13669,8 @@ class DataSet extends DataSetPart {
12791
13669
  update
12792
13670
  };
12793
13671
  })).call(_context, _ref => {
12794
- let {
12795
- oldData,
12796
- update
12797
- } = _ref;
13672
+ let oldData = _ref.oldData,
13673
+ update = _ref.update;
12798
13674
  const id = oldData[this._idProp];
12799
13675
  const updatedData = pureDeepObjectAssign(oldData, update);
12800
13676
  this._data.set(id, updatedData);
@@ -12834,7 +13710,7 @@ class DataSet extends DataSetPart {
12834
13710
  // get(id [, options])
12835
13711
  id = first;
12836
13712
  options = second;
12837
- } else if (_Array$isArray(first)) {
13713
+ } else if (_Array$isArray$1(first)) {
12838
13714
  // get(ids [, options])
12839
13715
  ids = first;
12840
13716
  options = second;
@@ -13044,7 +13920,7 @@ class DataSet extends DataSetPart {
13044
13920
  // item is null
13045
13921
  return item;
13046
13922
  }
13047
- return _reduceInstanceProperty(_context3 = _Array$isArray(fields) ?
13923
+ return _reduceInstanceProperty(_context3 = _Array$isArray$1(fields) ?
13048
13924
  // Use the supplied array
13049
13925
  fields :
13050
13926
  // Use the keys of the supplied object
@@ -13107,7 +13983,7 @@ class DataSet extends DataSetPart {
13107
13983
  const removedIds = [];
13108
13984
  const removedItems = [];
13109
13985
  // force everything to be an array for simplicity
13110
- const ids = _Array$isArray(id) ? id : [id];
13986
+ const ids = _Array$isArray$1(id) ? id : [id];
13111
13987
  for (let i = 0, len = ids.length; i < len; i++) {
13112
13988
  const item = this._remove(ids[i]);
13113
13989
  if (item) {
@@ -13529,7 +14405,7 @@ class DataView extends DataSetPart {
13529
14405
  // parse the arguments
13530
14406
  let ids = null;
13531
14407
  let options;
13532
- if (isId(first) || _Array$isArray(first)) {
14408
+ if (isId(first) || _Array$isArray$1(first)) {
13533
14409
  ids = first;
13534
14410
  options = second;
13535
14411
  } else {