@foblex/flow 17.0.0 → 17.0.2

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 (613) hide show
  1. package/domain/f-background/add-background-to-store/add-background-to-store-request.d.ts +5 -0
  2. package/domain/f-background/add-background-to-store/add-background-to-store.execution.d.ts +9 -0
  3. package/domain/f-background/add-background-to-store/index.d.ts +2 -0
  4. package/domain/f-background/index.d.ts +3 -0
  5. package/domain/f-background/providers.d.ts +4 -1
  6. package/domain/f-background/remove-background-from-store/index.d.ts +2 -0
  7. package/domain/f-background/remove-background-from-store/remove-background-from-store-request.d.ts +5 -0
  8. package/domain/f-background/remove-background-from-store/remove-background-from-store.execution.d.ts +9 -0
  9. package/domain/f-background/set-background-transform/index.d.ts +2 -0
  10. package/domain/f-background/set-background-transform/set-background-transform-request.d.ts +5 -0
  11. package/domain/f-background/set-background-transform/set-background-transform.execution.d.ts +9 -0
  12. package/domain/f-canvas/add-canvas-to-store/add-canvas-to-store-request.d.ts +5 -0
  13. package/domain/f-canvas/add-canvas-to-store/add-canvas-to-store.execution.d.ts +9 -0
  14. package/domain/f-canvas/add-canvas-to-store/index.d.ts +2 -0
  15. package/domain/f-canvas/center-group-or-node/center-group-or-node.execution.d.ts +2 -3
  16. package/domain/f-canvas/fit-to-flow/fit-to-flow.execution.d.ts +3 -5
  17. package/domain/f-canvas/get-canvas/get-canvas-request.d.ts +2 -0
  18. package/domain/f-canvas/get-canvas/get-canvas.execution.d.ts +10 -0
  19. package/domain/f-canvas/get-canvas/index.d.ts +2 -0
  20. package/domain/f-canvas/index.d.ts +4 -0
  21. package/domain/f-canvas/input-canvas-position/input-canvas-position.execution.d.ts +1 -3
  22. package/domain/f-canvas/input-canvas-scale/input-canvas-scale.execution.d.ts +1 -3
  23. package/domain/f-canvas/providers.d.ts +5 -1
  24. package/domain/f-canvas/redraw-canvas-with-animation/index.d.ts +2 -0
  25. package/domain/f-canvas/redraw-canvas-with-animation/redraw-canvas-with-animation-request.d.ts +4 -0
  26. package/domain/f-canvas/redraw-canvas-with-animation/redraw-canvas-with-animation.execution.d.ts +12 -0
  27. package/domain/f-canvas/remove-canvas-from-store/index.d.ts +2 -0
  28. package/domain/f-canvas/remove-canvas-from-store/remove-canvas-from-store-request.d.ts +2 -0
  29. package/domain/f-canvas/remove-canvas-from-store/remove-canvas-from-store.execution.d.ts +9 -0
  30. package/domain/f-canvas/reset-scale/reset-scale.execution.d.ts +1 -3
  31. package/domain/f-canvas/reset-scale-and-center/reset-scale-and-center.execution.d.ts +3 -5
  32. package/domain/f-canvas/update-scale/update-scale.execution.d.ts +1 -3
  33. package/domain/f-connection/add-connection-for-create-to-store/add-connection-for-create-to-store-request.d.ts +5 -0
  34. package/domain/f-connection/add-connection-for-create-to-store/add-connection-for-create-to-store.execution.d.ts +9 -0
  35. package/domain/f-connection/add-connection-for-create-to-store/index.d.ts +2 -0
  36. package/domain/f-connection/add-connection-marker-to-store/add-connection-marker-to-store-request.d.ts +5 -0
  37. package/domain/f-connection/add-connection-marker-to-store/add-connection-marker-to-store.execution.d.ts +9 -0
  38. package/domain/f-connection/add-connection-marker-to-store/index.d.ts +2 -0
  39. package/domain/f-connection/add-connection-to-store/add-connection-to-store.execution.d.ts +1 -3
  40. package/domain/f-connection/add-snap-connection-to-store/add-snap-connection-to-store-request.d.ts +5 -0
  41. package/domain/f-connection/add-snap-connection-to-store/add-snap-connection-to-store.execution.d.ts +9 -0
  42. package/domain/f-connection/add-snap-connection-to-store/index.d.ts +2 -0
  43. package/domain/{create-connection-markers → f-connection/create-connection-markers}/create-connection-markers-request.d.ts +1 -1
  44. package/domain/{create-connection-markers → f-connection/create-connection-markers}/create-connection-markers.execution.d.ts +2 -2
  45. package/domain/f-connection/index.d.ts +8 -0
  46. package/domain/f-connection/providers.d.ts +9 -1
  47. package/domain/{redraw-connections → f-connection/redraw-connections}/redraw-connections.execution.d.ts +1 -1
  48. package/domain/f-connection/remove-connection-for-create-from-store/index.d.ts +2 -0
  49. package/domain/f-connection/remove-connection-for-create-from-store/remove-connection-for-create-from-store-request.d.ts +2 -0
  50. package/domain/f-connection/remove-connection-for-create-from-store/remove-connection-for-create-from-store.execution.d.ts +9 -0
  51. package/domain/f-connection/remove-connection-from-store/remove-connection-from-store.execution.d.ts +2 -3
  52. package/domain/f-connection/remove-connection-marker-from-store/index.d.ts +2 -0
  53. package/domain/f-connection/remove-connection-marker-from-store/remove-connection-marker-from-store-request.d.ts +5 -0
  54. package/domain/f-connection/remove-connection-marker-from-store/remove-connection-marker-from-store.execution.d.ts +9 -0
  55. package/domain/f-connection/remove-snap-connection-from-store/index.d.ts +2 -0
  56. package/domain/f-connection/remove-snap-connection-from-store/remove-snap-connection-from-store-request.d.ts +2 -0
  57. package/domain/f-connection/remove-snap-connection-from-store/remove-snap-connection-from-store.execution.d.ts +9 -0
  58. package/domain/f-connectors/add-input-to-store/add-input-to-store-request.d.ts +5 -0
  59. package/domain/f-connectors/add-input-to-store/add-input-to-store.execution.d.ts +9 -0
  60. package/domain/f-connectors/add-input-to-store/index.d.ts +2 -0
  61. package/domain/f-connectors/add-outlet-to-store/add-outlet-to-store-request.d.ts +5 -0
  62. package/domain/f-connectors/add-outlet-to-store/add-outlet-to-store.execution.d.ts +9 -0
  63. package/domain/f-connectors/add-outlet-to-store/index.d.ts +2 -0
  64. package/domain/f-connectors/add-output-to-store/add-output-to-store-request.d.ts +5 -0
  65. package/domain/f-connectors/add-output-to-store/add-output-to-store.execution.d.ts +9 -0
  66. package/domain/f-connectors/add-output-to-store/index.d.ts +2 -0
  67. package/domain/f-connectors/index.d.ts +7 -0
  68. package/domain/f-connectors/providers.d.ts +7 -0
  69. package/domain/f-connectors/remove-input-from-store/index.d.ts +2 -0
  70. package/domain/f-connectors/remove-input-from-store/remove-input-from-store-request.d.ts +5 -0
  71. package/domain/f-connectors/remove-input-from-store/remove-input-from-store.execution.d.ts +9 -0
  72. package/domain/f-connectors/remove-outlet-from-store/index.d.ts +2 -0
  73. package/domain/f-connectors/remove-outlet-from-store/remove-outlet-from-store-request.d.ts +5 -0
  74. package/domain/f-connectors/remove-outlet-from-store/remove-outlet-from-store.execution.d.ts +9 -0
  75. package/domain/f-connectors/remove-output-from-store/index.d.ts +2 -0
  76. package/domain/f-connectors/remove-output-from-store/remove-output-from-store-request.d.ts +5 -0
  77. package/domain/f-connectors/remove-output-from-store/remove-output-from-store.execution.d.ts +9 -0
  78. package/domain/f-draggable/add-dnd-to-store/add-dnd-to-store-request.d.ts +5 -0
  79. package/domain/f-draggable/add-dnd-to-store/add-dnd-to-store.execution.d.ts +9 -0
  80. package/domain/f-draggable/add-dnd-to-store/index.d.ts +2 -0
  81. package/domain/f-draggable/emit-selection-change-event/emit-selection-change-event-request.d.ts +2 -0
  82. package/domain/f-draggable/emit-selection-change-event/emit-selection-change-event.execution.d.ts +12 -0
  83. package/domain/f-draggable/emit-selection-change-event/index.d.ts +2 -0
  84. package/domain/f-draggable/end-drag-sequence/end-drag-sequence-request.d.ts +2 -0
  85. package/domain/f-draggable/end-drag-sequence/end-drag-sequence.execution.d.ts +11 -0
  86. package/domain/f-draggable/end-drag-sequence/index.d.ts +2 -0
  87. package/domain/f-draggable/index.d.ts +10 -0
  88. package/domain/f-draggable/initialize-drag-sequence/index.d.ts +2 -0
  89. package/domain/f-draggable/initialize-drag-sequence/initialize-drag-sequence-request.d.ts +2 -0
  90. package/domain/f-draggable/initialize-drag-sequence/initialize-drag-sequence.execution.d.ts +9 -0
  91. package/domain/f-draggable/is-drag-started/index.d.ts +2 -0
  92. package/domain/f-draggable/is-drag-started/is-drag-started-request.d.ts +2 -0
  93. package/domain/f-draggable/is-drag-started/is-drag-started.execution.d.ts +9 -0
  94. package/domain/f-draggable/on-pointer-move/index.d.ts +2 -0
  95. package/domain/f-draggable/on-pointer-move/on-pointer-move-request.d.ts +5 -0
  96. package/domain/f-draggable/on-pointer-move/on-pointer-move.execution.d.ts +14 -0
  97. package/domain/f-draggable/prepare-drag-sequence/index.d.ts +2 -0
  98. package/domain/f-draggable/prepare-drag-sequence/prepare-drag-sequence-request.d.ts +2 -0
  99. package/domain/f-draggable/prepare-drag-sequence/prepare-drag-sequence.execution.d.ts +11 -0
  100. package/domain/f-draggable/providers.d.ts +10 -0
  101. package/domain/f-draggable/remove-dnd-from-store/index.d.ts +2 -0
  102. package/domain/f-draggable/remove-dnd-from-store/remove-dnd-from-store-request.d.ts +2 -0
  103. package/domain/f-draggable/remove-dnd-from-store/remove-dnd-from-store.execution.d.ts +9 -0
  104. package/domain/f-draggable/start-drag-sequence/index.d.ts +2 -0
  105. package/domain/f-draggable/start-drag-sequence/start-drag-sequence-request.d.ts +2 -0
  106. package/domain/f-draggable/start-drag-sequence/start-drag-sequence.execution.d.ts +12 -0
  107. package/domain/f-flow/add-flow-to-store/add-flow-to-store-request.d.ts +5 -0
  108. package/domain/f-flow/add-flow-to-store/add-flow-to-store.execution.d.ts +9 -0
  109. package/domain/f-flow/add-flow-to-store/index.d.ts +2 -0
  110. package/domain/f-flow/get-flow/get-flow-request.d.ts +2 -0
  111. package/domain/f-flow/get-flow/get-flow.execution.d.ts +10 -0
  112. package/domain/f-flow/get-flow/index.d.ts +2 -0
  113. package/domain/f-flow/get-flow-host-element/get-flow-host-element.execution.d.ts +9 -0
  114. package/domain/f-flow/get-flow-host-element/get-flow-host-element.request.d.ts +2 -0
  115. package/domain/f-flow/get-flow-host-element/index.d.ts +2 -0
  116. package/domain/f-flow/index.d.ts +5 -0
  117. package/domain/f-flow/providers.d.ts +5 -0
  118. package/domain/f-flow/remove-flow-from-store/index.d.ts +2 -0
  119. package/domain/f-flow/remove-flow-from-store/remove-flow-from-store-request.d.ts +2 -0
  120. package/domain/f-flow/remove-flow-from-store/remove-flow-from-store.execution.d.ts +9 -0
  121. package/domain/f-line-alignment/add-line-alignment-to-store/add-line-alignment-to-store-request.d.ts +5 -0
  122. package/domain/f-line-alignment/add-line-alignment-to-store/add-line-alignment-to-store.execution.d.ts +9 -0
  123. package/domain/f-line-alignment/add-line-alignment-to-store/index.d.ts +2 -0
  124. package/domain/f-line-alignment/index.d.ts +3 -0
  125. package/domain/f-line-alignment/providers.d.ts +3 -0
  126. package/domain/f-line-alignment/remove-line-alignment-from-store/index.d.ts +2 -0
  127. package/domain/f-line-alignment/remove-line-alignment-from-store/remove-line-alignment-from-store-request.d.ts +2 -0
  128. package/domain/f-line-alignment/remove-line-alignment-from-store/remove-line-alignment-from-store.execution.d.ts +9 -0
  129. package/domain/f-node/add-node-to-store/add-node-to-store-request.d.ts +5 -0
  130. package/domain/f-node/add-node-to-store/add-node-to-store.execution.d.ts +9 -0
  131. package/domain/f-node/add-node-to-store/index.d.ts +2 -0
  132. package/domain/f-node/calculate-nodes-bounding-box/calculate-nodes-bounding-box.execution.d.ts +12 -0
  133. package/domain/f-node/calculate-nodes-bounding-box/calculate-nodes-bounding-box.request.d.ts +2 -0
  134. package/domain/f-node/calculate-nodes-bounding-box/index.d.ts +2 -0
  135. package/domain/f-node/get-nodes/get-nodes-request.d.ts +2 -0
  136. package/domain/f-node/get-nodes/get-nodes.execution.d.ts +10 -0
  137. package/domain/f-node/get-nodes/index.d.ts +2 -0
  138. package/domain/f-node/index.d.ts +6 -0
  139. package/domain/f-node/providers.d.ts +6 -0
  140. package/domain/f-node/remove-node-from-store/index.d.ts +2 -0
  141. package/domain/f-node/remove-node-from-store/remove-node-from-store-request.d.ts +5 -0
  142. package/domain/f-node/remove-node-from-store/remove-node-from-store.execution.d.ts +9 -0
  143. package/domain/f-node/update-node-when-state-or-size-changed/index.d.ts +2 -0
  144. package/domain/f-node/update-node-when-state-or-size-changed/update-node-when-state-or-size-changed-request.d.ts +7 -0
  145. package/domain/f-node/update-node-when-state-or-size-changed/update-node-when-state-or-size-changed.execution.d.ts +10 -0
  146. package/domain/get-element-rect-in-flow/get-element-rect-in-flow.execution.d.ts +5 -6
  147. package/domain/get-flow-state/i-f-flow-state-connection.d.ts +1 -1
  148. package/domain/index.d.ts +7 -8
  149. package/domain/is-mobile.d.ts +1 -0
  150. package/domain/providers.d.ts +1 -8
  151. package/domain/transition-end.d.ts +1 -0
  152. package/esm2022/domain/f-background/add-background-to-store/add-background-to-store-request.mjs +6 -0
  153. package/esm2022/domain/f-background/add-background-to-store/add-background-to-store.execution.mjs +23 -0
  154. package/esm2022/domain/f-background/add-background-to-store/index.mjs +3 -0
  155. package/esm2022/domain/f-background/index.mjs +4 -1
  156. package/esm2022/domain/f-background/providers.mjs +8 -2
  157. package/esm2022/domain/f-background/remove-background-from-store/index.mjs +3 -0
  158. package/esm2022/domain/f-background/remove-background-from-store/remove-background-from-store-request.mjs +6 -0
  159. package/esm2022/domain/f-background/remove-background-from-store/remove-background-from-store.execution.mjs +23 -0
  160. package/esm2022/domain/f-background/set-background-transform/index.mjs +3 -0
  161. package/esm2022/domain/f-background/set-background-transform/set-background-transform-request.mjs +6 -0
  162. package/esm2022/domain/f-background/set-background-transform/set-background-transform.execution.mjs +23 -0
  163. package/esm2022/domain/f-canvas/add-canvas-to-store/add-canvas-to-store-request.mjs +6 -0
  164. package/esm2022/domain/f-canvas/add-canvas-to-store/add-canvas-to-store.execution.mjs +23 -0
  165. package/esm2022/domain/f-canvas/add-canvas-to-store/index.mjs +3 -0
  166. package/esm2022/domain/f-canvas/center-group-or-node/center-group-or-node.execution.mjs +15 -16
  167. package/esm2022/domain/f-canvas/fit-to-flow/fit-to-flow.execution.mjs +15 -18
  168. package/esm2022/domain/f-canvas/get-canvas/get-canvas-request.mjs +3 -0
  169. package/esm2022/domain/f-canvas/get-canvas/get-canvas.execution.mjs +27 -0
  170. package/esm2022/domain/f-canvas/get-canvas/index.mjs +3 -0
  171. package/esm2022/domain/f-canvas/index.mjs +5 -1
  172. package/esm2022/domain/f-canvas/input-canvas-position/input-canvas-position.execution.mjs +8 -8
  173. package/esm2022/domain/f-canvas/input-canvas-scale/input-canvas-scale.execution.mjs +8 -8
  174. package/esm2022/domain/f-canvas/providers.mjs +9 -1
  175. package/esm2022/domain/f-canvas/redraw-canvas-with-animation/index.mjs +3 -0
  176. package/esm2022/domain/f-canvas/redraw-canvas-with-animation/redraw-canvas-with-animation-request.mjs +6 -0
  177. package/esm2022/domain/f-canvas/redraw-canvas-with-animation/redraw-canvas-with-animation.execution.mjs +36 -0
  178. package/esm2022/domain/f-canvas/remove-canvas-from-store/index.mjs +3 -0
  179. package/esm2022/domain/f-canvas/remove-canvas-from-store/remove-canvas-from-store-request.mjs +3 -0
  180. package/esm2022/domain/f-canvas/remove-canvas-from-store/remove-canvas-from-store.execution.mjs +23 -0
  181. package/esm2022/domain/f-canvas/reset-scale/reset-scale.execution.mjs +9 -9
  182. package/esm2022/domain/f-canvas/reset-scale-and-center/reset-scale-and-center.execution.mjs +15 -18
  183. package/esm2022/domain/f-canvas/update-scale/update-scale.execution.mjs +9 -9
  184. package/esm2022/domain/f-connection/add-connection-for-create-to-store/add-connection-for-create-to-store-request.mjs +6 -0
  185. package/esm2022/domain/f-connection/add-connection-for-create-to-store/add-connection-for-create-to-store.execution.mjs +23 -0
  186. package/esm2022/domain/f-connection/add-connection-for-create-to-store/index.mjs +3 -0
  187. package/esm2022/domain/f-connection/add-connection-marker-to-store/add-connection-marker-to-store-request.mjs +6 -0
  188. package/esm2022/domain/f-connection/add-connection-marker-to-store/add-connection-marker-to-store.execution.mjs +23 -0
  189. package/esm2022/domain/f-connection/add-connection-marker-to-store/index.mjs +3 -0
  190. package/esm2022/domain/f-connection/add-connection-to-store/add-connection-to-store.execution.mjs +9 -9
  191. package/esm2022/domain/f-connection/add-snap-connection-to-store/add-snap-connection-to-store-request.mjs +6 -0
  192. package/esm2022/domain/f-connection/add-snap-connection-to-store/add-snap-connection-to-store.execution.mjs +23 -0
  193. package/esm2022/domain/f-connection/add-snap-connection-to-store/index.mjs +3 -0
  194. package/esm2022/domain/f-connection/create-connection-markers/create-connection-markers-request.mjs +6 -0
  195. package/esm2022/domain/f-connection/create-connection-markers/create-connection-markers.execution.mjs +60 -0
  196. package/esm2022/domain/f-connection/create-connection-markers/index.mjs +3 -0
  197. package/esm2022/domain/f-connection/get-all-can-be-connected-input-positions/get-all-can-be-connected-input-positions.execution.mjs +3 -3
  198. package/esm2022/domain/f-connection/index.mjs +9 -1
  199. package/esm2022/domain/f-connection/providers.mjs +18 -2
  200. package/esm2022/domain/f-connection/redraw-connections/index.mjs +3 -0
  201. package/esm2022/domain/f-connection/redraw-connections/redraw-connections-request.mjs +3 -0
  202. package/esm2022/domain/f-connection/redraw-connections/redraw-connections.execution.mjs +60 -0
  203. package/esm2022/domain/f-connection/remove-connection-for-create-from-store/index.mjs +3 -0
  204. package/esm2022/domain/f-connection/remove-connection-for-create-from-store/remove-connection-for-create-from-store-request.mjs +3 -0
  205. package/esm2022/domain/f-connection/remove-connection-for-create-from-store/remove-connection-for-create-from-store.execution.mjs +23 -0
  206. package/esm2022/domain/f-connection/remove-connection-from-store/remove-connection-from-store.execution.mjs +14 -11
  207. package/esm2022/domain/f-connection/remove-connection-marker-from-store/index.mjs +3 -0
  208. package/esm2022/domain/f-connection/remove-connection-marker-from-store/remove-connection-marker-from-store-request.mjs +6 -0
  209. package/esm2022/domain/f-connection/remove-connection-marker-from-store/remove-connection-marker-from-store.execution.mjs +23 -0
  210. package/esm2022/domain/f-connection/remove-snap-connection-from-store/index.mjs +3 -0
  211. package/esm2022/domain/f-connection/remove-snap-connection-from-store/remove-snap-connection-from-store-request.mjs +3 -0
  212. package/esm2022/domain/f-connection/remove-snap-connection-from-store/remove-snap-connection-from-store.execution.mjs +23 -0
  213. package/esm2022/domain/f-connectors/add-input-to-store/add-input-to-store-request.mjs +6 -0
  214. package/esm2022/domain/f-connectors/add-input-to-store/add-input-to-store.execution.mjs +23 -0
  215. package/esm2022/domain/f-connectors/add-input-to-store/index.mjs +3 -0
  216. package/esm2022/domain/f-connectors/add-outlet-to-store/add-outlet-to-store-request.mjs +6 -0
  217. package/esm2022/domain/f-connectors/add-outlet-to-store/add-outlet-to-store.execution.mjs +23 -0
  218. package/esm2022/domain/f-connectors/add-outlet-to-store/index.mjs +3 -0
  219. package/esm2022/domain/f-connectors/add-output-to-store/add-output-to-store-request.mjs +6 -0
  220. package/esm2022/domain/f-connectors/add-output-to-store/add-output-to-store.execution.mjs +23 -0
  221. package/esm2022/domain/f-connectors/add-output-to-store/index.mjs +3 -0
  222. package/esm2022/domain/f-connectors/index.mjs +8 -0
  223. package/esm2022/domain/f-connectors/providers.mjs +15 -0
  224. package/esm2022/domain/f-connectors/remove-input-from-store/index.mjs +3 -0
  225. package/esm2022/domain/f-connectors/remove-input-from-store/remove-input-from-store-request.mjs +6 -0
  226. package/esm2022/domain/f-connectors/remove-input-from-store/remove-input-from-store.execution.mjs +23 -0
  227. package/esm2022/domain/f-connectors/remove-outlet-from-store/index.mjs +3 -0
  228. package/esm2022/domain/f-connectors/remove-outlet-from-store/remove-outlet-from-store-request.mjs +6 -0
  229. package/esm2022/domain/f-connectors/remove-outlet-from-store/remove-outlet-from-store.execution.mjs +23 -0
  230. package/esm2022/domain/f-connectors/remove-output-from-store/index.mjs +3 -0
  231. package/esm2022/domain/f-connectors/remove-output-from-store/remove-output-from-store-request.mjs +6 -0
  232. package/esm2022/domain/f-connectors/remove-output-from-store/remove-output-from-store.execution.mjs +23 -0
  233. package/esm2022/domain/f-draggable/add-dnd-to-store/add-dnd-to-store-request.mjs +6 -0
  234. package/esm2022/domain/f-draggable/add-dnd-to-store/add-dnd-to-store.execution.mjs +23 -0
  235. package/esm2022/domain/f-draggable/add-dnd-to-store/index.mjs +3 -0
  236. package/esm2022/domain/f-draggable/emit-selection-change-event/emit-selection-change-event-request.mjs +3 -0
  237. package/esm2022/domain/f-draggable/emit-selection-change-event/emit-selection-change-event.execution.mjs +36 -0
  238. package/esm2022/domain/f-draggable/emit-selection-change-event/index.mjs +3 -0
  239. package/esm2022/domain/f-draggable/end-drag-sequence/end-drag-sequence-request.mjs +3 -0
  240. package/esm2022/domain/f-draggable/end-drag-sequence/end-drag-sequence.execution.mjs +29 -0
  241. package/esm2022/domain/f-draggable/end-drag-sequence/index.mjs +3 -0
  242. package/esm2022/domain/f-draggable/index.mjs +11 -0
  243. package/esm2022/domain/f-draggable/initialize-drag-sequence/index.mjs +3 -0
  244. package/esm2022/domain/f-draggable/initialize-drag-sequence/initialize-drag-sequence-request.mjs +3 -0
  245. package/esm2022/domain/f-draggable/initialize-drag-sequence/initialize-drag-sequence.execution.mjs +23 -0
  246. package/esm2022/domain/f-draggable/is-drag-started/index.mjs +3 -0
  247. package/esm2022/domain/f-draggable/is-drag-started/is-drag-started-request.mjs +3 -0
  248. package/esm2022/domain/f-draggable/is-drag-started/is-drag-started.execution.mjs +23 -0
  249. package/esm2022/domain/f-draggable/on-pointer-move/index.mjs +3 -0
  250. package/esm2022/domain/f-draggable/on-pointer-move/on-pointer-move-request.mjs +6 -0
  251. package/esm2022/domain/f-draggable/on-pointer-move/on-pointer-move.execution.mjs +42 -0
  252. package/esm2022/domain/f-draggable/prepare-drag-sequence/index.mjs +3 -0
  253. package/esm2022/domain/f-draggable/prepare-drag-sequence/prepare-drag-sequence-request.mjs +3 -0
  254. package/esm2022/domain/f-draggable/prepare-drag-sequence/prepare-drag-sequence.execution.mjs +31 -0
  255. package/esm2022/domain/f-draggable/providers.mjs +21 -0
  256. package/esm2022/domain/f-draggable/remove-dnd-from-store/index.mjs +3 -0
  257. package/esm2022/domain/f-draggable/remove-dnd-from-store/remove-dnd-from-store-request.mjs +3 -0
  258. package/esm2022/domain/f-draggable/remove-dnd-from-store/remove-dnd-from-store.execution.mjs +23 -0
  259. package/esm2022/domain/f-draggable/start-drag-sequence/index.mjs +3 -0
  260. package/esm2022/domain/f-draggable/start-drag-sequence/start-drag-sequence-request.mjs +3 -0
  261. package/esm2022/domain/f-draggable/start-drag-sequence/start-drag-sequence.execution.mjs +33 -0
  262. package/esm2022/domain/f-flow/add-flow-to-store/add-flow-to-store-request.mjs +6 -0
  263. package/esm2022/domain/f-flow/add-flow-to-store/add-flow-to-store.execution.mjs +23 -0
  264. package/esm2022/domain/f-flow/add-flow-to-store/index.mjs +3 -0
  265. package/esm2022/domain/f-flow/get-flow/get-flow-request.mjs +3 -0
  266. package/esm2022/domain/f-flow/get-flow/get-flow.execution.mjs +27 -0
  267. package/esm2022/domain/f-flow/get-flow/index.mjs +3 -0
  268. package/esm2022/domain/f-flow/get-flow-host-element/get-flow-host-element.execution.mjs +23 -0
  269. package/esm2022/domain/f-flow/get-flow-host-element/get-flow-host-element.request.mjs +3 -0
  270. package/esm2022/domain/f-flow/get-flow-host-element/index.mjs +3 -0
  271. package/esm2022/domain/f-flow/index.mjs +6 -0
  272. package/esm2022/domain/f-flow/providers.mjs +11 -0
  273. package/esm2022/domain/f-flow/remove-flow-from-store/index.mjs +3 -0
  274. package/esm2022/domain/f-flow/remove-flow-from-store/remove-flow-from-store-request.mjs +3 -0
  275. package/esm2022/domain/f-flow/remove-flow-from-store/remove-flow-from-store.execution.mjs +23 -0
  276. package/esm2022/domain/f-line-alignment/add-line-alignment-to-store/add-line-alignment-to-store-request.mjs +6 -0
  277. package/esm2022/domain/f-line-alignment/add-line-alignment-to-store/add-line-alignment-to-store.execution.mjs +23 -0
  278. package/esm2022/domain/f-line-alignment/add-line-alignment-to-store/index.mjs +3 -0
  279. package/esm2022/domain/f-line-alignment/index.mjs +4 -0
  280. package/esm2022/domain/f-line-alignment/providers.mjs +7 -0
  281. package/esm2022/domain/f-line-alignment/remove-line-alignment-from-store/index.mjs +3 -0
  282. package/esm2022/domain/f-line-alignment/remove-line-alignment-from-store/remove-line-alignment-from-store-request.mjs +3 -0
  283. package/esm2022/domain/f-line-alignment/remove-line-alignment-from-store/remove-line-alignment-from-store.execution.mjs +23 -0
  284. package/esm2022/domain/f-node/add-node-to-store/add-node-to-store-request.mjs +6 -0
  285. package/esm2022/domain/f-node/add-node-to-store/add-node-to-store.execution.mjs +23 -0
  286. package/esm2022/domain/f-node/add-node-to-store/index.mjs +3 -0
  287. package/esm2022/domain/f-node/calculate-nodes-bounding-box/calculate-nodes-bounding-box.execution.mjs +30 -0
  288. package/esm2022/domain/f-node/calculate-nodes-bounding-box/calculate-nodes-bounding-box.request.mjs +3 -0
  289. package/esm2022/domain/f-node/calculate-nodes-bounding-box/index.mjs +3 -0
  290. package/esm2022/domain/f-node/get-nodes/get-nodes-request.mjs +3 -0
  291. package/esm2022/domain/f-node/get-nodes/get-nodes.execution.mjs +23 -0
  292. package/esm2022/domain/f-node/get-nodes/index.mjs +3 -0
  293. package/esm2022/domain/f-node/index.mjs +7 -0
  294. package/esm2022/domain/f-node/providers.mjs +13 -0
  295. package/esm2022/domain/f-node/remove-node-from-store/index.mjs +3 -0
  296. package/esm2022/domain/f-node/remove-node-from-store/remove-node-from-store-request.mjs +6 -0
  297. package/esm2022/domain/f-node/remove-node-from-store/remove-node-from-store.execution.mjs +23 -0
  298. package/esm2022/domain/f-node/update-node-when-state-or-size-changed/index.mjs +3 -0
  299. package/esm2022/domain/f-node/update-node-when-state-or-size-changed/update-node-when-state-or-size-changed-request.mjs +7 -0
  300. package/esm2022/domain/f-node/update-node-when-state-or-size-changed/update-node-when-state-or-size-changed.execution.mjs +35 -0
  301. package/esm2022/domain/get-element-rect-in-flow/get-element-rect-in-flow.execution.mjs +19 -17
  302. package/esm2022/domain/get-flow-state/get-flow-state-nodes/get-flow-state-nodes.execution.mjs +3 -3
  303. package/esm2022/domain/get-flow-state/i-f-flow-state-connection.mjs +1 -1
  304. package/esm2022/domain/get-position-in-flow/get-position-in-flow.execution.mjs +2 -2
  305. package/esm2022/domain/index.mjs +8 -9
  306. package/esm2022/domain/is-mobile.mjs +5 -0
  307. package/esm2022/domain/providers.mjs +11 -15
  308. package/esm2022/domain/transition-end.mjs +10 -0
  309. package/esm2022/f-backgroud/f-background-base.mjs +1 -1
  310. package/esm2022/f-backgroud/f-background.component.mjs +15 -20
  311. package/esm2022/f-backgroud/f-circle-pattern/f-circle-pattern.component.mjs +40 -46
  312. package/esm2022/f-backgroud/f-rect-pattern/f-rect-pattern.component.mjs +42 -56
  313. package/esm2022/f-canvas/f-canvas-base.mjs +1 -1
  314. package/esm2022/f-canvas/f-canvas.component.mjs +30 -40
  315. package/esm2022/f-connection/common/f-connection-base.mjs +1 -3
  316. package/esm2022/f-connection/common/f-connection-text/f-connection-text-path.directive.mjs +2 -2
  317. package/esm2022/f-connection/common/f-drag-handle/f-connection-drag-handle.component.mjs +3 -3
  318. package/esm2022/f-connection/common/f-path/i-connection-path.mjs +1 -1
  319. package/esm2022/f-connection/common/i-has-connection-text.mjs +1 -1
  320. package/esm2022/f-connection/f-connection/f-connection.component.mjs +36 -90
  321. package/esm2022/f-connection/f-connection-builder/i-f-connection-factory-request.mjs +1 -1
  322. package/esm2022/f-connection/f-connection-for-create/f-connection-for-create.component.mjs +30 -65
  323. package/esm2022/f-connection/f-marker/f-marker.directive.mjs +10 -9
  324. package/esm2022/f-connection/f-snap-connection/f-snap-connection.component.mjs +30 -65
  325. package/esm2022/f-connectors/domain/calculate-connector-connectable-side/calculate-connector-connectable-side.handler.mjs +3 -3
  326. package/esm2022/f-connectors/f-connector-base.mjs +9 -6
  327. package/esm2022/f-connectors/f-node-input/f-node-input-base.mjs +1 -5
  328. package/esm2022/f-connectors/f-node-input/f-node-input.directive.mjs +33 -42
  329. package/esm2022/f-connectors/f-node-outlet/f-node-outlet-base.mjs +1 -2
  330. package/esm2022/f-connectors/f-node-outlet/f-node-outlet.directive.mjs +21 -33
  331. package/esm2022/f-connectors/f-node-output/f-node-output-base.mjs +1 -5
  332. package/esm2022/f-connectors/f-node-output/f-node-output.directive.mjs +33 -45
  333. package/esm2022/f-draggable/canvas/canvas-move-finalize/canvas-move-finalize.execution.mjs +2 -2
  334. package/esm2022/f-draggable/canvas/canvas-move-preparation/canvas-move-preparation.validator.mjs +4 -3
  335. package/esm2022/f-draggable/canvas/canvas.drag-handler.mjs +4 -4
  336. package/esm2022/f-draggable/connections/create-connection/create-connection-finalize/create-connection-finalize.execution.mjs +5 -5
  337. package/esm2022/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-outlet-preparation/create-connection-from-outlet-preparation.execution.mjs +3 -2
  338. package/esm2022/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-output-preparation/create-connection-from-output-preparation.validator.mjs +3 -2
  339. package/esm2022/f-draggable/connections/create-connection/create-connection-preparation/create-connection-preparation.execution.mjs +3 -2
  340. package/esm2022/f-draggable/connections/create-connection/create-connection-preparation/create-connection-preparation.validator.mjs +3 -2
  341. package/esm2022/f-draggable/connections/create-connection/create-connection.drag-handler.mjs +8 -8
  342. package/esm2022/f-draggable/connections/get-input-under-pointer/get-input-under-pointer.execution.mjs +3 -3
  343. package/esm2022/f-draggable/connections/get-input-under-pointer/get-input-under-pointer.validator.mjs +3 -3
  344. package/esm2022/f-draggable/connections/reassign-connection/reassign-connection-finalize/reassign-connection-finalize.execution.mjs +4 -4
  345. package/esm2022/f-draggable/connections/reassign-connection/reassign-connection.drag-handler.mjs +6 -6
  346. package/esm2022/f-draggable/domain/index.mjs +2 -1
  347. package/esm2022/f-draggable/domain/is-connection-under-node/f-node-intersected-with-connections.mjs +7 -0
  348. package/esm2022/f-draggable/domain/is-connection-under-node/index.mjs +5 -0
  349. package/esm2022/f-draggable/domain/is-connection-under-node/is-connection-under-node.execution.mjs +75 -0
  350. package/esm2022/f-draggable/domain/is-connection-under-node/is-connection-under-node.request.mjs +3 -0
  351. package/esm2022/f-draggable/domain/is-connection-under-node/is-connection-under-node.validator.mjs +24 -0
  352. package/esm2022/f-draggable/domain/providers.mjs +5 -2
  353. package/esm2022/f-draggable/f-draggable-base.mjs +1 -1
  354. package/esm2022/f-draggable/f-draggable.directive.mjs +49 -98
  355. package/esm2022/f-draggable/i-draggable-item.mjs +1 -1
  356. package/esm2022/f-draggable/index.mjs +2 -1
  357. package/esm2022/f-draggable/node/connection-base-drag-handler.mjs +4 -4
  358. package/esm2022/f-draggable/node/connection-source.drag-handler.mjs +2 -2
  359. package/esm2022/f-draggable/node/connection-target.drag-handler.mjs +2 -2
  360. package/esm2022/f-draggable/node/connection.drag-handler.mjs +2 -2
  361. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/create-move-nodes-drag-model-from-selection.execution.mjs +8 -5
  362. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/put-input-connection-handlers-to-array/put-input-connection-handlers-to-array.execution.mjs +2 -2
  363. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/put-output-connection-handlers-to-array/put-output-connection-handlers-to-array.execution.mjs +2 -2
  364. package/esm2022/f-draggable/node/node-drag-to-parent-finalize/node-drag-to-parent-finalize.execution.mjs +4 -2
  365. package/esm2022/f-draggable/node/node-drag-to-parent-preparation/node-drag-to-parent-preparation.execution.mjs +4 -3
  366. package/esm2022/f-draggable/node/node-drag-to-parent.drag-handler.mjs +4 -4
  367. package/esm2022/f-draggable/node/node-move-finalize/node-move-finalize.execution.mjs +4 -4
  368. package/esm2022/f-draggable/node/node-move-preparation/node-move-preparation.execution.mjs +2 -2
  369. package/esm2022/f-draggable/node/node-move-preparation/node-move-preparation.validator.mjs +2 -2
  370. package/esm2022/f-draggable/node/node-resize-by-child.drag-handler.mjs +5 -3
  371. package/esm2022/f-draggable/node/node.drag-handler.mjs +3 -3
  372. package/esm2022/f-draggable/node-resize/node-resize-finalize/node-resize-finalize.execution.mjs +2 -2
  373. package/esm2022/f-draggable/node-resize/node-resize-preparation/node-resize-preparation.execution.mjs +3 -2
  374. package/esm2022/f-draggable/node-resize/node-resize-preparation/node-resize-preparation.validator.mjs +3 -2
  375. package/esm2022/f-draggable/node-resize/node-resize.drag-handler.mjs +4 -4
  376. package/esm2022/f-draggable/providers.mjs +2 -2
  377. package/esm2022/f-draggable/single-select/single-select.execution.mjs +5 -2
  378. package/esm2022/f-external-item/domain/external-item-finalize/external-item-finalize.execution.mjs +2 -2
  379. package/esm2022/f-external-item/domain/external-item-preparation/external-item-preparation.validator.mjs +1 -1
  380. package/esm2022/f-external-item/domain/external-item.drag-handler.mjs +4 -4
  381. package/esm2022/f-external-item/domain/index.mjs +2 -1
  382. package/esm2022/f-external-item/domain/prevent-default-is-external-item/index.mjs +3 -0
  383. package/esm2022/f-external-item/domain/prevent-default-is-external-item/prevent-default-is-external-item.execution.mjs +36 -0
  384. package/esm2022/f-external-item/domain/prevent-default-is-external-item/prevent-default-is-external-item.request.mjs +6 -0
  385. package/esm2022/f-external-item/domain/providers.mjs +3 -1
  386. package/esm2022/f-flow/f-flow-base.mjs +1 -1
  387. package/esm2022/f-flow/f-flow.component.mjs +46 -49
  388. package/esm2022/f-line-alignment/f-line-alignment.component.mjs +21 -22
  389. package/esm2022/f-minimap/domain/f-minimap.drag-handler.mjs +4 -4
  390. package/esm2022/f-minimap/domain/index.mjs +4 -2
  391. package/esm2022/f-minimap/domain/minimap-calculate-svg-scale-and-view-box/i-f-minimap-scale-and-view-box.mjs +2 -0
  392. package/esm2022/f-minimap/domain/minimap-calculate-svg-scale-and-view-box/index.mjs +4 -0
  393. package/esm2022/f-minimap/domain/minimap-calculate-svg-scale-and-view-box/minimap-calculate-svg-scale-and-view-box.execution.mjs +71 -0
  394. package/esm2022/f-minimap/domain/minimap-calculate-svg-scale-and-view-box/minimap-calculate-svg-scale-and-view-box.request.mjs +7 -0
  395. package/esm2022/f-minimap/domain/minimap-calculate-view-box/index.mjs +3 -0
  396. package/esm2022/f-minimap/domain/minimap-calculate-view-box/minimap-calculate-view-box.execution.mjs +39 -0
  397. package/esm2022/f-minimap/domain/minimap-calculate-view-box/minimap-calculate-view-box.request.mjs +3 -0
  398. package/esm2022/f-minimap/domain/minimap-drag-finalize/minimap-drag-finalize.execution.mjs +2 -2
  399. package/esm2022/f-minimap/domain/minimap-draw-nodes/index.mjs +3 -0
  400. package/esm2022/f-minimap/domain/minimap-draw-nodes/minimap-draw-nodes.execution.mjs +60 -0
  401. package/esm2022/f-minimap/domain/minimap-draw-nodes/minimap-draw-nodes.request.mjs +3 -0
  402. package/esm2022/f-minimap/domain/providers.mjs +7 -1
  403. package/esm2022/f-minimap/f-minimap-canvas.directive.mjs +17 -51
  404. package/esm2022/f-minimap/f-minimap-flow.directive.mjs +16 -60
  405. package/esm2022/f-minimap/f-minimap-view.directive.mjs +14 -25
  406. package/esm2022/f-minimap/f-minimap.component.mjs +28 -30
  407. package/esm2022/f-node/domain/index.mjs +1 -2
  408. package/esm2022/f-node/f-drag-handle/f-drag-handle.directive.mjs +8 -8
  409. package/esm2022/f-node/f-group.directive.mjs +18 -42
  410. package/esm2022/f-node/f-node-base.mjs +15 -3
  411. package/esm2022/f-node/f-node.directive.mjs +18 -42
  412. package/esm2022/f-node/f-resize-handle/f-resize-handle.directive.mjs +13 -16
  413. package/esm2022/f-node/index.mjs +1 -2
  414. package/esm2022/f-selection-area/domain/selection-area-finalize/selection-area-finalize.execution.mjs +2 -2
  415. package/esm2022/f-selection-area/domain/selection-area.drag-handle.mjs +6 -6
  416. package/esm2022/f-selection-area/f-selection-area.component.mjs +13 -13
  417. package/esm2022/f-storage/f-components-store.mjs +15 -20
  418. package/esm2022/f-storage/features/listen-components-data-changed/index.mjs +3 -0
  419. package/esm2022/f-storage/features/listen-components-data-changed/listen-data-changes-request.mjs +3 -0
  420. package/esm2022/f-storage/features/listen-components-data-changed/listen-data-changes.execution.mjs +25 -0
  421. package/esm2022/f-storage/features/listen-count-changes/index.mjs +3 -0
  422. package/esm2022/f-storage/features/listen-count-changes/listen-count-changes-request.mjs +3 -0
  423. package/esm2022/f-storage/features/listen-count-changes/listen-count-changes.execution.mjs +25 -0
  424. package/esm2022/f-storage/features/listen-transform-changes/index.mjs +3 -0
  425. package/esm2022/f-storage/features/listen-transform-changes/listen-transform-changes.execution.mjs +24 -0
  426. package/esm2022/f-storage/features/listen-transform-changes/listen-transform-changes.request.mjs +3 -0
  427. package/esm2022/f-storage/features/notify-data-changed/index.mjs +3 -0
  428. package/esm2022/f-storage/features/notify-data-changed/notify-data-changed-request.mjs +3 -0
  429. package/esm2022/f-storage/features/notify-data-changed/notify-data-changed.execution.mjs +23 -0
  430. package/esm2022/f-storage/features/notify-transform-changed/index.mjs +3 -0
  431. package/esm2022/f-storage/features/notify-transform-changed/notify-transform-changed.execution.mjs +23 -0
  432. package/esm2022/f-storage/features/notify-transform-changed/notify-transform-changed.request.mjs +3 -0
  433. package/esm2022/f-storage/index.mjs +7 -2
  434. package/esm2022/f-storage/providers.mjs +15 -0
  435. package/esm2022/f-zoom/f-zoom-base.mjs +51 -45
  436. package/esm2022/f-zoom/f-zoom.directive.mjs +11 -12
  437. package/esm2022/i-has-host-element.mjs +1 -1
  438. package/esm2022/public-api.mjs +2 -2
  439. package/esm2022/reactivity/debounce-time.mjs +10 -0
  440. package/esm2022/reactivity/f-channel-hub.mjs +23 -0
  441. package/esm2022/reactivity/f-channel.mjs +16 -0
  442. package/esm2022/reactivity/f-resize-channel.mjs +28 -0
  443. package/esm2022/reactivity/index.mjs +7 -0
  444. package/esm2022/reactivity/notify-on-start.mjs +7 -0
  445. package/esm2022/reactivity/types.mjs +2 -0
  446. package/f-backgroud/f-background-base.d.ts +0 -1
  447. package/f-backgroud/f-background.component.d.ts +3 -8
  448. package/f-backgroud/f-circle-pattern/f-circle-pattern.component.d.ts +16 -17
  449. package/f-backgroud/f-rect-pattern/f-rect-pattern.component.d.ts +17 -20
  450. package/f-canvas/f-canvas-base.d.ts +0 -2
  451. package/f-canvas/f-canvas.component.d.ts +5 -11
  452. package/f-connection/common/f-connection-base.d.ts +3 -5
  453. package/f-connection/common/f-drag-handle/f-connection-drag-handle.component.d.ts +1 -1
  454. package/f-connection/common/f-path/i-connection-path.d.ts +1 -1
  455. package/f-connection/common/i-has-connection-text.d.ts +1 -0
  456. package/f-connection/f-connection/f-connection.component.d.ts +17 -35
  457. package/f-connection/f-connection-builder/i-f-connection-factory-request.d.ts +1 -1
  458. package/f-connection/f-connection-for-create/f-connection-for-create.component.d.ts +13 -23
  459. package/f-connection/f-marker/f-marker.directive.d.ts +2 -3
  460. package/f-connection/f-snap-connection/f-snap-connection.component.d.ts +13 -23
  461. package/f-connection/providers.d.ts +1 -1
  462. package/f-connectors/f-connector-base.d.ts +7 -8
  463. package/f-connectors/f-node-input/f-node-input-base.d.ts +0 -1
  464. package/f-connectors/f-node-input/f-node-input.directive.d.ts +14 -16
  465. package/f-connectors/f-node-outlet/f-node-outlet-base.d.ts +0 -1
  466. package/f-connectors/f-node-outlet/f-node-outlet.directive.d.ts +9 -11
  467. package/f-connectors/f-node-output/f-node-output-base.d.ts +0 -1
  468. package/f-connectors/f-node-output/f-node-output.directive.d.ts +14 -16
  469. package/f-draggable/canvas/canvas.drag-handler.d.ts +3 -3
  470. package/f-draggable/connections/create-connection/create-connection.drag-handler.d.ts +3 -3
  471. package/f-draggable/connections/providers.d.ts +1 -1
  472. package/f-draggable/connections/reassign-connection/reassign-connection.drag-handler.d.ts +3 -3
  473. package/f-draggable/domain/index.d.ts +1 -0
  474. package/f-draggable/domain/is-connection-under-node/f-node-intersected-with-connections.d.ts +5 -0
  475. package/f-draggable/domain/is-connection-under-node/index.d.ts +4 -0
  476. package/f-draggable/domain/is-connection-under-node/is-connection-under-node.execution.d.ts +19 -0
  477. package/f-draggable/domain/is-connection-under-node/is-connection-under-node.validator.d.ts +9 -0
  478. package/f-draggable/domain/providers.d.ts +2 -1
  479. package/f-draggable/f-draggable-base.d.ts +2 -0
  480. package/f-draggable/f-draggable.directive.d.ts +9 -16
  481. package/f-draggable/i-draggable-item.d.ts +3 -3
  482. package/f-draggable/index.d.ts +1 -0
  483. package/f-draggable/node/connection-base-drag-handler.d.ts +2 -2
  484. package/f-draggable/node/connection-source.drag-handler.d.ts +1 -1
  485. package/f-draggable/node/connection-target.drag-handler.d.ts +1 -1
  486. package/f-draggable/node/connection.drag-handler.d.ts +1 -1
  487. package/f-draggable/node/create-move-nodes-drag-model-from-selection/create-move-nodes-drag-model-from-selection.execution.d.ts +1 -0
  488. package/f-draggable/node/create-move-nodes-drag-model-from-selection/providers.d.ts +1 -1
  489. package/f-draggable/node/node-drag-to-parent.drag-handler.d.ts +2 -2
  490. package/f-draggable/node/node-resize-by-child.drag-handler.d.ts +3 -2
  491. package/f-draggable/node/node.drag-handler.d.ts +2 -2
  492. package/f-draggable/node/providers.d.ts +1 -1
  493. package/f-draggable/node-resize/node-resize.drag-handler.d.ts +3 -3
  494. package/f-draggable/providers.d.ts +1 -1
  495. package/f-draggable/single-select/single-select.execution.d.ts +1 -0
  496. package/f-external-item/domain/external-item.drag-handler.d.ts +3 -3
  497. package/f-external-item/domain/index.d.ts +1 -0
  498. package/f-external-item/domain/prevent-default-is-external-item/index.d.ts +2 -0
  499. package/f-external-item/domain/prevent-default-is-external-item/prevent-default-is-external-item.execution.d.ts +10 -0
  500. package/f-external-item/domain/prevent-default-is-external-item/prevent-default-is-external-item.request.d.ts +4 -0
  501. package/f-external-item/domain/providers.d.ts +2 -1
  502. package/f-flow/f-flow-base.d.ts +1 -1
  503. package/f-flow/f-flow.component.d.ts +11 -13
  504. package/f-line-alignment/f-line-alignment.component.d.ts +8 -10
  505. package/f-minimap/domain/f-minimap.drag-handler.d.ts +3 -3
  506. package/f-minimap/domain/index.d.ts +3 -1
  507. package/f-minimap/domain/minimap-calculate-svg-scale-and-view-box/i-f-minimap-scale-and-view-box.d.ts +5 -0
  508. package/f-minimap/domain/minimap-calculate-svg-scale-and-view-box/index.d.ts +3 -0
  509. package/f-minimap/domain/minimap-calculate-svg-scale-and-view-box/minimap-calculate-svg-scale-and-view-box.execution.d.ts +22 -0
  510. package/f-minimap/domain/minimap-calculate-svg-scale-and-view-box/minimap-calculate-svg-scale-and-view-box.request.d.ts +5 -0
  511. package/f-minimap/domain/minimap-calculate-view-box/index.d.ts +2 -0
  512. package/f-minimap/domain/minimap-calculate-view-box/minimap-calculate-view-box.execution.d.ts +14 -0
  513. package/f-minimap/domain/minimap-calculate-view-box/minimap-calculate-view-box.request.d.ts +2 -0
  514. package/f-minimap/domain/minimap-draw-nodes/index.d.ts +2 -0
  515. package/f-minimap/domain/minimap-draw-nodes/minimap-draw-nodes.execution.d.ts +18 -0
  516. package/f-minimap/domain/minimap-draw-nodes/minimap-draw-nodes.request.d.ts +2 -0
  517. package/f-minimap/domain/providers.d.ts +4 -1
  518. package/f-minimap/f-minimap-canvas.directive.d.ts +3 -15
  519. package/f-minimap/f-minimap-flow.directive.d.ts +4 -20
  520. package/f-minimap/f-minimap-view.directive.d.ts +4 -9
  521. package/f-minimap/f-minimap.component.d.ts +7 -10
  522. package/f-node/domain/index.d.ts +0 -1
  523. package/f-node/f-drag-handle/f-drag-handle.directive.d.ts +2 -3
  524. package/f-node/f-group.directive.d.ts +4 -11
  525. package/f-node/f-node-base.d.ts +6 -7
  526. package/f-node/f-node.directive.d.ts +4 -11
  527. package/f-node/f-resize-handle/f-resize-handle.directive.d.ts +4 -6
  528. package/f-node/index.d.ts +0 -1
  529. package/f-selection-area/domain/selection-area.drag-handle.d.ts +3 -3
  530. package/f-selection-area/f-selection-area.component.d.ts +3 -5
  531. package/f-storage/f-components-store.d.ts +7 -9
  532. package/f-storage/features/listen-components-data-changed/index.d.ts +2 -0
  533. package/f-storage/features/listen-components-data-changed/listen-data-changes-request.d.ts +2 -0
  534. package/f-storage/features/listen-components-data-changed/listen-data-changes.execution.d.ts +10 -0
  535. package/f-storage/features/listen-count-changes/index.d.ts +2 -0
  536. package/f-storage/features/listen-count-changes/listen-count-changes-request.d.ts +2 -0
  537. package/f-storage/features/listen-count-changes/listen-count-changes.execution.d.ts +10 -0
  538. package/f-storage/features/listen-transform-changes/index.d.ts +2 -0
  539. package/f-storage/features/listen-transform-changes/listen-transform-changes.execution.d.ts +10 -0
  540. package/f-storage/features/listen-transform-changes/listen-transform-changes.request.d.ts +2 -0
  541. package/f-storage/features/notify-data-changed/index.d.ts +2 -0
  542. package/f-storage/features/notify-data-changed/notify-data-changed-request.d.ts +2 -0
  543. package/f-storage/features/notify-data-changed/notify-data-changed.execution.d.ts +9 -0
  544. package/f-storage/features/notify-transform-changed/index.d.ts +2 -0
  545. package/f-storage/features/notify-transform-changed/notify-transform-changed.execution.d.ts +9 -0
  546. package/f-storage/features/notify-transform-changed/notify-transform-changed.request.d.ts +2 -0
  547. package/f-storage/index.d.ts +6 -1
  548. package/f-storage/providers.d.ts +7 -0
  549. package/f-zoom/f-zoom-base.d.ts +10 -11
  550. package/f-zoom/f-zoom.directive.d.ts +0 -2
  551. package/fesm2022/foblex-flow.mjs +4109 -3168
  552. package/fesm2022/foblex-flow.mjs.map +1 -1
  553. package/i-has-host-element.d.ts +2 -2
  554. package/package.json +5 -6
  555. package/public-api.d.ts +1 -1
  556. package/reactivity/debounce-time.d.ts +2 -0
  557. package/reactivity/f-channel-hub.d.ts +10 -0
  558. package/reactivity/f-channel.d.ts +7 -0
  559. package/reactivity/f-resize-channel.d.ts +11 -0
  560. package/reactivity/index.d.ts +6 -0
  561. package/reactivity/notify-on-start.d.ts +2 -0
  562. package/reactivity/types.d.ts +2 -0
  563. package/domain/constants.d.ts +0 -1
  564. package/domain/emit-transform-changes/emit-transform-changes.execution.d.ts +0 -11
  565. package/domain/emit-transform-changes/emit-transform-changes.request.d.ts +0 -2
  566. package/domain/emit-transform-changes/index.d.ts +0 -2
  567. package/domain/get-nodes-rect/get-nodes-rect.execution.d.ts +0 -14
  568. package/domain/get-nodes-rect/get-nodes-rect.request.d.ts +0 -2
  569. package/domain/get-nodes-rect/index.d.ts +0 -2
  570. package/domain/is-connection-under-node/index.d.ts +0 -1
  571. package/domain/is-connection-under-node/is-connection-under-node.execution.d.ts +0 -20
  572. package/domain/show-connections-after-calculations/index.d.ts +0 -2
  573. package/domain/show-connections-after-calculations/show-connections-after-calculations-request.d.ts +0 -2
  574. package/domain/show-connections-after-calculations/show-connections-after-calculations.execution.d.ts +0 -11
  575. package/domain/subscribe-on-transform-changes/index.d.ts +0 -2
  576. package/domain/subscribe-on-transform-changes/subscribe-on-transform-changes.execution.d.ts +0 -13
  577. package/domain/subscribe-on-transform-changes/subscribe-on-transform-changes.request.d.ts +0 -2
  578. package/esm2022/domain/constants.mjs +0 -2
  579. package/esm2022/domain/create-connection-markers/create-connection-markers-request.mjs +0 -6
  580. package/esm2022/domain/create-connection-markers/create-connection-markers.execution.mjs +0 -60
  581. package/esm2022/domain/create-connection-markers/index.mjs +0 -3
  582. package/esm2022/domain/emit-transform-changes/emit-transform-changes.execution.mjs +0 -23
  583. package/esm2022/domain/emit-transform-changes/emit-transform-changes.request.mjs +0 -3
  584. package/esm2022/domain/emit-transform-changes/index.mjs +0 -3
  585. package/esm2022/domain/get-nodes-rect/get-nodes-rect.execution.mjs +0 -30
  586. package/esm2022/domain/get-nodes-rect/get-nodes-rect.request.mjs +0 -3
  587. package/esm2022/domain/get-nodes-rect/index.mjs +0 -3
  588. package/esm2022/domain/is-connection-under-node/index.mjs +0 -2
  589. package/esm2022/domain/is-connection-under-node/is-connection-under-node.execution.mjs +0 -75
  590. package/esm2022/domain/is-connection-under-node/is-connection-under-node.request.mjs +0 -3
  591. package/esm2022/domain/redraw-connections/index.mjs +0 -3
  592. package/esm2022/domain/redraw-connections/redraw-connections-request.mjs +0 -3
  593. package/esm2022/domain/redraw-connections/redraw-connections.execution.mjs +0 -62
  594. package/esm2022/domain/show-connections-after-calculations/index.mjs +0 -3
  595. package/esm2022/domain/show-connections-after-calculations/show-connections-after-calculations-request.mjs +0 -3
  596. package/esm2022/domain/show-connections-after-calculations/show-connections-after-calculations.execution.mjs +0 -25
  597. package/esm2022/domain/subscribe-on-transform-changes/index.mjs +0 -3
  598. package/esm2022/domain/subscribe-on-transform-changes/subscribe-on-transform-changes.execution.mjs +0 -25
  599. package/esm2022/domain/subscribe-on-transform-changes/subscribe-on-transform-changes.request.mjs +0 -3
  600. package/esm2022/f-minimap/domain/check-rect-is-finite.mjs +0 -8
  601. package/esm2022/f-node/domain/is-group.mjs +0 -4
  602. package/esm2022/f-node/f-resize-observer.mjs +0 -16
  603. package/esm2022/f-storage/f-transform-store.mjs +0 -14
  604. package/esm2022/i-has-state-changes.mjs +0 -2
  605. package/f-minimap/domain/check-rect-is-finite.d.ts +0 -2
  606. package/f-node/domain/is-group.d.ts +0 -1
  607. package/f-node/f-resize-observer.d.ts +0 -4
  608. package/f-storage/f-transform-store.d.ts +0 -7
  609. package/i-has-state-changes.d.ts +0 -4
  610. /package/domain/{create-connection-markers → f-connection/create-connection-markers}/index.d.ts +0 -0
  611. /package/domain/{redraw-connections → f-connection/redraw-connections}/index.d.ts +0 -0
  612. /package/domain/{redraw-connections → f-connection/redraw-connections}/redraw-connections-request.d.ts +0 -0
  613. /package/{domain → f-draggable/domain}/is-connection-under-node/is-connection-under-node.request.d.ts +0 -0
