@foblex/flow 17.8.4 → 17.8.5

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 (170) hide show
  1. package/domain/f-connectors/calculate-source-connectors-to-connect/calculate-source-connectors-to-connect-request.d.ts +8 -0
  2. package/domain/f-connectors/calculate-source-connectors-to-connect/calculate-source-connectors-to-connect.d.ts +21 -0
  3. package/domain/f-connectors/calculate-source-connectors-to-connect/index.d.ts +2 -0
  4. package/domain/f-connectors/calculate-target-connectors-to-connect/calculate-target-connectors-to-connect-request.d.ts +8 -0
  5. package/domain/f-connectors/calculate-target-connectors-to-connect/calculate-target-connectors-to-connect.d.ts +20 -0
  6. package/domain/f-connectors/calculate-target-connectors-to-connect/index.d.ts +2 -0
  7. package/domain/f-connectors/index.d.ts +2 -2
  8. package/domain/f-connectors/providers.d.ts +3 -3
  9. package/domain/f-event-trigger.d.ts +1 -1
  10. package/domain/f-flow/providers.d.ts +1 -1
  11. package/domain/f-line-alignment/providers.d.ts +1 -1
  12. package/domain/f-node/add-node-to-store/add-node-to-store-request.d.ts +2 -2
  13. package/domain/f-node/calculate-connectors-connectable-sides/calculate-connectable-side-by-connected-positions/calculate-connectable-side-by-connected-positions-request.d.ts +8 -0
  14. package/domain/f-node/{calculate-node-connectors-connectable-sides → calculate-connectors-connectable-sides}/calculate-connectable-side-by-connected-positions/calculate-connectable-side-by-connected-positions.d.ts +2 -28
  15. package/domain/f-node/calculate-connectors-connectable-sides/calculate-connectable-side-by-internal-position/calculate-connectable-side-by-internal-position.d.ts +52 -0
  16. package/domain/f-node/calculate-connectors-connectable-sides/calculate-connectors-connectable-sides-request.d.ts +6 -0
  17. package/domain/f-node/calculate-connectors-connectable-sides/calculate-connectors-connectable-sides.d.ts +22 -0
  18. package/domain/f-node/calculate-connectors-connectable-sides/constants/calculatable-sides.d.ts +6 -0
  19. package/domain/f-node/calculate-connectors-connectable-sides/constants/index.d.ts +1 -0
  20. package/domain/f-node/calculate-connectors-connectable-sides/index.d.ts +7 -0
  21. package/domain/f-node/calculate-connectors-connectable-sides/models/index.d.ts +1 -0
  22. package/domain/f-node/calculate-connectors-connectable-sides/models/t-calculate-mode.d.ts +2 -0
  23. package/domain/f-node/calculate-connectors-connectable-sides/utils/determine-side.d.ts +10 -0
  24. package/domain/f-node/calculate-connectors-connectable-sides/utils/index.d.ts +2 -0
  25. package/domain/f-node/calculate-connectors-connectable-sides/utils/is-calculate-mode.d.ts +7 -0
  26. package/domain/f-node/calculate-input-connections/calculate-input-connections-request.d.ts +2 -2
  27. package/domain/f-node/calculate-input-connections/calculate-input-connections.d.ts +3 -3
  28. package/domain/f-node/calculate-nodes-bounding-box/calculate-nodes-bounding-box.d.ts +2 -3
  29. package/domain/f-node/calculate-output-connections/calculate-output-connections-request.d.ts +2 -2
  30. package/domain/f-node/calculate-output-connections/calculate-output-connections.d.ts +3 -3
  31. package/domain/f-node/index.d.ts +1 -2
  32. package/domain/f-node/providers.d.ts +2 -3
  33. package/domain/f-selection/select-and-update-node-layer/select-and-update-node-layer.execution.d.ts +2 -2
  34. package/domain/f-selection/select-and-update-node-layer/select-and-update-node-layer.request.d.ts +2 -2
  35. package/domain/f-zoom/providers.d.ts +1 -1
  36. package/domain/providers.d.ts +1 -1
  37. package/esm2022/domain/css-cls.mjs +2 -1
  38. package/esm2022/domain/f-connectors/calculate-source-connectors-to-connect/calculate-source-connectors-to-connect-request.mjs +10 -0
  39. package/esm2022/domain/f-connectors/calculate-source-connectors-to-connect/calculate-source-connectors-to-connect.mjs +59 -0
  40. package/esm2022/domain/f-connectors/calculate-source-connectors-to-connect/index.mjs +3 -0
  41. package/esm2022/domain/f-connectors/calculate-target-connectors-to-connect/calculate-target-connectors-to-connect-request.mjs +10 -0
  42. package/esm2022/domain/f-connectors/calculate-target-connectors-to-connect/calculate-target-connectors-to-connect.mjs +64 -0
  43. package/esm2022/domain/f-connectors/calculate-target-connectors-to-connect/index.mjs +3 -0
  44. package/esm2022/domain/f-connectors/index.mjs +3 -3
  45. package/esm2022/domain/f-connectors/providers.mjs +5 -5
  46. package/esm2022/domain/f-event-trigger.mjs +2 -2
  47. package/esm2022/domain/f-node/add-node-to-store/add-node-to-store-request.mjs +4 -4
  48. package/esm2022/domain/f-node/add-node-to-store/add-node-to-store.mjs +2 -2
  49. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/calculate-connectable-side-by-connected-positions/calculate-connectable-side-by-connected-positions-request.mjs +10 -0
  50. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/calculate-connectable-side-by-connected-positions/calculate-connectable-side-by-connected-positions.mjs +59 -0
  51. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/calculate-connectable-side-by-connected-positions/index.mjs +3 -0
  52. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/calculate-connectable-side-by-internal-position/calculate-connectable-side-by-internal-position-request.mjs +8 -0
  53. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/calculate-connectable-side-by-internal-position/calculate-connectable-side-by-internal-position.mjs +132 -0
  54. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/calculate-connectable-side-by-internal-position/index.mjs +3 -0
  55. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/calculate-connectors-connectable-sides-request.mjs +8 -0
  56. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/calculate-connectors-connectable-sides.mjs +73 -0
  57. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/constants/calculatable-sides.mjs +12 -0
  58. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/constants/index.mjs +2 -0
  59. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/index.mjs +8 -0
  60. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/models/index.mjs +2 -0
  61. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/models/t-calculate-mode.mjs +2 -0
  62. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/utils/determine-side.mjs +124 -0
  63. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/utils/index.mjs +3 -0
  64. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/utils/is-calculate-mode.mjs +12 -0
  65. package/esm2022/domain/f-node/calculate-input-connections/calculate-input-connections-request.mjs +4 -4
  66. package/esm2022/domain/f-node/calculate-input-connections/calculate-input-connections.mjs +20 -7
  67. package/esm2022/domain/f-node/calculate-nodes-bounding-box/calculate-nodes-bounding-box.mjs +5 -8
  68. package/esm2022/domain/f-node/calculate-output-connections/calculate-output-connections-request.mjs +4 -4
  69. package/esm2022/domain/f-node/calculate-output-connections/calculate-output-connections.mjs +20 -7
  70. package/esm2022/domain/f-node/get-child-node-ids/get-child-node-ids.request.mjs +1 -1
  71. package/esm2022/domain/f-node/index.mjs +2 -3
  72. package/esm2022/domain/f-node/providers.mjs +3 -5
  73. package/esm2022/domain/f-node/update-node-when-state-or-size-changed/update-node-when-state-or-size-changed.mjs +3 -3
  74. package/esm2022/domain/f-selection/select-and-update-node-layer/select-and-update-node-layer.execution.mjs +5 -5
  75. package/esm2022/domain/f-selection/select-and-update-node-layer/select-and-update-node-layer.request.mjs +4 -4
  76. package/esm2022/domain/get-normalized-connector-rect/get-normalized-connector-rect-request.mjs +1 -1
  77. package/esm2022/domain/get-normalized-connector-rect/get-normalized-connector-rect.execution.mjs +2 -2
  78. package/esm2022/domain/get-normalized-element-rect/get-normalized-element-rect.execution.mjs +2 -14
  79. package/esm2022/domain/get-normalized-point/get-normalized-point.execution.mjs +4 -1
  80. package/esm2022/domain/index.mjs +1 -1
  81. package/esm2022/domain/is-mobile.mjs +5 -3
  82. package/esm2022/f-connectors/f-node-output/f-node-output.directive.mjs +1 -1
  83. package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/create-connection-preparation-request.mjs +10 -0
  84. package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/create-connection-preparation.mjs +58 -0
  85. package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/from-output-preparation/create-connection-from-output-preparation-request.mjs +10 -0
  86. package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/from-output-preparation/create-connection-from-output-preparation.mjs +47 -0
  87. package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/from-output-preparation/index.mjs +3 -3
  88. package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/index.mjs +3 -3
  89. package/esm2022/f-draggable/f-connection/f-create-connection/f-create-connection.drag-handler.mjs +8 -8
  90. package/esm2022/f-draggable/f-connection/f-reassign-connection/f-reassign-source.drag-handler.mjs +3 -3
  91. package/esm2022/f-draggable/f-connection/f-reassign-connection/f-reassign-target.drag-handler.mjs +7 -7
  92. package/esm2022/f-draggable/f-connection/providers.mjs +4 -4
  93. package/esm2022/f-draggable/f-draggable.directive.mjs +3 -3
  94. package/esm2022/f-draggable/f-drop-to-group/drop-to-group-preparation/drop-to-group-preparation-request.mjs +1 -1
  95. package/esm2022/f-draggable/f-drop-to-group/drop-to-group-preparation/drop-to-group-preparation.mjs +11 -13
  96. package/esm2022/f-draggable/f-node-move/move-preparation/f-node-move-preparation.execution.mjs +14 -12
  97. package/esm2022/f-draggable/f-node-move/move-preparation/f-node-move-preparation.request.mjs +1 -1
  98. package/esm2022/f-node/f-group.directive.mjs +3 -3
  99. package/esm2022/f-node/f-node.directive.mjs +3 -3
  100. package/esm2022/f-storage/f-connectors-store.mjs +11 -0
  101. package/esm2022/f-storage/index.mjs +2 -1
  102. package/f-connection/providers.d.ts +1 -1
  103. package/f-connectors/providers.d.ts +1 -1
  104. package/f-draggable/f-connection/f-create-connection/create-preparation/create-connection-preparation-request.d.ts +8 -0
  105. package/f-draggable/f-connection/f-create-connection/create-preparation/create-connection-preparation.d.ts +16 -0
  106. package/f-draggable/f-connection/f-create-connection/create-preparation/from-output-preparation/create-connection-from-output-preparation-request.d.ts +8 -0
  107. package/f-draggable/f-connection/f-create-connection/create-preparation/from-output-preparation/create-connection-from-output-preparation.d.ts +14 -0
  108. package/f-draggable/f-connection/f-create-connection/create-preparation/from-output-preparation/index.d.ts +2 -2
  109. package/f-draggable/f-connection/f-create-connection/create-preparation/index.d.ts +2 -2
  110. package/f-draggable/f-connection/providers.d.ts +2 -2
  111. package/f-draggable/f-drop-to-group/drop-to-group-preparation/drop-to-group-preparation-request.d.ts +2 -2
  112. package/f-draggable/f-drop-to-group/providers.d.ts +1 -1
  113. package/f-draggable/f-node-move/create-drag-model-from-selection/providers.d.ts +1 -1
  114. package/f-draggable/f-node-move/move-preparation/f-node-move-preparation.execution.d.ts +1 -1
  115. package/f-draggable/f-node-move/move-preparation/f-node-move-preparation.request.d.ts +1 -1
  116. package/f-draggable/f-node-move/providers.d.ts +1 -1
  117. package/f-draggable/providers.d.ts +1 -1
  118. package/f-minimap/domain/providers.d.ts +1 -1
  119. package/f-minimap/providers.d.ts +1 -1
  120. package/f-node/providers.d.ts +1 -1
  121. package/f-selection-area/domain/providers.d.ts +1 -1
  122. package/f-storage/f-connectors-store.d.ts +6 -0
  123. package/f-storage/index.d.ts +1 -0
  124. package/f-storage/providers.d.ts +1 -1
  125. package/fesm2022/foblex-flow.mjs +1278 -1161
  126. package/fesm2022/foblex-flow.mjs.map +1 -1
  127. package/package.json +1 -1
  128. package/domain/f-connectors/get-all-can-be-connected-inputs-and-rects/get-all-can-be-connected-inputs-and-rects.execution.d.ts +0 -17
  129. package/domain/f-connectors/get-all-can-be-connected-inputs-and-rects/get-all-can-be-connected-inputs-and-rects.request.d.ts +0 -6
  130. package/domain/f-connectors/get-all-can-be-connected-inputs-and-rects/index.d.ts +0 -2
  131. package/domain/f-connectors/get-all-can-be-connected-source-connectors-and-rects/get-all-can-be-connected-source-connectors-and-rects.execution.d.ts +0 -18
  132. package/domain/f-connectors/get-all-can-be-connected-source-connectors-and-rects/get-all-can-be-connected-source-connectors-and-rects.request.d.ts +0 -6
  133. package/domain/f-connectors/get-all-can-be-connected-source-connectors-and-rects/index.d.ts +0 -2
  134. package/domain/f-node/calculate-node-connectors-connectable-sides/calculate-connectable-side-by-connected-positions/calculate-connectable-side-by-connected-positions-request.d.ts +0 -9
  135. package/domain/f-node/calculate-node-connectors-connectable-sides/calculate-connectable-side-by-internal-position/calculate-connectable-side-by-internal-position.d.ts +0 -20
  136. package/domain/f-node/calculate-node-connectors-connectable-sides/calculate-node-connectors-connectable-sides-request.d.ts +0 -6
  137. package/domain/f-node/calculate-node-connectors-connectable-sides/calculate-node-connectors-connectable-sides.d.ts +0 -28
  138. package/domain/f-node/calculate-node-connectors-connectable-sides/index.d.ts +0 -4
  139. package/domain/f-node/get-nodes/get-nodes-request.d.ts +0 -3
  140. package/domain/f-node/get-nodes/get-nodes.d.ts +0 -13
  141. package/domain/f-node/get-nodes/index.d.ts +0 -2
  142. package/esm2022/domain/f-connectors/get-all-can-be-connected-inputs-and-rects/get-all-can-be-connected-inputs-and-rects.execution.mjs +0 -48
  143. package/esm2022/domain/f-connectors/get-all-can-be-connected-inputs-and-rects/get-all-can-be-connected-inputs-and-rects.request.mjs +0 -8
  144. package/esm2022/domain/f-connectors/get-all-can-be-connected-inputs-and-rects/index.mjs +0 -3
  145. package/esm2022/domain/f-connectors/get-all-can-be-connected-source-connectors-and-rects/get-all-can-be-connected-source-connectors-and-rects.execution.mjs +0 -43
  146. package/esm2022/domain/f-connectors/get-all-can-be-connected-source-connectors-and-rects/get-all-can-be-connected-source-connectors-and-rects.request.mjs +0 -8
  147. package/esm2022/domain/f-connectors/get-all-can-be-connected-source-connectors-and-rects/index.mjs +0 -3
  148. package/esm2022/domain/f-node/calculate-node-connectors-connectable-sides/calculate-connectable-side-by-connected-positions/calculate-connectable-side-by-connected-positions-request.mjs +0 -16
  149. package/esm2022/domain/f-node/calculate-node-connectors-connectable-sides/calculate-connectable-side-by-connected-positions/calculate-connectable-side-by-connected-positions.mjs +0 -181
  150. package/esm2022/domain/f-node/calculate-node-connectors-connectable-sides/calculate-connectable-side-by-connected-positions/index.mjs +0 -3
  151. package/esm2022/domain/f-node/calculate-node-connectors-connectable-sides/calculate-connectable-side-by-internal-position/calculate-connectable-side-by-internal-position-request.mjs +0 -8
  152. package/esm2022/domain/f-node/calculate-node-connectors-connectable-sides/calculate-connectable-side-by-internal-position/calculate-connectable-side-by-internal-position.mjs +0 -55
  153. package/esm2022/domain/f-node/calculate-node-connectors-connectable-sides/calculate-connectable-side-by-internal-position/index.mjs +0 -3
  154. package/esm2022/domain/f-node/calculate-node-connectors-connectable-sides/calculate-node-connectors-connectable-sides-request.mjs +0 -8
  155. package/esm2022/domain/f-node/calculate-node-connectors-connectable-sides/calculate-node-connectors-connectable-sides.mjs +0 -90
  156. package/esm2022/domain/f-node/calculate-node-connectors-connectable-sides/index.mjs +0 -5
  157. package/esm2022/domain/f-node/get-nodes/get-nodes-request.mjs +0 -4
  158. package/esm2022/domain/f-node/get-nodes/get-nodes.mjs +0 -25
  159. package/esm2022/domain/f-node/get-nodes/index.mjs +0 -3
  160. package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/f-create-connection-preparation.execution.mjs +0 -52
  161. package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/f-create-connection-preparation.request.mjs +0 -10
  162. package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/from-output-preparation/f-create-connection-from-output-preparation.execution.mjs +0 -49
  163. package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/from-output-preparation/f-create-connection-from-output-preparation.request.mjs +0 -10
  164. package/f-draggable/f-connection/f-create-connection/create-preparation/f-create-connection-preparation.execution.d.ts +0 -16
  165. package/f-draggable/f-connection/f-create-connection/create-preparation/f-create-connection-preparation.request.d.ts +0 -8
  166. package/f-draggable/f-connection/f-create-connection/create-preparation/from-output-preparation/f-create-connection-from-output-preparation.execution.d.ts +0 -14
  167. package/f-draggable/f-connection/f-create-connection/create-preparation/from-output-preparation/f-create-connection-from-output-preparation.request.d.ts +0 -8
  168. /package/domain/f-node/{calculate-node-connectors-connectable-sides → calculate-connectors-connectable-sides}/calculate-connectable-side-by-connected-positions/index.d.ts +0 -0
  169. /package/domain/f-node/{calculate-node-connectors-connectable-sides → calculate-connectors-connectable-sides}/calculate-connectable-side-by-internal-position/calculate-connectable-side-by-internal-position-request.d.ts +0 -0
  170. /package/domain/f-node/{calculate-node-connectors-connectable-sides → calculate-connectors-connectable-sides}/calculate-connectable-side-by-internal-position/index.d.ts +0 -0
