@foblex/flow 17.0.5 → 17.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/domain/f-connection/find-closest-input/find-closest-input.execution.d.ts +11 -0
  2. package/domain/f-connection/{find-closest-input-using-snap-threshold/find-closest-input-using-snap-threshold.request.d.ts → find-closest-input/find-closest-input.request.d.ts} +2 -3
  3. package/domain/f-connection/find-closest-input/i-closest-input.d.ts +7 -0
  4. package/domain/f-connection/find-closest-input/index.d.ts +3 -0
  5. package/domain/f-connection/get-connector-with-rect/get-connector-with-rect.execution.d.ts +2 -3
  6. package/domain/f-connection/index.d.ts +1 -1
  7. package/domain/f-connection/providers.d.ts +2 -2
  8. package/domain/f-draggable/providers.d.ts +1 -1
  9. package/{f-draggable/domain → domain/f-node}/get-parent-nodes/get-parent-nodes.execution.d.ts +2 -4
  10. package/domain/f-node/index.d.ts +2 -0
  11. package/domain/f-node/providers.d.ts +3 -1
  12. package/domain/get-normalized-element-rect/get-normalized-element-rect-request.d.ts +2 -1
  13. package/domain/providers.d.ts +1 -1
  14. package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/calculate-connection-line-by-behavior.request.mjs +1 -1
  15. package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/fixed-center-behavior.mjs +5 -3
  16. package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/fixed-outbound-behavior.mjs +19 -29
  17. package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/floating-behavior.mjs +6 -3
  18. package/esm2022/domain/f-connection/find-closest-input/find-closest-input.execution.mjs +42 -0
  19. package/esm2022/domain/f-connection/find-closest-input/find-closest-input.request.mjs +9 -0
  20. package/esm2022/domain/f-connection/find-closest-input/i-closest-input.mjs +2 -0
  21. package/esm2022/domain/f-connection/find-closest-input/index.mjs +4 -0
  22. package/esm2022/domain/f-connection/get-connector-with-rect/get-connector-with-rect-request.mjs +1 -1
  23. package/esm2022/domain/f-connection/get-connector-with-rect/get-connector-with-rect.execution.mjs +7 -11
  24. package/esm2022/domain/f-connection/index.mjs +2 -2
  25. package/esm2022/domain/f-connection/providers.mjs +3 -3
  26. package/esm2022/domain/f-connection/redraw-connections/redraw-connections.execution.mjs +2 -2
  27. package/esm2022/domain/f-node/get-node-padding/get-node-padding.execution.mjs +34 -0
  28. package/esm2022/domain/f-node/get-node-padding/get-node-padding.request.mjs +9 -0
  29. package/esm2022/domain/f-node/get-node-padding/index.mjs +3 -0
  30. package/esm2022/domain/f-node/get-parent-nodes/get-parent-nodes.execution.mjs +34 -0
  31. package/esm2022/domain/f-node/get-parent-nodes/get-parent-nodes.request.mjs +7 -0
  32. package/esm2022/domain/f-node/get-parent-nodes/index.mjs +3 -0
  33. package/esm2022/domain/f-node/index.mjs +3 -1
  34. package/esm2022/domain/f-node/providers.mjs +5 -1
  35. package/esm2022/domain/f-selection/get-can-be-selected-items/get-can-be-selected-items.execution.mjs +3 -3
  36. package/esm2022/domain/get-normalized-element-rect/get-normalized-element-rect-request.mjs +4 -2
  37. package/esm2022/domain/get-normalized-element-rect/get-normalized-element-rect.execution.mjs +5 -5
  38. package/esm2022/f-connection/f-connection/f-connection.component.mjs +6 -5
  39. package/esm2022/f-draggable/connections/create-connection/create-connection.drag-handler.mjs +33 -19
  40. package/esm2022/f-draggable/connections/reassign-connection/reassign-connection.drag-handler.mjs +29 -21
  41. package/esm2022/f-draggable/domain/get-normalized-parent-node-rect/get-normalized-parent-node-rect.execution.mjs +6 -6
  42. package/esm2022/f-draggable/domain/index.mjs +1 -4
  43. package/esm2022/f-draggable/domain/is-array-has-parent-node/is-array-has-parent-node.execution.mjs +2 -2
  44. package/esm2022/f-draggable/domain/is-connection-under-node/is-connection-under-node.execution.mjs +2 -2
  45. package/esm2022/f-draggable/domain/is-connection-under-node/is-connection-under-node.request.mjs +1 -1
  46. package/esm2022/f-draggable/domain/providers.mjs +1 -7
  47. package/esm2022/f-draggable/f-draggable-base.mjs +1 -1
  48. package/esm2022/f-draggable/f-draggable.directive.mjs +8 -2
  49. package/esm2022/f-draggable/node/connection-base-drag-handler.mjs +2 -2
  50. package/esm2022/f-draggable/node/connection-source.drag-handler.mjs +2 -2
  51. package/esm2022/f-draggable/node/connection-target.drag-handler.mjs +2 -2
  52. package/esm2022/f-draggable/node/connection.drag-handler.mjs +2 -2
  53. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/create-move-nodes-drag-model-from-selection.execution.mjs +32 -35
  54. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/get-node-move-restrictions/get-node-move-restrictions.execution.mjs +12 -15
  55. package/esm2022/f-draggable/node/node-drag-to-parent-preparation/node-drag-to-parent-preparation.execution.mjs +15 -8
  56. package/esm2022/f-draggable/node/node-drag-to-parent.drag-handler.mjs +32 -17
  57. package/esm2022/f-draggable/node/node-move-finalize/node-move-finalize.execution.mjs +37 -31
  58. package/esm2022/f-draggable/node/node-move-preparation/node-move-preparation.execution.mjs +41 -43
  59. package/esm2022/f-draggable/node/node-move-preparation/node-move-preparation.validator.mjs +19 -23
  60. package/esm2022/f-draggable/node/node.drag-handler.mjs +25 -10
  61. package/esm2022/f-draggable/node-resize/get-node-resize-restrictions/get-node-resize-restrictions.execution.mjs +3 -2
  62. package/esm2022/f-draggable/node-resize/get-normalized-children-nodes-rect/get-normalized-children-nodes-rect.execution.mjs +4 -5
  63. package/esm2022/f-draggable/node-resize/node-resize.drag-handler.mjs +3 -3
  64. package/esm2022/f-external-item/domain/external-item-finalize/external-item-finalize.execution.mjs +2 -2
  65. package/esm2022/f-flow.module.mjs +1 -1
  66. package/esm2022/f-line-alignment/domain/index.mjs +1 -2
  67. package/esm2022/f-line-alignment/f-line-alignment.component.mjs +17 -12
  68. package/esm2022/f-node/f-drag-handle.directive.mjs +22 -0
  69. package/esm2022/f-node/index.mjs +3 -3
  70. package/esm2022/f-node/is-node.mjs +4 -0
  71. package/esm2022/f-node/providers.mjs +2 -2
  72. package/f-backgroud/providers.d.ts +1 -1
  73. package/f-connection/f-connection/f-connection.component.d.ts +4 -2
  74. package/f-connection/providers.d.ts +1 -1
  75. package/f-connectors/providers.d.ts +1 -1
  76. package/f-draggable/connections/create-connection/create-connection.drag-handler.d.ts +8 -4
  77. package/f-draggable/connections/providers.d.ts +1 -1
  78. package/f-draggable/connections/reassign-connection/reassign-connection.drag-handler.d.ts +7 -4
  79. package/f-draggable/domain/get-normalized-parent-node-rect/get-normalized-parent-node-rect.execution.d.ts +1 -1
  80. package/f-draggable/domain/index.d.ts +0 -3
  81. package/f-draggable/domain/providers.d.ts +1 -4
  82. package/f-draggable/f-draggable-base.d.ts +2 -0
  83. package/f-draggable/f-draggable.directive.d.ts +4 -2
  84. package/f-draggable/node/connection-base-drag-handler.d.ts +1 -1
  85. package/f-draggable/node/create-move-nodes-drag-model-from-selection/create-move-nodes-drag-model-from-selection.execution.d.ts +7 -9
  86. package/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/get-node-move-restrictions/get-node-move-restrictions.execution.d.ts +3 -4
  87. package/f-draggable/node/create-move-nodes-drag-model-from-selection/providers.d.ts +1 -1
  88. package/f-draggable/node/node-drag-to-parent-preparation/node-drag-to-parent-preparation.execution.d.ts +4 -3
  89. package/f-draggable/node/node-drag-to-parent.drag-handler.d.ts +9 -4
  90. package/f-draggable/node/node-move-finalize/node-move-finalize.execution.d.ts +11 -11
  91. package/f-draggable/node/node-move-preparation/node-move-preparation.execution.d.ts +11 -14
  92. package/f-draggable/node/node-move-preparation/node-move-preparation.validator.d.ts +6 -9
  93. package/f-draggable/node/node.drag-handler.d.ts +9 -5
  94. package/f-draggable/node/providers.d.ts +1 -1
  95. package/f-draggable/providers.d.ts +1 -1
  96. package/f-flow.module.d.ts +1 -1
  97. package/f-line-alignment/domain/index.d.ts +0 -1
  98. package/f-line-alignment/f-line-alignment.component.d.ts +2 -1
  99. package/f-minimap/domain/providers.d.ts +1 -1
  100. package/f-node/{f-drag-handle/f-drag-handle.directive.d.ts → f-drag-handle.directive.d.ts} +1 -1
  101. package/f-node/index.d.ts +2 -2
  102. package/f-node/providers.d.ts +2 -2
  103. package/f-storage/providers.d.ts +1 -1
  104. package/fesm2022/foblex-flow.mjs +409 -482
  105. package/fesm2022/foblex-flow.mjs.map +1 -1
  106. package/package.json +3 -3
  107. package/domain/f-connection/find-closest-input-using-snap-threshold/find-closest-input-using-snap-threshold.execution.d.ts +0 -11
  108. package/domain/f-connection/find-closest-input-using-snap-threshold/index.d.ts +0 -2
  109. package/esm2022/domain/f-connection/find-closest-input-using-snap-threshold/find-closest-input-using-snap-threshold.execution.mjs +0 -39
  110. package/esm2022/domain/f-connection/find-closest-input-using-snap-threshold/find-closest-input-using-snap-threshold.request.mjs +0 -11
  111. package/esm2022/domain/f-connection/find-closest-input-using-snap-threshold/index.mjs +0 -3
  112. package/esm2022/f-draggable/domain/get-node-padding/get-node-padding.execution.mjs +0 -34
  113. package/esm2022/f-draggable/domain/get-node-padding/get-node-padding.request.mjs +0 -9
  114. package/esm2022/f-draggable/domain/get-node-padding/index.mjs +0 -3
  115. package/esm2022/f-draggable/domain/get-normalized-node-rect/get-normalized-node-rect.execution.mjs +0 -30
  116. package/esm2022/f-draggable/domain/get-normalized-node-rect/get-normalized-node-rect.request.mjs +0 -7
  117. package/esm2022/f-draggable/domain/get-normalized-node-rect/index.mjs +0 -3
  118. package/esm2022/f-draggable/domain/get-parent-nodes/get-parent-nodes.execution.mjs +0 -37
  119. package/esm2022/f-draggable/domain/get-parent-nodes/get-parent-nodes.request.mjs +0 -7
  120. package/esm2022/f-draggable/domain/get-parent-nodes/index.mjs +0 -3
  121. package/esm2022/f-line-alignment/domain/nearest-coordinate.mjs +0 -104
  122. package/esm2022/f-node/domain/index.mjs +0 -2
  123. package/esm2022/f-node/domain/is-node.mjs +0 -4
  124. package/esm2022/f-node/f-drag-handle/f-drag-handle.directive.mjs +0 -22
  125. package/esm2022/f-node/f-drag-handle/index.mjs +0 -2
  126. package/f-draggable/domain/get-normalized-node-rect/get-normalized-node-rect.execution.d.ts +0 -13
  127. package/f-draggable/domain/get-normalized-node-rect/get-normalized-node-rect.request.d.ts +0 -5
  128. package/f-draggable/domain/get-normalized-node-rect/index.d.ts +0 -2
  129. package/f-line-alignment/domain/nearest-coordinate.d.ts +0 -27
  130. package/f-node/domain/index.d.ts +0 -1
  131. package/f-node/f-drag-handle/index.d.ts +0 -1
  132. /package/{f-draggable/domain → domain/f-node}/get-node-padding/get-node-padding.execution.d.ts +0 -0
  133. /package/{f-draggable/domain → domain/f-node}/get-node-padding/get-node-padding.request.d.ts +0 -0
  134. /package/{f-draggable/domain → domain/f-node}/get-node-padding/index.d.ts +0 -0
  135. /package/{f-draggable/domain → domain/f-node}/get-parent-nodes/get-parent-nodes.request.d.ts +0 -0
  136. /package/{f-draggable/domain → domain/f-node}/get-parent-nodes/index.d.ts +0 -0
  137. /package/f-node/{domain/is-node.d.ts → is-node.d.ts} +0 -0