@@ -1,68 +1,24 @@
1
- import { Directive, Input, } from "@angular/core";
2
- import { RectExtensions, SizeExtensions } from '@foblex/2d';
3
- import { checkRectIsFinite, FMinimapData } from './domain';
4
- import { GetNodesRectRequest } from '../domain';
1
+ import { Directive, ElementRef, inject, Input, } from "@angular/core";
2
+ import { setRectToViewBox } from '@foblex/2d';
3
+ import { FMediator } from '@foblex/mediator';
4
+ import { FMinimapData, MinimapCalculateSvgScaleAndViewBoxRequest } from './domain';
5
5
  import * as i0 from "@angular/core";
6
- import * as i1 from "@foblex/mediator";
7
- import * as i2 from "../f-storage";
8
6
  export class FMinimapFlowDirective {
9
- get flowHost() {
10
- return this.fComponentsStore.flowHost;
11
- }
12
- get hostElement() {
13
- return this.elementReference.nativeElement;
14
- }
15
- constructor(elementReference, fMediator, fComponentsStore) {
16
- this.elementReference = elementReference;
17
- this.fMediator = fMediator;
18
- this.fComponentsStore = fComponentsStore;
7
+ constructor() {
19
8
  this.fMinSize = 1000;
9
+ this._fMediator = inject(FMediator);
10
+ this._elementReference = inject(ElementRef);
20
11
  this.model = new FMinimapData(this.hostElement);
21
12
  }
22
- update() {
23
- const nodesRect = this.getProcessedNodesRect();
24
- const minimapRect = this.getMinimapRect();
25
- const scale = this.calculateViewScale(nodesRect, minimapRect);
26
- const viewBox = this.calculateViewBox(nodesRect, minimapRect, scale);
27
- this.model = new FMinimapData(this.hostElement, scale, viewBox);
28
- this.setViewBox(viewBox);
29
- }
30
- getProcessedNodesRect() {
31
- const normalizedRect = this.normalizeRect(this.getNodesRect());
32
- return this.ensureMinimumSize(normalizedRect);
33
- }
34
- getNodesRect() {
35
- const rect = this.fMediator.send(new GetNodesRectRequest()) || RectExtensions.initialize(0, 0, 0, 0);
36
- return RectExtensions.elementTransform(rect, this.flowHost);
37
- }
38
- getMinimapRect() {
39
- return RectExtensions.elementTransform(RectExtensions.fromElement(this.hostElement), this.flowHost);
40
- }
41
- normalizeRect(rect) {
42
- return RectExtensions.div(rect, this.fComponentsStore.transform.scale);
43
- }
44
- ensureMinimumSize(rect) {
45
- return RectExtensions.initialize(rect.x - (Math.max(rect.width, this.fMinSize) - rect.width) / 2, rect.y - (Math.max(rect.height, this.fMinSize) - rect.height) / 2, Math.max(rect.width, this.fMinSize), Math.max(rect.height, this.fMinSize));
46
- }
47
- calculateViewScale(nodesRect, minimapRect) {
48
- return Math.max(nodesRect.width / minimapRect.width, nodesRect.height / minimapRect.height);
49
- }
50
- calculateViewBox(nodesRect, minimapRect, scale) {
51
- return this.calculateCenteredViewBox(nodesRect, this.calculateViewSize(minimapRect, scale));
52
- }
53
- calculateViewSize(minimapRect, scale) {
54
- return SizeExtensions.initialize(minimapRect.width * scale || 0, minimapRect.height * scale || 0);
55
- }
56
- calculateCenteredViewBox(nodesRect, viewSize) {
57
- const centeredX = nodesRect.x - (viewSize.width - nodesRect.width) / 2;
58
- const centeredY = nodesRect.y - (viewSize.height - nodesRect.height) / 2;
59
- return RectExtensions.initialize(centeredX, centeredY, viewSize.width, viewSize.height);
13
+ get hostElement() {
14
+ return this._elementReference.nativeElement;
60
15
  }
61
- setViewBox(viewBox) {
62
- viewBox = checkRectIsFinite(viewBox);
63
- this.hostElement.setAttribute('viewBox', `${viewBox.x} ${viewBox.y} ${viewBox.width} ${viewBox.height}`);
16
+ redraw() {
17
+ const { scale, viewBox } = this._fMediator.send(new MinimapCalculateSvgScaleAndViewBoxRequest(this.hostElement, this.fMinSize));
18
+ this.model = new FMinimapData(this.hostElement, scale, viewBox);
19
+ setRectToViewBox(viewBox, this.hostElement);
64
20
  }
65
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FMinimapFlowDirective, deps: [{ token: i0.ElementRef }, { token: i1.FMediator }, { token: i2.FComponentsStore }], target: i0.ɵɵFactoryTarget.Directive }); }
21
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FMinimapFlowDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
66
22
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: FMinimapFlowDirective, selector: "svg[fMinimapFlow]", inputs: { fMinSize: "fMinSize" }, ngImport: i0 }); }
67
23
  }
