@foblex/flow 12.2.0 → 12.2.3

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 (173) hide show
  1. package/domain/create-connection-markers/create-connection-markers-request.d.ts +5 -0
  2. package/domain/create-connection-markers/create-connection-markers.handler.d.ts +10 -0
  3. package/domain/create-connection-markers/index.d.ts +2 -0
  4. package/domain/get-connection.handler.d.ts +1 -1
  5. package/domain/get-element-rect-in-flow/get-element-rect-in-flow.handler.d.ts +1 -1
  6. package/domain/get-incoming-connections.handler.d.ts +1 -1
  7. package/domain/get-input-rect-in-flow/get-input-rect-in-flow.handler.d.ts +1 -1
  8. package/domain/get-nodes-rect/get-nodes-rect.handler.d.ts +1 -1
  9. package/domain/get-outgoing-connections.handler.d.ts +1 -1
  10. package/domain/get-output-rect-in-flow/get-output-rect-in-flow.handler.d.ts +1 -1
  11. package/domain/get-position-in-flow/get-position-in-flow-request.d.ts +5 -0
  12. package/domain/get-position-in-flow/get-position-in-flow.handler.d.ts +13 -0
  13. package/domain/get-position-in-flow/index.d.ts +2 -0
  14. package/domain/index.d.ts +3 -2
  15. package/domain/providers.d.ts +4 -3
  16. package/domain/redraw-connections/redraw-connections.handler.d.ts +2 -1
  17. package/domain/select/select.handler.d.ts +1 -1
  18. package/domain/select-all/select-all.handler.d.ts +1 -1
  19. package/domain/update-item-layer/index.d.ts +2 -0
  20. package/domain/update-item-layer/update-item-layer.handler.d.ts +8 -0
  21. package/domain/update-item-layer/update-item-layer.request.d.ts +6 -0
  22. package/esm2022/domain/create-connection-markers/create-connection-markers-request.mjs +6 -0
  23. package/esm2022/domain/create-connection-markers/create-connection-markers.handler.mjs +49 -0
  24. package/esm2022/domain/create-connection-markers/index.mjs +3 -0
  25. package/esm2022/domain/get-connection.handler.mjs +3 -4
  26. package/esm2022/domain/get-element-rect-in-flow/get-element-rect-in-flow.handler.mjs +3 -4
  27. package/esm2022/domain/get-incoming-connections.handler.mjs +2 -2
  28. package/esm2022/domain/get-input-rect-in-flow/get-input-rect-in-flow.handler.mjs +2 -2
  29. package/esm2022/domain/get-nodes-rect/get-nodes-rect.handler.mjs +2 -2
  30. package/esm2022/domain/get-outgoing-connections.handler.mjs +2 -2
  31. package/esm2022/domain/get-output-rect-in-flow/get-output-rect-in-flow.handler.mjs +2 -2
  32. package/esm2022/domain/get-position-in-flow/get-position-in-flow-request.mjs +6 -0
  33. package/esm2022/domain/get-position-in-flow/get-position-in-flow.handler.mjs +32 -0
  34. package/esm2022/domain/get-position-in-flow/index.mjs +3 -0
  35. package/esm2022/domain/index.mjs +4 -3
  36. package/esm2022/domain/providers.mjs +7 -5
  37. package/esm2022/domain/redraw-connections/redraw-connections.handler.mjs +11 -4
  38. package/esm2022/domain/select/select.handler.mjs +3 -3
  39. package/esm2022/domain/select-all/select-all.handler.mjs +2 -2
  40. package/esm2022/domain/update-item-layer/index.mjs +3 -0
  41. package/esm2022/domain/update-item-layer/update-item-layer.handler.mjs +29 -0
  42. package/esm2022/domain/update-item-layer/update-item-layer.request.mjs +7 -0
  43. package/esm2022/f-backgroud/f-background.component.mjs +4 -4
  44. package/esm2022/f-backgroud/f-circle-pattern/f-circle-pattern.component.mjs +100 -0
  45. package/esm2022/f-backgroud/f-circle-pattern/index.mjs +2 -0
  46. package/esm2022/f-backgroud/f-rect-pattern/f-rect-pattern.component.mjs +118 -0
  47. package/esm2022/f-backgroud/{f-cell-pattern → f-rect-pattern}/index.mjs +2 -2
  48. package/esm2022/f-backgroud/index.mjs +3 -2
  49. package/esm2022/f-canvas/f-canvas.component.mjs +4 -4
  50. package/esm2022/f-canvas/f-zoom/f-zoom-base.mjs +1 -1
  51. package/esm2022/f-canvas/f-zoom/f-zoom.directive.mjs +2 -2
  52. package/esm2022/f-connection/common/domain/calculate-connection-center/calculate-connection-center.handler.mjs +2 -3
  53. package/esm2022/f-connection/common/domain/f-bezier.path-builder.mjs +2 -2
  54. package/esm2022/f-connection/common/domain/f-segment.path-builder.mjs +2 -2
  55. package/esm2022/f-connection/common/domain/f-straight.path-builder.mjs +2 -2
  56. package/esm2022/f-connection/common/f-connection-base.mjs +4 -36
  57. package/esm2022/f-connection/common/f-path/f-connection-path.component.mjs +11 -15
  58. package/esm2022/f-connection/common/f-path/get-path-marker-id.mjs +15 -0
  59. package/esm2022/f-connection/common/f-path/index.mjs +2 -1
  60. package/esm2022/f-connection/common/mixins/change-connection-selection.mixin.mjs +5 -2
  61. package/esm2022/f-connection/f-connection/f-connection.component.mjs +71 -13
  62. package/esm2022/f-connection/f-connection-for-create/f-connection-for-create.component.mjs +46 -9
  63. package/esm2022/f-connection/f-marker/f-marker-base.mjs +1 -1
  64. package/esm2022/f-connection/f-marker/f-marker.directive.mjs +19 -5
  65. package/esm2022/f-connectors/f-node-input/f-node-input.directive.mjs +5 -7
  66. package/esm2022/f-connectors/f-node-outlet/f-node-outlet.directive.mjs +4 -4
  67. package/esm2022/f-connectors/f-node-output/f-node-output.directive.mjs +5 -4
  68. package/esm2022/f-draggable/canvas/canvas.drag-handler.mjs +1 -1
  69. package/esm2022/f-draggable/canvas/canvas.prepare-drag-sequence.mjs +2 -2
  70. package/esm2022/f-draggable/connections/create-connection/create-connection.on-pointer-up.mjs +14 -16
  71. package/esm2022/f-draggable/connections/create-connection/create-connection.prepare-drag-sequence.mjs +3 -3
  72. package/esm2022/f-draggable/connections/create-connection/f-create-connection.event.mjs +3 -2
  73. package/esm2022/f-draggable/connections/create-connection/find-first-can-be-connected-output-by-outlet/find-first-can-be-connected-output-by-outlet.handler.mjs +2 -2
  74. package/esm2022/f-draggable/connections/find-inputs-under-pointer/find-inputs-under-pointer.handler.mjs +2 -2
  75. package/esm2022/f-draggable/connections/find-inputs-under-pointer/first-not-connected-input-of-node-under-pointer/first-not-connected-input-of-node-under-pointer.handler.mjs +2 -2
  76. package/esm2022/f-draggable/connections/reassign-connection/reassign-connection.on-pointer-up.mjs +2 -2
  77. package/esm2022/f-draggable/connections/reassign-connection/reassign-connection.prepare-drag-sequence.mjs +7 -7
  78. package/esm2022/f-draggable/external-item/external-item.drag-handler.mjs +2 -1
  79. package/esm2022/f-draggable/external-item/external-item.on-pointer-up.mjs +3 -3
  80. package/esm2022/f-draggable/external-item/external-item.prepare-drag-sequence.mjs +2 -2
  81. package/esm2022/f-draggable/f-draggable-base.mjs +8 -1
  82. package/esm2022/f-draggable/f-draggable-data-context.mjs +4 -2
  83. package/esm2022/f-draggable/f-draggable.directive.mjs +11 -2
  84. package/esm2022/f-draggable/node/domain/is-connection-under-node/is-connection-under-node.handler.mjs +2 -2
  85. package/esm2022/f-draggable/node/node.on-pointer-up.mjs +2 -2
  86. package/esm2022/f-draggable/node/node.prepare-drag-sequence.mjs +7 -7
  87. package/esm2022/f-draggable/selection-area/get-can-be-selected-items/get-can-be-selected-items.handler.mjs +2 -2
  88. package/esm2022/f-draggable/selection-area/selection-area.drag-handle.mjs +1 -1
  89. package/esm2022/f-draggable/selection-area/selection-area.prepare-drag-sequence.mjs +2 -2
  90. package/esm2022/f-draggable/single-select/single-select.on-pointer-down.mjs +46 -56
  91. package/esm2022/f-flow/f-flow.component.mjs +12 -10
  92. package/esm2022/f-flow.module.mjs +13 -6
  93. package/esm2022/f-group/f-group-base.mjs +6 -0
  94. package/esm2022/f-group/f-group.directive.mjs +110 -0
  95. package/esm2022/f-group/index.mjs +4 -0
  96. package/esm2022/f-group/is-group.mjs +4 -0
  97. package/esm2022/f-line-alignment/f-line-alignment.component.mjs +2 -2
  98. package/esm2022/f-node/f-node-base.mjs +1 -1
  99. package/esm2022/f-node/f-node.directive.mjs +14 -11
  100. package/esm2022/f-storage/f-components-store.mjs +41 -0
  101. package/esm2022/f-storage/index.mjs +2 -0
  102. package/esm2022/public-api.mjs +3 -3
  103. package/f-backgroud/f-background.component.d.ts +1 -1
  104. package/f-backgroud/f-circle-pattern/f-circle-pattern.component.d.ts +32 -0
  105. package/f-backgroud/f-circle-pattern/index.d.ts +1 -0
  106. package/f-backgroud/f-rect-pattern/f-rect-pattern.component.d.ts +37 -0
  107. package/f-backgroud/f-rect-pattern/index.d.ts +1 -0
  108. package/f-backgroud/index.d.ts +2 -1
  109. package/f-canvas/f-canvas.component.d.ts +2 -2
  110. package/f-canvas/f-zoom/f-zoom-base.d.ts +1 -1
  111. package/f-canvas/f-zoom/f-zoom.directive.d.ts +1 -1
  112. package/f-connection/common/f-connection-base.d.ts +4 -5
  113. package/f-connection/common/f-path/f-connection-path.component.d.ts +1 -2
  114. package/f-connection/common/f-path/get-path-marker-id.d.ts +4 -0
  115. package/f-connection/common/f-path/index.d.ts +1 -0
  116. package/f-connection/common/mixins/change-connection-selection.mixin.d.ts +1 -0
  117. package/f-connection/f-connection/f-connection.component.d.ts +27 -11
  118. package/f-connection/f-connection-for-create/f-connection-for-create.component.d.ts +17 -7
  119. package/f-connection/f-marker/f-marker-base.d.ts +2 -0
  120. package/f-connection/f-marker/f-marker.directive.d.ts +10 -4
  121. package/f-connectors/f-node-input/f-node-input.directive.d.ts +1 -1
  122. package/f-connectors/f-node-outlet/f-node-outlet.directive.d.ts +1 -1
  123. package/f-connectors/f-node-output/f-node-output.directive.d.ts +1 -1
  124. package/f-draggable/canvas/canvas.drag-handler.d.ts +1 -1
  125. package/f-draggable/canvas/canvas.prepare-drag-sequence.d.ts +1 -1
  126. package/f-draggable/connections/create-connection/create-connection.on-pointer-up.d.ts +1 -1
  127. package/f-draggable/connections/create-connection/create-connection.prepare-drag-sequence.d.ts +1 -1
  128. package/f-draggable/connections/create-connection/f-create-connection.event.d.ts +4 -2
  129. package/f-draggable/connections/create-connection/find-first-can-be-connected-output-by-outlet/find-first-can-be-connected-output-by-outlet.handler.d.ts +1 -1
  130. package/f-draggable/connections/find-inputs-under-pointer/find-inputs-under-pointer.handler.d.ts +1 -1
  131. package/f-draggable/connections/find-inputs-under-pointer/first-not-connected-input-of-node-under-pointer/first-not-connected-input-of-node-under-pointer.handler.d.ts +1 -1
  132. package/f-draggable/connections/providers.d.ts +1 -1
  133. package/f-draggable/connections/reassign-connection/reassign-connection.on-pointer-up.d.ts +1 -1
  134. package/f-draggable/connections/reassign-connection/reassign-connection.prepare-drag-sequence.d.ts +3 -4
  135. package/f-draggable/external-item/external-item.on-pointer-up.d.ts +1 -1
  136. package/f-draggable/external-item/external-item.prepare-drag-sequence.d.ts +1 -1
  137. package/f-draggable/external-item/providers.d.ts +1 -1
  138. package/f-draggable/f-draggable-base.d.ts +2 -0
  139. package/f-draggable/f-draggable-data-context.d.ts +1 -0
  140. package/f-draggable/f-draggable.directive.d.ts +2 -1
  141. package/f-draggable/node/domain/is-connection-under-node/is-connection-under-node.handler.d.ts +1 -1
  142. package/f-draggable/node/node.on-pointer-up.d.ts +1 -1
  143. package/f-draggable/node/node.prepare-drag-sequence.d.ts +3 -4
  144. package/f-draggable/node/providers.d.ts +1 -1
  145. package/f-draggable/selection-area/get-can-be-selected-items/get-can-be-selected-items.handler.d.ts +1 -1
  146. package/f-draggable/selection-area/selection-area.drag-handle.d.ts +1 -1
  147. package/f-draggable/selection-area/selection-area.prepare-drag-sequence.d.ts +1 -1
  148. package/f-draggable/single-select/single-select.on-pointer-down.d.ts +12 -7
  149. package/f-flow/f-flow.component.d.ts +4 -2
  150. package/f-flow.module.d.ts +18 -16
  151. package/f-group/f-group-base.d.ts +6 -0
  152. package/f-group/f-group.directive.d.ts +31 -0
  153. package/f-group/index.d.ts +3 -0
  154. package/f-group/is-group.d.ts +1 -0
  155. package/f-line-alignment/f-line-alignment.component.d.ts +1 -1
  156. package/f-node/f-node-base.d.ts +1 -1
  157. package/f-node/f-node.directive.d.ts +3 -3
  158. package/{f-components-store.d.ts → f-storage/f-components-store.d.ts} +12 -17
  159. package/f-storage/index.d.ts +1 -0
  160. package/fesm2022/foblex-flow.mjs +772 -406
  161. package/fesm2022/foblex-flow.mjs.map +1 -1
  162. package/package.json +1 -1
  163. package/public-api.d.ts +2 -2
  164. package/domain/update-connection-layer.handler.d.ts +0 -12
  165. package/domain/update-node-layer.handler.d.ts +0 -12
  166. package/esm2022/domain/update-connection-layer.handler.mjs +0 -29
  167. package/esm2022/domain/update-node-layer.handler.mjs +0 -29
  168. package/esm2022/f-backgroud/f-cell-pattern/f-cell-pattern.component.mjs +0 -90
  169. package/esm2022/f-components-store.mjs +0 -68
  170. package/esm2022/get-flow-uid.mjs +0 -8
  171. package/f-backgroud/f-cell-pattern/f-cell-pattern.component.d.ts +0 -31
  172. package/f-backgroud/f-cell-pattern/index.d.ts +0 -1
  173. package/get-flow-uid.d.ts +0 -4