@@ -2,7 +2,7 @@ import { booleanAttribute, DestroyRef, Directive, inject, input, model, output,
2
2
  import { PointExtensions } from '@foblex/2d';
3
3
  import { NotifyTransformChangedRequest } from '../f-storage';
4
4
  import { F_NODE, FNodeBase } from './f-node-base';
5
- import { AddNodeToStoreRequest, UpdateNodeWhenStateOrSizeChangedRequest, RemoveNodeFromStoreRequest, CalculateNodeConnectorsConnectableSidesRequest, } from '../domain';
5
+ import { AddNodeToStoreRequest, UpdateNodeWhenStateOrSizeChangedRequest, RemoveNodeFromStoreRequest, CalculateConnectorsConnectableSidesRequest, } from '../domain';
6
6
  import { stringAttribute } from '../utils';
7
7
  import { FMediator } from '@foblex/mediator';
8
8
  import * as i0 from "@angular/core";
@@ -87,7 +87,7 @@ export class FNodeDirective extends FNodeBase {
87
87
  this._debounceTimer = setTimeout(() => this._calculateNodeConnectorsConnectableSides(), _DEBOUNCE_TIME);
88
88
  }
89
89
  _calculateNodeConnectorsConnectableSides() {
90
- this._mediator.execute(new CalculateNodeConnectorsConnectableSidesRequest(this));
90
+ this._mediator.execute(new CalculateConnectorsConnectableSidesRequest(this));
91
91
  }
92
92
  ngAfterViewInit() {
93
93
  if (!this.browser.isBrowser()) {
@@ -121,4 +121,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
121
121
  providers: [{ provide: F_NODE, useExisting: FNodeDirective }],
122
122
  }]
123
123
  }], ctorParameters: () => [{ type: i0.ElementRef }] });
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1ub2RlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1ub2RlL2Ytbm9kZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLGdCQUFnQixFQUNoQixVQUFVLEVBQ1YsU0FBUyxFQUVULE1BQU0sRUFDTixLQUFLLEVBQ0wsS0FBSyxFQUdMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWdCLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMzRCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDN0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbEQsT0FBTyxFQUNMLHFCQUFxQixFQUNyQix1Q0FBdUMsRUFDdkMsMEJBQTBCLEVBQzFCLDhDQUE4QyxHQUMvQyxNQUFNLFdBQVcsQ0FBQztBQUNuQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFFN0MsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBQ2pCLE1BQU0sY0FBYyxHQUFHLENBQUMsQ0FBQztBQWF6QixNQUFNLE9BQU8sY0FDWCxTQUFRLFNBQVM7SUFHVCxjQUFjLEdBQXlDLElBQUksQ0FBQztJQUVuRCxXQUFXLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2pDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFdEIsR0FBRyxHQUFHLEtBQUssQ0FBa0IsVUFBVSxRQUFRLEVBQUUsRUFBRSxFQUFFO1FBQzVFLEtBQUssRUFBRSxTQUFTO1FBQ2hCLFNBQVMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxJQUFJ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RmQsQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxDQUFDOzs0RkFFbEQsY0FBYztrQkFYMUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsU0FBUztvQkFDbkIsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLElBQUksRUFBRTt3QkFDSix1QkFBdUIsRUFBRSxPQUFPO3dCQUNoQyxLQUFLLEVBQUUsb0JBQW9CO3dCQUMzQixrQ0FBa0MsRUFBRSxxQkFBcUI7d0JBQ3pELG1DQUFtQyxFQUFFLHNCQUFzQjtxQkFDNUQ7b0JBQ0QsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsZ0JBQWdCLEVBQUUsQ0FBQztpQkFDOUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBib29sZWFuQXR0cmlidXRlLFxuICBEZXN0cm95UmVmLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIG1vZGVsLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgb3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElSZWN0LCBJU2l6ZSwgUG9pbnRFeHRlbnNpb25zIH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQgeyBOb3RpZnlUcmFuc2Zvcm1DaGFuZ2VkUmVxdWVzdCB9IGZyb20gJy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQgeyBGX05PREUsIEZOb2RlQmFzZSB9IGZyb20gJy4vZi1ub2RlLWJhc2UnO1xuaW1wb3J0IHsgSUhhc0hvc3RFbGVtZW50IH0gZnJvbSAnLi4vaS1oYXMtaG9zdC1lbGVtZW50JztcbmltcG9ydCB7XG4gIEFkZE5vZGVUb1N0b3JlUmVxdWVzdCxcbiAgVXBkYXRlTm9kZVdoZW5TdGF0ZU9yU2l6ZUNoYW5nZWRSZXF1ZXN0LFxuICBSZW1vdmVOb2RlRnJvbVN0b3JlUmVxdWVzdCxcbiAgQ2FsY3VsYXRlTm9kZUNvbm5lY3RvcnNDb25uZWN0YWJsZVNpZGVzUmVxdWVzdCxcbn0gZnJvbSAnLi4vZG9tYWluJztcbmltcG9ydCB7IHN0cmluZ0F0dHJpYnV0ZSB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IEZNZWRpYXRvciB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuXG5sZXQgdW5pcXVlSWQgPSAwO1xuY29uc3QgX0RFQk9VTkNFX1RJTUUgPSAzO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZk5vZGVdJyxcbiAgZXhwb3J0QXM6ICdmQ29tcG9uZW50JyxcbiAgaG9zdDoge1xuICAgICdbYXR0ci5kYXRhLWYtbm9kZS1pZF0nOiAnZklkKCknLFxuICAgIGNsYXNzOiAnZi1ub2RlIGYtY29tcG9uZW50JyxcbiAgICAnW2NsYXNzLmYtbm9kZS1kcmFnZ2luZy1kaXNhYmxlZF0nOiAnZkRyYWdnaW5nRGlzYWJsZWQoKScsXG4gICAgJ1tjbGFzcy5mLW5vZGUtc2VsZWN0aW9uLWRpc2FibGVkXSc6ICdmU2VsZWN0aW9uRGlzYWJsZWQoKScsXG4gIH0sXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogRl9OT0RFLCB1c2VFeGlzdGluZzogRk5vZGVEaXJlY3RpdmUgfV0sXG59KVxuZXhwb3J0IGNsYXNzIEZOb2RlRGlyZWN0aXZlXG4gIGV4dGVuZHMgRk5vZGVCYXNlXG4gIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBJSGFzSG9zdEVsZW1lbnQsIE9uRGVzdHJveVxue1xuICBwcml2YXRlIF9kZWJvdW5jZVRpbWVyOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgX21lZGlhdG9yID0gaW5qZWN0KEZNZWRpYXRvcik7XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlYWRvbmx5IGZJZCA9IGlucHV0PHN0cmluZywgdW5rbm93bj4oYGYtbm9kZS0ke3VuaXF1ZUlkKyt9YCwge1xuICAgIGFsaWFzOiAnZk5vZGVJZCcsXG4gICAgdHJhbnNmb3JtOiAodmFsdWUpID0+IHN0cmluZ0F0dHJpYnV0ZSh2YWx1ZSkgfHwgYGYtbm9kZS0ke3VuaXF1ZUlkKyt9YCxcbiAgfSk7XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlYWRvbmx5IGZQYXJlbnRJZCA9IGlucHV0PHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ+KG51bGwsIHtcbiAgICBhbGlhczogJ2ZOb2RlUGFyZW50SWQnLFxuICB9KTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgcmVhZG9ubHkgcG9zaXRpb24gPSBtb2RlbChQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgpLCB7XG4gICAgYWxpYXM6ICdmTm9kZVBvc2l0aW9uJyxcbiAgfSk7XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlYWRvbmx5IHNpemUgPSBpbnB1dDxJU2l6ZSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkLCB7XG4gICAgYWxpYXM6ICdmTm9kZVNpemUnLFxuICB9KTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgc2l6ZUNoYW5nZSA9IG91dHB1dDxJUmVjdD4oeyBhbGlhczogJ2ZOb2RlU2l6ZUNoYW5nZScgfSk7XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlYWRvbmx5IHJvdGF0ZSA9IG1vZGVsKDAsIHtcbiAgICBhbGlhczogJ2ZOb2RlUm90YXRlJyxcbiAgfSk7XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlYWRvbmx5IGZDb25uZWN0T25Ob2RlID0gaW5wdXQodHJ1ZSwge1xuICAgIHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSxcbiAgfSk7XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlYWRvbmx5IGZNaW5pbWFwQ2xhc3MgPSBpbnB1dDxzdHJpbmdbXSB8IHN0cmluZz4oW10pO1xuXG4gIHB1YmxpYyBvdmVycmlkZSByZWFkb25seSBmRHJhZ2dpbmdEaXNhYmxlZCA9IGlucHV0KGZhbHNlLCB7XG4gICAgYWxpYXM6ICdmTm9kZURyYWdnaW5nRGlzYWJsZWQnLFxuICAgIHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSxcbiAgfSk7XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlYWRvbmx5IGZTZWxlY3Rpb25EaXNhYmxlZCA9IGlucHV0KGZhbHNlLCB7XG4gICAgYWxpYXM6ICdmTm9kZVNlbGVjdGlvbkRpc2FibGVkJyxcbiAgICB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUsXG4gIH0pO1xuXG4gIHB1YmxpYyBvdmVycmlkZSByZWFkb25seSBmSW5jbHVkZVBhZGRpbmcgPSBpbnB1dCh0cnVlLCB7XG4gICAgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlLFxuICB9KTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgcmVhZG9ubHkgZkF1dG9FeHBhbmRPbkNoaWxkSGl0ID0gaW5wdXQoZmFsc2UsIHtcbiAgICB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUsXG4gIH0pO1xuXG4gIHB1YmxpYyBvdmVycmlkZSByZWFkb25seSBmQXV0b1NpemVUb0ZpdENoaWxkcmVuID0gaW5wdXQoZmFsc2UsIHtcbiAgICB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUsXG4gIH0pO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvcHJlZmVyLWluamVjdFxuICAgIGVsZW1lbnRSZWZlcmVuY2U6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICApIHtcbiAgICBzdXBlcihlbGVtZW50UmVmZXJlbmNlLm5hdGl2ZUVsZW1lbnQpO1xuICAgIHN1cGVyLnBvc2l0aW9uQ2hhbmdlcygpO1xuICAgIHN1cGVyLnNpemVDaGFuZ2VzKCk7XG4gICAgc3VwZXIucm90YXRlQ2hhbmdlcygpO1xuICAgIHN1cGVyLnBhcmVudENoYW5nZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldFN0eWxlKCdwb3NpdGlvbicsICdhYnNvbHV0ZScpO1xuICAgIHRoaXMuc2V0U3R5bGUoJ3RyYW5zZm9ybS1vcmlnaW4nLCAnY2VudGVyJyk7XG4gICAgdGhpcy5zZXRTdHlsZSgndXNlci1zZWxlY3QnLCAnbm9uZScpO1xuICAgIHRoaXMuc2V0U3R5bGUoJ3BvaW50ZXItZXZlbnRzJywgJ2FsbCcpO1xuICAgIHRoaXMuc2V0U3R5bGUoJ2xlZnQnLCAnMCcpO1xuICAgIHRoaXMuc2V0U3R5bGUoJ3RvcCcsICcwJyk7XG4gICAgc3VwZXIucmVkcmF3KCk7XG5cbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlPHZvaWQ+KG5ldyBBZGROb2RlVG9TdG9yZVJlcXVlc3QodGhpcykpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHNldFN0eWxlKHN0eWxlTmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmhvc3RFbGVtZW50LCBzdHlsZU5hbWUsIHZhbHVlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW1vdmVTdHlsZShzdHlsZU5hbWU6IHN0cmluZykge1xuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUodGhpcy5ob3N0RWxlbWVudCwgc3R5bGVOYW1lKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSByZWRyYXcoKTogdm9pZCB7XG4gICAgc3VwZXIucmVkcmF3KCk7XG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZShuZXcgTm90aWZ5VHJhbnNmb3JtQ2hhbmdlZFJlcXVlc3QoKSk7XG4gICAgdGhpcy5fdXBkYXRlQ29ubmVjdG9yc1NpZGVzKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX3VwZGF0ZUNvbm5lY3RvcnNTaWRlcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fZGVib3VuY2VUaW1lcikge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX2RlYm91bmNlVGltZXIpO1xuICAgIH1cbiAgICB0aGlzLl9kZWJvdW5jZVRpbWVyID0gc2V0VGltZW91dChcbiAgICAgICgpID0+IHRoaXMuX2NhbGN1bGF0ZU5vZGVDb25uZWN0b3JzQ29ubmVjdGFibGVTaWRlcygpLFxuICAgICAgX0RFQk9VTkNFX1RJTUUsXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NhbGN1bGF0ZU5vZGVDb25uZWN0b3JzQ29ubmVjdGFibGVTaWRlcygpOiB2b2lkIHtcbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlPHZvaWQ+KG5ldyBDYWxjdWxhdGVOb2RlQ29ubmVjdG9yc0Nvbm5lY3RhYmxlU2lkZXNSZXF1ZXN0KHRoaXMpKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmJyb3dzZXIuaXNCcm93c2VyKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fbGlzdGVuU3RhdGVTaXplQ2hhbmdlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBfbGlzdGVuU3RhdGVTaXplQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlPHZvaWQ+KFxuICAgICAgbmV3IFVwZGF0ZU5vZGVXaGVuU3RhdGVPclNpemVDaGFuZ2VkUmVxdWVzdCh0aGlzLCB0aGlzLl9kZXN0cm95UmVmKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlZnJlc2goKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubm90aWZ5KCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZTx2b2lkPihuZXcgUmVtb3ZlTm9kZUZyb21TdG9yZVJlcXVlc3QodGhpcykpO1xuICB9XG59XG4iXX0=
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1ub2RlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1ub2RlL2Ytbm9kZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLGdCQUFnQixFQUNoQixVQUFVLEVBQ1YsU0FBUyxFQUVULE1BQU0sRUFDTixLQUFLLEVBQ0wsS0FBSyxFQUdMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWdCLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMzRCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDN0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbEQsT0FBTyxFQUNMLHFCQUFxQixFQUNyQix1Q0FBdUMsRUFDdkMsMEJBQTBCLEVBQzFCLDBDQUEwQyxHQUMzQyxNQUFNLFdBQVcsQ0FBQztBQUNuQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFFN0MsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBQ2pCLE1BQU0sY0FBYyxHQUFHLENBQUMsQ0FBQztBQWF6QixNQUFNLE9BQU8sY0FDWCxTQUFRLFNBQVM7SUFHVCxjQUFjLEdBQXlDLElBQUksQ0FBQztJQUVuRCxXQUFXLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2pDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFdEIsR0FBRyxHQUFHLEtBQUssQ0FBa0IsVUFBVSxRQUFRLEVBQUUsRUFBRSxFQUFFO1FBQzVFLEtBQUssRUFBRSxTQUFTO1FBQ2hCLFNBQVMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxJQUFJ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RmQsQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxDQUFDOzs0RkFFbEQsY0FBYztrQkFYMUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsU0FBUztvQkFDbkIsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLElBQUksRUFBRTt3QkFDSix1QkFBdUIsRUFBRSxPQUFPO3dCQUNoQyxLQUFLLEVBQUUsb0JBQW9CO3dCQUMzQixrQ0FBa0MsRUFBRSxxQkFBcUI7d0JBQ3pELG1DQUFtQyxFQUFFLHNCQUFzQjtxQkFDNUQ7b0JBQ0QsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsZ0JBQWdCLEVBQUUsQ0FBQztpQkFDOUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBib29sZWFuQXR0cmlidXRlLFxuICBEZXN0cm95UmVmLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIG1vZGVsLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgb3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElSZWN0LCBJU2l6ZSwgUG9pbnRFeHRlbnNpb25zIH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQgeyBOb3RpZnlUcmFuc2Zvcm1DaGFuZ2VkUmVxdWVzdCB9IGZyb20gJy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQgeyBGX05PREUsIEZOb2RlQmFzZSB9IGZyb20gJy4vZi1ub2RlLWJhc2UnO1xuaW1wb3J0IHsgSUhhc0hvc3RFbGVtZW50IH0gZnJvbSAnLi4vaS1oYXMtaG9zdC1lbGVtZW50JztcbmltcG9ydCB7XG4gIEFkZE5vZGVUb1N0b3JlUmVxdWVzdCxcbiAgVXBkYXRlTm9kZVdoZW5TdGF0ZU9yU2l6ZUNoYW5nZWRSZXF1ZXN0LFxuICBSZW1vdmVOb2RlRnJvbVN0b3JlUmVxdWVzdCxcbiAgQ2FsY3VsYXRlQ29ubmVjdG9yc0Nvbm5lY3RhYmxlU2lkZXNSZXF1ZXN0LFxufSBmcm9tICcuLi9kb21haW4nO1xuaW1wb3J0IHsgc3RyaW5nQXR0cmlidXRlIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgRk1lZGlhdG9yIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5cbmxldCB1bmlxdWVJZCA9IDA7XG5jb25zdCBfREVCT1VOQ0VfVElNRSA9IDM7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tmTm9kZV0nLFxuICBleHBvcnRBczogJ2ZDb21wb25lbnQnLFxuICBob3N0OiB7XG4gICAgJ1thdHRyLmRhdGEtZi1ub2RlLWlkXSc6ICdmSWQoKScsXG4gICAgY2xhc3M6ICdmLW5vZGUgZi1jb21wb25lbnQnLFxuICAgICdbY2xhc3MuZi1ub2RlLWRyYWdnaW5nLWRpc2FibGVkXSc6ICdmRHJhZ2dpbmdEaXNhYmxlZCgpJyxcbiAgICAnW2NsYXNzLmYtbm9kZS1zZWxlY3Rpb24tZGlzYWJsZWRdJzogJ2ZTZWxlY3Rpb25EaXNhYmxlZCgpJyxcbiAgfSxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBGX05PREUsIHVzZUV4aXN0aW5nOiBGTm9kZURpcmVjdGl2ZSB9XSxcbn0pXG5leHBvcnQgY2xhc3MgRk5vZGVEaXJlY3RpdmVcbiAgZXh0ZW5kcyBGTm9kZUJhc2VcbiAgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIElIYXNIb3N0RWxlbWVudCwgT25EZXN0cm95XG57XG4gIHByaXZhdGUgX2RlYm91bmNlVGltZXI6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfbWVkaWF0b3IgPSBpbmplY3QoRk1lZGlhdG9yKTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgcmVhZG9ubHkgZklkID0gaW5wdXQ8c3RyaW5nLCB1bmtub3duPihgZi1ub2RlLSR7dW5pcXVlSWQrK31gLCB7XG4gICAgYWxpYXM6ICdmTm9kZUlkJyxcbiAgICB0cmFuc2Zvcm06ICh2YWx1ZSkgPT4gc3RyaW5nQXR0cmlidXRlKHZhbHVlKSB8fCBgZi1ub2RlLSR7dW5pcXVlSWQrK31gLFxuICB9KTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgcmVhZG9ubHkgZlBhcmVudElkID0gaW5wdXQ8c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZD4obnVsbCwge1xuICAgIGFsaWFzOiAnZk5vZGVQYXJlbnRJZCcsXG4gIH0pO1xuXG4gIHB1YmxpYyBvdmVycmlkZSByZWFkb25seSBwb3NpdGlvbiA9IG1vZGVsKFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKCksIHtcbiAgICBhbGlhczogJ2ZOb2RlUG9zaXRpb24nLFxuICB9KTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgcmVhZG9ubHkgc2l6ZSA9IGlucHV0PElTaXplIHwgdW5kZWZpbmVkPih1bmRlZmluZWQsIHtcbiAgICBhbGlhczogJ2ZOb2RlU2l6ZScsXG4gIH0pO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBzaXplQ2hhbmdlID0gb3V0cHV0PElSZWN0Pih7IGFsaWFzOiAnZk5vZGVTaXplQ2hhbmdlJyB9KTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgcmVhZG9ubHkgcm90YXRlID0gbW9kZWwoMCwge1xuICAgIGFsaWFzOiAnZk5vZGVSb3RhdGUnLFxuICB9KTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgcmVhZG9ubHkgZkNvbm5lY3RPbk5vZGUgPSBpbnB1dCh0cnVlLCB7XG4gICAgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlLFxuICB9KTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgcmVhZG9ubHkgZk1pbmltYXBDbGFzcyA9IGlucHV0PHN0cmluZ1tdIHwgc3RyaW5nPihbXSk7XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlYWRvbmx5IGZEcmFnZ2luZ0Rpc2FibGVkID0gaW5wdXQoZmFsc2UsIHtcbiAgICBhbGlhczogJ2ZOb2RlRHJhZ2dpbmdEaXNhYmxlZCcsXG4gICAgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlLFxuICB9KTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgcmVhZG9ubHkgZlNlbGVjdGlvbkRpc2FibGVkID0gaW5wdXQoZmFsc2UsIHtcbiAgICBhbGlhczogJ2ZOb2RlU2VsZWN0aW9uRGlzYWJsZWQnLFxuICAgIHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSxcbiAgfSk7XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlYWRvbmx5IGZJbmNsdWRlUGFkZGluZyA9IGlucHV0KHRydWUsIHtcbiAgICB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUsXG4gIH0pO1xuXG4gIHB1YmxpYyBvdmVycmlkZSByZWFkb25seSBmQXV0b0V4cGFuZE9uQ2hpbGRIaXQgPSBpbnB1dChmYWxzZSwge1xuICAgIHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSxcbiAgfSk7XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlYWRvbmx5IGZBdXRvU2l6ZVRvRml0Q2hpbGRyZW4gPSBpbnB1dChmYWxzZSwge1xuICAgIHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSxcbiAgfSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9wcmVmZXItaW5qZWN0XG4gICAgZWxlbWVudFJlZmVyZW5jZTogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICkge1xuICAgIHN1cGVyKGVsZW1lbnRSZWZlcmVuY2UubmF0aXZlRWxlbWVudCk7XG4gICAgc3VwZXIucG9zaXRpb25DaGFuZ2VzKCk7XG4gICAgc3VwZXIuc2l6ZUNoYW5nZXMoKTtcbiAgICBzdXBlci5yb3RhdGVDaGFuZ2VzKCk7XG4gICAgc3VwZXIucGFyZW50Q2hhbmdlcygpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0U3R5bGUoJ3Bvc2l0aW9uJywgJ2Fic29sdXRlJyk7XG4gICAgdGhpcy5zZXRTdHlsZSgndHJhbnNmb3JtLW9yaWdpbicsICdjZW50ZXInKTtcbiAgICB0aGlzLnNldFN0eWxlKCd1c2VyLXNlbGVjdCcsICdub25lJyk7XG4gICAgdGhpcy5zZXRTdHlsZSgncG9pbnRlci1ldmVudHMnLCAnYWxsJyk7XG4gICAgdGhpcy5zZXRTdHlsZSgnbGVmdCcsICcwJyk7XG4gICAgdGhpcy5zZXRTdHlsZSgndG9wJywgJzAnKTtcbiAgICBzdXBlci5yZWRyYXcoKTtcblxuICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8dm9pZD4obmV3IEFkZE5vZGVUb1N0b3JlUmVxdWVzdCh0aGlzKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgc2V0U3R5bGUoc3R5bGVOYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuaG9zdEVsZW1lbnQsIHN0eWxlTmFtZSwgdmFsdWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbW92ZVN0eWxlKHN0eWxlTmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5yZW5kZXJlci5yZW1vdmVTdHlsZSh0aGlzLmhvc3RFbGVtZW50LCBzdHlsZU5hbWUpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlZHJhdygpOiB2b2lkIHtcbiAgICBzdXBlci5yZWRyYXcoKTtcbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlKG5ldyBOb3RpZnlUcmFuc2Zvcm1DaGFuZ2VkUmVxdWVzdCgpKTtcbiAgICB0aGlzLl91cGRhdGVDb25uZWN0b3JzU2lkZXMoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfdXBkYXRlQ29ubmVjdG9yc1NpZGVzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9kZWJvdW5jZVRpbWVyKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5fZGVib3VuY2VUaW1lcik7XG4gICAgfVxuICAgIHRoaXMuX2RlYm91bmNlVGltZXIgPSBzZXRUaW1lb3V0KFxuICAgICAgKCkgPT4gdGhpcy5fY2FsY3VsYXRlTm9kZUNvbm5lY3RvcnNDb25uZWN0YWJsZVNpZGVzKCksXG4gICAgICBfREVCT1VOQ0VfVElNRSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2FsY3VsYXRlTm9kZUNvbm5lY3RvcnNDb25uZWN0YWJsZVNpZGVzKCk6IHZvaWQge1xuICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8dm9pZD4obmV3IENhbGN1bGF0ZUNvbm5lY3RvcnNDb25uZWN0YWJsZVNpZGVzUmVxdWVzdCh0aGlzKSk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5icm93c2VyLmlzQnJvd3NlcigpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX2xpc3RlblN0YXRlU2l6ZUNoYW5nZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2xpc3RlblN0YXRlU2l6ZUNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZTx2b2lkPihcbiAgICAgIG5ldyBVcGRhdGVOb2RlV2hlblN0YXRlT3JTaXplQ2hhbmdlZFJlcXVlc3QodGhpcywgdGhpcy5fZGVzdHJveVJlZiksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSByZWZyZXNoKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5vdGlmeSgpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8dm9pZD4obmV3IFJlbW92ZU5vZGVGcm9tU3RvcmVSZXF1ZXN0KHRoaXMpKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,11 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class FConnectorsStore {
4
+ _connectors = {};
5
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectorsStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
6
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectorsStore });
7
+ }
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectorsStore, decorators: [{
9
+ type: Injectable
10
+ }] });
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb25uZWN0b3JzLXN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLXN0b3JhZ2UvZi1jb25uZWN0b3JzLXN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSTNDLE1BQU0sT0FBTyxnQkFBZ0I7SUFDVixXQUFXLEdBQXNELEVBQUUsQ0FBQzt3R0FEMUUsZ0JBQWdCOzRHQUFoQixnQkFBZ0I7OzRGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFRkNvbm5lY3RhYmxlU2lkZSB9IGZyb20gJy4uL2YtY29ubmVjdG9ycyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBGQ29ubmVjdG9yc1N0b3JlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBfY29ubmVjdG9yczogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgRUZDb25uZWN0YWJsZVNpZGU+PiA9IHt9O1xufVxuIl19
@@ -4,5 +4,6 @@ export * from './features/listen-count-changes';
4
4
  export * from './features/listen-transform-changes';
