@foblex/flow 18.1.1 → 18.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,9 +1,9 @@
1
- import { ChangeDetectionStrategy, Component, computed, effect, ElementRef, inject, Injector, input, numberAttribute, output, viewChild, } from '@angular/core';
1
+ import { afterNextRender, ChangeDetectionStrategy, Component, computed, effect, ElementRef, inject, Injector, input, numberAttribute, output, viewChild, } from '@angular/core';
2
2
  import { F_CANVAS, FCanvasBase } from './f-canvas-base';
3
3
  import { PointExtensions, TransformModelExtensions } from '@foblex/2d';
4
4
  import { FMediator } from '@foblex/mediator';
5
5
  import { AddCanvasToStoreRequest, CenterGroupOrNodeRequest, FitToFlowRequest, GetFlowRequest, InputCanvasPositionRequest, InputCanvasScaleRequest, isMobile, RemoveCanvasFromStoreRequest, ResetScaleAndCenterRequest, ResetScaleRequest, SetBackgroundTransformRequest, transitionEnd, UpdateScaleRequest, } from '../domain';
6
- import { ListenDataChangesRequest, NotifyTransformChangedRequest } from '../f-storage';
6
+ import { FComponentsStore, ListenDataChangesRequest, NotifyTransformChangedRequest, } from '../f-storage';
7
7
  import { takeOne } from '../reactivity';
8
8
  import * as i0 from "@angular/core";
9
9
  /**
@@ -17,6 +17,7 @@ import * as i0 from "@angular/core";
17
17
  */
18
18
  export class FCanvasComponent extends FCanvasBase {
19
19
  _mediator = inject(FMediator);
20
+ _componentsStore = inject(FComponentsStore);
20
21
  _elementReference = inject(ElementRef);
21
22
  _injector = inject(Injector);
22
23
  _flowId;
@@ -128,8 +129,12 @@ export class FCanvasComponent extends FCanvasBase {
128
129
  this._mediator.execute(new RemoveCanvasFromStoreRequest());
129
130
  }
130
131
  _afterRedraw(callback) {
132
+ if (this._componentsStore.dataVersion > 0) {
133
+ afterNextRender(callback, { injector: this._injector });
134
+ return;
135
+ }
131
136
  this._mediator
132
- .execute(new ListenDataChangesRequest())
137
+ .execute(new ListenDataChangesRequest(false))
133
138
  .pipe(takeOne())
134
139
  .listen(this.destroyRef, callback);
135
140
  }
@@ -142,4 +147,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
142
147
  'class': 'f-component f-canvas',
143
148
  }, providers: [{ provide: F_CANVAS, useExisting: FCanvasComponent }], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container>\n <div #fGroupsContainer>\n <ng-content select=\"[fGroup], [fGroups]\" />\n </div>\n <div #fConnectionsContainer class=\"f-connections-container\">\n <ng-content select=\"f-snap-connection\" />\n <ng-content select=\"f-connection, [fConnections]\" />\n <ng-content select=\"f-connection-for-create\" />\n </div>\n\n <div #fNodesContainer>\n <ng-content select=\"[fNode], [fNodes]\" />\n </div>\n</ng-container>\n", styles: [":host{position:absolute;overflow:visible;width:100%;height:100%;left:0;top:0;transform-origin:0 0;pointer-events:none}:host.canvas-dragging{transform:translateZ(0)}.f-connections-container{position:absolute;z-index:2}\n"] }]