@@ -1,6 +1,6 @@
1
1
  import { Component, inject, Input } from '@angular/core';
2
- import { RectExtensions, SizeExtensions } from '@foblex/2d';
3
- import { LineService, NearestCoordinateFinder } from './domain';
2
+ import { findClosestAlignment, RectExtensions, SizeExtensions } from '@foblex/2d';
3
+ import { LineService } from './domain';
4
4
  import { F_LINE_ALIGNMENT, FLineAlignmentBase } from './f-line-alignment-base';
5
5
  import { GetCanvasRequest, GetNormalizedElementRectRequest, GetFlowHostElementRequest } from '../domain';
6
6
  import { FMediator } from '@foblex/mediator';
@@ -10,6 +10,7 @@ import * as i2 from "@foblex/platform";
10
10
  export class FLineAlignmentComponent extends FLineAlignmentBase {
11
11
  elementReference;
12
12
  fDraggableDataContext;
13
+ DEBOUNCE_TIME = 10;
13
14
  fAlignThreshold = 10;
14
15
  get hostElement() {
15
16
  return this.elementReference.nativeElement;
@@ -20,12 +21,10 @@ export class FLineAlignmentComponent extends FLineAlignmentBase {
20
21
  rects = [];
21
22
  _fMediator = inject(FMediator);
22
23
  _fCanvas;
24
+ _debounceTimer = null;
23
25
  get _transform() {
24
26
  return this._fCanvas.transform;
25
27
  }
26
- get _fFlowHostElement() {
27
- return this._fMediator.send(new GetFlowHostElementRequest());
28
- }
29
28
  constructor(elementReference, fDraggableDataContext, fBrowser) {
30
29
  super();
31
30
  this.elementReference = elementReference;
@@ -37,21 +36,24 @@ export class FLineAlignmentComponent extends FLineAlignmentBase {
37
36
  this.fDraggableDataContext.fLineAlignment = this;
38
37
  }
39
38
  initialize(allNodes, currentNodes) {
40
- this.size = this._fFlowHostElement.getBoundingClientRect();
39
+ this.size = this._fMediator.send(new GetFlowHostElementRequest()).getBoundingClientRect();
41
40
  this.rects = [];
42
41
  const draggedNodeRects = currentNodes.map((x) => {
43
- return this._fMediator.send(new GetNormalizedElementRectRequest(x.hostElement));
42
+ return this._fMediator.execute(new GetNormalizedElementRectRequest(x.hostElement, false));
44
43
  });
45
44
  this.draggedNodeRect = RectExtensions.union(draggedNodeRects) || RectExtensions.initialize();
46
45
  const allNodesExcludeCurrents = allNodes.filter((x) => {
47
46
  return !currentNodes.includes(x);
48
47
  });
49
48
  this.rects = allNodesExcludeCurrents.map((x) => {
50
- return this._fMediator.send(new GetNormalizedElementRectRequest(x.hostElement));
49
+ return this._fMediator.execute(new GetNormalizedElementRectRequest(x.hostElement, false));
51
50
  });
52
51
  }
53
52
  handle(difference) {
54
- this.drawIntersectingLines(difference);
53
+ if (this._debounceTimer) {
54
+ clearTimeout(this._debounceTimer);
55
+ }
56
+ this._debounceTimer = setTimeout(() => this.drawIntersectingLines(difference), this.DEBOUNCE_TIME);
55
57
  }
56
58
  drawIntersectingLines(difference) {
57
59
  const intersect = this.findNearestCoordinate(difference);
@@ -70,12 +72,15 @@ export class FLineAlignmentComponent extends FLineAlignmentBase {
70
72
  }
71
73
  findNearestCoordinate(difference) {
72
74
  const rect = RectExtensions.addPoint(this.draggedNodeRect, difference);
73
- const finder = new NearestCoordinateFinder(this.rects, rect, this.fAlignThreshold);
74
- return { xResult: finder.findNearestCoordinateByX(), yResult: finder.findNearestCoordinateByY() };
75
+ return findClosestAlignment(this.rects, rect, this.fAlignThreshold);
75
76
  }
76
77
  complete() {
77
78
  this.lineService.hideVerticalLine();
78
79
  this.lineService.hideHorizontalLine();
80
+ if (this._debounceTimer) {
81
+ clearTimeout(this._debounceTimer);
82
+ this._debounceTimer = null;
83
+ }
79
84
  }
80
85
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FLineAlignmentComponent, deps: [{ token: i0.ElementRef }, { token: i1.FDraggableDataContext }, { token: i2.BrowserService }], target: i0.ɵɵFactoryTarget.Component });
81
86
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: FLineAlignmentComponent, selector: "f-line-alignment", inputs: { fAlignThreshold: "fAlignThreshold" }, host: { classAttribute: "f-line-alignment f-component" }, providers: [
@@ -92,4 +97,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
92
97
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.FDraggableDataContext }, { type: i2.BrowserService }], propDecorators: { fAlignThreshold: [{
93
98
  type: Input
94
99
  }] } });
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1saW5lLWFsaWdubWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtbGluZS1hbGlnbm1lbnQvZi1saW5lLWFsaWdubWVudC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQWMsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQXlDLGNBQWMsRUFBRSxjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDbkcsT0FBTyxFQUF3QixXQUFXLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHL0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLCtCQUErQixFQUFFLHlCQUF5QixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7OztBQWdCN0MsTUFBTSxPQUFPLHVCQUF3QixTQUFRLGtCQUFrQjtJQThCbkQ7SUFDQTtJQTVCSCxlQUFlLEdBQVcsRUFBRSxDQUFDO0lBRXBDLElBQW9CLFdBQVc7UUFDN0IsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDO0lBQzdDLENBQUM7SUFFTyxXQUFXLENBQWM7SUFFekIsSUFBSSxHQUFVLGNBQWMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUUxQyxlQUFlLEdBQVUsY0FBYyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBRXJELEtBQUssR0FBWSxFQUFFLENBQUM7SUFFcEIsVUFBVSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUUvQixRQUFRLENBQTBCO0lBRTFDLElBQVksVUFBVTtRQUNwQixPQUFPLElBQUksQ0FBQyxRQUFTLENBQUMsU0FBUyxD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QyxrQkFBa0IsRUFBRSxDQUFDO1FBQ3hDLENBQUM7SUFDSCxDQUFDO0lBRU0scUJBQXFCLENBQUMsVUFBa0I7UUFDN0MsTUFBTSxJQUFJLEdBQUcsY0FBYyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZFLE1BQU0sTUFBTSxHQUFHLElBQUksdUJBQXVCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRW5GLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLHdCQUF3QixFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyx3QkFBd0IsRUFBRSxFQUFFLENBQUM7SUFDcEcsQ0FBQztJQUVlLFFBQVE7UUFDdEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUN4QyxDQUFDO3VHQXhGVSx1QkFBdUI7MkZBQXZCLHVCQUF1QixxSkFKdkI7WUFDVCxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsdUJBQXVCLEVBQUU7U0FDcEUsMkVBUlMsRUFBRTs7MkZBVUQsdUJBQXVCO2tCQVpuQyxTQUFTOytCQUNFLGtCQUFrQixZQUNsQixFQUFFLFlBRUYsWUFBWSxRQUNoQjt3QkFDSixPQUFPLEVBQUUsOEJBQThCO3FCQUN4QyxhQUNVO3dCQUNULEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcseUJBQXlCLEVBQUU7cUJBQ3BFO2dKQUtNLGVBQWU7c0JBRHJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIGluamVjdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElQb2ludCwgSVJlY3QsIElTaXplLCBJVHJhbnNmb3JtTW9kZWwsIFJlY3RFeHRlbnNpb25zLCBTaXplRXh0ZW5zaW9ucyB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgSUxpbmVBbGlnbm1lbnRSZXN1bHQsIExpbmVTZXJ2aWNlLCBOZWFyZXN0Q29vcmRpbmF0ZUZpbmRlciB9IGZyb20gJy4vZG9tYWluJztcbmltcG9ydCB7IEZfTElORV9BTElHTk1FTlQsIEZMaW5lQWxpZ25tZW50QmFzZSB9IGZyb20gJy4vZi1saW5lLWFsaWdubWVudC1iYXNlJztcbmltcG9ydCB7IEZEcmFnZ2FibGVEYXRhQ29udGV4dCB9IGZyb20gJy4uL2YtZHJhZ2dhYmxlJztcbmltcG9ydCB7IEZOb2RlQmFzZSB9IGZyb20gJy4uL2Ytbm9kZSc7XG5pbXBvcnQgeyBHZXRDYW52YXNSZXF1ZXN0LCBHZXROb3JtYWxpemVkRWxlbWVudFJlY3RSZXF1ZXN0LCBHZXRGbG93SG9zdEVsZW1lbnRSZXF1ZXN0IH0gZnJvbSAnLi4vZG9tYWluJztcbmltcG9ydCB7IEZNZWRpYXRvciB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgQnJvd3NlclNlcnZpY2UgfSBmcm9tICdAZm9ibGV4L3BsYXRmb3JtJztcbmltcG9ydCB7IEZDYW52YXNCYXNlIH0gZnJvbSAnLi4vZi1jYW52YXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiZi1saW5lLWFsaWdubWVudFwiLFxuICB0ZW1wbGF0ZTogXCJcIixcbiAgc3R5bGVVcmxzOiBbIFwiLi9mLWxpbmUtYWxpZ25tZW50LmNvbXBvbmVudC5zY3NzXCIgXSxcbiAgZXhwb3J0QXM6IFwiZkNvbXBvbmVudFwiLFxuICBob3N0OiB7XG4gICAgJ2NsYXNzJzogJ2YtbGluZS1hbGlnbm1lbnQgZi1jb21wb25lbnQnXG4gIH0sXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogRl9MSU5FX0FMSUdOTUVOVCwgdXNlRXhpc3Rpbmc6IEZMaW5lQWxpZ25tZW50Q29tcG9uZW50IH1cbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRkxpbmVBbGlnbm1lbnRDb21wb25lbnQgZXh0ZW5kcyBGTGluZUFsaWdubWVudEJhc2UgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZkFsaWduVGhyZXNob2xkOiBudW1iZXIgPSAxMDtcblxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IGhvc3RFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmZXJlbmNlLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBwcml2YXRlIGxpbmVTZXJ2aWNlOiBMaW5lU2VydmljZTtcblxuICBwcml2YXRlIHNpemU6IElTaXplID0gU2l6ZUV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgpO1xuXG4gIHByaXZhdGUgZHJhZ2dlZE5vZGVSZWN0OiBJUmVjdCA9IFJlY3RFeHRlbnNpb25zLmluaXRpYWxpemUoKTtcblxuICBwcml2YXRlIHJlY3RzOiBJUmVjdFtdID0gW107XG5cbiAgcHJpdmF0ZSBfZk1lZGlhdG9yID0gaW5qZWN0KEZNZWRpYXRvcik7XG5cbiAgcHJpdmF0ZSBfZkNhbnZhczogRkNhbnZhc0Jhc2UgfCB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSBnZXQgX3RyYW5zZm9ybSgpOiBJVHJhbnNmb3JtTW9kZWwge1xuICAgIHJldHVybiB0aGlzLl9mQ2FudmFzIS50cmFuc2Zvcm07XG4gIH1cblxuICBwcml2YXRlIGdldCBfZkZsb3dIb3N0RWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuX2ZNZWRpYXRvci5zZW5kPEhUTUxFbGVtZW50PihuZXcgR2V0Rmxvd0hvc3RFbGVtZW50UmVxdWVzdCgpKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudFJlZmVyZW5jZTogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgcHJpdmF0ZSBmRHJhZ2dhYmxlRGF0YUNvbnRleHQ6IEZEcmFnZ2FibGVEYXRhQ29udGV4dCxcbiAgICBmQnJvd3NlcjogQnJvd3NlclNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmxpbmVTZXJ2aWNlID0gbmV3IExpbmVTZXJ2aWNlKGZCcm93c2VyLCB0aGlzLmhvc3RFbGVtZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fZkNhbnZhcyA9IHRoaXMuX2ZNZWRpYXRvci5zZW5kKG5ldyBHZXRDYW52YXNSZXF1ZXN0KCkpO1xuICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LmZMaW5lQWxpZ25tZW50ID0gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBpbml0aWFsaXplKGFsbE5vZGVzOiBGTm9kZUJhc2VbXSwgY3VycmVudE5vZGVzOiBGTm9kZUJhc2VbXSk6IHZvaWQge1xuICAgIHRoaXMuc2l6ZSA9IHRoaXMuX2ZGbG93SG9zdEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgdGhpcy5yZWN0cyA9IFtdO1xuICAgIGNvbnN0IGRyYWdnZWROb2RlUmVjdHMgPSBjdXJyZW50Tm9kZXMubWFwKCh4KSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5fZk1lZGlhdG9yLnNlbmQ8SVJlY3Q+KG5ldyBHZXROb3JtYWxpemVkRWxlbWVudFJlY3RSZXF1ZXN0KHguaG9zdEVsZW1lbnQpKTtcbiAgICB9KTtcbiAgICB0aGlzLmRyYWdnZWROb2RlUmVjdCA9IFJlY3RFeHRlbnNpb25zLnVuaW9uKGRyYWdnZWROb2RlUmVjdHMpIHx8IFJlY3RFeHRlbnNpb25zLmluaXRpYWxpemUoKTtcblxuICAgIGNvbnN0IGFsbE5vZGVzRXhjbHVkZUN1cnJlbnRzID0gYWxsTm9kZXMuZmlsdGVyKCh4KSA9PiB7XG4gICAgICByZXR1cm4gIWN1cnJlbnROb2Rlcy5pbmNsdWRlcyh4KTtcbiAgICB9KTtcblxuICAgIHRoaXMucmVjdHMgPSBhbGxOb2Rlc0V4Y2x1ZGVDdXJyZW50cy5tYXAoKHgpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLl9mTWVkaWF0b3Iuc2VuZDxJUmVjdD4obmV3IEdldE5vcm1hbGl6ZWRFbGVtZW50UmVjdFJlcXVlc3QoeC5ob3N0RWxlbWVudCkpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGhhbmRsZShkaWZmZXJlbmNlOiBJUG9pbnQpOiB2b2lkIHtcbiAgICB0aGlzLmRyYXdJbnRlcnNlY3RpbmdMaW5lcyhkaWZmZXJlbmNlKTtcbiAgfVxuXG4gIHByaXZhdGUgZHJhd0ludGVyc2VjdGluZ0xpbmVzKGRpZmZlcmVuY2U6IElQb2ludCk6IHZvaWQge1xuICAgIGNvbnN0IGludGVyc2VjdCA9IHRoaXMuZmluZE5lYXJlc3RDb29yZGluYXRlKGRpZmZlcmVuY2UpO1xuICAgIGlmIChpbnRlcnNlY3QueFJlc3VsdC52YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmxpbmVTZXJ2aWNlLmRyYXdWZXJ0aWNhbExpbmUoaW50ZXJzZWN0LnhSZXN1bHQudmFsdWUsIHRoaXMuc2l6ZSwgdGhpcy5fdHJhbnNmb3JtKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5saW5lU2VydmljZS5oaWRlVmVydGljYWxMaW5lKCk7XG4gICAgfVxuICAgIGlmIChpbnRlcnNlY3QueVJlc3VsdC52YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmxpbmVTZXJ2aWNlLmRyYXdIb3Jpem9udGFsTGluZShpbnRlcnNlY3QueVJlc3VsdC52YWx1ZSwgdGhpcy5zaXplLCB0aGlzLl90cmFuc2Zvcm0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxpbmVTZXJ2aWNlLmhpZGVIb3Jpem9udGFsTGluZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBmaW5kTmVhcmVzdENvb3JkaW5hdGUoZGlmZmVyZW5jZTogSVBvaW50KTogSUxpbmVBbGlnbm1lbnRSZXN1bHQge1xuICAgIGNvbnN0IHJlY3QgPSBSZWN0RXh0ZW5zaW9ucy5hZGRQb2ludCh0aGlzLmRyYWdnZWROb2RlUmVjdCwgZGlmZmVyZW5jZSk7XG4gICAgY29uc3QgZmluZGVyID0gbmV3IE5lYXJlc3RDb29yZGluYXRlRmluZGVyKHRoaXMucmVjdHMsIHJlY3QsIHRoaXMuZkFsaWduVGhyZXNob2xkKTtcblxuICAgIHJldHVybiB7IHhSZXN1bHQ6IGZpbmRlci5maW5kTmVhcmVzdENvb3JkaW5hdGVCeVgoKSwgeVJlc3VsdDogZmluZGVyLmZpbmROZWFyZXN0Q29vcmRpbmF0ZUJ5WSgpIH07XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29tcGxldGUoKTogdm9pZCB7XG4gICAgdGhpcy5saW5lU2VydmljZS5oaWRlVmVydGljYWxMaW5lKCk7XG4gICAgdGhpcy5saW5lU2VydmljZS5oaWRlSG9yaXpvbnRhbExpbmUoKTtcbiAgfVxufVxuIl19
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1saW5lLWFsaWdubWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtbGluZS1hbGlnbm1lbnQvZi1saW5lLWFsaWdubWVudC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQWMsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQ0wsb0JBQW9CLEVBS3BCLGNBQWMsRUFDZCxjQUFjLEVBQ2YsTUFBTSxZQUFZLENBQUM7QUFDcEIsT0FBTyxFQUF3QixXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHL0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLCtCQUErQixFQUFFLHlCQUF5QixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7OztBQWdCN0MsTUFBTSxPQUFPLHVCQUF3QixTQUFRLGtCQUFrQjtJQThCbkQ7SUFDQTtJQTdCRixhQUFhLEdBQUcsRUFBRSxDQUFDO0lBR3BCLGVBQWUsR0FBVyxFQUFFLENBQUM7SUFFcEMsSUFBb0IsV0FBVztRQUM3QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUM7SUFDN0MsQ0FBQztJQUVPLFdBQVcsQ0FBYztJQUV6QixJQUFJLEdBQVUsY0FBYyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBRTFDLGVBQWUsR0FBVSxjQUFjLENBQUMsVUFBVSxFQUFFLENBQUM7SUFFckQsS0FBSyxHQUFZLEVBQUUsQ0FBQztJQUVwQixVQUFVLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRS9CLFFBQVEsQ0FBMEI7SUFFbEMsY0FBYyxHQUFRLElBQUksQ0FBQztJ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O3NCQURyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBpbmplY3QsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBmaW5kQ2xvc2VzdEFsaWdubWVudCxcbiAgSVBvaW50LFxuICBJUmVjdCxcbiAgSVNpemUsXG4gIElUcmFuc2Zvcm1Nb2RlbCxcbiAgUmVjdEV4dGVuc2lvbnMsXG4gIFNpemVFeHRlbnNpb25zXG59IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgSUxpbmVBbGlnbm1lbnRSZXN1bHQsIExpbmVTZXJ2aWNlIH0gZnJvbSAnLi9kb21haW4nO1xuaW1wb3J0IHsgRl9MSU5FX0FMSUdOTUVOVCwgRkxpbmVBbGlnbm1lbnRCYXNlIH0gZnJvbSAnLi9mLWxpbmUtYWxpZ25tZW50LWJhc2UnO1xuaW1wb3J0IHsgRkRyYWdnYWJsZURhdGFDb250ZXh0IH0gZnJvbSAnLi4vZi1kcmFnZ2FibGUnO1xuaW1wb3J0IHsgRk5vZGVCYXNlIH0gZnJvbSAnLi4vZi1ub2RlJztcbmltcG9ydCB7IEdldENhbnZhc1JlcXVlc3QsIEdldE5vcm1hbGl6ZWRFbGVtZW50UmVjdFJlcXVlc3QsIEdldEZsb3dIb3N0RWxlbWVudFJlcXVlc3QgfSBmcm9tICcuLi9kb21haW4nO1xuaW1wb3J0IHsgRk1lZGlhdG9yIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBCcm93c2VyU2VydmljZSB9IGZyb20gJ0Bmb2JsZXgvcGxhdGZvcm0nO1xuaW1wb3J0IHsgRkNhbnZhc0Jhc2UgfSBmcm9tICcuLi9mLWNhbnZhcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJmLWxpbmUtYWxpZ25tZW50XCIsXG4gIHRlbXBsYXRlOiBcIlwiLFxuICBzdHlsZVVybHM6IFsgXCIuL2YtbGluZS1hbGlnbm1lbnQuY29tcG9uZW50LnNjc3NcIiBdLFxuICBleHBvcnRBczogXCJmQ29tcG9uZW50XCIsXG4gIGhvc3Q6IHtcbiAgICAnY2xhc3MnOiAnZi1saW5lLWFsaWdubWVudCBmLWNvbXBvbmVudCdcbiAgfSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBGX0xJTkVfQUxJR05NRU5ULCB1c2VFeGlzdGluZzogRkxpbmVBbGlnbm1lbnRDb21wb25lbnQgfVxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGTGluZUFsaWdubWVudENvbXBvbmVudCBleHRlbmRzIEZMaW5lQWxpZ25tZW50QmFzZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuXG4gIHByaXZhdGUgREVCT1VOQ0VfVElNRSA9IDEwO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmQWxpZ25UaHJlc2hvbGQ6IG51bWJlciA9IDEwO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgaG9zdEVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWZlcmVuY2UubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIHByaXZhdGUgbGluZVNlcnZpY2U6IExpbmVTZXJ2aWNlO1xuXG4gIHByaXZhdGUgc2l6ZTogSVNpemUgPSBTaXplRXh0ZW5zaW9ucy5pbml0aWFsaXplKCk7XG5cbiAgcHJpdmF0ZSBkcmFnZ2VkTm9kZVJlY3Q6IElSZWN0ID0gUmVjdEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgpO1xuXG4gIHByaXZhdGUgcmVjdHM6IElSZWN0W10gPSBbXTtcblxuICBwcml2YXRlIF9mTWVkaWF0b3IgPSBpbmplY3QoRk1lZGlhdG9yKTtcblxuICBwcml2YXRlIF9mQ2FudmFzOiBGQ2FudmFzQmFzZSB8IHVuZGVmaW5lZDtcblxuICBwcml2YXRlIF9kZWJvdW5jZVRpbWVyOiBhbnkgPSBudWxsO1xuXG4gIHByaXZhdGUgZ2V0IF90cmFuc2Zvcm0oKTogSVRyYW5zZm9ybU1vZGVsIHtcbiAgICByZXR1cm4gdGhpcy5fZkNhbnZhcyEudHJhbnNmb3JtO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmZXJlbmNlOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBwcml2YXRlIGZEcmFnZ2FibGVEYXRhQ29udGV4dDogRkRyYWdnYWJsZURhdGFDb250ZXh0LFxuICAgIGZCcm93c2VyOiBCcm93c2VyU2VydmljZVxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMubGluZVNlcnZpY2UgPSBuZXcgTGluZVNlcnZpY2UoZkJyb3dzZXIsIHRoaXMuaG9zdEVsZW1lbnQpO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9mQ2FudmFzID0gdGhpcy5fZk1lZGlhdG9yLnNlbmQobmV3IEdldENhbnZhc1JlcXVlc3QoKSk7XG4gICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuZkxpbmVBbGlnbm1lbnQgPSB0aGlzO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGluaXRpYWxpemUoYWxsTm9kZXM6IEZOb2RlQmFzZVtdLCBjdXJyZW50Tm9kZXM6IEZOb2RlQmFzZVtdKTogdm9pZCB7XG4gICAgdGhpcy5zaXplID0gdGhpcy5fZk1lZGlhdG9yLnNlbmQ8SFRNTEVsZW1lbnQ+KG5ldyBHZXRGbG93SG9zdEVsZW1lbnRSZXF1ZXN0KCkpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIHRoaXMucmVjdHMgPSBbXTtcbiAgICBjb25zdCBkcmFnZ2VkTm9kZVJlY3RzID0gY3VycmVudE5vZGVzLm1hcCgoeCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuX2ZNZWRpYXRvci5leGVjdXRlPElSZWN0PihuZXcgR2V0Tm9ybWFsaXplZEVsZW1lbnRSZWN0UmVxdWVzdCh4Lmhvc3RFbGVtZW50LCBmYWxzZSkpO1xuICAgIH0pO1xuICAgIHRoaXMuZHJhZ2dlZE5vZGVSZWN0ID0gUmVjdEV4dGVuc2lvbnMudW5pb24oZHJhZ2dlZE5vZGVSZWN0cykgfHwgUmVjdEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgpO1xuXG4gICAgY29uc3QgYWxsTm9kZXNFeGNsdWRlQ3VycmVudHMgPSBhbGxOb2Rlcy5maWx0ZXIoKHgpID0+IHtcbiAgICAgIHJldHVybiAhY3VycmVudE5vZGVzLmluY2x1ZGVzKHgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5yZWN0cyA9IGFsbE5vZGVzRXhjbHVkZUN1cnJlbnRzLm1hcCgoeCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuX2ZNZWRpYXRvci5leGVjdXRlPElSZWN0PihuZXcgR2V0Tm9ybWFsaXplZEVsZW1lbnRSZWN0UmVxdWVzdCh4Lmhvc3RFbGVtZW50LCBmYWxzZSkpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGhhbmRsZShkaWZmZXJlbmNlOiBJUG9pbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fZGVib3VuY2VUaW1lcikge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX2RlYm91bmNlVGltZXIpO1xuICAgIH1cblxuICAgIHRoaXMuX2RlYm91bmNlVGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMuZHJhd0ludGVyc2VjdGluZ0xpbmVzKGRpZmZlcmVuY2UpLCB0aGlzLkRFQk9VTkNFX1RJTUUpO1xuICB9XG5cbiAgcHJpdmF0ZSBkcmF3SW50ZXJzZWN0aW5nTGluZXMoZGlmZmVyZW5jZTogSVBvaW50KTogdm9pZCB7XG4gICAgY29uc3QgaW50ZXJzZWN0ID0gdGhpcy5maW5kTmVhcmVzdENvb3JkaW5hdGUoZGlmZmVyZW5jZSk7XG4gICAgaWYgKGludGVyc2VjdC54UmVzdWx0LnZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMubGluZVNlcnZpY2UuZHJhd1ZlcnRpY2FsTGluZShpbnRlcnNlY3QueFJlc3VsdC52YWx1ZSwgdGhpcy5zaXplLCB0aGlzLl90cmFuc2Zvcm0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxpbmVTZXJ2aWNlLmhpZGVWZXJ0aWNhbExpbmUoKTtcbiAgICB9XG4gICAgaWYgKGludGVyc2VjdC55UmVzdWx0LnZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMubGluZVNlcnZpY2UuZHJhd0hvcml6b250YWxMaW5lKGludGVyc2VjdC55UmVzdWx0LnZhbHVlLCB0aGlzLnNpemUsIHRoaXMuX3RyYW5zZm9ybSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubGluZVNlcnZpY2UuaGlkZUhvcml6b250YWxMaW5lKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGZpbmROZWFyZXN0Q29vcmRpbmF0ZShkaWZmZXJlbmNlOiBJUG9pbnQpOiBJTGluZUFsaWdubWVudFJlc3VsdCB7XG4gICAgY29uc3QgcmVjdCA9IFJlY3RFeHRlbnNpb25zLmFkZFBvaW50KHRoaXMuZHJhZ2dlZE5vZGVSZWN0LCBkaWZmZXJlbmNlKTtcblxuICAgIHJldHVybiBmaW5kQ2xvc2VzdEFsaWdubWVudCh0aGlzLnJlY3RzLCByZWN0LCB0aGlzLmZBbGlnblRocmVzaG9sZCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29tcGxldGUoKTogdm9pZCB7XG4gICAgdGhpcy5saW5lU2VydmljZS5oaWRlVmVydGljYWxMaW5lKCk7XG4gICAgdGhpcy5saW5lU2VydmljZS5oaWRlSG9yaXpvbnRhbExpbmUoKTtcblxuICAgIGlmICh0aGlzLl9kZWJvdW5jZVRpbWVyKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5fZGVib3VuY2VUaW1lcik7XG4gICAgICB0aGlzLl9kZWJvdW5jZVRpbWVyID0gbnVsbDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,22 @@
1
+ import { Directive, ElementRef, inject, InjectionToken } from "@angular/core";
2
+ import * as i0 from "@angular/core";
3
+ export const F_DRAG_HANDLE = new InjectionToken('F_DRAG_HANDLE');
4
+ export class FDragHandleDirective {
5
+ _elementReference = inject(ElementRef);
6
+ get hostElement() {
7
+ return this._elementReference.nativeElement;
8
+ }
9
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FDragHandleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
10
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.4", type: FDragHandleDirective, selector: "[fDragHandle]", host: { classAttribute: "f-drag-handle f-component" }, providers: [{ provide: F_DRAG_HANDLE, useExisting: FDragHandleDirective }], ngImport: i0 });
11
+ }
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FDragHandleDirective, decorators: [{
13
+ type: Directive,
14
+ args: [{
15
+ selector: "[fDragHandle]",
16
+ host: {
17
+ class: "f-drag-handle f-component"
18
+ },
19
+ providers: [{ provide: F_DRAG_HANDLE, useExisting: FDragHandleDirective }],
20
+ }]
21
+ }] });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1kcmFnLWhhbmRsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2Ytbm9kZS9mLWRyYWctaGFuZGxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUM5QyxNQUFNLGVBQWUsQ0FBQzs7QUFHdkIsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLElBQUksY0FBYyxDQUF1QixlQUFlLENBQUMsQ0FBQztBQVN2RixNQUFNLE9BQU8sb0JBQW9CO0lBRXZCLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUUvQyxJQUFXLFdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDO0lBQzlDLENBQUM7dUdBTlUsb0JBQW9COzJGQUFwQixvQkFBb0IsK0ZBRnBCLENBQUUsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxDQUFFOzsyRkFFakUsb0JBQW9CO2tCQVBoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO29CQUN6QixJQUFJLEVBQUU7d0JBQ0osS0FBSyxFQUFFLDJCQUEyQjtxQkFDbkM7b0JBQ0QsU0FBUyxFQUFFLENBQUUsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsc0JBQXNCLEVBQUUsQ0FBRTtpQkFDN0UiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGluamVjdCwgSW5qZWN0aW9uVG9rZW5cbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IElIYXNIb3N0RWxlbWVudCB9IGZyb20gJy4uL2ktaGFzLWhvc3QtZWxlbWVudCc7XG5cbmV4cG9ydCBjb25zdCBGX0RSQUdfSEFORExFID0gbmV3IEluamVjdGlvblRva2VuPEZEcmFnSGFuZGxlRGlyZWN0aXZlPignRl9EUkFHX0hBTkRMRScpO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6IFwiW2ZEcmFnSGFuZGxlXVwiLFxuICBob3N0OiB7XG4gICAgY2xhc3M6IFwiZi1kcmFnLWhhbmRsZSBmLWNvbXBvbmVudFwiXG4gIH0sXG4gIHByb3ZpZGVyczogWyB7IHByb3ZpZGU6IEZfRFJBR19IQU5ETEUsIHVzZUV4aXN0aW5nOiBGRHJhZ0hhbmRsZURpcmVjdGl2ZSB9IF0sXG59KVxuZXhwb3J0IGNsYXNzIEZEcmFnSGFuZGxlRGlyZWN0aXZlIGltcGxlbWVudHMgSUhhc0hvc3RFbGVtZW50IHtcblxuICBwcml2YXRlIF9lbGVtZW50UmVmZXJlbmNlID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuXG4gIHB1YmxpYyBnZXQgaG9zdEVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLl9lbGVtZW50UmVmZXJlbmNlLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cbiJdfQ==
@@ -1,9 +1,9 @@
1
- export * from './domain';
2
- export * from './f-drag-handle';
3
1
  export * from './f-resize-handle';