5
5
  export * from './features/notify-transform-changed';
6
6
  export * from './f-components-store';
7
+ export * from './f-connectors-store';
7
8
  export * from './providers';
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2Ytc3RvcmFnZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdDQUFnQyxDQUFDO0FBRS9DLGNBQWMsMkNBQTJDLENBQUM7QUFFMUQsY0FBYyxpQ0FBaUMsQ0FBQztBQUVoRCxjQUFjLHFDQUFxQyxDQUFDO0FBRXBELGNBQWMscUNBQXFDLENBQUM7QUFFcEQsY0FBYyxzQkFBc0IsQ0FBQztBQUVyQyxjQUFjLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZmVhdHVyZXMvbm90aWZ5LWRhdGEtY2hhbmdlZCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZmVhdHVyZXMvbGlzdGVuLWNvbXBvbmVudHMtZGF0YS1jaGFuZ2VkJztcblxuZXhwb3J0ICogZnJvbSAnLi9mZWF0dXJlcy9saXN0ZW4tY291bnQtY2hhbmdlcyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZmVhdHVyZXMvbGlzdGVuLXRyYW5zZm9ybS1jaGFuZ2VzJztcblxuZXhwb3J0ICogZnJvbSAnLi9mZWF0dXJlcy9ub3RpZnktdHJhbnNmb3JtLWNoYW5nZWQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2YtY29tcG9uZW50cy1zdG9yZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vcHJvdmlkZXJzJztcbiJdfQ==
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2Ytc3RvcmFnZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdDQUFnQyxDQUFDO0FBRS9DLGNBQWMsMkNBQTJDLENBQUM7QUFFMUQsY0FBYyxpQ0FBaUMsQ0FBQztBQUVoRCxjQUFjLHFDQUFxQyxDQUFDO0FBRXBELGNBQWMscUNBQXFDLENBQUM7QUFFcEQsY0FBYyxzQkFBc0IsQ0FBQztBQUVyQyxjQUFjLHNCQUFzQixDQUFDO0FBRXJDLGNBQWMsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9mZWF0dXJlcy9ub3RpZnktZGF0YS1jaGFuZ2VkJztcblxuZXhwb3J0ICogZnJvbSAnLi9mZWF0dXJlcy9saXN0ZW4tY29tcG9uZW50cy1kYXRhLWNoYW5nZWQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2ZlYXR1cmVzL2xpc3Rlbi1jb3VudC1jaGFuZ2VzJztcblxuZXhwb3J0ICogZnJvbSAnLi9mZWF0dXJlcy9saXN0ZW4tdHJhbnNmb3JtLWNoYW5nZXMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2ZlYXR1cmVzL25vdGlmeS10cmFuc2Zvcm0tY2hhbmdlZCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZi1jb21wb25lbnRzLXN0b3JlJztcblxuZXhwb3J0ICogZnJvbSAnLi9mLWNvbm5lY3RvcnMtc3RvcmUnO1xuXG5leHBvcnQgKiBmcm9tICcuL3Byb3ZpZGVycyc7XG4iXX0=
@@ -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 FConnectionTextPathDirective | typeof FConnectionTextComponent | typeof FConnectionDragHandleStartComponent | typeof FConnectionDragHandleEndComponent | typeof FConnectionGradientComponent | typeof FConnectionPathComponent | typeof FConnectionSelectionComponent | typeof FConnectionCenterDirective | typeof FConnectionForCreateComponent | typeof FConnectionComponent | typeof FMarkerDirective | typeof FSnapConnectionComponent)[];
7
+ export declare const F_CONNECTION_PROVIDERS: (typeof FConnectionDragHandleStartComponent | typeof FConnectionDragHandleEndComponent | typeof FConnectionSelectionComponent | typeof FConnectionCenterDirective | typeof FSnapConnectionComponent | typeof FConnectionComponent | typeof FConnectionForCreateComponent | typeof FConnectionTextPathDirective | typeof FConnectionTextComponent | typeof FConnectionGradientComponent | typeof FConnectionPathComponent | typeof FMarkerDirective)[];
@@ -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 FNodeOutputDirective | typeof FNodeInputDirective | typeof FNodeOutletDirective)[];
@@ -0,0 +1,8 @@
1
+ import { FEventTrigger } from '../../../../domain';
2
+ import { IPointerEvent } from '../../../../drag-toolkit';
3
+ export declare class CreateConnectionPreparationRequest {
4
+ readonly event: IPointerEvent;
5
+ readonly fTrigger: FEventTrigger;
6
+ static readonly fToken: unique symbol;
7
+ constructor(event: IPointerEvent, fTrigger: FEventTrigger);
8
+ }
@@ -0,0 +1,16 @@
1
+ import { IHandler } from '@foblex/mediator';
2
+ import { CreateConnectionPreparationRequest } from './create-connection-preparation-request';
3
+ import * as i0 from "@angular/core";
4
+ export declare class CreateConnectionPreparation implements IHandler<CreateConnectionPreparationRequest, void> {
5
+ private readonly _mediator;
6
+ private readonly _store;
7
+ private readonly _dragContext;
8
+ private _node;
9
+ handle(request: CreateConnectionPreparationRequest): void;
10
+ private _isValid;
11
+ private _getNode;
12
+ private _isValidConditions;
13
+ private _isValidTrigger;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<CreateConnectionPreparation, never>;
15
+ static ɵprov: i0.ɵɵInjectableDeclaration<CreateConnectionPreparation>;
16
+ }
@@ -0,0 +1,8 @@
1
+ import { FNodeBase } from '../../../../../f-node';
2
+ import { IPointerEvent } from '../../../../../drag-toolkit';
3
+ export declare class CreateConnectionFromOutputPreparationRequest {
4
+ readonly event: IPointerEvent;
5
+ readonly node: FNodeBase;
6
+ static readonly fToken: unique symbol;
7
+ constructor(event: IPointerEvent, node: FNodeBase);
8
+ }
@@ -0,0 +1,14 @@
1
+ import { IHandler } from '@foblex/mediator';
2
+ import { CreateConnectionFromOutputPreparationRequest } from './create-connection-from-output-preparation-request';
3
+ import * as i0 from "@angular/core";
4
+ export declare class CreateConnectionFromOutputPreparation implements IHandler<CreateConnectionFromOutputPreparationRequest, void> {
5
+ private readonly _mediator;
6
+ private readonly _store;
7
+ handle(request: CreateConnectionFromOutputPreparationRequest): void;
8
+ private _isValid;
9
+ private _isNodeOutput;
10
+ private _getNodeOutlets;
11
+ private _getOutput;
12
+ static ɵfac: i0.ɵɵFactoryDeclaration<CreateConnectionFromOutputPreparation, never>;
13
+ static ɵprov: i0.ɵɵInjectableDeclaration<CreateConnectionFromOutputPreparation>;
14
+ }
@@ -1,2 +1,2 @@
1
- export * from './f-create-connection-from-output-preparation.execution';
2
- export * from './f-create-connection-from-output-preparation.request';
1
+ export * from './create-connection-from-output-preparation';
2
+ export * from './create-connection-from-output-preparation-request';
@@ -1,5 +1,5 @@
1
1
  export * from './drag-handler-preparation';
