linqx 0.2.0 → 0.3.2

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 (144) hide show
  1. package/README.md +181 -87
  2. package/dist/core/dictionary.d.ts +14 -0
  3. package/dist/core/enumerable.d.ts +9 -0
  4. package/dist/core/enumerator.d.ts +10 -0
  5. package/dist/core/grouping.d.ts +11 -0
  6. package/dist/core/lookup.d.ts +12 -0
  7. package/dist/core/memoized-enumerable.d.ts +12 -0
  8. package/dist/core/ordered-enumerable.d.ts +14 -0
  9. package/dist/core/shared-enumerable.d.ts +10 -0
  10. package/dist/extensions.d.ts +18 -0
  11. package/dist/extensions.js +13 -0
  12. package/dist/factories/choice.d.ts +8 -0
  13. package/dist/factories/cycle.d.ts +8 -0
  14. package/dist/factories/defer.d.ts +8 -0
  15. package/dist/factories/empty.d.ts +3 -0
  16. package/dist/factories/from.d.ts +46 -0
  17. package/dist/factories/generate.d.ts +9 -0
  18. package/dist/factories/make.d.ts +8 -0
  19. package/dist/factories/matches.d.ts +14 -0
  20. package/dist/factories/range-down.d.ts +10 -0
  21. package/dist/factories/range-to.d.ts +12 -0
  22. package/dist/factories/range.d.ts +10 -0
  23. package/dist/factories/repeat-with-finalize.d.ts +9 -0
  24. package/dist/factories/repeat.d.ts +9 -0
  25. package/dist/factories/to-infinity.d.ts +9 -0
  26. package/dist/factories/to-negative-infinity.d.ts +9 -0
  27. package/dist/factories/unfold.d.ts +9 -0
  28. package/dist/index.d.ts +87 -3
  29. package/dist/index.js +2 -4
  30. package/dist/internal/create-enumerable.d.ts +3 -0
  31. package/dist/internal/functions.d.ts +6 -0
  32. package/dist/internal/to-iterable.d.ts +2 -0
  33. package/dist/operators/aggregate-by.d.ts +2 -0
  34. package/dist/operators/aggregate.d.ts +2 -0
  35. package/dist/operators/all.d.ts +2 -0
  36. package/dist/operators/alternate.d.ts +2 -0
  37. package/dist/operators/any.d.ts +2 -0
  38. package/dist/operators/append.d.ts +2 -0
  39. package/dist/operators/as-enumerable.d.ts +2 -0
  40. package/dist/operators/average.d.ts +2 -0
  41. package/dist/operators/buffer.d.ts +2 -0
  42. package/dist/operators/cast.d.ts +2 -0
  43. package/dist/operators/catch-error.d.ts +2 -0
  44. package/dist/operators/choose.d.ts +2 -0
  45. package/dist/operators/chunk.d.ts +2 -0
  46. package/dist/operators/concat.d.ts +2 -0
  47. package/dist/operators/contains.d.ts +2 -0
  48. package/dist/operators/count-by.d.ts +2 -0
  49. package/dist/operators/count.d.ts +2 -0
  50. package/dist/operators/create-ordered-enumerable.d.ts +2 -0
  51. package/dist/operators/default-if-empty.d.ts +2 -0
  52. package/dist/operators/distinct-by.d.ts +2 -0
  53. package/dist/operators/distinct-until-changed.d.ts +2 -0
  54. package/dist/operators/distinct.d.ts +2 -0
  55. package/dist/operators/do-action.d.ts +3 -0
  56. package/dist/operators/element-at-or-default.d.ts +2 -0
  57. package/dist/operators/element-at.d.ts +2 -0
  58. package/dist/operators/except-by.d.ts +2 -0
  59. package/dist/operators/except.d.ts +2 -0
  60. package/dist/operators/finally-action.d.ts +2 -0
  61. package/dist/operators/first-or-default.d.ts +2 -0
  62. package/dist/operators/first.d.ts +2 -0
  63. package/dist/operators/flatten.d.ts +2 -0
  64. package/dist/operators/for-each.d.ts +3 -0
  65. package/dist/operators/force.d.ts +2 -0
  66. package/dist/operators/group-by.d.ts +2 -0
  67. package/dist/operators/group-join.d.ts +2 -0
  68. package/dist/operators/index-of.d.ts +2 -0
  69. package/dist/operators/index.d.ts +2 -0
  70. package/dist/operators/insert.d.ts +2 -0
  71. package/dist/operators/intersect-by.d.ts +2 -0
  72. package/dist/operators/intersect.d.ts +2 -0
  73. package/dist/operators/is-empty.d.ts +2 -0
  74. package/dist/operators/join-with.d.ts +2 -0
  75. package/dist/operators/join.d.ts +2 -0
  76. package/dist/operators/last-index-of.d.ts +2 -0
  77. package/dist/operators/last-or-default.d.ts +2 -0
  78. package/dist/operators/last.d.ts +2 -0
  79. package/dist/operators/left-join.d.ts +2 -0
  80. package/dist/operators/let-bind.d.ts +2 -0
  81. package/dist/operators/log.d.ts +2 -0
  82. package/dist/operators/map.d.ts +2 -0
  83. package/dist/operators/max-by.d.ts +2 -0
  84. package/dist/operators/max.d.ts +2 -0
  85. package/dist/operators/memoize.d.ts +2 -0
  86. package/dist/operators/merge.d.ts +2 -0
  87. package/dist/operators/min-by.d.ts +2 -0
  88. package/dist/operators/min.d.ts +2 -0
  89. package/dist/operators/of-type.d.ts +2 -0
  90. package/dist/operators/operators.d.ts +208 -0
  91. package/dist/operators/order-by-descending.d.ts +2 -0
  92. package/dist/operators/order-by.d.ts +2 -0
  93. package/dist/operators/page.d.ts +2 -0
  94. package/dist/operators/pairwise.d.ts +2 -0
  95. package/dist/operators/partition-by.d.ts +2 -0
  96. package/dist/operators/position.d.ts +2 -0
  97. package/dist/operators/prepend.d.ts +2 -0
  98. package/dist/operators/reverse.d.ts +2 -0
  99. package/dist/operators/right-join.d.ts +2 -0
  100. package/dist/operators/scan.d.ts +2 -0
  101. package/dist/operators/select-many.d.ts +2 -0
  102. package/dist/operators/select.d.ts +2 -0
  103. package/dist/operators/sequence-equal.d.ts +2 -0
  104. package/dist/operators/share.d.ts +2 -0
  105. package/dist/operators/shuffle.d.ts +2 -0
  106. package/dist/operators/single-or-default.d.ts +2 -0
  107. package/dist/operators/single.d.ts +2 -0
  108. package/dist/operators/skip-last.d.ts +2 -0
  109. package/dist/operators/skip-while.d.ts +2 -0
  110. package/dist/operators/skip.d.ts +2 -0
  111. package/dist/operators/sum.d.ts +2 -0
  112. package/dist/operators/take-except-last.d.ts +2 -0
  113. package/dist/operators/take-from-last.d.ts +2 -0
  114. package/dist/operators/take-last.d.ts +2 -0
  115. package/dist/operators/take-while.d.ts +2 -0
  116. package/dist/operators/take.d.ts +2 -0
  117. package/dist/operators/then-by-descending.d.ts +2 -0
  118. package/dist/operators/then-by.d.ts +2 -0
  119. package/dist/operators/to-array.d.ts +2 -0
  120. package/dist/operators/to-dictionary.d.ts +2 -0
  121. package/dist/operators/to-joined-string.d.ts +2 -0
  122. package/dist/operators/to-json-string.d.ts +2 -0
  123. package/dist/operators/to-lookup.d.ts +2 -0
  124. package/dist/operators/to-map.d.ts +2 -0
  125. package/dist/operators/to-object.d.ts +2 -0
  126. package/dist/operators/to-set.d.ts +2 -0
  127. package/dist/operators/trace.d.ts +2 -0
  128. package/dist/operators/traverse-breadth-first.d.ts +2 -0
  129. package/dist/operators/traverse-depth-first.d.ts +2 -0
  130. package/dist/operators/union-by.d.ts +2 -0
  131. package/dist/operators/union.d.ts +2 -0
  132. package/dist/operators/weighted-sample.d.ts +2 -0
  133. package/dist/operators/where-if.d.ts +2 -0
  134. package/dist/operators/where.d.ts +2 -0
  135. package/dist/operators/with-neighbors.d.ts +2 -0
  136. package/dist/operators/zip.d.ts +2 -0
  137. package/dist/src-D_Mk3oMP.js +1597 -0
  138. package/dist/types.d.ts +1154 -0
  139. package/dist/utils.d.ts +56 -0
  140. package/package.json +18 -11
  141. package/dist/linq.d.ts +0 -256
  142. package/dist/linq.js +0 -3085
  143. package/dist/linqx.d.ts +0 -36
  144. package/dist/linqx.js +0 -153
