@foblex/flow 17.9.21 → 18.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (752) hide show
  1. package/LICENSE +1 -1
  2. package/domain/css-cls.d.ts +0 -3
  3. package/domain/f-background/add-pattern-to-background/{add-pattern-to-background.execution.d.ts → add-pattern-to-background.d.ts} +4 -3
  4. package/domain/f-background/add-pattern-to-background/index.d.ts +1 -1
  5. package/domain/f-background/providers.d.ts +2 -2
  6. package/domain/f-connection/add-connection-for-create-to-store/add-connection-for-create-to-store-request.d.ts +3 -3
  7. package/domain/f-connection/add-connection-for-create-to-store/{add-connection-for-create-to-store.execution.d.ts → add-connection-for-create-to-store.d.ts} +4 -4
  8. package/domain/f-connection/add-connection-for-create-to-store/index.d.ts +1 -1
  9. package/domain/f-connection/add-connection-marker-to-store/add-connection-marker-to-store-request.d.ts +3 -3
  10. package/domain/f-connection/add-connection-marker-to-store/{add-connection-marker-to-store.execution.d.ts → add-connection-marker-to-store.d.ts} +4 -4
  11. package/domain/f-connection/add-connection-marker-to-store/index.d.ts +1 -1
  12. package/domain/f-connection/add-connection-to-store/add-connection-to-store-request.d.ts +3 -3
  13. package/domain/f-connection/add-connection-to-store/{add-connection-to-store.execution.d.ts → add-connection-to-store.d.ts} +4 -4
  14. package/domain/f-connection/add-connection-to-store/index.d.ts +1 -1
  15. package/domain/f-connection/add-snap-connection-to-store/add-snap-connection-to-store-request.d.ts +3 -3
  16. package/domain/f-connection/add-snap-connection-to-store/{add-snap-connection-to-store.execution.d.ts → add-snap-connection-to-store.d.ts} +4 -4
  17. package/domain/f-connection/add-snap-connection-to-store/index.d.ts +1 -1
  18. package/domain/f-connection/create-connection-markers/create-connection-markers-request.d.ts +3 -3
  19. package/domain/f-connection/create-connection-markers/{create-connection-markers.execution.d.ts → create-connection-markers.d.ts} +7 -8
  20. package/domain/f-connection/create-connection-markers/index.d.ts +1 -1
  21. package/domain/f-connection/index.d.ts +1 -1
  22. package/domain/f-connection/providers.d.ts +11 -11
  23. package/domain/f-connection/redraw-connections/redraw-connections.d.ts +6 -4
  24. package/domain/f-connection/remove-connection-for-create-from-store/index.d.ts +1 -1
  25. package/domain/f-connection/remove-connection-for-create-from-store/{remove-connection-for-create-from-store.execution.d.ts → remove-connection-for-create-from-store.d.ts} +4 -4
  26. package/domain/f-connection/remove-connection-from-store/index.d.ts +1 -1
  27. package/domain/f-connection/remove-connection-from-store/remove-connection-from-store-request.d.ts +3 -3
  28. package/domain/f-connection/remove-connection-from-store/{remove-connection-from-store.execution.d.ts → remove-connection-from-store.d.ts} +4 -5
  29. package/domain/f-connection/remove-connection-marker-from-store/index.d.ts +1 -1
  30. package/domain/f-connection/remove-connection-marker-from-store/remove-connection-marker-from-store-request.d.ts +3 -3
  31. package/domain/f-connection/remove-connection-marker-from-store/{remove-connection-marker-from-store.execution.d.ts → remove-connection-marker-from-store.d.ts} +4 -4
  32. package/domain/f-connection/remove-connection-waypoint/index.d.ts +2 -0
  33. package/domain/f-connection/remove-connection-waypoint/remove-connection-waypoint-request.d.ts +6 -0
  34. package/domain/f-connection/remove-connection-waypoint/remove-connection-waypoint.d.ts +11 -0
  35. package/domain/f-connection/remove-snap-connection-from-store/index.d.ts +1 -1
  36. package/domain/f-connection/remove-snap-connection-from-store/{remove-snap-connection-from-store.execution.d.ts → remove-snap-connection-from-store.d.ts} +4 -4
  37. package/domain/f-draggable/on-pointer-move/on-pointer-move.execution.d.ts +1 -1
  38. package/domain/f-draggable/prepare-drag-sequence/prepare-drag-sequence.execution.d.ts +1 -1
  39. package/domain/f-flow/calculate-flow-state/calculate-connections-state/calculate-connections-state-request.d.ts +3 -0
  40. package/domain/f-flow/calculate-flow-state/calculate-connections-state/calculate-connections-state.d.ts +14 -0
  41. package/domain/f-flow/calculate-flow-state/calculate-connections-state/index.d.ts +2 -0
  42. package/domain/f-flow/calculate-flow-state/calculate-flow-state-request.d.ts +3 -0
  43. package/domain/f-flow/calculate-flow-state/calculate-flow-state.d.ts +17 -0
  44. package/domain/f-flow/calculate-flow-state/calculate-nodes-state/calculate-nodes-state-request.d.ts +6 -0
  45. package/domain/f-flow/calculate-flow-state/calculate-nodes-state/calculate-nodes-state.d.ts +15 -0
  46. package/domain/f-flow/calculate-flow-state/calculate-nodes-state/index.d.ts +2 -0
  47. package/domain/f-flow/calculate-flow-state/i-f-flow-state-connection.d.ts +13 -0
  48. package/domain/f-flow/{get-flow-state → calculate-flow-state}/i-f-flow-state-connector.d.ts +1 -1
  49. package/domain/f-flow/{get-flow-state → calculate-flow-state}/index.d.ts +4 -4
  50. package/domain/f-flow/calculate-flow-state/providers.d.ts +7 -0
  51. package/domain/f-flow/index.d.ts +1 -1
  52. package/domain/f-flow/providers.d.ts +1 -1
  53. package/domain/f-node/calculate-connectors-connectable-sides/calculate-connectable-side-by-connected-positions/calculate-connectable-side-by-connected-positions.d.ts +1 -1
  54. package/domain/f-node/calculate-connectors-connectable-sides/calculate-connectable-side-by-internal-position/calculate-connectable-side-by-internal-position.d.ts +1 -1
  55. package/domain/f-node/calculate-connectors-connectable-sides/constants/calculatable-sides.d.ts +1 -1
  56. package/domain/f-node/calculate-connectors-connectable-sides/models/t-calculate-mode.d.ts +1 -1
  57. package/domain/f-node/calculate-connectors-connectable-sides/utils/determine-side.d.ts +1 -1
  58. package/domain/f-node/calculate-connectors-connectable-sides/utils/is-calculate-mode.d.ts +1 -1
  59. package/domain/f-node/calculate-input-connections/calculate-input-connections.d.ts +1 -1
  60. package/domain/f-node/calculate-output-connections/calculate-output-connections.d.ts +1 -1
  61. package/domain/f-selection/calculate-selectable-items/calculate-selectable-items-request.d.ts +3 -0
  62. package/domain/f-selection/{get-can-be-selected-items/get-can-be-selected-items.execution.d.ts → calculate-selectable-items/calculate-selectable-items.d.ts} +8 -8
  63. package/domain/f-selection/calculate-selectable-items/index.d.ts +3 -0
  64. package/domain/f-selection/index.d.ts +1 -1
  65. package/domain/f-selection/providers.d.ts +2 -2
  66. package/domain/f-zoom/add-zoom-to-store/add-zoom-to-store-request.d.ts +2 -2
  67. package/domain/f-zoom/add-zoom-to-store/add-zoom-to-store.d.ts +12 -0
  68. package/domain/f-zoom/add-zoom-to-store/index.d.ts +1 -1
  69. package/domain/f-zoom/providers.d.ts +5 -5
  70. package/domain/f-zoom/remove-zoom-from-store/index.d.ts +1 -1
  71. package/domain/f-zoom/remove-zoom-from-store/{remove-zoom-from-store.execution.d.ts → remove-zoom-from-store.d.ts} +3 -3
  72. package/domain/f-zoom/reset-zoom/index.d.ts +1 -1
  73. package/domain/f-zoom/reset-zoom/reset-zoom.d.ts +13 -0
  74. package/domain/f-zoom/set-zoom/index.d.ts +1 -1
  75. package/domain/f-zoom/set-zoom/{set-zoom.execution.d.ts → set-zoom.d.ts} +6 -6
  76. package/domain/index.d.ts +0 -1
  77. package/domain/providers.d.ts +1 -1
  78. package/drag-toolkit/pointer-events/i-pointer-event.d.ts +6 -4
  79. package/esm2022/domain/css-cls.mjs +1 -4
  80. package/esm2022/domain/f-background/add-pattern-to-background/add-pattern-to-background.mjs +56 -0
  81. package/esm2022/domain/f-background/add-pattern-to-background/add-pattern-to-background.request.mjs +1 -1
  82. package/esm2022/domain/f-background/add-pattern-to-background/index.mjs +2 -2
  83. package/esm2022/domain/f-background/providers.mjs +3 -3
  84. package/esm2022/domain/f-connection/add-connection-for-create-to-store/add-connection-for-create-to-store-request.mjs +4 -4
  85. package/esm2022/domain/f-connection/add-connection-for-create-to-store/add-connection-for-create-to-store.mjs +25 -0
  86. package/esm2022/domain/f-connection/add-connection-for-create-to-store/index.mjs +2 -2
  87. package/esm2022/domain/f-connection/add-connection-marker-to-store/add-connection-marker-to-store-request.mjs +4 -4
  88. package/esm2022/domain/f-connection/add-connection-marker-to-store/add-connection-marker-to-store.mjs +25 -0
  89. package/esm2022/domain/f-connection/add-connection-marker-to-store/index.mjs +2 -2
  90. package/esm2022/domain/f-connection/add-connection-to-store/add-connection-to-store-request.mjs +4 -4
  91. package/esm2022/domain/f-connection/add-connection-to-store/add-connection-to-store.mjs +26 -0
  92. package/esm2022/domain/f-connection/add-connection-to-store/index.mjs +2 -2
  93. package/esm2022/domain/f-connection/add-snap-connection-to-store/add-snap-connection-to-store-request.mjs +4 -4
  94. package/esm2022/domain/f-connection/add-snap-connection-to-store/add-snap-connection-to-store.mjs +25 -0
  95. package/esm2022/domain/f-connection/add-snap-connection-to-store/index.mjs +2 -2
  96. package/esm2022/domain/f-connection/create-connection-markers/create-connection-markers-request.mjs +4 -4
  97. package/esm2022/domain/f-connection/create-connection-markers/create-connection-markers.mjs +64 -0
  98. package/esm2022/domain/f-connection/create-connection-markers/index.mjs +2 -2
  99. package/esm2022/domain/f-connection/index.mjs +2 -2
  100. package/esm2022/domain/f-connection/providers.mjs +21 -21
  101. package/esm2022/domain/f-connection/redraw-connections/redraw-connections.mjs +24 -21
  102. package/esm2022/domain/f-connection/remove-connection-for-create-from-store/index.mjs +2 -2
  103. package/esm2022/domain/f-connection/remove-connection-for-create-from-store/remove-connection-for-create-from-store.mjs +25 -0
  104. package/esm2022/domain/f-connection/remove-connection-from-store/index.mjs +2 -2
  105. package/esm2022/domain/f-connection/remove-connection-from-store/remove-connection-from-store-request.mjs +4 -4
  106. package/esm2022/domain/f-connection/remove-connection-from-store/remove-connection-from-store.mjs +33 -0
  107. package/esm2022/domain/f-connection/remove-connection-marker-from-store/index.mjs +2 -2
  108. package/esm2022/domain/f-connection/remove-connection-marker-from-store/remove-connection-marker-from-store-request.mjs +4 -4
  109. package/esm2022/domain/f-connection/remove-connection-marker-from-store/remove-connection-marker-from-store.mjs +25 -0
  110. package/esm2022/domain/f-connection/remove-connection-waypoint/index.mjs +3 -0
  111. package/esm2022/domain/f-connection/remove-connection-waypoint/remove-connection-waypoint-request.mjs +10 -0
  112. package/esm2022/domain/f-connection/remove-connection-waypoint/remove-connection-waypoint.mjs +40 -0
  113. package/esm2022/domain/f-connection/remove-snap-connection-from-store/index.mjs +2 -2
  114. package/esm2022/domain/f-connection/remove-snap-connection-from-store/remove-snap-connection-from-store.mjs +25 -0
  115. package/esm2022/domain/f-connectors/calculate-source-connectors-to-connect/calculate-source-connectors-to-connect.mjs +1 -1
  116. package/esm2022/domain/f-connectors/calculate-target-connectors-to-connect/calculate-target-connectors-to-connect.mjs +1 -1
  117. package/esm2022/domain/f-draggable/add-dnd-to-store/add-dnd-to-store-request.mjs +1 -1
  118. package/esm2022/domain/f-draggable/on-pointer-move/on-pointer-move.execution.mjs +5 -5
  119. package/esm2022/domain/f-draggable/prepare-drag-sequence/prepare-drag-sequence-request.mjs +1 -1
  120. package/esm2022/domain/f-draggable/prepare-drag-sequence/prepare-drag-sequence.execution.mjs +3 -5
  121. package/esm2022/domain/f-flow/calculate-flow-state/calculate-connections-state/calculate-connections-state-request.mjs +4 -0
  122. package/esm2022/domain/f-flow/calculate-flow-state/calculate-connections-state/calculate-connections-state.mjs +38 -0
  123. package/esm2022/domain/f-flow/calculate-flow-state/calculate-connections-state/index.mjs +3 -0
  124. package/esm2022/domain/f-flow/calculate-flow-state/calculate-flow-state-request.mjs +4 -0
  125. package/esm2022/domain/f-flow/calculate-flow-state/calculate-flow-state.mjs +45 -0
  126. package/esm2022/domain/f-flow/calculate-flow-state/calculate-nodes-state/calculate-nodes-state-request.mjs +8 -0
  127. package/esm2022/domain/f-flow/calculate-flow-state/calculate-nodes-state/calculate-nodes-state.mjs +58 -0
  128. package/esm2022/domain/f-flow/calculate-flow-state/calculate-nodes-state/index.mjs +3 -0
  129. package/esm2022/domain/f-flow/calculate-flow-state/i-f-flow-state-connection.mjs +2 -0
  130. package/esm2022/domain/f-flow/calculate-flow-state/i-f-flow-state-connector.mjs +2 -0
  131. package/esm2022/domain/f-flow/calculate-flow-state/i-f-flow-state-node.mjs +2 -0
  132. package/esm2022/domain/f-flow/calculate-flow-state/i-f-flow-state.mjs +2 -0
  133. package/esm2022/domain/f-flow/calculate-flow-state/index.mjs +10 -0
  134. package/esm2022/domain/f-flow/calculate-flow-state/providers.mjs +12 -0
  135. package/esm2022/domain/f-flow/index.mjs +2 -2
  136. package/esm2022/domain/f-flow/providers.mjs +2 -2
  137. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/calculate-connectable-side-by-connected-positions/calculate-connectable-side-by-connected-positions.mjs +1 -1
  138. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/calculate-connectable-side-by-internal-position/calculate-connectable-side-by-internal-position.mjs +2 -2
  139. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/calculate-connectors-connectable-sides.mjs +2 -2
  140. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/constants/calculatable-sides.mjs +2 -2
  141. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/models/t-calculate-mode.mjs +1 -1
  142. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/utils/determine-side.mjs +2 -2
  143. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/utils/is-calculate-mode.mjs +2 -2
  144. package/esm2022/domain/f-node/calculate-input-connections/calculate-input-connections.mjs +1 -1
  145. package/esm2022/domain/f-node/calculate-output-connections/calculate-output-connections.mjs +1 -1
  146. package/esm2022/domain/f-node/update-node-when-state-or-size-changed/update-node-when-state-or-size-changed.mjs +2 -2
  147. package/esm2022/domain/f-selection/calculate-selectable-items/calculate-selectable-items-request.mjs +4 -0
  148. package/esm2022/domain/f-selection/calculate-selectable-items/calculate-selectable-items.mjs +70 -0
  149. package/esm2022/domain/f-selection/calculate-selectable-items/i-can-be-selected-element-and-rect.mjs +2 -0
  150. package/esm2022/domain/f-selection/calculate-selectable-items/index.mjs +4 -0
  151. package/esm2022/domain/f-selection/clear-selection/clear-selection.request.mjs +1 -1
  152. package/esm2022/domain/f-selection/index.mjs +2 -2
  153. package/esm2022/domain/f-selection/providers.mjs +3 -3
  154. package/esm2022/domain/f-zoom/add-zoom-to-store/add-zoom-to-store-request.mjs +4 -4
  155. package/esm2022/domain/f-zoom/add-zoom-to-store/add-zoom-to-store.mjs +28 -0
  156. package/esm2022/domain/f-zoom/add-zoom-to-store/index.mjs +2 -2
  157. package/esm2022/domain/f-zoom/providers.mjs +6 -11
  158. package/esm2022/domain/f-zoom/remove-zoom-from-store/index.mjs +2 -2
  159. package/esm2022/domain/f-zoom/remove-zoom-from-store/remove-zoom-from-store.mjs +28 -0
  160. package/esm2022/domain/f-zoom/reset-zoom/index.mjs +2 -2
  161. package/esm2022/domain/f-zoom/reset-zoom/reset-zoom.mjs +30 -0
  162. package/esm2022/domain/f-zoom/set-zoom/index.mjs +2 -2
  163. package/esm2022/domain/f-zoom/set-zoom/set-zoom.mjs +54 -0
  164. package/esm2022/domain/index.mjs +1 -2
  165. package/esm2022/drag-toolkit/event.extensions.mjs +2 -2
  166. package/esm2022/drag-toolkit/pointer-events/i-pointer-event.mjs +15 -10
  167. package/esm2022/f-canvas/domain/{f-canvas-change.event.mjs → f-canvas-change-event.mjs} +1 -1
  168. package/esm2022/f-canvas/domain/index.mjs +2 -2
  169. package/esm2022/f-canvas/f-canvas-base.mjs +7 -5
  170. package/esm2022/f-canvas/f-canvas.component.mjs +26 -36
  171. package/esm2022/f-connection/f-connection/f-connection.component.mjs +10 -24
  172. package/esm2022/f-connection/f-connection-for-create/f-connection-for-create.component.mjs +13 -18
  173. package/esm2022/f-connection/f-snap-connection/f-snap-connection.component.mjs +9 -15
  174. package/esm2022/f-connection/index.mjs +2 -7
  175. package/esm2022/f-connection/providers.mjs +9 -13
  176. package/esm2022/f-connection-v2/components/connection-content/f-connection-content.mjs +76 -0
  177. package/esm2022/f-connection-v2/components/connection-content/index.mjs +4 -0
  178. package/esm2022/f-connection-v2/components/connection-content/models/f-connection-content-base.mjs +10 -0
  179. package/esm2022/f-connection-v2/components/connection-content/models/index.mjs +2 -0
  180. package/esm2022/f-connection-v2/components/connection-content/utils/i-polyline-content.mjs +2 -0
  181. package/esm2022/f-connection-v2/components/connection-content/utils/index.mjs +6 -0
  182. package/esm2022/f-connection-v2/components/connection-content/utils/polyline-content-align.mjs +6 -0
  183. package/esm2022/f-connection-v2/components/connection-content/utils/polyline-content-layout-engine.mjs +25 -0
  184. package/esm2022/{f-connection/f-connection-content/polyline-content-engine → f-connection-v2/components/connection-content/utils}/polyline-content-place.mjs +2 -2
  185. package/esm2022/f-connection-v2/components/connection-content/utils/polyline-sampler/i-sampler-result.mjs +2 -0
  186. package/esm2022/f-connection-v2/components/connection-content/utils/polyline-sampler/i-tangent.mjs +2 -0
  187. package/esm2022/f-connection-v2/components/connection-content/utils/polyline-sampler/index.mjs +5 -0
  188. package/esm2022/f-connection-v2/components/connection-content/utils/polyline-sampler/polyline-sampler.mjs +143 -0
  189. package/esm2022/f-connection-v2/components/connection-content/utils/polyline-sampler/polyline.mjs +71 -0
  190. package/esm2022/f-connection-v2/components/connection-drag-handles/f-connection-drag-handle-end.mjs +35 -0
  191. package/esm2022/f-connection-v2/components/connection-drag-handles/f-connection-drag-handle-start.mjs +35 -0
  192. package/esm2022/f-connection-v2/components/connection-drag-handles/index.mjs +4 -0
  193. package/esm2022/f-connection-v2/components/connection-drag-handles/models/f-connection-drag-handle-base.mjs +17 -0
  194. package/esm2022/f-connection-v2/components/connection-drag-handles/models/index.mjs +2 -0
  195. package/esm2022/f-connection-v2/components/connection-gradient/f-connection-gradient.mjs +54 -0
  196. package/esm2022/f-connection-v2/components/connection-gradient/index.mjs +3 -0
  197. package/esm2022/f-connection-v2/components/connection-gradient/models/f-connection-gradient-base.mjs +6 -0
  198. package/esm2022/f-connection-v2/components/connection-gradient/models/index.mjs +2 -0
  199. package/esm2022/f-connection-v2/components/connection-marker/enums/e-f-marker-type.mjs +8 -0
  200. package/esm2022/f-connection-v2/components/connection-marker/enums/index.mjs +2 -0
  201. package/esm2022/f-connection-v2/components/connection-marker/f-connection-marker.mjs +50 -0
  202. package/esm2022/f-connection-v2/components/connection-marker/index.mjs +4 -0
  203. package/esm2022/f-connection-v2/components/connection-marker/models/f-connection-marker-base.mjs +6 -0
  204. package/esm2022/f-connection-v2/components/connection-marker/models/index.mjs +2 -0
  205. package/esm2022/f-connection-v2/components/connection-path/f-connection-path.mjs +66 -0
  206. package/esm2022/f-connection-v2/components/connection-path/index.mjs +3 -0
  207. package/esm2022/f-connection-v2/components/connection-path/models/f-connection-path-base.mjs +6 -0
  208. package/esm2022/f-connection-v2/components/connection-path/models/index.mjs +2 -0
  209. package/esm2022/f-connection-v2/components/connection-selection/f-connection-selection.mjs +34 -0
  210. package/esm2022/f-connection-v2/components/connection-selection/index.mjs +3 -0
  211. package/esm2022/f-connection-v2/components/connection-selection/models/f-connection-selection-base.mjs +6 -0
  212. package/esm2022/f-connection-v2/components/connection-selection/models/index.mjs +2 -0
  213. package/esm2022/f-connection-v2/components/connection-waypoints/f-connection-waypoints.mjs +50 -0
  214. package/esm2022/f-connection-v2/components/connection-waypoints/index.mjs +4 -0
  215. package/esm2022/f-connection-v2/components/connection-waypoints/models/f-connection-waypoints-base.mjs +27 -0
  216. package/esm2022/f-connection-v2/components/connection-waypoints/models/index.mjs +2 -0
  217. package/esm2022/f-connection-v2/components/connection-waypoints/utils/find-existing-waypoint.mjs +7 -0
  218. package/esm2022/f-connection-v2/components/connection-waypoints/utils/find-waypoint-candidate.mjs +7 -0
  219. package/esm2022/f-connection-v2/components/connection-waypoints/utils/index.mjs +5 -0
  220. package/esm2022/f-connection-v2/components/connection-waypoints/utils/is-pointer-inside-point.mjs +4 -0
  221. package/esm2022/f-connection-v2/components/connection-waypoints/utils/pick-waypoint.mjs +16 -0
  222. package/esm2022/f-connection-v2/components/f-connection-base.mjs +112 -0
  223. package/esm2022/f-connection-v2/components/index.mjs +9 -0
  224. package/esm2022/f-connection-v2/enums/e-f-connectable-side.mjs +12 -0
  225. package/esm2022/f-connection-v2/enums/e-f-connection-type.mjs +8 -0
  226. package/esm2022/f-connection-v2/enums/index.mjs +3 -0
  227. package/esm2022/f-connection-v2/index.mjs +5 -0
  228. package/esm2022/f-connection-v2/models/f-connection-components-parent.mjs +5 -0
  229. package/esm2022/f-connection-v2/models/f-connection-waypoints-changed-event.mjs +9 -0
  230. package/esm2022/f-connection-v2/models/index.mjs +3 -0
  231. package/esm2022/f-connection-v2/utils/connection-behaviour/connection-behaviour-builder-request.mjs +15 -0
  232. package/esm2022/f-connection-v2/utils/connection-behaviour/connection-behaviour-builder.mjs +136 -0
  233. package/esm2022/f-connection-v2/utils/connection-behaviour/enums/e-f-connection-behavior.mjs +7 -0
  234. package/esm2022/f-connection-v2/utils/connection-behaviour/enums/e-f-connection-connectable-side.mjs +12 -0
  235. package/esm2022/f-connection-v2/utils/connection-behaviour/enums/index.mjs +3 -0
  236. package/esm2022/f-connection-v2/utils/connection-behaviour/index.mjs +6 -0
  237. package/esm2022/f-connection-v2/utils/connection-behaviour/models/i-calculate-behavior-request.mjs +2 -0
  238. package/esm2022/f-connection-v2/utils/connection-behaviour/models/index.mjs +2 -0
  239. package/esm2022/f-connection-v2/utils/connection-behaviour/utils/fixed-center-behavior.mjs +12 -0
  240. package/esm2022/f-connection-v2/utils/connection-behaviour/utils/fixed-outbound-behavior.mjs +31 -0
  241. package/esm2022/f-connection-v2/utils/connection-behaviour/utils/floating-behavior.mjs +22 -0
  242. package/esm2022/f-connection-v2/utils/connection-behaviour/utils/index.mjs +4 -0
  243. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/adaptive-curve/calculate-adaptive-curve-data.mjs +74 -0
  244. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/adaptive-curve/index.mjs +2 -0
  245. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/bezier-curve/calculate-bezier-curve-data.mjs +49 -0
  246. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/bezier-curve/index.mjs +2 -0
  247. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/index.mjs +6 -0
  248. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/segment-line/build-corner-mid-points-and-apply-offsets.mjs +50 -0
  249. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/segment-line/calculate-segment-line-data.mjs +106 -0
  250. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/segment-line/create-segment-line-path.mjs +46 -0
  251. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/segment-line/index.mjs +4 -0
  252. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/straight-line/calculate-straight-line-data.mjs +28 -0
  253. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/straight-line/index.mjs +2 -0
  254. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/utils/build-connection-anchors.mjs +4 -0
  255. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/utils/calculate-center-between-points.mjs +8 -0
  256. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/utils/calculate-curve-candidates.mjs +7 -0
  257. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/utils/calculate-polyline-candidates.mjs +39 -0
  258. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/utils/index.mjs +9 -0
  259. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/utils/merge-point-chains.mjs +12 -0
  260. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/utils/multi-cubic.mjs +28 -0
  261. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/utils/normalize-polyline.mjs +30 -0
  262. package/esm2022/f-connection-v2/utils/connection-line-builder/builders/utils/sample-cubic-bezier-uniform.mjs +37 -0
  263. package/esm2022/f-connection-v2/utils/connection-line-builder/connection-line-builder-request.mjs +9 -0
  264. package/esm2022/f-connection-v2/utils/connection-line-builder/connection-line-builder.mjs +50 -0
  265. package/esm2022/f-connection-v2/utils/connection-line-builder/index.mjs +6 -0
  266. package/esm2022/f-connection-v2/utils/connection-line-builder/models/i-f-connection-builder-request.mjs +2 -0
  267. package/esm2022/f-connection-v2/utils/connection-line-builder/models/i-f-connection-builder-response.mjs +2 -0
  268. package/esm2022/f-connection-v2/utils/connection-line-builder/models/i-f-connection-builder.mjs +2 -0
  269. package/esm2022/f-connection-v2/utils/connection-line-builder/models/index.mjs +4 -0
  270. package/esm2022/f-connection-v2/utils/connection-line-builder/providers/f-connection-builders.mjs +3 -0
  271. package/esm2022/f-connection-v2/utils/connection-line-builder/providers/index.mjs +2 -0
  272. package/esm2022/f-connection-v2/utils/create-connection-dom-identifier.mjs +5 -0
  273. package/esm2022/f-connection-v2/utils/create-connection-selection-dom-identifier.mjs +5 -0
  274. package/esm2022/f-connection-v2/utils/create-gradient-dom-identifier.mjs +5 -0
  275. package/esm2022/f-connection-v2/utils/create-gradient-dom-url.mjs +5 -0
  276. package/esm2022/f-connection-v2/utils/index.mjs +7 -0
  277. package/esm2022/f-connectors/f-connector-base.mjs +2 -2
  278. package/esm2022/f-connectors/f-node-input/f-node-input.directive.mjs +2 -2
  279. package/esm2022/f-connectors/f-node-outlet/f-node-outlet.directive.mjs +2 -2
  280. package/esm2022/f-connectors/f-node-output/f-node-output.directive.mjs +2 -2
  281. package/esm2022/f-connectors/f-source-connector-base.mjs +8 -1
  282. package/esm2022/f-connectors/index.mjs +1 -2
  283. package/esm2022/f-draggable/domain/is-connection-under-node/is-connection-under-node.execution.mjs +1 -1
  284. package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/create-connection-preparation.mjs +1 -8
  285. package/esm2022/f-draggable/f-connection/f-create-connection/f-create-connection.drag-handler.mjs +8 -6
  286. package/esm2022/f-draggable/f-connection/f-reassign-connection/f-reassign-connection.drag-handler.mjs +6 -3
  287. package/esm2022/f-draggable/f-connection/f-reassign-connection/f-reassign-source.drag-handler.mjs +8 -5
  288. package/esm2022/f-draggable/f-connection/f-reassign-connection/f-reassign-target.drag-handler.mjs +8 -5
  289. package/esm2022/f-draggable/f-connection/f-reassign-connection/i-f-reassign-connection-drag-result.mjs +1 -1
  290. package/esm2022/f-draggable/f-connection/f-reassign-connection/reassign-preparation/f-reassign-connection-preparation.execution.mjs +22 -27
  291. package/esm2022/f-draggable/f-connection/f-reassign-connection/reassign-preparation/is-pointer-inside-start-or-end-drag-handles.mjs +8 -7
  292. package/esm2022/f-draggable/f-connection/index.mjs +2 -1
  293. package/esm2022/f-draggable/f-connection/move-connection-waypoint/index.mjs +4 -0
  294. package/esm2022/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-finalize/index.mjs +3 -0
  295. package/esm2022/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-finalize/move-connection-waypoint-finalize-request.mjs +8 -0
  296. package/esm2022/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-finalize/move-connection-waypoint-finalize.mjs +32 -0
  297. package/esm2022/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-handler.mjs +49 -0
  298. package/esm2022/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-preparation/index.mjs +3 -0
  299. package/esm2022/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-preparation/move-connection-waypoint-preparation-request.mjs +10 -0
  300. package/esm2022/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-preparation/move-connection-waypoint-preparation.mjs +65 -0
  301. package/esm2022/f-draggable/f-connection/providers.mjs +5 -2
  302. package/esm2022/f-draggable/f-drag-handler/i-f-drag-handler.mjs +1 -1
  303. package/esm2022/f-draggable/f-draggable-base.mjs +2 -2
  304. package/esm2022/f-draggable/f-draggable.directive.mjs +20 -9
  305. package/esm2022/f-draggable/f-node-move/connection-drag-handlers/base-connection.drag-handler.mjs +6 -3
  306. package/esm2022/f-draggable/f-node-move/connection-drag-handlers/source-connection.drag-handler.mjs +1 -1
  307. package/esm2022/f-draggable/f-node-move/connection-drag-handlers/source-target-connection.drag-handler.mjs +1 -1
  308. package/esm2022/f-draggable/f-node-move/connection-drag-handlers/target-connection.drag-handler.mjs +1 -1
  309. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/create-input-connection-handler-and-set-to-node-handler/create-input-connection-handler-and-set-to-node-handler.mjs +1 -1
  310. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/create-output-connection-handler-and-set-to-node-handler/create-output-connection-handler-and-set-to-node-handler.mjs +1 -1
  311. package/esm2022/f-draggable/f-node-move/create-snap-lines/create-snap-lines-request.mjs +1 -1
  312. package/esm2022/f-draggable/f-node-move/move-drag-handler.mjs +7 -5
  313. package/esm2022/f-draggable/f-node-move/move-finalize/f-node-move-finalize.execution.mjs +19 -14
  314. package/esm2022/f-draggable/f-node-move/move-preparation/index.mjs +3 -3
  315. package/esm2022/f-draggable/f-node-move/move-preparation/move-node-preparation-request.mjs +10 -0
  316. package/esm2022/f-draggable/f-node-move/move-preparation/move-node-preparation.mjs +81 -0
  317. package/esm2022/f-draggable/f-node-move/move-summary-drag-handler.mjs +1 -1
  318. package/esm2022/f-draggable/f-node-move/providers.mjs +3 -3
  319. package/esm2022/f-draggable/f-node-rotate/rotate-preparation/f-node-rotate-preparation.execution.mjs +1 -1
  320. package/esm2022/f-draggable/index.mjs +3 -2
  321. package/esm2022/f-draggable/pinch-to-zoom/constants/constants.mjs +6 -0
  322. package/esm2022/f-draggable/pinch-to-zoom/constants/index.mjs +2 -0
  323. package/esm2022/f-draggable/pinch-to-zoom/finalize/index.mjs +3 -0
  324. package/esm2022/f-draggable/pinch-to-zoom/finalize/pinch-to-zoom-finalize-request.mjs +8 -0
  325. package/esm2022/f-draggable/pinch-to-zoom/finalize/pinch-to-zoom-finalize.mjs +31 -0
  326. package/esm2022/f-draggable/pinch-to-zoom/index.mjs +7 -0
  327. package/esm2022/f-draggable/pinch-to-zoom/pinch-to-zoom-handler.mjs +68 -0
  328. package/esm2022/f-draggable/pinch-to-zoom/preparation/index.mjs +3 -0
  329. package/esm2022/f-draggable/pinch-to-zoom/preparation/pinch-to-zoom-preparation-request.mjs +8 -0
  330. package/esm2022/f-draggable/pinch-to-zoom/preparation/pinch-to-zoom-preparation.mjs +42 -0
  331. package/esm2022/f-draggable/pinch-to-zoom/providers.mjs +4 -0
  332. package/esm2022/f-draggable/pinch-to-zoom/utils/calculate-touch-center.mjs +10 -0
  333. package/esm2022/f-draggable/pinch-to-zoom/utils/calculate-touch-distance.mjs +9 -0
  334. package/esm2022/f-draggable/pinch-to-zoom/utils/index.mjs +3 -0
  335. package/esm2022/f-draggable/providers.mjs +4 -2
  336. package/esm2022/f-draggable/single-select/index.mjs +4 -0
  337. package/esm2022/f-draggable/single-select/providers.mjs +3 -0
  338. package/esm2022/f-draggable/single-select/single-select-request.mjs +10 -0
  339. package/esm2022/f-draggable/single-select/single-select.mjs +139 -0
  340. package/esm2022/f-flow/f-flow.component.mjs +39 -26
  341. package/esm2022/f-flow.module.mjs +38 -37
  342. package/esm2022/f-line-alignment/f-line-alignment-base.mjs +1 -1
  343. package/esm2022/f-line-alignment/f-line-alignment.component.mjs +10 -17
  344. package/esm2022/f-minimap/f-minimap.component.mjs +8 -9
  345. package/esm2022/f-selection-area/domain/selection-area.drag-handle.mjs +21 -19
  346. package/esm2022/f-storage/f-components-store.mjs +1 -1
  347. package/esm2022/f-storage/features/listen-components-data-changed/index.mjs +2 -2
  348. package/esm2022/f-storage/features/listen-components-data-changed/listen-data-changes-request.mjs +1 -1
  349. package/esm2022/f-storage/features/listen-components-data-changed/listen-data-changes.mjs +23 -0
  350. package/esm2022/f-storage/features/listen-count-changes/index.mjs +2 -2
  351. package/esm2022/f-storage/features/listen-count-changes/listen-count-changes-request.mjs +1 -1
  352. package/esm2022/f-storage/features/listen-count-changes/listen-count-changes.mjs +23 -0
  353. package/esm2022/f-storage/features/listen-transform-changes/index.mjs +3 -3
  354. package/esm2022/f-storage/features/listen-transform-changes/{listen-transform-changes.request.mjs → listen-transform-changes-request.mjs} +1 -1
  355. package/esm2022/f-storage/features/listen-transform-changes/listen-transform-changes.mjs +23 -0
  356. package/esm2022/f-storage/features/notify-data-changed/index.mjs +2 -2
  357. package/esm2022/f-storage/features/notify-data-changed/notify-data-changed-request.mjs +1 -1
  358. package/esm2022/f-storage/features/notify-data-changed/notify-data-changed.mjs +22 -0
  359. package/esm2022/f-storage/features/notify-transform-changed/index.mjs +3 -3
  360. package/esm2022/f-storage/features/notify-transform-changed/{notify-transform-changed.request.mjs → notify-transform-changed-request.mjs} +1 -1
  361. package/esm2022/f-storage/features/notify-transform-changed/notify-transform-changed.mjs +22 -0
  362. package/esm2022/f-storage/index.mjs +1 -2
  363. package/esm2022/f-storage/providers.mjs +11 -11
  364. package/esm2022/f-zoom/f-zoom.directive.mjs +44 -45
  365. package/esm2022/public-api.mjs +2 -1
  366. package/esm2022/reactivity/debounce-time.mjs +16 -5
  367. package/esm2022/reactivity/f-channel-hub.mjs +33 -9
  368. package/esm2022/reactivity/index.mjs +2 -1
  369. package/esm2022/reactivity/notify-on-start.mjs +12 -4
  370. package/esm2022/reactivity/take-one.mjs +17 -0
  371. package/esm2022/reactivity/types.mjs +1 -1
  372. package/esm2022/utils/calculate-pointer-in-flow.mjs +9 -0
  373. package/esm2022/utils/index.mjs +2 -1
  374. package/f-canvas/domain/index.d.ts +1 -1
  375. package/f-canvas/f-canvas-base.d.ts +2 -2
  376. package/f-canvas/f-canvas.component.d.ts +3 -10
  377. package/f-connection/f-connection/f-connection.component.d.ts +2 -7
  378. package/f-connection/f-connection-for-create/f-connection-for-create.component.d.ts +2 -6
  379. package/f-connection/f-snap-connection/f-snap-connection.component.d.ts +2 -6
  380. package/f-connection/index.d.ts +1 -6
  381. package/f-connection/providers.d.ts +3 -4
  382. package/{f-connection/f-connection-content → f-connection-v2/components/connection-content}/f-connection-content.d.ts +3 -30
  383. package/f-connection-v2/components/connection-content/index.d.ts +3 -0
  384. package/f-connection-v2/components/connection-content/models/f-connection-content-base.d.ts +36 -0
  385. package/f-connection-v2/components/connection-content/models/index.d.ts +1 -0
  386. package/{f-connection/f-connection-content/polyline-content-engine → f-connection-v2/components/connection-content/utils}/polyline-content-layout-engine.d.ts +1 -9
  387. package/f-connection-v2/components/connection-drag-handles/f-connection-drag-handle-end.d.ts +8 -0
  388. package/f-connection-v2/components/connection-drag-handles/f-connection-drag-handle-start.d.ts +8 -0
  389. package/f-connection-v2/components/connection-drag-handles/index.d.ts +3 -0
  390. package/f-connection-v2/components/connection-drag-handles/models/f-connection-drag-handle-base.d.ts +11 -0
  391. package/f-connection-v2/components/connection-drag-handles/models/index.d.ts +1 -0
  392. package/{f-connection/common/f-gradient/f-connection-gradient.component.d.ts → f-connection-v2/components/connection-gradient/f-connection-gradient.d.ts} +5 -6
  393. package/f-connection-v2/components/connection-gradient/index.d.ts +2 -0
  394. package/f-connection-v2/components/connection-gradient/models/f-connection-gradient-base.d.ts +8 -0
  395. package/f-connection-v2/components/connection-gradient/models/index.d.ts +1 -0
  396. package/f-connection-v2/components/connection-marker/enums/index.d.ts +1 -0
  397. package/f-connection-v2/components/connection-marker/f-connection-marker.d.ts +17 -0
  398. package/f-connection-v2/components/connection-marker/index.d.ts +3 -0
  399. package/{f-connection/f-marker/f-marker-base.d.ts → f-connection-v2/components/connection-marker/models/f-connection-marker-base.d.ts} +3 -4
  400. package/f-connection-v2/components/connection-marker/models/index.d.ts +1 -0
  401. package/f-connection-v2/components/connection-path/f-connection-path.d.ts +14 -0
  402. package/f-connection-v2/components/connection-path/index.d.ts +2 -0
  403. package/f-connection-v2/components/connection-path/models/f-connection-path-base.d.ts +9 -0
  404. package/f-connection-v2/components/connection-path/models/index.d.ts +1 -0
  405. package/f-connection-v2/components/connection-selection/f-connection-selection.d.ts +9 -0
  406. package/f-connection-v2/components/connection-selection/index.d.ts +2 -0
  407. package/f-connection-v2/components/connection-selection/models/f-connection-selection-base.d.ts +6 -0
  408. package/f-connection-v2/components/connection-selection/models/index.d.ts +1 -0
  409. package/f-connection-v2/components/connection-waypoints/f-connection-waypoints.d.ts +19 -0
  410. package/f-connection-v2/components/connection-waypoints/index.d.ts +3 -0
  411. package/f-connection-v2/components/connection-waypoints/models/f-connection-waypoints-base.d.ts +16 -0
  412. package/f-connection-v2/components/connection-waypoints/models/index.d.ts +1 -0
  413. package/f-connection-v2/components/connection-waypoints/utils/find-existing-waypoint.d.ts +6 -0
  414. package/f-connection-v2/components/connection-waypoints/utils/find-waypoint-candidate.d.ts +6 -0
  415. package/f-connection-v2/components/connection-waypoints/utils/index.d.ts +4 -0
  416. package/f-connection-v2/components/connection-waypoints/utils/is-pointer-inside-point.d.ts +2 -0
  417. package/f-connection-v2/components/connection-waypoints/utils/pick-waypoint.d.ts +17 -0
  418. package/{f-connection/common → f-connection-v2/components}/f-connection-base.d.ts +14 -31
  419. package/f-connection-v2/components/index.d.ts +8 -0
  420. package/f-connection-v2/enums/index.d.ts +2 -0
  421. package/f-connection-v2/index.d.ts +4 -0
  422. package/f-connection-v2/models/f-connection-components-parent.d.ts +15 -0
  423. package/f-connection-v2/models/f-connection-waypoints-changed-event.d.ts +6 -0
  424. package/f-connection-v2/models/index.d.ts +2 -0
  425. package/f-connection-v2/utils/connection-behaviour/connection-behaviour-builder-request.d.ts +11 -0
  426. package/{domain/f-connection/calculate-connection-line-by-behavior/calculate-connection-line-by-behavior.d.ts → f-connection-v2/utils/connection-behaviour/connection-behaviour-builder.d.ts} +5 -6
  427. package/f-connection-v2/utils/connection-behaviour/enums/index.d.ts +2 -0
  428. package/f-connection-v2/utils/connection-behaviour/index.d.ts +5 -0
  429. package/{domain/f-connection/calculate-connection-line-by-behavior/models/calculate-behavior-request.d.ts → f-connection-v2/utils/connection-behaviour/models/i-calculate-behavior-request.d.ts} +2 -2
  430. package/f-connection-v2/utils/connection-behaviour/models/index.d.ts +1 -0
  431. package/{domain/f-connection/calculate-connection-line-by-behavior → f-connection-v2/utils/connection-behaviour}/utils/fixed-center-behavior.d.ts +2 -2
  432. package/{domain/f-connection/calculate-connection-line-by-behavior → f-connection-v2/utils/connection-behaviour}/utils/fixed-outbound-behavior.d.ts +2 -2
  433. package/{domain/f-connection/calculate-connection-line-by-behavior → f-connection-v2/utils/connection-behaviour}/utils/floating-behavior.d.ts +2 -2
  434. package/f-connection-v2/utils/connection-behaviour/utils/index.d.ts +3 -0
  435. package/f-connection-v2/utils/connection-line-builder/builders/adaptive-curve/calculate-adaptive-curve-data.d.ts +8 -0
  436. package/f-connection-v2/utils/connection-line-builder/builders/adaptive-curve/index.d.ts +1 -0
  437. package/f-connection-v2/utils/connection-line-builder/builders/bezier-curve/calculate-bezier-curve-data.d.ts +4 -0
  438. package/f-connection-v2/utils/connection-line-builder/builders/bezier-curve/index.d.ts +1 -0
  439. package/f-connection-v2/utils/connection-line-builder/builders/index.d.ts +5 -0
  440. package/f-connection-v2/utils/connection-line-builder/builders/segment-line/build-corner-mid-points-and-apply-offsets.d.ts +17 -0
  441. package/f-connection-v2/utils/connection-line-builder/builders/segment-line/calculate-segment-line-data.d.ts +6 -0
  442. package/f-connection-v2/utils/connection-line-builder/builders/segment-line/create-segment-line-path.d.ts +2 -0
  443. package/f-connection-v2/utils/connection-line-builder/builders/segment-line/index.d.ts +3 -0
  444. package/{f-connection/common/domain/f-straight.path-builder.d.ts → f-connection-v2/utils/connection-line-builder/builders/straight-line/calculate-straight-line-data.d.ts} +2 -2
  445. package/f-connection-v2/utils/connection-line-builder/builders/straight-line/index.d.ts +1 -0
  446. package/f-connection-v2/utils/connection-line-builder/builders/utils/build-connection-anchors.d.ts +2 -0
  447. package/f-connection-v2/utils/connection-line-builder/builders/utils/calculate-center-between-points.d.ts +2 -0
  448. package/f-connection-v2/utils/connection-line-builder/builders/utils/calculate-curve-candidates.d.ts +3 -0
  449. package/f-connection-v2/utils/connection-line-builder/builders/utils/calculate-polyline-candidates.d.ts +2 -0
  450. package/f-connection-v2/utils/connection-line-builder/builders/utils/index.d.ts +8 -0
  451. package/f-connection-v2/utils/connection-line-builder/builders/utils/merge-point-chains.d.ts +2 -0
  452. package/f-connection-v2/utils/connection-line-builder/builders/utils/multi-cubic.d.ts +10 -0
  453. package/f-connection-v2/utils/connection-line-builder/builders/utils/normalize-polyline.d.ts +2 -0
  454. package/f-connection-v2/utils/connection-line-builder/builders/utils/sample-cubic-bezier-uniform.d.ts +24 -0
  455. package/f-connection-v2/utils/connection-line-builder/connection-line-builder-request.d.ts +7 -0
  456. package/f-connection-v2/utils/connection-line-builder/connection-line-builder.d.ts +13 -0
  457. package/f-connection-v2/utils/connection-line-builder/index.d.ts +5 -0
  458. package/{f-connection/f-connection-builder → f-connection-v2/utils/connection-line-builder/models}/i-f-connection-builder-request.d.ts +2 -1
  459. package/{f-connection/f-connection-builder → f-connection-v2/utils/connection-line-builder/models}/i-f-connection-builder-response.d.ts +2 -2
  460. package/{f-connection/f-connection-builder → f-connection-v2/utils/connection-line-builder/models}/i-f-connection-builder.d.ts +1 -2
  461. package/{f-connection/f-connection-builder → f-connection-v2/utils/connection-line-builder/models}/index.d.ts +1 -4
  462. package/f-connection-v2/utils/connection-line-builder/providers/f-connection-builders.d.ts +4 -0
  463. package/f-connection-v2/utils/connection-line-builder/providers/index.d.ts +1 -0
  464. package/f-connection-v2/utils/create-connection-dom-identifier.d.ts +1 -0
  465. package/f-connection-v2/utils/create-connection-selection-dom-identifier.d.ts +1 -0
  466. package/f-connection-v2/utils/create-gradient-dom-identifier.d.ts +1 -0
  467. package/f-connection-v2/utils/create-gradient-dom-url.d.ts +1 -0
  468. package/f-connection-v2/utils/index.d.ts +6 -0
  469. package/f-connectors/f-connector-base.d.ts +1 -1
  470. package/f-connectors/f-node-input/f-node-input.directive.d.ts +1 -1
  471. package/f-connectors/f-node-outlet/f-node-outlet.directive.d.ts +1 -1
  472. package/f-connectors/f-node-output/f-node-output.directive.d.ts +1 -1
  473. package/f-connectors/f-source-connector-base.d.ts +3 -0
  474. package/f-connectors/index.d.ts +0 -1
  475. package/f-draggable/f-connection/f-create-connection/f-create-connection.drag-handler.d.ts +1 -0
  476. package/f-draggable/f-connection/f-reassign-connection/f-reassign-connection.drag-handler.d.ts +2 -1
  477. package/f-draggable/f-connection/f-reassign-connection/f-reassign-source.drag-handler.d.ts +4 -2
  478. package/f-draggable/f-connection/f-reassign-connection/f-reassign-target.drag-handler.d.ts +4 -2
  479. package/f-draggable/f-connection/f-reassign-connection/i-f-reassign-connection-drag-result.d.ts +1 -1
  480. package/f-draggable/f-connection/f-reassign-connection/reassign-preparation/f-reassign-connection-preparation.execution.d.ts +6 -7
  481. package/f-draggable/f-connection/f-reassign-connection/reassign-preparation/is-pointer-inside-start-or-end-drag-handles.d.ts +2 -2
  482. package/f-draggable/f-connection/index.d.ts +1 -0
  483. package/f-draggable/f-connection/move-connection-waypoint/index.d.ts +3 -0
  484. package/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-finalize/index.d.ts +2 -0
  485. package/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-finalize/move-connection-waypoint-finalize-request.d.ts +6 -0
  486. package/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-finalize/move-connection-waypoint-finalize.d.ts +11 -0
  487. package/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-handler.d.ts +20 -0
  488. package/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-preparation/index.d.ts +2 -0
  489. package/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-preparation/move-connection-waypoint-preparation-request.d.ts +8 -0
  490. package/f-draggable/f-connection/move-connection-waypoint/move-connection-waypoint-preparation/move-connection-waypoint-preparation.d.ts +19 -0
  491. package/f-draggable/f-connection/providers.d.ts +3 -2
  492. package/f-draggable/f-drag-handler/i-f-drag-handler.d.ts +2 -1
  493. package/f-draggable/f-draggable-base.d.ts +3 -1
  494. package/f-draggable/f-draggable.directive.d.ts +5 -1
  495. package/f-draggable/f-node-move/connection-drag-handlers/base-connection.drag-handler.d.ts +2 -1
  496. package/f-draggable/f-node-move/connection-drag-handlers/source-connection.drag-handler.d.ts +1 -1
  497. package/f-draggable/f-node-move/connection-drag-handlers/source-target-connection.drag-handler.d.ts +1 -1
  498. package/f-draggable/f-node-move/connection-drag-handlers/target-connection.drag-handler.d.ts +1 -1
  499. package/f-draggable/f-node-move/create-drag-model-from-selection/create-output-connection-handler-and-set-to-node-handler/create-output-connection-handler-and-set-to-node-handler.d.ts +1 -1
  500. package/f-draggable/f-node-move/create-snap-lines/create-snap-lines-request.d.ts +1 -1
  501. package/f-draggable/f-node-move/move-drag-handler.d.ts +2 -2
  502. package/f-draggable/f-node-move/move-finalize/f-node-move-finalize.execution.d.ts +1 -1
  503. package/f-draggable/f-node-move/move-preparation/index.d.ts +2 -2
  504. package/f-draggable/f-node-move/move-preparation/{f-node-move-preparation.request.d.ts → move-node-preparation-request.d.ts} +3 -3
  505. package/f-draggable/f-node-move/move-preparation/move-node-preparation.d.ts +17 -0
  506. package/f-draggable/f-node-move/move-summary-drag-handler.d.ts +3 -3
  507. package/f-draggable/f-node-move/providers.d.ts +2 -2
  508. package/f-draggable/index.d.ts +2 -1
  509. package/f-draggable/pinch-to-zoom/constants/constants.d.ts +5 -0
  510. package/f-draggable/pinch-to-zoom/constants/index.d.ts +1 -0
  511. package/f-draggable/pinch-to-zoom/finalize/index.d.ts +2 -0
  512. package/f-draggable/pinch-to-zoom/finalize/pinch-to-zoom-finalize-request.d.ts +6 -0
  513. package/f-draggable/pinch-to-zoom/finalize/pinch-to-zoom-finalize.d.ts +11 -0
  514. package/f-draggable/pinch-to-zoom/index.d.ts +6 -0
  515. package/f-draggable/pinch-to-zoom/pinch-to-zoom-handler.d.ts +21 -0
  516. package/f-draggable/pinch-to-zoom/preparation/index.d.ts +2 -0
  517. package/f-draggable/pinch-to-zoom/preparation/pinch-to-zoom-preparation-request.d.ts +6 -0
  518. package/f-draggable/pinch-to-zoom/preparation/pinch-to-zoom-preparation.d.ts +13 -0
  519. package/f-draggable/pinch-to-zoom/providers.d.ts +3 -0
  520. package/f-draggable/pinch-to-zoom/utils/calculate-touch-center.d.ts +2 -0
  521. package/f-draggable/pinch-to-zoom/utils/calculate-touch-distance.d.ts +1 -0
  522. package/f-draggable/pinch-to-zoom/utils/index.d.ts +2 -0
  523. package/f-draggable/providers.d.ts +1 -1
  524. package/f-draggable/single-select/index.d.ts +3 -0
  525. package/f-draggable/single-select/providers.d.ts +2 -0
  526. package/f-draggable/single-select/single-select-request.d.ts +8 -0
  527. package/f-draggable/{f-single-select/f-single-select.execution.d.ts → single-select/single-select.d.ts} +7 -6
  528. package/f-flow/f-flow.component.d.ts +1 -1
  529. package/f-flow.module.d.ts +36 -37
  530. package/f-line-alignment/f-line-alignment-base.d.ts +3 -4
  531. package/f-line-alignment/f-line-alignment.component.d.ts +3 -4
  532. package/f-minimap/f-minimap.component.d.ts +2 -2
  533. package/f-selection-area/domain/selection-area.drag-handle.d.ts +6 -5
  534. package/f-storage/f-components-store.d.ts +3 -4
  535. package/f-storage/features/listen-components-data-changed/index.d.ts +1 -1
  536. package/f-storage/features/listen-components-data-changed/{listen-data-changes.execution.d.ts → listen-data-changes.d.ts} +3 -3
  537. package/f-storage/features/listen-count-changes/index.d.ts +1 -1
  538. package/f-storage/features/listen-count-changes/{listen-count-changes.execution.d.ts → listen-count-changes.d.ts} +3 -3
  539. package/f-storage/features/listen-transform-changes/index.d.ts +2 -2
  540. package/f-storage/features/listen-transform-changes/{listen-transform-changes.execution.d.ts → listen-transform-changes.d.ts} +4 -4
  541. package/f-storage/features/notify-data-changed/index.d.ts +1 -1
  542. package/f-storage/features/notify-data-changed/{notify-data-changed.execution.d.ts → notify-data-changed.d.ts} +3 -3
  543. package/f-storage/features/notify-transform-changed/index.d.ts +2 -2
  544. package/f-storage/features/notify-transform-changed/{notify-transform-changed.execution.d.ts → notify-transform-changed.d.ts} +4 -4
  545. package/f-storage/index.d.ts +0 -1
  546. package/f-storage/providers.d.ts +6 -6
  547. package/f-zoom/f-zoom.directive.d.ts +11 -14
  548. package/fesm2022/foblex-flow.mjs +4354 -3905
  549. package/fesm2022/foblex-flow.mjs.map +1 -1
  550. package/package.json +2 -2
  551. package/public-api.d.ts +1 -0
  552. package/reactivity/index.d.ts +1 -0
  553. package/reactivity/take-one.d.ts +2 -0
  554. package/reactivity/types.d.ts +6 -1
  555. package/schematics/collection.json +6 -1
  556. package/utils/calculate-pointer-in-flow.d.ts +4 -0
  557. package/utils/index.d.ts +1 -0
  558. package/domain/f-connection/calculate-connection-line-by-behavior/calculate-connection-line-by-behavior-request.d.ts +0 -12
  559. package/domain/f-connection/calculate-connection-line-by-behavior/index.d.ts +0 -6
  560. package/domain/f-flow/get-flow-state/get-flow-state-connections/get-flow-state-connections-request.d.ts +0 -3
  561. package/domain/f-flow/get-flow-state/get-flow-state-connections/get-flow-state-connections.execution.d.ts +0 -14
  562. package/domain/f-flow/get-flow-state/get-flow-state-connections/index.d.ts +0 -2
  563. package/domain/f-flow/get-flow-state/get-flow-state-nodes/get-flow-state-nodes-request.d.ts +0 -6
  564. package/domain/f-flow/get-flow-state/get-flow-state-nodes/get-flow-state-nodes.execution.d.ts +0 -15
  565. package/domain/f-flow/get-flow-state/get-flow-state-nodes/index.d.ts +0 -2
  566. package/domain/f-flow/get-flow-state/get-flow-state.execution.d.ts +0 -15
  567. package/domain/f-flow/get-flow-state/get-flow-state.request.d.ts +0 -3
  568. package/domain/f-flow/get-flow-state/i-f-flow-state-connection.d.ts +0 -9
  569. package/domain/f-flow/get-flow-state/providers.d.ts +0 -7
  570. package/domain/f-selection/get-can-be-selected-items/get-can-be-selected-items-request.d.ts +0 -3
  571. package/domain/f-selection/get-can-be-selected-items/index.d.ts +0 -3
  572. package/domain/f-zoom/add-zoom-to-store/add-zoom-to-store.execution.d.ts +0 -12
  573. package/domain/f-zoom/reset-zoom/reset-zoom.execution.d.ts +0 -13
  574. package/domain/i-map.d.ts +0 -1
  575. package/esm2022/domain/f-background/add-pattern-to-background/add-pattern-to-background.execution.mjs +0 -48
  576. package/esm2022/domain/f-connection/add-connection-for-create-to-store/add-connection-for-create-to-store.execution.mjs +0 -25
  577. package/esm2022/domain/f-connection/add-connection-marker-to-store/add-connection-marker-to-store.execution.mjs +0 -25
  578. package/esm2022/domain/f-connection/add-connection-to-store/add-connection-to-store.execution.mjs +0 -26
  579. package/esm2022/domain/f-connection/add-snap-connection-to-store/add-snap-connection-to-store.execution.mjs +0 -25
  580. package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/calculate-connection-line-by-behavior-request.mjs +0 -16
  581. package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/calculate-connection-line-by-behavior.mjs +0 -145
  582. package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/index.mjs +0 -7
  583. package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/models/calculate-behavior-request.mjs +0 -2
  584. package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/utils/fixed-center-behavior.mjs +0 -12
  585. package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/utils/fixed-outbound-behavior.mjs +0 -31
  586. package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/utils/floating-behavior.mjs +0 -22
  587. package/esm2022/domain/f-connection/create-connection-markers/create-connection-markers.execution.mjs +0 -65
  588. package/esm2022/domain/f-connection/remove-connection-for-create-from-store/remove-connection-for-create-from-store.execution.mjs +0 -25
  589. package/esm2022/domain/f-connection/remove-connection-from-store/remove-connection-from-store.execution.mjs +0 -33
  590. package/esm2022/domain/f-connection/remove-connection-marker-from-store/remove-connection-marker-from-store.execution.mjs +0 -25
  591. package/esm2022/domain/f-connection/remove-snap-connection-from-store/remove-snap-connection-from-store.execution.mjs +0 -25
  592. package/esm2022/domain/f-flow/get-flow-state/get-flow-state-connections/get-flow-state-connections-request.mjs +0 -4
  593. package/esm2022/domain/f-flow/get-flow-state/get-flow-state-connections/get-flow-state-connections.execution.mjs +0 -35
  594. package/esm2022/domain/f-flow/get-flow-state/get-flow-state-connections/index.mjs +0 -3
  595. package/esm2022/domain/f-flow/get-flow-state/get-flow-state-nodes/get-flow-state-nodes-request.mjs +0 -8
  596. package/esm2022/domain/f-flow/get-flow-state/get-flow-state-nodes/get-flow-state-nodes.execution.mjs +0 -58
  597. package/esm2022/domain/f-flow/get-flow-state/get-flow-state-nodes/index.mjs +0 -3
  598. package/esm2022/domain/f-flow/get-flow-state/get-flow-state.execution.mjs +0 -39
  599. package/esm2022/domain/f-flow/get-flow-state/get-flow-state.request.mjs +0 -4
  600. package/esm2022/domain/f-flow/get-flow-state/i-f-flow-state-connection.mjs +0 -2
  601. package/esm2022/domain/f-flow/get-flow-state/i-f-flow-state-connector.mjs +0 -2
  602. package/esm2022/domain/f-flow/get-flow-state/i-f-flow-state-node.mjs +0 -2
  603. package/esm2022/domain/f-flow/get-flow-state/i-f-flow-state.mjs +0 -2
  604. package/esm2022/domain/f-flow/get-flow-state/index.mjs +0 -10
  605. package/esm2022/domain/f-flow/get-flow-state/providers.mjs +0 -12
  606. package/esm2022/domain/f-selection/get-can-be-selected-items/get-can-be-selected-items-request.mjs +0 -4
  607. package/esm2022/domain/f-selection/get-can-be-selected-items/get-can-be-selected-items.execution.mjs +0 -66
  608. package/esm2022/domain/f-selection/get-can-be-selected-items/i-can-be-selected-element-and-rect.mjs +0 -2
  609. package/esm2022/domain/f-selection/get-can-be-selected-items/index.mjs +0 -4
  610. package/esm2022/domain/f-zoom/add-zoom-to-store/add-zoom-to-store.execution.mjs +0 -28
  611. package/esm2022/domain/f-zoom/remove-zoom-from-store/remove-zoom-from-store.execution.mjs +0 -28
  612. package/esm2022/domain/f-zoom/reset-zoom/reset-zoom.execution.mjs +0 -30
  613. package/esm2022/domain/f-zoom/set-zoom/set-zoom.execution.mjs +0 -54
  614. package/esm2022/domain/i-map.mjs +0 -2
  615. package/esm2022/f-connection/common/domain/adaptive-curve-builder.mjs +0 -201
  616. package/esm2022/f-connection/common/domain/calculate-center-between-points/calculate-center-between-points-request.mjs +0 -10
  617. package/esm2022/f-connection/common/domain/calculate-center-between-points/calculate-center-between-points.handler.mjs +0 -12
  618. package/esm2022/f-connection/common/domain/calculate-center-between-points/index.mjs +0 -3
  619. package/esm2022/f-connection/common/domain/calculate-connection-center/calculate-connection-center-request.mjs +0 -8
  620. package/esm2022/f-connection/common/domain/calculate-connection-center/calculate-connection-center.handler.mjs +0 -35
  621. package/esm2022/f-connection/common/domain/calculate-connection-center/index.mjs +0 -3
  622. package/esm2022/f-connection/common/domain/f-bezier.path-builder.mjs +0 -58
  623. package/esm2022/f-connection/common/domain/f-segment.path-builder.mjs +0 -161
  624. package/esm2022/f-connection/common/domain/f-straight.path-builder.mjs +0 -16
  625. package/esm2022/f-connection/common/domain/index.mjs +0 -7
  626. package/esm2022/f-connection/common/e-f-connection-behavior.mjs +0 -7
  627. package/esm2022/f-connection/common/e-f-connection-connectable-side.mjs +0 -12
  628. package/esm2022/f-connection/common/e-f-connection-type.mjs +0 -8
  629. package/esm2022/f-connection/common/f-connection-base.mjs +0 -121
  630. package/esm2022/f-connection/common/f-connection-identifiers.mjs +0 -22
  631. package/esm2022/f-connection/common/f-connection-text/f-connection-text-path.directive.mjs +0 -65
  632. package/esm2022/f-connection/common/f-connection-text/f-connection-text.component.mjs +0 -57
  633. package/esm2022/f-connection/common/f-connection-text/i-connection-text.mjs +0 -3
  634. package/esm2022/f-connection/common/f-connection-text/index.mjs +0 -4
  635. package/esm2022/f-connection/common/f-connection.injection-token.mjs +0 -3
  636. package/esm2022/f-connection/common/f-drag-handle/f-connection-drag-handle-end.component.mjs +0 -37
  637. package/esm2022/f-connection/common/f-drag-handle/f-connection-drag-handle-start.component.mjs +0 -37
  638. package/esm2022/f-connection/common/f-drag-handle/index.mjs +0 -3
  639. package/esm2022/f-connection/common/f-gradient/f-connection-gradient.component.mjs +0 -55
  640. package/esm2022/f-connection/common/f-gradient/i-connection-gradient.mjs +0 -3
  641. package/esm2022/f-connection/common/f-gradient/index.mjs +0 -3
  642. package/esm2022/f-connection/common/f-path/f-connection-path.component.mjs +0 -45
  643. package/esm2022/f-connection/common/f-path/get-path-marker-id.mjs +0 -14
  644. package/esm2022/f-connection/common/f-path/i-connection-path.mjs +0 -3
  645. package/esm2022/f-connection/common/f-path/index.mjs +0 -4
  646. package/esm2022/f-connection/common/f-selection/f-connection-selection.component.mjs +0 -24
  647. package/esm2022/f-connection/common/f-selection/index.mjs +0 -2
  648. package/esm2022/f-connection/common/i-has-connection-color.mjs +0 -2
  649. package/esm2022/f-connection/common/i-has-connection-from-to.mjs +0 -2
  650. package/esm2022/f-connection/common/i-has-connection-text.mjs +0 -2
  651. package/esm2022/f-connection/common/index.mjs +0 -15
  652. package/esm2022/f-connection/f-connection-builder/f-connection-builders.mjs +0 -3
  653. package/esm2022/f-connection/f-connection-builder/f-connection-factory.mjs +0 -26
  654. package/esm2022/f-connection/f-connection-builder/i-f-connection-builder-request.mjs +0 -2
  655. package/esm2022/f-connection/f-connection-builder/i-f-connection-builder-response.mjs +0 -2
  656. package/esm2022/f-connection/f-connection-builder/i-f-connection-builder.mjs +0 -2
  657. package/esm2022/f-connection/f-connection-builder/i-f-connection-factory-request.mjs +0 -2
  658. package/esm2022/f-connection/f-connection-builder/index.mjs +0 -7
  659. package/esm2022/f-connection/f-connection-center/f-connection-center.directive.mjs +0 -30
  660. package/esm2022/f-connection/f-connection-center/index.mjs +0 -2
  661. package/esm2022/f-connection/f-connection-content/f-connection-content.mjs +0 -102
  662. package/esm2022/f-connection/f-connection-content/index.mjs +0 -3
  663. package/esm2022/f-connection/f-connection-content/polyline-content-engine/i-polyline-content.mjs +0 -2
  664. package/esm2022/f-connection/f-connection-content/polyline-content-engine/index.mjs +0 -6
  665. package/esm2022/f-connection/f-connection-content/polyline-content-engine/polyline-content-align.mjs +0 -6
  666. package/esm2022/f-connection/f-connection-content/polyline-content-engine/polyline-content-layout-engine.mjs +0 -28
  667. package/esm2022/f-connection/f-connection-content/polyline-content-engine/polyline-sampler/i-sampler-result.mjs +0 -2
  668. package/esm2022/f-connection/f-connection-content/polyline-content-engine/polyline-sampler/i-tangent.mjs +0 -2
  669. package/esm2022/f-connection/f-connection-content/polyline-content-engine/polyline-sampler/index.mjs +0 -5
  670. package/esm2022/f-connection/f-connection-content/polyline-content-engine/polyline-sampler/polyline-sampler.mjs +0 -143
  671. package/esm2022/f-connection/f-connection-content/polyline-content-engine/polyline-sampler/polyline.mjs +0 -68
  672. package/esm2022/f-connection/f-marker/e-f-marker-type.mjs +0 -8
  673. package/esm2022/f-connection/f-marker/f-marker-base.mjs +0 -5
  674. package/esm2022/f-connection/f-marker/f-marker.directive.mjs +0 -51
  675. package/esm2022/f-connection/f-marker/index.mjs +0 -4
  676. package/esm2022/f-connectors/e-f-connectable-side.mjs +0 -12
  677. package/esm2022/f-draggable/f-node-move/move-preparation/f-node-move-preparation.execution.mjs +0 -82
  678. package/esm2022/f-draggable/f-node-move/move-preparation/f-node-move-preparation.request.mjs +0 -10
  679. package/esm2022/f-draggable/f-single-select/f-single-select.execution.mjs +0 -138
  680. package/esm2022/f-draggable/f-single-select/f-single-select.request.mjs +0 -10
  681. package/esm2022/f-draggable/f-single-select/index.mjs +0 -4
  682. package/esm2022/f-draggable/f-single-select/providers.mjs +0 -5
  683. package/esm2022/f-storage/f-connectors-store.mjs +0 -11
  684. package/esm2022/f-storage/features/listen-components-data-changed/listen-data-changes.execution.mjs +0 -23
  685. package/esm2022/f-storage/features/listen-count-changes/listen-count-changes.execution.mjs +0 -23
  686. package/esm2022/f-storage/features/listen-transform-changes/listen-transform-changes.execution.mjs +0 -23
  687. package/esm2022/f-storage/features/notify-data-changed/notify-data-changed.execution.mjs +0 -22
  688. package/esm2022/f-storage/features/notify-transform-changed/notify-transform-changed.execution.mjs +0 -22
  689. package/f-connection/common/domain/adaptive-curve-builder.d.ts +0 -102
  690. package/f-connection/common/domain/calculate-center-between-points/calculate-center-between-points-request.d.ts +0 -7
  691. package/f-connection/common/domain/calculate-center-between-points/calculate-center-between-points.handler.d.ts +0 -6
  692. package/f-connection/common/domain/calculate-center-between-points/index.d.ts +0 -2
  693. package/f-connection/common/domain/calculate-connection-center/calculate-connection-center-request.d.ts +0 -6
  694. package/f-connection/common/domain/calculate-connection-center/calculate-connection-center.handler.d.ts +0 -8
  695. package/f-connection/common/domain/calculate-connection-center/index.d.ts +0 -2
  696. package/f-connection/common/domain/f-bezier.path-builder.d.ts +0 -6
  697. package/f-connection/common/domain/f-segment.path-builder.d.ts +0 -11
  698. package/f-connection/common/domain/index.d.ts +0 -6
  699. package/f-connection/common/f-connection-identifiers.d.ts +0 -8
  700. package/f-connection/common/f-connection-text/f-connection-text-path.directive.d.ts +0 -18
  701. package/f-connection/common/f-connection-text/f-connection-text.component.d.ts +0 -16
  702. package/f-connection/common/f-connection-text/i-connection-text.d.ts +0 -7
  703. package/f-connection/common/f-connection-text/index.d.ts +0 -3
  704. package/f-connection/common/f-connection.injection-token.d.ts +0 -2
  705. package/f-connection/common/f-drag-handle/f-connection-drag-handle-end.component.d.ts +0 -13
  706. package/f-connection/common/f-drag-handle/f-connection-drag-handle-start.component.d.ts +0 -13
  707. package/f-connection/common/f-drag-handle/index.d.ts +0 -2
  708. package/f-connection/common/f-gradient/i-connection-gradient.d.ts +0 -8
  709. package/f-connection/common/f-gradient/index.d.ts +0 -2
  710. package/f-connection/common/f-path/f-connection-path.component.d.ts +0 -15
  711. package/f-connection/common/f-path/get-path-marker-id.d.ts +0 -4
  712. package/f-connection/common/f-path/i-connection-path.d.ts +0 -9
  713. package/f-connection/common/f-path/index.d.ts +0 -3
  714. package/f-connection/common/f-selection/f-connection-selection.component.d.ts +0 -10
  715. package/f-connection/common/f-selection/index.d.ts +0 -1
  716. package/f-connection/common/i-has-connection-color.d.ts +0 -5
  717. package/f-connection/common/i-has-connection-from-to.d.ts +0 -6
  718. package/f-connection/common/i-has-connection-text.d.ts +0 -4
  719. package/f-connection/common/index.d.ts +0 -14
  720. package/f-connection/f-connection-builder/f-connection-builders.d.ts +0 -4
  721. package/f-connection/f-connection-builder/f-connection-factory.d.ts +0 -9
  722. package/f-connection/f-connection-builder/i-f-connection-factory-request.d.ts +0 -6
  723. package/f-connection/f-connection-center/f-connection-center.directive.d.ts +0 -10
  724. package/f-connection/f-connection-center/index.d.ts +0 -1
  725. package/f-connection/f-connection-content/index.d.ts +0 -2
  726. package/f-connection/f-marker/f-marker.directive.d.ts +0 -18
  727. package/f-connection/f-marker/index.d.ts +0 -3
  728. package/f-draggable/f-node-move/move-preparation/f-node-move-preparation.execution.d.ts +0 -20
  729. package/f-draggable/f-single-select/f-single-select.request.d.ts +0 -8
  730. package/f-draggable/f-single-select/index.d.ts +0 -3
  731. package/f-draggable/f-single-select/providers.d.ts +0 -2
  732. package/f-storage/f-connectors-store.d.ts +0 -6
  733. /package/domain/f-flow/{get-flow-state → calculate-flow-state}/i-f-flow-state-node.d.ts +0 -0
  734. /package/domain/f-flow/{get-flow-state → calculate-flow-state}/i-f-flow-state.d.ts +0 -0
  735. /package/domain/f-selection/{get-can-be-selected-items → calculate-selectable-items}/i-can-be-selected-element-and-rect.d.ts +0 -0
  736. /package/f-canvas/domain/{f-canvas-change.event.d.ts → f-canvas-change-event.d.ts} +0 -0
  737. /package/{f-connection/f-connection-content/polyline-content-engine → f-connection-v2/components/connection-content/utils}/i-polyline-content.d.ts +0 -0
  738. /package/{f-connection/f-connection-content/polyline-content-engine → f-connection-v2/components/connection-content/utils}/index.d.ts +0 -0
  739. /package/{f-connection/f-connection-content/polyline-content-engine → f-connection-v2/components/connection-content/utils}/polyline-content-align.d.ts +0 -0
  740. /package/{f-connection/f-connection-content/polyline-content-engine → f-connection-v2/components/connection-content/utils}/polyline-content-place.d.ts +0 -0
  741. /package/{f-connection/f-connection-content/polyline-content-engine → f-connection-v2/components/connection-content/utils}/polyline-sampler/i-sampler-result.d.ts +0 -0
  742. /package/{f-connection/f-connection-content/polyline-content-engine → f-connection-v2/components/connection-content/utils}/polyline-sampler/i-tangent.d.ts +0 -0
  743. /package/{f-connection/f-connection-content/polyline-content-engine → f-connection-v2/components/connection-content/utils}/polyline-sampler/index.d.ts +0 -0
  744. /package/{f-connection/f-connection-content/polyline-content-engine → f-connection-v2/components/connection-content/utils}/polyline-sampler/polyline-sampler.d.ts +0 -0
  745. /package/{f-connection/f-connection-content/polyline-content-engine → f-connection-v2/components/connection-content/utils}/polyline-sampler/polyline.d.ts +0 -0
  746. /package/{f-connection/f-marker → f-connection-v2/components/connection-marker/enums}/e-f-marker-type.d.ts +0 -0
  747. /package/{f-connectors → f-connection-v2/enums}/e-f-connectable-side.d.ts +0 -0
  748. /package/{f-connection/common → f-connection-v2/enums}/e-f-connection-type.d.ts +0 -0
  749. /package/{f-connection/common → f-connection-v2/utils/connection-behaviour/enums}/e-f-connection-behavior.d.ts +0 -0
  750. /package/{f-connection/common → f-connection-v2/utils/connection-behaviour/enums}/e-f-connection-connectable-side.d.ts +0 -0
  751. /package/f-storage/features/listen-transform-changes/{listen-transform-changes.request.d.ts → listen-transform-changes-request.d.ts} +0 -0
  752. /package/f-storage/features/notify-transform-changed/{notify-transform-changed.request.d.ts → notify-transform-changed-request.d.ts} +0 -0