@@ -4,7 +4,7 @@ import { LineService, NearestCoordinateFinder } from './domain';
4
4
  import { F_LINE_ALIGNMENT, FLineAlignmentBase } from './f-line-alignment-base';
5
5
  import { GetElementRectInFlowRequest } from '../domain';
6
6
  import * as i0 from "@angular/core";
7
- import * as i1 from "../f-components-store";
7
+ import * as i1 from "../f-storage";
8
8
  import * as i2 from "../f-draggable";
9
9
  import * as i3 from "../f-mediator";
10
10
  export class FLineAlignmentComponent extends FLineAlignmentBase {
@@ -88,4 +88,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
88
88
  { provide: F_LINE_ALIGNMENT, useExisting: FLineAlignmentComponent }
89
89
  ], styles: [":host{display:block;position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;pointer-events:none;-webkit-user-select:none;user-select:none}\n"] }]
90
90
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.FComponentsStore }, { type: i2.FDraggableDataContext }, { type: i3.FFlowMediator }] });
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1saW5lLWFsaWdubWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtbGluZS1hbGlnbm1lbnQvZi1saW5lLWFsaWdubWVudC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBc0IsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUF5QyxjQUFjLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3JHLE9BQU8sRUFBd0IsV0FBVyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBSy9FLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7Ozs7QUFjeEQsTUFBTSxPQUFPLHVCQUF3QixTQUFRLGtCQUFrQjtJQUU3RCxJQUFvQixXQUFXO1FBQzdCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQztJQUM3QyxDQUFDO0lBVUQsSUFBWSxTQUFTO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQVEsQ0FBQyxTQUFTLENBQUM7SUFDbEQsQ0FBQztJQUVELElBQVksUUFBUTtRQUNsQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFNLENBQUMsV0FBVyxDQUFDO0lBQ2xELENBQUM7SUFFRCxZQUNZLGdCQUF5QyxFQUN6QyxnQkFBa0MsRUFDbEMscUJBQTRDLEVBQzVDLFNBQXdCO1FBRWxDLEtBQUssRUFBRSxDQUFDO1FBTEUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUF5QjtRQUN6QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFDNUMsY0FBUyxHQUFULFNBQVMsQ0FBZTtRQWxC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QUFFLENBQUM7UUFDbEQsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixFQUFFLENBQUM7UUFFbEQsTUFBTSxNQUFNLEdBQXlCLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQzFELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFZSxRQUFRO1FBQ3RCLElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUNwQyxJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDeEMsQ0FBQzs4R0FwRlUsdUJBQXVCO2tHQUF2Qix1QkFBdUIscUdBSnZCO1lBQ1QsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLHVCQUF1QixFQUFFO1NBQ3BFLDJFQVJTLEVBQUU7OzJGQVVELHVCQUF1QjtrQkFabkMsU0FBUzsrQkFDRSxrQkFBa0IsWUFDbEIsRUFBRSxZQUVGLFlBQVksUUFDaEI7d0JBQ0osT0FBTyxFQUFFLDhCQUE4QjtxQkFDeEMsYUFDVTt3QkFDVCxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLHlCQUF5QixFQUFFO3FCQUNwRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJUG9pbnQsIElSZWN0LCBJU2l6ZSwgSVRyYW5zZm9ybU1vZGVsLCBSZWN0RXh0ZW5zaW9ucywgU2l6ZUV4dGVuc2lvbnMgfSBmcm9tICdAZm9ibGV4L2NvcmUnO1xuaW1wb3J0IHsgSUxpbmVBbGlnbm1lbnRSZXN1bHQsIExpbmVTZXJ2aWNlLCBOZWFyZXN0Q29vcmRpbmF0ZUZpbmRlciB9IGZyb20gJy4vZG9tYWluJztcbmltcG9ydCB7IEZfTElORV9BTElHTk1FTlQsIEZMaW5lQWxpZ25tZW50QmFzZSB9IGZyb20gJy4vZi1saW5lLWFsaWdubWVudC1iYXNlJztcbmltcG9ydCB7IEZDb21wb25lbnRzU3RvcmUgfSBmcm9tICcuLi9mLWNvbXBvbmVudHMtc3RvcmUnO1xuaW1wb3J0IHsgRkRyYWdnYWJsZURhdGFDb250ZXh0IH0gZnJvbSAnLi4vZi1kcmFnZ2FibGUnO1xuaW1wb3J0IHsgRk5vZGVCYXNlIH0gZnJvbSAnLi4vZi1ub2RlJztcbmltcG9ydCB7IEZGbG93TWVkaWF0b3IgfSBmcm9tICcuLi9mLW1lZGlhdG9yJztcbmltcG9ydCB7IEdldEVsZW1lbnRSZWN0SW5GbG93UmVxdWVzdCB9IGZyb20gJy4uL2RvbWFpbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJmLWxpbmUtYWxpZ25tZW50XCIsXG4gIHRlbXBsYXRlOiBcIlwiLFxuICBzdHlsZVVybHM6IFsgXCIuL2YtbGluZS1hbGlnbm1lbnQuY29tcG9uZW50LnNjc3NcIiBdLFxuICBleHBvcnRBczogXCJmQ29tcG9uZW50XCIsXG4gIGhvc3Q6IHtcbiAgICAnY2xhc3MnOiAnZi1saW5lLWFsaWdubWVudCBmLWNvbXBvbmVudCdcbiAgfSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBGX0xJTkVfQUxJR05NRU5ULCB1c2VFeGlzdGluZzogRkxpbmVBbGlnbm1lbnRDb21wb25lbnQgfVxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGTGluZUFsaWdubWVudENvbXBvbmVudCBleHRlbmRzIEZMaW5lQWxpZ25tZW50QmFzZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgcHVibGljIG92ZXJyaWRlIGdldCBob3N0RWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZmVyZW5jZS5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgcHJpdmF0ZSBsaW5lU2VydmljZTogTGluZVNlcnZpY2U7XG5cbiAgcHJpdmF0ZSBzaXplOiBJU2l6ZSA9IFNpemVFeHRlbnNpb25zLmluaXRpYWxpemUoKTtcblxuICBwcml2YXRlIGRyYWdnZWROb2RlUmVjdDogSVJlY3QgPSBSZWN0RXh0ZW5zaW9ucy5pbml0aWFsaXplKCk7XG5cbiAgcHJpdmF0ZSByZWN0czogSVJlY3RbXSA9IFtdO1xuXG4gIHByaXZhdGUgZ2V0IHRyYW5zZm9ybSgpOiBJVHJhbnNmb3JtTW9kZWwge1xuICAgIHJldHVybiB0aGlzLmZDb21wb25lbnRzU3RvcmUuZkNhbnZhcyEudHJhbnNmb3JtO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgZmxvd0hvc3QoKTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmZDb21wb25lbnRzU3RvcmUuZkZsb3chLmhvc3RFbGVtZW50O1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgICBwcml2YXRlIGVsZW1lbnRSZWZlcmVuY2U6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgcHJpdmF0ZSBmQ29tcG9uZW50c1N0b3JlOiBGQ29tcG9uZW50c1N0b3JlLFxuICAgICAgcHJpdmF0ZSBmRHJhZ2dhYmxlRGF0YUNvbnRleHQ6IEZEcmFnZ2FibGVEYXRhQ29udGV4dCxcbiAgICAgIHByaXZhdGUgZk1lZGlhdG9yOiBGRmxvd01lZGlhdG9yLFxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMubGluZVNlcnZpY2UgPSBuZXcgTGluZVNlcnZpY2UodGhpcy5ob3N0RWxlbWVudCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuZkxpbmVBbGlnbm1lbnQgPSB0aGlzO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGluaXRpYWxpemUoYWxsTm9kZXM6IEZOb2RlQmFzZVtdLCBjdXJyZW50Tm9kZXM6IEZOb2RlQmFzZVtdKTogdm9pZCB7XG4gICAgdGhpcy5zaXplID0gdGhpcy5mbG93SG9zdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICB0aGlzLnJlY3RzID0gW107XG4gICAgY29uc3QgZHJhZ2dlZE5vZGVSZWN0cyA9IGN1cnJlbnROb2Rlcy5tYXAoKHgpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmZNZWRpYXRvci5zZW5kPElSZWN0PihuZXcgR2V0RWxlbWVudFJlY3RJbkZsb3dSZXF1ZXN0KHguaG9zdEVsZW1lbnQpKTtcbiAgICB9KTtcbiAgICB0aGlzLmRyYWdnZWROb2RlUmVjdCA9IFJlY3RFeHRlbnNpb25zLnVuaW9uKGRyYWdnZWROb2RlUmVjdHMpO1xuXG4gICAgY29uc3QgYWxsTm9kZXNFeGNsdWRlQ3VycmVudHMgPSBhbGxOb2Rlcy5maWx0ZXIoKHgpID0+IHtcbiAgICAgIHJldHVybiAhY3VycmVudE5vZGVzLmluY2x1ZGVzKHgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5yZWN0cyA9IGFsbE5vZGVzRXhjbHVkZUN1cnJlbnRzLm1hcCgoeCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuZk1lZGlhdG9yLnNlbmQ8SVJlY3Q+KG5ldyBHZXRFbGVtZW50UmVjdEluRmxvd1JlcXVlc3QoeC5ob3N0RWxlbWVudCkpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGhhbmRsZShkaWZmZXJlbmNlOiBJUG9pbnQpOiB2b2lkIHtcbiAgICB0aGlzLmRyYXdJbnRlcnNlY3RpbmdMaW5lcyhkaWZmZXJlbmNlKTtcbiAgfVxuXG4gIHByaXZhdGUgZHJhd0ludGVyc2VjdGluZ0xpbmVzKGRpZmZlcmVuY2U6IElQb2ludCk6IHZvaWQge1xuICAgIGNvbnN0IGludGVyc2VjdCA9IHRoaXMuZmluZE5lYXJlc3RDb29yZGluYXRlKGRpZmZlcmVuY2UpO1xuICAgIGlmIChpbnRlcnNlY3QueFJlc3VsdC52YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmxpbmVTZXJ2aWNlLmRyYXdWZXJ0aWNhbExpbmUoaW50ZXJzZWN0LnhSZXN1bHQudmFsdWUsIHRoaXMuc2l6ZSwgdGhpcy50cmFuc2Zvcm0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxpbmVTZXJ2aWNlLmhpZGVWZXJ0aWNhbExpbmUoKTtcbiAgICB9XG4gICAgaWYgKGludGVyc2VjdC55UmVzdWx0LnZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMubGluZVNlcnZpY2UuZHJhd0hvcml6b250YWxMaW5lKGludGVyc2VjdC55UmVzdWx0LnZhbHVlLCB0aGlzLnNpemUsIHRoaXMudHJhbnNmb3JtKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5saW5lU2VydmljZS5oaWRlSG9yaXpvbnRhbExpbmUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZmluZE5lYXJlc3RDb29yZGluYXRlKGRpZmZlcmVuY2U6IElQb2ludCk6IElMaW5lQWxpZ25tZW50UmVzdWx0IHtcbiAgICBjb25zdCByZWN0ID0gUmVjdEV4dGVuc2lvbnMuYWRkUG9pbnQodGhpcy5kcmFnZ2VkTm9kZVJlY3QsIGRpZmZlcmVuY2UpO1xuICAgIGNvbnN0IGZpbmRlciA9IG5ldyBOZWFyZXN0Q29vcmRpbmF0ZUZpbmRlcih0aGlzLnJlY3RzLCByZWN0KTtcbiAgICBjb25zdCB4UmVzdWx0ID0gZmluZGVyLmZpbmROZWFyZXN0Q29vcmRpbmF0ZUJ5WCgpO1xuICAgIGNvbnN0IHlSZXN1bHQgPSBmaW5kZXIuZmluZE5lYXJlc3RDb29yZGluYXRlQnlZKCk7XG5cbiAgICBjb25zdCByZXN1bHQ6IElMaW5lQWxpZ25tZW50UmVzdWx0ID0geyB4UmVzdWx0LCB5UmVzdWx0IH07XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb21wbGV0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmxpbmVTZXJ2aWNlLmhpZGVWZXJ0aWNhbExpbmUoKTtcbiAgICB0aGlzLmxpbmVTZXJ2aWNlLmhpZGVIb3Jpem9udGFsTGluZSgpO1xuICB9XG59XG4iXX0=
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1saW5lLWFsaWdubWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtbGluZS1hbGlnbm1lbnQvZi1saW5lLWFsaWdubWVudC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBc0IsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUF5QyxjQUFjLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3JHLE9BQU8sRUFBd0IsV0FBVyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBSy9FLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7Ozs7QUFjeEQsTUFBTSxPQUFPLHVCQUF3QixTQUFRLGtCQUFrQjtJQUU3RCxJQUFvQixXQUFXO1FBQzdCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQztJQUM3QyxDQUFDO0lBVUQsSUFBWSxTQUFTO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQVEsQ0FBQyxTQUFTLENBQUM7SUFDbEQsQ0FBQztJQUVELElBQVksUUFBUTtRQUNsQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFNLENBQUMsV0FBVyxDQUFDO0lBQ2xELENBQUM7SUFFRCxZQUNZLGdCQUF5QyxFQUN6QyxnQkFBa0MsRUFDbEMscUJBQTRDLEVBQzVDLFNBQXdCO1FBRWxDLEtBQUssRUFBRSxDQUFDO1FBTEUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUF5QjtRQUN6QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFDNUMsY0FBUyxHQUFULFNBQVMsQ0FBZTtRQWxCNUIsU0FBSSxHQUFVLGNBQWMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUUxQyxvQkFBZSxHQUFVLGNBQWMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUVyRCxVQUFLLEdBQVksRUFBRSxDQUFDO1FBaUIxQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO0lBQ25ELENBQUM7SUFFZSxVQUFVLENBQUMsUUFBcUIsRUFBRSxZQUF5QjtRQUN6RSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUNsRCxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNoQixNQUFNLGdCQUFnQixHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUM5QyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFRLElBQUksMkJBQTJCLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDcEYsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsZUFBZSxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUU5RCxNQUFNLHVCQUF1QixHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNwRCxPQUFPLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxLQUFLLEdBQUcsdUJBQXVCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDN0MsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBUSxJQUFJLDJCQUEyQixDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ3BGLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVlLE1BQU0sQ0FBQyxVQUFrQjtRQUN2QyxJQUFJLENBQUMscUJBQXFCLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVPLHFCQUFxQixDQUFDLFVBQWtCO1FBQzlDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6RCxJQUFJLFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzFDLElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDeEYsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDdEMsQ0FBQztRQUNELElBQUksU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDMUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMxRixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUN4QyxDQUFDO0lBQ0gsQ0FBQztJQUVNLHFCQUFxQixDQUFDLFVBQWtCO1FBQzdDLE1BQU0sSUFBSSxHQUFHLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUN2RSxNQUFNLE1BQU0sR0FBRyxJQUFJLHVCQUF1QixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDN0QsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixFQUFFLENBQUM7UUFDbEQsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixFQUFFLENBQUM7UUFFbEQsTUFBTSxNQUFNLEdBQXlCLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQzFELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFZSxRQUFRO1FBQ3RCLElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUNwQyxJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDeEMsQ0FBQzs4R0FwRlUsdUJBQXVCO2tHQUF2Qix1QkFBdUIscUdBSnZCO1lBQ1QsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLHVCQUF1QixFQUFFO1NBQ3BFLDJFQVJTLEVBQUU7OzJGQVVELHVCQUF1QjtrQkFabkMsU0FBUzsrQkFDRSxrQkFBa0IsWUFDbEIsRUFBRSxZQUVGLFlBQVksUUFDaEI7d0JBQ0osT0FBTyxFQUFFLDhCQUE4QjtxQkFDeEMsYUFDVTt3QkFDVCxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLHlCQUF5QixFQUFFO3FCQUNwRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJUG9pbnQsIElSZWN0LCBJU2l6ZSwgSVRyYW5zZm9ybU1vZGVsLCBSZWN0RXh0ZW5zaW9ucywgU2l6ZUV4dGVuc2lvbnMgfSBmcm9tICdAZm9ibGV4L2NvcmUnO1xuaW1wb3J0IHsgSUxpbmVBbGlnbm1lbnRSZXN1bHQsIExpbmVTZXJ2aWNlLCBOZWFyZXN0Q29vcmRpbmF0ZUZpbmRlciB9IGZyb20gJy4vZG9tYWluJztcbmltcG9ydCB7IEZfTElORV9BTElHTk1FTlQsIEZMaW5lQWxpZ25tZW50QmFzZSB9IGZyb20gJy4vZi1saW5lLWFsaWdubWVudC1iYXNlJztcbmltcG9ydCB7IEZDb21wb25lbnRzU3RvcmUgfSBmcm9tICcuLi9mLXN0b3JhZ2UnO1xuaW1wb3J0IHsgRkRyYWdnYWJsZURhdGFDb250ZXh0IH0gZnJvbSAnLi4vZi1kcmFnZ2FibGUnO1xuaW1wb3J0IHsgRk5vZGVCYXNlIH0gZnJvbSAnLi4vZi1ub2RlJztcbmltcG9ydCB7IEZGbG93TWVkaWF0b3IgfSBmcm9tICcuLi9mLW1lZGlhdG9yJztcbmltcG9ydCB7IEdldEVsZW1lbnRSZWN0SW5GbG93UmVxdWVzdCB9IGZyb20gJy4uL2RvbWFpbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJmLWxpbmUtYWxpZ25tZW50XCIsXG4gIHRlbXBsYXRlOiBcIlwiLFxuICBzdHlsZVVybHM6IFsgXCIuL2YtbGluZS1hbGlnbm1lbnQuY29tcG9uZW50LnNjc3NcIiBdLFxuICBleHBvcnRBczogXCJmQ29tcG9uZW50XCIsXG4gIGhvc3Q6IHtcbiAgICAnY2xhc3MnOiAnZi1saW5lLWFsaWdubWVudCBmLWNvbXBvbmVudCdcbiAgfSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBGX0xJTkVfQUxJR05NRU5ULCB1c2VFeGlzdGluZzogRkxpbmVBbGlnbm1lbnRDb21wb25lbnQgfVxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGTGluZUFsaWdubWVudENvbXBvbmVudCBleHRlbmRzIEZMaW5lQWxpZ25tZW50QmFzZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgcHVibGljIG92ZXJyaWRlIGdldCBob3N0RWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZmVyZW5jZS5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgcHJpdmF0ZSBsaW5lU2VydmljZTogTGluZVNlcnZpY2U7XG5cbiAgcHJpdmF0ZSBzaXplOiBJU2l6ZSA9IFNpemVFeHRlbnNpb25zLmluaXRpYWxpemUoKTtcblxuICBwcml2YXRlIGRyYWdnZWROb2RlUmVjdDogSVJlY3QgPSBSZWN0RXh0ZW5zaW9ucy5pbml0aWFsaXplKCk7XG5cbiAgcHJpdmF0ZSByZWN0czogSVJlY3RbXSA9IFtdO1xuXG4gIHByaXZhdGUgZ2V0IHRyYW5zZm9ybSgpOiBJVHJhbnNmb3JtTW9kZWwge1xuICAgIHJldHVybiB0aGlzLmZDb21wb25lbnRzU3RvcmUuZkNhbnZhcyEudHJhbnNmb3JtO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgZmxvd0hvc3QoKTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmZDb21wb25lbnRzU3RvcmUuZkZsb3chLmhvc3RFbGVtZW50O1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgICBwcml2YXRlIGVsZW1lbnRSZWZlcmVuY2U6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgcHJpdmF0ZSBmQ29tcG9uZW50c1N0b3JlOiBGQ29tcG9uZW50c1N0b3JlLFxuICAgICAgcHJpdmF0ZSBmRHJhZ2dhYmxlRGF0YUNvbnRleHQ6IEZEcmFnZ2FibGVEYXRhQ29udGV4dCxcbiAgICAgIHByaXZhdGUgZk1lZGlhdG9yOiBGRmxvd01lZGlhdG9yLFxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMubGluZVNlcnZpY2UgPSBuZXcgTGluZVNlcnZpY2UodGhpcy5ob3N0RWxlbWVudCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuZkxpbmVBbGlnbm1lbnQgPSB0aGlzO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGluaXRpYWxpemUoYWxsTm9kZXM6IEZOb2RlQmFzZVtdLCBjdXJyZW50Tm9kZXM6IEZOb2RlQmFzZVtdKTogdm9pZCB7XG4gICAgdGhpcy5zaXplID0gdGhpcy5mbG93SG9zdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICB0aGlzLnJlY3RzID0gW107XG4gICAgY29uc3QgZHJhZ2dlZE5vZGVSZWN0cyA9IGN1cnJlbnROb2Rlcy5tYXAoKHgpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmZNZWRpYXRvci5zZW5kPElSZWN0PihuZXcgR2V0RWxlbWVudFJlY3RJbkZsb3dSZXF1ZXN0KHguaG9zdEVsZW1lbnQpKTtcbiAgICB9KTtcbiAgICB0aGlzLmRyYWdnZWROb2RlUmVjdCA9IFJlY3RFeHRlbnNpb25zLnVuaW9uKGRyYWdnZWROb2RlUmVjdHMpO1xuXG4gICAgY29uc3QgYWxsTm9kZXNFeGNsdWRlQ3VycmVudHMgPSBhbGxOb2Rlcy5maWx0ZXIoKHgpID0+IHtcbiAgICAgIHJldHVybiAhY3VycmVudE5vZGVzLmluY2x1ZGVzKHgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5yZWN0cyA9IGFsbE5vZGVzRXhjbHVkZUN1cnJlbnRzLm1hcCgoeCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuZk1lZGlhdG9yLnNlbmQ8SVJlY3Q+KG5ldyBHZXRFbGVtZW50UmVjdEluRmxvd1JlcXVlc3QoeC5ob3N0RWxlbWVudCkpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGhhbmRsZShkaWZmZXJlbmNlOiBJUG9pbnQpOiB2b2lkIHtcbiAgICB0aGlzLmRyYXdJbnRlcnNlY3RpbmdMaW5lcyhkaWZmZXJlbmNlKTtcbiAgfVxuXG4gIHByaXZhdGUgZHJhd0ludGVyc2VjdGluZ0xpbmVzKGRpZmZlcmVuY2U6IElQb2ludCk6IHZvaWQge1xuICAgIGNvbnN0IGludGVyc2VjdCA9IHRoaXMuZmluZE5lYXJlc3RDb29yZGluYXRlKGRpZmZlcmVuY2UpO1xuICAgIGlmIChpbnRlcnNlY3QueFJlc3VsdC52YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmxpbmVTZXJ2aWNlLmRyYXdWZXJ0aWNhbExpbmUoaW50ZXJzZWN0LnhSZXN1bHQudmFsdWUsIHRoaXMuc2l6ZSwgdGhpcy50cmFuc2Zvcm0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxpbmVTZXJ2aWNlLmhpZGVWZXJ0aWNhbExpbmUoKTtcbiAgICB9XG4gICAgaWYgKGludGVyc2VjdC55UmVzdWx0LnZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMubGluZVNlcnZpY2UuZHJhd0hvcml6b250YWxMaW5lKGludGVyc2VjdC55UmVzdWx0LnZhbHVlLCB0aGlzLnNpemUsIHRoaXMudHJhbnNmb3JtKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5saW5lU2VydmljZS5oaWRlSG9yaXpvbnRhbExpbmUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZmluZE5lYXJlc3RDb29yZGluYXRlKGRpZmZlcmVuY2U6IElQb2ludCk6IElMaW5lQWxpZ25tZW50UmVzdWx0IHtcbiAgICBjb25zdCByZWN0ID0gUmVjdEV4dGVuc2lvbnMuYWRkUG9pbnQodGhpcy5kcmFnZ2VkTm9kZVJlY3QsIGRpZmZlcmVuY2UpO1xuICAgIGNvbnN0IGZpbmRlciA9IG5ldyBOZWFyZXN0Q29vcmRpbmF0ZUZpbmRlcih0aGlzLnJlY3RzLCByZWN0KTtcbiAgICBjb25zdCB4UmVzdWx0ID0gZmluZGVyLmZpbmROZWFyZXN0Q29vcmRpbmF0ZUJ5WCgpO1xuICAgIGNvbnN0IHlSZXN1bHQgPSBmaW5kZXIuZmluZE5lYXJlc3RDb29yZGluYXRlQnlZKCk7XG5cbiAgICBjb25zdCByZXN1bHQ6IElMaW5lQWxpZ25tZW50UmVzdWx0ID0geyB4UmVzdWx0LCB5UmVzdWx0IH07XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb21wbGV0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmxpbmVTZXJ2aWNlLmhpZGVWZXJ0aWNhbExpbmUoKTtcbiAgICB0aGlzLmxpbmVTZXJ2aWNlLmhpZGVIb3Jpem9udGFsTGluZSgpO1xuICB9XG59XG4iXX0=
@@ -30,4 +30,4 @@ export class FNodeBase {
30
30
  this.positionChange.emit(this.position);
31
31
  }
