@derivation/relational 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +23 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +31 -0
- package/dist/index.js.map +1 -0
- package/dist/log-change-input.d.ts +13 -0
- package/dist/log-change-input.d.ts.map +1 -0
- package/dist/log-change-input.js +26 -0
- package/dist/log-change-input.js.map +1 -0
- package/dist/reactive-log-source.d.ts +10 -0
- package/dist/reactive-log-source.d.ts.map +1 -0
- package/dist/reactive-log-source.js +19 -0
- package/dist/reactive-log-source.js.map +1 -0
- package/dist/reactive-log.d.ts +22 -0
- package/dist/reactive-log.d.ts.map +1 -0
- package/dist/reactive-log.js +73 -0
- package/dist/reactive-log.js.map +1 -0
- package/dist/reactive-map-source.d.ts +10 -0
- package/dist/reactive-map-source.d.ts.map +1 -0
- package/dist/reactive-map-source.js +19 -0
- package/dist/reactive-map-source.js.map +1 -0
- package/dist/reactive-map.d.ts +24 -0
- package/dist/reactive-map.d.ts.map +1 -0
- package/dist/reactive-map.js +59 -0
- package/dist/reactive-map.js.map +1 -0
- package/dist/reactive-set-source.d.ts +10 -0
- package/dist/reactive-set-source.d.ts.map +1 -0
- package/dist/reactive-set-source.js +19 -0
- package/dist/reactive-set-source.js.map +1 -0
- package/dist/reactive-set.d.ts +21 -0
- package/dist/reactive-set.d.ts.map +1 -0
- package/dist/reactive-set.js +58 -0
- package/dist/reactive-set.js.map +1 -0
- package/dist/rimbu-utils.d.ts +28 -0
- package/dist/rimbu-utils.d.ts.map +1 -0
- package/dist/rimbu-utils.js +46 -0
- package/dist/rimbu-utils.js.map +1 -0
- package/dist/test/reactive-log.test.d.ts +2 -0
- package/dist/test/reactive-log.test.d.ts.map +1 -0
- package/dist/test/reactive-log.test.js +228 -0
- package/dist/test/reactive-log.test.js.map +1 -0
- package/dist/test/reactive.test.d.ts +2 -0
- package/dist/test/reactive.test.d.ts.map +1 -0
- package/dist/test/reactive.test.js +240 -0
- package/dist/test/reactive.test.js.map +1 -0
- package/dist/test/z-map-set.test.d.ts +2 -0
- package/dist/test/z-map-set.test.d.ts.map +1 -0
- package/dist/test/z-map-set.test.js +251 -0
- package/dist/test/z-map-set.test.js.map +1 -0
- package/dist/tuple.d.ts +6 -0
- package/dist/tuple.d.ts.map +1 -0
- package/dist/tuple.js +5 -0
- package/dist/tuple.js.map +1 -0
- package/dist/z-map-change-input.d.ts +13 -0
- package/dist/z-map-change-input.d.ts.map +1 -0
- package/dist/z-map-change-input.js +26 -0
- package/dist/z-map-change-input.js.map +1 -0
- package/dist/z-map.d.ts +25 -0
- package/dist/z-map.d.ts.map +1 -0
- package/dist/z-map.js +161 -0
- package/dist/z-map.js.map +1 -0
- package/dist/z-set-change-input.d.ts +13 -0
- package/dist/z-set-change-input.d.ts.map +1 -0
- package/dist/z-set-change-input.js +26 -0
- package/dist/z-set-change-input.js.map +1 -0
- package/dist/z-set.d.ts +24 -0
- package/dist/z-set.d.ts.map +1 -0
- package/dist/z-set.js +148 -0
- package/dist/z-set.js.map +1 -0
- package/package.json +41 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { List } from "@rimbu/core";
|
|
2
|
+
import { Graph } from "derivation";
|
|
3
|
+
import { ReactiveMapSource } from "./reactive-map-source.js";
|
|
4
|
+
import { ReactiveSetSource } from "./reactive-set-source.js";
|
|
5
|
+
import { ReactiveLogSource } from "./reactive-log-source.js";
|
|
6
|
+
import { ZMap } from "./z-map.js";
|
|
7
|
+
import { ZSet } from "./z-set.js";
|
|
8
|
+
export { ZMap } from "./z-map.js";
|
|
9
|
+
export { ZSet } from "./z-set.js";
|
|
10
|
+
export { ReactiveMap } from "./reactive-map.js";
|
|
11
|
+
export { ReactiveSet } from "./reactive-set.js";
|
|
12
|
+
export { ReactiveMapSource } from "./reactive-map-source.js";
|
|
13
|
+
export { ReactiveSetSource } from "./reactive-set-source.js";
|
|
14
|
+
export { ReactiveLog } from "./reactive-log.js";
|
|
15
|
+
export { ReactiveLogSource } from "./reactive-log-source.js";
|
|
16
|
+
export { ZSetChangeInput } from "./z-set-change-input.js";
|
|
17
|
+
export { ZMapChangeInput } from "./z-map-change-input.js";
|
|
18
|
+
export { LogChangeInput } from "./log-change-input.js";
|
|
19
|
+
export { Tuple } from "./tuple.js";
|
|
20
|
+
export declare function inputMap<K, V>(graph: Graph, snapshot?: ZMap<K, V>): ReactiveMapSource<K, V>;
|
|
21
|
+
export declare function inputSet<T>(graph: Graph, snapshot?: ZSet<T>): ReactiveSetSource<T>;
|
|
22
|
+
export declare function inputLog<T>(graph: Graph, snapshot?: List<T>): ReactiveLogSource<T>;
|
|
23
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAGlC,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGnC,wBAAgB,QAAQ,CAAC,CAAC,EAAE,CAAC,EAC3B,KAAK,EAAE,KAAK,EACZ,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GACpB,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAEzB;AAED,wBAAgB,QAAQ,CAAC,CAAC,EACxB,KAAK,EAAE,KAAK,EACZ,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,GACjB,iBAAiB,CAAC,CAAC,CAAC,CAEtB;AAED,wBAAgB,QAAQ,CAAC,CAAC,EACxB,KAAK,EAAE,KAAK,EACZ,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,GACjB,iBAAiB,CAAC,CAAC,CAAC,CAEtB"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { List } from "@rimbu/core";
|
|
2
|
+
import { Graph } from "derivation";
|
|
3
|
+
import { ReactiveMapSource } from "./reactive-map-source.js";
|
|
4
|
+
import { ReactiveSetSource } from "./reactive-set-source.js";
|
|
5
|
+
import { ReactiveLogSource } from "./reactive-log-source.js";
|
|
6
|
+
import { ZMap } from "./z-map.js";
|
|
7
|
+
import { ZSet } from "./z-set.js";
|
|
8
|
+
// Re-export all types
|
|
9
|
+
export { ZMap } from "./z-map.js";
|
|
10
|
+
export { ZSet } from "./z-set.js";
|
|
11
|
+
export { ReactiveMap } from "./reactive-map.js";
|
|
12
|
+
export { ReactiveSet } from "./reactive-set.js";
|
|
13
|
+
export { ReactiveMapSource } from "./reactive-map-source.js";
|
|
14
|
+
export { ReactiveSetSource } from "./reactive-set-source.js";
|
|
15
|
+
export { ReactiveLog } from "./reactive-log.js";
|
|
16
|
+
export { ReactiveLogSource } from "./reactive-log-source.js";
|
|
17
|
+
export { ZSetChangeInput } from "./z-set-change-input.js";
|
|
18
|
+
export { ZMapChangeInput } from "./z-map-change-input.js";
|
|
19
|
+
export { LogChangeInput } from "./log-change-input.js";
|
|
20
|
+
export { Tuple } from "./tuple.js";
|
|
21
|
+
// Helper functions to create relational reactive values
|
|
22
|
+
export function inputMap(graph, snapshot) {
|
|
23
|
+
return new ReactiveMapSource(snapshot || new ZMap(), graph);
|
|
24
|
+
}
|
|
25
|
+
export function inputSet(graph, snapshot) {
|
|
26
|
+
return new ReactiveSetSource(snapshot || new ZSet(), graph);
|
|
27
|
+
}
|
|
28
|
+
export function inputLog(graph, snapshot) {
|
|
29
|
+
return new ReactiveLogSource(snapshot || List.empty(), graph);
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,sBAAsB;AACtB,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,wDAAwD;AACxD,MAAM,UAAU,QAAQ,CACtB,KAAY,EACZ,QAAqB;IAErB,OAAO,IAAI,iBAAiB,CAAO,QAAQ,IAAI,IAAI,IAAI,EAAQ,EAAE,KAAK,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,QAAQ,CACtB,KAAY,EACZ,QAAkB;IAElB,OAAO,IAAI,iBAAiB,CAAI,QAAQ,IAAI,IAAI,IAAI,EAAK,EAAE,KAAK,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,QAAQ,CACtB,KAAY,EACZ,QAAkB;IAElB,OAAO,IAAI,iBAAiB,CAAI,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAK,EAAE,KAAK,CAAC,CAAC;AACtE,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { List } from "@rimbu/core";
|
|
2
|
+
import { Graph, ReactiveValue } from "derivation";
|
|
3
|
+
export declare class LogChangeInput<T> extends ReactiveValue<List<T>> {
|
|
4
|
+
readonly graph: Graph;
|
|
5
|
+
private current;
|
|
6
|
+
private pending;
|
|
7
|
+
constructor(graph: Graph);
|
|
8
|
+
push(item: T): void;
|
|
9
|
+
pushAll(items: List<T>): void;
|
|
10
|
+
step(): void;
|
|
11
|
+
get value(): List<T>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=log-change-input.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log-change-input.d.ts","sourceRoot":"","sources":["../src/log-change-input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAElD,qBAAa,cAAc,CAAC,CAAC,CAAE,SAAQ,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aAI/B,KAAK,EAAE,KAAK;IAHxC,OAAO,CAAC,OAAO,CAAyB;IACxC,OAAO,CAAC,OAAO,CAAyB;gBAEZ,KAAK,EAAE,KAAK;IAKxC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI;IAInB,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI;IAI7B,IAAI,IAAI,IAAI;IAKZ,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAEnB;CACF"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { List } from "@rimbu/core";
|
|
2
|
+
import { Graph, ReactiveValue } from "derivation";
|
|
3
|
+
export class LogChangeInput extends ReactiveValue {
|
|
4
|
+
graph;
|
|
5
|
+
current = List.empty();
|
|
6
|
+
pending = List.empty();
|
|
7
|
+
constructor(graph) {
|
|
8
|
+
super();
|
|
9
|
+
this.graph = graph;
|
|
10
|
+
graph.addValue(this);
|
|
11
|
+
}
|
|
12
|
+
push(item) {
|
|
13
|
+
this.pending = this.pending.append(item);
|
|
14
|
+
}
|
|
15
|
+
pushAll(items) {
|
|
16
|
+
this.pending = this.pending.concat(items);
|
|
17
|
+
}
|
|
18
|
+
step() {
|
|
19
|
+
this.current = this.pending;
|
|
20
|
+
this.pending = List.empty();
|
|
21
|
+
}
|
|
22
|
+
get value() {
|
|
23
|
+
return this.current;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=log-change-input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log-change-input.js","sourceRoot":"","sources":["../src/log-change-input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAElD,MAAM,OAAO,cAAkB,SAAQ,aAAsB;IAI/B;IAHpB,OAAO,GAAY,IAAI,CAAC,KAAK,EAAE,CAAC;IAChC,OAAO,GAAY,IAAI,CAAC,KAAK,EAAE,CAAC;IAExC,YAA4B,KAAY;QACtC,KAAK,EAAE,CAAC;QADkB,UAAK,GAAL,KAAK,CAAO;QAEtC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAED,IAAI,CAAC,IAAO;QACV,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,CAAC,KAAc;QACpB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { List } from "@rimbu/core";
|
|
2
|
+
import { Graph } from "derivation";
|
|
3
|
+
import { ReactiveLog } from "./reactive-log.js";
|
|
4
|
+
export declare class ReactiveLogSource<T> extends ReactiveLog<T> {
|
|
5
|
+
private readonly input;
|
|
6
|
+
constructor(snapshot: List<T>, graph: Graph);
|
|
7
|
+
push(item: T): void;
|
|
8
|
+
pushAll(items: List<T>): void;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=reactive-log-source.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reactive-log-source.d.ts","sourceRoot":"","sources":["../src/reactive-log-source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,qBAAa,iBAAiB,CAAC,CAAC,CAAE,SAAQ,WAAW,CAAC,CAAC,CAAC;IACtD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoB;gBAE9B,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK;IAM3C,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI;IAInB,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI;CAG9B"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { List } from "@rimbu/core";
|
|
2
|
+
import { Graph } from "derivation";
|
|
3
|
+
import { LogChangeInput } from "./log-change-input.js";
|
|
4
|
+
import { ReactiveLog } from "./reactive-log.js";
|
|
5
|
+
export class ReactiveLogSource extends ReactiveLog {
|
|
6
|
+
input;
|
|
7
|
+
constructor(snapshot, graph) {
|
|
8
|
+
const input = new LogChangeInput(graph);
|
|
9
|
+
super(input, snapshot);
|
|
10
|
+
this.input = input;
|
|
11
|
+
}
|
|
12
|
+
push(item) {
|
|
13
|
+
this.input.push(item);
|
|
14
|
+
}
|
|
15
|
+
pushAll(items) {
|
|
16
|
+
this.input.pushAll(items);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=reactive-log-source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reactive-log-source.js","sourceRoot":"","sources":["../src/reactive-log-source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,OAAO,iBAAqB,SAAQ,WAAc;IACrC,KAAK,CAAoB;IAE1C,YAAY,QAAiB,EAAE,KAAY;QACzC,MAAM,KAAK,GAAG,IAAI,cAAc,CAAI,KAAK,CAAC,CAAC;QAC3C,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,IAAI,CAAC,IAAO;QACV,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,OAAO,CAAC,KAAc;QACpB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;CACF"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { List } from "@rimbu/core";
|
|
2
|
+
import { ReactiveValue } from "derivation";
|
|
3
|
+
import { ZSet } from "./z-set.js";
|
|
4
|
+
import { ReactiveSet } from "./reactive-set.js";
|
|
5
|
+
export declare class ReactiveLog<T> {
|
|
6
|
+
private readonly _changes;
|
|
7
|
+
private readonly _materialized;
|
|
8
|
+
private readonly _previousStep;
|
|
9
|
+
private readonly _length;
|
|
10
|
+
constructor(changes: ReactiveValue<List<T>>, snapshot?: List<T>);
|
|
11
|
+
get snapshot(): List<T>;
|
|
12
|
+
get previousSnapshot(): List<T>;
|
|
13
|
+
get changes(): ReactiveValue<List<T>>;
|
|
14
|
+
get materialized(): ReactiveValue<List<T>>;
|
|
15
|
+
get previousMaterialized(): ReactiveValue<List<T>>;
|
|
16
|
+
get length(): ReactiveValue<number>;
|
|
17
|
+
fold<S>(initial: S, reducer: (acc: S, item: T) => S): ReactiveValue<S>;
|
|
18
|
+
map<U>(f: (t: T) => U): ReactiveLog<U>;
|
|
19
|
+
filter(pred: (t: T) => boolean): ReactiveLog<T>;
|
|
20
|
+
toSet<S>(this: ReactiveLog<ZSet<S>>): ReactiveSet<S>;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=reactive-log.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reactive-log.d.ts","sourceRoot":"","sources":["../src/reactive-log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,qBAAa,WAAW,CAAC,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAClD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAyB;IACvD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAyB;IACvD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwB;gBAEpC,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IAQ/D,IAAI,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,CAEtB;IAED,IAAI,gBAAgB,IAAI,IAAI,CAAC,CAAC,CAAC,CAE9B;IAED,IAAI,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAEpC;IAED,IAAI,YAAY,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAEzC;IAED,IAAI,oBAAoB,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAEjD;IAED,IAAI,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC,CAElC;IAED,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC;IAetE,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;IAMtC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC;IAM/C,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;CAgBrD"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { List } from "@rimbu/core";
|
|
2
|
+
import { ReactiveValue } from "derivation";
|
|
3
|
+
import { ZSet } from "./z-set.js";
|
|
4
|
+
import { ReactiveSet } from "./reactive-set.js";
|
|
5
|
+
export class ReactiveLog {
|
|
6
|
+
_changes;
|
|
7
|
+
_materialized;
|
|
8
|
+
_previousStep;
|
|
9
|
+
_length;
|
|
10
|
+
constructor(changes, snapshot) {
|
|
11
|
+
snapshot = snapshot ?? List.empty();
|
|
12
|
+
this._changes = changes;
|
|
13
|
+
this._materialized = changes.accumulate(snapshot, (acc, x) => acc.concat(x));
|
|
14
|
+
this._previousStep = this._materialized.delay(snapshot);
|
|
15
|
+
this._length = changes.accumulate(snapshot.length, (acc, x) => acc + x.length);
|
|
16
|
+
}
|
|
17
|
+
get snapshot() {
|
|
18
|
+
return this._materialized.value;
|
|
19
|
+
}
|
|
20
|
+
get previousSnapshot() {
|
|
21
|
+
return this._previousStep.value;
|
|
22
|
+
}
|
|
23
|
+
get changes() {
|
|
24
|
+
return this._changes;
|
|
25
|
+
}
|
|
26
|
+
get materialized() {
|
|
27
|
+
return this._materialized;
|
|
28
|
+
}
|
|
29
|
+
get previousMaterialized() {
|
|
30
|
+
return this._previousStep;
|
|
31
|
+
}
|
|
32
|
+
get length() {
|
|
33
|
+
return this._length;
|
|
34
|
+
}
|
|
35
|
+
fold(initial, reducer) {
|
|
36
|
+
let snapshotState = initial;
|
|
37
|
+
for (const item of this._previousStep.value) {
|
|
38
|
+
snapshotState = reducer(snapshotState, item);
|
|
39
|
+
}
|
|
40
|
+
return this._changes.accumulate(snapshotState, (acc, items) => {
|
|
41
|
+
let result = acc;
|
|
42
|
+
for (const item of items) {
|
|
43
|
+
result = reducer(result, item);
|
|
44
|
+
}
|
|
45
|
+
return result;
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
map(f) {
|
|
49
|
+
const mappedChanges = this._changes.map((items) => items.map(f));
|
|
50
|
+
const mappedSnapshot = this._previousStep.value.map(f);
|
|
51
|
+
return new ReactiveLog(mappedChanges, mappedSnapshot);
|
|
52
|
+
}
|
|
53
|
+
filter(pred) {
|
|
54
|
+
const filteredChanges = this._changes.map((items) => items.filter(pred));
|
|
55
|
+
const filteredSnapshot = this._previousStep.value.filter(pred);
|
|
56
|
+
return new ReactiveLog(filteredChanges, filteredSnapshot);
|
|
57
|
+
}
|
|
58
|
+
toSet() {
|
|
59
|
+
const changes = this.changes.map((items) => {
|
|
60
|
+
let result = new ZSet();
|
|
61
|
+
for (const item of items) {
|
|
62
|
+
result = result.union(item);
|
|
63
|
+
}
|
|
64
|
+
return result;
|
|
65
|
+
});
|
|
66
|
+
let snapshot = new ZSet();
|
|
67
|
+
for (const item of this.previousSnapshot) {
|
|
68
|
+
snapshot = snapshot.union(item);
|
|
69
|
+
}
|
|
70
|
+
return new ReactiveSet(changes, snapshot);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=reactive-log.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reactive-log.js","sourceRoot":"","sources":["../src/reactive-log.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Graph } from "derivation";
|
|
2
|
+
import { ReactiveMap } from "./reactive-map.js";
|
|
3
|
+
import { ZMap } from "./z-map.js";
|
|
4
|
+
export declare class ReactiveMapSource<K, V> extends ReactiveMap<K, V> {
|
|
5
|
+
private readonly input;
|
|
6
|
+
constructor(snapshot: ZMap<K, V>, graph: Graph);
|
|
7
|
+
add(k1: K, k2: V, weight?: number): void;
|
|
8
|
+
push(set: ZMap<K, V>): void;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=reactive-map-source.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reactive-map-source.d.ts","sourceRoot":"","sources":["../src/reactive-map-source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,qBAAa,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAE,SAAQ,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwB;gBAElC,QAAQ,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK;IAM9C,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,SAAI,GAAG,IAAI;IAInC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI;CAG5B"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Graph } from "derivation";
|
|
2
|
+
import { ZMapChangeInput } from "./z-map-change-input.js";
|
|
3
|
+
import { ReactiveMap } from "./reactive-map.js";
|
|
4
|
+
import { ZMap } from "./z-map.js";
|
|
5
|
+
export class ReactiveMapSource extends ReactiveMap {
|
|
6
|
+
input;
|
|
7
|
+
constructor(snapshot, graph) {
|
|
8
|
+
const input = new ZMapChangeInput(graph);
|
|
9
|
+
super(input, snapshot);
|
|
10
|
+
this.input = input;
|
|
11
|
+
}
|
|
12
|
+
add(k1, k2, weight = 1) {
|
|
13
|
+
this.input.add(k1, k2, weight);
|
|
14
|
+
}
|
|
15
|
+
push(set) {
|
|
16
|
+
this.input.push(set);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=reactive-map-source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reactive-map-source.js","sourceRoot":"","sources":["../src/reactive-map-source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,MAAM,OAAO,iBAAwB,SAAQ,WAAiB;IAC3C,KAAK,CAAwB;IAE9C,YAAY,QAAoB,EAAE,KAAY;QAC5C,MAAM,KAAK,GAAG,IAAI,eAAe,CAAO,KAAK,CAAC,CAAC;QAC/C,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,GAAG,CAAC,EAAK,EAAE,EAAK,EAAE,MAAM,GAAG,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,CAAC,GAAe;QAClB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC;CACF"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ReactiveValue } from "derivation";
|
|
2
|
+
import { ZMap } from "./z-map.js";
|
|
3
|
+
import { ReactiveSet } from "./reactive-set.js";
|
|
4
|
+
import { Tuple } from "./tuple.js";
|
|
5
|
+
export declare class ReactiveMap<K, V> {
|
|
6
|
+
private readonly _materialized;
|
|
7
|
+
private readonly previousStep;
|
|
8
|
+
private readonly _changes;
|
|
9
|
+
constructor(changes: ReactiveValue<ZMap<K, V>>, snapshot?: ZMap<K, V>);
|
|
10
|
+
get previousSnapshot(): ZMap<K, V>;
|
|
11
|
+
get snapshot(): ZMap<K, V>;
|
|
12
|
+
get changes(): ReactiveValue<ZMap<K, V>>;
|
|
13
|
+
get materialized(): ReactiveValue<ZMap<K, V>>;
|
|
14
|
+
get previousMaterialized(): ReactiveValue<ZMap<K, V>>;
|
|
15
|
+
union(other: ReactiveMap<K, V>): ReactiveMap<K, V>;
|
|
16
|
+
join<V1>(other: ReactiveMap<K, V1>): ReactiveMap<K, Tuple<[V, V1]>>;
|
|
17
|
+
mapValues<V1>(func: (v: V) => V1): ReactiveMap<K, V1>;
|
|
18
|
+
flatten(): ReactiveSet<V>;
|
|
19
|
+
getConst(key: K): ReactiveSet<V>;
|
|
20
|
+
intersection(other: ReactiveMap<K, V>): ReactiveMap<K, V>;
|
|
21
|
+
difference(other: ReactiveMap<K, V>): ReactiveMap<K, V>;
|
|
22
|
+
filter(pred: (k: K, v: V) => boolean): ReactiveMap<K, V>;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=reactive-map.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reactive-map.d.ts","sourceRoot":"","sources":["../src/reactive-map.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,qBAAa,WAAW,CAAC,CAAC,EAAE,CAAC;IAC3B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA4B;IAC1D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA4B;IACzD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4B;gBAEzC,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;IAOrE,IAAI,gBAAgB,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAEjC;IAED,IAAI,QAAQ,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAEzB;IAED,IAAI,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAEvC;IAED,IAAI,YAAY,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAE5C;IAED,IAAI,oBAAoB,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAEpD;IAED,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC;IAOlD,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAcnE,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC;IAOrD,OAAO,IAAI,WAAW,CAAC,CAAC,CAAC;IAOzB,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;IAOhC,YAAY,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC;IAczD,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC;IAOvD,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,OAAO,GAAG,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC;CAMzD"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { ReactiveValue } from "derivation";
|
|
2
|
+
import { ZMap } from "./z-map.js";
|
|
3
|
+
import { ReactiveSet } from "./reactive-set.js";
|
|
4
|
+
import { Tuple } from "./tuple.js";
|
|
5
|
+
export class ReactiveMap {
|
|
6
|
+
_materialized;
|
|
7
|
+
previousStep;
|
|
8
|
+
_changes;
|
|
9
|
+
constructor(changes, snapshot) {
|
|
10
|
+
snapshot = snapshot ?? new ZMap();
|
|
11
|
+
this._changes = changes;
|
|
12
|
+
this._materialized = changes.accumulate(snapshot, (acc, x) => acc.union(x));
|
|
13
|
+
this.previousStep = this._materialized.delay(snapshot);
|
|
14
|
+
}
|
|
15
|
+
get previousSnapshot() {
|
|
16
|
+
return this.previousStep.value;
|
|
17
|
+
}
|
|
18
|
+
get snapshot() {
|
|
19
|
+
return this._materialized.value;
|
|
20
|
+
}
|
|
21
|
+
get changes() {
|
|
22
|
+
return this._changes;
|
|
23
|
+
}
|
|
24
|
+
get materialized() {
|
|
25
|
+
return this._materialized;
|
|
26
|
+
}
|
|
27
|
+
get previousMaterialized() {
|
|
28
|
+
return this.previousStep;
|
|
29
|
+
}
|
|
30
|
+
union(other) {
|
|
31
|
+
return new ReactiveMap(this._changes.zip(other._changes, (x, y) => x.union(y)), this.previousSnapshot.union(other.previousSnapshot));
|
|
32
|
+
}
|
|
33
|
+
join(other) {
|
|
34
|
+
return new ReactiveMap(this.changes.zip3(this.previousMaterialized, other.changes, other.previousMaterialized, (tC, tM, oC, oM) => {
|
|
35
|
+
return tC.join(oM).union(tM.join(oC)).union(tC.join(oC));
|
|
36
|
+
}), this.previousSnapshot.join(other.previousSnapshot));
|
|
37
|
+
}
|
|
38
|
+
mapValues(func) {
|
|
39
|
+
return new ReactiveMap(this._changes.map((x) => x.mapValues(func)), this.previousSnapshot.mapValues(func));
|
|
40
|
+
}
|
|
41
|
+
flatten() {
|
|
42
|
+
return new ReactiveSet(this._changes.map((x) => x.flatten()), this.previousSnapshot.flatten());
|
|
43
|
+
}
|
|
44
|
+
getConst(key) {
|
|
45
|
+
return new ReactiveSet(this._changes.map((x) => x.get(key)), this.previousSnapshot.get(key));
|
|
46
|
+
}
|
|
47
|
+
intersection(other) {
|
|
48
|
+
return new ReactiveMap(this.changes.zip3(this.previousMaterialized, other.changes, other.previousMaterialized, (tC, tM, oC, oM) => {
|
|
49
|
+
return tC.intersection(oM).union(tM.intersection(oC)).union(tC.intersection(oC));
|
|
50
|
+
}), this.previousSnapshot.intersection(other.previousSnapshot));
|
|
51
|
+
}
|
|
52
|
+
difference(other) {
|
|
53
|
+
return new ReactiveMap(this._changes.zip(other._changes, (x, y) => x.difference(y)), this.previousSnapshot.difference(other.previousSnapshot));
|
|
54
|
+
}
|
|
55
|
+
filter(pred) {
|
|
56
|
+
return new ReactiveMap(this._changes.map((x) => x.filter(pred)), this.previousSnapshot.filter(pred));
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=reactive-map.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reactive-map.js","sourceRoot":"","sources":["../src/reactive-map.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Graph } from "derivation";
|
|
2
|
+
import { ReactiveSet } from "./reactive-set.js";
|
|
3
|
+
import { ZSet } from "./z-set.js";
|
|
4
|
+
export declare class ReactiveSetSource<K> extends ReactiveSet<K> {
|
|
5
|
+
private readonly input;
|
|
6
|
+
constructor(snapshot: ZSet<K>, graph: Graph);
|
|
7
|
+
add(k: K, weight?: number): void;
|
|
8
|
+
push(set: ZSet<K>): void;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=reactive-set-source.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reactive-set-source.d.ts","sourceRoot":"","sources":["../src/reactive-set-source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,qBAAa,iBAAiB,CAAC,CAAC,CAAE,SAAQ,WAAW,CAAC,CAAC,CAAC;IACtD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqB;gBAE/B,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK;IAM3C,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,SAAI,GAAG,IAAI;IAI3B,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI;CAGzB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Graph } from "derivation";
|
|
2
|
+
import { ZSetChangeInput } from "./z-set-change-input.js";
|
|
3
|
+
import { ReactiveSet } from "./reactive-set.js";
|
|
4
|
+
import { ZSet } from "./z-set.js";
|
|
5
|
+
export class ReactiveSetSource extends ReactiveSet {
|
|
6
|
+
input;
|
|
7
|
+
constructor(snapshot, graph) {
|
|
8
|
+
const input = new ZSetChangeInput(graph);
|
|
9
|
+
super(input, snapshot);
|
|
10
|
+
this.input = input;
|
|
11
|
+
}
|
|
12
|
+
add(k, weight = 1) {
|
|
13
|
+
this.input.add(k, weight);
|
|
14
|
+
}
|
|
15
|
+
push(set) {
|
|
16
|
+
this.input.push(set);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=reactive-set-source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reactive-set-source.js","sourceRoot":"","sources":["../src/reactive-set-source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,MAAM,OAAO,iBAAqB,SAAQ,WAAc;IACrC,KAAK,CAAqB;IAE3C,YAAY,QAAiB,EAAE,KAAY;QACzC,MAAM,KAAK,GAAG,IAAI,eAAe,CAAI,KAAK,CAAC,CAAC;QAC5C,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,GAAG,CAAC,CAAI,EAAE,MAAM,GAAG,CAAC;QAClB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED,IAAI,CAAC,GAAY;QACf,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC;CACF"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ReactiveValue } from "derivation";
|
|
2
|
+
import { ZSet } from "./z-set.js";
|
|
3
|
+
import { ReactiveMap } from "./reactive-map.js";
|
|
4
|
+
export declare class ReactiveSet<T> {
|
|
5
|
+
private readonly previousStep;
|
|
6
|
+
private readonly _materialized;
|
|
7
|
+
private readonly _changes;
|
|
8
|
+
constructor(changes: ReactiveValue<ZSet<T>>, snapshot?: ZSet<T>);
|
|
9
|
+
get snapshot(): ZSet<T>;
|
|
10
|
+
get previousSnapshot(): ZSet<T>;
|
|
11
|
+
get changes(): ReactiveValue<ZSet<T>>;
|
|
12
|
+
get materialized(): ReactiveValue<ZSet<T>>;
|
|
13
|
+
get previousMaterialized(): ReactiveValue<ZSet<T>>;
|
|
14
|
+
groupBy<K>(func: (t: T) => K): ReactiveMap<K, T>;
|
|
15
|
+
join<TOther, TKey, TResult>(other: ReactiveSet<TOther>, thisKeySelector: (t: T) => TKey, otherKeySelector: (o: TOther) => TKey, resultSelector: (t: T, o: TOther) => TResult): ReactiveSet<TResult>;
|
|
16
|
+
union(other: ReactiveSet<T>): ReactiveSet<T>;
|
|
17
|
+
intersection(other: ReactiveSet<T>): ReactiveSet<T>;
|
|
18
|
+
difference(other: ReactiveSet<T>): ReactiveSet<T>;
|
|
19
|
+
filter(pred: (t: T) => boolean): ReactiveSet<T>;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=reactive-set.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reactive-set.d.ts","sourceRoot":"","sources":["../src/reactive-set.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,qBAAa,WAAW,CAAC,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAyB;IACtD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAyB;IACvD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyB;gBAEtC,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IAS/D,IAAI,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,CAEtB;IAED,IAAI,gBAAgB,IAAI,IAAI,CAAC,CAAC,CAAC,CAE9B;IAED,IAAI,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAEpC;IAED,IAAI,YAAY,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAEzC;IAED,IAAI,oBAAoB,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAEjD;IAED,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC;IAQhD,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EACxB,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,EAC1B,eAAe,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,EAC/B,gBAAgB,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,EACrC,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,KAAK,OAAO,GAC3C,WAAW,CAAC,OAAO,CAAC;IAOvB,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;IAO5C,YAAY,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;IAcnD,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;IAOjD,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC;CAMhD"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { ReactiveValue } from "derivation";
|
|
2
|
+
import { ZSet } from "./z-set.js";
|
|
3
|
+
import { ZMap } from "./z-map.js";
|
|
4
|
+
import { ReactiveMap } from "./reactive-map.js";
|
|
5
|
+
export class ReactiveSet {
|
|
6
|
+
previousStep;
|
|
7
|
+
_materialized;
|
|
8
|
+
_changes;
|
|
9
|
+
constructor(changes, snapshot) {
|
|
10
|
+
snapshot = snapshot ?? new ZSet();
|
|
11
|
+
this._changes = changes;
|
|
12
|
+
this._materialized = changes.accumulate(snapshot, (acc, x) => {
|
|
13
|
+
return acc.union(x);
|
|
14
|
+
});
|
|
15
|
+
this.previousStep = this.materialized.delay(snapshot);
|
|
16
|
+
}
|
|
17
|
+
get snapshot() {
|
|
18
|
+
return this.materialized.value;
|
|
19
|
+
}
|
|
20
|
+
get previousSnapshot() {
|
|
21
|
+
return this.previousStep.value;
|
|
22
|
+
}
|
|
23
|
+
get changes() {
|
|
24
|
+
return this._changes;
|
|
25
|
+
}
|
|
26
|
+
get materialized() {
|
|
27
|
+
return this._materialized;
|
|
28
|
+
}
|
|
29
|
+
get previousMaterialized() {
|
|
30
|
+
return this.previousStep;
|
|
31
|
+
}
|
|
32
|
+
groupBy(func) {
|
|
33
|
+
const snapshot = this.previousSnapshot.groupBy(func);
|
|
34
|
+
const changes = this._changes.map((x) => x.groupBy(func));
|
|
35
|
+
return new ReactiveMap(changes, snapshot);
|
|
36
|
+
}
|
|
37
|
+
join(other, thisKeySelector, otherKeySelector, resultSelector) {
|
|
38
|
+
return this.groupBy(thisKeySelector)
|
|
39
|
+
.join(other.groupBy(otherKeySelector))
|
|
40
|
+
.mapValues((row) => resultSelector(row.get(0), row.get(1)))
|
|
41
|
+
.flatten();
|
|
42
|
+
}
|
|
43
|
+
union(other) {
|
|
44
|
+
return new ReactiveSet(this._changes.zip(other._changes, (x, y) => x.union(y)), this.previousSnapshot.union(other.previousSnapshot));
|
|
45
|
+
}
|
|
46
|
+
intersection(other) {
|
|
47
|
+
return new ReactiveSet(this.changes.zip3(this.previousMaterialized, other.changes, other.previousMaterialized, (tC, tM, oC, oM) => {
|
|
48
|
+
return tC.intersection(oM).union(tM.intersection(oC)).union(tC.intersection(oC));
|
|
49
|
+
}), this.previousSnapshot.intersection(other.previousSnapshot));
|
|
50
|
+
}
|
|
51
|
+
difference(other) {
|
|
52
|
+
return new ReactiveSet(this._changes.zip(other._changes, (x, y) => x.difference(y)), this.previousSnapshot.difference(other.previousSnapshot));
|
|
53
|
+
}
|
|
54
|
+
filter(pred) {
|
|
55
|
+
return new ReactiveSet(this._changes.map((x) => x.filter(pred)), this.previousSnapshot.filter(pred));
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=reactive-set.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reactive-set.js","sourceRoot":"","sources":["../src/reactive-set.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Hasher, Eq, HashMap } from "@rimbu/core";
|
|
2
|
+
/**
|
|
3
|
+
* Default hasher for use with ZSet and ZMap
|
|
4
|
+
* Uses immutable.js's hash() function for consistent value-based hashing
|
|
5
|
+
*/
|
|
6
|
+
export declare const defaultHasher: Hasher<unknown>;
|
|
7
|
+
/**
|
|
8
|
+
* Default equality for use with ZSet and ZMap
|
|
9
|
+
* Uses immutable.js's is() function for consistent value-based equality
|
|
10
|
+
*/
|
|
11
|
+
export declare const defaultEq: Eq<unknown>;
|
|
12
|
+
/**
|
|
13
|
+
* Create a HashMap context using immutable.js's hash and equality
|
|
14
|
+
*/
|
|
15
|
+
export declare function createHashMapContext<K>(): HashMap.Context<K>;
|
|
16
|
+
/**
|
|
17
|
+
* Create an empty HashMap with immutable-based hash/equality
|
|
18
|
+
*/
|
|
19
|
+
export declare function emptyHashMap<K, V>(): HashMap<K, V>;
|
|
20
|
+
/**
|
|
21
|
+
* Create a HashMap from entries with immutable-based hash/equality
|
|
22
|
+
*/
|
|
23
|
+
export declare function hashMapFrom<K, V>(entries: Iterable<readonly [K, V]>): HashMap<K, V>;
|
|
24
|
+
/**
|
|
25
|
+
* Create a HashMap builder with immutable-based hash/equality
|
|
26
|
+
*/
|
|
27
|
+
export declare function hashMapBuilder<K, V>(): HashMap.Builder<K, V>;
|
|
28
|
+
//# sourceMappingURL=rimbu-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rimbu-utils.d.ts","sourceRoot":"","sources":["../src/rimbu-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,EAAE,EAAQ,OAAO,EAAE,MAAM,aAAa,CAAC;AAGxD;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,OAAO,CAGzC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,EAAE,CAAC,OAAO,CACxB,CAAC;AAEX;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,wBAKrC;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAGlD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,CAAC,EAC9B,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GACjC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAGf;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAG5D"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { Hasher, Eq, List, HashMap } from "@rimbu/core";
|
|
2
|
+
import { hash, is } from "immutable";
|
|
3
|
+
/**
|
|
4
|
+
* Default hasher for use with ZSet and ZMap
|
|
5
|
+
* Uses immutable.js's hash() function for consistent value-based hashing
|
|
6
|
+
*/
|
|
7
|
+
export const defaultHasher = {
|
|
8
|
+
isValid: (_v) => true,
|
|
9
|
+
hash: (value) => hash(value),
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Default equality for use with ZSet and ZMap
|
|
13
|
+
* Uses immutable.js's is() function for consistent value-based equality
|
|
14
|
+
*/
|
|
15
|
+
export const defaultEq = (a, b) => is(a, b);
|
|
16
|
+
/**
|
|
17
|
+
* Create a HashMap context using immutable.js's hash and equality
|
|
18
|
+
*/
|
|
19
|
+
export function createHashMapContext() {
|
|
20
|
+
return HashMap.createContext({
|
|
21
|
+
hasher: defaultHasher,
|
|
22
|
+
eq: defaultEq,
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Create an empty HashMap with immutable-based hash/equality
|
|
27
|
+
*/
|
|
28
|
+
export function emptyHashMap() {
|
|
29
|
+
const ctx = createHashMapContext();
|
|
30
|
+
return ctx.empty();
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Create a HashMap from entries with immutable-based hash/equality
|
|
34
|
+
*/
|
|
35
|
+
export function hashMapFrom(entries) {
|
|
36
|
+
const ctx = createHashMapContext();
|
|
37
|
+
return ctx.from(entries);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Create a HashMap builder with immutable-based hash/equality
|
|
41
|
+
*/
|
|
42
|
+
export function hashMapBuilder() {
|
|
43
|
+
const ctx = createHashMapContext();
|
|
44
|
+
return ctx.builder();
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=rimbu-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rimbu-utils.js","sourceRoot":"","sources":["../src/rimbu-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAErC;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAoB;IAC5C,OAAO,EAAE,CAAC,EAAE,EAAiB,EAAE,CAAC,IAAI;IACpC,IAAI,EAAE,CAAC,KAAc,EAAU,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;CAC9C,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAgB,CAAC,CAAU,EAAE,CAAU,EAAW,EAAE,CACxE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAEX;;GAEG;AACH,MAAM,UAAU,oBAAoB;IAClC,OAAO,OAAO,CAAC,aAAa,CAAI;QAC9B,MAAM,EAAE,aAA0B;QAClC,EAAE,EAAE,SAAkB;KACvB,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,GAAG,GAAG,oBAAoB,EAAK,CAAC;IACtC,OAAO,GAAG,CAAC,KAAK,EAAQ,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CACzB,OAAkC;IAElC,MAAM,GAAG,GAAG,oBAAoB,EAAK,CAAC;IACtC,OAAO,GAAG,CAAC,IAAI,CAAO,OAAO,CAAC,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc;IAC5B,MAAM,GAAG,GAAG,oBAAoB,EAAK,CAAC;IACtC,OAAO,GAAG,CAAC,OAAO,EAAQ,CAAC;AAC7B,CAAC"}
|