@foblex/flow 18.2.0 → 18.3.0

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 (56) hide show
  1. package/README.md +11 -1
  2. package/domain/f-connection/create-connection-markers/create-connection-markers.d.ts +3 -2
  3. package/domain/f-connection/redraw-connections/redraw-connections.d.ts +2 -0
  4. package/esm2022/domain/f-connection/create-connection-markers/create-connection-markers.mjs +33 -6
  5. package/esm2022/domain/f-connection/redraw-connections/redraw-connections.mjs +46 -3
  6. package/esm2022/f-connection/f-connection/f-connection.component.mjs +6 -6
  7. package/esm2022/f-connection/f-connection-for-create/f-connection-for-create.component.mjs +6 -7
  8. package/esm2022/f-connection/f-snap-connection/f-snap-connection.component.mjs +6 -7
  9. package/esm2022/f-connection/providers.mjs +8 -4
  10. package/esm2022/f-connection-v2/components/connection-gradient/components/index.mjs +2 -0
  11. package/esm2022/f-connection-v2/components/connection-gradient/components/render/f-connection-gradient-renderer.mjs +17 -0
  12. package/esm2022/f-connection-v2/components/connection-gradient/components/render/index.mjs +3 -0
  13. package/esm2022/f-connection-v2/components/connection-gradient/components/render/models/f-connection-gradient-renderer-base.mjs +81 -0
  14. package/esm2022/f-connection-v2/components/connection-gradient/components/render/models/index.mjs +2 -0
  15. package/esm2022/f-connection-v2/components/connection-gradient/f-connection-gradient.mjs +14 -46
  16. package/esm2022/f-connection-v2/components/connection-gradient/index.mjs +2 -1
  17. package/esm2022/f-connection-v2/components/connection-gradient/models/f-connection-gradient-base.mjs +2 -3
  18. package/esm2022/f-connection-v2/components/connection-path/f-connection-path.mjs +11 -7
  19. package/esm2022/f-connection-v2/components/f-connection-base.mjs +13 -9
  20. package/esm2022/f-connection-v2/models/f-connection-components-parent.mjs +1 -1
  21. package/esm2022/f-connection-v2/utils/create-gradient-dom-identifier.mjs +3 -3
  22. package/esm2022/f-connection-v2/utils/create-gradient-dom-url.mjs +3 -3
  23. package/esm2022/f-connection-worker/features/ensure-connection-worker/ensure-connection-worker.mjs +11 -4
  24. package/esm2022/f-connection-worker/features/is-connection-worker-enabled/is-connection-worker-enabled.mjs +3 -2
  25. package/esm2022/f-connection-worker/model/f-connection-worker.mjs +5 -1
  26. package/esm2022/f-connection-worker/worker/connection-worker-runtime.mjs +235 -0
  27. package/esm2022/f-flow/f-flow.component.mjs +8 -5
  28. package/esm2022/f-flow.module.mjs +37 -36
  29. package/esm2022/f-storage/f-components-store.mjs +17 -1
  30. package/esm2022/f-virtual/f-virtual-for.mjs +33 -3
  31. package/f-connection/f-connection/f-connection.component.d.ts +1 -1
  32. package/f-connection/f-connection-for-create/f-connection-for-create.component.d.ts +1 -1
  33. package/f-connection/f-snap-connection/f-snap-connection.component.d.ts +1 -1
  34. package/f-connection/providers.d.ts +3 -3
  35. package/f-connection-v2/components/connection-gradient/components/index.d.ts +1 -0
  36. package/f-connection-v2/components/connection-gradient/components/render/f-connection-gradient-renderer.d.ts +8 -0
  37. package/f-connection-v2/components/connection-gradient/components/render/index.d.ts +2 -0
  38. package/f-connection-v2/components/connection-gradient/components/render/models/f-connection-gradient-renderer-base.d.ts +25 -0
  39. package/f-connection-v2/components/connection-gradient/components/render/models/index.d.ts +1 -0
  40. package/f-connection-v2/components/connection-gradient/f-connection-gradient.d.ts +3 -11
  41. package/f-connection-v2/components/connection-gradient/index.d.ts +1 -0
  42. package/f-connection-v2/components/connection-gradient/models/f-connection-gradient-base.d.ts +3 -5
  43. package/f-connection-v2/components/connection-path/f-connection-path.d.ts +3 -2
  44. package/f-connection-v2/components/f-connection-base.d.ts +7 -4
  45. package/f-connection-v2/models/f-connection-components-parent.d.ts +0 -2
  46. package/f-connection-v2/utils/create-gradient-dom-identifier.d.ts +1 -1
  47. package/f-connection-v2/utils/create-gradient-dom-url.d.ts +1 -1
  48. package/f-connection-worker/model/f-connection-worker.d.ts +1 -0
  49. package/f-connection-worker/worker/connection-worker-runtime.d.ts +11 -0
  50. package/f-flow/f-flow.component.d.ts +1 -0
  51. package/f-flow.module.d.ts +38 -37
  52. package/f-storage/f-components-store.d.ts +5 -0
  53. package/f-virtual/f-virtual-for.d.ts +8 -2
  54. package/fesm2022/foblex-flow.mjs +509 -75
  55. package/fesm2022/foblex-flow.mjs.map +1 -1
  56. package/package.json +1 -1
@@ -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, Component, ChangeDetectionStrategy, Input, viewChild, contentChildren, contentChild, computed, Renderer2, DestroyRef, output, ViewContainerRef, TemplateRef, runInInjectionContext, NgZone, EventEmitter, Output, afterNextRender, NgModule } from '@angular/core';
2
+ import { InjectionToken, inject, Injectable, ElementRef, Injector, input, effect, untracked, Directive, signal, numberAttribute, model, booleanAttribute, Component, ChangeDetectionStrategy, Input, computed, viewChild, contentChildren, contentChild, Renderer2, DestroyRef, output, ViewContainerRef, TemplateRef, runInInjectionContext, NgZone, EventEmitter, Output, afterNextRender, NgModule } from '@angular/core';
3
3
  import { TransformModelExtensions, PointExtensions, RectExtensions, GetIntersections, Point, LineExtensions, RoundedRect, SizeExtensions, setRectToElement, adjustRectToMinSize, setRectToViewBox } from '@foblex/2d';
4
4
  import { __decorate } from 'tslib';
5
5
  import { FExecutionRegister, FMediator } from '@foblex/mediator';
@@ -512,12 +512,17 @@ class FComponentsStore {
512
512
  _connectionsRevision = 0;
513
513
  nodesChanges$ = new FChannel();
514
514
  _nodesRevision = 0;
515
+ progressiveRenderChanges$ = new FChannel();
516
+ _pendingProgressiveRenderCount = 0;
515
517
  get connectionsRevision() {
516
518
  return this._connectionsRevision;
517
519
  }
518
520
  get nodesRevision() {
519
521
  return this._nodesRevision;
520
522
  }
523
+ get hasPendingProgressiveRender() {
524
+ return this._pendingProgressiveRenderCount > 0;
525
+ }
521
526
  get flowHost() {
522
527
  return this.fFlow?.hostElement;
523
528
  }
@@ -542,6 +547,17 @@ class FComponentsStore {
542
547
  this._connectionsRevision++;
543
548
  this.connectionsChanges$.notify();
544
549
  }
550
+ beginProgressiveRender() {
551
+ this._pendingProgressiveRenderCount++;
552
+ this.progressiveRenderChanges$.notify();
553
+ }
554
+ endProgressiveRender() {
555
+ if (!this._pendingProgressiveRenderCount) {
556
+ return;
557
+ }
558
+ this._pendingProgressiveRenderCount--;
559
+ this.progressiveRenderChanges$.notify();
560
+ }
545
561
  transformChanged() {
546
562
  this.transformChanges$.notify();
547
563
  }
@@ -1252,9 +1268,20 @@ class CreateConnectionMarkersRequest {
1252
1268
  let CreateConnectionMarkers = class CreateConnectionMarkers {
1253
1269
  _browser = inject(BrowserService);
1254
1270
  _store = inject(FComponentsStore);
1271
+ _markerCache = new WeakMap();
1255
1272
  handle({ connection }) {
1273
+ const markers = this._findConnectionMarkers(connection);
1274
+ const defs = connection.fDefs();
1275
+ if (!defs) {
1276
+ return false;
1277
+ }
1278
+ const signature = createConnectionMarkersSignature(markers);
1279
+ const cached = this._markerCache.get(connection);
1280
+ if (cached?.signature === signature && cached.defsElement === defs.nativeElement) {
1281
+ return false;
1282
+ }
1256
1283
  const element = createSVGElement$1('defs', this._browser);
1257
- this._findConnectionMarkers(connection).forEach((marker) => {
1284
+ markers.forEach((marker) => {
1258
1285
  const markerElement = createMarkerElement(marker, connection.fId(), this._browser);
1259
1286
  const clone = marker.hostElement.cloneNode(true);
1260
1287
  clone.setAttribute('height', `${marker.height}`);
@@ -1264,11 +1291,13 @@ let CreateConnectionMarkers = class CreateConnectionMarkers {
1264
1291
  markerElement.append(clone);
1265
1292
  element.append(markerElement);
1266
1293
  });
1267
- const defs = connection.fDefs();
1268
- if (defs) {
1269
- defs.nativeElement.innerHTML = element.innerHTML;
1270
- }
1294
+ defs.nativeElement.innerHTML = element.innerHTML;
1295
+ this._markerCache.set(connection, {
1296
+ signature,
1297
+ defsElement: defs.nativeElement,
1298
+ });
1271
1299
  this._makeSafariCompatible(connection);
1300
+ return true;
1272
1301
  }
1273
1302
  _findConnectionMarkers(connection) {
1274
1303
  return this._store.connectionMarkers
@@ -1288,6 +1317,20 @@ CreateConnectionMarkers = __decorate([
1288
1317
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CreateConnectionMarkers, decorators: [{
1289
1318
  type: Injectable
1290
1319
  }] });
1320
+ function createConnectionMarkersSignature(markers) {
1321
+ return markers
1322
+ .map((marker) => [
1323
+ marker.type,
1324
+ marker.width,
1325
+ marker.height,
1326
+ marker.refX,
1327
+ marker.refY,
1328
+ marker.orient,
1329
+ marker.markerUnits,
1330
+ marker.hostElement.outerHTML,
1331
+ ].join('|'))
1332
+ .join('||');
1333
+ }
1291
1334
  function createMarkerElement(marker, connectionId, browser) {
1292
1335
  const markerElement = createSVGElement$1('marker', browser);
1293
1336
  markerElement.setAttribute('id', normalizeDomElementId(marker.type + '-' + connectionId));
@@ -1851,11 +1894,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
1851
1894
  type: Input
1852
1895
  }] } });
1853
1896
 
1854
- const F_CONNECTION_GRADIENT = new InjectionToken('F_CONNECTION_GRADIENT');
1855
- class FConnectionGradientBase {
1856
- hostElement = inject((ElementRef)).nativeElement;
1857
- }
1858
-
1859
1897
  var EFConnectionBehavior;
1860
1898
  (function (EFConnectionBehavior) {
1861
1899
  EFConnectionBehavior["FIXED"] = "fixed";
@@ -2674,60 +2712,125 @@ function createConnectionSelectionDomIdentifier(componentId, sourceId, targetId)
2674
2712
  return normalizeDomElementId('connection_for_selection_' + componentId + sourceId + targetId);
2675
2713
  }
2676
2714
 
2677
- function createGradientDomIdentifier(componentId, sourceId, targetId) {
2678
- return normalizeDomElementId('connection_gradient_' + componentId + sourceId + targetId);
2715
+ function createGradientDomIdentifier(componentId) {
2716
+ return normalizeDomElementId('connection_gradient_' + componentId);
2679
2717
  }
2680
2718
 
2681
- function createGradientDomUrl(componentId, sourceId, targetId) {
2682
- return `url(#${createGradientDomIdentifier(componentId, sourceId, targetId)})`;
2719
+ function createGradientDomUrl(componentId) {
2720
+ return `url(#${createGradientDomIdentifier(componentId)})`;
2683
2721
  }
2684
2722
 
2685
- class FConnectionGradient extends FConnectionGradientBase {
2723
+ class FConnectionGradientRendererBase {
2686
2724
  _connection = inject(F_CONNECTION_COMPONENTS_PARENT);
2687
- get gradientId() {
2688
- return createGradientDomIdentifier(this._connection.fId(), this._connection.fOutputId(), this._connection.fInputId());
2725
+ _hostElement = inject((ElementRef)).nativeElement;
2726
+ _injector = inject(Injector);
2727
+ _hostAttributes = new Map();
2728
+ _startColor;
2729
+ _endColor;
2730
+ gradientId = computed(() => createGradientDomIdentifier(this._connection.fId()));
2731
+ ngOnInit() {
2732
+ this._listenColorChanges();
2733
+ }
2734
+ _listenColorChanges() {
2735
+ effect(() => {
2736
+ this.gradient().fStartColor();
2737
+ this.gradient().fEndColor();
2738
+ untracked(() => {
2739
+ this._updateGradient();
2740
+ });
2741
+ }, { injector: this._injector });
2689
2742
  }
2690
2743
  get stop1Element() {
2691
- return this.hostElement.children.item(0);
2744
+ return this._hostElement.children.item(0);
2692
2745
  }
2693
2746
  get stop2Element() {
2694
- return this.hostElement.children.item(1);
2695
- }
2696
- initialize() {
2697
- this.stop1Element.setAttribute('offset', '0%');
2698
- this.stop2Element.setAttribute('offset', '100%');
2699
- }
2700
- _updateGradient() {
2701
- this._setFromColor(this._connection.fStartColor());
2702
- this._setToColor(this._connection.fEndColor());
2703
- }
2704
- _setFromColor(color) {
2705
- this.stop1Element.setAttribute('stop-color', color || 'transparent');
2706
- }
2707
- _setToColor(color) {
2708
- this.stop2Element.setAttribute('stop-color', color || 'transparent');
2747
+ return this._hostElement.children.item(1);
2709
2748
  }
2710
2749
  redraw(line) {
2711
2750
  const x = line.point2.x - line.point1.x;
2712
2751
  const y = line.point2.y - line.point1.y;
2713
2752
  const distance = Math.sqrt(x * x + y * y) || 0.01;
2714
2753
  const from = new Point(0.5 - (0.5 * x) / distance, 0.5 - (0.5 * y) / distance);
2715
- this.hostElement.setAttribute('x1', from.x.toString());
2716
- this.hostElement.setAttribute('y1', from.y.toString());
2754
+ this._setHostAttribute('x1', from.x.toString());
2755
+ this._setHostAttribute('y1', from.y.toString());
2717
2756
  const to = new Point(0.5 + (0.5 * x) / distance, 0.5 + (0.5 * y) / distance);
2718
- this.hostElement.setAttribute('x2', to.x.toString());
2719
- this.hostElement.setAttribute('y2', to.y.toString());
2757
+ this._setHostAttribute('x2', to.x.toString());
2758
+ this._setHostAttribute('y2', to.y.toString());
2720
2759
  this._updateGradient();
2721
2760
  }
2761
+ _updateGradient() {
2762
+ const gradient = this.gradient();
2763
+ this._setFromColor(gradient.fStartColor());
2764
+ this._setToColor(gradient.fEndColor());
2765
+ }
2766
+ _setFromColor(color) {
2767
+ const nextColor = color || 'transparent';
2768
+ if (this._startColor === nextColor) {
2769
+ return;
2770
+ }
2771
+ this._startColor = nextColor;
2772
+ this.stop1Element.setAttribute('stop-color', nextColor);
2773
+ this.stop1Element.style.setProperty('stop-color', nextColor);
2774
+ }
2775
+ _setToColor(color) {
2776
+ const nextColor = color || 'transparent';
2777
+ if (this._endColor === nextColor) {
2778
+ return;
2779
+ }
2780
+ this._endColor = nextColor;
2781
+ this.stop2Element.setAttribute('stop-color', nextColor);
2782
+ this.stop2Element.style.setProperty('stop-color', nextColor);
2783
+ }
2784
+ _setHostAttribute(name, value) {
2785
+ if (this._hostAttributes.get(name) === value) {
2786
+ return;
2787
+ }
2788
+ this._hostAttributes.set(name, value);
2789
+ this._hostElement.setAttribute(name, value);
2790
+ }
2791
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionGradientRendererBase, deps: [], target: i0.ɵɵFactoryTarget.Directive });
2792
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: FConnectionGradientRendererBase, ngImport: i0 });
2793
+ }
2794
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionGradientRendererBase, decorators: [{
2795
+ type: Directive,
2796
+ args: [{}]
2797
+ }] });
2798
+
2799
+ class FConnectionGradientRenderer extends FConnectionGradientRendererBase {
2800
+ gradient = input.required({
2801
+ alias: 'fConnectionGradientRendererFor',
2802
+ });
2803
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionGradientRenderer, deps: null, target: i0.ɵɵFactoryTarget.Component });
2804
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: FConnectionGradientRenderer, isStandalone: true, selector: "linearGradient[fConnectionGradientRenderer]", inputs: { gradient: { classPropertyName: "gradient", publicName: "fConnectionGradientRendererFor", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "attr.id": "gradientId()" } }, usesInheritance: true, ngImport: i0, template: "<ng-container xmlns:svg=\"http://www.w3.org/2000/svg\">\n <svg:stop offset=\"0%\" />\n <svg:stop offset=\"100%\" />\n</ng-container>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
2805
+ }
2806
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionGradientRenderer, decorators: [{
2807
+ type: Component,
2808
+ args: [{ selector: 'linearGradient[fConnectionGradientRenderer]', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, host: {
2809
+ '[attr.id]': 'gradientId()',
2810
+ }, template: "<ng-container xmlns:svg=\"http://www.w3.org/2000/svg\">\n <svg:stop offset=\"0%\" />\n <svg:stop offset=\"100%\" />\n</ng-container>\n" }]
2811
+ }] });
2812
+
2813
+ const F_CONNECTION_GRADIENT = new InjectionToken('F_CONNECTION_GRADIENT');
2814
+ class FConnectionGradientBase {
2815
+ }
2816
+
2817
+ class FConnectionGradient extends FConnectionGradientBase {
2818
+ fStartColor = input.required();
2819
+ fEndColor = input.required();
2722
2820
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionGradient, deps: null, target: i0.ɵɵFactoryTarget.Component });
2723
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FConnectionGradient, selector: "linearGradient[fConnectionGradient]", host: { properties: { "attr.id": "gradientId" }, classAttribute: "f-component f-connection-gradient" }, providers: [{ provide: F_CONNECTION_GRADIENT, useExisting: FConnectionGradient }], usesInheritance: true, ngImport: i0, template: "<ng-container xmlns:svg=\"http://www.w3.org/2000/svg\">\n <svg:stop />\n <svg:stop />\n</ng-container>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
2821
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: FConnectionGradient, isStandalone: true, selector: "f-connection-gradient", inputs: { fStartColor: { classPropertyName: "fStartColor", publicName: "fStartColor", isSignal: true, isRequired: true, transformFunction: null }, fEndColor: { classPropertyName: "fEndColor", publicName: "fEndColor", isSignal: true, isRequired: true, transformFunction: null } }, host: { styleAttribute: "display: none;" }, providers: [{ provide: F_CONNECTION_GRADIENT, useExisting: FConnectionGradient }], usesInheritance: true, ngImport: i0, template: '', isInline: true });
2724
2822
  }