32
32
  }
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1ub2RlLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2Ytbm9kZS9mLW5vZGUtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBMkIsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBZSxNQUFNLGlCQUFpQixDQUFDO0FBSWhFLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxJQUFJLGNBQWMsQ0FBWSxRQUFRLENBQUMsQ0FBQztBQUU5RCxNQUFNLE9BQWdCLFNBQVM7SUFBL0I7UUFNa0IsaUJBQVksR0FBa0IsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQU14RCxjQUFTLEdBQVcsZUFBZSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBMkM3RCxDQUFDO0lBM0JRLFVBQVUsQ0FBQyxPQUFpQztRQUNqRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFTSxNQUFNO1FBQ1gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQztJQUMvRixDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFTSxNQUFNO1FBQ1gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVNLFVBQVU7UUFDZixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFTSxjQUFjLENBQUMsUUFBZ0I7UUFDcEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7SUFDNUIsQ0FBQztJQUVNLFlBQVk7UUFDakIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzFDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IElIYXNIb3N0RWxlbWVudCwgSVBvaW50LCBQb2ludEV4dGVuc2lvbnMgfSBmcm9tICdAZm9ibGV4L2NvcmUnO1xuaW1wb3J0IHsgRl9TRUxFQ1RFRF9DTEFTUywgSVNlbGVjdGFibGUgfSBmcm9tICcuLi9mLWNvbm5lY3Rpb24nO1xuaW1wb3J0IHsgSUhhc1N0YXRlQ2hhbmdlcyB9IGZyb20gJy4uL2ktaGFzLXN0YXRlLWNoYW5nZXMnO1xuaW1wb3J0IHsgRkNvbm5lY3RvckJhc2UgfSBmcm9tICcuLi9mLWNvbm5lY3RvcnMnO1xuXG5leHBvcnQgY29uc3QgRl9OT0RFID0gbmV3IEluamVjdGlvblRva2VuPEZOb2RlQmFzZT4oJ0ZfTk9ERScpO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRk5vZGVCYXNlIGltcGxlbWVudHMgSUhhc1N0YXRlQ2hhbmdlcywgSVNlbGVjdGFibGUsIElIYXNIb3N0RWxlbWVudCB7XG5cbiAgcHVibGljIGFic3RyYWN0IGZOb2RlSWQ6IHN0cmluZztcblxuICBwdWJsaWMgYWJzdHJhY3QgaG9zdEVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuXG4gIHB1YmxpYyByZWFkb25seSBzdGF0ZUNoYW5nZXM6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBwb3NpdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPElQb2ludD47XG5cbiAgcHVibGljIGFic3RyYWN0IHBvc2l0aW9uOiBJUG9pbnQ7XG5cbiAgcHJvdGVjdGVkIF9wb3NpdGlvbjogSVBvaW50ID0gUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoKTtcblxuICBwdWJsaWMgYWJzdHJhY3QgZkRyYWdnaW5nRGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgcHVibGljIGFic3RyYWN0IGZTZWxlY3Rpb25EaXNhYmxlZDogYm9vbGVhbjtcblxuICBwdWJsaWMgYWJzdHJhY3QgcmVmcmVzaCgpOiB2b2lkO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBjb25uZWN0b3JzOiBGQ29ubmVjdG9yQmFzZVtdO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBhZGRDb25uZWN0b3IoY29ubmVjdG9yOiBGQ29ubmVjdG9yQmFzZSk6IHZvaWQ7XG5cbiAgcHVibGljIGFic3RyYWN0IHJlbW92ZUNvbm5lY3Rvcihjb25uZWN0b3I6IEZDb25uZWN0b3JCYXNlKTogdm9pZDtcblxuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgc2V0U3R5bGUobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZDtcblxuICBwdWJsaWMgaXNDb250YWlucyhlbGVtZW50OiBIVE1MRWxlbWVudCB8IFNWR0VsZW1lbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5ob3N0RWxlbWVudC5jb250YWlucyhlbGVtZW50KTtcbiAgfVxuXG4gIHB1YmxpYyByZWRyYXcoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRTdHlsZSgndHJhbnNmb3JtJywgJ3RyYW5zbGF0ZSgnICsgdGhpcy5wb3NpdGlvbi54ICsgJ3B4LCcgKyB0aGlzLnBvc2l0aW9uLnkgKyAncHgpJyk7XG4gIH1cblxuICBwdWJsaWMgZGVzZWxlY3QoKTogdm9pZCB7XG4gICAgdGhpcy5ob3N0RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKEZfU0VMRUNURURfQ0xBU1MpO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdCgpOiB2b2lkIHtcbiAgICB0aGlzLmhvc3RFbGVtZW50LmNsYXNzTGlzdC5hZGQoRl9TRUxFQ1RFRF9DTEFTUyk7XG4gIH1cblxuICBwdWJsaWMgaXNTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5ob3N0RWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoRl9TRUxFQ1RFRF9DTEFTUyk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlUG9zaXRpb24ocG9zaXRpb246IElQb2ludCk6IHZvaWQge1xuICAgIHRoaXMuX3Bvc2l0aW9uID0gcG9zaXRpb247XG4gIH1cblxuICBwdWJsaWMgY29tcGxldGVEcmFnKCk6IHZvaWQge1xuICAgIHRoaXMucG9zaXRpb25DaGFuZ2UuZW1pdCh0aGlzLnBvc2l0aW9uKTtcbiAgfVxufVxuIl19
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1ub2RlLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2Ytbm9kZS9mLW5vZGUtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBMkIsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBZSxNQUFNLGlCQUFpQixDQUFDO0FBSWhFLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxJQUFJLGNBQWMsQ0FBWSxRQUFRLENBQUMsQ0FBQztBQUU5RCxNQUFNLE9BQWdCLFNBQVM7SUFBL0I7UUFNa0IsaUJBQVksR0FBa0IsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQU14RCxjQUFTLEdBQVcsZUFBZSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBMkM3RCxDQUFDO0lBM0JRLFVBQVUsQ0FBQyxPQUFpQztRQUNqRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFTSxNQUFNO1FBQ1gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQztJQUMvRixDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFTSxNQUFNO1FBQ1gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVNLFVBQVU7UUFDZixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFTSxjQUFjLENBQUMsUUFBZ0I7UUFDcEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7SUFDNUIsQ0FBQztJQUVNLFlBQVk7UUFDakIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzFDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IElIYXNIb3N0RWxlbWVudCwgSVBvaW50LCBQb2ludEV4dGVuc2lvbnMgfSBmcm9tICdAZm9ibGV4L2NvcmUnO1xuaW1wb3J0IHsgRl9TRUxFQ1RFRF9DTEFTUywgSVNlbGVjdGFibGUgfSBmcm9tICcuLi9mLWNvbm5lY3Rpb24nO1xuaW1wb3J0IHsgSUhhc1N0YXRlQ2hhbmdlcyB9IGZyb20gJy4uL2ktaGFzLXN0YXRlLWNoYW5nZXMnO1xuaW1wb3J0IHsgRkNvbm5lY3RvckJhc2UgfSBmcm9tICcuLi9mLWNvbm5lY3RvcnMnO1xuXG5leHBvcnQgY29uc3QgRl9OT0RFID0gbmV3IEluamVjdGlvblRva2VuPEZOb2RlQmFzZT4oJ0ZfTk9ERScpO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRk5vZGVCYXNlIGltcGxlbWVudHMgSUhhc1N0YXRlQ2hhbmdlcywgSVNlbGVjdGFibGUsIElIYXNIb3N0RWxlbWVudCB7XG5cbiAgcHVibGljIGFic3RyYWN0IGZJZDogc3RyaW5nO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBob3N0RWxlbWVudDogSFRNTEVsZW1lbnQ7XG5cbiAgcHVibGljIHJlYWRvbmx5IHN0YXRlQ2hhbmdlczogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHVibGljIGFic3RyYWN0IHBvc2l0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SVBvaW50PjtcblxuICBwdWJsaWMgYWJzdHJhY3QgcG9zaXRpb246IElQb2ludDtcblxuICBwcm90ZWN0ZWQgX3Bvc2l0aW9uOiBJUG9pbnQgPSBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgpO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmRHJhZ2dpbmdEaXNhYmxlZDogYm9vbGVhbjtcblxuICBwdWJsaWMgYWJzdHJhY3QgZlNlbGVjdGlvbkRpc2FibGVkOiBib29sZWFuO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCByZWZyZXNoKCk6IHZvaWQ7XG5cbiAgcHVibGljIGFic3RyYWN0IGNvbm5lY3RvcnM6IEZDb25uZWN0b3JCYXNlW107XG5cbiAgcHVibGljIGFic3RyYWN0IGFkZENvbm5lY3Rvcihjb25uZWN0b3I6IEZDb25uZWN0b3JCYXNlKTogdm9pZDtcblxuICBwdWJsaWMgYWJzdHJhY3QgcmVtb3ZlQ29ubmVjdG9yKGNvbm5lY3RvcjogRkNvbm5lY3RvckJhc2UpOiB2b2lkO1xuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBzZXRTdHlsZShuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiB2b2lkO1xuXG4gIHB1YmxpYyBpc0NvbnRhaW5zKGVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgU1ZHRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhvc3RFbGVtZW50LmNvbnRhaW5zKGVsZW1lbnQpO1xuICB9XG5cbiAgcHVibGljIHJlZHJhdygpOiB2b2lkIHtcbiAgICB0aGlzLnNldFN0eWxlKCd0cmFuc2Zvcm0nLCAndHJhbnNsYXRlKCcgKyB0aGlzLnBvc2l0aW9uLnggKyAncHgsJyArIHRoaXMucG9zaXRpb24ueSArICdweCknKTtcbiAgfVxuXG4gIHB1YmxpYyBkZXNlbGVjdCgpOiB2b2lkIHtcbiAgICB0aGlzLmhvc3RFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoRl9TRUxFQ1RFRF9DTEFTUyk7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0KCk6IHZvaWQge1xuICAgIHRoaXMuaG9zdEVsZW1lbnQuY2xhc3NMaXN0LmFkZChGX1NFTEVDVEVEX0NMQVNTKTtcbiAgfVxuXG4gIHB1YmxpYyBpc1NlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhvc3RFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucyhGX1NFTEVDVEVEX0NMQVNTKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVQb3NpdGlvbihwb3NpdGlvbjogSVBvaW50KTogdm9pZCB7XG4gICAgdGhpcy5fcG9zaXRpb24gPSBwb3NpdGlvbjtcbiAgfVxuXG4gIHB1YmxpYyBjb21wbGV0ZURyYWcoKTogdm9pZCB7XG4gICAgdGhpcy5wb3NpdGlvbkNoYW5nZS5lbWl0KHRoaXMucG9zaXRpb24pO1xuICB9XG59XG4iXX0=
@@ -1,11 +1,11 @@
1
1
  import { Directive, EventEmitter, Input, Output, } from "@angular/core";