@@ -1,5 +1,6 @@
1
- import { FCreateConnectionDragHandlerPreparationExecution, FCreateConnectionFinalizeExecution, FCreateConnectionFromOutletPreparationExecution, CreateConnectionFromOutputPreparation, CreateConnectionPreparation, GetFirstConnectableOutputExecution, } from './f-create-connection';
1
+ import { CreateConnectionFromOutputPreparation, CreateConnectionPreparation, FCreateConnectionDragHandlerPreparationExecution, FCreateConnectionFinalizeExecution, FCreateConnectionFromOutletPreparationExecution, GetFirstConnectableOutputExecution, } from './f-create-connection';
2
2
  import { FReassignConnectionFinalizeExecution, FReassignConnectionPreparationExecution, } from './f-reassign-connection';
3
+ import { MoveConnectionWaypointFinalize, MoveConnectionWaypointPreparation, } from './move-connection-waypoint';
3
4
  export const CONNECTIONS_PROVIDERS = [
4
5
  FCreateConnectionFinalizeExecution,
5
6
  FCreateConnectionDragHandlerPreparationExecution,
@@ -9,5 +10,7 @@ export const CONNECTIONS_PROVIDERS = [
9
10
  CreateConnectionPreparation,
10
11
  FReassignConnectionFinalizeExecution,
11
12
  FReassignConnectionPreparationExecution,
13
+ MoveConnectionWaypointPreparation,
14
+ MoveConnectionWaypointFinalize,
12
15
  ];
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9mLWNvbm5lY3Rpb24vcHJvdmlkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxnREFBZ0QsRUFDaEQsa0NBQWtDLEVBQ2xDLCtDQUErQyxFQUMvQyxxQ0FBcUMsRUFDckMsMkJBQTJCLEVBQzNCLGtDQUFrQyxHQUNuQyxNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFDTCxvQ0FBb0MsRUFDcEMsdUNBQXVDLEdBQ3hDLE1BQU0seUJBQXlCLENBQUM7QUFFakMsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUc7SUFDbkMsa0NBQWtDO0lBRWxDLGdEQUFnRDtJQUVoRCwrQ0FBK0M7SUFFL0Msa0NBQWtDO0lBRWxDLHFDQUFxQztJQUVyQywyQkFBMkI7SUFFM0Isb0NBQW9DO0lBRXBDLHVDQUF1QztDQUN4QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRkNyZWF0ZUNvbm5lY3Rpb25EcmFnSGFuZGxlclByZXBhcmF0aW9uRXhlY3V0aW9uLFxuICBGQ3JlYXRlQ29ubmVjdGlvbkZpbmFsaXplRXhlY3V0aW9uLFxuICBGQ3JlYXRlQ29ubmVjdGlvbkZyb21PdXRsZXRQcmVwYXJhdGlvbkV4ZWN1dGlvbixcbiAgQ3JlYXRlQ29ubmVjdGlvbkZyb21PdXRwdXRQcmVwYXJhdGlvbixcbiAgQ3JlYXRlQ29ubmVjdGlvblByZXBhcmF0aW9uLFxuICBHZXRGaXJzdENvbm5lY3RhYmxlT3V0cHV0RXhlY3V0aW9uLFxufSBmcm9tICcuL2YtY3JlYXRlLWNvbm5lY3Rpb24nO1xuaW1wb3J0IHtcbiAgRlJlYXNzaWduQ29ubmVjdGlvbkZpbmFsaXplRXhlY3V0aW9uLFxuICBGUmVhc3NpZ25Db25uZWN0aW9uUHJlcGFyYXRpb25FeGVjdXRpb24sXG59IGZyb20gJy4vZi1yZWFzc2lnbi1jb25uZWN0aW9uJztcblxuZXhwb3J0IGNvbnN0IENPTk5FQ1RJT05TX1BST1ZJREVSUyA9IFtcbiAgRkNyZWF0ZUNvbm5lY3Rpb25GaW5hbGl6ZUV4ZWN1dGlvbixcblxuICBGQ3JlYXRlQ29ubmVjdGlvbkRyYWdIYW5kbGVyUHJlcGFyYXRpb25FeGVjdXRpb24sXG5cbiAgRkNyZWF0ZUNvbm5lY3Rpb25Gcm9tT3V0bGV0UHJlcGFyYXRpb25FeGVjdXRpb24sXG5cbiAgR2V0Rmlyc3RDb25uZWN0YWJsZU91dHB1dEV4ZWN1dGlvbixcblxuICBDcmVhdGVDb25uZWN0aW9uRnJvbU91dHB1dFByZXBhcmF0aW9uLFxuXG4gIENyZWF0ZUNvbm5lY3Rpb25QcmVwYXJhdGlvbixcblxuICBGUmVhc3NpZ25Db25uZWN0aW9uRmluYWxpemVFeGVjdXRpb24sXG5cbiAgRlJlYXNzaWduQ29ubmVjdGlvblByZXBhcmF0aW9uRXhlY3V0aW9uLFxuXTtcbiJdfQ==
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9mLWNvbm5lY3Rpb24vcHJvdmlkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxxQ0FBcUMsRUFDckMsMkJBQTJCLEVBQzNCLGdEQUFnRCxFQUNoRCxrQ0FBa0MsRUFDbEMsK0NBQStDLEVBQy9DLGtDQUFrQyxHQUNuQyxNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFDTCxvQ0FBb0MsRUFDcEMsdUNBQXVDLEdBQ3hDLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUNMLDhCQUE4QixFQUM5QixpQ0FBaUMsR0FDbEMsTUFBTSw0QkFBNEIsQ0FBQztBQUVwQyxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRztJQUNuQyxrQ0FBa0M7SUFFbEMsZ0RBQWdEO0lBRWhELCtDQUErQztJQUUvQyxrQ0FBa0M7SUFFbEMscUNBQXFDO0lBRXJDLDJCQUEyQjtJQUUzQixvQ0FBb0M7SUFFcEMsdUNBQXVDO0lBRXZDLGlDQUFpQztJQUVqQyw4QkFBOEI7Q0FDL0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENyZWF0ZUNvbm5lY3Rpb25Gcm9tT3V0cHV0UHJlcGFyYXRpb24sXG4gIENyZWF0ZUNvbm5lY3Rpb25QcmVwYXJhdGlvbixcbiAgRkNyZWF0ZUNvbm5lY3Rpb25EcmFnSGFuZGxlclByZXBhcmF0aW9uRXhlY3V0aW9uLFxuICBGQ3JlYXRlQ29ubmVjdGlvbkZpbmFsaXplRXhlY3V0aW9uLFxuICBGQ3JlYXRlQ29ubmVjdGlvbkZyb21PdXRsZXRQcmVwYXJhdGlvbkV4ZWN1dGlvbixcbiAgR2V0Rmlyc3RDb25uZWN0YWJsZU91dHB1dEV4ZWN1dGlvbixcbn0gZnJvbSAnLi9mLWNyZWF0ZS1jb25uZWN0aW9uJztcbmltcG9ydCB7XG4gIEZSZWFzc2lnbkNvbm5lY3Rpb25GaW5hbGl6ZUV4ZWN1dGlvbixcbiAgRlJlYXNzaWduQ29ubmVjdGlvblByZXBhcmF0aW9uRXhlY3V0aW9uLFxufSBmcm9tICcuL2YtcmVhc3NpZ24tY29ubmVjdGlvbic7XG5pbXBvcnQge1xuICBNb3ZlQ29ubmVjdGlvbldheXBvaW50RmluYWxpemUsXG4gIE1vdmVDb25uZWN0aW9uV2F5cG9pbnRQcmVwYXJhdGlvbixcbn0gZnJvbSAnLi9tb3ZlLWNvbm5lY3Rpb24td2F5cG9pbnQnO1xuXG5leHBvcnQgY29uc3QgQ09OTkVDVElPTlNfUFJPVklERVJTID0gW1xuICBGQ3JlYXRlQ29ubmVjdGlvbkZpbmFsaXplRXhlY3V0aW9uLFxuXG4gIEZDcmVhdGVDb25uZWN0aW9uRHJhZ0hhbmRsZXJQcmVwYXJhdGlvbkV4ZWN1dGlvbixcblxuICBGQ3JlYXRlQ29ubmVjdGlvbkZyb21PdXRsZXRQcmVwYXJhdGlvbkV4ZWN1dGlvbixcblxuICBHZXRGaXJzdENvbm5lY3RhYmxlT3V0cHV0RXhlY3V0aW9uLFxuXG4gIENyZWF0ZUNvbm5lY3Rpb25Gcm9tT3V0cHV0UHJlcGFyYXRpb24sXG5cbiAgQ3JlYXRlQ29ubmVjdGlvblByZXBhcmF0aW9uLFxuXG4gIEZSZWFzc2lnbkNvbm5lY3Rpb25GaW5hbGl6ZUV4ZWN1dGlvbixcblxuICBGUmVhc3NpZ25Db25uZWN0aW9uUHJlcGFyYXRpb25FeGVjdXRpb24sXG5cbiAgTW92ZUNvbm5lY3Rpb25XYXlwb2ludFByZXBhcmF0aW9uLFxuXG4gIE1vdmVDb25uZWN0aW9uV2F5cG9pbnRGaW5hbGl6ZSxcbl07XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaS1mLWRyYWctaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1kcmFnZ2FibGUvZi1kcmFnLWhhbmRsZXIvaS1mLWRyYWctaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnQGZvYmxleC8yZCc7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG5leHBvcnQgaW50ZXJmYWNlIElGRHJhZ0hhbmRsZXI8VERhdGEgPSBhbnk+IHtcbiAgZkV2ZW50VHlwZTogc3RyaW5nO1xuXG4gIGZEYXRhPzogVERhdGE7XG5cbiAgcHJlcGFyZURyYWdTZXF1ZW5jZT8oKTogdm9pZDtcblxuICBvblBvaW50ZXJNb3ZlKGRpZmZlcmVuY2U6IElQb2ludCk6IHZvaWQ7XG5cbiAgb25Qb2ludGVyVXA/KCk6IHZvaWQ7XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaS1mLWRyYWctaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1kcmFnZ2FibGUvZi1kcmFnLWhhbmRsZXIvaS1mLWRyYWctaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQgeyBJUG9pbnRlckV2ZW50IH0gZnJvbSAnLi4vLi4vZHJhZy10b29sa2l0JztcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbmV4cG9ydCBpbnRlcmZhY2UgSUZEcmFnSGFuZGxlcjxURGF0YSA9IGFueT4ge1xuICBmRXZlbnRUeXBlOiBzdHJpbmc7XG5cbiAgZkRhdGE/OiBURGF0YTtcblxuICBwcmVwYXJlRHJhZ1NlcXVlbmNlPygpOiB2b2lkO1xuXG4gIG9uUG9pbnRlck1vdmUoZGlmZmVyZW5jZTogSVBvaW50LCBldmVudD86IElQb2ludGVyRXZlbnQpOiB2b2lkO1xuXG4gIG9uUG9pbnRlclVwPygpOiB2b2lkO1xufVxuIl19
@@ -1,6 +1,6 @@
1
- import { ElementRef, inject } from '@angular/core';
1
+ import { ElementRef, inject, } from '@angular/core';
2
2
  import { DragAndDropBase } from '../drag-toolkit';
3
3
  export class FDraggableBase extends DragAndDropBase {
4
4
  hostElement = inject(ElementRef).nativeElement;
5
5
  }
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1kcmFnZ2FibGUtYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1kcmFnZ2FibGUvZi1kcmFnZ2FibGUtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFnQixNQUFNLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBTTNGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUdsRCxNQUFNLE9BQWdCLGNBQWUsU0FBUSxlQUFlO0lBQzFDLFdBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsYUFBYSxDQUFDO0NBMkJoRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbnB1dFNpZ25hbFdpdGhUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZDcmVhdGVDb25uZWN0aW9uRXZlbnQsIEZSZWFzc2lnbkNvbm5lY3Rpb25FdmVudCB9IGZyb20gJy4vZi1jb25uZWN0aW9uJztcbmltcG9ydCB7IEZTZWxlY3Rpb25DaGFuZ2VFdmVudCB9IGZyb20gJy4vZi1zZWxlY3Rpb24tY2hhbmdlLWV2ZW50JztcbmltcG9ydCB7IEZDcmVhdGVOb2RlRXZlbnQgfSBmcm9tICcuLi9mLWV4dGVybmFsLWl0ZW0nO1xuaW1wb3J0IHsgRkRyYWdTdGFydGVkRXZlbnQsIEZOb2RlSW50ZXJzZWN0ZWRXaXRoQ29ubmVjdGlvbnMgfSBmcm9tICcuL2RvbWFpbic7XG5pbXBvcnQgeyBGRHJvcFRvR3JvdXBFdmVudCB9IGZyb20gJy4vZi1kcm9wLXRvLWdyb3VwJztcbmltcG9ydCB7IERyYWdBbmREcm9wQmFzZSB9IGZyb20gJy4uL2RyYWctdG9vbGtpdCc7XG5pbXBvcnQgeyBGTW92ZU5vZGVzRXZlbnQgfSBmcm9tICcuL2Ytbm9kZS1tb3ZlJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZEcmFnZ2FibGVCYXNlIGV4dGVuZHMgRHJhZ0FuZERyb3BCYXNlIHtcbiAgcHVibGljIHJlYWRvbmx5IGhvc3RFbGVtZW50ID0gaW5qZWN0KEVsZW1lbnRSZWYpLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgcHVibGljIGFic3RyYWN0IGZTZWxlY3Rpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxGU2VsZWN0aW9uQ2hhbmdlRXZlbnQ+O1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmTm9kZUludGVyc2VjdGVkV2l0aENvbm5lY3Rpb25zOiBFdmVudEVtaXR0ZXI8Rk5vZGVJbnRlcnNlY3RlZFdpdGhDb25uZWN0aW9ucz47XG5cbiAgcHVibGljIGFic3RyYWN0IGZFbWl0T25Ob2RlSW50ZXJzZWN0OiBib29sZWFuO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmQ3JlYXRlTm9kZTogRXZlbnRFbWl0dGVyPEZDcmVhdGVOb2RlRXZlbnQ+O1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmTW92ZU5vZGVzOiBFdmVudEVtaXR0ZXI8Rk1vdmVOb2Rlc0V2ZW50PjtcblxuICBwdWJsaWMgYWJzdHJhY3QgZlJlYXNzaWduQ29ubmVjdGlvbjogRXZlbnRFbWl0dGVyPEZSZWFzc2lnbkNvbm5lY3Rpb25FdmVudD47XG5cbiAgcHVibGljIGFic3RyYWN0IGZDcmVhdGVDb25uZWN0aW9uOiBFdmVudEVtaXR0ZXI8RkNyZWF0ZUNvbm5lY3Rpb25FdmVudD47XG5cbiAgcHVibGljIGFic3RyYWN0IGZEcm9wVG9Hcm91cDogRXZlbnRFbWl0dGVyPEZEcm9wVG9Hcm91cEV2ZW50PjtcblxuICBwdWJsaWMgYWJzdHJhY3QgdkNlbGxTaXplOiBJbnB1dFNpZ25hbFdpdGhUcmFuc2Zvcm08bnVtYmVyLCB1bmtub3duPjtcblxuICBwdWJsaWMgYWJzdHJhY3QgaENlbGxTaXplOiBJbnB1dFNpZ25hbFdpdGhUcmFuc2Zvcm08bnVtYmVyLCB1bmtub3duPjtcblxuICBwdWJsaWMgYWJzdHJhY3QgZkNlbGxTaXplV2hpbGVEcmFnZ2luZzogSW5wdXRTaWduYWxXaXRoVHJhbnNmb3JtPGJvb2xlYW4sIHVua25vd24+O1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmRHJhZ1N0YXJ0ZWQ6IEV2ZW50RW1pdHRlcjxGRHJhZ1N0YXJ0ZWRFdmVudD47XG5cbiAgcHVibGljIGFic3RyYWN0IGZEcmFnRW5kZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPjtcbn1cbiJdfQ==
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1kcmFnZ2FibGUtYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1kcmFnZ2FibGUvZi1kcmFnZ2FibGUtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUVWLE1BQU0sR0FHUCxNQUFNLGVBQWUsQ0FBQztBQU12QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFJbEQsTUFBTSxPQUFnQixjQUFlLFNBQVEsZUFBZTtJQUMxQyxXQUFXLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGFBQWEsQ0FBQztDQTZCaEUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIGluamVjdCxcbiAgSW5wdXRTaWduYWxXaXRoVHJhbnNmb3JtLFxuICBPdXRwdXRFbWl0dGVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZDcmVhdGVDb25uZWN0aW9uRXZlbnQsIEZSZWFzc2lnbkNvbm5lY3Rpb25FdmVudCB9IGZyb20gJy4vZi1jb25uZWN0aW9uJztcbmltcG9ydCB7IEZTZWxlY3Rpb25DaGFuZ2VFdmVudCB9IGZyb20gJy4vZi1zZWxlY3Rpb24tY2hhbmdlLWV2ZW50JztcbmltcG9ydCB7IEZDcmVhdGVOb2RlRXZlbnQgfSBmcm9tICcuLi9mLWV4dGVybmFsLWl0ZW0nO1xuaW1wb3J0IHsgRkRyYWdTdGFydGVkRXZlbnQsIEZOb2RlSW50ZXJzZWN0ZWRXaXRoQ29ubmVjdGlvbnMgfSBmcm9tICcuL2RvbWFpbic7XG5pbXBvcnQgeyBGRHJvcFRvR3JvdXBFdmVudCB9IGZyb20gJy4vZi1kcm9wLXRvLWdyb3VwJztcbmltcG9ydCB7IERyYWdBbmREcm9wQmFzZSB9IGZyb20gJy4uL2RyYWctdG9vbGtpdCc7XG5pbXBvcnQgeyBGTW92ZU5vZGVzRXZlbnQgfSBmcm9tICcuL2Ytbm9kZS1tb3ZlJztcbmltcG9ydCB7IEZDb25uZWN0aW9uV2F5cG9pbnRzQ2hhbmdlZEV2ZW50IH0gZnJvbSAnLi4vZi1jb25uZWN0aW9uLXYyJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZEcmFnZ2FibGVCYXNlIGV4dGVuZHMgRHJhZ0FuZERyb3BCYXNlIHtcbiAgcHVibGljIHJlYWRvbmx5IGhvc3RFbGVtZW50ID0gaW5qZWN0KEVsZW1lbnRSZWYpLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgcHVibGljIGFic3RyYWN0IGZTZWxlY3Rpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxGU2VsZWN0aW9uQ2hhbmdlRXZlbnQ+O1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmTm9kZUludGVyc2VjdGVkV2l0aENvbm5lY3Rpb25zOiBFdmVudEVtaXR0ZXI8Rk5vZGVJbnRlcnNlY3RlZFdpdGhDb25uZWN0aW9ucz47XG5cbiAgcHVibGljIGFic3RyYWN0IGZFbWl0T25Ob2RlSW50ZXJzZWN0OiBib29sZWFuO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmQ3JlYXRlTm9kZTogRXZlbnRFbWl0dGVyPEZDcmVhdGVOb2RlRXZlbnQ+O1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmTW92ZU5vZGVzOiBFdmVudEVtaXR0ZXI8Rk1vdmVOb2Rlc0V2ZW50PjtcblxuICBwdWJsaWMgYWJzdHJhY3QgZlJlYXNzaWduQ29ubmVjdGlvbjogRXZlbnRFbWl0dGVyPEZSZWFzc2lnbkNvbm5lY3Rpb25FdmVudD47XG5cbiAgcHVibGljIGFic3RyYWN0IGZDcmVhdGVDb25uZWN0aW9uOiBFdmVudEVtaXR0ZXI8RkNyZWF0ZUNvbm5lY3Rpb25FdmVudD47XG5cbiAgcHVibGljIGFic3RyYWN0IGZDb25uZWN0aW9uV2F5cG9pbnRzQ2hhbmdlZDogT3V0cHV0RW1pdHRlclJlZjxGQ29ubmVjdGlvbldheXBvaW50c0NoYW5nZWRFdmVudD47XG5cbiAgcHVibGljIGFic3RyYWN0IGZEcm9wVG9Hcm91cDogRXZlbnRFbWl0dGVyPEZEcm9wVG9Hcm91cEV2ZW50PjtcblxuICBwdWJsaWMgYWJzdHJhY3QgdkNlbGxTaXplOiBJbnB1dFNpZ25hbFdpdGhUcmFuc2Zvcm08bnVtYmVyLCB1bmtub3duPjtcblxuICBwdWJsaWMgYWJzdHJhY3QgaENlbGxTaXplOiBJbnB1dFNpZ25hbFdpdGhUcmFuc2Zvcm08bnVtYmVyLCB1bmtub3duPjtcblxuICBwdWJsaWMgYWJzdHJhY3QgZkNlbGxTaXplV2hpbGVEcmFnZ2luZzogSW5wdXRTaWduYWxXaXRoVHJhbnNmb3JtPGJvb2xlYW4sIHVua25vd24+O1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmRHJhZ1N0YXJ0ZWQ6IEV2ZW50RW1pdHRlcjxGRHJhZ1N0YXJ0ZWRFdmVudD47XG5cbiAgcHVibGljIGFic3RyYWN0IGZEcmFnRW5kZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPjtcbn1cbiJdfQ==
@@ -1,12 +1,12 @@
1
- import { booleanAttribute, ContentChildren, Directive, EventEmitter, inject, input, Input, numberAttribute, Output, } from '@angular/core';
1
+ import { booleanAttribute, ContentChildren, Directive, EventEmitter, inject, input, Input, numberAttribute, output, Output, } from '@angular/core';
2
2
  import { FDraggableBase } from './f-draggable-base';
3
- import { FNodeMoveFinalizeRequest, FNodeMovePreparationRequest, } from './f-node-move';
3
+ import { FNodeMoveFinalizeRequest, MoveNodePreparationRequest, } from './f-node-move';
4
4
  import { FCanvasMoveFinalizeRequest, FCanvasMovePreparationRequest } from './f-canvas';
5
- import { FCreateConnectionFinalizeRequest, CreateConnectionPreparationRequest, FReassignConnectionFinalizeRequest, FReassignConnectionPreparationRequest, } from './f-connection';
5
+ import { CreateConnectionPreparationRequest, FCreateConnectionFinalizeRequest, FReassignConnectionFinalizeRequest, FReassignConnectionPreparationRequest, MoveConnectionWaypointFinalizeRequest, MoveConnectionWaypointPreparationRequest, } from './f-connection';
6
6
  import { FMediator } from '@foblex/mediator';
7
- import { AddDndToStoreRequest, defaultEventTrigger, EmitSelectionChangeEventRequest, EndDragSequenceRequest, InitializeDragSequenceRequest, OnPointerMoveRequest, PrepareDragSequenceRequest, DragRectCache, RemoveDndFromStoreRequest, } from '../domain';
7
+ import { AddDndToStoreRequest, defaultEventTrigger, DragRectCache, EmitSelectionChangeEventRequest, EndDragSequenceRequest, InitializeDragSequenceRequest, OnPointerMoveRequest, PrepareDragSequenceRequest, RemoveDndFromStoreRequest, } from '../domain';
8
8
  import { FExternalItemFinalizeRequest, FExternalItemPreparationRequest, PreventDefaultIsExternalItemRequest, } from '../f-external-item';
9
- import { FSingleSelectRequest } from './f-single-select';
9
+ import { SingleSelectRequest } from './single-select';
10
10
  import { NodeResizeFinalizeRequest, NodeResizePreparationRequest } from './f-node-resize';
11
11
  import { F_AFTER_MAIN_PLUGIN, F_BEFORE_MAIN_PLUGIN, } from './i-f-drag-and-drop-plugin';
12
12
  import { EOperationSystem, PlatformService } from '@foblex/platform';
@@ -14,6 +14,7 @@ import { FDragHandlerResult } from './f-drag-handler';
14
14
  import { DropToGroupFinalizeRequest, DropToGroupPreparationRequest, } from './f-drop-to-group';
15
15
  import { FNodeRotateFinalizeRequest, FNodeRotatePreparationRequest } from './f-node-rotate';
16
16
  import { isDragBlocker } from './is-drag-blocker';
17
+ import { PinchToZoomFinalizeRequest, PinchToZoomPreparationRequest } from './pinch-to-zoom';
17
18
  import * as i0 from "@angular/core";
18
19
  // ┌──────────────────────────────┐
19
20
  // │ Angular Realm │
@@ -76,6 +77,8 @@ export class FDraggableDirective extends FDraggableBase {
76
77
  };
77
78
  fReassignConnectionTrigger = defaultEventTrigger;
78
79
  fCreateConnectionTrigger = defaultEventTrigger;
80
+ fConnectionWaypointsTrigger = input(defaultEventTrigger);
81
+ fMoveControlPointTrigger = defaultEventTrigger;
79
82
  fNodeResizeTrigger = defaultEventTrigger;
80
83
  fNodeRotateTrigger = defaultEventTrigger;
81
84
  fNodeMoveTrigger = defaultEventTrigger;
@@ -88,6 +91,7 @@ export class FDraggableDirective extends FDraggableBase {
88
91
  fMoveNodes = new EventEmitter();
89
92
  fReassignConnection = new EventEmitter();
90
93
  fCreateConnection = new EventEmitter();
94
+ fConnectionWaypointsChanged = output();
91
95
  fDropToGroup = new EventEmitter();
92
96
  /**
93
97
  * Defines the vertical cell size for the grid.
@@ -130,9 +134,12 @@ export class FDraggableDirective extends FDraggableBase {
130
134
  this._result.clear();
131
135
  this._mediator.execute(new InitializeDragSequenceRequest());
132
136
  this._beforePlugins.forEach((p) => p.onPointerDown?.(event));
133
- this._mediator.execute(new FSingleSelectRequest(event, this.fMultiSelectTrigger));
137
+ this._mediator.execute(new PinchToZoomPreparationRequest(event));
138
+ this._mediator.execute(new SingleSelectRequest(event, this.fMultiSelectTrigger));
134
139
  this._mediator.execute(new FReassignConnectionPreparationRequest(event, this.fReassignConnectionTrigger));
135
140
  this._mediator.execute(new CreateConnectionPreparationRequest(event, this.fCreateConnectionTrigger));
141
+ this._mediator.execute(new CreateConnectionPreparationRequest(event, this.fCreateConnectionTrigger));
142
+ this._mediator.execute(new MoveConnectionWaypointPreparationRequest(event, this.fConnectionWaypointsTrigger()));
136
143
  this._afterPlugins.forEach((p) => p.onPointerDown?.(event));
137
144
  const isMouseLeftOrTouch = event.isMouseLeftButton();
138
145
  if (!isMouseLeftOrTouch) {
@@ -144,7 +151,7 @@ export class FDraggableDirective extends FDraggableBase {
144
151
  this._beforePlugins.forEach((p) => p.prepareDragSequence?.(event));
145
152
  this._mediator.execute(new NodeResizePreparationRequest(event, this.fNodeResizeTrigger));
146
153
  this._mediator.execute(new FNodeRotatePreparationRequest(event, this.fNodeRotateTrigger));
147
- this._mediator.execute(new FNodeMovePreparationRequest(event, this.fNodeMoveTrigger));
154
+ this._mediator.execute(new MoveNodePreparationRequest(event, this.fNodeMoveTrigger));
148
155
  this._mediator.execute(new FExternalItemPreparationRequest(event, this.fExternalItemTrigger));
149
156
  this._mediator.execute(new DropToGroupPreparationRequest(event));
150
157
  this._mediator.execute(new FCanvasMovePreparationRequest(event, this.fCanvasMoveTrigger));
@@ -168,6 +175,8 @@ export class FDraggableDirective extends FDraggableBase {
168
175
  this._mediator.execute(new DropToGroupFinalizeRequest(event));
169
176
  this._mediator.execute(new FCanvasMoveFinalizeRequest(event));
170
177
  this._afterPlugins.forEach((x) => x.onPointerUp?.(event));
178
+ this._mediator.execute(new PinchToZoomFinalizeRequest(event));
179
+ this._mediator.execute(new MoveConnectionWaypointFinalizeRequest(event));
171
180
  this._mediator.execute(new EndDragSequenceRequest());
172
181
  }
173
182
  finalizeDragSequence() {
@@ -180,7 +189,7 @@ export class FDraggableDirective extends FDraggableBase {
180
189
  super.unsubscribe();
181
190
  }
182
191
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FDraggableDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
183
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: FDraggableDirective, selector: "f-flow[fDraggable]", inputs: { disabled: { classPropertyName: "disabled", publicName: "fDraggableDisabled", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, fMultiSelectTrigger: { classPropertyName: "fMultiSelectTrigger", publicName: "fMultiSelectTrigger", isSignal: false, isRequired: false, transformFunction: null }, fReassignConnectionTrigger: { classPropertyName: "fReassignConnectionTrigger", publicName: "fReassignConnectionTrigger", isSignal: false, isRequired: false, transformFunction: null }, fCreateConnectionTrigger: { classPropertyName: "fCreateConnectionTrigger", publicName: "fCreateConnectionTrigger", isSignal: false, isRequired: false, transformFunction: null }, fNodeResizeTrigger: { classPropertyName: "fNodeResizeTrigger", publicName: "fNodeResizeTrigger", isSignal: false, isRequired: false, transformFunction: null }, fNodeRotateTrigger: { classPropertyName: "fNodeRotateTrigger", publicName: "fNodeRotateTrigger", isSignal: false, isRequired: false, transformFunction: null }, fNodeMoveTrigger: { classPropertyName: "fNodeMoveTrigger", publicName: "fNodeMoveTrigger", isSignal: false, isRequired: false, transformFunction: null }, fCanvasMoveTrigger: { classPropertyName: "fCanvasMoveTrigger", publicName: "fCanvasMoveTrigger", isSignal: false, isRequired: false, transformFunction: null }, fExternalItemTrigger: { classPropertyName: "fExternalItemTrigger", publicName: "fExternalItemTrigger", isSignal: false, isRequired: false, transformFunction: null }, fEmitOnNodeIntersect: { classPropertyName: "fEmitOnNodeIntersect", publicName: "fEmitOnNodeIntersect", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, vCellSize: { classPropertyName: "vCellSize", publicName: "vCellSize", isSignal: true, isRequired: false, transformFunction: null }, hCellSize: { classPropertyName: "hCellSize", publicName: "hCellSize", isSignal: true, isRequired: false, transformFunction: null }, fCellSizeWhileDragging: { classPropertyName: "fCellSizeWhileDragging", publicName: "fCellSizeWhileDragging", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { fSelectionChange: "fSelectionChange", fNodeIntersectedWithConnections: "fNodeIntersectedWithConnections", fCreateNode: "fCreateNode", fMoveNodes: "fMoveNodes", fReassignConnection: "fReassignConnection", fCreateConnection: "fCreateConnection", fDropToGroup: "fDropToGroup", fDragStarted: "fDragStarted", fDragEnded: "fDragEnded" }, providers: [FDragHandlerResult], queries: [{ propertyName: "_beforePlugins", predicate: F_BEFORE_MAIN_PLUGIN, descendants: true }, { propertyName: "_afterPlugins", predicate: F_AFTER_MAIN_PLUGIN, descendants: true }], exportAs: ["fDraggable"], usesInheritance: true, ngImport: i0 });
192
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: FDraggableDirective, selector: "f-flow[fDraggable]", inputs: { disabled: { classPropertyName: "disabled", publicName: "fDraggableDisabled", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, fMultiSelectTrigger: { classPropertyName: "fMultiSelectTrigger", publicName: "fMultiSelectTrigger", isSignal: false, isRequired: false, transformFunction: null }, fReassignConnectionTrigger: { classPropertyName: "fReassignConnectionTrigger", publicName: "fReassignConnectionTrigger", isSignal: false, isRequired: false, transformFunction: null }, fCreateConnectionTrigger: { classPropertyName: "fCreateConnectionTrigger", publicName: "fCreateConnectionTrigger", isSignal: false, isRequired: false, transformFunction: null }, fConnectionWaypointsTrigger: { classPropertyName: "fConnectionWaypointsTrigger", publicName: "fConnectionWaypointsTrigger", isSignal: true, isRequired: false, transformFunction: null }, fMoveControlPointTrigger: { classPropertyName: "fMoveControlPointTrigger", publicName: "fMoveControlPointTrigger", isSignal: false, isRequired: false, transformFunction: null }, fNodeResizeTrigger: { classPropertyName: "fNodeResizeTrigger", publicName: "fNodeResizeTrigger", isSignal: false, isRequired: false, transformFunction: null }, fNodeRotateTrigger: { classPropertyName: "fNodeRotateTrigger", publicName: "fNodeRotateTrigger", isSignal: false, isRequired: false, transformFunction: null }, fNodeMoveTrigger: { classPropertyName: "fNodeMoveTrigger", publicName: "fNodeMoveTrigger", isSignal: false, isRequired: false, transformFunction: null }, fCanvasMoveTrigger: { classPropertyName: "fCanvasMoveTrigger", publicName: "fCanvasMoveTrigger", isSignal: false, isRequired: false, transformFunction: null }, fExternalItemTrigger: { classPropertyName: "fExternalItemTrigger", publicName: "fExternalItemTrigger", isSignal: false, isRequired: false, transformFunction: null }, fEmitOnNodeIntersect: { classPropertyName: "fEmitOnNodeIntersect", publicName: "fEmitOnNodeIntersect", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, vCellSize: { classPropertyName: "vCellSize", publicName: "vCellSize", isSignal: true, isRequired: false, transformFunction: null }, hCellSize: { classPropertyName: "hCellSize", publicName: "hCellSize", isSignal: true, isRequired: false, transformFunction: null }, fCellSizeWhileDragging: { classPropertyName: "fCellSizeWhileDragging", publicName: "fCellSizeWhileDragging", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { fSelectionChange: "fSelectionChange", fNodeIntersectedWithConnections: "fNodeIntersectedWithConnections", fCreateNode: "fCreateNode", fMoveNodes: "fMoveNodes", fReassignConnection: "fReassignConnection", fCreateConnection: "fCreateConnection", fConnectionWaypointsChanged: "fConnectionWaypointsChanged", fDropToGroup: "fDropToGroup", fDragStarted: "fDragStarted", fDragEnded: "fDragEnded" }, providers: [FDragHandlerResult], queries: [{ propertyName: "_beforePlugins", predicate: F_BEFORE_MAIN_PLUGIN, descendants: true }, { propertyName: "_afterPlugins", predicate: F_AFTER_MAIN_PLUGIN, descendants: true }], exportAs: ["fDraggable"], usesInheritance: true, ngImport: i0 });
184
193
  }
185
194
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FDraggableDirective, decorators: [{
186
195
  type: Directive,
@@ -198,6 +207,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
198
207
  type: Input
199
208
  }], fCreateConnectionTrigger: [{
200
209
  type: Input
210
+ }], fMoveControlPointTrigger: [{
211
+ type: Input
201
212
  }], fNodeResizeTrigger: [{
202
213
  type: Input
203
214
  }], fNodeRotateTrigger: [{
@@ -236,4 +247,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
236
247
  type: ContentChildren,
237
248
  args: [F_AFTER_MAIN_PLUGIN, { descendants: true }]
238
249
  }] } });
239
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1kcmFnZ2FibGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9mLWRyYWdnYWJsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsU0FBUyxFQUVULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLEtBQUssRUFFTCxlQUFlLEVBR2YsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBRUwsd0JBQXdCLEVBQ3hCLDJCQUEyQixHQUM1QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDdkYsT0FBTyxFQUVMLGdDQUFnQyxFQUNoQyxrQ0FBa0MsRUFFbEMsa0NBQWtDLEVBQ2xDLHFDQUFxQyxHQUN0QyxNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3QyxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLG1CQUFtQixFQUNuQiwrQkFBK0IsRUFDL0Isc0JBQXNCLEVBR3RCLDZCQUE2QixFQUM3QixvQkFBb0IsRUFDcEIsMEJBQTBCLEVBQzFCLGFBQWEsRUFDYix5QkFBeUIsR0FDMUIsTUFBTSxXQUFXLENBQUM7QUFDbkIsT0FBTyxFQUVMLDRCQUE0QixFQUM1QiwrQkFBK0IsRUFDL0IsbUNBQW1DLEdBQ3BDLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDekQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLDRCQUE0QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUYs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LGlCQUFpQjtzQkFEaEMsTUFBTTtnQkFJUyxZQUFZO3NCQUQzQixNQUFNO2dCQStCUyxZQUFZO3NCQUQzQixNQUFNO2dCQUlTLFVBQVU7c0JBRHpCLE1BQU07Z0JBSUMsY0FBYztzQkFEckIsZUFBZTt1QkFBQyxvQkFBb0IsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBSXBELGFBQWE7c0JBRHBCLGVBQWU7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgQ29udGVudENoaWxkcmVuLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgbnVtYmVyQXR0cmlidXRlLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRkRyYWdnYWJsZUJhc2UgfSBmcm9tICcuL2YtZHJhZ2dhYmxlLWJhc2UnO1xuaW1wb3J0IHtcbiAgRk1vdmVOb2Rlc0V2ZW50LFxuICBGTm9kZU1vdmVGaW5hbGl6ZVJlcXVlc3QsXG4gIEZOb2RlTW92ZVByZXBhcmF0aW9uUmVxdWVzdCxcbn0gZnJvbSAnLi9mLW5vZGUtbW92ZSc7XG5pbXBvcnQgeyBGQ2FudmFzTW92ZUZpbmFsaXplUmVxdWVzdCwgRkNhbnZhc01vdmVQcmVwYXJhdGlvblJlcXVlc3QgfSBmcm9tICcuL2YtY2FudmFzJztcbmltcG9ydCB7XG4gIEZDcmVhdGVDb25uZWN0aW9uRXZlbnQsXG4gIEZDcmVhdGVDb25uZWN0aW9uRmluYWxpemVSZXF1ZXN0LFxuICBDcmVhdGVDb25uZWN0aW9uUHJlcGFyYXRpb25SZXF1ZXN0LFxuICBGUmVhc3NpZ25Db25uZWN0aW9uRXZlbnQsXG4gIEZSZWFzc2lnbkNvbm5lY3Rpb25GaW5hbGl6ZVJlcXVlc3QsXG4gIEZSZWFzc2lnbkNvbm5lY3Rpb25QcmVwYXJhdGlvblJlcXVlc3QsXG59IGZyb20gJy4vZi1jb25uZWN0aW9uJztcbmltcG9ydCB7IEZTZWxlY3Rpb25DaGFuZ2VFdmVudCB9IGZyb20gJy4vZi1zZWxlY3Rpb24tY2hhbmdlLWV2ZW50JztcbmltcG9ydCB7IEZNZWRpYXRvciB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHtcbiAgQWRkRG5kVG9TdG9yZVJlcXVlc3QsXG4gIGRlZmF1bHRFdmVudFRyaWdnZXIsXG4gIEVtaXRTZWxlY3Rpb25DaGFuZ2VFdmVudFJlcXVlc3QsXG4gIEVuZERyYWdTZXF1ZW5jZVJlcXVlc3QsXG4gIEZFdmVudFRyaWdnZXIsXG4gIEZUcmlnZ2VyRXZlbnQsXG4gIEluaXRpYWxpemVEcmFnU2VxdWVuY2VSZXF1ZXN0LFxuICBPblBvaW50ZXJNb3ZlUmVxdWVzdCxcbiAgUHJlcGFyZURyYWdTZXF1ZW5jZVJlcXVlc3QsXG4gIERyYWdSZWN0Q2FjaGUsXG4gIFJlbW92ZURuZEZyb21TdG9yZVJlcXVlc3QsXG59IGZyb20gJy4uL2RvbWFpbic7XG5pbXBvcnQge1xuICBGQ3JlYXRlTm9kZUV2ZW50LFxuICBGRXh0ZXJuYWxJdGVtRmluYWxpemVSZXF1ZXN0LFxuICBGRXh0ZXJuYWxJdGVtUHJlcGFyYXRpb25SZXF1ZXN0LFxuICBQcmV2ZW50RGVmYXVsdElzRXh0ZXJuYWxJdGVtUmVxdWVzdCxcbn0gZnJvbSAnLi4vZi1leHRlcm5hbC1pdGVtJztcbmltcG9ydCB7IEZTaW5nbGVTZWxlY3RSZXF1ZXN0IH0gZnJvbSAnLi9mLXNpbmdsZS1zZWxlY3QnO1xuaW1wb3J0IHsgTm9kZVJlc2l6ZUZpbmFsaXplUmVxdWVzdCwgTm9kZVJlc2l6ZVByZXBhcmF0aW9uUmVxdWVzdCB9IGZyb20gJy4vZi1ub2RlLXJlc2l6ZSc7XG5pbXBvcnQge1xuICBGX0FGVEVSX01BSU5fUExVR0lOLFxuICBGX0JFRk9SRV9NQUlOX1BMVUdJTixcbiAgSUZEcmFnQW5kRHJvcFBsdWdpbixcbn0gZnJvbSAnLi9pLWYtZHJhZy1hbmQtZHJvcC1wbHVnaW4nO1xuaW1wb3J0IHsgQnJvd3NlclNlcnZpY2UsIEVPcGVyYXRpb25TeXN0ZW0sIFBsYXRmb3JtU2VydmljZSB9IGZyb20gJ0Bmb2JsZXgvcGxhdGZvcm0nO1xuaW1wb3J0IHsgRkRyYWdTdGFydGVkRXZlbnQsIEZOb2RlSW50ZXJzZWN0ZWRXaXRoQ29ubmVjdGlvbnMgfSBmcm9tICcuL2RvbWFpbic7XG5pbXBvcnQgeyBGRHJhZ0hhbmRsZXJSZXN1bHQgfSBmcm9tICcuL2YtZHJhZy1oYW5kbGVyJztcbmltcG9ydCB7XG4gIEZEcm9wVG9Hcm91cEV2ZW50LFxuICBEcm9wVG9Hcm91cEZpbmFsaXplUmVxdWVzdCxcbiAgRHJvcFRvR3JvdXBQcmVwYXJhdGlvblJlcXVlc3QsXG59IGZyb20gJy4vZi1kcm9wLXRvLWdyb3VwJztcbmltcG9ydCB7IEZOb2RlUm90YXRlRmluYWxpemVSZXF1ZXN0LCBGTm9kZVJvdGF0ZVByZXBhcmF0aW9uUmVxdWVzdCB9IGZyb20gJy4vZi1ub2RlLXJvdGF0ZSc7XG5pbXBvcnQgeyBJUG9pbnRlckV2ZW50IH0gZnJvbSAnLi4vZHJhZy10b29sa2l0JztcbmltcG9ydCB7IGlzRHJhZ0Jsb2NrZXIgfSBmcm9tICcuL2lzLWRyYWctYmxvY2tlcic7XG5cbi8vIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkFxuLy8g4pSCICAgICAgICBBbmd1bGFyIFJlYWxtICAgICAgICAg4pSCXG4vLyDilIIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilIJcbi8vIOKUgiAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQICDilIJcbi8vIOKUgiAg4pSCICBGRHJhZ2dhYmxlRGlyZWN0aXZlICAg4pSCICDilIJcbi8vIOKUgiAg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSs4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYICDilIJcbi8vIOKUgiAgICAgICAgICAgICDilIIgZXh0ZW5kcyAgICAgICAg4pSCXG4vLyDilIIgIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKWvOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkCAg4pSCXG4vLyDilIIgIOKUgiAgICAgRkRyYWdnYWJsZUJhc2UgICAgIOKUgiAg4pSCXG4vLyDilIIgIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUrOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmCAg4pSCXG4vLyDilIIgICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAgIOKUglxuLy8g4pSCICAgICAgICAgICAgIOKUgiBvdmVycmlkZXMgICAgICDilIJcbi8vIOKUgiAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pa84pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQICDilIJcbi8vIOKUgiAg4pSCICAgRHJhZ0FuZERyb3BCYXNlICAgICAg4pSCICDilIJcbi8vIOKUgiAg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSs4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYICDilIJcbi8vIOKUgiAgICAgICAgICAgICDilIIgICAgICAgICAgICAgICAg4pSCXG4vLyDilIIgICAgICBzdWJzY3JpYmVzIHRvICAgICAgICAgICDilIJcbi8vIOKUgiAgICAgICAgICAgICDilIIgICAgICAgICAgICAgICAg4pSCXG4vLyDilIIgICAgICAgIOKUjOKUgOKUgOKUgOKUgOKWvOKUgOKUgOKUgOKUgOKUkCAgICAgICAgICAg4pSCXG4vLyDilIIgICAgICAgIOKUgiBEb2N1bWVudOKUgiAgICAgICAgICAg4pSCXG4vLyDilIIgICAgICAgIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmCAgICAgICAgICAg4pSCXG4vLyDilIIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilIJcbi8vIOKUgiAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQICDilIJcbi8vIOKUgiAg4pSCICAgICAgIEZNZWRpYXRvciAgICAgICAg4pSC4peE4pSA4pSs4pSA4pSA4pSA4pSA4pSQXG4vLyDilIIgIOKUlOKUgOKUgOKUgOKUgOKUgOKUrOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUrOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmCAg4pSCICAgIOKUglxuLy8g4pSCICAgICAgICDilIIgICAgICAgIOKUgiAgICAgICAgICAgIOKUgiAgICDilIJcbi8vIOKUgiAgIGV4ZWN1dGVzICAgZXhlY3V0ZXMgICAgICAgIOKUgiAgICDilIJcbi8vIOKUgiAgIEYqUmVxdWVzdCAgIEYqRXZlbnQgICAgICAgIOKUgiAgICDilIJcbi8vIOKUgiAgICAgICAg4pSCICAgICAgICDilIIgICAgICAgICAgICDilIIgICAg4pSCXG4vLyDilJTilIDilIDilIDilIDilIDilIDilIDilIDilLTilIDilIDilIDilIDilIDilIDilIDilIDilLTilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilLTilIDilIDilIDilIDilJhcbi8vXG4vL1xuLy8g4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQXG4vLyDilIIgICAgICAgRHJhZyAmIERyb3AgUnVudGltZSBMYXllciAgICAgIOKUglxuLy8g4pSCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilIJcbi8vIOKUgiAgRXZlbnRzIGZyb20gRE9NOiAgICAgICAgICAgICAgICAgICAg4pSCXG4vLyDilIIgICAgLSBtb3VzZWRvd24gLyB0b3VjaHN0YXJ0ICAgICAgICAgIOKUglxuLy8g4pSCICAgIC0gbW91c2Vtb3ZlIC8gdG91Y2htb3ZlICAgICAgICAgICDilIJcbi8vIOKUgiAgICAtIHBvaW50ZXJ1cCAgICAgICAgICAgICAgICAgICAgICAg4pSCXG4vLyDilIIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKUglxuLy8g4pSCICDihpMgUm91dGVkIHRvICAgICAgICAgICAgICAgICAgICAgICAgIOKUglxuLy8g4pSCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilIJcbi8vIOKUgiAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQICAgIOKUglxuLy8g4pSCICDilIIgICAgIERyYWdBbmREcm9wQmFzZSAgICAgICAgICDilIIgICAg4pSCXG4vLyDilIIgIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmCAgICDilIJcbi8vIOKUgiAgICAgICAg4payICAgICAgICAgICAgIOKWsiAgICAgICAgICAgICAgIOKUglxuLy8g4pSCICAgICAgICDilIIgICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAg4pSCXG4vLyDilIIgICBjaGVja0RyYWcgICAgIG9uUG9pbnRlck1vdmUgICAgICAgIOKUglxuLy8g4pSCICAgU2VxdWVuY2UgICAgICArIEZpbmFsaXphdGlvbiAgICAgICDilIJcbi8vIOKUgiAgIFRvIFN0YXJ0ICAgICAgICAgICAgICAgICAgICAgICAgICAg4pSCXG4vLyDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJhcbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ2YtZmxvd1tmRHJhZ2dhYmxlXScsXG4gIGV4cG9ydEFzOiAnZkRyYWdnYWJsZScsXG4gIHByb3ZpZGVyczogW0ZEcmFnSGFuZGxlclJlc3VsdF0sXG59KVxuZXhwb3J0IGNsYXNzIEZEcmFnZ2FibGVEaXJlY3RpdmVcbiAgZXh0ZW5kcyBGRHJhZ2dhYmxlQmFzZVxuICBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95XG57XG4gIHByaXZhdGUgcmVhZG9ubHkgX3Jlc3VsdCA9IGluamVjdChGRHJhZ0hhbmRsZXJSZXN1bHQpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9tZWRpYXRvciA9IGluamVjdChGTWVkaWF0b3IpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9wbGF0Zm9ybSA9IGluamVjdChQbGF0Zm9ybVNlcnZpY2UpO1xuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSwgYWxpYXM6ICdmRHJhZ2dhYmxlRGlzYWJsZWQnIH0pXG4gIHB1YmxpYyBvdmVycmlkZSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmTXVsdGlTZWxlY3RUcmlnZ2VyOiBGRXZlbnRUcmlnZ2VyID0gKGV2ZW50OiBGVHJpZ2dlckV2ZW50KSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuX3BsYXRmb3JtLmdldE9TKCkgPT09IEVPcGVyYXRpb25TeXN0ZW0uTUFDX09TID8gZXZlbnQubWV0YUtleSA6IGV2ZW50LmN0cmxLZXk7XG4gIH07XG5cbiAgQElucHV0KClcbiAgcHVibGljIGZSZWFzc2lnbkNvbm5lY3Rpb25UcmlnZ2VyOiBGRXZlbnRUcmlnZ2VyID0gZGVmYXVsdEV2ZW50VHJpZ2dlcjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZkNyZWF0ZUNvbm5lY3Rpb25UcmlnZ2VyOiBGRXZlbnRUcmlnZ2VyID0gZGVmYXVsdEV2ZW50VHJpZ2dlcjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZk5vZGVSZXNpemVUcmlnZ2VyOiBGRXZlbnRUcmlnZ2VyID0gZGVmYXVsdEV2ZW50VHJpZ2dlcjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZk5vZGVSb3RhdGVUcmlnZ2VyOiBGRXZlbnRUcmlnZ2VyID0gZGVmYXVsdEV2ZW50VHJpZ2dlcjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZk5vZGVNb3ZlVHJpZ2dlcjogRkV2ZW50VHJpZ2dlciA9IGRlZmF1bHRFdmVudFRyaWdnZXI7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGZDYW52YXNNb3ZlVHJpZ2dlcjogRkV2ZW50VHJpZ2dlciA9IGRlZmF1bHRFdmVudFRyaWdnZXI7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGZFeHRlcm5hbEl0ZW1UcmlnZ2VyOiBGRXZlbnRUcmlnZ2VyID0gZGVmYXVsdEV2ZW50VHJpZ2dlcjtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGZTZWxlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEZTZWxlY3Rpb25DaGFuZ2VFdmVudD4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGZOb2RlSW50ZXJzZWN0ZWRXaXRoQ29ubmVjdGlvbnMgPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8Rk5vZGVJbnRlcnNlY3RlZFdpdGhDb25uZWN0aW9ucz4oKTtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgcHVibGljIG92ZXJyaWRlIGZFbWl0T25Ob2RlSW50ZXJzZWN0OiBib29sZWFuID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBmQ3JlYXRlTm9kZSA9IG5ldyBFdmVudEVtaXR0ZXI8RkNyZWF0ZU5vZGVFdmVudD4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGZNb3ZlTm9kZXMgPSBuZXcgRXZlbnRFbWl0dGVyPEZNb3ZlTm9kZXNFdmVudD4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGZSZWFzc2lnbkNvbm5lY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPEZSZWFzc2lnbkNvbm5lY3Rpb25FdmVudD4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGZDcmVhdGVDb25uZWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxGQ3JlYXRlQ29ubmVjdGlvbkV2ZW50PigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgb3ZlcnJpZGUgZkRyb3BUb0dyb3VwID0gbmV3IEV2ZW50RW1pdHRlcjxGRHJvcFRvR3JvdXBFdmVudD4oKTtcblxuICAvKipcbiAgICogRGVmaW5lcyB0aGUgdmVydGljYWwgY2VsbCBzaXplIGZvciB0aGUgZ3JpZC5cbiAgICogVGhpcyB2YWx1ZSBpcyB1c2VkIHRvIHNuYXAgbm9kZXMgdG8gYSB2ZXJ0aWNhbCBncmlkIHdoaWxlIGRyYWdnaW5nLlxuICAgKiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBgMWAsIHdoaWNoIG1lYW5zIHRoYXQgbm9kZXMgd2lsbCBzbmFwIHRvIGV2ZXJ5IHBpeGVsIHZlcnRpY2FsbHkuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgdkNlbGxTaXplID0gaW5wdXQoMSwge1xuICAgIHRyYW5zZm9ybTogKHZhbHVlOiB1bmtub3duKSA9PiBudW1iZXJBdHRyaWJ1dGUodmFsdWUsIDEpLFxuICB9KTtcblxuICAvKipcbiAgICogRGVmaW5lcyB0aGUgaG9yaXpvbnRhbCBjZWxsIHNpemUgZm9yIHRoZSBncmlkLlxuICAgKiBUaGlzIHZhbHVlIGlzIHVzZWQgdG8gc25hcCBub2RlcyB0byBhIGhvcml6b250YWwgZ3JpZCB3aGlsZSBkcmFnZ2luZy5cbiAgICogVGhlIGRlZmF1bHQgdmFsdWUgaXMgYDFgLCB3aGljaCBtZWFucyB0aGF0IG5vZGVzIHdpbGwgc25hcCB0byBldmVyeSBwaXhlbCBob3Jpem9udGFsbHkuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgaENlbGxTaXplID0gaW5wdXQoMSwge1xuICAgIHRyYW5zZm9ybTogKHZhbHVlOiB1bmtub3duKSA9PiBudW1iZXJBdHRyaWJ1dGUodmFsdWUsIDEpLFxuICB9KTtcblxuICAvKipcbiAgICogRGVmaW5lcyB3aGV0aGVyIHRoZSBjZWxsIHNpemUgc2hvdWxkIGJlIGFwcGxpZWQgd2hpbGUgZHJhZ2dpbmcuXG4gICAqIElmIHNldCB0byBgdHJ1ZWAsIHRoZSBkcmFnZ2VkIG5vZGVzIHdpbGwgc25hcCB0byB0aGUgZ3JpZCBkZWZpbmVkIGJ5IGB2Q2VsbFNpemVgIGFuZCBgaENlbGxTaXplYC5cbiAgICogSWYgc2V0IHRvIGBmYWxzZWAsIHRoZSBub2RlcyB3aWxsIG1vdmUgZnJlZWx5IHdpdGhvdXQgc25hcHBpbmcgdG8gdGhlIGdyaWQuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgZkNlbGxTaXplV2hpbGVEcmFnZ2luZyA9IGlucHV0KGZhbHNlLCB7XG4gICAgdHJhbnNmb3JtOiAodmFsdWU6IHVua25vd24pID0+IGJvb2xlYW5BdHRyaWJ1dGUodmFsdWUpLFxuICB9KTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGZEcmFnU3RhcnRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RkRyYWdTdGFydGVkRXZlbnQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBmRHJhZ0VuZGVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oRl9CRUZPUkVfTUFJTl9QTFVHSU4sIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgcHJpdmF0ZSBfYmVmb3JlUGx1Z2lucyE6IFF1ZXJ5TGlzdDxJRkRyYWdBbmREcm9wUGx1Z2luPjtcblxuICBAQ29udGVudENoaWxkcmVuKEZfQUZURVJfTUFJTl9QTFVHSU4sIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgcHJpdmF0ZSBfYWZ0ZXJQbHVnaW5zITogUXVlcnlMaXN0PElGRHJhZ0FuZERyb3BQbHVnaW4+O1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlPHZvaWQ+KG5ldyBBZGREbmRUb1N0b3JlUmVxdWVzdCh0aGlzKSk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHN1cGVyLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIG9uUG9pbnRlckRvd24oZXZlbnQ6IElQb2ludGVyRXZlbnQpOiBib29sZWFuIHtcbiAgICBpZiAoaXNEcmFnQmxvY2tlcihldmVudC50YXJnZXRFbGVtZW50KSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHRoaXMuX3Jlc3VsdC5jbGVhcigpO1xuXG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZTx2b2lkPihuZXcgSW5pdGlhbGl6ZURyYWdTZXF1ZW5jZVJlcXVlc3QoKSk7XG5cbiAgICB0aGlzLl9iZWZvcmVQbHVnaW5zLmZvckVhY2goKHApID0+IHAub25Qb2ludGVyRG93bj8uKGV2ZW50KSk7XG5cbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlPHZvaWQ+KG5ldyBGU2luZ2xlU2VsZWN0UmVxdWVzdChldmVudCwgdGhpcy5mTXVsdGlTZWxlY3RUcmlnZ2VyKSk7XG5cbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlPHZvaWQ+KFxuICAgICAgbmV3IEZSZWFzc2lnbkNvbm5lY3Rpb25QcmVwYXJhdGlvblJlcXVlc3QoZXZlbnQsIHRoaXMuZlJlYXNzaWduQ29ubmVjdGlvblRyaWdnZXIpLFxuICAgICk7XG5cbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlPHZvaWQ+KFxuICAgICAgbmV3IENyZWF0ZUNvbm5lY3Rpb25QcmVwYXJhdGlvblJlcXVlc3QoZXZlbnQsIHRoaXMuZkNyZWF0ZUNvbm5lY3Rpb25UcmlnZ2VyKSxcbiAgICApO1xuXG4gICAgdGhpcy5fYWZ0ZXJQbHVnaW5zLmZvckVhY2goKHApID0+IHAub25Qb2ludGVyRG93bj8uKGV2ZW50KSk7XG5cbiAgICBjb25zdCBpc01vdXNlTGVmdE9yVG91Y2ggPSBldmVudC5pc01vdXNlTGVmdEJ1dHRvbigpO1xuICAgIGlmICghaXNNb3VzZUxlZnRPclRvdWNoKSB7XG4gICAgICB0aGlzLmZpbmFsaXplRHJhZ1NlcXVlbmNlKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGlzTW91c2VMZWZ0T3JUb3VjaDtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBwcmVwYXJlRHJhZ1NlcXVlbmNlKGV2ZW50OiBJUG9pbnRlckV2ZW50KSB7XG4gICAgdGhpcy5fYmVmb3JlUGx1Z2lucy5mb3JFYWNoKChwKSA9PiBwLnByZXBhcmVEcmFnU2VxdWVuY2U/LihldmVudCkpO1xuXG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZTx2b2lkPihuZXcgTm9kZVJlc2l6ZVByZXBhcmF0aW9uUmVxdWVzdChldmVudCwgdGhpcy5mTm9kZVJlc2l6ZVRyaWdnZXIpKTtcblxuICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8dm9pZD4obmV3IEZOb2RlUm90YXRlUHJlcGFyYXRpb25SZXF1ZXN0KGV2ZW50LCB0aGlzLmZOb2RlUm90YXRlVHJpZ2dlcikpO1xuXG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZTx2b2lkPihuZXcgRk5vZGVNb3ZlUHJlcGFyYXRpb25SZXF1ZXN0KGV2ZW50LCB0aGlzLmZOb2RlTW92ZVRyaWdnZXIpKTtcblxuICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8dm9pZD4oXG4gICAgICBuZXcgRkV4dGVybmFsSXRlbVByZXBhcmF0aW9uUmVxdWVzdChldmVudCwgdGhpcy5mRXh0ZXJuYWxJdGVtVHJpZ2dlciksXG4gICAgKTtcblxuICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8dm9pZD4obmV3IERyb3BUb0dyb3VwUHJlcGFyYXRpb25SZXF1ZXN0KGV2ZW50KSk7XG5cbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlPHZvaWQ+KG5ldyBGQ2FudmFzTW92ZVByZXBhcmF0aW9uUmVxdWVzdChldmVudCwgdGhpcy5mQ2FudmFzTW92ZVRyaWdnZXIpKTtcblxuICAgIHRoaXMuX2FmdGVyUGx1Z2lucy5mb3JFYWNoKChwKSA9PiBwLnByZXBhcmVEcmFnU2VxdWVuY2U/LihldmVudCkpO1xuXG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZTx2b2lkPihuZXcgUHJlcGFyZURyYWdTZXF1ZW5jZVJlcXVlc3QoKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgb25TZWxlY3QoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZTx2b2lkPihuZXcgUHJldmVudERlZmF1bHRJc0V4dGVybmFsSXRlbVJlcXVlc3QoZXZlbnQpKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBvblBvaW50ZXJNb3ZlKGV2ZW50OiBJUG9pbnRlckV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZTx2b2lkPihuZXcgT25Qb2ludGVyTW92ZVJlcXVlc3QoZXZlbnQpKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBvblBvaW50ZXJVcChldmVudDogSVBvaW50ZXJFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuX2JlZm9yZVBsdWdpbnMuZm9yRWFjaCgoeCkgPT4geC5vblBvaW50ZXJVcD8uKGV2ZW50KSk7XG5cbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlPHZvaWQ+KG5ldyBGUmVhc3NpZ25Db25uZWN0aW9uRmluYWxpemVSZXF1ZXN0KGV2ZW50KSk7XG5cbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlPHZvaWQ+KG5ldyBGQ3JlYXRlQ29ubmVjdGlvbkZpbmFsaXplUmVxdWVzdChldmVudCkpO1xuXG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZTx2b2lkPihuZXcgTm9kZVJlc2l6ZUZpbmFsaXplUmVxdWVzdChldmVudCkpO1xuXG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZTx2b2lkPihuZXcgRk5vZGVSb3RhdGVGaW5hbGl6ZVJlcXVlc3QoZXZlbnQpKTtcblxuICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8dm9pZD4obmV3IEZOb2RlTW92ZUZpbmFsaXplUmVxdWVzdChldmVudCkpO1xuXG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZTx2b2lkPihuZXcgRkV4dGVybmFsSXRlbUZpbmFsaXplUmVxdWVzdChldmVudCkpO1xuXG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZTx2b2lkPihuZXcgRHJvcFRvR3JvdXBGaW5hbGl6ZVJlcXVlc3QoZXZlbnQpKTtcblxuICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8dm9pZD4obmV3IEZDYW52YXNNb3ZlRmluYWxpemVSZXF1ZXN0KGV2ZW50KSk7XG5cbiAgICB0aGlzLl9hZnRlclBsdWdpbnMuZm9yRWFjaCgoeCkgPT4geC5vblBvaW50ZXJVcD8uKGV2ZW50KSk7XG5cbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlPHZvaWQ+KG5ldyBFbmREcmFnU2VxdWVuY2VSZXF1ZXN0KCkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpbmFsaXplRHJhZ1NlcXVlbmNlKCk6IHZvaWQge1xuICAgIERyYWdSZWN0Q2FjaGUuaW52YWxpZGF0ZUFsbCgpO1xuICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8dm9pZD4obmV3IEVtaXRTZWxlY3Rpb25DaGFuZ2VFdmVudFJlcXVlc3QoKSk7XG5cbiAgICB0aGlzLl9yZXN1bHQuY2xlYXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlPHZvaWQ+KG5ldyBSZW1vdmVEbmRGcm9tU3RvcmVSZXF1ZXN0KCkpO1xuICAgIHN1cGVyLnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiJdfQ==
250
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1kcmFnZ2FibGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9mLWRyYWdnYWJsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLEtBQUssRUFDTCxlQUFlLEVBR2YsTUFBTSxFQUNOLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUVMLHdCQUF3QixFQUN4QiwwQkFBMEIsR0FDM0IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLDBCQUEwQixFQUFFLDZCQUE2QixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3ZGLE9BQU8sRUFDTCxrQ0FBa0MsRUFFbEMsZ0NBQWdDLEVBRWhDLGtDQUFrQyxFQUNsQyxxQ0FBcUMsRUFDckMscUNBQXFDLEVBQ3JDLHdDQUF3QyxHQUN6QyxNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3QyxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLG1CQUFtQixFQUNuQixhQUFhLEVBQ2IsK0JBQStCLEVBQy9CLHNCQUFzQixFQUd0Qiw2QkFBNkIsRUFDN0Isb0JBQW9CLEVBQ3BCLDBCQUEwQixFQUMxQix5QkFBeUIsR0FDMUIsTUFBTSxXQUFXLENBQUM7QUFDbkIsT0FBTyxFQUVMLDRCQUE0QixFQUM1QiwrQkFBK0IsRUFDL0IsbUNBQW1DLEdBQ3BDLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHlCQUF5QixFQUFF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ZnRlclZpZXdJbml0LFxuICBib29sZWFuQXR0cmlidXRlLFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIERpcmVjdGl2ZSxcbiAgRXZlbnRFbWl0dGVyLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBJbnB1dCxcbiAgbnVtYmVyQXR0cmlidXRlLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgb3V0cHV0LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGRHJhZ2dhYmxlQmFzZSB9IGZyb20gJy4vZi1kcmFnZ2FibGUtYmFzZSc7XG5pbXBvcnQge1xuICBGTW92ZU5vZGVzRXZlbnQsXG4gIEZOb2RlTW92ZUZpbmFsaXplUmVxdWVzdCxcbiAgTW92ZU5vZGVQcmVwYXJhdGlvblJlcXVlc3QsXG59IGZyb20gJy4vZi1ub2RlLW1vdmUnO1xuaW1wb3J0IHsgRkNhbnZhc01vdmVGaW5hbGl6ZVJlcXVlc3QsIEZDYW52YXNNb3ZlUHJlcGFyYXRpb25SZXF1ZXN0IH0gZnJvbSAnLi9mLWNhbnZhcyc7XG5pbXBvcnQge1xuICBDcmVhdGVDb25uZWN0aW9uUHJlcGFyYXRpb25SZXF1ZXN0LFxuICBGQ3JlYXRlQ29ubmVjdGlvbkV2ZW50LFxuICBGQ3JlYXRlQ29ubmVjdGlvbkZpbmFsaXplUmVxdWVzdCxcbiAgRlJlYXNzaWduQ29ubmVjdGlvbkV2ZW50LFxuICBGUmVhc3NpZ25Db25uZWN0aW9uRmluYWxpemVSZXF1ZXN0LFxuICBGUmVhc3NpZ25Db25uZWN0aW9uUHJlcGFyYXRpb25SZXF1ZXN0LFxuICBNb3ZlQ29ubmVjdGlvbldheXBvaW50RmluYWxpemVSZXF1ZXN0LFxuICBNb3ZlQ29ubmVjdGlvbldheXBvaW50UHJlcGFyYXRpb25SZXF1ZXN0LFxufSBmcm9tICcuL2YtY29ubmVjdGlvbic7XG5pbXBvcnQgeyBGU2VsZWN0aW9uQ2hhbmdlRXZlbnQgfSBmcm9tICcuL2Ytc2VsZWN0aW9uLWNoYW5nZS1ldmVudCc7XG5pbXBvcnQgeyBGTWVkaWF0b3IgfSBmcm9tICdAZm9ibGV4L21lZGlhdG9yJztcbmltcG9ydCB7XG4gIEFkZERuZFRvU3RvcmVSZXF1ZXN0LFxuICBkZWZhdWx0RXZlbnRUcmlnZ2VyLFxuICBEcmFnUmVjdENhY2hlLFxuICBFbWl0U2VsZWN0aW9uQ2hhbmdlRXZlbnRSZXF1ZXN0LFxuICBFbmREcmFnU2VxdWVuY2VSZXF1ZXN0LFxuICBGRXZlbnRUcmlnZ2VyLFxuICBGVHJpZ2dlckV2ZW50LFxuICBJbml0aWFsaXplRHJhZ1NlcXVlbmNlUmVxdWVzdCxcbiAgT25Qb2ludGVyTW92ZVJlcXVlc3QsXG4gIFByZXBhcmVEcmFnU2VxdWVuY2VSZXF1ZXN0LFxuICBSZW1vdmVEbmRGcm9tU3RvcmVSZXF1ZXN0LFxufSBmcm9tICcuLi9kb21haW4nO1xuaW1wb3J0IHtcbiAgRkNyZWF0ZU5vZGVFdmVudCxcbiAgRkV4dGVybmFsSXRlbUZpbmFsaXplUmVxdWVzdCxcbiAgRkV4dGVybmFsSXRlbVByZXBhcmF0aW9uUmVxdWVzdCxcbiAgUHJldmVudERlZmF1bHRJc0V4dGVybmFsSXRlbVJlcXVlc3QsXG59IGZyb20gJy4uL2YtZXh0ZXJuYWwtaXRlbSc7XG5pbXBvcnQgeyBTaW5nbGVTZWxlY3RSZXF1ZXN0IH0gZnJvbSAnLi9zaW5nbGUtc2VsZWN0JztcbmltcG9ydCB7IE5vZGVSZXNpemVGaW5hbGl6ZVJlcXVlc3QsIE5vZGVSZXNpemVQcmVwYXJhdGlvblJlcXVlc3QgfSBmcm9tICcuL2Ytbm9kZS1yZXNpemUnO1xuaW1wb3J0IHtcbiAgRl9BRlRFUl9NQUlOX1BMVUdJTixcbiAgRl9CRUZPUkVfTUFJTl9QTFVHSU4sXG4gIElGRHJhZ0FuZERyb3BQbHVnaW4sXG59IGZyb20gJy4vaS1mLWRyYWctYW5kLWRyb3AtcGx1Z2luJztcbmltcG9ydCB7IEVPcGVyYXRpb25TeXN0ZW0sIFBsYXRmb3JtU2VydmljZSB9IGZyb20gJ0Bmb2JsZXgvcGxhdGZvcm0nO1xuaW1wb3J0IHsgRkRyYWdTdGFydGVkRXZlbnQsIEZOb2RlSW50ZXJzZWN0ZWRXaXRoQ29ubmVjdGlvbnMgfSBmcm9tICcuL2RvbWFpbic7XG5pbXBvcnQgeyBGRHJhZ0hhbmRsZXJSZXN1bHQgfSBmcm9tICcuL2YtZHJhZy1oYW5kbGVyJztcbmltcG9ydCB7XG4gIERyb3BUb0dyb3VwRmluYWxpemVSZXF1ZXN0LFxuICBEcm9wVG9Hcm91cFByZXBhcmF0aW9uUmVxdWVzdCxcbiAgRkRyb3BUb0dyb3VwRXZlbnQsXG59IGZyb20gJy4vZi1kcm9wLXRvLWdyb3VwJztcbmltcG9ydCB7IEZOb2RlUm90YXRlRmluYWxpemVSZXF1ZXN0LCBGTm9kZVJvdGF0ZVByZXBhcmF0aW9uUmVxdWVzdCB9IGZyb20gJy4vZi1ub2RlLXJvdGF0ZSc7XG5pbXBvcnQgeyBJUG9pbnRlckV2ZW50IH0gZnJvbSAnLi4vZHJhZy10b29sa2l0JztcbmltcG9ydCB7IGlzRHJhZ0Jsb2NrZXIgfSBmcm9tICcuL2lzLWRyYWctYmxvY2tlcic7XG5pbXBvcnQgeyBQaW5jaFRvWm9vbUZpbmFsaXplUmVxdWVzdCwgUGluY2hUb1pvb21QcmVwYXJhdGlvblJlcXVlc3QgfSBmcm9tICcuL3BpbmNoLXRvLXpvb20nO1xuaW1wb3J0IHsgRkNvbm5lY3Rpb25XYXlwb2ludHNDaGFuZ2VkRXZlbnQgfSBmcm9tICcuLi9mLWNvbm5lY3Rpb24tdjInO1xuXG4vLyDilIzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJBcbi8vIOKUgiAgICAgICAgQW5ndWxhciBSZWFsbSAgICAgICAgIOKUglxuLy8g4pSCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pSCXG4vLyDilIIgIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkCAg4pSCXG4vLyDilIIgIOKUgiAgRkRyYWdnYWJsZURpcmVjdGl2ZSAgIOKUgiAg4pSCXG4vLyDilIIgIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUrOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmCAg4pSCXG4vLyDilIIgICAgICAgICAgICAg4pSCIGV4dGVuZHMgICAgICAgIOKUglxuLy8g4pSCICDilIzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilrzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJAgIOKUglxuLy8g4pSCICDilIIgICAgIEZEcmFnZ2FibGVCYXNlICAgICDilIIgIOKUglxuLy8g4pSCICDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilKzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJggIOKUglxuLy8g4pSCICAgICAgICAgICAgIOKUgiAgICAgICAgICAgICAgICDilIJcbi8vIOKUgiAgICAgICAgICAgICDilIIgb3ZlcnJpZGVzICAgICAg4pSCXG4vLyDilIIgIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKWvOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkCAg4pSCXG4vLyDilIIgIOKUgiAgIERyYWdBbmREcm9wQmFzZSAgICAgIOKUgiAg4pSCXG4vLyDilIIgIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUrOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmCAg4pSCXG4vLyDilIIgICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAgIOKUglxuLy8g4pSCICAgICAgc3Vic2NyaWJlcyB0byAgICAgICAgICAg4pSCXG4vLyDilIIgICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAgIOKUglxuLy8g4pSCICAgICAgICDilIzilIDilIDilIDilIDilrzilIDilIDilIDilIDilJAgICAgICAgICAgIOKUglxuLy8g4pSCICAgICAgICDilIIgRG9jdW1lbnTilIIgICAgICAgICAgIOKUglxuLy8g4pSCICAgICAgICDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDilJggICAgICAgICAgIOKUglxuLy8g4pSCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pSCXG4vLyDilIIgIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkCAg4pSCXG4vLyDilIIgIOKUgiAgICAgICBGTWVkaWF0b3IgICAgICAgIOKUguKXhOKUgOKUrOKUgOKUgOKUgOKUgOKUkFxuLy8g4pSCICDilJTilIDilIDilIDilIDilIDilKzilIDilIDilIDilIDilIDilIDilIDilIDilKzilIDilIDilIDilIDilIDilIDilIDilIDilIDilJggIOKUgiAgICDilIJcbi8vIOKUgiAgICAgICAg4pSCICAgICAgICDilIIgICAgICAgICAgICDilIIgICAg4pSCXG4vLyDilIIgICBleGVjdXRlcyAgIGV4ZWN1dGVzICAgICAgICDilIIgICAg4pSCXG4vLyDilIIgICBGKlJlcXVlc3QgICBGKkV2ZW50ICAgICAgICDilIIgICAg4pSCXG4vLyDilIIgICAgICAgIOKUgiAgICAgICAg4pSCICAgICAgICAgICAg4pSCICAgIOKUglxuLy8g4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pS04pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pS04pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pS04pSA4pSA4pSA4pSA4pSYXG4vL1xuLy9cbi8vIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkFxuLy8g4pSCICAgICAgIERyYWcgJiBEcm9wIFJ1bnRpbWUgTGF5ZXIgICAgICDilIJcbi8vIOKUgiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pSCXG4vLyDilIIgIEV2ZW50cyBmcm9tIERPTTogICAgICAgICAgICAgICAgICAgIOKUglxuLy8g4pSCICAgIC0gbW91c2Vkb3duIC8gdG91Y2hzdGFydCAgICAgICAgICDilIJcbi8vIOKUgiAgICAtIG1vdXNlbW92ZSAvIHRvdWNobW92ZSAgICAgICAgICAg4pSCXG4vLyDilIIgICAgLSBwb2ludGVydXAgICAgICAgICAgICAgICAgICAgICAgIOKUglxuLy8g4pSCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilIJcbi8vIOKUgiAg4oaTIFJvdXRlZCB0byAgICAgICAgICAgICAgICAgICAgICAgICDilIJcbi8vIOKUgiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pSCXG4vLyDilIIgIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkCAgICDilIJcbi8vIOKUgiAg4pSCICAgICBEcmFnQW5kRHJvcEJhc2UgICAgICAgICAg4pSCICAgIOKUglxuLy8g4pSCICDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJggICAg4pSCXG4vLyDilIIgICAgICAgIOKWsiAgICAgICAgICAgICDilrIgICAgICAgICAgICAgICDilIJcbi8vIOKUgiAgICAgICAg4pSCICAgICAgICAgICAgIOKUgiAgICAgICAgICAgICAgIOKUglxuLy8g4pSCICAgY2hlY2tEcmFnICAgICBvblBvaW50ZXJNb3ZlICAgICAgICDilIJcbi8vIOKUgiAgIFNlcXVlbmNlICAgICAgKyBGaW5hbGl6YXRpb24gICAgICAg4pSCXG4vLyDilIIgICBUbyBTdGFydCAgICAgICAgICAgICAgICAgICAgICAgICAgIOKUglxuLy8g4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdmLWZsb3dbZkRyYWdnYWJsZV0nLFxuICBleHBvcnRBczogJ2ZEcmFnZ2FibGUnLFxuICBwcm92aWRlcnM6IFtGRHJhZ0hhbmRsZXJSZXN1bHRdLFxufSlcbmV4cG9ydCBjbGFzcyBGRHJhZ2dhYmxlRGlyZWN0aXZlXG4gIGV4dGVuZHMgRkRyYWdnYWJsZUJhc2VcbiAgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveVxue1xuICBwcml2YXRlIHJlYWRvbmx5IF9yZXN1bHQgPSBpbmplY3QoRkRyYWdIYW5kbGVyUmVzdWx0KTtcbiAgcHJpdmF0ZSByZWFkb25seSBfbWVkaWF0b3IgPSBpbmplY3QoRk1lZGlhdG9yKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfcGxhdGZvcm0gPSBpbmplY3QoUGxhdGZvcm1TZXJ2aWNlKTtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUsIGFsaWFzOiAnZkRyYWdnYWJsZURpc2FibGVkJyB9KVxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZk11bHRpU2VsZWN0VHJpZ2dlcjogRkV2ZW50VHJpZ2dlciA9IChldmVudDogRlRyaWdnZXJFdmVudCkgPT4ge1xuICAgIHJldHVybiB0aGlzLl9wbGF0Zm9ybS5nZXRPUygpID09PSBFT3BlcmF0aW9uU3lzdGVtLk1BQ19PUyA/IGV2ZW50Lm1ldGFLZXkgOiBldmVudC5jdHJsS2V5O1xuICB9O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmUmVhc3NpZ25Db25uZWN0aW9uVHJpZ2dlcjogRkV2ZW50VHJpZ2dlciA9IGRlZmF1bHRFdmVudFRyaWdnZXI7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGZDcmVhdGVDb25uZWN0aW9uVHJpZ2dlcjogRkV2ZW50VHJpZ2dlciA9IGRlZmF1bHRFdmVudFRyaWdnZXI7XG5cbiAgcHVibGljIGZDb25uZWN0aW9uV2F5cG9pbnRzVHJpZ2dlciA9IGlucHV0PEZFdmVudFRyaWdnZXI+KGRlZmF1bHRFdmVudFRyaWdnZXIpO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmTW92ZUNvbnRyb2xQb2ludFRyaWdnZXI6IEZFdmVudFRyaWdnZXIgPSBkZWZhdWx0RXZlbnRUcmlnZ2VyO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmTm9kZVJlc2l6ZVRyaWdnZXI6IEZFdmVudFRyaWdnZXIgPSBkZWZhdWx0RXZlbnRUcmlnZ2VyO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmTm9kZVJvdGF0ZVRyaWdnZXI6IEZFdmVudFRyaWdnZXIgPSBkZWZhdWx0RXZlbnRUcmlnZ2VyO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmTm9kZU1vdmVUcmlnZ2VyOiBGRXZlbnRUcmlnZ2VyID0gZGVmYXVsdEV2ZW50VHJpZ2dlcjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZkNhbnZhc01vdmVUcmlnZ2VyOiBGRXZlbnRUcmlnZ2VyID0gZGVmYXVsdEV2ZW50VHJpZ2dlcjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZkV4dGVybmFsSXRlbVRyaWdnZXI6IEZFdmVudFRyaWdnZXIgPSBkZWZhdWx0RXZlbnRUcmlnZ2VyO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgb3ZlcnJpZGUgZlNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RlNlbGVjdGlvbkNoYW5nZUV2ZW50PigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgb3ZlcnJpZGUgZk5vZGVJbnRlcnNlY3RlZFdpdGhDb25uZWN0aW9ucyA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxGTm9kZUludGVyc2VjdGVkV2l0aENvbm5lY3Rpb25zPigpO1xuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgb3ZlcnJpZGUgZkVtaXRPbk5vZGVJbnRlcnNlY3Q6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGZDcmVhdGVOb2RlID0gbmV3IEV2ZW50RW1pdHRlcjxGQ3JlYXRlTm9kZUV2ZW50PigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgb3ZlcnJpZGUgZk1vdmVOb2RlcyA9IG5ldyBFdmVudEVtaXR0ZXI8Rk1vdmVOb2Rlc0V2ZW50PigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgb3ZlcnJpZGUgZlJlYXNzaWduQ29ubmVjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8RlJlYXNzaWduQ29ubmVjdGlvbkV2ZW50PigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgb3ZlcnJpZGUgZkNyZWF0ZUNvbm5lY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPEZDcmVhdGVDb25uZWN0aW9uRXZlbnQ+KCk7XG5cbiAgcHVibGljIG92ZXJyaWRlIGZDb25uZWN0aW9uV2F5cG9pbnRzQ2hhbmdlZCA9IG91dHB1dDxGQ29ubmVjdGlvbldheXBvaW50c0NoYW5nZWRFdmVudD4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGZEcm9wVG9Hcm91cCA9IG5ldyBFdmVudEVtaXR0ZXI8RkRyb3BUb0dyb3VwRXZlbnQ+KCk7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgdGhlIHZlcnRpY2FsIGNlbGwgc2l6ZSBmb3IgdGhlIGdyaWQuXG4gICAqIFRoaXMgdmFsdWUgaXMgdXNlZCB0byBzbmFwIG5vZGVzIHRvIGEgdmVydGljYWwgZ3JpZCB3aGlsZSBkcmFnZ2luZy5cbiAgICogVGhlIGRlZmF1bHQgdmFsdWUgaXMgYDFgLCB3aGljaCBtZWFucyB0aGF0IG5vZGVzIHdpbGwgc25hcCB0byBldmVyeSBwaXhlbCB2ZXJ0aWNhbGx5LlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIHZDZWxsU2l6ZSA9IGlucHV0KDEsIHtcbiAgICB0cmFuc2Zvcm06ICh2YWx1ZTogdW5rbm93bikgPT4gbnVtYmVyQXR0cmlidXRlKHZhbHVlLCAxKSxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgdGhlIGhvcml6b250YWwgY2VsbCBzaXplIGZvciB0aGUgZ3JpZC5cbiAgICogVGhpcyB2YWx1ZSBpcyB1c2VkIHRvIHNuYXAgbm9kZXMgdG8gYSBob3Jpem9udGFsIGdyaWQgd2hpbGUgZHJhZ2dpbmcuXG4gICAqIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGAxYCwgd2hpY2ggbWVhbnMgdGhhdCBub2RlcyB3aWxsIHNuYXAgdG8gZXZlcnkgcGl4ZWwgaG9yaXpvbnRhbGx5LlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGhDZWxsU2l6ZSA9IGlucHV0KDEsIHtcbiAgICB0cmFuc2Zvcm06ICh2YWx1ZTogdW5rbm93bikgPT4gbnVtYmVyQXR0cmlidXRlKHZhbHVlLCAxKSxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgd2hldGhlciB0aGUgY2VsbCBzaXplIHNob3VsZCBiZSBhcHBsaWVkIHdoaWxlIGRyYWdnaW5nLlxuICAgKiBJZiBzZXQgdG8gYHRydWVgLCB0aGUgZHJhZ2dlZCBub2RlcyB3aWxsIHNuYXAgdG8gdGhlIGdyaWQgZGVmaW5lZCBieSBgdkNlbGxTaXplYCBhbmQgYGhDZWxsU2l6ZWAuXG4gICAqIElmIHNldCB0byBgZmFsc2VgLCB0aGUgbm9kZXMgd2lsbCBtb3ZlIGZyZWVseSB3aXRob3V0IHNuYXBwaW5nIHRvIHRoZSBncmlkLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGZDZWxsU2l6ZVdoaWxlRHJhZ2dpbmcgPSBpbnB1dChmYWxzZSwge1xuICAgIHRyYW5zZm9ybTogKHZhbHVlOiB1bmtub3duKSA9PiBib29sZWFuQXR0cmlidXRlKHZhbHVlKSxcbiAgfSk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBmRHJhZ1N0YXJ0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEZEcmFnU3RhcnRlZEV2ZW50PigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgb3ZlcnJpZGUgZkRyYWdFbmRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAQ29udGVudENoaWxkcmVuKEZfQkVGT1JFX01BSU5fUExVR0lOLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gIHByaXZhdGUgX2JlZm9yZVBsdWdpbnMhOiBRdWVyeUxpc3Q8SUZEcmFnQW5kRHJvcFBsdWdpbj47XG5cbiAgQENvbnRlbnRDaGlsZHJlbihGX0FGVEVSX01BSU5fUExVR0lOLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gIHByaXZhdGUgX2FmdGVyUGx1Z2lucyE6IFF1ZXJ5TGlzdDxJRkRyYWdBbmREcm9wUGx1Z2luPjtcblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZTx2b2lkPihuZXcgQWRkRG5kVG9TdG9yZVJlcXVlc3QodGhpcykpO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBzdXBlci5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBvblBvaW50ZXJEb3duKGV2ZW50OiBJUG9pbnRlckV2ZW50KTogYm9vbGVhbiB7XG4gICAgaWYgKGlzRHJhZ0Jsb2NrZXIoZXZlbnQudGFyZ2V0RWxlbWVudCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICB0aGlzLl9yZXN1bHQuY2xlYXIoKTtcblxuICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8dm9pZD4obmV3IEluaXRpYWxpemVEcmFnU2VxdWVuY2VSZXF1ZXN0KCkpO1xuXG4gICAgdGhpcy5fYmVmb3JlUGx1Z2lucy5mb3JFYWNoKChwKSA9PiBwLm9uUG9pbnRlckRvd24/LihldmVudCkpO1xuXG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZTx2b2lkPihuZXcgUGluY2hUb1pvb21QcmVwYXJhdGlvblJlcXVlc3QoZXZlbnQpKTtcblxuICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8dm9pZD4obmV3IFNpbmdsZVNlbGVjdFJlcXVlc3QoZXZlbnQsIHRoaXMuZk11bHRpU2VsZWN0VHJpZ2dlcikpO1xuXG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZTx2b2lkPihcbiAgICAgIG5ldyBGUmVhc3NpZ25Db25uZWN0aW9uUHJlcGFyYXRpb25SZXF1ZXN0KGV2ZW50LCB0aGlzLmZSZWFzc2lnbkNvbm5lY3Rpb25UcmlnZ2VyKSxcbiAgICApO1xuXG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZTx2b2lkPihcbiAgICAgIG5ldyBDcmVhdGVDb25uZWN0aW9uUHJlcGFyYXRpb25SZXF1ZXN0KGV2ZW50LCB0aGlzLmZDcmVhdGVDb25uZWN0aW9uVHJpZ2dlciksXG4gICAgKTtcblxuICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8dm9pZD4oXG4gICAgICBuZXcgQ3JlYXRlQ29ubmVjdGlvblByZXBhcmF0aW9uUmVxdWVzdChldmVudCwgdGhpcy5mQ3JlYXRlQ29ubmVjdGlvblRyaWdnZXIpLFxuICAgICk7XG5cbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlPHZvaWQ+KFxuICAgICAgbmV3IE1vdmVDb25uZWN0aW9uV2F5cG9pbnRQcmVwYXJhdGlvblJlcXVlc3QoZXZlbnQsIHRoaXMuZkNvbm5lY3Rpb25XYXlwb2ludHNUcmlnZ2VyKCkpLFxuICAgICk7XG5cbiAgICB0aGlzLl9hZnRlclBsdWdpbnMuZm9yRWFjaCgocCkgPT4gcC5vblBvaW50ZXJEb3duPy4oZXZlbnQpKTtcblxuICAgIGNvbnN0IGlzTW91c2VMZWZ0T3JUb3VjaCA9IGV2ZW50LmlzTW91c2VMZWZ0QnV0dG9uKCk7XG4gICAgaWYgKCFpc01vdXNlTGVmdE9yVG91Y2gpIHtcbiAgICAgIHRoaXMuZmluYWxpemVEcmFnU2VxdWVuY2UoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaXNNb3VzZUxlZnRPclRvdWNoO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHByZXBhcmVEcmFnU2VxdWVuY2UoZXZlbnQ6IElQb2ludGVyRXZlbnQpIHtcbiAgICB0aGlzLl9iZWZvcmVQbHVnaW5zLmZvckVhY2goKHApID0+IHAucHJlcGFyZURyYWdTZXF1ZW5jZT8uKGV2ZW50KSk7XG5cbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlPHZvaWQ+KG5ldyBOb2RlUmVzaXplUHJlcGFyYXRpb25SZXF1ZXN0KGV2ZW50LCB0aGlzLmZOb2RlUmVzaXplVHJpZ2dlcikpO1xuXG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZTx2b2lkPihuZXcgRk5vZGVSb3RhdGVQcmVwYXJhdGlvblJlcXVlc3QoZXZlbnQsIHRoaXMuZk5vZGVSb3RhdGVUcmlnZ2VyKSk7XG5cbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlPHZvaWQ+KG5ldyBNb3ZlTm9kZVByZXBhcmF0aW9uUmVxdWVzdChldmVudCwgdGhpcy5mTm9kZU1vdmVUcmlnZ2VyKSk7XG5cbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlPHZvaWQ+KFxuICAgICAgbmV3IEZFeHRlcm5hbEl0ZW1QcmVwYXJhdGlvblJlcXVlc3QoZXZlbnQsIHRoaXMuZkV4dGVybmFsSXRlbVRyaWdnZXIpLFxuICAgICk7XG5cbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlPHZvaWQ+KG5ldyBEcm9wVG9Hcm91cFByZXBhcmF0aW9uUmVxdWVzdChldmVudCkpO1xuXG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZTx2b2lkPihuZXcgRkNhbnZhc01vdmVQcmVwYXJhdGlvblJlcXVlc3QoZXZlbnQsIHRoaXMuZkNhbnZhc01vdmVUcmlnZ2VyKSk7XG5cbiAgICB0aGlzLl9hZnRlclBsdWdpbnMuZm9yRWFjaCgocCkgPT4gcC5wcmVwYXJlRHJhZ1NlcXVlbmNlPy4oZXZlbnQpKTtcblxuICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8dm9pZD4obmV3IFByZXBhcmVEcmFnU2VxdWVuY2VSZXF1ZXN0KCkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIG9uU2VsZWN0KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8dm9pZD4obmV3IFByZXZlbnREZWZhdWx0SXNFeHRlcm5hbEl0ZW1SZXF1ZXN0KGV2ZW50KSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgb25Qb2ludGVyTW92ZShldmVudDogSVBvaW50ZXJFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8dm9pZD4obmV3IE9uUG9pbnRlck1vdmVSZXF1ZXN0KGV2ZW50KSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgb25Qb2ludGVyVXAoZXZlbnQ6IElQb2ludGVyRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLl9iZWZvcmVQbHVnaW5zLmZvckVhY2goKHgpID0+IHgub25Qb2ludGVyVXA/LihldmVudCkpO1xuXG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZTx2b2lkPihuZXcgRlJlYXNzaWduQ29ubmVjdGlvbkZpbmFsaXplUmVxdWVzdChldmVudCkpO1xuXG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZTx2b2lkPihuZXcgRkNyZWF0ZUNvbm5lY3Rpb25GaW5hbGl6ZVJlcXVlc3QoZXZlbnQpKTtcblxuICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8dm9pZD4obmV3IE5vZGVSZXNpemVGaW5hbGl6ZVJlcXVlc3QoZXZlbnQpKTtcblxuICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8dm9pZD4obmV3IEZOb2RlUm90YXRlRmluYWxpemVSZXF1ZXN0KGV2ZW50KSk7XG5cbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlPHZvaWQ+KG5ldyBGTm9kZU1vdmVGaW5hbGl6ZVJlcXVlc3QoZXZlbnQpKTtcblxuICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8dm9pZD4obmV3IEZFeHRlcm5hbEl0ZW1GaW5hbGl6ZVJlcXVlc3QoZXZlbnQpKTtcblxuICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8dm9pZD4obmV3IERyb3BUb0dyb3VwRmluYWxpemVSZXF1ZXN0KGV2ZW50KSk7XG5cbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlPHZvaWQ+KG5ldyBGQ2FudmFzTW92ZUZpbmFsaXplUmVxdWVzdChldmVudCkpO1xuXG4gICAgdGhpcy5fYWZ0ZXJQbHVnaW5zLmZvckVhY2goKHgpID0+IHgub25Qb2ludGVyVXA/LihldmVudCkpO1xuXG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZTx2b2lkPihuZXcgUGluY2hUb1pvb21GaW5hbGl6ZVJlcXVlc3QoZXZlbnQpKTtcblxuICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8dm9pZD4obmV3IE1vdmVDb25uZWN0aW9uV2F5cG9pbnRGaW5hbGl6ZVJlcXVlc3QoZXZlbnQpKTtcblxuICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8dm9pZD4obmV3IEVuZERyYWdTZXF1ZW5jZVJlcXVlc3QoKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmluYWxpemVEcmFnU2VxdWVuY2UoKTogdm9pZCB7XG4gICAgRHJhZ1JlY3RDYWNoZS5pbnZhbGlkYXRlQWxsKCk7XG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZTx2b2lkPihuZXcgRW1pdFNlbGVjdGlvbkNoYW5nZUV2ZW50UmVxdWVzdCgpKTtcblxuICAgIHRoaXMuX3Jlc3VsdC5jbGVhcigpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8dm9pZD4obmV3IFJlbW92ZURuZEZyb21TdG9yZVJlcXVlc3QoKSk7XG4gICAgc3VwZXIudW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIl19
@@ -1,11 +1,13 @@
1
1
  import { PointExtensions, RoundedRect } from '@foblex/2d';
2
2
  import { FMediator } from '@foblex/mediator';
3
- import { CalculateConnectionLineByBehaviorRequest, GetConnectorAndRectRequest, } from '../../../domain';
3
+ import { GetConnectorAndRectRequest } from '../../../domain';
4
4
  import { FComponentsStore } from '../../../f-storage';
5
+ import { ConnectionBehaviourBuilder, ConnectionBehaviourBuilderRequest, } from '../../../f-connection-v2';
5
6
  export class BaseConnectionDragHandler {
6
7
  fConnection;
7
8
  _mediator;
8
9
  _store;
10
+ _connectionBehaviour;
9
11
  _fOutputWithRect;
10
12
  _fInputWithRect;
11
13
  get _fOutput() {
@@ -27,6 +29,7 @@ export class BaseConnectionDragHandler {
27
29
  constructor(_injector, fConnection) {
28
30
  this.fConnection = fConnection;
29
31
  this._mediator = _injector.get(FMediator);
32
+ this._connectionBehaviour = _injector.get(ConnectionBehaviourBuilder);
30
33
  this._store = _injector.get(FComponentsStore);
31
34
  this._initialize();
32
35
  }
@@ -44,7 +47,7 @@ export class BaseConnectionDragHandler {
44
47
  this._redrawConnection(this._recalculateConnection());
45
48
  }
46
49
  _recalculateConnection() {
47
- return this._mediator.execute(new CalculateConnectionLineByBehaviorRequest(RoundedRect.fromRoundedRect(this._fOutputWithRect.fRect).addPoint(this._sourceDifference), RoundedRect.fromRoundedRect(this._fInputWithRect.fRect).addPoint(this._targetDifference), this.fConnection, this._fOutputWithRect.fConnector.fConnectableSide, this._fInputWithRect.fConnector.fConnectableSide));
50
+ return this._connectionBehaviour.handle(new ConnectionBehaviourBuilderRequest(RoundedRect.fromRoundedRect(this._fOutputWithRect.fRect).addPoint(this._sourceDifference), RoundedRect.fromRoundedRect(this._fInputWithRect.fRect).addPoint(this._targetDifference), this.fConnection, this._fOutputWithRect.fConnector.fConnectableSide, this._fInputWithRect.fConnector.fConnectableSide));
48
51
  }
49
52
  _redrawConnection(line) {
50
53
  this.fConnection.setLine(line);
@@ -54,4 +57,4 @@ export class BaseConnectionDragHandler {
54
57
  return `ConnectionDragHandler Error: Connection From (fOutput)${this.fConnection.fOutputId} To (fInput)${this.fConnection.fInputId}. ${message}. Please ensure that all f-connections are associated with existing connectors`;
55
58
  }
56
59
  }
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jb25uZWN0aW9uLmRyYWctaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1kcmFnZ2FibGUvZi1ub2RlLW1vdmUvY29ubmVjdGlvbi1kcmFnLWhhbmRsZXJzL2Jhc2UtY29ubmVjdGlvbi5kcmFnLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixlQUFlLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3QyxPQUFPLEVBQ0wsd0NBQXdDLEVBQ3hDLDBCQUEwQixHQUUzQixNQUFNLGlCQUFpQixDQUFDO0FBRXpCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBSXRELE1BQU0sT0FBTyx5QkFBeUI7SUFrQzNCO0lBakNRLFNBQVMsQ0FBWTtJQUNyQixNQUFNLENBQW1CO0lBRWxDLGdCQUFnQixDQUFxQjtJQUNyQyxlQUFlLENBQXFCO0lBRTVDLElBQVksUUFBUTtRQUNsQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDMUYsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1osTUFBTSxJQUFJLEtBQUssQ0FDYixJQUFJLENBQUMsd0JBQXdCLENBQUMsbUJBQW1CLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxZQUFZLENBQUMsQ0FDekYsQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsSUFBWSxPQUFPO1FBQ2pCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN4RixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWixNQUFNLElBQUksS0FBSyxDQUNiLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxrQkFBa0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLFlBQVksQ0FBQyxDQUN2RixDQUFDO1FBQ0osQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFTyxpQkFBaUIsR0FBRyxlQUFlLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDakQsaUJBQWlCLEdBQUcsZUFBZSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBRXpELFlBQ0UsU0FBbUIsRUFDWixXQUE0QjtRQUE1QixnQkFBVyxHQUFYLFdBQVcsQ0FBaUI7UUFFbkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRU8sV0FBVztRQUNqQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQzVDLElBQUksMEJBQTBCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUM5QyxDQUFDO1FBQ0YsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FDM0MsSUFBSSwwQkFBMEIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQzdDLENBQUM7SUFDSixDQUFDO0lBRU0sbUJBQW1CLENBQUMsVUFBa0I7UUFDM0MsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFVBQVUsQ0FBQztJQUN0QyxDQUFDO0lBRU0sbUJBQW1CLENBQUMsVUFBa0I7UUFDM0MsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFVBQVUsQ0FBQztJQUN0QyxDQUFDO0lBRVMsTUFBTTtRQUNkLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFTyxzQkFBc0I7UUFDNUIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FDM0IsSUFBSSx3Q0FBd0MsQ0FDMUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUN6RixXQUFXLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUN4RixJQUFJLENBQUMsV0FBVyxFQUNoQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLGdCQUFnQixFQUNqRCxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FDakQsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVPLGlCQUFpQixDQUFDLElBQVc7UUFDbkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRU8sd0JBQXdCLENBQUMsT0FBZTtRQUM5QyxPQUFPLHlEQUF5RCxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsZUFBZSxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsS0FBSyxPQUFPLGdGQUFnRixDQUFDO0lBQ2pPLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElMaW5lLCBJUG9pbnQsIFBvaW50RXh0ZW5zaW9ucywgUm91bmRlZFJlY3QgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IEZNZWRpYXRvciB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHtcbiAgQ2FsY3VsYXRlQ29ubmVjdGlvbkxpbmVCeUJlaGF2aW9yUmVxdWVzdCxcbiAgR2V0Q29ubmVjdG9yQW5kUmVjdFJlcXVlc3QsXG4gIElDb25uZWN0b3JBbmRSZWN0LFxufSBmcm9tICcuLi8uLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgRkNvbm5lY3RvckJhc2UgfSBmcm9tICcuLi8uLi8uLi9mLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uLy4uLy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQgeyBGQ29ubmVjdGlvbkJhc2UgfSBmcm9tICcuLi8uLi8uLi9mLWNvbm5lY3Rpb24nO1xuaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNsYXNzIEJhc2VDb25uZWN0aW9uRHJhZ0hhbmRsZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IF9tZWRpYXRvcjogRk1lZGlhdG9yO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zdG9yZTogRkNvbXBvbmVudHNTdG9yZTtcblxuICBwcml2YXRlIF9mT3V0cHV0V2l0aFJlY3QhOiBJQ29ubmVjdG9yQW5kUmVjdDtcbiAgcHJpdmF0ZSBfZklucHV0V2l0aFJlY3QhOiBJQ29ubmVjdG9yQW5kUmVjdDtcblxuICBwcml2YXRlIGdldCBfZk91dHB1dCgpOiBGQ29ubmVjdG9yQmFzZSB7XG4gICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fc3RvcmUuZk91dHB1dHMuZmluZCgoeCkgPT4geC5mSWQoKSA9PT0gdGhpcy5mQ29ubmVjdGlvbi5mT3V0cHV0SWQoKSk7XG4gICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgdGhpcy5fY29ubmVjdG9yTm90Rm91bmRQcmVmaXgoYGZPdXRwdXQgd2l0aCBpZCAke3RoaXMuZkNvbm5lY3Rpb24uZk91dHB1dElkfSBub3QgZm91bmRgKSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IF9mSW5wdXQoKTogRkNvbm5lY3RvckJhc2Uge1xuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX3N0b3JlLmZJbnB1dHMuZmluZCgoeCkgPT4geC5mSWQoKSA9PT0gdGhpcy5mQ29ubmVjdGlvbi5mSW5wdXRJZCgpKTtcbiAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICB0aGlzLl9jb25uZWN0b3JOb3RGb3VuZFByZWZpeChgZklucHV0IHdpdGggaWQgJHt0aGlzLmZDb25uZWN0aW9uLmZJbnB1dElkfSBub3QgZm91bmRgKSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgX3NvdXJjZURpZmZlcmVuY2UgPSBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgpO1xuICBwcml2YXRlIF90YXJnZXREaWZmZXJlbmNlID0gUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBfaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHB1YmxpYyBmQ29ubmVjdGlvbjogRkNvbm5lY3Rpb25CYXNlLFxuICApIHtcbiAgICB0aGlzLl9tZWRpYXRvciA9IF9pbmplY3Rvci5nZXQoRk1lZGlhdG9yKTtcbiAgICB0aGlzLl9zdG9yZSA9IF9pbmplY3Rvci5nZXQoRkNvbXBvbmVudHNTdG9yZSk7XG4gICAgdGhpcy5faW5pdGlhbGl6ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9mT3V0cHV0V2l0aFJlY3QgPSB0aGlzLl9tZWRpYXRvci5leGVjdXRlPElDb25uZWN0b3JBbmRSZWN0PihcbiAgICAgIG5ldyBHZXRDb25uZWN0b3JBbmRSZWN0UmVxdWVzdCh0aGlzLl9mT3V0cHV0KSxcbiAgICApO1xuICAgIHRoaXMuX2ZJbnB1dFdpdGhSZWN0ID0gdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZTxJQ29ubmVjdG9yQW5kUmVjdD4oXG4gICAgICBuZXcgR2V0Q29ubmVjdG9yQW5kUmVjdFJlcXVlc3QodGhpcy5fZklucHV0KSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHNldFNvdXJjZURpZmZlcmVuY2UoZGlmZmVyZW5jZTogSVBvaW50KTogdm9pZCB7XG4gICAgdGhpcy5fc291cmNlRGlmZmVyZW5jZSA9IGRpZmZlcmVuY2U7XG4gIH1cblxuICBwdWJsaWMgc2V0VGFyZ2V0RGlmZmVyZW5jZShkaWZmZXJlbmNlOiBJUG9pbnQpOiB2b2lkIHtcbiAgICB0aGlzLl90YXJnZXREaWZmZXJlbmNlID0gZGlmZmVyZW5jZTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWRyYXcoKTogdm9pZCB7XG4gICAgdGhpcy5fcmVkcmF3Q29ubmVjdGlvbih0aGlzLl9yZWNhbGN1bGF0ZUNvbm5lY3Rpb24oKSk7XG4gIH1cblxuICBwcml2YXRlIF9yZWNhbGN1bGF0ZUNvbm5lY3Rpb24oKTogSUxpbmUge1xuICAgIHJldHVybiB0aGlzLl9tZWRpYXRvci5leGVjdXRlPElMaW5lPihcbiAgICAgIG5ldyBDYWxjdWxhdGVDb25uZWN0aW9uTGluZUJ5QmVoYXZpb3JSZXF1ZXN0KFxuICAgICAgICBSb3VuZGVkUmVjdC5mcm9tUm91bmRlZFJlY3QodGhpcy5fZk91dHB1dFdpdGhSZWN0LmZSZWN0KS5hZGRQb2ludCh0aGlzLl9zb3VyY2VEaWZmZXJlbmNlKSxcbiAgICAgICAgUm91bmRlZFJlY3QuZnJvbVJvdW5kZWRSZWN0KHRoaXMuX2ZJbnB1dFdpdGhSZWN0LmZSZWN0KS5hZGRQb2ludCh0aGlzLl90YXJnZXREaWZmZXJlbmNlKSxcbiAgICAgICAgdGhpcy5mQ29ubmVjdGlvbixcbiAgICAgICAgdGhpcy5fZk91dHB1dFdpdGhSZWN0LmZDb25uZWN0b3IuZkNvbm5lY3RhYmxlU2lkZSxcbiAgICAgICAgdGhpcy5fZklucHV0V2l0aFJlY3QuZkNvbm5lY3Rvci5mQ29ubmVjdGFibGVTaWRlLFxuICAgICAgKSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVkcmF3Q29ubmVjdGlvbihsaW5lOiBJTGluZSk6IHZvaWQge1xuICAgIHRoaXMuZkNvbm5lY3Rpb24uc2V0TGluZShsaW5lKTtcbiAgICB0aGlzLmZDb25uZWN0aW9uLnJlZHJhdygpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY29ubmVjdG9yTm90Rm91bmRQcmVmaXgobWVzc2FnZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYENvbm5lY3Rpb25EcmFnSGFuZGxlciBFcnJvcjogQ29ubmVjdGlvbiBGcm9tIChmT3V0cHV0KSR7dGhpcy5mQ29ubmVjdGlvbi5mT3V0cHV0SWR9IFRvIChmSW5wdXQpJHt0aGlzLmZDb25uZWN0aW9uLmZJbnB1dElkfS4gJHttZXNzYWdlfS4gUGxlYXNlIGVuc3VyZSB0aGF0IGFsbCBmLWNvbm5lY3Rpb25zIGFyZSBhc3NvY2lhdGVkIHdpdGggZXhpc3RpbmcgY29ubmVjdG9yc2A7XG4gIH1cbn1cbiJdfQ==
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jb25uZWN0aW9uLmRyYWctaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1kcmFnZ2FibGUvZi1ub2RlLW1vdmUvY29ubmVjdGlvbi1kcmFnLWhhbmRsZXJzL2Jhc2UtY29ubmVjdGlvbi5kcmFnLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixlQUFlLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsMEJBQTBCLEVBQXFCLE1BQU0saUJBQWlCLENBQUM7QUFFaEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFdEQsT0FBTyxFQUNMLDBCQUEwQixFQUMxQixpQ0FBaUMsR0FFbEMsTUFBTSwwQkFBMEIsQ0FBQztBQUVsQyxNQUFNLE9BQU8seUJBQXlCO0lBbUMzQjtJQWxDUSxTQUFTLENBQVk7SUFDckIsTUFBTSxDQUFtQjtJQUN6QixvQkFBb0IsQ0FBNkI7SUFFMUQsZ0JBQWdCLENBQXFCO0lBQ3JDLGVBQWUsQ0FBcUI7SUFFNUMsSUFBWSxRQUFRO1FBQ2xCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUMxRixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWixNQUFNLElBQUksS0FBSyxDQUNiLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxtQkFBbUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLFlBQVksQ0FBQyxDQUN6RixDQUFDO1FBQ0osQ0FBQztRQUVE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QVEsS0FBSyxPQUFPLGdGQUFnRixDQUFDO0lBQ2pPLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElMaW5lLCBJUG9pbnQsIFBvaW50RXh0ZW5zaW9ucywgUm91bmRlZFJlY3QgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IEZNZWRpYXRvciB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgR2V0Q29ubmVjdG9yQW5kUmVjdFJlcXVlc3QsIElDb25uZWN0b3JBbmRSZWN0IH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IEZDb25uZWN0b3JCYXNlIH0gZnJvbSAnLi4vLi4vLi4vZi1jb25uZWN0b3JzJztcbmltcG9ydCB7IEZDb21wb25lbnRzU3RvcmUgfSBmcm9tICcuLi8uLi8uLi9mLXN0b3JhZ2UnO1xuaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENvbm5lY3Rpb25CZWhhdmlvdXJCdWlsZGVyLFxuICBDb25uZWN0aW9uQmVoYXZpb3VyQnVpbGRlclJlcXVlc3QsXG4gIEZDb25uZWN0aW9uQmFzZSxcbn0gZnJvbSAnLi4vLi4vLi4vZi1jb25uZWN0aW9uLXYyJztcblxuZXhwb3J0IGNsYXNzIEJhc2VDb25uZWN0aW9uRHJhZ0hhbmRsZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IF9tZWRpYXRvcjogRk1lZGlhdG9yO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zdG9yZTogRkNvbXBvbmVudHNTdG9yZTtcbiAgcHJpdmF0ZSByZWFkb25seSBfY29ubmVjdGlvbkJlaGF2aW91cjogQ29ubmVjdGlvbkJlaGF2aW91ckJ1aWxkZXI7XG5cbiAgcHJpdmF0ZSBfZk91dHB1dFdpdGhSZWN0ITogSUNvbm5lY3RvckFuZFJlY3Q7XG4gIHByaXZhdGUgX2ZJbnB1dFdpdGhSZWN0ITogSUNvbm5lY3RvckFuZFJlY3Q7XG5cbiAgcHJpdmF0ZSBnZXQgX2ZPdXRwdXQoKTogRkNvbm5lY3RvckJhc2Uge1xuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX3N0b3JlLmZPdXRwdXRzLmZpbmQoKHgpID0+IHguZklkKCkgPT09IHRoaXMuZkNvbm5lY3Rpb24uZk91dHB1dElkKCkpO1xuICAgIGlmICghcmVzdWx0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIHRoaXMuX2Nvbm5lY3Rvck5vdEZvdW5kUHJlZml4KGBmT3V0cHV0IHdpdGggaWQgJHt0aGlzLmZDb25uZWN0aW9uLmZPdXRwdXRJZH0gbm90IGZvdW5kYCksXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIGdldCBfZklucHV0KCk6IEZDb25uZWN0b3JCYXNlIHtcbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9zdG9yZS5mSW5wdXRzLmZpbmQoKHgpID0+IHguZklkKCkgPT09IHRoaXMuZkNvbm5lY3Rpb24uZklucHV0SWQoKSk7XG4gICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgdGhpcy5fY29ubmVjdG9yTm90Rm91bmRQcmVmaXgoYGZJbnB1dCB3aXRoIGlkICR7dGhpcy5mQ29ubmVjdGlvbi5mSW5wdXRJZH0gbm90IGZvdW5kYCksXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIF9zb3VyY2VEaWZmZXJlbmNlID0gUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoKTtcbiAgcHJpdmF0ZSBfdGFyZ2V0RGlmZmVyZW5jZSA9IFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgX2luamVjdG9yOiBJbmplY3RvcixcbiAgICBwdWJsaWMgZkNvbm5lY3Rpb246IEZDb25uZWN0aW9uQmFzZSxcbiAgKSB7XG4gICAgdGhpcy5fbWVkaWF0b3IgPSBfaW5qZWN0b3IuZ2V0KEZNZWRpYXRvcik7XG4gICAgdGhpcy5fY29ubmVjdGlvbkJlaGF2aW91ciA9IF9pbmplY3Rvci5nZXQoQ29ubmVjdGlvbkJlaGF2aW91ckJ1aWxkZXIpO1xuICAgIHRoaXMuX3N0b3JlID0gX2luamVjdG9yLmdldChGQ29tcG9uZW50c1N0b3JlKTtcbiAgICB0aGlzLl9pbml0aWFsaXplKCk7XG4gIH1cblxuICBwcml2YXRlIF9pbml0aWFsaXplKCk6IHZvaWQge1xuICAgIHRoaXMuX2ZPdXRwdXRXaXRoUmVjdCA9IHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8SUNvbm5lY3RvckFuZFJlY3Q+KFxuICAgICAgbmV3IEdldENvbm5lY3RvckFuZFJlY3RSZXF1ZXN0KHRoaXMuX2ZPdXRwdXQpLFxuICAgICk7XG4gICAgdGhpcy5fZklucHV0V2l0aFJlY3QgPSB0aGlzLl9tZWRpYXRvci5leGVjdXRlPElDb25uZWN0b3JBbmRSZWN0PihcbiAgICAgIG5ldyBHZXRDb25uZWN0b3JBbmRSZWN0UmVxdWVzdCh0aGlzLl9mSW5wdXQpLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc2V0U291cmNlRGlmZmVyZW5jZShkaWZmZXJlbmNlOiBJUG9pbnQpOiB2b2lkIHtcbiAgICB0aGlzLl9zb3VyY2VEaWZmZXJlbmNlID0gZGlmZmVyZW5jZTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRUYXJnZXREaWZmZXJlbmNlKGRpZmZlcmVuY2U6IElQb2ludCk6IHZvaWQge1xuICAgIHRoaXMuX3RhcmdldERpZmZlcmVuY2UgPSBkaWZmZXJlbmNlO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlZHJhdygpOiB2b2lkIHtcbiAgICB0aGlzLl9yZWRyYXdDb25uZWN0aW9uKHRoaXMuX3JlY2FsY3VsYXRlQ29ubmVjdGlvbigpKTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlY2FsY3VsYXRlQ29ubmVjdGlvbigpOiBJTGluZSB7XG4gICAgcmV0dXJuIHRoaXMuX2Nvbm5lY3Rpb25CZWhhdmlvdXIuaGFuZGxlKFxuICAgICAgbmV3IENvbm5lY3Rpb25CZWhhdmlvdXJCdWlsZGVyUmVxdWVzdChcbiAgICAgICAgUm91bmRlZFJlY3QuZnJvbVJvdW5kZWRSZWN0KHRoaXMuX2ZPdXRwdXRXaXRoUmVjdC5mUmVjdCkuYWRkUG9pbnQodGhpcy5fc291cmNlRGlmZmVyZW5jZSksXG4gICAgICAgIFJvdW5kZWRSZWN0LmZyb21Sb3VuZGVkUmVjdCh0aGlzLl9mSW5wdXRXaXRoUmVjdC5mUmVjdCkuYWRkUG9pbnQodGhpcy5fdGFyZ2V0RGlmZmVyZW5jZSksXG4gICAgICAgIHRoaXMuZkNvbm5lY3Rpb24sXG4gICAgICAgIHRoaXMuX2ZPdXRwdXRXaXRoUmVjdC5mQ29ubmVjdG9yLmZDb25uZWN0YWJsZVNpZGUsXG4gICAgICAgIHRoaXMuX2ZJbnB1dFdpdGhSZWN0LmZDb25uZWN0b3IuZkNvbm5lY3RhYmxlU2lkZSxcbiAgICAgICksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlZHJhd0Nvbm5lY3Rpb24obGluZTogSUxpbmUpOiB2b2lkIHtcbiAgICB0aGlzLmZDb25uZWN0aW9uLnNldExpbmUobGluZSk7XG4gICAgdGhpcy5mQ29ubmVjdGlvbi5yZWRyYXcoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2Nvbm5lY3Rvck5vdEZvdW5kUHJlZml4KG1lc3NhZ2U6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBDb25uZWN0aW9uRHJhZ0hhbmRsZXIgRXJyb3I6IENvbm5lY3Rpb24gRnJvbSAoZk91dHB1dCkke3RoaXMuZkNvbm5lY3Rpb24uZk91dHB1dElkfSBUbyAoZklucHV0KSR7dGhpcy5mQ29ubmVjdGlvbi5mSW5wdXRJZH0uICR7bWVzc2FnZX0uIFBsZWFzZSBlbnN1cmUgdGhhdCBhbGwgZi1jb25uZWN0aW9ucyBhcmUgYXNzb2NpYXRlZCB3aXRoIGV4aXN0aW5nIGNvbm5lY3RvcnNgO1xuICB9XG59XG4iXX0=
@@ -8,4 +8,4 @@ export class SourceConnectionDragHandler extends BaseConnectionDragHandler {
8
8
  this.redraw();
9
9
  }
10
10
  }
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLWNvbm5lY3Rpb24uZHJhZy1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9mLW5vZGUtbW92ZS9jb25uZWN0aW9uLWRyYWctaGFuZGxlcnMvc291cmNlLWNvbm5lY3Rpb24uZHJhZy1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBSzNFLE1BQU0sT0FBTywyQkFBNEIsU0FBUSx5QkFBeUI7SUFFeEUsWUFBWSxRQUFrQixFQUFFLFdBQTRCO1FBQzFELEtBQUssQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVlLG1CQUFtQixDQUFDLFVBQWtCO1FBQ3BELEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDaEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvbm5lY3Rpb25EcmFnSGFuZGxlciB9IGZyb20gJy4vYmFzZS1jb25uZWN0aW9uLmRyYWctaGFuZGxlcic7XG5pbXBvcnQgeyBGQ29ubmVjdGlvbkJhc2UgfSBmcm9tICcuLi8uLi8uLi9mLWNvbm5lY3Rpb24nO1xuaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQgeyBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY2xhc3MgU291cmNlQ29ubmVjdGlvbkRyYWdIYW5kbGVyIGV4dGVuZHMgQmFzZUNvbm5lY3Rpb25EcmFnSGFuZGxlciB7XG5cbiAgY29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yLCBmQ29ubmVjdGlvbjogRkNvbm5lY3Rpb25CYXNlKSB7XG4gICAgc3VwZXIoaW5qZWN0b3IsIGZDb25uZWN0aW9uKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBzZXRTb3VyY2VEaWZmZXJlbmNlKGRpZmZlcmVuY2U6IElQb2ludCkge1xuICAgIHN1cGVyLnNldFNvdXJjZURpZmZlcmVuY2UoZGlmZmVyZW5jZSk7XG4gICAgdGhpcy5yZWRyYXcoKTtcbiAgfVxufVxuIl19
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLWNvbm5lY3Rpb24uZHJhZy1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9mLW5vZGUtbW92ZS9jb25uZWN0aW9uLWRyYWctaGFuZGxlcnMvc291cmNlLWNvbm5lY3Rpb24uZHJhZy1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBSzNFLE1BQU0sT0FBTywyQkFBNEIsU0FBUSx5QkFBeUI7SUFDeEUsWUFBWSxRQUFrQixFQUFFLFdBQTRCO1FBQzFELEtBQUssQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVlLG1CQUFtQixDQUFDLFVBQWtCO1FBQ3BELEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDaEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvbm5lY3Rpb25EcmFnSGFuZGxlciB9IGZyb20gJy4vYmFzZS1jb25uZWN0aW9uLmRyYWctaGFuZGxlcic7XG5pbXBvcnQgeyBJUG9pbnQgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGQ29ubmVjdGlvbkJhc2UgfSBmcm9tICcuLi8uLi8uLi9mLWNvbm5lY3Rpb24tdjInO1xuXG5leHBvcnQgY2xhc3MgU291cmNlQ29ubmVjdGlvbkRyYWdIYW5kbGVyIGV4dGVuZHMgQmFzZUNvbm5lY3Rpb25EcmFnSGFuZGxlciB7XG4gIGNvbnN0cnVjdG9yKGluamVjdG9yOiBJbmplY3RvciwgZkNvbm5lY3Rpb246IEZDb25uZWN0aW9uQmFzZSkge1xuICAgIHN1cGVyKGluamVjdG9yLCBmQ29ubmVjdGlvbik7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgc2V0U291cmNlRGlmZmVyZW5jZShkaWZmZXJlbmNlOiBJUG9pbnQpIHtcbiAgICBzdXBlci5zZXRTb3VyY2VEaWZmZXJlbmNlKGRpZmZlcmVuY2UpO1xuICAgIHRoaXMucmVkcmF3KCk7XG4gIH1cbn1cbiJdfQ==
@@ -19,4 +19,4 @@ export class SourceTargetConnectionDragHandler extends BaseConnectionDragHandler
19
19
  }
20
20
  }
21
21
  }
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLXRhcmdldC1jb25uZWN0aW9uLmRyYWctaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1kcmFnZ2FibGUvZi1ub2RlLW1vdmUvY29ubmVjdGlvbi1kcmFnLWhhbmRsZXJzL3NvdXJjZS10YXJnZXQtY29ubmVjdGlvbi5kcmFnLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFLM0UsTUFBTSxPQUFPLGlDQUFrQyxTQUFRLHlCQUF5QjtJQUU3RCxZQUFZLEdBQUcsSUFBSSxHQUFHLEVBQW1CLENBQUM7SUFFM0QsWUFBWSxRQUFrQixFQUFFLFdBQTRCO1FBQzFELEtBQUssQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVlLG1CQUFtQixDQUFDLFVBQWtCO1FBQ3BELEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRWUsbUJBQW1CLENBQUMsVUFBa0I7UUFDcEQsS0FBSyxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFTyxzQkFBc0I7UUFDNUIsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ25ELElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2hCLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29ubmVjdGlvbkRyYWdIYW5kbGVyIH0gZnJvbSAnLi9iYXNlLWNvbm5lY3Rpb24uZHJhZy1oYW5kbGVyJztcbmltcG9ydCB7IEZDb25uZWN0aW9uQmFzZSB9IGZyb20gJy4uLy4uLy4uL2YtY29ubmVjdGlvbic7XG5pbXBvcnQgeyBJUG9pbnQgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjbGFzcyBTb3VyY2VUYXJnZXRDb25uZWN0aW9uRHJhZ0hhbmRsZXIgZXh0ZW5kcyBCYXNlQ29ubmVjdGlvbkRyYWdIYW5kbGVyIHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9jYWxsVHJhY2tlciA9IG5ldyBNYXA8c3RyaW5nLCBib29sZWFuPigpO1xuXG4gIGNvbnN0cnVjdG9yKGluamVjdG9yOiBJbmplY3RvciwgZkNvbm5lY3Rpb246IEZDb25uZWN0aW9uQmFzZSkge1xuICAgIHN1cGVyKGluamVjdG9yLCBmQ29ubmVjdGlvbik7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgc2V0U291cmNlRGlmZmVyZW5jZShkaWZmZXJlbmNlOiBJUG9pbnQpIHtcbiAgICBzdXBlci5zZXRTb3VyY2VEaWZmZXJlbmNlKGRpZmZlcmVuY2UpO1xuICAgIHRoaXMuX2NoZWNrQW5kVHJpZ2dlckFjdGlvbigpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHNldFRhcmdldERpZmZlcmVuY2UoZGlmZmVyZW5jZTogSVBvaW50KSB7XG4gICAgc3VwZXIuc2V0VGFyZ2V0RGlmZmVyZW5jZShkaWZmZXJlbmNlKTtcbiAgICB0aGlzLl9jaGVja0FuZFRyaWdnZXJBY3Rpb24oKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NoZWNrQW5kVHJpZ2dlckFjdGlvbigpIHtcbiAgICBpZiAoWy4uLnRoaXMuX2NhbGxUcmFja2VyLnZhbHVlcygpXS5ldmVyeShCb29sZWFuKSkge1xuICAgICAgdGhpcy5fY2FsbFRyYWNrZXIuY2xlYXIoKTtcbiAgICAgIHRoaXMucmVkcmF3KCk7XG4gICAgfVxuICB9XG59XG5cbiJdfQ==
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLXRhcmdldC1jb25uZWN0aW9uLmRyYWctaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1kcmFnZ2FibGUvZi1ub2RlLW1vdmUvY29ubmVjdGlvbi1kcmFnLWhhbmRsZXJzL3NvdXJjZS10YXJnZXQtY29ubmVjdGlvbi5kcmFnLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFLM0UsTUFBTSxPQUFPLGlDQUFrQyxTQUFRLHlCQUF5QjtJQUM3RCxZQUFZLEdBQUcsSUFBSSxHQUFHLEVBQW1CLENBQUM7SUFFM0QsWUFBWSxRQUFrQixFQUFFLFdBQTRCO1FBQzFELEtBQUssQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVlLG1CQUFtQixDQUFDLFVBQWtCO1FBQ3BELEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRWUsbUJBQW1CLENBQUMsVUFBa0I7UUFDcEQsS0FBSyxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFTyxzQkFBc0I7UUFDNUIsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ25ELElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2hCLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29ubmVjdGlvbkRyYWdIYW5kbGVyIH0gZnJvbSAnLi9iYXNlLWNvbm5lY3Rpb24uZHJhZy1oYW5kbGVyJztcbmltcG9ydCB7IElQb2ludCB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZDb25uZWN0aW9uQmFzZSB9IGZyb20gJy4uLy4uLy4uL2YtY29ubmVjdGlvbi12Mic7XG5cbmV4cG9ydCBjbGFzcyBTb3VyY2VUYXJnZXRDb25uZWN0aW9uRHJhZ0hhbmRsZXIgZXh0ZW5kcyBCYXNlQ29ubmVjdGlvbkRyYWdIYW5kbGVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSBfY2FsbFRyYWNrZXIgPSBuZXcgTWFwPHN0cmluZywgYm9vbGVhbj4oKTtcblxuICBjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IsIGZDb25uZWN0aW9uOiBGQ29ubmVjdGlvbkJhc2UpIHtcbiAgICBzdXBlcihpbmplY3RvciwgZkNvbm5lY3Rpb24pO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHNldFNvdXJjZURpZmZlcmVuY2UoZGlmZmVyZW5jZTogSVBvaW50KSB7XG4gICAgc3VwZXIuc2V0U291cmNlRGlmZmVyZW5jZShkaWZmZXJlbmNlKTtcbiAgICB0aGlzLl9jaGVja0FuZFRyaWdnZXJBY3Rpb24oKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBzZXRUYXJnZXREaWZmZXJlbmNlKGRpZmZlcmVuY2U6IElQb2ludCkge1xuICAgIHN1cGVyLnNldFRhcmdldERpZmZlcmVuY2UoZGlmZmVyZW5jZSk7XG4gICAgdGhpcy5fY2hlY2tBbmRUcmlnZ2VyQWN0aW9uKCk7XG4gIH1cblxuICBwcml2YXRlIF9jaGVja0FuZFRyaWdnZXJBY3Rpb24oKSB7XG4gICAgaWYgKFsuLi50aGlzLl9jYWxsVHJhY2tlci52YWx1ZXMoKV0uZXZlcnkoQm9vbGVhbikpIHtcbiAgICAgIHRoaXMuX2NhbGxUcmFja2VyLmNsZWFyKCk7XG4gICAgICB0aGlzLnJlZHJhdygpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -8,4 +8,4 @@ export class TargetConnectionDragHandler extends BaseConnectionDragHandler {
8
8
  this.redraw();
9
9
  }
10
10
  }
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFyZ2V0LWNvbm5lY3Rpb24uZHJhZy1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9mLW5vZGUtbW92ZS9jb25uZWN0aW9uLWRyYWctaGFuZGxlcnMvdGFyZ2V0LWNvbm5lY3Rpb24uZHJhZy1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBSTNFLE1BQU0sT0FBTywyQkFBNEIsU0FBUSx5QkFBeUI7SUFFeEUsWUFBWSxRQUFrQixFQUFFLFdBQTRCO1FBQzFELEtBQUssQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVlLG1CQUFtQixDQUFDLFVBQWtCO1FBQ3BELEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDaEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRkNvbm5lY3Rpb25CYXNlIH0gZnJvbSAnLi4vLi4vLi4vZi1jb25uZWN0aW9uJztcbmltcG9ydCB7IEJhc2VDb25uZWN0aW9uRHJhZ0hhbmRsZXIgfSBmcm9tICcuL2Jhc2UtY29ubmVjdGlvbi5kcmFnLWhhbmRsZXInO1xuaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQgeyBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY2xhc3MgVGFyZ2V0Q29ubmVjdGlvbkRyYWdIYW5kbGVyIGV4dGVuZHMgQmFzZUNvbm5lY3Rpb25EcmFnSGFuZGxlciB7XG5cbiAgY29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yLCBmQ29ubmVjdGlvbjogRkNvbm5lY3Rpb25CYXNlKSB7XG4gICAgc3VwZXIoaW5qZWN0b3IsIGZDb25uZWN0aW9uKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBzZXRUYXJnZXREaWZmZXJlbmNlKGRpZmZlcmVuY2U6IElQb2ludCkge1xuICAgIHN1cGVyLnNldFRhcmdldERpZmZlcmVuY2UoZGlmZmVyZW5jZSk7XG4gICAgdGhpcy5yZWRyYXcoKTtcbiAgfVxufVxuIl19
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFyZ2V0LWNvbm5lY3Rpb24uZHJhZy1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9mLW5vZGUtbW92ZS9jb25uZWN0aW9uLWRyYWctaGFuZGxlcnMvdGFyZ2V0LWNvbm5lY3Rpb24uZHJhZy1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBSzNFLE1BQU0sT0FBTywyQkFBNEIsU0FBUSx5QkFBeUI7SUFDeEUsWUFBWSxRQUFrQixFQUFFLFdBQTRCO1FBQzFELEtBQUssQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVlLG1CQUFtQixDQUFDLFVBQWtCO1FBQ3BELEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDaEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvbm5lY3Rpb25EcmFnSGFuZGxlciB9IGZyb20gJy4vYmFzZS1jb25uZWN0aW9uLmRyYWctaGFuZGxlcic7XG5pbXBvcnQgeyBJUG9pbnQgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGQ29ubmVjdGlvbkJhc2UgfSBmcm9tICcuLi8uLi8uLi9mLWNvbm5lY3Rpb24tdjInO1xuXG5leHBvcnQgY2xhc3MgVGFyZ2V0Q29ubmVjdGlvbkRyYWdIYW5kbGVyIGV4dGVuZHMgQmFzZUNvbm5lY3Rpb25EcmFnSGFuZGxlciB7XG4gIGNvbnN0cnVjdG9yKGluamVjdG9yOiBJbmplY3RvciwgZkNvbm5lY3Rpb246IEZDb25uZWN0aW9uQmFzZSkge1xuICAgIHN1cGVyKGluamVjdG9yLCBmQ29ubmVjdGlvbik7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgc2V0VGFyZ2V0RGlmZmVyZW5jZShkaWZmZXJlbmNlOiBJUG9pbnQpIHtcbiAgICBzdXBlci5zZXRUYXJnZXREaWZmZXJlbmNlKGRpZmZlcmVuY2UpO1xuICAgIHRoaXMucmVkcmF3KCk7XG4gIH1cbn1cbiJdfQ==
@@ -56,4 +56,4 @@ export { CreateInputConnectionHandlerAndSetToNodeHandler };
56
56
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CreateInputConnectionHandlerAndSetToNodeHandler, decorators: [{
57
57
  type: Injectable
58
58
  }] });
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWlucHV0LWNvbm5lY3Rpb24taGFuZGxlci1hbmQtc2V0LXRvLW5vZGUtaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1kcmFnZ2FibGUvZi1ub2RlLW1vdmUvY3JlYXRlLWRyYWctbW9kZWwtZnJvbS1zZWxlY3Rpb24vY3JlYXRlLWlucHV0LWNvbm5lY3Rpb24taGFuZGxlci1hbmQtc2V0LXRvLW5vZGUtaGFuZGxlci9jcmVhdGUtaW5wdXQtY29ubmVjdGlvbi1oYW5kbGVyLWFuZC1zZXQtdG8tbm9kZS1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLHNEQUFzRCxFQUFFLE1BQU0sbUVBQW1FLENBQUM7QUFDM0ksT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFFLGtCQUFrQixFQUFjLE1BQU0sa0JBQWtCLENBQUM7QUFHbEUsT0FBTyxFQUVMLGlDQUFpQyxFQUNqQywyQkFBMkIsR0FDNUIsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFJakMsSUFBTSwrQ0FBK0MsR0FBckQsTUFBTSwrQ0FBK0M7SUFHekMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ2xDLFNBQVMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFOUMsSUFBWSxZQUFZO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7SUFDbEMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxPQUErRDtRQUMzRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUNoRixJQUFJLENBQUMsb0NBQW9DLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2pFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLG9CQUFvQixDQUFDLFdBQXNCO1FBQ2pELE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBRXhELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsV0FBc0I7UUFDN0MsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU87YUFDdkIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUNwRCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFTyxvQ0FBb0MsQ0FDMUMsVUFBMkIsRUFDM0IsT0FBK0Q7UUFFL0QsSUFBSSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsNkJBQTZCLENBQ3hELE9BQU8sQ0FBQywwQkFBMEIsRUFDbEMsVUFBVSxDQUNYLENBQUM7UUFDRixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUN2QixpQkFBaUIsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQztZQUNqRixPQUFPLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDN0QsQ0FBQztRQUNELE9BQU8sQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFTyw2QkFBNkIsQ0FDbkMsMEJBQXVELEVBQ3ZELFVBQTJCO1FBRTNCLE9BQU8sMEJBQTBCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxLQUFLLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQzFGLENBQUM7SUFFTyx3QkFBd0IsQ0FDOUIsU0FBbUIsRUFDbkIsVUFBMkI7UUFFM0IsSUFBSSxNQUE2QyxDQUFDO1FBQ2xELElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQy9DLE1BQU0sR0FBRyxJQUFJLGlDQUFpQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDN0UsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLEdBQUcsSUFBSSwyQkFBMkIsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO3dHQTlEVSwrQ0FBK0M7NEdBQS9DLCtDQUErQzs7QUFBL0MsK0NBQStDO0lBRDNELGtCQUFrQixDQUFDLHNEQUFzRCxDQUFDO0dBQzlELCtDQUErQyxDQStEM0Q7OzRGQS9EWSwrQ0FBK0M7a0JBRjNELFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDcmVhdGVJbnB1dENvbm5lY3Rpb25IYW5kbGVyQW5kU2V0VG9Ob2RlSGFuZGxlclJlcXVlc3QgfSBmcm9tICcuL2NyZWF0ZS1pbnB1dC1jb25uZWN0aW9uLWhhbmRsZXItYW5kLXNldC10by1ub2RlLWhhbmRsZXItcmVxdWVzdCc7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZi1zdG9yYWdlJztcbmltcG9ydCB7IEZFeGVjdXRpb25SZWdpc3RlciwgSUV4ZWN1dGlvbiB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgRk5vZGVCYXNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZi1ub2RlJztcbmltcG9ydCB7IEZDb25uZWN0aW9uQmFzZSB9IGZyb20gJy4uLy4uLy4uLy4uL2YtY29ubmVjdGlvbic7XG5pbXBvcnQge1xuICBCYXNlQ29ubmVjdGlvbkRyYWdIYW5kbGVyLFxuICBTb3VyY2VUYXJnZXRDb25uZWN0aW9uRHJhZ0hhbmRsZXIsXG4gIFRhcmdldENvbm5lY3Rpb25EcmFnSGFuZGxlcixcbn0gZnJvbSAnLi4vLi4vY29ubmVjdGlvbi1kcmFnLWhhbmRsZXJzJztcblxuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihDcmVhdGVJbnB1dENvbm5lY3Rpb25IYW5kbGVyQW5kU2V0VG9Ob2RlSGFuZGxlclJlcXVlc3QpXG5leHBvcnQgY2xhc3MgQ3JlYXRlSW5wdXRDb25uZWN0aW9uSGFuZGxlckFuZFNldFRvTm9kZUhhbmRsZXJcbiAgaW1wbGVtZW50cyBJRXhlY3V0aW9uPENyZWF0ZUlucHV0Q29ubmVjdGlvbkhhbmRsZXJBbmRTZXRUb05vZGVIYW5kbGVyUmVxdWVzdCwgdm9pZD5cbntcbiAgcHJpdmF0ZSByZWFkb25seSBfc3RvcmUgPSBpbmplY3QoRkNvbXBvbmVudHNTdG9yZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2luamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblxuICBwcml2YXRlIGdldCBfY29ubmVjdGlvbnMoKTogRkNvbm5lY3Rpb25CYXNlW10ge1xuICAgIHJldHVybiB0aGlzLl9zdG9yZS5mQ29ubmVjdGlvbnM7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlKHJlcXVlc3Q6IENyZWF0ZUlucHV0Q29ubmVjdGlvbkhhbmRsZXJBbmRTZXRUb05vZGVIYW5kbGVyUmVxdWVzdCk6IHZvaWQge1xuICAgIHRoaXMuX2dldElucHV0Q29ubmVjdGlvbnMocmVxdWVzdC5kcmFnSGFuZGxlci5ub2RlT3JHcm91cCkuZm9yRWFjaCgoY29ubmVjdGlvbikgPT4ge1xuICAgICAgdGhpcy5fY3JlYXRlQW5kU2V0Q29ubmVjdGlvblRvTm9kZUhhbmRsZXIoY29ubmVjdGlvbiwgcmVxdWVzdCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRJbnB1dENvbm5lY3Rpb25zKG5vZGVPckdyb3VwOiBGTm9kZUJhc2UpOiBGQ29ubmVjdGlvbkJhc2VbXSB7XG4gICAgY29uc3QgaWRzID0gbmV3IFNldCh0aGlzLl9nZXROb2RlSW5wdXRJZHMobm9kZU9yR3JvdXApKTtcblxuICAgIHJldHVybiB0aGlzLl9jb25uZWN0aW9ucy5maWx0ZXIoKHgpID0+IGlkcy5oYXMoeC5mSW5wdXRJZCgpKSk7XG4gIH1cblxuICBwcml2YXRlIF9nZXROb2RlSW5wdXRJZHMobm9kZU9yR3JvdXA6IEZOb2RlQmFzZSk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5fc3RvcmUuZklucHV0c1xuICAgICAgLmZpbHRlcigoeCkgPT4gbm9kZU9yR3JvdXAuaXNDb250YWlucyh4Lmhvc3RFbGVtZW50KSlcbiAgICAgIC5tYXAoKHgpID0+IHguZklkKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY3JlYXRlQW5kU2V0Q29ubmVjdGlvblRvTm9kZUhhbmRsZXIoXG4gICAgY29ubmVjdGlvbjogRkNvbm5lY3Rpb25CYXNlLFxuICAgIHJlcXVlc3Q6IENyZWF0ZUlucHV0Q29ubmVjdGlvbkhhbmRsZXJBbmRTZXRUb05vZGVIYW5kbGVyUmVxdWVzdCxcbiAgKTogdm9pZCB7XG4gICAgbGV0IGNvbm5lY3Rpb25IYW5kbGVyID0gdGhpcy5fZ2V0RXhpc3RpbmdDb25uZWN0aW9uSGFuZGxlcihcbiAgICAgIHJlcXVlc3QuZXhpc3RpbmdDb25uZWN0aW9uSGFuZGxlcnMsXG4gICAgICBjb25uZWN0aW9uLFxuICAgICk7XG4gICAgaWYgKCFjb25uZWN0aW9uSGFuZGxlcikge1xuICAgICAgY29ubmVjdGlvbkhhbmRsZXIgPSB0aGlzLl9jcmVhdGVDb25uZWN0aW9uSGFuZGxlcihyZXF1ZXN0Lm91dHB1dElkcywgY29ubmVjdGlvbik7XG4gICAgICByZXF1ZXN0LmV4aXN0aW5nQ29ubmVjdGlvbkhhbmRsZXJzLnB1c2goY29ubmVjdGlvbkhhbmRsZXIpO1xuICAgIH1cbiAgICByZXF1ZXN0LmRyYWdIYW5kbGVyLmZUYXJnZXRIYW5kbGVycy5wdXNoKGNvbm5lY3Rpb25IYW5kbGVyKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldEV4aXN0aW5nQ29ubmVjdGlvbkhhbmRsZXIoXG4gICAgZXhpc3RpbmdDb25uZWN0aW9uSGFuZGxlcnM6IEJhc2VDb25uZWN0aW9uRHJhZ0hhbmRsZXJbXSxcbiAgICBjb25uZWN0aW9uOiBGQ29ubmVjdGlvbkJhc2UsXG4gICk6IEJhc2VDb25uZWN0aW9uRHJhZ0hhbmRsZXIgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBleGlzdGluZ0Nvbm5lY3Rpb25IYW5kbGVycy5maW5kKCh4KSA9PiB4LmZDb25uZWN0aW9uLmZJZCgpID09PSBjb25uZWN0aW9uLmZJZCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NyZWF0ZUNvbm5lY3Rpb25IYW5kbGVyKFxuICAgIG91dHB1dElkczogc3RyaW5nW10sXG4gICAgY29ubmVjdGlvbjogRkNvbm5lY3Rpb25CYXNlLFxuICApOiBCYXNlQ29ubmVjdGlvbkRyYWdIYW5kbGVyIHtcbiAgICBsZXQgcmVzdWx0OiBCYXNlQ29ubmVjdGlvbkRyYWdIYW5kbGVyIHwgdW5kZWZpbmVkO1xuICAgIGlmIChvdXRwdXRJZHMuaW5jbHVkZXMoY29ubmVjdGlvbi5mT3V0cHV0SWQoKSkpIHtcbiAgICAgIHJlc3VsdCA9IG5ldyBTb3VyY2VUYXJnZXRDb25uZWN0aW9uRHJhZ0hhbmRsZXIodGhpcy5faW5qZWN0b3IsIGNvbm5lY3Rpb24pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHQgPSBuZXcgVGFyZ2V0Q29ubmVjdGlvbkRyYWdIYW5kbGVyKHRoaXMuX2luamVjdG9yLCBjb25uZWN0aW9uKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59XG4iXX0=
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWlucHV0LWNvbm5lY3Rpb24taGFuZGxlci1hbmQtc2V0LXRvLW5vZGUtaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1kcmFnZ2FibGUvZi1ub2RlLW1vdmUvY3JlYXRlLWRyYWctbW9kZWwtZnJvbS1zZWxlY3Rpb24vY3JlYXRlLWlucHV0LWNvbm5lY3Rpb24taGFuZGxlci1hbmQtc2V0LXRvLW5vZGUtaGFuZGxlci9jcmVhdGUtaW5wdXQtY29ubmVjdGlvbi1oYW5kbGVyLWFuZC1zZXQtdG8tbm9kZS1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLHNEQUFzRCxFQUFFLE1BQU0sbUVBQW1FLENBQUM7QUFDM0ksT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFFLGtCQUFrQixFQUFjLE1BQU0sa0JBQWtCLENBQUM7QUFFbEUsT0FBTyxFQUVMLGlDQUFpQyxFQUNqQywyQkFBMkIsR0FDNUIsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFLakMsSUFBTSwrQ0FBK0MsR0FBckQsTUFBTSwrQ0FBK0M7SUFHekMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ2xDLFNBQVMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFOUMsSUFBWSxZQUFZO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7SUFDbEMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxPQUErRDtRQUMzRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUNoRixJQUFJLENBQUMsb0NBQW9DLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2pFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLG9CQUFvQixDQUFDLFdBQXNCO1FBQ2pELE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBRXhELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsV0FBc0I7UUFDN0MsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU87YUFDdkIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUNwRCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFTyxvQ0FBb0MsQ0FDMUMsVUFBMkIsRUFDM0IsT0FBK0Q7UUFFL0QsSUFBSSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsNkJBQTZCLENBQ3hELE9BQU8sQ0FBQywwQkFBMEIsRUFDbEMsVUFBVSxDQUNYLENBQUM7UUFDRixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUN2QixpQkFBaUIsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQztZQUNqRixPQUFPLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDN0QsQ0FBQztRQUNELE9BQU8sQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFTyw2QkFBNkIsQ0FDbkMsMEJBQXVELEVBQ3ZELFVBQTJCO1FBRTNCLE9BQU8sMEJBQTBCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxLQUFLLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQzFGLENBQUM7SUFFTyx3QkFBd0IsQ0FDOUIsU0FBbUIsRUFDbkIsVUFBMkI7UUFFM0IsSUFBSSxNQUE2QyxDQUFDO1FBQ2xELElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQy9DLE1BQU0sR0FBRyxJQUFJLGlDQUFpQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDN0UsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLEdBQUcsSUFBSSwyQkFBMkIsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO3dHQTlEVSwrQ0FBK0M7NEdBQS9DLCtDQUErQzs7QUFBL0MsK0NBQStDO0lBRDNELGtCQUFrQixDQUFDLHNEQUFzRCxDQUFDO0dBQzlELCtDQUErQyxDQStEM0Q7OzRGQS9EWSwrQ0FBK0M7a0JBRjNELFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDcmVhdGVJbnB1dENvbm5lY3Rpb25IYW5kbGVyQW5kU2V0VG9Ob2RlSGFuZGxlclJlcXVlc3QgfSBmcm9tICcuL2NyZWF0ZS1pbnB1dC1jb25uZWN0aW9uLWhhbmRsZXItYW5kLXNldC10by1ub2RlLWhhbmRsZXItcmVxdWVzdCc7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZi1zdG9yYWdlJztcbmltcG9ydCB7IEZFeGVjdXRpb25SZWdpc3RlciwgSUV4ZWN1dGlvbiB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgRk5vZGVCYXNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZi1ub2RlJztcbmltcG9ydCB7XG4gIEJhc2VDb25uZWN0aW9uRHJhZ0hhbmRsZXIsXG4gIFNvdXJjZVRhcmdldENvbm5lY3Rpb25EcmFnSGFuZGxlcixcbiAgVGFyZ2V0Q29ubmVjdGlvbkRyYWdIYW5kbGVyLFxufSBmcm9tICcuLi8uLi9jb25uZWN0aW9uLWRyYWctaGFuZGxlcnMnO1xuaW1wb3J0IHsgRkNvbm5lY3Rpb25CYXNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZi1jb25uZWN0aW9uLXYyJztcblxuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihDcmVhdGVJbnB1dENvbm5lY3Rpb25IYW5kbGVyQW5kU2V0VG9Ob2RlSGFuZGxlclJlcXVlc3QpXG5leHBvcnQgY2xhc3MgQ3JlYXRlSW5wdXRDb25uZWN0aW9uSGFuZGxlckFuZFNldFRvTm9kZUhhbmRsZXJcbiAgaW1wbGVtZW50cyBJRXhlY3V0aW9uPENyZWF0ZUlucHV0Q29ubmVjdGlvbkhhbmRsZXJBbmRTZXRUb05vZGVIYW5kbGVyUmVxdWVzdCwgdm9pZD5cbntcbiAgcHJpdmF0ZSByZWFkb25seSBfc3RvcmUgPSBpbmplY3QoRkNvbXBvbmVudHNTdG9yZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2luamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblxuICBwcml2YXRlIGdldCBfY29ubmVjdGlvbnMoKTogRkNvbm5lY3Rpb25CYXNlW10ge1xuICAgIHJldHVybiB0aGlzLl9zdG9yZS5mQ29ubmVjdGlvbnM7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlKHJlcXVlc3Q6IENyZWF0ZUlucHV0Q29ubmVjdGlvbkhhbmRsZXJBbmRTZXRUb05vZGVIYW5kbGVyUmVxdWVzdCk6IHZvaWQge1xuICAgIHRoaXMuX2dldElucHV0Q29ubmVjdGlvbnMocmVxdWVzdC5kcmFnSGFuZGxlci5ub2RlT3JHcm91cCkuZm9yRWFjaCgoY29ubmVjdGlvbikgPT4ge1xuICAgICAgdGhpcy5fY3JlYXRlQW5kU2V0Q29ubmVjdGlvblRvTm9kZUhhbmRsZXIoY29ubmVjdGlvbiwgcmVxdWVzdCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRJbnB1dENvbm5lY3Rpb25zKG5vZGVPckdyb3VwOiBGTm9kZUJhc2UpOiBGQ29ubmVjdGlvbkJhc2VbXSB7XG4gICAgY29uc3QgaWRzID0gbmV3IFNldCh0aGlzLl9nZXROb2RlSW5wdXRJZHMobm9kZU9yR3JvdXApKTtcblxuICAgIHJldHVybiB0aGlzLl9jb25uZWN0aW9ucy5maWx0ZXIoKHgpID0+IGlkcy5oYXMoeC5mSW5wdXRJZCgpKSk7XG4gIH1cblxuICBwcml2YXRlIF9nZXROb2RlSW5wdXRJZHMobm9kZU9yR3JvdXA6IEZOb2RlQmFzZSk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5fc3RvcmUuZklucHV0c1xuICAgICAgLmZpbHRlcigoeCkgPT4gbm9kZU9yR3JvdXAuaXNDb250YWlucyh4Lmhvc3RFbGVtZW50KSlcbiAgICAgIC5tYXAoKHgpID0+IHguZklkKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY3JlYXRlQW5kU2V0Q29ubmVjdGlvblRvTm9kZUhhbmRsZXIoXG4gICAgY29ubmVjdGlvbjogRkNvbm5lY3Rpb25CYXNlLFxuICAgIHJlcXVlc3Q6IENyZWF0ZUlucHV0Q29ubmVjdGlvbkhhbmRsZXJBbmRTZXRUb05vZGVIYW5kbGVyUmVxdWVzdCxcbiAgKTogdm9pZCB7XG4gICAgbGV0IGNvbm5lY3Rpb25IYW5kbGVyID0gdGhpcy5fZ2V0RXhpc3RpbmdDb25uZWN0aW9uSGFuZGxlcihcbiAgICAgIHJlcXVlc3QuZXhpc3RpbmdDb25uZWN0aW9uSGFuZGxlcnMsXG4gICAgICBjb25uZWN0aW9uLFxuICAgICk7XG4gICAgaWYgKCFjb25uZWN0aW9uSGFuZGxlcikge1xuICAgICAgY29ubmVjdGlvbkhhbmRsZXIgPSB0aGlzLl9jcmVhdGVDb25uZWN0aW9uSGFuZGxlcihyZXF1ZXN0Lm91dHB1dElkcywgY29ubmVjdGlvbik7XG4gICAgICByZXF1ZXN0LmV4aXN0aW5nQ29ubmVjdGlvbkhhbmRsZXJzLnB1c2goY29ubmVjdGlvbkhhbmRsZXIpO1xuICAgIH1cbiAgICByZXF1ZXN0LmRyYWdIYW5kbGVyLmZUYXJnZXRIYW5kbGVycy5wdXNoKGNvbm5lY3Rpb25IYW5kbGVyKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldEV4aXN0aW5nQ29ubmVjdGlvbkhhbmRsZXIoXG4gICAgZXhpc3RpbmdDb25uZWN0aW9uSGFuZGxlcnM6IEJhc2VDb25uZWN0aW9uRHJhZ0hhbmRsZXJbXSxcbiAgICBjb25uZWN0aW9uOiBGQ29ubmVjdGlvbkJhc2UsXG4gICk6IEJhc2VDb25uZWN0aW9uRHJhZ0hhbmRsZXIgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBleGlzdGluZ0Nvbm5lY3Rpb25IYW5kbGVycy5maW5kKCh4KSA9PiB4LmZDb25uZWN0aW9uLmZJZCgpID09PSBjb25uZWN0aW9uLmZJZCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NyZWF0ZUNvbm5lY3Rpb25IYW5kbGVyKFxuICAgIG91dHB1dElkczogc3RyaW5nW10sXG4gICAgY29ubmVjdGlvbjogRkNvbm5lY3Rpb25CYXNlLFxuICApOiBCYXNlQ29ubmVjdGlvbkRyYWdIYW5kbGVyIHtcbiAgICBsZXQgcmVzdWx0OiBCYXNlQ29ubmVjdGlvbkRyYWdIYW5kbGVyIHwgdW5kZWZpbmVkO1xuICAgIGlmIChvdXRwdXRJZHMuaW5jbHVkZXMoY29ubmVjdGlvbi5mT3V0cHV0SWQoKSkpIHtcbiAgICAgIHJlc3VsdCA9IG5ldyBTb3VyY2VUYXJnZXRDb25uZWN0aW9uRHJhZ0hhbmRsZXIodGhpcy5faW5qZWN0b3IsIGNvbm5lY3Rpb24pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHQgPSBuZXcgVGFyZ2V0Q29ubmVjdGlvbkRyYWdIYW5kbGVyKHRoaXMuX2luamVjdG9yLCBjb25uZWN0aW9uKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59XG4iXX0=
@@ -56,4 +56,4 @@ export { CreateOutputConnectionHandlerAndSetToNodeHandler };
56
56
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CreateOutputConnectionHandlerAndSetToNodeHandler, decorators: [{
57
57
  type: Injectable
58
58
  }] });
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW91dHB1dC1jb25uZWN0aW9uLWhhbmRsZXItYW5kLXNldC10by1ub2RlLWhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2Ytbm9kZS1tb3ZlL2NyZWF0ZS1kcmFnLW1vZGVsLWZyb20tc2VsZWN0aW9uL2NyZWF0ZS1vdXRwdXQtY29ubmVjdGlvbi1oYW5kbGVyLWFuZC1zZXQtdG8tbm9kZS1oYW5kbGVyL2NyZWF0ZS1vdXRwdXQtY29ubmVjdGlvbi1oYW5kbGVyLWFuZC1zZXQtdG8tbm9kZS1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLHVEQUF1RCxFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFDN0ksT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFFLGtCQUFrQixFQUFjLE1BQU0sa0JBQWtCLENBQUM7QUFHbEUsT0FBTyxFQUVMLGlDQUFpQyxFQUNqQywyQkFBMkIsR0FDNUIsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFJakMsSUFBTSxnREFBZ0QsR0FBdEQsTUFBTSxnREFBZ0Q7SUFHMUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ2xDLFNBQVMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFOUMsSUFBWSxZQUFZO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7SUFDbEMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxPQUFnRTtRQUM1RSxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUNuRixJQUFJLENBQUMsb0NBQW9DLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2xFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLHFCQUFxQixDQUFDLFdBQXNCO1FBQ2pELE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBRXpELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRU8saUJBQWlCLENBQUMsV0FBc0I7UUFDOUMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVE7YUFDeEIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUNwRCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFTyxvQ0FBb0MsQ0FDMUMsVUFBMkIsRUFDM0IsT0FBZ0U7UUFFaEUsSUFBSSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsNkJBQTZCLENBQ3hELE9BQU8sQ0FBQywwQkFBMEIsRUFDbEMsVUFBVSxDQUNYLENBQUM7UUFDRixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUN2QixpQkFBaUIsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztZQUNoRixPQUFPLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDN0QsQ0FBQztRQUNELE9BQU8sQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFTyw2QkFBNkIsQ0FDbkMsMEJBQXVELEVBQ3ZELFVBQTJCO1FBRTNCLE9BQU8sMEJBQTBCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxLQUFLLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQzFGLENBQUM7SUFFTyx3QkFBd0IsQ0FDOUIsUUFBa0IsRUFDbEIsVUFBMkI7UUFFM0IsSUFBSSxNQUFpQyxDQUFDO1FBQ3RDLElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQzdDLE1BQU0sR0FBRyxJQUFJLGlDQUFpQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDN0UsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLEdBQUcsSUFBSSwyQkFBMkIsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO3dHQTlEVSxnREFBZ0Q7NEdBQWhELGdEQUFnRDs7QUFBaEQsZ0RBQWdEO0lBRDVELGtCQUFrQixDQUFDLHVEQUF1RCxDQUFDO0dBQy9ELGdEQUFnRCxDQStENUQ7OzRGQS9EWSxnREFBZ0Q7a0JBRjVELFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDcmVhdGVPdXRwdXRDb25uZWN0aW9uSGFuZGxlckFuZFNldFRvTm9kZUhhbmRsZXJSZXF1ZXN0IH0gZnJvbSAnLi9jcmVhdGUtb3V0cHV0LWNvbm5lY3Rpb24taGFuZGxlci1hbmQtc2V0LXRvLW5vZGUtaGFuZGxlci1yZXF1ZXN0JztcbmltcG9ydCB7IEZDb21wb25lbnRzU3RvcmUgfSBmcm9tICcuLi8uLi8uLi8uLi9mLXN0b3JhZ2UnO1xuaW1wb3J0IHsgRkV4ZWN1dGlvblJlZ2lzdGVyLCBJRXhlY3V0aW9uIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBGTm9kZUJhc2UgfSBmcm9tICcuLi8uLi8uLi8uLi9mLW5vZGUnO1xuaW1wb3J0IHsgRkNvbm5lY3Rpb25CYXNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZi1jb25uZWN0aW9uJztcbmltcG9ydCB7XG4gIEJhc2VDb25uZWN0aW9uRHJhZ0hhbmRsZXIsXG4gIFNvdXJjZVRhcmdldENvbm5lY3Rpb25EcmFnSGFuZGxlcixcbiAgU291cmNlQ29ubmVjdGlvbkRyYWdIYW5kbGVyLFxufSBmcm9tICcuLi8uLi9jb25uZWN0aW9uLWRyYWctaGFuZGxlcnMnO1xuXG5ASW5qZWN0YWJsZSgpXG5ARkV4ZWN1dGlvblJlZ2lzdGVyKENyZWF0ZU91dHB1dENvbm5lY3Rpb25IYW5kbGVyQW5kU2V0VG9Ob2RlSGFuZGxlclJlcXVlc3QpXG5leHBvcnQgY2xhc3MgQ3JlYXRlT3V0cHV0Q29ubmVjdGlvbkhhbmRsZXJBbmRTZXRUb05vZGVIYW5kbGVyXG4gIGltcGxlbWVudHMgSUV4ZWN1dGlvbjxDcmVhdGVPdXRwdXRDb25uZWN0aW9uSGFuZGxlckFuZFNldFRvTm9kZUhhbmRsZXJSZXF1ZXN0LCB2b2lkPlxue1xuICBwcml2YXRlIHJlYWRvbmx5IF9zdG9yZSA9IGluamVjdChGQ29tcG9uZW50c1N0b3JlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXG4gIHByaXZhdGUgZ2V0IF9jb25uZWN0aW9ucygpOiBGQ29ubmVjdGlvbkJhc2VbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0b3JlLmZDb25uZWN0aW9ucztcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGUocmVxdWVzdDogQ3JlYXRlT3V0cHV0Q29ubmVjdGlvbkhhbmRsZXJBbmRTZXRUb05vZGVIYW5kbGVyUmVxdWVzdCk6IHZvaWQge1xuICAgIHRoaXMuX2dldE91dHB1dENvbm5lY3Rpb25zKHJlcXVlc3QuZkRyYWdIYW5kbGVyLm5vZGVPckdyb3VwKS5mb3JFYWNoKChmQ29ubmVjdGlvbikgPT4ge1xuICAgICAgdGhpcy5fY3JlYXRlQW5kU2V0Q29ubmVjdGlvblRvTm9kZUhhbmRsZXIoZkNvbm5lY3Rpb24sIHJlcXVlc3QpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIF9nZXRPdXRwdXRDb25uZWN0aW9ucyhub2RlT3JHcm91cDogRk5vZGVCYXNlKTogRkNvbm5lY3Rpb25CYXNlW10ge1xuICAgIGNvbnN0IGlkcyA9IG5ldyBTZXQodGhpcy5fZ2V0Tm9kZU91dHB1dElkcyhub2RlT3JHcm91cCkpO1xuXG4gICAgcmV0dXJuIHRoaXMuX2Nvbm5lY3Rpb25zLmZpbHRlcigoeCkgPT4gaWRzLmhhcyh4LmZPdXRwdXRJZCgpKSk7XG4gIH1cblxuICBwcml2YXRlIF9nZXROb2RlT3V0cHV0SWRzKG5vZGVPckdyb3VwOiBGTm9kZUJhc2UpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0b3JlLmZPdXRwdXRzXG4gICAgICAuZmlsdGVyKCh4KSA9PiBub2RlT3JHcm91cC5pc0NvbnRhaW5zKHguaG9zdEVsZW1lbnQpKVxuICAgICAgLm1hcCgoeCkgPT4geC5mSWQoKSk7XG4gIH1cblxuICBwcml2YXRlIF9jcmVhdGVBbmRTZXRDb25uZWN0aW9uVG9Ob2RlSGFuZGxlcihcbiAgICBjb25uZWN0aW9uOiBGQ29ubmVjdGlvbkJhc2UsXG4gICAgcmVxdWVzdDogQ3JlYXRlT3V0cHV0Q29ubmVjdGlvbkhhbmRsZXJBbmRTZXRUb05vZGVIYW5kbGVyUmVxdWVzdCxcbiAgKTogdm9pZCB7XG4gICAgbGV0IGNvbm5lY3Rpb25IYW5kbGVyID0gdGhpcy5fZ2V0RXhpc3RpbmdDb25uZWN0aW9uSGFuZGxlcihcbiAgICAgIHJlcXVlc3QuZXhpc3RpbmdDb25uZWN0aW9uSGFuZGxlcnMsXG4gICAgICBjb25uZWN0aW9uLFxuICAgICk7XG4gICAgaWYgKCFjb25uZWN0aW9uSGFuZGxlcikge1xuICAgICAgY29ubmVjdGlvbkhhbmRsZXIgPSB0aGlzLl9jcmVhdGVDb25uZWN0aW9uSGFuZGxlcihyZXF1ZXN0LmlucHV0SWRzLCBjb25uZWN0aW9uKTtcbiAgICAgIHJlcXVlc3QuZXhpc3RpbmdDb25uZWN0aW9uSGFuZGxlcnMucHVzaChjb25uZWN0aW9uSGFuZGxlcik7XG4gICAgfVxuICAgIHJlcXVlc3QuZkRyYWdIYW5kbGVyLmZTb3VyY2VIYW5kbGVycy5wdXNoKGNvbm5lY3Rpb25IYW5kbGVyKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldEV4aXN0aW5nQ29ubmVjdGlvbkhhbmRsZXIoXG4gICAgZXhpc3RpbmdDb25uZWN0aW9uSGFuZGxlcnM6IEJhc2VDb25uZWN0aW9uRHJhZ0hhbmRsZXJbXSxcbiAgICBjb25uZWN0aW9uOiBGQ29ubmVjdGlvbkJhc2UsXG4gICk6IEJhc2VDb25uZWN0aW9uRHJhZ0hhbmRsZXIgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBleGlzdGluZ0Nvbm5lY3Rpb25IYW5kbGVycy5maW5kKCh4KSA9PiB4LmZDb25uZWN0aW9uLmZJZCgpID09PSBjb25uZWN0aW9uLmZJZCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NyZWF0ZUNvbm5lY3Rpb25IYW5kbGVyKFxuICAgIGlucHV0SWRzOiBzdHJpbmdbXSxcbiAgICBjb25uZWN0aW9uOiBGQ29ubmVjdGlvbkJhc2UsXG4gICk6IEJhc2VDb25uZWN0aW9uRHJhZ0hhbmRsZXIge1xuICAgIGxldCByZXN1bHQ6IEJhc2VDb25uZWN0aW9uRHJhZ0hhbmRsZXI7XG4gICAgaWYgKGlucHV0SWRzLmluY2x1ZGVzKGNvbm5lY3Rpb24uZklucHV0SWQoKSkpIHtcbiAgICAgIHJlc3VsdCA9IG5ldyBTb3VyY2VUYXJnZXRDb25uZWN0aW9uRHJhZ0hhbmRsZXIodGhpcy5faW5qZWN0b3IsIGNvbm5lY3Rpb24pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHQgPSBuZXcgU291cmNlQ29ubmVjdGlvbkRyYWdIYW5kbGVyKHRoaXMuX2luamVjdG9yLCBjb25uZWN0aW9uKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59XG4iXX0=
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW91dHB1dC1jb25uZWN0aW9uLWhhbmRsZXItYW5kLXNldC10by1ub2RlLWhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2Ytbm9kZS1tb3ZlL2NyZWF0ZS1kcmFnLW1vZGVsLWZyb20tc2VsZWN0aW9uL2NyZWF0ZS1vdXRwdXQtY29ubmVjdGlvbi1oYW5kbGVyLWFuZC1zZXQtdG8tbm9kZS1oYW5kbGVyL2NyZWF0ZS1vdXRwdXQtY29ubmVjdGlvbi1oYW5kbGVyLWFuZC1zZXQtdG8tbm9kZS1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLHVEQUF1RCxFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFDN0ksT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFFLGtCQUFrQixFQUFjLE1BQU0sa0JBQWtCLENBQUM7QUFFbEUsT0FBTyxFQUVMLGlDQUFpQyxFQUNqQywyQkFBMkIsR0FDNUIsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFLakMsSUFBTSxnREFBZ0QsR0FBdEQsTUFBTSxnREFBZ0Q7SUFHMUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ2xDLFNBQVMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFOUMsSUFBWSxZQUFZO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7SUFDbEMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxPQUFnRTtRQUM1RSxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUNuRixJQUFJLENBQUMsb0NBQW9DLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2xFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLHFCQUFxQixDQUFDLFdBQXNCO1FBQ2pELE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBRXpELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRU8saUJBQWlCLENBQUMsV0FBc0I7UUFDOUMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVE7YUFDeEIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUNwRCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFTyxvQ0FBb0MsQ0FDMUMsVUFBMkIsRUFDM0IsT0FBZ0U7UUFFaEUsSUFBSSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsNkJBQTZCLENBQ3hELE9BQU8sQ0FBQywwQkFBMEIsRUFDbEMsVUFBVSxDQUNYLENBQUM7UUFDRixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUN2QixpQkFBaUIsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztZQUNoRixPQUFPLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDN0QsQ0FBQztRQUNELE9BQU8sQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFTyw2QkFBNkIsQ0FDbkMsMEJBQXVELEVBQ3ZELFVBQTJCO1FBRTNCLE9BQU8sMEJBQTBCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxLQUFLLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQzFGLENBQUM7SUFFTyx3QkFBd0IsQ0FDOUIsUUFBa0IsRUFDbEIsVUFBMkI7UUFFM0IsSUFBSSxNQUFpQyxDQUFDO1FBQ3RDLElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQzdDLE1BQU0sR0FBRyxJQUFJLGlDQUFpQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDN0UsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLEdBQUcsSUFBSSwyQkFBMkIsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO3dHQTlEVSxnREFBZ0Q7NEdBQWhELGdEQUFnRDs7QUFBaEQsZ0RBQWdEO0lBRDVELGtCQUFrQixDQUFDLHVEQUF1RCxDQUFDO0dBQy9ELGdEQUFnRCxDQStENUQ7OzRGQS9EWSxnREFBZ0Q7a0JBRjVELFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDcmVhdGVPdXRwdXRDb25uZWN0aW9uSGFuZGxlckFuZFNldFRvTm9kZUhhbmRsZXJSZXF1ZXN0IH0gZnJvbSAnLi9jcmVhdGUtb3V0cHV0LWNvbm5lY3Rpb24taGFuZGxlci1hbmQtc2V0LXRvLW5vZGUtaGFuZGxlci1yZXF1ZXN0JztcbmltcG9ydCB7IEZDb21wb25lbnRzU3RvcmUgfSBmcm9tICcuLi8uLi8uLi8uLi9mLXN0b3JhZ2UnO1xuaW1wb3J0IHsgRkV4ZWN1dGlvblJlZ2lzdGVyLCBJRXhlY3V0aW9uIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBGTm9kZUJhc2UgfSBmcm9tICcuLi8uLi8uLi8uLi9mLW5vZGUnO1xuaW1wb3J0IHtcbiAgQmFzZUNvbm5lY3Rpb25EcmFnSGFuZGxlcixcbiAgU291cmNlVGFyZ2V0Q29ubmVjdGlvbkRyYWdIYW5kbGVyLFxuICBTb3VyY2VDb25uZWN0aW9uRHJhZ0hhbmRsZXIsXG59IGZyb20gJy4uLy4uL2Nvbm5lY3Rpb24tZHJhZy1oYW5kbGVycyc7XG5pbXBvcnQgeyBGQ29ubmVjdGlvbkJhc2UgfSBmcm9tICcuLi8uLi8uLi8uLi9mLWNvbm5lY3Rpb24tdjInO1xuXG5ASW5qZWN0YWJsZSgpXG5ARkV4ZWN1dGlvblJlZ2lzdGVyKENyZWF0ZU91dHB1dENvbm5lY3Rpb25IYW5kbGVyQW5kU2V0VG9Ob2RlSGFuZGxlclJlcXVlc3QpXG5leHBvcnQgY2xhc3MgQ3JlYXRlT3V0cHV0Q29ubmVjdGlvbkhhbmRsZXJBbmRTZXRUb05vZGVIYW5kbGVyXG4gIGltcGxlbWVudHMgSUV4ZWN1dGlvbjxDcmVhdGVPdXRwdXRDb25uZWN0aW9uSGFuZGxlckFuZFNldFRvTm9kZUhhbmRsZXJSZXF1ZXN0LCB2b2lkPlxue1xuICBwcml2YXRlIHJlYWRvbmx5IF9zdG9yZSA9IGluamVjdChGQ29tcG9uZW50c1N0b3JlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXG4gIHByaXZhdGUgZ2V0IF9jb25uZWN0aW9ucygpOiBGQ29ubmVjdGlvbkJhc2VbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0b3JlLmZDb25uZWN0aW9ucztcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGUocmVxdWVzdDogQ3JlYXRlT3V0cHV0Q29ubmVjdGlvbkhhbmRsZXJBbmRTZXRUb05vZGVIYW5kbGVyUmVxdWVzdCk6IHZvaWQge1xuICAgIHRoaXMuX2dldE91dHB1dENvbm5lY3Rpb25zKHJlcXVlc3QuZkRyYWdIYW5kbGVyLm5vZGVPckdyb3VwKS5mb3JFYWNoKChmQ29ubmVjdGlvbikgPT4ge1xuICAgICAgdGhpcy5fY3JlYXRlQW5kU2V0Q29ubmVjdGlvblRvTm9kZUhhbmRsZXIoZkNvbm5lY3Rpb24sIHJlcXVlc3QpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIF9nZXRPdXRwdXRDb25uZWN0aW9ucyhub2RlT3JHcm91cDogRk5vZGVCYXNlKTogRkNvbm5lY3Rpb25CYXNlW10ge1xuICAgIGNvbnN0IGlkcyA9IG5ldyBTZXQodGhpcy5fZ2V0Tm9kZU91dHB1dElkcyhub2RlT3JHcm91cCkpO1xuXG4gICAgcmV0dXJuIHRoaXMuX2Nvbm5lY3Rpb25zLmZpbHRlcigoeCkgPT4gaWRzLmhhcyh4LmZPdXRwdXRJZCgpKSk7XG4gIH1cblxuICBwcml2YXRlIF9nZXROb2RlT3V0cHV0SWRzKG5vZGVPckdyb3VwOiBGTm9kZUJhc2UpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0b3JlLmZPdXRwdXRzXG4gICAgICAuZmlsdGVyKCh4KSA9PiBub2RlT3JHcm91cC5pc0NvbnRhaW5zKHguaG9zdEVsZW1lbnQpKVxuICAgICAgLm1hcCgoeCkgPT4geC5mSWQoKSk7XG4gIH1cblxuICBwcml2YXRlIF9jcmVhdGVBbmRTZXRDb25uZWN0aW9uVG9Ob2RlSGFuZGxlcihcbiAgICBjb25uZWN0aW9uOiBGQ29ubmVjdGlvbkJhc2UsXG4gICAgcmVxdWVzdDogQ3JlYXRlT3V0cHV0Q29ubmVjdGlvbkhhbmRsZXJBbmRTZXRUb05vZGVIYW5kbGVyUmVxdWVzdCxcbiAgKTogdm9pZCB7XG4gICAgbGV0IGNvbm5lY3Rpb25IYW5kbGVyID0gdGhpcy5fZ2V0RXhpc3RpbmdDb25uZWN0aW9uSGFuZGxlcihcbiAgICAgIHJlcXVlc3QuZXhpc3RpbmdDb25uZWN0aW9uSGFuZGxlcnMsXG4gICAgICBjb25uZWN0aW9uLFxuICAgICk7XG4gICAgaWYgKCFjb25uZWN0aW9uSGFuZGxlcikge1xuICAgICAgY29ubmVjdGlvbkhhbmRsZXIgPSB0aGlzLl9jcmVhdGVDb25uZWN0aW9uSGFuZGxlcihyZXF1ZXN0LmlucHV0SWRzLCBjb25uZWN0aW9uKTtcbiAgICAgIHJlcXVlc3QuZXhpc3RpbmdDb25uZWN0aW9uSGFuZGxlcnMucHVzaChjb25uZWN0aW9uSGFuZGxlcik7XG4gICAgfVxuICAgIHJlcXVlc3QuZkRyYWdIYW5kbGVyLmZTb3VyY2VIYW5kbGVycy5wdXNoKGNvbm5lY3Rpb25IYW5kbGVyKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldEV4aXN0aW5nQ29ubmVjdGlvbkhhbmRsZXIoXG4gICAgZXhpc3RpbmdDb25uZWN0aW9uSGFuZGxlcnM6IEJhc2VDb25uZWN0aW9uRHJhZ0hhbmRsZXJbXSxcbiAgICBjb25uZWN0aW9uOiBGQ29ubmVjdGlvbkJhc2UsXG4gICk6IEJhc2VDb25uZWN0aW9uRHJhZ0hhbmRsZXIgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBleGlzdGluZ0Nvbm5lY3Rpb25IYW5kbGVycy5maW5kKCh4KSA9PiB4LmZDb25uZWN0aW9uLmZJZCgpID09PSBjb25uZWN0aW9uLmZJZCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NyZWF0ZUNvbm5lY3Rpb25IYW5kbGVyKFxuICAgIGlucHV0SWRzOiBzdHJpbmdbXSxcbiAgICBjb25uZWN0aW9uOiBGQ29ubmVjdGlvbkJhc2UsXG4gICk6IEJhc2VDb25uZWN0aW9uRHJhZ0hhbmRsZXIge1xuICAgIGxldCByZXN1bHQ6IEJhc2VDb25uZWN0aW9uRHJhZ0hhbmRsZXI7XG4gICAgaWYgKGlucHV0SWRzLmluY2x1ZGVzKGNvbm5lY3Rpb24uZklucHV0SWQoKSkpIHtcbiAgICAgIHJlc3VsdCA9IG5ldyBTb3VyY2VUYXJnZXRDb25uZWN0aW9uRHJhZ0hhbmRsZXIodGhpcy5faW5qZWN0b3IsIGNvbm5lY3Rpb24pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHQgPSBuZXcgU291cmNlQ29ubmVjdGlvbkRyYWdIYW5kbGVyKHRoaXMuX2luamVjdG9yLCBjb25uZWN0aW9uKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59XG4iXX0=
@@ -5,4 +5,4 @@ export class CreateSnapLinesRequest {
5
5
  this.summaryHandler = summaryHandler;
6
6
  }
7
7
  }
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXNuYXAtbGluZXMtcmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1kcmFnZ2FibGUvZi1ub2RlLW1vdmUvY3JlYXRlLXNuYXAtbGluZXMvY3JlYXRlLXNuYXAtbGluZXMtcmVxdWVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sc0JBQXNCO0lBSWY7SUFIbEIsTUFBTSxDQUFVLE1BQU0sR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQUUxRCxZQUNrQixjQUFzQztRQUF0QyxtQkFBYyxHQUFkLGNBQWMsQ0FBd0I7SUFFeEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vdmVTdW1tYXJ5RHJhZ0hhbmRsZXIgfSBmcm9tIFwiLi4vbW92ZS1zdW1tYXJ5LWRyYWctaGFuZGxlclwiO1xuXG5leHBvcnQgY2xhc3MgQ3JlYXRlU25hcExpbmVzUmVxdWVzdCB7XG4gIHN0YXRpYyByZWFkb25seSBmVG9rZW4gPSBTeW1ib2woJ0NyZWF0ZVNuYXBMaW5lc1JlcXVlc3QnKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgc3VtbWFyeUhhbmRsZXI6IE1vdmVTdW1tYXJ5RHJhZ0hhbmRsZXIsXG4gICkge1xuICB9XG59XG4iXX0=
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXNuYXAtbGluZXMtcmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1kcmFnZ2FibGUvZi1ub2RlLW1vdmUvY3JlYXRlLXNuYXAtbGluZXMvY3JlYXRlLXNuYXAtbGluZXMtcmVxdWVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sc0JBQXNCO0lBR0w7SUFGNUIsTUFBTSxDQUFVLE1BQU0sR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQUUxRCxZQUE0QixjQUFzQztRQUF0QyxtQkFBYyxHQUFkLGNBQWMsQ0FBd0I7SUFBRyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW92ZVN1bW1hcnlEcmFnSGFuZGxlciB9IGZyb20gJy4uL21vdmUtc3VtbWFyeS1kcmFnLWhhbmRsZXInO1xuXG5leHBvcnQgY2xhc3MgQ3JlYXRlU25hcExpbmVzUmVxdWVzdCB7XG4gIHN0YXRpYyByZWFkb25seSBmVG9rZW4gPSBTeW1ib2woJ0NyZWF0ZVNuYXBMaW5lc1JlcXVlc3QnKTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgc3VtbWFyeUhhbmRsZXI6IE1vdmVTdW1tYXJ5RHJhZ0hhbmRsZXIpIHt9XG59XG4iXX0=
@@ -1,7 +1,7 @@
1
1
  import { PointExtensions, RectExtensions } from '@foblex/2d';
2
- import { F_CSS_CLASS, GetNormalizedElementRectRequest } from "../../domain";
3
- import { DragConstraintPipeline, expandRectFromBaseline } from "./constraint";
4
- import { FMediator } from "@foblex/mediator";
2
+ import { F_CSS_CLASS, GetNormalizedElementRectRequest } from '../../domain';
3
+ import { DragConstraintPipeline, expandRectFromBaseline } from './constraint';
4
+ import { FMediator } from '@foblex/mediator';
5
5
  export class MoveDragHandler {
6
6
  _injector;
7
7
  nodeOrGroup;
@@ -22,7 +22,9 @@ export class MoveDragHandler {
22
22
  this.childrenNodeAndGroups = childrenNodeAndGroups;
23
23
  this.fSourceHandlers = fSourceHandlers;
24
24
  this.fTargetHandlers = fTargetHandlers;
25
- this._startRect = _injector.get(FMediator).execute(new GetNormalizedElementRectRequest(nodeOrGroup.hostElement));
25
+ this._startRect = _injector
26
+ .get(FMediator)
27
+ .execute(new GetNormalizedElementRectRequest(nodeOrGroup.hostElement));
26
28
  this._startPosition = { ...nodeOrGroup._position };
27
29
  }
28
30
  setLimits(limits) {
@@ -92,4 +94,4 @@ export class MoveDragHandler {
92
94
  });
93
95
  }
94
96
  }
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW92ZS1kcmFnLWhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2Ytbm9kZS1tb3ZlL21vdmUtZHJhZy1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsZUFBZSxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUk1RSxPQUFPLEVBQUUsV0FBVyxFQUFFLCtCQUErQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRzVFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxzQkFBc0IsRUFBcUIsTUFBTSxjQUFjLENBQUM7QUFDakcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTdDLE1BQU0sT0FBTyxlQUFlO0lBZVA7SUFDVjtJQUNBO0lBQ0E7SUFDQTtJQWpCTyxVQUFVLEdBQUcsV0FBVyxDQUFDO0lBRXhCLGNBQWMsR0FBRyxlQUFlLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDOUMsVUFBVSxHQUFHLGNBQWMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUVsRCxpQkFBaUIsR0FBbUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQztJQUUvRSxnQkFBZ0IsR0FBd0IsRUFBRSxDQUFDO0lBQzNDLFNBQVMsQ0FBMEI7SUFDbkMsT0FBTyxHQUF1QixJQUFJLENBQUM7SUFDbkMsYUFBYSxHQUFHLGVBQWUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUVyRCxZQUNtQixTQUFtQixFQUM3QixXQUFzQixFQUN0Qix3QkFBMkMsRUFBRSxFQUM3QyxrQkFBK0MsRUFBRSxFQUNqRCxrQkFBK0MsRUFBRTtRQUp2QyxjQUFTLEdBQVQsU0FBUyxDQUFVO1FBQzdCLGdCQUFXLEdBQVgsV0FBVyxDQUFXO1FBQ3RCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBd0I7UUFDN0Msb0JBQWUsR0FBZixlQUFlLENBQWtDO1FB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QUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2xGLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFTyx3QkFBd0I7UUFDOUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUM5QyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM1QyxNQUFNLFlBQVksR0FBRyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25HLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDM0MsU0FBUyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3RELENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElQb2ludCwgSVJlY3QsIFBvaW50RXh0ZW5zaW9ucywgUmVjdEV4dGVuc2lvbnMgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IElGRHJhZ0hhbmRsZXIgfSBmcm9tICcuLi9mLWRyYWctaGFuZGxlcic7XG5pbXBvcnQgeyBGTm9kZUJhc2UgfSBmcm9tICcuLi8uLi9mLW5vZGUnO1xuaW1wb3J0IHsgQmFzZUNvbm5lY3Rpb25EcmFnSGFuZGxlciB9IGZyb20gJy4vY29ubmVjdGlvbi1kcmFnLWhhbmRsZXJzJztcbmltcG9ydCB7IEZfQ1NTX0NMQVNTLCBHZXROb3JtYWxpemVkRWxlbWVudFJlY3RSZXF1ZXN0IH0gZnJvbSBcIi4uLy4uL2RvbWFpblwiO1xuaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgSURyYWdMaW1pdHMgfSBmcm9tIFwiLi9jcmVhdGUtZHJhZy1tb2RlbC1mcm9tLXNlbGVjdGlvblwiO1xuaW1wb3J0IHsgRHJhZ0NvbnN0cmFpbnRQaXBlbGluZSwgZXhwYW5kUmVjdEZyb21CYXNlbGluZSwgSUNvbnN0cmFpbnRSZXN1bHQgfSBmcm9tIFwiLi9jb25zdHJhaW50XCI7XG5pbXBvcnQgeyBGTWVkaWF0b3IgfSBmcm9tIFwiQGZvYmxleC9tZWRpYXRvclwiO1xuXG5leHBvcnQgY2xhc3MgTW92ZURyYWdIYW5kbGVyIGltcGxlbWVudHMgSUZEcmFnSGFuZGxlciB7XG5cbiAgcHVibGljIHJlYWRvbmx5IGZFdmVudFR5cGUgPSAnbW92ZS1ub2RlJztcblxuICBwcml2YXRlIHJlYWRvbmx5IF9zdGFydFBvc2l0aW9uID0gUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfc3RhcnRSZWN0ID0gUmVjdEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgpO1xuXG4gIHByaXZhdGUgX2FwcGx5Q29uc3RyYWludHM6IChkaWZmZXJlbmNlOiBJUG9pbnQpID0+IElQb2ludCA9IChkaWZmZXJlbmNlKSA9PiBkaWZmZXJlbmNlO1xuXG4gIHByaXZhdGUgX2xhc3RTb2Z0UmVzdWx0czogSUNvbnN0cmFpbnRSZXN1bHRbXSA9IFtdO1xuICBwcml2YXRlIF9waXBlbGluZSE6IERyYWdDb25zdHJhaW50UGlwZWxpbmU7XG4gIHByaXZhdGUgX2xpbWl0czogSURyYWdMaW1pdHMgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfbGFzdFBvc2l0aW9uID0gUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9pbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHVibGljIG5vZGVPckdyb3VwOiBGTm9kZUJhc2UsXG4gICAgcHVibGljIGNoaWxkcmVuTm9kZUFuZEdyb3VwczogTW92ZURyYWdIYW5kbGVyW10gPSBbXSxcbiAgICBwdWJsaWMgZlNvdXJjZUhhbmRsZXJzOiBCYXNlQ29ubmVjdGlvbkRyYWdIYW5kbGVyW10gPSBbXSxcbiAgICBwdWJsaWMgZlRhcmdldEhhbmRsZXJzOiBCYXNlQ29ubmVjdGlvbkRyYWdIYW5kbGVyW10gPSBbXSxcbiAgKSB7XG4gICAgdGhpcy5fc3RhcnRSZWN0ID0gX2luamVjdG9yLmdldChGTWVkaWF0b3IpLmV4ZWN1dGUobmV3IEdldE5vcm1hbGl6ZWRFbGVtZW50UmVjdFJlcXVlc3Qobm9kZU9yR3JvdXAuaG9zdEVsZW1lbnQpKVxuICAgIHRoaXMuX3N0YXJ0UG9zaXRpb24gPSB7IC4uLm5vZGVPckdyb3VwLl9wb3NpdGlvbiB9O1xuICB9XG5cbiAgcHVibGljIHNldExpbWl0cyhsaW1pdHM6IElEcmFnTGltaXRzKTogdm9pZCB7XG4gICAgdGhpcy5fbGltaXRzID0gbGltaXRzO1xuICAgIHRoaXMuX3BpcGVsaW5lID0gbmV3IERyYWdDb25zdHJhaW50UGlwZWxpbmUodGhpcy5faW5qZWN0b3IsIHRoaXMuX3N0YXJ0UG9zaXRpb24sIGxpbWl0cyk7XG5cbiAgICB0aGlzLl9hcHBseUNvbnN0cmFpbnRzID0gKGRpZmZlcmVuY2U6IElQb2ludCkgPT4ge1xuICAgICAgY29uc3Qgc3VtbWFyeSA9IHRoaXMuX3BpcGVsaW5lLmFwcGx5KGRpZmZlcmVuY2UpO1xuICAgICAgdGhpcy5fYXBwbHlTb2Z0RXhwYW5zaW9ucyhzdW1tYXJ5LnNvZnQpO1xuXG4gICAgICByZXR1cm4gc3VtbWFyeS5oYXJkRGlmZmVyZW5jZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9hcHBseVNvZnRFeHBhbnNpb25zKFxuICAgIHNvZnRSZXN1bHRzOiBJQ29uc3RyYWludFJlc3VsdFtdLFxuICApOiB2b2lkIHtcbiAgICB0aGlzLl9sYXN0U29mdFJlc3VsdHMgPSBzb2Z0UmVzdWx0cztcbiAgICB0aGlzLl9sYXN0U29mdFJlc3VsdHMuZm9yRWFjaCgocmVzdWx0LCBpbmRleCkgPT4ge1xuICAgICAgY29uc3Qgc29mdExpbWl0ID0gdGhpcy5fbGltaXRzIS5zb2Z0W2luZGV4XTtcbiAgICAgIGNvbnN0IGV4cGFuZGVkUmVjdCA9IGV4cGFuZFJlY3RGcm9tQmFzZWxpbmUoc29mdExpbWl0LmJvdW5kaW5nUmVjdCwgcmVzdWx0Lm92ZXJmbG93LCByZXN1bHQuZWRnZXMpO1xuICAgICAgdGhpcy5fY29tbWl0UGFyZW50UmVjdChzb2Z0TGltaXQubm9kZU9yR3JvdXAsIGV4cGFuZGVkUmVjdCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9jb21taXRQYXJlbnRSZWN0KHBhcmVudDogRk5vZGVCYXNlLCByZWN0OiBJUmVjdCk6IHZvaWQge1xuICAgIHBhcmVudC51cGRhdGVTaXplKHsgd2lkdGg6IHJlY3Qud2lkdGgsIGhlaWdodDogcmVjdC5oZWlnaHQgfSk7XG4gICAgcGFyZW50LnVwZGF0ZVBvc2l0aW9uKHsgeDogcmVjdC54LCB5OiByZWN0LnkgfSk7XG4gICAgcGFyZW50LnJlZHJhdygpO1xuICB9XG5cbiAgcHVibGljIGdldExhc3RSZWN0KCk6IElSZWN0IHtcbiAgICByZXR1cm4gUmVjdEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSh0aGlzLl9sYXN0UG9zaXRpb24ueCwgdGhpcy5fbGFzdFBvc2l0aW9uLnksIHRoaXMuX3N0YXJ0UmVjdC53aWR0aCwgdGhpcy5fc3RhcnRSZWN0LmhlaWdodCk7XG4gIH1cblxuICBwdWJsaWMgcHJlcGFyZURyYWdTZXF1ZW5jZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNoaWxkcmVuTm9kZUFuZEdyb3Vwcy5mb3JFYWNoKCh4KSA9PiB4LnByZXBhcmVEcmFnU2VxdWVuY2UoKSk7XG4gICAgdGhpcy5ub2RlT3JHcm91cC5ob3N0RWxlbWVudC5jbGFzc0xpc3QuYWRkKEZfQ1NTX0NMQVNTLkRSQUdfQU5EX0RST1AuRFJBR0dJTkcpO1xuICB9XG5cbiAgcHVibGljIG9uUG9pbnRlck1vdmUoZGlmZmVyZW5jZTogSVBvaW50KTogdm9pZCB7XG4gICAgY29uc3QgZGlmZmVyZW5jZVdpdGhSZXN0cmljdGlvbnMgPSB0aGlzLl9hcHBseUNvbnN0cmFpbnRzKGRpZmZlcmVuY2UpO1xuXG4gICAgdGhpcy5jaGlsZHJlbk5vZGVBbmRHcm91cHMuZm9yRWFjaCgoeCkgPT4geC5vblBvaW50ZXJNb3ZlKGRpZmZlcmVuY2VXaXRoUmVzdHJpY3Rpb25zKSk7XG4gICAgdGhpcy5fcmVkcmF3KHRoaXMuX25vZGVPckdyb3VwTmV3UG9zaXRpb24oZGlmZmVyZW5jZVdpdGhSZXN0cmljdGlvbnMpKTtcblxuICAgIHRoaXMuZlNvdXJjZUhhbmRsZXJzLmZvckVhY2goKHgpID0+IHguc2V0U291cmNlRGlmZmVyZW5jZShkaWZmZXJlbmNlV2l0aFJlc3RyaWN0aW9ucykpO1xuICAgIHRoaXMuZlRhcmdldEhhbmRsZXJzLmZvckVhY2goKHgpID0+IHguc2V0VGFyZ2V0RGlmZmVyZW5jZShkaWZmZXJlbmNlV2l0aFJlc3RyaWN0aW9ucykpO1xuICB9XG5cbiAgcHVibGljIGFzc2lnbkZpbmFsQ29uc3RyYWludHMoKTogdm9pZCB7XG4gICAgdGhpcy5fYXBwbHlDb25zdHJhaW50cyA9IChkaWZmZXJlbmNlOiBJUG9pbnQpID0+IHtcbiAgICAgIGNvbnN0IHN1bW1hcnkgPSB0aGlzLl9waXBlbGluZS5maW5hbGl6ZShkaWZmZXJlbmNlKTtcbiAgICAgIHRoaXMuX2FwcGx5U29mdEV4cGFuc2lvbnMoc3VtbWFyeS5zb2Z0KTtcblxuICAgICAgcmV0dXJuIHN1bW1hcnkuaGFyZERpZmZlcmVuY2U7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfbm9kZU9yR3JvdXBOZXdQb3NpdGlvbihkaWZmZXJlbmNlOiBJUG9pbnQpOiBJUG9pbnQge1xuICAgIHJldHVybiBQb2ludEV4dGVuc2lvbnMuc3VtKHRoaXMuX3N0YXJ0UG9zaXRpb24sIGRpZmZlcmVuY2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVkcmF3KHBvc2l0aW9uOiBJUG9pbnQpOiB2b2lkIHtcbiAgICB0aGlzLl9sYXN0UG9zaXRpb24gPSBwb3NpdGlvbjtcbiAgICB0aGlzLm5vZGVPckdyb3VwLnVwZGF0ZVBvc2l0aW9uKHBvc2l0aW9uKTtcbiAgICB0aGlzLm5vZGVPckdyb3VwLnJlZHJhdygpO1xuICB9XG5cbiAgcHVibGljIG9uUG9pbnRlclVwKCk6IHZvaWQge1xuICAgIHRoaXMuY2hpbGRyZW5Ob2RlQW5kR3JvdXBzLmZvckVhY2goKHgpID0+IHgub25Qb2ludGVyVXAoKSk7XG4gICAgdGhpcy5ub2RlT3JHcm91cC5wb3NpdGlvbi5zZXQodGhpcy5ub2RlT3JHcm91cC5fcG9zaXRpb24pO1xuICAgIHRoaXMubm9kZU9yR3JvdXAuaG9zdEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShGX0NTU19DTEFTUy5EUkFHX0FORF9EUk9QLkRSQUdHSU5HKTtcbiAgICB0aGlzLl9lbWl0RXZlbnRJZk5vZGVFeHBhbmRlZCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZW1pdEV2ZW50SWZOb2RlRXhwYW5kZWQoKTogdm9pZCB7XG4gICAgdGhpcy5fbGFzdFNvZnRSZXN1bHRzLmZvckVhY2goKHJlc3VsdCwgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IHNvZnRMaW1pdCA9IHRoaXMuX2xpbWl0cyEuc29mdFtpbmRleF07XG4gICAgICBjb25zdCBleHBhbmRlZFJlY3QgPSBleHBhbmRSZWN0RnJvbUJhc2VsaW5lKHNvZnRMaW1pdC5ib3VuZGluZ1JlY3QsIHJlc3VsdC5vdmVyZmxvdywgcmVzdWx0LmVkZ2VzKTtcbiAgICAgIGlmIChyZXN1bHQub3ZlcmZsb3cueCB8fCByZXN1bHQub3ZlcmZsb3cueSkge1xuICAgICAgICBzb2Z0TGltaXQubm9kZU9yR3JvdXAuc2l6ZUNoYW5nZS5lbWl0KGV4cGFuZGVkUmVjdCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW92ZS1kcmFnLWhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2Ytbm9kZS1tb3ZlL21vdmUtZHJhZy1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsZUFBZSxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUk1RSxPQUFPLEVBQUUsV0FBVyxFQUFFLCtCQUErQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRzVFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxzQkFBc0IsRUFBcUIsTUFBTSxjQUFjLENBQUM7QUFDakcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTdDLE1BQU0sT0FBTyxlQUFlO0lBY1A7SUFDVjtJQUNBO0lBQ0E7SUFDQTtJQWpCTyxVQUFVLEdBQUcsV0FBVyxDQUFDO0lBRXhCLGNBQWMsR0FBRyxlQUFlLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDOUMsVUFBVSxHQUFHLGNBQWMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUVsRCxpQkFBaUIsR0FBbUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQztJQUUvRSxnQkFBZ0IsR0FBd0IsRUFBRSxDQUFDO0lBQzNDLFNBQVMsQ0FBMEI7SUFDbkMsT0FBTyxHQUF1QixJQUFJLENBQUM7SUFDbkMsYUFBYSxHQUFHLGVBQWUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUVyRCxZQUNtQixTQUFtQixFQUM3QixXQUFzQixFQUN0Qix3QkFBMkMsRUFBRSxFQUM3QyxrQkFBK0MsRUFBRSxFQUNqRCxrQkFBK0MsRUFBRTtRQUp2QyxjQUFTLEdBQVQsU0FBUyxDQUFVO1FBQzdCLGdCQUFXLEdBQVgsV0FBVyxDQUFXO1FBQ3RCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBd0I7UUFDN0Msb0JBQWUsR0FBZixlQUFlLENBQWtDO1FB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QUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNsRixJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRU8sd0JBQXdCO1FBQzlCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDOUMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDNUMsTUFBTSxZQUFZLEdBQUcsc0JBQXNCLENBQ3pDLFNBQVMsQ0FBQyxZQUFZLEVBQ3RCLE1BQU0sQ0FBQyxRQUFRLEVBQ2YsTUFBTSxDQUFDLEtBQUssQ0FDYixDQUFDO1lBQ0YsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUMzQyxTQUFTLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDdEQsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVBvaW50LCBJUmVjdCwgUG9pbnRFeHRlbnNpb25zLCBSZWN0RXh0ZW5zaW9ucyB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgSUZEcmFnSGFuZGxlciB9IGZyb20gJy4uL2YtZHJhZy1oYW5kbGVyJztcbmltcG9ydCB7IEZOb2RlQmFzZSB9IGZyb20gJy4uLy4uL2Ytbm9kZSc7XG5pbXBvcnQgeyBCYXNlQ29ubmVjdGlvbkRyYWdIYW5kbGVyIH0gZnJvbSAnLi9jb25uZWN0aW9uLWRyYWctaGFuZGxlcnMnO1xuaW1wb3J0IHsgRl9DU1NfQ0xBU1MsIEdldE5vcm1hbGl6ZWRFbGVtZW50UmVjdFJlcXVlc3QgfSBmcm9tICcuLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElEcmFnTGltaXRzIH0gZnJvbSAnLi9jcmVhdGUtZHJhZy1tb2RlbC1mcm9tLXNlbGVjdGlvbic7XG5pbXBvcnQgeyBEcmFnQ29uc3RyYWludFBpcGVsaW5lLCBleHBhbmRSZWN0RnJvbUJhc2VsaW5lLCBJQ29uc3RyYWludFJlc3VsdCB9IGZyb20gJy4vY29uc3RyYWludCc7XG5pbXBvcnQgeyBGTWVkaWF0b3IgfSBmcm9tICdAZm9ibGV4L21lZGlhdG9yJztcblxuZXhwb3J0IGNsYXNzIE1vdmVEcmFnSGFuZGxlciBpbXBsZW1lbnRzIElGRHJhZ0hhbmRsZXIge1xuICBwdWJsaWMgcmVhZG9ubHkgZkV2ZW50VHlwZSA9ICdtb3ZlLW5vZGUnO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3N0YXJ0UG9zaXRpb24gPSBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zdGFydFJlY3QgPSBSZWN0RXh0ZW5zaW9ucy5pbml0aWFsaXplKCk7XG5cbiAgcHJpdmF0ZSBfYXBwbHlDb25zdHJhaW50czogKGRpZmZlcmVuY2U6IElQb2ludCkgPT4gSVBvaW50ID0gKGRpZmZlcmVuY2UpID0+IGRpZmZlcmVuY2U7XG5cbiAgcHJpdmF0ZSBfbGFzdFNvZnRSZXN1bHRzOiBJQ29uc3RyYWludFJlc3VsdFtdID0gW107XG4gIHByaXZhdGUgX3BpcGVsaW5lITogRHJhZ0NvbnN0cmFpbnRQaXBlbGluZTtcbiAgcHJpdmF0ZSBfbGltaXRzOiBJRHJhZ0xpbWl0cyB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9sYXN0UG9zaXRpb24gPSBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2luamVjdG9yOiBJbmplY3RvcixcbiAgICBwdWJsaWMgbm9kZU9yR3JvdXA6IEZOb2RlQmFzZSxcbiAgICBwdWJsaWMgY2hpbGRyZW5Ob2RlQW5kR3JvdXBzOiBNb3ZlRHJhZ0hhbmRsZXJbXSA9IFtdLFxuICAgIHB1YmxpYyBmU291cmNlSGFuZGxlcnM6IEJhc2VDb25uZWN0aW9uRHJhZ0hhbmRsZXJbXSA9IFtdLFxuICAgIHB1YmxpYyBmVGFyZ2V0SGFuZGxlcnM6IEJhc2VDb25uZWN0aW9uRHJhZ0hhbmRsZXJbXSA9IFtdLFxuICApIHtcbiAgICB0aGlzLl9zdGFydFJlY3QgPSBfaW5qZWN0b3JcbiAgICAgIC5nZXQoRk1lZGlhdG9yKVxuICAgICAgLmV4ZWN1dGUobmV3IEdldE5vcm1hbGl6ZWRFbGVtZW50UmVjdFJlcXVlc3Qobm9kZU9yR3JvdXAuaG9zdEVsZW1lbnQpKTtcbiAgICB0aGlzLl9zdGFydFBvc2l0aW9uID0geyAuLi5ub2RlT3JHcm91cC5fcG9zaXRpb24gfTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRMaW1pdHMobGltaXRzOiBJRHJhZ0xpbWl0cyk6IHZvaWQge1xuICAgIHRoaXMuX2xpbWl0cyA9IGxpbWl0cztcbiAgICB0aGlzLl9waXBlbGluZSA9IG5ldyBEcmFnQ29uc3RyYWludFBpcGVsaW5lKHRoaXMuX2luamVjdG9yLCB0aGlzLl9zdGFydFBvc2l0aW9uLCBsaW1pdHMpO1xuXG4gICAgdGhpcy5fYXBwbHlDb25zdHJhaW50cyA9IChkaWZmZXJlbmNlKSA9PiB7XG4gICAgICBjb25zdCBzdW1tYXJ5ID0gdGhpcy5fcGlwZWxpbmUuYXBwbHkoZGlmZmVyZW5jZSk7XG4gICAgICB0aGlzLl9hcHBseVNvZnRFeHBhbnNpb25zKHN1bW1hcnkuc29mdCk7XG5cbiAgICAgIHJldHVybiBzdW1tYXJ5LmhhcmREaWZmZXJlbmNlO1xuICAgIH07XG4gIH1cblxuICBwcml2YXRlIF9hcHBseVNvZnRFeHBhbnNpb25zKHNvZnRSZXN1bHRzOiBJQ29uc3RyYWludFJlc3VsdFtdKTogdm9pZCB7XG4gICAgdGhpcy5fbGFzdFNvZnRSZXN1bHRzID0gc29mdFJlc3VsdHM7XG4gICAgdGhpcy5fbGFzdFNvZnRSZXN1bHRzLmZvckVhY2goKHJlc3VsdCwgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IHNvZnRMaW1pdCA9IHRoaXMuX2xpbWl0cyEuc29mdFtpbmRleF07XG4gICAgICBjb25zdCBleHBhbmRlZFJlY3QgPSBleHBhbmRSZWN0RnJvbUJhc2VsaW5lKFxuICAgICAgICBzb2Z0TGltaXQuYm91bmRpbmdSZWN0LFxuICAgICAgICByZXN1bHQub3ZlcmZsb3csXG4gICAgICAgIHJlc3VsdC5lZGdlcyxcbiAgICAgICk7XG4gICAgICB0aGlzLl9jb21taXRQYXJlbnRSZWN0KHNvZnRMaW1pdC5ub2RlT3JHcm91cCwgZXhwYW5kZWRSZWN0KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2NvbW1pdFBhcmVudFJlY3QocGFyZW50OiBGTm9kZUJhc2UsIHJlY3Q6IElSZWN0KTogdm9pZCB7XG4gICAgcGFyZW50LnVwZGF0ZVNpemUoeyB3aWR0aDogcmVjdC53aWR0aCwgaGVpZ2h0OiByZWN0LmhlaWdodCB9KTtcbiAgICBwYXJlbnQudXBkYXRlUG9zaXRpb24oeyB4OiByZWN0LngsIHk6IHJlY3QueSB9KTtcbiAgICBwYXJlbnQucmVkcmF3KCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0TGFzdFJlY3QoKTogSVJlY3Qge1xuICAgIHJldHVybiBSZWN0RXh0ZW5zaW9ucy5pbml0aWFsaXplKFxuICAgICAgdGhpcy5fbGFzdFBvc2l0aW9uLngsXG4gICAgICB0aGlzLl9sYXN0UG9zaXRpb24ueSxcbiAgICAgIHRoaXMuX3N0YXJ0UmVjdC53aWR0aCxcbiAgICAgIHRoaXMuX3N0YXJ0UmVjdC5oZWlnaHQsXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBwcmVwYXJlRHJhZ1NlcXVlbmNlKCk6IHZvaWQge1xuICAgIHRoaXMuY2hpbGRyZW5Ob2RlQW5kR3JvdXBzLmZvckVhY2goKHgpID0+IHgucHJlcGFyZURyYWdTZXF1ZW5jZSgpKTtcbiAgICB0aGlzLm5vZGVPckdyb3VwLmhvc3RFbGVtZW50LmNsYXNzTGlzdC5hZGQoRl9DU1NfQ0xBU1MuRFJBR19BTkRfRFJPUC5EUkFHR0lORyk7XG4gIH1cblxuICBwdWJsaWMgb25Qb2ludGVyTW92ZShkaWZmZXJlbmNlOiBJUG9pbnQpOiB2b2lkIHtcbiAgICBjb25zdCBkaWZmZXJlbmNlV2l0aFJlc3RyaWN0aW9ucyA9IHRoaXMuX2FwcGx5Q29uc3RyYWludHMoZGlmZmVyZW5jZSk7XG5cbiAgICB0aGlzLmNoaWxkcmVuTm9kZUFuZEdyb3Vwcy5mb3JFYWNoKCh4KSA9PiB4Lm9uUG9pbnRlck1vdmUoZGlmZmVyZW5jZVdpdGhSZXN0cmljdGlvbnMpKTtcbiAgICB0aGlzLl9yZWRyYXcodGhpcy5fbm9kZU9yR3JvdXBOZXdQb3NpdGlvbihkaWZmZXJlbmNlV2l0aFJlc3RyaWN0aW9ucykpO1xuXG4gICAgdGhpcy5mU291cmNlSGFuZGxlcnMuZm9yRWFjaCgoeCkgPT4geC5zZXRTb3VyY2VEaWZmZXJlbmNlKGRpZmZlcmVuY2VXaXRoUmVzdHJpY3Rpb25zKSk7XG4gICAgdGhpcy5mVGFyZ2V0SGFuZGxlcnMuZm9yRWFjaCgoeCkgPT4geC5zZXRUYXJnZXREaWZmZXJlbmNlKGRpZmZlcmVuY2VXaXRoUmVzdHJpY3Rpb25zKSk7XG4gIH1cblxuICBwdWJsaWMgYXNzaWduRmluYWxDb25zdHJhaW50cygpOiB2b2lkIHtcbiAgICB0aGlzLl9hcHBseUNvbnN0cmFpbnRzID0gKGRpZmZlcmVuY2U6IElQb2ludCkgPT4ge1xuICAgICAgY29uc3Qgc3VtbWFyeSA9IHRoaXMuX3BpcGVsaW5lLmZpbmFsaXplKGRpZmZlcmVuY2UpO1xuICAgICAgdGhpcy5fYXBwbHlTb2Z0RXhwYW5zaW9ucyhzdW1tYXJ5LnNvZnQpO1xuXG4gICAgICByZXR1cm4gc3VtbWFyeS5oYXJkRGlmZmVyZW5jZTtcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBfbm9kZU9yR3JvdXBOZXdQb3NpdGlvbihkaWZmZXJlbmNlOiBJUG9pbnQpOiBJUG9pbnQge1xuICAgIHJldHVybiBQb2ludEV4dGVuc2lvbnMuc3VtKHRoaXMuX3N0YXJ0UG9zaXRpb24sIGRpZmZlcmVuY2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVkcmF3KHBvc2l0aW9uOiBJUG9pbnQpOiB2b2lkIHtcbiAgICB0aGlzLl9sYXN0UG9zaXRpb24gPSBwb3NpdGlvbjtcbiAgICB0aGlzLm5vZGVPckdyb3VwLnVwZGF0ZVBvc2l0aW9uKHBvc2l0aW9uKTtcbiAgICB0aGlzLm5vZGVPckdyb3VwLnJlZHJhdygpO1xuICB9XG5cbiAgcHVibGljIG9uUG9pbnRlclVwKCk6IHZvaWQge1xuICAgIHRoaXMuY2hpbGRyZW5Ob2RlQW5kR3JvdXBzLmZvckVhY2goKHgpID0+IHgub25Qb2ludGVyVXAoKSk7XG4gICAgdGhpcy5ub2RlT3JHcm91cC5wb3NpdGlvbi5zZXQodGhpcy5ub2RlT3JHcm91cC5fcG9zaXRpb24pO1xuICAgIHRoaXMubm9kZU9yR3JvdXAuaG9zdEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShGX0NTU19DTEFTUy5EUkFHX0FORF9EUk9QLkRSQUdHSU5HKTtcbiAgICB0aGlzLl9lbWl0RXZlbnRJZk5vZGVFeHBhbmRlZCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZW1pdEV2ZW50SWZOb2RlRXhwYW5kZWQoKTogdm9pZCB7XG4gICAgdGhpcy5fbGFzdFNvZnRSZXN1bHRzLmZvckVhY2goKHJlc3VsdCwgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IHNvZnRMaW1pdCA9IHRoaXMuX2xpbWl0cyEuc29mdFtpbmRleF07XG4gICAgICBjb25zdCBleHBhbmRlZFJlY3QgPSBleHBhbmRSZWN0RnJvbUJhc2VsaW5lKFxuICAgICAgICBzb2Z0TGltaXQuYm91bmRpbmdSZWN0LFxuICAgICAgICByZXN1bHQub3ZlcmZsb3csXG4gICAgICAgIHJlc3VsdC5lZGdlcyxcbiAgICAgICk7XG4gICAgICBpZiAocmVzdWx0Lm92ZXJmbG93LnggfHwgcmVzdWx0Lm92ZXJmbG93LnkpIHtcbiAgICAgICAgc29mdExpbWl0Lm5vZGVPckdyb3VwLnNpemVDaGFuZ2UuZW1pdChleHBhbmRlZFJlY3QpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=