2
2
  export * from './from-outlet-preparation';
3
3
  export * from './from-output-preparation';
4
- export * from './f-create-connection-preparation.execution';
5
- export * from './f-create-connection-preparation.request';
4
+ export * from './create-connection-preparation';
5
+ export * from './create-connection-preparation-request';
@@ -1,3 +1,3 @@
1
- import { FCreateConnectionDragHandlerPreparationExecution, FCreateConnectionFinalizeExecution, FCreateConnectionFromOutletPreparationExecution, FCreateConnectionFromOutputPreparationExecution, FCreateConnectionPreparationExecution, GetFirstConnectableOutputExecution } from './f-create-connection';
1
+ import { FCreateConnectionDragHandlerPreparationExecution, FCreateConnectionFinalizeExecution, FCreateConnectionFromOutletPreparationExecution, CreateConnectionFromOutputPreparation, CreateConnectionPreparation, GetFirstConnectableOutputExecution } from './f-create-connection';
2
2
  import { FReassignConnectionFinalizeExecution, FReassignConnectionPreparationExecution } from './f-reassign-connection';
3
- export declare const CONNECTIONS_PROVIDERS: (typeof GetFirstConnectableOutputExecution | typeof FCreateConnectionFinalizeExecution | typeof FCreateConnectionDragHandlerPreparationExecution | typeof FCreateConnectionFromOutletPreparationExecution | typeof FCreateConnectionFromOutputPreparationExecution | typeof FReassignConnectionFinalizeExecution | typeof FReassignConnectionPreparationExecution | typeof FCreateConnectionPreparationExecution)[];
3
+ export declare const CONNECTIONS_PROVIDERS: (typeof CreateConnectionFromOutputPreparation | typeof CreateConnectionPreparation | typeof FCreateConnectionFinalizeExecution | typeof FCreateConnectionDragHandlerPreparationExecution | typeof FCreateConnectionFromOutletPreparationExecution | typeof GetFirstConnectableOutputExecution | typeof FReassignConnectionFinalizeExecution | typeof FReassignConnectionPreparationExecution)[];
@@ -1,6 +1,6 @@
1
- import { IPointerEvent } from "../../../drag-toolkit";
1
+ import { IPointerEvent } from '../../../drag-toolkit';
2
2
  export declare class DropToGroupPreparationRequest {
3
- event: IPointerEvent;
3
+ readonly event: IPointerEvent;
4
4
  static readonly fToken: unique symbol;
5
5
  constructor(event: IPointerEvent);
6
6
  }
