@rs-x/state-manager 1.0.2 → 2.0.0-next.1

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 (3) hide show
  1. package/dist/index.d.ts +116 -42
  2. package/dist/index.js +772 -399
  3. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -61,17 +61,18 @@ var AbstractObserver = class {
61
61
  };
62
62
 
63
63
  // lib/grouped-change-subscriptions-for-context-manager.ts
64
- import { GuidKeyedInstanceFactory } from "@rs-x/core";
65
- var GroupedChangeSubscriptionsForContextManager = class extends GuidKeyedInstanceFactory {
64
+ import { GroupedKeyedInstanceFactory } from "@rs-x/core";
65
+ var GroupedChangeSubscriptionsForContextManager = class extends GroupedKeyedInstanceFactory {
66
66
  static {
67
67
  __name(this, "GroupedChangeSubscriptionsForContextManager");
68
68
  }
69
69
  _context;
70
70
  releaseContext;
71
71
  _errorLog;
72
+ _nextId = 0;
72
73
  _subscriptions = /* @__PURE__ */ new Map();
73
- constructor(_context, releaseContext, _errorLog, guidFactory) {
74
- super(guidFactory), this._context = _context, this.releaseContext = releaseContext, this._errorLog = _errorLog;
74
+ constructor(_context, releaseContext, _errorLog) {
75
+ super(), this._context = _context, this.releaseContext = releaseContext, this._errorLog = _errorLog;
75
76
  }
76
77
  get context() {
77
78
  return this._context;
@@ -108,25 +109,142 @@ var GroupedChangeSubscriptionsForContextManager = class extends GuidKeyedInstanc
108
109
  onReleased() {
109
110
  this.releaseContext();
110
111
  }
112
+ createUniqueId(_data) {
113
+ return this._nextId++;
114
+ }
111
115
  };
112
116
 
113
- // lib/index-watch-rule-registry/index-watch-rule.ts
114
- import { truePredicate } from "@rs-x/core";
117
+ // lib/index-watch-rule/index-watch-rule.ts
115
118
  var IndexWatchRule = class {
116
119
  static {
117
120
  __name(this, "IndexWatchRule");
118
121
  }
122
+ id;
119
123
  context;
120
124
  predicate;
121
- constructor(context, predicate) {
125
+ constructor(id, context, predicate) {
126
+ this.id = id;
122
127
  this.context = context;
123
128
  this.predicate = predicate;
124
129
  }
130
+ dispose() {
131
+ }
125
132
  test(index, target) {
126
133
  return this.predicate(index, target, this.context);
127
134
  }
128
135
  };
129
- var watchIndexRecursiveRule = new IndexWatchRule(void 0, truePredicate);
136
+
137
+ // lib/index-watch-rule/index-watch-rule.factory.ts
138
+ import { Injectable, KeyedInstanceFactory } from "@rs-x/core";
139
+ function _ts_decorate(decorators, target, key, desc) {
140
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
141
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
142
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
143
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
144
+ }
145
+ __name(_ts_decorate, "_ts_decorate");
146
+ function _ts_metadata(k, v) {
147
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
148
+ }
149
+ __name(_ts_metadata, "_ts_metadata");
150
+ var IndexWatchRule2 = class IndexWatchRule3 {
151
+ static {
152
+ __name(this, "IndexWatchRule");
153
+ }
154
+ id;
155
+ context;
156
+ _owner;
157
+ _index;
158
+ _isDisposed = false;
159
+ constructor(id, context, _owner, _index) {
160
+ this.id = id;
161
+ this.context = context;
162
+ this._owner = _owner;
163
+ this._index = _index;
164
+ }
165
+ dispose() {
166
+ if (this._isDisposed) {
167
+ return;
168
+ }
169
+ if (!this._owner.canDispose || this._owner.canDispose()) {
170
+ this._isDisposed = true;
171
+ }
172
+ this._owner.release();
173
+ }
174
+ test(index, target) {
175
+ return index === this._index && this.context === target;
176
+ }
177
+ };
178
+ var IndexWatchRuleFactoryForContext = class IndexWatchRuleFactoryForContext2 extends KeyedInstanceFactory {
179
+ static {
180
+ __name(this, "IndexWatchRuleFactoryForContext");
181
+ }
182
+ _context;
183
+ releaseContext;
184
+ constructor(_context, releaseContext) {
185
+ super(), this._context = _context, this.releaseContext = releaseContext;
186
+ }
187
+ getId(index) {
188
+ return this.createId(index);
189
+ }
190
+ createId(index) {
191
+ return index;
192
+ }
193
+ createInstance(index, id) {
194
+ return new IndexWatchRule2(id, this._context, {
195
+ canDispose: /* @__PURE__ */ __name(() => this.getReferenceCount(id) === 1, "canDispose"),
196
+ release: /* @__PURE__ */ __name(() => this.release(id), "release")
197
+ }, index);
198
+ }
199
+ onReleased() {
200
+ if (this.isEmpty) {
201
+ this.releaseContext();
202
+ }
203
+ }
204
+ };
205
+ var IndexWatchRuleManager = class IndexWatchRuleManager2 extends KeyedInstanceFactory {
206
+ static {
207
+ __name(this, "IndexWatchRuleManager");
208
+ }
209
+ constructor() {
210
+ super();
211
+ }
212
+ getId(context) {
213
+ return context;
214
+ }
215
+ createId(context) {
216
+ return context;
217
+ }
218
+ createInstance(context, id) {
219
+ return new IndexWatchRuleFactoryForContext(context, () => this.release(id));
220
+ }
221
+ };
222
+ var IndexWatchRuleFactory = class {
223
+ static {
224
+ __name(this, "IndexWatchRuleFactory");
225
+ }
226
+ _identifierIndexWatchRuleManager;
227
+ constructor() {
228
+ this._identifierIndexWatchRuleManager = new IndexWatchRuleManager();
229
+ }
230
+ create(context, index) {
231
+ return this._identifierIndexWatchRuleManager.createAndGetInstance(context).createAndGetInstance(index);
232
+ }
233
+ };
234
+ IndexWatchRuleFactory = _ts_decorate([
235
+ Injectable(),
236
+ _ts_metadata("design:type", Function),
237
+ _ts_metadata("design:paramtypes", [])
238
+ ], IndexWatchRuleFactory);
239
+
240
+ // lib/index-watch-rule/watch-index-recursive-rule.ts
241
+ import { emptyFunction, truePredicate } from "@rs-x/core";
242
+ var watchIndexRecursiveRule = {
243
+ id: "b95cf4e7-b6d3-475e-af41-fb78d0d58baa",
244
+ context: void 0,
245
+ dispose: emptyFunction,
246
+ test: truePredicate
247
+ };
130
248
 
131
249
  // lib/object-observer/factories/abstract-object-observer-proxy-pair.factory.ts
132
250
  import { truePredicate as truePredicate2 } from "@rs-x/core";
@@ -309,54 +427,56 @@ var AbstractObjectObserverProxyPairFactory = class {
309
427
  };
310
428
 
311
429
  // lib/object-observer/factories/array-observer-proxy-pair.factory.ts
312
- import { Inject, Injectable, RsXCoreInjectionTokens } from "@rs-x/core";
430
+ import { Inject, Injectable as Injectable2, RsXCoreInjectionTokens } from "@rs-x/core";
313
431
 
314
432
  // lib/rs-x-state-manager-injection-tokens.ts
315
433
  var RsXStateManagerInjectionTokens = {
316
- IArrayProxyFactory: Symbol("IArrayProxyFactory"),
317
- IMapProxyFactory: Symbol("IMapProxyFactory"),
318
- ISetProxyFactory: Symbol("ISetProxyFactory"),
319
- IDateProxyFactory: Symbol("IDateProxyFactory"),
320
- IPromiseProxyFactory: Symbol("IPromiseProxyFactory"),
321
- IObservableProxyFactory: Symbol("IObservableProxyFactory"),
322
- IObjectPropertyObserverProxyPairManager: Symbol("IObjectPropertyObserverProxyPairManager"),
323
- IPlainObjectObserverProxyPairFactory: Symbol("IPlainObjectObserverProxyPairFactory"),
324
- IDateObserverProxyPairFactory: Symbol("IDateObserverProxyPairFactory"),
325
- IArrayObserverProxyPairFactory: Symbol("IArrayObserverProxyPairFactory"),
326
- PromiseObserverProxyPairFactory: Symbol("PromiseObserverProxyPairFactory"),
327
- ObservableObserverProxyPairFactory: Symbol("ObservableObserverProxyPairFactory"),
328
- IMapObserverProxyPairFactory: Symbol("IMapObserverProxyPairFactory"),
329
- ISetObserverProxyPairFactory: Symbol("ISetObserverProxyPairFactory"),
330
- IDatePropertyObserverProxyPairFactory: Symbol("IDatePropertyObserverProxyPairFactory"),
331
- IObjectObserverProxyPairFactoryList: Symbol("IObjectObserverProxyPairFactoryList"),
332
- IObjectObserverProxyPairFactoryProvider: Symbol("IObjectObserverProxyPairFactoryProvider"),
333
- IObjectObserverProxyPairManager: Symbol("IObjectObserverProxyPairManager"),
334
- IObjectPropertyObserverManager: Symbol("IObjectPropertyObserverManager"),
335
- ICollectionItemObserverManager: Symbol("ICollectionItemObserverManager"),
336
- ISetItemObserverManager: Symbol("ISetItemObserverManager"),
337
- IDatePropertyObserverManager: Symbol("IDatePropertyObserverManager"),
338
- IPropertyObserverProxyPairFactoryList: Symbol("IPropertyObserverProxyPairFactoryList"),
339
- NonIterableObjectPropertyObserverProxyPairFactory: Symbol("NonIterableObjectPropertyObserverProxyPairFactory"),
340
- ICollectionItemObserverProxyPairFactory: Symbol("ICollectionItemObserverProxyPairFactory"),
341
- IObjectStateManager: Symbol("IObjectStateManager"),
342
- IPropertyObserverProxyPairFactoryProvider: Symbol("IPropertyObserverProxyPairFactoryProvider"),
343
- IPropertyObserverProxyPairFactoryProviderFactory: Symbol("IPropertyObserverProxyPairFactoryProviderFactory"),
344
- IObjectObserverProxyPairFactoryProviderFactory: Symbol("IObjectObserverProxyPairFactoryProviderFactory"),
345
- IStateManager: Symbol("IStateManager")
434
+ IArrayProxyFactory: /* @__PURE__ */ Symbol("IArrayProxyFactory"),
435
+ IMapProxyFactory: /* @__PURE__ */ Symbol("IMapProxyFactory"),
436
+ ISetProxyFactory: /* @__PURE__ */ Symbol("ISetProxyFactory"),
437
+ IDateProxyFactory: /* @__PURE__ */ Symbol("IDateProxyFactory"),
438
+ IPromiseProxyFactory: /* @__PURE__ */ Symbol("IPromiseProxyFactory"),
439
+ IObservableProxyFactory: /* @__PURE__ */ Symbol("IObservableProxyFactory"),
440
+ IObjectPropertyObserverProxyPairManager: /* @__PURE__ */ Symbol("IObjectPropertyObserverProxyPairManager"),
441
+ IPlainObjectObserverProxyPairFactory: /* @__PURE__ */ Symbol("IPlainObjectObserverProxyPairFactory"),
442
+ IDateObserverProxyPairFactory: /* @__PURE__ */ Symbol("IDateObserverProxyPairFactory"),
443
+ IArrayObserverProxyPairFactory: /* @__PURE__ */ Symbol("IArrayObserverProxyPairFactory"),
444
+ PromiseObserverProxyPairFactory: /* @__PURE__ */ Symbol("PromiseObserverProxyPairFactory"),
445
+ ObservableObserverProxyPairFactory: /* @__PURE__ */ Symbol("ObservableObserverProxyPairFactory"),
446
+ IMapObserverProxyPairFactory: /* @__PURE__ */ Symbol("IMapObserverProxyPairFactory"),
447
+ ISetObserverProxyPairFactory: /* @__PURE__ */ Symbol("ISetObserverProxyPairFactory"),
448
+ IDatePropertyObserverProxyPairFactory: /* @__PURE__ */ Symbol("IDatePropertyObserverProxyPairFactory"),
449
+ IObjectObserverProxyPairFactoryList: /* @__PURE__ */ Symbol("IObjectObserverProxyPairFactoryList"),
450
+ IObjectObserverProxyPairFactoryProvider: /* @__PURE__ */ Symbol("IObjectObserverProxyPairFactoryProvider"),
451
+ IObjectObserverProxyPairManager: /* @__PURE__ */ Symbol("IObjectObserverProxyPairManager"),
452
+ IObjectPropertyObserverManager: /* @__PURE__ */ Symbol("IObjectPropertyObserverManager"),
453
+ ICollectionItemObserverManager: /* @__PURE__ */ Symbol("ICollectionItemObserverManager"),
454
+ ISetItemObserverManager: /* @__PURE__ */ Symbol("ISetItemObserverManager"),
455
+ IDatePropertyObserverManager: /* @__PURE__ */ Symbol("IDatePropertyObserverManager"),
456
+ IPropertyObserverProxyPairFactoryList: /* @__PURE__ */ Symbol("IPropertyObserverProxyPairFactoryList"),
457
+ NonIterableObjectPropertyObserverProxyPairFactory: /* @__PURE__ */ Symbol("NonIterableObjectPropertyObserverProxyPairFactory"),
458
+ ICollectionItemObserverProxyPairFactory: /* @__PURE__ */ Symbol("ICollectionItemObserverProxyPairFactory"),
459
+ IObjectStateManager: /* @__PURE__ */ Symbol("IObjectStateManager"),
460
+ IPropertyObserverProxyPairFactoryProvider: /* @__PURE__ */ Symbol("IPropertyObserverProxyPairFactoryProvider"),
461
+ IPropertyObserverProxyPairFactoryProviderFactory: /* @__PURE__ */ Symbol("IPropertyObserverProxyPairFactoryProviderFactory"),
462
+ IObjectObserverProxyPairFactoryProviderFactory: /* @__PURE__ */ Symbol("IObjectObserverProxyPairFactoryProviderFactory"),
463
+ IStateManager: /* @__PURE__ */ Symbol("IStateManager"),
464
+ IWatchFactory: /* @__PURE__ */ Symbol("IWatchFactory"),
465
+ IIndexWatchRuleFactory: /* @__PURE__ */ Symbol("IIndexWatchRuleFactory")
346
466
  };
347
467
 
348
468
  // lib/object-observer/factories/array-observer-proxy-pair.factory.ts
349
- function _ts_decorate(decorators, target, key, desc) {
469
+ function _ts_decorate2(decorators, target, key, desc) {
350
470
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
351
471
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
352
472
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
353
473
  return c > 3 && r && Object.defineProperty(target, key, r), r;
354
474
  }
355
- __name(_ts_decorate, "_ts_decorate");
356
- function _ts_metadata(k, v) {
475
+ __name(_ts_decorate2, "_ts_decorate");
476
+ function _ts_metadata2(k, v) {
357
477
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
358
478
  }
359
- __name(_ts_metadata, "_ts_metadata");
479
+ __name(_ts_metadata2, "_ts_metadata");
360
480
  function _ts_param(paramIndex, decorator) {
361
481
  return function(target, key) {
362
482
  decorator(target, key, paramIndex);
@@ -380,14 +500,14 @@ var ArrayObserverProxyPairFactory = class extends AbstractObjectObserverProxyPai
380
500
  }).instance;
381
501
  }
382
502
  };
383
- ArrayObserverProxyPairFactory = _ts_decorate([
384
- Injectable(),
503
+ ArrayObserverProxyPairFactory = _ts_decorate2([
504
+ Injectable2(),
385
505
  _ts_param(0, Inject(RsXStateManagerInjectionTokens.IArrayProxyFactory)),
386
506
  _ts_param(1, Inject(RsXCoreInjectionTokens.IErrorLog)),
387
507
  _ts_param(2, Inject(RsXCoreInjectionTokens.IArrayIndexAccessor)),
388
508
  _ts_param(3, Inject(RsXStateManagerInjectionTokens.IObjectPropertyObserverProxyPairManager)),
389
- _ts_metadata("design:type", Function),
390
- _ts_metadata("design:paramtypes", [
509
+ _ts_metadata2("design:type", Function),
510
+ _ts_metadata2("design:paramtypes", [
391
511
  typeof IArrayProxyFactory === "undefined" ? Object : IArrayProxyFactory,
392
512
  typeof IErrorLog === "undefined" ? Object : IErrorLog,
393
513
  typeof IArrayIndexAccessor === "undefined" ? Object : IArrayIndexAccessor,
@@ -396,18 +516,18 @@ ArrayObserverProxyPairFactory = _ts_decorate([
396
516
  ], ArrayObserverProxyPairFactory);
397
517
 
398
518
  // lib/object-observer/factories/date-observer-proxy-pair.factory.ts
399
- import { Inject as Inject2, Injectable as Injectable2 } from "@rs-x/core";
400
- function _ts_decorate2(decorators, target, key, desc) {
519
+ import { Inject as Inject2, Injectable as Injectable3 } from "@rs-x/core";
520
+ function _ts_decorate3(decorators, target, key, desc) {
401
521
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
402
522
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
403
523
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
404
524
  return c > 3 && r && Object.defineProperty(target, key, r), r;
405
525
  }
406
- __name(_ts_decorate2, "_ts_decorate");
407
- function _ts_metadata2(k, v) {
526
+ __name(_ts_decorate3, "_ts_decorate");
527
+ function _ts_metadata3(k, v) {
408
528
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
409
529
  }
410
- __name(_ts_metadata2, "_ts_metadata");
530
+ __name(_ts_metadata3, "_ts_metadata");
411
531
  function _ts_param2(paramIndex, decorator) {
412
532
  return function(target, key) {
413
533
  decorator(target, key, paramIndex);
@@ -433,28 +553,28 @@ var DateObserverProxyPairFactory = class {
433
553
  return object instanceof Date;
434
554
  }
435
555
  };
436
- DateObserverProxyPairFactory = _ts_decorate2([
437
- Injectable2(),
556
+ DateObserverProxyPairFactory = _ts_decorate3([
557
+ Injectable3(),
438
558
  _ts_param2(0, Inject2(RsXStateManagerInjectionTokens.IDateProxyFactory)),
439
- _ts_metadata2("design:type", Function),
440
- _ts_metadata2("design:paramtypes", [
559
+ _ts_metadata3("design:type", Function),
560
+ _ts_metadata3("design:paramtypes", [
441
561
  typeof IDateProxyFactory === "undefined" ? Object : IDateProxyFactory
442
562
  ])
443
563
  ], DateObserverProxyPairFactory);
444
564
 
445
565
  // lib/object-observer/factories/map-observer-proxy-pair.factory.ts
446
- import { Inject as Inject3, Injectable as Injectable3, RsXCoreInjectionTokens as RsXCoreInjectionTokens2 } from "@rs-x/core";
447
- function _ts_decorate3(decorators, target, key, desc) {
566
+ import { Inject as Inject3, Injectable as Injectable4, RsXCoreInjectionTokens as RsXCoreInjectionTokens2 } from "@rs-x/core";
567
+ function _ts_decorate4(decorators, target, key, desc) {
448
568
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
449
569
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
450
570
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
451
571
  return c > 3 && r && Object.defineProperty(target, key, r), r;
452
572
  }
453
- __name(_ts_decorate3, "_ts_decorate");
454
- function _ts_metadata3(k, v) {
573
+ __name(_ts_decorate4, "_ts_decorate");
574
+ function _ts_metadata4(k, v) {
455
575
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
456
576
  }
457
- __name(_ts_metadata3, "_ts_metadata");
577
+ __name(_ts_metadata4, "_ts_metadata");
458
578
  function _ts_param3(paramIndex, decorator) {
459
579
  return function(target, key) {
460
580
  decorator(target, key, paramIndex);
@@ -478,14 +598,14 @@ var MapObserverProxyPairFactory = class extends AbstractObjectObserverProxyPairF
478
598
  }).instance;
479
599
  }
480
600
  };
481
- MapObserverProxyPairFactory = _ts_decorate3([
482
- Injectable3(),
601
+ MapObserverProxyPairFactory = _ts_decorate4([
602
+ Injectable4(),
483
603
  _ts_param3(0, Inject3(RsXStateManagerInjectionTokens.IMapProxyFactory)),
484
604
  _ts_param3(1, Inject3(RsXCoreInjectionTokens2.IErrorLog)),
485
605
  _ts_param3(2, Inject3(RsXCoreInjectionTokens2.IMapKeyAccessor)),
486
606
  _ts_param3(3, Inject3(RsXStateManagerInjectionTokens.IObjectPropertyObserverProxyPairManager)),
487
- _ts_metadata3("design:type", Function),
488
- _ts_metadata3("design:paramtypes", [
607
+ _ts_metadata4("design:type", Function),
608
+ _ts_metadata4("design:paramtypes", [
489
609
  typeof IMapProxyFactory === "undefined" ? Object : IMapProxyFactory,
490
610
  typeof IErrorLog === "undefined" ? Object : IErrorLog,
491
611
  typeof IMapKeyAccessor === "undefined" ? Object : IMapKeyAccessor,
@@ -495,18 +615,18 @@ MapObserverProxyPairFactory = _ts_decorate3([
495
615
 
496
616
  // lib/object-observer/factories/observable-observer-proxy-pair.factory.ts
497
617
  import { isObservable } from "rxjs";
498
- import { Inject as Inject4, Injectable as Injectable4 } from "@rs-x/core";
499
- function _ts_decorate4(decorators, target, key, desc) {
618
+ import { Inject as Inject4, Injectable as Injectable5 } from "@rs-x/core";
619
+ function _ts_decorate5(decorators, target, key, desc) {
500
620
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
501
621
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
502
622
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
503
623
  return c > 3 && r && Object.defineProperty(target, key, r), r;
504
624
  }
505
- __name(_ts_decorate4, "_ts_decorate");
506
- function _ts_metadata4(k, v) {
625
+ __name(_ts_decorate5, "_ts_decorate");
626
+ function _ts_metadata5(k, v) {
507
627
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
508
628
  }
509
- __name(_ts_metadata4, "_ts_metadata");
629
+ __name(_ts_metadata5, "_ts_metadata");
510
630
  function _ts_param4(paramIndex, decorator) {
511
631
  return function(target, key) {
512
632
  decorator(target, key, paramIndex);
@@ -532,28 +652,28 @@ var ObservableObserverProxyPairFactory = class {
532
652
  return isObservable(object);
533
653
  }
534
654
  };
535
- ObservableObserverProxyPairFactory = _ts_decorate4([
536
- Injectable4(),
655
+ ObservableObserverProxyPairFactory = _ts_decorate5([
656
+ Injectable5(),
537
657
  _ts_param4(0, Inject4(RsXStateManagerInjectionTokens.IObservableProxyFactory)),
538
- _ts_metadata4("design:type", Function),
539
- _ts_metadata4("design:paramtypes", [
658
+ _ts_metadata5("design:type", Function),
659
+ _ts_metadata5("design:paramtypes", [
540
660
  typeof IObservableProxyFactory === "undefined" ? Object : IObservableProxyFactory
541
661
  ])
542
662
  ], ObservableObserverProxyPairFactory);
543
663
 
544
664
  // lib/object-observer/factories/plain-object-observer-proxy-pair.factory.ts
545
- import { Inject as Inject5, Injectable as Injectable5, RsXCoreInjectionTokens as RsXCoreInjectionTokens3, truePredicate as truePredicate3, Type as Type3 } from "@rs-x/core";
546
- function _ts_decorate5(decorators, target, key, desc) {
665
+ import { Inject as Inject5, Injectable as Injectable6, RsXCoreInjectionTokens as RsXCoreInjectionTokens3, truePredicate as truePredicate3, Type as Type3 } from "@rs-x/core";
666
+ function _ts_decorate6(decorators, target, key, desc) {
547
667
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
548
668
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
549
669
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
550
670
  return c > 3 && r && Object.defineProperty(target, key, r), r;
551
671
  }
552
- __name(_ts_decorate5, "_ts_decorate");
553
- function _ts_metadata5(k, v) {
672
+ __name(_ts_decorate6, "_ts_decorate");
673
+ function _ts_metadata6(k, v) {
554
674
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
555
675
  }
556
- __name(_ts_metadata5, "_ts_metadata");
676
+ __name(_ts_metadata6, "_ts_metadata");
557
677
  function _ts_param5(paramIndex, decorator) {
558
678
  return function(target, key) {
559
679
  decorator(target, key, paramIndex);
@@ -595,13 +715,13 @@ var PlainObjectObserverProxyPairFactory = class extends AbstractObjectObserverPr
595
715
  };
596
716
  }
597
717
  };
598
- PlainObjectObserverProxyPairFactory = _ts_decorate5([
599
- Injectable5(),
718
+ PlainObjectObserverProxyPairFactory = _ts_decorate6([
719
+ Injectable6(),
600
720
  _ts_param5(0, Inject5(RsXCoreInjectionTokens3.IErrorLog)),
601
721
  _ts_param5(1, Inject5(RsXCoreInjectionTokens3.IPropertyValueAccessor)),
602
722
  _ts_param5(2, Inject5(RsXStateManagerInjectionTokens.IObjectPropertyObserverProxyPairManager)),
603
- _ts_metadata5("design:type", Function),
604
- _ts_metadata5("design:paramtypes", [
723
+ _ts_metadata6("design:type", Function),
724
+ _ts_metadata6("design:paramtypes", [
605
725
  typeof IErrorLog === "undefined" ? Object : IErrorLog,
606
726
  typeof IPropertyValueAccessor === "undefined" ? Object : IPropertyValueAccessor,
607
727
  typeof IObjectPropertyObserverProxyPairManager === "undefined" ? Object : IObjectPropertyObserverProxyPairManager
@@ -609,18 +729,18 @@ PlainObjectObserverProxyPairFactory = _ts_decorate5([
609
729
  ], PlainObjectObserverProxyPairFactory);
610
730
 
611
731
  // lib/object-observer/factories/promise-observer-proxy-pair.factory.ts
612
- import { Inject as Inject6, Injectable as Injectable6 } from "@rs-x/core";
613
- function _ts_decorate6(decorators, target, key, desc) {
732
+ import { Inject as Inject6, Injectable as Injectable7 } from "@rs-x/core";
733
+ function _ts_decorate7(decorators, target, key, desc) {
614
734
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
615
735
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
616
736
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
617
737
  return c > 3 && r && Object.defineProperty(target, key, r), r;
618
738
  }
619
- __name(_ts_decorate6, "_ts_decorate");
620
- function _ts_metadata6(k, v) {
739
+ __name(_ts_decorate7, "_ts_decorate");
740
+ function _ts_metadata7(k, v) {
621
741
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
622
742
  }
623
- __name(_ts_metadata6, "_ts_metadata");
743
+ __name(_ts_metadata7, "_ts_metadata");
624
744
  function _ts_param6(paramIndex, decorator) {
625
745
  return function(target, key) {
626
746
  decorator(target, key, paramIndex);
@@ -646,28 +766,28 @@ var PromiseObserverProxyPairFactory = class {
646
766
  return object instanceof Promise;
647
767
  }
648
768
  };
649
- PromiseObserverProxyPairFactory = _ts_decorate6([
650
- Injectable6(),
769
+ PromiseObserverProxyPairFactory = _ts_decorate7([
770
+ Injectable7(),
651
771
  _ts_param6(0, Inject6(RsXStateManagerInjectionTokens.IPromiseProxyFactory)),
652
- _ts_metadata6("design:type", Function),
653
- _ts_metadata6("design:paramtypes", [
772
+ _ts_metadata7("design:type", Function),
773
+ _ts_metadata7("design:paramtypes", [
654
774
  typeof IPromiseProxyFactory === "undefined" ? Object : IPromiseProxyFactory
655
775
  ])
656
776
  ], PromiseObserverProxyPairFactory);
657
777
 
658
778
  // lib/object-observer/factories/set-observer-proxy-pair.factory.ts
659
- import { Inject as Inject7, Injectable as Injectable7, RsXCoreInjectionTokens as RsXCoreInjectionTokens4 } from "@rs-x/core";
660
- function _ts_decorate7(decorators, target, key, desc) {
779
+ import { Inject as Inject7, Injectable as Injectable8, RsXCoreInjectionTokens as RsXCoreInjectionTokens4 } from "@rs-x/core";
780
+ function _ts_decorate8(decorators, target, key, desc) {
661
781
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
662
782
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
663
783
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
664
784
  return c > 3 && r && Object.defineProperty(target, key, r), r;
665
785
  }
666
- __name(_ts_decorate7, "_ts_decorate");
667
- function _ts_metadata7(k, v) {
786
+ __name(_ts_decorate8, "_ts_decorate");
787
+ function _ts_metadata8(k, v) {
668
788
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
669
789
  }
670
- __name(_ts_metadata7, "_ts_metadata");
790
+ __name(_ts_metadata8, "_ts_metadata");
671
791
  function _ts_param7(paramIndex, decorator) {
672
792
  return function(target, key) {
673
793
  decorator(target, key, paramIndex);
@@ -691,14 +811,14 @@ var SetObserverProxyPairFactory = class extends AbstractObjectObserverProxyPairF
691
811
  }).instance;
692
812
  }
693
813
  };
694
- SetObserverProxyPairFactory = _ts_decorate7([
695
- Injectable7(),
814
+ SetObserverProxyPairFactory = _ts_decorate8([
815
+ Injectable8(),
696
816
  _ts_param7(0, Inject7(RsXStateManagerInjectionTokens.ISetProxyFactory)),
697
817
  _ts_param7(1, Inject7(RsXCoreInjectionTokens4.IErrorLog)),
698
818
  _ts_param7(2, Inject7(RsXCoreInjectionTokens4.ISetKeyAccessor)),
699
819
  _ts_param7(3, Inject7(RsXStateManagerInjectionTokens.IObjectPropertyObserverProxyPairManager)),
700
- _ts_metadata7("design:type", Function),
701
- _ts_metadata7("design:paramtypes", [
820
+ _ts_metadata8("design:type", Function),
821
+ _ts_metadata8("design:paramtypes", [
702
822
  typeof ISetProxyFactory === "undefined" ? Object : ISetProxyFactory,
703
823
  typeof IErrorLog === "undefined" ? Object : IErrorLog,
704
824
  typeof ISetKeyAccessor === "undefined" ? Object : ISetKeyAccessor,
@@ -707,18 +827,18 @@ SetObserverProxyPairFactory = _ts_decorate7([
707
827
  ], SetObserverProxyPairFactory);
708
828
 
709
829
  // lib/object-observer/object-observer-proxy-pair-factory.provider.ts
710
- import { Injectable as Injectable8, MultiInject } from "@rs-x/core";
711
- function _ts_decorate8(decorators, target, key, desc) {
830
+ import { Injectable as Injectable9, MultiInject } from "@rs-x/core";
831
+ function _ts_decorate9(decorators, target, key, desc) {
712
832
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
713
833
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
714
834
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
715
835
  return c > 3 && r && Object.defineProperty(target, key, r), r;
716
836
  }
717
- __name(_ts_decorate8, "_ts_decorate");
718
- function _ts_metadata8(k, v) {
837
+ __name(_ts_decorate9, "_ts_decorate");
838
+ function _ts_metadata9(k, v) {
719
839
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
720
840
  }
721
- __name(_ts_metadata8, "_ts_metadata");
841
+ __name(_ts_metadata9, "_ts_metadata");
722
842
  function _ts_param8(paramIndex, decorator) {
723
843
  return function(target, key) {
724
844
  decorator(target, key, paramIndex);
@@ -736,42 +856,43 @@ var ObjectObserverProxyPairFactoryProvider = class {
736
856
  ].sort((a, b) => b.priority - a.priority);
737
857
  }
738
858
  };
739
- ObjectObserverProxyPairFactoryProvider = _ts_decorate8([
740
- Injectable8(),
859
+ ObjectObserverProxyPairFactoryProvider = _ts_decorate9([
860
+ Injectable9(),
741
861
  _ts_param8(0, MultiInject(RsXStateManagerInjectionTokens.IObjectObserverProxyPairFactoryList)),
742
- _ts_metadata8("design:type", Function),
743
- _ts_metadata8("design:paramtypes", [
862
+ _ts_metadata9("design:type", Function),
863
+ _ts_metadata9("design:paramtypes", [
744
864
  Object
745
865
  ])
746
866
  ], ObjectObserverProxyPairFactoryProvider);
747
867
 
748
868
  // lib/object-observer/object-observer-proxy-pair-manager.ts
749
- import { GuidKeyedInstanceFactory as GuidKeyedInstanceFactory2, Inject as Inject8, Injectable as Injectable9, InvalidOperationException, RsXCoreInjectionTokens as RsXCoreInjectionTokens5, Type as Type4 } from "@rs-x/core";
750
- function _ts_decorate9(decorators, target, key, desc) {
869
+ import { GroupedKeyedInstanceFactory as GroupedKeyedInstanceFactory2, Inject as Inject8, Injectable as Injectable10, InvalidOperationException, RsXCoreInjectionTokens as RsXCoreInjectionTokens5, Type as Type4 } from "@rs-x/core";
870
+ function _ts_decorate10(decorators, target, key, desc) {
751
871
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
752
872
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
753
873
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
754
874
  return c > 3 && r && Object.defineProperty(target, key, r), r;
755
875
  }
756
- __name(_ts_decorate9, "_ts_decorate");
757
- function _ts_metadata9(k, v) {
876
+ __name(_ts_decorate10, "_ts_decorate");
877
+ function _ts_metadata10(k, v) {
758
878
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
759
879
  }
760
- __name(_ts_metadata9, "_ts_metadata");
880
+ __name(_ts_metadata10, "_ts_metadata");
761
881
  function _ts_param9(paramIndex, decorator) {
762
882
  return function(target, key) {
763
883
  decorator(target, key, paramIndex);
764
884
  };
765
885
  }
766
886
  __name(_ts_param9, "_ts_param");
767
- var ObjectObserverProxyPairManager = class extends GuidKeyedInstanceFactory2 {
887
+ var ObjectObserverProxyPairManager = class extends GroupedKeyedInstanceFactory2 {
768
888
  static {
769
889
  __name(this, "ObjectObserverProxyPairManager");
770
890
  }
771
891
  getObserverFactoryProvider;
772
892
  _proxyRegistry;
773
- constructor(getObserverFactoryProvider, _proxyRegistry, guidFactory) {
774
- super(guidFactory), this.getObserverFactoryProvider = getObserverFactoryProvider, this._proxyRegistry = _proxyRegistry;
893
+ _nextId = 0;
894
+ constructor(getObserverFactoryProvider, _proxyRegistry) {
895
+ super(), this.getObserverFactoryProvider = getObserverFactoryProvider, this._proxyRegistry = _proxyRegistry;
775
896
  }
776
897
  getGroupId(data) {
777
898
  return data.target;
@@ -795,48 +916,50 @@ var ObjectObserverProxyPairManager = class extends GuidKeyedInstanceFactory2 {
795
916
  releaseInstance(observerProxyPair) {
796
917
  observerProxyPair.observer.dispose();
797
918
  }
919
+ createUniqueId(_data) {
920
+ return this._nextId++;
921
+ }
798
922
  };
799
- ObjectObserverProxyPairManager = _ts_decorate9([
800
- Injectable9(),
923
+ ObjectObserverProxyPairManager = _ts_decorate10([
924
+ Injectable10(),
801
925
  _ts_param9(0, Inject8(RsXStateManagerInjectionTokens.IObjectObserverProxyPairFactoryProviderFactory)),
802
926
  _ts_param9(1, Inject8(RsXCoreInjectionTokens5.IProxyRegistry)),
803
- _ts_param9(2, Inject8(RsXCoreInjectionTokens5.IGuidFactory)),
804
- _ts_metadata9("design:type", Function),
805
- _ts_metadata9("design:paramtypes", [
927
+ _ts_metadata10("design:type", Function),
928
+ _ts_metadata10("design:paramtypes", [
806
929
  Function,
807
- typeof IProxyRegistry === "undefined" ? Object : IProxyRegistry,
808
- typeof IGuidFactory === "undefined" ? Object : IGuidFactory
930
+ typeof IProxyRegistry === "undefined" ? Object : IProxyRegistry
809
931
  ])
810
932
  ], ObjectObserverProxyPairManager);
811
933
 
812
934
  // lib/object-property-observer-proxy-pair-manager.ts
813
- import { GuidKeyedInstanceFactory as GuidKeyedInstanceFactory3, Inject as Inject9, Injectable as Injectable10, KeyedInstanceFactory, MultiInject as MultiInject2, RsXCoreInjectionTokens as RsXCoreInjectionTokens6, Type as Type5, UnsupportedException } from "@rs-x/core";
814
- function _ts_decorate10(decorators, target, key, desc) {
935
+ import { GroupedKeyedInstanceFactory as GroupedKeyedInstanceFactory3, Injectable as Injectable11, KeyedInstanceFactory as KeyedInstanceFactory2, MultiInject as MultiInject2, Type as Type5, UnsupportedException } from "@rs-x/core";
936
+ function _ts_decorate11(decorators, target, key, desc) {
815
937
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
816
938
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
817
939
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
818
940
  return c > 3 && r && Object.defineProperty(target, key, r), r;
819
941
  }
820
- __name(_ts_decorate10, "_ts_decorate");
821
- function _ts_metadata10(k, v) {
942
+ __name(_ts_decorate11, "_ts_decorate");
943
+ function _ts_metadata11(k, v) {
822
944
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
823
945
  }
824
- __name(_ts_metadata10, "_ts_metadata");
946
+ __name(_ts_metadata11, "_ts_metadata");
825
947
  function _ts_param10(paramIndex, decorator) {
826
948
  return function(target, key) {
827
949
  decorator(target, key, paramIndex);
828
950
  };
829
951
  }
830
952
  __name(_ts_param10, "_ts_param");
831
- var PropertyObserverProxyPairManager = class PropertyObserverProxyPairManager2 extends GuidKeyedInstanceFactory3 {
953
+ var PropertyObserverProxyPairManager = class PropertyObserverProxyPairManager2 extends GroupedKeyedInstanceFactory3 {
832
954
  static {
833
955
  __name(this, "PropertyObserverProxyPairManager");
834
956
  }
835
957
  _object;
836
958
  _observerFactories;
837
959
  releaseContext;
838
- constructor(guidFactory, _object, _observerFactories, releaseContext) {
839
- super(guidFactory), this._object = _object, this._observerFactories = _observerFactories, this.releaseContext = releaseContext;
960
+ _nextId = 0;
961
+ constructor(_object, _observerFactories, releaseContext) {
962
+ super(), this._object = _object, this._observerFactories = _observerFactories, this.releaseContext = releaseContext;
840
963
  }
841
964
  getGroupId(data) {
842
965
  return data.index;
@@ -859,6 +982,9 @@ var PropertyObserverProxyPairManager = class PropertyObserverProxyPairManager2 e
859
982
  onReleased() {
860
983
  this.releaseContext();
861
984
  }
985
+ createUniqueId(_data) {
986
+ return this._nextId++;
987
+ }
862
988
  getObserverFactory(propertyInfo) {
863
989
  const observerFactory = this._observerFactories.find((observerFactory2) => observerFactory2.applies(this._object, propertyInfo));
864
990
  if (!observerFactory) {
@@ -867,14 +993,13 @@ var PropertyObserverProxyPairManager = class PropertyObserverProxyPairManager2 e
867
993
  return observerFactory;
868
994
  }
869
995
  };
870
- var ObjectPropertyObserverProxyPairManager = class extends KeyedInstanceFactory {
996
+ var ObjectPropertyObserverProxyPairManager = class extends KeyedInstanceFactory2 {
871
997
  static {
872
998
  __name(this, "ObjectPropertyObserverProxyPairManager");
873
999
  }
874
1000
  _factories;
875
- _guidFactory;
876
- constructor(_factories, _guidFactory) {
877
- super(), this._factories = _factories, this._guidFactory = _guidFactory;
1001
+ constructor(_factories) {
1002
+ super(), this._factories = _factories;
878
1003
  }
879
1004
  getId(context) {
880
1005
  return context;
@@ -883,33 +1008,31 @@ var ObjectPropertyObserverProxyPairManager = class extends KeyedInstanceFactory
883
1008
  return context;
884
1009
  }
885
1010
  createInstance(context) {
886
- return new PropertyObserverProxyPairManager(this._guidFactory, context, this._factories, () => this.release(context));
1011
+ return new PropertyObserverProxyPairManager(context, this._factories, () => this.release(context));
887
1012
  }
888
1013
  };
889
- ObjectPropertyObserverProxyPairManager = _ts_decorate10([
890
- Injectable10(),
1014
+ ObjectPropertyObserverProxyPairManager = _ts_decorate11([
1015
+ Injectable11(),
891
1016
  _ts_param10(0, MultiInject2(RsXStateManagerInjectionTokens.IPropertyObserverProxyPairFactoryList)),
892
- _ts_param10(1, Inject9(RsXCoreInjectionTokens6.IGuidFactory)),
893
- _ts_metadata10("design:type", Function),
894
- _ts_metadata10("design:paramtypes", [
895
- Array,
896
- typeof IGuidFactory === "undefined" ? Object : IGuidFactory
1017
+ _ts_metadata11("design:type", Function),
1018
+ _ts_metadata11("design:paramtypes", [
1019
+ Array
897
1020
  ])
898
1021
  ], ObjectPropertyObserverProxyPairManager);
899
1022
 
900
1023
  // lib/property-observer/factories/collection-item/collection-item-observer-manager.ts
901
- import { Inject as Inject10, Injectable as Injectable11, KeyedInstanceFactory as KeyedInstanceFactory2, RsXCoreInjectionTokens as RsXCoreInjectionTokens7 } from "@rs-x/core";
902
- function _ts_decorate11(decorators, target, key, desc) {
1024
+ import { Inject as Inject9, Injectable as Injectable12, KeyedInstanceFactory as KeyedInstanceFactory3, RsXCoreInjectionTokens as RsXCoreInjectionTokens6 } from "@rs-x/core";
1025
+ function _ts_decorate12(decorators, target, key, desc) {
903
1026
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
904
1027
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
905
1028
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
906
1029
  return c > 3 && r && Object.defineProperty(target, key, r), r;
907
1030
  }
908
- __name(_ts_decorate11, "_ts_decorate");
909
- function _ts_metadata11(k, v) {
1031
+ __name(_ts_decorate12, "_ts_decorate");
1032
+ function _ts_metadata12(k, v) {
910
1033
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
911
1034
  }
912
- __name(_ts_metadata11, "_ts_metadata");
1035
+ __name(_ts_metadata12, "_ts_metadata");
913
1036
  function _ts_param11(paramIndex, decorator) {
914
1037
  return function(target, key) {
915
1038
  decorator(target, key, paramIndex);
@@ -960,7 +1083,7 @@ var CollectionIndexObserver = class CollectionIndexObserver2 extends AbstractObs
960
1083
  }
961
1084
  }, "onChanged");
962
1085
  };
963
- var CollectionIndexObserverManager = class CollectionIndexObserverManager2 extends KeyedInstanceFactory2 {
1086
+ var CollectionIndexObserverManager = class CollectionIndexObserverManager2 extends KeyedInstanceFactory3 {
964
1087
  static {
965
1088
  __name(this, "CollectionIndexObserverManager");
966
1089
  }
@@ -992,7 +1115,7 @@ var CollectionIndexObserverManager = class CollectionIndexObserverManager2 exten
992
1115
  this.releaseObject();
993
1116
  }
994
1117
  };
995
- var CollectionItemObserverManager = class extends KeyedInstanceFactory2 {
1118
+ var CollectionItemObserverManager = class extends KeyedInstanceFactory3 {
996
1119
  static {
997
1120
  __name(this, "CollectionItemObserverManager");
998
1121
  }
@@ -1016,14 +1139,14 @@ var CollectionItemObserverManager = class extends KeyedInstanceFactory2 {
1016
1139
  collectionIndexObserverManager.dispose();
1017
1140
  }
1018
1141
  };
1019
- CollectionItemObserverManager = _ts_decorate11([
1020
- Injectable11(),
1021
- _ts_param11(0, Inject10(RsXCoreInjectionTokens7.IErrorLog)),
1022
- _ts_param11(1, Inject10(RsXCoreInjectionTokens7.IEqualityService)),
1023
- _ts_param11(2, Inject10(RsXCoreInjectionTokens7.IIndexValueAccessor)),
1024
- _ts_param11(3, Inject10(RsXStateManagerInjectionTokens.IObjectObserverProxyPairManager)),
1025
- _ts_metadata11("design:type", Function),
1026
- _ts_metadata11("design:paramtypes", [
1142
+ CollectionItemObserverManager = _ts_decorate12([
1143
+ Injectable12(),
1144
+ _ts_param11(0, Inject9(RsXCoreInjectionTokens6.IErrorLog)),
1145
+ _ts_param11(1, Inject9(RsXCoreInjectionTokens6.IEqualityService)),
1146
+ _ts_param11(2, Inject9(RsXCoreInjectionTokens6.IIndexValueAccessor)),
1147
+ _ts_param11(3, Inject9(RsXStateManagerInjectionTokens.IObjectObserverProxyPairManager)),
1148
+ _ts_metadata12("design:type", Function),
1149
+ _ts_metadata12("design:paramtypes", [
1027
1150
  typeof IErrorLog === "undefined" ? Object : IErrorLog,
1028
1151
  typeof IEqualityService === "undefined" ? Object : IEqualityService,
1029
1152
  typeof IIndexValueAccessor === "undefined" ? Object : IIndexValueAccessor,
@@ -1032,20 +1155,20 @@ CollectionItemObserverManager = _ts_decorate11([
1032
1155
  ], CollectionItemObserverManager);
1033
1156
 
1034
1157
  // lib/property-observer/factories/collection-item/collection-item-observer-proxy-pair.factory.ts
1035
- import { Inject as Inject11, Injectable as Injectable12, RsXCoreInjectionTokens as RsXCoreInjectionTokens8, truePredicate as truePredicate4 } from "@rs-x/core";
1158
+ import { Inject as Inject10, Injectable as Injectable13, RsXCoreInjectionTokens as RsXCoreInjectionTokens7, truePredicate as truePredicate4 } from "@rs-x/core";
1036
1159
 
1037
1160
  // lib/property-observer/factories/indexed-value-observer-proxy-pair/indexed-value-observer-proxy-pair.factory.ts
1038
1161
  import { Type as Type6, UnexpectedException } from "@rs-x/core";
1039
1162
 
1040
1163
  // lib/property-observer/factories/indexed-value-observer-proxy-pair/index-change-subscription-manager.ts
1041
- import { KeyedInstanceFactory as KeyedInstanceFactory3 } from "@rs-x/core";
1164
+ import { KeyedInstanceFactory as KeyedInstanceFactory4 } from "@rs-x/core";
1042
1165
  var IndexChangeSubscriptionsForContextManager = class IndexChangeSubscriptionsForContextManager2 extends GroupedChangeSubscriptionsForContextManager {
1043
1166
  static {
1044
1167
  __name(this, "IndexChangeSubscriptionsForContextManager");
1045
1168
  }
1046
1169
  _indexSetObserverManager;
1047
- constructor(context, releaseContext, _indexSetObserverManager, errorLog, guidFactory) {
1048
- super(context, releaseContext, errorLog, guidFactory), this._indexSetObserverManager = _indexSetObserverManager;
1170
+ constructor(context, releaseContext, _indexSetObserverManager, errorLog) {
1171
+ super(context, releaseContext, errorLog), this._indexSetObserverManager = _indexSetObserverManager;
1049
1172
  }
1050
1173
  getGroupId(data) {
1051
1174
  return data.index;
@@ -1080,15 +1203,14 @@ var IndexChangeSubscriptionsForContextManager = class IndexChangeSubscriptionsFo
1080
1203
  return observer;
1081
1204
  }
1082
1205
  };
1083
- var IndexChangeSubscriptionManager = class extends KeyedInstanceFactory3 {
1206
+ var IndexChangeSubscriptionManager = class extends KeyedInstanceFactory4 {
1084
1207
  static {
1085
1208
  __name(this, "IndexChangeSubscriptionManager");
1086
1209
  }
1087
1210
  _indexSetObserverManager;
1088
1211
  _errorLog;
1089
- _guidFactory;
1090
- constructor(_indexSetObserverManager, _errorLog, _guidFactory) {
1091
- super(), this._indexSetObserverManager = _indexSetObserverManager, this._errorLog = _errorLog, this._guidFactory = _guidFactory;
1212
+ constructor(_indexSetObserverManager, _errorLog) {
1213
+ super(), this._indexSetObserverManager = _indexSetObserverManager, this._errorLog = _errorLog;
1092
1214
  }
1093
1215
  getId(context) {
1094
1216
  return context;
@@ -1097,7 +1219,7 @@ var IndexChangeSubscriptionManager = class extends KeyedInstanceFactory3 {
1097
1219
  return context;
1098
1220
  }
1099
1221
  createInstance(context) {
1100
- return new IndexChangeSubscriptionsForContextManager(context, () => this.release(context), this._indexSetObserverManager, this._errorLog, this._guidFactory);
1222
+ return new IndexChangeSubscriptionsForContextManager(context, () => this.release(context), this._indexSetObserverManager, this._errorLog);
1101
1223
  }
1102
1224
  releaseInstance(instance, id) {
1103
1225
  super.releaseInstance(instance, id);
@@ -1116,13 +1238,13 @@ var IndexObserverProxyPairFactory = class {
1116
1238
  _valueMetadata;
1117
1239
  mustHandleChange;
1118
1240
  _indexChangeSubscriptionManager;
1119
- constructor(_objectObserveryManager, indexSetObserverManager, errorLog, guidFactory, _indexValueAccessor, _proxyRegister, _valueMetadata, mustHandleChange) {
1241
+ constructor(_objectObserveryManager, indexSetObserverManager, errorLog, _indexValueAccessor, _proxyRegister, _valueMetadata, mustHandleChange) {
1120
1242
  this._objectObserveryManager = _objectObserveryManager;
1121
1243
  this._indexValueAccessor = _indexValueAccessor;
1122
1244
  this._proxyRegister = _proxyRegister;
1123
1245
  this._valueMetadata = _valueMetadata;
1124
1246
  this.mustHandleChange = mustHandleChange;
1125
- this._indexChangeSubscriptionManager = new IndexChangeSubscriptionManager(indexSetObserverManager, errorLog, guidFactory);
1247
+ this._indexChangeSubscriptionManager = new IndexChangeSubscriptionManager(indexSetObserverManager, errorLog);
1126
1248
  }
1127
1249
  dispose() {
1128
1250
  this._indexChangeSubscriptionManager.dispose();
@@ -1145,7 +1267,7 @@ var IndexObserverProxyPairFactory = class {
1145
1267
  return this.proxifyIndexValue(value, indexWatchRule, propertyInfo.initializeManually, setValue);
1146
1268
  }
1147
1269
  createGroupObserver(owner, object, index, initialValue, initializeManually, indexValueObserver, indexWatchRule) {
1148
- const indexChangeSubscriptionsForContextManager = this._indexChangeSubscriptionManager.create(object).instance;
1270
+ const indexChangeSubscriptionsForContextManager = this._indexChangeSubscriptionManager.createAndGetInstance(object);
1149
1271
  const { id } = indexChangeSubscriptionsForContextManager.create({
1150
1272
  index,
1151
1273
  initialValue,
@@ -1204,17 +1326,17 @@ var IndexObserverProxyPairFactory = class {
1204
1326
  };
1205
1327
 
1206
1328
  // lib/property-observer/factories/collection-item/collection-item-observer-proxy-pair.factory.ts
1207
- function _ts_decorate12(decorators, target, key, desc) {
1329
+ function _ts_decorate13(decorators, target, key, desc) {
1208
1330
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1209
1331
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1210
1332
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
1211
1333
  return c > 3 && r && Object.defineProperty(target, key, r), r;
1212
1334
  }
1213
- __name(_ts_decorate12, "_ts_decorate");
1214
- function _ts_metadata12(k, v) {
1335
+ __name(_ts_decorate13, "_ts_decorate");
1336
+ function _ts_metadata13(k, v) {
1215
1337
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
1216
1338
  }
1217
- __name(_ts_metadata12, "_ts_metadata");
1339
+ __name(_ts_metadata13, "_ts_metadata");
1218
1340
  function _ts_param12(paramIndex, decorator) {
1219
1341
  return function(target, key) {
1220
1342
  decorator(target, key, paramIndex);
@@ -1225,28 +1347,26 @@ var CollectionItemObserverProxyPairFactory = class extends IndexObserverProxyPai
1225
1347
  static {
1226
1348
  __name(this, "CollectionItemObserverProxyPairFactory");
1227
1349
  }
1228
- constructor(objectObserverManager, collectionItemObserverManager, errorLog, guidFactory, indexValueAccessor, proxyRegister, valueMetadata) {
1229
- super(objectObserverManager, collectionItemObserverManager, errorLog, guidFactory, indexValueAccessor, proxyRegister, valueMetadata, truePredicate4);
1350
+ constructor(objectObserverManager, collectionItemObserverManager, errorLog, indexValueAccessor, proxyRegister, valueMetadata) {
1351
+ super(objectObserverManager, collectionItemObserverManager, errorLog, indexValueAccessor, proxyRegister, valueMetadata, truePredicate4);
1230
1352
  }
1231
1353
  applies(object) {
1232
1354
  return object instanceof Map || object instanceof Array || object instanceof Set;
1233
1355
  }
1234
1356
  };
1235
- CollectionItemObserverProxyPairFactory = _ts_decorate12([
1236
- Injectable12(),
1237
- _ts_param12(0, Inject11(RsXStateManagerInjectionTokens.IObjectObserverProxyPairManager)),
1238
- _ts_param12(1, Inject11(RsXStateManagerInjectionTokens.ICollectionItemObserverManager)),
1239
- _ts_param12(2, Inject11(RsXCoreInjectionTokens8.IErrorLog)),
1240
- _ts_param12(3, Inject11(RsXCoreInjectionTokens8.IGuidFactory)),
1241
- _ts_param12(4, Inject11(RsXCoreInjectionTokens8.IIndexValueAccessor)),
1242
- _ts_param12(5, Inject11(RsXCoreInjectionTokens8.IProxyRegistry)),
1243
- _ts_param12(6, Inject11(RsXCoreInjectionTokens8.IValueMetadata)),
1244
- _ts_metadata12("design:type", Function),
1245
- _ts_metadata12("design:paramtypes", [
1357
+ CollectionItemObserverProxyPairFactory = _ts_decorate13([
1358
+ Injectable13(),
1359
+ _ts_param12(0, Inject10(RsXStateManagerInjectionTokens.IObjectObserverProxyPairManager)),
1360
+ _ts_param12(1, Inject10(RsXStateManagerInjectionTokens.ICollectionItemObserverManager)),
1361
+ _ts_param12(2, Inject10(RsXCoreInjectionTokens7.IErrorLog)),
1362
+ _ts_param12(3, Inject10(RsXCoreInjectionTokens7.IIndexValueAccessor)),
1363
+ _ts_param12(4, Inject10(RsXCoreInjectionTokens7.IProxyRegistry)),
1364
+ _ts_param12(5, Inject10(RsXCoreInjectionTokens7.IValueMetadata)),
1365
+ _ts_metadata13("design:type", Function),
1366
+ _ts_metadata13("design:paramtypes", [
1246
1367
  typeof IObjectObserverProxyPairManager === "undefined" ? Object : IObjectObserverProxyPairManager,
1247
1368
  typeof ICollectionItemObserverManager === "undefined" ? Object : ICollectionItemObserverManager,
1248
1369
  typeof IErrorLog === "undefined" ? Object : IErrorLog,
1249
- typeof IGuidFactory === "undefined" ? Object : IGuidFactory,
1250
1370
  typeof IIndexValueAccessor === "undefined" ? Object : IIndexValueAccessor,
1251
1371
  typeof IProxyRegistry === "undefined" ? Object : IProxyRegistry,
1252
1372
  typeof IValueMetadata === "undefined" ? Object : IValueMetadata
@@ -1254,18 +1374,18 @@ CollectionItemObserverProxyPairFactory = _ts_decorate12([
1254
1374
  ], CollectionItemObserverProxyPairFactory);
1255
1375
 
1256
1376
  // lib/property-observer/factories/date-property/data-property-observer-manager.ts
1257
- import { Inject as Inject12, Injectable as Injectable13, KeyedInstanceFactory as KeyedInstanceFactory4, RsXCoreInjectionTokens as RsXCoreInjectionTokens9 } from "@rs-x/core";
1258
- function _ts_decorate13(decorators, target, key, desc) {
1377
+ import { Inject as Inject11, Injectable as Injectable14, KeyedInstanceFactory as KeyedInstanceFactory5, RsXCoreInjectionTokens as RsXCoreInjectionTokens8 } from "@rs-x/core";
1378
+ function _ts_decorate14(decorators, target, key, desc) {
1259
1379
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1260
1380
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1261
1381
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
1262
1382
  return c > 3 && r && Object.defineProperty(target, key, r), r;
1263
1383
  }
1264
- __name(_ts_decorate13, "_ts_decorate");
1265
- function _ts_metadata13(k, v) {
1384
+ __name(_ts_decorate14, "_ts_decorate");
1385
+ function _ts_metadata14(k, v) {
1266
1386
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
1267
1387
  }
1268
- __name(_ts_metadata13, "_ts_metadata");
1388
+ __name(_ts_metadata14, "_ts_metadata");
1269
1389
  function _ts_param13(paramIndex, decorator) {
1270
1390
  return function(target, key) {
1271
1391
  decorator(target, key, paramIndex);
@@ -1305,17 +1425,18 @@ var DatePropertyObserver = class DatePropertyObserver2 extends AbstractObserver
1305
1425
  this._oldValue = change.newValue;
1306
1426
  }, "onDateChanged");
1307
1427
  };
1308
- var ProperForDataObserverManager = class ProperForDataObserverManager2 extends KeyedInstanceFactory4 {
1428
+ var ProperForDataObserverManager = class ProperForDataObserverManager2 extends KeyedInstanceFactory5 {
1309
1429
  static {
1310
1430
  __name(this, "ProperForDataObserverManager");
1311
1431
  }
1312
1432
  _date;
1313
1433
  _dateProxyFactory;
1314
1434
  _datePropertyAccessor;
1435
+ _indexWatchRuleFactory;
1315
1436
  _errorLog;
1316
1437
  releaseObject;
1317
- constructor(_date, _dateProxyFactory, _datePropertyAccessor, _errorLog, releaseObject) {
1318
- super(), this._date = _date, this._dateProxyFactory = _dateProxyFactory, this._datePropertyAccessor = _datePropertyAccessor, this._errorLog = _errorLog, this.releaseObject = releaseObject;
1438
+ constructor(_date, _dateProxyFactory, _datePropertyAccessor, _indexWatchRuleFactory, _errorLog, releaseObject) {
1439
+ super(), this._date = _date, this._dateProxyFactory = _dateProxyFactory, this._datePropertyAccessor = _datePropertyAccessor, this._indexWatchRuleFactory = _indexWatchRuleFactory, this._errorLog = _errorLog, this.releaseObject = releaseObject;
1319
1440
  }
1320
1441
  getId(data) {
1321
1442
  return data.index;
@@ -1324,8 +1445,7 @@ var ProperForDataObserverManager = class ProperForDataObserverManager2 extends K
1324
1445
  return data.index;
1325
1446
  }
1326
1447
  createInstance(data, index) {
1327
- const indexWatchPredicate = /* @__PURE__ */ __name((targetIndex, target, context) => targetIndex === index && target === context, "indexWatchPredicate");
1328
- const indexWatchRule = new IndexWatchRule(this._date, indexWatchPredicate);
1448
+ const indexWatchRule = this._indexWatchRuleFactory.create(this._date, index);
1329
1449
  const dateObserver = this._dateProxyFactory.create({
1330
1450
  date: this._date,
1331
1451
  indexWatchRule
@@ -1342,15 +1462,16 @@ var ProperForDataObserverManager = class ProperForDataObserverManager2 extends K
1342
1462
  this.releaseObject();
1343
1463
  }
1344
1464
  };
1345
- var DatePropertyObserverManager = class extends KeyedInstanceFactory4 {
1465
+ var DatePropertyObserverManager = class extends KeyedInstanceFactory5 {
1346
1466
  static {
1347
1467
  __name(this, "DatePropertyObserverManager");
1348
1468
  }
1349
1469
  _dateProxyFactory;
1350
1470
  _errorLog;
1351
1471
  _datePropertyAccessor;
1352
- constructor(_dateProxyFactory, _errorLog, _datePropertyAccessor) {
1353
- super(), this._dateProxyFactory = _dateProxyFactory, this._errorLog = _errorLog, this._datePropertyAccessor = _datePropertyAccessor;
1472
+ _indexWatchRuleFactory;
1473
+ constructor(_dateProxyFactory, _errorLog, _datePropertyAccessor, _indexWatchRuleFactory) {
1474
+ super(), this._dateProxyFactory = _dateProxyFactory, this._errorLog = _errorLog, this._datePropertyAccessor = _datePropertyAccessor, this._indexWatchRuleFactory = _indexWatchRuleFactory;
1354
1475
  }
1355
1476
  getId(date) {
1356
1477
  return date;
@@ -1359,38 +1480,40 @@ var DatePropertyObserverManager = class extends KeyedInstanceFactory4 {
1359
1480
  return date;
1360
1481
  }
1361
1482
  createInstance(date) {
1362
- return new ProperForDataObserverManager(date, this._dateProxyFactory, this._datePropertyAccessor, this._errorLog, () => this.release(date));
1483
+ return new ProperForDataObserverManager(date, this._dateProxyFactory, this._datePropertyAccessor, this._indexWatchRuleFactory, this._errorLog, () => this.release(date));
1363
1484
  }
1364
1485
  releaseInstance(properForDataObserverManager) {
1365
1486
  properForDataObserverManager.dispose();
1366
1487
  }
1367
1488
  };
1368
- DatePropertyObserverManager = _ts_decorate13([
1369
- Injectable13(),
1370
- _ts_param13(0, Inject12(RsXStateManagerInjectionTokens.IDateProxyFactory)),
1371
- _ts_param13(1, Inject12(RsXCoreInjectionTokens9.IErrorLog)),
1372
- _ts_param13(2, Inject12(RsXCoreInjectionTokens9.IDatePropertyAccessor)),
1373
- _ts_metadata13("design:type", Function),
1374
- _ts_metadata13("design:paramtypes", [
1489
+ DatePropertyObserverManager = _ts_decorate14([
1490
+ Injectable14(),
1491
+ _ts_param13(0, Inject11(RsXStateManagerInjectionTokens.IDateProxyFactory)),
1492
+ _ts_param13(1, Inject11(RsXCoreInjectionTokens8.IErrorLog)),
1493
+ _ts_param13(2, Inject11(RsXCoreInjectionTokens8.IDatePropertyAccessor)),
1494
+ _ts_param13(3, Inject11(RsXStateManagerInjectionTokens.IIndexWatchRuleFactory)),
1495
+ _ts_metadata14("design:type", Function),
1496
+ _ts_metadata14("design:paramtypes", [
1375
1497
  typeof IDateProxyFactory === "undefined" ? Object : IDateProxyFactory,
1376
1498
  typeof IErrorLog === "undefined" ? Object : IErrorLog,
1377
- typeof IDatePropertyAccessor === "undefined" ? Object : IDatePropertyAccessor
1499
+ typeof IDatePropertyAccessor === "undefined" ? Object : IDatePropertyAccessor,
1500
+ typeof IIndexWatchRuleFactory === "undefined" ? Object : IIndexWatchRuleFactory
1378
1501
  ])
1379
1502
  ], DatePropertyObserverManager);
1380
1503
 
1381
1504
  // lib/property-observer/factories/date-property/date-property-observer-proxy-pair.factory.ts
1382
- import { Inject as Inject13, Injectable as Injectable14, RsXCoreInjectionTokens as RsXCoreInjectionTokens10, truePredicate as truePredicate5 } from "@rs-x/core";
1383
- function _ts_decorate14(decorators, target, key, desc) {
1505
+ import { Inject as Inject12, Injectable as Injectable15, RsXCoreInjectionTokens as RsXCoreInjectionTokens9, truePredicate as truePredicate5 } from "@rs-x/core";
1506
+ function _ts_decorate15(decorators, target, key, desc) {
1384
1507
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1385
1508
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1386
1509
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
1387
1510
  return c > 3 && r && Object.defineProperty(target, key, r), r;
1388
1511
  }
1389
- __name(_ts_decorate14, "_ts_decorate");
1390
- function _ts_metadata14(k, v) {
1512
+ __name(_ts_decorate15, "_ts_decorate");
1513
+ function _ts_metadata15(k, v) {
1391
1514
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
1392
1515
  }
1393
- __name(_ts_metadata14, "_ts_metadata");
1516
+ __name(_ts_metadata15, "_ts_metadata");
1394
1517
  function _ts_param14(paramIndex, decorator) {
1395
1518
  return function(target, key) {
1396
1519
  decorator(target, key, paramIndex);
@@ -1401,28 +1524,26 @@ var DatePropertyObserverProxyPairFactory = class extends IndexObserverProxyPairF
1401
1524
  static {
1402
1525
  __name(this, "DatePropertyObserverProxyPairFactory");
1403
1526
  }
1404
- constructor(objectObserverManager, datePropertyObserverManager, errorLog, guidFactory, datePropertyAccessor, proxyRegister, valueMetadata) {
1405
- super(objectObserverManager, datePropertyObserverManager, errorLog, guidFactory, datePropertyAccessor, proxyRegister, valueMetadata, truePredicate5);
1527
+ constructor(objectObserverManager, datePropertyObserverManager, errorLog, datePropertyAccessor, proxyRegister, valueMetadata) {
1528
+ super(objectObserverManager, datePropertyObserverManager, errorLog, datePropertyAccessor, proxyRegister, valueMetadata, truePredicate5);
1406
1529
  }
1407
1530
  applies(object) {
1408
1531
  return object instanceof Date;
1409
1532
  }
1410
1533
  };
1411
- DatePropertyObserverProxyPairFactory = _ts_decorate14([
1412
- Injectable14(),
1413
- _ts_param14(0, Inject13(RsXStateManagerInjectionTokens.IObjectObserverProxyPairManager)),
1414
- _ts_param14(1, Inject13(RsXStateManagerInjectionTokens.IDatePropertyObserverManager)),
1415
- _ts_param14(2, Inject13(RsXCoreInjectionTokens10.IErrorLog)),
1416
- _ts_param14(3, Inject13(RsXCoreInjectionTokens10.IGuidFactory)),
1417
- _ts_param14(4, Inject13(RsXCoreInjectionTokens10.IIndexValueAccessor)),
1418
- _ts_param14(5, Inject13(RsXCoreInjectionTokens10.IProxyRegistry)),
1419
- _ts_param14(6, Inject13(RsXCoreInjectionTokens10.IValueMetadata)),
1420
- _ts_metadata14("design:type", Function),
1421
- _ts_metadata14("design:paramtypes", [
1534
+ DatePropertyObserverProxyPairFactory = _ts_decorate15([
1535
+ Injectable15(),
1536
+ _ts_param14(0, Inject12(RsXStateManagerInjectionTokens.IObjectObserverProxyPairManager)),
1537
+ _ts_param14(1, Inject12(RsXStateManagerInjectionTokens.IDatePropertyObserverManager)),
1538
+ _ts_param14(2, Inject12(RsXCoreInjectionTokens9.IErrorLog)),
1539
+ _ts_param14(3, Inject12(RsXCoreInjectionTokens9.IIndexValueAccessor)),
1540
+ _ts_param14(4, Inject12(RsXCoreInjectionTokens9.IProxyRegistry)),
1541
+ _ts_param14(5, Inject12(RsXCoreInjectionTokens9.IValueMetadata)),
1542
+ _ts_metadata15("design:type", Function),
1543
+ _ts_metadata15("design:paramtypes", [
1422
1544
  typeof IObjectObserverProxyPairManager === "undefined" ? Object : IObjectObserverProxyPairManager,
1423
1545
  typeof IDatePropertyObserverManager === "undefined" ? Object : IDatePropertyObserverManager,
1424
1546
  typeof IErrorLog === "undefined" ? Object : IErrorLog,
1425
- typeof IGuidFactory === "undefined" ? Object : IGuidFactory,
1426
1547
  typeof IIndexValueAccessor === "undefined" ? Object : IIndexValueAccessor,
1427
1548
  typeof IProxyRegistry === "undefined" ? Object : IProxyRegistry,
1428
1549
  typeof IValueMetadata === "undefined" ? Object : IValueMetadata
@@ -1430,18 +1551,18 @@ DatePropertyObserverProxyPairFactory = _ts_decorate14([
1430
1551
  ], DatePropertyObserverProxyPairFactory);
1431
1552
 
1432
1553
  // lib/property-observer/factories/non-iterable-object-property/non-iterable-object-property-observer-proxy-pair.factory.ts
1433
- import { Inject as Inject14, Injectable as Injectable15, RsXCoreInjectionTokens as RsXCoreInjectionTokens11, Type as Type7 } from "@rs-x/core";
1434
- function _ts_decorate15(decorators, target, key, desc) {
1554
+ import { Inject as Inject13, Injectable as Injectable16, RsXCoreInjectionTokens as RsXCoreInjectionTokens10, Type as Type7 } from "@rs-x/core";
1555
+ function _ts_decorate16(decorators, target, key, desc) {
1435
1556
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1436
1557
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1437
1558
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
1438
1559
  return c > 3 && r && Object.defineProperty(target, key, r), r;
1439
1560
  }
1440
- __name(_ts_decorate15, "_ts_decorate");
1441
- function _ts_metadata15(k, v) {
1561
+ __name(_ts_decorate16, "_ts_decorate");
1562
+ function _ts_metadata16(k, v) {
1442
1563
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
1443
1564
  }
1444
- __name(_ts_metadata15, "_ts_metadata");
1565
+ __name(_ts_metadata16, "_ts_metadata");
1445
1566
  function _ts_param15(paramIndex, decorator) {
1446
1567
  return function(target, key) {
1447
1568
  decorator(target, key, paramIndex);
@@ -1452,8 +1573,8 @@ var NonIterableObjectPropertyObserverProxyPairFactory = class extends IndexObser
1452
1573
  static {
1453
1574
  __name(this, "NonIterableObjectPropertyObserverProxyPairFactory");
1454
1575
  }
1455
- constructor(objectObserveryManager, objectPropertyObserverManager, errorLog, guidFactory, indexValueAccessor, proxyRegister, valueMetadata) {
1456
- super(objectObserveryManager, objectPropertyObserverManager, errorLog, guidFactory, indexValueAccessor, proxyRegister, valueMetadata);
1576
+ constructor(objectObserveryManager, objectPropertyObserverManager, errorLog, indexValueAccessor, proxyRegister, valueMetadata) {
1577
+ super(objectObserveryManager, objectPropertyObserverManager, errorLog, indexValueAccessor, proxyRegister, valueMetadata);
1457
1578
  }
1458
1579
  applies(object, propertyInfo) {
1459
1580
  return !(Array.isArray(object) || object instanceof Date || object instanceof Map || object instanceof Set) && Type7.isString(propertyInfo.index) && !Type7.isMethod((Type7.toObject(object) ?? {})[propertyInfo.index]);
@@ -1462,21 +1583,19 @@ var NonIterableObjectPropertyObserverProxyPairFactory = class extends IndexObser
1462
1583
  object[key] = value;
1463
1584
  }
1464
1585
  };
1465
- NonIterableObjectPropertyObserverProxyPairFactory = _ts_decorate15([
1466
- Injectable15(),
1467
- _ts_param15(0, Inject14(RsXStateManagerInjectionTokens.IObjectObserverProxyPairManager)),
1468
- _ts_param15(1, Inject14(RsXStateManagerInjectionTokens.IObjectPropertyObserverManager)),
1469
- _ts_param15(2, Inject14(RsXCoreInjectionTokens11.IErrorLog)),
1470
- _ts_param15(3, Inject14(RsXCoreInjectionTokens11.IGuidFactory)),
1471
- _ts_param15(4, Inject14(RsXCoreInjectionTokens11.IIndexValueAccessor)),
1472
- _ts_param15(5, Inject14(RsXCoreInjectionTokens11.IProxyRegistry)),
1473
- _ts_param15(6, Inject14(RsXCoreInjectionTokens11.IValueMetadata)),
1474
- _ts_metadata15("design:type", Function),
1475
- _ts_metadata15("design:paramtypes", [
1586
+ NonIterableObjectPropertyObserverProxyPairFactory = _ts_decorate16([
1587
+ Injectable16(),
1588
+ _ts_param15(0, Inject13(RsXStateManagerInjectionTokens.IObjectObserverProxyPairManager)),
1589
+ _ts_param15(1, Inject13(RsXStateManagerInjectionTokens.IObjectPropertyObserverManager)),
1590
+ _ts_param15(2, Inject13(RsXCoreInjectionTokens10.IErrorLog)),
1591
+ _ts_param15(3, Inject13(RsXCoreInjectionTokens10.IIndexValueAccessor)),
1592
+ _ts_param15(4, Inject13(RsXCoreInjectionTokens10.IProxyRegistry)),
1593
+ _ts_param15(5, Inject13(RsXCoreInjectionTokens10.IValueMetadata)),
1594
+ _ts_metadata16("design:type", Function),
1595
+ _ts_metadata16("design:paramtypes", [
1476
1596
  typeof IObjectObserverProxyPairManager === "undefined" ? Object : IObjectObserverProxyPairManager,
1477
1597
  typeof IObjectPropertyObserverManager === "undefined" ? Object : IObjectPropertyObserverManager,
1478
1598
  typeof IErrorLog === "undefined" ? Object : IErrorLog,
1479
- typeof IGuidFactory === "undefined" ? Object : IGuidFactory,
1480
1599
  typeof IIndexValueAccessor === "undefined" ? Object : IIndexValueAccessor,
1481
1600
  typeof IProxyRegistry === "undefined" ? Object : IProxyRegistry,
1482
1601
  typeof IValueMetadata === "undefined" ? Object : IValueMetadata
@@ -1485,18 +1604,18 @@ NonIterableObjectPropertyObserverProxyPairFactory = _ts_decorate15([
1485
1604
 
1486
1605
  // lib/property-observer/factories/non-iterable-object-property/object-property-observer-manager.ts
1487
1606
  import { Subject as Subject2 } from "rxjs";
1488
- import { Inject as Inject15, Injectable as Injectable16, InvalidOperationException as InvalidOperationException2, KeyedInstanceFactory as KeyedInstanceFactory5, PropertyDescriptorType, RsXCoreInjectionTokens as RsXCoreInjectionTokens12, Type as Type8 } from "@rs-x/core";
1489
- function _ts_decorate16(decorators, target, key, desc) {
1607
+ import { Inject as Inject14, Injectable as Injectable17, InvalidOperationException as InvalidOperationException2, KeyedInstanceFactory as KeyedInstanceFactory6, PropertyDescriptorType, RsXCoreInjectionTokens as RsXCoreInjectionTokens11, Type as Type8 } from "@rs-x/core";
1608
+ function _ts_decorate17(decorators, target, key, desc) {
1490
1609
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1491
1610
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1492
1611
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
1493
1612
  return c > 3 && r && Object.defineProperty(target, key, r), r;
1494
1613
  }
1495
- __name(_ts_decorate16, "_ts_decorate");
1496
- function _ts_metadata16(k, v) {
1614
+ __name(_ts_decorate17, "_ts_decorate");
1615
+ function _ts_metadata17(k, v) {
1497
1616
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
1498
1617
  }
1499
- __name(_ts_metadata16, "_ts_metadata");
1618
+ __name(_ts_metadata17, "_ts_metadata");
1500
1619
  function _ts_param16(paramIndex, decorator) {
1501
1620
  return function(target, key) {
1502
1621
  decorator(target, key, paramIndex);
@@ -1617,7 +1736,7 @@ var PropertObserver = class PropertObserver2 extends AbstractObserver {
1617
1736
  return newDescriptor;
1618
1737
  }
1619
1738
  };
1620
- var PropertyObserverManager = class PropertyObserverManager2 extends KeyedInstanceFactory5 {
1739
+ var PropertyObserverManager = class PropertyObserverManager2 extends KeyedInstanceFactory6 {
1621
1740
  static {
1622
1741
  __name(this, "PropertyObserverManager");
1623
1742
  }
@@ -1646,7 +1765,7 @@ var PropertyObserverManager = class PropertyObserverManager2 extends KeyedInstan
1646
1765
  observer.dispose();
1647
1766
  }
1648
1767
  };
1649
- var ObjectPropertyObserverManager = class extends KeyedInstanceFactory5 {
1768
+ var ObjectPropertyObserverManager = class extends KeyedInstanceFactory6 {
1650
1769
  static {
1651
1770
  __name(this, "ObjectPropertyObserverManager");
1652
1771
  }
@@ -1667,29 +1786,29 @@ var ObjectPropertyObserverManager = class extends KeyedInstanceFactory5 {
1667
1786
  propertyObserverManager.dispose();
1668
1787
  }
1669
1788
  };
1670
- ObjectPropertyObserverManager = _ts_decorate16([
1671
- Injectable16(),
1672
- _ts_param16(0, Inject15(RsXCoreInjectionTokens12.IProxyRegistry)),
1673
- _ts_metadata16("design:type", Function),
1674
- _ts_metadata16("design:paramtypes", [
1789
+ ObjectPropertyObserverManager = _ts_decorate17([
1790
+ Injectable17(),
1791
+ _ts_param16(0, Inject14(RsXCoreInjectionTokens11.IProxyRegistry)),
1792
+ _ts_metadata17("design:type", Function),
1793
+ _ts_metadata17("design:paramtypes", [
1675
1794
  typeof IProxyRegistry === "undefined" ? Object : IProxyRegistry
1676
1795
  ])
1677
1796
  ], ObjectPropertyObserverManager);
1678
1797
 
1679
1798
  // lib/proxies/array-proxy/array-proxy.factory.ts
1680
1799
  import { Subject as Subject3 } from "rxjs";
1681
- import { Inject as Inject16, Injectable as Injectable17, KeyedInstanceFactory as KeyedInstanceFactory6, RsXCoreInjectionTokens as RsXCoreInjectionTokens13, Type as Type9 } from "@rs-x/core";
1682
- function _ts_decorate17(decorators, target, key, desc) {
1800
+ import { Inject as Inject15, Injectable as Injectable18, KeyedInstanceFactory as KeyedInstanceFactory7, RsXCoreInjectionTokens as RsXCoreInjectionTokens12, Type as Type9 } from "@rs-x/core";
1801
+ function _ts_decorate18(decorators, target, key, desc) {
1683
1802
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1684
1803
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1685
1804
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
1686
1805
  return c > 3 && r && Object.defineProperty(target, key, r), r;
1687
1806
  }
1688
- __name(_ts_decorate17, "_ts_decorate");
1689
- function _ts_metadata17(k, v) {
1807
+ __name(_ts_decorate18, "_ts_decorate");
1808
+ function _ts_metadata18(k, v) {
1690
1809
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
1691
1810
  }
1692
- __name(_ts_metadata17, "_ts_metadata");
1811
+ __name(_ts_metadata18, "_ts_metadata");
1693
1812
  function _ts_param17(paramIndex, decorator) {
1694
1813
  return function(target, key) {
1695
1814
  decorator(target, key, paramIndex);
@@ -1833,7 +1952,7 @@ var ArrayProxy = class ArrayProxy2 extends AbstractObserver {
1833
1952
  }
1834
1953
  }
1835
1954
  };
1836
- var ArrayProxyFactory = class extends KeyedInstanceFactory6 {
1955
+ var ArrayProxyFactory = class extends KeyedInstanceFactory7 {
1837
1956
  static {
1838
1957
  __name(this, "ArrayProxyFactory");
1839
1958
  }
@@ -1866,29 +1985,29 @@ var ArrayProxyFactory = class extends KeyedInstanceFactory6 {
1866
1985
  arrayObserverWithProxy.observer.dispose();
1867
1986
  }
1868
1987
  };
1869
- ArrayProxyFactory = _ts_decorate17([
1870
- Injectable17(),
1871
- _ts_param17(0, Inject16(RsXCoreInjectionTokens13.IProxyRegistry)),
1872
- _ts_metadata17("design:type", Function),
1873
- _ts_metadata17("design:paramtypes", [
1988
+ ArrayProxyFactory = _ts_decorate18([
1989
+ Injectable18(),
1990
+ _ts_param17(0, Inject15(RsXCoreInjectionTokens12.IProxyRegistry)),
1991
+ _ts_metadata18("design:type", Function),
1992
+ _ts_metadata18("design:paramtypes", [
1874
1993
  typeof IProxyRegistry === "undefined" ? Object : IProxyRegistry
1875
1994
  ])
1876
1995
  ], ArrayProxyFactory);
1877
1996
 
1878
1997
  // lib/proxies/date-proxy/date-proxy.factory.ts
1879
1998
  import { Subject as Subject4 } from "rxjs";
1880
- import { GuidKeyedInstanceFactory as GuidKeyedInstanceFactory4, Inject as Inject17, Injectable as Injectable18, RsXCoreInjectionTokens as RsXCoreInjectionTokens14, Type as Type10 } from "@rs-x/core";
1881
- function _ts_decorate18(decorators, target, key, desc) {
1999
+ import { GroupedKeyedInstanceFactory as GroupedKeyedInstanceFactory4, Inject as Inject16, Injectable as Injectable19, RsXCoreInjectionTokens as RsXCoreInjectionTokens13, Type as Type10 } from "@rs-x/core";
2000
+ function _ts_decorate19(decorators, target, key, desc) {
1882
2001
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1883
2002
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1884
2003
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
1885
2004
  return c > 3 && r && Object.defineProperty(target, key, r), r;
1886
2005
  }
1887
- __name(_ts_decorate18, "_ts_decorate");
1888
- function _ts_metadata18(k, v) {
2006
+ __name(_ts_decorate19, "_ts_decorate");
2007
+ function _ts_metadata19(k, v) {
1889
2008
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
1890
2009
  }
1891
- __name(_ts_metadata18, "_ts_metadata");
2010
+ __name(_ts_metadata19, "_ts_metadata");
1892
2011
  function _ts_param18(paramIndex, decorator) {
1893
2012
  return function(target, key) {
1894
2013
  decorator(target, key, paramIndex);
@@ -2109,16 +2228,18 @@ var DateProxy = class DateProxy2 extends AbstractObserver {
2109
2228
  }
2110
2229
  disposeInternal() {
2111
2230
  this._proxyRegistry.unregister(this.value);
2231
+ this.indexWatchRule?.dispose();
2112
2232
  this.target = Type10.cast(void 0);
2113
2233
  }
2114
2234
  };
2115
- var DateProxyFactory = class extends GuidKeyedInstanceFactory4 {
2235
+ var DateProxyFactory = class extends GroupedKeyedInstanceFactory4 {
2116
2236
  static {
2117
2237
  __name(this, "DateProxyFactory");
2118
2238
  }
2119
2239
  _proxyRegistry;
2120
- constructor(guidFactory, _proxyRegistry) {
2121
- super(guidFactory), this._proxyRegistry = _proxyRegistry;
2240
+ _nextId = 0;
2241
+ constructor(_proxyRegistry) {
2242
+ super(), this._proxyRegistry = _proxyRegistry;
2122
2243
  }
2123
2244
  getGroupId(data) {
2124
2245
  return data.date;
@@ -2140,31 +2261,32 @@ var DateProxyFactory = class extends GuidKeyedInstanceFactory4 {
2140
2261
  proxyTarget: dateProxyData.date
2141
2262
  };
2142
2263
  }
2264
+ createUniqueId(_data) {
2265
+ return this._nextId++;
2266
+ }
2143
2267
  };
2144
- DateProxyFactory = _ts_decorate18([
2145
- Injectable18(),
2146
- _ts_param18(0, Inject17(RsXCoreInjectionTokens14.IGuidFactory)),
2147
- _ts_param18(1, Inject17(RsXCoreInjectionTokens14.IProxyRegistry)),
2148
- _ts_metadata18("design:type", Function),
2149
- _ts_metadata18("design:paramtypes", [
2150
- typeof IGuidFactory === "undefined" ? Object : IGuidFactory,
2268
+ DateProxyFactory = _ts_decorate19([
2269
+ Injectable19(),
2270
+ _ts_param18(0, Inject16(RsXCoreInjectionTokens13.IProxyRegistry)),
2271
+ _ts_metadata19("design:type", Function),
2272
+ _ts_metadata19("design:paramtypes", [
2151
2273
  typeof IProxyRegistry === "undefined" ? Object : IProxyRegistry
2152
2274
  ])
2153
2275
  ], DateProxyFactory);
2154
2276
 
2155
2277
  // lib/proxies/map-proxy/map-proxy.factory.ts
2156
- import { Inject as Inject18, Injectable as Injectable19, KeyedInstanceFactory as KeyedInstanceFactory7, RsXCoreInjectionTokens as RsXCoreInjectionTokens15, Type as Type11 } from "@rs-x/core";
2157
- function _ts_decorate19(decorators, target, key, desc) {
2278
+ import { Inject as Inject17, Injectable as Injectable20, KeyedInstanceFactory as KeyedInstanceFactory8, RsXCoreInjectionTokens as RsXCoreInjectionTokens14, Type as Type11 } from "@rs-x/core";
2279
+ function _ts_decorate20(decorators, target, key, desc) {
2158
2280
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2159
2281
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2160
2282
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
2161
2283
  return c > 3 && r && Object.defineProperty(target, key, r), r;
2162
2284
  }
2163
- __name(_ts_decorate19, "_ts_decorate");
2164
- function _ts_metadata19(k, v) {
2285
+ __name(_ts_decorate20, "_ts_decorate");
2286
+ function _ts_metadata20(k, v) {
2165
2287
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
2166
2288
  }
2167
- __name(_ts_metadata19, "_ts_metadata");
2289
+ __name(_ts_metadata20, "_ts_metadata");
2168
2290
  function _ts_param19(paramIndex, decorator) {
2169
2291
  return function(target, key) {
2170
2292
  decorator(target, key, paramIndex);
@@ -2244,7 +2366,7 @@ var MapProxy = class extends AbstractObserver {
2244
2366
  });
2245
2367
  }
2246
2368
  };
2247
- var MapProxyFactory = class extends KeyedInstanceFactory7 {
2369
+ var MapProxyFactory = class extends KeyedInstanceFactory8 {
2248
2370
  static {
2249
2371
  __name(this, "MapProxyFactory");
2250
2372
  }
@@ -2276,29 +2398,29 @@ var MapProxyFactory = class extends KeyedInstanceFactory7 {
2276
2398
  mapObserverWithProxy.observer.dispose();
2277
2399
  }
2278
2400
  };
2279
- MapProxyFactory = _ts_decorate19([
2280
- Injectable19(),
2281
- _ts_param19(0, Inject18(RsXCoreInjectionTokens15.IProxyRegistry)),
2282
- _ts_metadata19("design:type", Function),
2283
- _ts_metadata19("design:paramtypes", [
2401
+ MapProxyFactory = _ts_decorate20([
2402
+ Injectable20(),
2403
+ _ts_param19(0, Inject17(RsXCoreInjectionTokens14.IProxyRegistry)),
2404
+ _ts_metadata20("design:type", Function),
2405
+ _ts_metadata20("design:paramtypes", [
2284
2406
  typeof IProxyRegistry === "undefined" ? Object : IProxyRegistry
2285
2407
  ])
2286
2408
  ], MapProxyFactory);
2287
2409
 
2288
2410
  // lib/proxies/observable-proxy/observable-proxy.factory.ts
2289
2411
  import { ReplaySubject as ReplaySubject2 } from "rxjs";
2290
- import { Inject as Inject19, Injectable as Injectable20, KeyedInstanceFactory as KeyedInstanceFactory8, RsXCoreInjectionTokens as RsXCoreInjectionTokens16 } from "@rs-x/core";
2291
- function _ts_decorate20(decorators, target, key, desc) {
2412
+ import { Inject as Inject18, Injectable as Injectable21, KeyedInstanceFactory as KeyedInstanceFactory9, RsXCoreInjectionTokens as RsXCoreInjectionTokens15 } from "@rs-x/core";
2413
+ function _ts_decorate21(decorators, target, key, desc) {
2292
2414
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2293
2415
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2294
2416
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
2295
2417
  return c > 3 && r && Object.defineProperty(target, key, r), r;
2296
2418
  }
2297
- __name(_ts_decorate20, "_ts_decorate");
2298
- function _ts_metadata20(k, v) {
2419
+ __name(_ts_decorate21, "_ts_decorate");
2420
+ function _ts_metadata21(k, v) {
2299
2421
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
2300
2422
  }
2301
- __name(_ts_metadata20, "_ts_metadata");
2423
+ __name(_ts_metadata21, "_ts_metadata");
2302
2424
  function _ts_param20(paramIndex, decorator) {
2303
2425
  return function(target, key) {
2304
2426
  decorator(target, key, paramIndex);
@@ -2342,7 +2464,7 @@ var ObservableProxy = class ObservableProxy2 extends AbstractObserver {
2342
2464
  });
2343
2465
  }, "emitObservableChange");
2344
2466
  };
2345
- var ObservableProxyFactory = class extends KeyedInstanceFactory8 {
2467
+ var ObservableProxyFactory = class extends KeyedInstanceFactory9 {
2346
2468
  static {
2347
2469
  __name(this, "ObservableProxyFactory");
2348
2470
  }
@@ -2374,29 +2496,29 @@ var ObservableProxyFactory = class extends KeyedInstanceFactory8 {
2374
2496
  observableObserverWithProxy.observer.dispose();
2375
2497
  }
2376
2498
  };
2377
- ObservableProxyFactory = _ts_decorate20([
2378
- Injectable20(),
2379
- _ts_param20(0, Inject19(RsXCoreInjectionTokens16.IObservableAccessor)),
2380
- _ts_metadata20("design:type", Function),
2381
- _ts_metadata20("design:paramtypes", [
2499
+ ObservableProxyFactory = _ts_decorate21([
2500
+ Injectable21(),
2501
+ _ts_param20(0, Inject18(RsXCoreInjectionTokens15.IObservableAccessor)),
2502
+ _ts_metadata21("design:type", Function),
2503
+ _ts_metadata21("design:paramtypes", [
2382
2504
  typeof IObservableAccessor === "undefined" ? Object : IObservableAccessor
2383
2505
  ])
2384
2506
  ], ObservableProxyFactory);
2385
2507
 
2386
2508
  // lib/proxies/promise-proxy/promise-proxy.factory.ts
2387
2509
  import { ReplaySubject as ReplaySubject3 } from "rxjs";
2388
- import { Inject as Inject20, Injectable as Injectable21, KeyedInstanceFactory as KeyedInstanceFactory9, RsXCoreInjectionTokens as RsXCoreInjectionTokens17 } from "@rs-x/core";
2389
- function _ts_decorate21(decorators, target, key, desc) {
2510
+ import { Inject as Inject19, Injectable as Injectable22, KeyedInstanceFactory as KeyedInstanceFactory10, RsXCoreInjectionTokens as RsXCoreInjectionTokens16 } from "@rs-x/core";
2511
+ function _ts_decorate22(decorators, target, key, desc) {
2390
2512
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2391
2513
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2392
2514
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
2393
2515
  return c > 3 && r && Object.defineProperty(target, key, r), r;
2394
2516
  }
2395
- __name(_ts_decorate21, "_ts_decorate");
2396
- function _ts_metadata21(k, v) {
2517
+ __name(_ts_decorate22, "_ts_decorate");
2518
+ function _ts_metadata22(k, v) {
2397
2519
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
2398
2520
  }
2399
- __name(_ts_metadata21, "_ts_metadata");
2521
+ __name(_ts_metadata22, "_ts_metadata");
2400
2522
  function _ts_param21(paramIndex, decorator) {
2401
2523
  return function(target, key) {
2402
2524
  decorator(target, key, paramIndex);
@@ -2428,7 +2550,7 @@ var PromiseObserver = class PromiseObserver2 extends AbstractObserver {
2428
2550
  });
2429
2551
  }, "onValueResolved");
2430
2552
  };
2431
- var PromiseProxyFactory = class extends KeyedInstanceFactory9 {
2553
+ var PromiseProxyFactory = class extends KeyedInstanceFactory10 {
2432
2554
  static {
2433
2555
  __name(this, "PromiseProxyFactory");
2434
2556
  }
@@ -2460,28 +2582,28 @@ var PromiseProxyFactory = class extends KeyedInstanceFactory9 {
2460
2582
  promiseObserverWithProxy.observer.dispose();
2461
2583
  }
2462
2584
  };
2463
- PromiseProxyFactory = _ts_decorate21([
2464
- Injectable21(),
2465
- _ts_param21(0, Inject20(RsXCoreInjectionTokens17.IPromiseAccessor)),
2466
- _ts_metadata21("design:type", Function),
2467
- _ts_metadata21("design:paramtypes", [
2585
+ PromiseProxyFactory = _ts_decorate22([
2586
+ Injectable22(),
2587
+ _ts_param21(0, Inject19(RsXCoreInjectionTokens16.IPromiseAccessor)),
2588
+ _ts_metadata22("design:type", Function),
2589
+ _ts_metadata22("design:paramtypes", [
2468
2590
  typeof IPromiseAccessor === "undefined" ? Object : IPromiseAccessor
2469
2591
  ])
2470
2592
  ], PromiseProxyFactory);
2471
2593
 
2472
2594
  // lib/proxies/set-proxy/set-proxy.factory.ts
2473
- import { Inject as Inject21, Injectable as Injectable22, KeyedInstanceFactory as KeyedInstanceFactory10, RsXCoreInjectionTokens as RsXCoreInjectionTokens18, Type as Type12 } from "@rs-x/core";
2474
- function _ts_decorate22(decorators, target, key, desc) {
2595
+ import { Inject as Inject20, Injectable as Injectable23, KeyedInstanceFactory as KeyedInstanceFactory11, RsXCoreInjectionTokens as RsXCoreInjectionTokens17, Type as Type12 } from "@rs-x/core";
2596
+ function _ts_decorate23(decorators, target, key, desc) {
2475
2597
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2476
2598
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2477
2599
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
2478
2600
  return c > 3 && r && Object.defineProperty(target, key, r), r;
2479
2601
  }
2480
- __name(_ts_decorate22, "_ts_decorate");
2481
- function _ts_metadata22(k, v) {
2602
+ __name(_ts_decorate23, "_ts_decorate");
2603
+ function _ts_metadata23(k, v) {
2482
2604
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
2483
2605
  }
2484
- __name(_ts_metadata22, "_ts_metadata");
2606
+ __name(_ts_metadata23, "_ts_metadata");
2485
2607
  function _ts_param22(paramIndex, decorator) {
2486
2608
  return function(target, key) {
2487
2609
  decorator(target, key, paramIndex);
@@ -2549,7 +2671,7 @@ var SetProxy = class extends AbstractObserver {
2549
2671
  });
2550
2672
  }
2551
2673
  };
2552
- var SetProxyFactory = class extends KeyedInstanceFactory10 {
2674
+ var SetProxyFactory = class extends KeyedInstanceFactory11 {
2553
2675
  static {
2554
2676
  __name(this, "SetProxyFactory");
2555
2677
  }
@@ -2581,11 +2703,11 @@ var SetProxyFactory = class extends KeyedInstanceFactory10 {
2581
2703
  setObserverWithProxy.observer.dispose();
2582
2704
  }
2583
2705
  };
2584
- SetProxyFactory = _ts_decorate22([
2585
- Injectable22(),
2586
- _ts_param22(0, Inject21(RsXCoreInjectionTokens18.IProxyRegistry)),
2587
- _ts_metadata22("design:type", Function),
2588
- _ts_metadata22("design:paramtypes", [
2706
+ SetProxyFactory = _ts_decorate23([
2707
+ Injectable23(),
2708
+ _ts_param22(0, Inject20(RsXCoreInjectionTokens17.IProxyRegistry)),
2709
+ _ts_metadata23("design:type", Function),
2710
+ _ts_metadata23("design:paramtypes", [
2589
2711
  typeof IProxyRegistry === "undefined" ? Object : IProxyRegistry
2590
2712
  ])
2591
2713
  ], SetProxyFactory);
@@ -2594,25 +2716,25 @@ SetProxyFactory = _ts_decorate22([
2594
2716
  import { ContainerModule, InjectionContainer, registerMultiInjectServices, RsXCoreModule } from "@rs-x/core";
2595
2717
 
2596
2718
  // lib/state-manager/object-state-manager.ts
2597
- import { Inject as Inject22, Injectable as Injectable23, KeyedInstanceFactory as KeyedInstanceFactory11, RsXCoreInjectionTokens as RsXCoreInjectionTokens19, UnsupportedException as UnsupportedException2 } from "@rs-x/core";
2598
- function _ts_decorate23(decorators, target, key, desc) {
2719
+ import { Inject as Inject21, Injectable as Injectable24, KeyedInstanceFactory as KeyedInstanceFactory12, RsXCoreInjectionTokens as RsXCoreInjectionTokens18, UnsupportedException as UnsupportedException2 } from "@rs-x/core";
2720
+ function _ts_decorate24(decorators, target, key, desc) {
2599
2721
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2600
2722
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2601
2723
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
2602
2724
  return c > 3 && r && Object.defineProperty(target, key, r), r;
2603
2725
  }
2604
- __name(_ts_decorate23, "_ts_decorate");
2605
- function _ts_metadata23(k, v) {
2726
+ __name(_ts_decorate24, "_ts_decorate");
2727
+ function _ts_metadata24(k, v) {
2606
2728
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
2607
2729
  }
2608
- __name(_ts_metadata23, "_ts_metadata");
2730
+ __name(_ts_metadata24, "_ts_metadata");
2609
2731
  function _ts_param23(paramIndex, decorator) {
2610
2732
  return function(target, key) {
2611
2733
  decorator(target, key, paramIndex);
2612
2734
  };
2613
2735
  }
2614
2736
  __name(_ts_param23, "_ts_param");
2615
- var StateForObjectManager = class extends KeyedInstanceFactory11 {
2737
+ var StateForObjectManager = class extends KeyedInstanceFactory12 {
2616
2738
  static {
2617
2739
  __name(this, "StateForObjectManager");
2618
2740
  }
@@ -2665,7 +2787,7 @@ var StateForObjectManager = class extends KeyedInstanceFactory11 {
2665
2787
  this.releaseContext();
2666
2788
  }
2667
2789
  };
2668
- var ObjectStateManager = class extends KeyedInstanceFactory11 {
2790
+ var ObjectStateManager = class extends KeyedInstanceFactory12 {
2669
2791
  static {
2670
2792
  __name(this, "ObjectStateManager");
2671
2793
  }
@@ -2695,7 +2817,7 @@ var ObjectStateManager = class extends KeyedInstanceFactory11 {
2695
2817
  if (stateForObjectManagerForNewContext) {
2696
2818
  stateForObjectManagerForNewContext.set(key, newValue, watched, ownerId);
2697
2819
  } else if (newValue !== void 0) {
2698
- this.create(newContext).instance.create({
2820
+ this.createAndGetInstance(newContext).create({
2699
2821
  key,
2700
2822
  value: newValue,
2701
2823
  watched,
@@ -2710,28 +2832,28 @@ var ObjectStateManager = class extends KeyedInstanceFactory11 {
2710
2832
  return new StateForObjectManager(this._deepClone, () => this.release(context));
2711
2833
  }
2712
2834
  };
2713
- ObjectStateManager = _ts_decorate23([
2714
- Injectable23(),
2715
- _ts_param23(0, Inject22(RsXCoreInjectionTokens19.IDeepClone)),
2716
- _ts_metadata23("design:type", Function),
2717
- _ts_metadata23("design:paramtypes", [
2835
+ ObjectStateManager = _ts_decorate24([
2836
+ Injectable24(),
2837
+ _ts_param23(0, Inject21(RsXCoreInjectionTokens18.IDeepClone)),
2838
+ _ts_metadata24("design:type", Function),
2839
+ _ts_metadata24("design:paramtypes", [
2718
2840
  typeof IDeepClone === "undefined" ? Object : IDeepClone
2719
2841
  ])
2720
2842
  ], ObjectStateManager);
2721
2843
 
2722
2844
  // lib/state-manager/state-manager.ts
2723
2845
  import { Subject as Subject5 } from "rxjs";
2724
- import { Assertion, Inject as Inject23, Injectable as Injectable24, PENDING, RsXCoreInjectionTokens as RsXCoreInjectionTokens20, truePredicate as truePredicate6 } from "@rs-x/core";
2846
+ import { Assertion, Inject as Inject22, Injectable as Injectable25, PENDING, RsXCoreInjectionTokens as RsXCoreInjectionTokens19, truePredicate as truePredicate6 } from "@rs-x/core";
2725
2847
 
2726
2848
  // lib/state-manager/state-change-subscription-manager/state-change-subsription-manager.ts
2727
- import { KeyedInstanceFactory as KeyedInstanceFactory12 } from "@rs-x/core";
2849
+ import { KeyedInstanceFactory as KeyedInstanceFactory13 } from "@rs-x/core";
2728
2850
  var StateChangeSubscriptionsForContextManager = class StateChangeSubscriptionsForContextManager2 extends GroupedChangeSubscriptionsForContextManager {
2729
2851
  static {
2730
2852
  __name(this, "StateChangeSubscriptionsForContextManager");
2731
2853
  }
2732
2854
  _objectObserverManager;
2733
- constructor(context, releaseContext, _objectObserverManager, errorLog, guidFactory) {
2734
- super(context, releaseContext, errorLog, guidFactory), this._objectObserverManager = _objectObserverManager;
2855
+ constructor(context, releaseContext, _objectObserverManager, errorLog) {
2856
+ super(context, releaseContext, errorLog), this._objectObserverManager = _objectObserverManager;
2735
2857
  }
2736
2858
  getGroupId(data) {
2737
2859
  return data.index;
@@ -2740,30 +2862,29 @@ var StateChangeSubscriptionsForContextManager = class StateChangeSubscriptionsFo
2740
2862
  return data.indexWatchRule;
2741
2863
  }
2742
2864
  createObserver(context, data, id) {
2743
- const objectObserver = this._objectObserverManager.create(context).instance;
2744
- const observer = objectObserver.create({
2865
+ const objectObserver = this._objectObserverManager.createAndGetInstance(context);
2866
+ const observer = objectObserver.createAndGetInstance({
2745
2867
  index: data.index,
2746
2868
  initializeManually: true,
2747
2869
  indexWatchRule: data.indexWatchRule,
2748
2870
  owner: {
2749
2871
  release: /* @__PURE__ */ __name(() => this.release(id), "release")
2750
2872
  }
2751
- }).instance.observer;
2873
+ }).observer;
2752
2874
  return {
2753
2875
  observer,
2754
2876
  subscriptionData: void 0
2755
2877
  };
2756
2878
  }
2757
2879
  };
2758
- var StateChangeSubscriptionManager = class extends KeyedInstanceFactory12 {
2880
+ var StateChangeSubscriptionManager = class extends KeyedInstanceFactory13 {
2759
2881
  static {
2760
2882
  __name(this, "StateChangeSubscriptionManager");
2761
2883
  }
2762
2884
  _objectObserverManager;
2763
2885
  _errorLog;
2764
- _guidFactory;
2765
- constructor(_objectObserverManager, _errorLog, _guidFactory) {
2766
- super(), this._objectObserverManager = _objectObserverManager, this._errorLog = _errorLog, this._guidFactory = _guidFactory;
2886
+ constructor(_objectObserverManager, _errorLog) {
2887
+ super(), this._objectObserverManager = _objectObserverManager, this._errorLog = _errorLog;
2767
2888
  }
2768
2889
  getId(context) {
2769
2890
  return context;
@@ -2782,7 +2903,7 @@ var StateChangeSubscriptionManager = class extends KeyedInstanceFactory12 {
2782
2903
  return context;
2783
2904
  }
2784
2905
  createInstance(context, id) {
2785
- return new StateChangeSubscriptionsForContextManager(context, () => this.release(id), this._objectObserverManager, this._errorLog, this._guidFactory);
2906
+ return new StateChangeSubscriptionsForContextManager(context, () => this.release(id), this._objectObserverManager, this._errorLog);
2786
2907
  }
2787
2908
  releaseInstance(instance, id) {
2788
2909
  super.releaseInstance(instance, id);
@@ -2791,17 +2912,17 @@ var StateChangeSubscriptionManager = class extends KeyedInstanceFactory12 {
2791
2912
  };
2792
2913
 
2793
2914
  // lib/state-manager/state-manager.ts
2794
- function _ts_decorate24(decorators, target, key, desc) {
2915
+ function _ts_decorate25(decorators, target, key, desc) {
2795
2916
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2796
2917
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2797
2918
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
2798
2919
  return c > 3 && r && Object.defineProperty(target, key, r), r;
2799
2920
  }
2800
- __name(_ts_decorate24, "_ts_decorate");
2801
- function _ts_metadata24(k, v) {
2921
+ __name(_ts_decorate25, "_ts_decorate");
2922
+ function _ts_metadata25(k, v) {
2802
2923
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
2803
2924
  }
2804
- __name(_ts_metadata24, "_ts_metadata");
2925
+ __name(_ts_metadata25, "_ts_metadata");
2805
2926
  function _ts_param24(paramIndex, decorator) {
2806
2927
  return function(target, key) {
2807
2928
  decorator(target, key, paramIndex);
@@ -2815,6 +2936,7 @@ var StateManager = class {
2815
2936
  _objectStateManager;
2816
2937
  _indexValueAccessor;
2817
2938
  _equalityService;
2939
+ _proxyRegistry;
2818
2940
  _changed = new Subject5();
2819
2941
  _contextChanged = new Subject5();
2820
2942
  _startChangeCycle = new Subject5();
@@ -2823,11 +2945,12 @@ var StateManager = class {
2823
2945
  _pending = /* @__PURE__ */ new Map();
2824
2946
  _stateEventSubscriptionsByContext = /* @__PURE__ */ new Map();
2825
2947
  _stateEventSubscriptionPool = [];
2826
- constructor(objectObserverManager, _objectStateManager, errorLog, guidFactory, _indexValueAccessor, _equalityService) {
2948
+ constructor(objectObserverManager, _objectStateManager, errorLog, _indexValueAccessor, _equalityService, _proxyRegistry) {
2827
2949
  this._objectStateManager = _objectStateManager;
2828
2950
  this._indexValueAccessor = _indexValueAccessor;
2829
2951
  this._equalityService = _equalityService;
2830
- this._stateChangeSubscriptionManager = new StateChangeSubscriptionManager(objectObserverManager, errorLog, guidFactory);
2952
+ this._proxyRegistry = _proxyRegistry;
2953
+ this._stateChangeSubscriptionManager = new StateChangeSubscriptionManager(objectObserverManager, errorLog);
2831
2954
  }
2832
2955
  get changed() {
2833
2956
  return this._changed;
@@ -2844,7 +2967,7 @@ var StateManager = class {
2844
2967
  toString() {
2845
2968
  return this._objectStateManager.toString();
2846
2969
  }
2847
- [Symbol.for("nodejs.util.inspect.custom")]() {
2970
+ [/* @__PURE__ */ Symbol.for("nodejs.util.inspect.custom")]() {
2848
2971
  return `${this.constructor.name}`;
2849
2972
  }
2850
2973
  isWatched(context, index, indexWatchRule) {
@@ -2856,12 +2979,12 @@ var StateManager = class {
2856
2979
  index,
2857
2980
  indexWatchRule
2858
2981
  });
2859
- return id ? stateChangeSubscriptionsForContextManager.has(id) : false;
2982
+ return id !== void 0 ? stateChangeSubscriptionsForContextManager.has(id) : false;
2860
2983
  }
2861
2984
  watchState(context, index, options) {
2862
2985
  if (!this.isWatched(context, index, options?.indexWatchRule)) {
2863
2986
  const value = this.getState(context, index);
2864
- this.tryToSubscribeToChange(context, index, options?.ownerId, options?.indexWatchRule);
2987
+ this.tryToSubscribeToChange(context, index, options?.ownerId, options?.indexWatchRule, void 0, options?.suppressInitialChangeEmit ?? false);
2865
2988
  return value;
2866
2989
  } else {
2867
2990
  return this.increaseStateReferenceCount(context, index, true, options?.ownerId);
@@ -2891,8 +3014,13 @@ var StateManager = class {
2891
3014
  }
2892
3015
  setState(context, index, value, ownerId) {
2893
3016
  const isExternalSetState = ownerId === void 0;
3017
+ const changeCycleIndex = {
3018
+ context,
3019
+ index
3020
+ };
2894
3021
  if (isExternalSetState) {
2895
- this._startChangeCycle.next();
3022
+ this._startChangeCycle.next(changeCycleIndex);
3023
+ this.emitStartChangeCycleEvents(changeCycleIndex);
2896
3024
  }
2897
3025
  try {
2898
3026
  this.internalSetState(context, index, value, {
@@ -2902,7 +3030,8 @@ var StateManager = class {
2902
3030
  }, ownerId);
2903
3031
  } finally {
2904
3032
  if (isExternalSetState) {
2905
- this._endChangeCycle.next();
3033
+ this._endChangeCycle.next(changeCycleIndex);
3034
+ this.emitEndChangeCycleEvents(changeCycleIndex);
2906
3035
  }
2907
3036
  }
2908
3037
  }
@@ -2927,18 +3056,23 @@ var StateManager = class {
2927
3056
  }
2928
3057
  observer.dispose();
2929
3058
  }
3059
+ hasChanged(newValue, oldValue) {
3060
+ if (Object.is(newValue, oldValue)) {
3061
+ return false;
3062
+ }
3063
+ const isObjectLike = /* @__PURE__ */ __name((v) => v !== null && (typeof v === "object" || typeof v === "function"), "isObjectLike");
3064
+ if ((isObjectLike(newValue) || isObjectLike(oldValue)) && this._equalityService.isEqual(newValue, oldValue)) {
3065
+ return false;
3066
+ }
3067
+ return true;
3068
+ }
2930
3069
  internalUnregister(context, index, indexWatchRule) {
2931
3070
  if (this.canReleaseState(context, index)) {
2932
3071
  this.unnsubscribeToObserverEvents(context, index, indexWatchRule);
2933
3072
  }
2934
3073
  }
2935
3074
  emitChange(context, index, newValue, oldValue, oldContext) {
2936
- if (newValue === oldValue || newValue !== newValue && oldValue !== oldValue) {
2937
- return;
2938
- }
2939
- const newValueIsObjectLike = newValue !== null && (typeof newValue === "object" || typeof newValue === "function");
2940
- const oldValueIsObjectLike = oldValue !== null && (typeof oldValue === "object" || typeof oldValue === "function");
2941
- if ((newValueIsObjectLike || oldValueIsObjectLike) && this._equalityService.isEqual(newValue, oldValue)) {
3075
+ if (!this.hasChanged(newValue, oldValue)) {
2942
3076
  return;
2943
3077
  }
2944
3078
  const stateChange = {
@@ -2961,7 +3095,8 @@ var StateManager = class {
2961
3095
  }
2962
3096
  increaseStateReferenceCount(context, index, watched, ownerId) {
2963
3097
  const state = this.getState(context, index);
2964
- this._objectStateManager.create(context).instance.create({
3098
+ const stateForContext = this._objectStateManager.createAndGetInstance(context);
3099
+ stateForContext.create({
2965
3100
  value: state,
2966
3101
  key: index,
2967
3102
  watched,
@@ -2969,14 +3104,14 @@ var StateManager = class {
2969
3104
  });
2970
3105
  return state;
2971
3106
  }
2972
- tryToSubscribeToChange(context, index, ownerId, indexWatchRule, transferedValue) {
2973
- this._stateChangeSubscriptionManager.create(context).instance.create({
3107
+ tryToSubscribeToChange(context, index, ownerId, indexWatchRule, transferedValue, suppressInitialChangeEmit = false) {
3108
+ this._stateChangeSubscriptionManager.createAndGetInstance(context).createAndGetInstance({
2974
3109
  index,
2975
3110
  indexWatchRule,
2976
3111
  onChanged: /* @__PURE__ */ __name((change) => this.onChange(change, true, ownerId), "onChanged"),
2977
3112
  init: /* @__PURE__ */ __name((observer) => {
2978
3113
  if (observer.value !== void 0) {
2979
- this.setInitialValue(context, index, observer.value, transferedValue, true, ownerId);
3114
+ this.setInitialValue(context, index, observer.value, transferedValue, true, ownerId, suppressInitialChangeEmit);
2980
3115
  }
2981
3116
  observer.init();
2982
3117
  }, "init")
@@ -2984,7 +3119,8 @@ var StateManager = class {
2984
3119
  }
2985
3120
  getValue(context, key) {
2986
3121
  try {
2987
- return this._indexValueAccessor.getResolvedValue(context, key);
3122
+ const value = this._indexValueAccessor.getResolvedValue(context, key);
3123
+ return this._proxyRegistry.getProxyTarget(value) ?? value;
2988
3124
  } catch {
2989
3125
  return this.getState(context, key);
2990
3126
  }
@@ -3134,6 +3270,24 @@ var StateManager = class {
3134
3270
  this.releaseStateEventSubscription(subscription);
3135
3271
  }
3136
3272
  }
3273
+ emitStartChangeCycleEvents(changeCycleIndex) {
3274
+ const subscriptions = this._stateEventSubscriptionsByContext.get(changeCycleIndex.context)?.get(changeCycleIndex.index);
3275
+ if (!subscriptions || subscriptions.size === 0) {
3276
+ return;
3277
+ }
3278
+ for (const subscription of subscriptions) {
3279
+ subscription.listener.onStartChangeCycle?.(changeCycleIndex);
3280
+ }
3281
+ }
3282
+ emitEndChangeCycleEvents(changeCycleIndex) {
3283
+ const subscriptions = this._stateEventSubscriptionsByContext.get(changeCycleIndex.context)?.get(changeCycleIndex.index);
3284
+ if (!subscriptions || subscriptions.size === 0) {
3285
+ return;
3286
+ }
3287
+ for (const subscription of subscriptions) {
3288
+ subscription.listener.onEndChangeCycle?.(changeCycleIndex);
3289
+ }
3290
+ }
3137
3291
  emitStateChangeEvents(change) {
3138
3292
  const subscriptions = this._stateEventSubscriptionsByContext.get(change.context)?.get(change.index);
3139
3293
  if (!subscriptions || subscriptions.size === 0) {
@@ -3183,10 +3337,14 @@ var StateManager = class {
3183
3337
  subscription.active = false;
3184
3338
  this._stateEventSubscriptionPool.push(subscription);
3185
3339
  }
3186
- setInitialValue(context, index, initialValue, transferedValue, watched, ownerId) {
3340
+ setInitialValue(context, index, initialValue, transferedValue, watched, ownerId, suppressInitialChangeEmit = false) {
3341
+ const existingStateForContext = this._objectStateManager.getFromId(context);
3342
+ const existingStateForIndex = existingStateForContext?.getFromId(index);
3343
+ const isFirstWatchedInitialization = watched && transferedValue === void 0 && existingStateForIndex === void 0;
3344
+ const previousValue = transferedValue?.value ?? existingStateForIndex?.value ?? void 0;
3187
3345
  this.updateState(context, transferedValue?.context ?? context, index, initialValue, watched, ownerId);
3188
- if (!transferedValue?.shouldEmitChange || transferedValue.shouldEmitChange(context, index)) {
3189
- this.emitChange(context, index, initialValue, transferedValue?.value, transferedValue?.context);
3346
+ if (!(suppressInitialChangeEmit && isFirstWatchedInitialization) && (!transferedValue?.shouldEmitChange || transferedValue.shouldEmitChange(context, index))) {
3347
+ this.emitChange(context, index, initialValue, previousValue, transferedValue?.context);
3190
3348
  }
3191
3349
  }
3192
3350
  getChainChanges(chain) {
@@ -3230,14 +3388,20 @@ var StateManager = class {
3230
3388
  }
3231
3389
  const value = this.getValue(context, index);
3232
3390
  const oldValue = this.getOldValue(context, index);
3233
- this._startChangeCycle.next();
3391
+ const changeCycleIndex2 = {
3392
+ context,
3393
+ index
3394
+ };
3395
+ this._startChangeCycle.next(changeCycleIndex2);
3396
+ this.emitStartChangeCycleEvents(changeCycleIndex2);
3234
3397
  try {
3235
3398
  const currentValue = this.getCurrentValue(context, index);
3236
3399
  this.tryRebindingNestedState(change.newValue, currentValue, ownerId);
3237
3400
  this.updateState(context, context, index, value, watched, ownerId);
3238
3401
  this.emitChange(context, index, value, oldValue);
3239
3402
  } finally {
3240
- this._endChangeCycle.next();
3403
+ this._endChangeCycle.next(changeCycleIndex2);
3404
+ this.emitEndChangeCycleEvents(changeCycleIndex2);
3241
3405
  }
3242
3406
  return;
3243
3407
  }
@@ -3245,9 +3409,14 @@ var StateManager = class {
3245
3409
  if (chainChanges.length === 0) {
3246
3410
  return;
3247
3411
  }
3248
- this._startChangeCycle.next();
3412
+ const chainLeaf = chainChanges[chainChanges.length - 1];
3413
+ const changeCycleIndex = {
3414
+ context: chainLeaf.context,
3415
+ index: chainLeaf.index
3416
+ };
3417
+ this._startChangeCycle.next(changeCycleIndex);
3418
+ this.emitStartChangeCycleEvents(changeCycleIndex);
3249
3419
  try {
3250
- const chainLeaf = chainChanges[chainChanges.length - 1];
3251
3420
  const currentValue = this.getCurrentValue(chainLeaf.context, chainLeaf.index);
3252
3421
  this.tryRebindingNestedState(change.newValue, currentValue, ownerId);
3253
3422
  for (let i = 0; i < chainChanges.length; i++) {
@@ -3259,29 +3428,229 @@ var StateManager = class {
3259
3428
  this.emitChange(chainChange.context, chainChange.index, chainChange.value, chainChange.oldValue);
3260
3429
  }
3261
3430
  } finally {
3262
- this._endChangeCycle.next();
3431
+ this._endChangeCycle.next(changeCycleIndex);
3432
+ this.emitEndChangeCycleEvents(changeCycleIndex);
3263
3433
  }
3264
3434
  }
3265
3435
  };
3266
- StateManager = _ts_decorate24([
3267
- Injectable24(),
3268
- _ts_param24(0, Inject23(RsXStateManagerInjectionTokens.IObjectPropertyObserverProxyPairManager)),
3269
- _ts_param24(1, Inject23(RsXStateManagerInjectionTokens.IObjectStateManager)),
3270
- _ts_param24(2, Inject23(RsXCoreInjectionTokens20.IErrorLog)),
3271
- _ts_param24(3, Inject23(RsXCoreInjectionTokens20.IGuidFactory)),
3272
- _ts_param24(4, Inject23(RsXCoreInjectionTokens20.IIndexValueAccessor)),
3273
- _ts_param24(5, Inject23(RsXCoreInjectionTokens20.IEqualityService)),
3274
- _ts_metadata24("design:type", Function),
3275
- _ts_metadata24("design:paramtypes", [
3436
+ StateManager = _ts_decorate25([
3437
+ Injectable25(),
3438
+ _ts_param24(0, Inject22(RsXStateManagerInjectionTokens.IObjectPropertyObserverProxyPairManager)),
3439
+ _ts_param24(1, Inject22(RsXStateManagerInjectionTokens.IObjectStateManager)),
3440
+ _ts_param24(2, Inject22(RsXCoreInjectionTokens19.IErrorLog)),
3441
+ _ts_param24(3, Inject22(RsXCoreInjectionTokens19.IIndexValueAccessor)),
3442
+ _ts_param24(4, Inject22(RsXCoreInjectionTokens19.IEqualityService)),
3443
+ _ts_param24(5, Inject22(RsXCoreInjectionTokens19.IProxyRegistry)),
3444
+ _ts_metadata25("design:type", Function),
3445
+ _ts_metadata25("design:paramtypes", [
3276
3446
  typeof IObjectPropertyObserverProxyPairManager === "undefined" ? Object : IObjectPropertyObserverProxyPairManager,
3277
3447
  typeof IObjectStateManager === "undefined" ? Object : IObjectStateManager,
3278
3448
  typeof IErrorLog === "undefined" ? Object : IErrorLog,
3279
- typeof IGuidFactory === "undefined" ? Object : IGuidFactory,
3280
3449
  typeof IIndexValueAccessor === "undefined" ? Object : IIndexValueAccessor,
3281
- typeof IEqualityService === "undefined" ? Object : IEqualityService
3450
+ typeof IEqualityService === "undefined" ? Object : IEqualityService,
3451
+ typeof IProxyRegistry === "undefined" ? Object : IProxyRegistry
3282
3452
  ])
3283
3453
  ], StateManager);
3284
3454
 
3455
+ // lib/state-manager/watch-factory/watch-factory.ts
3456
+ import { Dispatcher, GroupedKeyedInstanceFactory as GroupedKeyedInstanceFactory5, Inject as Inject23, Injectable as Injectable26, Type as Type13 } from "@rs-x/core";
3457
+ function _ts_decorate26(decorators, target, key, desc) {
3458
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3459
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
3460
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
3461
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
3462
+ }
3463
+ __name(_ts_decorate26, "_ts_decorate");
3464
+ function _ts_metadata26(k, v) {
3465
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
3466
+ }
3467
+ __name(_ts_metadata26, "_ts_metadata");
3468
+ function _ts_param25(paramIndex, decorator) {
3469
+ return function(target, key) {
3470
+ decorator(target, key, paramIndex);
3471
+ };
3472
+ }
3473
+ __name(_ts_param25, "_ts_param");
3474
+ var Watch = class Watch2 {
3475
+ static {
3476
+ __name(this, "Watch");
3477
+ }
3478
+ _owner;
3479
+ _context;
3480
+ index;
3481
+ _options;
3482
+ _stateManager;
3483
+ _watchReferenceCount = 0;
3484
+ _changeDispatcher = new Dispatcher();
3485
+ _contextChangedDispatcher = new Dispatcher();
3486
+ _startChangeCycleDispatcher = new Dispatcher();
3487
+ _endChangeCycleDispatcher = new Dispatcher();
3488
+ _isWatched = false;
3489
+ _isDisposed = false;
3490
+ _stateEventUnsubscribe;
3491
+ _value;
3492
+ constructor(_owner, _context, index, _options, _stateManager) {
3493
+ this._owner = _owner;
3494
+ this._context = _context;
3495
+ this.index = index;
3496
+ this._options = _options;
3497
+ this._stateManager = _stateManager;
3498
+ }
3499
+ get context() {
3500
+ return this._context;
3501
+ }
3502
+ get value() {
3503
+ return this._value;
3504
+ }
3505
+ get changed() {
3506
+ return this._changeDispatcher.observable;
3507
+ }
3508
+ get contextChange() {
3509
+ return this._contextChangedDispatcher.observable;
3510
+ }
3511
+ get startChangeCycle() {
3512
+ return this._startChangeCycleDispatcher.observable;
3513
+ }
3514
+ get endChangeCycle() {
3515
+ return this._endChangeCycleDispatcher.observable;
3516
+ }
3517
+ watch() {
3518
+ this._watchReferenceCount++;
3519
+ if (this._isWatched) {
3520
+ return;
3521
+ }
3522
+ if (Type13.isReadonlyProperty(this.context, this.index)) {
3523
+ this._value = this._stateManager.getState(this.context, this.index);
3524
+ } else {
3525
+ this._value = this._stateManager.watchState(this.context, this.index, {
3526
+ ...this._options,
3527
+ suppressInitialChangeEmit: true
3528
+ });
3529
+ if (this._value === void 0) {
3530
+ this._value = this._stateManager.getState(this.context, this.index);
3531
+ }
3532
+ }
3533
+ this._stateEventUnsubscribe = this._stateManager.subscribeStateEvents(this.context, this.index, {
3534
+ onStateChange: this.onChanged,
3535
+ onContextChanged: this.onContextChanged,
3536
+ onStartChangeCycle: this.onStartChangeCycle,
3537
+ onEndChangeCycle: this.onEndChangeCycle
3538
+ });
3539
+ this._isWatched = true;
3540
+ }
3541
+ onChanged = /* @__PURE__ */ __name((change) => {
3542
+ if (change.context == this._context && change.index === this.index) {
3543
+ this._value = change.newValue;
3544
+ this._changeDispatcher.dispatch(change);
3545
+ }
3546
+ }, "onChanged");
3547
+ onContextChanged = /* @__PURE__ */ __name((change) => {
3548
+ if (this._options.ownerId === void 0 && this._context === change.oldContext && this.index === change.index) {
3549
+ this._context = change.context;
3550
+ this._contextChangedDispatcher.dispatch(change);
3551
+ }
3552
+ }, "onContextChanged");
3553
+ onStartChangeCycle = /* @__PURE__ */ __name((cycle) => {
3554
+ this._startChangeCycleDispatcher.dispatch(cycle);
3555
+ }, "onStartChangeCycle");
3556
+ onEndChangeCycle = /* @__PURE__ */ __name((cycle) => {
3557
+ this._endChangeCycleDispatcher.dispatch(cycle);
3558
+ }, "onEndChangeCycle");
3559
+ unwatch() {
3560
+ if (!this._isWatched) {
3561
+ return;
3562
+ }
3563
+ this._watchReferenceCount--;
3564
+ if (this._watchReferenceCount == 0) {
3565
+ this._stateManager.releaseState(this._context, this.index, this._options.indexWatchRule);
3566
+ this._stateEventUnsubscribe?.();
3567
+ this._stateEventUnsubscribe = void 0;
3568
+ this._isWatched = false;
3569
+ }
3570
+ }
3571
+ addListeners(key, callbacks) {
3572
+ this._changeDispatcher.addListener(key, callbacks.onChanged);
3573
+ this._contextChangedDispatcher.addListener(key, callbacks.onContextChanged);
3574
+ this._startChangeCycleDispatcher.addListener(key, callbacks.onStartChangeCycle);
3575
+ this._endChangeCycleDispatcher.addListener(key, callbacks.onEndChangeCycle);
3576
+ }
3577
+ removeListeners(key) {
3578
+ this._changeDispatcher.removeListener(key);
3579
+ this._contextChangedDispatcher.removeListener(key);
3580
+ this._startChangeCycleDispatcher.removeListener(key);
3581
+ this._endChangeCycleDispatcher.removeListener(key);
3582
+ }
3583
+ dispose() {
3584
+ if (this._isDisposed) {
3585
+ return;
3586
+ }
3587
+ const canDispose = this._owner.canDispose;
3588
+ if (canDispose()) {
3589
+ this._watchReferenceCount = 1;
3590
+ this.unwatch();
3591
+ this._isDisposed = true;
3592
+ }
3593
+ this._owner.release();
3594
+ }
3595
+ };
3596
+ var WatchFactory = class extends GroupedKeyedInstanceFactory5 {
3597
+ static {
3598
+ __name(this, "WatchFactory");
3599
+ }
3600
+ _stateManager;
3601
+ _identityMap = /* @__PURE__ */ new WeakMap();
3602
+ _identityIndex = 0;
3603
+ _nextId = 0;
3604
+ constructor(_stateManager) {
3605
+ super(), this._stateManager = _stateManager;
3606
+ }
3607
+ getGroupId(data) {
3608
+ return data.context;
3609
+ }
3610
+ getGroupMemberId(data) {
3611
+ const watchData = data;
3612
+ const watchRule = watchData.options?.indexWatchRule;
3613
+ if (watchRule === void 0) {
3614
+ return watchData.index;
3615
+ }
3616
+ return `${this.toIdentityKey(watchData.index)}|${this.toIdentityKey(watchRule)}`;
3617
+ }
3618
+ createInstance(data, id) {
3619
+ return new Watch({
3620
+ canDispose: /* @__PURE__ */ __name(() => this.getReferenceCount(id) === 1, "canDispose"),
3621
+ release: /* @__PURE__ */ __name(() => this.release(id), "release")
3622
+ }, data.context, data.index, data.options, this._stateManager);
3623
+ }
3624
+ createUniqueId(_data) {
3625
+ return this._nextId++;
3626
+ }
3627
+ toIdentityKey(value) {
3628
+ if (value === null) {
3629
+ return "null";
3630
+ }
3631
+ const valueType = typeof value;
3632
+ if (valueType === "object" || valueType === "function") {
3633
+ const target = value;
3634
+ const existing = this._identityMap.get(target);
3635
+ if (existing) {
3636
+ return existing;
3637
+ }
3638
+ const key = `obj:${++this._identityIndex}`;
3639
+ this._identityMap.set(target, key);
3640
+ return key;
3641
+ }
3642
+ return `${valueType}:${String(value)}`;
3643
+ }
3644
+ };
3645
+ WatchFactory = _ts_decorate26([
3646
+ Injectable26(),
3647
+ _ts_param25(0, Inject23(RsXStateManagerInjectionTokens.IStateManager)),
3648
+ _ts_metadata26("design:type", Function),
3649
+ _ts_metadata26("design:paramtypes", [
3650
+ typeof IStateManager === "undefined" ? Object : IStateManager
3651
+ ])
3652
+ ], WatchFactory);
3653
+
3285
3654
  // lib/rs-x-state-manager.module.ts
3286
3655
  var defaultObjectObserverProxyPairFactoryList = [
3287
3656
  {
@@ -3336,6 +3705,7 @@ var RsXStateManagerModule = new ContainerModule((options) => {
3336
3705
  options.bind(RsXStateManagerInjectionTokens.IPromiseProxyFactory).to(PromiseProxyFactory).inSingletonScope();
3337
3706
  options.bind(RsXStateManagerInjectionTokens.IObservableProxyFactory).to(ObservableProxyFactory).inSingletonScope();
3338
3707
  options.bind(RsXStateManagerInjectionTokens.IObjectPropertyObserverProxyPairManager).to(ObjectPropertyObserverProxyPairManager).inSingletonScope();
3708
+ options.bind(RsXStateManagerInjectionTokens.IIndexWatchRuleFactory).to(IndexWatchRuleFactory).inSingletonScope();
3339
3709
  registerMultiInjectServices(options, RsXStateManagerInjectionTokens.IObjectObserverProxyPairFactoryList, defaultObjectObserverProxyPairFactoryList);
3340
3710
  registerMultiInjectServices(options, RsXStateManagerInjectionTokens.IPropertyObserverProxyPairFactoryList, defaultPropertyObserverProxyPairFactoryList);
3341
3711
  options.bind(RsXStateManagerInjectionTokens.IObjectObserverProxyPairFactoryProvider).to(ObjectObserverProxyPairFactoryProvider).inSingletonScope();
@@ -3348,6 +3718,7 @@ var RsXStateManagerModule = new ContainerModule((options) => {
3348
3718
  return () => context.get(RsXStateManagerInjectionTokens.IObjectObserverProxyPairFactoryProvider);
3349
3719
  });
3350
3720
  options.bind(RsXStateManagerInjectionTokens.IStateManager).to(StateManager).inSingletonScope();
3721
+ options.bind(RsXStateManagerInjectionTokens.IWatchFactory).to(WatchFactory).inSingletonScope();
3351
3722
  });
3352
3723
  async function unloadRsXStateManagerModule() {
3353
3724
  await InjectionContainer.unload(RsXStateManagerModule);
@@ -3369,6 +3740,7 @@ export {
3369
3740
  IndexChangeSubscriptionManager,
3370
3741
  IndexObserverProxyPairFactory,
3371
3742
  IndexWatchRule,
3743
+ IndexWatchRuleFactory,
3372
3744
  MapObserverProxyPairFactory,
3373
3745
  MapProxy,
3374
3746
  MapProxyFactory,
@@ -3392,6 +3764,7 @@ export {
3392
3764
  StateChangeSubscriptionManager,
3393
3765
  StateForObjectManager,
3394
3766
  StateManager,
3767
+ WatchFactory,
3395
3768
  defaultObjectObserverProxyPairFactoryList,
3396
3769
  defaultPropertyObserverProxyPairFactoryList,
3397
3770
  unloadRsXStateManagerModule,