4
2
  export * from './f-rotate-handle';
3
+ export * from './f-drag-handle.directive';
5
4
  export * from './f-group.directive';
6
5
  export * from './f-node.directive';
7
6
  export * from './f-node-base';
7
+ export * from './is-node';
8
8
  export * from './providers';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2Ytbm9kZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFVBQVUsQ0FBQztBQUV6QixjQUFjLGlCQUFpQixDQUFDO0FBRWhDLGNBQWMsbUJBQW1CLENBQUM7QUFFbEMsY0FBYyxtQkFBbUIsQ0FBQztBQUVsQyxjQUFjLHFCQUFxQixDQUFDO0FBRXBDLGNBQWMsb0JBQW9CLENBQUM7QUFFbkMsY0FBYyxlQUFlLENBQUM7QUFFOUIsY0FBYyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2RvbWFpbic7XG5cbmV4cG9ydCAqIGZyb20gJy4vZi1kcmFnLWhhbmRsZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZi1yZXNpemUtaGFuZGxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9mLXJvdGF0ZS1oYW5kbGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2YtZ3JvdXAuZGlyZWN0aXZlJztcblxuZXhwb3J0ICogZnJvbSAnLi9mLW5vZGUuZGlyZWN0aXZlJztcblxuZXhwb3J0ICogZnJvbSAnLi9mLW5vZGUtYmFzZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vcHJvdmlkZXJzJztcblxuXG4iXX0=
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2Ytbm9kZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG1CQUFtQixDQUFDO0FBRWxDLGNBQWMsbUJBQW1CLENBQUM7QUFFbEMsY0FBYywyQkFBMkIsQ0FBQztBQUUxQyxjQUFjLHFCQUFxQixDQUFDO0FBRXBDLGNBQWMsb0JBQW9CLENBQUM7QUFFbkMsY0FBYyxlQUFlLENBQUM7QUFFOUIsY0FBYyxXQUFXLENBQUM7QUFFMUIsY0FBYyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2YtcmVzaXplLWhhbmRsZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZi1yb3RhdGUtaGFuZGxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9mLWRyYWctaGFuZGxlLmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZi1ncm91cC5kaXJlY3RpdmUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2Ytbm9kZS5kaXJlY3RpdmUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2Ytbm9kZS1iYXNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9pcy1ub2RlJztcblxuZXhwb3J0ICogZnJvbSAnLi9wcm92aWRlcnMnO1xuXG5cbiJdfQ==
@@ -0,0 +1,4 @@
1
+ export function isNode(element) {
2
+ return !!element.closest('[fNode]');
3
+ }
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtbm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1ub2RlL2lzLW5vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLE1BQU0sQ0FBQyxPQUFpQztJQUN0RCxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQ3RDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gaXNOb2RlKGVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgU1ZHRWxlbWVudCk6IGJvb2xlYW4ge1xuICByZXR1cm4gISFlbGVtZW50LmNsb3Nlc3QoJ1tmTm9kZV0nKTtcbn1cblxuIl19
@@ -1,11 +1,11 @@
1
1
  import { FNodeDirective } from './f-node.directive';
