@foblex/flow 12.6.6 → 12.6.8

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 (195) hide show
  1. package/README.md +1 -1
  2. package/bundles/foblex-flow.umd.js +2130 -2147
  3. package/bundles/foblex-flow.umd.js.map +1 -1
  4. package/{f-backgroud/domain → domain/f-background}/add-pattern-to-background/add-pattern-to-background.request.d.ts +1 -1
  5. package/domain/f-background/index.d.ts +2 -0
  6. package/domain/f-canvas/index.d.ts +8 -0
  7. package/{f-draggable/connections/common → domain/f-connection}/get-all-can-be-connected-input-positions/get-all-can-be-connected-input-positions.execution.d.ts +1 -1
  8. package/{f-draggable/connections/common → domain/f-connection}/get-connector-with-rect/get-connector-with-rect-request.d.ts +1 -1
  9. package/{f-draggable/connections/common → domain/f-connection}/get-connector-with-rect/i-connector-with-rect.d.ts +1 -1
  10. package/{f-draggable/connections/common → domain/f-connection}/index.d.ts +0 -1
  11. package/domain/f-connection/providers.d.ts +4 -0
  12. package/domain/get-flow-state/providers.d.ts +1 -1
  13. package/domain/index.d.ts +3 -0
  14. package/domain/providers.d.ts +1 -1
  15. package/esm2015/domain/f-background/add-pattern-to-background/add-pattern-to-background.execution.js +48 -0
  16. package/esm2015/domain/f-background/add-pattern-to-background/add-pattern-to-background.request.js +6 -0
  17. package/esm2015/domain/f-background/add-pattern-to-background/index.js +3 -0
  18. package/esm2015/domain/f-background/index.js +3 -0
  19. package/esm2015/domain/f-background/providers.js +5 -0
  20. package/esm2015/{f-canvas/domain → domain/f-canvas}/center-group-or-node/center-group-or-node-request.js +1 -1
  21. package/esm2015/domain/f-canvas/center-group-or-node/center-group-or-node.execution.js +49 -0
  22. package/esm2015/{f-canvas/domain → domain/f-canvas}/center-group-or-node/index.js +1 -1
  23. package/esm2015/{f-canvas/domain → domain/f-canvas}/fit-to-flow/fit-to-flow-request.js +1 -1
  24. package/esm2015/domain/f-canvas/fit-to-flow/fit-to-flow.execution.js +56 -0
  25. package/esm2015/{f-canvas/domain → domain/f-canvas}/fit-to-flow/index.js +1 -1
  26. package/esm2015/domain/f-canvas/index.js +9 -0
  27. package/esm2015/{f-canvas/domain → domain/f-canvas}/input-canvas-position/index.js +1 -1
  28. package/esm2015/{f-canvas/domain → domain/f-canvas}/input-canvas-position/input-canvas-position-request.js +1 -1
  29. package/esm2015/{f-canvas/domain → domain/f-canvas}/input-canvas-position/input-canvas-position.execution.js +1 -1
  30. package/esm2015/{f-canvas/domain → domain/f-canvas}/input-canvas-scale/index.js +1 -1
  31. package/esm2015/{f-canvas/domain → domain/f-canvas}/input-canvas-scale/input-canvas-scale-request.js +1 -1
  32. package/esm2015/{f-canvas/domain → domain/f-canvas}/input-canvas-scale/input-canvas-scale.execution.js +1 -1
  33. package/esm2015/{f-canvas/domain → domain/f-canvas}/providers.js +1 -1
  34. package/esm2015/{f-canvas/domain → domain/f-canvas}/reset-scale/index.js +1 -1
  35. package/esm2015/{f-canvas/domain → domain/f-canvas}/reset-scale/reset-scale-request.js +1 -1
  36. package/esm2015/{f-canvas/domain → domain/f-canvas}/reset-scale/reset-scale.execution.js +1 -1
  37. package/esm2015/{f-canvas/domain → domain/f-canvas}/reset-scale-and-center/index.js +1 -1
  38. package/esm2015/{f-canvas/domain → domain/f-canvas}/reset-scale-and-center/reset-scale-and-center-request.js +1 -1
  39. package/esm2015/domain/f-canvas/reset-scale-and-center/reset-scale-and-center.execution.js +51 -0
  40. package/esm2015/{f-canvas/domain → domain/f-canvas}/update-scale/index.js +1 -1
  41. package/esm2015/{f-canvas/domain → domain/f-canvas}/update-scale/update-scale-request.js +1 -1
  42. package/esm2015/{f-canvas/domain → domain/f-canvas}/update-scale/update-scale.execution.js +1 -1
  43. package/esm2015/domain/f-connection/find-closest-input-using-snap-threshold/find-closest-input-using-snap-threshold.execution.js +39 -0
  44. package/esm2015/domain/f-connection/find-closest-input-using-snap-threshold/find-closest-input-using-snap-threshold.request.js +8 -0
  45. package/esm2015/domain/f-connection/find-closest-input-using-snap-threshold/index.js +3 -0
  46. package/esm2015/domain/f-connection/get-all-can-be-connected-input-positions/get-all-can-be-connected-input-positions.execution.js +55 -0
  47. package/esm2015/domain/f-connection/get-all-can-be-connected-input-positions/get-all-can-be-connected-input-positions.request.js +6 -0
  48. package/esm2015/domain/f-connection/get-all-can-be-connected-input-positions/index.js +3 -0
  49. package/esm2015/domain/f-connection/get-connector-with-rect/get-connector-with-rect-request.js +6 -0
  50. package/esm2015/domain/f-connection/get-connector-with-rect/get-connector-with-rect.execution.js +28 -0
  51. package/esm2015/domain/f-connection/get-connector-with-rect/i-connector-with-rect.js +2 -0
  52. package/esm2015/domain/f-connection/get-connector-with-rect/index.js +4 -0
  53. package/esm2015/domain/f-connection/index.js +5 -0
  54. package/esm2015/domain/f-connection/providers.js +9 -0
  55. package/esm2015/domain/index.js +4 -1
  56. package/esm2015/domain/providers.js +6 -4
  57. package/esm2015/f-backgroud/domain/index.js +1 -3
  58. package/esm2015/f-backgroud/f-background.component.js +3 -3
  59. package/esm2015/f-canvas/domain/index.js +1 -9
  60. package/esm2015/f-canvas/f-canvas.component.js +2 -3
  61. package/esm2015/f-draggable/connections/create-connection/create-connection-finalize/create-connection-finalize.execution.js +2 -2
  62. package/esm2015/f-draggable/connections/create-connection/create-connection-finalize/index.js +1 -2
  63. package/esm2015/f-draggable/connections/create-connection/create-connection-preparation/create-connection-drag-handler/index.js +1 -2
  64. package/esm2015/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-outlet-preparation/index.js +1 -2
  65. package/esm2015/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-output-preparation/index.js +1 -2
  66. package/esm2015/f-draggable/connections/create-connection/create-connection-preparation/index.js +1 -2
  67. package/esm2015/f-draggable/connections/create-connection/create-connection.drag-handler.js +8 -4
  68. package/esm2015/f-draggable/connections/create-connection/get-can-be-connected-output-by-outlet/index.js +1 -2
  69. package/esm2015/f-draggable/connections/get-input-under-pointer/get-input-under-pointer.execution.js +85 -0
  70. package/esm2015/f-draggable/connections/get-input-under-pointer/get-input-under-pointer.request.js +7 -0
  71. package/esm2015/f-draggable/connections/get-input-under-pointer/get-input-under-pointer.validator.js +35 -0
  72. package/esm2015/f-draggable/connections/get-input-under-pointer/index.js +4 -0
  73. package/esm2015/f-draggable/connections/index.js +2 -2
  74. package/esm2015/f-draggable/connections/providers.js +20 -12
  75. package/esm2015/f-draggable/connections/reassign-connection/reassign-connection-finalize/index.js +1 -2
  76. package/esm2015/f-draggable/connections/reassign-connection/reassign-connection-finalize/reassign-connection-finalize.execution.js +2 -2
  77. package/esm2015/f-draggable/connections/reassign-connection/reassign-connection-preparation/index.js +1 -2
  78. package/esm2015/f-draggable/connections/reassign-connection/reassign-connection.drag-handler.js +12 -5
  79. package/esm2015/f-draggable/node/connection-base-drag-handler.js +2 -2
  80. package/esm2015/f-draggable/node-resize/apply-child-resize-restrictions/apply-child-resize-restrictions.request.js +1 -1
  81. package/esm2015/f-draggable/node-resize/calculate-changed-size/calculate-changed-size.execution.js +1 -1
  82. package/esm2015/f-draggable/node-resize/get-node-resize-restrictions/get-node-resize-restrictions.execution.js +9 -3
  83. package/esm2015/f-draggable/node-resize/get-node-resize-restrictions/i-node-resize-restrictions.js +1 -1
  84. package/esm2015/f-draggable/node-resize/get-normalized-children-nodes-rect/get-normalized-children-nodes-rect.execution.js +3 -6
  85. package/esm2015/f-draggable/node-resize/get-normalized-children-nodes-rect/get-normalized-children-nodes-rect.request.js +3 -3
  86. package/esm2015/f-draggable/node-resize/node-resize.drag-handler.js +5 -4
  87. package/esm2015/f-draggable/providers.js +5 -5
  88. package/esm2015/f-external-item/domain/external-item-preparation/external-item-preparation.execution.js +3 -3
  89. package/esm2015/f-external-item/domain/external-item-preparation/external-item-preparation.validator.js +3 -3
  90. package/esm2015/f-external-item/domain/external-item.drag-handler.js +1 -1
  91. package/esm2015/f-flow/f-flow.component.js +5 -6
  92. package/f-backgroud/domain/index.d.ts +0 -2
  93. package/f-canvas/domain/index.d.ts +0 -8
  94. package/f-draggable/connections/create-connection/create-connection-finalize/index.d.ts +0 -1
  95. package/f-draggable/connections/create-connection/create-connection-preparation/create-connection-drag-handler/index.d.ts +0 -1
  96. package/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-outlet-preparation/index.d.ts +0 -1
  97. package/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-output-preparation/index.d.ts +0 -1
  98. package/f-draggable/connections/create-connection/create-connection-preparation/index.d.ts +0 -1
  99. package/f-draggable/connections/create-connection/create-connection.drag-handler.d.ts +1 -1
  100. package/f-draggable/connections/create-connection/get-can-be-connected-output-by-outlet/index.d.ts +0 -1
  101. package/f-draggable/connections/{common/get-input-under-pointer → get-input-under-pointer}/get-input-under-pointer.execution.d.ts +3 -3
  102. package/f-draggable/connections/{common/get-input-under-pointer → get-input-under-pointer}/get-input-under-pointer.request.d.ts +2 -2
  103. package/f-draggable/connections/{common/get-input-under-pointer → get-input-under-pointer}/get-input-under-pointer.validator.d.ts +1 -1
  104. package/f-draggable/connections/index.d.ts +1 -1
  105. package/f-draggable/connections/providers.d.ts +4 -1
  106. package/f-draggable/connections/reassign-connection/reassign-connection-finalize/index.d.ts +0 -1
  107. package/f-draggable/connections/reassign-connection/reassign-connection-preparation/index.d.ts +0 -1
  108. package/f-draggable/connections/reassign-connection/reassign-connection.drag-handler.d.ts +1 -1
  109. package/f-draggable/node/connection-base-drag-handler.d.ts +1 -1
  110. package/f-draggable/node-resize/get-node-resize-restrictions/get-node-resize-restrictions.execution.d.ts +1 -0
  111. package/f-draggable/node-resize/get-node-resize-restrictions/i-node-resize-restrictions.d.ts +2 -1
  112. package/f-draggable/node-resize/get-normalized-children-nodes-rect/get-normalized-children-nodes-rect.execution.d.ts +0 -1
  113. package/f-draggable/node-resize/get-normalized-children-nodes-rect/get-normalized-children-nodes-rect.request.d.ts +2 -3
  114. package/f-draggable/providers.d.ts +1 -1
  115. package/f-external-item/domain/external-item-preparation/external-item-preparation.execution.d.ts +1 -1
  116. package/f-external-item/domain/external-item-preparation/external-item-preparation.validator.d.ts +1 -1
  117. package/f-external-item/domain/external-item.drag-handler.d.ts +1 -1
  118. package/f-minimap/domain/providers.d.ts +1 -1
  119. package/f-node/providers.d.ts +1 -1
  120. package/fesm2015/foblex-flow.js +947 -965
  121. package/fesm2015/foblex-flow.js.map +1 -1
  122. package/package.json +1 -1
  123. package/esm2015/f-backgroud/domain/add-pattern-to-background/add-pattern-to-background.execution.js +0 -48
  124. package/esm2015/f-backgroud/domain/add-pattern-to-background/add-pattern-to-background.request.js +0 -6
  125. package/esm2015/f-backgroud/domain/add-pattern-to-background/index.js +0 -3
  126. package/esm2015/f-backgroud/domain/providers.js +0 -5
  127. package/esm2015/f-canvas/domain/center-group-or-node/center-group-or-node.execution.js +0 -49
  128. package/esm2015/f-canvas/domain/fit-to-flow/fit-to-flow.execution.js +0 -56
  129. package/esm2015/f-canvas/domain/reset-scale-and-center/reset-scale-and-center.execution.js +0 -51
  130. package/esm2015/f-draggable/connections/common/find-closest-input-using-snap-threshold/find-closest-input-using-snap-threshold.execution.js +0 -39
  131. package/esm2015/f-draggable/connections/common/find-closest-input-using-snap-threshold/find-closest-input-using-snap-threshold.request.js +0 -8
  132. package/esm2015/f-draggable/connections/common/find-closest-input-using-snap-threshold/index.js +0 -3
  133. package/esm2015/f-draggable/connections/common/get-all-can-be-connected-input-positions/get-all-can-be-connected-input-positions.execution.js +0 -55
  134. package/esm2015/f-draggable/connections/common/get-all-can-be-connected-input-positions/get-all-can-be-connected-input-positions.request.js +0 -6
  135. package/esm2015/f-draggable/connections/common/get-all-can-be-connected-input-positions/index.js +0 -3
  136. package/esm2015/f-draggable/connections/common/get-connector-with-rect/get-connector-with-rect-request.js +0 -6
  137. package/esm2015/f-draggable/connections/common/get-connector-with-rect/get-connector-with-rect.execution.js +0 -28
  138. package/esm2015/f-draggable/connections/common/get-connector-with-rect/i-connector-with-rect.js +0 -2
  139. package/esm2015/f-draggable/connections/common/get-connector-with-rect/index.js +0 -4
  140. package/esm2015/f-draggable/connections/common/get-input-under-pointer/get-input-under-pointer.execution.js +0 -85
  141. package/esm2015/f-draggable/connections/common/get-input-under-pointer/get-input-under-pointer.request.js +0 -7
  142. package/esm2015/f-draggable/connections/common/get-input-under-pointer/get-input-under-pointer.validator.js +0 -35
  143. package/esm2015/f-draggable/connections/common/get-input-under-pointer/index.js +0 -4
  144. package/esm2015/f-draggable/connections/common/index.js +0 -6
  145. package/esm2015/f-draggable/connections/common/providers.js +0 -12
  146. package/esm2015/f-draggable/connections/create-connection/create-connection-finalize/providers.js +0 -7
  147. package/esm2015/f-draggable/connections/create-connection/create-connection-preparation/create-connection-drag-handler/providers.js +0 -5
  148. package/esm2015/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-outlet-preparation/providers.js +0 -5
  149. package/esm2015/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-output-preparation/providers.js +0 -7
  150. package/esm2015/f-draggable/connections/create-connection/create-connection-preparation/providers.js +0 -13
  151. package/esm2015/f-draggable/connections/create-connection/get-can-be-connected-output-by-outlet/providers.js +0 -7
  152. package/esm2015/f-draggable/connections/reassign-connection/reassign-connection-finalize/providers.js +0 -7
  153. package/esm2015/f-draggable/connections/reassign-connection/reassign-connection-preparation/providers.js +0 -7
  154. package/f-draggable/connections/common/providers.d.ts +0 -5
  155. package/f-draggable/connections/create-connection/create-connection-finalize/providers.d.ts +0 -3
  156. package/f-draggable/connections/create-connection/create-connection-preparation/create-connection-drag-handler/providers.d.ts +0 -2
  157. package/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-outlet-preparation/providers.d.ts +0 -2
  158. package/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-output-preparation/providers.d.ts +0 -3
  159. package/f-draggable/connections/create-connection/create-connection-preparation/providers.d.ts +0 -3
  160. package/f-draggable/connections/create-connection/get-can-be-connected-output-by-outlet/providers.d.ts +0 -3
  161. package/f-draggable/connections/reassign-connection/reassign-connection-finalize/providers.d.ts +0 -3
  162. package/f-draggable/connections/reassign-connection/reassign-connection-preparation/providers.d.ts +0 -3
  163. /package/{f-backgroud/domain → domain/f-background}/add-pattern-to-background/add-pattern-to-background.execution.d.ts +0 -0
  164. /package/{f-backgroud/domain → domain/f-background}/add-pattern-to-background/index.d.ts +0 -0
  165. /package/{f-backgroud/domain → domain/f-background}/providers.d.ts +0 -0
  166. /package/{f-canvas/domain → domain/f-canvas}/center-group-or-node/center-group-or-node-request.d.ts +0 -0
  167. /package/{f-canvas/domain → domain/f-canvas}/center-group-or-node/center-group-or-node.execution.d.ts +0 -0
  168. /package/{f-canvas/domain → domain/f-canvas}/center-group-or-node/index.d.ts +0 -0
  169. /package/{f-canvas/domain → domain/f-canvas}/fit-to-flow/fit-to-flow-request.d.ts +0 -0
  170. /package/{f-canvas/domain → domain/f-canvas}/fit-to-flow/fit-to-flow.execution.d.ts +0 -0
  171. /package/{f-canvas/domain → domain/f-canvas}/fit-to-flow/index.d.ts +0 -0
  172. /package/{f-canvas/domain → domain/f-canvas}/input-canvas-position/index.d.ts +0 -0
  173. /package/{f-canvas/domain → domain/f-canvas}/input-canvas-position/input-canvas-position-request.d.ts +0 -0
  174. /package/{f-canvas/domain → domain/f-canvas}/input-canvas-position/input-canvas-position.execution.d.ts +0 -0
  175. /package/{f-canvas/domain → domain/f-canvas}/input-canvas-scale/index.d.ts +0 -0
  176. /package/{f-canvas/domain → domain/f-canvas}/input-canvas-scale/input-canvas-scale-request.d.ts +0 -0
  177. /package/{f-canvas/domain → domain/f-canvas}/input-canvas-scale/input-canvas-scale.execution.d.ts +0 -0
  178. /package/{f-canvas/domain → domain/f-canvas}/providers.d.ts +0 -0
  179. /package/{f-canvas/domain → domain/f-canvas}/reset-scale/index.d.ts +0 -0
  180. /package/{f-canvas/domain → domain/f-canvas}/reset-scale/reset-scale-request.d.ts +0 -0
  181. /package/{f-canvas/domain → domain/f-canvas}/reset-scale/reset-scale.execution.d.ts +0 -0
  182. /package/{f-canvas/domain → domain/f-canvas}/reset-scale-and-center/index.d.ts +0 -0
  183. /package/{f-canvas/domain → domain/f-canvas}/reset-scale-and-center/reset-scale-and-center-request.d.ts +0 -0
  184. /package/{f-canvas/domain → domain/f-canvas}/reset-scale-and-center/reset-scale-and-center.execution.d.ts +0 -0
  185. /package/{f-canvas/domain → domain/f-canvas}/update-scale/index.d.ts +0 -0
  186. /package/{f-canvas/domain → domain/f-canvas}/update-scale/update-scale-request.d.ts +0 -0
  187. /package/{f-canvas/domain → domain/f-canvas}/update-scale/update-scale.execution.d.ts +0 -0
  188. /package/{f-draggable/connections/common → domain/f-connection}/find-closest-input-using-snap-threshold/find-closest-input-using-snap-threshold.execution.d.ts +0 -0
  189. /package/{f-draggable/connections/common → domain/f-connection}/find-closest-input-using-snap-threshold/find-closest-input-using-snap-threshold.request.d.ts +0 -0
  190. /package/{f-draggable/connections/common → domain/f-connection}/find-closest-input-using-snap-threshold/index.d.ts +0 -0
  191. /package/{f-draggable/connections/common → domain/f-connection}/get-all-can-be-connected-input-positions/get-all-can-be-connected-input-positions.request.d.ts +0 -0
  192. /package/{f-draggable/connections/common → domain/f-connection}/get-all-can-be-connected-input-positions/index.d.ts +0 -0
  193. /package/{f-draggable/connections/common → domain/f-connection}/get-connector-with-rect/get-connector-with-rect.execution.d.ts +0 -0
  194. /package/{f-draggable/connections/common → domain/f-connection}/get-connector-with-rect/index.d.ts +0 -0
  195. /package/f-draggable/connections/{common/get-input-under-pointer → get-input-under-pointer}/index.d.ts +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@foblex/flow",