144
149
  }] });
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jYW52YXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNhbnZhcy9mLWNhbnZhcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY2FudmFzL2YtY2FudmFzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixNQUFNLEVBQ04sVUFBVSxFQUNWLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUNMLGVBQWUsRUFHZixNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUFVLGVBQWUsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUUvRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDN0MsT0FBTyxFQUNMLHVCQUF1QixFQUN2Qix3QkFBd0IsRUFDeEIsZ0JBQWdCLEVBQ2hCLGNBQWMsRUFDZCwwQkFBMEIsRUFDMUIsdUJBQXVCLEVBQ3ZCLFFBQVEsRUFDUiw0QkFBNEIsRUFDNUIsMEJBQTBCLEVBQzFCLGlCQUFpQixFQUNqQiw2QkFBNkIsRUFDN0IsYUFBYSxFQUNiLGtCQUFrQixHQUNuQixNQUFNLFdBQVcsQ0FBQztBQUNuQixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFdkYsT0FBTyxFQUFlLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFckQ7Ozs7Ozs7O0dBUUc7QUFZSCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsV0FBVztJQUM5QixTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lB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QVEsRUFBRSxXQUFXLGtCQUFrQixFQUFFLENBQUMsbUJBQ2hELHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBjb21wdXRlZCxcbiAgZWZmZWN0LFxuICBFbGVtZW50UmVmLFxuICBpbmplY3QsXG4gIEluamVjdG9yLFxuICBpbnB1dCxcbiAgbnVtYmVyQXR0cmlidXRlLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgb3V0cHV0LFxuICB2aWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRl9DQU5WQVMsIEZDYW52YXNCYXNlIH0gZnJvbSAnLi9mLWNhbnZhcy1iYXNlJztcbmltcG9ydCB7IElQb2ludCwgUG9pbnRFeHRlbnNpb25zLCBUcmFuc2Zvcm1Nb2RlbEV4dGVuc2lvbnMgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IEZDYW52YXNDaGFuZ2VFdmVudCB9IGZyb20gJy4vZG9tYWluJztcbmltcG9ydCB7IEZNZWRpYXRvciB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHtcbiAgQWRkQ2FudmFzVG9TdG9yZVJlcXVlc3QsXG4gIENlbnRlckdyb3VwT3JOb2RlUmVxdWVzdCxcbiAgRml0VG9GbG93UmVxdWVzdCxcbiAgR2V0Rmxvd1JlcXVlc3QsXG4gIElucHV0Q2FudmFzUG9zaXRpb25SZXF1ZXN0LFxuICBJbnB1dENhbnZhc1NjYWxlUmVxdWVzdCxcbiAgaXNNb2JpbGUsXG4gIFJlbW92ZUNhbnZhc0Zyb21TdG9yZVJlcXVlc3QsXG4gIFJlc2V0U2NhbGVBbmRDZW50ZXJSZXF1ZXN0LFxuICBSZXNldFNjYWxlUmVxdWVzdCxcbiAgU2V0QmFja2dyb3VuZFRyYW5zZm9ybVJlcXVlc3QsXG4gIHRyYW5zaXRpb25FbmQsXG4gIFVwZGF0ZVNjYWxlUmVxdWVzdCxcbn0gZnJvbSAnLi4vZG9tYWluJztcbmltcG9ydCB7IExpc3RlbkRhdGFDaGFuZ2VzUmVxdWVzdCwgTm90aWZ5VHJhbnNmb3JtQ2hhbmdlZFJlcXVlc3QgfSBmcm9tICcuLi9mLXN0b3JhZ2UnO1xuaW1wb3J0IHsgRkZsb3dCYXNlIH0gZnJvbSAnLi4vZi1mbG93JztcbmltcG9ydCB7IEZDaGFubmVsSHViLCB0YWtlT25lIH0gZnJvbSAnLi4vcmVhY3Rpdml0eSc7XG5cbi8qKlxuICogQ29tcG9uZW50IHJlcHJlc2VudGluZyBhIGNhbnZhcyBpbiB0aGUgRi1GbG93IGZyYW1ld29yay5cbiAqIEl0IGhhbmRsZXMgdGhlIHJlbmRlcmluZyBvZiBub2RlcywgY29ubmVjdGlvbnMsIGFuZCBncm91cHMsXG4gKiBhcyB3ZWxsIGFzIHVzZXIgaW50ZXJhY3Rpb25zIHN1Y2ggYXMgem9vbWluZyBhbmQgcGFubmluZy5cbiAqIEl0IGV4dGVuZHMgdGhlIEZDYW52YXNCYXNlIGNsYXNzIGFuZCBpbXBsZW1lbnRzIE9uSW5pdCBhbmQgT25EZXN0cm95IGxpZmVjeWNsZSBob29rcy5cbiAqIEl0IHByb3ZpZGVzIG1ldGhvZHMgdG8gbWFuaXB1bGF0ZSB0aGUgY2FudmFzLCBzdWNoIGFzIGNlbnRlcmluZyBub2RlcyBvciBncm91cHMsXG4gKiBmaXR0aW5nIHRoZSBjYW52YXMgdG8gdGhlIHNjcmVlbiwgYW5kIHJlc2V0dGluZyB0aGUgc2NhbGUuXG4gKiBJdCBhbHNvIGVtaXRzIGV2ZW50cyB3aGVuIHRoZSBjYW52YXMgY2hhbmdlcywgYWxsb3dpbmcgb3RoZXIgY29tcG9uZW50cyB0byByZWFjdCB0byB0aGVzZSBjaGFuZ2VzLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmLWNhbnZhcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9mLWNhbnZhcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2YtY2FudmFzLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGhvc3Q6IHtcbiAgICAnY2xhc3MnOiAnZi1jb21wb25lbnQgZi1jYW52YXMnLFxuICB9LFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEZfQ0FOVkFTLCB1c2VFeGlzdGluZzogRkNhbnZhc0NvbXBvbmVudCB9XSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEZDYW52YXNDb21wb25lbnQgZXh0ZW5kcyBGQ2FudmFzQmFzZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfbWVkaWF0b3IgPSBpbmplY3QoRk1lZGlhdG9yKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZmVyZW5jZSA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXG4gIHByaXZhdGUgX2Zsb3dJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBmQ2FudmFzQ2hhbmdlID0gb3V0cHV0PEZDYW52YXNDaGFuZ2VFdmVudD4oKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgcG9zaXRpb24gPSBpbnB1dDxJUG9pbnQsIElQb2ludCB8IG51bGwgfCB1bmRlZmluZWQ+KFxuICAgIFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKCksXG4gICAgeyB0cmFuc2Zvcm06IFBvaW50RXh0ZW5zaW9ucy5jYXN0VG9Qb2ludCB9LFxuICApO1xuICBwdWJsaWMgcmVhZG9ubHkgc2NhbGUgPSBpbnB1dDxudW1iZXIsIHVua25vd24+KDEsIHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSk7XG4gIHB1YmxpYyByZWFkb25seSBkZWJvdW5jZVRpbWUgPSBpbnB1dDxudW1iZXIsIHVua25vd24+KDAsIHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSk7XG4gIHB1YmxpYyBvdmVycmlkZSBkZWJvdW5jZSA9IGNvbXB1dGVkKCgpID0+ICh0aGlzLmRlYm91bmNlVGltZSgpIDwgMCA/IDAgOiB0aGlzLmRlYm91bmNlVGltZSgpKSk7XG5cbiAgcHVibGljIG92ZXJyaWRlIGdldCBob3N0RWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRSZWZlcmVuY2UubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBmR3JvdXBzQ29udGFpbmVyID1cbiAgICB2aWV3Q2hpbGQucmVxdWlyZWQ8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KCdmR3JvdXBzQ29udGFpbmVyJyk7XG4gIHB1YmxpYyBvdmVycmlkZSBmTm9kZXNDb250YWluZXIgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KCdmTm9kZXNDb250YWluZXInKTtcbiAgcHVibGljIG92ZXJyaWRlIGZDb25uZWN0aW9uc0NvbnRhaW5lciA9XG4gICAgdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PignZkNvbm5lY3Rpb25zQ29udGFpbmVyJyk7XG5cbiAgcHVibGljIGdldCBmbG93SWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fZmxvd0lkITtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9mbG93SWQgPSB0aGlzLl9tZWRpYXRvci5leGVjdXRlPEZGbG93QmFzZT4obmV3IEdldEZsb3dSZXF1ZXN0KCkpLmZJZCgpO1xuICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGUobmV3IEFkZENhbnZhc1RvU3RvcmVSZXF1ZXN0KHRoaXMpKTtcbiAgICB0aGlzLl9wb3NpdGlvbkNoYW5nZSgpO1xuICAgIHRoaXMuX3NjYWxlQ2hhbmdlKCk7XG4gICAgc3VwZXIuc3Vic2NyaWJlT25DYW52YXNDaGFuZ2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3Bvc2l0aW9uQ2hhbmdlKCk6IHZvaWQge1xuICAgIGVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZShuZXcgSW5wdXRDYW52YXNQb3NpdGlvblJlcXVlc3QodGhpcy50cmFuc2Zvcm0sIHRoaXMucG9zaXRpb24oKSkpO1xuICAgICAgfSxcbiAgICAgIHsgaW5qZWN0b3I6IHRoaXMuX2luamVjdG9yIH0sXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX3NjYWxlQ2hhbmdlKCk6IHZvaWQge1xuICAgIGVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZShuZXcgSW5wdXRDYW52YXNTY2FsZVJlcXVlc3QodGhpcy50cmFuc2Zvcm0sIHRoaXMuc2NhbGUoKSkpO1xuICAgICAgfSxcbiAgICAgIHsgaW5qZWN0b3I6IHRoaXMuX2luamVjdG9yIH0sXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWRyYXdzIHRoZSBjYW52YXMgYnkgYXBwbHlpbmcgdGhlIGN1cnJlbnQgdHJhbnNmb3JtYXRpb24uXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgcmVkcmF3KCk6IHZvaWQge1xuICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGUobmV3IFNldEJhY2tncm91bmRUcmFuc2Zvcm1SZXF1ZXN0KHRoaXMudHJhbnNmb3JtKSk7XG4gICAgdGhpcy5ob3N0RWxlbWVudC5zZXRBdHRyaWJ1dGUoXG4gICAgICAnc3R5bGUnLFxuICAgICAgYHRyYW5zZm9ybTogJHtUcmFuc2Zvcm1Nb2RlbEV4dGVuc2lvbnMudG9TdHJpbmcodGhpcy50cmFuc2Zvcm0pfWAsXG4gICAgKTtcbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlKG5ldyBOb3RpZnlUcmFuc2Zvcm1DaGFuZ2VkUmVxdWVzdCgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWRyYXdzIHRoZSBjYW52YXMgd2l0aCBhbiBhbmltYXRpb24gZWZmZWN0LlxuICAgKiBUaGlzIG1ldGhvZCBhcHBsaWVzIGEgQ1NTIHRyYW5zaXRpb24gdG8gdGhlIGNhbnZhcyBlbGVtZW50LFxuICAgKiBhbGxvd2luZyBmb3IgYSBzbW9vdGggdmlzdWFsIHVwZGF0ZSBvZiB0aGUgY2FudmFzJ3MgdHJhbnNmb3JtYXRpb24uXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgcmVkcmF3V2l0aEFuaW1hdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlKG5ldyBTZXRCYWNrZ3JvdW5kVHJhbnNmb3JtUmVxdWVzdCh0aGlzLnRyYW5zZm9ybSkpO1xuICAgIHRoaXMuaG9zdEVsZW1lbnQuc2V0QXR0cmlidXRlKFxuICAgICAgJ3N0eWxlJyxcbiAgICAgIGB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gJHtpc01vYmlsZSgpID8gODAgOiAxNTB9bXMgZWFzZS1pbi1vdXQ7IHRyYW5zZm9ybTogJHtUcmFuc2Zvcm1Nb2RlbEV4dGVuc2lvbnMudG9TdHJpbmcodGhpcy50cmFuc2Zvcm0pfWAsXG4gICAgKTtcbiAgICB0cmFuc2l0aW9uRW5kKHRoaXMuaG9zdEVsZW1lbnQsICgpID0+IHRoaXMucmVkcmF3KCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENlbnRlcnMgdGhlIHNwZWNpZmllZCBncm91cCBvciBub2RlIG9uIHRoZSBjYW52YXMuXG4gICAqIEBwYXJhbSBncm91cE9yTm9kZUlkIC0gVGhlIElEIG9mIHRoZSBncm91cCBvciBub2RlIHRvIGNlbnRlci5cbiAgICogQHBhcmFtIGFuaW1hdGVkIC0gSWYgdHJ1ZSwgdGhlIGNlbnRlcmluZyB3aWxsIGJlIGFuaW1hdGVkOyBvdGhlcndpc2UsIGl0IHdpbGwgYmUgaW5zdGFudGFuZW91cy5cbiAgICovXG4gIHB1YmxpYyBjZW50ZXJHcm91cE9yTm9kZShncm91cE9yTm9kZUlkOiBzdHJpbmcsIGFuaW1hdGVkOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xuICAgIHRoaXMuX2FmdGVyUmVkcmF3KCgpID0+IHtcbiAgICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGUobmV3IENlbnRlckdyb3VwT3JOb2RlUmVxdWVzdChncm91cE9yTm9kZUlkLCBhbmltYXRlZCkpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpdHMgdGhlIGNhbnZhcyB0byB0aGUgc2NyZWVuIGJ5IGFkanVzdGluZyB0aGUgc2NhbGUgYW5kIHBvc2l0aW9uLlxuICAgKiBAcGFyYW0gcGFkZGluZyAtIHBhZGRpbmdzIGZyb20gdGhlIGJvdW5kcyBvZiB0aGUgY2FudmFzXG4gICAqIEBwYXJhbSBhbmltYXRlZCAtIElmIHRydWUsIHRoZSBmaXQgd2lsbCBiZSBhbmltYXRlZDsgb3RoZXJ3aXNlLCBpdCB3aWxsIGJlIGluc3RhbnRhbmVvdXMuXG4gICAqL1xuICBwdWJsaWMgZml0VG9TY3JlZW4oXG4gICAgcGFkZGluZzogSVBvaW50ID0gUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoKSxcbiAgICBhbmltYXRlZDogYm9vbGVhbiA9IHRydWUsXG4gICk6IHZvaWQge1xuICAgIHRoaXMuX2FmdGVyUmVkcmF3KCgpID0+IHtcbiAgICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGUobmV3IEZpdFRvRmxvd1JlcXVlc3QocGFkZGluZywgYW5pbWF0ZWQpKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldHMgdGhlIHNjYWxlIGFuZCBjZW50ZXIgYWxsIG5vZGVzIGFuZCBncm91cHMgb24gdGhlIGNhbnZhcy5cbiAgICogVGhpcyBtZXRob2QgaXMgdXNlZCB0byByZXN0b3JlIHRoZSBjYW52YXMgdG8gaXRzIGRlZmF1bHQgc2NhbGUgYW5kIHBvc2l0aW9uLFxuICAgKiBhbGxvd2luZyB1c2VycyB0byBxdWlja2x5IHJldHVybiB0byBhIHN0YW5kYXJkIHZpZXcgb2YgdGhlIGNhbnZhcyBjb250ZW50LlxuICAgKiBAcGFyYW0gYW5pbWF0ZWQgLSBJZiB0cnVlLCB0aGUgcmVzZXQgd2lsbCBiZSBhbmltYXRlZDsgb3RoZXJ3aXNlLCBpdCB3aWxsIGJlIGluc3RhbnRhbmVvdXMuXG4gICAqIFRoaXMgaXMgdXNlZnVsIGZvciBwcm92aWRpbmcgYSBzbW9vdGggdXNlciBleHBlcmllbmNlIHdoZW4gcmVzZXR0aW5nIHRoZSB2aWV3LlxuICAgKi9cbiAgcHVibGljIHJlc2V0U2NhbGVBbmRDZW50ZXIoYW5pbWF0ZWQ6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XG4gICAgdGhpcy5fYWZ0ZXJSZWRyYXcoKCkgPT4ge1xuICAgICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZShuZXcgUmVzZXRTY2FsZUFuZENlbnRlclJlcXVlc3QoYW5pbWF0ZWQpKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgR2V0cyB0aGUgY3VycmVudCBzY2FsZSBvZiB0aGUgY2FudmFzLlxuICAgKi9cbiAgcHVibGljIGdldFNjYWxlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNmb3JtLnNjYWxlIHx8IDE7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgc2NhbGUgb2YgdGhlIGNhbnZhcyB0byBhIHNwZWNpZmllZCB2YWx1ZS5cbiAgICogVGhpcyBtZXRob2QgaXMgdXNlZCB0byB6b29tIGluIG9yIG91dCBvZiB0aGUgY2FudmFzLFxuICAgKiBhbGxvd2luZyB1c2VycyB0byBhZGp1c3QgdGhlIHZpZXcgb2YgdGhlIGNhbnZhcyBjb250ZW50LlxuICAgKiBAcGFyYW0gc2NhbGUgLSBUaGUgc2NhbGUgZmFjdG9yIHRvIHNldCBmb3IgdGhlIGNhbnZhcy5cbiAgICogQHBhcmFtIHRvUG9zaXRpb24gLSBUaGUgcG9zaXRpb24gdG8gd2hpY2ggdGhlIGNhbnZhcyBzaG91bGQgYmUgY2VudGVyZWQgYWZ0ZXIgc2NhbGluZy5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBzZXRTY2FsZShzY2FsZTogbnVtYmVyLCB0b1Bvc2l0aW9uOiBJUG9pbnQgPSBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgpKTogdm9pZCB7XG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZShuZXcgVXBkYXRlU2NhbGVSZXF1ZXN0KHNjYWxlLCB0b1Bvc2l0aW9uKSk7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXRzIHRoZSBzY2FsZSBvZiB0aGUgY2FudmFzIHRvIGl0cyBkZWZhdWx0IHZhbHVlLlxuICAgKiBUaGlzIG1ldGhvZCBpcyB1c2VkIHRvIHJlc3RvcmUgdGhlIGNhbnZhcyB0byBpdHMgb3JpZ2luYWwgc2NhbGUuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgcmVzZXRTY2FsZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlKG5ldyBSZXNldFNjYWxlUmVxdWVzdCgpKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlKG5ldyBSZW1vdmVDYW52YXNGcm9tU3RvcmVSZXF1ZXN0KCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfYWZ0ZXJSZWRyYXcoY2FsbGJhY2s6ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl9tZWRpYXRvclxuICAgICAgLmV4ZWN1dGU8RkNoYW5uZWxIdWI+KG5ldyBMaXN0ZW5EYXRhQ2hhbmdlc1JlcXVlc3QoKSlcbiAgICAgIC5waXBlKHRha2VPbmUoKSlcbiAgICAgIC5saXN0ZW4odGhpcy5kZXN0cm95UmVmLCBjYWxsYmFjayk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXI+XG4gIDxkaXYgI2ZHcm91cHNDb250YWluZXI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ZHcm91cF0sIFtmR3JvdXBzXVwiIC8+XG4gIDwvZGl2PlxuICA8ZGl2ICNmQ29ubmVjdGlvbnNDb250YWluZXIgY2xhc3M9XCJmLWNvbm5lY3Rpb25zLWNvbnRhaW5lclwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImYtc25hcC1jb25uZWN0aW9uXCIgLz5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJmLWNvbm5lY3Rpb24sIFtmQ29ubmVjdGlvbnNdXCIgLz5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJmLWNvbm5lY3Rpb24tZm9yLWNyZWF0ZVwiIC8+XG4gIDwvZGl2PlxuXG4gIDxkaXYgI2ZOb2Rlc0NvbnRhaW5lcj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZk5vZGVdLCBbZk5vZGVzXVwiIC8+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG4iXX0=
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jYW52YXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNhbnZhcy9mLWNhbnZhcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY2FudmFzL2YtY2FudmFzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxlQUFlLEVBQ2YsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFVBQVUsRUFDVixNQUFNLEVBQ04sUUFBUSxFQUNSLEtBQUssRUFDTCxlQUFlLEVBR2YsTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFBVSxlQUFlLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFL0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzdDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsd0JBQXdCLEVBQ3hCLGdCQUFnQixFQUNoQixjQUFjLEVBQ2QsMEJBQTBCLEVBQzFCLHVCQUF1QixFQUN2QixRQUFRLEVBQ1IsNEJBQTRCLEVBQzVCLDBCQUEwQixFQUMxQixpQkFBaUIsRUFDakIsNkJBQTZCLEVBQzdCLGFBQWEsRUFDYixrQkFBa0IsR0FDbkIsTUFBTSxXQUFXLENBQUM7QUFDbkIsT0FBTyxFQUNMLGdCQUFnQixFQUNoQix3QkFBd0IsRUFDeEIsNkJBQTZCLEdBQzlCLE1BQU0sY0FBYyxDQUFDO0FBRXRCLE9BQU8sRUFBZSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRXJEOzs7Ozs7OztHQVFHO0FBWUgsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFdBQVc7SUFDOUIsU0FBUyxHQUFHLE1B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O0lBQ3ZDLENBQUM7d0dBbktVLGdCQUFnQjs0RkFBaEIsZ0JBQWdCLHdpQkFIaEIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLENBQUMsNmFDNURuRSxrY0FjQTs7NEZEaURhLGdCQUFnQjtrQkFYNUIsU0FBUzsrQkFDRSxVQUFVLGNBR1IsSUFBSSxRQUNWO3dCQUNKLE9BQU8sRUFBRSxzQkFBc0I7cUJBQ2hDLGFBQ1UsQ0FBQyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxrQkFBa0IsRUFBRSxDQUFDLG1CQUNoRCx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYWZ0ZXJOZXh0UmVuZGVyLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBjb21wdXRlZCxcbiAgZWZmZWN0LFxuICBFbGVtZW50UmVmLFxuICBpbmplY3QsXG4gIEluamVjdG9yLFxuICBpbnB1dCxcbiAgbnVtYmVyQXR0cmlidXRlLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgb3V0cHV0LFxuICB2aWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRl9DQU5WQVMsIEZDYW52YXNCYXNlIH0gZnJvbSAnLi9mLWNhbnZhcy1iYXNlJztcbmltcG9ydCB7IElQb2ludCwgUG9pbnRFeHRlbnNpb25zLCBUcmFuc2Zvcm1Nb2RlbEV4dGVuc2lvbnMgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IEZDYW52YXNDaGFuZ2VFdmVudCB9IGZyb20gJy4vZG9tYWluJztcbmltcG9ydCB7IEZNZWRpYXRvciB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHtcbiAgQWRkQ2FudmFzVG9TdG9yZVJlcXVlc3QsXG4gIENlbnRlckdyb3VwT3JOb2RlUmVxdWVzdCxcbiAgRml0VG9GbG93UmVxdWVzdCxcbiAgR2V0Rmxvd1JlcXVlc3QsXG4gIElucHV0Q2FudmFzUG9zaXRpb25SZXF1ZXN0LFxuICBJbnB1dENhbnZhc1NjYWxlUmVxdWVzdCxcbiAgaXNNb2JpbGUsXG4gIFJlbW92ZUNhbnZhc0Zyb21TdG9yZVJlcXVlc3QsXG4gIFJlc2V0U2NhbGVBbmRDZW50ZXJSZXF1ZXN0LFxuICBSZXNldFNjYWxlUmVxdWVzdCxcbiAgU2V0QmFja2dyb3VuZFRyYW5zZm9ybVJlcXVlc3QsXG4gIHRyYW5zaXRpb25FbmQsXG4gIFVwZGF0ZVNjYWxlUmVxdWVzdCxcbn0gZnJvbSAnLi4vZG9tYWluJztcbmltcG9ydCB7XG4gIEZDb21wb25lbnRzU3RvcmUsXG4gIExpc3RlbkRhdGFDaGFuZ2VzUmVxdWVzdCxcbiAgTm90aWZ5VHJhbnNmb3JtQ2hhbmdlZFJlcXVlc3QsXG59IGZyb20gJy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQgeyBGRmxvd0Jhc2UgfSBmcm9tICcuLi9mLWZsb3cnO1xuaW1wb3J0IHsgRkNoYW5uZWxIdWIsIHRha2VPbmUgfSBmcm9tICcuLi9yZWFjdGl2aXR5JztcblxuLyoqXG4gKiBDb21wb25lbnQgcmVwcmVzZW50aW5nIGEgY2FudmFzIGluIHRoZSBGLUZsb3cgZnJhbWV3b3JrLlxuICogSXQgaGFuZGxlcyB0aGUgcmVuZGVyaW5nIG9mIG5vZGVzLCBjb25uZWN0aW9ucywgYW5kIGdyb3VwcyxcbiAqIGFzIHdlbGwgYXMgdXNlciBpbnRlcmFjdGlvbnMgc3VjaCBhcyB6b29taW5nIGFuZCBwYW5uaW5nLlxuICogSXQgZXh0ZW5kcyB0aGUgRkNhbnZhc0Jhc2UgY2xhc3MgYW5kIGltcGxlbWVudHMgT25Jbml0IGFuZCBPbkRlc3Ryb3kgbGlmZWN5Y2xlIGhvb2tzLlxuICogSXQgcHJvdmlkZXMgbWV0aG9kcyB0byBtYW5pcHVsYXRlIHRoZSBjYW52YXMsIHN1Y2ggYXMgY2VudGVyaW5nIG5vZGVzIG9yIGdyb3VwcyxcbiAqIGZpdHRpbmcgdGhlIGNhbnZhcyB0byB0aGUgc2NyZWVuLCBhbmQgcmVzZXR0aW5nIHRoZSBzY2FsZS5cbiAqIEl0IGFsc28gZW1pdHMgZXZlbnRzIHdoZW4gdGhlIGNhbnZhcyBjaGFuZ2VzLCBhbGxvd2luZyBvdGhlciBjb21wb25lbnRzIHRvIHJlYWN0IHRvIHRoZXNlIGNoYW5nZXMuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2YtY2FudmFzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2YtY2FudmFzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZi1jYW52YXMuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaG9zdDoge1xuICAgICdjbGFzcyc6ICdmLWNvbXBvbmVudCBmLWNhbnZhcycsXG4gIH0sXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogRl9DQU5WQVMsIHVzZUV4aXN0aW5nOiBGQ2FudmFzQ29tcG9uZW50IH1dLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRkNhbnZhc0NvbXBvbmVudCBleHRlbmRzIEZDYW52YXNCYXNlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IF9tZWRpYXRvciA9IGluamVjdChGTWVkaWF0b3IpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9jb21wb25lbnRzU3RvcmUgPSBpbmplY3QoRkNvbXBvbmVudHNTdG9yZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnRSZWZlcmVuY2UgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2luamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblxuICBwcml2YXRlIF9mbG93SWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgb3ZlcnJpZGUgZkNhbnZhc0NoYW5nZSA9IG91dHB1dDxGQ2FudmFzQ2hhbmdlRXZlbnQ+KCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHBvc2l0aW9uID0gaW5wdXQ8SVBvaW50LCBJUG9pbnQgfCBudWxsIHwgdW5kZWZpbmVkPihcbiAgICBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgpLFxuICAgIHsgdHJhbnNmb3JtOiBQb2ludEV4dGVuc2lvbnMuY2FzdFRvUG9pbnQgfSxcbiAgKTtcbiAgcHVibGljIHJlYWRvbmx5IHNjYWxlID0gaW5wdXQ8bnVtYmVyLCB1bmtub3duPigxLCB7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pO1xuICBwdWJsaWMgcmVhZG9ubHkgZGVib3VuY2VUaW1lID0gaW5wdXQ8bnVtYmVyLCB1bmtub3duPigwLCB7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pO1xuICBwdWJsaWMgb3ZlcnJpZGUgZGVib3VuY2UgPSBjb21wdXRlZCgoKSA9PiAodGhpcy5kZWJvdW5jZVRpbWUoKSA8IDAgPyAwIDogdGhpcy5kZWJvdW5jZVRpbWUoKSkpO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgaG9zdEVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLl9lbGVtZW50UmVmZXJlbmNlLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZkdyb3Vwc0NvbnRhaW5lciA9XG4gICAgdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PignZkdyb3Vwc0NvbnRhaW5lcicpO1xuICBwdWJsaWMgb3ZlcnJpZGUgZk5vZGVzQ29udGFpbmVyID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PignZk5vZGVzQ29udGFpbmVyJyk7XG4gIHB1YmxpYyBvdmVycmlkZSBmQ29ubmVjdGlvbnNDb250YWluZXIgPVxuICAgIHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oJ2ZDb25uZWN0aW9uc0NvbnRhaW5lcicpO1xuXG4gIHB1YmxpYyBnZXQgZmxvd0lkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2Zsb3dJZCE7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fZmxvd0lkID0gdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZTxGRmxvd0Jhc2U+KG5ldyBHZXRGbG93UmVxdWVzdCgpKS5mSWQoKTtcbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlKG5ldyBBZGRDYW52YXNUb1N0b3JlUmVxdWVzdCh0aGlzKSk7XG4gICAgdGhpcy5fcG9zaXRpb25DaGFuZ2UoKTtcbiAgICB0aGlzLl9zY2FsZUNoYW5nZSgpO1xuICAgIHN1cGVyLnN1YnNjcmliZU9uQ2FudmFzQ2hhbmdlKCk7XG4gIH1cblxuICBwcml2YXRlIF9wb3NpdGlvbkNoYW5nZSgpOiB2b2lkIHtcbiAgICBlZmZlY3QoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGUobmV3IElucHV0Q2FudmFzUG9zaXRpb25SZXF1ZXN0KHRoaXMudHJhbnNmb3JtLCB0aGlzLnBvc2l0aW9uKCkpKTtcbiAgICAgIH0sXG4gICAgICB7IGluamVjdG9yOiB0aGlzLl9pbmplY3RvciB9LFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9zY2FsZUNoYW5nZSgpOiB2b2lkIHtcbiAgICBlZmZlY3QoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGUobmV3IElucHV0Q2FudmFzU2NhbGVSZXF1ZXN0KHRoaXMudHJhbnNmb3JtLCB0aGlzLnNjYWxlKCkpKTtcbiAgICAgIH0sXG4gICAgICB7IGluamVjdG9yOiB0aGlzLl9pbmplY3RvciB9LFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmVkcmF3cyB0aGUgY2FudmFzIGJ5IGFwcGx5aW5nIHRoZSBjdXJyZW50IHRyYW5zZm9ybWF0aW9uLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIHJlZHJhdygpOiB2b2lkIHtcbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlKG5ldyBTZXRCYWNrZ3JvdW5kVHJhbnNmb3JtUmVxdWVzdCh0aGlzLnRyYW5zZm9ybSkpO1xuICAgIHRoaXMuaG9zdEVsZW1lbnQuc2V0QXR0cmlidXRlKFxuICAgICAgJ3N0eWxlJyxcbiAgICAgIGB0cmFuc2Zvcm06ICR7VHJhbnNmb3JtTW9kZWxFeHRlbnNpb25zLnRvU3RyaW5nKHRoaXMudHJhbnNmb3JtKX1gLFxuICAgICk7XG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZShuZXcgTm90aWZ5VHJhbnNmb3JtQ2hhbmdlZFJlcXVlc3QoKSk7XG4gIH1cblxuICAvKipcbiAgICogUmVkcmF3cyB0aGUgY2FudmFzIHdpdGggYW4gYW5pbWF0aW9uIGVmZmVjdC5cbiAgICogVGhpcyBtZXRob2QgYXBwbGllcyBhIENTUyB0cmFuc2l0aW9uIHRvIHRoZSBjYW52YXMgZWxlbWVudCxcbiAgICogYWxsb3dpbmcgZm9yIGEgc21vb3RoIHZpc3VhbCB1cGRhdGUgb2YgdGhlIGNhbnZhcydzIHRyYW5zZm9ybWF0aW9uLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIHJlZHJhd1dpdGhBbmltYXRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZShuZXcgU2V0QmFja2dyb3VuZFRyYW5zZm9ybVJlcXVlc3QodGhpcy50cmFuc2Zvcm0pKTtcbiAgICB0aGlzLmhvc3RFbGVtZW50LnNldEF0dHJpYnV0ZShcbiAgICAgICdzdHlsZScsXG4gICAgICBgdHJhbnNpdGlvbjogdHJhbnNmb3JtICR7aXNNb2JpbGUoKSA/IDgwIDogMTUwfW1zIGVhc2UtaW4tb3V0OyB0cmFuc2Zvcm06ICR7VHJhbnNmb3JtTW9kZWxFeHRlbnNpb25zLnRvU3RyaW5nKHRoaXMudHJhbnNmb3JtKX1gLFxuICAgICk7XG4gICAgdHJhbnNpdGlvbkVuZCh0aGlzLmhvc3RFbGVtZW50LCAoKSA9PiB0aGlzLnJlZHJhdygpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDZW50ZXJzIHRoZSBzcGVjaWZpZWQgZ3JvdXAgb3Igbm9kZSBvbiB0aGUgY2FudmFzLlxuICAgKiBAcGFyYW0gZ3JvdXBPck5vZGVJZCAtIFRoZSBJRCBvZiB0aGUgZ3JvdXAgb3Igbm9kZSB0byBjZW50ZXIuXG4gICAqIEBwYXJhbSBhbmltYXRlZCAtIElmIHRydWUsIHRoZSBjZW50ZXJpbmcgd2lsbCBiZSBhbmltYXRlZDsgb3RoZXJ3aXNlLCBpdCB3aWxsIGJlIGluc3RhbnRhbmVvdXMuXG4gICAqL1xuICBwdWJsaWMgY2VudGVyR3JvdXBPck5vZGUoZ3JvdXBPck5vZGVJZDogc3RyaW5nLCBhbmltYXRlZDogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcbiAgICB0aGlzLl9hZnRlclJlZHJhdygoKSA9PiB7XG4gICAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlKG5ldyBDZW50ZXJHcm91cE9yTm9kZVJlcXVlc3QoZ3JvdXBPck5vZGVJZCwgYW5pbWF0ZWQpKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaXRzIHRoZSBjYW52YXMgdG8gdGhlIHNjcmVlbiBieSBhZGp1c3RpbmcgdGhlIHNjYWxlIGFuZCBwb3NpdGlvbi5cbiAgICogQHBhcmFtIHBhZGRpbmcgLSBwYWRkaW5ncyBmcm9tIHRoZSBib3VuZHMgb2YgdGhlIGNhbnZhc1xuICAgKiBAcGFyYW0gYW5pbWF0ZWQgLSBJZiB0cnVlLCB0aGUgZml0IHdpbGwgYmUgYW5pbWF0ZWQ7IG90aGVyd2lzZSwgaXQgd2lsbCBiZSBpbnN0YW50YW5lb3VzLlxuICAgKi9cbiAgcHVibGljIGZpdFRvU2NyZWVuKFxuICAgIHBhZGRpbmc6IElQb2ludCA9IFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKCksXG4gICAgYW5pbWF0ZWQ6IGJvb2xlYW4gPSB0cnVlLFxuICApOiB2b2lkIHtcbiAgICB0aGlzLl9hZnRlclJlZHJhdygoKSA9PiB7XG4gICAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlKG5ldyBGaXRUb0Zsb3dSZXF1ZXN0KHBhZGRpbmcsIGFuaW1hdGVkKSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXRzIHRoZSBzY2FsZSBhbmQgY2VudGVyIGFsbCBub2RlcyBhbmQgZ3JvdXBzIG9uIHRoZSBjYW52YXMuXG4gICAqIFRoaXMgbWV0aG9kIGlzIHVzZWQgdG8gcmVzdG9yZSB0aGUgY2FudmFzIHRvIGl0cyBkZWZhdWx0IHNjYWxlIGFuZCBwb3NpdGlvbixcbiAgICogYWxsb3dpbmcgdXNlcnMgdG8gcXVpY2tseSByZXR1cm4gdG8gYSBzdGFuZGFyZCB2aWV3IG9mIHRoZSBjYW52YXMgY29udGVudC5cbiAgICogQHBhcmFtIGFuaW1hdGVkIC0gSWYgdHJ1ZSwgdGhlIHJlc2V0IHdpbGwgYmUgYW5pbWF0ZWQ7IG90aGVyd2lzZSwgaXQgd2lsbCBiZSBpbnN0YW50YW5lb3VzLlxuICAgKiBUaGlzIGlzIHVzZWZ1bCBmb3IgcHJvdmlkaW5nIGEgc21vb3RoIHVzZXIgZXhwZXJpZW5jZSB3aGVuIHJlc2V0dGluZyB0aGUgdmlldy5cbiAgICovXG4gIHB1YmxpYyByZXNldFNjYWxlQW5kQ2VudGVyKGFuaW1hdGVkOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xuICAgIHRoaXMuX2FmdGVyUmVkcmF3KCgpID0+IHtcbiAgICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGUobmV3IFJlc2V0U2NhbGVBbmRDZW50ZXJSZXF1ZXN0KGFuaW1hdGVkKSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogIEdldHMgdGhlIGN1cnJlbnQgc2NhbGUgb2YgdGhlIGNhbnZhcy5cbiAgICovXG4gIHB1YmxpYyBnZXRTY2FsZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnRyYW5zZm9ybS5zY2FsZSB8fCAxO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHNjYWxlIG9mIHRoZSBjYW52YXMgdG8gYSBzcGVjaWZpZWQgdmFsdWUuXG4gICAqIFRoaXMgbWV0aG9kIGlzIHVzZWQgdG8gem9vbSBpbiBvciBvdXQgb2YgdGhlIGNhbnZhcyxcbiAgICogYWxsb3dpbmcgdXNlcnMgdG8gYWRqdXN0IHRoZSB2aWV3IG9mIHRoZSBjYW52YXMgY29udGVudC5cbiAgICogQHBhcmFtIHNjYWxlIC0gVGhlIHNjYWxlIGZhY3RvciB0byBzZXQgZm9yIHRoZSBjYW52YXMuXG4gICAqIEBwYXJhbSB0b1Bvc2l0aW9uIC0gVGhlIHBvc2l0aW9uIHRvIHdoaWNoIHRoZSBjYW52YXMgc2hvdWxkIGJlIGNlbnRlcmVkIGFmdGVyIHNjYWxpbmcuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgc2V0U2NhbGUoc2NhbGU6IG51bWJlciwgdG9Qb3NpdGlvbjogSVBvaW50ID0gUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoKSk6IHZvaWQge1xuICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGUobmV3IFVwZGF0ZVNjYWxlUmVxdWVzdChzY2FsZSwgdG9Qb3NpdGlvbikpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0cyB0aGUgc2NhbGUgb2YgdGhlIGNhbnZhcyB0byBpdHMgZGVmYXVsdCB2YWx1ZS5cbiAgICogVGhpcyBtZXRob2QgaXMgdXNlZCB0byByZXN0b3JlIHRoZSBjYW52YXMgdG8gaXRzIG9yaWdpbmFsIHNjYWxlLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIHJlc2V0U2NhbGUoKTogdm9pZCB7XG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZShuZXcgUmVzZXRTY2FsZVJlcXVlc3QoKSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZShuZXcgUmVtb3ZlQ2FudmFzRnJvbVN0b3JlUmVxdWVzdCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2FmdGVyUmVkcmF3KGNhbGxiYWNrOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2NvbXBvbmVudHNTdG9yZS5kYXRhVmVyc2lvbiA+IDApIHtcbiAgICAgIGFmdGVyTmV4dFJlbmRlcihjYWxsYmFjaywgeyBpbmplY3RvcjogdGhpcy5faW5qZWN0b3IgfSk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9tZWRpYXRvclxuICAgICAgLmV4ZWN1dGU8RkNoYW5uZWxIdWI+KG5ldyBMaXN0ZW5EYXRhQ2hhbmdlc1JlcXVlc3QoZmFsc2UpKVxuICAgICAgLnBpcGUodGFrZU9uZSgpKVxuICAgICAgLmxpc3Rlbih0aGlzLmRlc3Ryb3lSZWYsIGNhbGxiYWNrKTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lcj5cbiAgPGRpdiAjZkdyb3Vwc0NvbnRhaW5lcj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZkdyb3VwXSwgW2ZHcm91cHNdXCIgLz5cbiAgPC9kaXY+XG4gIDxkaXYgI2ZDb25uZWN0aW9uc0NvbnRhaW5lciBjbGFzcz1cImYtY29ubmVjdGlvbnMtY29udGFpbmVyXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZi1zbmFwLWNvbm5lY3Rpb25cIiAvPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImYtY29ubmVjdGlvbiwgW2ZDb25uZWN0aW9uc11cIiAvPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImYtY29ubmVjdGlvbi1mb3ItY3JlYXRlXCIgLz5cbiAgPC9kaXY+XG5cbiAgPGRpdiAjZk5vZGVzQ29udGFpbmVyPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltmTm9kZV0sIFtmTm9kZXNdXCIgLz5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -10,6 +10,10 @@ export class FComponentsStore {
10
10
  transformChanges$ = new FChannel();
11
11
  dataChanges$ = new FChannel();
12
12
  countChanges$ = new FChannel();
13
+ _dataVersion = 0;
14
+ get dataVersion() {
15
+ return this._dataVersion;
16
+ }
13
17
  get flowHost() {
14
18
  return this.fFlow?.hostElement;
15
19
  }
@@ -30,6 +34,7 @@ export class FComponentsStore {
30
34
  this.countChanges$.notify();
31
35
  }
32
36
  dataChanged() {
37
+ this._dataVersion++;
33
38
  this.dataChanges$.notify();
34
39
  }
35
40
  transformChanged() {
@@ -53,4 +58,4 @@ export const INSTANCES = {
53
58
  // eslint-disable-next-line @typescript-eslint/naming-convention
54
59
  SELECTION_AREA: fInstanceKey('selection-area'),
55
60
  };
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb21wb25lbnRzLXN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLXN0b3JhZ2UvZi1jb21wb25lbnRzLXN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFNM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0UsT0FBTyxFQUFFLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFFBQVEsQ0FBQzs7QUFPM0QsTUFBTSxPQUFPLGdCQUFnQjtJQUNYLGlCQUFpQixHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7SUFFbkMsWUFBWSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7SUFFOUIsYUFBYSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7SUFFL0MsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxXQUEwQixDQUFDO0lBQ2hELENBQUM7SUFFTSxLQUFLLENBQXdCO0lBRTdCLE9BQU8sQ0FBMEI7SUFFeEMsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxTQUE0QixDQUFDO0lBQ3BELENBQUM7SUFFZSxLQUFLLEdBQUcsSUFBSSxhQUFhLEVBQUUsQ0FBQztJQUM1QixXQUFXLEdBQUcsSUFBSSxtQkFBbUIsRUFBRSxDQUFDO0lBQ3hDLGlCQUFpQixHQUFHLElBQUkseUJBQXlCLEVBQUUsQ0FBQztJQUVwRCxPQUFPLEdBQUcsSUFBSSxrQkFBa0IsQ0FBa0IsUUFBUSxDQUFDLENBQUM7SUFDNUQsTUFBTSxHQUFHLElBQUksa0JBQWtCLENBQWlCLE9BQU8sQ0FBQyxDQUFDO0lBQ3pELE9BQU8sR0FBRyxJQUFJLGtCQUFrQixDQUFrQixRQUFRLENBQUMsQ0FBQztJQUU1RCxTQUFTLEdBQUcsSUFBSSxtQkFBbUIsRUFBRSxDQUFDO0lBRS9DLFVBQVUsQ0FBNkI7SUFFdkMsWUFBWTtRQUNqQixJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVNLGdCQUFnQjtRQUNyQixJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDbEMsQ0FBQzt3R0F6Q1UsZ0JBQWdCOzRHQUFoQixnQkFBZ0I7OzRGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVU7O0FBNkNYLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRztJQUN2QixnRUFBZ0U7SUFDaEUsY0FBYyxFQUFFLFlBQVksQ0FBcUIsZ0JBQWdCLENBQUM7SUFFbEUsZ0VBQWdFO0lBQ2hFLGNBQWMsRUFBRSxZQUFZLENBQXFCLGdCQUFnQixDQUFDO0lBRWxFLGdFQUFnRTtJQUNoRSxJQUFJLEVBQUUsWUFBWSxDQUFZLGVBQWUsQ0FBQztJQUU5QyxnRUFBZ0U7SUFDaEUsVUFBVSxFQUFFLFlBQVksQ0FBa0IsWUFBWSxDQUFDO0lBRXZELGdFQUFnRTtJQUNoRSxjQUFjLEVBQUUsWUFBWSxDQUFxQixnQkFBZ0IsQ0FBQztDQUMxRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRkZsb3dCYXNlIH0gZnJvbSAnLi4vZi1mbG93JztcbmltcG9ydCB7IEZDYW52YXNCYXNlIH0gZnJvbSAnLi4vZi1jYW52YXMnO1xuaW1wb3J0IHsgRkJhY2tncm91bmRCYXNlIH0gZnJvbSAnLi4vZi1iYWNrZ3JvdWQnO1xuaW1wb3J0IHsgRk5vZGVJbnB1dEJhc2UsIEZOb2RlT3V0bGV0QmFzZSwgRk5vZGVPdXRwdXRCYXNlIH0gZnJvbSAnLi4vZi1jb25uZWN0b3JzJztcbmltcG9ydCB7IEZEcmFnZ2FibGVCYXNlIH0gZnJvbSAnLi4vZi1kcmFnZ2FibGUnO1xuaW1wb3J0IHsgRkNoYW5uZWwgfSBmcm9tICcuLi9yZWFjdGl2aXR5JztcbmltcG9ydCB7IElUcmFuc2Zvcm1Nb2RlbCB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgRkNvbm5lY3RvclJlZ2lzdHJ5IH0gZnJvbSAnLi9mLWNvbm5lY3Rvci1yZWdpc3RyeSc7XG5pbXBvcnQgeyBGTm9kZVJlZ2lzdHJ5IH0gZnJvbSAnLi9mLW5vZGUtcmVnaXN0cnknO1xuaW1wb3J0IHsgRkNvbm5lY3Rpb25SZWdpc3RyeSB9IGZyb20gJy4vZi1jb25uZWN0aW9uLXJlZ2lzdHJ5JztcbmltcG9ydCB7IEZDb25uZWN0aW9uTWFya2VyUmVnaXN0cnkgfSBmcm9tICcuL2YtY29ubmVjdGlvbi1tYXJrZXItcmVnaXN0cnknO1xuaW1wb3J0IHsgZkluc3RhbmNlS2V5LCBGU2luZ2xlUmVnaXN0cnlCYXNlIH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IEZab29tQmFzZSB9IGZyb20gJy4uL2Ytem9vbSc7XG5pbXBvcnQgeyBGU2VsZWN0aW9uQXJlYUJhc2UgfSBmcm9tICcuLi9mLXNlbGVjdGlvbi1hcmVhJztcbmltcG9ydCB7IEZNYWduZXRpY0xpbmVzQmFzZSB9IGZyb20gJy4uL2YtbWFnbmV0aWMtbGluZXMnO1xuaW1wb3J0IHsgRk1hZ25ldGljUmVjdHNCYXNlIH0gZnJvbSAnLi4vZi1tYWduZXRpYy1yZWN0cyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBGQ29tcG9uZW50c1N0b3JlIHtcbiAgcHVibGljIHJlYWRvbmx5IHRyYW5zZm9ybUNoYW5nZXMkID0gbmV3IEZDaGFubmVsKCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGRhdGFDaGFuZ2VzJCA9IG5ldyBGQ2hhbm5lbCgpO1xuXG4gIHB1YmxpYyByZWFkb25seSBjb3VudENoYW5nZXMkID0gbmV3IEZDaGFubmVsKCk7XG5cbiAgcHVibGljIGdldCBmbG93SG9zdCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZkZsb3c/Lmhvc3RFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICB9XG5cbiAgcHVibGljIGZGbG93OiBGRmxvd0Jhc2UgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIGZDYW52YXM6IEZDYW52YXNCYXNlIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBnZXQgdHJhbnNmb3JtKCk6IElUcmFuc2Zvcm1Nb2RlbCB7XG4gICAgcmV0dXJuIHRoaXMuZkNhbnZhcz8udHJhbnNmb3JtIGFzIElUcmFuc2Zvcm1Nb2RlbDtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBub2RlcyA9IG5ldyBGTm9kZVJlZ2lzdHJ5KCk7XG4gIHB1YmxpYyByZWFkb25seSBjb25uZWN0aW9ucyA9IG5ldyBGQ29ubmVjdGlvblJlZ2lzdHJ5KCk7XG4gIHB1YmxpYyByZWFkb25seSBjb25uZWN0aW9uTWFya2VycyA9IG5ldyBGQ29ubmVjdGlvbk1hcmtlclJlZ2lzdHJ5KCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IG91dHB1dHMgPSBuZXcgRkNvbm5lY3RvclJlZ2lzdHJ5PEZOb2RlT3V0cHV0QmFzZT4oJ091dHB1dCcpO1xuICBwdWJsaWMgcmVhZG9ubHkgaW5wdXRzID0gbmV3IEZDb25uZWN0b3JSZWdpc3RyeTxGTm9kZUlucHV0QmFzZT4oJ0lucHV0Jyk7XG4gIHB1YmxpYyByZWFkb25seSBvdXRsZXRzID0gbmV3IEZDb25uZWN0b3JSZWdpc3RyeTxGTm9kZU91dGxldEJhc2U+KCdPdXRsZXQnKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgaW5zdGFuY2VzID0gbmV3IEZTaW5nbGVSZWdpc3RyeUJhc2UoKTtcblxuICBwdWJsaWMgZkRyYWdnYWJsZTogRkRyYWdnYWJsZUJhc2UgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIGNvdW50Q2hhbmdlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmNvdW50Q2hhbmdlcyQubm90aWZ5KCk7XG4gIH1cblxuICBwdWJsaWMgZGF0YUNoYW5nZWQoKTogdm9pZCB7XG4gICAgdGhpcy5kYXRhQ2hhbmdlcyQubm90aWZ5KCk7XG4gIH1cblxuICBwdWJsaWMgdHJhbnNmb3JtQ2hhbmdlZCgpOiB2b2lkIHtcbiAgICB0aGlzLnRyYW5zZm9ybUNoYW5nZXMkLm5vdGlmeSgpO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBJTlNUQU5DRVMgPSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgTUFHTkVUSUNfTElORVM6IGZJbnN0YW5jZUtleTxGTWFnbmV0aWNMaW5lc0Jhc2U+KCdtYWduZXRpYy1saW5lcycpLFxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgTUFHTkVUSUNfUkVDVFM6IGZJbnN0YW5jZUtleTxGTWFnbmV0aWNSZWN0c0Jhc2U+KCdtYWduZXRpYy1yZWN0cycpLFxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgWk9PTTogZkluc3RhbmNlS2V5PEZab29tQmFzZT4oJ3pvb20tY29udHJvbHMnKSxcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gIEJBQ0tHUk9VTkQ6IGZJbnN0YW5jZUtleTxGQmFja2dyb3VuZEJhc2U+KCdiYWNrZ3JvdW5kJyksXG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICBTRUxFQ1RJT05fQVJFQTogZkluc3RhbmNlS2V5PEZTZWxlY3Rpb25BcmVhQmFzZT4oJ3NlbGVjdGlvbi1hcmVhJyksXG59IGFzIGNvbnN0O1xuIl19
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb21wb25lbnRzLXN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLXN0b3JhZ2UvZi1jb21wb25lbnRzLXN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFNM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0UsT0FBTyxFQUFFLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFFBQVEsQ0FBQzs7QUFPM0QsTUFBTSxPQUFPLGdCQUFnQjtJQUNYLGlCQUFpQixHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7SUFFbkMsWUFBWSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7SUFFOUIsYUFBYSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7SUFFdkMsWUFBWSxHQUFHLENBQUMsQ0FBQztJQUV6QixJQUFXLFdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFXLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLFdBQTBCLENBQUM7SUFDaEQsQ0FBQztJQUVNLEtBQUssQ0FBd0I7SUFFN0IsT0FBTyxDQUEwQjtJQUV4QyxJQUFXLFNBQVM7UUFDbEIsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLFNBQTRCLENBQUM7SUFDcEQsQ0FBQztJQUVlLEtBQUssR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDO0lBQzVCLFdBQVcsR0FBRyxJQUFJLG1CQUFtQixFQUFFLENBQUM7SUFDeEMsaUJBQWlCLEdBQUcsSUFBSSx5QkFBeUIsRUFBRSxDQUFDO0lBRXBELE9BQU8sR0FBRyxJQUFJLGtCQUFrQixDQUFrQixRQUFRLENBQUMsQ0FBQztJQUM1RCxNQUFNLEdBQUcsSUFBSSxrQkFBa0IsQ0FBaUIsT0FBTyxDQUFDLENBQUM7SUFDekQsT0FBTyxHQUFHLElBQUksa0JBQWtCLENBQWtCLFFBQVEsQ0FBQyxDQUFDO0lBRTVELFNBQVMsR0FBRyxJQUFJLG1CQUFtQixFQUFFLENBQUM7SUFFL0MsVUFBVSxDQUE2QjtJQUV2QyxZQUFZO1FBQ2pCLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVNLGdCQUFnQjtRQUNyQixJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDbEMsQ0FBQzt3R0FoRFUsZ0JBQWdCOzRHQUFoQixnQkFBZ0I7OzRGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVU7O0FBb0RYLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRztJQUN2QixnRUFBZ0U7SUFDaEUsY0FBYyxFQUFFLFlBQVksQ0FBcUIsZ0JBQWdCLENBQUM7SUFFbEUsZ0VBQWdFO0lBQ2hFLGNBQWMsRUFBRSxZQUFZLENBQXFCLGdCQUFnQixDQUFDO0lBRWxFLGdFQUFnRTtJQUNoRSxJQUFJLEVBQUUsWUFBWSxDQUFZLGVBQWUsQ0FBQztJQUU5QyxnRUFBZ0U7SUFDaEUsVUFBVSxFQUFFLFlBQVksQ0FBa0IsWUFBWSxDQUFDO0lBRXZELGdFQUFnRTtJQUNoRSxjQUFjLEVBQUUsWUFBWSxDQUFxQixnQkFBZ0IsQ0FBQztDQUMxRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRkZsb3dCYXNlIH0gZnJvbSAnLi4vZi1mbG93JztcbmltcG9ydCB7IEZDYW52YXNCYXNlIH0gZnJvbSAnLi4vZi1jYW52YXMnO1xuaW1wb3J0IHsgRkJhY2tncm91bmRCYXNlIH0gZnJvbSAnLi4vZi1iYWNrZ3JvdWQnO1xuaW1wb3J0IHsgRk5vZGVJbnB1dEJhc2UsIEZOb2RlT3V0bGV0QmFzZSwgRk5vZGVPdXRwdXRCYXNlIH0gZnJvbSAnLi4vZi1jb25uZWN0b3JzJztcbmltcG9ydCB7IEZEcmFnZ2FibGVCYXNlIH0gZnJvbSAnLi4vZi1kcmFnZ2FibGUnO1xuaW1wb3J0IHsgRkNoYW5uZWwgfSBmcm9tICcuLi9yZWFjdGl2aXR5JztcbmltcG9ydCB7IElUcmFuc2Zvcm1Nb2RlbCB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgRkNvbm5lY3RvclJlZ2lzdHJ5IH0gZnJvbSAnLi9mLWNvbm5lY3Rvci1yZWdpc3RyeSc7XG5pbXBvcnQgeyBGTm9kZVJlZ2lzdHJ5IH0gZnJvbSAnLi9mLW5vZGUtcmVnaXN0cnknO1xuaW1wb3J0IHsgRkNvbm5lY3Rpb25SZWdpc3RyeSB9IGZyb20gJy4vZi1jb25uZWN0aW9uLXJlZ2lzdHJ5JztcbmltcG9ydCB7IEZDb25uZWN0aW9uTWFya2VyUmVnaXN0cnkgfSBmcm9tICcuL2YtY29ubmVjdGlvbi1tYXJrZXItcmVnaXN0cnknO1xuaW1wb3J0IHsgZkluc3RhbmNlS2V5LCBGU2luZ2xlUmVnaXN0cnlCYXNlIH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IEZab29tQmFzZSB9IGZyb20gJy4uL2Ytem9vbSc7XG5pbXBvcnQgeyBGU2VsZWN0aW9uQXJlYUJhc2UgfSBmcm9tICcuLi9mLXNlbGVjdGlvbi1hcmVhJztcbmltcG9ydCB7IEZNYWduZXRpY0xpbmVzQmFzZSB9IGZyb20gJy4uL2YtbWFnbmV0aWMtbGluZXMnO1xuaW1wb3J0IHsgRk1hZ25ldGljUmVjdHNCYXNlIH0gZnJvbSAnLi4vZi1tYWduZXRpYy1yZWN0cyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBGQ29tcG9uZW50c1N0b3JlIHtcbiAgcHVibGljIHJlYWRvbmx5IHRyYW5zZm9ybUNoYW5nZXMkID0gbmV3IEZDaGFubmVsKCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGRhdGFDaGFuZ2VzJCA9IG5ldyBGQ2hhbm5lbCgpO1xuXG4gIHB1YmxpYyByZWFkb25seSBjb3VudENoYW5nZXMkID0gbmV3IEZDaGFubmVsKCk7XG5cbiAgcHJpdmF0ZSBfZGF0YVZlcnNpb24gPSAwO1xuXG4gIHB1YmxpYyBnZXQgZGF0YVZlcnNpb24oKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YVZlcnNpb247XG4gIH1cblxuICBwdWJsaWMgZ2V0IGZsb3dIb3N0KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5mRmxvdz8uaG9zdEVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gIH1cblxuICBwdWJsaWMgZkZsb3c6IEZGbG93QmFzZSB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgZkNhbnZhczogRkNhbnZhc0Jhc2UgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIGdldCB0cmFuc2Zvcm0oKTogSVRyYW5zZm9ybU1vZGVsIHtcbiAgICByZXR1cm4gdGhpcy5mQ2FudmFzPy50cmFuc2Zvcm0gYXMgSVRyYW5zZm9ybU1vZGVsO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IG5vZGVzID0gbmV3IEZOb2RlUmVnaXN0cnkoKTtcbiAgcHVibGljIHJlYWRvbmx5IGNvbm5lY3Rpb25zID0gbmV3IEZDb25uZWN0aW9uUmVnaXN0cnkoKTtcbiAgcHVibGljIHJlYWRvbmx5IGNvbm5lY3Rpb25NYXJrZXJzID0gbmV3IEZDb25uZWN0aW9uTWFya2VyUmVnaXN0cnkoKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgb3V0cHV0cyA9IG5ldyBGQ29ubmVjdG9yUmVnaXN0cnk8Rk5vZGVPdXRwdXRCYXNlPignT3V0cHV0Jyk7XG4gIHB1YmxpYyByZWFkb25seSBpbnB1dHMgPSBuZXcgRkNvbm5lY3RvclJlZ2lzdHJ5PEZOb2RlSW5wdXRCYXNlPignSW5wdXQnKTtcbiAgcHVibGljIHJlYWRvbmx5IG91dGxldHMgPSBuZXcgRkNvbm5lY3RvclJlZ2lzdHJ5PEZOb2RlT3V0bGV0QmFzZT4oJ091dGxldCcpO1xuXG4gIHB1YmxpYyByZWFkb25seSBpbnN0YW5jZXMgPSBuZXcgRlNpbmdsZVJlZ2lzdHJ5QmFzZSgpO1xuXG4gIHB1YmxpYyBmRHJhZ2dhYmxlOiBGRHJhZ2dhYmxlQmFzZSB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgY291bnRDaGFuZ2VkKCk6IHZvaWQge1xuICAgIHRoaXMuY291bnRDaGFuZ2VzJC5ub3RpZnkoKTtcbiAgfVxuXG4gIHB1YmxpYyBkYXRhQ2hhbmdlZCgpOiB2b2lkIHtcbiAgICB0aGlzLl9kYXRhVmVyc2lvbisrO1xuICAgIHRoaXMuZGF0YUNoYW5nZXMkLm5vdGlmeSgpO1xuICB9XG5cbiAgcHVibGljIHRyYW5zZm9ybUNoYW5nZWQoKTogdm9pZCB7XG4gICAgdGhpcy50cmFuc2Zvcm1DaGFuZ2VzJC5ub3RpZnkoKTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgSU5TVEFOQ0VTID0ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gIE1BR05FVElDX0xJTkVTOiBmSW5zdGFuY2VLZXk8Rk1hZ25ldGljTGluZXNCYXNlPignbWFnbmV0aWMtbGluZXMnKSxcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gIE1BR05FVElDX1JFQ1RTOiBmSW5zdGFuY2VLZXk8Rk1hZ25ldGljUmVjdHNCYXNlPignbWFnbmV0aWMtcmVjdHMnKSxcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gIFpPT006IGZJbnN0YW5jZUtleTxGWm9vbUJhc2U+KCd6b29tLWNvbnRyb2xzJyksXG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICBCQUNLR1JPVU5EOiBmSW5zdGFuY2VLZXk8RkJhY2tncm91bmRCYXNlPignYmFja2dyb3VuZCcpLFxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgU0VMRUNUSU9OX0FSRUE6IGZJbnN0YW5jZUtleTxGU2VsZWN0aW9uQXJlYUJhc2U+KCdzZWxlY3Rpb24tYXJlYScpLFxufSBhcyBjb25zdDtcbiJdfQ==
@@ -1,4 +1,8 @@
1
1
  export class ListenDataChangesRequest {
2
+ notifyOnSubscribe;
2
3
  static fToken = Symbol('ListenDataChangesRequest');
4
+ constructor(notifyOnSubscribe = true) {
5
+ this.notifyOnSubscribe = notifyOnSubscribe;
6
+ }
3
7
  }
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdGVuLWRhdGEtY2hhbmdlcy1yZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLXN0b3JhZ2UvZmVhdHVyZXMvbGlzdGVuLWRhdGEtY2hhbmdlZC9saXN0ZW4tZGF0YS1jaGFuZ2VzLXJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLHdCQUF3QjtJQUNuQyxNQUFNLENBQVUsTUFBTSxHQUFHLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIExpc3RlbkRhdGFDaGFuZ2VzUmVxdWVzdCB7XG4gIHN0YXRpYyByZWFkb25seSBmVG9rZW4gPSBTeW1ib2woJ0xpc3RlbkRhdGFDaGFuZ2VzUmVxdWVzdCcpO1xufVxuIl19
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdGVuLWRhdGEtY2hhbmdlcy1yZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLXN0b3JhZ2UvZmVhdHVyZXMvbGlzdGVuLWRhdGEtY2hhbmdlZC9saXN0ZW4tZGF0YS1jaGFuZ2VzLXJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLHdCQUF3QjtJQUdQO0lBRjVCLE1BQU0sQ0FBVSxNQUFNLEdBQUcsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUM7SUFFNUQsWUFBNEIsb0JBQTZCLElBQUk7UUFBakMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFnQjtJQUFHLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgTGlzdGVuRGF0YUNoYW5nZXNSZXF1ZXN0IHtcbiAgc3RhdGljIHJlYWRvbmx5IGZUb2tlbiA9IFN5bWJvbCgnTGlzdGVuRGF0YUNoYW5nZXNSZXF1ZXN0Jyk7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IG5vdGlmeU9uU3Vic2NyaWJlOiBib29sZWFuID0gdHJ1ZSkge31cbn1cbiJdfQ==
@@ -7,8 +7,10 @@ import { debounceTime, FChannelHub, notifyOnStart } from '../../../reactivity';
7
7
  import * as i0 from "@angular/core";
8
8
  let ListenDataChanges = class ListenDataChanges {
9
9
  _store = inject(FComponentsStore);
10
- handle(_request) {
11
- return new FChannelHub(this._store.dataChanges$).pipe(notifyOnStart(), debounceTime(1));
10
+ handle({ notifyOnSubscribe }) {
11
+ return notifyOnSubscribe
12
+ ? new FChannelHub(this._store.dataChanges$).pipe(notifyOnStart(), debounceTime(1))
13
+ : new FChannelHub(this._store.dataChanges$).pipe(debounceTime(1));
12
14
  }
13
15
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ListenDataChanges, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
14
16
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ListenDataChanges });
@@ -20,4 +22,4 @@ export { ListenDataChanges };
20
22
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ListenDataChanges, decorators: [{
21
23
  type: Injectable
22
24
  }] });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdGVuLWRhdGEtY2hhbmdlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1zdG9yYWdlL2ZlYXR1cmVzL2xpc3Rlbi1kYXRhLWNoYW5nZWQvbGlzdGVuLWRhdGEtY2hhbmdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFjLE1BQU0sa0JBQWtCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBSXhFLElBQU0saUJBQWlCLEdBQXZCLE1BQU0saUJBQWlCO0lBQ1gsTUFBTSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBRTVDLE1BQU0sQ0FBQyxRQUFrQztRQUM5QyxPQUFPLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFGLENBQUM7d0dBTFUsaUJBQWlCOzRHQUFqQixpQkFBaUI7O0FBQWpCLGlCQUFpQjtJQUQ3QixrQkFBa0IsQ0FBQyx3QkFBd0IsQ0FBQztHQUNoQyxpQkFBaUIsQ0FNN0I7OzRGQU5ZLGlCQUFpQjtrQkFGN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRkV4ZWN1dGlvblJlZ2lzdGVyLCBJRXhlY3V0aW9uIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBMaXN0ZW5EYXRhQ2hhbmdlc1JlcXVlc3QgfSBmcm9tICcuL2xpc3Rlbi1kYXRhLWNoYW5nZXMtcmVxdWVzdCc7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vLi4vLi4vZi1zdG9yYWdlJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgRkNoYW5uZWxIdWIsIG5vdGlmeU9uU3RhcnQgfSBmcm9tICcuLi8uLi8uLi9yZWFjdGl2aXR5JztcblxuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihMaXN0ZW5EYXRhQ2hhbmdlc1JlcXVlc3QpXG5leHBvcnQgY2xhc3MgTGlzdGVuRGF0YUNoYW5nZXMgaW1wbGVtZW50cyBJRXhlY3V0aW9uPExpc3RlbkRhdGFDaGFuZ2VzUmVxdWVzdCwgRkNoYW5uZWxIdWI+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfc3RvcmUgPSBpbmplY3QoRkNvbXBvbmVudHNTdG9yZSk7XG5cbiAgcHVibGljIGhhbmRsZShfcmVxdWVzdDogTGlzdGVuRGF0YUNoYW5nZXNSZXF1ZXN0KTogRkNoYW5uZWxIdWIge1xuICAgIHJldHVybiBuZXcgRkNoYW5uZWxIdWIodGhpcy5fc3RvcmUuZGF0YUNoYW5nZXMkKS5waXBlKG5vdGlmeU9uU3RhcnQoKSwgZGVib3VuY2VUaW1lKDEpKTtcbiAgfVxufVxuIl19
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdGVuLWRhdGEtY2hhbmdlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1zdG9yYWdlL2ZlYXR1cmVzL2xpc3Rlbi1kYXRhLWNoYW5nZWQvbGlzdGVuLWRhdGEtY2hhbmdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFjLE1BQU0sa0JBQWtCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBSXhFLElBQU0saUJBQWlCLEdBQXZCLE1BQU0saUJBQWlCO0lBQ1gsTUFBTSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBRTVDLE1BQU0sQ0FBQyxFQUFFLGlCQUFpQixFQUE0QjtRQUMzRCxPQUFPLGlCQUFpQjtZQUN0QixDQUFDLENBQUMsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2xGLENBQUMsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0RSxDQUFDO3dHQVBVLGlCQUFpQjs0R0FBakIsaUJBQWlCOztBQUFqQixpQkFBaUI7SUFEN0Isa0JBQWtCLENBQUMsd0JBQXdCLENBQUM7R0FDaEMsaUJBQWlCLENBUTdCOzs0RkFSWSxpQkFBaUI7a0JBRjdCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZFeGVjdXRpb25SZWdpc3RlciwgSUV4ZWN1dGlvbiB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgTGlzdGVuRGF0YUNoYW5nZXNSZXF1ZXN0IH0gZnJvbSAnLi9saXN0ZW4tZGF0YS1jaGFuZ2VzLXJlcXVlc3QnO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uLy4uLy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIEZDaGFubmVsSHViLCBub3RpZnlPblN0YXJ0IH0gZnJvbSAnLi4vLi4vLi4vcmVhY3Rpdml0eSc7XG5cbkBJbmplY3RhYmxlKClcbkBGRXhlY3V0aW9uUmVnaXN0ZXIoTGlzdGVuRGF0YUNoYW5nZXNSZXF1ZXN0KVxuZXhwb3J0IGNsYXNzIExpc3RlbkRhdGFDaGFuZ2VzIGltcGxlbWVudHMgSUV4ZWN1dGlvbjxMaXN0ZW5EYXRhQ2hhbmdlc1JlcXVlc3QsIEZDaGFubmVsSHViPiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3N0b3JlID0gaW5qZWN0KEZDb21wb25lbnRzU3RvcmUpO1xuXG4gIHB1YmxpYyBoYW5kbGUoeyBub3RpZnlPblN1YnNjcmliZSB9OiBMaXN0ZW5EYXRhQ2hhbmdlc1JlcXVlc3QpOiBGQ2hhbm5lbEh1YiB7XG4gICAgcmV0dXJuIG5vdGlmeU9uU3Vic2NyaWJlXG4gICAgICA/IG5ldyBGQ2hhbm5lbEh1Yih0aGlzLl9zdG9yZS5kYXRhQ2hhbmdlcyQpLnBpcGUobm90aWZ5T25TdGFydCgpLCBkZWJvdW5jZVRpbWUoMSkpXG4gICAgICA6IG5ldyBGQ2hhbm5lbEh1Yih0aGlzLl9zdG9yZS5kYXRhQ2hhbmdlcyQpLnBpcGUoZGVib3VuY2VUaW1lKDEpKTtcbiAgfVxufVxuIl19
@@ -25,11 +25,14 @@ export class FChannelHub {
25
25
  teardownSetters.push(res.setTeardown);
26
26
  }