2
2
  import { PointExtensions } from '@foblex/core';
3
3
  import { F_NODE, FNodeBase } from './f-node-base';
4
- import { startWith, Subscription } from 'rxjs';
4
+ import { debounceTime, merge, startWith, Subscription } from 'rxjs';
5
5
  import { FResizeObserver } from './f-resize-observer';
6
6
  import { CalculateConnectorConnectableSideHandler, CalculateConnectorConnectableSideRequest } from '../f-connectors';
7
7
  import * as i0 from "@angular/core";
8
- import * as i1 from "../f-components-store";
8
+ import * as i1 from "../f-storage";
9
9
  let uniqueId = 0;
10
10
  export class FNodeDirective extends FNodeBase {
11
11
  set position(value) {
@@ -24,7 +24,7 @@ export class FNodeDirective extends FNodeBase {
24
24
  this.renderer = renderer;
25
25
  this.fComponentsStore = fComponentsStore;
26
26
  this.subscriptions$ = new Subscription();
27
- this.fNodeId = `f-node-${uniqueId++}`;
27
+ this.fId = `f-node-${uniqueId++}`;
28
28
  this.positionChange = new EventEmitter();
29
29
  this.fDraggingDisabled = false;
30
30
  this.fSelectionDisabled = false;
@@ -38,7 +38,7 @@ export class FNodeDirective extends FNodeBase {
38
38
  this.setStyle('left', '0');
39
39
  this.setStyle('top', '0');
40
40
  super.redraw();
41
- this.fComponentsStore.addNode(this);
41
+ this.fComponentsStore.addComponent(this.fComponentsStore.fNodes, this);
42
42
  }
43
43
  setStyle(styleName, value) {
44
44
  this.renderer.setStyle(this.hostElement, styleName, value);
@@ -47,7 +47,7 @@ export class FNodeDirective extends FNodeBase {
47
47
  this.subscriptions$.add(this.subscribeOnResizeChanges());
48
48
  }
49
49
  subscribeOnResizeChanges() {
50
- return new FResizeObserver(this.hostElement).pipe(startWith(null)).subscribe(() => {
50
+ return merge(new FResizeObserver(this.hostElement), this.stateChanges).pipe(debounceTime(5), startWith(null)).subscribe(() => {
51
51
  this.connectors.forEach((fConnector) => {
52
52
  fConnector.fConnectableSide = new CalculateConnectorConnectableSideHandler().handle(new CalculateConnectorConnectableSideRequest(fConnector, this.hostElement));
53
53
  });
@@ -56,23 +56,25 @@ export class FNodeDirective extends FNodeBase {
56
56
  }
57
57
  addConnector(connector) {
58
58
  this.connectors.push(connector);
59
+ this.stateChanges.next();
59
60
  }
60
61
  removeConnector(connector) {
61
62
  const index = this.connectors.indexOf(connector);
62
63
  if (index !== -1) {
63
64
  this.connectors.splice(index, 1);
64
65
  }
66
+ this.stateChanges.next();
65
67
  }
66
68
  refresh() {
67
69
  this.stateChanges.next();
68
70
  }
69
71
  ngOnDestroy() {
70
- this.fComponentsStore.removeNode(this);
72
+ this.fComponentsStore.removeComponent(this.fComponentsStore.fNodes, this);
71
73
  this.stateChanges.complete();
72
74
  this.subscriptions$.unsubscribe();
73
75
  }
74
76
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: FNodeDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.FComponentsStore }], target: i0.ɵɵFactoryTarget.Directive }); }
75
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.1", type: FNodeDirective, selector: "[fNode]", inputs: { fNodeId: "fNodeId", position: ["fNodePosition", "position"], fDraggingDisabled: ["fNodeDraggingDisabled", "fDraggingDisabled"], fSelectionDisabled: ["fNodeSelectionDisabled", "fSelectionDisabled"] }, outputs: { positionChange: "fNodePositionChange" }, host: { properties: { "attr.data-f-node-id": "fNodeId", "class.f-node-dragging-disabled": "fDraggingDisabled", "class.f-node-selection-disabled": "fSelectionDisabled" }, classAttribute: "f-node f-component" }, providers: [
77
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.1", type: FNodeDirective, selector: "[fNode]", inputs: { fId: ["fNodeId", "fId"], position: ["fNodePosition", "position"], fDraggingDisabled: ["fNodeDraggingDisabled", "fDraggingDisabled"], fSelectionDisabled: ["fNodeSelectionDisabled", "fSelectionDisabled"] }, outputs: { positionChange: "fNodePositionChange" }, host: { properties: { "attr.data-f-node-id": "fId", "class.f-node-dragging-disabled": "fDraggingDisabled", "class.f-node-selection-disabled": "fSelectionDisabled" }, classAttribute: "f-node f-component" }, providers: [
76
78
  { provide: F_NODE, useExisting: FNodeDirective }
77
79
  ], exportAs: ["fComponent"], usesInheritance: true, ngImport: i0 }); }