@@ -1,4 +1,4 @@
1
1
  import { DropToGroupPreparation } from './drop-to-group-preparation';
2
2
  import { DropToGroupFinalize } from './drop-to-group-finalize';
3
3
  import { SortContainersForDropByLayer } from './sort-containers-for-drop-by-layer';
4
- export declare const NODE_DROP_TO_GROUP_PROVIDERS: (typeof DropToGroupFinalize | typeof SortContainersForDropByLayer | typeof DropToGroupPreparation)[];
4
+ export declare const NODE_DROP_TO_GROUP_PROVIDERS: (typeof DropToGroupPreparation | typeof SortContainersForDropByLayer | typeof DropToGroupFinalize)[];
@@ -5,4 +5,4 @@ import { BuildDragHierarchy } from "./build-drag-hierarchy";
5
5
  import { CalculateDragLimits } from "./calculate-drag-limits";
6
6
  import { CreateSummaryDragHandler } from "./create-summary-drag-handler";
7
7
  import { GetNodeBoundingIncludePaddings } from "./get-node-bounding-include-paddings";
8
- export declare const CREATE_MOVE_NODE_DRAG_MODEL_FROM_SELECTION_PROVIDERS: (typeof BuildDragHierarchy | typeof GetNodeBoundingIncludePaddings | typeof CalculateDragLimits | typeof CreateSummaryDragHandler | typeof CreateInputConnectionHandlerAndSetToNodeHandler | typeof CreateOutputConnectionHandlerAndSetToNodeHandler | typeof CreateDragModelFromSelection)[];
8
+ export declare const CREATE_MOVE_NODE_DRAG_MODEL_FROM_SELECTION_PROVIDERS: (typeof BuildDragHierarchy | typeof CalculateDragLimits | typeof CreateSummaryDragHandler | typeof CreateInputConnectionHandlerAndSetToNodeHandler | typeof CreateOutputConnectionHandlerAndSetToNodeHandler | typeof GetNodeBoundingIncludePaddings | typeof CreateDragModelFromSelection)[];
@@ -5,7 +5,7 @@ export declare class FNodeMovePreparationExecution implements IExecution<FNodeMo
5
5
  private readonly _mediator;
