reactronic 0.24.265 → 0.24.267
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.
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type
|
|
1
|
+
export type GetMergedItemKey<T = unknown> = (item: T) => string | undefined;
|
|
2
2
|
export type MergeListReader<T> = {
|
|
3
3
|
readonly isStrict: boolean;
|
|
4
4
|
readonly count: number;
|
|
@@ -24,12 +24,13 @@ export type MergeListReader<T> = {
|
|
|
24
24
|
};
|
|
25
25
|
export type MergedItem<T> = {
|
|
26
26
|
readonly instance: T;
|
|
27
|
+
readonly index: number;
|
|
27
28
|
readonly next?: MergedItem<T>;
|
|
28
29
|
readonly prev?: MergedItem<T>;
|
|
29
30
|
aux?: MergedItem<T>;
|
|
30
31
|
};
|
|
31
32
|
export declare class MergeList<T> implements MergeListReader<T> {
|
|
32
|
-
readonly getKey:
|
|
33
|
+
readonly getKey: GetMergedItemKey<T>;
|
|
33
34
|
private strict;
|
|
34
35
|
private map;
|
|
35
36
|
private tag;
|
|
@@ -38,7 +39,7 @@ export declare class MergeList<T> implements MergeListReader<T> {
|
|
|
38
39
|
private removed;
|
|
39
40
|
private lastNotFoundKey;
|
|
40
41
|
private strictNextItem?;
|
|
41
|
-
constructor(getKey:
|
|
42
|
+
constructor(getKey: GetMergedItemKey<T>, strict?: boolean);
|
|
42
43
|
get isStrict(): boolean;
|
|
43
44
|
set isStrict(value: boolean);
|
|
44
45
|
get count(): number;
|
|
@@ -56,7 +57,7 @@ export declare class MergeList<T> implements MergeListReader<T> {
|
|
|
56
57
|
endMerge(error?: unknown): void;
|
|
57
58
|
resetAddedAndRemovedLists(): void;
|
|
58
59
|
lastMergedItem(): MergedItem<T> | undefined;
|
|
59
|
-
items(): Generator<MergedItem<T>>;
|
|
60
|
+
items(onlyAfter?: MergedItem<T>): Generator<MergedItem<T>>;
|
|
60
61
|
addedItems(reset?: boolean): Generator<MergedItem<T>>;
|
|
61
62
|
removedItems(reset?: boolean): Generator<MergedItem<T>>;
|
|
62
63
|
isAdded(item: MergedItem<T>): boolean;
|
|
@@ -57,6 +57,7 @@ export class MergeList {
|
|
|
57
57
|
item.status = tag;
|
|
58
58
|
this.strictNextItem = item.next;
|
|
59
59
|
this.removed.exclude(item);
|
|
60
|
+
item.index = this.current.count;
|
|
60
61
|
this.current.include(item);
|
|
61
62
|
if (resolution)
|
|
62
63
|
resolution.isDuplicate = false;
|
|
@@ -79,10 +80,11 @@ export class MergeList {
|
|
|
79
80
|
tag = ~this.tag + 1;
|
|
80
81
|
this.tag = ~tag;
|
|
81
82
|
}
|
|
82
|
-
const item = new
|
|
83
|
+
const item = new MergedItemImpl(instance, tag);
|
|
83
84
|
this.map.set(key, item);
|
|
84
85
|
this.lastNotFoundKey = undefined;
|
|
85
86
|
this.strictNextItem = undefined;
|
|
87
|
+
item.index = this.current.count;
|
|
86
88
|
this.current.include(item);
|
|
87
89
|
this.added.aux(item);
|
|
88
90
|
return item;
|
|
@@ -145,8 +147,9 @@ export class MergeList {
|
|
|
145
147
|
lastMergedItem() {
|
|
146
148
|
return this.current.last;
|
|
147
149
|
}
|
|
148
|
-
*items() {
|
|
149
|
-
|
|
150
|
+
*items(onlyAfter) {
|
|
151
|
+
var _a;
|
|
152
|
+
let x = (_a = onlyAfter === null || onlyAfter === void 0 ? void 0 : onlyAfter.next) !== null && _a !== void 0 ? _a : this.current.first;
|
|
150
153
|
while (x !== undefined) {
|
|
151
154
|
const next = x.next;
|
|
152
155
|
yield x;
|
|
@@ -203,12 +206,13 @@ export class MergeList {
|
|
|
203
206
|
t.status = t.tag;
|
|
204
207
|
}
|
|
205
208
|
static createItem(instance) {
|
|
206
|
-
return new
|
|
209
|
+
return new MergedItemImpl(instance, 0);
|
|
207
210
|
}
|
|
208
211
|
}
|
|
209
|
-
class
|
|
212
|
+
class MergedItemImpl {
|
|
210
213
|
constructor(instance, tag) {
|
|
211
214
|
this.instance = instance;
|
|
215
|
+
this.index = -1;
|
|
212
216
|
this.tag = tag;
|
|
213
217
|
this.status = ~tag;
|
|
214
218
|
this.next = undefined;
|