reactronic 0.24.267 → 0.24.270

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.
@@ -15,6 +15,7 @@ export declare abstract class ObservableMergeList<T> extends ObservableObject im
15
15
  beginMerge(): void;
16
16
  endMerge(error?: unknown): void;
17
17
  resetAddedAndRemovedLists(): void;
18
+ firstMergedItem(): MergedItem<T> | undefined;
18
19
  lastMergedItem(): MergedItem<T> | undefined;
19
20
  items(): Generator<MergedItem<T>>;
20
21
  addedItems(reset?: boolean): Generator<MergedItem<T>>;
@@ -13,6 +13,7 @@ export class ObservableMergeList extends ObservableObject {
13
13
  beginMerge() { this.impl.beginMerge(); }
14
14
  endMerge(error) { this.impl.endMerge(error); }
15
15
  resetAddedAndRemovedLists() { this.impl.resetAddedAndRemovedLists(); }
16
+ firstMergedItem() { return this.impl.firstMergedItem(); }
16
17
  lastMergedItem() { return this.impl.lastMergedItem(); }
17
18
  items() { return this.impl.items(); }
18
19
  addedItems(reset) { return this.impl.addedItems(reset); }
@@ -72,7 +72,7 @@ export type RxNodeDriver<E = unknown> = {
72
72
  destroy(node: RxNode<E>, isLeader: boolean): boolean;
73
73
  mount(node: RxNode<E>): void;
74
74
  update(node: RxNode<E>): void | Promise<void>;
75
- child(ownerNode: RxNode<E>, childDriver: RxNodeDriver<any>, childDeclaration?: RxNodeDecl<any>, childPreset?: RxNodeDecl<any>): void;
75
+ child(ownerNode: RxNode<E>, childDriver: RxNodeDriver<any>, childDeclaration?: RxNodeDecl<any>, childPreset?: RxNodeDecl<any>): MergedItem<RxNode> | undefined;
76
76
  };
77
77
  export type RxNodeContext<T extends Object = Object> = {
78
78
  value: T;
@@ -87,7 +87,7 @@ export declare abstract class BaseDriver<E = unknown> implements RxNodeDriver<E>
87
87
  destroy(node: RxNode<E>, isLeader: boolean): boolean;
88
88
  mount(node: RxNode<E>): void;
89
89
  update(node: RxNode<E>): void | Promise<void>;
90
- child(ownerNode: RxNode<E>, childDriver: RxNodeDriver<any>, childDeclaration?: RxNodeDecl<any>, childPreset?: RxNodeDecl<any>): void;
90
+ child(ownerNode: RxNode<E>, childDriver: RxNodeDriver<any>, childDeclaration?: RxNodeDecl<any>, childPreset?: RxNodeDecl<any>): MergedItem<RxNode> | undefined;
91
91
  }
92
92
  export declare class RxNodeVariable<T extends Object = Object> {
93
93
  readonly defaultValue: T | undefined;
@@ -36,7 +36,6 @@ export var Priority;
36
36
  })(Priority || (Priority = {}));
37
37
  export class RxNode {
38
38
  static declare(driver, declaration, preset) {
39
- var _a;
40
39
  let result;
41
40
  if (declaration)
42
41
  declaration.preset = preset;
@@ -45,14 +44,8 @@ export class RxNode {
45
44
  let key = declaration.key;
46
45
  const owner = gOwnSeat === null || gOwnSeat === void 0 ? void 0 : gOwnSeat.instance;
47
46
  if (owner) {
48
- owner.driver.child(owner, driver, declaration, preset);
49
- let existing = undefined;
47
+ let existing = owner.driver.child(owner, driver, declaration, preset);
50
48
  const children = owner.children;
51
- if (driver.isPartition) {
52
- const last = children.lastMergedItem();
53
- if (((_a = last === null || last === void 0 ? void 0 : last.instance) === null || _a === void 0 ? void 0 : _a.driver) === driver)
54
- existing = last;
55
- }
56
49
  existing !== null && existing !== void 0 ? existing : (existing = children.tryMergeAsExisting(key = key || generateKey(owner), undefined, "nested elements can be declared inside update function only"));
57
50
  if (existing) {
58
51
  result = existing.instance;
@@ -171,6 +164,7 @@ export class BaseDriver {
171
164
  invokeOnChangeViaPresetChain(node.element, node.declaration);
172
165
  }
173
166
  child(ownerNode, childDriver, childDeclaration, childPreset) {
167
+ return undefined;
174
168
  }
175
169
  }
176
170
  export class RxNodeVariable {
@@ -370,8 +364,8 @@ function runUpdateNestedNodesThenDo(error, action) {
370
364
  const childNode = child.instance;
371
365
  const isPart = childNode.driver.isPartition;
372
366
  const host = isPart ? owner : partition;
373
- const p = (_a = childNode.priority) !== null && _a !== void 0 ? _a : Priority.realtime;
374
367
  mounting = markToMountIfNecessary(mounting, host, child, children, sequential);
368
+ const p = (_a = childNode.priority) !== null && _a !== void 0 ? _a : Priority.realtime;
375
369
  if (p === Priority.realtime)
376
370
  triggerUpdateViaSeat(child);
377
371
  else if (p === Priority.normal)
@@ -13,8 +13,9 @@ export type MergeListReader<T> = {
13
13
  beginMerge(): void;
14
14
  endMerge(error?: unknown): void;
15
15
  resetAddedAndRemovedLists(): void;
16
+ firstMergedItem(): MergedItem<T> | undefined;
16
17
  lastMergedItem(): MergedItem<T> | undefined;
17
- items(): Generator<MergedItem<T>>;
18
+ items(onlyAfter?: MergedItem<T>): Generator<MergedItem<T>>;
18
19
  addedItems(reset?: boolean): Generator<MergedItem<T>>;
19
20
  removedItems(reset?: boolean): Generator<MergedItem<T>>;
20
21
  isAdded(item: MergedItem<T>): boolean;
@@ -56,6 +57,7 @@ export declare class MergeList<T> implements MergeListReader<T> {
56
57
  beginMerge(): void;
57
58
  endMerge(error?: unknown): void;
58
59
  resetAddedAndRemovedLists(): void;
60
+ firstMergedItem(): MergedItem<T> | undefined;
59
61
  lastMergedItem(): MergedItem<T> | undefined;
60
62
  items(onlyAfter?: MergedItem<T>): Generator<MergedItem<T>>;
61
63
  addedItems(reset?: boolean): Generator<MergedItem<T>>;
@@ -144,6 +144,9 @@ export class MergeList {
144
144
  this.removed.reset();
145
145
  this.added.reset();
146
146
  }
147
+ firstMergedItem() {
148
+ return this.current.first;
149
+ }
147
150
  lastMergedItem() {
148
151
  return this.current.last;
149
152
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "reactronic",
3
- "version": "0.24.267",
3
+ "version": "0.24.270",
4
4
  "description": "Reactronic - Transactional Reactive State Management",
5
5
  "publisher": "Nezaboodka Software",
6
6
  "license": "Apache-2.0",