@foblex/flow 19.1.7 → 19.2.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.
@@ -980,11 +980,13 @@ class FitToFlowRequest {
980
980
  toCenter;
981
981
  animated;
982
982
  emitCanvasChange;
983
+ maxScale;
983
984
  static fToken = Symbol('FitToFlowRequest');
984
- constructor(toCenter, animated, emitCanvasChange = true) {
985
+ constructor(toCenter, animated, emitCanvasChange = true, maxScale) {
985
986
  this.toCenter = toCenter;
986
987
  this.animated = animated;
987
988
  this.emitCanvasChange = emitCanvasChange;
989
+ this.maxScale = maxScale;
988
990
  }
989
991
  }
990
992
 
@@ -997,16 +999,16 @@ let FitToFlow = class FitToFlow {
997
999
  return this._store.transform;
998
1000
  }
999
1001
  _mediator = inject(FMediator);
1000
- handle({ toCenter, animated, emitCanvasChange }) {
1002
+ handle({ toCenter, animated, emitCanvasChange, maxScale }) {
1001
1003
  const fNodesRect = this._mediator.execute(new CalculateNodesBoundingBoxRequest()) ||
1002
1004
  RectExtensions.initialize();
1003
1005
  if (fNodesRect.width === 0 || fNodesRect.height === 0) {
1004
1006
  return;
1005
1007
  }
1006
- this.fitToParent(fNodesRect, RectExtensions.fromElement(this._store.flowHost), this._store.nodes.getAll().map((x) => x._position), toCenter);
1008
+ this.fitToParent(fNodesRect, RectExtensions.fromElement(this._store.flowHost), this._store.nodes.getAll().map((x) => x._position), toCenter, maxScale);
1007
1009
  this._mediator.execute(new RedrawCanvasWithAnimationRequest(animated, ECanvasRedrawContext.VIEWPORT_ONLY, emitCanvasChange));
1008
1010
  }
1009
- fitToParent(rect, parentRect, points, toCenter) {
1011
+ fitToParent(rect, parentRect, points, toCenter, maxScale) {
1010
1012
  this._transform.scaledPosition = PointExtensions.initialize();
1011
1013
  this._transform.position = this._getZeroPositionWithoutScale(points);
1012
1014
  const itemsContainerWidth = rect.width / this._transform.scale + toCenter.x;
@@ -1016,6 +1018,11 @@ let FitToFlow = class FitToFlow {
1016
1018
  (itemsContainerWidth < parentRect.width && itemsContainerHeight < parentRect.height)) {
1017
1019
  this._transform.scale = Math.min(parentRect.width / itemsContainerWidth, parentRect.height / itemsContainerHeight);
1018
1020
  }
1021
+ // A small bounding box (a couple of nodes) would otherwise be magnified to
1022
+ // fill the viewport; the optional cap keeps the content readable (issue #147).
1023
+ if (maxScale != null && this._transform.scale > maxScale) {
1024
+ this._transform.scale = maxScale;
1025
+ }
1019
1026
  const newX = (parentRect.width - itemsContainerWidth * this._transform.scale) / 2 -
1020
1027
  this._transform.position.x * this._transform.scale;
1021
1028
  const newY = (parentRect.height - itemsContainerHeight * this._transform.scale) / 2 -
@@ -8400,6 +8407,272 @@ class CreateConnectionFinalizeRequest {
8400
8407
  }
8401
8408
  }
8402
8409
 
8410
+ let uniqueId$6 = 0;
8411
+ class FConnectionComponent extends FConnectionBase {
8412
+ fId = input(`f-connection-${uniqueId$6++}`, ...(ngDevMode ? [{ debugName: "fId", alias: 'fConnectionId' }] : [{ alias: 'fConnectionId' }]));
8413
+ fSourceId = input('', ...(ngDevMode ? [{ debugName: "fSourceId", transform: (value) => stringAttribute(value) || '' }] : [{
8414
+ transform: (value) => stringAttribute(value) || '',
8415
+ }]));
8416
+ fTargetId = input('', ...(ngDevMode ? [{ debugName: "fTargetId", transform: (value) => stringAttribute(value) || '' }] : [{
8417
+ transform: (value) => stringAttribute(value) || '',
8418
+ }]));
8419
+ /** @deprecated Use `fSourceId`. */
8420
+ fOutputId = input('', ...(ngDevMode ? [{ debugName: "fOutputId", transform: (value) => stringAttribute(value) || '' }] : [{
8421
+ transform: (value) => stringAttribute(value) || '',
8422
+ }]));
8423
+ /** @deprecated Use `fTargetId`. */
8424
+ fInputId = input('', ...(ngDevMode ? [{ debugName: "fInputId", transform: (value) => stringAttribute(value) || '' }] : [{
8425
+ transform: (value) => stringAttribute(value) || '',
8426
+ }]));
8427
+ fRadius = 8;
8428
+ fOffset = 12;
8429
+ fBehavior = EFConnectionBehavior.FIXED;
8430
+ fType = EFConnectionType.STRAIGHT;
8431
+ fSelectionDisabled = input(false, ...(ngDevMode ? [{ debugName: "fSelectionDisabled", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
8432
+ fReassignableStart = input(false, ...(ngDevMode ? [{ debugName: "fReassignableStart", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
8433
+ fDraggingDisabled = input(false, ...(ngDevMode ? [{ debugName: "fDraggingDisabled", alias: 'fReassignDisabled',
8434
+ transform: booleanAttribute }] : [{
8435
+ alias: 'fReassignDisabled',
8436
+ transform: booleanAttribute,
8437
+ }]));
8438
+ fSourceSide = input(EFConnectionConnectableSide.DEFAULT, ...(ngDevMode ? [{ debugName: "fSourceSide", transform: (x) => {
8439
+ return castToEnum(x, 'fSourceSide', EFConnectionConnectableSide);
8440
+ } }] : [{
8441
+ transform: (x) => {
8442
+ return castToEnum(x, 'fSourceSide', EFConnectionConnectableSide);
8443
+ },
8444
+ }]));
8445
+ fTargetSide = input(EFConnectionConnectableSide.DEFAULT, ...(ngDevMode ? [{ debugName: "fTargetSide", transform: (x) => {
8446
+ return castToEnum(x, 'fTargetSide', EFConnectionConnectableSide);
8447
+ } }] : [{
8448
+ transform: (x) => {
8449
+ return castToEnum(x, 'fTargetSide', EFConnectionConnectableSide);
8450
+ },
8451
+ }]));
8452
+ /** @deprecated Use `fTargetSide`. */
8453
+ fInputSide = input(EFConnectionConnectableSide.DEFAULT, ...(ngDevMode ? [{ debugName: "fInputSide", transform: (x) => {
8454
+ return castToEnum(x, 'fInputSide', EFConnectionConnectableSide);
8455
+ } }] : [{
8456
+ transform: (x) => {
8457
+ return castToEnum(x, 'fInputSide', EFConnectionConnectableSide);
8458
+ },
8459
+ }]));
8460
+ /** @deprecated Use `fSourceSide`. */
8461
+ fOutputSide = input(EFConnectionConnectableSide.DEFAULT, ...(ngDevMode ? [{ debugName: "fOutputSide", transform: (x) => {
8462
+ return castToEnum(x, 'fOutputSide', EFConnectionConnectableSide);
8463
+ } }] : [{
8464
+ transform: (x) => {
8465
+ return castToEnum(x, 'fOutputSide', EFConnectionConnectableSide);
8466
+ },
8467
+ }]));
8468
+ get boundingElement() {
8469
+ return this.fPath().hostElement;
8470
+ }
8471
+ _mediator = inject(FMediator);
8472
+ ngOnInit() {
8473
+ this._mediator.execute(new AddConnectionToStoreRequest(this));
8474
+ }
8475
+ ngOnChanges() {
8476
+ this._mediator.execute(new EmitConnectionsChangesRequest());
8477
+ }
8478
+ ngOnDestroy() {
8479
+ this._mediator.execute(new RemoveConnectionFromStoreRequest(this));
8480
+ }
8481
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: FConnectionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
8482
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.9", type: FConnectionComponent, isStandalone: false, selector: "f-connection", inputs: { fId: { classPropertyName: "fId", publicName: "fConnectionId", isSignal: true, isRequired: false, transformFunction: null }, fSourceId: { classPropertyName: "fSourceId", publicName: "fSourceId", isSignal: true, isRequired: false, transformFunction: null }, fTargetId: { classPropertyName: "fTargetId", publicName: "fTargetId", 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 }, fSourceSide: { classPropertyName: "fSourceSide", publicName: "fSourceSide", isSignal: true, isRequired: false, transformFunction: null }, fTargetSide: { classPropertyName: "fTargetSide", publicName: "fTargetSide", 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()", "attr.data-f-connection-type": "fType", "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-marker-circle, f-connection-marker-arrow\" />\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 });
8483
+ }
8484
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: FConnectionComponent, decorators: [{
8485
+ type: Component,
8486
+ args: [{ standalone: false, selector: 'f-connection', exportAs: 'fComponent', changeDetection: ChangeDetectionStrategy.OnPush, host: {
8487
+ '[attr.id]': 'fId()',
8488
+ '[attr.data-f-connection-type]': 'fType',
8489
+ class: 'f-component f-connection',
8490
+ '[class.f-connection-selection-disabled]': 'fSelectionDisabled()',
8491
+ '[class.f-connection-reassign-disabled]': 'fDraggingDisabled()',
8492
+ }, 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-marker-circle, f-connection-marker-arrow\" />\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"] }]
8493
+ }], propDecorators: { fId: [{ type: i0.Input, args: [{ isSignal: true, alias: "fConnectionId", required: false }] }], fSourceId: [{ type: i0.Input, args: [{ isSignal: true, alias: "fSourceId", required: false }] }], fTargetId: [{ type: i0.Input, args: [{ isSignal: true, alias: "fTargetId", required: false }] }], fOutputId: [{ type: i0.Input, args: [{ isSignal: true, alias: "fOutputId", required: false }] }], fInputId: [{ type: i0.Input, args: [{ isSignal: true, alias: "fInputId", required: false }] }], fRadius: [{
8494
+ type: Input,
8495
+ args: [{ transform: numberAttribute }]
8496
+ }], fOffset: [{
8497
+ type: Input,
8498
+ args: [{ transform: numberAttribute }]
8499
+ }], fBehavior: [{
8500
+ type: Input,
8501
+ args: [{ transform: (value) => castToEnum(value, 'fBehavior', EFConnectionBehavior) }]
8502
+ }], fType: [{
8503
+ type: Input
8504
+ }], fSelectionDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "fSelectionDisabled", required: false }] }], fReassignableStart: [{ type: i0.Input, args: [{ isSignal: true, alias: "fReassignableStart", required: false }] }], fDraggingDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "fReassignDisabled", required: false }] }], fSourceSide: [{ type: i0.Input, args: [{ isSignal: true, alias: "fSourceSide", required: false }] }], fTargetSide: [{ type: i0.Input, args: [{ isSignal: true, alias: "fTargetSide", required: false }] }], fInputSide: [{ type: i0.Input, args: [{ isSignal: true, alias: "fInputSide", required: false }] }], fOutputSide: [{ type: i0.Input, args: [{ isSignal: true, alias: "fOutputSide", required: false }] }] } });
8505
+
8506
+ let uniqueId$5 = 0;
8507
+ class FConnectionForCreateComponent extends FConnectionBase {
8508
+ fId = signal(`f-connection-for-create-${uniqueId$5++}`, ...(ngDevMode ? [{ debugName: "fId" }] : []));
8509
+ fOutputId = signal('', ...(ngDevMode ? [{ debugName: "fOutputId" }] : []));
8510
+ fInputId = signal('', ...(ngDevMode ? [{ debugName: "fInputId" }] : []));
8511
+ fRadius = 8;
8512
+ fOffset = 12;
8513
+ fBehavior = EFConnectionBehavior.FIXED;
8514
+ fType = EFConnectionType.STRAIGHT;
8515
+ fInputSide = input(EFConnectionConnectableSide.DEFAULT, ...(ngDevMode ? [{ debugName: "fInputSide", transform: (x) => {
8516
+ return castToEnum(x, 'fInputSide', EFConnectionConnectableSide);
8517
+ } }] : [{
8518
+ transform: (x) => {
8519
+ return castToEnum(x, 'fInputSide', EFConnectionConnectableSide);
8520
+ },
8521
+ }]));
8522
+ fOutputSide = input(EFConnectionConnectableSide.DEFAULT, ...(ngDevMode ? [{ debugName: "fOutputSide", transform: (x) => {
8523
+ return castToEnum(x, 'fOutputSide', EFConnectionConnectableSide);
8524
+ } }] : [{
8525
+ transform: (x) => {
8526
+ return castToEnum(x, 'fOutputSide', EFConnectionConnectableSide);
8527
+ },
8528
+ }]));
8529
+ get boundingElement() {
8530
+ return this.fPath().hostElement;
8531
+ }
8532
+ _mediator = inject(FMediator);
8533
+ ngOnInit() {
8534
+ this._mediator.execute(new AddConnectionForCreateToStoreRequest(this));
8535
+ }
8536
+ ngAfterViewInit() {
8537
+ this.hide();
8538
+ }
8539
+ ngOnChanges() {
8540
+ this._mediator.execute(new EmitConnectionsChangesRequest());
8541
+ }
8542
+ ngOnDestroy() {
8543
+ this._mediator.execute(new RemoveConnectionForCreateFromStoreRequest());
8544
+ }
8545
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: FConnectionForCreateComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
8546
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.9", type: FConnectionForCreateComponent, isStandalone: false, 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: { attributes: { "aria-hidden": "true" }, classAttribute: "f-component f-connection f-connection-for-create" }, providers: [
8547
+ { provide: F_CONNECTION_COMPONENTS_PARENT, useExisting: FConnectionForCreateComponent },
8548
+ ], 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-marker-circle, f-connection-marker-arrow\" />\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 });
8549
+ }
8550
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: FConnectionForCreateComponent, decorators: [{
8551
+ type: Component,
8552
+ args: [{ standalone: false, selector: 'f-connection-for-create', changeDetection: ChangeDetectionStrategy.OnPush, host: {
8553
+ class: 'f-component f-connection f-connection-for-create',
8554
+ 'aria-hidden': 'true',
8555
+ }, providers: [
8556
+ { provide: F_CONNECTION_COMPONENTS_PARENT, useExisting: FConnectionForCreateComponent },
8557
+ ], 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-marker-circle, f-connection-marker-arrow\" />\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"] }]
8558
+ }], propDecorators: { fRadius: [{
8559
+ type: Input,
8560
+ args: [{ transform: numberAttribute }]
8561
+ }], fOffset: [{
8562
+ type: Input,
8563
+ args: [{ transform: numberAttribute }]
8564
+ }], fBehavior: [{
8565
+ type: Input,
8566
+ args: [{ transform: (value) => castToEnum(value, 'fBehavior', EFConnectionBehavior) }]
8567
+ }], fType: [{
8568
+ type: Input
8569
+ }], fInputSide: [{ type: i0.Input, args: [{ isSignal: true, alias: "fInputSide", required: false }] }], fOutputSide: [{ type: i0.Input, args: [{ isSignal: true, alias: "fOutputSide", required: false }] }] } });
8570
+
8571
+ let uniqueId$4 = 0;
8572
+ class FSnapConnectionComponent extends FConnectionBase {
8573
+ fId = signal(`f-snap-connection-${uniqueId$4++}`, ...(ngDevMode ? [{ debugName: "fId" }] : []));
8574
+ fSnapThreshold = 20;
8575
+ /**
8576
+ * Fires when the snapped target changes during a connection-creation gesture:
8577
+ * with the connector id while one is within `fSnapThreshold`, and with an
8578
+ * `undefined` target when the snap is released or the gesture ends.
8579
+ */
8580
+ fSnapTargetChange = output();
8581
+ fOutputId = signal('', ...(ngDevMode ? [{ debugName: "fOutputId" }] : []));
8582
+ fInputId = signal('', ...(ngDevMode ? [{ debugName: "fInputId" }] : []));
8583
+ fRadius = 8;
8584
+ fOffset = 12;
8585
+ fBehavior = EFConnectionBehavior.FIXED;
8586
+ fType = EFConnectionType.STRAIGHT;
8587
+ fInputSide = input(EFConnectionConnectableSide.DEFAULT, ...(ngDevMode ? [{ debugName: "fInputSide", transform: (x) => {
8588
+ return castToEnum(x, 'fInputSide', EFConnectionConnectableSide);
8589
+ } }] : [{
8590
+ transform: (x) => {
8591
+ return castToEnum(x, 'fInputSide', EFConnectionConnectableSide);
8592
+ },
8593
+ }]));
8594
+ fOutputSide = input(EFConnectionConnectableSide.DEFAULT, ...(ngDevMode ? [{ debugName: "fOutputSide", transform: (x) => {
8595
+ return castToEnum(x, 'fOutputSide', EFConnectionConnectableSide);
8596
+ } }] : [{
8597
+ transform: (x) => {
8598
+ return castToEnum(x, 'fOutputSide', EFConnectionConnectableSide);
8599
+ },
8600
+ }]));
8601
+ get boundingElement() {
8602
+ return this.fPath().hostElement;
8603
+ }
8604
+ _mediator = inject(FMediator);
8605
+ ngOnInit() {
8606
+ this._mediator.execute(new AddSnapConnectionToStoreRequest(this));
8607
+ }
8608
+ ngAfterViewInit() {
8609
+ this.hide();
8610
+ }
8611
+ ngOnChanges() {
8612
+ this._mediator.execute(new EmitConnectionsChangesRequest());
8613
+ }
8614
+ ngOnDestroy() {
8615
+ this._mediator.execute(new RemoveSnapConnectionFromStoreRequest());
8616
+ }
8617
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: FSnapConnectionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
8618
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.9", type: FSnapConnectionComponent, isStandalone: false, 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 } }, outputs: { fSnapTargetChange: "fSnapTargetChange" }, host: { attributes: { "aria-hidden": "true" }, 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-marker-circle, f-connection-marker-arrow\" />\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 });
8619
+ }
8620
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: FSnapConnectionComponent, decorators: [{
8621
+ type: Component,
8622
+ args: [{ standalone: false, selector: 'f-snap-connection', changeDetection: ChangeDetectionStrategy.OnPush, host: {
8623
+ class: 'f-component f-connection f-snap-connection',
8624
+ 'aria-hidden': 'true',
8625
+ }, 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-marker-circle, f-connection-marker-arrow\" />\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"] }]
8626
+ }], propDecorators: { fSnapThreshold: [{
8627
+ type: Input,
8628
+ args: [{ transform: numberAttribute }]
8629
+ }], fSnapTargetChange: [{ type: i0.Output, args: ["fSnapTargetChange"] }], fRadius: [{
8630
+ type: Input,
8631
+ args: [{ transform: numberAttribute }]
8632
+ }], fOffset: [{
8633
+ type: Input,
8634
+ args: [{ transform: numberAttribute }]
8635
+ }], fBehavior: [{
8636
+ type: Input,
8637
+ args: [{ transform: (value) => castToEnum(value, 'fBehavior', EFConnectionBehavior) }]
8638
+ }], fType: [{
8639
+ type: Input
8640
+ }], fInputSide: [{ type: i0.Input, args: [{ isSignal: true, alias: "fInputSide", required: false }] }], fOutputSide: [{ type: i0.Input, args: [{ isSignal: true, alias: "fOutputSide", required: false }] }] } });
8641
+
8642
+ /**
8643
+ * Emitted by `<f-snap-connection>` when the snapped target changes during a
8644
+ * connection-creation gesture. `targetId` is the connector currently within
8645
+ * `fSnapThreshold`, or `undefined` when the snap is released or the gesture
8646
+ * ends — so both endpoints can be styled while the snap preview is shown.
8647
+ */
8648
+ class FSnapTargetChangeEvent {
8649
+ sourceId;
8650
+ targetId;
8651
+ constructor(sourceId, targetId) {
8652
+ this.sourceId = sourceId;
8653
+ this.targetId = targetId;
8654
+ }
8655
+ }
8656
+
8657
+ const F_CONNECTION_PROVIDERS = [
8658
+ FConnectionDragHandleStart,
8659
+ FConnectionDragHandleEnd,
8660
+ FConnectionPath,
8661
+ FConnectionSelection,
8662
+ FConnectionMarker,
8663
+ FConnectionComponent,
8664
+ FConnectionForCreateComponent,
8665
+ FSnapConnectionComponent,
8666
+ ];
8667
+ const F_CONNECTION_IMPORTS_EXPORTS = [
8668
+ FConnectionContent,
8669
+ FConnectionMarkerCircle,
8670
+ FConnectionMarkerArrow,
8671
+ FConnectionGradient,
8672
+ FConnectionGradientRenderer,
8673
+ FConnectionWaypoints,
8674
+ ];
8675
+
8403
8676
  class ResolveConnectableOutputForOutletRequest {
8404
8677
  outlet;
8405
8678
  static fToken = Symbol('ResolveConnectableOutputForOutletRequest');
@@ -8485,6 +8758,7 @@ class FCreateConnectionSession {
8485
8758
  _store = inject(FComponentsStore);
8486
8759
  _targets = [];
8487
8760
  _sourceRef;
8761
+ _snapTargetId;
8488
8762
  get _connection() {
8489
8763
  return this._store.connections.getForCreate();
8490
8764
  }
@@ -8537,12 +8811,26 @@ class FCreateConnectionSession {
8537
8811
  return;
8538
8812
  }
8539
8813
  const snapTarget = closest && closest.distance < snap.fSnapThreshold ? closest : undefined;
8814
+ this._emitSnapTargetChange(sourceRef, snapTarget?.connector);
8540
8815
  this._drawSnapConnection(sourceRef, snapTarget);
8541
8816
  }
8542
- /**
8543
- * Resolves the connectable target at a client-space point using the same priority as
8544
- * the drag drop: rect hit, then snap-threshold closest, then `fConnectOnNode` node.
8545
- */
8817
+ /** One event per acquired/switched/released snap target, not one per pointer move. */
8818
+ _emitSnapTargetChange(sourceRef, target) {
8819
+ const snap = this._snapConnection;
8820
+ if (!snap) {
8821
+ return;
8822
+ }
8823
+ const targetId = target?.fId();
8824
+ if (targetId === this._snapTargetId) {
8825
+ return;
8826
+ }
8827
+ this._snapTargetId = targetId;
8828
+ snap.fSnapTargetChange.emit(new FSnapTargetChangeEvent(this._resolveEventSource(sourceRef.connector).fId(), targetId));
8829
+ }
8830
+ /**
8831
+ * Resolves the connectable target at a client-space point using the same priority as
8832
+ * the drag drop: rect hit, then snap-threshold closest, then `fConnectOnNode` node.
8833
+ */
8546
8834
  resolveTarget(clientPoint) {
8547
8835
  return this._mediator.execute(new FindConnectableConnectorUsingPriorityAndPositionRequest(clientPoint, this._targets));
8548
8836
  }
@@ -8619,6 +8907,11 @@ class FCreateConnectionSession {
8619
8907
  snap.redraw();
8620
8908
  }
8621
8909
  _end() {
8910
+ const sourceRef = this._sourceRef;
8911
+ if (sourceRef && this._snapTargetId !== undefined) {
8912
+ this._emitSnapTargetChange(sourceRef, undefined);
8913
+ }
8914
+ this._snapTargetId = undefined;
8622
8915
  const connection = this._connection;
8623
8916
  if (connection) {
8624
8917
  connection.redraw();
@@ -9444,8 +9737,14 @@ let ReassignConnectionPreparation = class ReassignConnectionPreparation {
9444
9737
  this._startDrag(connection, pointerInFlow);
9445
9738
  queueMicrotask(() => this._bringToFront(connection));
9446
9739
  }
9740
+ /**
9741
+ * Connections attached to the same connector have coinciding drag handles, so
9742
+ * a selected connection wins over registration order — grabbing the handle of
9743
+ * the connection the user just selected is what they aimed at (discussion #328).
9744
+ */
9447
9745
  _findConnectionAt(pointerInFlow) {
9448
- return this._connections.find((c) => isPointerInsideStartOrEndDragHandles(c, pointerInFlow));
9746
+ const matches = this._connections.filter((c) => isPointerInsideStartOrEndDragHandles(c, pointerInFlow));
9747
+ return matches.find((c) => c.isSelected()) ?? matches[0];
9449
9748
  }
9450
9749
  _capturePointerDown(request) {
9451
9750
  this._dragContext.onPointerDownScale = this._transform.scale;
@@ -12514,11 +12813,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImpor
12514
12813
  }]
12515
12814
  }] });