@@ -0,0 +1,1597 @@
1
+ //#region src/core/enumerator.ts
2
+ var e = class {
3
+ constructor(e) {
4
+ this.iterator = e, this.done = !1;
5
+ }
6
+ current() {
7
+ return this.value;
8
+ }
9
+ moveNext() {
10
+ if (this.done) return !1;
11
+ let e = this.iterator.next();
12
+ return this.done = !!e.done, this.done || (this.value = e.value), !this.done;
13
+ }
14
+ dispose() {
15
+ this.done = !0, this.iterator.return?.();
16
+ }
17
+ }, t = class {
18
+ constructor(e) {
19
+ this.iteratorFactory = e;
20
+ }
21
+ [Symbol.iterator]() {
22
+ return this.iteratorFactory();
23
+ }
24
+ getEnumerator() {
25
+ return new e(this.iteratorFactory());
26
+ }
27
+ }, n = class extends t {
28
+ constructor(e, t) {
29
+ super(() => {
30
+ let n = Array.from(e, (e, t) => ({
31
+ value: e,
32
+ index: t
33
+ }));
34
+ return n.sort((e, n) => {
35
+ for (let r of t) {
36
+ let t = r.comparer(r.keySelector(e.value), r.keySelector(n.value));
37
+ if (t !== 0) return r.descending ? -t : t;
38
+ }
39
+ return e.index - n.index;
40
+ }), n.map((e) => e.value)[Symbol.iterator]();
41
+ }), this.source = e, this.criteria = t;
42
+ }
43
+ };
44
+ //#endregion
45
+ //#region src/internal/create-enumerable.ts
46
+ function r(e) {
47
+ return new t(e);
48
+ }
49
+ function i(e) {
50
+ return r(e);
51
+ }
52
+ //#endregion
53
+ //#region src/factories/choice.ts
54
+ function a(...e) {
55
+ return i(function* () {
56
+ for (; e.length > 0;) yield e[Math.floor(Math.random() * e.length)];
57
+ });
58
+ }
59
+ //#endregion
60
+ //#region src/factories/cycle.ts
61
+ function o(...e) {
62
+ return i(function* () {
63
+ for (; e.length > 0;) yield* e;
64
+ });
65
+ }
66
+ //#endregion
67
+ //#region src/factories/defer.ts
68
+ function s(e) {
69
+ return r(() => e()[Symbol.iterator]());
70
+ }
71
+ //#endregion
72
+ //#region src/factories/empty.ts
73
+ function c() {
74
+ return i(function* () {});
75
+ }
76
+ //#endregion
77
+ //#region src/internal/functions.ts
78
+ var l = (e) => e;
79
+ function u(e, t) {
80
+ return e === t ? 0 : e == null ? -1 : t == null ? 1 : e < t ? -1 : 1;
81
+ }
82
+ function d(e) {
83
+ return e != null && typeof e[Symbol.iterator] == "function";
84
+ }
85
+ function f(e) {
86
+ return e != null && typeof e.length == "number";
87
+ }
88
+ //#endregion
89
+ //#region src/factories/from.ts
90
+ function ee(e) {
91
+ return e == null ? i(function* () {}) : typeof e == "function" ? r(() => {
92
+ let t = e();
93
+ return d(t) ? t[Symbol.iterator]() : t;
94
+ }) : d(e) ? r(() => e[Symbol.iterator]()) : typeof e.next == "function" ? r(() => e) : f(e) ? i(function* () {
95
+ for (let t = 0; t < e.length; t++) yield e[t];
96
+ }) : i(typeof e == "object" ? function* () {
97
+ for (let t of Object.keys(e)) {
98
+ let n = e[t];
99
+ typeof n != "function" && (yield {
100
+ key: t,
101
+ value: n
102
+ });
103
+ }
104
+ } : function* () {
105
+ yield e;
106
+ });
107
+ }
108
+ //#endregion
109
+ //#region src/factories/generate.ts
110
+ function p(e, t) {
111
+ return i(function* () {
112
+ for (let n = 0; t == null || n < t; n++) yield e();
113
+ });
114
+ }
115
+ //#endregion
116
+ //#region src/factories/make.ts
117
+ function m(e) {
118
+ return i(function* () {
119
+ yield e;
120
+ });
121
+ }
122
+ //#endregion
123
+ //#region src/factories/matches.ts
124
+ function te(e, t, n) {
125
+ return i(function* () {
126
+ let r;
127
+ if (t instanceof RegExp) {
128
+ let e = t.flags.includes("g") ? t.flags : `${t.flags}g`;
129
+ r = new RegExp(t.source, e);
130
+ } else {
131
+ let e = n ?? "", i = e.includes("g") ? e : `${e}g`;
132
+ r = new RegExp(t, i);
133
+ }
134
+ let i;
135
+ for (; (i = r.exec(e)) !== null;) yield i, i[0] === "" && r.lastIndex++;
136
+ });
137
+ }
138
+ //#endregion
139
+ //#region src/factories/range.ts
140
+ function h(e, t, n = 1) {
141
+ return i(function* () {
142
+ for (let r = 0; r < t; r++) yield e + r * n;
143
+ });
144
+ }
145
+ //#endregion
146
+ //#region src/factories/range-down.ts
147
+ function ne(e, t, n = 1) {
148
+ return h(e, t, -Math.abs(n));
149
+ }
150
+ //#endregion
151
+ //#region src/factories/range-to.ts
152
+ function re(e, t, n = 1) {
153
+ let r = Math.abs(n);
154
+ return i(function* () {
155
+ if (e <= t) for (let n = e; n <= t; n += r) yield n;
156
+ else for (let n = e; n >= t; n -= r) yield n;
157
+ });
158
+ }
159
+ //#endregion
160
+ //#region src/factories/repeat.ts
161
+ function ie(e, t) {
162
+ return i(function* () {
163
+ for (let n = 0; t == null || n < t; n++) yield e;
164
+ });
165
+ }
166
+ //#endregion
167
+ //#region src/factories/repeat-with-finalize.ts
168
+ function ae(e, t) {
169
+ return i(function* () {
170
+ let n = e();
171
+ try {
172
+ for (;;) yield n;
173
+ } finally {
174
+ t(n);
175
+ }
176
+ });
177
+ }
178
+ //#endregion
179
+ //#region src/factories/to-infinity.ts
180
+ function oe(e = 0, t = 1) {
181
+ return i(function* () {
182
+ for (let n = e;; n += t) yield n;
183
+ });
184
+ }
185
+ //#endregion
186
+ //#region src/factories/to-negative-infinity.ts
187
+ function se(e = 0, t = 1) {
188
+ return i(function* () {
189
+ for (let n = e;; n -= t) yield n;
190
+ });
191
+ }
192
+ //#endregion
193
+ //#region src/factories/unfold.ts
194
+ function ce(e, t) {
195
+ return i(function* () {
196
+ let n = e;
197
+ for (;;) yield n, n = t(n);
198
+ });
199
+ }
200
+ //#endregion
201
+ //#region src/operators/aggregate.ts
202
+ function g(e, t, n) {
203
+ if (typeof e == "function" && t === void 0) {
204
+ let t = this[Symbol.iterator](), n = t.next();
205
+ if (n.done) throw Error("Sequence contains no elements.");
206
+ let r = n.value;
207
+ for (let n = t.next(); !n.done; n = t.next()) r = e(r, n.value);
208
+ return r;
209
+ }
210
+ let r = e;
211
+ for (let e of this) r = t(r, e);
212
+ return n ? n(r) : r;
213
+ }
214
+ //#endregion
215
+ //#region src/operators/aggregate-by.ts
216
+ function _(e, t, n, r = l) {
217
+ let a = this;
218
+ return i(function* () {
219
+ let i = /* @__PURE__ */ new Map();
220
+ for (let o of a) {
221
+ let a = e(o), s = r(a), c = i.get(s);
222
+ c ? c.value = n(c.value, o) : i.set(s, {
223
+ key: a,
224
+ value: n(t, o)
225
+ });
226
+ }
227
+ yield* i.values();
228
+ });
229
+ }
230
+ //#endregion
231
+ //#region src/operators/all.ts
232
+ function v(e) {
233
+ for (let t of this) if (!e(t)) return !1;
234
+ return !0;
235
+ }
236
+ //#endregion
237
+ //#region src/internal/to-iterable.ts
238
+ function y(e) {
239
+ if (d(e)) return e;
240
+ if (f(e)) return (function* () {
241
+ for (let t = 0; t < e.length; t++) yield e[t];
242
+ })();
243
+ throw TypeError("Value is not enumerable.");
244
+ }
245
+ //#endregion
246
+ //#region src/operators/alternate.ts
247
+ function b(e) {
248
+ let t = this, n = d(e) || f(e) ? () => y(e) : () => [e];
249
+ return i(function* () {
250
+ let e = !0;
251
+ for (let r of t) e || (yield* n()), e = !1, yield r;
252
+ });
253
+ }
254
+ //#endregion
255
+ //#region src/operators/any.ts
256
+ function x(e) {
257
+ for (let t of this) if (!e || e(t)) return !0;
258
+ return !1;
259
+ }
260
+ //#endregion
261
+ //#region src/operators/append.ts
262
+ function S(e) {
263
+ let t = this;
264
+ return i(function* () {
265
+ yield* t, yield e;
266
+ });
267
+ }
268
+ //#endregion
269
+ //#region src/operators/as-enumerable.ts
270
+ function C() {
271
+ let e = this;
272
+ return i(function* () {
273
+ yield* e;
274
+ });
275
+ }
276
+ //#endregion
277
+ //#region src/operators/average.ts
278
+ function w(e = Number) {
279
+ let t = 0, n = 0;
280
+ for (let r of this) t += e(r), n++;
281
+ return t / n;
282
+ }
283
+ //#endregion
284
+ //#region src/operators/buffer.ts
285
+ function T(e) {
286
+ if (e <= 0) throw RangeError("count must be greater than zero.");
287
+ let t = this;
288
+ return i(function* () {
289
+ let n = [];
290
+ for (let r of t) n.push(r), n.length === e && (yield n, n = []);
291
+ n.length > 0 && (yield n);
292
+ });
293
+ }
294
+ //#endregion
295
+ //#region src/operators/cast.ts
296
+ function E() {
297
+ return this;
298
+ }
299
+ //#endregion
300
+ //#region src/operators/catch-error.ts
301
+ function D(e) {
302
+ let t = this;
303
+ return i(function* () {
304
+ try {
305
+ yield* t;
306
+ } catch (t) {
307
+ e(t);
308
+ }
309
+ });
310
+ }
311
+ //#endregion
312
+ //#region src/operators/choose.ts
313
+ function O(e) {
314
+ let t = this;
315
+ return i(function* () {
316
+ let n = 0;
317
+ for (let r of t) {
318
+ let t = e(r, n++);
319
+ t != null && (yield t);
320
+ }
321
+ });
322
+ }
323
+ //#endregion
324
+ //#region src/operators/chunk.ts
325
+ function k(e) {
326
+ if (!Number.isInteger(e) || e <= 0) throw RangeError("Chunk size must be a positive integer.");
327
+ return this.buffer(e);
328
+ }
329
+ //#endregion
330
+ //#region src/operators/concat.ts
331
+ function A(...e) {
332
+ let t = this;
333
+ return i(function* () {
334
+ yield* t;
335
+ for (let t of e) yield* y(t);
336
+ });
337
+ }
338
+ //#endregion
339
+ //#region src/operators/contains.ts
340
+ function j(e, t = l) {
341
+ let n = t(e);
342
+ for (let e of this) if (t(e) === n) return !0;
343
+ return !1;
344
+ }
345
+ //#endregion
346
+ //#region src/operators/count.ts
347
+ function M(e) {
348
+ let t = 0, n = 0;
349
+ for (let r of this) (!e || e(r, n++)) && t++;
350
+ return t;
351
+ }
352
+ //#endregion
353
+ //#region src/operators/count-by.ts
354
+ function N(e, t = l) {
355
+ let n = this;
356
+ return i(function* () {
357
+ let r = /* @__PURE__ */ new Map();
358
+ for (let i of n) {
359
+ let n = e(i), a = t(n), o = r.get(a);
360
+ o ? o.value++ : r.set(a, {
361
+ key: n,
362
+ value: 1
363
+ });
364
+ }
365
+ yield* r.values();
366
+ });
367
+ }
368
+ //#endregion
369
+ //#region src/operators/create-ordered-enumerable.ts
370
+ function P(e, t = u, r = !1) {
371
+ if (!(this instanceof n)) throw TypeError("Source is not an ordered enumerable.");
372
+ return new n(this.source, [...this.criteria, {
373
+ keySelector: e,
374
+ comparer: t,
375
+ descending: r
376
+ }]);
377
+ }
378
+ //#endregion
379
+ //#region src/operators/default-if-empty.ts
380
+ function F(e) {
381
+ let t = this;
382
+ return i(function* () {
383
+ let n = !0;
384
+ for (let e of t) n = !1, yield e;
385
+ n && (yield e);
386
+ });
387
+ }
388
+ //#endregion
389
+ //#region src/operators/distinct.ts
390
+ function I(e = l) {
391
+ let t = this;
392
+ return i(function* () {
393
+ let n = /* @__PURE__ */ new Set();
394
+ for (let r of t) {
395
+ let t = e(r);
396
+ n.has(t) || (n.add(t), yield r);
397
+ }
398
+ });
399
+ }
400
+ //#endregion
401
+ //#region src/operators/distinct-by.ts
402
+ function L(e, t = l) {
403
+ return I.call(this, (n) => t(e(n)));
404
+ }
405
+ //#endregion
406
+ //#region src/operators/distinct-until-changed.ts
407
+ function R(e = l) {
408
+ let t = this;
409
+ return i(function* () {
410
+ let n = !1, r;
411
+ for (let i of t) {
412
+ let t = e(i);
413
+ (!n || t !== r) && (n = !0, r = t, yield i);
414
+ }
415
+ });
416
+ }
417
+ //#endregion
418
+ //#region src/operators/do-action.ts
419
+ function z(e) {
420
+ let t = this;
421
+ return i(function* () {
422
+ let n = 0;
423
+ for (let r of t) {
424
+ if (e(r, n++) === !1) return;
425
+ yield r;
426
+ }
427
+ });
428
+ }
429
+ //#endregion
430
+ //#region src/operators/element-at.ts
431
+ function B(e) {
432
+ let t = 0;
433
+ for (let n of this) if (t++ === e) return n;
434
+ throw Error("Index is out of range.");
435
+ }
436
+ //#endregion
437
+ //#region src/operators/element-at-or-default.ts
438
+ function V(e, t) {
439
+ if (e < 0) return t;
440
+ let n = 0;
441
+ for (let t of this) if (n++ === e) return t;
442
+ return t;
443
+ }
444
+ //#endregion
445
+ //#region src/operators/except.ts
446
+ function H(e, t = l) {
447
+ let n = this;
448
+ return i(function* () {
449
+ let r = new Set([...y(e)].map(t)), i = /* @__PURE__ */ new Set();
450
+ for (let e of n) {
451
+ let n = t(e);
452
+ !r.has(n) && !i.has(n) && (i.add(n), yield e);
453
+ }
454
+ });
455
+ }
456
+ //#endregion
457
+ //#region src/operators/except-by.ts
458
+ function U(e, t, n = l) {
459
+ let r = this;
460
+ return i(function* () {
461
+ let i = /* @__PURE__ */ new Set();
462
+ for (let t of y(e)) i.add(n(t));
463
+ let a = /* @__PURE__ */ new Set();
464
+ for (let e of r) {
465
+ let r = n(t(e));
466
+ !i.has(r) && !a.has(r) && (a.add(r), yield e);
467
+ }
468
+ });
469
+ }
470
+ //#endregion
471
+ //#region src/operators/finally-action.ts
472
+ function W(e) {
473
+ let t = this;
474
+ return i(function* () {
475
+ try {
476
+ yield* t;
477
+ } finally {
478
+ e();
479
+ }
480
+ });
481
+ }
482
+ //#endregion
483
+ //#region src/operators/first.ts
484
+ function G(e) {
485
+ let t = 0;
486
+ for (let n of this) if (!e || e(n, t++)) return n;
487
+ throw Error("Sequence contains no matching element.");
488
+ }
489
+ //#endregion
490
+ //#region src/operators/first-or-default.ts
491
+ function le(e, t) {
492
+ let n = typeof e == "function" ? e : void 0, r = n ? t : e, i = 0;
493
+ for (let e of this) if (!n || n(e, i++)) return e;
494
+ return r;
495
+ }
496
+ //#endregion
497
+ //#region src/operators/flatten.ts
498
+ function ue() {
499
+ let e = this;
500
+ return i(function* () {
501
+ function* t(e) {
502
+ if (typeof e != "string" && d(e)) for (let n of e) yield* t(n);
503
+ else yield e;
504
+ }
505
+ for (let n of e) yield* t(n);
506
+ });
507
+ }
508
+ //#endregion
509
+ //#region src/operators/force.ts
510
+ function de() {
511
+ for (let e of this);
512
+ }
513
+ //#endregion
514
+ //#region src/operators/for-each.ts
515
+ function fe(e) {
516
+ let t = 0;
517
+ for (let n of this) if (e(n, t++) === !1) return;
518
+ }
519
+ //#endregion
520
+ //#region src/operators/group-by.ts
521
+ function pe(e, t = l, n = void 0, r = l) {
522
+ return this.toLookup(e, t, r).toEnumerable().select((e) => n ? n(e.key(), e) : e);
523
+ }
524
+ //#endregion
525
+ //#region src/core/grouping.ts
526
+ var K = class extends t {
527
+ constructor(e, t) {
528
+ super(() => t[Symbol.iterator]()), this.groupKey = e, this.source = t;
529
+ }
530
+ key() {
531
+ return this.groupKey;
532
+ }
533
+ getSource() {
534
+ return this.source;
535
+ }
536
+ };
537
+ //#endregion
538
+ //#region src/operators/group-join.ts
539
+ function me(e, t, n, r, a = l) {
540
+ let o = this;
541
+ return i(function* () {
542
+ let i = /* @__PURE__ */ new Map();
543
+ for (let t of y(e)) {
544
+ let e = a(n(t)), r = i.get(e);
545
+ r ? r.push(t) : i.set(e, [t]);
546
+ }
547
+ for (let e of o) {
548
+ let n = t(e);
549
+ yield r(e, new K(n, i.get(a(n)) ?? []));
550
+ }
551
+ });
552
+ }
553
+ //#endregion
554
+ //#region src/operators/index.ts
555
+ function he() {
556
+ return this.select((e, t) => ({
557
+ index: t,
558
+ item: e
559
+ }));
560
+ }
561
+ //#endregion
562
+ //#region src/operators/index-of.ts
563
+ function ge(e) {
564
+ let t = typeof e == "function" ? e : (t) => t === e, n = 0;
565
+ for (let e of this) {
566
+ if (t(e, n)) return n;
567
+ n++;
568
+ }
569
+ return -1;
570
+ }
571
+ //#endregion
572
+ //#region src/operators/insert.ts
573
+ function _e(e, t) {
574
+ let n = this;
575
+ return i(function* () {
576
+ let r = 0, i = !1;
577
+ for (let a of n) !i && r++ === e && (yield* y(t), i = !0), yield a;
578
+ i || (yield* y(t));
579
+ });
580
+ }
581
+ //#endregion
582
+ //#region src/operators/intersect.ts
583
+ function ve(e, t = l) {
584
+ let n = this;
585
+ return i(function* () {
586
+ let r = new Set([...y(e)].map(t)), i = /* @__PURE__ */ new Set();
587
+ for (let e of n) {
588
+ let n = t(e);
589
+ r.has(n) && !i.has(n) && (i.add(n), yield e);
590
+ }
591
+ });
592
+ }
593
+ //#endregion
594
+ //#region src/operators/intersect-by.ts
595
+ function ye(e, t, n = l) {
596
+ let r = this;
597
+ return i(function* () {
598
+ let i = /* @__PURE__ */ new Set();
599
+ for (let t of y(e)) i.add(n(t));
600
+ for (let e of r) {
601
+ let r = n(t(e));
602
+ i.delete(r) && (yield e);
603
+ }
604
+ });
605
+ }
606
+ //#endregion
607
+ //#region src/operators/is-empty.ts
608
+ function be() {
609
+ let e = this[Symbol.iterator](), t = e.next();
610
+ return t.done || e.return?.(), !!t.done;
611
+ }
612
+ //#endregion
613
+ //#region src/operators/join.ts
614
+ function xe(e, t, n, r, a = l) {
615
+ let o = this;
616
+ return i(function* () {
617
+ let i = /* @__PURE__ */ new Map();
618
+ for (let t of y(e)) {
619
+ let e = a(n(t)), r = i.get(e);
620
+ r ? r.push(t) : i.set(e, [t]);
621
+ }
622
+ for (let e of o) {
623
+ let n = a(t(e)), o = i.get(n) ?? [];
624
+ for (let t of o) yield r(e, t);
625
+ }
626
+ });
627
+ }
628
+ //#endregion
629
+ //#region src/operators/join-with.ts
630
+ function Se(e) {
631
+ if (typeof e == "string") return this.toJoinedString(e);
632
+ let t = this;
633
+ return i(function* () {
634
+ let n = t[Symbol.iterator](), r = n.next();
635
+ for (; !r.done;) {
636
+ yield r.value;
637
+ let t = n.next();
638
+ if (t.done) return;
639
+ yield e(r.value), r = t;
640
+ }
641
+ });
642
+ }
643
+ //#endregion
644
+ //#region src/operators/last.ts
645
+ function Ce(e) {
646
+ let t = !1, n, r = 0;
647
+ for (let i of this) (!e || e(i, r++)) && (t = !0, n = i);
648
+ if (!t) throw Error("Sequence contains no matching element.");
649
+ return n;
650
+ }
651
+ //#endregion
652
+ //#region src/operators/last-index-of.ts
653
+ function we(e) {
654
+ let t = typeof e == "function" ? e : (t) => t === e, n = 0, r = -1;
655
+ for (let e of this) t(e, n) && (r = n), n++;
656
+ return r;
657
+ }
658
+ //#endregion
659
+ //#region src/operators/last-or-default.ts
660
+ function Te(e, t) {
661
+ let n = typeof e == "function" ? e : void 0, r = n ? t : e, i = !1, a, o = 0;
662
+ for (let e of this) (!n || n(e, o++)) && (i = !0, a = e);
663
+ return i ? a : r;
664
+ }
665
+ //#endregion
666
+ //#region src/operators/left-join.ts
667
+ function Ee(e, t, n, r, a = l) {
668
+ let o = this;
669
+ return i(function* () {
670
+ let i = /* @__PURE__ */ new Map();
671
+ for (let t of y(e)) {
672
+ let e = a(n(t)), r = i.get(e);
673
+ r ? r.push(t) : i.set(e, [t]);
674
+ }
675
+ for (let e of o) {
676
+ let n = i.get(a(t(e)));
677
+ if (n) for (let t of n) yield r(e, t);
678
+ else yield r(e, null);
679
+ }
680
+ });
681
+ }
682
+ //#endregion
683
+ //#region src/operators/let-bind.ts
684
+ function De(e) {
685
+ let t = this;
686
+ return r(() => y(e(t))[Symbol.iterator]());
687
+ }
688
+ //#endregion
689
+ //#region src/operators/log.ts
690
+ function Oe(e = l) {
691
+ return this.doAction((t) => {
692
+ console.log(e(t));
693
+ });
694
+ }
695
+ //#endregion
696
+ //#region src/operators/map.ts
697
+ function ke(e) {
698
+ return this.select(e).toArray();
699
+ }
700
+ //#endregion
701
+ //#region src/operators/max.ts
702
+ function Ae(e = Number) {
703
+ let t = -Infinity;
704
+ for (let n of this) t = Math.max(t, e(n));
705
+ return t;
706
+ }
707
+ //#endregion
708
+ //#region src/operators/max-by.ts
709
+ function je(e) {
710
+ let t = this[Symbol.iterator](), n = t.next();
711
+ if (n.done) throw Error("Sequence contains no elements.");
712
+ let r = n.value, i = e(r);
713
+ for (let n = t.next(); !n.done; n = t.next()) {
714
+ let t = e(n.value);
715
+ u(t, i) > 0 && (r = n.value, i = t);
716
+ }
717
+ return r;
718
+ }
719
+ //#endregion
720
+ //#region src/core/memoized-enumerable.ts
721
+ var Me = class extends t {
722
+ constructor(e) {
723
+ let t = { iterator: () => ({
724
+ done: !0,
725
+ value: void 0
726
+ }) };
727
+ super(() => {
728
+ let e = 0;
729
+ return { next: () => t.iterator(e++) };
730
+ }), this.cache = [], this.completed = !1, this.sourceIterator = e[Symbol.iterator](), t.iterator = (e) => this.nextAt(e);
731
+ }
732
+ nextAt(e) {
733
+ if (e < this.cache.length) return {
734
+ done: !1,
735
+ value: this.cache[e]
736
+ };
737
+ if (this.completed) return {
738
+ done: !0,
739
+ value: void 0
740
+ };
741
+ let t = this.sourceIterator.next();
742
+ return t.done ? (this.completed = !0, {
743
+ done: !0,
744
+ value: void 0
745
+ }) : (this.cache.push(t.value), {
746
+ done: !1,
747
+ value: t.value
748
+ });
749
+ }
750
+ dispose() {
751
+ this.completed || (this.completed = !0, this.sourceIterator.return?.());
752
+ }
753
+ };
754
+ //#endregion
755
+ //#region src/operators/memoize.ts
756
+ function Ne() {
757
+ return new Me(this);
758
+ }
759
+ //#endregion
760
+ //#region src/operators/merge.ts
761
+ function Pe(...e) {
762
+ let t = [this, ...e];
763
+ return i(function* () {
764
+ let e = t.map((e) => y(e)[Symbol.iterator]());
765
+ for (; e.length > 0;) {
766
+ let t = [];
767
+ for (let n of e) {
768
+ let e = n.next();
769
+ e.done || (yield e.value, t.push(n));
770
+ }
771
+ e = t;
772
+ }
773
+ });
774
+ }
775
+ //#endregion
776
+ //#region src/operators/min.ts
777
+ function Fe(e = Number) {
778
+ let t = Infinity;
779
+ for (let n of this) t = Math.min(t, e(n));
780
+ return t;
781
+ }
782
+ //#endregion
783
+ //#region src/operators/min-by.ts
784
+ function Ie(e) {
785
+ let t = this[Symbol.iterator](), n = t.next();
786
+ if (n.done) throw Error("Sequence contains no elements.");
787
+ let r = n.value, i = e(r);
788
+ for (let n = t.next(); !n.done; n = t.next()) {
789
+ let t = e(n.value);
790
+ u(t, i) < 0 && (r = n.value, i = t);
791
+ }
792
+ return r;
793
+ }
794
+ //#endregion
795
+ //#region src/operators/of-type.ts
796
+ function Le(e) {
797
+ let t = this;
798
+ return i(function* () {
799
+ for (let n of t) {
800
+ let t;
801
+ t = e === Number ? typeof n == "number" : e === String ? typeof n == "string" : e === Boolean ? typeof n == "boolean" : typeof e == "function" && n instanceof e, t && (yield n);
802
+ }
803
+ });
804
+ }
805
+ //#endregion
806
+ //#region src/operators/order-by.ts
807
+ function Re(e, t = u) {
808
+ return new n(this, [{
809
+ keySelector: e,
810
+ comparer: t,
811
+ descending: !1
812
+ }]);
813
+ }
814
+ //#endregion
815
+ //#region src/operators/order-by-descending.ts
816
+ function ze(e, t = u) {
817
+ return new n(this, [{
818
+ keySelector: e,
819
+ comparer: t,
820
+ descending: !0
821
+ }]);
822
+ }
823
+ //#endregion
824
+ //#region src/operators/page.ts
825
+ function Be(e, t) {
826
+ let n = typeof e == "number" ? e : e.pageNumber, r = typeof e == "number" ? t : e.pageSize;
827
+ return this.skip(Math.max(0, n - 1) * r).take(r);
828
+ }
829
+ //#endregion
830
+ //#region src/operators/pairwise.ts
831
+ function Ve(e) {
832
+ let t = this;
833
+ return i(function* () {
834
+ let n = !1, r;
835
+ for (let i of t) n && (yield e(r, i)), r = i, n = !0;
836
+ });
837
+ }
838
+ //#endregion
839
+ //#region src/operators/partition-by.ts
840
+ function He(e, t = l, n = void 0, r = l) {
841
+ let a = this;
842
+ return i(function* () {
843
+ let i = !1, o, s, c = [], l = () => {
844
+ let e = new K(o, c);
845
+ return n ? n(o, e) : e;
846
+ };
847
+ for (let n of a) {
848
+ let a = e(n), u = r(a);
849
+ i && u !== s && (yield l(), c = []), (!i || u !== s) && (o = a, s = u, i = !0), c.push(t(n));
850
+ }
851
+ i && (yield l());
852
+ });
853
+ }
854
+ //#endregion
855
+ //#region src/operators/position.ts
856
+ function Ue() {
857
+ let e = this;
858
+ return i(function* () {
859
+ let t = e[Symbol.iterator](), n = t.next();
860
+ if (n.done) return;
861
+ let r = 0;
862
+ for (;;) {
863
+ let e = t.next();
864
+ if (yield {
865
+ index: r,
866
+ item: n.value,
867
+ isFirst: r === 0,
868
+ isLast: !!e.done
869
+ }, e.done) return;
870
+ n = e, r++;
871
+ }
872
+ });
873
+ }
874
+ //#endregion
875
+ //#region src/operators/prepend.ts
876
+ function We(e) {
877
+ let t = this;
878
+ return i(function* () {
879
+ yield e, yield* t;
880
+ });
881
+ }
882
+ //#endregion
883
+ //#region src/operators/reverse.ts
884
+ function Ge() {
885
+ let e = this;
886
+ return i(function* () {
887
+ let t = [...e];
888
+ for (let e = t.length - 1; e >= 0; e--) yield t[e];
889
+ });
890
+ }
891
+ //#endregion
892
+ //#region src/operators/right-join.ts
893
+ function Ke(e, t, n, r, a = l) {
894
+ let o = this;
895
+ return i(function* () {
896
+ let i = /* @__PURE__ */ new Map();
897
+ for (let e of o) {
898
+ let n = a(t(e)), r = i.get(n);
899
+ r ? r.push(e) : i.set(n, [e]);
900
+ }
901
+ for (let t of y(e)) {
902
+ let e = i.get(a(n(t)));
903
+ if (e) for (let n of e) yield r(n, t);
904
+ else yield r(null, t);
905
+ }
906
+ });
907
+ }
908
+ //#endregion
909
+ //#region src/operators/scan.ts
910
+ function qe(e, t) {
911
+ let n = this;
912
+ return i(function* () {
913
+ if (t) {
914
+ let r = e;
915
+ yield r;
916
+ for (let e of n) r = t(r, e), yield r;
917
+ return;
918
+ }
919
+ let r = e, i = !1, a;
920
+ for (let e of n) a = i ? r(a, e) : e, i = !0, yield a;
921
+ });
922
+ }
923
+ //#endregion
924
+ //#region src/operators/select.ts
925
+ function Je(e) {
926
+ let t = this;
927
+ return i(function* () {
928
+ let n = 0;
929
+ for (let r of t) yield e(r, n++);
930
+ });
931
+ }
932
+ //#endregion
933
+ //#region src/operators/select-many.ts
934
+ function Ye(e, t) {
935
+ let n = this;
936
+ return i(function* () {
937
+ let r = 0;
938
+ for (let i of n) for (let n of y(e(i, r++))) yield t ? t(i, n) : n;
939
+ });
940
+ }
941
+ //#endregion
942
+ //#region src/operators/sequence-equal.ts
943
+ function Xe(e, t = l) {
944
+ let n = this[Symbol.iterator](), r = y(e)[Symbol.iterator]();
945
+ for (;;) {
946
+ let e = n.next(), i = r.next();
947
+ if (e.done || i.done) return !!e.done == !!i.done;
948
+ if (t(e.value) !== t(i.value)) return !1;
949
+ }
950
+ }
951
+ //#endregion
952
+ //#region src/core/shared-enumerable.ts
953
+ var Ze = class extends t {
954
+ constructor(e) {
955
+ let t = { next: () => ({
956
+ done: !0,
957
+ value: void 0
958
+ }) };
959
+ super(() => ({ next: () => t.next() })), this.disposed = !1, this.sourceIterator = e[Symbol.iterator](), t.next = () => this.disposed ? {
960
+ done: !0,
961
+ value: void 0
962
+ } : this.sourceIterator.next();
963
+ }
964
+ dispose() {
965
+ this.disposed || (this.disposed = !0, this.sourceIterator.return?.());
966
+ }
967
+ };
968
+ //#endregion
969
+ //#region src/operators/share.ts
970
+ function Qe() {
971
+ return new Ze(this);
972
+ }
973
+ //#endregion
974
+ //#region src/operators/shuffle.ts
975
+ function $e() {
976
+ let e = this;
977
+ return i(function* () {
978
+ let t = [...e];
979
+ for (let e = t.length - 1; e > 0; e--) {
980
+ let n = Math.floor(Math.random() * (e + 1));
981
+ [t[e], t[n]] = [t[n], t[e]];
982
+ }
983
+ yield* t;
984
+ });
985
+ }
986
+ //#endregion
987
+ //#region src/operators/single.ts
988
+ function et(e) {
989
+ let t = !1, n, r = 0;
990
+ for (let i of this) if (!(e && !e(i, r++))) {
991
+ if (t) throw Error("Sequence contains more than one matching element.");
992
+ t = !0, n = i;
993
+ }
994
+ if (!t) throw Error("Sequence contains no matching element.");
995
+ return n;
996
+ }
997
+ //#endregion
998
+ //#region src/operators/single-or-default.ts
999
+ function tt(e, t) {
1000
+ let n = typeof e == "function" ? e : void 0, r = n ? t : e, i = !1, a, o = 0;
1001
+ for (let e of this) if (!(n && !n(e, o++))) {
1002
+ if (i) throw Error("Sequence contains more than one matching element.");
1003
+ i = !0, a = e;
1004
+ }
1005
+ return i ? a : r;
1006
+ }
1007
+ //#endregion
1008
+ //#region src/operators/skip.ts
1009
+ function nt(e) {
1010
+ let t = this;
1011
+ return i(function* () {
1012
+ let n = 0;
1013
+ for (let r of t) n++ >= e && (yield r);
1014
+ });
1015
+ }
1016
+ //#endregion
1017
+ //#region src/operators/take-except-last.ts
1018
+ function q(e = 1) {
1019
+ let t = this;
1020
+ return i(function* () {
1021
+ if (e <= 0) {
1022
+ yield* t;
1023
+ return;
1024
+ }
1025
+ let n = [];
1026
+ for (let r of t) n.push(r), n.length > e && (yield n.shift());
1027
+ });
1028
+ }
1029
+ //#endregion
1030
+ //#region src/operators/skip-last.ts
1031
+ function rt(e) {
1032
+ return q.call(this, e);
1033
+ }
1034
+ //#endregion
1035
+ //#region src/operators/skip-while.ts
1036
+ function it(e) {
1037
+ let t = this;
1038
+ return i(function* () {
1039
+ let n = !1, r = 0;
1040
+ for (let i of t) !n && !e(i, r++) && (n = !0), n && (yield i);
1041
+ });
1042
+ }
1043
+ //#endregion
1044
+ //#region src/operators/sum.ts
1045
+ function at(e = Number) {
1046
+ let t = 0;
1047
+ for (let n of this) t += e(n);
1048
+ return t;
1049
+ }
1050
+ //#endregion
1051
+ //#region src/operators/take.ts
1052
+ function ot(e) {
1053
+ let t = this;
1054
+ return i(function* () {
1055
+ if (e <= 0) return;
1056
+ let n = 0;
1057
+ for (let r of t) if (yield r, ++n >= e) return;
1058
+ });
1059
+ }
1060
+ //#endregion
1061
+ //#region src/operators/take-from-last.ts
1062
+ function J(e) {
1063
+ let t = this;
1064
+ return i(function* () {
1065
+ if (e <= 0) return;
1066
+ let n = [];
1067
+ for (let r of t) n.push(r), n.length > e && n.shift();
1068
+ yield* n;
1069
+ });
1070
+ }
1071
+ //#endregion
1072
+ //#region src/operators/take-last.ts
1073
+ function st(e) {
1074
+ return J.call(this, e);
1075
+ }
1076
+ //#endregion
1077
+ //#region src/operators/take-while.ts
1078
+ function ct(e) {
1079
+ let t = this;
1080
+ return i(function* () {
1081
+ let n = 0;
1082
+ for (let r of t) {
1083
+ if (!e(r, n++)) return;
1084
+ yield r;
1085
+ }
1086
+ });
1087
+ }
1088
+ //#endregion
1089
+ //#region src/operators/then-by.ts
1090
+ function lt(e, t) {
1091
+ return this.createOrderedEnumerable(e, t, !1);
1092
+ }
1093
+ //#endregion
1094
+ //#region src/operators/then-by-descending.ts
1095
+ function ut(e, t) {
1096
+ return this.createOrderedEnumerable(e, t, !0);
1097
+ }
1098
+ //#endregion
1099
+ //#region src/operators/to-array.ts
1100
+ function dt() {
1101
+ return [...this];
1102
+ }
1103
+ //#endregion
1104
+ //#region src/core/dictionary.ts
1105
+ var ft = class {
1106
+ constructor(e = l) {
1107
+ this.compareSelector = e, this.entries = /* @__PURE__ */ new Map();
1108
+ }
1109
+ add(e, t) {
1110
+ this.entries.set(this.compareSelector(e), {
1111
+ key: e,
1112
+ value: t
1113
+ });
1114
+ }
1115
+ get(e) {
1116
+ return this.entries.get(this.compareSelector(e))?.value;
1117
+ }
1118
+ set(e, t) {
1119
+ let n = this.compareSelector(e), r = this.entries.has(n);
1120
+ return this.entries.set(n, {
1121
+ key: e,
1122
+ value: t
1123
+ }), r;
1124
+ }
1125
+ contains(e) {
1126
+ return this.entries.has(this.compareSelector(e));
1127
+ }
1128
+ clear() {
1129
+ this.entries.clear();
1130
+ }
1131
+ remove(e) {
1132
+ this.entries.delete(this.compareSelector(e));
1133
+ }
1134
+ count() {
1135
+ return this.entries.size;
1136
+ }
1137
+ toEnumerable() {
1138
+ let e = this.entries;
1139
+ return i(function* () {
1140
+ for (let t of e.values()) yield {
1141
+ key: t.key,
1142
+ value: t.value
1143
+ };
1144
+ });
1145
+ }
1146
+ };
1147
+ //#endregion
1148
+ //#region src/operators/to-dictionary.ts
1149
+ function pt(e, t = l, n = l) {
1150
+ let r = new ft(n);
1151
+ for (let n of this) r.add(e(n), t(n));
1152
+ return r;
1153
+ }
1154
+ //#endregion
1155
+ //#region src/operators/to-joined-string.ts
1156
+ function mt(e = "", t) {
1157
+ return Array.from(this, (e, n) => t ? t(e, n) : e).join(e);
1158
+ }
1159
+ //#endregion
1160
+ //#region src/operators/to-json-string.ts
1161
+ function ht(e, t) {
1162
+ let n = Array.from(this);
1163
+ return JSON.stringify(n, e, t);
1164
+ }
1165
+ //#endregion
1166
+ //#region src/core/lookup.ts
1167
+ var gt = class {
1168
+ constructor(e = l) {
1169
+ this.compareSelector = e, this.entries = /* @__PURE__ */ new Map();
1170
+ }
1171
+ add(e, t) {
1172
+ let n = this.compareSelector(e), r = this.entries.get(n);
1173
+ r ? r.elements.push(t) : this.entries.set(n, {
1174
+ key: e,
1175
+ elements: [t]
1176
+ });
1177
+ }
1178
+ count() {
1179
+ return this.entries.size;
1180
+ }
1181
+ get(e) {
1182
+ return new K(e, this.entries.get(this.compareSelector(e))?.elements ?? []);
1183
+ }
1184
+ contains(e) {
1185
+ return this.entries.has(this.compareSelector(e));
1186
+ }
1187
+ toEnumerable() {
1188
+ let e = this.entries;
1189
+ return i(function* () {
1190
+ for (let t of e.values()) yield new K(t.key, t.elements);
1191
+ });
1192
+ }
1193
+ };
1194
+ //#endregion
1195
+ //#region src/operators/to-lookup.ts
1196
+ function _t(e, t = l, n = l) {
1197
+ let r = new gt(n);
1198
+ for (let n of this) r.add(e(n), t(n));
1199
+ return r;
1200
+ }
1201
+ //#endregion
1202
+ //#region src/operators/to-map.ts
1203
+ function vt(e, t) {
1204
+ let n = /* @__PURE__ */ new Map();
1205
+ for (let r of this) n.set(e(r), t(r));
1206
+ return n;
1207
+ }
1208
+ //#endregion
1209
+ //#region src/operators/to-object.ts
1210
+ function yt(e, t = l) {
1211
+ let n = {};
1212
+ for (let r of this) n[e(r)] = t(r);
1213
+ return n;
1214
+ }
1215
+ //#endregion
1216
+ //#region src/operators/to-set.ts
1217
+ function bt() {
1218
+ return new Set(this);
1219
+ }
1220
+ //#endregion
1221
+ //#region src/operators/trace.ts
1222
+ function xt(e = "Trace", t = l) {
1223
+ return this.doAction((n) => {
1224
+ console.log(`${e}:`, t(n));
1225
+ });
1226
+ }
1227
+ //#endregion
1228
+ //#region src/operators/traverse-breadth-first.ts
1229
+ function St(e, t = ((e) => e)) {
1230
+ let n = this;
1231
+ return i(function* () {
1232
+ let r = 0, i = n;
1233
+ for (;;) {
1234
+ let n = [], a = !1;
1235
+ for (let o of i) a = !0, yield t(o, r), n.push(...e(o));
1236
+ if (!a) return;
1237
+ i = n, r++;
1238
+ }
1239
+ });
1240
+ }
1241
+ //#endregion
1242
+ //#region src/operators/traverse-depth-first.ts
1243
+ function Ct(e, t = ((e) => e)) {
1244
+ let n = this;
1245
+ return i(function* () {
1246
+ function* r(n, i) {
1247
+ for (let a of n) yield t(a, i), yield* r(e(a), i + 1);
1248
+ }
1249
+ yield* r(n, 0);
1250
+ });
1251
+ }
1252
+ //#endregion
1253
+ //#region src/operators/union.ts
1254
+ function Y(e, t = l) {
1255
+ let n = this;
1256
+ return i(function* () {
1257
+ let r = /* @__PURE__ */ new Set();
1258
+ for (let i of [...n, ...y(e)]) {
1259
+ let e = t(i);
1260
+ r.has(e) || (r.add(e), yield i);
1261
+ }
1262
+ });
1263
+ }
1264
+ //#endregion
1265
+ //#region src/operators/union-by.ts
1266
+ function wt(e, t, n = l) {
1267
+ return Y.call(this, e, (e) => n(t(e)));
1268
+ }
1269
+ //#endregion
1270
+ //#region src/operators/weighted-sample.ts
1271
+ function Tt(e) {
1272
+ let t = this;
1273
+ return i(function* () {
1274
+ let n = Array.from(t), r = n.map((t) => Math.max(0, e(t))), i = r.reduce((e, t) => e + t, 0);
1275
+ if (!(i <= 0)) for (;;) {
1276
+ let e = Math.random() * i;
1277
+ for (let t = 0; t < n.length; t++) if (e -= r[t], e < 0) {
1278
+ yield n[t];
1279
+ break;
1280
+ }
1281
+ }
1282
+ });
1283
+ }
1284
+ //#endregion
1285
+ //#region src/operators/where.ts
1286
+ function Et(e) {
1287
+ let t = this;
1288
+ return i(function* () {
1289
+ let n = 0;
1290
+ for (let r of t) e(r, n++) && (yield r);
1291
+ });
1292
+ }
1293
+ //#endregion
1294
+ //#region src/operators/where-if.ts
1295
+ function Dt(e, t) {
1296
+ return e ? this.where(t) : this;
1297
+ }
1298
+ //#endregion
1299
+ //#region src/operators/with-neighbors.ts
1300
+ function Ot() {
1301
+ let e = this;
1302
+ return i(function* () {
1303
+ let t = e[Symbol.iterator](), n = t.next();
1304
+ if (n.done) return;
1305
+ let r = null;
1306
+ for (;;) {
1307
+ let e = t.next();
1308
+ if (yield {
1309
+ prev: r,
1310
+ item: n.value,
1311
+ next: e.done ? null : e.value
1312
+ }, e.done) return;
1313
+ r = n.value, n = e;
1314
+ }
1315
+ });
1316
+ }
1317
+ //#endregion
1318
+ //#region src/operators/zip.ts
1319
+ function kt(...e) {
1320
+ if (e.length < 2) throw TypeError("zip requires at least one sequence and a result selector.");
1321
+ let t = e[e.length - 1];
1322
+ if (typeof t != "function") throw TypeError("The final zip argument must be a function.");
1323
+ let n = [this, ...e.slice(0, -1)];
1324
+ return i(function* () {
1325
+ let e = n.map((e) => y(e)[Symbol.iterator]()), r = 0;
1326
+ for (;;) {
1327
+ let n = e.map((e) => e.next());
1328
+ if (n.some((e) => e.done)) return;
1329
+ let i = n.map((e) => e.value);
1330
+ yield t(...i, r++);
1331
+ }
1332
+ });
1333
+ }
1334
+ //#endregion
1335
+ //#region src/operators/operators.ts
1336
+ var X = {
1337
+ aggregate: g,
1338
+ aggregateBy: _,
1339
+ all: v,
1340
+ alternate: b,
1341
+ any: x,
1342
+ append: S,
1343
+ asEnumerable: C,
1344
+ average: w,
1345
+ buffer: T,
1346
+ cast: E,
1347
+ catchError: D,
1348
+ choose: O,
1349
+ chunk: k,
1350
+ concat: A,
1351
+ contains: j,
1352
+ count: M,
1353
+ countBy: N,
1354
+ createOrderedEnumerable: P,
1355
+ defaultIfEmpty: F,
1356
+ distinct: I,
1357
+ distinctBy: L,
1358
+ distinctUntilChanged: R,
1359
+ doAction: z,
1360
+ elementAt: B,
1361
+ elementAtOrDefault: V,
1362
+ except: H,
1363
+ exceptBy: U,
1364
+ finallyAction: W,
1365
+ first: G,
1366
+ firstOrDefault: le,
1367
+ flatten: ue,
1368
+ force: de,
1369
+ forEach: fe,
1370
+ groupBy: pe,
1371
+ groupJoin: me,
1372
+ index: he,
1373
+ indexOf: ge,
1374
+ insert: _e,
1375
+ intersect: ve,
1376
+ intersectBy: ye,
1377
+ isEmpty: be,
1378
+ join: xe,
1379
+ joinWith: Se,
1380
+ last: Ce,
1381
+ lastIndexOf: we,
1382
+ lastOrDefault: Te,
1383
+ leftJoin: Ee,
1384
+ letBind: De,
1385
+ log: Oe,
1386
+ map: ke,
1387
+ max: Ae,
1388
+ maxBy: je,
1389
+ memoize: Ne,
1390
+ merge: Pe,
1391
+ min: Fe,
1392
+ minBy: Ie,
1393
+ ofType: Le,
1394
+ orderBy: Re,
1395
+ orderByDescending: ze,
1396
+ page: Be,
1397
+ pairwise: Ve,
1398
+ partitionBy: He,
1399
+ position: Ue,
1400
+ prepend: We,
1401
+ reverse: Ge,
1402
+ rightJoin: Ke,
1403
+ scan: qe,
1404
+ select: Je,
1405
+ selectMany: Ye,
1406
+ sequenceEqual: Xe,
1407
+ share: Qe,
1408
+ shuffle: $e,
1409
+ single: et,
1410
+ singleOrDefault: tt,
1411
+ skip: nt,
1412
+ skipLast: rt,
1413
+ skipWhile: it,
1414
+ sum: at,
1415
+ take: ot,
1416
+ takeExceptLast: q,
1417
+ takeFromLast: J,
1418
+ takeLast: st,
1419
+ takeWhile: ct,
1420
+ thenBy: lt,
1421
+ thenByDescending: ut,
1422
+ toArray: dt,
1423
+ toDictionary: pt,
1424
+ toJoinedString: mt,
1425
+ toJSONString: ht,
1426
+ toLookup: _t,
1427
+ toMap: vt,
1428
+ toObject: yt,
1429
+ toSet: bt,
1430
+ trace: xt,
1431
+ traverseBreadthFirst: St,
1432
+ traverseDepthFirst: Ct,
1433
+ union: Y,
1434
+ unionBy: wt,
1435
+ weightedSample: Tt,
1436
+ where: Et,
1437
+ whereIf: Dt,
1438
+ withNeighbors: Ot,
1439
+ zip: kt
1440
+ };
1441
+ //#endregion
1442
+ //#region src/utils.ts
1443
+ function At(e) {
1444
+ if (e == null) return ((e) => e);
1445
+ if (typeof e != "function") throw TypeError("Lambda expressions must be functions.");
1446
+ return e;
1447
+ }
1448
+ function jt(e) {
1449
+ return r(() => {
1450
+ let t = e();
1451
+ return {
1452
+ next: () => t.moveNext() ? {
1453
+ done: !1,
1454
+ value: t.current()
1455
+ } : {
1456
+ done: !0,
1457
+ value: void 0
1458
+ },
1459
+ return: () => (t.dispose(), {
1460
+ done: !0,
1461
+ value: void 0
1462
+ })
1463
+ };
1464
+ });
1465
+ }
1466
+ function Mt(e, t, n) {
1467
+ let r = !1, i, a = !1, o = {
1468
+ yieldReturn(e) {
1469
+ return i = e, !0;
1470
+ },
1471
+ yieldBreak() {
1472
+ return a = !0, !1;
1473
+ }
1474
+ };
1475
+ return {
1476
+ current: () => i,
1477
+ moveNext: () => {
1478
+ if (a) return !1;
1479
+ r ||= (e(), !0);
1480
+ try {
1481
+ let e = t.call(o);
1482
+ return e || (n(), a = !0), e;
1483
+ } catch (e) {
1484
+ throw n(), a = !0, e;
1485
+ }
1486
+ },
1487
+ dispose: () => {
1488
+ a || n(), a = !0;
1489
+ }
1490
+ };
1491
+ }
1492
+ function Z(e) {
1493
+ if (typeof e != "function" || !e.prototype) throw TypeError("Expected a constructor function.");
1494
+ return e.prototype;
1495
+ }
1496
+ function Nt(t) {
1497
+ let n = Z(t);
1498
+ Object.prototype.hasOwnProperty.call(n, "getEnumerator") || Object.defineProperty(n, "getEnumerator", {
1499
+ configurable: !0,
1500
+ writable: !0,
1501
+ value() {
1502
+ return new e(this[Symbol.iterator]());
1503
+ }
1504
+ }), t === Array && !Object.prototype.hasOwnProperty.call(n, "getSource") && Object.defineProperty(n, "getSource", {
1505
+ configurable: !0,
1506
+ writable: !0,
1507
+ value() {
1508
+ return this;
1509
+ }
1510
+ });
1511
+ for (let [e, t] of Object.entries(X)) {
1512
+ let r = n[e] == null ? e : `${e}ByLinq`;
1513
+ n[r] !== t && Object.defineProperty(n, r, {
1514
+ configurable: !0,
1515
+ writable: !0,
1516
+ value: t
1517
+ });
1518
+ }
1519
+ }
1520
+ function Q(e) {
1521
+ let t = Z(e);
1522
+ Object.prototype.hasOwnProperty.call(t, "getEnumerator") && delete t.getEnumerator, e === Array && Object.prototype.hasOwnProperty.call(t, "getSource") && delete t.getSource;
1523
+ for (let [e, n] of Object.entries(X)) t[`${e}ByLinq`] === n ? delete t[`${e}ByLinq`] : t[e] === n && delete t[e];
1524
+ }
1525
+ var Pt = {
1526
+ createLambda: At,
1527
+ createEnumerable: jt,
1528
+ createEnumerator: Mt,
1529
+ extendTo: Nt,
1530
+ recallFrom: Q,
1531
+ hasNativeIteratorSupport: () => typeof Symbol == "function" && typeof Symbol.iterator == "symbol"
1532
+ };
1533
+ function Ft(e, t, n, r = !0, i = !0, a = !1) {
1534
+ return e == null || t == null || Object.prototype.hasOwnProperty.call(e, t) ? !1 : (Object.defineProperty(e, t, {
1535
+ value: n,
1536
+ writable: r,
1537
+ configurable: i,
1538
+ enumerable: a
1539
+ }), !0);
1540
+ }
1541
+ Object.assign(t.prototype, X), Object.assign(n.prototype, X);
1542
+ var $ = class {
1543
+ static {
1544
+ this.Utils = Pt;
1545
+ }
1546
+ static {
1547
+ this.choice = a;
1548
+ }
1549
+ static {
1550
+ this.cycle = o;
1551
+ }
1552
+ static {
1553
+ this.defer = s;
1554
+ }
1555
+ static {
1556
+ this.empty = c;
1557
+ }
1558
+ static {
1559
+ this.from = ee;
1560
+ }
1561
+ static {
1562
+ this.generate = p;
1563
+ }
1564
+ static {
1565
+ this.make = m;
1566
+ }
1567
+ static {
1568
+ this.matches = te;
1569
+ }
1570
+ static {
1571
+ this.range = h;
1572
+ }
1573
+ static {
1574
+ this.rangeDown = ne;
1575
+ }
1576
+ static {
1577
+ this.rangeTo = re;
1578
+ }
1579
+ static {
1580
+ this.repeat = ie;
1581
+ }
1582
+ static {
1583
+ this.repeatWithFinalize = ae;
1584
+ }
1585
+ static {
1586
+ this.toInfinity = oe;
1587
+ }
1588
+ static {
1589
+ this.toNegativeInfinity = se;
1590
+ }
1591
+ static {
1592
+ this.unfold = ce;
1593
+ }
1594
+ };
1595
+ Object.assign($.prototype, X);
1596
+ //#endregion
1597
+ export { Ft as n, $ as t };