2
- import { FDragHandleDirective } from './f-drag-handle';
3
2
  import { FResizeHandleDirective } from './f-resize-handle';
4
3
  import { FGroupDirective } from './f-group.directive';
4
+ import { FDragHandleDirective } from './f-drag-handle.directive';
5
5
  export const F_NODE_PROVIDERS = [
6
6
  FGroupDirective,
7
7
  FNodeDirective,
8
8
  FDragHandleDirective,
9
9
  FResizeHandleDirective,
10
10
  ];
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLW5vZGUvcHJvdmlkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEQsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUc7SUFFOUIsZUFBZTtJQUVmLGNBQWM7SUFFZCxvQkFBb0I7SUFFcEIsc0JBQXNCO0NBQ3ZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGTm9kZURpcmVjdGl2ZSB9IGZyb20gJy4vZi1ub2RlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGRHJhZ0hhbmRsZURpcmVjdGl2ZSB9IGZyb20gJy4vZi1kcmFnLWhhbmRsZSc7XG5pbXBvcnQgeyBGUmVzaXplSGFuZGxlRGlyZWN0aXZlIH0gZnJvbSAnLi9mLXJlc2l6ZS1oYW5kbGUnO1xuaW1wb3J0IHsgRkdyb3VwRGlyZWN0aXZlIH0gZnJvbSAnLi9mLWdyb3VwLmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCBjb25zdCBGX05PREVfUFJPVklERVJTID0gW1xuXG4gIEZHcm91cERpcmVjdGl2ZSxcblxuICBGTm9kZURpcmVjdGl2ZSxcblxuICBGRHJhZ0hhbmRsZURpcmVjdGl2ZSxcblxuICBGUmVzaXplSGFuZGxlRGlyZWN0aXZlLFxuXTtcbiJdfQ==
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLW5vZGUvcHJvdmlkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFakUsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUc7SUFFOUIsZUFBZTtJQUVmLGNBQWM7SUFFZCxvQkFBb0I7SUFFcEIsc0JBQXNCO0NBQ3ZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGTm9kZURpcmVjdGl2ZSB9IGZyb20gJy4vZi1ub2RlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGUmVzaXplSGFuZGxlRGlyZWN0aXZlIH0gZnJvbSAnLi9mLXJlc2l6ZS1oYW5kbGUnO1xuaW1wb3J0IHsgRkdyb3VwRGlyZWN0aXZlIH0gZnJvbSAnLi9mLWdyb3VwLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGRHJhZ0hhbmRsZURpcmVjdGl2ZSB9IGZyb20gJy4vZi1kcmFnLWhhbmRsZS5kaXJlY3RpdmUnO1xuXG5leHBvcnQgY29uc3QgRl9OT0RFX1BST1ZJREVSUyA9IFtcblxuICBGR3JvdXBEaXJlY3RpdmUsXG5cbiAgRk5vZGVEaXJlY3RpdmUsXG5cbiAgRkRyYWdIYW5kbGVEaXJlY3RpdmUsXG5cbiAgRlJlc2l6ZUhhbmRsZURpcmVjdGl2ZSxcbl07XG4iXX0=
@@ -1,4 +1,4 @@
1
1
  import { FBackgroundComponent } from './f-background.component';