27
27
  const unsubs = this._channels.map((ch) => ch.listen(() => current()));
28
+ let unregisterOnDestroy = null;
28
29
  let tornDown = false;
29
30
  const teardown = () => {
30
31
  if (tornDown)
31
32
  return;
32
33
  tornDown = true;
34
+ unregisterOnDestroy?.();
35
+ unregisterOnDestroy = null;
33
36
  unsubs.forEach((u) => u());
34
37
  cleanups.forEach((c) => c());
35
38
  };
@@ -41,7 +44,7 @@ export class FChannelHub {
41
44
  .slice()
42
45
  .reverse()
43
46
  .forEach((fn) => fn(current));
44
- destroyRef.onDestroy(teardown);
47
+ unregisterOnDestroy = destroyRef.onDestroy(teardown);
45
48
  }
46
49
  }
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jaGFubmVsLWh1Yi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvcmVhY3Rpdml0eS9mLWNoYW5uZWwtaHViLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sT0FBTyxXQUFXO0lBQ0wsU0FBUyxHQUFlLEVBQUUsQ0FBQztJQUVwQyxVQUFVLEdBQXVCLEVBQUUsQ0FBQztJQUU1QyxZQUFZLEdBQUcsUUFBb0I7UUFDakMsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVNLElBQUksQ0FBQyxHQUFHLFNBQTZCO1FBQzFDLE1BQU0sTUFBTSxHQUFHLElBQUksV0FBVyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sQ0FBQyxVQUFVLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsR0FBRyxTQUFTLENBQUMsQ0FBQztRQUV2RCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU0sTUFBTSxDQUFDLFVBQXNCLEVBQUUsUUFBMEI7UUFDOUQsSUFBSSxPQUFPLEdBQUcsUUFBUSxDQUFDO1FBRXZCLE1BQU0sUUFBUSxHQUFtQixFQUFFLENBQUM7UUFDcEMsTUFBTSxZQUFZLEdBQTRDLEVBQUUsQ0FBQztRQUNqRSxNQUFNLGVBQWUsR0FBdUMsRUFBRSxDQUFDO1FBRS9ELEtBQUssTUFBTSxRQUFRLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQ3RELE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM5QixPQUFPLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQztZQUV2QixJQUFJLEdBQUcsQ0FBQyxPQUFPO2dCQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzVDLElBQUksR0FBRyxDQUFDLFdBQVc7Z0JBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDeEQsSUFBSSxHQUFHLENBQUMsV0FBVztnQkFBRSxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM3RCxDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRXRFLElBQUksUUFBUSxHQUFHLEtBQUssQ0FBQztRQUNyQixNQUFNLFFBQVEsR0FBRyxHQUFHLEVBQUU7WUFDcEIsSUFBSSxRQUFRO2dCQUFFLE9BQU87WUFDckIsUUFBUSxHQUFHLElBQUksQ0FBQztZQUVoQixNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzNCLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDL0IsQ0FBQyxDQUFDO1FBRUYsZUFBZTthQUNaLEtBQUssRUFBRTthQUNQLE9BQU8sRUFBRTthQUNULE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDbkMsWUFBWTthQUNULEtBQUssRUFBRTthQUNQLE9BQU8sRUFBRTthQUNULE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFFaEMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNqQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGQ2hhbm5lbCB9IGZyb20gJy4vZi1jaGFubmVsJztcbmltcG9ydCB7IEZDaGFubmVsTGlzdGVuZXIsIEZDaGFubmVsT3BlcmF0b3IgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IERlc3Ryb3lSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNsYXNzIEZDaGFubmVsSHViIHtcbiAgcHJpdmF0ZSByZWFkb25seSBfY2hhbm5lbHM6IEZDaGFubmVsW10gPSBbXTtcblxuICBwcml2YXRlIF9vcGVyYXRvcnM6IEZDaGFubmVsT3BlcmF0b3JbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKC4uLmNoYW5uZWxzOiBGQ2hhbm5lbFtdKSB7XG4gICAgdGhpcy5fY2hhbm5lbHMgPSBbLi4uY2hhbm5lbHNdO1xuICB9XG5cbiAgcHVibGljIHBpcGUoLi4ub3BlcmF0b3JzOiBGQ2hhbm5lbE9wZXJhdG9yW10pOiBGQ2hhbm5lbEh1YiB7XG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IEZDaGFubmVsSHViKC4uLnRoaXMuX2NoYW5uZWxzKTtcbiAgICByZXN1bHQuX29wZXJhdG9ycyA9IFsuLi50aGlzLl9vcGVyYXRvcnMsIC4uLm9wZXJhdG9yc107XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHVibGljIGxpc3RlbihkZXN0cm95UmVmOiBEZXN0cm95UmVmLCBjYWxsYmFjazogRkNoYW5uZWxMaXN0ZW5lcik6IHZvaWQge1xuICAgIGxldCBjdXJyZW50ID0gY2FsbGJhY2s7XG5cbiAgICBjb25zdCBjbGVhbnVwczogKCgpID0+IHZvaWQpW10gPSBbXTtcbiAgICBjb25zdCBvblN1YnNjcmliZXM6ICgoZmluYWxDYjogRkNoYW5uZWxMaXN0ZW5lcikgPT4gdm9pZClbXSA9IFtdO1xuICAgIGNvbnN0IHRlYXJkb3duU2V0dGVyczogKCh0ZWFyZG93bjogKCkgPT4gdm9pZCkgPT4gdm9pZClbXSA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBvcGVyYXRvciBvZiBbLi4udGhpcy5fb3BlcmF0b3JzXS5yZXZlcnNlKCkpIHtcbiAgICAgIGNvbnN0IHJlcyA9IG9wZXJhdG9yKGN1cnJlbnQpO1xuICAgICAgY3VycmVudCA9IHJlcy5jYWxsYmFjaztcblxuICAgICAgaWYgKHJlcy5jbGVhbnVwKSBjbGVhbnVwcy5wdXNoKHJlcy5jbGVhbnVwKTtcbiAgICAgIGlmIChyZXMub25TdWJzY3JpYmUpIG9uU3Vic2NyaWJlcy5wdXNoKHJlcy5vblN1YnNjcmliZSk7XG4gICAgICBpZiAocmVzLnNldFRlYXJkb3duKSB0ZWFyZG93blNldHRlcnMucHVzaChyZXMuc2V0VGVhcmRvd24pO1xuICAgIH1cblxuICAgIGNvbnN0IHVuc3VicyA9IHRoaXMuX2NoYW5uZWxzLm1hcCgoY2gpID0+IGNoLmxpc3RlbigoKSA9PiBjdXJyZW50KCkpKTtcblxuICAgIGxldCB0b3JuRG93biA9IGZhbHNlO1xuICAgIGNvbnN0IHRlYXJkb3duID0gKCkgPT4ge1xuICAgICAgaWYgKHRvcm5Eb3duKSByZXR1cm47XG4gICAgICB0b3JuRG93biA9IHRydWU7XG5cbiAgICAgIHVuc3Vicy5mb3JFYWNoKCh1KSA9PiB1KCkpO1xuICAgICAgY2xlYW51cHMuZm9yRWFjaCgoYykgPT4gYygpKTtcbiAgICB9O1xuXG4gICAgdGVhcmRvd25TZXR0ZXJzXG4gICAgICAuc2xpY2UoKVxuICAgICAgLnJldmVyc2UoKVxuICAgICAgLmZvckVhY2goKHNldCkgPT4gc2V0KHRlYXJkb3duKSk7XG4gICAgb25TdWJzY3JpYmVzXG4gICAgICAuc2xpY2UoKVxuICAgICAgLnJldmVyc2UoKVxuICAgICAgLmZvckVhY2goKGZuKSA9PiBmbihjdXJyZW50KSk7XG5cbiAgICBkZXN0cm95UmVmLm9uRGVzdHJveSh0ZWFyZG93bik7XG4gIH1cbn1cbiJdfQ==
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jaGFubmVsLWh1Yi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvcmVhY3Rpdml0eS9mLWNoYW5uZWwtaHViLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sT0FBTyxXQUFXO0lBQ0wsU0FBUyxHQUFlLEVBQUUsQ0FBQztJQUVwQyxVQUFVLEdBQXVCLEVBQUUsQ0FBQztJQUU1QyxZQUFZLEdBQUcsUUFBb0I7UUFDakMsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVNLElBQUksQ0FBQyxHQUFHLFNBQTZCO1FBQzFDLE1BQU0sTUFBTSxHQUFHLElBQUksV0FBVyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sQ0FBQyxVQUFVLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsR0FBRyxTQUFTLENBQUMsQ0FBQztRQUV2RCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU0sTUFBTSxDQUFDLFVBQXNCLEVBQUUsUUFBMEI7UUFDOUQsSUFBSSxPQUFPLEdBQUcsUUFBUSxDQUFDO1FBRXZCLE1BQU0sUUFBUSxHQUFtQixFQUFFLENBQUM7UUFDcEMsTUFBTSxZQUFZLEdBQTRDLEVBQUUsQ0FBQztRQUNqRSxNQUFNLGVBQWUsR0FBdUMsRUFBRSxDQUFDO1FBRS9ELEtBQUssTUFBTSxRQUFRLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQ3RELE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM5QixPQUFPLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQztZQUV2QixJQUFJLEdBQUcsQ0FBQyxPQUFPO2dCQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzVDLElBQUksR0FBRyxDQUFDLFdBQVc7Z0JBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDeEQsSUFBSSxHQUFHLENBQUMsV0FBVztnQkFBRSxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM3RCxDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRXRFLElBQUksbUJBQW1CLEdBQXdCLElBQUksQ0FBQztRQUNwRCxJQUFJLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDckIsTUFBTSxRQUFRLEdBQUcsR0FBRyxFQUFFO1lBQ3BCLElBQUksUUFBUTtnQkFBRSxPQUFPO1lBQ3JCLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFFaEIsbUJBQW1CLEVBQUUsRUFBRSxDQUFDO1lBQ3hCLG1CQUFtQixHQUFHLElBQUksQ0FBQztZQUUzQixNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzNCLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDL0IsQ0FBQyxDQUFDO1FBRUYsZUFBZTthQUNaLEtBQUssRUFBRTthQUNQLE9BQU8sRUFBRTthQUNULE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDbkMsWUFBWTthQUNULEtBQUssRUFBRTthQUNQLE9BQU8sRUFBRTthQUNULE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFFaEMsbUJBQW1CLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN2RCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGQ2hhbm5lbCB9IGZyb20gJy4vZi1jaGFubmVsJztcbmltcG9ydCB7IEZDaGFubmVsTGlzdGVuZXIsIEZDaGFubmVsT3BlcmF0b3IgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IERlc3Ryb3lSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNsYXNzIEZDaGFubmVsSHViIHtcbiAgcHJpdmF0ZSByZWFkb25seSBfY2hhbm5lbHM6IEZDaGFubmVsW10gPSBbXTtcblxuICBwcml2YXRlIF9vcGVyYXRvcnM6IEZDaGFubmVsT3BlcmF0b3JbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKC4uLmNoYW5uZWxzOiBGQ2hhbm5lbFtdKSB7XG4gICAgdGhpcy5fY2hhbm5lbHMgPSBbLi4uY2hhbm5lbHNdO1xuICB9XG5cbiAgcHVibGljIHBpcGUoLi4ub3BlcmF0b3JzOiBGQ2hhbm5lbE9wZXJhdG9yW10pOiBGQ2hhbm5lbEh1YiB7XG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IEZDaGFubmVsSHViKC4uLnRoaXMuX2NoYW5uZWxzKTtcbiAgICByZXN1bHQuX29wZXJhdG9ycyA9IFsuLi50aGlzLl9vcGVyYXRvcnMsIC4uLm9wZXJhdG9yc107XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHVibGljIGxpc3RlbihkZXN0cm95UmVmOiBEZXN0cm95UmVmLCBjYWxsYmFjazogRkNoYW5uZWxMaXN0ZW5lcik6IHZvaWQge1xuICAgIGxldCBjdXJyZW50ID0gY2FsbGJhY2s7XG5cbiAgICBjb25zdCBjbGVhbnVwczogKCgpID0+IHZvaWQpW10gPSBbXTtcbiAgICBjb25zdCBvblN1YnNjcmliZXM6ICgoZmluYWxDYjogRkNoYW5uZWxMaXN0ZW5lcikgPT4gdm9pZClbXSA9IFtdO1xuICAgIGNvbnN0IHRlYXJkb3duU2V0dGVyczogKCh0ZWFyZG93bjogKCkgPT4gdm9pZCkgPT4gdm9pZClbXSA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBvcGVyYXRvciBvZiBbLi4udGhpcy5fb3BlcmF0b3JzXS5yZXZlcnNlKCkpIHtcbiAgICAgIGNvbnN0IHJlcyA9IG9wZXJhdG9yKGN1cnJlbnQpO1xuICAgICAgY3VycmVudCA9IHJlcy5jYWxsYmFjaztcblxuICAgICAgaWYgKHJlcy5jbGVhbnVwKSBjbGVhbnVwcy5wdXNoKHJlcy5jbGVhbnVwKTtcbiAgICAgIGlmIChyZXMub25TdWJzY3JpYmUpIG9uU3Vic2NyaWJlcy5wdXNoKHJlcy5vblN1YnNjcmliZSk7XG4gICAgICBpZiAocmVzLnNldFRlYXJkb3duKSB0ZWFyZG93blNldHRlcnMucHVzaChyZXMuc2V0VGVhcmRvd24pO1xuICAgIH1cblxuICAgIGNvbnN0IHVuc3VicyA9IHRoaXMuX2NoYW5uZWxzLm1hcCgoY2gpID0+IGNoLmxpc3RlbigoKSA9PiBjdXJyZW50KCkpKTtcblxuICAgIGxldCB1bnJlZ2lzdGVyT25EZXN0cm95OiAoKCkgPT4gdm9pZCkgfCBudWxsID0gbnVsbDtcbiAgICBsZXQgdG9ybkRvd24gPSBmYWxzZTtcbiAgICBjb25zdCB0ZWFyZG93biA9ICgpID0+IHtcbiAgICAgIGlmICh0b3JuRG93bikgcmV0dXJuO1xuICAgICAgdG9ybkRvd24gPSB0cnVlO1xuXG4gICAgICB1bnJlZ2lzdGVyT25EZXN0cm95Py4oKTtcbiAgICAgIHVucmVnaXN0ZXJPbkRlc3Ryb3kgPSBudWxsO1xuXG4gICAgICB1bnN1YnMuZm9yRWFjaCgodSkgPT4gdSgpKTtcbiAgICAgIGNsZWFudXBzLmZvckVhY2goKGMpID0+IGMoKSk7XG4gICAgfTtcblxuICAgIHRlYXJkb3duU2V0dGVyc1xuICAgICAgLnNsaWNlKClcbiAgICAgIC5yZXZlcnNlKClcbiAgICAgIC5mb3JFYWNoKChzZXQpID0+IHNldCh0ZWFyZG93bikpO1xuICAgIG9uU3Vic2NyaWJlc1xuICAgICAgLnNsaWNlKClcbiAgICAgIC5yZXZlcnNlKClcbiAgICAgIC5mb3JFYWNoKChmbikgPT4gZm4oY3VycmVudCkpO1xuXG4gICAgdW5yZWdpc3Rlck9uRGVzdHJveSA9IGRlc3Ryb3lSZWYub25EZXN0cm95KHRlYXJkb3duKTtcbiAgfVxufVxuIl19
@@ -13,9 +13,21 @@
13
13
  // };