68
24
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FMinimapFlowDirective, decorators: [{
@@ -70,7 +26,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
70
26
  args: [{
71
27
  selector: 'svg[fMinimapFlow]'
72
28
  }]
73
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.FMediator }, { type: i2.FComponentsStore }]; }, propDecorators: { fMinSize: [{
29
+ }], propDecorators: { fMinSize: [{
74
30
  type: Input
75
31
  }] } });
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1taW5pbWFwLWZsb3cuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLW1pbmltYXAvZi1taW5pbWFwLWZsb3cuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQWMsS0FBSyxHQUM3QixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQWdCLGNBQWMsRUFBRSxjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFMUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxXQUFXLENBQUM7Ozs7QUFLaEQsTUFBTSxPQUFPLHFCQUFxQjtJQU9oQyxJQUFZLFFBQVE7UUFDbEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFXLFdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDO0lBQzdDLENBQUM7SUFFRCxZQUNVLGdCQUEyQyxFQUMzQyxTQUFvQixFQUNwQixnQkFBa0M7UUFGbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUEyQjtRQUMzQyxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3BCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFickMsYUFBUSxHQUFXLElBQUksQ0FBQztRQWU3QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRU0sTUFBTTtRQUNYLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQy9DLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUUxQyxNQUFNLEtBQUssR0FBRyxJQUFJ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SUFFTyx3QkFBd0IsQ0FBQyxTQUFnQixFQUFFLFFBQWU7UUFDaEUsTUFBTSxTQUFTLEdBQUcsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN2RSxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pFLE9BQU8sY0FBYyxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzFGLENBQUM7SUFFTyxVQUFVLENBQUMsT0FBYztRQUMvQixPQUFPLEdBQUcsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLEdBQUksT0FBTyxDQUFDLENBQUUsSUFBSyxPQUFPLENBQUMsQ0FBRSxJQUFLLE9BQU8sQ0FBQyxLQUFNLElBQUssT0FBTyxDQUFDLE1BQU8sRUFBRSxDQUFDLENBQUM7SUFDbkgsQ0FBQzsrR0FqRlUscUJBQXFCO21HQUFyQixxQkFBcUI7OzRGQUFyQixxQkFBcUI7a0JBSGpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtpQkFDOUI7d0pBTVEsUUFBUTtzQkFEZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCxcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZDb21wb25lbnRzU3RvcmUgfSBmcm9tICcuLi9mLXN0b3JhZ2UnO1xuaW1wb3J0IHsgSVJlY3QsIElTaXplLCBSZWN0RXh0ZW5zaW9ucywgU2l6ZUV4dGVuc2lvbnMgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IEZNZWRpYXRvciB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgY2hlY2tSZWN0SXNGaW5pdGUsIEZNaW5pbWFwRGF0YSB9IGZyb20gJy4vZG9tYWluJztcbmltcG9ydCB7IEdldE5vZGVzUmVjdFJlcXVlc3QgfSBmcm9tICcuLi9kb21haW4nO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdzdmdbZk1pbmltYXBGbG93XSdcbn0pXG5leHBvcnQgY2xhc3MgRk1pbmltYXBGbG93RGlyZWN0aXZlIHtcblxuICBwdWJsaWMgbW9kZWw6IEZNaW5pbWFwRGF0YTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZk1pblNpemU6IG51bWJlciA9IDEwMDA7XG5cbiAgcHJpdmF0ZSBnZXQgZmxvd0hvc3QoKTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmZDb21wb25lbnRzU3RvcmUuZmxvd0hvc3Q7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhvc3RFbGVtZW50KCk6IFNWR1NWR0VsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWZlcmVuY2UubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudFJlZmVyZW5jZTogRWxlbWVudFJlZjxTVkdTVkdFbGVtZW50PixcbiAgICBwcml2YXRlIGZNZWRpYXRvcjogRk1lZGlhdG9yLFxuICAgIHByaXZhdGUgZkNvbXBvbmVudHNTdG9yZTogRkNvbXBvbmVudHNTdG9yZVxuICApIHtcbiAgICB0aGlzLm1vZGVsID0gbmV3IEZNaW5pbWFwRGF0YSh0aGlzLmhvc3RFbGVtZW50KTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGUoKTogdm9pZCB7XG4gICAgY29uc3Qgbm9kZXNSZWN0ID0gdGhpcy5nZXRQcm9jZXNzZWROb2Rlc1JlY3QoKTtcbiAgICBjb25zdCBtaW5pbWFwUmVjdCA9IHRoaXMuZ2V0TWluaW1hcFJlY3QoKTtcblxuICAgIGNvbnN0IHNjYWxlID0gdGhpcy5jYWxjdWxhdGVWaWV3U2NhbGUobm9kZXNSZWN0LCBtaW5pbWFwUmVjdCk7XG4gICAgY29uc3Qgdmlld0JveCA9IHRoaXMuY2FsY3VsYXRlVmlld0JveChub2Rlc1JlY3QsIG1pbmltYXBSZWN0LCBzY2FsZSk7XG4gICAgdGhpcy5tb2RlbCA9IG5ldyBGTWluaW1hcERhdGEodGhpcy5ob3N0RWxlbWVudCwgc2NhbGUsIHZpZXdCb3gpO1xuICAgIHRoaXMuc2V0Vmlld0JveCh2aWV3Qm94KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UHJvY2Vzc2VkTm9kZXNSZWN0KCk6IElSZWN0IHtcbiAgICBjb25zdCBub3JtYWxpemVkUmVjdCA9IHRoaXMubm9ybWFsaXplUmVjdCh0aGlzLmdldE5vZGVzUmVjdCgpKTtcbiAgICByZXR1cm4gdGhpcy5lbnN1cmVNaW5pbXVtU2l6ZShub3JtYWxpemVkUmVjdCk7XG4gIH1cblxuICBwcml2YXRlIGdldE5vZGVzUmVjdCgpOiBJUmVjdCB7XG4gICAgY29uc3QgcmVjdCA9IHRoaXMuZk1lZGlhdG9yLnNlbmQ8SVJlY3QgfCBudWxsPihuZXcgR2V0Tm9kZXNSZWN0UmVxdWVzdCgpKSB8fCBSZWN0RXh0ZW5zaW9ucy5pbml0aWFsaXplKDAsIDAsIDAsIDApO1xuICAgIHJldHVybiBSZWN0RXh0ZW5zaW9ucy5lbGVtZW50VHJhbnNmb3JtKHJlY3QsIHRoaXMuZmxvd0hvc3QpXG4gIH1cblxuICBwcml2YXRlIGdldE1pbmltYXBSZWN0KCk6IElSZWN0IHtcbiAgICByZXR1cm4gUmVjdEV4dGVuc2lvbnMuZWxlbWVudFRyYW5zZm9ybShSZWN0RXh0ZW5zaW9ucy5mcm9tRWxlbWVudCh0aGlzLmhvc3RFbGVtZW50KSwgdGhpcy5mbG93SG9zdCk7XG4gIH1cblxuICBwcml2YXRlIG5vcm1hbGl6ZVJlY3QocmVjdDogSVJlY3QpOiBJUmVjdCB7XG4gICAgcmV0dXJuIFJlY3RFeHRlbnNpb25zLmRpdihyZWN0LCB0aGlzLmZDb21wb25lbnRzU3RvcmUudHJhbnNmb3JtLnNjYWxlKTtcbiAgfVxuXG4gIHByaXZhdGUgZW5zdXJlTWluaW11bVNpemUocmVjdDogSVJlY3QpOiBJUmVjdCB7XG4gICAgcmV0dXJuIFJlY3RFeHRlbnNpb25zLmluaXRpYWxpemUoXG4gICAgICByZWN0LnggLSAoTWF0aC5tYXgocmVjdC53aWR0aCwgdGhpcy5mTWluU2l6ZSkgLSByZWN0LndpZHRoKSAvIDIsXG4gICAgICByZWN0LnkgLSAoTWF0aC5tYXgocmVjdC5oZWlnaHQsIHRoaXMuZk1pblNpemUpIC0gcmVjdC5oZWlnaHQpIC8gMixcbiAgICAgIE1hdGgubWF4KHJlY3Qud2lkdGgsIHRoaXMuZk1pblNpemUpLFxuICAgICAgTWF0aC5tYXgocmVjdC5oZWlnaHQsIHRoaXMuZk1pblNpemUpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgY2FsY3VsYXRlVmlld1NjYWxlKG5vZGVzUmVjdDogSVJlY3QsIG1pbmltYXBSZWN0OiBJUmVjdCk6IG51bWJlciB7XG4gICAgcmV0dXJuIE1hdGgubWF4KG5vZGVzUmVjdC53aWR0aCAvIG1pbmltYXBSZWN0LndpZHRoLCBub2Rlc1JlY3QuaGVpZ2h0IC8gbWluaW1hcFJlY3QuaGVpZ2h0KTtcbiAgfVxuXG4gIHByaXZhdGUgY2FsY3VsYXRlVmlld0JveChub2Rlc1JlY3Q6IElSZWN0LCBtaW5pbWFwUmVjdDogSVJlY3QsIHNjYWxlOiBudW1iZXIpOiBJUmVjdCB7XG4gICAgcmV0dXJuIHRoaXMuY2FsY3VsYXRlQ2VudGVyZWRWaWV3Qm94KG5vZGVzUmVjdCwgdGhpcy5jYWxjdWxhdGVWaWV3U2l6ZShtaW5pbWFwUmVjdCwgc2NhbGUpKTtcbiAgfVxuXG4gIHByaXZhdGUgY2FsY3VsYXRlVmlld1NpemUobWluaW1hcFJlY3Q6IElSZWN0LCBzY2FsZTogbnVtYmVyKTogSVNpemUge1xuICAgIHJldHVybiBTaXplRXh0ZW5zaW9ucy5pbml0aWFsaXplKG1pbmltYXBSZWN0LndpZHRoICogc2NhbGUgfHwgMCwgbWluaW1hcFJlY3QuaGVpZ2h0ICogc2NhbGUgfHwgMCk7XG4gIH1cblxuICBwcml2YXRlIGNhbGN1bGF0ZUNlbnRlcmVkVmlld0JveChub2Rlc1JlY3Q6IElSZWN0LCB2aWV3U2l6ZTogSVNpemUpOiBJUmVjdCB7XG4gICAgY29uc3QgY2VudGVyZWRYID0gbm9kZXNSZWN0LnggLSAodmlld1NpemUud2lkdGggLSBub2Rlc1JlY3Qud2lkdGgpIC8gMjtcbiAgICBjb25zdCBjZW50ZXJlZFkgPSBub2Rlc1JlY3QueSAtICh2aWV3U2l6ZS5oZWlnaHQgLSBub2Rlc1JlY3QuaGVpZ2h0KSAvIDI7XG4gICAgcmV0dXJuIFJlY3RFeHRlbnNpb25zLmluaXRpYWxpemUoY2VudGVyZWRYLCBjZW50ZXJlZFksIHZpZXdTaXplLndpZHRoLCB2aWV3U2l6ZS5oZWlnaHQpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRWaWV3Qm94KHZpZXdCb3g6IElSZWN0KTogdm9pZCB7XG4gICAgdmlld0JveCA9IGNoZWNrUmVjdElzRmluaXRlKHZpZXdCb3gpO1xuICAgIHRoaXMuaG9zdEVsZW1lbnQuc2V0QXR0cmlidXRlKCd2aWV3Qm94JywgYCR7IHZpZXdCb3gueCB9ICR7IHZpZXdCb3gueSB9ICR7IHZpZXdCb3gud2lkdGggfSAkeyB2aWV3Qm94LmhlaWdodCB9YCk7XG4gIH1cbn1cbiJdfQ==
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1taW5pbWFwLWZsb3cuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLW1pbmltYXAvZi1taW5pbWFwLWZsb3cuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEdBQ3JDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM5QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBNEIseUNBQXlDLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBSzdHLE1BQU0sT0FBTyxxQkFBcUI7SUFIbEM7UUFNUyxhQUFRLEdBQVcsSUFBSSxDQUFDO1FBRXZCLGVBQVUsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFL0Isc0JBQWlCLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBTXhDLFVBQUssR0FBaUIsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0tBVWpFO0lBZEMsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQztJQUM5QyxDQUFDO0lBSU0sTUFBTTtRQUNYLE1BQU0sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQzVDLElBQUkseUNBQXlDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQy9FLENBQUM7UUFDRixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRWhFLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDOUMsQ0FBQzsrR0F0QlUscUJBQXFCO21HQUFyQixxQkFBcUI7OzRGQUFyQixxQkFBcUI7a0JBSGpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtpQkFDOUI7OEJBSVEsUUFBUTtzQkFEZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBpbmplY3QsIElucHV0LCBPbkluaXQsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBzZXRSZWN0VG9WaWV3Qm94IH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQgeyBGTWVkaWF0b3IgfSBmcm9tICdAZm9ibGV4L21lZGlhdG9yJztcbmltcG9ydCB7IEZNaW5pbWFwRGF0YSwgSUZNaW5pbWFwU2NhbGVBbmRWaWV3Qm94LCBNaW5pbWFwQ2FsY3VsYXRlU3ZnU2NhbGVBbmRWaWV3Qm94UmVxdWVzdCB9IGZyb20gJy4vZG9tYWluJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnc3ZnW2ZNaW5pbWFwRmxvd10nXG59KVxuZXhwb3J0IGNsYXNzIEZNaW5pbWFwRmxvd0RpcmVjdGl2ZSB7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGZNaW5TaXplOiBudW1iZXIgPSAxMDAwO1xuXG4gIHByaXZhdGUgX2ZNZWRpYXRvciA9IGluamVjdChGTWVkaWF0b3IpO1xuXG4gIHByaXZhdGUgX2VsZW1lbnRSZWZlcmVuY2UgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cbiAgcHVibGljIGdldCBob3N0RWxlbWVudCgpOiBTVkdTVkdFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZmVyZW5jZS5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgcHVibGljIG1vZGVsOiBGTWluaW1hcERhdGEgPSBuZXcgRk1pbmltYXBEYXRhKHRoaXMuaG9zdEVsZW1lbnQpO1xuXG4gIHB1YmxpYyByZWRyYXcoKTogdm9pZCB7XG4gICAgY29uc3QgeyBzY2FsZSwgdmlld0JveH0gPSB0aGlzLl9mTWVkaWF0b3Iuc2VuZDxJRk1pbmltYXBTY2FsZUFuZFZpZXdCb3g+KFxuICAgICAgbmV3IE1pbmltYXBDYWxjdWxhdGVTdmdTY2FsZUFuZFZpZXdCb3hSZXF1ZXN0KHRoaXMuaG9zdEVsZW1lbnQsIHRoaXMuZk1pblNpemUpXG4gICAgKTtcbiAgICB0aGlzLm1vZGVsID0gbmV3IEZNaW5pbWFwRGF0YSh0aGlzLmhvc3RFbGVtZW50LCBzY2FsZSwgdmlld0JveCk7XG5cbiAgICBzZXRSZWN0VG9WaWV3Qm94KHZpZXdCb3gsIHRoaXMuaG9zdEVsZW1lbnQpO1xuICB9XG59XG4iXX0=
@@ -1,31 +1,20 @@
1
- import { Directive } from "@angular/core";
2
- import { RectExtensions } from '@foblex/2d';
3
- import { checkRectIsFinite } from './domain';
1
+ import { Directive, ElementRef, inject } from "@angular/core";
2
+ import { setRectToElement } from '@foblex/2d';
3
+ import { FMediator } from '@foblex/mediator';
4
+ import { MinimapCalculateViewBoxRequest } from './domain';
4
5
  import * as i0 from "@angular/core";