2
2
  import { FRectPatternComponent } from './f-rect-pattern';
3
3
  import { FCirclePatternComponent } from './f-circle-pattern';
4
- export declare const F_BACKGROUND_PROVIDERS: (typeof FBackgroundComponent | typeof FCirclePatternComponent | typeof FRectPatternComponent)[];
4
+ export declare const F_BACKGROUND_PROVIDERS: (typeof FRectPatternComponent | typeof FCirclePatternComponent | typeof FBackgroundComponent)[];
@@ -12,8 +12,8 @@ export declare class FConnectionComponent extends FConnectionBase implements OnI
12
12
  fTextStartOffset: string;
13
13
  fStartColor: string;
14
14
  fEndColor: string;
15
- fOutputId: string;
16
- fInputId: string;
15
+ fOutputId: any;
16
+ fInputId: any;
17
17
  fRadius: number;
18
18
  fOffset: number;
19
19
  fBehavior: EFConnectionBehavior;
@@ -37,4 +37,6 @@ export declare class FConnectionComponent extends FConnectionBase implements OnI
37
37
  static ɵfac: i0.ɵɵFactoryDeclaration<FConnectionComponent, never>;
38
38
  static ɵcmp: i0.ɵɵComponentDeclaration<FConnectionComponent, "f-connection", ["fComponent"], { "fId": { "alias": "fConnectionId"; "required": false; }; "fText": { "alias": "fText"; "required": false; }; "fTextStartOffset": { "alias": "fTextStartOffset"; "required": false; }; "fStartColor": { "alias": "fStartColor"; "required": false; }; "fEndColor": { "alias": "fEndColor"; "required": false; }; "fOutputId": { "alias": "fOutputId"; "required": false; }; "fInputId": { "alias": "fInputId"; "required": false; }; "fRadius": { "alias": "fRadius"; "required": false; }; "fOffset": { "alias": "fOffset"; "required": false; }; "fBehavior": { "alias": "fBehavior"; "required": false; }; "fType": { "alias": "fType"; "required": false; }; "fDraggingDisabled": { "alias": "fReassignDisabled"; "required": false; }; "fSelectionDisabled": { "alias": "fSelectionDisabled"; "required": false; }; }, {}, ["fConnectionCenters"], ["*", "[fConnectionCenter]"], false, never>;