3
- "version": "12.6.6",
3
+ "version": "12.6.8",
4
4
  "description": "An Angular library designed to simplify the creation and manipulation of dynamic flow. Provides components for flows, nodes, and connections, automating node manipulation and inter-node connections.",
5
5
  "main": "bundles/foblex-flow.umd.js",
6
6
  "types": "index.d.ts",
@@ -1,48 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { TransformModelExtensions } from '@foblex/2d';
3
- import { AddPatternToBackgroundRequest } from './add-pattern-to-background.request';
4
- import { Injectable } from '@angular/core';
5
- import { FExecutionRegister } from '@foblex/mediator';
6
- import { createSVGElement } from '../../../domain';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "../../../f-storage";
9
- import * as i2 from "@foblex/platform";
10
- let uniqueId = 0;
11
- let AddPatternToBackgroundExecution = class AddPatternToBackgroundExecution {
12
- constructor(fComponentsStore, fBrowser) {
13
- this.fComponentsStore = fComponentsStore;
14
- this.fBrowser = fBrowser;
15
- }
16
- get fBackground() {
17
- return this.fComponentsStore.fBackground;
18
- }
19
- handle(request) {
20
- var _a, _b, _c, _d, _e, _f, _g;
21
- const children = ((_a = request.fPattern) === null || _a === void 0 ? void 0 : _a.hostElement.getElementsByTagName('pattern')) || [];
22
- const pattern = children.length ? children[0] : undefined;
23
- if (pattern) {
24
- const defs = createSVGElement('defs', this.fBrowser);
25
- pattern.id = 'f-background-pattern-' + uniqueId++;
26
- (_b = request.fPattern) === null || _b === void 0 ? void 0 : _b.hostElement.remove();
27
- defs.appendChild(pattern);
28
- (_d = (_c = this.fBackground.hostElement) === null || _c === void 0 ? void 0 : _c.firstChild) === null || _d === void 0 ? void 0 : _d.appendChild(defs);
29
- const rect = createSVGElement('rect', this.fBrowser);
30
- rect.setAttribute('fill', 'url(#' + pattern.id + ')');
31
- rect.setAttribute('width', '100%');
32
- rect.setAttribute('height', '100%');
33
- (_e = this.fBackground.hostElement.firstChild) === null || _e === void 0 ? void 0 : _e.appendChild(rect);
34
- const transform = ((_f = this.fComponentsStore.fCanvas) === null || _f === void 0 ? void 0 : _f.transform) || TransformModelExtensions.default();
35
- (_g = request.fPattern) === null || _g === void 0 ? void 0 : _g.setTransform(transform);
36
- }
37
- }
38
- };
39
- AddPatternToBackgroundExecution.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AddPatternToBackgroundExecution, deps: [{ token: i1.FComponentsStore }, { token: i2.BrowserService }], target: i0.ɵɵFactoryTarget.Injectable });
40
- AddPatternToBackgroundExecution.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AddPatternToBackgroundExecution });
41
- AddPatternToBackgroundExecution = __decorate([
42
- FExecutionRegister(AddPatternToBackgroundRequest)
43
- ], AddPatternToBackgroundExecution);
44
- export { AddPatternToBackgroundExecution };
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AddPatternToBackgroundExecution, decorators: [{
46
- type: Injectable
47
- }], ctorParameters: function () { return [{ type: i1.FComponentsStore }, { type: i2.BrowserService }]; } });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXBhdHRlcm4tdG8tYmFja2dyb3VuZC5leGVjdXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtYmFja2dyb3VkL2RvbWFpbi9hZGQtcGF0dGVybi10by1iYWNrZ3JvdW5kL2FkZC1wYXR0ZXJuLXRvLWJhY2tncm91bmQuZXhlY3V0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQVMsd0JBQXdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDN0QsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDcEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsa0JBQWtCLEVBQWMsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQUtuRCxJQUFJLFFBQVEsR0FBVyxDQUFDLENBQUM7SUFJWiwrQkFBK0IsU0FBL0IsK0JBQStCO0lBTTFDLFlBQ1UsZ0JBQWtDLEVBQ2xDLFFBQXdCO1FBRHhCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7SUFFbEMsQ0FBQztJQVJELElBQVksV0FBVztRQUNyQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFZLENBQUM7SUFDNUMsQ0FBQztJQVFNLE1BQU0sQ0FBQyxPQUFzQzs7UUFDbEQsTUFBTSxRQUFRLEdBQUcsQ0FBQSxNQUFBLE9BQU8sQ0FBQyxRQUFRLDBDQUFFLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsS0FBSSxFQUFFLENBQUM7UUFDckYsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFFLENBQUMsQ0FBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDNUQsSUFBSSxPQUFPLEVBQUU7WUFDWCxNQUFNLElBQUksR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3JELE9BQU8sQ0FBQyxFQUFFLEdBQUcsdUJBQXVCLEdBQUcsUUFBUSxFQUFFLENBQUM7WUFDbEQsTUFBQSxPQUFPLENBQUMsUUFBUSwwQ0FBRSxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDdkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMxQixNQUFBLE1BQUEsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLDBDQUFFLFVBQVUsMENBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzVELE1BQU0sSUFBSSxHQUFHLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDckQsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsT0FBTyxHQUFHLE9BQU8sQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUM7WUFDdEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDbkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDcEMsTUFBQSxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxVQUFVLDBDQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzRCxNQUFNLFNBQVMsR0FBRyxDQUFBLE1BQUEsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sMENBQUUsU0FBUyxLQUFJLHdCQUF3QixDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pHLE1BQUEsT0FBTyxDQUFDLFFBQVEsMENBQUUsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzNDO0lBQ0gsQ0FBQztDQUNGLENBQUE7NkhBOUJZLCtCQUErQjtpSUFBL0IsK0JBQStCO0FBQS9CLCtCQUErQjtJQUQzQyxrQkFBa0IsQ0FBQyw2QkFBNkIsQ0FBQztHQUNyQywrQkFBK0IsQ0E4QjNDO1NBOUJZLCtCQUErQjs0RkFBL0IsK0JBQStCO2tCQUYzQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVJlY3QsIFRyYW5zZm9ybU1vZGVsRXh0ZW5zaW9ucyB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgQWRkUGF0dGVyblRvQmFja2dyb3VuZFJlcXVlc3QgfSBmcm9tICcuL2FkZC1wYXR0ZXJuLXRvLWJhY2tncm91bmQucmVxdWVzdCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGRXhlY3V0aW9uUmVnaXN0ZXIsIElFeGVjdXRpb24gfSBmcm9tICdAZm9ibGV4L21lZGlhdG9yJztcbmltcG9ydCB7IGNyZWF0ZVNWR0VsZW1lbnQgfSBmcm9tICcuLi8uLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uLy4uLy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQgeyBGQmFja2dyb3VuZEJhc2UgfSBmcm9tICcuLi8uLi9mLWJhY2tncm91bmQtYmFzZSc7XG5pbXBvcnQgeyBCcm93c2VyU2VydmljZSB9IGZyb20gJ0Bmb2JsZXgvcGxhdGZvcm0nO1xuXG5sZXQgdW5pcXVlSWQ6IG51bWJlciA9IDA7XG5cbkBJbmplY3RhYmxlKClcbkBGRXhlY3V0aW9uUmVnaXN0ZXIoQWRkUGF0dGVyblRvQmFja2dyb3VuZFJlcXVlc3QpXG5leHBvcnQgY2xhc3MgQWRkUGF0dGVyblRvQmFja2dyb3VuZEV4ZWN1dGlvbiBpbXBsZW1lbnRzIElFeGVjdXRpb248QWRkUGF0dGVyblRvQmFja2dyb3VuZFJlcXVlc3QsIHZvaWQ+IHtcblxuICBwcml2YXRlIGdldCBmQmFja2dyb3VuZCgpOiBGQmFja2dyb3VuZEJhc2Uge1xuICAgIHJldHVybiB0aGlzLmZDb21wb25lbnRzU3RvcmUuZkJhY2tncm91bmQhO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmQ29tcG9uZW50c1N0b3JlOiBGQ29tcG9uZW50c1N0b3JlLFxuICAgIHByaXZhdGUgZkJyb3dzZXI6IEJyb3dzZXJTZXJ2aWNlXG4gICkge1xuICB9XG5cbiAgcHVibGljIGhhbmRsZShyZXF1ZXN0OiBBZGRQYXR0ZXJuVG9CYWNrZ3JvdW5kUmVxdWVzdCk6IHZvaWQge1xuICAgIGNvbnN0IGNoaWxkcmVuID0gcmVxdWVzdC5mUGF0dGVybj8uaG9zdEVsZW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3BhdHRlcm4nKSB8fCBbXTtcbiAgICBjb25zdCBwYXR0ZXJuID0gY2hpbGRyZW4ubGVuZ3RoID8gY2hpbGRyZW5bIDAgXSA6IHVuZGVmaW5lZDtcbiAgICBpZiAocGF0dGVybikge1xuICAgICAgY29uc3QgZGVmcyA9IGNyZWF0ZVNWR0VsZW1lbnQoJ2RlZnMnLCB0aGlzLmZCcm93c2VyKTtcbiAgICAgIHBhdHRlcm4uaWQgPSAnZi1iYWNrZ3JvdW5kLXBhdHRlcm4tJyArIHVuaXF1ZUlkKys7XG4gICAgICByZXF1ZXN0LmZQYXR0ZXJuPy5ob3N0RWxlbWVudC5yZW1vdmUoKTtcbiAgICAgIGRlZnMuYXBwZW5kQ2hpbGQocGF0dGVybik7XG4gICAgICB0aGlzLmZCYWNrZ3JvdW5kLmhvc3RFbGVtZW50Py5maXJzdENoaWxkPy5hcHBlbmRDaGlsZChkZWZzKTtcbiAgICAgIGNvbnN0IHJlY3QgPSBjcmVhdGVTVkdFbGVtZW50KCdyZWN0JywgdGhpcy5mQnJvd3Nlcik7XG4gICAgICByZWN0LnNldEF0dHJpYnV0ZSgnZmlsbCcsICd1cmwoIycgKyBwYXR0ZXJuLmlkICsgJyknKTtcbiAgICAgIHJlY3Quc2V0QXR0cmlidXRlKCd3aWR0aCcsICcxMDAlJyk7XG4gICAgICByZWN0LnNldEF0dHJpYnV0ZSgnaGVpZ2h0JywgJzEwMCUnKTtcbiAgICAgIHRoaXMuZkJhY2tncm91bmQuaG9zdEVsZW1lbnQuZmlyc3RDaGlsZD8uYXBwZW5kQ2hpbGQocmVjdCk7XG4gICAgICBjb25zdCB0cmFuc2Zvcm0gPSB0aGlzLmZDb21wb25lbnRzU3RvcmUuZkNhbnZhcz8udHJhbnNmb3JtIHx8IFRyYW5zZm9ybU1vZGVsRXh0ZW5zaW9ucy5kZWZhdWx0KCk7XG4gICAgICByZXF1ZXN0LmZQYXR0ZXJuPy5zZXRUcmFuc2Zvcm0odHJhbnNmb3JtKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1,6 +0,0 @@
1
- export class AddPatternToBackgroundRequest {
2
- constructor(fPattern) {
3
- this.fPattern = fPattern;
4
- }
5
- }
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXBhdHRlcm4tdG8tYmFja2dyb3VuZC5yZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWJhY2tncm91ZC9kb21haW4vYWRkLXBhdHRlcm4tdG8tYmFja2dyb3VuZC9hZGQtcGF0dGVybi10by1iYWNrZ3JvdW5kLnJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLDZCQUE2QjtJQUN4QyxZQUNTLFFBQXlDO1FBQXpDLGFBQVEsR0FBUixRQUFRLENBQWlDO0lBRWxELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElGQmFja2dyb3VuZFBhdHRlcm4gfSBmcm9tICcuLi9pLWYtYmFja2dyb3VuZC1wYXR0ZXJuJztcblxuZXhwb3J0IGNsYXNzIEFkZFBhdHRlcm5Ub0JhY2tncm91bmRSZXF1ZXN0IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGZQYXR0ZXJuOiBJRkJhY2tncm91bmRQYXR0ZXJuIHwgdW5kZWZpbmVkXG4gICkge1xuICB9XG59XG4iXX0=
@@ -1,3 +0,0 @@
1
- export * from './add-pattern-to-background.execution';
2
- export * from './add-pattern-to-background.request';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtYmFja2dyb3VkL2RvbWFpbi9hZGQtcGF0dGVybi10by1iYWNrZ3JvdW5kL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsdUNBQXVDLENBQUM7QUFFdEQsY0FBYyxxQ0FBcUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYWRkLXBhdHRlcm4tdG8tYmFja2dyb3VuZC5leGVjdXRpb24nO1xuXG5leHBvcnQgKiBmcm9tICcuL2FkZC1wYXR0ZXJuLXRvLWJhY2tncm91bmQucmVxdWVzdCc7XG4iXX0=
@@ -1,5 +0,0 @@
1
- import { AddPatternToBackgroundExecution } from './add-pattern-to-background';
2
- export const F_BACKGROUND_FEATURES = [
3
- AddPatternToBackgroundExecution
4
- ];
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWJhY2tncm91ZC9kb21haW4vcHJvdmlkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTlFLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHO0lBRW5DLCtCQUErQjtDQUNoQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWRkUGF0dGVyblRvQmFja2dyb3VuZEV4ZWN1dGlvbiB9IGZyb20gJy4vYWRkLXBhdHRlcm4tdG8tYmFja2dyb3VuZCc7XG5cbmV4cG9ydCBjb25zdCBGX0JBQ0tHUk9VTkRfRkVBVFVSRVMgPSBbXG5cbiAgQWRkUGF0dGVyblRvQmFja2dyb3VuZEV4ZWN1dGlvblxuXTtcbiJdfQ==
@@ -1,49 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { Injectable } from '@angular/core';
3
- import { CenterGroupOrNodeRequest } from './center-group-or-node-request';
4
- import { FExecutionRegister } from '@foblex/mediator';
5
- import { PointExtensions, RectExtensions } from '@foblex/2d';
6
- import { F_CANVAS_ANIMATION_DURATION } from '../../../domain';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "../../../f-storage";
9
- let CenterGroupOrNodeExecution = class CenterGroupOrNodeExecution {
10
- constructor(fComponentsStore) {
11
- this.fComponentsStore = fComponentsStore;
12
- }
13
- get transform() {
14
- return this.fComponentsStore.fCanvas.transform;
15
- }
16
- handle(request) {
17
- const fNode = this.getNode(request.id);
18
- if (!fNode) {
19
- return;
20
- }
21
- this.toCenter(this.getNodeRect(fNode), this.getFlowRect(), fNode.position);
22
- request.animated ? this.fComponentsStore.fCanvas.redrawWithAnimation() : this.fComponentsStore.fCanvas.redraw();
23
- this.fComponentsStore.fCanvas.emitCanvasChangeEvent();
24
- setTimeout(() => this.fComponentsStore.componentDataChanged(), F_CANVAS_ANIMATION_DURATION);
25
- }
26
- toCenter(fNodeRect, fFlowRect, position) {
27
- this.transform.scaledPosition = PointExtensions.initialize();
28
- this.transform.position = PointExtensions.initialize((fFlowRect.width - fNodeRect.width) / 2 - position.x * this.transform.scale, (fFlowRect.height - fNodeRect.height) / 2 - position.y * this.transform.scale);
29
- }
30
- getNode(id) {
31
- return this.fComponentsStore.fNodes.find((x) => x.fId === id);
32
- }
33
- getNodeRect(fNode) {
34
- return RectExtensions.fromElement(fNode.hostElement);
35
- }
36
- getFlowRect() {
37
- return RectExtensions.fromElement(this.fComponentsStore.fFlow.hostElement);
38
- }
39
- };
40
- CenterGroupOrNodeExecution.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CenterGroupOrNodeExecution, deps: [{ token: i1.FComponentsStore }], target: i0.ɵɵFactoryTarget.Injectable });
41
- CenterGroupOrNodeExecution.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CenterGroupOrNodeExecution });
42
- CenterGroupOrNodeExecution = __decorate([
43
- FExecutionRegister(CenterGroupOrNodeRequest)
44
- ], CenterGroupOrNodeExecution);
45
- export { CenterGroupOrNodeExecution };
46
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CenterGroupOrNodeExecution, decorators: [{
47
- type: Injectable
48
- }], ctorParameters: function () { return [{ type: i1.FComponentsStore }]; } });
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VudGVyLWdyb3VwLW9yLW5vZGUuZXhlY3V0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNhbnZhcy9kb21haW4vY2VudGVyLWdyb3VwLW9yLW5vZGUvY2VudGVyLWdyb3VwLW9yLW5vZGUuZXhlY3V0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBYyxNQUFNLGtCQUFrQixDQUFDO0FBQ2xFLE9BQU8sRUFBa0MsZUFBZSxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUc3RixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0lBSWpELDBCQUEwQixTQUExQiwwQkFBMEI7SUFNckMsWUFDVSxnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtJQUU1QyxDQUFDO0lBUEQsSUFBWSxTQUFTO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQVEsQ0FBQyxTQUFTLENBQUM7SUFDbEQsQ0FBQztJQU9NLE1BQU0sQ0FBQyxPQUFpQztRQUM3QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFM0UsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQVEsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2xILElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFRLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUN2RCxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLG9CQUFvQixFQUFFLEVBQUUsMkJBQTJCLENBQUMsQ0FBQztJQUM5RixDQUFDO0lBRU0sUUFBUSxDQUFDLFNBQWdCLEVBQUUsU0FBZ0IsRUFBRSxRQUFnQjtRQUNsRSxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsR0FBRyxlQUFlLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDN0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEdBQUcsZUFBZSxDQUFDLFVBQVUsQ0FDbEQsQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFDM0UsQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FDOUUsQ0FBQztJQUNKLENBQUM7SUFFTyxPQUFPLENBQUMsRUFBVTtRQUN4QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFTyxXQUFXLENBQUMsS0FBZ0I7UUFDbEMsT0FBTyxjQUFjLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRU8sV0FBVztRQUNqQixPQUFPLGNBQWMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM5RSxDQUFDO0NBQ0YsQ0FBQTt3SEEzQ1ksMEJBQTBCOzRIQUExQiwwQkFBMEI7QUFBMUIsMEJBQTBCO0lBRHRDLGtCQUFrQixDQUFDLHdCQUF3QixDQUFDO0dBQ2hDLDBCQUEwQixDQTJDdEM7U0EzQ1ksMEJBQTBCOzRGQUExQiwwQkFBMEI7a0JBRnRDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDZW50ZXJHcm91cE9yTm9kZVJlcXVlc3QgfSBmcm9tICcuL2NlbnRlci1ncm91cC1vci1ub2RlLXJlcXVlc3QnO1xuaW1wb3J0IHsgRkV4ZWN1dGlvblJlZ2lzdGVyLCBJRXhlY3V0aW9uIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBJUG9pbnQsIElSZWN0LCBJVHJhbnNmb3JtTW9kZWwsIFBvaW50RXh0ZW5zaW9ucywgUmVjdEV4dGVuc2lvbnMgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IEZDb21wb25lbnRzU3RvcmUgfSBmcm9tICcuLi8uLi8uLi9mLXN0b3JhZ2UnO1xuaW1wb3J0IHsgRk5vZGVCYXNlIH0gZnJvbSAnLi4vLi4vLi4vZi1ub2RlJztcbmltcG9ydCB7IEZfQ0FOVkFTX0FOSU1BVElPTl9EVVJBVElPTiB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbic7XG5cbkBJbmplY3RhYmxlKClcbkBGRXhlY3V0aW9uUmVnaXN0ZXIoQ2VudGVyR3JvdXBPck5vZGVSZXF1ZXN0KVxuZXhwb3J0IGNsYXNzIENlbnRlckdyb3VwT3JOb2RlRXhlY3V0aW9uIGltcGxlbWVudHMgSUV4ZWN1dGlvbjxDZW50ZXJHcm91cE9yTm9kZVJlcXVlc3QsIHZvaWQ+IHtcblxuICBwcml2YXRlIGdldCB0cmFuc2Zvcm0oKTogSVRyYW5zZm9ybU1vZGVsIHtcbiAgICByZXR1cm4gdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZDYW52YXMhLnRyYW5zZm9ybTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZkNvbXBvbmVudHNTdG9yZTogRkNvbXBvbmVudHNTdG9yZSxcbiAgKSB7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlKHJlcXVlc3Q6IENlbnRlckdyb3VwT3JOb2RlUmVxdWVzdCk6IHZvaWQge1xuICAgIGNvbnN0IGZOb2RlID0gdGhpcy5nZXROb2RlKHJlcXVlc3QuaWQpO1xuICAgIGlmICghZk5vZGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnRvQ2VudGVyKHRoaXMuZ2V0Tm9kZVJlY3QoZk5vZGUpLCB0aGlzLmdldEZsb3dSZWN0KCksIGZOb2RlLnBvc2l0aW9uKTtcblxuICAgIHJlcXVlc3QuYW5pbWF0ZWQgPyB0aGlzLmZDb21wb25lbnRzU3RvcmUuZkNhbnZhcyEucmVkcmF3V2l0aEFuaW1hdGlvbigpIDogdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZDYW52YXMhLnJlZHJhdygpO1xuICAgIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mQ2FudmFzIS5lbWl0Q2FudmFzQ2hhbmdlRXZlbnQoKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuZkNvbXBvbmVudHNTdG9yZS5jb21wb25lbnREYXRhQ2hhbmdlZCgpLCBGX0NBTlZBU19BTklNQVRJT05fRFVSQVRJT04pO1xuICB9XG5cbiAgcHVibGljIHRvQ2VudGVyKGZOb2RlUmVjdDogSVJlY3QsIGZGbG93UmVjdDogSVJlY3QsIHBvc2l0aW9uOiBJUG9pbnQpOiB2b2lkIHtcbiAgICB0aGlzLnRyYW5zZm9ybS5zY2FsZWRQb3NpdGlvbiA9IFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKCk7XG4gICAgdGhpcy50cmFuc2Zvcm0ucG9zaXRpb24gPSBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZShcbiAgICAgIChmRmxvd1JlY3Qud2lkdGggLSBmTm9kZVJlY3Qud2lkdGgpIC8gMiAtIHBvc2l0aW9uLnggKiB0aGlzLnRyYW5zZm9ybS5zY2FsZSxcbiAgICAgIChmRmxvd1JlY3QuaGVpZ2h0IC0gZk5vZGVSZWN0LmhlaWdodCkgLyAyIC0gcG9zaXRpb24ueSAqIHRoaXMudHJhbnNmb3JtLnNjYWxlXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Tm9kZShpZDogc3RyaW5nKTogRk5vZGVCYXNlIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZOb2Rlcy5maW5kKCh4KSA9PiB4LmZJZCA9PT0gaWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXROb2RlUmVjdChmTm9kZTogRk5vZGVCYXNlKTogSVJlY3Qge1xuICAgIHJldHVybiBSZWN0RXh0ZW5zaW9ucy5mcm9tRWxlbWVudChmTm9kZS5ob3N0RWxlbWVudCk7XG4gIH1cblxuICBwcml2YXRlIGdldEZsb3dSZWN0KCk6IElSZWN0IHtcbiAgICByZXR1cm4gUmVjdEV4dGVuc2lvbnMuZnJvbUVsZW1lbnQodGhpcy5mQ29tcG9uZW50c1N0b3JlLmZGbG93IS5ob3N0RWxlbWVudCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,56 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { Injectable } from '@angular/core';
3
- import { FitToFlowRequest } from './fit-to-flow-request';
4
- import { FExecutionRegister } from '@foblex/mediator';
5
- import { PointExtensions, RectExtensions } from '@foblex/2d';
6
- import { F_CANVAS_ANIMATION_DURATION, GetNodesRectRequest } from '../../../domain';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "../../../f-storage";
9
- import * as i2 from "@foblex/mediator";
10
- let FitToFlowExecution = class FitToFlowExecution {
11
- constructor(fComponentsStore, fMediator) {
12
- this.fComponentsStore = fComponentsStore;
13
- this.fMediator = fMediator;
14
- }
15
- get transform() {
16
- return this.fComponentsStore.fCanvas.transform;
17
- }
18
- handle(request) {
19
- const fNodesRect = this.fMediator.send(new GetNodesRectRequest()) || RectExtensions.initialize();
20
- if (fNodesRect.width === 0 || fNodesRect.height === 0) {
21
- return;
22
- }
23
- this.fitToParent(fNodesRect, RectExtensions.fromElement(this.fComponentsStore.fFlow.hostElement), this.fComponentsStore.fNodes.map((x) => x.position), request.toCenter);
24
- request.animated ? this.fComponentsStore.fCanvas.redrawWithAnimation() : this.fComponentsStore.fCanvas.redraw();
25
- this.fComponentsStore.fCanvas.emitCanvasChangeEvent();
26
- setTimeout(() => this.fComponentsStore.componentDataChanged(), F_CANVAS_ANIMATION_DURATION);
27
- }
28
- fitToParent(rect, parentRect, points, toCenter) {
29
- this.transform.scaledPosition = PointExtensions.initialize();
30
- this.transform.position = this.getZeroPositionWithoutScale(points);
31
- const itemsContainerWidth = (rect.width / this.transform.scale) + toCenter.x;
32
- const itemsContainerHeight = (rect.height / this.transform.scale) + toCenter.y;
33
- if ((itemsContainerWidth > parentRect.width || itemsContainerHeight > parentRect.height) ||
34
- itemsContainerWidth < parentRect.width && itemsContainerHeight < parentRect.height) {
35
- this.transform.scale = Math.min(parentRect.width / itemsContainerWidth, parentRect.height / itemsContainerHeight);
36
- }
37
- const newX = (parentRect.width - itemsContainerWidth * this.transform.scale) / 2 - this.transform.position.x * this.transform.scale;
38
- const newY = (parentRect.height - itemsContainerHeight * this.transform.scale) / 2 - this.transform.position.y * this.transform.scale;
39
- this.transform.position = PointExtensions.initialize(newX + (toCenter.x / 2) * this.transform.scale, newY + (toCenter.y / 2) * this.transform.scale);
40
- }
41
- getZeroPositionWithoutScale(points) {
42
- const xPoint = points.length ? Math.min(...points.map((point) => point.x)) : 0;
43
- const yPoint = points.length ? Math.min(...points.map((point) => point.y)) : 0;
44
- return PointExtensions.initialize(xPoint, yPoint);
45
- }
46
- };
47
- FitToFlowExecution.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FitToFlowExecution, deps: [{ token: i1.FComponentsStore }, { token: i2.FMediator }], target: i0.ɵɵFactoryTarget.Injectable });
48
- FitToFlowExecution.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FitToFlowExecution });
49
- FitToFlowExecution = __decorate([
50
- FExecutionRegister(FitToFlowRequest)
51
- ], FitToFlowExecution);
52
- export { FitToFlowExecution };
53
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FitToFlowExecution, decorators: [{
54
- type: Injectable
55
- }], ctorParameters: function () { return [{ type: i1.FComponentsStore }, { type: i2.FMediator }]; } });
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml0LXRvLWZsb3cuZXhlY3V0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNhbnZhcy9kb21haW4vZml0LXRvLWZsb3cvZml0LXRvLWZsb3cuZXhlY3V0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBeUIsTUFBTSxrQkFBa0IsQ0FBQztBQUM3RSxPQUFPLEVBQWtDLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFN0YsT0FBTyxFQUFFLDJCQUEyQixFQUFFLG1CQUFtQixFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7SUFJdEUsa0JBQWtCLFNBQWxCLGtCQUFrQjtJQU03QixZQUNVLGdCQUFrQyxFQUNsQyxTQUFvQjtRQURwQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGNBQVMsR0FBVCxTQUFTLENBQVc7SUFFOUIsQ0FBQztJQVJELElBQVksU0FBUztRQUNuQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFRLENBQUMsU0FBUyxDQUFDO0lBQ2xELENBQUM7SUFRTSxNQUFNLENBQUMsT0FBeUI7UUFDckMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQWUsSUFBSSxtQkFBbUIsRUFBRSxDQUFDLElBQUksY0FBYyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQy9HLElBQUksVUFBVSxDQUFDLEtBQUssS0FBSyxDQUFDLElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDckQsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLFdBQVcsQ0FDZCxVQUFVLEVBQ1YsY0FBYyxDQUFDLFdBQVcs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LEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0UsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0UsT0FBTyxlQUFlLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQTtJQUNuRCxDQUFDO0NBQ0YsQ0FBQTtnSEFwRFksa0JBQWtCO29IQUFsQixrQkFBa0I7QUFBbEIsa0JBQWtCO0lBRDlCLGtCQUFrQixDQUFDLGdCQUFnQixDQUFDO0dBQ3hCLGtCQUFrQixDQW9EOUI7U0FwRFksa0JBQWtCOzRGQUFsQixrQkFBa0I7a0JBRjlCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGaXRUb0Zsb3dSZXF1ZXN0IH0gZnJvbSAnLi9maXQtdG8tZmxvdy1yZXF1ZXN0JztcbmltcG9ydCB7IEZFeGVjdXRpb25SZWdpc3RlciwgRk1lZGlhdG9yLCBJRXhlY3V0aW9uIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBJUG9pbnQsIElSZWN0LCBJVHJhbnNmb3JtTW9kZWwsIFBvaW50RXh0ZW5zaW9ucywgUmVjdEV4dGVuc2lvbnMgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IEZDb21wb25lbnRzU3RvcmUgfSBmcm9tICcuLi8uLi8uLi9mLXN0b3JhZ2UnO1xuaW1wb3J0IHsgRl9DQU5WQVNfQU5JTUFUSU9OX0RVUkFUSU9OLCBHZXROb2Rlc1JlY3RSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluJztcblxuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihGaXRUb0Zsb3dSZXF1ZXN0KVxuZXhwb3J0IGNsYXNzIEZpdFRvRmxvd0V4ZWN1dGlvbiBpbXBsZW1lbnRzIElFeGVjdXRpb248Rml0VG9GbG93UmVxdWVzdCwgdm9pZD4ge1xuXG4gIHByaXZhdGUgZ2V0IHRyYW5zZm9ybSgpOiBJVHJhbnNmb3JtTW9kZWwge1xuICAgIHJldHVybiB0aGlzLmZDb21wb25lbnRzU3RvcmUuZkNhbnZhcyEudHJhbnNmb3JtO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmQ29tcG9uZW50c1N0b3JlOiBGQ29tcG9uZW50c1N0b3JlLFxuICAgIHByaXZhdGUgZk1lZGlhdG9yOiBGTWVkaWF0b3JcbiAgKSB7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlKHJlcXVlc3Q6IEZpdFRvRmxvd1JlcXVlc3QpOiB2b2lkIHtcbiAgICBjb25zdCBmTm9kZXNSZWN0ID0gdGhpcy5mTWVkaWF0b3Iuc2VuZDxJUmVjdCB8IG51bGw+KG5ldyBHZXROb2Rlc1JlY3RSZXF1ZXN0KCkpIHx8IFJlY3RFeHRlbnNpb25zLmluaXRpYWxpemUoKTtcbiAgICBpZiAoZk5vZGVzUmVjdC53aWR0aCA9PT0gMCB8fCBmTm9kZXNSZWN0LmhlaWdodCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZml0VG9QYXJlbnQoXG4gICAgICBmTm9kZXNSZWN0LFxuICAgICAgUmVjdEV4dGVuc2lvbnMuZnJvbUVsZW1lbnQodGhpcy5mQ29tcG9uZW50c1N0b3JlLmZGbG93IS5ob3N0RWxlbWVudCksXG4gICAgICB0aGlzLmZDb21wb25lbnRzU3RvcmUuZk5vZGVzLm1hcCgoeCkgPT4geC5wb3NpdGlvbiksXG4gICAgICByZXF1ZXN0LnRvQ2VudGVyXG4gICAgKTtcbiAgICByZXF1ZXN0LmFuaW1hdGVkID8gdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZDYW52YXMhLnJlZHJhd1dpdGhBbmltYXRpb24oKSA6IHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mQ2FudmFzIS5yZWRyYXcoKTtcbiAgICB0aGlzLmZDb21wb25lbnRzU3RvcmUuZkNhbnZhcyEuZW1pdENhbnZhc0NoYW5nZUV2ZW50KCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmZDb21wb25lbnRzU3RvcmUuY29tcG9uZW50RGF0YUNoYW5nZWQoKSwgRl9DQU5WQVNfQU5JTUFUSU9OX0RVUkFUSU9OKTtcbiAgfVxuXG4gIHB1YmxpYyBmaXRUb1BhcmVudChyZWN0OiBJUmVjdCwgcGFyZW50UmVjdDogSVJlY3QsIHBvaW50czogSVBvaW50W10sIHRvQ2VudGVyOiBJUG9pbnQpOiB2b2lkIHtcbiAgICB0aGlzLnRyYW5zZm9ybS5zY2FsZWRQb3NpdGlvbiA9IFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKCk7XG4gICAgdGhpcy50cmFuc2Zvcm0ucG9zaXRpb24gPSB0aGlzLmdldFplcm9Qb3NpdGlvbldpdGhvdXRTY2FsZShwb2ludHMpO1xuICAgIGNvbnN0IGl0ZW1zQ29udGFpbmVyV2lkdGggPSAocmVjdC53aWR0aCAvIHRoaXMudHJhbnNmb3JtLnNjYWxlKSArIHRvQ2VudGVyLng7XG4gICAgY29uc3QgaXRlbXNDb250YWluZXJIZWlnaHQgPSAocmVjdC5oZWlnaHQgLyB0aGlzLnRyYW5zZm9ybS5zY2FsZSkgKyB0b0NlbnRlci55O1xuICAgIGlmIChcbiAgICAgIChpdGVtc0NvbnRhaW5lcldpZHRoID4gcGFyZW50UmVjdC53aWR0aCB8fCBpdGVtc0NvbnRhaW5lckhlaWdodCA+IHBhcmVudFJlY3QuaGVpZ2h0KSB8fFxuICAgICAgaXRlbXNDb250YWluZXJXaWR0aCA8IHBhcmVudFJlY3Qud2lkdGggJiYgaXRlbXNDb250YWluZXJIZWlnaHQgPCBwYXJlbnRSZWN0LmhlaWdodFxuICAgICkge1xuICAgICAgdGhpcy50cmFuc2Zvcm0uc2NhbGUgPSBNYXRoLm1pbihwYXJlbnRSZWN0LndpZHRoIC8gaXRlbXNDb250YWluZXJXaWR0aCwgcGFyZW50UmVjdC5oZWlnaHQgLyBpdGVtc0NvbnRhaW5lckhlaWdodCk7XG4gICAgfVxuXG4gICAgY29uc3QgbmV3WCA9IChwYXJlbnRSZWN0LndpZHRoIC0gaXRlbXNDb250YWluZXJXaWR0aCAqIHRoaXMudHJhbnNmb3JtLnNjYWxlKSAvIDIgLSB0aGlzLnRyYW5zZm9ybS5wb3NpdGlvbi54ICogdGhpcy50cmFuc2Zvcm0uc2NhbGU7XG4gICAgY29uc3QgbmV3WSA9IChwYXJlbnRSZWN0LmhlaWdodCAtIGl0ZW1zQ29udGFpbmVySGVpZ2h0ICogdGhpcy50cmFuc2Zvcm0uc2NhbGUpIC8gMiAtIHRoaXMudHJhbnNmb3JtLnBvc2l0aW9uLnkgKiB0aGlzLnRyYW5zZm9ybS5zY2FsZTtcblxuICAgIHRoaXMudHJhbnNmb3JtLnBvc2l0aW9uID0gUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUobmV3WCArICh0b0NlbnRlci54IC8gMikgKiB0aGlzLnRyYW5zZm9ybS5zY2FsZSwgbmV3WSArICh0b0NlbnRlci55IC8gMikgKiB0aGlzLnRyYW5zZm9ybS5zY2FsZSlcbiAgfVxuXG4gIHByaXZhdGUgZ2V0WmVyb1Bvc2l0aW9uV2l0aG91dFNjYWxlKHBvaW50czogSVBvaW50W10pOiBJUG9pbnQge1xuICAgIGNvbnN0IHhQb2ludCA9IHBvaW50cy5sZW5ndGggPyBNYXRoLm1pbiguLi5wb2ludHMubWFwKChwb2ludCkgPT4gcG9pbnQueCkpIDogMDtcbiAgICBjb25zdCB5UG9pbnQgPSBwb2ludHMubGVuZ3RoID8gTWF0aC5taW4oLi4ucG9pbnRzLm1hcCgocG9pbnQpID0+IHBvaW50LnkpKSA6IDA7XG4gICAgcmV0dXJuIFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKHhQb2ludCwgeVBvaW50KVxuICB9XG59XG4iXX0=
@@ -1,51 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { Injectable } from '@angular/core';
3
- import { ResetScaleAndCenterRequest } from './reset-scale-and-center-request';
4
- import { FExecutionRegister } from '@foblex/mediator';
5
- import { PointExtensions, RectExtensions } from '@foblex/2d';
6
- import { F_CANVAS_ANIMATION_DURATION, GetNodesRectRequest } from '../../../domain';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "../../../f-storage";
9
- import * as i2 from "@foblex/mediator";
10
- let ResetScaleAndCenterExecution = class ResetScaleAndCenterExecution {
11
- constructor(fComponentsStore, fMediator) {
12
- this.fComponentsStore = fComponentsStore;
13
- this.fMediator = fMediator;
14
- }
15
- get transform() {
16
- return this.fComponentsStore.fCanvas.transform;
17
- }
18
- handle(request) {
19
- const fNodesRect = this.fMediator.send(new GetNodesRectRequest()) || RectExtensions.initialize();
20
- if (fNodesRect.width === 0 || fNodesRect.height === 0) {
21
- return;
22
- }
23
- this.oneToOneCentering(fNodesRect, RectExtensions.fromElement(this.fComponentsStore.fFlow.hostElement), this.fComponentsStore.fNodes.map((x) => x.position));
24
- request.animated ? this.fComponentsStore.fCanvas.redrawWithAnimation() : this.fComponentsStore.fCanvas.redraw();
25
- this.fComponentsStore.fCanvas.emitCanvasChangeEvent();
26
- setTimeout(() => this.fComponentsStore.componentDataChanged(), F_CANVAS_ANIMATION_DURATION);
27
- }
28
- oneToOneCentering(rect, parentRect, points) {
29
- this.transform.scaledPosition = PointExtensions.initialize();
30
- this.transform.position = this.getZeroPositionWithoutScale(points);
31
- const newX = (parentRect.width - rect.width / this.transform.scale) / 2 - this.transform.position.x;
32
- const newY = (parentRect.height - rect.height / this.transform.scale) / 2 - this.transform.position.y;
33
- this.transform.scale = 1;
34
- this.transform.position = PointExtensions.initialize(newX, newY);
35
- }
36
- getZeroPositionWithoutScale(points) {
37
- const xPoint = points.length ? Math.min(...points.map((point) => point.x)) : 0;
38
- const yPoint = points.length ? Math.min(...points.map((point) => point.y)) : 0;
39
- return PointExtensions.initialize(xPoint, yPoint);
40
- }
41
- };
42
- ResetScaleAndCenterExecution.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ResetScaleAndCenterExecution, deps: [{ token: i1.FComponentsStore }, { token: i2.FMediator }], target: i0.ɵɵFactoryTarget.Injectable });
43
- ResetScaleAndCenterExecution.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ResetScaleAndCenterExecution });
44
- ResetScaleAndCenterExecution = __decorate([
45
- FExecutionRegister(ResetScaleAndCenterRequest)
46
- ], ResetScaleAndCenterExecution);
47
- export { ResetScaleAndCenterExecution };
48
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ResetScaleAndCenterExecution, decorators: [{
49
- type: Injectable
50
- }], ctorParameters: function () { return [{ type: i1.FComponentsStore }, { type: i2.FMediator }]; } });
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzZXQtc2NhbGUtYW5kLWNlbnRlci5leGVjdXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY2FudmFzL2RvbWFpbi9yZXNldC1zY2FsZS1hbmQtY2VudGVyL3Jlc2V0LXNjYWxlLWFuZC1jZW50ZXIuZXhlY3V0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxrQkFBa0IsRUFBeUIsTUFBTSxrQkFBa0IsQ0FBQztBQUM3RSxPQUFPLEVBQWtDLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDN0YsT0FBTyxFQUFFLDJCQUEyQixFQUFFLG1CQUFtQixFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7SUFNdEUsNEJBQTRCLFNBQTVCLDRCQUE0QjtJQU12QyxZQUNVLGdCQUFrQyxFQUNsQyxTQUFvQjtRQURwQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGNBQVMsR0FBVCxTQUFTLENBQVc7SUFFOUIsQ0FBQztJQVJELElBQVksU0FBUztRQUNuQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFRLENBQUMsU0FBUyxDQUFDO0lBQ2xELENBQUM7SUFRTSxNQUFNLENBQUMsT0FBbUM7UUFDL0MsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQWUsSUFBSSxtQkFBbUIsRUFBRSxDQUFDLElBQUksY0FBYyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQy9HLElBQUksVUFBVSxDQUFDLEtBQUssS0FBSyxDQUFDLElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDckQsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLGlCQUFpQixDQUNwQixVQUFVLEVBQ1YsY0FBYyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBTSxDQUFDLFdBQVcsQ0FBQyxFQUNwRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUNwRCxDQUFDO1FBRUYsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQVEsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2xILElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFRLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUN2RCxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLG9CQUFvQixFQUFFLEVBQUUsMkJBQTJCLENBQUMsQ0FBQztJQUM5RixDQUFDO0lBRU0saUJBQWlCLENBQUMsSUFBVyxFQUFFLFVBQWlCLEVBQUUsTUFBZ0I7UUFDdkUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLEdBQUcsZUFBZSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQzdELElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVuRSxNQUFNLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDcEcsTUFBTSxJQUFJLEdBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBRXRHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsR0FBRyxlQUFlLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRU8sMkJBQTJCLENBQUMsTUFBZ0I7UUFDbEQsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0UsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0UsT0FBTyxlQUFlLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQTtJQUNuRCxDQUFDO0NBQ0YsQ0FBQTswSEE1Q1ksNEJBQTRCOzhIQUE1Qiw0QkFBNEI7QUFBNUIsNEJBQTRCO0lBRHhDLGtCQUFrQixDQUFDLDBCQUEwQixDQUFDO0dBQ2xDLDRCQUE0QixDQTRDeEM7U0E1Q1ksNEJBQTRCOzRGQUE1Qiw0QkFBNEI7a0JBRnhDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZXNldFNjYWxlQW5kQ2VudGVyUmVxdWVzdCB9IGZyb20gJy4vcmVzZXQtc2NhbGUtYW5kLWNlbnRlci1yZXF1ZXN0JztcbmltcG9ydCB7IEZFeGVjdXRpb25SZWdpc3RlciwgRk1lZGlhdG9yLCBJRXhlY3V0aW9uIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBJUG9pbnQsIElSZWN0LCBJVHJhbnNmb3JtTW9kZWwsIFBvaW50RXh0ZW5zaW9ucywgUmVjdEV4dGVuc2lvbnMgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IEZfQ0FOVkFTX0FOSU1BVElPTl9EVVJBVElPTiwgR2V0Tm9kZXNSZWN0UmVxdWVzdCB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vLi4vLi4vZi1zdG9yYWdlJztcblxuXG5ASW5qZWN0YWJsZSgpXG5ARkV4ZWN1dGlvblJlZ2lzdGVyKFJlc2V0U2NhbGVBbmRDZW50ZXJSZXF1ZXN0KVxuZXhwb3J0IGNsYXNzIFJlc2V0U2NhbGVBbmRDZW50ZXJFeGVjdXRpb24gaW1wbGVtZW50cyBJRXhlY3V0aW9uPFJlc2V0U2NhbGVBbmRDZW50ZXJSZXF1ZXN0LCB2b2lkPiB7XG5cbiAgcHJpdmF0ZSBnZXQgdHJhbnNmb3JtKCk6IElUcmFuc2Zvcm1Nb2RlbCB7XG4gICAgcmV0dXJuIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mQ2FudmFzIS50cmFuc2Zvcm07XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZDb21wb25lbnRzU3RvcmU6IEZDb21wb25lbnRzU3RvcmUsXG4gICAgcHJpdmF0ZSBmTWVkaWF0b3I6IEZNZWRpYXRvclxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGUocmVxdWVzdDogUmVzZXRTY2FsZUFuZENlbnRlclJlcXVlc3QpOiB2b2lkIHtcbiAgICBjb25zdCBmTm9kZXNSZWN0ID0gdGhpcy5mTWVkaWF0b3Iuc2VuZDxJUmVjdCB8IG51bGw+KG5ldyBHZXROb2Rlc1JlY3RSZXF1ZXN0KCkpIHx8IFJlY3RFeHRlbnNpb25zLmluaXRpYWxpemUoKTtcbiAgICBpZiAoZk5vZGVzUmVjdC53aWR0aCA9PT0gMCB8fCBmTm9kZXNSZWN0LmhlaWdodCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm9uZVRvT25lQ2VudGVyaW5nKFxuICAgICAgZk5vZGVzUmVjdCxcbiAgICAgIFJlY3RFeHRlbnNpb25zLmZyb21FbGVtZW50KHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mRmxvdyEuaG9zdEVsZW1lbnQpLFxuICAgICAgdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZOb2Rlcy5tYXAoKHgpID0+IHgucG9zaXRpb24pXG4gICAgKTtcblxuICAgIHJlcXVlc3QuYW5pbWF0ZWQgPyB0aGlzLmZDb21wb25lbnRzU3RvcmUuZkNhbnZhcyEucmVkcmF3V2l0aEFuaW1hdGlvbigpIDogdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZDYW52YXMhLnJlZHJhdygpO1xuICAgIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mQ2FudmFzIS5lbWl0Q2FudmFzQ2hhbmdlRXZlbnQoKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuZkNvbXBvbmVudHNTdG9yZS5jb21wb25lbnREYXRhQ2hhbmdlZCgpLCBGX0NBTlZBU19BTklNQVRJT05fRFVSQVRJT04pO1xuICB9XG5cbiAgcHVibGljIG9uZVRvT25lQ2VudGVyaW5nKHJlY3Q6IElSZWN0LCBwYXJlbnRSZWN0OiBJUmVjdCwgcG9pbnRzOiBJUG9pbnRbXSk6IHZvaWQge1xuICAgIHRoaXMudHJhbnNmb3JtLnNjYWxlZFBvc2l0aW9uID0gUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoKTtcbiAgICB0aGlzLnRyYW5zZm9ybS5wb3NpdGlvbiA9IHRoaXMuZ2V0WmVyb1Bvc2l0aW9uV2l0aG91dFNjYWxlKHBvaW50cyk7XG5cbiAgICBjb25zdCBuZXdYID0gKHBhcmVudFJlY3Qud2lkdGggLSByZWN0LndpZHRoIC8gdGhpcy50cmFuc2Zvcm0uc2NhbGUpIC8gMiAtIHRoaXMudHJhbnNmb3JtLnBvc2l0aW9uLng7XG4gICAgY29uc3QgbmV3WSA9IChwYXJlbnRSZWN0LmhlaWdodCAtIHJlY3QuaGVpZ2h0IC8gdGhpcy50cmFuc2Zvcm0uc2NhbGUpIC8gMiAtIHRoaXMudHJhbnNmb3JtLnBvc2l0aW9uLnk7XG5cbiAgICB0aGlzLnRyYW5zZm9ybS5zY2FsZSA9IDE7XG4gICAgdGhpcy50cmFuc2Zvcm0ucG9zaXRpb24gPSBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZShuZXdYLCBuZXdZKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0WmVyb1Bvc2l0aW9uV2l0aG91dFNjYWxlKHBvaW50czogSVBvaW50W10pOiBJUG9pbnQge1xuICAgIGNvbnN0IHhQb2ludCA9IHBvaW50cy5sZW5ndGggPyBNYXRoLm1pbiguLi5wb2ludHMubWFwKChwb2ludCkgPT4gcG9pbnQueCkpIDogMDtcbiAgICBjb25zdCB5UG9pbnQgPSBwb2ludHMubGVuZ3RoID8gTWF0aC5taW4oLi4ucG9pbnRzLm1hcCgocG9pbnQpID0+IHBvaW50LnkpKSA6IDA7XG4gICAgcmV0dXJuIFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKHhQb2ludCwgeVBvaW50KVxuICB9XG59XG4iXX0=
@@ -1,39 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { FindClosestInputUsingSnapThresholdRequest } from './find-closest-input-using-snap-threshold.request';
3
- import { Injectable } from '@angular/core';
4
- import { FExecutionRegister } from '@foblex/mediator';
5
- import * as i0 from "@angular/core";
6
- let FindClosestInputUsingSnapThresholdExecution = class FindClosestInputUsingSnapThresholdExecution {
7
- handle(payload) {
8
- let result;
9
- let minDistance = Infinity;
10
- for (const element of payload.canBeConnectedInputs) {
11
- const distance = this.distanceToRectangle(payload.position, element);
12
- if (distance < minDistance) {
13
- minDistance = distance;
14
- result = element;
15
- }
16
- }
17
- return minDistance < payload.snapThreshold ? result : undefined;
18
- }
19
- distanceToRectangle(point, inputWithRect) {
20
- const closestX = this.clamp(point.x, inputWithRect.fRect.x, inputWithRect.fRect.x + inputWithRect.fRect.width);
21
- const closestY = this.clamp(point.y, inputWithRect.fRect.y, inputWithRect.fRect.y + inputWithRect.fRect.height);
22
- const dx = point.x - closestX;
23
- const dy = point.y - closestY;
24
- return Math.sqrt(dx * dx + dy * dy);
25
- }
26
- clamp(value, min, max) {
27
- return Math.max(min, Math.min(max, value));
28
- }
29
- };
30
- FindClosestInputUsingSnapThresholdExecution.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FindClosestInputUsingSnapThresholdExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
31
- FindClosestInputUsingSnapThresholdExecution.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FindClosestInputUsingSnapThresholdExecution });
32
- FindClosestInputUsingSnapThresholdExecution = __decorate([
33
- FExecutionRegister(FindClosestInputUsingSnapThresholdRequest)
34
- ], FindClosestInputUsingSnapThresholdExecution);
35
- export { FindClosestInputUsingSnapThresholdExecution };
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FindClosestInputUsingSnapThresholdExecution, decorators: [{
37
- type: Injectable
38
- }] });
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1jbG9zZXN0LWlucHV0LXVzaW5nLXNuYXAtdGhyZXNob2xkLmV4ZWN1dGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1kcmFnZ2FibGUvY29ubmVjdGlvbnMvY29tbW9uL2ZpbmQtY2xvc2VzdC1pbnB1dC11c2luZy1zbmFwLXRocmVzaG9sZC9maW5kLWNsb3Nlc3QtaW5wdXQtdXNpbmctc25hcC10aHJlc2hvbGQuZXhlY3V0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUseUNBQXlDLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUM5RyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBYyxNQUFNLGtCQUFrQixDQUFDOztJQU1yRCwyQ0FBMkMsU0FBM0MsMkNBQTJDO0lBSS9DLE1BQU0sQ0FBQyxPQUFrRDtRQUM5RCxJQUFJLE1BQXNDLENBQUM7UUFDM0MsSUFBSSxXQUFXLEdBQUcsUUFBUSxDQUFDO1FBRTNCLEtBQUssTUFBTSxPQUFPLElBQUksT0FBTyxDQUFDLG9CQUFvQixFQUFFO1lBQ2xELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBRXJFLElBQUksUUFBUSxHQUFHLFdBQVcsRUFBRTtnQkFDMUIsV0FBVyxHQUFHLFFBQVEsQ0FBQztnQkFDdkIsTUFBTSxHQUFHLE9BQU8sQ0FBQzthQUNsQjtTQUNGO1FBRUQsT0FBTyxXQUFXLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDbEUsQ0FBQztJQUVPLG1CQUFtQixDQUFDLEtBQWEsRUFBRSxhQUFpQztRQUMxRSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvRyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVoSCxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQztRQUM5QixNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQztRQUU5QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVPLEtBQUssQ0FBQyxLQUFhLEVBQUUsR0FBVyxFQUFFLEdBQVc7UUFDbkQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzdDLENBQUM7Q0FDRixDQUFBO3lJQWpDWSwyQ0FBMkM7NklBQTNDLDJDQUEyQztBQUEzQywyQ0FBMkM7SUFEdkQsa0JBQWtCLENBQUMseUNBQXlDLENBQUM7R0FDakQsMkNBQTJDLENBaUN2RDtTQWpDWSwyQ0FBMkM7NEZBQTNDLDJDQUEyQztrQkFGdkQsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpbmRDbG9zZXN0SW5wdXRVc2luZ1NuYXBUaHJlc2hvbGRSZXF1ZXN0IH0gZnJvbSAnLi9maW5kLWNsb3Nlc3QtaW5wdXQtdXNpbmctc25hcC10aHJlc2hvbGQucmVxdWVzdCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGRXhlY3V0aW9uUmVnaXN0ZXIsIElFeGVjdXRpb24gfSBmcm9tICdAZm9ibGV4L21lZGlhdG9yJztcbmltcG9ydCB7IElQb2ludCB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgSUNvbm5lY3RvcldpdGhSZWN0IH0gZnJvbSAnLi4vZ2V0LWNvbm5lY3Rvci13aXRoLXJlY3QnO1xuXG5ASW5qZWN0YWJsZSgpXG5ARkV4ZWN1dGlvblJlZ2lzdGVyKEZpbmRDbG9zZXN0SW5wdXRVc2luZ1NuYXBUaHJlc2hvbGRSZXF1ZXN0KVxuZXhwb3J0IGNsYXNzIEZpbmRDbG9zZXN0SW5wdXRVc2luZ1NuYXBUaHJlc2hvbGRFeGVjdXRpb25cbiAgaW1wbGVtZW50cyBJRXhlY3V0aW9uPEZpbmRDbG9zZXN0SW5wdXRVc2luZ1NuYXBUaHJlc2hvbGRSZXF1ZXN0LCBJQ29ubmVjdG9yV2l0aFJlY3QgfCB1bmRlZmluZWQ+IHtcblxuXG4gIHB1YmxpYyBoYW5kbGUocGF5bG9hZDogRmluZENsb3Nlc3RJbnB1dFVzaW5nU25hcFRocmVzaG9sZFJlcXVlc3QpOiBJQ29ubmVjdG9yV2l0aFJlY3QgfCB1bmRlZmluZWQge1xuICAgIGxldCByZXN1bHQ6IElDb25uZWN0b3JXaXRoUmVjdCB8IHVuZGVmaW5lZDtcbiAgICBsZXQgbWluRGlzdGFuY2UgPSBJbmZpbml0eTtcblxuICAgIGZvciAoY29uc3QgZWxlbWVudCBvZiBwYXlsb2FkLmNhbkJlQ29ubmVjdGVkSW5wdXRzKSB7XG4gICAgICBjb25zdCBkaXN0YW5jZSA9IHRoaXMuZGlzdGFuY2VUb1JlY3RhbmdsZShwYXlsb2FkLnBvc2l0aW9uLCBlbGVtZW50KTtcblxuICAgICAgaWYgKGRpc3RhbmNlIDwgbWluRGlzdGFuY2UpIHtcbiAgICAgICAgbWluRGlzdGFuY2UgPSBkaXN0YW5jZTtcbiAgICAgICAgcmVzdWx0ID0gZWxlbWVudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbWluRGlzdGFuY2UgPCBwYXlsb2FkLnNuYXBUaHJlc2hvbGQgPyByZXN1bHQgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIGRpc3RhbmNlVG9SZWN0YW5nbGUocG9pbnQ6IElQb2ludCwgaW5wdXRXaXRoUmVjdDogSUNvbm5lY3RvcldpdGhSZWN0KTogbnVtYmVyIHtcbiAgICBjb25zdCBjbG9zZXN0WCA9IHRoaXMuY2xhbXAocG9pbnQueCwgaW5wdXRXaXRoUmVjdC5mUmVjdC54LCBpbnB1dFdpdGhSZWN0LmZSZWN0LnggKyBpbnB1dFdpdGhSZWN0LmZSZWN0LndpZHRoKTtcbiAgICBjb25zdCBjbG9zZXN0WSA9IHRoaXMuY2xhbXAocG9pbnQueSwgaW5wdXRXaXRoUmVjdC5mUmVjdC55LCBpbnB1dFdpdGhSZWN0LmZSZWN0LnkgKyBpbnB1dFdpdGhSZWN0LmZSZWN0LmhlaWdodCk7XG5cbiAgICBjb25zdCBkeCA9IHBvaW50LnggLSBjbG9zZXN0WDtcbiAgICBjb25zdCBkeSA9IHBvaW50LnkgLSBjbG9zZXN0WTtcblxuICAgIHJldHVybiBNYXRoLnNxcnQoZHggKiBkeCArIGR5ICogZHkpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGFtcCh2YWx1ZTogbnVtYmVyLCBtaW46IG51bWJlciwgbWF4OiBudW1iZXIpOiBudW1iZXIge1xuICAgIHJldHVybiBNYXRoLm1heChtaW4sIE1hdGgubWluKG1heCwgdmFsdWUpKTtcbiAgfVxufVxuIl19
@@ -1,8 +0,0 @@
1
- export class FindClosestInputUsingSnapThresholdRequest {
2
- constructor(position, canBeConnectedInputs, snapThreshold) {
3
- this.position = position;
4
- this.canBeConnectedInputs = canBeConnectedInputs;
5
- this.snapThreshold = snapThreshold;
6
- }
7
- }
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1jbG9zZXN0LWlucHV0LXVzaW5nLXNuYXAtdGhyZXNob2xkLnJlcXVlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2Nvbm5lY3Rpb25zL2NvbW1vbi9maW5kLWNsb3Nlc3QtaW5wdXQtdXNpbmctc25hcC10aHJlc2hvbGQvZmluZC1jbG9zZXN0LWlucHV0LXVzaW5nLXNuYXAtdGhyZXNob2xkLnJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFPLHlDQUF5QztJQUVwRCxZQUNTLFFBQWdCLEVBQ2hCLG9CQUEwQyxFQUMxQyxhQUFxQjtRQUZyQixhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQ2hCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDMUMsa0JBQWEsR0FBYixhQUFhLENBQVE7SUFFOUIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQgeyBJQ29ubmVjdG9yV2l0aFJlY3QgfSBmcm9tICcuLi9nZXQtY29ubmVjdG9yLXdpdGgtcmVjdCc7XG5cbmV4cG9ydCBjbGFzcyBGaW5kQ2xvc2VzdElucHV0VXNpbmdTbmFwVGhyZXNob2xkUmVxdWVzdCB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHBvc2l0aW9uOiBJUG9pbnQsXG4gICAgcHVibGljIGNhbkJlQ29ubmVjdGVkSW5wdXRzOiBJQ29ubmVjdG9yV2l0aFJlY3RbXSxcbiAgICBwdWJsaWMgc25hcFRocmVzaG9sZDogbnVtYmVyXG4gICkge1xuICB9XG59XG4iXX0=
@@ -1,3 +0,0 @@
1
- export * from './find-closest-input-using-snap-threshold.request';
2
- export * from './find-closest-input-using-snap-threshold.execution';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2Nvbm5lY3Rpb25zL2NvbW1vbi9maW5kLWNsb3Nlc3QtaW5wdXQtdXNpbmctc25hcC10aHJlc2hvbGQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtREFBbUQsQ0FBQztBQUVsRSxjQUFjLHFEQUFxRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9maW5kLWNsb3Nlc3QtaW5wdXQtdXNpbmctc25hcC10aHJlc2hvbGQucmVxdWVzdCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZmluZC1jbG9zZXN0LWlucHV0LXVzaW5nLXNuYXAtdGhyZXNob2xkLmV4ZWN1dGlvbic7XG4iXX0=
@@ -1,55 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { GetAllCanBeConnectedInputPositionsRequest } from './get-all-can-be-connected-input-positions.request';
3
- import { Injectable } from '@angular/core';
4
- import { FExecutionRegister } from '@foblex/mediator';
5
- import { GetConnectorWithRectRequest } from '../get-connector-with-rect';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "../../../../f-storage";
8
- import * as i2 from "@foblex/mediator";
9
- let GetAllCanBeConnectedInputPositionsExecution = class GetAllCanBeConnectedInputPositionsExecution {
10
- constructor(fComponentsStore, fMediator) {
11
- this.fComponentsStore = fComponentsStore;
12
- this.fMediator = fMediator;
13
- }
14
- get fNodes() {
15
- return this.fComponentsStore.fNodes;
16
- }
17
- get fInputs() {
18
- return this.fComponentsStore.fInputs;
19
- }
20
- handle(payload) {
21
- return this.getCanBeConnectedInputs(this.getOutput(payload.fOutputId)).map((x) => {
22
- return this.fMediator.send(new GetConnectorWithRectRequest(x));
23
- });
24
- }
25
- getOutput(fId) {
26
- return this.findOutputById(fId) || this.findOutletById(fId);
27
- }
28
- findOutputById(fId) {
29
- return this.fComponentsStore.fOutputs.find((x) => x.id === fId);
30
- }
31
- findOutletById(fId) {
32
- return this.fComponentsStore.fOutlets.find((x) => x.id === fId);
33
- }
34
- getCanBeConnectedInputs(output) {
35
- return output.isSelfConnectable ?
36
- this.fInputs.filter((x) => x.canBeConnected) :
37
- this.filterSelfConnectable(this.fInputs.filter((x) => x.canBeConnected), output);
38
- }
39
- filterSelfConnectable(inputs, output) {
40
- return inputs.filter((x) => { var _a, _b; return ((_a = this.getNodeOfConnector(output)) === null || _a === void 0 ? void 0 : _a.hostElement) !== ((_b = this.getNodeOfConnector(x)) === null || _b === void 0 ? void 0 : _b.hostElement); });
41
- }
42
- getNodeOfConnector(connector) {
43
- return this.fNodes.find((x) => x.isContains(connector.hostElement));
44
- }
45
- };
46
- GetAllCanBeConnectedInputPositionsExecution.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: GetAllCanBeConnectedInputPositionsExecution, deps: [{ token: i1.FComponentsStore }, { token: i2.FMediator }], target: i0.ɵɵFactoryTarget.Injectable });
47
- GetAllCanBeConnectedInputPositionsExecution.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: GetAllCanBeConnectedInputPositionsExecution });
48
- GetAllCanBeConnectedInputPositionsExecution = __decorate([
49
- FExecutionRegister(GetAllCanBeConnectedInputPositionsRequest)
50
- ], GetAllCanBeConnectedInputPositionsExecution);
51
- export { GetAllCanBeConnectedInputPositionsExecution };
52
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: GetAllCanBeConnectedInputPositionsExecution, decorators: [{
53
- type: Injectable
54
- }], ctorParameters: function () { return [{ type: i1.FComponentsStore }, { type: i2.FMediator }]; } });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWFsbC1jYW4tYmUtY29ubmVjdGVkLWlucHV0LXBvc2l0aW9ucy5leGVjdXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2Nvbm5lY3Rpb25zL2NvbW1vbi9nZXQtYWxsLWNhbi1iZS1jb25uZWN0ZWQtaW5wdXQtcG9zaXRpb25zL2dldC1hbGwtY2FuLWJlLWNvbm5lY3RlZC1pbnB1dC1wb3NpdGlvbnMuZXhlY3V0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUseUNBQXlDLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUMvRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBeUIsTUFBTSxrQkFBa0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsMkJBQTJCLEVBQXNCLE1BQU0sNEJBQTRCLENBQUM7Ozs7SUFPaEYsMkNBQTJDLFNBQTNDLDJDQUEyQztJQVd0RCxZQUNVLGdCQUFrQyxFQUNsQyxTQUFvQjtRQURwQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGNBQVMsR0FBVCxTQUFTLENBQVc7SUFFOUIsQ0FBQztJQVpELElBQVksTUFBTTtRQUNoQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQVksT0FBTztRQUNqQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUM7SUFDdkMsQ0FBQztJQVFNLE1BQU0sQ0FBQyxPQUFrRDtRQUM5RCxPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2hGLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSwyQkFBMkIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLFNBQVMsQ0FBQyxHQUFXO1FBQzNCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFTyxjQUFjLENBQUMsR0FBVztRQUNoQyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFTyxjQUFjLENBQUMsR0FBVztRQUNoQyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxNQUFzQjtRQUNwRCxPQUFPLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQy9CLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztZQUM5QyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBRU8scUJBQXFCLENBQUMsTUFBd0IsRUFBRSxNQUFzQjtRQUM1RSxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxlQUFDLE9BQUEsQ0FBQSxNQUFBLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsMENBQUUsV0FBVyxPQUFLLE1BQUEsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQywwQ0FBRSxXQUFXLENBQUEsQ0FBQSxFQUFBLENBQUMsQ0FBQztJQUN4SCxDQUFDO0lBRU8sa0JBQWtCLENBQUMsU0FBeUI7UUFDbEQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUN0RSxDQUFDO0NBQ0YsQ0FBQTt5SUFoRFksMkNBQTJDOzZJQUEzQywyQ0FBMkM7QUFBM0MsMkNBQTJDO0lBRHZELGtCQUFrQixDQUFDLHlDQUF5QyxDQUFDO0dBQ2pELDJDQUEyQyxDQWdEdkQ7U0FoRFksMkNBQTJDOzRGQUEzQywyQ0FBMkM7a0JBRnZELFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHZXRBbGxDYW5CZUNvbm5lY3RlZElucHV0UG9zaXRpb25zUmVxdWVzdCB9IGZyb20gJy4vZ2V0LWFsbC1jYW4tYmUtY29ubmVjdGVkLWlucHV0LXBvc2l0aW9ucy5yZXF1ZXN0JztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZFeGVjdXRpb25SZWdpc3RlciwgRk1lZGlhdG9yLCBJRXhlY3V0aW9uIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBHZXRDb25uZWN0b3JXaXRoUmVjdFJlcXVlc3QsIElDb25uZWN0b3JXaXRoUmVjdCB9IGZyb20gJy4uL2dldC1jb25uZWN0b3Itd2l0aC1yZWN0JztcbmltcG9ydCB7IEZOb2RlQmFzZSB9IGZyb20gJy4uLy4uLy4uLy4uL2Ytbm9kZSc7XG5pbXBvcnQgeyBGQ29ubmVjdG9yQmFzZSB9IGZyb20gJy4uLy4uLy4uLy4uL2YtY29ubmVjdG9ycyc7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZi1zdG9yYWdlJztcblxuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihHZXRBbGxDYW5CZUNvbm5lY3RlZElucHV0UG9zaXRpb25zUmVxdWVzdClcbmV4cG9ydCBjbGFzcyBHZXRBbGxDYW5CZUNvbm5lY3RlZElucHV0UG9zaXRpb25zRXhlY3V0aW9uXG4gIGltcGxlbWVudHMgSUV4ZWN1dGlvbjxHZXRBbGxDYW5CZUNvbm5lY3RlZElucHV0UG9zaXRpb25zUmVxdWVzdCwgSUNvbm5lY3RvcldpdGhSZWN0W10+IHtcblxuICBwcml2YXRlIGdldCBmTm9kZXMoKTogRk5vZGVCYXNlW10ge1xuICAgIHJldHVybiB0aGlzLmZDb21wb25lbnRzU3RvcmUuZk5vZGVzO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgZklucHV0cygpOiBGQ29ubmVjdG9yQmFzZVtdIHtcbiAgICByZXR1cm4gdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZJbnB1dHM7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZDb21wb25lbnRzU3RvcmU6IEZDb21wb25lbnRzU3RvcmUsXG4gICAgcHJpdmF0ZSBmTWVkaWF0b3I6IEZNZWRpYXRvclxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGUocGF5bG9hZDogR2V0QWxsQ2FuQmVDb25uZWN0ZWRJbnB1dFBvc2l0aW9uc1JlcXVlc3QpOiBJQ29ubmVjdG9yV2l0aFJlY3RbXSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2FuQmVDb25uZWN0ZWRJbnB1dHModGhpcy5nZXRPdXRwdXQocGF5bG9hZC5mT3V0cHV0SWQpISkubWFwKCh4KSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5mTWVkaWF0b3Iuc2VuZChuZXcgR2V0Q29ubmVjdG9yV2l0aFJlY3RSZXF1ZXN0KHgpKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0T3V0cHV0KGZJZDogc3RyaW5nKTogRkNvbm5lY3RvckJhc2UgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmZpbmRPdXRwdXRCeUlkKGZJZCkgfHwgdGhpcy5maW5kT3V0bGV0QnlJZChmSWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5kT3V0cHV0QnlJZChmSWQ6IHN0cmluZyk6IEZDb25uZWN0b3JCYXNlIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZPdXRwdXRzLmZpbmQoKHgpID0+IHguaWQgPT09IGZJZCk7XG4gIH1cblxuICBwcml2YXRlIGZpbmRPdXRsZXRCeUlkKGZJZDogc3RyaW5nKTogRkNvbm5lY3RvckJhc2UgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmZDb21wb25lbnRzU3RvcmUuZk91dGxldHMuZmluZCgoeCkgPT4geC5pZCA9PT0gZklkKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2FuQmVDb25uZWN0ZWRJbnB1dHMob3V0cHV0OiBGQ29ubmVjdG9yQmFzZSk6IEZDb25uZWN0b3JCYXNlW10ge1xuICAgIHJldHVybiBvdXRwdXQuaXNTZWxmQ29ubmVjdGFibGUgP1xuICAgICAgdGhpcy5mSW5wdXRzLmZpbHRlcigoeCkgPT4geC5jYW5CZUNvbm5lY3RlZCkgOlxuICAgICAgdGhpcy5maWx0ZXJTZWxmQ29ubmVjdGFibGUodGhpcy5mSW5wdXRzLmZpbHRlcigoeCkgPT4geC5jYW5CZUNvbm5lY3RlZCksIG91dHB1dCk7XG4gIH1cblxuICBwcml2YXRlIGZpbHRlclNlbGZDb25uZWN0YWJsZShpbnB1dHM6IEZDb25uZWN0b3JCYXNlW10sIG91dHB1dDogRkNvbm5lY3RvckJhc2UpOiBGQ29ubmVjdG9yQmFzZVtdIHtcbiAgICByZXR1cm4gaW5wdXRzLmZpbHRlcigoeCkgPT4gdGhpcy5nZXROb2RlT2ZDb25uZWN0b3Iob3V0cHV0KT8uaG9zdEVsZW1lbnQgIT09IHRoaXMuZ2V0Tm9kZU9mQ29ubmVjdG9yKHgpPy5ob3N0RWxlbWVudCk7XG4gIH1cblxuICBwcml2YXRlIGdldE5vZGVPZkNvbm5lY3Rvcihjb25uZWN0b3I6IEZDb25uZWN0b3JCYXNlKTogRk5vZGVCYXNlIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5mTm9kZXMuZmluZCgoeCkgPT4geC5pc0NvbnRhaW5zKGNvbm5lY3Rvci5ob3N0RWxlbWVudCkpO1xuICB9XG59XG4iXX0=
@@ -1,6 +0,0 @@
1
- export class GetAllCanBeConnectedInputPositionsRequest {
2
- constructor(fOutputId) {
3
- this.fOutputId = fOutputId;
4
- }
5
- }
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWFsbC1jYW4tYmUtY29ubmVjdGVkLWlucHV0LXBvc2l0aW9ucy5yZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9jb25uZWN0aW9ucy9jb21tb24vZ2V0LWFsbC1jYW4tYmUtY29ubmVjdGVkLWlucHV0LXBvc2l0aW9ucy9nZXQtYWxsLWNhbi1iZS1jb25uZWN0ZWQtaW5wdXQtcG9zaXRpb25zLnJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLHlDQUF5QztJQUVwRCxZQUNTLFNBQWlCO1FBQWpCLGNBQVMsR0FBVCxTQUFTLENBQVE7SUFFMUIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEdldEFsbENhbkJlQ29ubmVjdGVkSW5wdXRQb3NpdGlvbnNSZXF1ZXN0IHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZk91dHB1dElkOiBzdHJpbmcsXG4gICkge1xuICB9XG59XG4iXX0=
@@ -1,3 +0,0 @@
1
- export * from './get-all-can-be-connected-input-positions.request';
2
- export * from './get-all-can-be-connected-input-positions.execution';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2Nvbm5lY3Rpb25zL2NvbW1vbi9nZXQtYWxsLWNhbi1iZS1jb25uZWN0ZWQtaW5wdXQtcG9zaXRpb25zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0RBQW9ELENBQUM7QUFFbkUsY0FBYyxzREFBc0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZ2V0LWFsbC1jYW4tYmUtY29ubmVjdGVkLWlucHV0LXBvc2l0aW9ucy5yZXF1ZXN0JztcblxuZXhwb3J0ICogZnJvbSAnLi9nZXQtYWxsLWNhbi1iZS1jb25uZWN0ZWQtaW5wdXQtcG9zaXRpb25zLmV4ZWN1dGlvbic7XG4iXX0=
@@ -1,6 +0,0 @@
1
- export class GetConnectorWithRectRequest {
2
- constructor(connector) {
3
- this.connector = connector;
4
- }
5
- }
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWNvbm5lY3Rvci13aXRoLXJlY3QtcmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1kcmFnZ2FibGUvY29ubmVjdGlvbnMvY29tbW9uL2dldC1jb25uZWN0b3Itd2l0aC1yZWN0L2dldC1jb25uZWN0b3Itd2l0aC1yZWN0LXJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLDJCQUEyQjtJQUVwQyxZQUNXLFNBQXlCO1FBQXpCLGNBQVMsR0FBVCxTQUFTLENBQWdCO0lBRXBDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZDb25uZWN0b3JCYXNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZi1jb25uZWN0b3JzJztcblxuZXhwb3J0IGNsYXNzIEdldENvbm5lY3RvcldpdGhSZWN0UmVxdWVzdCB7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGNvbm5lY3RvcjogRkNvbm5lY3RvckJhc2VcbiAgICApIHtcbiAgICB9XG59XG4iXX0=
@@ -1,28 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { Injectable } from '@angular/core';
3
- import { FExecutionRegister } from '@foblex/mediator';
4
- import { GetConnectorWithRectRequest } from './get-connector-with-rect-request';
5
- import { GetElementRectInFlowRequest } from '../../../../domain';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@foblex/mediator";
8
- let GetConnectorWithRectExecution = class GetConnectorWithRectExecution {
9
- constructor(fMediator) {
10
- this.fMediator = fMediator;
11
- }
12
- handle(request) {
13
- return {
14
- fConnector: request.connector,
15
- fRect: this.fMediator.send(new GetElementRectInFlowRequest(request.connector.hostElement))
16
- };
17
- }
18
- };
19
- GetConnectorWithRectExecution.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: GetConnectorWithRectExecution, deps: [{ token: i1.FMediator }], target: i0.ɵɵFactoryTarget.Injectable });
20
- GetConnectorWithRectExecution.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: GetConnectorWithRectExecution });
21
- GetConnectorWithRectExecution = __decorate([
22
- FExecutionRegister(GetConnectorWithRectRequest)
23
- ], GetConnectorWithRectExecution);
24
- export { GetConnectorWithRectExecution };
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: GetConnectorWithRectExecution, decorators: [{
26
- type: Injectable
27
- }], ctorParameters: function () { return [{ type: i1.FMediator }]; } });
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWNvbm5lY3Rvci13aXRoLXJlY3QuZXhlY3V0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9jb25uZWN0aW9ucy9jb21tb24vZ2V0LWNvbm5lY3Rvci13aXRoLXJlY3QvZ2V0LWNvbm5lY3Rvci13aXRoLXJlY3QuZXhlY3V0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBeUIsTUFBTSxrQkFBa0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUdoRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7O0lBSXBELDZCQUE2QixTQUE3Qiw2QkFBNkI7SUFFeEMsWUFDWSxTQUFvQjtRQUFwQixjQUFTLEdBQVQsU0FBUyxDQUFXO0lBRWhDLENBQUM7SUFFTSxNQUFNLENBQUMsT0FBb0M7UUFDaEQsT0FBTztZQUNMLFVBQVUsRUFBRSxPQUFPLENBQUMsU0FBUztZQUM3QixLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQWUsSUFBSSwyQkFBMkIsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ3pHLENBQUE7SUFDSCxDQUFDO0NBQ0YsQ0FBQTsySEFiWSw2QkFBNkI7K0hBQTdCLDZCQUE2QjtBQUE3Qiw2QkFBNkI7SUFEekMsa0JBQWtCLENBQUMsMkJBQTJCLENBQUM7R0FDbkMsNkJBQTZCLENBYXpDO1NBYlksNkJBQTZCOzRGQUE3Qiw2QkFBNkI7a0JBRnpDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGRXhlY3V0aW9uUmVnaXN0ZXIsIEZNZWRpYXRvciwgSUV4ZWN1dGlvbiB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgR2V0Q29ubmVjdG9yV2l0aFJlY3RSZXF1ZXN0IH0gZnJvbSAnLi9nZXQtY29ubmVjdG9yLXdpdGgtcmVjdC1yZXF1ZXN0JztcbmltcG9ydCB7IElSb3VuZGVkUmVjdCB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgSUNvbm5lY3RvcldpdGhSZWN0IH0gZnJvbSAnLi9pLWNvbm5lY3Rvci13aXRoLXJlY3QnO1xuaW1wb3J0IHsgR2V0RWxlbWVudFJlY3RJbkZsb3dSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vLi4vLi4vZG9tYWluJztcblxuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihHZXRDb25uZWN0b3JXaXRoUmVjdFJlcXVlc3QpXG5leHBvcnQgY2xhc3MgR2V0Q29ubmVjdG9yV2l0aFJlY3RFeGVjdXRpb24gaW1wbGVtZW50cyBJRXhlY3V0aW9uPEdldENvbm5lY3RvcldpdGhSZWN0UmVxdWVzdCwgSUNvbm5lY3RvcldpdGhSZWN0PiB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgICBwcml2YXRlIGZNZWRpYXRvcjogRk1lZGlhdG9yLFxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGUocmVxdWVzdDogR2V0Q29ubmVjdG9yV2l0aFJlY3RSZXF1ZXN0KTogSUNvbm5lY3RvcldpdGhSZWN0IHtcbiAgICByZXR1cm4ge1xuICAgICAgZkNvbm5lY3RvcjogcmVxdWVzdC5jb25uZWN0b3IsXG4gICAgICBmUmVjdDogdGhpcy5mTWVkaWF0b3Iuc2VuZDxJUm91bmRlZFJlY3Q+KG5ldyBHZXRFbGVtZW50UmVjdEluRmxvd1JlcXVlc3QocmVxdWVzdC5jb25uZWN0b3IuaG9zdEVsZW1lbnQpKVxuICAgIH1cbiAgfVxufVxuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaS1jb25uZWN0b3Itd2l0aC1yZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9jb25uZWN0aW9ucy9jb21tb24vZ2V0LWNvbm5lY3Rvci13aXRoLXJlY3QvaS1jb25uZWN0b3Itd2l0aC1yZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJUm91bmRlZFJlY3QgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IEZDb25uZWN0b3JCYXNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZi1jb25uZWN0b3JzJztcblxuZXhwb3J0IGludGVyZmFjZSBJQ29ubmVjdG9yV2l0aFJlY3Qge1xuXG4gIGZDb25uZWN0b3I6IEZDb25uZWN0b3JCYXNlO1xuXG4gIGZSZWN0OiBJUm91bmRlZFJlY3Q7XG59XG4iXX0=
@@ -1,4 +0,0 @@
1
- export * from './get-connector-with-rect.execution';
2
- export * from './get-connector-with-rect-request';
3
- export * from './i-connector-with-rect';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2Nvbm5lY3Rpb25zL2NvbW1vbi9nZXQtY29ubmVjdG9yLXdpdGgtcmVjdC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFDQUFxQyxDQUFDO0FBRXBELGNBQWMsbUNBQW1DLENBQUM7QUFFbEQsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZ2V0LWNvbm5lY3Rvci13aXRoLXJlY3QuZXhlY3V0aW9uJztcblxuZXhwb3J0ICogZnJvbSAnLi9nZXQtY29ubmVjdG9yLXdpdGgtcmVjdC1yZXF1ZXN0JztcblxuZXhwb3J0ICogZnJvbSAnLi9pLWNvbm5lY3Rvci13aXRoLXJlY3QnO1xuIl19
@@ -1,85 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { Point } from '@foblex/2d';
3
- import { GetInputUnderPointerRequest } from './get-input-under-pointer.request';
4
- import { Injectable } from '@angular/core';
5
- import { FExecutionRegister } from '@foblex/mediator';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "../../../../f-storage";
8
- import * as i2 from "../../../f-draggable-data-context";
9
- import * as i3 from "@foblex/platform";
10
- let GetInputUnderPointerExecution = class GetInputUnderPointerExecution {
11
- constructor(fComponentsStore, fDraggableDataContext, fBrowser) {
12
- this.fComponentsStore = fComponentsStore;
13
- this.fDraggableDataContext = fDraggableDataContext;
14
- this.fBrowser = fBrowser;
15
- }
16
- get fNodes() {
17
- return this.fComponentsStore.fNodes;
18
- }
19
- get fInputs() {
20
- return this.fComponentsStore.fInputs;
21
- }
22
- handle(payload) {
23
- const output = (this.getOutput(payload.dragHandler) || this.getOutlet(payload.dragHandler));
24
- const inputsUnderPointer = this.getInputsUnderPointer(payload.event.getPosition(), payload.dragHandler);
25
- const connectors = output.isSelfConnectable ?
26
- inputsUnderPointer :
27
- this.filterSelfConnectable(inputsUnderPointer, output);
28
- return connectors.length > 0 ? connectors[0] : undefined;
29
- }
30
- getOutput(dragHandler) {
31
- return this.fComponentsStore.fOutputs.find((x) => x.id === dragHandler.fConnection.fOutputId);
32
- }
33
- getOutlet(dragHandler) {
34
- return this.fComponentsStore.fOutlets.find((x) => x.id === dragHandler.fConnection.fOutputId);
35
- }
36
- getInputsUnderPointer(position, dragHandler) {
37
- const result = this.getInputsInPosition(position);
38
- const closestInput = dragHandler.getClosetInput(this.getDifference(position));
39
- if (closestInput) {
40
- result.push(closestInput.fConnector);
41
- }
42
- const input = this.getFirstConnectableInputOfNodeInPosition(position);
43
- if (input) {
44
- result.push(input);
45
- }
46
- return result;
47
- }
48
- getDifference(position) {
49
- return Point.fromPoint(position).elementTransform(this.fComponentsStore.flowHost)
50
- .div(this.fDraggableDataContext.onPointerDownScale).sub(this.fDraggableDataContext.onPointerDownPosition);
51
- }
52
- getInputsInPosition(position) {
53
- return this.getElementsFromPoint(position).map((element) => this.fInputs.find(x => x.isContains(element) && x.canBeConnected)).filter((x) => !!x);
54
- }
55
- getElementsFromPoint(position) {
56
- return this.fBrowser.document.elementsFromPoint(position.x, position.y);
57
- }
58
- getFirstConnectableInputOfNodeInPosition(position) {
59
- return this.getNodesInPosition(position).map((x) => {
60
- return this.fInputs.find((i) => x.isContains(i.hostElement) && i.canBeConnected);
61
- }).find((x) => !!x);
62
- }
63
- getNodesInPosition(position) {
64
- return this.getElementsFromPoint(position).map((element) => {
65
- return this.fNodes.find((x) => x.isContains(element) && x.fConnectOnNode);
66
- }).filter((x) => !!x);
67
- }
68
- filterSelfConnectable(inputs, connector) {
69
- return inputs.filter((x) => {
70
- const targetNode = this.fNodes.find((k) => k.isContains(x.hostElement));
71
- const sourceNode = this.fNodes.find((k) => k.isContains(connector.hostElement));
72
- return (sourceNode === null || sourceNode === void 0 ? void 0 : sourceNode.hostElement) !== (targetNode === null || targetNode === void 0 ? void 0 : targetNode.hostElement);
73
- });
74
- }
75
- };
76
- GetInputUnderPointerExecution.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: GetInputUnderPointerExecution, deps: [{ token: i1.FComponentsStore }, { token: i2.FDraggableDataContext }, { token: i3.BrowserService }], target: i0.ɵɵFactoryTarget.Injectable });
77
- GetInputUnderPointerExecution.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: GetInputUnderPointerExecution });
78
- GetInputUnderPointerExecution = __decorate([
79
- FExecutionRegister(GetInputUnderPointerRequest)
80
- ], GetInputUnderPointerExecution);
81
- export { GetInputUnderPointerExecution };
82
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: GetInputUnderPointerExecution, decorators: [{
83
- type: Injectable
84
- }], ctorParameters: function () { return [{ type: i1.FComponentsStore }, { type: i2.FDraggableDataContext }, { type: i3.BrowserService }]; } });
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWlucHV0LXVuZGVyLXBvaW50ZXIuZXhlY3V0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9jb25uZWN0aW9ucy9jb21tb24vZ2V0LWlucHV0LXVuZGVyLXBvaW50ZXIvZ2V0LWlucHV0LXVuZGVyLXBvaW50ZXIuZXhlY3V0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQVUsS0FBSyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzNDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGtCQUFrQixFQUFjLE1BQU0sa0JBQWtCLENBQUM7Ozs7O0lBVXJELDZCQUE2QixTQUE3Qiw2QkFBNkI7SUFXeEMsWUFDVSxnQkFBa0MsRUFDbEMscUJBQTRDLEVBQzVDLFFBQXdCO1FBRnhCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUM1QyxhQUFRLEdBQVIsUUFBUSxDQUFnQjtJQUVsQyxDQUFDO0lBYkQsSUFBWSxNQUFNO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBWSxPQUFPO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQztJQUN2QyxDQUFDO0lBU00sTUFBTSxDQUFDLE9BQW9DO1FBQ2hELE1BQU0sTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUUsQ0FBQztRQUM3RixNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUV4RyxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUMzQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQ3BCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxrQkFBa0IsRUFBRSxNQUFNLENBQUMsQ0FBQTtRQUN4RCxPQUFPLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUMzRCxDQUFDO0lBRU8sU0FBUyxDQUFDLFdBQXdFO1FBQ3hGLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssV0FBVyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNoRyxDQUFDO0lBRU8sU0FBUyxDQUFDLFdBQXdFO1FBQ3hGLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssV0FBVyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNoRyxDQUFDO0lBRU8scUJBQXFCLENBQUMsUUFBZ0IsRUFBRSxXQUF3RTtRQUN0SCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbEQsTUFBTSxZQUFZLEdBQUcsV0FBVyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDOUUsSUFBSSxZQUFZLEVBQUU7WUFDaEIsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDdEM7UUFDRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsd0NBQXdDLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdEUsSUFBSSxLQUFLLEVBQUU7WUFDVCxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3BCO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVPLGFBQWEsQ0FBQyxRQUFnQjtRQUNwQyxPQUFPLEtBQUssQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQzthQUM5RSxHQUFHLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGtCQUFrQixDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQzlHLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxRQUFnQjtRQUMxQyxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUN6RCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUNsRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBcUIsQ0FBQztJQUMzQyxDQUFDO0lBRU8sb0JBQW9CLENBQUMsUUFBZ0I7UUFDM0MsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQWtCLENBQUM7SUFDM0YsQ0FBQztJQUVPLHdDQUF3QyxDQUFDLFFBQWdCO1FBQy9ELE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2pELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNuRixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBRU8sa0JBQWtCLENBQUMsUUFBZ0I7UUFDekMsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDekQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUE7UUFDM0UsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFnQixDQUFDO0lBQ3ZDLENBQUM7SUFFTyxxQkFBcUIsQ0FBQyxNQUF3QixFQUFFLFNBQXlCO1FBQy9FLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3pCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQ3hFLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFNBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQ2pGLE9BQU8sQ0FBQSxVQUFVLGFBQVYsVUFBVSx1QkFBVixVQUFVLENBQUUsV0FBVyxPQUFLLFVBQVUsYUFBVixVQUFVLHVCQUFWLFVBQVUsQ0FBRSxXQUFXLENBQUEsQ0FBQztRQUM3RCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7Q0FDRixDQUFBOzJIQW5GWSw2QkFBNkI7K0hBQTdCLDZCQUE2QjtBQUE3Qiw2QkFBNkI7SUFEekMsa0JBQWtCLENBQUMsMkJBQTJCLENBQUM7R0FDbkMsNkJBQTZCLENBbUZ6QztTQW5GWSw2QkFBNkI7NEZBQTdCLDZCQUE2QjtrQkFGekMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElQb2ludCwgUG9pbnQgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IEdldElucHV0VW5kZXJQb2ludGVyUmVxdWVzdCB9IGZyb20gJy4vZ2V0LWlucHV0LXVuZGVyLXBvaW50ZXIucmVxdWVzdCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCcm93c2VyU2VydmljZSB9IGZyb20gJ0Bmb2JsZXgvcGxhdGZvcm0nO1xuaW1wb3J0IHsgRkV4ZWN1dGlvblJlZ2lzdGVyLCBJRXhlY3V0aW9uIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBGQ29ubmVjdG9yQmFzZSB9IGZyb20gJy4uLy4uLy4uLy4uL2YtY29ubmVjdG9ycyc7XG5pbXBvcnQgeyBGTm9kZUJhc2UgfSBmcm9tICcuLi8uLi8uLi8uLi9mLW5vZGUnO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uLy4uLy4uLy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQgeyBDcmVhdGVDb25uZWN0aW9uRHJhZ0hhbmRsZXIgfSBmcm9tICcuLi8uLi9jcmVhdGUtY29ubmVjdGlvbic7XG5pbXBvcnQgeyBSZWFzc2lnbkNvbm5lY3Rpb25EcmFnSGFuZGxlciB9IGZyb20gJy4uLy4uL3JlYXNzaWduLWNvbm5lY3Rpb24nO1xuaW1wb3J0IHsgRkRyYWdnYWJsZURhdGFDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vZi1kcmFnZ2FibGUtZGF0YS1jb250ZXh0JztcblxuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihHZXRJbnB1dFVuZGVyUG9pbnRlclJlcXVlc3QpXG5leHBvcnQgY2xhc3MgR2V0SW5wdXRVbmRlclBvaW50ZXJFeGVjdXRpb25cbiAgaW1wbGVtZW50cyBJRXhlY3V0aW9uPEdldElucHV0VW5kZXJQb2ludGVyUmVxdWVzdCwgRkNvbm5lY3RvckJhc2UgfCB1bmRlZmluZWQ+IHtcblxuICBwcml2YXRlIGdldCBmTm9kZXMoKTogRk5vZGVCYXNlW10ge1xuICAgIHJldHVybiB0aGlzLmZDb21wb25lbnRzU3RvcmUuZk5vZGVzO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgZklucHV0cygpOiBGQ29ubmVjdG9yQmFzZVtdIHtcbiAgICByZXR1cm4gdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZJbnB1dHM7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZDb21wb25lbnRzU3RvcmU6IEZDb21wb25lbnRzU3RvcmUsXG4gICAgcHJpdmF0ZSBmRHJhZ2dhYmxlRGF0YUNvbnRleHQ6IEZEcmFnZ2FibGVEYXRhQ29udGV4dCxcbiAgICBwcml2YXRlIGZCcm93c2VyOiBCcm93c2VyU2VydmljZVxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGUocGF5bG9hZDogR2V0SW5wdXRVbmRlclBvaW50ZXJSZXF1ZXN0KTogRkNvbm5lY3RvckJhc2UgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IG91dHB1dCA9ICh0aGlzLmdldE91dHB1dChwYXlsb2FkLmRyYWdIYW5kbGVyKSB8fCB0aGlzLmdldE91dGxldChwYXlsb2FkLmRyYWdIYW5kbGVyKSkhO1xuICAgIGNvbnN0IGlucHV0c1VuZGVyUG9pbnRlciA9IHRoaXMuZ2V0SW5wdXRzVW5kZXJQb2ludGVyKHBheWxvYWQuZXZlbnQuZ2V0UG9zaXRpb24oKSwgcGF5bG9hZC5kcmFnSGFuZGxlcik7XG5cbiAgICBjb25zdCBjb25uZWN0b3JzID0gb3V0cHV0LmlzU2VsZkNvbm5lY3RhYmxlID9cbiAgICAgIGlucHV0c1VuZGVyUG9pbnRlciA6XG4gICAgICB0aGlzLmZpbHRlclNlbGZDb25uZWN0YWJsZShpbnB1dHNVbmRlclBvaW50ZXIsIG91dHB1dClcbiAgICByZXR1cm4gY29ubmVjdG9ycy5sZW5ndGggPiAwID8gY29ubmVjdG9yc1swXSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0T3V0cHV0KGRyYWdIYW5kbGVyOiBDcmVhdGVDb25uZWN0aW9uRHJhZ0hhbmRsZXIgfCBSZWFzc2lnbkNvbm5lY3Rpb25EcmFnSGFuZGxlcik6IEZDb25uZWN0b3JCYXNlIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZPdXRwdXRzLmZpbmQoKHgpID0+IHguaWQgPT09IGRyYWdIYW5kbGVyLmZDb25uZWN0aW9uLmZPdXRwdXRJZCk7XG4gIH1cblxuICBwcml2YXRlIGdldE91dGxldChkcmFnSGFuZGxlcjogQ3JlYXRlQ29ubmVjdGlvbkRyYWdIYW5kbGVyIHwgUmVhc3NpZ25Db25uZWN0aW9uRHJhZ0hhbmRsZXIpOiBGQ29ubmVjdG9yQmFzZSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mT3V0bGV0cy5maW5kKCh4KSA9PiB4LmlkID09PSBkcmFnSGFuZGxlci5mQ29ubmVjdGlvbi5mT3V0cHV0SWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbnB1dHNVbmRlclBvaW50ZXIocG9zaXRpb246IElQb2ludCwgZHJhZ0hhbmRsZXI6IENyZWF0ZUNvbm5lY3Rpb25EcmFnSGFuZGxlciB8IFJlYXNzaWduQ29ubmVjdGlvbkRyYWdIYW5kbGVyKTogRkNvbm5lY3RvckJhc2VbXSB7XG4gICAgY29uc3QgcmVzdWx0ID0gdGhpcy5nZXRJbnB1dHNJblBvc2l0aW9uKHBvc2l0aW9uKTtcbiAgICBjb25zdCBjbG9zZXN0SW5wdXQgPSBkcmFnSGFuZGxlci5nZXRDbG9zZXRJbnB1dCh0aGlzLmdldERpZmZlcmVuY2UocG9zaXRpb24pKTtcbiAgICBpZiAoY2xvc2VzdElucHV0KSB7XG4gICAgICByZXN1bHQucHVzaChjbG9zZXN0SW5wdXQuZkNvbm5lY3Rvcik7XG4gICAgfVxuICAgIGNvbnN0IGlucHV0ID0gdGhpcy5nZXRGaXJzdENvbm5lY3RhYmxlSW5wdXRPZk5vZGVJblBvc2l0aW9uKHBvc2l0aW9uKTtcbiAgICBpZiAoaW5wdXQpIHtcbiAgICAgIHJlc3VsdC5wdXNoKGlucHV0KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGlmZmVyZW5jZShwb3NpdGlvbjogSVBvaW50KTogSVBvaW50IHtcbiAgICByZXR1cm4gUG9pbnQuZnJvbVBvaW50KHBvc2l0aW9uKS5lbGVtZW50VHJhbnNmb3JtKHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mbG93SG9zdClcbiAgICAgIC5kaXYodGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQub25Qb2ludGVyRG93blNjYWxlKS5zdWIodGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQub25Qb2ludGVyRG93blBvc2l0aW9uKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SW5wdXRzSW5Qb3NpdGlvbihwb3NpdGlvbjogSVBvaW50KTogRkNvbm5lY3RvckJhc2VbXSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RWxlbWVudHNGcm9tUG9pbnQocG9zaXRpb24pLm1hcCgoZWxlbWVudCkgPT5cbiAgICAgIHRoaXMuZklucHV0cy5maW5kKHggPT4geC5pc0NvbnRhaW5zKGVsZW1lbnQpICYmIHguY2FuQmVDb25uZWN0ZWQpXG4gICAgKS5maWx0ZXIoKHgpID0+ICEheCkgYXMgRkNvbm5lY3RvckJhc2VbXTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RWxlbWVudHNGcm9tUG9pbnQocG9zaXRpb246IElQb2ludCk6IEhUTUxFbGVtZW50W10ge1xuICAgIHJldHVybiB0aGlzLmZCcm93c2VyLmRvY3VtZW50LmVsZW1lbnRzRnJvbVBvaW50KHBvc2l0aW9uLngsIHBvc2l0aW9uLnkpIGFzIEhUTUxFbGVtZW50W107XG4gIH1cblxuICBwcml2YXRlIGdldEZpcnN0Q29ubmVjdGFibGVJbnB1dE9mTm9kZUluUG9zaXRpb24ocG9zaXRpb246IElQb2ludCk6IEZDb25uZWN0b3JCYXNlIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5nZXROb2Rlc0luUG9zaXRpb24ocG9zaXRpb24pLm1hcCgoeCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuZklucHV0cy5maW5kKChpKSA9PiB4LmlzQ29udGFpbnMoaS5ob3N0RWxlbWVudCkgJiYgaS5jYW5CZUNvbm5lY3RlZCk7XG4gICAgfSkuZmluZCgoeCkgPT4gISF4KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Tm9kZXNJblBvc2l0aW9uKHBvc2l0aW9uOiBJUG9pbnQpOiBGTm9kZUJhc2VbXSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RWxlbWVudHNGcm9tUG9pbnQocG9zaXRpb24pLm1hcCgoZWxlbWVudCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuZk5vZGVzLmZpbmQoKHgpID0+IHguaXNDb250YWlucyhlbGVtZW50KSAmJiB4LmZDb25uZWN0T25Ob2RlKVxuICAgIH0pLmZpbHRlcigoeCkgPT4gISF4KSBhcyBGTm9kZUJhc2VbXTtcbiAgfVxuXG4gIHByaXZhdGUgZmlsdGVyU2VsZkNvbm5lY3RhYmxlKGlucHV0czogRkNvbm5lY3RvckJhc2VbXSwgY29ubmVjdG9yOiBGQ29ubmVjdG9yQmFzZSk6IEZDb25uZWN0b3JCYXNlW10ge1xuICAgIHJldHVybiBpbnB1dHMuZmlsdGVyKCh4KSA9PiB7XG4gICAgICBjb25zdCB0YXJnZXROb2RlID0gdGhpcy5mTm9kZXMuZmluZCgoaykgPT4gay5pc0NvbnRhaW5zKHguaG9zdEVsZW1lbnQpKTtcbiAgICAgIGNvbnN0IHNvdXJjZU5vZGUgPSB0aGlzLmZOb2Rlcy5maW5kKChrKSA9PiBrLmlzQ29udGFpbnMoY29ubmVjdG9yIS5ob3N0RWxlbWVudCkpO1xuICAgICAgcmV0dXJuIHNvdXJjZU5vZGU/Lmhvc3RFbGVtZW50ICE9PSB0YXJnZXROb2RlPy5ob3N0RWxlbWVudDtcbiAgICB9KVxuICB9XG59XG4iXX0=