5
- import * as i1 from "../f-storage";
6
6
  export class FMinimapViewDirective {
7
- get hostElement() {
8
- return this.elementReference.nativeElement;
9
- }
10
- get flowScale() {
11
- return this.fComponentsStore.transform.scale;
7
+ constructor() {
8
+ this._fMediator = inject(FMediator);
9
+ this._elementReference = inject(ElementRef);
12
10
  }
13
- constructor(elementReference, fComponentsStore) {
14
- this.elementReference = elementReference;
15
- this.fComponentsStore = fComponentsStore;
16
- }
17
- update() {
18
- const viewBox = RectExtensions.div(RectExtensions.fromElement(this.fComponentsStore.flowHost), this.flowScale);
19
- this.setAttributes(viewBox);
11
+ get hostElement() {
12
+ return this._elementReference.nativeElement;
20
13
  }
21
- setAttributes(viewBox) {
22
- viewBox = checkRectIsFinite(viewBox);
23
- this.hostElement.setAttribute('x', '0');
24
- this.hostElement.setAttribute('y', '0');
25
- this.hostElement.setAttribute('width', viewBox.width.toString());
26
- this.hostElement.setAttribute('height', viewBox.height.toString());
14
+ redraw() {
15
+ setRectToElement(this._fMediator.send(new MinimapCalculateViewBoxRequest()), this.hostElement);
27
16
  }
28
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FMinimapViewDirective, deps: [{ token: i0.ElementRef }, { token: i1.FComponentsStore }], target: i0.ɵɵFactoryTarget.Directive }); }
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FMinimapViewDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
29
18
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: FMinimapViewDirective, selector: "rect[fMinimapView]", host: { classAttribute: "f-component f-minimap-view" }, ngImport: i0 }); }
30
19
  }
31
20
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FMinimapViewDirective, decorators: [{
@@ -36,5 +25,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
36
25
  'class': 'f-component f-minimap-view',
37
26
  }
38
27
  }]