39
39
  static ngAcceptInputType_fBehavior: unknown;
40
+ static ngAcceptInputType_fDraggingDisabled: unknown;
41
+ static ngAcceptInputType_fSelectionDisabled: unknown;
40
42
  }
@@ -4,4 +4,4 @@ import { FConnectionCenterDirective } from './f-connection-center';
4
4
  import { FConnectionForCreateComponent } from './f-connection-for-create';
5
5
  import { FMarkerDirective } from './f-marker';
6
6
  import { FSnapConnectionComponent } from './f-snap-connection';
7
- export declare const F_CONNECTION_PROVIDERS: (typeof FSnapConnectionComponent | typeof FConnectionDragHandleComponent | typeof FConnectionSelectionComponent | typeof FConnectionCenterDirective | typeof FMarkerDirective | typeof FConnectionComponent | typeof FConnectionForCreateComponent | typeof FConnectionTextPathDirective | typeof FConnectionTextComponent | typeof FConnectionGradientComponent | typeof FConnectionPathComponent)[];
7
+ export declare const F_CONNECTION_PROVIDERS: (typeof FConnectionTextPathDirective | typeof FConnectionTextComponent | typeof FConnectionDragHandleComponent | typeof FConnectionGradientComponent | typeof FConnectionPathComponent | typeof FConnectionSelectionComponent | typeof FConnectionCenterDirective | typeof FConnectionForCreateComponent | typeof FConnectionComponent | typeof FMarkerDirective | typeof FSnapConnectionComponent)[];
@@ -1,4 +1,4 @@
1
1
  import { FNodeInputDirective } from './f-node-input';
2
2
  import { FNodeOutletDirective } from './f-node-outlet';
3
3
  import { FNodeOutputDirective } from './f-node-output';
4
- export declare const F_CONNECTORS_PROVIDERS: (typeof FNodeOutputDirective | typeof FNodeOutletDirective | typeof FNodeInputDirective)[];
4
+ export declare const F_CONNECTORS_PROVIDERS: (typeof FNodeInputDirective | typeof FNodeOutletDirective | typeof FNodeOutputDirective)[];
@@ -1,5 +1,5 @@
1
1
  import { IDraggableItem } from '../../i-draggable-item';
2
- import { IConnectorWithRect } from '../../../domain';
2
+ import { IClosestInput } from '../../../domain';
3
3
  import { FConnectionBase } from '../../../f-connection';
4
4
  import { FConnectorBase } from '../../../f-connectors';
5
5
  import { FMediator } from '@foblex/mediator';
@@ -17,9 +17,13 @@ export declare class CreateConnectionDragHandler implements IDraggableItem {
17
17
  private canBeConnectedInputs;
18
18
  constructor(fMediator: FMediator, fComponentsStore: FComponentsStore, fOutput: FConnectorBase, onPointerDownPosition: IPoint);
19
19
  prepareDragSequence(): void;
20
+ private _initializeSnapConnection;
21
+ private _initializeConnectionForCreate;
20
22
  onPointerMove(difference: IPoint): void;
21
- private drawTempConnection;
22
- private drawSnapConnection;
23
- getClosetInput(difference: IPoint): IConnectorWithRect | undefined;
23
+ private _drawConnectionForCreate;
24
+ private _drawSnapConnection;
25
+ getClosetInput(difference: IPoint): IClosestInput | undefined;
26
+ private _findClosestInput;
27
+ private _getClosestInputForSnapConnection;
24
28
  onPointerUp(): void;
25
29
  }
@@ -1,4 +1,4 @@
1
1
  import { CreateConnectionDragHandlerExecution, CreateConnectionFinalizeExecution, CreateConnectionFinalizeValidator, CreateConnectionFromOutletPreparationExecution, CreateConnectionFromOutputPreparationExecution, CreateConnectionFromOutputPreparationValidator, CreateConnectionPreparationExecution, CreateConnectionPreparationValidator, GetCanBeConnectedOutputByOutletExecution, GetCanBeConnectedOutputByOutletValidator } from './create-connection';
2
2
  import { ReassignConnectionFinalizeExecution, ReassignConnectionFinalizeValidator, ReassignConnectionPreparationExecution, ReassignConnectionPreparationValidator } from './reassign-connection';
3
3
  import { GetInputUnderPointerExecution, GetInputUnderPointerValidator } from './get-input-under-pointer';
4
- export declare const CONNECTIONS_PROVIDERS: (typeof GetInputUnderPointerExecution | typeof GetInputUnderPointerValidator | typeof CreateConnectionFinalizeExecution | typeof CreateConnectionFinalizeValidator | typeof CreateConnectionDragHandlerExecution | typeof CreateConnectionFromOutletPreparationExecution | typeof GetCanBeConnectedOutputByOutletExecution | typeof GetCanBeConnectedOutputByOutletValidator | typeof CreateConnectionFromOutputPreparationExecution | typeof CreateConnectionFromOutputPreparationValidator | typeof CreateConnectionPreparationExecution | typeof CreateConnectionPreparationValidator | typeof ReassignConnectionFinalizeExecution | typeof ReassignConnectionFinalizeValidator | typeof ReassignConnectionPreparationExecution | typeof ReassignConnectionPreparationValidator)[];
4
+ export declare const CONNECTIONS_PROVIDERS: (typeof GetCanBeConnectedOutputByOutletExecution | typeof GetCanBeConnectedOutputByOutletValidator | typeof ReassignConnectionFinalizeExecution | typeof ReassignConnectionFinalizeValidator | typeof ReassignConnectionPreparationExecution | typeof ReassignConnectionPreparationValidator | typeof GetInputUnderPointerExecution | typeof GetInputUnderPointerValidator | typeof CreateConnectionFinalizeExecution | typeof CreateConnectionFinalizeValidator | typeof CreateConnectionDragHandlerExecution | typeof CreateConnectionFromOutletPreparationExecution | typeof CreateConnectionFromOutputPreparationExecution | typeof CreateConnectionFromOutputPreparationValidator | typeof CreateConnectionPreparationExecution | typeof CreateConnectionPreparationValidator)[];
@@ -1,5 +1,5 @@
1
1
  import { IDraggableItem } from '../../i-draggable-item';
2
- import { IConnectorWithRect } from '../../../domain';
2
+ import { IClosestInput } from '../../../domain';
3
3
  import { FConnectionBase } from '../../../f-connection';
4
4
  import { FMediator } from '@foblex/mediator';
5
5
  import { IPoint, RoundedRect } from '@foblex/2d';
@@ -15,11 +15,14 @@ export declare class ReassignConnectionDragHandler implements IDraggableItem {
15
15
  private canBeConnectedInputs;
16
16
  constructor(fMediator: FMediator, fComponentsStore: FComponentsStore, fConnection: FConnectionBase);
17
17
  prepareDragSequence(): void;
18
+ private _initializeSnapConnection;
18
19
  private getOutput;
19
20
  private getInput;
20
21
  onPointerMove(difference: IPoint): void;
21
- private drawConnection;
22
- private drawSnapConnection;
23
- getClosetInput(difference: IPoint): IConnectorWithRect | undefined;
22
+ private _drawConnection;
23
+ private _drawSnapConnection;
24
+ getClosetInput(difference: IPoint): IClosestInput | undefined;
25
+ private _findClosestInput;
26
+ private _getClosestInputForSnapConnection;
24
27
  onPointerUp(): void;
25
28
  }
@@ -10,7 +10,7 @@ export declare class GetNormalizedParentNodeRectExecution implements IExecution<
10
10
  handle(request: GetNormalizedParentNodeRectRequest): IRect;
11
11
  private getNode;
12
12
  private getParentRect;
13
- private getNormalizedNodeRect;
13
+ private _getNodeRect;
14
14
  private getNodePadding;