14
14
  // }
15
15
  export function notifyOnStart() {
16
- return (callback) => ({
17
- callback,
18
- onSubscribe: (finalCallback) => queueMicrotask(finalCallback),
19
- });
16
+ return (callback) => {
17
+ let active = true;
18
+ return {
19
+ callback,
20
+ onSubscribe: (finalCallback) => {
21
+ queueMicrotask(() => {
22
+ if (!active)
23
+ return;
24
+ finalCallback();
25
+ });
26
+ },
27
+ cleanup: () => {
28
+ active = false;
29
+ },
30
+ };
31
+ };
20
32
  }
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZ5LW9uLXN0YXJ0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9yZWFjdGl2aXR5L25vdGlmeS1vbi1zdGFydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxzREFBc0Q7QUFDdEQsMkJBQTJCO0FBQzNCLGdEQUFnRDtBQUNoRCxFQUFFO0FBQ0YsZUFBZTtBQUNmLDRDQUE0QztBQUM1QyxrQkFBa0I7QUFDbEIsMENBQTBDO0FBQzFDLGlDQUFpQztBQUNqQywyQkFBMkI7QUFDM0IsV0FBVztBQUNYLFNBQVM7QUFDVCxPQUFPO0FBQ1AsSUFBSTtBQUNKLE1BQU0sVUFBVSxhQUFhO0lBQzNCLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDcEIsUUFBUTtRQUNSLFdBQVcsRUFBRSxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQztLQUM5RCxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRkNoYW5uZWxPcGVyYXRvciB9IGZyb20gJy4vdHlwZXMnO1xuXG4vLyBleHBvcnQgZnVuY3Rpb24gbm90aWZ5T25TdGFydCgpOiBGQ2hhbm5lbE9wZXJhdG9yIHtcbi8vICAgcmV0dXJuIChjYWxsYmFjaykgPT4ge1xuLy8gICAgIGxldCB0ZWFyZG93bjogKCgpID0+IHZvaWQpIHwgbnVsbCA9IG51bGw7XG4vL1xuLy8gICAgIHJldHVybiB7XG4vLyAgICAgICBzZXRUZWFyZG93bjogKHQpID0+ICh0ZWFyZG93biA9IHQpLFxuLy8gICAgICAgY2FsbGJhY2ssXG4vLyAgICAgICBvblN1YnNjcmliZTogKGZpbmFsQ2FsbGJhY2spID0+IHtcbi8vICAgICAgICAgaWYgKCF0ZWFyZG93bikgcmV0dXJuO1xuLy8gICAgICAgICBmaW5hbENhbGxiYWNrKCk7XG4vLyAgICAgICB9LFxuLy8gICAgIH07XG4vLyAgIH07XG4vLyB9XG5leHBvcnQgZnVuY3Rpb24gbm90aWZ5T25TdGFydCgpOiBGQ2hhbm5lbE9wZXJhdG9yIHtcbiAgcmV0dXJuIChjYWxsYmFjaykgPT4gKHtcbiAgICBjYWxsYmFjayxcbiAgICBvblN1YnNjcmliZTogKGZpbmFsQ2FsbGJhY2spID0+IHF1ZXVlTWljcm90YXNrKGZpbmFsQ2FsbGJhY2spLFxuICB9KTtcbn1cbiJdfQ==
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZ5LW9uLXN0YXJ0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9yZWFjdGl2aXR5L25vdGlmeS1vbi1zdGFydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxzREFBc0Q7QUFDdEQsMkJBQTJCO0FBQzNCLGdEQUFnRDtBQUNoRCxFQUFFO0FBQ0YsZUFBZTtBQUNmLDRDQUE0QztBQUM1QyxrQkFBa0I7QUFDbEIsMENBQTBDO0FBQzFDLGlDQUFpQztBQUNqQywyQkFBMkI7QUFDM0IsV0FBVztBQUNYLFNBQVM7QUFDVCxPQUFPO0FBQ1AsSUFBSTtBQUNKLE1BQU0sVUFBVSxhQUFhO0lBQzNCLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRTtRQUNsQixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFFbEIsT0FBTztZQUNMLFFBQVE7WUFDUixXQUFXLEVBQUUsQ0FBQyxhQUFhLEVBQUUsRUFBRTtnQkFDN0IsY0FBYyxDQUFDLEdBQUcsRUFBRTtvQkFDbEIsSUFBSSxDQUFDLE1BQU07d0JBQUUsT0FBTztvQkFDcEIsYUFBYSxFQUFFLENBQUM7Z0JBQ2xCLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUNELE9BQU8sRUFBRSxHQUFHLEVBQUU7Z0JBQ1osTUFBTSxHQUFHLEtBQUssQ0FBQztZQUNqQixDQUFDO1NBQ0YsQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGQ2hhbm5lbE9wZXJhdG9yIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8vIGV4cG9ydCBmdW5jdGlvbiBub3RpZnlPblN0YXJ0KCk6IEZDaGFubmVsT3BlcmF0b3Ige1xuLy8gICByZXR1cm4gKGNhbGxiYWNrKSA9PiB7XG4vLyAgICAgbGV0IHRlYXJkb3duOiAoKCkgPT4gdm9pZCkgfCBudWxsID0gbnVsbDtcbi8vXG4vLyAgICAgcmV0dXJuIHtcbi8vICAgICAgIHNldFRlYXJkb3duOiAodCkgPT4gKHRlYXJkb3duID0gdCksXG4vLyAgICAgICBjYWxsYmFjayxcbi8vICAgICAgIG9uU3Vic2NyaWJlOiAoZmluYWxDYWxsYmFjaykgPT4ge1xuLy8gICAgICAgICBpZiAoIXRlYXJkb3duKSByZXR1cm47XG4vLyAgICAgICAgIGZpbmFsQ2FsbGJhY2soKTtcbi8vICAgICAgIH0sXG4vLyAgICAgfTtcbi8vICAgfTtcbi8vIH1cbmV4cG9ydCBmdW5jdGlvbiBub3RpZnlPblN0YXJ0KCk6IEZDaGFubmVsT3BlcmF0b3Ige1xuICByZXR1cm4gKGNhbGxiYWNrKSA9PiB7XG4gICAgbGV0IGFjdGl2ZSA9IHRydWU7XG5cbiAgICByZXR1cm4ge1xuICAgICAgY2FsbGJhY2ssXG4gICAgICBvblN1YnNjcmliZTogKGZpbmFsQ2FsbGJhY2spID0+IHtcbiAgICAgICAgcXVldWVNaWNyb3Rhc2soKCkgPT4ge1xuICAgICAgICAgIGlmICghYWN0aXZlKSByZXR1cm47XG4gICAgICAgICAgZmluYWxDYWxsYmFjaygpO1xuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICBjbGVhbnVwOiAoKSA9PiB7XG4gICAgICAgIGFjdGl2ZSA9IGZhbHNlO1xuICAgICAgfSxcbiAgICB9O1xuICB9O1xufVxuIl19
@@ -8,10 +8,14 @@ export function takeOne() {
8
8
  if (taken)
9
9
  return;
10
10
  taken = true;
11
- callback();
12
- teardown?.();
11
+ try {
12
+ callback();
13
+ }
14
+ finally {
15
+ teardown?.();
16
+ }
13
17
  },