39
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.FComponentsStore }]; } });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1taW5pbWFwLXZpZXcuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLW1pbmltYXAvZi1taW5pbWFwLXZpZXcuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFFdEQsT0FBTyxFQUFTLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxVQUFVLENBQUM7OztBQVE3QyxNQUFNLE9BQU8scUJBQXFCO0lBRWhDLElBQVcsV0FBVztRQUNwQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUM7SUFDN0MsQ0FBQztJQUVELElBQVksU0FBUztRQUNuQixPQUFPLElBQUksQ0FBQyxnQkFBaUIsQ0FBQyxTQUFVLENBQUMsS0FBTSxDQUFDO0lBQ2xELENBQUM7SUFFRCxZQUNVLGdCQUE0QyxFQUM1QyxnQkFBa0M7UUFEbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUE0QjtRQUM1QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO0lBRTVDLENBQUM7SUFFTSxNQUFNO1FBQ1gsTUFBTSxPQUFPLEdBQUcsY0FBYyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDL0csSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRU8sYUFBYSxDQUFDLE9BQWM7UUFDbEMsT0FBTyxHQUFHLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7K0dBM0JVLHFCQUFxQjttR0FBckIscUJBQXFCOzs0RkFBckIscUJBQXFCO2tCQU5qQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLElBQUksRUFBRTt3QkFDSixPQUFPLEVBQUUsNEJBQTRCO3FCQUN0QztpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vZi1zdG9yYWdlJztcbmltcG9ydCB7IElSZWN0LCBSZWN0RXh0ZW5zaW9ucyB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgY2hlY2tSZWN0SXNGaW5pdGUgfSBmcm9tICcuL2RvbWFpbic7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ3JlY3RbZk1pbmltYXBWaWV3XScsXG4gIGhvc3Q6IHtcbiAgICAnY2xhc3MnOiAnZi1jb21wb25lbnQgZi1taW5pbWFwLXZpZXcnLFxuICB9XG59KVxuZXhwb3J0IGNsYXNzIEZNaW5pbWFwVmlld0RpcmVjdGl2ZSB7XG5cbiAgcHVibGljIGdldCBob3N0RWxlbWVudCgpOiBTVkdSZWN0RWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZmVyZW5jZS5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgZmxvd1NjYWxlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZkNvbXBvbmVudHNTdG9yZSEudHJhbnNmb3JtIS5zY2FsZSE7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsZW1lbnRSZWZlcmVuY2U6IEVsZW1lbnRSZWY8U1ZHUmVjdEVsZW1lbnQ+LFxuICAgIHByaXZhdGUgZkNvbXBvbmVudHNTdG9yZTogRkNvbXBvbmVudHNTdG9yZVxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGUoKTogdm9pZCB7XG4gICAgY29uc3Qgdmlld0JveCA9IFJlY3RFeHRlbnNpb25zLmRpdihSZWN0RXh0ZW5zaW9ucy5mcm9tRWxlbWVudCh0aGlzLmZDb21wb25lbnRzU3RvcmUuZmxvd0hvc3QpLCB0aGlzLmZsb3dTY2FsZSk7XG4gICAgdGhpcy5zZXRBdHRyaWJ1dGVzKHZpZXdCb3gpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRBdHRyaWJ1dGVzKHZpZXdCb3g6IElSZWN0KTogdm9pZCB7XG4gICAgdmlld0JveCA9IGNoZWNrUmVjdElzRmluaXRlKHZpZXdCb3gpO1xuICAgIHRoaXMuaG9zdEVsZW1lbnQuc2V0QXR0cmlidXRlKCd4JywgJzAnKTtcbiAgICB0aGlzLmhvc3RFbGVtZW50LnNldEF0dHJpYnV0ZSgneScsICcwJyk7XG4gICAgdGhpcy5ob3N0RWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3dpZHRoJywgdmlld0JveC53aWR0aC50b1N0cmluZygpKTtcbiAgICB0aGlzLmhvc3RFbGVtZW50LnNldEF0dHJpYnV0ZSgnaGVpZ2h0Jywgdmlld0JveC5oZWlnaHQudG9TdHJpbmcoKSk7XG4gIH1cbn1cbiJdfQ==
28
+ }] });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1taW5pbWFwLXZpZXcuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLW1pbmltYXAvZi1taW5pbWFwLXZpZXcuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQVMsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDckQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzdDLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7QUFRMUQsTUFBTSxPQUFPLHFCQUFxQjtJQU5sQztRQVFVLGVBQVUsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFL0Isc0JBQWlCLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0tBWWhEO0lBVkMsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQztJQUM5QyxDQUFDO0lBRU0sTUFBTTtRQUNYLGdCQUFnQixDQUNkLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFRLElBQUksOEJBQThCLEVBQUUsQ0FBQyxFQUNqRSxJQUFJLENBQUMsV0FBVyxDQUNqQixDQUFDO0lBQ0osQ0FBQzsrR0FmVSxxQkFBcUI7bUdBQXJCLHFCQUFxQjs7NEZBQXJCLHFCQUFxQjtrQkFOakMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixJQUFJLEVBQUU7d0JBQ0osT0FBTyxFQUFFLDRCQUE0QjtxQkFDdEM7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGluamVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBJUmVjdCwgc2V0UmVjdFRvRWxlbWVudCB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgRk1lZGlhdG9yIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBNaW5pbWFwQ2FsY3VsYXRlVmlld0JveFJlcXVlc3QgfSBmcm9tICcuL2RvbWFpbic7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ3JlY3RbZk1pbmltYXBWaWV3XScsXG4gIGhvc3Q6IHtcbiAgICAnY2xhc3MnOiAnZi1jb21wb25lbnQgZi1taW5pbWFwLXZpZXcnLFxuICB9XG59KVxuZXhwb3J0IGNsYXNzIEZNaW5pbWFwVmlld0RpcmVjdGl2ZSB7XG5cbiAgcHJpdmF0ZSBfZk1lZGlhdG9yID0gaW5qZWN0KEZNZWRpYXRvcik7XG5cbiAgcHJpdmF0ZSBfZWxlbWVudFJlZmVyZW5jZSA9IGluamVjdChFbGVtZW50UmVmKTtcblxuICBwdWJsaWMgZ2V0IGhvc3RFbGVtZW50KCk6IFNWR0dFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZmVyZW5jZS5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgcHVibGljIHJlZHJhdygpOiB2b2lkIHtcbiAgICBzZXRSZWN0VG9FbGVtZW50KFxuICAgICAgdGhpcy5fZk1lZGlhdG9yLnNlbmQ8SVJlY3Q+KG5ldyBNaW5pbWFwQ2FsY3VsYXRlVmlld0JveFJlcXVlc3QoKSksXG4gICAgICB0aGlzLmhvc3RFbGVtZW50XG4gICAgKTtcbiAgfVxufVxuIl19
@@ -1,50 +1,48 @@
1
- import { ChangeDetectionStrategy, Component, Input, ViewChild, } from "@angular/core";
2
- import { Subscription } from 'rxjs';
3
- import { debounceTime } from 'rxjs/operators';
4
- import { SubscribeOnTransformChangesRequest } from '../domain';
1
+ import { ChangeDetectionStrategy, Component, DestroyRef, inject, Input, ViewChild, } from "@angular/core";
2
+ import { FMediator } from '@foblex/mediator';
5
3
  import { FMinimapFlowDirective } from './f-minimap-flow.directive';
6
4
  import { FMinimapCanvasDirective } from './f-minimap-canvas.directive';
7
5
  import { FMinimapViewDirective } from './f-minimap-view.directive';
8
6
  import { F_DRAG_AND_DROP_PLUGIN } from '../f-draggable';
9
7
  import { MinimapDragFinalizeRequest, MinimapDragPreparationRequest } from './domain';
8
+ import { ListenTransformChangesRequest } from '../f-storage';
9
+ import { debounceTime, notifyOnStart } from '../reactivity';
10
+ import { BrowserService } from '@foblex/platform';
10
11
  import * as i0 from "@angular/core";
11
- import * as i1 from "@foblex/mediator";
12
- import * as i2 from "./f-minimap-canvas.directive";
13
- import * as i3 from "./f-minimap-view.directive";
14
- import * as i4 from "./f-minimap-flow.directive";
12
+ import * as i1 from "./f-minimap-canvas.directive";
13
+ import * as i2 from "./f-minimap-view.directive";
14
+ import * as i3 from "./f-minimap-flow.directive";
15
15
  export class FMinimapComponent {
16
- constructor(elementReference, fMediator) {
17
- this.elementReference = elementReference;
18
- this.fMediator = fMediator;
19
- this.subscriptions$ = new Subscription();
16
+ constructor() {
17
+ this._destroyRef = inject(DestroyRef);
18
+ this._fMediator = inject(FMediator);
19
+ this._fBrowser = inject(BrowserService);
20
20
  this.fMinSize = 1000;
21
21
  }
22
22
  ngAfterViewInit() {
23
- this.subscriptions$.add(this.subscribeOnTransformChanges());
23
+ this._listenTransformChanges();
24
24
  }
25
- subscribeOnTransformChanges() {
26
- return this.getTransformChanges().pipe(debounceTime(5)).subscribe(() => {
27
- this.fMinimapFlow.update();
28
- this.fMinimapView.update();
29
- this.fMinimapCanvas.redraw();
30
- });
25
+ _listenTransformChanges() {
26
+ this._fMediator.send(new ListenTransformChangesRequest()).pipe(notifyOnStart(), debounceTime(5)).listen(this._destroyRef, () => this._redraw());
31
27
  }
32
- getTransformChanges() {
33
- return this.fMediator.send(new SubscribeOnTransformChangesRequest());
28
+ _redraw() {
29
+ if (!this._fBrowser.isBrowser()) {
30
+ return;
31
+ }
32
+ this.fMinimapFlow.redraw();
33
+ this.fMinimapView.redraw();
34
+ this.fMinimapCanvas.redraw();
34
35
  }
35
36
  onPointerDown(event) {
36
- this.fMediator.send(new MinimapDragPreparationRequest(event, this.fMinimapFlow.model));
37
+ this._fMediator.send(new MinimapDragPreparationRequest(event, this.fMinimapFlow.model));
37
38
  }
38
39
  onPointerUp(event) {
39
- this.fMediator.send(new MinimapDragFinalizeRequest(event));
40
+ this._fMediator.send(new MinimapDragFinalizeRequest(event));
40
41
  }
41
- ngOnDestroy() {
42
- this.subscriptions$.unsubscribe();
43
- }
44
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FMinimapComponent, deps: [{ token: i0.ElementRef }, { token: i1.FMediator }], target: i0.ɵɵFactoryTarget.Component }); }
42
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FMinimapComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
45
43
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FMinimapComponent, selector: "f-minimap", inputs: { fMinSize: "fMinSize" }, host: { classAttribute: "f-component f-minimap" }, providers: [
46
44
  { provide: F_DRAG_AND_DROP_PLUGIN, useExisting: FMinimapComponent },
47
- ], viewQueries: [{ propertyName: "fMinimapCanvas", first: true, predicate: FMinimapCanvasDirective, descendants: true, static: true }, { propertyName: "fMinimapFlow", first: true, predicate: FMinimapFlowDirective, descendants: true, static: true }, { propertyName: "fMinimapView", first: true, predicate: FMinimapViewDirective, descendants: true, static: true }], exportAs: ["fComponent"], ngImport: i0, template: "<svg fMinimapFlow width=\"100%\" height=\"100%\" fLockedContext [fMinSize]=\"fMinSize\">\n <g fMinimapCanvas></g>\n <rect fMinimapView x=\"0\" y=\"0\" width=\"100%\" height=\"100%\" stroke=\"none\"/>\n</svg>\n\n", styles: [":host{display:block;position:absolute}:host svg{overflow:hidden}\n"], dependencies: [{ kind: "directive", type: i2.FMinimapCanvasDirective, selector: "g[fMinimapCanvas]" }, { kind: "directive", type: i3.FMinimapViewDirective, selector: "rect[fMinimapView]" }, { kind: "directive", type: i4.FMinimapFlowDirective, selector: "svg[fMinimapFlow]", inputs: ["fMinSize"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
45
+ ], viewQueries: [{ propertyName: "fMinimapCanvas", first: true, predicate: FMinimapCanvasDirective, descendants: true, static: true }, { propertyName: "fMinimapFlow", first: true, predicate: FMinimapFlowDirective, descendants: true, static: true }, { propertyName: "fMinimapView", first: true, predicate: FMinimapViewDirective, descendants: true, static: true }], exportAs: ["fComponent"], ngImport: i0, template: "<svg fMinimapFlow width=\"100%\" height=\"100%\" fLockedContext [fMinSize]=\"fMinSize\">\n <g fMinimapCanvas></g>\n <rect fMinimapView x=\"0\" y=\"0\" width=\"100%\" height=\"100%\" stroke=\"none\"/>\n</svg>\n\n", styles: [":host{display:block;position:absolute}:host svg{overflow:hidden}\n"], dependencies: [{ kind: "directive", type: i1.FMinimapCanvasDirective, selector: "g[fMinimapCanvas]" }, { kind: "directive", type: i2.FMinimapViewDirective, selector: "rect[fMinimapView]" }, { kind: "directive", type: i3.FMinimapFlowDirective, selector: "svg[fMinimapFlow]", inputs: ["fMinSize"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
48
46
  }
49
47
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FMinimapComponent, decorators: [{
50
48
  type: Component,
@@ -53,7 +51,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
53
51
  }, providers: [
54
52
  { provide: F_DRAG_AND_DROP_PLUGIN, useExisting: FMinimapComponent },
55
53
  ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<svg fMinimapFlow width=\"100%\" height=\"100%\" fLockedContext [fMinSize]=\"fMinSize\">\n <g fMinimapCanvas></g>\n <rect fMinimapView x=\"0\" y=\"0\" width=\"100%\" height=\"100%\" stroke=\"none\"/>\n</svg>\n\n", styles: [":host{display:block;position:absolute}:host svg{overflow:hidden}\n"] }]
56
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.FMediator }]; }, propDecorators: { fMinimapCanvas: [{
54
+ }], propDecorators: { fMinimapCanvas: [{
57
55
  type: ViewChild,
58
56
  args: [FMinimapCanvasDirective, { static: true }]
59
57
  }], fMinimapFlow: [{
@@ -65,4 +63,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
65
63
  }], fMinSize: [{
66
64
  type: Input
67
65
  }] } });
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1taW5pbWFwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1taW5pbWFwL2YtbWluaW1hcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtbWluaW1hcC9mLW1pbmltYXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNVLHVCQUF1QixFQUFFLFNBQVMsRUFDckMsS0FBSyxFQUFhLFNBQVMsR0FDeEMsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFjLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRW5FLE9BQU8sRUFBRSxzQkFBc0IsRUFBdUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7OztBQWVyRixNQUFNLE9BQU8saUJBQWlCO0lBZ0I1QixZQUNVLGdCQUF5QyxFQUN6QyxTQUFvQjtRQURwQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXlCO1FBQ3pDLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFoQnRCLG1CQUFjLEdBQWlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFZbkQsYUFBUSxHQUFXLElBQUksQ0FBQztJQU0vQixDQUFDO0lBRU0sZUFBZTtRQUNwQixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFTywyQkFBMkI7UUFDakMsT0FBTyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNyRSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxtQkFBbUI7UUFDekIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBbUIsSUFBSSxrQ0FBa0MsRUFBRSxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUVNLGFBQWEsQ0FBQyxLQUFvQjtRQUN2QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLDZCQUE2QixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUVNLFdBQVcsQ0FBQyxLQUFvQjtRQUNyQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLDBCQUEwQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNwQyxDQUFDOytHQWhEVSxpQkFBaUI7bUdBQWpCLGlCQUFpQix5SEFMakI7WUFDVCxFQUFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUU7U0FDcEUsMEVBT1UsdUJBQXVCLDZGQUd2QixxQkFBcUIsNkZBR3JCLHFCQUFxQix3RkN0Q2xDLHVOQUtBOzs0RkR1QmEsaUJBQWlCO2tCQWI3QixTQUFTOytCQUNFLFdBQVcsWUFHWCxZQUFZLFFBQ2hCO3dCQUNKLE9BQU8sRUFBRSx1QkFBdUI7cUJBQ2pDLGFBQ1U7d0JBQ1QsRUFBRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsV0FBVyxtQkFBbUIsRUFBRTtxQkFDcEUsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU07eUhBT3hDLGNBQWM7c0JBRHBCLFNBQVM7dUJBQUMsdUJBQXVCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUk3QyxZQUFZO3NCQURsQixTQUFTO3VCQUFDLHFCQUFxQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJM0MsWUFBWTtzQkFEbEIsU0FBUzt1QkFBQyxxQkFBcUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSTNDLFFBQVE7c0JBRGQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsIElucHV0LCBPbkRlc3Ryb3ksIFZpZXdDaGlsZCxcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZNZWRpYXRvciB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTdWJzY3JpYmVPblRyYW5zZm9ybUNoYW5nZXNSZXF1ZXN0IH0gZnJvbSAnLi4vZG9tYWluJztcbmltcG9ydCB7IEZNaW5pbWFwRmxvd0RpcmVjdGl2ZSB9IGZyb20gJy4vZi1taW5pbWFwLWZsb3cuZGlyZWN0aXZlJztcbmltcG9ydCB7IEZNaW5pbWFwQ2FudmFzRGlyZWN0aXZlIH0gZnJvbSAnLi9mLW1pbmltYXAtY2FudmFzLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGTWluaW1hcFZpZXdEaXJlY3RpdmUgfSBmcm9tICcuL2YtbWluaW1hcC12aWV3LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJUG9pbnRlckV2ZW50IH0gZnJvbSAnQGZvYmxleC9kcmFnLXRvb2xraXQnO1xuaW1wb3J0IHsgRl9EUkFHX0FORF9EUk9QX1BMVUdJTiwgSUZEcmFnQW5kRHJvcFBsdWdpbiB9IGZyb20gJy4uL2YtZHJhZ2dhYmxlJztcbmltcG9ydCB7IE1pbmltYXBEcmFnRmluYWxpemVSZXF1ZXN0LCBNaW5pbWFwRHJhZ1ByZXBhcmF0aW9uUmVxdWVzdCB9IGZyb20gJy4vZG9tYWluJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZi1taW5pbWFwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2YtbWluaW1hcC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWyAnLi9mLW1pbmltYXAuY29tcG9uZW50LnNjc3MnIF0sXG4gIGV4cG9ydEFzOiAnZkNvbXBvbmVudCcsXG4gIGhvc3Q6IHtcbiAgICAnY2xhc3MnOiAnZi1jb21wb25lbnQgZi1taW5pbWFwJyxcbiAgfSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBGX0RSQUdfQU5EX0RST1BfUExVR0lOLCB1c2VFeGlzdGluZzogRk1pbmltYXBDb21wb25lbnQgfSxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEZNaW5pbWFwQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBJRkRyYWdBbmREcm9wUGx1Z2luIHtcblxuICBwcml2YXRlIHN1YnNjcmlwdGlvbnMkOiBTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgQFZpZXdDaGlsZChGTWluaW1hcENhbnZhc0RpcmVjdGl2ZSwgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHVibGljIGZNaW5pbWFwQ2FudmFzITogRk1pbmltYXBDYW52YXNEaXJlY3RpdmU7XG5cbiAgQFZpZXdDaGlsZChGTWluaW1hcEZsb3dEaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHB1YmxpYyBmTWluaW1hcEZsb3chOiBGTWluaW1hcEZsb3dEaXJlY3RpdmU7XG5cbiAgQFZpZXdDaGlsZChGTWluaW1hcFZpZXdEaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHB1YmxpYyBmTWluaW1hcFZpZXchOiBGTWluaW1hcFZpZXdEaXJlY3RpdmU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGZNaW5TaXplOiBudW1iZXIgPSAxMDAwO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudFJlZmVyZW5jZTogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgcHJpdmF0ZSBmTWVkaWF0b3I6IEZNZWRpYXRvclxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zJC5hZGQodGhpcy5zdWJzY3JpYmVPblRyYW5zZm9ybUNoYW5nZXMoKSk7XG4gIH1cblxuICBwcml2YXRlIHN1YnNjcmliZU9uVHJhbnNmb3JtQ2hhbmdlcygpOiBTdWJzY3JpcHRpb24ge1xuICAgIHJldHVybiB0aGlzLmdldFRyYW5zZm9ybUNoYW5nZXMoKS5waXBlKGRlYm91bmNlVGltZSg1KSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuZk1pbmltYXBGbG93LnVwZGF0ZSgpO1xuICAgICAgdGhpcy5mTWluaW1hcFZpZXcudXBkYXRlKCk7XG4gICAgICB0aGlzLmZNaW5pbWFwQ2FudmFzLnJlZHJhdygpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUcmFuc2Zvcm1DaGFuZ2VzKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmZNZWRpYXRvci5zZW5kPE9ic2VydmFibGU8dm9pZD4+KG5ldyBTdWJzY3JpYmVPblRyYW5zZm9ybUNoYW5nZXNSZXF1ZXN0KCkpO1xuICB9XG5cbiAgcHVibGljIG9uUG9pbnRlckRvd24oZXZlbnQ6IElQb2ludGVyRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmZNZWRpYXRvci5zZW5kKG5ldyBNaW5pbWFwRHJhZ1ByZXBhcmF0aW9uUmVxdWVzdChldmVudCwgdGhpcy5mTWluaW1hcEZsb3cubW9kZWwpKTtcbiAgfVxuXG4gIHB1YmxpYyBvblBvaW50ZXJVcChldmVudDogSVBvaW50ZXJFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuZk1lZGlhdG9yLnNlbmQobmV3IE1pbmltYXBEcmFnRmluYWxpemVSZXF1ZXN0KGV2ZW50KSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zJC51bnN1YnNjcmliZSgpO1xuICB9XG59XG4iLCI8c3ZnIGZNaW5pbWFwRmxvdyB3aWR0aD1cIjEwMCVcIiBoZWlnaHQ9XCIxMDAlXCIgZkxvY2tlZENvbnRleHQgW2ZNaW5TaXplXT1cImZNaW5TaXplXCI+XG4gIDxnIGZNaW5pbWFwQ2FudmFzPjwvZz5cbiAgPHJlY3QgZk1pbmltYXBWaWV3IHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjEwMCVcIiBoZWlnaHQ9XCIxMDAlXCIgc3Ryb2tlPVwibm9uZVwiLz5cbjwvc3ZnPlxuXG4iXX0=
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1taW5pbWFwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1taW5pbWFwL2YtbWluaW1hcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtbWluaW1hcC9mLW1pbmltYXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNVLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQzdELE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxHQUN6QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDN0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbkUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFbkUsT0FBTyxFQUFFLHNCQUFzQixFQUF1QixNQUFNLGdCQUFnQixDQUFDO0FBQzdFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSw2QkFBNkIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNyRixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBZSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7OztBQWVsRCxNQUFNLE9BQU8saUJBQWlCO0lBYjlCO1FBZVUsZ0JBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakMsZUFBVSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMvQixjQUFTLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBWXBDLGFBQVEsR0FBVyxJQUFJLENBQUM7S0E0QmhDO0lBMUJRLGVBQWU7UUFDcEIsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVPLHVCQUF1QjtRQUM3QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBYyxJQUFJLDZCQUE2QixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQ3pFLGFBQWEsRUFBRSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FDakMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRU8sT0FBTztRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQy9CLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFTSxhQUFhLENBQUMsS0FBb0I7UUFDdkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSw2QkFBNkIsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzFGLENBQUM7SUFFTSxXQUFXLENBQUMsS0FBb0I7UUFDckMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSwwQkFBMEIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzlELENBQUM7K0dBM0NVLGlCQUFpQjttR0FBakIsaUJBQWlCLHlIQUxqQjtZQUNULEVBQUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRTtTQUNwRSwwRUFTVSx1QkFBdUIsNkZBR3ZCLHFCQUFxQiw2RkFHckIscUJBQXFCLHdGQ3hDbEMsdU5BS0E7OzRGRHVCYSxpQkFBaUI7a0JBYjdCLFNBQVM7K0JBQ0UsV0FBVyxZQUdYLFlBQVksUUFDaEI7d0JBQ0osT0FBTyxFQUFFLHVCQUF1QjtxQkFDakMsYUFDVTt3QkFDVCxFQUFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxXQUFXLG1CQUFtQixFQUFFO3FCQUNwRSxtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTTs4QkFTeEMsY0FBYztzQkFEcEIsU0FBUzt1QkFBQyx1QkFBdUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSTdDLFlBQVk7c0JBRGxCLFNBQVM7dUJBQUMscUJBQXFCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUkzQyxZQUFZO3NCQURsQixTQUFTO3VCQUFDLHFCQUFxQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJM0MsUUFBUTtzQkFEZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRGVzdHJveVJlZixcbiAgaW5qZWN0LCBJbnB1dCwgVmlld0NoaWxkLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRk1lZGlhdG9yIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBGTWluaW1hcEZsb3dEaXJlY3RpdmUgfSBmcm9tICcuL2YtbWluaW1hcC1mbG93LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGTWluaW1hcENhbnZhc0RpcmVjdGl2ZSB9IGZyb20gJy4vZi1taW5pbWFwLWNhbnZhcy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRk1pbmltYXBWaWV3RGlyZWN0aXZlIH0gZnJvbSAnLi9mLW1pbmltYXAtdmlldy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSVBvaW50ZXJFdmVudCB9IGZyb20gJ0Bmb2JsZXgvZHJhZy10b29sa2l0JztcbmltcG9ydCB7IEZfRFJBR19BTkRfRFJPUF9QTFVHSU4sIElGRHJhZ0FuZERyb3BQbHVnaW4gfSBmcm9tICcuLi9mLWRyYWdnYWJsZSc7XG5pbXBvcnQgeyBNaW5pbWFwRHJhZ0ZpbmFsaXplUmVxdWVzdCwgTWluaW1hcERyYWdQcmVwYXJhdGlvblJlcXVlc3QgfSBmcm9tICcuL2RvbWFpbic7XG5pbXBvcnQgeyBMaXN0ZW5UcmFuc2Zvcm1DaGFuZ2VzUmVxdWVzdCB9IGZyb20gJy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIEZDaGFubmVsSHViLCBub3RpZnlPblN0YXJ0IH0gZnJvbSAnLi4vcmVhY3Rpdml0eSc7XG5pbXBvcnQgeyBCcm93c2VyU2VydmljZSB9IGZyb20gJ0Bmb2JsZXgvcGxhdGZvcm0nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmLW1pbmltYXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vZi1taW5pbWFwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbICcuL2YtbWluaW1hcC5jb21wb25lbnQuc2NzcycgXSxcbiAgZXhwb3J0QXM6ICdmQ29tcG9uZW50JyxcbiAgaG9zdDoge1xuICAgICdjbGFzcyc6ICdmLWNvbXBvbmVudCBmLW1pbmltYXAnLFxuICB9LFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IEZfRFJBR19BTkRfRFJPUF9QTFVHSU4sIHVzZUV4aXN0aW5nOiBGTWluaW1hcENvbXBvbmVudCB9LFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRk1pbmltYXBDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBJRkRyYWdBbmREcm9wUGx1Z2luIHtcblxuICBwcml2YXRlIF9kZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICBwcml2YXRlIF9mTWVkaWF0b3IgPSBpbmplY3QoRk1lZGlhdG9yKTtcbiAgcHJpdmF0ZSBfZkJyb3dzZXIgPSBpbmplY3QoQnJvd3NlclNlcnZpY2UpO1xuXG4gIEBWaWV3Q2hpbGQoRk1pbmltYXBDYW52YXNEaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHB1YmxpYyBmTWluaW1hcENhbnZhcyE6IEZNaW5pbWFwQ2FudmFzRGlyZWN0aXZlO1xuXG4gIEBWaWV3Q2hpbGQoRk1pbmltYXBGbG93RGlyZWN0aXZlLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgZk1pbmltYXBGbG93ITogRk1pbmltYXBGbG93RGlyZWN0aXZlO1xuXG4gIEBWaWV3Q2hpbGQoRk1pbmltYXBWaWV3RGlyZWN0aXZlLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgZk1pbmltYXBWaWV3ITogRk1pbmltYXBWaWV3RGlyZWN0aXZlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmTWluU2l6ZTogbnVtYmVyID0gMTAwMDtcblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX2xpc3RlblRyYW5zZm9ybUNoYW5nZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2xpc3RlblRyYW5zZm9ybUNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5fZk1lZGlhdG9yLnNlbmQ8RkNoYW5uZWxIdWI+KG5ldyBMaXN0ZW5UcmFuc2Zvcm1DaGFuZ2VzUmVxdWVzdCgpKS5waXBlKFxuICAgICAgbm90aWZ5T25TdGFydCgpLCBkZWJvdW5jZVRpbWUoNSlcbiAgICApLmxpc3Rlbih0aGlzLl9kZXN0cm95UmVmLCAoKSA9PiB0aGlzLl9yZWRyYXcoKSk7XG4gIH1cblxuICBwcml2YXRlIF9yZWRyYXcoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9mQnJvd3Nlci5pc0Jyb3dzZXIoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmZNaW5pbWFwRmxvdy5yZWRyYXcoKTtcbiAgICB0aGlzLmZNaW5pbWFwVmlldy5yZWRyYXcoKTtcbiAgICB0aGlzLmZNaW5pbWFwQ2FudmFzLnJlZHJhdygpO1xuICB9XG5cbiAgcHVibGljIG9uUG9pbnRlckRvd24oZXZlbnQ6IElQb2ludGVyRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLl9mTWVkaWF0b3Iuc2VuZChuZXcgTWluaW1hcERyYWdQcmVwYXJhdGlvblJlcXVlc3QoZXZlbnQsIHRoaXMuZk1pbmltYXBGbG93Lm1vZGVsKSk7XG4gIH1cblxuICBwdWJsaWMgb25Qb2ludGVyVXAoZXZlbnQ6IElQb2ludGVyRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLl9mTWVkaWF0b3Iuc2VuZChuZXcgTWluaW1hcERyYWdGaW5hbGl6ZVJlcXVlc3QoZXZlbnQpKTtcbiAgfVxufVxuIiwiPHN2ZyBmTWluaW1hcEZsb3cgd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiMTAwJVwiIGZMb2NrZWRDb250ZXh0IFtmTWluU2l6ZV09XCJmTWluU2l6ZVwiPlxuICA8ZyBmTWluaW1hcENhbnZhcz48L2c+XG4gIDxyZWN0IGZNaW5pbWFwVmlldyB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiMTAwJVwiIHN0cm9rZT1cIm5vbmVcIi8+XG48L3N2Zz5cblxuIl19
@@ -1,3 +1,2 @@
1
- export * from './is-group';
2
1
  export * from './is-node';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2Ytbm9kZS9kb21haW4vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxZQUFZLENBQUM7QUFFM0IsY0FBYyxXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2lzLWdyb3VwJztcblxuZXhwb3J0ICogZnJvbSAnLi9pcy1ub2RlJztcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2Ytbm9kZS9kb21haW4vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2lzLW5vZGUnO1xuIl19
@@ -1,14 +1,14 @@
1
- import { Directive, InjectionToken } from "@angular/core";
1
+ import { Directive, ElementRef, inject, InjectionToken } from "@angular/core";
2
2
  import * as i0 from "@angular/core";
3
3
  export const F_DRAG_HANDLE = new InjectionToken('F_DRAG_HANDLE');
4
4
  export class FDragHandleDirective {
5
- get hostElement() {
6
- return this.elementReference.nativeElement;
5
+ constructor() {
6
+ this._elementReference = inject(ElementRef);
7
7
  }
8
- constructor(elementReference) {
9
- this.elementReference = elementReference;
8
+ get hostElement() {
9
+ return this._elementReference.nativeElement;
10
10
  }
11
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FDragHandleDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FDragHandleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
12
12
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: FDragHandleDirective, selector: "[fDragHandle]", host: { classAttribute: "f-drag-handle f-component" }, providers: [{ provide: F_DRAG_HANDLE, useExisting: FDragHandleDirective }], ngImport: i0 }); }
13
13
  }