15
15
  static ɵfac: i0.ɵɵFactoryDeclaration<GetNormalizedParentNodeRectExecution, never>;
16
16
  static ɵprov: i0.ɵɵInjectableDeclaration<GetNormalizedParentNodeRectExecution>;
@@ -1,7 +1,4 @@
1
- export * from './get-node-padding';
2
- export * from './get-normalized-node-rect';
3
1
  export * from './get-normalized-parent-node-rect';
4
- export * from './get-parent-nodes';
5
2
  export * from './is-array-has-parent-node';
6
3
  export * from './is-connection-under-node';
7
4
  export * from './i-node-with-rect';
@@ -1,7 +1,4 @@
1
- import { GetNormalizedNodeRectExecution } from './get-normalized-node-rect';
2
- import { GetParentNodesExecution } from './get-parent-nodes';
3
1
  import { IsArrayHasParentNodeExecution } from './is-array-has-parent-node';
4
2
  import { GetNormalizedParentNodeRectExecution } from './get-normalized-parent-node-rect';
5
- import { GetNodePaddingExecution } from './get-node-padding';
6
3
  import { IsConnectionUnderNodeExecution, IsConnectionUnderNodeValidator } from './is-connection-under-node';
7
- export declare const DRAG_AND_DROP_COMMON_PROVIDERS: (typeof GetNodePaddingExecution | typeof GetNormalizedNodeRectExecution | typeof GetNormalizedParentNodeRectExecution | typeof GetParentNodesExecution | typeof IsArrayHasParentNodeExecution | typeof IsConnectionUnderNodeExecution | typeof IsConnectionUnderNodeValidator)[];
4
+ export declare const DRAG_AND_DROP_COMMON_PROVIDERS: (typeof GetNormalizedParentNodeRectExecution | typeof IsArrayHasParentNodeExecution | typeof IsConnectionUnderNodeExecution | typeof IsConnectionUnderNodeValidator)[];
@@ -13,6 +13,8 @@ export declare abstract class FDraggableBase extends DragAndDropBase {
13
13
  abstract fReassignConnection: EventEmitter<FReassignConnectionEvent>;
14
14
  abstract fCreateConnection: EventEmitter<FCreateConnectionEvent>;
15
15
  abstract fDropToGroup: EventEmitter<FDropToGroupEvent>;
16
+ abstract vCellSize: number;
17
+ abstract hCellSize: number;
16
18
  protected constructor(ngZone: ICanRunOutsideAngular | undefined);
17
19
  static ɵfac: i0.ɵɵFactoryDeclaration<FDraggableBase, never>;
18
20
  static ɵdir: i0.ɵɵDirectiveDeclaration<FDraggableBase, never, never, {}, {}, never, never, false, never>;
@@ -16,10 +16,12 @@ export declare class FDraggableDirective extends FDraggableBase implements OnIni
16
16
  get hostElement(): HTMLElement;
17
17
  fSelectionChange: EventEmitter<FSelectionChangeEvent>;
18
18
  fNodeIntersectedWithConnections: EventEmitter<FNodeIntersectedWithConnections>;
19
- fCreateNode: EventEmitter<FCreateNodeEvent>;
19
+ fCreateNode: EventEmitter<FCreateNodeEvent<any>>;
20
20
  fReassignConnection: EventEmitter<FReassignConnectionEvent>;
21
21
  fCreateConnection: EventEmitter<FCreateConnectionEvent>;
22
22
  fDropToGroup: EventEmitter<FDropToGroupEvent>;
23
+ vCellSize: number;
24
+ hCellSize: number;
23
25
  private plugins;
24
26
  constructor(ngZone: ICanRunOutsideAngular, _fBrowser: BrowserService);
25
27
  ngOnInit(): void;
@@ -32,5 +34,5 @@ export declare class FDraggableDirective extends FDraggableBase implements OnIni
32
34
  protected finalizeDragSequence(): void;
33
35
  ngOnDestroy(): void;
34
36
  static ɵfac: i0.ɵɵFactoryDeclaration<FDraggableDirective, [{ optional: true; }, null]>;
35
- static ɵdir: i0.ɵɵDirectiveDeclaration<FDraggableDirective, "f-flow[fDraggable]", ["fDraggable"], { "disabled": { "alias": "fDraggableDisabled"; "required": false; }; }, { "fSelectionChange": "fSelectionChange"; "fNodeIntersectedWithConnections": "fNodeIntersectedWithConnections"; "fCreateNode": "fCreateNode"; "fReassignConnection": "fReassignConnection"; "fCreateConnection": "fCreateConnection"; "fDropToGroup": "fDropToGroup"; }, ["plugins"], never, false, never>;
37
+ static ɵdir: i0.ɵɵDirectiveDeclaration<FDraggableDirective, "f-flow[fDraggable]", ["fDraggable"], { "disabled": { "alias": "fDraggableDisabled"; "required": false; }; "vCellSize": { "alias": "vCellSize"; "required": false; }; "hCellSize": { "alias": "hCellSize"; "required": false; }; }, { "fSelectionChange": "fSelectionChange"; "fNodeIntersectedWithConnections": "fNodeIntersectedWithConnections"; "fCreateNode": "fCreateNode"; "fReassignConnection": "fReassignConnection"; "fCreateConnection": "fCreateConnection"; "fDropToGroup": "fDropToGroup"; }, ["plugins"], never, false, never>;
36
38
  }
@@ -18,7 +18,7 @@ export declare abstract class ConnectionBaseDragHandler implements IDraggableIte
18
18
  private getInput;
19
19
  private connectorNotFoundPrefix;
20
20
  abstract onPointerMove(difference: IPoint): void;
21
- protected getDifference(difference: IPoint, restrictions: INodeMoveRestrictions): IPoint;
21
+ protected getRestrictedDifference(difference: IPoint, restrictions: INodeMoveRestrictions): IPoint;
22
22
  protected redrawConnection(line: ILine): void;
23
23
  static ɵfac: i0.ɵɵFactoryDeclaration<ConnectionBaseDragHandler, never>;
24
24
  static ɵdir: i0.ɵɵDirectiveDeclaration<ConnectionBaseDragHandler, never, never, {}, {}, never, never, false, never>;
@@ -1,18 +1,16 @@
1
1
  import { CreateMoveNodesDragModelFromSelectionRequest } from './create-move-nodes-drag-model-from-selection.request';
2
- import { FMediator, IExecution } from '@foblex/mediator';
3
- import { FComponentsStore } from '../../../f-storage';
4
- import { FDraggableDataContext } from '../../f-draggable-data-context';
2
+ import { IExecution } from '@foblex/mediator';
5
3
  import { IDraggableItem } from '../../i-draggable-item';
6
4
  import * as i0 from "@angular/core";