78
80
  }
@@ -82,7 +84,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
82
84
  selector: "[fNode]",
83
85
  exportAs: "fComponent",
84
86
  host: {
85
- '[attr.data-f-node-id]': 'fNodeId',
87
+ '[attr.data-f-node-id]': 'fId',
86
88
  class: "f-node f-component",
87
89
  '[class.f-node-dragging-disabled]': 'fDraggingDisabled',
88
90
  '[class.f-node-selection-disabled]': 'fSelectionDisabled'
@@ -91,8 +93,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
91
93
  { provide: F_NODE, useExisting: FNodeDirective }
92
94
  ],
93
95
  }]
94
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.FComponentsStore }], propDecorators: { fNodeId: [{
95
- type: Input
96
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.FComponentsStore }], propDecorators: { fId: [{
97
+ type: Input,
98
+ args: ['fNodeId']
96
99
  }], position: [{
97
100
  type: Input,
98
101
  args: ['fNodePosition']
@@ -106,4 +109,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
106
109
  type: Input,
107
110
  args: ['fNodeSelectionDisabled']
108
111
  }] } });
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1ub2RlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1ub2RlL2Ytbm9kZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQTJCLGVBQWUsRUFBYyxNQUFNLGNBQWMsQ0FBQztBQUNwRixPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEQsT0FBTyxFQUNMLHdDQUF3QyxFQUN4Qyx3Q0FBd0MsRUFFekMsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBRXpCLElBQUksUUFBUSxHQUFXLENBQUMsQ0FBQztBQWV6QixNQUFNLE9BQU8sY0FBZSxTQUFRLFNBQVM7SUFPM0MsSUFDb0IsUUFBUSxDQUFDLEtBQWlCO1FBQzVDLElBQUksQ0FBQyxTQUFTLEdBQUcsZUFBZSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELElBQW9CLFFBQVE7UUFDMUIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFXRCxJQUFXLFdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDO0lBQzdDLENBQUM7SUFJRCxZQUNZLGdCQUF5QyxFQUN6QyxRQUFtQixFQUNuQixnQkFBa0M7UUFFNUMsS0FBSyxFQUFFLENBQUM7UUFKRSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXlCO1FBQ3pDLGFBQVEsR0FB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N0ZVLGNBQWM7a0dBQWQsY0FBYywwZkFKZDtZQUNULEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFO1NBQ2pEOzsyRkFFVSxjQUFjO2tCQWIxQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxTQUFTO29CQUNuQixRQUFRLEVBQUUsWUFBWTtvQkFDdEIsSUFBSSxFQUFFO3dCQUNKLHVCQUF1QixFQUFFLFNBQVM7d0JBQ2xDLEtBQUssRUFBRSxvQkFBb0I7d0JBQzNCLGtDQUFrQyxFQUFFLG1CQUFtQjt3QkFDdkQsbUNBQW1DLEVBQUUsb0JBQW9CO3FCQUMxRDtvQkFDRCxTQUFTLEVBQUU7d0JBQ1QsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsZ0JBQWdCLEVBQUU7cUJBQ2pEO2lCQUNGO3NJQU1pQixPQUFPO3NCQUR0QixLQUFLO2dCQUljLFFBQVE7c0JBRDNCLEtBQUs7dUJBQUMsZUFBZTtnQkFXTixjQUFjO3NCQUQ3QixNQUFNO3VCQUFDLHFCQUFxQjtnQkFJYixpQkFBaUI7c0JBRGhDLEtBQUs7dUJBQUMsdUJBQXVCO2dCQUlkLGtCQUFrQjtzQkFEakMsS0FBSzt1QkFBQyx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMixcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IElIYXNIb3N0RWxlbWVudCwgSVBvaW50LCBQb2ludEV4dGVuc2lvbnMsIFBvaW50SW5wdXQgfSBmcm9tICdAZm9ibGV4L2NvcmUnO1xuaW1wb3J0IHsgRl9OT0RFLCBGTm9kZUJhc2UgfSBmcm9tICcuL2Ytbm9kZS1iYXNlJztcbmltcG9ydCB7IHN0YXJ0V2l0aCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGUmVzaXplT2JzZXJ2ZXIgfSBmcm9tICcuL2YtcmVzaXplLW9ic2VydmVyJztcbmltcG9ydCB7IEZDb21wb25lbnRzU3RvcmUgfSBmcm9tICcuLi9mLWNvbXBvbmVudHMtc3RvcmUnO1xuaW1wb3J0IHtcbiAgQ2FsY3VsYXRlQ29ubmVjdG9yQ29ubmVjdGFibGVTaWRlSGFuZGxlcixcbiAgQ2FsY3VsYXRlQ29ubmVjdG9yQ29ubmVjdGFibGVTaWRlUmVxdWVzdCxcbiAgRkNvbm5lY3RvckJhc2Vcbn0gZnJvbSAnLi4vZi1jb25uZWN0b3JzJztcblxubGV0IHVuaXF1ZUlkOiBudW1iZXIgPSAwO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6IFwiW2ZOb2RlXVwiLFxuICBleHBvcnRBczogXCJmQ29tcG9uZW50XCIsXG4gIGhvc3Q6IHtcbiAgICAnW2F0dHIuZGF0YS1mLW5vZGUtaWRdJzogJ2ZOb2RlSWQnLFxuICAgIGNsYXNzOiBcImYtbm9kZSBmLWNvbXBvbmVudFwiLFxuICAgICdbY2xhc3MuZi1ub2RlLWRyYWdnaW5nLWRpc2FibGVkXSc6ICdmRHJhZ2dpbmdEaXNhYmxlZCcsXG4gICAgJ1tjbGFzcy5mLW5vZGUtc2VsZWN0aW9uLWRpc2FibGVkXSc6ICdmU2VsZWN0aW9uRGlzYWJsZWQnXG4gIH0sXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogRl9OT0RFLCB1c2VFeGlzdGluZzogRk5vZGVEaXJlY3RpdmUgfVxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGTm9kZURpcmVjdGl2ZSBleHRlbmRzIEZOb2RlQmFzZSBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgSUhhc0hvc3RFbGVtZW50LCBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9ucyQ6IFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgb3ZlcnJpZGUgZk5vZGVJZDogc3RyaW5nID0gYGYtbm9kZS0keyB1bmlxdWVJZCsrIH1gO1xuXG4gIEBJbnB1dCgnZk5vZGVQb3NpdGlvbicpXG4gIHB1YmxpYyBvdmVycmlkZSBzZXQgcG9zaXRpb24odmFsdWU6IFBvaW50SW5wdXQpIHtcbiAgICB0aGlzLl9wb3NpdGlvbiA9IFBvaW50RXh0ZW5zaW9ucy5jYXN0VG9Qb2ludCh2YWx1ZSk7XG4gICAgdGhpcy5yZWZyZXNoKCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IHBvc2l0aW9uKCk6IElQb2ludCB7XG4gICAgcmV0dXJuIHRoaXMuX3Bvc2l0aW9uO1xuICB9XG5cbiAgQE91dHB1dCgnZk5vZGVQb3NpdGlvbkNoYW5nZScpXG4gIHB1YmxpYyBvdmVycmlkZSBwb3NpdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPElQb2ludD4gPSBuZXcgRXZlbnRFbWl0dGVyPElQb2ludD4oKTtcblxuICBASW5wdXQoJ2ZOb2RlRHJhZ2dpbmdEaXNhYmxlZCcpXG4gIHB1YmxpYyBvdmVycmlkZSBmRHJhZ2dpbmdEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgnZk5vZGVTZWxlY3Rpb25EaXNhYmxlZCcpXG4gIHB1YmxpYyBvdmVycmlkZSBmU2VsZWN0aW9uRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwdWJsaWMgZ2V0IGhvc3RFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmZXJlbmNlLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdG9yczogRkNvbm5lY3RvckJhc2VbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmZXJlbmNlOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgIHByaXZhdGUgZkNvbXBvbmVudHNTdG9yZTogRkNvbXBvbmVudHNTdG9yZVxuICApIHtcbiAgICBzdXBlcigpO1xuXG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRTdHlsZSgncG9zaXRpb24nLCAnYWJzb2x1dGUnKTtcbiAgICB0aGlzLnNldFN0eWxlKCd0cmFuc2Zvcm0tb3JpZ2luJywgJzAgMCcpO1xuICAgIHRoaXMuc2V0U3R5bGUoJ3VzZXItc2VsZWN0JywgJ25vbmUnKTtcbiAgICB0aGlzLnNldFN0eWxlKCdwb2ludGVyLWV2ZW50cycsICdhbGwnKTtcbiAgICB0aGlzLnNldFN0eWxlKCdsZWZ0JywgJzAnKTtcbiAgICB0aGlzLnNldFN0eWxlKCd0b3AnLCAnMCcpO1xuICAgIHN1cGVyLnJlZHJhdygpO1xuICAgIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5hZGROb2RlKHRoaXMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHNldFN0eWxlKHN0eWxlTmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmhvc3RFbGVtZW50LCBzdHlsZU5hbWUsIHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zJC5hZGQoXG4gICAgICAgIHRoaXMuc3Vic2NyaWJlT25SZXNpemVDaGFuZ2VzKClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBzdWJzY3JpYmVPblJlc2l6ZUNoYW5nZXMoKTogU3Vic2NyaXB0aW9uIHtcbiAgICByZXR1cm4gbmV3IEZSZXNpemVPYnNlcnZlcih0aGlzLmhvc3RFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5waXBlKHN0YXJ0V2l0aChudWxsKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuY29ubmVjdG9ycy5mb3JFYWNoKChmQ29ubmVjdG9yOiBGQ29ubmVjdG9yQmFzZSkgPT4ge1xuXG4gICAgICAgIGZDb25uZWN0b3IuZkNvbm5lY3RhYmxlU2lkZSA9IG5ldyBDYWxjdWxhdGVDb25uZWN0b3JDb25uZWN0YWJsZVNpZGVIYW5kbGVyKCkuaGFuZGxlKFxuICAgICAgICAgICAgbmV3IENhbGN1bGF0ZUNvbm5lY3RvckNvbm5lY3RhYmxlU2lkZVJlcXVlc3QoZkNvbm5lY3RvciwgdGhpcy5ob3N0RWxlbWVudClcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5mQ29tcG9uZW50c1N0b3JlLmNoYW5nZXMubmV4dCgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGFkZENvbm5lY3Rvcihjb25uZWN0b3I6IEZDb25uZWN0b3JCYXNlKTogdm9pZCB7XG4gICAgdGhpcy5jb25uZWN0b3JzLnB1c2goY29ubmVjdG9yKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSByZW1vdmVDb25uZWN0b3IoY29ubmVjdG9yOiBGQ29ubmVjdG9yQmFzZSk6IHZvaWQge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5jb25uZWN0b3JzLmluZGV4T2YoY29ubmVjdG9yKTtcbiAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICB0aGlzLmNvbm5lY3RvcnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVmcmVzaCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5mQ29tcG9uZW50c1N0b3JlLnJlbW92ZU5vZGUodGhpcyk7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMuY29tcGxldGUoKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMkLnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiJdfQ==
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1ub2RlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1ub2RlL2Ytbm9kZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQTJCLGVBQWUsRUFBYyxNQUFNLGNBQWMsQ0FBQztBQUNwRixPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RCxPQUFPLEVBQ0wsd0NBQXdDLEVBQ3hDLHdDQUF3QyxFQUV6QyxNQUFNLGlCQUFpQixDQUFDOzs7QUFFekIsSUFBSSxRQUFRLEdBQVcsQ0FBQyxDQUFDO0FBZXpCLE1BQU0sT0FBTyxjQUFlLFNBQVEsU0FBUztJQU8zQyxJQUNvQixRQUFRLENBQUMsS0FBaUI7UUFDNUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxlQUFlLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRUQsSUFBb0IsUUFBUTtRQUMxQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQVdELElBQVcsV0FBVztRQUNwQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUM7SUFDN0MsQ0FBQztJQUlELFlBQ1UsZ0JBQXlDLEVBQ3pDLFFBQW1CLEVBQ25CLGdCQUFrQztRQUUxQyxLQUFLLEVBQUUsQ0FBQztRQUpBLHFCQUFnQixHQUFoQixnQkFBZ0Is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WUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMxRSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDcEMsQ0FBQzs4R0FqR1UsY0FBYztrR0FBZCxjQUFjLDJmQUpkO1lBQ1QsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUU7U0FDakQ7OzJGQUVVLGNBQWM7a0JBYjFCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFNBQVM7b0JBQ25CLFFBQVEsRUFBRSxZQUFZO29CQUN0QixJQUFJLEVBQUU7d0JBQ0osdUJBQXVCLEVBQUUsS0FBSzt3QkFDOUIsS0FBSyxFQUFFLG9CQUFvQjt3QkFDM0Isa0NBQWtDLEVBQUUsbUJBQW1CO3dCQUN2RCxtQ0FBbUMsRUFBRSxvQkFBb0I7cUJBQzFEO29CQUNELFNBQVMsRUFBRTt3QkFDVCxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxnQkFBZ0IsRUFBRTtxQkFDakQ7aUJBQ0Y7c0lBTWlCLEdBQUc7c0JBRGxCLEtBQUs7dUJBQUMsU0FBUztnQkFJSSxRQUFRO3NCQUQzQixLQUFLO3VCQUFDLGVBQWU7Z0JBV04sY0FBYztzQkFEN0IsTUFBTTt1QkFBQyxxQkFBcUI7Z0JBSWIsaUJBQWlCO3NCQURoQyxLQUFLO3VCQUFDLHVCQUF1QjtnQkFJZCxrQkFBa0I7c0JBRGpDLEtBQUs7dUJBQUMsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBSZW5kZXJlcjIsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBJSGFzSG9zdEVsZW1lbnQsIElQb2ludCwgUG9pbnRFeHRlbnNpb25zLCBQb2ludElucHV0IH0gZnJvbSAnQGZvYmxleC9jb3JlJztcbmltcG9ydCB7IEZfTk9ERSwgRk5vZGVCYXNlIH0gZnJvbSAnLi9mLW5vZGUtYmFzZSc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIG1lcmdlLCBzdGFydFdpdGgsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRlJlc2l6ZU9ic2VydmVyIH0gZnJvbSAnLi9mLXJlc2l6ZS1vYnNlcnZlcic7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vZi1zdG9yYWdlJztcbmltcG9ydCB7XG4gIENhbGN1bGF0ZUNvbm5lY3RvckNvbm5lY3RhYmxlU2lkZUhhbmRsZXIsXG4gIENhbGN1bGF0ZUNvbm5lY3RvckNvbm5lY3RhYmxlU2lkZVJlcXVlc3QsXG4gIEZDb25uZWN0b3JCYXNlXG59IGZyb20gJy4uL2YtY29ubmVjdG9ycyc7XG5cbmxldCB1bmlxdWVJZDogbnVtYmVyID0gMDtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiBcIltmTm9kZV1cIixcbiAgZXhwb3J0QXM6IFwiZkNvbXBvbmVudFwiLFxuICBob3N0OiB7XG4gICAgJ1thdHRyLmRhdGEtZi1ub2RlLWlkXSc6ICdmSWQnLFxuICAgIGNsYXNzOiBcImYtbm9kZSBmLWNvbXBvbmVudFwiLFxuICAgICdbY2xhc3MuZi1ub2RlLWRyYWdnaW5nLWRpc2FibGVkXSc6ICdmRHJhZ2dpbmdEaXNhYmxlZCcsXG4gICAgJ1tjbGFzcy5mLW5vZGUtc2VsZWN0aW9uLWRpc2FibGVkXSc6ICdmU2VsZWN0aW9uRGlzYWJsZWQnXG4gIH0sXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogRl9OT0RFLCB1c2VFeGlzdGluZzogRk5vZGVEaXJlY3RpdmUgfVxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGTm9kZURpcmVjdGl2ZSBleHRlbmRzIEZOb2RlQmFzZSBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgSUhhc0hvc3RFbGVtZW50LCBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9ucyQ6IFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBASW5wdXQoJ2ZOb2RlSWQnKVxuICBwdWJsaWMgb3ZlcnJpZGUgZklkOiBzdHJpbmcgPSBgZi1ub2RlLSR7IHVuaXF1ZUlkKysgfWA7XG5cbiAgQElucHV0KCdmTm9kZVBvc2l0aW9uJylcbiAgcHVibGljIG92ZXJyaWRlIHNldCBwb3NpdGlvbih2YWx1ZTogUG9pbnRJbnB1dCkge1xuICAgIHRoaXMuX3Bvc2l0aW9uID0gUG9pbnRFeHRlbnNpb25zLmNhc3RUb1BvaW50KHZhbHVlKTtcbiAgICB0aGlzLnJlZnJlc2goKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgcG9zaXRpb24oKTogSVBvaW50IHtcbiAgICByZXR1cm4gdGhpcy5fcG9zaXRpb247XG4gIH1cblxuICBAT3V0cHV0KCdmTm9kZVBvc2l0aW9uQ2hhbmdlJylcbiAgcHVibGljIG92ZXJyaWRlIHBvc2l0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SVBvaW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8SVBvaW50PigpO1xuXG4gIEBJbnB1dCgnZk5vZGVEcmFnZ2luZ0Rpc2FibGVkJylcbiAgcHVibGljIG92ZXJyaWRlIGZEcmFnZ2luZ0Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KCdmTm9kZVNlbGVjdGlvbkRpc2FibGVkJylcbiAgcHVibGljIG92ZXJyaWRlIGZTZWxlY3Rpb25EaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHB1YmxpYyBnZXQgaG9zdEVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWZlcmVuY2UubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0b3JzOiBGQ29ubmVjdG9yQmFzZVtdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmZXJlbmNlOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBmQ29tcG9uZW50c1N0b3JlOiBGQ29tcG9uZW50c1N0b3JlXG4gICkge1xuICAgIHN1cGVyKCk7XG5cbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldFN0eWxlKCdwb3NpdGlvbicsICdhYnNvbHV0ZScpO1xuICAgIHRoaXMuc2V0U3R5bGUoJ3RyYW5zZm9ybS1vcmlnaW4nLCAnMCAwJyk7XG4gICAgdGhpcy5zZXRTdHlsZSgndXNlci1zZWxlY3QnLCAnbm9uZScpO1xuICAgIHRoaXMuc2V0U3R5bGUoJ3BvaW50ZXItZXZlbnRzJywgJ2FsbCcpO1xuICAgIHRoaXMuc2V0U3R5bGUoJ2xlZnQnLCAnMCcpO1xuICAgIHRoaXMuc2V0U3R5bGUoJ3RvcCcsICcwJyk7XG4gICAgc3VwZXIucmVkcmF3KCk7XG4gICAgdGhpcy5mQ29tcG9uZW50c1N0b3JlLmFkZENvbXBvbmVudCh0aGlzLmZDb21wb25lbnRzU3RvcmUuZk5vZGVzLCB0aGlzKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBzZXRTdHlsZShzdHlsZU5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5ob3N0RWxlbWVudCwgc3R5bGVOYW1lLCB2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucyQuYWRkKFxuICAgICAgdGhpcy5zdWJzY3JpYmVPblJlc2l6ZUNoYW5nZXMoKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHN1YnNjcmliZU9uUmVzaXplQ2hhbmdlcygpOiBTdWJzY3JpcHRpb24ge1xuICAgIHJldHVybiBtZXJnZShuZXcgRlJlc2l6ZU9ic2VydmVyKHRoaXMuaG9zdEVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLCB0aGlzLnN0YXRlQ2hhbmdlcykucGlwZShcbiAgICAgIGRlYm91bmNlVGltZSg1KSwgc3RhcnRXaXRoKG51bGwpXG4gICAgKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5jb25uZWN0b3JzLmZvckVhY2goKGZDb25uZWN0b3I6IEZDb25uZWN0b3JCYXNlKSA9PiB7XG5cbiAgICAgICAgZkNvbm5lY3Rvci5mQ29ubmVjdGFibGVTaWRlID0gbmV3IENhbGN1bGF0ZUNvbm5lY3RvckNvbm5lY3RhYmxlU2lkZUhhbmRsZXIoKS5oYW5kbGUoXG4gICAgICAgICAgbmV3IENhbGN1bGF0ZUNvbm5lY3RvckNvbm5lY3RhYmxlU2lkZVJlcXVlc3QoZkNvbm5lY3RvciwgdGhpcy5ob3N0RWxlbWVudClcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5mQ29tcG9uZW50c1N0b3JlLmNoYW5nZXMubmV4dCgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGFkZENvbm5lY3Rvcihjb25uZWN0b3I6IEZDb25uZWN0b3JCYXNlKTogdm9pZCB7XG4gICAgdGhpcy5jb25uZWN0b3JzLnB1c2goY29ubmVjdG9yKTtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgcmVtb3ZlQ29ubmVjdG9yKGNvbm5lY3RvcjogRkNvbm5lY3RvckJhc2UpOiB2b2lkIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuY29ubmVjdG9ycy5pbmRleE9mKGNvbm5lY3Rvcik7XG4gICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgdGhpcy5jb25uZWN0b3JzLnNwbGljZShpbmRleCwgMSk7XG4gICAgfVxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgfVxuXG4gIHB1YmxpYyByZWZyZXNoKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmZDb21wb25lbnRzU3RvcmUucmVtb3ZlQ29tcG9uZW50KHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mTm9kZXMsIHRoaXMpO1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zJC51bnN1YnNjcmliZSgpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,41 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ export class FComponentsStore {
5
+ constructor() {
6
+ this.changes = new Subject();
7
+ this.fNodes = [];
8
+ this.fGroups = [];
9
+ this.fConnections = [];
10
+ this.fMarkers = [];
11
+ this.fOutputs = [];
12
+ this.fInputs = [];
13
+ this.fOutlets = [];
14
+ }
15
+ get flowHost() {
16
+ return this.fFlow?.hostElement;
17
+ }
18
+ get transform() {
19
+ return this.fCanvas?.transform;
20
+ }
21
+ findNode(element) {
22
+ return this.fNodes.find(n => n.isContains(element));
23
+ }
24
+ addComponent(collection, component) {
25
+ collection.push(component);
26
+ this.changes.next();
27
+ }
28
+ removeComponent(collection, component) {
29
+ const index = collection.indexOf(component);
30
+ if (index > -1) {
31
+ collection.splice(index, 1);
32
+ this.changes.next();
33
+ }
34
+ }
35
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: FComponentsStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
36
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: FComponentsStore }); }
37
+ }
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: FComponentsStore, decorators: [{
39
+ type: Injectable
40
+ }] });
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb21wb25lbnRzLXN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLXN0b3JhZ2UvZi1jb21wb25lbnRzLXN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFZL0IsTUFBTSxPQUFPLGdCQUFnQjtJQUQ3QjtRQUdrQixZQUFPLEdBQWtCLElBQUksT0FBTyxFQUFRLENBQUM7UUFnQnRELFdBQU0sR0FBZ0IsRUFBRSxDQUFDO1FBRXpCLFlBQU8sR0FBaUIsRUFBRSxDQUFDO1FBRTNCLGlCQUFZLEdBQXNCLEVBQUUsQ0FBQztRQUlyQyxhQUFRLEdBQWtCLEVBQUUsQ0FBQztRQUU3QixhQUFRLEdBQXFCLEVBQUUsQ0FBQztRQUVoQyxZQUFPLEdBQXFCLEVBQUUsQ0FBQztRQUUvQixhQUFRLEdBQXFCLEVBQUUsQ0FBQztLQW9CeEM7SUFoREMsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxXQUFZLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQVcsU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsU0FBVSxDQUFDO0lBQ2xDLENBQUM7SUEwQk0sUUFBUSxDQUFDLE9BQWlDO1FBQy9DLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVNLFlBQVksQ0FBSSxVQUFlLEVBQUUsU0FBWTtRQUNsRCxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVNLGVBQWUsQ0FBSSxVQUFlLEVBQUUsU0FBWTtRQUNyRCxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzVDLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDZixVQUFVLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztZQUM1QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDOzhHQW5EVSxnQkFBZ0I7a0hBQWhCLGdCQUFnQjs7MkZBQWhCLGdCQUFnQjtrQkFENUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IElUcmFuc2Zvcm1Nb2RlbCB9IGZyb20gJ0Bmb2JsZXgvY29yZSc7XG5pbXBvcnQgeyBGQ29ubmVjdGlvbkJhc2UsIEZNYXJrZXJCYXNlIH0gZnJvbSAnLi4vZi1jb25uZWN0aW9uJztcbmltcG9ydCB7IEZGbG93QmFzZSB9IGZyb20gJy4uL2YtZmxvdyc7XG5pbXBvcnQgeyBGQ2FudmFzQmFzZSB9IGZyb20gJy4uL2YtY2FudmFzJztcbmltcG9ydCB7IEZCYWNrZ3JvdW5kQmFzZSB9IGZyb20gJy4uL2YtYmFja2dyb3VkJztcbmltcG9ydCB7IEZOb2RlQmFzZSB9IGZyb20gJy4uL2Ytbm9kZSc7XG5pbXBvcnQgeyBGQ29ubmVjdG9yQmFzZSB9IGZyb20gJy4uL2YtY29ubmVjdG9ycyc7XG5pbXBvcnQgeyBGRHJhZ2dhYmxlQmFzZSB9IGZyb20gJy4uL2YtZHJhZ2dhYmxlJztcbmltcG9ydCB7IEZHcm91cEJhc2UgfSBmcm9tICcuLi9mLWdyb3VwJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEZDb21wb25lbnRzU3RvcmUge1xuXG4gIHB1YmxpYyByZWFkb25seSBjaGFuZ2VzOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwdWJsaWMgZ2V0IGZsb3dIb3N0KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5mRmxvdz8uaG9zdEVsZW1lbnQhO1xuICB9XG5cbiAgcHVibGljIGdldCB0cmFuc2Zvcm0oKTogSVRyYW5zZm9ybU1vZGVsIHtcbiAgICByZXR1cm4gdGhpcy5mQ2FudmFzPy50cmFuc2Zvcm0hO1xuICB9XG5cbiAgcHVibGljIGZGbG93OiBGRmxvd0Jhc2UgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIGZDYW52YXM6IEZDYW52YXNCYXNlIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBmQmFja2dyb3VuZDogRkJhY2tncm91bmRCYXNlIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBmTm9kZXM6IEZOb2RlQmFzZVtdID0gW107XG5cbiAgcHVibGljIGZHcm91cHM6IEZHcm91cEJhc2VbXSA9IFtdO1xuXG4gIHB1YmxpYyBmQ29ubmVjdGlvbnM6IEZDb25uZWN0aW9uQmFzZVtdID0gW107XG5cbiAgcHVibGljIGZUZW1wQ29ubmVjdGlvbjogRkNvbm5lY3Rpb25CYXNlIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBmTWFya2VyczogRk1hcmtlckJhc2VbXSA9IFtdO1xuXG4gIHB1YmxpYyBmT3V0cHV0czogRkNvbm5lY3RvckJhc2VbXSA9IFtdO1xuXG4gIHB1YmxpYyBmSW5wdXRzOiBGQ29ubmVjdG9yQmFzZVtdID0gW107XG5cbiAgcHVibGljIGZPdXRsZXRzOiBGQ29ubmVjdG9yQmFzZVtdID0gW107XG5cbiAgcHVibGljIGZEcmFnZ2FibGU6IEZEcmFnZ2FibGVCYXNlIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBmaW5kTm9kZShlbGVtZW50OiBIVE1MRWxlbWVudCB8IFNWR0VsZW1lbnQpOiBGTm9kZUJhc2UgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmZOb2Rlcy5maW5kKG4gPT4gbi5pc0NvbnRhaW5zKGVsZW1lbnQpKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRDb21wb25lbnQ8VD4oY29sbGVjdGlvbjogVFtdLCBjb21wb25lbnQ6IFQpOiB2b2lkIHtcbiAgICBjb2xsZWN0aW9uLnB1c2goY29tcG9uZW50KTtcbiAgICB0aGlzLmNoYW5nZXMubmV4dCgpO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZUNvbXBvbmVudDxUPihjb2xsZWN0aW9uOiBUW10sIGNvbXBvbmVudDogVCk6IHZvaWQge1xuICAgIGNvbnN0IGluZGV4ID0gY29sbGVjdGlvbi5pbmRleE9mKGNvbXBvbmVudCk7XG4gICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgIGNvbGxlY3Rpb24uc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgIHRoaXMuY2hhbmdlcy5uZXh0KCk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './f-components-store';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2Ytc3RvcmFnZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9mLWNvbXBvbmVudHMtc3RvcmUnO1xuIl19
@@ -8,10 +8,10 @@ export * from './f-external-item';
8
8
  export * from './f-line-alignment';