6
6
  private readonly _store;
7
7
  private readonly _dragContext;
8
- private get _transform();
8
+ private get _scale();
9
9
  private get _fHost();
10
10
  private _fNode;
11
11
  handle({ event, fTrigger }: FNodeMovePreparationRequest): void;
@@ -1,5 +1,5 @@
1
1
  import { FEventTrigger } from '../../../domain';
2
- import { IPointerEvent } from "../../../drag-toolkit";
2
+ import { IPointerEvent } from '../../../drag-toolkit';
3
3
  export declare class FNodeMovePreparationRequest {
4
4
  event: IPointerEvent;
5
5
  fTrigger: FEventTrigger;
@@ -1,4 +1,4 @@
1
1
  import { FNodeMoveFinalizeExecution } from './move-finalize';
2
2
  import { FNodeMovePreparationExecution } from './move-preparation';
3
3
  import { CreateSnapLines } from './create-snap-lines';
4
- export declare const NODE_PROVIDERS: (typeof import("./create-drag-model-from-selection").BuildDragHierarchy | typeof import("./create-drag-model-from-selection").GetNodeBoundingIncludePaddings | typeof import("./create-drag-model-from-selection").CalculateDragLimits | typeof import("./create-drag-model-from-selection").CreateSummaryDragHandler | typeof import("./create-drag-model-from-selection").CreateInputConnectionHandlerAndSetToNodeHandler | typeof import("./create-drag-model-from-selection").CreateOutputConnectionHandlerAndSetToNodeHandler | typeof import("./create-drag-model-from-selection").CreateDragModelFromSelection | typeof CreateSnapLines | typeof FNodeMovePreparationExecution | typeof FNodeMoveFinalizeExecution)[];
4
+ export declare const NODE_PROVIDERS: (typeof FNodeMovePreparationExecution | typeof import("./create-drag-model-from-selection").BuildDragHierarchy | typeof import("./create-drag-model-from-selection").CalculateDragLimits | typeof import("./create-drag-model-from-selection").CreateSummaryDragHandler | typeof import("./create-drag-model-from-selection").CreateInputConnectionHandlerAndSetToNodeHandler | typeof import("./create-drag-model-from-selection").CreateOutputConnectionHandlerAndSetToNodeHandler | typeof import("./create-drag-model-from-selection").GetNodeBoundingIncludePaddings | typeof import("./create-drag-model-from-selection").CreateDragModelFromSelection | typeof CreateSnapLines | typeof FNodeMoveFinalizeExecution)[];
@@ -1 +1 @@
1
- export declare const F_DRAGGABLE_PROVIDERS: (typeof import("./domain").GetNormalizedParentNodeRectExecution | typeof import("./domain").IsArrayHasParentNodeExecution | typeof import("./domain").IsConnectionUnderNodeExecution | typeof import("./f-canvas").FCanvasMoveFinalizeExecution | typeof import("./f-canvas").FCanvasMovePreparationExecution | typeof import("./f-connection").GetFirstConnectableOutputExecution | typeof import("./f-connection").FCreateConnectionFinalizeExecution | typeof import("./f-connection").FCreateConnectionDragHandlerPreparationExecution | typeof import("./f-connection").FCreateConnectionFromOutletPreparationExecution | typeof import("./f-connection").FCreateConnectionFromOutputPreparationExecution | typeof import("../f-external-item").FExternalItemCreatePlaceholderExecution | typeof import("../f-external-item").FExternalItemCreatePreviewExecution | typeof import("../f-external-item").FExternalItemFinalizeExecution | typeof import("../f-external-item").FExternalItemPreparationExecution | typeof import("../f-external-item").PreventDefaultIsExternalItemExecution | typeof import("./f-node-move").BuildDragHierarchy | typeof import("./f-node-move").GetNodeBoundingIncludePaddings | typeof import("./f-node-move").CalculateDragLimits | typeof import("./f-node-move").CreateSummaryDragHandler | typeof import("./f-node-move").CreateInputConnectionHandlerAndSetToNodeHandler | typeof import("./f-node-move").CreateOutputConnectionHandlerAndSetToNodeHandler | typeof import("./f-node-move").CreateDragModelFromSelection | typeof import("./f-node-move").CreateSnapLines | typeof import("./f-node-move").FNodeMovePreparationExecution | typeof import("./f-node-move").FNodeMoveFinalizeExecution | typeof import("./f-drop-to-group").DropToGroupFinalize | typeof import("./f-drop-to-group").SortContainersForDropByLayer | typeof import("./f-drop-to-group").DropToGroupPreparation | typeof import("./f-connection").FReassignConnectionFinalizeExecution | typeof import("./f-connection").FReassignConnectionPreparationExecution | typeof import("./f-connection").FCreateConnectionPreparationExecution | typeof import("./f-node-resize").ApplyChildResizeConstraints | typeof import("./f-node-resize").ApplyParentResizeConstraints | typeof import("./f-node-resize").CalculateChangedRectFromDifference | typeof import("./f-node-resize").CalculateDirectChildrenUnionRect | typeof import("./f-node-resize").CalculateResizeLimits | typeof import("./f-node-resize").NodeResizeFinalize | typeof import("./f-node-resize").NodeResizePreparation | typeof import("./f-node-rotate").FNodeRotateFinalizeExecution | typeof import("./f-node-rotate").FNodeRotatePreparationExecution | typeof import("./f-single-select").FSingleSelectExecution | typeof import("@foblex/flow").CalculateFlowPointFromMinimapPointExecution | typeof import("@foblex/flow").MinimapDragPreparationExecution | typeof import("@foblex/flow").MinimapDragFinalizeExecution | typeof import("@foblex/flow").MinimapDrawNodesExecution | typeof import("@foblex/flow").MinimapCalculateViewBoxExecution | typeof import("@foblex/flow").MinimapCalculateSvgScaleAndViewBoxExecution | typeof import("../f-selection-area").SelectionAreaFinalizeExecution | typeof import("../f-selection-area").SelectionAreaPreparationExecution)[];
1
+ export declare const F_DRAGGABLE_PROVIDERS: (typeof import("./f-connection").CreateConnectionFromOutputPreparation | typeof import("./f-connection").CreateConnectionPreparation | typeof import("./f-node-move").FNodeMovePreparationExecution | typeof import("./f-drop-to-group").DropToGroupPreparation | typeof import("./f-connection").FCreateConnectionFinalizeExecution | typeof import("./f-connection").FCreateConnectionDragHandlerPreparationExecution | typeof import("./f-connection").FCreateConnectionFromOutletPreparationExecution | typeof import("./f-connection").GetFirstConnectableOutputExecution | typeof import("./f-connection").FReassignConnectionFinalizeExecution | typeof import("./f-connection").FReassignConnectionPreparationExecution | typeof import("./f-canvas").FCanvasMoveFinalizeExecution | typeof import("./f-canvas").FCanvasMovePreparationExecution | typeof import("./domain").GetNormalizedParentNodeRectExecution | typeof import("./domain").IsArrayHasParentNodeExecution | typeof import("./domain").IsConnectionUnderNodeExecution | typeof import("./f-single-select").FSingleSelectExecution | typeof import("../f-external-item").FExternalItemCreatePlaceholderExecution | typeof import("../f-external-item").FExternalItemCreatePreviewExecution | typeof import("../f-external-item").FExternalItemFinalizeExecution | typeof import("../f-external-item").FExternalItemPreparationExecution | typeof import("../f-external-item").PreventDefaultIsExternalItemExecution | typeof import("./f-node-move").BuildDragHierarchy | typeof import("./f-node-move").CalculateDragLimits | typeof import("./f-node-move").CreateSummaryDragHandler | typeof import("./f-node-move").CreateInputConnectionHandlerAndSetToNodeHandler | typeof import("./f-node-move").CreateOutputConnectionHandlerAndSetToNodeHandler | typeof import("./f-node-move").GetNodeBoundingIncludePaddings | typeof import("./f-node-move").CreateDragModelFromSelection | typeof import("./f-node-move").CreateSnapLines | typeof import("./f-node-move").FNodeMoveFinalizeExecution | typeof import("./f-drop-to-group").SortContainersForDropByLayer | typeof import("./f-drop-to-group").DropToGroupFinalize | typeof import("./f-node-resize").ApplyChildResizeConstraints | typeof import("./f-node-resize").ApplyParentResizeConstraints | typeof import("./f-node-resize").CalculateChangedRectFromDifference | typeof import("./f-node-resize").CalculateDirectChildrenUnionRect | typeof import("./f-node-resize").CalculateResizeLimits | typeof import("./f-node-resize").NodeResizeFinalize | typeof import("./f-node-resize").NodeResizePreparation | typeof import("./f-node-rotate").FNodeRotateFinalizeExecution | typeof import("./f-node-rotate").FNodeRotatePreparationExecution | typeof import("../f-selection-area").SelectionAreaPreparationExecution | typeof import("../f-selection-area").SelectionAreaFinalizeExecution | typeof import("@foblex/flow").CalculateFlowPointFromMinimapPointExecution | typeof import("@foblex/flow").MinimapDragFinalizeExecution | typeof import("@foblex/flow").MinimapDragPreparationExecution | typeof import("@foblex/flow").MinimapDrawNodesExecution | typeof import("@foblex/flow").MinimapCalculateSvgScaleAndViewBoxExecution | typeof import("@foblex/flow").MinimapCalculateViewBoxExecution)[];
@@ -2,4 +2,4 @@ import { CalculateFlowPointFromMinimapPointExecution } from './calculate-flow-po
2
2
  import { MinimapDrawNodesExecution } from './minimap-draw-nodes';
3
3
  import { MinimapCalculateViewBoxExecution } from './minimap-calculate-view-box';
4
4
  import { MinimapCalculateSvgScaleAndViewBoxExecution } from './minimap-calculate-svg-scale-and-view-box';
5
- export declare const F_MINIMAP_DRAG_AND_DROP_PROVIDERS: (typeof CalculateFlowPointFromMinimapPointExecution | typeof import("./minimap-drag-preparation").MinimapDragPreparationExecution | typeof import("./minimap-drag-finalize").MinimapDragFinalizeExecution | typeof MinimapDrawNodesExecution | typeof MinimapCalculateViewBoxExecution | typeof MinimapCalculateSvgScaleAndViewBoxExecution)[];
5
+ export declare const F_MINIMAP_DRAG_AND_DROP_PROVIDERS: (typeof CalculateFlowPointFromMinimapPointExecution | typeof import("./minimap-drag-finalize").MinimapDragFinalizeExecution | typeof import("./minimap-drag-preparation").MinimapDragPreparationExecution | typeof MinimapDrawNodesExecution | typeof MinimapCalculateSvgScaleAndViewBoxExecution | typeof MinimapCalculateViewBoxExecution)[];
@@ -2,4 +2,4 @@ import { FMinimapComponent } from './f-minimap.component';
2
2
  import { FMinimapViewDirective } from './f-minimap-view.directive';
3
3
  import { FMinimapFlowDirective } from './f-minimap-flow.directive';
4
4
  import { FMinimapCanvasDirective } from './f-minimap-canvas.directive';
5
- export declare const F_MINIMAP_PROVIDERS: (typeof FMinimapFlowDirective | typeof FMinimapCanvasDirective | typeof FMinimapViewDirective | typeof FMinimapComponent)[];
5
+ export declare const F_MINIMAP_PROVIDERS: (typeof FMinimapComponent | typeof FMinimapCanvasDirective | typeof FMinimapFlowDirective | typeof FMinimapViewDirective)[];
@@ -1,4 +1,4 @@
1
1
  import { FNodeDirective } from './f-node.directive';
2
2
  import { FGroupDirective } from './f-group.directive';
3
3
  import { FRotateHandleDirective } from './f-rotate-handle';
4
- export declare const F_NODE_PROVIDERS: (typeof FRotateHandleDirective | typeof FGroupDirective | typeof FNodeDirective)[];
4
+ export declare const F_NODE_PROVIDERS: (typeof FGroupDirective | typeof FNodeDirective | typeof FRotateHandleDirective)[];
@@ -1,3 +1,3 @@
1
1
  import { SelectionAreaPreparationExecution } from './selection-area-preparation';
2
2
  import { SelectionAreaFinalizeExecution } from './selection-area-finalize';
3
- export declare const F_SELECTION_AREA_DRAG_AND_DROP_PROVIDERS: (typeof SelectionAreaFinalizeExecution | typeof SelectionAreaPreparationExecution)[];
3
+ export declare const F_SELECTION_AREA_DRAG_AND_DROP_PROVIDERS: (typeof SelectionAreaPreparationExecution | typeof SelectionAreaFinalizeExecution)[];
@@ -0,0 +1,6 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class FConnectorsStore {
3
+ private readonly _connectors;
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<FConnectorsStore, never>;
5
+ static ɵprov: i0.ɵɵInjectableDeclaration<FConnectorsStore>;
6
+ }
@@ -4,4 +4,5 @@ export * from './features/listen-count-changes';
4
4
  export * from './features/listen-transform-changes';
5
5
  export * from './features/notify-transform-changed';
6
6
  export * from './f-components-store';
7
+ export * from './f-connectors-store';
7
8
  export * from './providers';
@@ -4,4 +4,4 @@ import { FComponentsStore } from './f-components-store';
4
4
  import { ListenCountChangesExecution } from './features/listen-count-changes';
5
5
  import { ListenTransformChangesExecution } from './features/listen-transform-changes';
6
6
  import { NotifyTransformChangedExecution } from './features/notify-transform-changed';
7
- export declare const F_STORAGE_PROVIDERS: (typeof NotifyDataChangedExecution | typeof FComponentsStore | typeof ListenDataChangesExecution | typeof ListenCountChangesExecution | typeof ListenTransformChangesExecution | typeof NotifyTransformChangedExecution)[];
7
+ export declare const F_STORAGE_PROVIDERS: (typeof FComponentsStore | typeof NotifyDataChangedExecution | typeof ListenCountChangesExecution | typeof ListenDataChangesExecution | typeof ListenTransformChangesExecution | typeof NotifyTransformChangedExecution)[];