7
5
  export declare class CreateMoveNodesDragModelFromSelectionExecution implements IExecution<CreateMoveNodesDragModelFromSelectionRequest, IDraggableItem[]> {
8
- private fComponentsStore;
9
- private fDraggableDataContext;
10
- private fMediator;
11
- constructor(fComponentsStore: FComponentsStore, fDraggableDataContext: FDraggableDataContext, fMediator: FMediator);
6
+ private _fMediator;
7
+ private _fComponentsStore;
8
+ private _fDraggableDataContext;
12
9
  handle(request: CreateMoveNodesDragModelFromSelectionRequest): IDraggableItem[];
13
- private getSelectedNodes;
10
+ private _getSelectedNodes;
11
+ private _getNodesFromSelection;
14
12
  private _findNode;
15
- private getNodesWithRestrictions;
13
+ private _getNodesWithRestrictions;
16
14
  private getChildrenItemsToDrag;
17
15
  private getChildrenNodes;
18
16
  private getAllOutputIds;
@@ -1,12 +1,11 @@
1
1
  import { GetNodeMoveRestrictionsRequest } from './get-node-move-restrictions.request';
2
2
  import { INodeMoveRestrictions } from './i-node-move-restrictions';
3
- import { FMediator, IExecution } from '@foblex/mediator';
3
+ import { IExecution } from '@foblex/mediator';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class GetNodeMoveRestrictionsExecution implements IExecution<GetNodeMoveRestrictionsRequest, INodeMoveRestrictions> {
6
- private fMediator;
7
- constructor(fMediator: FMediator);
6
+ private _fMediator;
8
7
  handle(request: GetNodeMoveRestrictionsRequest): INodeMoveRestrictions;
9
- private getCurrentNodeRect;
8
+ private _getNodeRect;
10
9
  private getParentNodeRect;
11
10
  static ɵfac: i0.ɵɵFactoryDeclaration<GetNodeMoveRestrictionsExecution, never>;
12
11
  static ɵprov: i0.ɵɵInjectableDeclaration<GetNodeMoveRestrictionsExecution>;
@@ -2,4 +2,4 @@ import { CreateMoveNodesDragModelFromSelectionExecution } from './create-move-no
2
2
  import { GetNodeMoveRestrictionsExecution } from './domain/get-node-move-restrictions';
3
3
  import { PutInputConnectionHandlersToArrayExecution } from './domain/put-input-connection-handlers-to-array';
4
4
  import { PutOutputConnectionHandlersToArrayExecution } from './domain/put-output-connection-handlers-to-array';
5
- export declare const CREATE_MOVE_NODE_DRAG_MODEL_FROM_SELECTION_PROVIDERS: (typeof GetNodeMoveRestrictionsExecution | typeof PutInputConnectionHandlersToArrayExecution | typeof PutOutputConnectionHandlersToArrayExecution | typeof CreateMoveNodesDragModelFromSelectionExecution)[];
5
+ export declare const CREATE_MOVE_NODE_DRAG_MODEL_FROM_SELECTION_PROVIDERS: (typeof PutInputConnectionHandlersToArrayExecution | typeof PutOutputConnectionHandlersToArrayExecution | typeof GetNodeMoveRestrictionsExecution | typeof CreateMoveNodesDragModelFromSelectionExecution)[];
@@ -12,9 +12,10 @@ export declare class NodeDragToParentPreparationExecution implements IExecution<
12
12
  private get fCanvasPosition();
13
13
  constructor(fMediator: FMediator, fDraggableDataContext: FDraggableDataContext, fComponentsStore: FComponentsStore);
14
14
  handle(request: NodeDragToParentPreparationRequest): void;
15
- private getNotDraggedNodesRects;
16
- private getDraggedNodes;
17
- private getNotDraggedNodes;
15
+ private _getNotDraggedNodesRects;
16
+ private _getNodesBeingDragged;
17
+ private _addParentNodes;
18
+ private _getNotDraggedNodes;
18
19
  static ɵfac: i0.ɵɵFactoryDeclaration<NodeDragToParentPreparationExecution, never>;
19
20
  static ɵprov: i0.ɵɵInjectableDeclaration<NodeDragToParentPreparationExecution>;
20
21
  }
@@ -8,13 +8,18 @@ export declare class NodeDragToParentDragHandler implements IDraggableItem {
8
8
  private fComponentsStore;
9
9
  private fDraggableDataContext;
10
10
  private notDraggedNodesRects;
11
- private get transform();
12
- private onPointerDownPosition;
11
+ private DEBOUNCE_TIME;
12
+ private get _transform();
13
+ private _onPointerDownPosition;
14
+ private _debounceTimer;
13
15
  fNodeWithRect: INodeWithRect | null;
14
16
  constructor(fComponentsStore: FComponentsStore, fDraggableDataContext: FDraggableDataContext, notDraggedNodesRects: INodeWithRect[]);
17
+ private _toggleParentNode;
18
+ private _getNewPosition;
19
+ private _isNodeInsideAnotherNode;
15
20
  onPointerMove(difference: IPoint): void;
16
- private markIncludeNode;
17
- private unmarkIncludeNode;
21
+ private _markIncludeNode;
22
+ private _unmarkIncludeNode;
18
23
  onPointerUp(): void;
19
24
  static ɵfac: i0.ɵɵFactoryDeclaration<NodeDragToParentDragHandler, never>;
20
25
  static ɵdir: i0.ɵɵDirectiveDeclaration<NodeDragToParentDragHandler, never, never, {}, {}, never, never, false, never>;
@@ -1,18 +1,18 @@
1
1
  import { NodeMoveFinalizeRequest } from './node-move-finalize.request';
2
- import { FMediator, IExecution } from '@foblex/mediator';
3
- import { FComponentsStore } from '../../../f-storage';
4
- import { FDraggableDataContext } from '../../f-draggable-data-context';
2
+ import { IExecution } from '@foblex/mediator';
5
3
  import * as i0 from "@angular/core";
6
4
  export declare class NodeMoveFinalizeExecution implements IExecution<NodeMoveFinalizeRequest, void> {
7
- private fComponentsStore;
8
- private fDraggableDataContext;
9
- private fMediator;
10
- private get flowHost();
11
- constructor(fComponentsStore: FComponentsStore, fDraggableDataContext: FDraggableDataContext, fMediator: FMediator);
5
+ private _fMediator;
6
+ private _fComponentsStore;
7
+ private _fDraggableDataContext;
8
+ private get _fHost();
12
9
  handle(request: NodeMoveFinalizeRequest): void;
13
- private getItems;
14
- private getDifferenceBetweenPreparationAndFinalize;
15
- private getDifferenceWithLineAlignment;
10
+ private _finalizeMove;
11
+ private _getItems;
12
+ private _getDifferenceBetweenPreparationAndFinalize;
13
+ private _getDifferenceWithLineAlignment;
14
+ private _getLineAlignmentDifference;
15
+ private _applyLineAlignmentDifference;
16
16
  static ɵfac: i0.ɵɵFactoryDeclaration<NodeMoveFinalizeExecution, never>;
17
17
  static ɵprov: i0.ɵɵInjectableDeclaration<NodeMoveFinalizeExecution>;
18
18
  }
@@ -1,21 +1,18 @@
1
1
  import { NodeMovePreparationRequest } from './node-move-preparation.request';
2
- import { FMediator, IExecution } from '@foblex/mediator';
3
- import { FComponentsStore } from '../../../f-storage';
4
- import { FDraggableDataContext } from '../../f-draggable-data-context';
2
+ import { IExecution } from '@foblex/mediator';
5
3
  import * as i0 from "@angular/core";
6
4
  export declare class NodeMovePreparationExecution implements IExecution<NodeMovePreparationRequest, void> {
7
- private fComponentsStore;
8
- private fDraggableDataContext;
9
- private fMediator;
10
- private get transform();
11
- private get flowHost();
12
- constructor(fComponentsStore: FComponentsStore, fDraggableDataContext: FDraggableDataContext, fMediator: FMediator);
5
+ private _fMediator;
6
+ private _fComponentsStore;
7
+ private _fDraggableDataContext;
8
+ private get _transform();
9
+ private get _fHost();
13
10
  handle(request: NodeMovePreparationRequest): void;
14
- private selectAndUpdateNodeLayer;
15
- private getNode;
16
- private createDragModelFromSelection;
17
- private initializeLineAlignment;
18
- private filterNodesFromDraggableItems;
11
+ private _getNode;
12
+ private _calculateDraggableItems;
13
+ private _dragModelFromSelection;
14
+ private _initializeLineAlignment;
15
+ private _filterNodesFromDraggableItems;
19
16
  static ɵfac: i0.ɵɵFactoryDeclaration<NodeMovePreparationExecution, never>;
20
17
  static ɵprov: i0.ɵɵInjectableDeclaration<NodeMovePreparationExecution>;
21
18
  }
@@ -1,17 +1,14 @@
1
1
  import { NodeMovePreparationRequest } from './node-move-preparation.request';
2
2
  import { IValidator } from '@foblex/mediator';
3
- import { FComponentsStore } from '../../../f-storage';
4
- import { FDraggableDataContext } from '../../f-draggable-data-context';
5
3
  import * as i0 from "@angular/core";
6
4
  export declare class NodeMovePreparationValidator implements IValidator<NodeMovePreparationRequest> {
7
- private fComponentsStore;
8
- private fDraggableDataContext;
9
- constructor(fComponentsStore: FComponentsStore, fDraggableDataContext: FDraggableDataContext);
5
+ private _fComponentsStore;
6
+ private _fDraggableDataContext;
10
7
  handle(request: NodeMovePreparationRequest): boolean;
11
- private isDragHandlesEmpty;
12
- private getNode;
13
- private isNodeCanBeDragged;
14
- private isDragHandleElement;
8
+ private _isDragHandlesEmpty;
9
+ private _isDragHandleElement;
10
+ private _isNodeCanBeDragged;
11
+ private _getNode;
15
12
  static ɵfac: i0.ɵɵFactoryDeclaration<NodeMovePreparationValidator, never>;
16
13
  static ɵprov: i0.ɵɵInjectableDeclaration<NodeMovePreparationValidator>;
17
14
  }
@@ -2,16 +2,20 @@ import { IPoint } from '@foblex/2d';
2
2
  import { IDraggableItem } from '../i-draggable-item';
3
3
  import { FDraggableDataContext } from '../f-draggable-data-context';
4
4
  import { FNodeBase } from '../../f-node';
5
+ import { FComponentsStore } from '../../f-storage';
5
6
  export declare class NodeDragHandler implements IDraggableItem {
6
7
  private fDraggableDataContext;
8
+ private fComponentsStore;
7
9
  fNode: FNodeBase;
8
10
  minDistance: IPoint;
9
11
  maxDistance: IPoint;
10
- private onPointerDownPosition;
11
- constructor(fDraggableDataContext: FDraggableDataContext, fNode: FNodeBase, minDistance: IPoint, maxDistance: IPoint);
12
+ private readonly _onPointerDownPosition;
13
+ constructor(fDraggableDataContext: FDraggableDataContext, fComponentsStore: FComponentsStore, fNode: FNodeBase, minDistance: IPoint, maxDistance: IPoint);
12
14
  onPointerMove(difference: IPoint): void;
13
- private getNewPosition;
14
- private getDifference;
15
- private redrawNode;
15
+ private _getPosition;
16
+ private _getDifference;
17
+ private _redraw;
16
18
  onPointerUp(): void;
19
+ getDifferenceWithCellSize(difference: IPoint): IPoint;
20
+ private _applyCellSize;
17
21
  }
@@ -1 +1 @@
1
- export declare const NODE_PROVIDERS: (typeof import("./create-move-nodes-drag-model-from-selection").GetNodeMoveRestrictionsExecution | typeof import("./create-move-nodes-drag-model-from-selection").PutInputConnectionHandlersToArrayExecution | typeof import("./create-move-nodes-drag-model-from-selection").PutOutputConnectionHandlersToArrayExecution | typeof import("./create-move-nodes-drag-model-from-selection").CreateMoveNodesDragModelFromSelectionExecution | typeof import("./node-move-finalize").NodeMoveFinalizeExecution | typeof import("./node-move-finalize").NodeMoveFinalizeValidator | typeof import("./node-move-preparation").NodeMovePreparationExecution | typeof import("./node-move-preparation").NodeMovePreparationValidator | typeof import("./node-drag-to-parent-preparation").NodeDragToParentPreparationExecution | typeof import("./node-drag-to-parent-preparation").NodeDragToParentPreparationValidator | typeof import("./node-drag-to-parent-finalize").NodeDragToParentFinalizeExecution | typeof import("./node-drag-to-parent-finalize").NodeDragToParentFinalizeValidator)[];
1
+ export declare const NODE_PROVIDERS: (typeof import("./create-move-nodes-drag-model-from-selection").PutInputConnectionHandlersToArrayExecution | typeof import("./create-move-nodes-drag-model-from-selection").PutOutputConnectionHandlersToArrayExecution | typeof import("./create-move-nodes-drag-model-from-selection").GetNodeMoveRestrictionsExecution | typeof import("./create-move-nodes-drag-model-from-selection").CreateMoveNodesDragModelFromSelectionExecution | typeof import("./node-drag-to-parent-finalize").NodeDragToParentFinalizeExecution | typeof import("./node-drag-to-parent-finalize").NodeDragToParentFinalizeValidator | typeof import("./node-drag-to-parent-preparation").NodeDragToParentPreparationExecution | typeof import("./node-drag-to-parent-preparation").NodeDragToParentPreparationValidator | typeof import("./node-move-preparation").NodeMovePreparationExecution | typeof import("./node-move-preparation").NodeMovePreparationValidator | typeof import("./node-move-finalize").NodeMoveFinalizeExecution | typeof import("./node-move-finalize").NodeMoveFinalizeValidator)[];