9
9
  export * from './f-selection-area';
10
10
  export * from './f-flow';
11
+ export * from './f-group';
11
12
  export * from './f-node';
12
13
  export * from './f-mediator';
13
- export * from './f-components-store';
14
+ export * from './f-storage';
14
15
  export * from './f-flow.module';
15
- export * from './get-flow-uid';
16
16
  export * from './i-has-state-changes';
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGVBQWUsQ0FBQztBQUU5QixjQUFjLFlBQVksQ0FBQztBQUUzQixjQUFjLFVBQVUsQ0FBQztBQUV6QixjQUFjLGdCQUFnQixDQUFDO0FBRS9CLGNBQWMsZ0JBQWdCLENBQUM7QUFFL0IsY0FBYyxlQUFlLENBQUM7QUFFOUIsY0FBYyxtQkFBbUIsQ0FBQztBQUVsQyxjQUFjLG9CQUFvQixDQUFDO0FBRW5DLGNBQWMsb0JBQW9CLENBQUM7QUFFbkMsY0FBYyxVQUFVLENBQUM7QUFFekIsY0FBYyxVQUFVLENBQUM7QUFFekIsY0FBYyxjQUFjLENBQUM7QUFFN0IsY0FBYyxzQkFBc0IsQ0FBQztBQUVyQyxjQUFjLGlCQUFpQixDQUFDO0FBRWhDLGNBQWMsZ0JBQWdCLENBQUM7QUFFL0IsY0FBYyx1QkFBdUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZi1iYWNrZ3JvdWQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2YtY2FudmFzJztcblxuZXhwb3J0ICogZnJvbSAnLi9kb21haW4nO1xuXG5leHBvcnQgKiBmcm9tICcuL2YtY29ubmVjdGlvbic7XG5cbmV4cG9ydCAqIGZyb20gJy4vZi1jb25uZWN0b3JzJztcblxuZXhwb3J0ICogZnJvbSAnLi9mLWRyYWdnYWJsZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZi1leHRlcm5hbC1pdGVtJztcblxuZXhwb3J0ICogZnJvbSAnLi9mLWxpbmUtYWxpZ25tZW50JztcblxuZXhwb3J0ICogZnJvbSAnLi9mLXNlbGVjdGlvbi1hcmVhJztcblxuZXhwb3J0ICogZnJvbSAnLi9mLWZsb3cnO1xuXG5leHBvcnQgKiBmcm9tICcuL2Ytbm9kZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZi1tZWRpYXRvcic7XG5cbmV4cG9ydCAqIGZyb20gJy4vZi1jb21wb25lbnRzLXN0b3JlJztcblxuZXhwb3J0ICogZnJvbSAnLi9mLWZsb3cubW9kdWxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9nZXQtZmxvdy11aWQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2ktaGFzLXN0YXRlLWNoYW5nZXMnO1xuIl19
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGVBQWUsQ0FBQztBQUU5QixjQUFjLFlBQVksQ0FBQztBQUUzQixjQUFjLFVBQVUsQ0FBQztBQUV6QixjQUFjLGdCQUFnQixDQUFDO0FBRS9CLGNBQWMsZ0JBQWdCLENBQUM7QUFFL0IsY0FBYyxlQUFlLENBQUM7QUFFOUIsY0FBYyxtQkFBbUIsQ0FBQztBQUVsQyxjQUFjLG9CQUFvQixDQUFDO0FBRW5DLGNBQWMsb0JBQW9CLENBQUM7QUFFbkMsY0FBYyxVQUFVLENBQUM7QUFFekIsY0FBYyxXQUFXLENBQUM7QUFFMUIsY0FBYyxVQUFVLENBQUM7QUFFekIsY0FBYyxjQUFjLENBQUM7QUFFN0IsY0FBYyxhQUFhLENBQUM7QUFFNUIsY0FBYyxpQkFBaUIsQ0FBQztBQUVoQyxjQUFjLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9mLWJhY2tncm91ZCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZi1jYW52YXMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2RvbWFpbic7XG5cbmV4cG9ydCAqIGZyb20gJy4vZi1jb25uZWN0aW9uJztcblxuZXhwb3J0ICogZnJvbSAnLi9mLWNvbm5lY3RvcnMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2YtZHJhZ2dhYmxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9mLWV4dGVybmFsLWl0ZW0nO1xuXG5leHBvcnQgKiBmcm9tICcuL2YtbGluZS1hbGlnbm1lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2Ytc2VsZWN0aW9uLWFyZWEnO1xuXG5leHBvcnQgKiBmcm9tICcuL2YtZmxvdyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZi1ncm91cCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZi1ub2RlJztcblxuZXhwb3J0ICogZnJvbSAnLi9mLW1lZGlhdG9yJztcblxuZXhwb3J0ICogZnJvbSAnLi9mLXN0b3JhZ2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL2YtZmxvdy5tb2R1bGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2ktaGFzLXN0YXRlLWNoYW5nZXMnO1xuIl19
@@ -1,7 +1,7 @@
1
1
  import { AfterContentInit, ElementRef, OnDestroy, OnInit } from "@angular/core";