14
14
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FDragHandleDirective, decorators: [{
@@ -20,5 +20,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
20
20
  },
21
21
  providers: [{ provide: F_DRAG_HANDLE, useExisting: FDragHandleDirective }],
22
22
  }]
23
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1kcmFnLWhhbmRsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2Ytbm9kZS9mLWRyYWctaGFuZGxlL2YtZHJhZy1oYW5kbGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQWMsY0FBYyxFQUN0QyxNQUFNLGVBQWUsQ0FBQzs7QUFHdkIsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUF5QyxJQUFJLGNBQWMsQ0FBdUIsZUFBZSxDQUFDLENBQUM7QUFTN0gsTUFBTSxPQUFPLG9CQUFvQjtJQUUvQixJQUFXLFdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDO0lBQzdDLENBQUM7SUFFRCxZQUNVLGdCQUF5QztRQUF6QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXlCO0lBRW5ELENBQUM7K0dBVFUsb0JBQW9CO21HQUFwQixvQkFBb0IsK0ZBRnBCLENBQUUsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxDQUFFOzs0RkFFakUsb0JBQW9CO2tCQVBoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO29CQUN6QixJQUFJLEVBQUU7d0JBQ0osS0FBSyxFQUFFLDJCQUEyQjtxQkFDbkM7b0JBQ0QsU0FBUyxFQUFFLENBQUUsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsc0JBQXNCLEVBQUUsQ0FBRTtpQkFDN0UiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEluamVjdGlvblRva2VuXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBJSGFzSG9zdEVsZW1lbnQgfSBmcm9tICcuLi8uLi9pLWhhcy1ob3N0LWVsZW1lbnQnO1xuXG5leHBvcnQgY29uc3QgRl9EUkFHX0hBTkRMRTogSW5qZWN0aW9uVG9rZW48RkRyYWdIYW5kbGVEaXJlY3RpdmU+ID0gbmV3IEluamVjdGlvblRva2VuPEZEcmFnSGFuZGxlRGlyZWN0aXZlPignRl9EUkFHX0hBTkRMRScpO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6IFwiW2ZEcmFnSGFuZGxlXVwiLFxuICBob3N0OiB7XG4gICAgY2xhc3M6IFwiZi1kcmFnLWhhbmRsZSBmLWNvbXBvbmVudFwiXG4gIH0sXG4gIHByb3ZpZGVyczogWyB7IHByb3ZpZGU6IEZfRFJBR19IQU5ETEUsIHVzZUV4aXN0aW5nOiBGRHJhZ0hhbmRsZURpcmVjdGl2ZSB9IF0sXG59KVxuZXhwb3J0IGNsYXNzIEZEcmFnSGFuZGxlRGlyZWN0aXZlIGltcGxlbWVudHMgSUhhc0hvc3RFbGVtZW50IHtcblxuICBwdWJsaWMgZ2V0IGhvc3RFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmZXJlbmNlLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsZW1lbnRSZWZlcmVuY2U6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+XG4gICkge1xuICB9XG59XG4iXX0=
23
+ }] });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1kcmFnLWhhbmRsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2Ytbm9kZS9mLWRyYWctaGFuZGxlL2YtZHJhZy1oYW5kbGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQzlDLE1BQU0sZUFBZSxDQUFDOztBQUd2QixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxjQUFjLENBQXVCLGVBQWUsQ0FBQyxDQUFDO0FBU3ZGLE1BQU0sT0FBTyxvQkFBb0I7SUFQakM7UUFTVSxzQkFBaUIsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7S0FLaEQ7SUFIQyxJQUFXLFdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDO0lBQzlDLENBQUM7K0dBTlUsb0JBQW9CO21HQUFwQixvQkFBb0IsK0ZBRnBCLENBQUUsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxDQUFFOzs0RkFFakUsb0JBQW9CO2tCQVBoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO29CQUN6QixJQUFJLEVBQUU7d0JBQ0osS0FBSyxFQUFFLDJCQUEyQjtxQkFDbkM7b0JBQ0QsU0FBUyxFQUFFLENBQUUsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsc0JBQXNCLEVBQUUsQ0FBRTtpQkFDN0UiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGluamVjdCwgSW5qZWN0aW9uVG9rZW5cbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IElIYXNIb3N0RWxlbWVudCB9IGZyb20gJy4uLy4uL2ktaGFzLWhvc3QtZWxlbWVudCc7XG5cbmV4cG9ydCBjb25zdCBGX0RSQUdfSEFORExFID0gbmV3IEluamVjdGlvblRva2VuPEZEcmFnSGFuZGxlRGlyZWN0aXZlPignRl9EUkFHX0hBTkRMRScpO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6IFwiW2ZEcmFnSGFuZGxlXVwiLFxuICBob3N0OiB7XG4gICAgY2xhc3M6IFwiZi1kcmFnLWhhbmRsZSBmLWNvbXBvbmVudFwiXG4gIH0sXG4gIHByb3ZpZGVyczogWyB7IHByb3ZpZGU6IEZfRFJBR19IQU5ETEUsIHVzZUV4aXN0aW5nOiBGRHJhZ0hhbmRsZURpcmVjdGl2ZSB9IF0sXG59KVxuZXhwb3J0IGNsYXNzIEZEcmFnSGFuZGxlRGlyZWN0aXZlIGltcGxlbWVudHMgSUhhc0hvc3RFbGVtZW50IHtcblxuICBwcml2YXRlIF9lbGVtZW50UmVmZXJlbmNlID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuXG4gIHB1YmxpYyBnZXQgaG9zdEVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLl9lbGVtZW50UmVmZXJlbmNlLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cbiJdfQ==
@@ -1,15 +1,11 @@
1
- import { Directive, EventEmitter, Input, Output, } from "@angular/core";
1
+ import { DestroyRef, Directive, EventEmitter, inject, Input, Output, } from "@angular/core";
2
2
  import { PointExtensions } from '@foblex/2d';
3
3
  import { F_NODE, FNodeBase } from './f-node-base';
4
- import { merge, Subscription } from 'rxjs';
5
- import { startWith, debounceTime } from 'rxjs/operators';
6
- import { FResizeObserver } from './f-resize-observer';
7
- import { CalculateConnectorConnectableSideHandler, CalculateConnectorConnectableSideRequest } from '../f-connectors';
8
- import { EmitTransformChangesRequest } from '../domain';
4
+ import { NotifyTransformChangedRequest } from '../f-storage';
5
+ import { FMediator } from '@foblex/mediator';
6
+ import { AddNodeToStoreRequest, UpdateNodeWhenStateOrSizeChangedRequest, RemoveNodeFromStoreRequest } from '../domain';
9
7
  import * as i0 from "@angular/core";
10
- import * as i1 from "../f-storage";
11
- import * as i2 from "@foblex/mediator";
12
- import * as i3 from "@foblex/platform";
8
+ import * as i1 from "@foblex/platform";
13
9
  let uniqueId = 0;
14
10
  export class FGroupDirective extends FNodeBase {
15
11
  set position(value) {
@@ -26,13 +22,10 @@ export class FGroupDirective extends FNodeBase {
26
22
  get size() {
27
23
  return this._size;
28
24
  }
29
- constructor(elementReference, renderer, fComponentsStore, fMediator, fBrowser) {
25
+ constructor(elementReference, renderer, fBrowser) {
30
26
  super(elementReference.nativeElement);
31
27
  this.renderer = renderer;
32
- this.fComponentsStore = fComponentsStore;
33
- this.fMediator = fMediator;
34
28
  this.fBrowser = fBrowser;
35
- this.subscriptions$ = new Subscription();
36
29
  this.fId = `f-group-${uniqueId++}`;
37
30
  this.fParentId = null;
38
31
  this.positionChange = new EventEmitter();
@@ -41,7 +34,8 @@ export class FGroupDirective extends FNodeBase {
41
34
  this.fSelectionDisabled = false;
42
35
  this.fIncludePadding = true;
43
36
  this.fConnectOnNode = true;
44
- this.connectors = [];
37
+ this._destroyRef = inject(DestroyRef);
38
+ this._fMediator = inject(FMediator);
45
39
  }
46
40
  ngOnInit() {
47
41
  this.setStyle('position', 'absolute');
@@ -51,49 +45,31 @@ export class FGroupDirective extends FNodeBase {
51
45
  this.setStyle('left', '0');
52
46
  this.setStyle('top', '0');
53
47
  super.redraw();
54
- this.fComponentsStore.addComponent(this.fComponentsStore.fNodes, this);
48
+ this._fMediator.send(new AddNodeToStoreRequest(this));
55
49
  }
56
50
  setStyle(styleName, value) {
57
51
  this.renderer.setStyle(this.hostElement, styleName, value);
58
52
  }
59
53
  redraw() {
60
54
  super.redraw();
61
- this.fMediator.send(new EmitTransformChangesRequest());
55
+ this._fMediator.send(new NotifyTransformChangedRequest());
62
56
  }
63
57
  ngAfterViewInit() {
64
58
  if (!this.fBrowser.isBrowser()) {
65
59
  return;
66
60
  }
67
- this.subscriptions$.add(this.subscribeOnResizeChanges());
61
+ this._listenStateSizeChanges();
68
62
  }
69
- subscribeOnResizeChanges() {
70
- return merge(new FResizeObserver(this.hostElement), this.stateChanges).pipe(debounceTime(10), startWith(null)).subscribe(() => {
71
- this.connectors.forEach((fConnector) => {
72
- fConnector.fConnectableSide = new CalculateConnectorConnectableSideHandler().handle(new CalculateConnectorConnectableSideRequest(fConnector, this.hostElement));
73
- });
74
- this.fComponentsStore.componentDataChanged();
75
- });
76
- }
77
- addConnector(connector) {
78
- this.connectors.push(connector);
79
- this.stateChanges.next();
80
- }
81
- removeConnector(connector) {
82
- const index = this.connectors.indexOf(connector);
83
- if (index !== -1) {
84
- this.connectors.splice(index, 1);
85
- }
86
- this.stateChanges.next();
63
+ _listenStateSizeChanges() {
64
+ this._fMediator.send(new UpdateNodeWhenStateOrSizeChangedRequest(this, this._destroyRef));
87
65
  }
88
66
  refresh() {
89
- this.stateChanges.next();
67
+ this.stateChanges.notify();
90
68
  }
91
69
  ngOnDestroy() {
92
- this.fComponentsStore.removeComponent(this.fComponentsStore.fNodes, this);
93
- this.stateChanges.complete();
94
- this.subscriptions$.unsubscribe();
70
+ this._fMediator.send(new RemoveNodeFromStoreRequest(this));
95
71
  }
96
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FGroupDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.FComponentsStore }, { token: i2.FMediator }, { token: i3.BrowserService }], target: i0.ɵɵFactoryTarget.Directive }); }
72
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FGroupDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.BrowserService }], target: i0.ɵɵFactoryTarget.Directive }); }
97
73
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: FGroupDirective, selector: "[fGroup]", inputs: { fId: ["fGroupId", "fId"], fParentId: ["fGroupParentId", "fParentId"], position: ["fGroupPosition", "position"], size: ["fGroupSize", "size"], fDraggingDisabled: ["fGroupDraggingDisabled", "fDraggingDisabled"], fSelectionDisabled: ["fGroupSelectionDisabled", "fSelectionDisabled"], fIncludePadding: "fIncludePadding", fConnectOnNode: "fConnectOnNode" }, outputs: { positionChange: "fGroupPositionChange", sizeChange: "fGroupSizeChange" }, host: { properties: { "attr.data-f-group-id": "fId", "class.f-group-dragging-disabled": "fDraggingDisabled", "class.f-group-selection-disabled": "fSelectionDisabled" }, classAttribute: "f-group f-component" }, providers: [
98
74
  { provide: F_NODE, useExisting: FGroupDirective }
99
75
  ], exportAs: ["fComponent"], usesInheritance: true, ngImport: i0 }); }