2725
2823
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionGradient, decorators: [{
2726
2824
  type: Component,
2727
- args: [{ selector: 'linearGradient[fConnectionGradient]', changeDetection: ChangeDetectionStrategy.OnPush, host: {
2728
- class: 'f-component f-connection-gradient',
2729
- '[attr.id]': 'gradientId',
2730
- }, providers: [{ provide: F_CONNECTION_GRADIENT, useExisting: FConnectionGradient }], template: "<ng-container xmlns:svg=\"http://www.w3.org/2000/svg\">\n <svg:stop />\n <svg:stop />\n</ng-container>\n" }]
2825
+ args: [{
2826
+ selector: 'f-connection-gradient',
2827
+ template: '',
2828
+ standalone: true,
2829
+ host: {
2830
+ style: 'display: none;',
2831
+ },
2832
+ providers: [{ provide: F_CONNECTION_GRADIENT, useExisting: FConnectionGradient }],
2833
+ }]
2731
2834
  }] });
2732
2835
 
2733
2836
  const F_CONNECTION_PATH = new InjectionToken('F_CONNECTION_PATH');
@@ -2737,12 +2840,16 @@ class FConnectionPathBase {
2737
2840
 
2738
2841
  class FConnectionPath extends FConnectionPathBase {
2739
2842
  _connection = inject(F_CONNECTION_COMPONENTS_PARENT);
2843
+ useGradient = input(false);
2844
+ linkToGradient = computed(() => {
2845
+ if (!this.useGradient()) {
2846
+ return null;
2847
+ }
2848
+ return createGradientDomUrl(this._connection.fId());
2849
+ });
2740
2850
  get fPathId() {
2741
2851
  return this._connection.fId();
2742
2852
  }
2743
- get linkToGradient() {
2744
- return createGradientDomUrl(this._connection.fId(), this._connection.fOutputId(), this._connection.fInputId());
2745
- }
2746
2853
  get attrConnectionId() {
2747
2854
  return createConnectionDomIdentifier(this._connection.fId(), this._connection.fOutputId(), this._connection.fInputId());
2748
2855
  }
@@ -2761,7 +2868,7 @@ class FConnectionPath extends FConnectionPathBase {
2761
2868
  this.hostElement.setAttribute('marker-end', `url(#${getMarkerEndId(this._connection.fId())})`);
2762
2869
  }
2763
2870
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionPath, deps: null, target: i0.ɵɵFactoryTarget.Component });
2764
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FConnectionPath, selector: "path[f-connection-path]", host: { properties: { "attr.id": "attrConnectionId", "attr.data-f-path-id": "fPathId", "attr.stroke": "linkToGradient" }, classAttribute: "f-component f-connection-path" }, providers: [
2871
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: FConnectionPath, selector: "path[f-connection-path]", inputs: { useGradient: { classPropertyName: "useGradient", publicName: "useGradient", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.id": "attrConnectionId", "attr.data-f-path-id": "fPathId", "style.stroke": "linkToGradient()" }, classAttribute: "f-component f-connection-path" }, providers: [
2765
2872
  {
2766
2873
  provide: F_CONNECTION_PATH,
2767
2874
  useExisting: FConnectionPath,
@@ -2774,7 +2881,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
2774
2881
  class: 'f-component f-connection-path',
2775
2882
  '[attr.id]': 'attrConnectionId',
2776
2883
  '[attr.data-f-path-id]': 'fPathId',
2777
- '[attr.stroke]': 'linkToGradient',
2884
+ '[style.stroke]': 'linkToGradient()',
2778
2885
  }, providers: [
2779
2886
  {
2780
2887
  provide: F_CONNECTION_PATH,
@@ -2958,8 +3065,6 @@ const MIXIN_BASE$1 = mixinChangeSelection(mixinChangeVisibility(class {
2958
3065
  }));
2959
3066
  class FConnectionBase extends MIXIN_BASE$1 {
2960
3067
  _fConnectionBuilder = inject(ConnectionLineBuilder);
2961
- fStartColor = input('black');
2962
- fEndColor = input('black');
2963
3068
  path = '';
2964
3069
  line = LineExtensions.initialize();
2965
3070
  fReassignableStart = signal(false);
@@ -2967,13 +3072,14 @@ class FConnectionBase extends MIXIN_BASE$1 {
2967
3072
  fSelectionDisabled = signal(false);
2968
3073
  fDefs = viewChild.required('defs');
2969
3074
  fPath = viewChild.required(F_CONNECTION_PATH);
2970
- fGradient = viewChild.required(F_CONNECTION_GRADIENT);
2971
3075
  fDragHandleStart = viewChild(F_CONNECTION_DRAG_HANDLE_START);
2972
3076
  fDragHandleEnd = viewChild.required(F_CONNECTION_DRAG_HANDLE_END);
2973
3077
  fSelection = viewChild.required(F_CONNECTION_SELECTION);
2974
3078
  fContents = contentChildren(F_CONNECTION_CONTENT, {
2975
3079
  descendants: true,
2976
3080
  });
3081
+ fGradient = contentChild(F_CONNECTION_GRADIENT);
3082
+ _fGradientRenderer = viewChild(FConnectionGradientRenderer);
2977
3083
  fWaypoints = contentChild(F_CONNECTION_WAYPOINTS);
2978
3084
  fInputSide = signal(EFConnectionConnectableSide.DEFAULT);
2979
3085
  _sourceSide = EFConnectableSide.AUTO;
@@ -2986,7 +3092,6 @@ class FConnectionBase extends MIXIN_BASE$1 {
2986
3092
  }
2987
3093
  initialize() {
2988
3094
  this.fPath().initialize();
2989
- this.fGradient().initialize();
2990
3095
  this.redraw();
2991
3096
  }
2992
3097
  isContains(element) {
@@ -3029,9 +3134,15 @@ class FConnectionBase extends MIXIN_BASE$1 {
3029
3134
  redraw() {
3030
3135
  this.fPath().setPath(this.path);
3031
3136
  this.fSelection().setPath(this.path);
3032
- this.fGradient().redraw(this.line);
3033
3137
  this.fDragHandleEnd().redraw(this._penultimatePoint, this.line.point2);
3034
3138
  this.fDragHandleStart()?.redraw(this._secondPoint, this.line.point1);
3139
+ this._fGradientRenderer()?.redraw(this.line);
3140
+ }
3141
+ getResolvedSides() {
3142
+ return {
3143
+ sourceSide: this._sourceSide,
3144
+ targetSide: this._targetSide,
3145
+ };
3035
3146
  }
3036
3147
  /**
3037
3148
  * Applies the resolved sides to the connection. Don't call this method directly; it's used internally.
@@ -3044,14 +3155,250 @@ class FConnectionBase extends MIXIN_BASE$1 {
3044
3155
  this._targetSide = targetSide;
3045
3156
  }
3046
3157
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionBase, deps: [], target: i0.ɵɵFactoryTarget.Directive });
3047
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "18.2.13", type: FConnectionBase, inputs: { fStartColor: { classPropertyName: "fStartColor", publicName: "fStartColor", isSignal: true, isRequired: false, transformFunction: null }, fEndColor: { classPropertyName: "fEndColor", publicName: "fEndColor", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "fContents", predicate: F_CONNECTION_CONTENT, descendants: true, isSignal: true }, { propertyName: "fWaypoints", first: true, predicate: F_CONNECTION_WAYPOINTS, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "fDefs", first: true, predicate: ["defs"], descendants: true, isSignal: true }, { propertyName: "fPath", first: true, predicate: F_CONNECTION_PATH, descendants: true, isSignal: true }, { propertyName: "fGradient", first: true, predicate: F_CONNECTION_GRADIENT, descendants: true, isSignal: true }, { propertyName: "fDragHandleStart", first: true, predicate: F_CONNECTION_DRAG_HANDLE_START, descendants: true, isSignal: true }, { propertyName: "fDragHandleEnd", first: true, predicate: F_CONNECTION_DRAG_HANDLE_END, descendants: true, isSignal: true }, { propertyName: "fSelection", first: true, predicate: F_CONNECTION_SELECTION, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0 });
3158
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "18.2.13", type: FConnectionBase, queries: [{ propertyName: "fContents", predicate: F_CONNECTION_CONTENT, descendants: true, isSignal: true }, { propertyName: "fGradient", first: true, predicate: F_CONNECTION_GRADIENT, descendants: true, isSignal: true }, { propertyName: "fWaypoints", first: true, predicate: F_CONNECTION_WAYPOINTS, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "fDefs", first: true, predicate: ["defs"], descendants: true, isSignal: true }, { propertyName: "fPath", first: true, predicate: F_CONNECTION_PATH, descendants: true, isSignal: true }, { propertyName: "fDragHandleStart", first: true, predicate: F_CONNECTION_DRAG_HANDLE_START, descendants: true, isSignal: true }, { propertyName: "fDragHandleEnd", first: true, predicate: F_CONNECTION_DRAG_HANDLE_END, descendants: true, isSignal: true }, { propertyName: "fSelection", first: true, predicate: F_CONNECTION_SELECTION, descendants: true, isSignal: true }, { propertyName: "_fGradientRenderer", first: true, predicate: FConnectionGradientRenderer, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0 });
3048
3159
  }
3049
3160
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionBase, decorators: [{
3050
3161
  type: Directive
3051
3162
  }], ctorParameters: () => [] });
3052
3163
 
3164
+ const F_CONNECTION_WORKER_SOURCE = String.raw `
3165
+ const EPSILON = 0.5;
3166
+
3167
+ addEventListener('message', (event) => {
3168
+ const data = event?.data;
3169
+ const requestId = data?.requestId;
3170
+ const items = Array.isArray(data?.items) ? data.items : [];
3171
+
3172
+ try {
3173
+ const results = items.map((item) => calculateItem(item));
3174
+ postMessage({ requestId, results });
3175
+ } catch (error) {
3176
+ const message = error instanceof Error ? error.message : 'Connection worker failed.';
3177
+ postMessage({ requestId, error: message });
3178
+ }
3179
+ });
3180
+
3181
+ function calculateItem(item) {
3182
+ const sourceCenterX = item.sourceRect.x + item.sourceRect.width / 2;
3183
+ const sourceCenterY = item.sourceRect.y + item.sourceRect.height / 2;
3184
+ const targetCenterX = item.targetRect.x + item.targetRect.width / 2;
3185
+ const targetCenterY = item.targetRect.y + item.targetRect.height / 2;
3186
+
3187
+ const sourceSide = resolveConnectableSide(
3188
+ item.outputSide,
3189
+ targetCenterX - sourceCenterX,
3190
+ targetCenterY - sourceCenterY,
3191
+ item.sourceConnectableSide,
3192
+ );
3193
+
3194
+ const targetSide = resolveConnectableSide(
3195
+ item.inputSide,
3196
+ sourceCenterX - targetCenterX,
3197
+ sourceCenterY - targetCenterY,
3198
+ item.targetConnectableSide,
3199
+ );
3200
+
3201
+ if (item.behavior === 'fixed_center') {
3202
+ return {
3203
+ originalIndex: item.originalIndex,
3204
+ supported: true,
3205
+ sourceSide,
3206
+ targetSide,
3207
+ line: {
3208
+ point1: { x: sourceCenterX, y: sourceCenterY },
3209
+ point2: { x: targetCenterX, y: targetCenterY },
3210
+ },
3211
+ };
3212
+ }
3213
+
3214
+ if (item.behavior !== 'fixed') {
3215
+ if (item.behavior !== 'floating') {
3216
+ return { originalIndex: item.originalIndex, supported: false };
3217
+ }
3218
+
3219
+ return {
3220
+ originalIndex: item.originalIndex,
3221
+ supported: true,
3222
+ sourceSide,
3223
+ targetSide,
3224
+ line: buildFloatingLine(item.sourceRect, item.targetRect),
3225
+ };
3226
+ }
3227
+
3228
+ const line = buildFixedLine(item.sourceRect, item.targetRect, sourceSide, targetSide);
3229
+ if (!line) {
3230
+ return { originalIndex: item.originalIndex, supported: false };
3231
+ }
3232
+
3233
+ return {
3234
+ originalIndex: item.originalIndex,
3235
+ supported: true,
3236
+ sourceSide,
3237
+ targetSide,
3238
+ line,
3239
+ };
3240
+ }
3241
+
3242
+ function resolveConnectableSide(requestedSide, deltaX, deltaY, fallbackSide) {
3243
+ if (requestedSide === 'default') {
3244
+ return fallbackSide;
3245
+ }
3246
+
3247
+ const absX = Math.abs(deltaX);
3248
+ const absY = Math.abs(deltaY);
3249
+ const nearZero = absX < EPSILON && absY < EPSILON;
3250
+
3251
+ if (nearZero) {
3252
+ return fallbackSide;
3253
+ }
3254
+
3255
+ const horizontalDominant = absX >= absY;
3256
+
3257
+ switch (requestedSide) {
3258
+ case 'calculate':
3259
+ return horizontalDominant ? (deltaX >= 0 ? 'right' : 'left') : deltaY >= 0 ? 'bottom' : 'top';
3260
+
3261
+ case 'calculate_horizontal':
3262
+ if (absX < EPSILON) {
3263
+ return fallbackSide;
3264
+ }
3265
+
3266
+ return deltaX >= 0 ? 'right' : 'left';
3267
+
3268
+ case 'calculate_vertical':
3269
+ if (absY < EPSILON) {
3270
+ return fallbackSide;
3271
+ }
3272
+
3273
+ return deltaY >= 0 ? 'bottom' : 'top';
3274
+
3275
+ case 'top':
3276
+ case 'bottom':
3277
+ case 'left':
3278
+ case 'right':
3279
+ return requestedSide;
3280
+
3281
+ default:
3282
+ return fallbackSide;
3283
+ }
3284
+ }
3285
+
3286
+ function buildFixedLine(sourceRect, targetRect, sourceSide, targetSide) {
3287
+ const sourceAnchor = sourceSide === 'auto' ? 'bottom' : sourceSide;
3288
+ const targetAnchor = targetSide === 'auto' ? 'top' : targetSide;
3289
+
3290
+ const point1 = getSidePoint(sourceRect, sourceAnchor);
3291
+ const point2 = getSidePoint(targetRect, targetAnchor);
3292
+
3293
+ if (!point1 || !point2) {
3294
+ return null;
3295
+ }
3296
+
3297
+ return { point1, point2 };
3298
+ }
3299
+
3300
+ function buildFloatingLine(sourceRect, targetRect) {
3301
+ const sourceCenter = getRectCenter(sourceRect);
3302
+ const targetCenter = getRectCenter(targetRect);
3303
+
3304
+ return {
3305
+ point1: getRectBorderIntersection(sourceRect, sourceCenter, targetCenter),
3306
+ point2: getRectBorderIntersection(targetRect, targetCenter, sourceCenter),
3307
+ };
3308
+ }
3309
+
3310
+ function getRectCenter(rect) {
3311
+ return {
3312
+ x: rect.x + rect.width / 2,
3313
+ y: rect.y + rect.height / 2,
3314
+ };
3315
+ }
3316
+
3317
+ function getRectBorderIntersection(rect, from, to) {
3318
+ const halfWidth = rect.width / 2;
3319
+ const halfHeight = rect.height / 2;
3320
+ const center = getRectCenter(rect);
3321
+
3322
+ const dx = to.x - from.x;
3323
+ const dy = to.y - from.y;
3324
+
3325
+ if (Math.abs(dx) < EPSILON && Math.abs(dy) < EPSILON) {
3326
+ return center;
3327
+ }
3328
+
3329
+ const scaleX = Math.abs(dx) < EPSILON ? Number.POSITIVE_INFINITY : halfWidth / Math.abs(dx);
3330
+ const scaleY = Math.abs(dy) < EPSILON ? Number.POSITIVE_INFINITY : halfHeight / Math.abs(dy);
3331
+ const scale = Math.min(scaleX, scaleY);
3332
+
3333
+ return {
3334
+ x: center.x + dx * scale,
3335
+ y: center.y + dy * scale,
3336
+ };
3337
+ }
3338
+
3339
+ function getSidePoint(rect, side) {
3340
+ const centerX = rect.x + rect.width / 2;
3341
+ const centerY = rect.y + rect.height / 2;
3342
+
3343
+ switch (side) {
3344
+ case 'top':
3345
+ return { x: centerX, y: rect.y };
3346
+
3347
+ case 'right':
3348
+ return { x: rect.x + rect.width, y: centerY };
3349
+
3350
+ case 'bottom':
3351
+ return { x: centerX, y: rect.y + rect.height };
3352
+
3353
+ case 'left':
3354
+ return { x: rect.x, y: centerY };
3355
+
3356
+ default:
3357
+ return null;
3358
+ }
3359
+ }
3360
+ `.trim();
3361
+ function isConnectionWorkerRuntimeSupported(windowRef) {
3362
+ return !!resolveConnectionWorkerRuntime(windowRef);
3363
+ }
3364
+ function resolveConnectionWorkerRuntime(windowRef) {
3365
+ const runtimeWindow = windowRef;
3366
+ const blobCtor = runtimeWindow?.Blob;
3367
+ const workerCtor = runtimeWindow?.Worker;
3368
+ const urlApi = runtimeWindow?.URL;
3369
+ if (!blobCtor || !workerCtor) {
3370
+ return null;
3371
+ }
3372
+ if (typeof urlApi?.createObjectURL !== 'function' ||
3373
+ typeof urlApi.revokeObjectURL !== 'function') {
3374
+ return null;
3375
+ }
3376
+ return {
3377
+ blobCtor,
3378
+ workerCtor,
3379
+ urlApi,
3380
+ };
3381
+ }
3382
+ function createConnectionWorkerUrl(runtime) {
3383
+ const blob = new runtime.blobCtor([F_CONNECTION_WORKER_SOURCE], {
3384
+ type: 'text/javascript',
3385
+ });
3386
+ return runtime.urlApi.createObjectURL(blob);
3387
+ }
3388
+ function revokeConnectionWorkerUrl(workerUrl, urlApi) {
3389
+ if (!workerUrl) {
3390
+ return;
3391
+ }
3392
+ const resolvedUrlApi = urlApi ?? (typeof URL === 'undefined' ? null : URL);
3393
+ if (typeof resolvedUrlApi?.revokeObjectURL !== 'function') {
3394
+ return;
3395
+ }
3396
+ resolvedUrlApi.revokeObjectURL(workerUrl);
3397
+ }
3398
+
3053
3399
  class FConnectionWorker {
3054
3400
  worker = null;
3401
+ workerUrl = null;
3055
3402
  nextRequestId = 0;
3056
3403
  isDisabled = false;
3057
3404
  pending = new Map();
@@ -3060,6 +3407,8 @@ class FConnectionWorker {
3060
3407
  this.pending.clear();
3061
3408
  this.worker?.terminate();
3062
3409
  this.worker = null;
3410
+ revokeConnectionWorkerUrl(this.workerUrl);
3411
+ this.workerUrl = null;
3063
3412
  }
3064
3413
  dispose() {
3065
3414
  this.resetRuntime(new Error('Connection worker was destroyed.'));
@@ -3167,12 +3516,16 @@ let EnsureConnectionWorker = class EnsureConnectionWorker {
3167
3516
  return this._state.worker;
3168
3517
  }
3169
3518
  const windowRef = this._browser.document.defaultView;
3170
- if (!windowRef?.Worker) {
3519
+ if (!isConnectionWorkerRuntimeSupported(windowRef)) {
3520
+ return null;
3521
+ }
3522
+ const runtime = resolveConnectionWorkerRuntime(windowRef);
3523
+ if (!runtime) {
3171
3524
  return null;
3172
3525
  }
3526
+ const workerUrl = createConnectionWorkerUrl(runtime);
3173
3527
  try {
3174
- const worker = new windowRef.Worker(new URL('../../worker/f-connection.worker.ts', import.meta.url), {
3175
- type: 'module',
3528
+ const worker = new runtime.workerCtor(workerUrl, {
3176
3529
  name: 'f-flow-connection-worker',
3177
3530
  });
3178
3531
  worker.onmessage = (event) => {
@@ -3184,10 +3537,12 @@ let EnsureConnectionWorker = class EnsureConnectionWorker {
3184
3537
  worker.onmessageerror = () => {
3185
3538
  this._resetWorkerAfterRuntimeError(new Error('Connection worker message deserialization error.'));
3186
3539
  };
3540
+ this._state.workerUrl = workerUrl;
3187
3541
  this._state.worker = worker;
3188
3542
  return worker;
3189
3543
  }
3190
3544
  catch (error) {
3545
+ revokeConnectionWorkerUrl(workerUrl, runtime.urlApi);
3191
3546
  this._disableWorker(error instanceof Error ? error : new Error('Connection worker initialization failed.'));
3192
3547
  return null;
3193
3548
  }
@@ -3223,7 +3578,7 @@ let IsConnectionWorkerEnabled = class IsConnectionWorkerEnabled {
3223
3578
  return false;
3224
3579
  }
3225
3580
  const windowRef = this._browser.document.defaultView;
3226
- return !!windowRef?.Worker;
3581
+ return isConnectionWorkerRuntimeSupported(windowRef);
3227
3582
  }
3228
3583
  _isWorkerAvailable() {
3229
3584
  return this._browser.isBrowser();
@@ -3540,6 +3895,7 @@ let RedrawConnections = class RedrawConnections {
3540
3895
  _browser = inject(BrowserService);
3541
3896
  _renderTicket = 0;
3542
3897
  _connectedInPreviousRender = new Set();
3898
+ _connectionRenderCache = new WeakMap();
3543
3899
  handle(_request) {
3544
3900
  const renderTicket = ++this._renderTicket;
3545
3901
  const nodesRevision = this._store.nodesRevision;
@@ -3582,7 +3938,10 @@ let RedrawConnections = class RedrawConnections {
3582
3938
  target.setConnected(source);
3583
3939
  this._connectedInPreviousRender.add(source);
3584
3940
  this._connectedInPreviousRender.add(target);
3585
- this._createMarkers(connection);
3941
+ const markersChanged = this._createMarkers(connection);
3942
+ if (!markersChanged && !this._shouldRedrawConnection(connection, line)) {
3943
+ return;
3944
+ }
3586
3945
  connection.setLine(line);
3587
3946
  connection.initialize();
3588
3947
  connection.isSelected() ? connection.markAsSelected() : null;
@@ -3597,7 +3956,17 @@ let RedrawConnections = class RedrawConnections {
3597
3956
  return this._mediator.execute(new ResolveConnectionWorkerContextRequest(connection, cache));
3598
3957
  }
3599
3958
  _createMarkers(connection) {
3600
- this._mediator.execute(new CreateConnectionMarkersRequest(connection));
3959
+ return this._mediator.execute(new CreateConnectionMarkersRequest(connection));
3960
+ }
3961
+ _shouldRedrawConnection(connection, line) {
3962
+ const pathElement = connection.fPath().hostElement;
3963
+ const signature = createConnectionRenderSignature(connection, line);
3964
+ const cached = this._connectionRenderCache.get(connection);
3965
+ if (cached?.signature === signature && cached.pathElement === pathElement) {
3966
+ return false;
3967
+ }
3968
+ this._connectionRenderCache.set(connection, { signature, pathElement });
3969
+ return true;
3601
3970
  }
3602
3971
  _setupConnectionsUsingWorker(connections, connectorRectCache, renderTicket, nodesRevision) {
3603
3972
  this._mediator
@@ -3736,6 +4105,35 @@ RedrawConnections = __decorate([
3736
4105
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RedrawConnections, decorators: [{
3737
4106
  type: Injectable
3738
4107
  }] });
4108
+ function createConnectionRenderSignature(connection, line) {
4109
+ const { sourceSide, targetSide } = connection.getResolvedSides();
4110
+ return [
4111
+ connection.fBehavior,
4112
+ connection.fType,
4113
+ connection.fRadius,
4114
+ connection.fOffset,
4115
+ connection.fReassignableStart(),
4116
+ serializeContents(connection.fContents() || []),
4117
+ sourceSide,
4118
+ targetSide,
4119
+ serializePoint(line.point1),
4120
+ serializePoint(line.point2),
4121
+ serializeWaypoints(connection.fWaypoints()?.waypoints() || []),
4122
+ ].join('|');
4123
+ }
4124
+ function serializePoint(point) {
4125
+ return `${point.x}:${point.y}`;
4126
+ }
4127
+ function serializeWaypoints(waypoints) {
4128
+ return waypoints.map(serializePoint).join(';');
4129
+ }
4130
+ function serializeContents(contents) {
4131
+ return contents
4132
+ .map((content) => {
4133
+ return [content.position(), content.offset(), content.align()].join(':');
4134
+ })
4135
+ .join(';');
4136
+ }
3739
4137
 
3740
4138
  class RemoveConnectionForCreateFromStoreRequest {
3741
4139
  static fToken = Symbol('RemoveConnectionForCreateFromStoreRequest');
@@ -15612,7 +16010,7 @@ class FConnectionComponent extends FConnectionBase {
15612
16010
  this._mediator.execute(new RemoveConnectionFromStoreRequest(this));
15613
16011
  }
15614
16012
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
15615
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FConnectionComponent, selector: "f-connection", inputs: { fId: { classPropertyName: "fId", publicName: "fConnectionId", isSignal: true, isRequired: false, transformFunction: null }, fOutputId: { classPropertyName: "fOutputId", publicName: "fOutputId", isSignal: true, isRequired: false, transformFunction: null }, fInputId: { classPropertyName: "fInputId", publicName: "fInputId", isSignal: true, isRequired: false, transformFunction: null }, fRadius: { classPropertyName: "fRadius", publicName: "fRadius", isSignal: false, isRequired: false, transformFunction: numberAttribute }, fOffset: { classPropertyName: "fOffset", publicName: "fOffset", isSignal: false, isRequired: false, transformFunction: numberAttribute }, fBehavior: { classPropertyName: "fBehavior", publicName: "fBehavior", isSignal: false, isRequired: false, transformFunction: (value) => castToEnum(value, 'fBehavior', EFConnectionBehavior) }, fType: { classPropertyName: "fType", publicName: "fType", isSignal: false, isRequired: false, transformFunction: null }, fSelectionDisabled: { classPropertyName: "fSelectionDisabled", publicName: "fSelectionDisabled", isSignal: true, isRequired: false, transformFunction: null }, fReassignableStart: { classPropertyName: "fReassignableStart", publicName: "fReassignableStart", isSignal: true, isRequired: false, transformFunction: null }, fDraggingDisabled: { classPropertyName: "fDraggingDisabled", publicName: "fReassignDisabled", isSignal: true, isRequired: false, transformFunction: null }, fInputSide: { classPropertyName: "fInputSide", publicName: "fInputSide", isSignal: true, isRequired: false, transformFunction: null }, fOutputSide: { classPropertyName: "fOutputSide", publicName: "fOutputSide", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.id": "fId()", "class.f-connection-selection-disabled": "fSelectionDisabled()", "class.f-connection-reassign-disabled": "fDraggingDisabled()" }, classAttribute: "f-component f-connection" }, providers: [{ provide: F_CONNECTION_COMPONENTS_PARENT, useExisting: FConnectionComponent }], exportAs: ["fComponent"], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<svg xmlns=\"http://www.w3.org/2000/svg\">\n <defs #defs></defs>\n <ng-content />\n <g class=\"f-connection-group\">\n <linearGradient fConnectionGradient></linearGradient>\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path [attr.d]=\"path\"></path>\n @if (fReassignableStart()) {\n <circle f-connection-drag-handle-start r=\"8\"></circle>\n }\n <circle f-connection-drag-handle-end r=\"8\"></circle>\n </g>\n </g>\n</svg>\n<ng-content select=\"f-connection-waypoints\" />\n\n@if (fContents().length) {\n <ng-content select=\"[fConnectionContent]\" />\n}\n", styles: [":host{pointer-events:none}:host svg{display:block;vertical-align:middle;overflow:visible!important;position:absolute}:host svg .f-connection-group{pointer-events:all}:host .f-connection-content{pointer-events:all}\n"], dependencies: [{ kind: "component", type: FConnectionDragHandleStart, selector: "circle[f-connection-drag-handle-start]" }, { kind: "component", type: FConnectionDragHandleEnd, selector: "circle[f-connection-drag-handle-end]" }, { kind: "component", type: FConnectionGradient, selector: "linearGradient[fConnectionGradient]" }, { kind: "component", type: FConnectionPath, selector: "path[f-connection-path]" }, { kind: "component", type: FConnectionSelection, selector: "path[fConnectionSelection]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
16013
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FConnectionComponent, selector: "f-connection", inputs: { fId: { classPropertyName: "fId", publicName: "fConnectionId", isSignal: true, isRequired: false, transformFunction: null }, fOutputId: { classPropertyName: "fOutputId", publicName: "fOutputId", isSignal: true, isRequired: false, transformFunction: null }, fInputId: { classPropertyName: "fInputId", publicName: "fInputId", isSignal: true, isRequired: false, transformFunction: null }, fRadius: { classPropertyName: "fRadius", publicName: "fRadius", isSignal: false, isRequired: false, transformFunction: numberAttribute }, fOffset: { classPropertyName: "fOffset", publicName: "fOffset", isSignal: false, isRequired: false, transformFunction: numberAttribute }, fBehavior: { classPropertyName: "fBehavior", publicName: "fBehavior", isSignal: false, isRequired: false, transformFunction: (value) => castToEnum(value, 'fBehavior', EFConnectionBehavior) }, fType: { classPropertyName: "fType", publicName: "fType", isSignal: false, isRequired: false, transformFunction: null }, fSelectionDisabled: { classPropertyName: "fSelectionDisabled", publicName: "fSelectionDisabled", isSignal: true, isRequired: false, transformFunction: null }, fReassignableStart: { classPropertyName: "fReassignableStart", publicName: "fReassignableStart", isSignal: true, isRequired: false, transformFunction: null }, fDraggingDisabled: { classPropertyName: "fDraggingDisabled", publicName: "fReassignDisabled", isSignal: true, isRequired: false, transformFunction: null }, fInputSide: { classPropertyName: "fInputSide", publicName: "fInputSide", isSignal: true, isRequired: false, transformFunction: null }, fOutputSide: { classPropertyName: "fOutputSide", publicName: "fOutputSide", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.id": "fId()", "class.f-connection-selection-disabled": "fSelectionDisabled()", "class.f-connection-reassign-disabled": "fDraggingDisabled()" }, classAttribute: "f-component f-connection" }, providers: [{ provide: F_CONNECTION_COMPONENTS_PARENT, useExisting: FConnectionComponent }], exportAs: ["fComponent"], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<svg xmlns=\"http://www.w3.org/2000/svg\">\n <defs #defs></defs>\n <ng-content select=\"svg[fMarker]\" />\n <g class=\"f-connection-group\">\n @if (fGradient(); as gradient) {\n <linearGradient\n fConnectionGradientRenderer\n [fConnectionGradientRendererFor]=\"gradient\"\n ></linearGradient>\n }\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path [useGradient]=\"!!fGradient()\" [attr.d]=\"path\"></path>\n @if (fReassignableStart()) {\n <circle f-connection-drag-handle-start r=\"8\"></circle>\n }\n <circle f-connection-drag-handle-end r=\"8\"></circle>\n </g>\n </g>\n</svg>\n<ng-content select=\"f-connection-gradient\" />\n<ng-content select=\"f-connection-waypoints\" />\n\n@if (fContents().length) {\n <ng-content select=\"[fConnectionContent]\" />\n}\n", styles: [":host{pointer-events:none}:host svg{display:block;vertical-align:middle;overflow:visible!important;position:absolute}:host svg .f-connection-group{pointer-events:all}:host .f-connection-content{pointer-events:all}\n"], dependencies: [{ kind: "component", type: FConnectionGradientRenderer, selector: "linearGradient[fConnectionGradientRenderer]", inputs: ["fConnectionGradientRendererFor"] }, { kind: "component", type: FConnectionDragHandleStart, selector: "circle[f-connection-drag-handle-start]" }, { kind: "component", type: FConnectionDragHandleEnd, selector: "circle[f-connection-drag-handle-end]" }, { kind: "component", type: FConnectionPath, selector: "path[f-connection-path]", inputs: ["useGradient"] }, { kind: "component", type: FConnectionSelection, selector: "path[fConnectionSelection]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
15616
16014
  }
15617
16015
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionComponent, decorators: [{
15618
16016
  type: Component,
@@ -15621,7 +16019,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
15621
16019
  class: 'f-component f-connection',
15622
16020
  '[class.f-connection-selection-disabled]': 'fSelectionDisabled()',
15623
16021
  '[class.f-connection-reassign-disabled]': 'fDraggingDisabled()',
15624
- }, providers: [{ provide: F_CONNECTION_COMPONENTS_PARENT, useExisting: FConnectionComponent }], template: "<svg xmlns=\"http://www.w3.org/2000/svg\">\n <defs #defs></defs>\n <ng-content />\n <g class=\"f-connection-group\">\n <linearGradient fConnectionGradient></linearGradient>\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path [attr.d]=\"path\"></path>\n @if (fReassignableStart()) {\n <circle f-connection-drag-handle-start r=\"8\"></circle>\n }\n <circle f-connection-drag-handle-end r=\"8\"></circle>\n </g>\n </g>\n</svg>\n<ng-content select=\"f-connection-waypoints\" />\n\n@if (fContents().length) {\n <ng-content select=\"[fConnectionContent]\" />\n}\n", styles: [":host{pointer-events:none}:host svg{display:block;vertical-align:middle;overflow:visible!important;position:absolute}:host svg .f-connection-group{pointer-events:all}:host .f-connection-content{pointer-events:all}\n"] }]
16022
+ }, providers: [{ provide: F_CONNECTION_COMPONENTS_PARENT, useExisting: FConnectionComponent }], template: "<svg xmlns=\"http://www.w3.org/2000/svg\">\n <defs #defs></defs>\n <ng-content select=\"svg[fMarker]\" />\n <g class=\"f-connection-group\">\n @if (fGradient(); as gradient) {\n <linearGradient\n fConnectionGradientRenderer\n [fConnectionGradientRendererFor]=\"gradient\"\n ></linearGradient>\n }\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path [useGradient]=\"!!fGradient()\" [attr.d]=\"path\"></path>\n @if (fReassignableStart()) {\n <circle f-connection-drag-handle-start r=\"8\"></circle>\n }\n <circle f-connection-drag-handle-end r=\"8\"></circle>\n </g>\n </g>\n</svg>\n<ng-content select=\"f-connection-gradient\" />\n<ng-content select=\"f-connection-waypoints\" />\n\n@if (fContents().length) {\n <ng-content select=\"[fConnectionContent]\" />\n}\n", styles: [":host{pointer-events:none}:host svg{display:block;vertical-align:middle;overflow:visible!important;position:absolute}:host svg .f-connection-group{pointer-events:all}:host .f-connection-content{pointer-events:all}\n"] }]
15625
16023
  }], propDecorators: { fRadius: [{
15626
16024
  type: Input,
15627
16025
  args: [{ transform: numberAttribute }]
@@ -15673,7 +16071,7 @@ class FConnectionForCreateComponent extends FConnectionBase {
15673
16071
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionForCreateComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
15674
16072
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FConnectionForCreateComponent, selector: "f-connection-for-create", inputs: { fRadius: { classPropertyName: "fRadius", publicName: "fRadius", isSignal: false, isRequired: false, transformFunction: numberAttribute }, fOffset: { classPropertyName: "fOffset", publicName: "fOffset", isSignal: false, isRequired: false, transformFunction: numberAttribute }, fBehavior: { classPropertyName: "fBehavior", publicName: "fBehavior", isSignal: false, isRequired: false, transformFunction: (value) => castToEnum(value, 'fBehavior', EFConnectionBehavior) }, fType: { classPropertyName: "fType", publicName: "fType", isSignal: false, isRequired: false, transformFunction: null }, fInputSide: { classPropertyName: "fInputSide", publicName: "fInputSide", isSignal: true, isRequired: false, transformFunction: null }, fOutputSide: { classPropertyName: "fOutputSide", publicName: "fOutputSide", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "f-component f-connection f-connection-for-create" }, providers: [
15675
16073
  { provide: F_CONNECTION_COMPONENTS_PARENT, useExisting: FConnectionForCreateComponent },
15676
- ], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<svg xmlns=\"http://www.w3.org/2000/svg\">\n <defs #defs></defs>\n <ng-content />\n <g class=\"f-connection-group\">\n <linearGradient fConnectionGradient></linearGradient>\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path [attr.d]=\"path\"></path>\n <circle f-connection-drag-handle-start r=\"8\"></circle>\n <circle f-connection-drag-handle-end r=\"8\"></circle>\n </g>\n </g>\n</svg>\n\n@if (fContents().length) {\n <ng-content select=\"[fConnectionContent]\"></ng-content>\n}\n", styles: [":host{pointer-events:none;position:absolute}:host svg{overflow:visible}:host svg .f-connection-group{pointer-events:all}:host .f-connection-content{pointer-events:all}\n"], dependencies: [{ kind: "component", type: FConnectionDragHandleStart, selector: "circle[f-connection-drag-handle-start]" }, { kind: "component", type: FConnectionDragHandleEnd, selector: "circle[f-connection-drag-handle-end]" }, { kind: "component", type: FConnectionGradient, selector: "linearGradient[fConnectionGradient]" }, { kind: "component", type: FConnectionPath, selector: "path[f-connection-path]" }, { kind: "component", type: FConnectionSelection, selector: "path[fConnectionSelection]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
16074
+ ], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<svg xmlns=\"http://www.w3.org/2000/svg\">\n <defs #defs></defs>\n <ng-content select=\"svg[fMarker]\" />\n <g class=\"f-connection-group\">\n @if (fGradient(); as gradient) {\n <linearGradient\n fConnectionGradientRenderer\n [fConnectionGradientRendererFor]=\"gradient\"\n ></linearGradient>\n }\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path [useGradient]=\"!!fGradient()\" [attr.d]=\"path\"></path>\n <circle f-connection-drag-handle-end r=\"8\"></circle>\n </g>\n </g>\n</svg>\n<ng-content select=\"f-connection-gradient\" />\n\n@if (fContents().length) {\n <ng-content select=\"[fConnectionContent]\" />\n}\n", styles: [":host{pointer-events:none;position:absolute}:host svg{overflow:visible}:host svg .f-connection-group{pointer-events:all}:host .f-connection-content{pointer-events:all}\n"], dependencies: [{ kind: "component", type: FConnectionGradientRenderer, selector: "linearGradient[fConnectionGradientRenderer]", inputs: ["fConnectionGradientRendererFor"] }, { kind: "component", type: FConnectionDragHandleEnd, selector: "circle[f-connection-drag-handle-end]" }, { kind: "component", type: FConnectionPath, selector: "path[f-connection-path]", inputs: ["useGradient"] }, { kind: "component", type: FConnectionSelection, selector: "path[fConnectionSelection]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
15677
16075
  }
15678
16076
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionForCreateComponent, decorators: [{
15679
16077
  type: Component,
@@ -15681,7 +16079,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
15681
16079
  class: 'f-component f-connection f-connection-for-create',
15682
16080
  }, providers: [
15683
16081
  { provide: F_CONNECTION_COMPONENTS_PARENT, useExisting: FConnectionForCreateComponent },
15684
- ], template: "<svg xmlns=\"http://www.w3.org/2000/svg\">\n <defs #defs></defs>\n <ng-content />\n <g class=\"f-connection-group\">\n <linearGradient fConnectionGradient></linearGradient>\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path [attr.d]=\"path\"></path>\n <circle f-connection-drag-handle-start r=\"8\"></circle>\n <circle f-connection-drag-handle-end r=\"8\"></circle>\n </g>\n </g>\n</svg>\n\n@if (fContents().length) {\n <ng-content select=\"[fConnectionContent]\"></ng-content>\n}\n", styles: [":host{pointer-events:none;position:absolute}:host svg{overflow:visible}:host svg .f-connection-group{pointer-events:all}:host .f-connection-content{pointer-events:all}\n"] }]
16082
+ ], template: "<svg xmlns=\"http://www.w3.org/2000/svg\">\n <defs #defs></defs>\n <ng-content select=\"svg[fMarker]\" />\n <g class=\"f-connection-group\">\n @if (fGradient(); as gradient) {\n <linearGradient\n fConnectionGradientRenderer\n [fConnectionGradientRendererFor]=\"gradient\"\n ></linearGradient>\n }\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path [useGradient]=\"!!fGradient()\" [attr.d]=\"path\"></path>\n <circle f-connection-drag-handle-end r=\"8\"></circle>\n </g>\n </g>\n</svg>\n<ng-content select=\"f-connection-gradient\" />\n\n@if (fContents().length) {\n <ng-content select=\"[fConnectionContent]\" />\n}\n", styles: [":host{pointer-events:none;position:absolute}:host svg{overflow:visible}:host svg .f-connection-group{pointer-events:all}:host .f-connection-content{pointer-events:all}\n"] }]
15685
16083
  }], propDecorators: { fRadius: [{
15686
16084
  type: Input,
15687
16085
  args: [{ transform: numberAttribute }]
@@ -15732,13 +16130,13 @@ class FSnapConnectionComponent extends FConnectionBase {
15732
16130
  this._mediator.execute(new RemoveSnapConnectionFromStoreRequest());
15733
16131
  }
15734
16132
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FSnapConnectionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
15735
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FSnapConnectionComponent, selector: "f-snap-connection", inputs: { fSnapThreshold: { classPropertyName: "fSnapThreshold", publicName: "fSnapThreshold", isSignal: false, isRequired: false, transformFunction: numberAttribute }, fRadius: { classPropertyName: "fRadius", publicName: "fRadius", isSignal: false, isRequired: false, transformFunction: numberAttribute }, fOffset: { classPropertyName: "fOffset", publicName: "fOffset", isSignal: false, isRequired: false, transformFunction: numberAttribute }, fBehavior: { classPropertyName: "fBehavior", publicName: "fBehavior", isSignal: false, isRequired: false, transformFunction: (value) => castToEnum(value, 'fBehavior', EFConnectionBehavior) }, fType: { classPropertyName: "fType", publicName: "fType", isSignal: false, isRequired: false, transformFunction: null }, fInputSide: { classPropertyName: "fInputSide", publicName: "fInputSide", isSignal: true, isRequired: false, transformFunction: null }, fOutputSide: { classPropertyName: "fOutputSide", publicName: "fOutputSide", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "f-component f-connection f-snap-connection" }, providers: [{ provide: F_CONNECTION_COMPONENTS_PARENT, useExisting: FSnapConnectionComponent }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<svg xmlns=\"http://www.w3.org/2000/svg\">\n <defs #defs></defs>\n <ng-content />\n <g class=\"f-connection-group\">\n <linearGradient fConnectionGradient></linearGradient>\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path [attr.d]=\"path\"></path>\n <circle f-connection-drag-handle-start r=\"8\"></circle>\n <circle f-connection-drag-handle-end r=\"8\"></circle>\n </g>\n </g>\n</svg>\n\n@if (fContents().length) {\n <ng-content select=\"[fConnectionContent]\"></ng-content>\n}\n", styles: [":host{pointer-events:none;position:absolute}:host svg{overflow:visible}:host svg .f-connection-group{pointer-events:all}:host .f-connection-content{pointer-events:all}\n"], dependencies: [{ kind: "component", type: FConnectionDragHandleStart, selector: "circle[f-connection-drag-handle-start]" }, { kind: "component", type: FConnectionDragHandleEnd, selector: "circle[f-connection-drag-handle-end]" }, { kind: "component", type: FConnectionGradient, selector: "linearGradient[fConnectionGradient]" }, { kind: "component", type: FConnectionPath, selector: "path[f-connection-path]" }, { kind: "component", type: FConnectionSelection, selector: "path[fConnectionSelection]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
16133
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FSnapConnectionComponent, selector: "f-snap-connection", inputs: { fSnapThreshold: { classPropertyName: "fSnapThreshold", publicName: "fSnapThreshold", isSignal: false, isRequired: false, transformFunction: numberAttribute }, fRadius: { classPropertyName: "fRadius", publicName: "fRadius", isSignal: false, isRequired: false, transformFunction: numberAttribute }, fOffset: { classPropertyName: "fOffset", publicName: "fOffset", isSignal: false, isRequired: false, transformFunction: numberAttribute }, fBehavior: { classPropertyName: "fBehavior", publicName: "fBehavior", isSignal: false, isRequired: false, transformFunction: (value) => castToEnum(value, 'fBehavior', EFConnectionBehavior) }, fType: { classPropertyName: "fType", publicName: "fType", isSignal: false, isRequired: false, transformFunction: null }, fInputSide: { classPropertyName: "fInputSide", publicName: "fInputSide", isSignal: true, isRequired: false, transformFunction: null }, fOutputSide: { classPropertyName: "fOutputSide", publicName: "fOutputSide", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "f-component f-connection f-snap-connection" }, providers: [{ provide: F_CONNECTION_COMPONENTS_PARENT, useExisting: FSnapConnectionComponent }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<svg xmlns=\"http://www.w3.org/2000/svg\">\n <defs #defs></defs>\n <ng-content select=\"svg[fMarker]\" />\n <g class=\"f-connection-group\">\n @if (fGradient(); as gradient) {\n <linearGradient\n fConnectionGradientRenderer\n [fConnectionGradientRendererFor]=\"gradient\"\n ></linearGradient>\n }\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path [useGradient]=\"!!fGradient()\" [attr.d]=\"path\"></path>\n <circle f-connection-drag-handle-end r=\"8\"></circle>\n </g>\n </g>\n</svg>\n<ng-content select=\"f-connection-gradient\" />\n\n@if (fContents().length) {\n <ng-content select=\"[fConnectionContent]\" />\n}\n", styles: [":host{pointer-events:none;position:absolute}:host svg{overflow:visible}:host svg .f-connection-group{pointer-events:all}:host .f-connection-content{pointer-events:all}\n"], dependencies: [{ kind: "component", type: FConnectionGradientRenderer, selector: "linearGradient[fConnectionGradientRenderer]", inputs: ["fConnectionGradientRendererFor"] }, { kind: "component", type: FConnectionDragHandleEnd, selector: "circle[f-connection-drag-handle-end]" }, { kind: "component", type: FConnectionPath, selector: "path[f-connection-path]", inputs: ["useGradient"] }, { kind: "component", type: FConnectionSelection, selector: "path[fConnectionSelection]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
15736
16134
  }
15737
16135
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FSnapConnectionComponent, decorators: [{
15738
16136
  type: Component,
15739
16137
  args: [{ selector: 'f-snap-connection', changeDetection: ChangeDetectionStrategy.OnPush, host: {
15740
16138
  class: 'f-component f-connection f-snap-connection',
15741
- }, providers: [{ provide: F_CONNECTION_COMPONENTS_PARENT, useExisting: FSnapConnectionComponent }], template: "<svg xmlns=\"http://www.w3.org/2000/svg\">\n <defs #defs></defs>\n <ng-content />\n <g class=\"f-connection-group\">\n <linearGradient fConnectionGradient></linearGradient>\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path [attr.d]=\"path\"></path>\n <circle f-connection-drag-handle-start r=\"8\"></circle>\n <circle f-connection-drag-handle-end r=\"8\"></circle>\n </g>\n </g>\n</svg>\n\n@if (fContents().length) {\n <ng-content select=\"[fConnectionContent]\"></ng-content>\n}\n", styles: [":host{pointer-events:none;position:absolute}:host svg{overflow:visible}:host svg .f-connection-group{pointer-events:all}:host .f-connection-content{pointer-events:all}\n"] }]
16139
+ }, providers: [{ provide: F_CONNECTION_COMPONENTS_PARENT, useExisting: FSnapConnectionComponent }], template: "<svg xmlns=\"http://www.w3.org/2000/svg\">\n <defs #defs></defs>\n <ng-content select=\"svg[fMarker]\" />\n <g class=\"f-connection-group\">\n @if (fGradient(); as gradient) {\n <linearGradient\n fConnectionGradientRenderer\n [fConnectionGradientRendererFor]=\"gradient\"\n ></linearGradient>\n }\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path [useGradient]=\"!!fGradient()\" [attr.d]=\"path\"></path>\n <circle f-connection-drag-handle-end r=\"8\"></circle>\n </g>\n </g>\n</svg>\n<ng-content select=\"f-connection-gradient\" />\n\n@if (fContents().length) {\n <ng-content select=\"[fConnectionContent]\" />\n}\n", styles: [":host{pointer-events:none;position:absolute}:host svg{overflow:visible}:host svg .f-connection-group{pointer-events:all}:host .f-connection-content{pointer-events:all}\n"] }]
15742
16140
  }], propDecorators: { fSnapThreshold: [{
15743
16141
  type: Input,
15744
16142
  args: [{ transform: numberAttribute }]
@@ -15758,7 +16156,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
15758
16156
  const F_CONNECTION_PROVIDERS = [
15759
16157
  FConnectionDragHandleStart,
15760
16158
  FConnectionDragHandleEnd,
15761
- FConnectionGradient,
15762
16159
  FConnectionPath,
15763
16160
  FConnectionSelection,
15764
16161
  FConnectionMarker,
@@ -15766,7 +16163,12 @@ const F_CONNECTION_PROVIDERS = [
15766
16163
  FConnectionForCreateComponent,
15767
16164
  FSnapConnectionComponent,
15768
16165
  ];
15769
- const F_CONNECTION_IMPORTS_EXPORTS = [FConnectionContent, FConnectionWaypoints];
16166
+ const F_CONNECTION_IMPORTS_EXPORTS = [
16167
+ FConnectionContent,
16168
+ FConnectionGradient,
16169
+ FConnectionGradientRenderer,
16170
+ FConnectionWaypoints,
16171
+ ];
15770
16172
 
15771
16173
  const F_MAGNETIC_LINES = new InjectionToken('F_MAGNETIC_LINES');
15772
16174
  class FMagneticLinesBase {
@@ -16053,6 +16455,7 @@ class FFlowComponent extends FFlowBase {
16053
16455
  _destroyRef = inject(DestroyRef);
16054
16456
  _mediator = inject(FMediator);
16055
16457
  _browser = inject(BrowserService);
16458
+ _componentsStore = inject(FComponentsStore);
16056
16459
  _cache = inject(F_CACHE_OPTIONS);
16057
16460
  _injector = inject(Injector);
16058
16461
  _worker = inject(FConnectionWorker);
@@ -16078,13 +16481,15 @@ class FFlowComponent extends FFlowBase {
16078
16481
  }, { injector: this._injector });
16079
16482
  }
16080
16483
  _listenNodesChanges() {
16081
- this._mediator
16082
- .execute(new ListenNodesChangesRequest())
16484
+ new FChannelHub(this._componentsStore.nodesChanges$, this._componentsStore.progressiveRenderChanges$)
16083
16485
  .pipe(notifyOnStart(), debounceTime(SORT_ITEM_LAYERS_DEBOUNCE_MS), afterNextPaint())
16084
16486
  .listen(this._destroyRef, () => {
16085
16487
  if (this._mediator.execute(new IsDragStartedRequest())) {
16086
16488
  return;
16087
16489
  }
16490
+ if (this._componentsStore.hasPendingProgressiveRender) {
16491
+ return;
16492
+ }
16088
16493
  this._mediator.execute(new SortItemLayersRequest());
16089
16494
  this._mediator.execute(new EmitConnectionsChangesRequest());
16090
16495
  this._emitLoaded();
@@ -16201,20 +16606,32 @@ class FVirtualFor {
16201
16606
  _vc = inject(ViewContainerRef);
16202
16607
  _tpl = inject(TemplateRef);
16203
16608
  _zone = inject(NgZone);
16609
+ _componentsStore = inject(FComponentsStore, { optional: true });
16204
16610
  _views = [];
16611
+ _rafId = null;
16612
+ _isProgressiveRenderActive = false;
16205
16613
  ngOnChanges(changes) {
16206
16614
  if (changes['fVirtualForOf']) {
16207
16615
  this._reset();
16208
16616
  this._renderProgressively();
16209
16617
  }
16210
16618
  }
16619
+ ngOnDestroy() {
16620
+ this._reset();
16621
+ }
16211
16622
  _reset() {
16623
+ if (this._rafId !== null) {
16624
+ cancelAnimationFrame(this._rafId);
16625
+ this._rafId = null;
16626
+ }
16627
+ this._finishProgressiveRender();
16212
16628
  this._vc.clear();
16213
16629
  this._views.length = 0;
16214
16630
  }
16215
16631
  _renderProgressively() {
16216
16632
  const FRAME_BUDGET = 10; // ms
16217
16633
  let index = 0;
16634
+ this._startProgressiveRender();
16218
16635
  this._zone.runOutsideAngular(() => {
16219
16636
  const pump = () => {
16220
16637
  const start = performance.now();
@@ -16228,12 +16645,29 @@ class FVirtualFor {
16228
16645
  index++;
16229
16646
  }
16230
16647
  if (index < this.fVirtualForOf.length) {
16231
- requestAnimationFrame(pump);
16648
+ this._rafId = requestAnimationFrame(pump);
16649
+ return;
16232
16650
  }
16651
+ this._rafId = null;
16652
+ this._finishProgressiveRender();
16233
16653
  };
16234
- requestAnimationFrame(pump);
16654
+ this._rafId = requestAnimationFrame(pump);
16235
16655
  });
16236
16656
  }
16657
+ _startProgressiveRender() {
16658
+ if (this._isProgressiveRenderActive) {
16659
+ return;
16660
+ }
16661
+ this._isProgressiveRenderActive = true;
16662
+ this._componentsStore?.beginProgressiveRender();
16663
+ }
16664
+ _finishProgressiveRender() {
16665
+ if (!this._isProgressiveRenderActive) {
16666
+ return;
16667
+ }
16668
+ this._isProgressiveRenderActive = false;
16669
+ this._componentsStore?.endProgressiveRender();
16670
+ }
16237
16671
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FVirtualFor, deps: [], target: i0.ɵɵFactoryTarget.Directive });
16238
16672
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: FVirtualFor, isStandalone: true, selector: "[fVirtualFor][fVirtualForOf]", inputs: { fVirtualForOf: "fVirtualForOf", fVirtualForTrackBy: "fVirtualForTrackBy" }, usesOnChanges: true, ngImport: i0 });
16239
16673
  }
@@ -16922,8 +17356,8 @@ function createSpyObj(baseName, methodNames) {
16922
17356
 
16923
17357
  class FFlowModule {
16924
17358
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FFlowModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
16925
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: FFlowModule, declarations: [FConnectionDragHandleStart, FConnectionDragHandleEnd, FConnectionGradient, FConnectionPath, FConnectionSelection, FConnectionMarker, FConnectionComponent, FConnectionForCreateComponent, FSnapConnectionComponent, FNodeInputDirective, FNodeOutletDirective, FNodeOutputDirective, FLineAlignmentComponent, FGroupDirective, FNodeDirective, FDragHandleDirective, FResizeHandleDirective, FRotateHandleDirective, FDragBlockerDirective,
16926
- FDraggableDirective], imports: [FFlowComponent, FCanvasComponent, FBackgroundComponent, FRectPatternComponent, FCirclePatternComponent, FZoomDirective, FExternalItem, FMinimapComponent, FMinimapCanvasDirective, FMinimapViewDirective, FMinimapFlowDirective, FSelectionArea, FMagneticLines, FMagneticRects, FConnectionContent, FConnectionWaypoints, FVirtualFor, CommonModule], exports: [FFlowComponent, FCanvasComponent, FBackgroundComponent, FRectPatternComponent, FCirclePatternComponent, FZoomDirective, FExternalItem, FSelectionArea, FMagneticLines, FMagneticRects, FConnectionContent, FConnectionWaypoints, FConnectionDragHandleStart, FConnectionDragHandleEnd, FConnectionGradient, FConnectionPath, FConnectionSelection, FConnectionMarker, FConnectionComponent, FConnectionForCreateComponent, FSnapConnectionComponent, FNodeInputDirective, FNodeOutletDirective, FNodeOutputDirective, FLineAlignmentComponent, FMinimapComponent, FMinimapCanvasDirective, FMinimapViewDirective, FMinimapFlowDirective, FGroupDirective, FNodeDirective, FDragHandleDirective, FResizeHandleDirective, FRotateHandleDirective, FVirtualFor, FDragBlockerDirective,
17359
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: FFlowModule, declarations: [FConnectionDragHandleStart, FConnectionDragHandleEnd, FConnectionPath, FConnectionSelection, FConnectionMarker, FConnectionComponent, FConnectionForCreateComponent, FSnapConnectionComponent, FNodeInputDirective, FNodeOutletDirective, FNodeOutputDirective, FLineAlignmentComponent, FGroupDirective, FNodeDirective, FDragHandleDirective, FResizeHandleDirective, FRotateHandleDirective, FDragBlockerDirective,
17360
+ FDraggableDirective], imports: [FFlowComponent, FCanvasComponent, FBackgroundComponent, FRectPatternComponent, FCirclePatternComponent, FZoomDirective, FExternalItem, FMinimapComponent, FMinimapCanvasDirective, FMinimapViewDirective, FMinimapFlowDirective, FSelectionArea, FMagneticLines, FMagneticRects, FConnectionContent, FConnectionGradient, FConnectionGradientRenderer, FConnectionWaypoints, FVirtualFor, CommonModule], exports: [FFlowComponent, FCanvasComponent, FBackgroundComponent, FRectPatternComponent, FCirclePatternComponent, FZoomDirective, FExternalItem, FSelectionArea, FMagneticLines, FMagneticRects, FConnectionContent, FConnectionGradient, FConnectionGradientRenderer, FConnectionWaypoints, FConnectionDragHandleStart, FConnectionDragHandleEnd, FConnectionPath, FConnectionSelection, FConnectionMarker, FConnectionComponent, FConnectionForCreateComponent, FSnapConnectionComponent, FNodeInputDirective, FNodeOutletDirective, FNodeOutputDirective, FLineAlignmentComponent, FMinimapComponent, FMinimapCanvasDirective, FMinimapViewDirective, FMinimapFlowDirective, FGroupDirective, FNodeDirective, FDragHandleDirective, FResizeHandleDirective, FRotateHandleDirective, FVirtualFor, FDragBlockerDirective,
16927
17361
  FDraggableDirective] });
16928
17362
  static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FFlowModule, imports: [CommonModule] });
16929
17363
  }
@@ -16978,5 +17412,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
16978
17412
  * Generated bundle index. Do not edit.
16979
17413
  */
16980
17414
 
16981
- export { AddCanvasToStore, AddCanvasToStoreRequest, AddConnectionForCreateToStore, AddConnectionForCreateToStoreRequest, AddConnectionMarkerToStore, AddConnectionMarkerToStoreRequest, AddConnectionToStore, AddConnectionToStoreRequest, AddConnectorToStore, AddConnectorToStoreRequest, AddDndToStore, AddDndToStoreRequest, AddFlowToStore, AddFlowToStoreRequest, AddNodeToStore, AddNodeToStoreRequest, AddPatternToBackground, AddPatternToBackgroundRequest, AddSnapConnectionToStore, AddSnapConnectionToStoreRequest, ApplyChildResizeConstraints, ApplyChildResizeConstraintsRequest, ApplyParentResizeConstraints, ApplyParentResizeConstraintsRequest, AttachDragNodeHandlerFromSelection, AttachDragNodeHandlerFromSelectionRequest, AttachResizeConnectionDragHandlersToNode, AttachResizeConnectionDragHandlersToNodeRequest, AttachSoftParentConnectionDragHandlersToNode, AttachSoftParentConnectionDragHandlersToNodeRequest, AttachSourceConnectionDragHandlersToNode, AttachSourceConnectionDragHandlersToNodeRequest, AttachTargetConnectionDragHandlersToNode, AttachTargetConnectionDragHandlersToNodeRequest, BuildDragNodeConstraints, BuildDragNodeConstraintsRequest, CALCULATABLE_SIDES, COMMON_PROVIDERS, CONNECTABLE_SIDE_EPSILON, CREATE_MOVE_NODE_DRAG_MODEL_FROM_SELECTION_PROVIDERS, CalculateAdaptiveCurveData, CalculateBezierCurveData, CalculateChangedRectFromDifference, CalculateChangedRectFromDifferenceRequest, CalculateClosestConnector, CalculateClosestConnectorRequest, CalculateConnectableSideByConnectedPositions, CalculateConnectableSideByConnectedPositionsRequest, CalculateConnectableSideByInternalPosition, CalculateConnectableSideByInternalPositionRequest, CalculateConnectionWorkerConnectorRect, CalculateConnectionWorkerConnectorRectRequest, CalculateConnectionWorkerPayloadItem, CalculateConnectionWorkerPayloadItemRequest, CalculateConnectionsState, CalculateConnectionsStateRequest, CalculateConnectionsUsingConnectionWorker, CalculateConnectionsUsingConnectionWorkerRequest, CalculateConnectorsConnectableSides, CalculateConnectorsConnectableSidesRequest, CalculateDirectChildrenUnionRect, CalculateDirectChildrenUnionRectRequest, CalculateFlowPointFromMinimapPoint, CalculateFlowPointFromMinimapPointRequest, CalculateFlowState, CalculateFlowStateRequest, CalculateInputConnections, CalculateInputConnectionsRequest, CalculateNodesBoundingBox, CalculateNodesBoundingBoxNormalizedPosition, CalculateNodesBoundingBoxNormalizedPositionRequest, CalculateNodesBoundingBoxRequest, CalculateNodesState, CalculateNodesStateRequest, CalculateOutputConnections, CalculateOutputConnectionsRequest, CalculateResizeLimits, CalculateResizeLimitsRequest, CalculateSegmentLineData, CalculateSelectableItems, CalculateSelectableItemsRequest, CalculateSourceConnectorsToConnect, CalculateSourceConnectorsToConnectRequest, CalculateStraightLineData, CalculateTargetConnectorsToConnect, CalculateTargetConnectorsToConnectRequest, CenterGroupOrNode, CenterGroupOrNodeRequest, ClearSelection, ClearSelectionRequest, ConnectionBehaviourBuilder, ConnectionBehaviourBuilderRequest, ConnectionContentLayoutEngine, ConnectionLineBuilder, ConnectionLineBuilderRequest, ConnectionWorkerRun, ConnectionWorkerRunRequest, CreateConnectionCreateDragHandler, CreateConnectionCreateDragHandlerRequest, CreateConnectionFinalize, CreateConnectionFinalizeRequest, CreateConnectionFromOutletPreparation, CreateConnectionFromOutletPreparationRequest, CreateConnectionFromOutputPreparation, CreateConnectionFromOutputPreparationRequest, CreateConnectionHandler, CreateConnectionMarkers, CreateConnectionMarkersRequest, CreateConnectionPreparation, CreateConnectionPreparationRequest, CreateDragNodeHandler, CreateDragNodeHandlerRequest, CreateDragNodeHierarchy, CreateDragNodeHierarchyRequest, DRAG_AND_DROP_COMMON_PROVIDERS, DRAG_CANVAS_PROVIDERS, DRAG_CONNECTIONS_PROVIDERS, DRAG_DROP_TO_GROUP_PROVIDERS, DRAG_EXTERNAL_ITEM_HANDLER_KIND, DRAG_EXTERNAL_ITEM_HANDLER_TYPE, DRAG_EXTERNAL_ITEM_PROVIDERS, DRAG_MINIMAP_HANDLER_KIND, DRAG_MINIMAP_HANDLER_TYPE, DRAG_MINIMAP_PROVIDERS, DRAG_NODE_HANDLER_KIND, DRAG_NODE_HANDLER_TYPE, DRAG_SELECTION_AREA_PROVIDERS, DRAG_SELECT_BY_POINTER_PROVIDERS, DeltaClamp, Deprecated, DetectConnectionsUnderDragNode, DetectConnectionsUnderDragNodeRequest, DisableConnectionWorker, DisableConnectionWorkerRequest, DragAndDropBase, DragCanvasFinalize, DragCanvasFinalizeRequest, DragCanvasHandler, DragCanvasPreparation, DragCanvasPreparationRequest, DragConnectionWaypointFinalize, DragConnectionWaypointFinalizeRequest, DragConnectionWaypointHandler, DragConnectionWaypointPreparation, DragConnectionWaypointPreparationRequest, DragExternalItemCreatePlaceholder, DragExternalItemCreatePlaceholderRequest, DragExternalItemCreatePreview, DragExternalItemCreatePreviewRequest, DragExternalItemFinalize, DragExternalItemFinalizeRequest, DragExternalItemHandler, DragExternalItemPreparation, DragExternalItemPreparationRequest, DragHandlerBase, DragHandlerInjector, DragMinimapFinalize, DragMinimapFinalizeRequest, DragMinimapHandler, DragMinimapPreparation, DragMinimapPreparationRequest, DragNodeConnectionBothSidesHandler, DragNodeConnectionHandlerBase, DragNodeConnectionSourceHandler, DragNodeConnectionTargetHandler, DragNodeDeltaConstraints, DragNodeFinalize, DragNodeFinalizeRequest, DragNodeHandler, DragNodeHierarchy, DragNodeItemHandler, DragNodePreparation, DragNodePreparationRequest, DropToGroupFinalize, DropToGroupFinalizeRequest, DropToGroupHandler, DropToGroupPreparation, DropToGroupPreparationRequest, EFConnectableSide, EFConnectionBehavior, EFConnectionConnectableSide, EFConnectionType, EFMarkerType, EFResizeHandleType, EFZoomDirection, EmitConnectionsChanges, EmitConnectionsChangesRequest, EmitEndDragSequenceEvent, EmitEndDragSequenceEventRequest, EmitSelectionChangeEvent, EmitSelectionChangeEventRequest, EmitStartDragSequenceEvent, EmitStartDragSequenceEventRequest, EnsureConnectionWorker, EnsureConnectionWorkerRequest, EventExtensions, ExternalRectConstraint, FBackgroundBase, FBackgroundComponent, FCache, FCacheConnector, FCacheConnectorKeyFactory, FCacheNode, FCanvasBase, FCanvasChangeEvent, FCanvasComponent, FChannel, FChannelHub, FCirclePatternComponent, FComponentsStore, FConnectionBase, FConnectionComponent, FConnectionComponentsParent, FConnectionContent, FConnectionContentBase, FConnectionDragHandleBase, FConnectionDragHandleEnd, FConnectionDragHandleStart, FConnectionForCreateComponent, FConnectionGradient, FConnectionGradientBase, FConnectionMarker, FConnectionMarkerBase, FConnectionMarkerRegistry, FConnectionPath, FConnectionPathBase, FConnectionRegistry, FConnectionSelection, FConnectionSelectionBase, FConnectionWaypoints, FConnectionWaypointsBase, FConnectionWaypointsChangedEvent, FConnectionWorker, FConnectorBase, FConnectorRegistry, FCreateConnectionEvent, FCreateNodeEvent, FDragBlockerDirective, FDragExternalItemStartEventData, FDragHandleDirective, FDragHandlerResult, FDragNodeStartEventData, FDragStartedEvent, FDraggableBase, FDraggableDataContext, FDraggableDirective, FDropToGroupEvent, FExternalItem, FExternalItemBase, FExternalItemPlaceholder, FExternalItemPreview, FExternalItemService, FFlowBase, FFlowComponent, FFlowModule, FGroupDirective, FIdRegistryBase, FLineAlignmentComponent, FMagneticLines, FMagneticLinesBase, FMagneticRects, FMagneticRectsBase, FMinimapBase, FMinimapCanvasDirective, FMinimapComponent, FMinimapFlowDirective, FMinimapState, FMinimapViewDirective, FMoveNodesEvent, FNodeBase, FNodeConnectionsIntersectionEvent, FNodeDirective, FNodeInputBase, FNodeInputDirective, FNodeIntersectedWithConnections, FNodeOutletBase, FNodeOutletDirective, FNodeOutputBase, FNodeOutputDirective, FNodeRegistry, FReassignConnectionEvent, FRectPatternComponent, FResizeChannel, FResizeHandleDirective, FResizeNodeStartEventData, FRotateHandleDirective, FRotateNodeStartEventData, FSelectionArea, FSelectionAreaBase, FSelectionChangeEvent, FSingleRegistryBase, FSnapConnectionComponent, FSourceConnectorBase, FVirtualFor, FZoomBase, FZoomDirective, F_BACKGROUND, F_BACKGROUND_FEATURES, F_BACKGROUND_PATTERN, F_BACKGROUND_PROVIDERS, F_CACHE_FEATURES, F_CACHE_OPTIONS, F_CANVAS, F_CANVAS_FEATURES, F_CANVAS_PROVIDERS, F_CONNECTION_BUILDERS, F_CONNECTION_COMPONENTS_PARENT, F_CONNECTION_CONTENT, F_CONNECTION_DRAG_HANDLE_END, F_CONNECTION_DRAG_HANDLE_START, F_CONNECTION_FEATURES, F_CONNECTION_GRADIENT, F_CONNECTION_IMPORTS_EXPORTS, F_CONNECTION_MARKER, F_CONNECTION_PATH, F_CONNECTION_PROVIDERS, F_CONNECTION_SELECTION, F_CONNECTION_WAYPOINTS, F_CONNECTION_WORKER_FEATURES, F_CONNECTORS_FEATURES, F_CONNECTORS_PROVIDERS, F_CSS_CLASS, F_DRAGGABLE_FEATURES, F_DRAGGABLE_PROVIDERS, F_EXTERNAL_ITEM, F_EXTERNAL_ITEM_PROVIDERS, F_FLOW, F_FLOW_FEATURES, F_FLOW_PROVIDERS, F_LINE_ALIGNMENT_PROVIDERS, F_MAGNETIC_LINES, F_MAGNETIC_LINES_PROVIDERS, F_MAGNETIC_RECTS, F_MAGNETIC_RECTS_PROVIDERS, F_MINIMAP_BASE, F_MINIMAP_FEATURES, F_MINIMAP_PROVIDERS, F_NODE, F_NODE_FEATURES, F_NODE_INPUT, F_NODE_OUTLET, F_NODE_OUTPUT, F_NODE_PROVIDERS, F_SELECTED_CLASS, F_SELECTION_AREA_PROVIDERS, F_SELECTION_FEATURES, F_STORAGE_PROVIDERS, F_VIRTUAL_FOR_PROVIDERS, F_ZOOM, F_ZOOM_FEATURES, F_ZOOM_PROVIDERS, FindConnectableConnectorUsingPriorityAndPosition, FindConnectableConnectorUsingPriorityAndPositionRequest, FitToChildNodesAndGroups, FitToChildNodesAndGroupsRequest, FitToFlow, FitToFlowRequest, GET_FLOW_STATE_PROVIDERS, GetCachedFCacheRect, GetCachedFCacheRectRequest, GetChildNodeIds, GetChildNodeIdsRequest, GetConnectorRectReference, GetConnectorRectReferenceRequest, GetCurrentSelection, GetCurrentSelectionRequest, GetDeepChildrenNodesAndGroups, GetDeepChildrenNodesAndGroupsRequest, GetFlow, GetFlowRequest, GetNodePadding, GetNodePaddingRequest, GetNormalizedConnectorRect, GetNormalizedConnectorRectRequest, GetNormalizedElementRect, GetNormalizedElementRectRequest, GetNormalizedParentNodeRect, GetNormalizedParentNodeRectRequest, GetNormalizedPoint, GetNormalizedPointRequest, GetParentNodes, GetParentNodesRequest, GridSnapper, HandleConnectionWorkerMessage, HandleConnectionWorkerMessageRequest, IMouseEvent, INSTANCES, IPointerEvent, IPointerUpEvent, ITouchDownEvent, ITouchMoveEvent, InitializeDragSequence, InitializeDragSequenceRequest, InputCanvasPosition, InputCanvasPositionRequest, InputCanvasScale, InputCanvasScaleRequest, InvalidateFCacheNode, InvalidateFCacheNodeRequest, IsArrayHasParentNode, IsArrayHasParentNodeRequest, IsConnectionWorkerEnabled, IsConnectionWorkerEnabledRequest, IsDragStarted, IsDragStartedRequest, ListenConnectionsChanges, ListenConnectionsChangesRequest, ListenNodesChanges, ListenNodesChangesRequest, ListenTransformChanges, ListenTransformChangesRequest, LogExecutionTime, MOUSE_EVENT_IGNORE_TIME, MagneticLineElement, MagneticLineRenderer, MagneticLinesHandler, MagneticLinesPreparation, MagneticLinesPreparationRequest, MagneticRectElement, MagneticRectsHandler, MagneticRectsPreparation, MagneticRectsPreparationRequest, MagneticRectsRenderer, MarkConnectableConnectors, MarkConnectableConnectorsRequest, MinimapCalculateViewRect, MinimapCalculateViewRectRequest, MinimapCalculateViewport, MinimapCalculateViewportRequest, MinimapDrawNodes, MinimapDrawNodesRequest, MoveFrontElementsBeforeTargetElement, MoveFrontElementsBeforeTargetElementRequest, NODE_PROVIDERS, NODE_RESIZE_PROVIDERS, NODE_ROTATE_PROVIDERS, NotifyTransformChanged, NotifyTransformChangedRequest, OnPointerMove, OnPointerMoveRequest, PINCH_TO_ZOOM_PROVIDERS, PinchToZoomFinalize, PinchToZoomFinalizeRequest, PinchToZoomHandler, PinchToZoomPreparation, PinchToZoomPreparationRequest, Polyline, PolylineContentAlign, PolylineContentPlace, PolylineSampler, PrepareDragSequence, PrepareDragSequenceRequest, PreventDefaultIsExternalItem, PreventDefaultIsExternalItemRequest, RESIZE_DIRECTIONS, RESIZE_NODE_HANDLER_KIND, RESIZE_NODE_HANDLER_TYPE, ROTATE_NODE_HANDLER_KIND, ROTATE_NODE_HANDLER_TYPE, ReadNodeBoundsWithPaddings, ReadNodeBoundsWithPaddingsRequest, ReadNodeBoundsWithPaddingsResponse, ReassignConnectionFinalize, ReassignConnectionFinalizeRequest, ReassignConnectionHandler, ReassignConnectionPreparation, ReassignConnectionPreparationRequest, ReassignConnectionSourceHandler, ReassignConnectionTargetHandler, RedrawCanvasWithAnimation, RedrawCanvasWithAnimationRequest, RedrawConnections, RedrawConnectionsRequest, RegisterFCacheConnector, RegisterFCacheConnectorRequest, RegisterFCacheNode, RegisterFCacheNodeRequest, RegisterPluginInstance, RegisterPluginInstanceRequest, RemoveCanvasFromStore, RemoveCanvasFromStoreRequest, RemoveConnectionForCreateFromStore, RemoveConnectionForCreateFromStoreRequest, RemoveConnectionFromStore, RemoveConnectionFromStoreRequest, RemoveConnectionMarkerFromStore, RemoveConnectionMarkerFromStoreRequest, RemoveConnectionWaypoint, RemoveConnectionWaypointRequest, RemoveConnectorFromStore, RemoveConnectorFromStoreRequest, RemoveDndFromStore, RemoveDndFromStoreRequest, RemoveFlowFromStore, RemoveFlowFromStoreRequest, RemoveNodeFromStore, RemoveNodeFromStoreRequest, RemovePluginInstance, RemovePluginInstanceRequest, RemoveSnapConnectionFromStore, RemoveSnapConnectionFromStoreRequest, ResetConnectionWorkerRuntime, ResetConnectionWorkerRuntimeRequest, ResetScale, ResetScaleAndCenter, ResetScaleAndCenterRequest, ResetScaleRequest, ResetZoom, ResetZoomRequest, ResizeNodeConnectionBothSidesHandler, ResizeNodeConnectionHandlerBase, ResizeNodeConnectionSourceHandler, ResizeNodeConnectionTargetHandler, ResizeNodeFinalize, ResizeNodeFinalizeRequest, ResizeNodeHandler, ResizeNodePreparation, ResizeNodePreparationRequest, ResolveConnectableOutputForOutlet, ResolveConnectableOutputForOutletRequest, ResolveConnectionWorkerConnectors, ResolveConnectionWorkerConnectorsRequest, ResolveConnectionWorkerContext, ResolveConnectionWorkerContextRequest, RotateNodeFinalize, RotateNodeFinalizeRequest, RotateNodeHandler, RotateNodePreparation, RotateNodePreparationRequest, Select, SelectAll, SelectAllRequest, SelectAndUpdateNodeLayer, SelectAndUpdateNodeLayerRequest, SelectByPointer, SelectByPointerRequest, SelectRequest, SelectionAreaFinalize, SelectionAreaFinalizeRequest, SelectionAreaHandler, SelectionAreaPreparation, SelectionAreaPreparationRequest, SetBackgroundTransform, SetBackgroundTransformRequest, SetFCacheConnectorRect, SetFCacheConnectorRectRequest, SetFCacheNodeRect, SetFCacheNodeRectRequest, SetZoom, SetZoomRequest, ShouldUseConnectionWorker, ShouldUseConnectionWorkerRequest, SortDropCandidatesByLayer, SortDropCandidatesByLayerRequest, SortItemLayers, SortItemLayersRequest, SortItemsByParent, SortItemsByParentRequest, SortNodeLayers, SortNodeLayersRequest, UnmarkConnectableConnectors, UnmarkConnectableConnectorsRequest, UnregisterFCacheConnector, UnregisterFCacheConnectorRequest, UnregisterFCacheNode, UnregisterFCacheNodeRequest, UpdateFCacheRectByElement, UpdateFCacheRectByElementRequest, UpdateItemAndChildrenLayers, UpdateItemAndChildrenLayersRequest, UpdateNodeWhenStateOrSizeChanged, UpdateNodeWhenStateOrSizeChangedRequest, UpdateScale, UpdateScaleRequest, afterNextPaint, assertRegistryIds, buildConnectionAnchors, buildCornerMidPointsAndApplyOffsets, calculateCenterBetweenPoints, calculateCurveCandidates, calculateDifferenceAfterRotation, calculateMagneticGuides, calculateMagneticRects, calculatePointerInFlow, calculatePolylineCandidates, calculatePositionAfterRotation, canvasFactory, configureComponentTest, configureDiTest, connectionFactory, connectorFactory, createConnectionDomIdentifier, createConnectionSelectionDomIdentifier, createGradientDomIdentifier, createGradientDomUrl, createMediatorHarness, createMultiCubicPath, createPureHarness, createSVGElement, createSegmentLinePath, createSpy, createSpyObj, cubicBezierAtT, debounceAnimationFrame, debounceMicrotask, debounceTime, defaultEventTrigger, determineSide, diBaseProviders, executeRequest, expandRectByOverflow, fInstanceKey, fProvideCache, findExistingWaypoint, findWaypointCandidate, fixedCenterBehavior, fixedOutboundBehavior, floatingBehavior, flowFactory, getExternalItemHost, infinityMinMax, injectFromDi, isCalculateMode, isDragBlocker, isDragExternalItemHandler, isDragHandleEnd, isDragHandleStart, isDragMinimapHandler, isDragNodeHandler, isExternalItem, isMobile, isNode, isNodeOutlet, isNodeOutput, isPointerInsidePoint, isPointerInsideStartOrEndDragHandles, isResizeNodeHandler, isRotateHandle, isRotateNodeHandler, isValidEventTrigger, mergePointChains, mixinChangeSelection, mixinChangeVisibility, nodeFactory, normalizePolyline, notifyOnStart, pickWaypoint, rectFromPoint, registryAdd, registryAddMany, registryGet, registryRequire, sampleCubicBezierUniform, sampleMultiCubicUniform, selectableFactory, stringAttribute, takeOne, transitionEnd, valueProvider, withinSnapThreshold };
17415
+ export { AddCanvasToStore, AddCanvasToStoreRequest, AddConnectionForCreateToStore, AddConnectionForCreateToStoreRequest, AddConnectionMarkerToStore, AddConnectionMarkerToStoreRequest, AddConnectionToStore, AddConnectionToStoreRequest, AddConnectorToStore, AddConnectorToStoreRequest, AddDndToStore, AddDndToStoreRequest, AddFlowToStore, AddFlowToStoreRequest, AddNodeToStore, AddNodeToStoreRequest, AddPatternToBackground, AddPatternToBackgroundRequest, AddSnapConnectionToStore, AddSnapConnectionToStoreRequest, ApplyChildResizeConstraints, ApplyChildResizeConstraintsRequest, ApplyParentResizeConstraints, ApplyParentResizeConstraintsRequest, AttachDragNodeHandlerFromSelection, AttachDragNodeHandlerFromSelectionRequest, AttachResizeConnectionDragHandlersToNode, AttachResizeConnectionDragHandlersToNodeRequest, AttachSoftParentConnectionDragHandlersToNode, AttachSoftParentConnectionDragHandlersToNodeRequest, AttachSourceConnectionDragHandlersToNode, AttachSourceConnectionDragHandlersToNodeRequest, AttachTargetConnectionDragHandlersToNode, AttachTargetConnectionDragHandlersToNodeRequest, BuildDragNodeConstraints, BuildDragNodeConstraintsRequest, CALCULATABLE_SIDES, COMMON_PROVIDERS, CONNECTABLE_SIDE_EPSILON, CREATE_MOVE_NODE_DRAG_MODEL_FROM_SELECTION_PROVIDERS, CalculateAdaptiveCurveData, CalculateBezierCurveData, CalculateChangedRectFromDifference, CalculateChangedRectFromDifferenceRequest, CalculateClosestConnector, CalculateClosestConnectorRequest, CalculateConnectableSideByConnectedPositions, CalculateConnectableSideByConnectedPositionsRequest, CalculateConnectableSideByInternalPosition, CalculateConnectableSideByInternalPositionRequest, CalculateConnectionWorkerConnectorRect, CalculateConnectionWorkerConnectorRectRequest, CalculateConnectionWorkerPayloadItem, CalculateConnectionWorkerPayloadItemRequest, CalculateConnectionsState, CalculateConnectionsStateRequest, CalculateConnectionsUsingConnectionWorker, CalculateConnectionsUsingConnectionWorkerRequest, CalculateConnectorsConnectableSides, CalculateConnectorsConnectableSidesRequest, CalculateDirectChildrenUnionRect, CalculateDirectChildrenUnionRectRequest, CalculateFlowPointFromMinimapPoint, CalculateFlowPointFromMinimapPointRequest, CalculateFlowState, CalculateFlowStateRequest, CalculateInputConnections, CalculateInputConnectionsRequest, CalculateNodesBoundingBox, CalculateNodesBoundingBoxNormalizedPosition, CalculateNodesBoundingBoxNormalizedPositionRequest, CalculateNodesBoundingBoxRequest, CalculateNodesState, CalculateNodesStateRequest, CalculateOutputConnections, CalculateOutputConnectionsRequest, CalculateResizeLimits, CalculateResizeLimitsRequest, CalculateSegmentLineData, CalculateSelectableItems, CalculateSelectableItemsRequest, CalculateSourceConnectorsToConnect, CalculateSourceConnectorsToConnectRequest, CalculateStraightLineData, CalculateTargetConnectorsToConnect, CalculateTargetConnectorsToConnectRequest, CenterGroupOrNode, CenterGroupOrNodeRequest, ClearSelection, ClearSelectionRequest, ConnectionBehaviourBuilder, ConnectionBehaviourBuilderRequest, ConnectionContentLayoutEngine, ConnectionLineBuilder, ConnectionLineBuilderRequest, ConnectionWorkerRun, ConnectionWorkerRunRequest, CreateConnectionCreateDragHandler, CreateConnectionCreateDragHandlerRequest, CreateConnectionFinalize, CreateConnectionFinalizeRequest, CreateConnectionFromOutletPreparation, CreateConnectionFromOutletPreparationRequest, CreateConnectionFromOutputPreparation, CreateConnectionFromOutputPreparationRequest, CreateConnectionHandler, CreateConnectionMarkers, CreateConnectionMarkersRequest, CreateConnectionPreparation, CreateConnectionPreparationRequest, CreateDragNodeHandler, CreateDragNodeHandlerRequest, CreateDragNodeHierarchy, CreateDragNodeHierarchyRequest, DRAG_AND_DROP_COMMON_PROVIDERS, DRAG_CANVAS_PROVIDERS, DRAG_CONNECTIONS_PROVIDERS, DRAG_DROP_TO_GROUP_PROVIDERS, DRAG_EXTERNAL_ITEM_HANDLER_KIND, DRAG_EXTERNAL_ITEM_HANDLER_TYPE, DRAG_EXTERNAL_ITEM_PROVIDERS, DRAG_MINIMAP_HANDLER_KIND, DRAG_MINIMAP_HANDLER_TYPE, DRAG_MINIMAP_PROVIDERS, DRAG_NODE_HANDLER_KIND, DRAG_NODE_HANDLER_TYPE, DRAG_SELECTION_AREA_PROVIDERS, DRAG_SELECT_BY_POINTER_PROVIDERS, DeltaClamp, Deprecated, DetectConnectionsUnderDragNode, DetectConnectionsUnderDragNodeRequest, DisableConnectionWorker, DisableConnectionWorkerRequest, DragAndDropBase, DragCanvasFinalize, DragCanvasFinalizeRequest, DragCanvasHandler, DragCanvasPreparation, DragCanvasPreparationRequest, DragConnectionWaypointFinalize, DragConnectionWaypointFinalizeRequest, DragConnectionWaypointHandler, DragConnectionWaypointPreparation, DragConnectionWaypointPreparationRequest, DragExternalItemCreatePlaceholder, DragExternalItemCreatePlaceholderRequest, DragExternalItemCreatePreview, DragExternalItemCreatePreviewRequest, DragExternalItemFinalize, DragExternalItemFinalizeRequest, DragExternalItemHandler, DragExternalItemPreparation, DragExternalItemPreparationRequest, DragHandlerBase, DragHandlerInjector, DragMinimapFinalize, DragMinimapFinalizeRequest, DragMinimapHandler, DragMinimapPreparation, DragMinimapPreparationRequest, DragNodeConnectionBothSidesHandler, DragNodeConnectionHandlerBase, DragNodeConnectionSourceHandler, DragNodeConnectionTargetHandler, DragNodeDeltaConstraints, DragNodeFinalize, DragNodeFinalizeRequest, DragNodeHandler, DragNodeHierarchy, DragNodeItemHandler, DragNodePreparation, DragNodePreparationRequest, DropToGroupFinalize, DropToGroupFinalizeRequest, DropToGroupHandler, DropToGroupPreparation, DropToGroupPreparationRequest, EFConnectableSide, EFConnectionBehavior, EFConnectionConnectableSide, EFConnectionType, EFMarkerType, EFResizeHandleType, EFZoomDirection, EmitConnectionsChanges, EmitConnectionsChangesRequest, EmitEndDragSequenceEvent, EmitEndDragSequenceEventRequest, EmitSelectionChangeEvent, EmitSelectionChangeEventRequest, EmitStartDragSequenceEvent, EmitStartDragSequenceEventRequest, EnsureConnectionWorker, EnsureConnectionWorkerRequest, EventExtensions, ExternalRectConstraint, FBackgroundBase, FBackgroundComponent, FCache, FCacheConnector, FCacheConnectorKeyFactory, FCacheNode, FCanvasBase, FCanvasChangeEvent, FCanvasComponent, FChannel, FChannelHub, FCirclePatternComponent, FComponentsStore, FConnectionBase, FConnectionComponent, FConnectionComponentsParent, FConnectionContent, FConnectionContentBase, FConnectionDragHandleBase, FConnectionDragHandleEnd, FConnectionDragHandleStart, FConnectionForCreateComponent, FConnectionGradient, FConnectionGradientBase, FConnectionGradientRenderer, FConnectionGradientRendererBase, FConnectionMarker, FConnectionMarkerBase, FConnectionMarkerRegistry, FConnectionPath, FConnectionPathBase, FConnectionRegistry, FConnectionSelection, FConnectionSelectionBase, FConnectionWaypoints, FConnectionWaypointsBase, FConnectionWaypointsChangedEvent, FConnectionWorker, FConnectorBase, FConnectorRegistry, FCreateConnectionEvent, FCreateNodeEvent, FDragBlockerDirective, FDragExternalItemStartEventData, FDragHandleDirective, FDragHandlerResult, FDragNodeStartEventData, FDragStartedEvent, FDraggableBase, FDraggableDataContext, FDraggableDirective, FDropToGroupEvent, FExternalItem, FExternalItemBase, FExternalItemPlaceholder, FExternalItemPreview, FExternalItemService, FFlowBase, FFlowComponent, FFlowModule, FGroupDirective, FIdRegistryBase, FLineAlignmentComponent, FMagneticLines, FMagneticLinesBase, FMagneticRects, FMagneticRectsBase, FMinimapBase, FMinimapCanvasDirective, FMinimapComponent, FMinimapFlowDirective, FMinimapState, FMinimapViewDirective, FMoveNodesEvent, FNodeBase, FNodeConnectionsIntersectionEvent, FNodeDirective, FNodeInputBase, FNodeInputDirective, FNodeIntersectedWithConnections, FNodeOutletBase, FNodeOutletDirective, FNodeOutputBase, FNodeOutputDirective, FNodeRegistry, FReassignConnectionEvent, FRectPatternComponent, FResizeChannel, FResizeHandleDirective, FResizeNodeStartEventData, FRotateHandleDirective, FRotateNodeStartEventData, FSelectionArea, FSelectionAreaBase, FSelectionChangeEvent, FSingleRegistryBase, FSnapConnectionComponent, FSourceConnectorBase, FVirtualFor, FZoomBase, FZoomDirective, F_BACKGROUND, F_BACKGROUND_FEATURES, F_BACKGROUND_PATTERN, F_BACKGROUND_PROVIDERS, F_CACHE_FEATURES, F_CACHE_OPTIONS, F_CANVAS, F_CANVAS_FEATURES, F_CANVAS_PROVIDERS, F_CONNECTION_BUILDERS, F_CONNECTION_COMPONENTS_PARENT, F_CONNECTION_CONTENT, F_CONNECTION_DRAG_HANDLE_END, F_CONNECTION_DRAG_HANDLE_START, F_CONNECTION_FEATURES, F_CONNECTION_GRADIENT, F_CONNECTION_IMPORTS_EXPORTS, F_CONNECTION_MARKER, F_CONNECTION_PATH, F_CONNECTION_PROVIDERS, F_CONNECTION_SELECTION, F_CONNECTION_WAYPOINTS, F_CONNECTION_WORKER_FEATURES, F_CONNECTORS_FEATURES, F_CONNECTORS_PROVIDERS, F_CSS_CLASS, F_DRAGGABLE_FEATURES, F_DRAGGABLE_PROVIDERS, F_EXTERNAL_ITEM, F_EXTERNAL_ITEM_PROVIDERS, F_FLOW, F_FLOW_FEATURES, F_FLOW_PROVIDERS, F_LINE_ALIGNMENT_PROVIDERS, F_MAGNETIC_LINES, F_MAGNETIC_LINES_PROVIDERS, F_MAGNETIC_RECTS, F_MAGNETIC_RECTS_PROVIDERS, F_MINIMAP_BASE, F_MINIMAP_FEATURES, F_MINIMAP_PROVIDERS, F_NODE, F_NODE_FEATURES, F_NODE_INPUT, F_NODE_OUTLET, F_NODE_OUTPUT, F_NODE_PROVIDERS, F_SELECTED_CLASS, F_SELECTION_AREA_PROVIDERS, F_SELECTION_FEATURES, F_STORAGE_PROVIDERS, F_VIRTUAL_FOR_PROVIDERS, F_ZOOM, F_ZOOM_FEATURES, F_ZOOM_PROVIDERS, FindConnectableConnectorUsingPriorityAndPosition, FindConnectableConnectorUsingPriorityAndPositionRequest, FitToChildNodesAndGroups, FitToChildNodesAndGroupsRequest, FitToFlow, FitToFlowRequest, GET_FLOW_STATE_PROVIDERS, GetCachedFCacheRect, GetCachedFCacheRectRequest, GetChildNodeIds, GetChildNodeIdsRequest, GetConnectorRectReference, GetConnectorRectReferenceRequest, GetCurrentSelection, GetCurrentSelectionRequest, GetDeepChildrenNodesAndGroups, GetDeepChildrenNodesAndGroupsRequest, GetFlow, GetFlowRequest, GetNodePadding, GetNodePaddingRequest, GetNormalizedConnectorRect, GetNormalizedConnectorRectRequest, GetNormalizedElementRect, GetNormalizedElementRectRequest, GetNormalizedParentNodeRect, GetNormalizedParentNodeRectRequest, GetNormalizedPoint, GetNormalizedPointRequest, GetParentNodes, GetParentNodesRequest, GridSnapper, HandleConnectionWorkerMessage, HandleConnectionWorkerMessageRequest, IMouseEvent, INSTANCES, IPointerEvent, IPointerUpEvent, ITouchDownEvent, ITouchMoveEvent, InitializeDragSequence, InitializeDragSequenceRequest, InputCanvasPosition, InputCanvasPositionRequest, InputCanvasScale, InputCanvasScaleRequest, InvalidateFCacheNode, InvalidateFCacheNodeRequest, IsArrayHasParentNode, IsArrayHasParentNodeRequest, IsConnectionWorkerEnabled, IsConnectionWorkerEnabledRequest, IsDragStarted, IsDragStartedRequest, ListenConnectionsChanges, ListenConnectionsChangesRequest, ListenNodesChanges, ListenNodesChangesRequest, ListenTransformChanges, ListenTransformChangesRequest, LogExecutionTime, MOUSE_EVENT_IGNORE_TIME, MagneticLineElement, MagneticLineRenderer, MagneticLinesHandler, MagneticLinesPreparation, MagneticLinesPreparationRequest, MagneticRectElement, MagneticRectsHandler, MagneticRectsPreparation, MagneticRectsPreparationRequest, MagneticRectsRenderer, MarkConnectableConnectors, MarkConnectableConnectorsRequest, MinimapCalculateViewRect, MinimapCalculateViewRectRequest, MinimapCalculateViewport, MinimapCalculateViewportRequest, MinimapDrawNodes, MinimapDrawNodesRequest, MoveFrontElementsBeforeTargetElement, MoveFrontElementsBeforeTargetElementRequest, NODE_PROVIDERS, NODE_RESIZE_PROVIDERS, NODE_ROTATE_PROVIDERS, NotifyTransformChanged, NotifyTransformChangedRequest, OnPointerMove, OnPointerMoveRequest, PINCH_TO_ZOOM_PROVIDERS, PinchToZoomFinalize, PinchToZoomFinalizeRequest, PinchToZoomHandler, PinchToZoomPreparation, PinchToZoomPreparationRequest, Polyline, PolylineContentAlign, PolylineContentPlace, PolylineSampler, PrepareDragSequence, PrepareDragSequenceRequest, PreventDefaultIsExternalItem, PreventDefaultIsExternalItemRequest, RESIZE_DIRECTIONS, RESIZE_NODE_HANDLER_KIND, RESIZE_NODE_HANDLER_TYPE, ROTATE_NODE_HANDLER_KIND, ROTATE_NODE_HANDLER_TYPE, ReadNodeBoundsWithPaddings, ReadNodeBoundsWithPaddingsRequest, ReadNodeBoundsWithPaddingsResponse, ReassignConnectionFinalize, ReassignConnectionFinalizeRequest, ReassignConnectionHandler, ReassignConnectionPreparation, ReassignConnectionPreparationRequest, ReassignConnectionSourceHandler, ReassignConnectionTargetHandler, RedrawCanvasWithAnimation, RedrawCanvasWithAnimationRequest, RedrawConnections, RedrawConnectionsRequest, RegisterFCacheConnector, RegisterFCacheConnectorRequest, RegisterFCacheNode, RegisterFCacheNodeRequest, RegisterPluginInstance, RegisterPluginInstanceRequest, RemoveCanvasFromStore, RemoveCanvasFromStoreRequest, RemoveConnectionForCreateFromStore, RemoveConnectionForCreateFromStoreRequest, RemoveConnectionFromStore, RemoveConnectionFromStoreRequest, RemoveConnectionMarkerFromStore, RemoveConnectionMarkerFromStoreRequest, RemoveConnectionWaypoint, RemoveConnectionWaypointRequest, RemoveConnectorFromStore, RemoveConnectorFromStoreRequest, RemoveDndFromStore, RemoveDndFromStoreRequest, RemoveFlowFromStore, RemoveFlowFromStoreRequest, RemoveNodeFromStore, RemoveNodeFromStoreRequest, RemovePluginInstance, RemovePluginInstanceRequest, RemoveSnapConnectionFromStore, RemoveSnapConnectionFromStoreRequest, ResetConnectionWorkerRuntime, ResetConnectionWorkerRuntimeRequest, ResetScale, ResetScaleAndCenter, ResetScaleAndCenterRequest, ResetScaleRequest, ResetZoom, ResetZoomRequest, ResizeNodeConnectionBothSidesHandler, ResizeNodeConnectionHandlerBase, ResizeNodeConnectionSourceHandler, ResizeNodeConnectionTargetHandler, ResizeNodeFinalize, ResizeNodeFinalizeRequest, ResizeNodeHandler, ResizeNodePreparation, ResizeNodePreparationRequest, ResolveConnectableOutputForOutlet, ResolveConnectableOutputForOutletRequest, ResolveConnectionWorkerConnectors, ResolveConnectionWorkerConnectorsRequest, ResolveConnectionWorkerContext, ResolveConnectionWorkerContextRequest, RotateNodeFinalize, RotateNodeFinalizeRequest, RotateNodeHandler, RotateNodePreparation, RotateNodePreparationRequest, Select, SelectAll, SelectAllRequest, SelectAndUpdateNodeLayer, SelectAndUpdateNodeLayerRequest, SelectByPointer, SelectByPointerRequest, SelectRequest, SelectionAreaFinalize, SelectionAreaFinalizeRequest, SelectionAreaHandler, SelectionAreaPreparation, SelectionAreaPreparationRequest, SetBackgroundTransform, SetBackgroundTransformRequest, SetFCacheConnectorRect, SetFCacheConnectorRectRequest, SetFCacheNodeRect, SetFCacheNodeRectRequest, SetZoom, SetZoomRequest, ShouldUseConnectionWorker, ShouldUseConnectionWorkerRequest, SortDropCandidatesByLayer, SortDropCandidatesByLayerRequest, SortItemLayers, SortItemLayersRequest, SortItemsByParent, SortItemsByParentRequest, SortNodeLayers, SortNodeLayersRequest, UnmarkConnectableConnectors, UnmarkConnectableConnectorsRequest, UnregisterFCacheConnector, UnregisterFCacheConnectorRequest, UnregisterFCacheNode, UnregisterFCacheNodeRequest, UpdateFCacheRectByElement, UpdateFCacheRectByElementRequest, UpdateItemAndChildrenLayers, UpdateItemAndChildrenLayersRequest, UpdateNodeWhenStateOrSizeChanged, UpdateNodeWhenStateOrSizeChangedRequest, UpdateScale, UpdateScaleRequest, afterNextPaint, assertRegistryIds, buildConnectionAnchors, buildCornerMidPointsAndApplyOffsets, calculateCenterBetweenPoints, calculateCurveCandidates, calculateDifferenceAfterRotation, calculateMagneticGuides, calculateMagneticRects, calculatePointerInFlow, calculatePolylineCandidates, calculatePositionAfterRotation, canvasFactory, configureComponentTest, configureDiTest, connectionFactory, connectorFactory, createConnectionDomIdentifier, createConnectionSelectionDomIdentifier, createGradientDomIdentifier, createGradientDomUrl, createMediatorHarness, createMultiCubicPath, createPureHarness, createSVGElement, createSegmentLinePath, createSpy, createSpyObj, cubicBezierAtT, debounceAnimationFrame, debounceMicrotask, debounceTime, defaultEventTrigger, determineSide, diBaseProviders, executeRequest, expandRectByOverflow, fInstanceKey, fProvideCache, findExistingWaypoint, findWaypointCandidate, fixedCenterBehavior, fixedOutboundBehavior, floatingBehavior, flowFactory, getExternalItemHost, infinityMinMax, injectFromDi, isCalculateMode, isDragBlocker, isDragExternalItemHandler, isDragHandleEnd, isDragHandleStart, isDragMinimapHandler, isDragNodeHandler, isExternalItem, isMobile, isNode, isNodeOutlet, isNodeOutput, isPointerInsidePoint, isPointerInsideStartOrEndDragHandles, isResizeNodeHandler, isRotateHandle, isRotateNodeHandler, isValidEventTrigger, mergePointChains, mixinChangeSelection, mixinChangeVisibility, nodeFactory, normalizePolyline, notifyOnStart, pickWaypoint, rectFromPoint, registryAdd, registryAddMany, registryGet, registryRequire, sampleCubicBezierUniform, sampleMultiCubicUniform, selectableFactory, stringAttribute, takeOne, transitionEnd, valueProvider, withinSnapThreshold };
16982
17416
  //# sourceMappingURL=foblex-flow.mjs.map