2
2
  import { FBackgroundBase } from './f-background-base';
3
3
  import { ITransformModel } from '@foblex/core';
4
- import { FComponentsStore } from '../f-components-store';
4
+ import { FComponentsStore } from '../f-storage';
5
5
  import * as i0 from "@angular/core";
6
6
  export declare class FBackgroundComponent extends FBackgroundBase implements OnInit, AfterContentInit, OnDestroy {
7
7
  private elementReference;
@@ -0,0 +1,32 @@
1
+ import { ElementRef, OnDestroy, OnInit } from "@angular/core";
2
+ import { ITransformModel } from '@foblex/core';
3
+ import { IFBackgroundPattern } from '../domain';
4
+ import * as i0 from "@angular/core";
5
+ export declare class FCirclePatternComponent implements OnInit, OnDestroy, IFBackgroundPattern {
6
+ private elementReference;
7
+ private _subscription$;
8
+ private _stateChanges;
9
+ get hostElement(): HTMLElement;
10
+ id: string;
11
+ private _color;
12
+ set color(value: string);
13
+ private _radius;
14
+ private _scaledRadius;
15
+ set radius(value: number);
16
+ private _transform;
17
+ private _position;
18
+ private _pattern;
19
+ private _circle;
20
+ constructor(elementReference: ElementRef<HTMLElement>);
21
+ private createPattern;
22
+ ngOnInit(): void;
23
+ private subscribeToStateChanges;
24
+ private calculatePattern;
25
+ private redraw;
26
+ private redrawPattern;
27
+ private redrawElement;
28
+ setTransform(transform: ITransformModel): void;
29
+ ngOnDestroy(): void;
30
+ static ɵfac: i0.ɵɵFactoryDeclaration<FCirclePatternComponent, never>;
31
+ static ɵcmp: i0.ɵɵComponentDeclaration<FCirclePatternComponent, "f-circle-pattern", never, { "id": { "alias": "id"; "required": false; }; "color": { "alias": "color"; "required": false; }; "radius": { "alias": "radius"; "required": false; }; }, {}, never, never, false, never>;
32
+ }
@@ -0,0 +1 @@
1
+ export * from './f-circle-pattern.component';
@@ -0,0 +1,37 @@
1
+ import { ElementRef, OnDestroy, OnInit } from "@angular/core";
2
+ import { ITransformModel } from '@foblex/core';
3
+ import { IFBackgroundPattern } from '../domain';
4
+ import * as i0 from "@angular/core";
5
+ export declare class FRectPatternComponent implements OnInit, OnDestroy, IFBackgroundPattern {
6
+ private elementReference;
7
+ private _subscription$;
8
+ private _stateChanges;
9
+ get hostElement(): HTMLElement;
10
+ id: string;
11
+ private _vColor;
12
+ set vColor(value: string);
13
+ private _hColor;
14
+ set hColor(value: string);
15
+ private _vSize;
16
+ set vSize(value: number);
17
+ private _hSize;
18
+ set hSize(value: number);
19
+ private _transform;
20
+ private _position;
21
+ private _size;
22
+ private _pattern;
23
+ private _vLine;
24
+ private _hLine;
25
+ constructor(elementReference: ElementRef<HTMLElement>);
26
+ private createPattern;
27
+ ngOnInit(): void;
28
+ private subscribeToStateChanges;
29
+ private calculatePattern;
30
+ private redraw;
31
+ private redrawPattern;
32
+ private redrawLine;
33
+ setTransform(transform: ITransformModel): void;
34
+ ngOnDestroy(): void;
35
+ static ɵfac: i0.ɵɵFactoryDeclaration<FRectPatternComponent, never>;
36
+ static ɵcmp: i0.ɵɵComponentDeclaration<FRectPatternComponent, "f-rect-pattern", never, { "id": { "alias": "id"; "required": false; }; "vColor": { "alias": "vColor"; "required": false; }; "hColor": { "alias": "hColor"; "required": false; }; "vSize": { "alias": "vSize"; "required": false; }; "hSize": { "alias": "hSize"; "required": false; }; }, {}, never, never, false, never>;
37
+ }
@@ -0,0 +1 @@
1
+ export * from './f-rect-pattern.component';
@@ -1,4 +1,5 @@
1
1
  export * from './domain';
2
- export * from './f-cell-pattern';
2
+ export * from './f-rect-pattern';
3
+ export * from './f-circle-pattern';
3
4
  export * from './f-background.component';
4
5
  export * from './f-background-base';
@@ -2,7 +2,7 @@ import { ElementRef, EventEmitter, OnInit } from "@angular/core";
2
2
  import { FCanvasBase } from './f-canvas-base';
3
3
  import { IPoint } from '@foblex/core';
4
4
  import { FCanvasChangeEvent } from './domain';
5
- import { FComponentsStore } from '../f-components-store';
5
+ import { FComponentsStore } from '../f-storage';
6
6
  import { FNodeBase } from '../f-node';
7
7
  import { FFlowMediator } from '../f-mediator';
8
8
  import * as i0 from "@angular/core";
@@ -24,5 +24,5 @@ export declare class FCanvasComponent extends FCanvasBase implements OnInit {
24
24
  fitToScreen(toCenter?: IPoint, animated?: boolean): void;
25
25
  oneToOne(): void;
26
26
  static ɵfac: i0.ɵɵFactoryDeclaration<FCanvasComponent, never>;
27
- static ɵcmp: i0.ɵɵComponentDeclaration<FCanvasComponent, "f-canvas", ["fComponent"], { "position": { "alias": "position"; "required": false; }; "scale": { "alias": "scale"; "required": false; }; }, { "fCanvasChange": "fCanvasChange"; }, never, ["f-connection", "f-connection-for-create", "[fNode]"], false, never>;
27
+ static ɵcmp: i0.ɵɵComponentDeclaration<FCanvasComponent, "f-canvas", ["fComponent"], { "position": { "alias": "position"; "required": false; }; "scale": { "alias": "scale"; "required": false; }; }, { "fCanvasChange": "fCanvasChange"; }, never, ["f-connection", "f-connection-for-create", "[fGroup]", "[fNode]"], false, never>;
28
28
  }
@@ -1,6 +1,6 @@
1
1
  import { IPoint } from '@foblex/core';
2
2
  import { InjectionToken } from '@angular/core';
3
- import { FComponentsStore } from '../../f-components-store';
3
+ import { FComponentsStore } from '../../f-storage';
4
4
  export declare const F_ZOOM: InjectionToken<FZoomBase>;
5
5
  export declare abstract class FZoomBase {
6
6
  protected fComponentsStore: FComponentsStore;
@@ -1,6 +1,6 @@
1
1
  import { AfterViewInit, OnDestroy } from "@angular/core";
2
2
  import { FZoomBase } from './f-zoom-base';
3
- import { FComponentsStore } from '../../f-components-store';
3
+ import { FComponentsStore } from '../../f-storage';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class FZoomDirective extends FZoomBase implements AfterViewInit, OnDestroy {
6
6
  get fFlowZoom(): boolean;
@@ -1,4 +1,4 @@
1
- import { ElementRef, QueryList } from '@angular/core';
1
+ import { ElementRef } from '@angular/core';
2
2
  import { IHasHostElement, IPoint, IVector } from '@foblex/core';
3
3
  import { Subject } from 'rxjs';
4
4
  import { EFConnectionBehavior } from './e-f-connection-behavior';
@@ -29,6 +29,8 @@ export declare abstract class FConnectionBase extends MIXIN_BASE implements IHas
29
29
  abstract fEndColor: string;
30
30
  abstract fOutputId: string;
31
31
  abstract fInputId: string;
32
+ abstract fRadius: number;
33
+ abstract fOffset: number;
32
34
  path: string;
33
35
  vector: IVector;
34
36
  readonly stateChanges: Subject<void>;
@@ -38,7 +40,7 @@ export declare abstract class FConnectionBase extends MIXIN_BASE implements IHas
38
40
  abstract fBehavior: EFConnectionBehavior;
39
41
  abstract fType: EFConnectionType;
40
42
  abstract fDefs: ElementRef<SVGDefsElement>;
41
- abstract fMarkers: QueryList<FMarkerBase>;
43
+ abstract fMarkers: FMarkerBase[];
42
44
  abstract fPath: IConnectionPath;
43
45
  abstract fGradient: IConnectionGradient;
44
46
  abstract fDragHandle: FConnectionDragHandleComponent;
@@ -48,11 +50,8 @@ export declare abstract class FConnectionBase extends MIXIN_BASE implements IHas
48
50
  abstract fConnectionCenter: ElementRef<HTMLDivElement>;
49
51
  protected constructor(elementReference: ElementRef<HTMLElement>, connectionFactory: FConnectionFactory);
50
52
  initialize(): void;
51
- private reset;
52
53
  isContains(element: HTMLElement | SVGElement): boolean;
53
54
  setVector(from: IPoint, fromSide: EFConnectableSide, to: IPoint, toSide: EFConnectableSide): void;
54
- setMarkers(): void;
55
- private getMarkerId;
56
55
  redraw(): void;
57
56
  static ɵfac: i0.ɵɵFactoryDeclaration<FConnectionBase, never>;
58
57
  static ɵdir: i0.ɵɵDirectiveDeclaration<FConnectionBase, never, never, {}, {}, never, never, false, never>;
@@ -6,6 +6,7 @@ import * as i0 from "@angular/core";
6
6
  export declare class FConnectionPathComponent implements IConnectionPath {
7
7
  private elementReference;
8
8
  private base;
9
+ get fPathId(): string;
9
10
  get linkToGradient(): string;
10
11
  get attrConnectionId(): string;
11
12
  get hostElement(): SVGPathElement;
@@ -14,8 +15,6 @@ export declare class FConnectionPathComponent implements IConnectionPath {
14
15
  setPath(path: string): void;
15
16
  select(): void;
16
17
  deselect(): void;
17
- private getMarkerId;
18
- isSelected(): boolean;
19
18
  static ɵfac: i0.ɵɵFactoryDeclaration<FConnectionPathComponent, never>;
20
19
  static ɵcmp: i0.ɵɵComponentDeclaration<FConnectionPathComponent, "path[f-connection-path]", never, {}, {}, never, never, false, never>;
21
20
  }
@@ -0,0 +1,4 @@
1
+ export declare function getMarkerStartId(fConnectionId: string): string;
2
+ export declare function getMarkerEndId(fConnectionId: string): string;
3
+ export declare function getMarkerSelectedStartId(fConnectionId: string): string;
4
+ export declare function getMarkerSelectedEndId(fConnectionId: string): string;
@@ -1,2 +1,3 @@
1
1
  export * from './f-connection-path.component';
2
+ export * from './get-path-marker-id';
2
3
  export * from './i-connection-path';
@@ -1,5 +1,6 @@
1
1
  import { IHasHostElement, AbstractConstructor, Constructor } from '@foblex/core';
2
2
  export interface ISelectable {
3
+ fSelectionDisabled: boolean;
3
4
  hostElement: HTMLElement | SVGElement;
4
5
  select(): void;
5
6
  deselect(): void;
@@ -2,7 +2,7 @@ import { ElementRef, OnDestroy, OnInit, QueryList } from "@angular/core";
2
2
  import { FConnectionBase, FConnectionDragHandleComponent, FConnectionSelectionComponent, IConnectionGradient, IConnectionPath, IConnectionText } from '../common';
3
3
  import { EFConnectionBehavior } from '../common';
4
4
  import { EFConnectionType } from '../common';
5
- import { FComponentsStore } from '../../f-components-store';
5
+ import { FComponentsStore } from '../../f-storage';
6
6
  import { FMarkerBase } from '../f-marker';
7
7
  import { FConnectionCenterDirective } from '../f-connection-center';
8
8
  import { FConnectionFactory } from '../f-connection-builder';
@@ -10,21 +10,37 @@ import * as i0 from "@angular/core";
10
10
  export declare class FConnectionComponent extends FConnectionBase implements OnInit, OnDestroy {
11
11
  private fComponentsStore;
12
12
  fConnectionId: string;
13
- fText: string;
14
- fStartColor: string;
15
- fEndColor: string;
16
- fOutputId: string;
17
- fInputId: string;
18
- set fBehavior(value: EFConnectionBehavior | string);
19
- get fBehavior(): EFConnectionBehavior;
13
+ private _fText;
14
+ set fText(value: string);
15
+ get fText(): string;
16
+ private _fStartColor;
17
+ set fStartColor(value: string);
18
+ get fStartColor(): string;
19
+ private _fEndColor;
20
+ set fEndColor(value: string);
21
+ get fEndColor(): string;
22
+ private _fOutputId;
23
+ set fOutputId(value: string);
24
+ get fOutputId(): string;
25
+ private _fInputId;
26
+ set fInputId(value: string);
27
+ get fInputId(): string;
28
+ private _fRadius;
29
+ set fRadius(value: number);
30
+ get fRadius(): number;
31
+ private _fOffset;
32
+ set fOffset(value: number);
33
+ get fOffset(): number;
20
34
  private _behavior;
35
+ set fBehavior(value: EFConnectionBehavior);
36
+ get fBehavior(): EFConnectionBehavior;
37
+ private _type;
21
38
  set fType(value: EFConnectionType | string);
22
39
  get fType(): EFConnectionType;
23
- private _type;
24
40
  fDraggingDisabled: boolean;
25
41
  fSelectionDisabled: boolean;
26
42
  fDefs: ElementRef<SVGDefsElement>;
27
- fMarkers: QueryList<FMarkerBase>;
43
+ get fMarkers(): FMarkerBase[];
28
44
  fPath: IConnectionPath;
29
45
  fGradient: IConnectionGradient;
30
46
  fDragHandle: FConnectionDragHandleComponent;
@@ -37,5 +53,5 @@ export declare class FConnectionComponent extends FConnectionBase implements OnI
37
53
  ngOnInit(): void;
38
54
  ngOnDestroy(): void;
39
55
  static ɵfac: i0.ɵɵFactoryDeclaration<FConnectionComponent, never>;
40
- static ɵcmp: i0.ɵɵComponentDeclaration<FConnectionComponent, "f-connection", ["fComponent"], { "fConnectionId": { "alias": "fConnectionId"; "required": false; }; "fText": { "alias": "fText"; "required": false; }; "fStartColor": { "alias": "fStartColor"; "required": false; }; "fEndColor": { "alias": "fEndColor"; "required": false; }; "fOutputId": { "alias": "fOutputId"; "required": false; }; "fInputId": { "alias": "fInputId"; "required": false; }; "fBehavior": { "alias": "fBehavior"; "required": false; }; "fType": { "alias": "fType"; "required": false; }; "fDraggingDisabled": { "alias": "fReassignDisabled"; "required": false; }; "fSelectionDisabled": { "alias": "fSelectionDisabled"; "required": false; }; }, {}, ["fMarkers", "fConnectionCenters"], ["*", "[fConnectionCenter]"], false, never>;
56
+ static ɵcmp: i0.ɵɵComponentDeclaration<FConnectionComponent, "f-connection", ["fComponent"], { "fConnectionId": { "alias": "fConnectionId"; "required": false; }; "fText": { "alias": "fText"; "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>;
41
57
  }
@@ -2,29 +2,39 @@ import { AfterViewInit, ElementRef, OnDestroy, OnInit, QueryList } from "@angula
2
2
  import { FConnectionBase, FConnectionDragHandleComponent, FConnectionSelectionComponent, IConnectionGradient, IConnectionPath, IConnectionText } from '../common';
3
3
  import { EFConnectionBehavior } from '../common';
4
4
  import { EFConnectionType } from '../common';
5
- import { FComponentsStore } from '../../f-components-store';
6
5
  import { FMarkerBase } from '../f-marker';
7
6
  import { FConnectionCenterDirective } from '../f-connection-center';
8
7
  import { FConnectionFactory } from '../f-connection-builder';
8
+ import { FComponentsStore } from '../../f-storage';
9
9
  import * as i0 from "@angular/core";
10
10
  export declare class FConnectionForCreateComponent extends FConnectionBase implements AfterViewInit, OnInit, OnDestroy {
11
11
  private fComponentsStore;
12
12
  fConnectionId: string;
13
13
  fText: string;
14
- fStartColor: string;
15
- fEndColor: string;
14
+ private _fStartColor;
15
+ set fStartColor(value: string);
16
+ get fStartColor(): string;
17
+ private _fEndColor;
18
+ set fEndColor(value: string);
19
+ get fEndColor(): string;
16
20
  fOutputId: string;
17
21
  fInputId: string;
22
+ private _fRadius;
23
+ set fRadius(value: number);
24
+ get fRadius(): number;
25
+ private _fOffset;
26
+ set fOffset(value: number);
27
+ get fOffset(): number;
28
+ private _behavior;
18
29
  set fBehavior(value: EFConnectionBehavior);
19
30
  get fBehavior(): EFConnectionBehavior;
20
- private _behavior;
31
+ private _type;
21
32
  set fType(value: EFConnectionType | string);
22
33
  get fType(): EFConnectionType;
23
- private _type;
24
34
  fDraggingDisabled: boolean;
25
35
  fSelectionDisabled: boolean;
26
36
  fDefs: ElementRef<SVGDefsElement>;
27
- fMarkers: QueryList<FMarkerBase>;
37
+ get fMarkers(): FMarkerBase[];
28
38
  fPath: IConnectionPath;
29
39
  fGradient: IConnectionGradient;
30
40
  fDragHandle: FConnectionDragHandleComponent;
@@ -38,5 +48,5 @@ export declare class FConnectionForCreateComponent extends FConnectionBase imple
38
48
  ngAfterViewInit(): void;
39
49
  ngOnDestroy(): void;
40
50
  static ɵfac: i0.ɵɵFactoryDeclaration<FConnectionForCreateComponent, never>;
41
- static ɵcmp: i0.ɵɵComponentDeclaration<FConnectionForCreateComponent, "f-connection-for-create", never, { "fStartColor": { "alias": "fStartColor"; "required": false; }; "fEndColor": { "alias": "fEndColor"; "required": false; }; "fBehavior": { "alias": "fBehavior"; "required": false; }; "fType": { "alias": "fType"; "required": false; }; }, {}, ["fMarkers", "fConnectionCenters"], ["*", "[fConnectionCenter]"], false, never>;
51
+ static ɵcmp: i0.ɵɵComponentDeclaration<FConnectionForCreateComponent, "f-connection-for-create", never, { "fStartColor": { "alias": "fStartColor"; "required": false; }; "fEndColor": { "alias": "fEndColor"; "required": false; }; "fRadius": { "alias": "fRadius"; "required": false; }; "fOffset": { "alias": "fOffset"; "required": false; }; "fBehavior": { "alias": "fBehavior"; "required": false; }; "fType": { "alias": "fType"; "required": false; }; }, {}, ["fConnectionCenters"], ["*", "[fConnectionCenter]"], false, never>;
42
52
  }