@@ -113,7 +89,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
113
89
  { provide: F_NODE, useExisting: FGroupDirective }
114
90
  ],
115
91
  }]
116
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.FComponentsStore }, { type: i2.FMediator }, { type: i3.BrowserService }]; }, propDecorators: { fId: [{
92
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.BrowserService }]; }, propDecorators: { fId: [{
117
93
  type: Input,
118
94
  args: ['fGroupId']
119
95
  }], fParentId: [{
@@ -142,4 +118,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
142
118
  }], fConnectOnNode: [{
143
119
  type: Input
144
120
  }] } });
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1ncm91cC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2Ytbm9kZS9mLWdyb3VwLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXRELE9BQU8sRUFDTCx3Q0FBd0MsRUFDeEMsd0NBQXdDLEVBRXpDLE1BQU0saUJBQWlCLENBQUM7QUFFekIsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7OztBQUl4RCxJQUFJLFFBQVEsR0FBVyxDQUFDLENBQUM7QUFlekIsTUFBTSxPQUFPLGVBQWdCLFNBQVEsU0FBUztJQVc1QyxJQUNvQixRQUFRLENBQUMsS0FBYTtRQUN4QyxJQUFJLENBQUMsU0FBUyxHQUFHLGVBQWUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFDRCxJQUFvQixRQUFRO1FBQzFCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBSUQsSUFDb0IsSUFBSSxDQUFDLEtBQVk7UUFDbkMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFD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WUFBWTtvQkFDdEIsSUFBSSxFQUFFO3dCQUNKLHdCQUF3QixFQUFFLEtBQUs7d0JBQy9CLEtBQUssRUFBRSxxQkFBcUI7d0JBQzVCLG1DQUFtQyxFQUFFLG1CQUFtQjt3QkFDeEQsb0NBQW9DLEVBQUUsb0JBQW9CO3FCQUMzRDtvQkFDRCxTQUFTLEVBQUU7d0JBQ1QsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsaUJBQWlCLEVBQUU7cUJBQ2xEO2lCQUNGOzZNQU9pQixHQUFHO3NCQURsQixLQUFLO3VCQUFDLFVBQVU7Z0JBSUQsU0FBUztzQkFEeEIsS0FBSzt1QkFBQyxnQkFBZ0I7Z0JBSUgsUUFBUTtzQkFEM0IsS0FBSzt1QkFBQyxnQkFBZ0I7Z0JBU1AsY0FBYztzQkFEN0IsTUFBTTt1QkFBQyxzQkFBc0I7Z0JBSVYsSUFBSTtzQkFEdkIsS0FBSzt1QkFBQyxZQUFZO2dCQVNILFVBQVU7c0JBRHpCLE1BQU07dUJBQUMsa0JBQWtCO2dCQUlWLGlCQUFpQjtzQkFEaEMsS0FBSzt1QkFBQyx3QkFBd0I7Z0JBSWYsa0JBQWtCO3NCQURqQyxLQUFLO3VCQUFDLHlCQUF5QjtnQkFJaEIsZUFBZTtzQkFEOUIsS0FBSztnQkFJVSxjQUFjO3NCQUQ3QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBSZW5kZXJlcjIsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBJUG9pbnQsIElSZWN0LCBJU2l6ZSwgUG9pbnRFeHRlbnNpb25zIH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQgeyBGX05PREUsIEZOb2RlQmFzZSB9IGZyb20gJy4vZi1ub2RlLWJhc2UnO1xuaW1wb3J0IHsgbWVyZ2UsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc3RhcnRXaXRoLCBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBGUmVzaXplT2JzZXJ2ZXIgfSBmcm9tICcuL2YtcmVzaXplLW9ic2VydmVyJztcbmltcG9ydCB7IEZDb21wb25lbnRzU3RvcmUgfSBmcm9tICcuLi9mLXN0b3JhZ2UnO1xuaW1wb3J0IHtcbiAgQ2FsY3VsYXRlQ29ubmVjdG9yQ29ubmVjdGFibGVTaWRlSGFuZGxlcixcbiAgQ2FsY3VsYXRlQ29ubmVjdG9yQ29ubmVjdGFibGVTaWRlUmVxdWVzdCxcbiAgRkNvbm5lY3RvckJhc2Vcbn0gZnJvbSAnLi4vZi1jb25uZWN0b3JzJztcbmltcG9ydCB7IEZNZWRpYXRvciB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgRW1pdFRyYW5zZm9ybUNoYW5nZXNSZXF1ZXN0IH0gZnJvbSAnLi4vZG9tYWluJztcbmltcG9ydCB7IEJyb3dzZXJTZXJ2aWNlIH0gZnJvbSAnQGZvYmxleC9wbGF0Zm9ybSc7XG5pbXBvcnQgeyBJSGFzSG9zdEVsZW1lbnQgfSBmcm9tICcuLi9pLWhhcy1ob3N0LWVsZW1lbnQnO1xuXG5sZXQgdW5pcXVlSWQ6IG51bWJlciA9IDA7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogXCJbZkdyb3VwXVwiLFxuICBleHBvcnRBczogXCJmQ29tcG9uZW50XCIsXG4gIGhvc3Q6IHtcbiAgICAnW2F0dHIuZGF0YS1mLWdyb3VwLWlkXSc6ICdmSWQnLFxuICAgIGNsYXNzOiBcImYtZ3JvdXAgZi1jb21wb25lbnRcIixcbiAgICAnW2NsYXNzLmYtZ3JvdXAtZHJhZ2dpbmctZGlzYWJsZWRdJzogJ2ZEcmFnZ2luZ0Rpc2FibGVkJyxcbiAgICAnW2NsYXNzLmYtZ3JvdXAtc2VsZWN0aW9uLWRpc2FibGVkXSc6ICdmU2VsZWN0aW9uRGlzYWJsZWQnLFxuICB9LFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IEZfTk9ERSwgdXNlRXhpc3Rpbmc6IEZHcm91cERpcmVjdGl2ZSB9XG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZHcm91cERpcmVjdGl2ZSBleHRlbmRzIEZOb2RlQmFzZVxuICBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgSUhhc0hvc3RFbGVtZW50LCBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9ucyQ6IFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBASW5wdXQoJ2ZHcm91cElkJylcbiAgcHVibGljIG92ZXJyaWRlIGZJZDogc3RyaW5nID0gYGYtZ3JvdXAtJHsgdW5pcXVlSWQrKyB9YDtcblxuICBASW5wdXQoJ2ZHcm91cFBhcmVudElkJylcbiAgcHVibGljIG92ZXJyaWRlIGZQYXJlbnRJZDogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCA9IG51bGw7XG5cbiAgQElucHV0KCdmR3JvdXBQb3NpdGlvbicpXG4gIHB1YmxpYyBvdmVycmlkZSBzZXQgcG9zaXRpb24odmFsdWU6IElQb2ludCkge1xuICAgIHRoaXMuX3Bvc2l0aW9uID0gUG9pbnRFeHRlbnNpb25zLmNhc3RUb1BvaW50KHZhbHVlKTtcbiAgICB0aGlzLnJlZnJlc2goKTtcbiAgfVxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IHBvc2l0aW9uKCk6IElQb2ludCB7XG4gICAgcmV0dXJuIHRoaXMuX3Bvc2l0aW9uO1xuICB9XG4gIEBPdXRwdXQoJ2ZHcm91cFBvc2l0aW9uQ2hhbmdlJylcbiAgcHVibGljIG92ZXJyaWRlIHBvc2l0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SVBvaW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8SVBvaW50PigpO1xuXG4gIEBJbnB1dCgnZkdyb3VwU2l6ZScpXG4gIHB1YmxpYyBvdmVycmlkZSBzZXQgc2l6ZSh2YWx1ZTogSVNpemUpIHtcbiAgICB0aGlzLl9zaXplID0gdmFsdWU7XG4gICAgdGhpcy5yZWZyZXNoKCk7XG4gIH1cbiAgcHVibGljIG92ZXJyaWRlIGdldCBzaXplKCk6IElTaXplIHtcbiAgICByZXR1cm4gdGhpcy5fc2l6ZSE7XG4gIH1cbiAgQE91dHB1dCgnZkdyb3VwU2l6ZUNoYW5nZScpXG4gIHB1YmxpYyBvdmVycmlkZSBzaXplQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SVJlY3Q+ID0gbmV3IEV2ZW50RW1pdHRlcjxJUmVjdD4oKTtcblxuICBASW5wdXQoJ2ZHcm91cERyYWdnaW5nRGlzYWJsZWQnKVxuICBwdWJsaWMgb3ZlcnJpZGUgZkRyYWdnaW5nRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoJ2ZHcm91cFNlbGVjdGlvbkRpc2FibGVkJylcbiAgcHVibGljIG92ZXJyaWRlIGZTZWxlY3Rpb25EaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBmSW5jbHVkZVBhZGRpbmc6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBmQ29ubmVjdE9uTm9kZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RvcnM6IEZDb25uZWN0b3JCYXNlW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBlbGVtZW50UmVmZXJlbmNlOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBmQ29tcG9uZW50c1N0b3JlOiBGQ29tcG9uZW50c1N0b3JlLFxuICAgIHByaXZhdGUgZk1lZGlhdG9yOiBGTWVkaWF0b3IsXG4gICAgcHJpdmF0ZSBmQnJvd3NlcjogQnJvd3NlclNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoZWxlbWVudFJlZmVyZW5jZS5uYXRpdmVFbGVtZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldFN0eWxlKCdwb3NpdGlvbicsICdhYnNvbHV0ZScpO1xuICAgIHRoaXMuc2V0U3R5bGUoJ3RyYW5zZm9ybS1vcmlnaW4nLCAnY2VudGVyJyk7XG4gICAgdGhpcy5zZXRTdHlsZSgndXNlci1zZWxlY3QnLCAnbm9uZScpO1xuICAgIHRoaXMuc2V0U3R5bGUoJ3BvaW50ZXItZXZlbnRzJywgJ2FsbCcpO1xuICAgIHRoaXMuc2V0U3R5bGUoJ2xlZnQnLCAnMCcpO1xuICAgIHRoaXMuc2V0U3R5bGUoJ3RvcCcsICcwJyk7XG4gICAgc3VwZXIucmVkcmF3KCk7XG4gICAgdGhpcy5mQ29tcG9uZW50c1N0b3JlLmFkZENvbXBvbmVudCh0aGlzLmZDb21wb25lbnRzU3RvcmUuZk5vZGVzLCB0aGlzKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBzZXRTdHlsZShzdHlsZU5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5ob3N0RWxlbWVudCwgc3R5bGVOYW1lLCB2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgcmVkcmF3KCk6IHZvaWQge1xuICAgIHN1cGVyLnJlZHJhdygpO1xuICAgIHRoaXMuZk1lZGlhdG9yLnNlbmQobmV3IEVtaXRUcmFuc2Zvcm1DaGFuZ2VzUmVxdWVzdCgpKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYoIXRoaXMuZkJyb3dzZXIuaXNCcm93c2VyKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zJC5hZGQoXG4gICAgICB0aGlzLnN1YnNjcmliZU9uUmVzaXplQ2hhbmdlcygpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgc3Vic2NyaWJlT25SZXNpemVDaGFuZ2VzKCk6IFN1YnNjcmlwdGlvbiB7XG4gICAgcmV0dXJuIG1lcmdlKG5ldyBGUmVzaXplT2JzZXJ2ZXIodGhpcy5ob3N0RWxlbWVudCBhcyBIVE1MRWxlbWVudCksIHRoaXMuc3RhdGVDaGFuZ2VzKS5waXBlKFxuICAgICAgZGVib3VuY2VUaW1lKDEwKSwgc3RhcnRXaXRoKG51bGwpXG4gICAgKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5jb25uZWN0b3JzLmZvckVhY2goKGZDb25uZWN0b3I6IEZDb25uZWN0b3JCYXNlKSA9PiB7XG4gICAgICAgIGZDb25uZWN0b3IuZkNvbm5lY3RhYmxlU2lkZSA9IG5ldyBDYWxjdWxhdGVDb25uZWN0b3JDb25uZWN0YWJsZVNpZGVIYW5kbGVyKCkuaGFuZGxlKFxuICAgICAgICAgIG5ldyBDYWxjdWxhdGVDb25uZWN0b3JDb25uZWN0YWJsZVNpZGVSZXF1ZXN0KGZDb25uZWN0b3IsIHRoaXMuaG9zdEVsZW1lbnQpXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5jb21wb25lbnREYXRhQ2hhbmdlZCgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGFkZENvbm5lY3Rvcihjb25uZWN0b3I6IEZDb25uZWN0b3JCYXNlKTogdm9pZCB7XG4gICAgdGhpcy5jb25uZWN0b3JzLnB1c2goY29ubmVjdG9yKTtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgcmVtb3ZlQ29ubmVjdG9yKGNvbm5lY3RvcjogRkNvbm5lY3RvckJhc2UpOiB2b2lkIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuY29ubmVjdG9ycy5pbmRleE9mKGNvbm5lY3Rvcik7XG4gICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgdGhpcy5jb25uZWN0b3JzLnNwbGljZShpbmRleCwgMSk7XG4gICAgfVxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgfVxuXG4gIHB1YmxpYyByZWZyZXNoKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmZDb21wb25lbnRzU3RvcmUucmVtb3ZlQ29tcG9uZW50KHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mTm9kZXMsIHRoaXMpO1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zJC51bnN1YnNjcmliZSgpO1xuICB9XG59XG4iXX0=
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1ncm91cC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2Ytbm9kZS9mLWdyb3VwLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ1UsVUFBVSxFQUN6QixTQUFTLEVBRVQsWUFBWSxFQUFFLE1BQU0sRUFDcEIsS0FBSyxFQUdMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNuRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDN0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRzdDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSx1Q0FBdUMsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7O0FBRXZILElBQUksUUFBUSxHQUFXLENBQUMsQ0FBQztBQWV6QixNQUFNLE9BQU8sZUFBZ0IsU0FBUSxTQUFTO0lBUzVDLElBQ29CLFFBQVEsQ0FBQyxLQUFhO1FBQ3hDLElBQUksQ0FBQyxTQUFTLEdBQUcsZUFBZSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUNELElBQW9CLFFBQVE7UUFDMUIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFJRCxJQUNvQixJQUFJLENBQUMsS0FBWTtRQUNuQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUNELElBQW9CLElBQUk7UUFDdEIsT0FBTyxJQUFJLENBQUMsS0FBTSxDQUFDO0lB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QkFBbUI7d0JBQ3hELG9DQUFvQyxFQUFFLG9CQUFvQjtxQkFDM0Q7b0JBQ0QsU0FBUyxFQUFFO3dCQUNULEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxXQUFXLGlCQUFpQixFQUFFO3FCQUNsRDtpQkFDRjtzSkFLaUIsR0FBRztzQkFEbEIsS0FBSzt1QkFBQyxVQUFVO2dCQUlELFNBQVM7c0JBRHhCLEtBQUs7dUJBQUMsZ0JBQWdCO2dCQUlILFFBQVE7c0JBRDNCLEtBQUs7dUJBQUMsZ0JBQWdCO2dCQVNQLGNBQWM7c0JBRDdCLE1BQU07dUJBQUMsc0JBQXNCO2dCQUlWLElBQUk7c0JBRHZCLEtBQUs7dUJBQUMsWUFBWTtnQkFTSCxVQUFVO3NCQUR6QixNQUFNO3VCQUFDLGtCQUFrQjtnQkFJVixpQkFBaUI7c0JBRGhDLEtBQUs7dUJBQUMsd0JBQXdCO2dCQUlmLGtCQUFrQjtzQkFEakMsS0FBSzt1QkFBQyx5QkFBeUI7Z0JBSWhCLGVBQWU7c0JBRDlCLEtBQUs7Z0JBSVUsY0FBYztzQkFEN0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsIERlc3Ryb3lSZWYsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLCBpbmplY3QsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBSZW5kZXJlcjIsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBJUG9pbnQsIElSZWN0LCBJU2l6ZSwgUG9pbnRFeHRlbnNpb25zIH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQgeyBGX05PREUsIEZOb2RlQmFzZSB9IGZyb20gJy4vZi1ub2RlLWJhc2UnO1xuaW1wb3J0IHsgTm90aWZ5VHJhbnNmb3JtQ2hhbmdlZFJlcXVlc3QgfSBmcm9tICcuLi9mLXN0b3JhZ2UnO1xuaW1wb3J0IHsgRk1lZGlhdG9yIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBCcm93c2VyU2VydmljZSB9IGZyb20gJ0Bmb2JsZXgvcGxhdGZvcm0nO1xuaW1wb3J0IHsgSUhhc0hvc3RFbGVtZW50IH0gZnJvbSAnLi4vaS1oYXMtaG9zdC1lbGVtZW50JztcbmltcG9ydCB7IEFkZE5vZGVUb1N0b3JlUmVxdWVzdCwgVXBkYXRlTm9kZVdoZW5TdGF0ZU9yU2l6ZUNoYW5nZWRSZXF1ZXN0LCBSZW1vdmVOb2RlRnJvbVN0b3JlUmVxdWVzdCB9IGZyb20gJy4uL2RvbWFpbic7XG5cbmxldCB1bmlxdWVJZDogbnVtYmVyID0gMDtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiBcIltmR3JvdXBdXCIsXG4gIGV4cG9ydEFzOiBcImZDb21wb25lbnRcIixcbiAgaG9zdDoge1xuICAgICdbYXR0ci5kYXRhLWYtZ3JvdXAtaWRdJzogJ2ZJZCcsXG4gICAgY2xhc3M6IFwiZi1ncm91cCBmLWNvbXBvbmVudFwiLFxuICAgICdbY2xhc3MuZi1ncm91cC1kcmFnZ2luZy1kaXNhYmxlZF0nOiAnZkRyYWdnaW5nRGlzYWJsZWQnLFxuICAgICdbY2xhc3MuZi1ncm91cC1zZWxlY3Rpb24tZGlzYWJsZWRdJzogJ2ZTZWxlY3Rpb25EaXNhYmxlZCcsXG4gIH0sXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogRl9OT0RFLCB1c2VFeGlzdGluZzogRkdyb3VwRGlyZWN0aXZlIH1cbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRkdyb3VwRGlyZWN0aXZlIGV4dGVuZHMgRk5vZGVCYXNlXG4gIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBJSGFzSG9zdEVsZW1lbnQsIE9uRGVzdHJveSB7XG5cbiAgQElucHV0KCdmR3JvdXBJZCcpXG4gIHB1YmxpYyBvdmVycmlkZSBmSWQ6IHN0cmluZyA9IGBmLWdyb3VwLSR7IHVuaXF1ZUlkKysgfWA7XG5cbiAgQElucHV0KCdmR3JvdXBQYXJlbnRJZCcpXG4gIHB1YmxpYyBvdmVycmlkZSBmUGFyZW50SWQ6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQgPSBudWxsO1xuXG4gIEBJbnB1dCgnZkdyb3VwUG9zaXRpb24nKVxuICBwdWJsaWMgb3ZlcnJpZGUgc2V0IHBvc2l0aW9uKHZhbHVlOiBJUG9pbnQpIHtcbiAgICB0aGlzLl9wb3NpdGlvbiA9IFBvaW50RXh0ZW5zaW9ucy5jYXN0VG9Qb2ludCh2YWx1ZSk7XG4gICAgdGhpcy5yZWZyZXNoKCk7XG4gIH1cbiAgcHVibGljIG92ZXJyaWRlIGdldCBwb3NpdGlvbigpOiBJUG9pbnQge1xuICAgIHJldHVybiB0aGlzLl9wb3NpdGlvbjtcbiAgfVxuICBAT3V0cHV0KCdmR3JvdXBQb3NpdGlvbkNoYW5nZScpXG4gIHB1YmxpYyBvdmVycmlkZSBwb3NpdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPElQb2ludD4gPSBuZXcgRXZlbnRFbWl0dGVyPElQb2ludD4oKTtcblxuICBASW5wdXQoJ2ZHcm91cFNpemUnKVxuICBwdWJsaWMgb3ZlcnJpZGUgc2V0IHNpemUodmFsdWU6IElTaXplKSB7XG4gICAgdGhpcy5fc2l6ZSA9IHZhbHVlO1xuICAgIHRoaXMucmVmcmVzaCgpO1xuICB9XG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgc2l6ZSgpOiBJU2l6ZSB7XG4gICAgcmV0dXJuIHRoaXMuX3NpemUhO1xuICB9XG4gIEBPdXRwdXQoJ2ZHcm91cFNpemVDaGFuZ2UnKVxuICBwdWJsaWMgb3ZlcnJpZGUgc2l6ZUNoYW5nZTogRXZlbnRFbWl0dGVyPElSZWN0PiA9IG5ldyBFdmVudEVtaXR0ZXI8SVJlY3Q+KCk7XG5cbiAgQElucHV0KCdmR3JvdXBEcmFnZ2luZ0Rpc2FibGVkJylcbiAgcHVibGljIG92ZXJyaWRlIGZEcmFnZ2luZ0Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KCdmR3JvdXBTZWxlY3Rpb25EaXNhYmxlZCcpXG4gIHB1YmxpYyBvdmVycmlkZSBmU2VsZWN0aW9uRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgb3ZlcnJpZGUgZkluY2x1ZGVQYWRkaW5nOiBib29sZWFuID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgb3ZlcnJpZGUgZkNvbm5lY3RPbk5vZGU6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIHByaXZhdGUgX2Rlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gIHByaXZhdGUgX2ZNZWRpYXRvciA9IGluamVjdChGTWVkaWF0b3IpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGVsZW1lbnRSZWZlcmVuY2U6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIGZCcm93c2VyOiBCcm93c2VyU2VydmljZVxuICApIHtcbiAgICBzdXBlcihlbGVtZW50UmVmZXJlbmNlLm5hdGl2ZUVsZW1lbnQpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0U3R5bGUoJ3Bvc2l0aW9uJywgJ2Fic29sdXRlJyk7XG4gICAgdGhpcy5zZXRTdHlsZSgndHJhbnNmb3JtLW9yaWdpbicsICdjZW50ZXInKTtcbiAgICB0aGlzLnNldFN0eWxlKCd1c2VyLXNlbGVjdCcsICdub25lJyk7XG4gICAgdGhpcy5zZXRTdHlsZSgncG9pbnRlci1ldmVudHMnLCAnYWxsJyk7XG4gICAgdGhpcy5zZXRTdHlsZSgnbGVmdCcsICcwJyk7XG4gICAgdGhpcy5zZXRTdHlsZSgndG9wJywgJzAnKTtcbiAgICBzdXBlci5yZWRyYXcoKTtcblxuICAgIHRoaXMuX2ZNZWRpYXRvci5zZW5kPHZvaWQ+KG5ldyBBZGROb2RlVG9TdG9yZVJlcXVlc3QodGhpcykpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHNldFN0eWxlKHN0eWxlTmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmhvc3RFbGVtZW50LCBzdHlsZU5hbWUsIHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSByZWRyYXcoKTogdm9pZCB7XG4gICAgc3VwZXIucmVkcmF3KCk7XG4gICAgdGhpcy5fZk1lZGlhdG9yLnNlbmQobmV3IE5vdGlmeVRyYW5zZm9ybUNoYW5nZWRSZXF1ZXN0KCkpO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZighdGhpcy5mQnJvd3Nlci5pc0Jyb3dzZXIoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9saXN0ZW5TdGF0ZVNpemVDaGFuZ2VzKCk7XG4gIH1cblxuICBwcml2YXRlIF9saXN0ZW5TdGF0ZVNpemVDaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuX2ZNZWRpYXRvci5zZW5kPHZvaWQ+KG5ldyBVcGRhdGVOb2RlV2hlblN0YXRlT3JTaXplQ2hhbmdlZFJlcXVlc3QodGhpcywgdGhpcy5fZGVzdHJveVJlZikpO1xuICB9XG5cbiAgcHVibGljIHJlZnJlc2goKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubm90aWZ5KCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZk1lZGlhdG9yLnNlbmQ8dm9pZD4obmV3IFJlbW92ZU5vZGVGcm9tU3RvcmVSZXF1ZXN0KHRoaXMpKTtcbiAgfVxufVxuIl19
@@ -1,7 +1,7 @@
1
1
  import { InjectionToken } from '@angular/core';