14
18
  };
15
19
  };
16
20
  }
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFrZS1vbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL3JlYWN0aXZpdHkvdGFrZS1vbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxVQUFVLE9BQU87SUFDckIsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFO1FBQ2xCLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNsQixJQUFJLFFBQVEsR0FBd0IsSUFBSSxDQUFDO1FBRXpDLE9BQU87WUFDTCxXQUFXLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztZQUNsQyxRQUFRLEVBQUUsR0FBRyxFQUFFO2dCQUNiLElBQUksS0FBSztvQkFBRSxPQUFPO2dCQUNsQixLQUFLLEdBQUcsSUFBSSxDQUFDO2dCQUViLFFBQVEsRUFBRSxDQUFDO2dCQUNYLFFBQVEsRUFBRSxFQUFFLENBQUM7WUFDZixDQUFDO1NBQ0YsQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGQ2hhbm5lbE9wZXJhdG9yIH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiB0YWtlT25lKCk6IEZDaGFubmVsT3BlcmF0b3Ige1xuICByZXR1cm4gKGNhbGxiYWNrKSA9PiB7XG4gICAgbGV0IHRha2VuID0gZmFsc2U7XG4gICAgbGV0IHRlYXJkb3duOiAoKCkgPT4gdm9pZCkgfCBudWxsID0gbnVsbDtcblxuICAgIHJldHVybiB7XG4gICAgICBzZXRUZWFyZG93bjogKHQpID0+ICh0ZWFyZG93biA9IHQpLFxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcbiAgICAgICAgaWYgKHRha2VuKSByZXR1cm47XG4gICAgICAgIHRha2VuID0gdHJ1ZTtcblxuICAgICAgICBjYWxsYmFjaygpO1xuICAgICAgICB0ZWFyZG93bj8uKCk7XG4gICAgICB9LFxuICAgIH07XG4gIH07XG59XG4iXX0=
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFrZS1vbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL3JlYWN0aXZpdHkvdGFrZS1vbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxVQUFVLE9BQU87SUFDckIsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFO1FBQ2xCLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNsQixJQUFJLFFBQVEsR0FBd0IsSUFBSSxDQUFDO1FBRXpDLE9BQU87WUFDTCxXQUFXLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztZQUNsQyxRQUFRLEVBQUUsR0FBRyxFQUFFO2dCQUNiLElBQUksS0FBSztvQkFBRSxPQUFPO2dCQUNsQixLQUFLLEdBQUcsSUFBSSxDQUFDO2dCQUViLElBQUksQ0FBQztvQkFDSCxRQUFRLEVBQUUsQ0FBQztnQkFDYixDQUFDO3dCQUFTLENBQUM7b0JBQ1QsUUFBUSxFQUFFLEVBQUUsQ0FBQztnQkFDZixDQUFDO1lBQ0gsQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRkNoYW5uZWxPcGVyYXRvciB9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gdGFrZU9uZSgpOiBGQ2hhbm5lbE9wZXJhdG9yIHtcbiAgcmV0dXJuIChjYWxsYmFjaykgPT4ge1xuICAgIGxldCB0YWtlbiA9IGZhbHNlO1xuICAgIGxldCB0ZWFyZG93bjogKCgpID0+IHZvaWQpIHwgbnVsbCA9IG51bGw7XG5cbiAgICByZXR1cm4ge1xuICAgICAgc2V0VGVhcmRvd246ICh0KSA9PiAodGVhcmRvd24gPSB0KSxcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XG4gICAgICAgIGlmICh0YWtlbikgcmV0dXJuO1xuICAgICAgICB0YWtlbiA9IHRydWU7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjYWxsYmFjaygpO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgIHRlYXJkb3duPy4oKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9O1xuICB9O1xufVxuIl19
@@ -14,6 +14,7 @@ import * as i0 from "@angular/core";
14
14
  */