12516
12815
 
12517
- let uniqueId$6 = 0;
12816
+ let uniqueId$3 = 0;
12518
12817
  class FExternalItem extends FExternalItemBase {
12519
12818
  _apiService = inject(FExternalItemService);
12520
12819
  /** Stable id for matching drag sessions, lookups, etc. */
12521
- externalItemId = input(`f-external-item-${uniqueId$6++}`, ...(ngDevMode ? [{ debugName: "externalItemId", alias: 'fExternalItemId' }] : [{
12820
+ externalItemId = input(`f-external-item-${uniqueId$3++}`, ...(ngDevMode ? [{ debugName: "externalItemId", alias: 'fExternalItemId' }] : [{
12522
12821
  alias: 'fExternalItemId',
12523
12822
  }]));
12524
12823
  /** Payload attached to external item. */
@@ -17042,7 +17341,7 @@ class FindConnectableConnectorUsingPriorityAndPositionRequest {
17042
17341
  /**
17043
17342
  * Execution that finds a connectable connector at a given position with priority.
17044
17343
  * It checks for connectors at the position, the closest connector if snap connection is enabled,
17045
- * and the first connectable connector of the node at that position.
17344
+ * and the closest connectable connector of the node at that position.
17046
17345
  */
17047
17346
  let FindConnectableConnectorUsingPriorityAndPosition = class FindConnectableConnectorUsingPriorityAndPosition {
17048
17347
  _mediator = inject(FMediator);
@@ -17068,12 +17367,12 @@ let FindConnectableConnectorUsingPriorityAndPosition = class FindConnectableConn
17068
17367
  const result = [];
17069
17368
  result.push(...this._filterConnectorsThatLocatedAtPosition(request));
17070
17369
  // Closest connector is only added if snap connection is enabled and there is a closest connector found
17071
- // Closest connector has more priority than the first connectable input of the node at position
17370
+ // Closest connector has more priority than the node-level connector of the node at position
17072
17371
  const closestConnector = this._isSnapConnectionEnabledAndHasClosestConnector(request);
17073
17372
  if (closestConnector) {
17074
17373
  result.unshift(closestConnector.connector);
17075
17374
  }
17076
- const fInput = this._getFirstConnectableConnectorOfNodeAtPosition(request);
17375
+ const fInput = this._getClosestConnectableConnectorOfNodeAtPosition(request);
17077
17376
  if (fInput) {
17078
17377
  result.push(fInput);
17079
17378
  }
@@ -17099,12 +17398,13 @@ let FindConnectableConnectorUsingPriorityAndPosition = class FindConnectableConn
17099
17398
  _isValidClosestInput(closestConnector) {
17100
17399
  return !!closestConnector && closestConnector.distance < this._snapConnection.fSnapThreshold;
17101
17400
  }
17102
- //if node placed in position and fConnectOnNode is true, return the first connectable connector of the node
17103
- _getFirstConnectableConnectorOfNodeAtPosition(request) {
17401
+ //if node placed in position and fConnectOnNode is true, return the closest connectable connector of the node
17402
+ _getClosestConnectableConnectorOfNodeAtPosition(request) {
17403
+ const pointerInFlow = this._calculatePointerInFlow(request.pointerPosition);
17104
17404
  return this._getElementsFromPoint(request.pointerPosition)
17105
17405
  .map((x) => this._findConnectableNode(x))
17106
17406
  .filter((x) => !!x)
17107
- .map((x) => this._findFirstConnectableConnectorOfNode(request.connectableConnectors, x))
17407
+ .map((x) => this._findClosestConnectableConnectorOfNode(request.connectableConnectors, x, pointerInFlow))
17108
17408
  .find((x) => !!x);
17109
17409
  }
17110
17410
  _getElementsFromPoint(position) {
@@ -17113,8 +17413,14 @@ let FindConnectableConnectorUsingPriorityAndPosition = class FindConnectableConn
17113
17413
  _findConnectableNode(element) {
17114
17414
  return this._fNodes.find((x) => x.isContains(element) && x.fConnectOnNode());
17115
17415
  }
17116
- _findFirstConnectableConnectorOfNode(connectableInputs, fNode) {
17117
- return connectableInputs.find((x) => x.connector.fNodeId === fNode.fId())?.connector;
17416
+ /**
17417
+ * A node can expose several connectable connectors; picking the one nearest
17418
+ * to the drop point matches what the user aimed at, while registration order
17419
+ * would pick an arbitrary one (see issue #326).
17420
+ */
17421
+ _findClosestConnectableConnectorOfNode(connectableConnectors, fNode, pointerInFlow) {
17422
+ const nodeConnectors = connectableConnectors.filter((x) => x.connector.fNodeId === fNode.fId());
17423
+ return this._mediator.execute(new CalculateClosestConnectorRequest(pointerInFlow, nodeConnectors))?.connector;
17118
17424
  }
17119
17425
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: FindConnectableConnectorUsingPriorityAndPosition, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
17120
17426
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: FindConnectableConnectorUsingPriorityAndPosition });
@@ -19380,6 +19686,8 @@ class RunDevDiagnosticsRequest {
19380
19686
  static fToken = Symbol('RunDevDiagnosticsRequest');
19381
19687
  }
19382
19688
 
19689
+ const DEFAULT_MIN_CONNECTOR_SIZE = 1;
19690
+ const DEFAULT_MAX_NODE_POSITION_DRIFT = 2;
19383
19691
  /**
19384
19692
  * Dev-mode misconfiguration checks (`FFxxxx` codes), run after each settled nodes
19385
19693
  * change. Every check targets a real-world silent failure mined from support issues;
@@ -19387,6 +19695,7 @@ class RunDevDiagnosticsRequest {
19387
19695
  */
19388
19696
  let RunDevDiagnostics = class RunDevDiagnostics {
19389
19697
  _store = inject(FComponentsStore);
19698
+ _config = inject(F_FLOW_CONFIG, { optional: true });
19390
19699
  handle(_) {
19391
19700
  if (!isFDevMode()) {
19392
19701
  return;
@@ -19394,6 +19703,8 @@ let RunDevDiagnostics = class RunDevDiagnostics {
19394
19703
  this._checkDetachedItems();
19395
19704
  this._checkInteractionsWithoutDraggable();
19396
19705
  this._checkHiddenConnectors();
19706
+ this._checkZeroSizeConnectors();
19707
+ this._checkNodePositionDrift();
19397
19708
  this._checkNestedNodes();
19398
19709
  this._checkDanglingParentIds();
19399
19710
  }
@@ -19455,19 +19766,85 @@ let RunDevDiagnostics = class RunDevDiagnostics {
19455
19766
  * geometry is a 0×0 point: connections attach to the wrong place or nowhere.
19456
19767
  */
19457
19768
  _checkHiddenConnectors() {
19458
- const connectors = [
19459
- ...this._store.connectors.getAll(),
19460
- ...this._store.outputs.getAll(),
19461
- ...this._store.inputs.getAll(),
19462
- ...this._store.outlets.getAll(),
19463
- ];
19464
- for (const connector of connectors) {
19769
+ for (const connector of this._allConnectors()) {
19465
19770
  const host = connector.hostElement;
19466
19771
  if (host.isConnected && host.getClientRects().length === 0) {
19467
19772
  fWarnOnce('FF1006', connector.fId(), `Connector "${connector.fId()}" is hidden with CSS (display: none?), so its geometry is a 0×0 point and connections cannot attach to it correctly. Conditionally render it instead of hiding it.`);
19468
19773
  }
19469
19774
  }
19470
19775
  }
19776
+ /**
19777
+ * FF1010 — a rendered connector whose own box is zero/near-zero sized. The visual
19778
+ * dot is often drawn with `::before`/`::after`, but hit-testing and connection
19779
+ * geometry use the element's box, so drops land past the connector and fall back
19780
+ * to node-level connect (see issue #326). Threshold comes from
19781
+ * `provideFFlow({ diagnostics: { minConnectorSize } })`; `0` disables the check.
19782
+ */
19783
+ _checkZeroSizeConnectors() {
19784
+ const threshold = this._config?.diagnostics?.minConnectorSize ?? DEFAULT_MIN_CONNECTOR_SIZE;
19785
+ if (threshold <= 0) {
19786
+ return;
19787
+ }
19788
+ for (const connector of this._allConnectors()) {
19789
+ const host = connector.hostElement;
19790
+ if (!host.isConnected || host.getClientRects().length === 0) {
19791
+ continue;
19792
+ }
19793
+ const { width, height } = host.getBoundingClientRect();
19794
+ if (width < threshold || height < threshold) {
19795
+ fWarnOnce('FF1010', connector.fId(), `Connector "${connector.fId()}" is ${Math.round(width)}×${Math.round(height)}px. Hit-testing and connection geometry use the element's own box, so a dot drawn with ::before/::after is not enough — give the connector element itself a size (width/height).`);
19796
+ }
19797
+ }
19798
+ }
19799
+ /**
19800
+ * FF1011 — a node whose rendered box diverges from its model position. The canvas
19801
+ * places the host at `fNodePosition`, so a drift means app CSS on the node host
19802
+ * (margin, left/top, an extra transform) or out-of-band positioning moved the
19803
+ * visuals; model-driven features (minimap, fitToScreen, auto-layout) keep using
19804
+ * the model position and disagree with what the user sees (see issue #331).
19805
+ * Threshold comes from `provideFFlow({ diagnostics: { maxNodePositionDrift } })`;
19806
+ * `0` disables the check.
19807
+ */
19808
+ _checkNodePositionDrift() {
19809
+ const threshold = this._config?.diagnostics?.maxNodePositionDrift ?? DEFAULT_MAX_NODE_POSITION_DRIFT;
19810
+ if (threshold <= 0) {
19811
+ return;
19812
+ }
19813
+ const flowHost = this._store.flowHost;
19814
+ const transform = this._store.transform;
19815
+ if (!flowHost || !transform) {
19816
+ return;
19817
+ }
19818
+ const scale = transform.scale || 1;
19819
+ for (const node of this._store.nodes.getAll()) {
19820
+ const host = node.hostElement;
19821
+ if (!host.isConnected || host.getClientRects().length === 0) {
19822
+ continue;
19823
+ }
19824
+ const rect = host.getBoundingClientRect();
19825
+ const renderedCenter = calculatePointerInFlow({ x: rect.left + rect.width / 2, y: rect.top + rect.height / 2 }, flowHost, transform);
19826
+ // Centers survive rotation (the host spins around its own center), so compare
19827
+ // them instead of AABB origins; sizes come from unscaled layout geometry.
19828
+ const width = typeof host.offsetWidth === 'number' ? host.offsetWidth : rect.width / scale;
19829
+ const height = typeof host.offsetHeight === 'number' ? host.offsetHeight : rect.height / scale;
19830
+ const driftX = renderedCenter.x - (node._position.x + width / 2);
19831
+ const driftY = renderedCenter.y - (node._position.y + height / 2);
19832
+ // Compared in on-screen pixels: at deep zoom-out a sub-pixel gBCR reading
19833
+ // divided by the scale would otherwise cross the threshold on its own.
19834
+ const drift = Math.max(Math.abs(driftX), Math.abs(driftY)) * scale;
19835
+ if (drift > threshold) {
19836
+ fWarnOnce('FF1011', node.fId(), `${this._describe(node)} "${node.fId()}" is rendered ~${Math.round(drift)}px away from its fNodePosition (model x: ${Math.round(node._position.x)}, y: ${Math.round(node._position.y)}; rendered x: ${Math.round(renderedCenter.x - width / 2)}, y: ${Math.round(renderedCenter.y - height / 2)}). The minimap, fitToScreen and auto-layout read the model, so they place this node where fNodePosition says — not where CSS moved it. Fold the offset (margin/left/top/extra transform on the node host) into fNodePosition instead.`);
19837
+ }
19838
+ }
19839
+ }
19840
+ _allConnectors() {
19841
+ return [
19842
+ ...this._store.connectors.getAll(),
19843
+ ...this._store.outputs.getAll(),
19844
+ ...this._store.inputs.getAll(),
19845
+ ...this._store.outlets.getAll(),
19846
+ ];
19847
+ }
19471
19848
  /**
19472
19849
  * FF1007 — an `[fNode]`/`[fGroup]` element nested inside another node element: the
19473
19850
  * outer node wins the drag and bindings on the inner one never fire. Hierarchy is
@@ -20795,7 +21172,7 @@ const COMMON_PROVIDERS = [
20795
21172
  MoveFrontElementsBeforeTargetElement,
20796
21173
  ];
20797
21174
 
20798
- let uniqueId$5 = 0;
21175
+ let uniqueId$2 = 0;
20799
21176
  class FRectPatternComponent {
20800
21177
  _destroyRef = inject(DestroyRef);
20801
21178
  _elementReference = inject(ElementRef);
@@ -20804,7 +21181,7 @@ class FRectPatternComponent {
20804
21181
  get hostElement() {
20805
21182
  return this._elementReference.nativeElement;
20806
21183
  }
20807
- id = input(`f-pattern-${uniqueId$5++}`, ...(ngDevMode ? [{ debugName: "id" }] : []));
21184
+ id = input(`f-pattern-${uniqueId$2++}`, ...(ngDevMode ? [{ debugName: "id" }] : []));
20808
21185
  vColor = input('rgba(0,0,0,0.1)', ...(ngDevMode ? [{ debugName: "vColor" }] : []));
20809
21186
  hColor = input('rgba(0,0,0,0.1)', ...(ngDevMode ? [{ debugName: "hColor" }] : []));
20810
21187
  vSize = input(20, ...(ngDevMode ? [{ debugName: "vSize", transform: numberAttribute }] : [{ transform: numberAttribute }]));
@@ -20888,7 +21265,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImpor
20888
21265
  }]
20889
21266
  }], ctorParameters: () => [], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], vColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "vColor", required: false }] }], hColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "hColor", required: false }] }], vSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "vSize", required: false }] }], hSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "hSize", required: false }] }] } });
20890
21267
 
20891
- let uniqueId$4 = 0;
21268
+ let uniqueId$1 = 0;
20892
21269
  class FCirclePatternComponent {
20893
21270
  _destroyRef = inject(DestroyRef);
20894
21271
  _elementReference = inject(ElementRef);
@@ -20897,7 +21274,7 @@ class FCirclePatternComponent {
20897
21274
  get hostElement() {
20898
21275
  return this._elementReference.nativeElement;
20899
21276
  }
20900
- id = input(`f-pattern-${uniqueId$4++}`, ...(ngDevMode ? [{ debugName: "id" }] : []));
21277
+ id = input(`f-pattern-${uniqueId$1++}`, ...(ngDevMode ? [{ debugName: "id" }] : []));
20901
21278
  color = input('rgba(0,0,0,0.1)', ...(ngDevMode ? [{ debugName: "color" }] : []));
20902
21279
  radius = input(20, ...(ngDevMode ? [{ debugName: "radius", transform: numberAttribute }] : [{ transform: numberAttribute }]));
20903
21280
  _scaledRadius = 20;
@@ -21329,11 +21706,13 @@ class FCanvasComponent extends FCanvasBase {
21329
21706
  * @param padding - paddings from the bounds of the canvas
21330
21707
  * @param animated - If true, the fit will be animated; otherwise, it will be instantaneous.
21331
21708
  * @param emitCanvasChange - If false, does not emit `fCanvasChange` for this programmatic move.
21709
+ * @param maxScale - Upper bound for the resulting scale, so a small graph is not
21710
+ * magnified to fill the viewport. Unlimited when omitted.
21332
21711
  */
21333
- fitToScreen(padding = PointExtensions.initialize(), animated = true, emitCanvasChange = true) {
21712
+ fitToScreen(padding = PointExtensions.initialize(), animated = true, emitCanvasChange = true, maxScale) {
21334
21713
  this._warnWhenCalledBeforeNodesRender('fitToScreen()');
21335
21714
  this._afterRedraw(() => {
21336
- this._mediator.execute(new FitToFlowRequest(padding, animated, emitCanvasChange));
21715
+ this._mediator.execute(new FitToFlowRequest(padding, animated, emitCanvasChange, maxScale));
21337
21716
  });
21338
21717
  }
21339
21718
  /**
@@ -21398,251 +21777,6 @@ const F_CANVAS_PROVIDERS = [
21398
21777
  FCanvasComponent,
21399
21778
  ];
21400
21779
 
21401
- let uniqueId$3 = 0;
21402
- class FConnectionComponent extends FConnectionBase {
21403
- fId = input(`f-connection-${uniqueId$3++}`, ...(ngDevMode ? [{ debugName: "fId", alias: 'fConnectionId' }] : [{ alias: 'fConnectionId' }]));
21404
- fSourceId = input('', ...(ngDevMode ? [{ debugName: "fSourceId", transform: (value) => stringAttribute(value) || '' }] : [{
21405
- transform: (value) => stringAttribute(value) || '',
21406
- }]));
21407
- fTargetId = input('', ...(ngDevMode ? [{ debugName: "fTargetId", transform: (value) => stringAttribute(value) || '' }] : [{
21408
- transform: (value) => stringAttribute(value) || '',
21409
- }]));
21410
- /** @deprecated Use `fSourceId`. */
21411
- fOutputId = input('', ...(ngDevMode ? [{ debugName: "fOutputId", transform: (value) => stringAttribute(value) || '' }] : [{
21412
- transform: (value) => stringAttribute(value) || '',
21413
- }]));
21414
- /** @deprecated Use `fTargetId`. */
21415
- fInputId = input('', ...(ngDevMode ? [{ debugName: "fInputId", transform: (value) => stringAttribute(value) || '' }] : [{
21416
- transform: (value) => stringAttribute(value) || '',
21417
- }]));
21418
- fRadius = 8;
21419
- fOffset = 12;
21420
- fBehavior = EFConnectionBehavior.FIXED;
21421
- fType = EFConnectionType.STRAIGHT;
21422
- fSelectionDisabled = input(false, ...(ngDevMode ? [{ debugName: "fSelectionDisabled", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
21423
- fReassignableStart = input(false, ...(ngDevMode ? [{ debugName: "fReassignableStart", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
21424
- fDraggingDisabled = input(false, ...(ngDevMode ? [{ debugName: "fDraggingDisabled", alias: 'fReassignDisabled',
21425
- transform: booleanAttribute }] : [{
21426
- alias: 'fReassignDisabled',
21427
- transform: booleanAttribute,
21428
- }]));
21429
- fSourceSide = input(EFConnectionConnectableSide.DEFAULT, ...(ngDevMode ? [{ debugName: "fSourceSide", transform: (x) => {
21430
- return castToEnum(x, 'fSourceSide', EFConnectionConnectableSide);
21431
- } }] : [{
21432
- transform: (x) => {
21433
- return castToEnum(x, 'fSourceSide', EFConnectionConnectableSide);
21434
- },
21435
- }]));
21436
- fTargetSide = input(EFConnectionConnectableSide.DEFAULT, ...(ngDevMode ? [{ debugName: "fTargetSide", transform: (x) => {
21437
- return castToEnum(x, 'fTargetSide', EFConnectionConnectableSide);
21438
- } }] : [{
21439
- transform: (x) => {
21440
- return castToEnum(x, 'fTargetSide', EFConnectionConnectableSide);
21441
- },
21442
- }]));
21443
- /** @deprecated Use `fTargetSide`. */
21444
- fInputSide = input(EFConnectionConnectableSide.DEFAULT, ...(ngDevMode ? [{ debugName: "fInputSide", transform: (x) => {
21445
- return castToEnum(x, 'fInputSide', EFConnectionConnectableSide);
21446
- } }] : [{
21447
- transform: (x) => {
21448
- return castToEnum(x, 'fInputSide', EFConnectionConnectableSide);
21449
- },
21450
- }]));
21451
- /** @deprecated Use `fSourceSide`. */
21452
- fOutputSide = input(EFConnectionConnectableSide.DEFAULT, ...(ngDevMode ? [{ debugName: "fOutputSide", transform: (x) => {
21453
- return castToEnum(x, 'fOutputSide', EFConnectionConnectableSide);
21454
- } }] : [{
21455
- transform: (x) => {
21456
- return castToEnum(x, 'fOutputSide', EFConnectionConnectableSide);
21457
- },
21458
- }]));
21459
- get boundingElement() {
21460
- return this.fPath().hostElement;
21461
- }
21462
- _mediator = inject(FMediator);
21463
- ngOnInit() {
21464
- this._mediator.execute(new AddConnectionToStoreRequest(this));
21465
- }
21466
- ngOnChanges() {
21467
- this._mediator.execute(new EmitConnectionsChangesRequest());
21468
- }
21469
- ngOnDestroy() {
21470
- this._mediator.execute(new RemoveConnectionFromStoreRequest(this));
21471
- }
21472
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: FConnectionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
21473
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.9", type: FConnectionComponent, isStandalone: false, selector: "f-connection", inputs: { fId: { classPropertyName: "fId", publicName: "fConnectionId", isSignal: true, isRequired: false, transformFunction: null }, fSourceId: { classPropertyName: "fSourceId", publicName: "fSourceId", isSignal: true, isRequired: false, transformFunction: null }, fTargetId: { classPropertyName: "fTargetId", publicName: "fTargetId", 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 }, fSourceSide: { classPropertyName: "fSourceSide", publicName: "fSourceSide", isSignal: true, isRequired: false, transformFunction: null }, fTargetSide: { classPropertyName: "fTargetSide", publicName: "fTargetSide", 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()", "attr.data-f-connection-type": "fType", "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-marker-circle, f-connection-marker-arrow\" />\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 });
21474
- }
21475
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: FConnectionComponent, decorators: [{
21476
- type: Component,
21477
- args: [{ standalone: false, selector: 'f-connection', exportAs: 'fComponent', changeDetection: ChangeDetectionStrategy.OnPush, host: {
21478
- '[attr.id]': 'fId()',
21479
- '[attr.data-f-connection-type]': 'fType',
21480
- class: 'f-component f-connection',
21481
- '[class.f-connection-selection-disabled]': 'fSelectionDisabled()',
21482
- '[class.f-connection-reassign-disabled]': 'fDraggingDisabled()',
21483
- }, 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-marker-circle, f-connection-marker-arrow\" />\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"] }]
21484
- }], propDecorators: { fId: [{ type: i0.Input, args: [{ isSignal: true, alias: "fConnectionId", required: false }] }], fSourceId: [{ type: i0.Input, args: [{ isSignal: true, alias: "fSourceId", required: false }] }], fTargetId: [{ type: i0.Input, args: [{ isSignal: true, alias: "fTargetId", required: false }] }], fOutputId: [{ type: i0.Input, args: [{ isSignal: true, alias: "fOutputId", required: false }] }], fInputId: [{ type: i0.Input, args: [{ isSignal: true, alias: "fInputId", required: false }] }], fRadius: [{
21485
- type: Input,
21486
- args: [{ transform: numberAttribute }]
21487
- }], fOffset: [{
21488
- type: Input,
21489
- args: [{ transform: numberAttribute }]
21490
- }], fBehavior: [{
21491
- type: Input,
21492
- args: [{ transform: (value) => castToEnum(value, 'fBehavior', EFConnectionBehavior) }]
21493
- }], fType: [{
21494
- type: Input
21495
- }], fSelectionDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "fSelectionDisabled", required: false }] }], fReassignableStart: [{ type: i0.Input, args: [{ isSignal: true, alias: "fReassignableStart", required: false }] }], fDraggingDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "fReassignDisabled", required: false }] }], fSourceSide: [{ type: i0.Input, args: [{ isSignal: true, alias: "fSourceSide", required: false }] }], fTargetSide: [{ type: i0.Input, args: [{ isSignal: true, alias: "fTargetSide", required: false }] }], fInputSide: [{ type: i0.Input, args: [{ isSignal: true, alias: "fInputSide", required: false }] }], fOutputSide: [{ type: i0.Input, args: [{ isSignal: true, alias: "fOutputSide", required: false }] }] } });
21496
-
21497
- let uniqueId$2 = 0;
21498
- class FConnectionForCreateComponent extends FConnectionBase {
21499
- fId = signal(`f-connection-for-create-${uniqueId$2++}`, ...(ngDevMode ? [{ debugName: "fId" }] : []));
21500
- fOutputId = signal('', ...(ngDevMode ? [{ debugName: "fOutputId" }] : []));
21501
- fInputId = signal('', ...(ngDevMode ? [{ debugName: "fInputId" }] : []));
21502
- fRadius = 8;
21503
- fOffset = 12;
21504
- fBehavior = EFConnectionBehavior.FIXED;
21505
- fType = EFConnectionType.STRAIGHT;
21506
- fInputSide = input(EFConnectionConnectableSide.DEFAULT, ...(ngDevMode ? [{ debugName: "fInputSide", transform: (x) => {
21507
- return castToEnum(x, 'fInputSide', EFConnectionConnectableSide);
21508
- } }] : [{
21509
- transform: (x) => {
21510
- return castToEnum(x, 'fInputSide', EFConnectionConnectableSide);
21511
- },
21512
- }]));
21513
- fOutputSide = input(EFConnectionConnectableSide.DEFAULT, ...(ngDevMode ? [{ debugName: "fOutputSide", transform: (x) => {
21514
- return castToEnum(x, 'fOutputSide', EFConnectionConnectableSide);
21515
- } }] : [{
21516
- transform: (x) => {
21517
- return castToEnum(x, 'fOutputSide', EFConnectionConnectableSide);
21518
- },
21519
- }]));
21520
- get boundingElement() {
21521
- return this.fPath().hostElement;
21522
- }
21523
- _mediator = inject(FMediator);
21524
- ngOnInit() {
21525
- this._mediator.execute(new AddConnectionForCreateToStoreRequest(this));
21526
- }
21527
- ngAfterViewInit() {
21528
- this.hide();
21529
- }
21530
- ngOnChanges() {
21531
- this._mediator.execute(new EmitConnectionsChangesRequest());
21532
- }
21533
- ngOnDestroy() {
21534
- this._mediator.execute(new RemoveConnectionForCreateFromStoreRequest());
21535
- }
21536
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: FConnectionForCreateComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
21537
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.9", type: FConnectionForCreateComponent, isStandalone: false, 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: { attributes: { "aria-hidden": "true" }, classAttribute: "f-component f-connection f-connection-for-create" }, providers: [
21538
- { provide: F_CONNECTION_COMPONENTS_PARENT, useExisting: FConnectionForCreateComponent },
21539
- ], 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-marker-circle, f-connection-marker-arrow\" />\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 });
21540
- }
21541
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: FConnectionForCreateComponent, decorators: [{
21542
- type: Component,
21543
- args: [{ standalone: false, selector: 'f-connection-for-create', changeDetection: ChangeDetectionStrategy.OnPush, host: {
21544
- class: 'f-component f-connection f-connection-for-create',
21545
- 'aria-hidden': 'true',
21546
- }, providers: [
21547
- { provide: F_CONNECTION_COMPONENTS_PARENT, useExisting: FConnectionForCreateComponent },
21548
- ], 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-marker-circle, f-connection-marker-arrow\" />\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"] }]
21549
- }], propDecorators: { fRadius: [{
21550
- type: Input,
21551
- args: [{ transform: numberAttribute }]
21552
- }], fOffset: [{
21553
- type: Input,
21554
- args: [{ transform: numberAttribute }]
21555
- }], fBehavior: [{
21556
- type: Input,
21557
- args: [{ transform: (value) => castToEnum(value, 'fBehavior', EFConnectionBehavior) }]
21558
- }], fType: [{
21559
- type: Input
21560
- }], fInputSide: [{ type: i0.Input, args: [{ isSignal: true, alias: "fInputSide", required: false }] }], fOutputSide: [{ type: i0.Input, args: [{ isSignal: true, alias: "fOutputSide", required: false }] }] } });
21561
-
21562
- let uniqueId$1 = 0;
21563
- class FSnapConnectionComponent extends FConnectionBase {
21564
- fId = signal(`f-snap-connection-${uniqueId$1++}`, ...(ngDevMode ? [{ debugName: "fId" }] : []));
21565
- fSnapThreshold = 20;
21566
- fOutputId = signal('', ...(ngDevMode ? [{ debugName: "fOutputId" }] : []));
21567
- fInputId = signal('', ...(ngDevMode ? [{ debugName: "fInputId" }] : []));
21568
- fRadius = 8;
21569
- fOffset = 12;
21570
- fBehavior = EFConnectionBehavior.FIXED;
21571
- fType = EFConnectionType.STRAIGHT;
21572
- fInputSide = input(EFConnectionConnectableSide.DEFAULT, ...(ngDevMode ? [{ debugName: "fInputSide", transform: (x) => {
21573
- return castToEnum(x, 'fInputSide', EFConnectionConnectableSide);
21574
- } }] : [{
21575
- transform: (x) => {
21576
- return castToEnum(x, 'fInputSide', EFConnectionConnectableSide);
21577
- },
21578
- }]));
21579
- fOutputSide = input(EFConnectionConnectableSide.DEFAULT, ...(ngDevMode ? [{ debugName: "fOutputSide", transform: (x) => {
21580
- return castToEnum(x, 'fOutputSide', EFConnectionConnectableSide);
21581
- } }] : [{
21582
- transform: (x) => {
21583
- return castToEnum(x, 'fOutputSide', EFConnectionConnectableSide);
21584
- },
21585
- }]));
21586
- get boundingElement() {
21587
- return this.fPath().hostElement;
21588
- }
21589
- _mediator = inject(FMediator);
21590
- ngOnInit() {
21591
- this._mediator.execute(new AddSnapConnectionToStoreRequest(this));
21592
- }
21593
- ngAfterViewInit() {
21594
- this.hide();
21595
- }
21596
- ngOnChanges() {
21597
- this._mediator.execute(new EmitConnectionsChangesRequest());
21598
- }
21599
- ngOnDestroy() {
21600
- this._mediator.execute(new RemoveSnapConnectionFromStoreRequest());
21601
- }
21602
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: FSnapConnectionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
21603
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.9", type: FSnapConnectionComponent, isStandalone: false, 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: { attributes: { "aria-hidden": "true" }, 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-marker-circle, f-connection-marker-arrow\" />\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 });
21604
- }
21605
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: FSnapConnectionComponent, decorators: [{
21606
- type: Component,
21607
- args: [{ standalone: false, selector: 'f-snap-connection', changeDetection: ChangeDetectionStrategy.OnPush, host: {
21608
- class: 'f-component f-connection f-snap-connection',
21609
- 'aria-hidden': 'true',
21610
- }, 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-marker-circle, f-connection-marker-arrow\" />\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"] }]
21611
- }], propDecorators: { fSnapThreshold: [{
21612
- type: Input,
21613
- args: [{ transform: numberAttribute }]
21614
- }], fRadius: [{
21615
- type: Input,
21616
- args: [{ transform: numberAttribute }]
21617
- }], fOffset: [{
21618
- type: Input,
21619
- args: [{ transform: numberAttribute }]
21620
- }], fBehavior: [{
21621
- type: Input,
21622
- args: [{ transform: (value) => castToEnum(value, 'fBehavior', EFConnectionBehavior) }]
21623
- }], fType: [{
21624
- type: Input
21625
- }], fInputSide: [{ type: i0.Input, args: [{ isSignal: true, alias: "fInputSide", required: false }] }], fOutputSide: [{ type: i0.Input, args: [{ isSignal: true, alias: "fOutputSide", required: false }] }] } });
21626
-
21627
- const F_CONNECTION_PROVIDERS = [
21628
- FConnectionDragHandleStart,
21629
- FConnectionDragHandleEnd,
21630
- FConnectionPath,
21631
- FConnectionSelection,
21632
- FConnectionMarker,
21633
- FConnectionComponent,
21634
- FConnectionForCreateComponent,
21635
- FSnapConnectionComponent,
21636
- ];
21637
- const F_CONNECTION_IMPORTS_EXPORTS = [
21638
- FConnectionContent,
21639
- FConnectionMarkerCircle,
21640
- FConnectionMarkerArrow,
21641
- FConnectionGradient,
21642
- FConnectionGradientRenderer,
21643
- FConnectionWaypoints,
21644
- ];
21645
-
21646
21780
  const CLEAR_DELAY = 4000;
21647
21781
  /**
21648
21782
  * Speaks editor feedback to assistive technology through a live region (WCAG 4.1.3 —
@@ -24716,5 +24850,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImpor
24716
24850
  * Generated bundle index. Do not edit.
24717
24851
  */
24718
24852
 
24719
- export { AddCanvasToStore, AddCanvasToStoreRequest, AddConnectionForCreateToStore, AddConnectionForCreateToStoreRequest, AddConnectionMarkerToStore, AddConnectionMarkerToStoreRequest, AddConnectionToStore, AddConnectionToStoreRequest, AddConnectorToStore, AddConnectorToStoreRequest, AddDndToStore, AddDndToStoreRequest, AddFlowToStore, AddFlowToStoreRequest, AddNodeToStore, AddNodeToStoreRequest, AddPatternToBackground, AddPatternToBackgroundRequest, AddSnapConnectionToStore, AddSnapConnectionToStoreRequest, ApplyChildResizeConstraints, ApplyChildResizeConstraintsRequest, ApplyConnectionRender, ApplyConnectionRenderRequest, ApplyConnectionWorkerResult, ApplyConnectionWorkerResultRequest, ApplyParentResizeConstraints, ApplyParentResizeConstraintsRequest, AttachDragNodeHandlerFromSelection, AttachDragNodeHandlerFromSelectionRequest, AttachResizeConnectionDragHandlersToNode, AttachResizeConnectionDragHandlersToNodeRequest, AttachSoftParentConnectionDragHandlersToNode, AttachSoftParentConnectionDragHandlersToNodeRequest, AttachSourceConnectionDragHandlersToNode, AttachSourceConnectionDragHandlersToNodeRequest, AttachTargetConnectionDragHandlersToNode, AttachTargetConnectionDragHandlersToNodeRequest, BuildConnectionLine, BuildConnectionLineRequest, BuildConnectionWorkerBatch, BuildConnectionWorkerBatchRequest, BuildConnectionWorkerPayloadItem, BuildConnectionWorkerPayloadItemRequest, 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, CalculateConnectionsState, CalculateConnectionsStateRequest, 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, CenterBasedDeltaCalculator, CenterGroupOrNode, CenterGroupOrNodeRequest, CenterOfMassSelectionStrategy, ChainPushCollisionResolver, ClearSelection, ClearSelectionRequest, CompleteConnectionRedraw, CompleteConnectionRedrawRequest, ConnectableSidesScheduler, ConnectedSubgraphScopeFilter, ConnectionBehaviourBuilder, ConnectionBehaviourBuilderRequest, ConnectionContentLayoutEngine, ConnectionLineBuilder, ConnectionLineBuilderRequest, ConnectionRedrawState, ConnectionWorkerState, CreateConnectionCreateDragHandler, CreateConnectionCreateDragHandlerRequest, CreateConnectionFinalize, CreateConnectionFinalizeRequest, CreateConnectionFromConnectorPreparation, CreateConnectionFromConnectorPreparationRequest, CreateConnectionFromOutletPreparation, CreateConnectionFromOutletPreparationRequest, CreateConnectionFromOutputPreparation, CreateConnectionFromOutputPreparationRequest, CreateConnectionHandler, CreateConnectionMarkers, CreateConnectionMarkersRequest, CreateConnectionPreparation, CreateConnectionPreparationRequest, CreateDragNodeHandler, CreateDragNodeHandlerRequest, CreateDragNodeHierarchy, CreateDragNodeHierarchyRequest, DRAG_AND_DROP_COMMON_PROVIDERS, DRAG_AUTO_PAN_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, DownstreamConnectionsSelectionStrategy, 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, ECanvasRedrawContext, EFCanvasLayer, EFConnectableSide, EFConnectionBehavior, EFConnectionConnectableSide, EFConnectionType, EFFlowFeatureKind, EFLayoutDirection, EFLayoutMode, EFMarkerType, EFReflowAxis, EFReflowCollision, EFReflowDeltaSource, EFReflowMode, EFReflowScope, EFResizeHandleType, EFZoomDirection, EMPTY_REFLOW_PLAN, EdgeBasedDeltaCalculator, EmitConnectionsChanges, EmitConnectionsChangesRequest, EmitEndDragSequenceEvent, EmitEndDragSequenceEventRequest, EmitSelectionChangeEvent, EmitSelectionChangeEventRequest, EmitStartDragSequenceEvent, EmitStartDragSequenceEventRequest, EnsureConnectionWorker, EnsureConnectionWorkerRequest, EventExtensions, ExternalRectConstraint, FA11yAnnouncer, FA11yController, FAutoPan, FAutoPanBase, FBackgroundBase, FBackgroundComponent, FCache, FCacheConnector, FCacheConnectorKeyFactory, FCacheNode, FCanvasBase, FCanvasChangeEvent, FCanvasComponent, FChannel, FChannelHub, FCirclePatternComponent, FClickConnectFlow, FComponentsStore, FConnectionBase, FConnectionComponent, FConnectionComponentsParent, FConnectionContent, FConnectionContentBase, FConnectionDragHandleBase, FConnectionDragHandleEnd, FConnectionDragHandleStart, FConnectionForCreateComponent, FConnectionGradient, FConnectionGradientBase, FConnectionGradientRenderer, FConnectionGradientRendererBase, FConnectionMarker, FConnectionMarkerArrow, FConnectionMarkerBase, FConnectionMarkerCircle, FConnectionMarkerRegistry, FConnectionPath, FConnectionPathBase, FConnectionRegistry, FConnectionSelection, FConnectionSelectionBase, FConnectionWaypoints, FConnectionWaypointsBase, FConnectionWaypointsChangedEvent, FConnectorBase, FConnectorDirective, FConnectorRegistry, FControlSchemeController, FCreateConnectionEvent, FCreateConnectionSession, FCreateNodeEvent, FDeleteSelectedEvent, FDragBlockerDirective, FDragExternalItemStartEventData, FDragHandleDirective, FDragHandlerResult, FDragNodeStartEventData, FDragStartedEvent, FDraggableBase, FDraggableDataContext, FDraggableDirective, FDropToGroupEvent, FExternalItem, FExternalItemBase, FExternalItemPlaceholder, FExternalItemPreview, FExternalItemService, FFlowBase, FFlowComponent, FFlowModule, FFlowState, FFlowStateController, FGroupDirective, FIdRegistryBase, FLayoutController, FLayoutEngine, 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, FReflowBaselineTracker, FReflowController, FReflowCycleGuard, FReflowIgnore, FReflowIgnoreRegistry, FReflowOrchestrator, FReflowPlanner, FResizeChannel, FResizeHandleDirective, FResizeNodeStartEventData, FRotateHandleDirective, FRotateNodeStartEventData, FSelectionArea, FSelectionAreaBase, FSelectionChangeEvent, FSingleRegistryBase, FSnapConnectionComponent, FSourceConnectorBase, FVirtualFor, FZoomBase, FZoomDirective, F_A11Y_CONFIG, F_AUTO_PAN_PROVIDERS, F_BACKGROUND, F_BACKGROUND_FEATURES, F_BACKGROUND_PATTERN, F_BACKGROUND_PROVIDERS, F_CACHE_FEATURES, F_CACHE_OPTIONS, F_CANVAS, F_CANVAS_CONFIG, 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_FLOW, F_CONNECTION_GRADIENT, F_CONNECTION_IMPORTS_EXPORTS, F_CONNECTION_MARKER, F_CONNECTION_PATH, F_CONNECTION_PROVIDERS, F_CONNECTION_SELECTION, F_CONNECTION_WAYPOINTS, F_CONNECTOR, F_CONNECTORS_FEATURES, F_CONNECTORS_PROVIDERS, F_CONTROL_SCHEME_CONFIG, F_CSS_CLASS, F_DEFAULT_A11Y_CONFIG, F_DEFAULT_A11Y_KEYS, F_DEFAULT_A11Y_MESSAGES, F_DEFAULT_CONTROL_SCHEME, F_DEFAULT_LAYER_ORDER, F_DRAGGABLE_FEATURES, F_DRAGGABLE_PROVIDERS, F_DRAG_SELECT_CONTROL_SCHEME, F_EXTERNAL_ITEM, F_EXTERNAL_ITEM_PROVIDERS, F_FLOW, F_FLOW_CONFIG, F_FLOW_FEATURES, F_FLOW_PROVIDERS, F_FLOW_STATE_CONFIG, F_LAYOUT, F_LAYOUT_OPTIONS, 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_REFLOW_CONFIG, F_REFLOW_PROVIDERS, F_SCROLL_PAN_CONTROL_SCHEME, 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, GlobalScopeFilter, GridSnapper, GroupScopeFilter, HandleConnectionWorkerMessage, HandleConnectionWorkerMessageRequest, IMouseEvent, INSTANCES, IPointerEvent, IPointerUpEvent, ITouchDownEvent, ITouchMoveEvent, InitializeDragSequence, InitializeDragSequenceRequest, InputCanvasPosition, InputCanvasPositionRequest, InputCanvasScale, InputCanvasScaleRequest, InvalidateFCacheNode, InvalidateFCacheNodeRequest, IsArrayHasParentNode, IsArrayHasParentNodeRequest, IsConnectionRedrawCurrent, IsConnectionRedrawCurrentRequest, 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, MarkConnectionConnectorsAsConnected, MarkConnectionConnectorsAsConnectedRequest, MinimapCalculateViewRect, MinimapCalculateViewRectRequest, MinimapCalculateViewport, MinimapCalculateViewportRequest, MinimapDrawNodes, MinimapDrawNodesRequest, MinimapNodeRects, MoveFrontElementsBeforeTargetElement, MoveFrontElementsBeforeTargetElementRequest, NODE_PROVIDERS, NODE_RESIZE_PROVIDERS, NODE_ROTATE_PROVIDERS, NotifyFullRendered, NotifyFullRenderedRequest, NotifyNodesRendered, NotifyNodesRenderedRequest, NotifyTransformChanged, NotifyTransformChangedRequest, OnPointerMove, OnPointerMoveRequest, PINCH_TO_ZOOM_PROVIDERS, PinchToZoomFinalize, PinchToZoomFinalizeRequest, PinchToZoomHandler, PinchToZoomPreparation, PinchToZoomPreparationRequest, Polyline, PolylineContentAlign, PolylineContentPlace, PolylineSampler, PrepareDragSequence, PrepareDragSequenceRequest, PreventDefaultIsExternalItem, PreventDefaultIsExternalItemRequest, QueueConnectionRedraw, QueueConnectionRedrawRequest, QueueConnectionRedrawState, 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, RenderConnection, RenderConnectionFromGeometry, RenderConnectionFromGeometryRequest, RenderConnectionRequest, RenderConnectionWithLine, RenderConnectionWithLineRequest, RenderLifecycleState, ResetConnectionWorkerRuntime, ResetConnectionWorkerRuntimeRequest, ResetRenderLifecycle, ResetRenderLifecycleRequest, ResetScale, ResetScaleAndCenter, ResetScaleAndCenterRequest, ResetScaleRequest, ResetZoom, ResetZoomRequest, ResizeNodeConnectionBothSidesHandler, ResizeNodeConnectionHandlerBase, ResizeNodeConnectionSourceHandler, ResizeNodeConnectionTargetHandler, ResizeNodeFinalize, ResizeNodeFinalizeRequest, ResizeNodeHandler, ResizeNodePreparation, ResizeNodePreparationRequest, ResolveConnectableOutputForOutlet, ResolveConnectableOutputForOutletRequest, ResolveConnectionEndpointRect, ResolveConnectionEndpointRectRequest, ResolveConnectionEndpointRotationContext, ResolveConnectionEndpointRotationContextRequest, ResolveConnectionEndpoints, ResolveConnectionEndpointsRequest, ResolveConnectionGeometry, ResolveConnectionGeometryRequest, RotateNodeFinalize, RotateNodeFinalizeRequest, RotateNodeHandler, RotateNodePreparation, RotateNodePreparationRequest, RunAutoPanFrame, RunAutoPanFrameRequest, RunConnectionRedrawSlice, RunConnectionRedrawSliceRequest, RunConnectionWorker, RunConnectionWorkerBatch, RunConnectionWorkerBatchRequest, RunConnectionWorkerRequest, RunDevDiagnostics, RunDevDiagnosticsRequest, ScheduleAutoPanFrame, ScheduleAutoPanFrameRequest, ScrollCanvas, ScrollCanvasRequest, 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, StartConnectionRedraw, StartConnectionRedrawRequest, StartConnectionWorkerRedraw, StartConnectionWorkerRedrawRequest, StopAutoPan, StopAutoPanRequest, StopCollisionResolver, UnmarkConnectableConnectors, UnmarkConnectableConnectorsRequest, UnregisterFCacheConnector, UnregisterFCacheConnectorRequest, UnregisterFCacheNode, UnregisterFCacheNodeRequest, UpdateFCacheRectByElement, UpdateFCacheRectByElementRequest, UpdateItemAndChildrenLayers, UpdateItemAndChildrenLayersRequest, UpdateNodeWhenStateOrSizeChanged, UpdateNodeWhenStateOrSizeChangedRequest, UpdateScale, UpdateScaleRequest, WaitForConnectionsRendered, WaitForConnectionsRenderedRequest, XRangeSelectionStrategy, afterNextPaint, buildConnectionAnchors, buildCornerMidPointsAndApplyOffsets, calculateAutoPanAxisDelta, calculateAutoPanDelta, calculateCenterBetweenPoints, calculateCornerApex, calculateCurveCandidates, calculateDifferenceAfterRotation, calculateMagneticGuides, calculateMagneticRects, calculatePointerInFlow, calculatePolylineCandidates, calculatePositionAfterRotation, calculateSmoothControlPoint, castToConnectorType, coerceMarkerType, computeEdgeDeltas, createConnectionDomIdentifier, createConnectionSelectionDomIdentifier, createConnectionWorkerUrl, createGradientDomIdentifier, createGradientDomUrl, createMultiCubicPath, createSVGElement, createSegmentLinePath, cubicBezierAtT, debounceAnimationFrame, debounceMicrotask, debounceTime, defaultEventTrigger, determineSide, expandRectByOverflow, fDiagnosticMessage, fInstanceKey, fProvideCache, fSuppressDevWarnings, fWarnOnce, filterConnectableTargets, findExistingWaypoint, findNodeOrGroupContaining, findSourceConnector, findSpatialNeighbor, findTargetConnector, findWaypointCandidate, fixedCenterBehavior, fixedOutboundBehavior, floatingBehavior, getAllSourceConnectors, getAllTargetConnectors, getExternalItemHost, infinityMinMax, injectFlowState, isCalculateMode, isConnectionWorkerRuntimeSupported, isConnector, isDragBlocker, isDragExternalItemHandler, isDragHandleEnd, isDragHandleStart, isDragMinimapHandler, isDragNodeHandler, isExternalItem, isFDevMode, isMobile, isNode, isNodeOutlet, isNodeOutput, isOnFlowBackground, isOutletConnector, isPointerInsidePoint, isPointerInsideStartOrEndDragHandles, isResizeNodeHandler, isRotateHandle, isRotateNodeHandler, isSourceConnector, isTargetConnector, isValidEventTrigger, mergeA11yConfig, mergeControlSchemeConfig, mergeFCanvasConfig, mergeFlowStateConfig, mergeLayoutNodes, mergePointChains, mergeReflowConfig, middleButtonEventTrigger, mixinChangeSelection, mixinChangeVisibility, normalizeFlowLayoutData, normalizePolyline, notifyOnStart, pickWaypoint, primaryButtonEventTrigger, provideFFlow, provideFLayout, rebaseAutoPanPointerDownPosition, rectFromPoint, requireSourceConnector, requireTargetConnector, resolveAutoPanMode, resolveConnectionWorkerRuntime, resolveLayerOrder, revokeConnectionWorkerUrl, sampleCubicBezierUniform, sampleMultiCubicUniform, stringAttribute, takeOne, transitionEnd, withA11y, withConnectionFlow, withControlScheme, withFCanvas, withFlowState, withReflowOnResize, withinSnapThreshold };
24853
+ export { AddCanvasToStore, AddCanvasToStoreRequest, AddConnectionForCreateToStore, AddConnectionForCreateToStoreRequest, AddConnectionMarkerToStore, AddConnectionMarkerToStoreRequest, AddConnectionToStore, AddConnectionToStoreRequest, AddConnectorToStore, AddConnectorToStoreRequest, AddDndToStore, AddDndToStoreRequest, AddFlowToStore, AddFlowToStoreRequest, AddNodeToStore, AddNodeToStoreRequest, AddPatternToBackground, AddPatternToBackgroundRequest, AddSnapConnectionToStore, AddSnapConnectionToStoreRequest, ApplyChildResizeConstraints, ApplyChildResizeConstraintsRequest, ApplyConnectionRender, ApplyConnectionRenderRequest, ApplyConnectionWorkerResult, ApplyConnectionWorkerResultRequest, ApplyParentResizeConstraints, ApplyParentResizeConstraintsRequest, AttachDragNodeHandlerFromSelection, AttachDragNodeHandlerFromSelectionRequest, AttachResizeConnectionDragHandlersToNode, AttachResizeConnectionDragHandlersToNodeRequest, AttachSoftParentConnectionDragHandlersToNode, AttachSoftParentConnectionDragHandlersToNodeRequest, AttachSourceConnectionDragHandlersToNode, AttachSourceConnectionDragHandlersToNodeRequest, AttachTargetConnectionDragHandlersToNode, AttachTargetConnectionDragHandlersToNodeRequest, BuildConnectionLine, BuildConnectionLineRequest, BuildConnectionWorkerBatch, BuildConnectionWorkerBatchRequest, BuildConnectionWorkerPayloadItem, BuildConnectionWorkerPayloadItemRequest, 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, CalculateConnectionsState, CalculateConnectionsStateRequest, 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, CenterBasedDeltaCalculator, CenterGroupOrNode, CenterGroupOrNodeRequest, CenterOfMassSelectionStrategy, ChainPushCollisionResolver, ClearSelection, ClearSelectionRequest, CompleteConnectionRedraw, CompleteConnectionRedrawRequest, ConnectableSidesScheduler, ConnectedSubgraphScopeFilter, ConnectionBehaviourBuilder, ConnectionBehaviourBuilderRequest, ConnectionContentLayoutEngine, ConnectionLineBuilder, ConnectionLineBuilderRequest, ConnectionRedrawState, ConnectionWorkerState, CreateConnectionCreateDragHandler, CreateConnectionCreateDragHandlerRequest, CreateConnectionFinalize, CreateConnectionFinalizeRequest, CreateConnectionFromConnectorPreparation, CreateConnectionFromConnectorPreparationRequest, CreateConnectionFromOutletPreparation, CreateConnectionFromOutletPreparationRequest, CreateConnectionFromOutputPreparation, CreateConnectionFromOutputPreparationRequest, CreateConnectionHandler, CreateConnectionMarkers, CreateConnectionMarkersRequest, CreateConnectionPreparation, CreateConnectionPreparationRequest, CreateDragNodeHandler, CreateDragNodeHandlerRequest, CreateDragNodeHierarchy, CreateDragNodeHierarchyRequest, DRAG_AND_DROP_COMMON_PROVIDERS, DRAG_AUTO_PAN_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, DownstreamConnectionsSelectionStrategy, 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, ECanvasRedrawContext, EFCanvasLayer, EFConnectableSide, EFConnectionBehavior, EFConnectionConnectableSide, EFConnectionType, EFFlowFeatureKind, EFLayoutDirection, EFLayoutMode, EFMarkerType, EFReflowAxis, EFReflowCollision, EFReflowDeltaSource, EFReflowMode, EFReflowScope, EFResizeHandleType, EFZoomDirection, EMPTY_REFLOW_PLAN, EdgeBasedDeltaCalculator, EmitConnectionsChanges, EmitConnectionsChangesRequest, EmitEndDragSequenceEvent, EmitEndDragSequenceEventRequest, EmitSelectionChangeEvent, EmitSelectionChangeEventRequest, EmitStartDragSequenceEvent, EmitStartDragSequenceEventRequest, EnsureConnectionWorker, EnsureConnectionWorkerRequest, EventExtensions, ExternalRectConstraint, FA11yAnnouncer, FA11yController, FAutoPan, FAutoPanBase, FBackgroundBase, FBackgroundComponent, FCache, FCacheConnector, FCacheConnectorKeyFactory, FCacheNode, FCanvasBase, FCanvasChangeEvent, FCanvasComponent, FChannel, FChannelHub, FCirclePatternComponent, FClickConnectFlow, FComponentsStore, FConnectionBase, FConnectionComponent, FConnectionComponentsParent, FConnectionContent, FConnectionContentBase, FConnectionDragHandleBase, FConnectionDragHandleEnd, FConnectionDragHandleStart, FConnectionForCreateComponent, FConnectionGradient, FConnectionGradientBase, FConnectionGradientRenderer, FConnectionGradientRendererBase, FConnectionMarker, FConnectionMarkerArrow, FConnectionMarkerBase, FConnectionMarkerCircle, FConnectionMarkerRegistry, FConnectionPath, FConnectionPathBase, FConnectionRegistry, FConnectionSelection, FConnectionSelectionBase, FConnectionWaypoints, FConnectionWaypointsBase, FConnectionWaypointsChangedEvent, FConnectorBase, FConnectorDirective, FConnectorRegistry, FControlSchemeController, FCreateConnectionEvent, FCreateConnectionSession, FCreateNodeEvent, FDeleteSelectedEvent, FDragBlockerDirective, FDragExternalItemStartEventData, FDragHandleDirective, FDragHandlerResult, FDragNodeStartEventData, FDragStartedEvent, FDraggableBase, FDraggableDataContext, FDraggableDirective, FDropToGroupEvent, FExternalItem, FExternalItemBase, FExternalItemPlaceholder, FExternalItemPreview, FExternalItemService, FFlowBase, FFlowComponent, FFlowModule, FFlowState, FFlowStateController, FGroupDirective, FIdRegistryBase, FLayoutController, FLayoutEngine, 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, FReflowBaselineTracker, FReflowController, FReflowCycleGuard, FReflowIgnore, FReflowIgnoreRegistry, FReflowOrchestrator, FReflowPlanner, FResizeChannel, FResizeHandleDirective, FResizeNodeStartEventData, FRotateHandleDirective, FRotateNodeStartEventData, FSelectionArea, FSelectionAreaBase, FSelectionChangeEvent, FSingleRegistryBase, FSnapConnectionComponent, FSnapTargetChangeEvent, FSourceConnectorBase, FVirtualFor, FZoomBase, FZoomDirective, F_A11Y_CONFIG, F_AUTO_PAN_PROVIDERS, F_BACKGROUND, F_BACKGROUND_FEATURES, F_BACKGROUND_PATTERN, F_BACKGROUND_PROVIDERS, F_CACHE_FEATURES, F_CACHE_OPTIONS, F_CANVAS, F_CANVAS_CONFIG, 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_FLOW, F_CONNECTION_GRADIENT, F_CONNECTION_IMPORTS_EXPORTS, F_CONNECTION_MARKER, F_CONNECTION_PATH, F_CONNECTION_PROVIDERS, F_CONNECTION_SELECTION, F_CONNECTION_WAYPOINTS, F_CONNECTOR, F_CONNECTORS_FEATURES, F_CONNECTORS_PROVIDERS, F_CONTROL_SCHEME_CONFIG, F_CSS_CLASS, F_DEFAULT_A11Y_CONFIG, F_DEFAULT_A11Y_KEYS, F_DEFAULT_A11Y_MESSAGES, F_DEFAULT_CONTROL_SCHEME, F_DEFAULT_LAYER_ORDER, F_DRAGGABLE_FEATURES, F_DRAGGABLE_PROVIDERS, F_DRAG_SELECT_CONTROL_SCHEME, F_EXTERNAL_ITEM, F_EXTERNAL_ITEM_PROVIDERS, F_FLOW, F_FLOW_CONFIG, F_FLOW_FEATURES, F_FLOW_PROVIDERS, F_FLOW_STATE_CONFIG, F_LAYOUT, F_LAYOUT_OPTIONS, 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_REFLOW_CONFIG, F_REFLOW_PROVIDERS, F_SCROLL_PAN_CONTROL_SCHEME, 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, GlobalScopeFilter, GridSnapper, GroupScopeFilter, HandleConnectionWorkerMessage, HandleConnectionWorkerMessageRequest, IMouseEvent, INSTANCES, IPointerEvent, IPointerUpEvent, ITouchDownEvent, ITouchMoveEvent, InitializeDragSequence, InitializeDragSequenceRequest, InputCanvasPosition, InputCanvasPositionRequest, InputCanvasScale, InputCanvasScaleRequest, InvalidateFCacheNode, InvalidateFCacheNodeRequest, IsArrayHasParentNode, IsArrayHasParentNodeRequest, IsConnectionRedrawCurrent, IsConnectionRedrawCurrentRequest, 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, MarkConnectionConnectorsAsConnected, MarkConnectionConnectorsAsConnectedRequest, MinimapCalculateViewRect, MinimapCalculateViewRectRequest, MinimapCalculateViewport, MinimapCalculateViewportRequest, MinimapDrawNodes, MinimapDrawNodesRequest, MinimapNodeRects, MoveFrontElementsBeforeTargetElement, MoveFrontElementsBeforeTargetElementRequest, NODE_PROVIDERS, NODE_RESIZE_PROVIDERS, NODE_ROTATE_PROVIDERS, NotifyFullRendered, NotifyFullRenderedRequest, NotifyNodesRendered, NotifyNodesRenderedRequest, NotifyTransformChanged, NotifyTransformChangedRequest, OnPointerMove, OnPointerMoveRequest, PINCH_TO_ZOOM_PROVIDERS, PinchToZoomFinalize, PinchToZoomFinalizeRequest, PinchToZoomHandler, PinchToZoomPreparation, PinchToZoomPreparationRequest, Polyline, PolylineContentAlign, PolylineContentPlace, PolylineSampler, PrepareDragSequence, PrepareDragSequenceRequest, PreventDefaultIsExternalItem, PreventDefaultIsExternalItemRequest, QueueConnectionRedraw, QueueConnectionRedrawRequest, QueueConnectionRedrawState, 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, RenderConnection, RenderConnectionFromGeometry, RenderConnectionFromGeometryRequest, RenderConnectionRequest, RenderConnectionWithLine, RenderConnectionWithLineRequest, RenderLifecycleState, ResetConnectionWorkerRuntime, ResetConnectionWorkerRuntimeRequest, ResetRenderLifecycle, ResetRenderLifecycleRequest, ResetScale, ResetScaleAndCenter, ResetScaleAndCenterRequest, ResetScaleRequest, ResetZoom, ResetZoomRequest, ResizeNodeConnectionBothSidesHandler, ResizeNodeConnectionHandlerBase, ResizeNodeConnectionSourceHandler, ResizeNodeConnectionTargetHandler, ResizeNodeFinalize, ResizeNodeFinalizeRequest, ResizeNodeHandler, ResizeNodePreparation, ResizeNodePreparationRequest, ResolveConnectableOutputForOutlet, ResolveConnectableOutputForOutletRequest, ResolveConnectionEndpointRect, ResolveConnectionEndpointRectRequest, ResolveConnectionEndpointRotationContext, ResolveConnectionEndpointRotationContextRequest, ResolveConnectionEndpoints, ResolveConnectionEndpointsRequest, ResolveConnectionGeometry, ResolveConnectionGeometryRequest, RotateNodeFinalize, RotateNodeFinalizeRequest, RotateNodeHandler, RotateNodePreparation, RotateNodePreparationRequest, RunAutoPanFrame, RunAutoPanFrameRequest, RunConnectionRedrawSlice, RunConnectionRedrawSliceRequest, RunConnectionWorker, RunConnectionWorkerBatch, RunConnectionWorkerBatchRequest, RunConnectionWorkerRequest, RunDevDiagnostics, RunDevDiagnosticsRequest, ScheduleAutoPanFrame, ScheduleAutoPanFrameRequest, ScrollCanvas, ScrollCanvasRequest, 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, StartConnectionRedraw, StartConnectionRedrawRequest, StartConnectionWorkerRedraw, StartConnectionWorkerRedrawRequest, StopAutoPan, StopAutoPanRequest, StopCollisionResolver, UnmarkConnectableConnectors, UnmarkConnectableConnectorsRequest, UnregisterFCacheConnector, UnregisterFCacheConnectorRequest, UnregisterFCacheNode, UnregisterFCacheNodeRequest, UpdateFCacheRectByElement, UpdateFCacheRectByElementRequest, UpdateItemAndChildrenLayers, UpdateItemAndChildrenLayersRequest, UpdateNodeWhenStateOrSizeChanged, UpdateNodeWhenStateOrSizeChangedRequest, UpdateScale, UpdateScaleRequest, WaitForConnectionsRendered, WaitForConnectionsRenderedRequest, XRangeSelectionStrategy, afterNextPaint, buildConnectionAnchors, buildCornerMidPointsAndApplyOffsets, calculateAutoPanAxisDelta, calculateAutoPanDelta, calculateCenterBetweenPoints, calculateCornerApex, calculateCurveCandidates, calculateDifferenceAfterRotation, calculateMagneticGuides, calculateMagneticRects, calculatePointerInFlow, calculatePolylineCandidates, calculatePositionAfterRotation, calculateSmoothControlPoint, castToConnectorType, coerceMarkerType, computeEdgeDeltas, createConnectionDomIdentifier, createConnectionSelectionDomIdentifier, createConnectionWorkerUrl, createGradientDomIdentifier, createGradientDomUrl, createMultiCubicPath, createSVGElement, createSegmentLinePath, cubicBezierAtT, debounceAnimationFrame, debounceMicrotask, debounceTime, defaultEventTrigger, determineSide, expandRectByOverflow, fDiagnosticMessage, fInstanceKey, fProvideCache, fSuppressDevWarnings, fWarnOnce, filterConnectableTargets, findExistingWaypoint, findNodeOrGroupContaining, findSourceConnector, findSpatialNeighbor, findTargetConnector, findWaypointCandidate, fixedCenterBehavior, fixedOutboundBehavior, floatingBehavior, getAllSourceConnectors, getAllTargetConnectors, getExternalItemHost, infinityMinMax, injectFlowState, isCalculateMode, isConnectionWorkerRuntimeSupported, isConnector, isDragBlocker, isDragExternalItemHandler, isDragHandleEnd, isDragHandleStart, isDragMinimapHandler, isDragNodeHandler, isExternalItem, isFDevMode, isMobile, isNode, isNodeOutlet, isNodeOutput, isOnFlowBackground, isOutletConnector, isPointerInsidePoint, isPointerInsideStartOrEndDragHandles, isResizeNodeHandler, isRotateHandle, isRotateNodeHandler, isSourceConnector, isTargetConnector, isValidEventTrigger, mergeA11yConfig, mergeControlSchemeConfig, mergeFCanvasConfig, mergeFlowStateConfig, mergeLayoutNodes, mergePointChains, mergeReflowConfig, middleButtonEventTrigger, mixinChangeSelection, mixinChangeVisibility, normalizeFlowLayoutData, normalizePolyline, notifyOnStart, pickWaypoint, primaryButtonEventTrigger, provideFFlow, provideFLayout, rebaseAutoPanPointerDownPosition, rectFromPoint, requireSourceConnector, requireTargetConnector, resolveAutoPanMode, resolveConnectionWorkerRuntime, resolveLayerOrder, revokeConnectionWorkerUrl, sampleCubicBezierUniform, sampleMultiCubicUniform, stringAttribute, takeOne, transitionEnd, withA11y, withConnectionFlow, withControlScheme, withFCanvas, withFlowState, withReflowOnResize, withinSnapThreshold };
24720
24854
  //# sourceMappingURL=foblex-flow.mjs.map