2
- import { Subject } from 'rxjs';
3
2
  import { PointExtensions } from '@foblex/2d';
4
3
  import { mixinChangeSelection } from '../mixins';
4
+ import { FChannel } from '../reactivity';
5
5
  export const F_NODE = new InjectionToken('F_NODE');
6
6
  const MIXIN_BASE = mixinChangeSelection(class {
7
7
  constructor(hostElement) {
@@ -11,9 +11,10 @@ const MIXIN_BASE = mixinChangeSelection(class {
11
11
  export class FNodeBase extends MIXIN_BASE {
12
12
  constructor() {
13
13
  super(...arguments);
14
- this.stateChanges = new Subject();
14
+ this.stateChanges = new FChannel();
15
15
  this._position = PointExtensions.initialize();
16
16
  this.fCanBeResizedByChild = true;
17
+ this.connectors = [];
17
18
  }
18
19
  isContains(element) {
19
20
  return this.hostElement.contains(element);
@@ -37,5 +38,16 @@ export class FNodeBase extends MIXIN_BASE {
37
38
  removeClass(className) {
38
39
  this.hostElement.classList.remove(className);
39
40
  }
41
+ addConnector(connector) {
42
+ this.connectors.push(connector);
43
+ this.refresh();
44
+ }
45
+ removeConnector(connector) {
46
+ const index = this.connectors.indexOf(connector);
47
+ if (index !== -1) {
48
+ this.connectors.splice(index, 1);
49
+ }
50
+ this.refresh();
51
+ }
40
52
  }
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1ub2RlLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2Ytbm9kZS9mLW5vZGUtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBd0IsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBSW5FLE9BQU8sRUFBdUIsb0JBQW9CLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFHdEUsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLElBQUksY0FBYyxDQUFZLFFBQVEsQ0FBQyxDQUFDO0FBRTlELE1BQU0sVUFBVSxHQUFHLG9CQUFvQixDQUNuQztJQUNFLFlBQ1MsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7SUFFakMsQ0FBQztDQUNGLENBQUMsQ0FBQztBQUVQLE1BQU0sT0FBZ0IsU0FBVSxTQUFRLFVBQVU7SUFBbEQ7O1FBTWtCLGlCQUFZLEdBQWtCLElBQUksT0FBTyxFQUFRLENBQUM7UUFPeEQsY0FBUyxHQUFXLGVBQWUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQWdCcEQseUJBQW9CLEdBQVksSUFBSSxDQUFDO0lBMEM5QyxDQUFDO0lBNUJRLFVBQVUsQ0FBQyxPQUFpQztRQUNqRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFTSxNQUFNO1FBQ1gsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQ3BELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsQ0FBQztTQUN2RDtRQUVELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLGFBQWMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFFLE1BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFFTSxjQUFjLENBQUMsUUFBZ0I7UUFDcEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7SUFDNUIsQ0FBQztJQUVNLFVBQVUsQ0FBQyxLQUFZO1FBQzVCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7SUFFTSxRQUFRLENBQUMsU0FBaUI7UUFDL0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFTSxXQUFXLENBQUMsU0FBaUI7UUFDbEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IElQb2ludCwgSVJlY3QsIElTaXplLCBQb2ludEV4dGVuc2lvbnMgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IElIYXNTdGF0ZUNoYW5nZXMgfSBmcm9tICcuLi9pLWhhcy1zdGF0ZS1jaGFuZ2VzJztcbmltcG9ydCB7IEZDb25uZWN0b3JCYXNlIH0gZnJvbSAnLi4vZi1jb25uZWN0b3JzJztcbmltcG9ydCB7IElIYXNIb3N0RWxlbWVudCB9IGZyb20gJy4uL2ktaGFzLWhvc3QtZWxlbWVudCc7XG5pbXBvcnQgeyBJQ2FuQ2hhbmdlU2VsZWN0aW9uLCBtaXhpbkNoYW5nZVNlbGVjdGlvbiB9IGZyb20gJy4uL21peGlucyc7XG5pbXBvcnQgeyBGRHJvcFRvR3JvdXBFdmVudCB9IGZyb20gJy4uL2YtZHJhZ2dhYmxlJztcblxuZXhwb3J0IGNvbnN0IEZfTk9ERSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxGTm9kZUJhc2U+KCdGX05PREUnKTtcblxuY29uc3QgTUlYSU5fQkFTRSA9IG1peGluQ2hhbmdlU2VsZWN0aW9uKFxuICAgIGNsYXNzIHtcbiAgICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgaG9zdEVsZW1lbnQ6IEhUTUxFbGVtZW50XG4gICAgICApIHtcbiAgICAgIH1cbiAgICB9KTtcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZOb2RlQmFzZSBleHRlbmRzIE1JWElOX0JBU0UgaW1wbGVtZW50cyBJSGFzU3RhdGVDaGFuZ2VzLCBJQ2FuQ2hhbmdlU2VsZWN0aW9uLCBJSGFzSG9zdEVsZW1lbnQge1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBvdmVycmlkZSBmSWQ6IHN0cmluZztcblxuICBwdWJsaWMgYWJzdHJhY3QgZlBhcmVudElkOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyByZWFkb25seSBzdGF0ZUNoYW5nZXM6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG5cbiAgcHVibGljIGFic3RyYWN0IHBvc2l0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SVBvaW50PjtcblxuICBwdWJsaWMgYWJzdHJhY3QgcG9zaXRpb246IElQb2ludDtcblxuICBwcm90ZWN0ZWQgX3Bvc2l0aW9uOiBJUG9pbnQgPSBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgpO1xuXG5cbiAgcHVibGljIGFic3RyYWN0IHNpemVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJUmVjdD47XG5cbiAgcHVibGljIGFic3RyYWN0IHNpemU6IElTaXplO1xuXG4gIHByb3RlY3RlZCBfc2l6ZTogSVNpemUgfCB1bmRlZmluZWQ7XG5cblxuICBwdWJsaWMgYWJzdHJhY3QgZkRyYWdnaW5nRGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgcHVibGljIGFic3RyYWN0IG92ZXJyaWRlIGZTZWxlY3Rpb25EaXNhYmxlZDogYm9vbGVhbjtcblxuICBwdWJsaWMgYWJzdHJhY3QgZkNvbm5lY3RPbk5vZGU6IGJvb2xlYW47XG5cbiAgcHVibGljIGZDYW5CZVJlc2l6ZWRCeUNoaWxkOiBib29sZWFuID0gdHJ1ZTtcblxuICBwdWJsaWMgYWJzdHJhY3QgZkluY2x1ZGVQYWRkaW5nOiBib29sZWFuO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCByZWZyZXNoKCk6IHZvaWQ7XG5cbiAgcHVibGljIGFic3RyYWN0IGNvbm5lY3RvcnM6IEZDb25uZWN0b3JCYXNlW107XG5cbiAgcHVibGljIGFic3RyYWN0IGFkZENvbm5lY3Rvcihjb25uZWN0b3I6IEZDb25uZWN0b3JCYXNlKTogdm9pZDtcblxuICBwdWJsaWMgYWJzdHJhY3QgcmVtb3ZlQ29ubmVjdG9yKGNvbm5lY3RvcjogRkNvbm5lY3RvckJhc2UpOiB2b2lkO1xuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBzZXRTdHlsZShuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiB2b2lkO1xuXG4gIHB1YmxpYyBpc0NvbnRhaW5zKGVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgU1ZHRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhvc3RFbGVtZW50LmNvbnRhaW5zKGVsZW1lbnQpO1xuICB9XG5cbiAgcHVibGljIHJlZHJhdygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zaXplKSB7XG4gICAgICB0aGlzLnNldFN0eWxlKCd3aWR0aCcsICcnICsgdGhpcy5zaXplLndpZHRoICsgJ3B4Jyk7XG4gICAgICB0aGlzLnNldFN0eWxlKCdoZWlnaHQnLCAnJyArIHRoaXMuc2l6ZS5oZWlnaHQgKyAncHgnKTtcbiAgICB9XG5cbiAgICB0aGlzLnNldFN0eWxlKCd0cmFuc2Zvcm0nLCBgdHJhbnNsYXRlKCR7IHRoaXMucG9zaXRpb24ueCB9cHgsJHsgdGhpcy5wb3NpdGlvbi55IH1weClgKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVQb3NpdGlvbihwb3NpdGlvbjogSVBvaW50KTogdm9pZCB7XG4gICAgdGhpcy5fcG9zaXRpb24gPSBwb3NpdGlvbjtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVTaXplKHZhbHVlOiBJU2l6ZSk6IHZvaWQge1xuICAgIHRoaXMuX3NpemUgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRDbGFzcyhjbGFzc05hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuaG9zdEVsZW1lbnQuY2xhc3NMaXN0LmFkZChjbGFzc05hbWUpO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZUNsYXNzKGNsYXNzTmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5ob3N0RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKGNsYXNzTmFtZSk7XG4gIH1cbn1cbiJdfQ==
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1ub2RlLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2Ytbm9kZS9mLW5vZGUtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQXdCLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUtuRSxPQUFPLEVBQXVCLG9CQUFvQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLElBQUksY0FBYyxDQUFZLFFBQVEsQ0FBQyxDQUFDO0FBRTlELE1BQU0sVUFBVSxHQUFHLG9CQUFvQixDQUNuQztJQUNFLFlBQ1MsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7SUFFakMsQ0FBQztDQUNGLENBQUMsQ0FBQztBQUVQLE1BQU0sT0FBZ0IsU0FBVSxTQUFRLFVBQVU7SUFBbEQ7O1FBTWtCLGlCQUFZLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQU9wQyxjQUFTLEdBQVcsZUFBZSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBZ0JwRCx5QkFBb0IsR0FBWSxJQUFJLENBQUM7UUFNckMsZUFBVSxHQUFxQixFQUFFLENBQUM7SUE2QzNDLENBQUM7SUF6Q1EsVUFBVSxDQUFDLE9BQWlDO1FBQ2pELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVNLE1BQU07UUFDWCxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDYixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDcEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDO1NBQ3ZEO1FBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsYUFBYyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUUsTUFBTyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUUsS0FBSyxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUVNLGNBQWMsQ0FBQyxRQUFnQjtRQUNwQyxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztJQUM1QixDQUFDO0lBRU0sVUFBVSxDQUFDLEtBQVk7UUFDNUIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVNLFFBQVEsQ0FBQyxTQUFpQjtRQUMvQixJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVNLFdBQVcsQ0FBQyxTQUFpQjtRQUNsQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVNLFlBQVksQ0FBQyxTQUF5QjtRQUMzQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVNLGVBQWUsQ0FBQyxTQUF5QjtRQUM5QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNqRCxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsRUFBRTtZQUNoQixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDbEM7UUFDRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSVBvaW50LCBJUmVjdCwgSVNpemUsIFBvaW50RXh0ZW5zaW9ucyB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHtcbiAgRkNvbm5lY3RvckJhc2Vcbn0gZnJvbSAnLi4vZi1jb25uZWN0b3JzJztcbmltcG9ydCB7IElIYXNIb3N0RWxlbWVudCB9IGZyb20gJy4uL2ktaGFzLWhvc3QtZWxlbWVudCc7XG5pbXBvcnQgeyBJQ2FuQ2hhbmdlU2VsZWN0aW9uLCBtaXhpbkNoYW5nZVNlbGVjdGlvbiB9IGZyb20gJy4uL21peGlucyc7XG5pbXBvcnQgeyBGQ2hhbm5lbCB9IGZyb20gJy4uL3JlYWN0aXZpdHknO1xuXG5leHBvcnQgY29uc3QgRl9OT0RFID0gbmV3IEluamVjdGlvblRva2VuPEZOb2RlQmFzZT4oJ0ZfTk9ERScpO1xuXG5jb25zdCBNSVhJTl9CQVNFID0gbWl4aW5DaGFuZ2VTZWxlY3Rpb24oXG4gICAgY2xhc3Mge1xuICAgICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBob3N0RWxlbWVudDogSFRNTEVsZW1lbnRcbiAgICAgICkge1xuICAgICAgfVxuICAgIH0pO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRk5vZGVCYXNlIGV4dGVuZHMgTUlYSU5fQkFTRSBpbXBsZW1lbnRzIElDYW5DaGFuZ2VTZWxlY3Rpb24sIElIYXNIb3N0RWxlbWVudCB7XG5cbiAgcHVibGljIGFic3RyYWN0IG92ZXJyaWRlIGZJZDogc3RyaW5nO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmUGFyZW50SWQ6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIHJlYWRvbmx5IHN0YXRlQ2hhbmdlcyA9IG5ldyBGQ2hhbm5lbCgpO1xuXG5cbiAgcHVibGljIGFic3RyYWN0IHBvc2l0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SVBvaW50PjtcblxuICBwdWJsaWMgYWJzdHJhY3QgcG9zaXRpb246IElQb2ludDtcblxuICBwcm90ZWN0ZWQgX3Bvc2l0aW9uOiBJUG9pbnQgPSBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgpO1xuXG5cbiAgcHVibGljIGFic3RyYWN0IHNpemVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJUmVjdD47XG5cbiAgcHVibGljIGFic3RyYWN0IHNpemU6IElTaXplO1xuXG4gIHByb3RlY3RlZCBfc2l6ZTogSVNpemUgfCB1bmRlZmluZWQ7XG5cblxuICBwdWJsaWMgYWJzdHJhY3QgZkRyYWdnaW5nRGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgcHVibGljIGFic3RyYWN0IG92ZXJyaWRlIGZTZWxlY3Rpb25EaXNhYmxlZDogYm9vbGVhbjtcblxuICBwdWJsaWMgYWJzdHJhY3QgZkNvbm5lY3RPbk5vZGU6IGJvb2xlYW47XG5cbiAgcHVibGljIGZDYW5CZVJlc2l6ZWRCeUNoaWxkOiBib29sZWFuID0gdHJ1ZTtcblxuICBwdWJsaWMgYWJzdHJhY3QgZkluY2x1ZGVQYWRkaW5nOiBib29sZWFuO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCByZWZyZXNoKCk6IHZvaWQ7XG5cbiAgcHVibGljIGNvbm5lY3RvcnM6IEZDb25uZWN0b3JCYXNlW10gPSBbXTtcblxuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgc2V0U3R5bGUobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZDtcblxuICBwdWJsaWMgaXNDb250YWlucyhlbGVtZW50OiBIVE1MRWxlbWVudCB8IFNWR0VsZW1lbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5ob3N0RWxlbWVudC5jb250YWlucyhlbGVtZW50KTtcbiAgfVxuXG4gIHB1YmxpYyByZWRyYXcoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2l6ZSkge1xuICAgICAgdGhpcy5zZXRTdHlsZSgnd2lkdGgnLCAnJyArIHRoaXMuc2l6ZS53aWR0aCArICdweCcpO1xuICAgICAgdGhpcy5zZXRTdHlsZSgnaGVpZ2h0JywgJycgKyB0aGlzLnNpemUuaGVpZ2h0ICsgJ3B4Jyk7XG4gICAgfVxuXG4gICAgdGhpcy5zZXRTdHlsZSgndHJhbnNmb3JtJywgYHRyYW5zbGF0ZSgkeyB0aGlzLnBvc2l0aW9uLnggfXB4LCR7IHRoaXMucG9zaXRpb24ueSB9cHgpYCk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlUG9zaXRpb24ocG9zaXRpb246IElQb2ludCk6IHZvaWQge1xuICAgIHRoaXMuX3Bvc2l0aW9uID0gcG9zaXRpb247XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlU2l6ZSh2YWx1ZTogSVNpemUpOiB2b2lkIHtcbiAgICB0aGlzLl9zaXplID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgc2V0Q2xhc3MoY2xhc3NOYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmhvc3RFbGVtZW50LmNsYXNzTGlzdC5hZGQoY2xhc3NOYW1lKTtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVDbGFzcyhjbGFzc05hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuaG9zdEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShjbGFzc05hbWUpO1xuICB9XG5cbiAgcHVibGljIGFkZENvbm5lY3Rvcihjb25uZWN0b3I6IEZDb25uZWN0b3JCYXNlKTogdm9pZCB7XG4gICAgdGhpcy5jb25uZWN0b3JzLnB1c2goY29ubmVjdG9yKTtcbiAgICB0aGlzLnJlZnJlc2goKTtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVDb25uZWN0b3IoY29ubmVjdG9yOiBGQ29ubmVjdG9yQmFzZSk6IHZvaWQge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5jb25uZWN0b3JzLmluZGV4T2YoY29ubmVjdG9yKTtcbiAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICB0aGlzLmNvbm5lY3RvcnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB9XG4gICAgdGhpcy5yZWZyZXNoKCk7XG4gIH1cbn1cbiJdfQ==