15
15
  export declare class FCanvasComponent extends FCanvasBase implements OnInit, OnDestroy {
16
16
  private readonly _mediator;
17
+ private readonly _componentsStore;
17
18
  private readonly _elementReference;
18
19
  private readonly _injector;
19
20
  private _flowId;
@@ -19,6 +19,8 @@ export declare class FComponentsStore {
19
19
  readonly transformChanges$: FChannel;
20
20
  readonly dataChanges$: FChannel;
21
21
  readonly countChanges$: FChannel;
22
+ private _dataVersion;
23
+ get dataVersion(): number;
22
24
  get flowHost(): HTMLElement;
23
25
  fFlow: FFlowBase | undefined;
24
26
  fCanvas: FCanvasBase | undefined;
@@ -1,3 +1,5 @@
1
1
  export declare class ListenDataChangesRequest {
2
+ readonly notifyOnSubscribe: boolean;
2
3
  static readonly fToken: unique symbol;
4
+ constructor(notifyOnSubscribe?: boolean);
3
5
  }
@@ -4,7 +4,7 @@ import { FChannelHub } from '../../../reactivity';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class ListenDataChanges implements IExecution<ListenDataChangesRequest, FChannelHub> {
6
6
  private readonly _store;
7
- handle(_request: ListenDataChangesRequest): FChannelHub;
7
+ handle({ notifyOnSubscribe }: ListenDataChangesRequest): FChannelHub;
8
8
  static ɵfac: i0.ɵɵFactoryDeclaration<ListenDataChanges, never>;
9
9
  static ɵprov: i0.ɵɵInjectableDeclaration<ListenDataChanges>;
10
10
  }
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, inject, Injectable, ElementRef, Injector, input, effect, untracked, Directive, signal, numberAttribute, model, booleanAttribute, ChangeDetectionStrategy, Component, Input, viewChild, contentChildren, contentChild, computed, Renderer2, DestroyRef, output, ViewContainerRef, TemplateRef, runInInjectionContext, NgZone, EventEmitter, ContentChildren, Output, NgModule } from '@angular/core';
2
+ import { InjectionToken, inject, Injectable, ElementRef, Injector, input, effect, untracked, Directive, signal, numberAttribute, model, booleanAttribute, ChangeDetectionStrategy, Component, Input, viewChild, contentChildren, contentChild, computed, Renderer2, DestroyRef, output, ViewContainerRef, TemplateRef, runInInjectionContext, NgZone, EventEmitter, ContentChildren, Output, afterNextRender, NgModule } from '@angular/core';
3
3
  import { RectExtensions, RoundedRect, TransformModelExtensions, PointExtensions, Point, SizeExtensions, GetIntersections, LineExtensions, setRectToElement, adjustRectToMinSize, setRectToViewBox } from '@foblex/2d';
4
4
  import { __decorate } from 'tslib';
5
5
  import { FExecutionRegister, FMediator } from '@foblex/mediator';
@@ -222,7 +222,11 @@ class FNodeRegistry extends FIdRegistryBase {
222
222
  }
223
223
 
224
224
  class ListenDataChangesRequest {
225
+ notifyOnSubscribe;
225
226
  static fToken = Symbol('ListenDataChangesRequest');
227
+ constructor(notifyOnSubscribe = true) {
228
+ this.notifyOnSubscribe = notifyOnSubscribe;
229
+ }
226
230
  }
227
231
 
228
232
  function debounceAnimationFrame() {
@@ -356,11 +360,14 @@ class FChannelHub {
356
360
  teardownSetters.push(res.setTeardown);
357
361
  }
358
362
  const unsubs = this._channels.map((ch) => ch.listen(() => current()));
363
+ let unregisterOnDestroy = null;
359
364
  let tornDown = false;
360
365
  const teardown = () => {
361
366
  if (tornDown)
362
367
  return;
363
368
  tornDown = true;
369
+ unregisterOnDestroy?.();
370
+ unregisterOnDestroy = null;
364
371
  unsubs.forEach((u) => u());
365
372
  cleanups.forEach((c) => c());
366
373
  };
@@ -372,7 +379,7 @@ class FChannelHub {
372
379
  .slice()
373
380
  .reverse()
374
381
  .forEach((fn) => fn(current));
375
- destroyRef.onDestroy(teardown);
382
+ unregisterOnDestroy = destroyRef.onDestroy(teardown);
376
383
  }
377
384
  }
378
385
 
@@ -391,10 +398,22 @@ class FChannelHub {
391
398
  // };
392
399
  // }
393
400
  function notifyOnStart() {
394
- return (callback) => ({
395
- callback,
396
- onSubscribe: (finalCallback) => queueMicrotask(finalCallback),
397
- });
401
+ return (callback) => {
402
+ let active = true;
403
+ return {
404
+ callback,
405
+ onSubscribe: (finalCallback) => {
406
+ queueMicrotask(() => {
407
+ if (!active)
408
+ return;
409
+ finalCallback();
410
+ });
411
+ },
412
+ cleanup: () => {
413
+ active = false;
414
+ },
415
+ };
416
+ };
398
417
  }
399
418
 
400
419
  function takeOne() {
@@ -407,8 +426,12 @@ function takeOne() {
407
426
  if (taken)
408
427
  return;
409
428
  taken = true;
410
- callback();
411
- teardown?.();
429
+ try {
430
+ callback();
431
+ }
432
+ finally {
433
+ teardown?.();
434
+ }
412
435
  },
413
436
  };
414
437
  };
@@ -416,8 +439,10 @@ function takeOne() {
416
439
 
417
440
  let ListenDataChanges = class ListenDataChanges {
418
441
  _store = inject(FComponentsStore);
419
- handle(_request) {
420
- return new FChannelHub(this._store.dataChanges$).pipe(notifyOnStart(), debounceTime(1));
442
+ handle({ notifyOnSubscribe }) {
443
+ return notifyOnSubscribe
444
+ ? new FChannelHub(this._store.dataChanges$).pipe(notifyOnStart(), debounceTime(1))
445
+ : new FChannelHub(this._store.dataChanges$).pipe(debounceTime(1));
421
446
  }
422
447
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ListenDataChanges, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
423
448
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ListenDataChanges });
@@ -494,6 +519,10 @@ class FComponentsStore {
494
519
  transformChanges$ = new FChannel();
495
520
  dataChanges$ = new FChannel();
496
521
  countChanges$ = new FChannel();
522
+ _dataVersion = 0;
523
+ get dataVersion() {
524
+ return this._dataVersion;
525
+ }
497
526
  get flowHost() {
498
527
  return this.fFlow?.hostElement;
499
528
  }
@@ -514,6 +543,7 @@ class FComponentsStore {
514
543
  this.countChanges$.notify();
515
544
  }
516
545
  dataChanged() {
546
+ this._dataVersion++;
517
547
  this.dataChanges$.notify();
518
548
  }
519
549
  transformChanged() {
@@ -13562,6 +13592,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
13562
13592
  */
13563
13593
  class FCanvasComponent extends FCanvasBase {
13564
13594
  _mediator = inject(FMediator);
13595
+ _componentsStore = inject(FComponentsStore);
13565
13596
  _elementReference = inject(ElementRef);
13566
13597
  _injector = inject(Injector);
13567
13598
  _flowId;
@@ -13673,8 +13704,12 @@ class FCanvasComponent extends FCanvasBase {
13673
13704
  this._mediator.execute(new RemoveCanvasFromStoreRequest());
13674
13705
  }
13675
13706
  _afterRedraw(callback) {
13707
+ if (this._componentsStore.dataVersion > 0) {
13708
+ afterNextRender(callback, { injector: this._injector });
13709
+ return;
13710
+ }
13676
13711
  this._mediator
13677
- .execute(new ListenDataChangesRequest())
13712
+ .execute(new ListenDataChangesRequest(false))
13678
13713
  .pipe(takeOne())
13679
13714
  .listen(this.destroyRef, callback);
13680
13715
  }