@foblex/flow 16.0.5 → 17.0.1

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 (617) 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 -7
  149. package/domain/is-mobile.d.ts +1 -0
  150. package/domain/providers.d.ts +1 -7
  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 -8
  306. package/esm2022/domain/is-connection-under-node/is-connection-under-node.execution.mjs +3 -4
  307. package/esm2022/domain/is-mobile.mjs +5 -0
  308. package/esm2022/domain/providers.mjs +11 -13
  309. package/esm2022/domain/transition-end.mjs +10 -0
  310. package/esm2022/f-backgroud/f-background-base.mjs +1 -1
  311. package/esm2022/f-backgroud/f-background.component.mjs +15 -20
  312. package/esm2022/f-backgroud/f-circle-pattern/f-circle-pattern.component.mjs +40 -46
  313. package/esm2022/f-backgroud/f-rect-pattern/f-rect-pattern.component.mjs +42 -56
  314. package/esm2022/f-canvas/f-canvas-base.mjs +1 -1
  315. package/esm2022/f-canvas/f-canvas.component.mjs +30 -40
  316. package/esm2022/f-connection/common/f-connection-base.mjs +1 -3
  317. package/esm2022/f-connection/common/f-connection-text/f-connection-text-path.directive.mjs +2 -2
  318. package/esm2022/f-connection/common/f-drag-handle/f-connection-drag-handle.component.mjs +3 -3
  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/i-node-with-rect.mjs +2 -0
  347. package/esm2022/f-draggable/domain/index.mjs +2 -1
  348. package/esm2022/f-draggable/f-draggable-base.mjs +1 -1
  349. package/esm2022/f-draggable/f-draggable.directive.mjs +50 -95
  350. package/esm2022/f-draggable/i-draggable-item.mjs +1 -1
  351. package/esm2022/f-draggable/index.mjs +2 -1
  352. package/esm2022/f-draggable/node/connection-base-drag-handler.mjs +4 -4
  353. package/esm2022/f-draggable/node/connection-source.drag-handler.mjs +2 -2
  354. package/esm2022/f-draggable/node/connection-target.drag-handler.mjs +2 -2
  355. package/esm2022/f-draggable/node/connection.drag-handler.mjs +2 -2
  356. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/create-move-nodes-drag-model-from-selection.execution.mjs +8 -5
  357. 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
  358. 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
  359. package/esm2022/f-draggable/node/f-drop-to-group.event.mjs +8 -0
  360. package/esm2022/f-draggable/node/index.mjs +5 -1
  361. package/esm2022/f-draggable/node/node-drag-to-parent-finalize/index.mjs +5 -0
  362. package/esm2022/f-draggable/node/node-drag-to-parent-finalize/node-drag-to-parent-finalize.execution.mjs +53 -0
  363. package/esm2022/f-draggable/node/node-drag-to-parent-finalize/node-drag-to-parent-finalize.request.mjs +6 -0
  364. package/esm2022/f-draggable/node/node-drag-to-parent-finalize/node-drag-to-parent-finalize.validator.mjs +25 -0
  365. package/esm2022/f-draggable/node/node-drag-to-parent-finalize/providers.mjs +7 -0
  366. package/esm2022/f-draggable/node/node-drag-to-parent-preparation/index.mjs +5 -0
  367. package/esm2022/f-draggable/node/node-drag-to-parent-preparation/node-drag-to-parent-preparation.execution.mjs +62 -0
  368. package/esm2022/f-draggable/node/node-drag-to-parent-preparation/node-drag-to-parent-preparation.request.mjs +6 -0
  369. package/esm2022/f-draggable/node/node-drag-to-parent-preparation/node-drag-to-parent-preparation.validator.mjs +24 -0
  370. package/esm2022/f-draggable/node/node-drag-to-parent-preparation/providers.mjs +7 -0
  371. package/esm2022/f-draggable/node/node-drag-to-parent.drag-handler.mjs +48 -0
  372. package/esm2022/f-draggable/node/node-move-finalize/node-move-finalize.execution.mjs +11 -5
  373. package/esm2022/f-draggable/node/node-move-preparation/node-move-preparation.execution.mjs +4 -3
  374. package/esm2022/f-draggable/node/node-move-preparation/node-move-preparation.validator.mjs +2 -2
  375. package/esm2022/f-draggable/node/node-resize-by-child.drag-handler.mjs +5 -3
  376. package/esm2022/f-draggable/node/node.drag-handler.mjs +3 -3
  377. package/esm2022/f-draggable/node/providers.mjs +5 -1
  378. package/esm2022/f-draggable/node-resize/node-resize-finalize/node-resize-finalize.execution.mjs +2 -2
  379. package/esm2022/f-draggable/node-resize/node-resize-preparation/node-resize-preparation.execution.mjs +3 -2
  380. package/esm2022/f-draggable/node-resize/node-resize-preparation/node-resize-preparation.validator.mjs +3 -2
  381. package/esm2022/f-draggable/node-resize/node-resize.drag-handler.mjs +4 -4
  382. package/esm2022/f-draggable/providers.mjs +2 -2
  383. package/esm2022/f-draggable/single-select/single-select.execution.mjs +5 -2
  384. package/esm2022/f-external-item/domain/external-item-finalize/external-item-finalize.execution.mjs +2 -2
  385. package/esm2022/f-external-item/domain/external-item-preparation/external-item-preparation.validator.mjs +1 -1
  386. package/esm2022/f-external-item/domain/external-item.drag-handler.mjs +4 -4
  387. package/esm2022/f-external-item/domain/index.mjs +2 -1
  388. package/esm2022/f-external-item/domain/prevent-default-is-external-item/index.mjs +3 -0
  389. package/esm2022/f-external-item/domain/prevent-default-is-external-item/prevent-default-is-external-item.execution.mjs +36 -0
  390. package/esm2022/f-external-item/domain/prevent-default-is-external-item/prevent-default-is-external-item.request.mjs +6 -0
  391. package/esm2022/f-external-item/domain/providers.mjs +3 -1
  392. package/esm2022/f-flow/f-flow-base.mjs +1 -1
  393. package/esm2022/f-flow/f-flow.component.mjs +46 -49
  394. package/esm2022/f-line-alignment/f-line-alignment.component.mjs +21 -22
  395. package/esm2022/f-minimap/domain/f-minimap.drag-handler.mjs +4 -4
  396. package/esm2022/f-minimap/domain/index.mjs +4 -2
  397. package/esm2022/f-minimap/domain/minimap-calculate-svg-scale-and-view-box/i-f-minimap-scale-and-view-box.mjs +2 -0
  398. package/esm2022/f-minimap/domain/minimap-calculate-svg-scale-and-view-box/index.mjs +4 -0
  399. package/esm2022/f-minimap/domain/minimap-calculate-svg-scale-and-view-box/minimap-calculate-svg-scale-and-view-box.execution.mjs +71 -0
  400. package/esm2022/f-minimap/domain/minimap-calculate-svg-scale-and-view-box/minimap-calculate-svg-scale-and-view-box.request.mjs +7 -0
  401. package/esm2022/f-minimap/domain/minimap-calculate-view-box/index.mjs +3 -0
  402. package/esm2022/f-minimap/domain/minimap-calculate-view-box/minimap-calculate-view-box.execution.mjs +39 -0
  403. package/esm2022/f-minimap/domain/minimap-calculate-view-box/minimap-calculate-view-box.request.mjs +3 -0
  404. package/esm2022/f-minimap/domain/minimap-drag-finalize/minimap-drag-finalize.execution.mjs +2 -2
  405. package/esm2022/f-minimap/domain/minimap-draw-nodes/index.mjs +3 -0
  406. package/esm2022/f-minimap/domain/minimap-draw-nodes/minimap-draw-nodes.execution.mjs +60 -0
  407. package/esm2022/f-minimap/domain/minimap-draw-nodes/minimap-draw-nodes.request.mjs +3 -0
  408. package/esm2022/f-minimap/domain/providers.mjs +7 -1
  409. package/esm2022/f-minimap/f-minimap-canvas.directive.mjs +17 -51
  410. package/esm2022/f-minimap/f-minimap-flow.directive.mjs +16 -60
  411. package/esm2022/f-minimap/f-minimap-view.directive.mjs +14 -25
  412. package/esm2022/f-minimap/f-minimap.component.mjs +28 -30
  413. package/esm2022/f-node/domain/index.mjs +1 -2
  414. package/esm2022/f-node/f-drag-handle/f-drag-handle.directive.mjs +8 -8
  415. package/esm2022/f-node/f-group.directive.mjs +18 -42
  416. package/esm2022/f-node/f-node-base.mjs +21 -3
  417. package/esm2022/f-node/f-node.directive.mjs +18 -42
  418. package/esm2022/f-node/f-resize-handle/f-resize-handle.directive.mjs +13 -16
  419. package/esm2022/f-node/index.mjs +1 -2
  420. package/esm2022/f-selection-area/domain/selection-area-finalize/selection-area-finalize.execution.mjs +2 -2
  421. package/esm2022/f-selection-area/domain/selection-area.drag-handle.mjs +6 -6
  422. package/esm2022/f-selection-area/f-selection-area.component.mjs +13 -13
  423. package/esm2022/f-storage/f-components-store.mjs +15 -20
  424. package/esm2022/f-storage/features/listen-components-data-changed/index.mjs +3 -0
  425. package/esm2022/f-storage/features/listen-components-data-changed/listen-data-changes-request.mjs +3 -0
  426. package/esm2022/f-storage/features/listen-components-data-changed/listen-data-changes.execution.mjs +25 -0
  427. package/esm2022/f-storage/features/listen-count-changes/index.mjs +3 -0
  428. package/esm2022/f-storage/features/listen-count-changes/listen-count-changes-request.mjs +3 -0
  429. package/esm2022/f-storage/features/listen-count-changes/listen-count-changes.execution.mjs +25 -0
  430. package/esm2022/f-storage/features/listen-transform-changes/index.mjs +3 -0
  431. package/esm2022/f-storage/features/listen-transform-changes/listen-transform-changes.execution.mjs +24 -0
  432. package/esm2022/f-storage/features/listen-transform-changes/listen-transform-changes.request.mjs +3 -0
  433. package/esm2022/f-storage/features/notify-data-changed/index.mjs +3 -0
  434. package/esm2022/f-storage/features/notify-data-changed/notify-data-changed-request.mjs +3 -0
  435. package/esm2022/f-storage/features/notify-data-changed/notify-data-changed.execution.mjs +23 -0
  436. package/esm2022/f-storage/features/notify-transform-changed/index.mjs +3 -0
  437. package/esm2022/f-storage/features/notify-transform-changed/notify-transform-changed.execution.mjs +23 -0
  438. package/esm2022/f-storage/features/notify-transform-changed/notify-transform-changed.request.mjs +3 -0
  439. package/esm2022/f-storage/index.mjs +7 -2
  440. package/esm2022/f-storage/providers.mjs +15 -0
  441. package/esm2022/f-zoom/f-zoom-base.mjs +51 -45
  442. package/esm2022/f-zoom/f-zoom.directive.mjs +11 -12
  443. package/esm2022/public-api.mjs +2 -2
  444. package/esm2022/reactivity/debounce-time.mjs +10 -0
  445. package/esm2022/reactivity/f-channel-hub.mjs +23 -0
  446. package/esm2022/reactivity/f-channel.mjs +16 -0
  447. package/esm2022/reactivity/f-resize-channel.mjs +28 -0
  448. package/esm2022/reactivity/index.mjs +7 -0
  449. package/esm2022/reactivity/notify-on-start.mjs +7 -0
  450. package/esm2022/reactivity/types.mjs +2 -0
  451. package/f-backgroud/f-background-base.d.ts +0 -1
  452. package/f-backgroud/f-background.component.d.ts +3 -8
  453. package/f-backgroud/f-circle-pattern/f-circle-pattern.component.d.ts +16 -17
  454. package/f-backgroud/f-rect-pattern/f-rect-pattern.component.d.ts +17 -20
  455. package/f-canvas/f-canvas-base.d.ts +0 -2
  456. package/f-canvas/f-canvas.component.d.ts +5 -11
  457. package/f-connection/common/f-connection-base.d.ts +3 -5
  458. package/f-connection/common/f-drag-handle/f-connection-drag-handle.component.d.ts +1 -1
  459. package/f-connection/common/i-has-connection-text.d.ts +1 -0
  460. package/f-connection/f-connection/f-connection.component.d.ts +17 -35
  461. package/f-connection/f-connection-builder/i-f-connection-factory-request.d.ts +1 -1
  462. package/f-connection/f-connection-for-create/f-connection-for-create.component.d.ts +13 -23
  463. package/f-connection/f-marker/f-marker.directive.d.ts +2 -3
  464. package/f-connection/f-snap-connection/f-snap-connection.component.d.ts +13 -23
  465. package/f-connection/providers.d.ts +1 -1
  466. package/f-connectors/f-connector-base.d.ts +7 -8
  467. package/f-connectors/f-node-input/f-node-input-base.d.ts +0 -1
  468. package/f-connectors/f-node-input/f-node-input.directive.d.ts +14 -16
  469. package/f-connectors/f-node-outlet/f-node-outlet-base.d.ts +0 -1
  470. package/f-connectors/f-node-outlet/f-node-outlet.directive.d.ts +9 -11
  471. package/f-connectors/f-node-output/f-node-output-base.d.ts +0 -1
  472. package/f-connectors/f-node-output/f-node-output.directive.d.ts +14 -16
  473. package/f-draggable/canvas/canvas.drag-handler.d.ts +3 -3
  474. package/f-draggable/connections/create-connection/create-connection.drag-handler.d.ts +3 -3
  475. package/f-draggable/connections/reassign-connection/reassign-connection.drag-handler.d.ts +3 -3
  476. package/f-draggable/domain/i-node-with-rect.d.ts +6 -0
  477. package/f-draggable/domain/index.d.ts +1 -0
  478. package/f-draggable/f-draggable-base.d.ts +2 -0
  479. package/f-draggable/f-draggable.directive.d.ts +9 -16
  480. package/f-draggable/i-draggable-item.d.ts +3 -3
  481. package/f-draggable/index.d.ts +1 -0
  482. package/f-draggable/node/connection-base-drag-handler.d.ts +2 -2
  483. package/f-draggable/node/connection-source.drag-handler.d.ts +1 -1
  484. package/f-draggable/node/connection-target.drag-handler.d.ts +1 -1
  485. package/f-draggable/node/connection.drag-handler.d.ts +1 -1
  486. package/f-draggable/node/create-move-nodes-drag-model-from-selection/create-move-nodes-drag-model-from-selection.execution.d.ts +1 -0
  487. package/f-draggable/node/f-drop-to-group.event.d.ts +7 -0
  488. package/f-draggable/node/index.d.ts +4 -0
  489. package/f-draggable/node/node-drag-to-parent-finalize/index.d.ts +4 -0
  490. package/f-draggable/node/node-drag-to-parent-finalize/node-drag-to-parent-finalize.execution.d.ts +17 -0
  491. package/f-draggable/node/node-drag-to-parent-finalize/node-drag-to-parent-finalize.request.d.ts +5 -0
  492. package/f-draggable/node/node-drag-to-parent-finalize/node-drag-to-parent-finalize.validator.d.ts +11 -0
  493. package/f-draggable/node/node-drag-to-parent-finalize/providers.d.ts +3 -0
  494. package/f-draggable/node/node-drag-to-parent-preparation/index.d.ts +4 -0
  495. package/f-draggable/node/node-drag-to-parent-preparation/node-drag-to-parent-preparation.execution.d.ts +20 -0
  496. package/f-draggable/node/node-drag-to-parent-preparation/node-drag-to-parent-preparation.request.d.ts +5 -0
  497. package/f-draggable/node/node-drag-to-parent-preparation/node-drag-to-parent-preparation.validator.d.ts +11 -0
  498. package/f-draggable/node/node-drag-to-parent-preparation/providers.d.ts +3 -0
  499. package/f-draggable/node/node-drag-to-parent.drag-handler.d.ts +21 -0
  500. package/f-draggable/node/node-move-finalize/node-move-finalize.execution.d.ts +1 -0
  501. package/f-draggable/node/node-resize-by-child.drag-handler.d.ts +3 -2
  502. package/f-draggable/node/node.drag-handler.d.ts +2 -2
  503. package/f-draggable/node/providers.d.ts +1 -1
  504. package/f-draggable/node-resize/node-resize.drag-handler.d.ts +3 -3
  505. package/f-draggable/providers.d.ts +1 -1
  506. package/f-draggable/single-select/single-select.execution.d.ts +1 -0
  507. package/f-external-item/domain/external-item.drag-handler.d.ts +3 -3
  508. package/f-external-item/domain/index.d.ts +1 -0
  509. package/f-external-item/domain/prevent-default-is-external-item/index.d.ts +2 -0
  510. package/f-external-item/domain/prevent-default-is-external-item/prevent-default-is-external-item.execution.d.ts +10 -0
  511. package/f-external-item/domain/prevent-default-is-external-item/prevent-default-is-external-item.request.d.ts +4 -0
  512. package/f-external-item/domain/providers.d.ts +2 -1
  513. package/f-flow/f-flow-base.d.ts +1 -1
  514. package/f-flow/f-flow.component.d.ts +11 -13
  515. package/f-line-alignment/f-line-alignment.component.d.ts +8 -10
  516. package/f-minimap/domain/f-minimap.drag-handler.d.ts +3 -3
  517. package/f-minimap/domain/index.d.ts +3 -1
  518. package/f-minimap/domain/minimap-calculate-svg-scale-and-view-box/i-f-minimap-scale-and-view-box.d.ts +5 -0
  519. package/f-minimap/domain/minimap-calculate-svg-scale-and-view-box/index.d.ts +3 -0
  520. package/f-minimap/domain/minimap-calculate-svg-scale-and-view-box/minimap-calculate-svg-scale-and-view-box.execution.d.ts +22 -0
  521. package/f-minimap/domain/minimap-calculate-svg-scale-and-view-box/minimap-calculate-svg-scale-and-view-box.request.d.ts +5 -0
  522. package/f-minimap/domain/minimap-calculate-view-box/index.d.ts +2 -0
  523. package/f-minimap/domain/minimap-calculate-view-box/minimap-calculate-view-box.execution.d.ts +14 -0
  524. package/f-minimap/domain/minimap-calculate-view-box/minimap-calculate-view-box.request.d.ts +2 -0
  525. package/f-minimap/domain/minimap-draw-nodes/index.d.ts +2 -0
  526. package/f-minimap/domain/minimap-draw-nodes/minimap-draw-nodes.execution.d.ts +18 -0
  527. package/f-minimap/domain/minimap-draw-nodes/minimap-draw-nodes.request.d.ts +2 -0
  528. package/f-minimap/domain/providers.d.ts +4 -1
  529. package/f-minimap/f-minimap-canvas.directive.d.ts +3 -15
  530. package/f-minimap/f-minimap-flow.directive.d.ts +4 -20
  531. package/f-minimap/f-minimap-view.directive.d.ts +4 -9
  532. package/f-minimap/f-minimap.component.d.ts +7 -10
  533. package/f-node/domain/index.d.ts +0 -1
  534. package/f-node/f-drag-handle/f-drag-handle.directive.d.ts +2 -3
  535. package/f-node/f-group.directive.d.ts +4 -11
  536. package/f-node/f-node-base.d.ts +8 -7
  537. package/f-node/f-node.directive.d.ts +4 -11
  538. package/f-node/f-resize-handle/f-resize-handle.directive.d.ts +4 -6
  539. package/f-node/index.d.ts +0 -1
  540. package/f-selection-area/domain/selection-area.drag-handle.d.ts +3 -3
  541. package/f-selection-area/f-selection-area.component.d.ts +3 -5
  542. package/f-storage/f-components-store.d.ts +7 -9
  543. package/f-storage/features/listen-components-data-changed/index.d.ts +2 -0
  544. package/f-storage/features/listen-components-data-changed/listen-data-changes-request.d.ts +2 -0
  545. package/f-storage/features/listen-components-data-changed/listen-data-changes.execution.d.ts +10 -0
  546. package/f-storage/features/listen-count-changes/index.d.ts +2 -0
  547. package/f-storage/features/listen-count-changes/listen-count-changes-request.d.ts +2 -0
  548. package/f-storage/features/listen-count-changes/listen-count-changes.execution.d.ts +10 -0
  549. package/f-storage/features/listen-transform-changes/index.d.ts +2 -0
  550. package/f-storage/features/listen-transform-changes/listen-transform-changes.execution.d.ts +10 -0
  551. package/f-storage/features/listen-transform-changes/listen-transform-changes.request.d.ts +2 -0
  552. package/f-storage/features/notify-data-changed/index.d.ts +2 -0
  553. package/f-storage/features/notify-data-changed/notify-data-changed-request.d.ts +2 -0
  554. package/f-storage/features/notify-data-changed/notify-data-changed.execution.d.ts +9 -0
  555. package/f-storage/features/notify-transform-changed/index.d.ts +2 -0
  556. package/f-storage/features/notify-transform-changed/notify-transform-changed.execution.d.ts +9 -0
  557. package/f-storage/features/notify-transform-changed/notify-transform-changed.request.d.ts +2 -0
  558. package/f-storage/index.d.ts +6 -1
  559. package/f-storage/providers.d.ts +7 -0
  560. package/f-zoom/f-zoom-base.d.ts +10 -11
  561. package/f-zoom/f-zoom.directive.d.ts +0 -2
  562. package/fesm2022/foblex-flow.mjs +5877 -4748
  563. package/fesm2022/foblex-flow.mjs.map +1 -1
  564. package/package.json +5 -6
  565. package/public-api.d.ts +1 -1
  566. package/reactivity/debounce-time.d.ts +2 -0
  567. package/reactivity/f-channel-hub.d.ts +10 -0
  568. package/reactivity/f-channel.d.ts +7 -0
  569. package/reactivity/f-resize-channel.d.ts +11 -0
  570. package/reactivity/index.d.ts +6 -0
  571. package/reactivity/notify-on-start.d.ts +2 -0
  572. package/reactivity/types.d.ts +2 -0
  573. package/domain/constants.d.ts +0 -1
  574. package/domain/emit-transform-changes/emit-transform-changes.execution.d.ts +0 -11
  575. package/domain/emit-transform-changes/emit-transform-changes.request.d.ts +0 -2
  576. package/domain/emit-transform-changes/index.d.ts +0 -2
  577. package/domain/get-nodes-rect/get-nodes-rect.execution.d.ts +0 -14
  578. package/domain/get-nodes-rect/get-nodes-rect.request.d.ts +0 -2
  579. package/domain/get-nodes-rect/index.d.ts +0 -2
  580. package/domain/show-connections-after-calculations/index.d.ts +0 -2
  581. package/domain/show-connections-after-calculations/show-connections-after-calculations-request.d.ts +0 -2
  582. package/domain/show-connections-after-calculations/show-connections-after-calculations.execution.d.ts +0 -11
  583. package/domain/subscribe-on-transform-changes/index.d.ts +0 -2
  584. package/domain/subscribe-on-transform-changes/subscribe-on-transform-changes.execution.d.ts +0 -13
  585. package/domain/subscribe-on-transform-changes/subscribe-on-transform-changes.request.d.ts +0 -2
  586. package/esm2022/domain/constants.mjs +0 -2
  587. package/esm2022/domain/create-connection-markers/create-connection-markers-request.mjs +0 -6
  588. package/esm2022/domain/create-connection-markers/create-connection-markers.execution.mjs +0 -60
  589. package/esm2022/domain/create-connection-markers/index.mjs +0 -3
  590. package/esm2022/domain/emit-transform-changes/emit-transform-changes.execution.mjs +0 -23
  591. package/esm2022/domain/emit-transform-changes/emit-transform-changes.request.mjs +0 -3
  592. package/esm2022/domain/emit-transform-changes/index.mjs +0 -3
  593. package/esm2022/domain/get-nodes-rect/get-nodes-rect.execution.mjs +0 -30
  594. package/esm2022/domain/get-nodes-rect/get-nodes-rect.request.mjs +0 -3
  595. package/esm2022/domain/get-nodes-rect/index.mjs +0 -3
  596. package/esm2022/domain/redraw-connections/index.mjs +0 -3
  597. package/esm2022/domain/redraw-connections/redraw-connections-request.mjs +0 -3
  598. package/esm2022/domain/redraw-connections/redraw-connections.execution.mjs +0 -62
  599. package/esm2022/domain/show-connections-after-calculations/index.mjs +0 -3
  600. package/esm2022/domain/show-connections-after-calculations/show-connections-after-calculations-request.mjs +0 -3
  601. package/esm2022/domain/show-connections-after-calculations/show-connections-after-calculations.execution.mjs +0 -25
  602. package/esm2022/domain/subscribe-on-transform-changes/index.mjs +0 -3
  603. package/esm2022/domain/subscribe-on-transform-changes/subscribe-on-transform-changes.execution.mjs +0 -25
  604. package/esm2022/domain/subscribe-on-transform-changes/subscribe-on-transform-changes.request.mjs +0 -3
  605. package/esm2022/f-minimap/domain/check-rect-is-finite.mjs +0 -8
  606. package/esm2022/f-node/domain/is-group.mjs +0 -4
  607. package/esm2022/f-node/f-resize-observer.mjs +0 -16
  608. package/esm2022/f-storage/f-transform-store.mjs +0 -14
  609. package/esm2022/i-has-state-changes.mjs +0 -2
  610. package/f-minimap/domain/check-rect-is-finite.d.ts +0 -2
  611. package/f-node/domain/is-group.d.ts +0 -1
  612. package/f-node/f-resize-observer.d.ts +0 -4
  613. package/f-storage/f-transform-store.d.ts +0 -7
  614. package/i-has-state-changes.d.ts +0 -4
  615. /package/domain/{create-connection-markers → f-connection/create-connection-markers}/index.d.ts +0 -0
  616. /package/domain/{redraw-connections → f-connection/redraw-connections}/index.d.ts +0 -0
  617. /package/domain/{redraw-connections → f-connection/redraw-connections}/redraw-connections-request.d.ts +0 -0
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1ncm91cC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2Ytbm9kZS9mLWdyb3VwLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXRELE9BQU8sRUFDTCx3Q0FBd0MsRUFDeEMsd0NBQXdDLEVBRXpDLE1BQU0saUJBQWlCLENBQUM7QUFFekIsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7OztBQUl4RCxJQUFJLFFBQVEsR0FBVyxDQUFDLENBQUM7QUFlekIsTUFBTSxPQUFPLGVBQWdCLFNBQVEsU0FBUztJQVc1QyxJQUNvQixRQUFRLENBQUMsS0FBYTtRQUN4QyxJQUFJLENBQUMsU0FBUyxHQUFHLGVBQWUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFDRCxJQUFvQixRQUFRO1FBQzFCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBSUQsSUFDb0IsSUFBSSxDQUFDLEtBQVk7UUFDbkMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFDRCxJQUFvQixJQUFJO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLEtBQU0sQ0FBQztJQUNyQixDQUFDO0lBa0JELFlBQ0UsZ0JBQXlDLEVBQ2pDLFFBQW1CLEVBQ25CLGdCQUFrQyxFQUNsQyxTQUFvQixFQUNwQixRQUF3QjtRQUVoQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFMOUIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDcEIsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFqRDFCLG1CQUFjLEdBQWlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFHMUMsUUFBRyxHQUFXLFdBQVksUUFBUSxFQUFHLEVBQUUsQ0FBQztRQUd4QyxjQUFTLEdBQThCLElBQUksQ0FBQztRQVc1QyxtQkFBYyxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBV2xFLGVBQVUsR0FBd0IsSUFBSSxZQUFZLEVBQVMsQ0FBQztRQUc1RCxzQkFBaUIsR0FBWSxLQUFLLENBQUM7UUFHbkMsdUJBQWtCLEdBQVksS0FBSyxDQUFDO1FBR3BDLG9CQUFlLEdBQVksSUFBSSxDQUFDO1FBR2hDLG1CQUFjLEdBQVksSUFBSSxDQUFDO1FBRS9CLGVBQVUsR0FBcUIsRUFBRSxDQUFDO0lBVWxELENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzFCLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRWtCLFFBQVEsQ0FBQyxTQUFpQixFQUFFLEtBQWE7UUFDMUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVlLE1BQU07UUFDcEIsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSwyQkFBMkIsRUFBRSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVNLGVBQWU7UUFDcEIsSUFBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDN0IsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQ3JCLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUNoQyxDQUFDO0lBQ0osQ0FBQztJQUVPLHdCQUF3QjtRQUM5QixPQUFPLEtBQUssQ0FBQyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBMEIsQ0FBQyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQ3hGLFlBQVksQ0FBQyxFQUFFLENBQUMsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLENBQ2xDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNmLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBMEIsRUFBRSxFQUFFO2dCQUNyRCxVQUFVLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSx3Q0FBd0MsRUFBRSxDQUFDLE1BQU0sQ0FDakYsSUFBSSx3Q0FBd0MsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUMzRSxDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUMvQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFZSxZQUFZLENBQUMsU0FBeUI7UUFDcEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRWUsZUFBZSxDQUFDLFNBQXlCO1FBQ3ZELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pELElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNsQztRQUNELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVNLE9BQU87UUFDWixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMxRSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDcEMsQ0FBQzsrR0F4SFUsZUFBZTttR0FBZixlQUFlLHFyQkFKZjtZQUNULEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFO1NBQ2xEOzs0RkFFVSxlQUFlO2tCQWIzQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxVQUFVO29CQUNwQixRQUFRLEVBQUUsWUFBWTtvQkFDdEIsSUFBSSxFQUFFO3dCQUNKLHdCQUF3QixFQUFFLEtBQUs7d0JBQy9CLEtBQUssRUFBRSxxQkFBcUI7d0JBQzVCLG1DQUFtQyxFQUFFLG1CQUFtQjt3QkFDeEQsb0NBQW9DLEVBQUUsb0JBQW9CO3FCQUMzRDtvQkFDRCxTQUFTLEVBQUU7d0JBQ1QsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsaUJBQWlCLEVBQUU7cUJBQ2xEO2lCQUNGOzZNQU9pQixHQUFHO3NCQURsQixLQUFLO3VCQUFDLFVBQVU7Z0JBSUQsU0FBUztzQkFEeEIsS0FBSzt1QkFBQyxnQkFBZ0I7Z0JBSUgsUUFBUTtzQkFEM0IsS0FBSzt1QkFBQyxnQkFBZ0I7Z0JBU1AsY0FBYztzQkFEN0IsTUFBTTt1QkFBQyxzQkFBc0I7Z0JBSVYsSUFBSTtzQkFEdkIsS0FBSzt1QkFBQyxZQUFZO2dCQVNILFVBQVU7c0JBRHpCLE1BQU07dUJBQUMsa0JBQWtCO2dCQUlWLGlCQUFpQjtzQkFEaEMsS0FBSzt1QkFBQyx3QkFBd0I7Z0JBSWYsa0JBQWtCO3NCQURqQyxLQUFLO3VCQUFDLHlCQUF5QjtnQkFJaEIsZUFBZTtzQkFEOUIsS0FBSztnQkFJVSxjQUFjO3NCQUQ3QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBSZW5kZXJlcjIsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBJUG9pbnQsIElSZWN0LCBJU2l6ZSwgUG9pbnRFeHRlbnNpb25zIH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQgeyBGX05PREUsIEZOb2RlQmFzZSB9IGZyb20gJy4vZi1ub2RlLWJhc2UnO1xuaW1wb3J0IHsgbWVyZ2UsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc3RhcnRXaXRoLCBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBGUmVzaXplT2JzZXJ2ZXIgfSBmcm9tICcuL2YtcmVzaXplLW9ic2VydmVyJztcbmltcG9ydCB7IEZDb21wb25lbnRzU3RvcmUgfSBmcm9tICcuLi9mLXN0b3JhZ2UnO1xuaW1wb3J0IHtcbiAgQ2FsY3VsYXRlQ29ubmVjdG9yQ29ubmVjdGFibGVTaWRlSGFuZGxlcixcbiAgQ2FsY3VsYXRlQ29ubmVjdG9yQ29ubmVjdGFibGVTaWRlUmVxdWVzdCxcbiAgRkNvbm5lY3RvckJhc2Vcbn0gZnJvbSAnLi4vZi1jb25uZWN0b3JzJztcbmltcG9ydCB7IEZNZWRpYXRvciB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgRW1pdFRyYW5zZm9ybUNoYW5nZXNSZXF1ZXN0IH0gZnJvbSAnLi4vZG9tYWluJztcbmltcG9ydCB7IEJyb3dzZXJTZXJ2aWNlIH0gZnJvbSAnQGZvYmxleC9wbGF0Zm9ybSc7XG5pbXBvcnQgeyBJSGFzSG9zdEVsZW1lbnQgfSBmcm9tICcuLi9pLWhhcy1ob3N0LWVsZW1lbnQnO1xuXG5sZXQgdW5pcXVlSWQ6IG51bWJlciA9IDA7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogXCJbZkdyb3VwXVwiLFxuICBleHBvcnRBczogXCJmQ29tcG9uZW50XCIsXG4gIGhvc3Q6IHtcbiAgICAnW2F0dHIuZGF0YS1mLWdyb3VwLWlkXSc6ICdmSWQnLFxuICAgIGNsYXNzOiBcImYtZ3JvdXAgZi1jb21wb25lbnRcIixcbiAgICAnW2NsYXNzLmYtZ3JvdXAtZHJhZ2dpbmctZGlzYWJsZWRdJzogJ2ZEcmFnZ2luZ0Rpc2FibGVkJyxcbiAgICAnW2NsYXNzLmYtZ3JvdXAtc2VsZWN0aW9uLWRpc2FibGVkXSc6ICdmU2VsZWN0aW9uRGlzYWJsZWQnLFxuICB9LFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IEZfTk9ERSwgdXNlRXhpc3Rpbmc6IEZHcm91cERpcmVjdGl2ZSB9XG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZHcm91cERpcmVjdGl2ZSBleHRlbmRzIEZOb2RlQmFzZVxuICBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgSUhhc0hvc3RFbGVtZW50LCBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9ucyQ6IFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBASW5wdXQoJ2ZHcm91cElkJylcbiAgcHVibGljIG92ZXJyaWRlIGZJZDogc3RyaW5nID0gYGYtZ3JvdXAtJHsgdW5pcXVlSWQrKyB9YDtcblxuICBASW5wdXQoJ2ZHcm91cFBhcmVudElkJylcbiAgcHVibGljIG92ZXJyaWRlIGZQYXJlbnRJZDogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCA9IG51bGw7XG5cbiAgQElucHV0KCdmR3JvdXBQb3NpdGlvbicpXG4gIHB1YmxpYyBvdmVycmlkZSBzZXQgcG9zaXRpb24odmFsdWU6IElQb2ludCkge1xuICAgIHRoaXMuX3Bvc2l0aW9uID0gUG9pbnRFeHRlbnNpb25zLmNhc3RUb1BvaW50KHZhbHVlKTtcbiAgICB0aGlzLnJlZnJlc2goKTtcbiAgfVxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IHBvc2l0aW9uKCk6IElQb2ludCB7XG4gICAgcmV0dXJuIHRoaXMuX3Bvc2l0aW9uO1xuICB9XG4gIEBPdXRwdXQoJ2ZHcm91cFBvc2l0aW9uQ2hhbmdlJylcbiAgcHVibGljIG92ZXJyaWRlIHBvc2l0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SVBvaW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8SVBvaW50PigpO1xuXG4gIEBJbnB1dCgnZkdyb3VwU2l6ZScpXG4gIHB1YmxpYyBvdmVycmlkZSBzZXQgc2l6ZSh2YWx1ZTogSVNpemUpIHtcbiAgICB0aGlzLl9zaXplID0gdmFsdWU7XG4gICAgdGhpcy5yZWZyZXNoKCk7XG4gIH1cbiAgcHVibGljIG92ZXJyaWRlIGdldCBzaXplKCk6IElTaXplIHtcbiAgICByZXR1cm4gdGhpcy5fc2l6ZSE7XG4gIH1cbiAgQE91dHB1dCgnZkdyb3VwU2l6ZUNoYW5nZScpXG4gIHB1YmxpYyBvdmVycmlkZSBzaXplQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SVJlY3Q+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);
@@ -31,5 +32,22 @@ export class FNodeBase extends MIXIN_BASE {
31
32
  updateSize(value) {
32
33
  this._size = value;
33
34
  }
35
+ setClass(className) {
36
+ this.hostElement.classList.add(className);
37
+ }
38
+ removeClass(className) {
39
+ this.hostElement.classList.remove(className);
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
+ }
34
52
  }
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1ub2RlLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2Ytbm9kZS9mLW5vZGUtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBd0IsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBSW5FLE9BQU8sRUFBdUIsb0JBQW9CLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFdEUsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLElBQUksY0FBYyxDQUFZLFFBQVEsQ0FBQyxDQUFDO0FBRTlELE1BQU0sVUFBVSxHQUFHLG9CQUFvQixDQUNuQztJQUNFLFlBQ1MsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7SUFFakMsQ0FBQztDQUNGLENBQUMsQ0FBQztBQUVQLE1BQU0sT0FBZ0IsU0FBVSxTQUFRLFVBQVU7SUFBbEQ7O1FBTWtCLGlCQUFZLEdBQWtCLElBQUksT0FBTyxFQUFRLENBQUM7UUFPeEQsY0FBUyxHQUFXLGVBQWUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQWdCcEQseUJBQW9CLEdBQVksSUFBSSxDQUFDO0lBa0M5QyxDQUFDO0lBcEJRLFVBQVUsQ0FBQyxPQUFpQztRQUNqRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFTSxNQUFNO1FBQ1gsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQ3BELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsQ0FBQztTQUN2RDtRQUVELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLGFBQWMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFFLE1BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFFTSxjQUFjLENBQUMsUUFBZ0I7UUFDcEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7SUFDNUIsQ0FBQztJQUVNLFVBQVUsQ0FBQyxLQUFZO1FBQzVCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IElQb2ludCwgSVJlY3QsIElTaXplLCBQb2ludEV4dGVuc2lvbnMgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IElIYXNTdGF0ZUNoYW5nZXMgfSBmcm9tICcuLi9pLWhhcy1zdGF0ZS1jaGFuZ2VzJztcbmltcG9ydCB7IEZDb25uZWN0b3JCYXNlIH0gZnJvbSAnLi4vZi1jb25uZWN0b3JzJztcbmltcG9ydCB7IElIYXNIb3N0RWxlbWVudCB9IGZyb20gJy4uL2ktaGFzLWhvc3QtZWxlbWVudCc7XG5pbXBvcnQgeyBJQ2FuQ2hhbmdlU2VsZWN0aW9uLCBtaXhpbkNoYW5nZVNlbGVjdGlvbiB9IGZyb20gJy4uL21peGlucyc7XG5cbmV4cG9ydCBjb25zdCBGX05PREUgPSBuZXcgSW5qZWN0aW9uVG9rZW48Rk5vZGVCYXNlPignRl9OT0RFJyk7XG5cbmNvbnN0IE1JWElOX0JBU0UgPSBtaXhpbkNoYW5nZVNlbGVjdGlvbihcbiAgICBjbGFzcyB7XG4gICAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGhvc3RFbGVtZW50OiBIVE1MRWxlbWVudFxuICAgICAgKSB7XG4gICAgICB9XG4gICAgfSk7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBGTm9kZUJhc2UgZXh0ZW5kcyBNSVhJTl9CQVNFIGltcGxlbWVudHMgSUhhc1N0YXRlQ2hhbmdlcywgSUNhbkNoYW5nZVNlbGVjdGlvbiwgSUhhc0hvc3RFbGVtZW50IHtcblxuICBwdWJsaWMgYWJzdHJhY3Qgb3ZlcnJpZGUgZklkOiBzdHJpbmc7XG5cbiAgcHVibGljIGFic3RyYWN0IGZQYXJlbnRJZDogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgcmVhZG9ubHkgc3RhdGVDaGFuZ2VzOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuXG4gIHB1YmxpYyBhYnN0cmFjdCBwb3NpdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPElQb2ludD47XG5cbiAgcHVibGljIGFic3RyYWN0IHBvc2l0aW9uOiBJUG9pbnQ7XG5cbiAgcHJvdGVjdGVkIF9wb3NpdGlvbjogSVBvaW50ID0gUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoKTtcblxuXG4gIHB1YmxpYyBhYnN0cmFjdCBzaXplQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SVJlY3Q+O1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBzaXplOiBJU2l6ZTtcblxuICBwcm90ZWN0ZWQgX3NpemU6IElTaXplIHwgdW5kZWZpbmVkO1xuXG5cbiAgcHVibGljIGFic3RyYWN0IGZEcmFnZ2luZ0Rpc2FibGVkOiBib29sZWFuO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBvdmVycmlkZSBmU2VsZWN0aW9uRGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgcHVibGljIGFic3RyYWN0IGZDb25uZWN0T25Ob2RlOiBib29sZWFuO1xuXG4gIHB1YmxpYyBmQ2FuQmVSZXNpemVkQnlDaGlsZDogYm9vbGVhbiA9IHRydWU7XG5cbiAgcHVibGljIGFic3RyYWN0IGZJbmNsdWRlUGFkZGluZzogYm9vbGVhbjtcblxuICBwdWJsaWMgYWJzdHJhY3QgcmVmcmVzaCgpOiB2b2lkO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBjb25uZWN0b3JzOiBGQ29ubmVjdG9yQmFzZVtdO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBhZGRDb25uZWN0b3IoY29ubmVjdG9yOiBGQ29ubmVjdG9yQmFzZSk6IHZvaWQ7XG5cbiAgcHVibGljIGFic3RyYWN0IHJlbW92ZUNvbm5lY3Rvcihjb25uZWN0b3I6IEZDb25uZWN0b3JCYXNlKTogdm9pZDtcblxuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgc2V0U3R5bGUobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZDtcblxuICBwdWJsaWMgaXNDb250YWlucyhlbGVtZW50OiBIVE1MRWxlbWVudCB8IFNWR0VsZW1lbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5ob3N0RWxlbWVudC5jb250YWlucyhlbGVtZW50KTtcbiAgfVxuXG4gIHB1YmxpYyByZWRyYXcoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2l6ZSkge1xuICAgICAgdGhpcy5zZXRTdHlsZSgnd2lkdGgnLCAnJyArIHRoaXMuc2l6ZS53aWR0aCArICdweCcpO1xuICAgICAgdGhpcy5zZXRTdHlsZSgnaGVpZ2h0JywgJycgKyB0aGlzLnNpemUuaGVpZ2h0ICsgJ3B4Jyk7XG4gICAgfVxuXG4gICAgdGhpcy5zZXRTdHlsZSgndHJhbnNmb3JtJywgYHRyYW5zbGF0ZSgkeyB0aGlzLnBvc2l0aW9uLnggfXB4LCR7IHRoaXMucG9zaXRpb24ueSB9cHgpYCk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlUG9zaXRpb24ocG9zaXRpb246IElQb2ludCk6IHZvaWQge1xuICAgIHRoaXMuX3Bvc2l0aW9uID0gcG9zaXRpb247XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlU2l6ZSh2YWx1ZTogSVNpemUpOiB2b2lkIHtcbiAgICB0aGlzLl9zaXplID0gdmFsdWU7XG4gIH1cbn1cbiJdfQ==
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1ub2RlLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2Ytbm9kZS9mLW5vZGUtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQXdCLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUtuRSxPQUFPLEVBQXVCLG9CQUFvQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLElBQUksY0FBYyxDQUFZLFFBQVEsQ0FBQyxDQUFDO0FBRTlELE1BQU0sVUFBVSxHQUFHLG9CQUFvQixDQUNuQztJQUNFLFlBQ1MsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7SUFFakMsQ0FBQztDQUNGLENBQUMsQ0FBQztBQUVQLE1BQU0sT0FBZ0IsU0FBVSxTQUFRLFVBQVU7SUFBbEQ7O1FBTWtCLGlCQUFZLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQU9wQyxjQUFTLEdBQVcsZUFBZSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBZ0JwRCx5QkFBb0IsR0FBWSxJQUFJLENBQUM7UUFNckMsZUFBVSxHQUFxQixFQUFFLENBQUM7SUE2QzNDLENBQUM7SUF6Q1EsVUFBVSxDQUFDLE9BQWlDO1FBQ2pELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVNLE1BQU07UUFDWCxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDYixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDcEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDO1NBQ3ZEO1FBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsYUFBYyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUUsTUFBTyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUUsS0FBSyxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUVNLGNBQWMsQ0FBQyxRQUFnQjtRQUNwQyxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztJQUM1QixDQUFDO0lBRU0sVUFBVSxDQUFDLEtBQVk7UUFDNUIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVNLFFBQVEsQ0FBQyxTQUFpQjtRQUMvQixJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVNLFdBQVcsQ0FBQyxTQUFpQjtRQUNsQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVNLFlBQVksQ0FBQyxTQUF5QjtRQUMzQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVNLGVBQWUsQ0FBQyxTQUF5QjtRQUM5QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNqRCxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsRUFBRTtZQUNoQixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDbEM7UUFDRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSVBvaW50LCBJUmVjdCwgSVNpemUsIFBvaW50RXh0ZW5zaW9ucyB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHtcbiAgRkNvbm5lY3RvckJhc2Vcbn0gZnJvbSAnLi4vZi1jb25uZWN0b3JzJztcbmltcG9ydCB7IElIYXNIb3N0RWxlbWVudCB9IGZyb20gJy4uL2ktaGFzLWhvc3QtZWxlbWVudCc7XG5pbXBvcnQgeyBJQ2FuQ2hhbmdlU2VsZWN0aW9uLCBtaXhpbkNoYW5nZVNlbGVjdGlvbiB9IGZyb20gJy4uL21peGlucyc7XG5pbXBvcnQgeyBGQ2hhbm5lbCB9IGZyb20gJy4uL3JlYWN0aXZpdHknO1xuXG5leHBvcnQgY29uc3QgRl9OT0RFID0gbmV3IEluamVjdGlvblRva2VuPEZOb2RlQmFzZT4oJ0ZfTk9ERScpO1xuXG5jb25zdCBNSVhJTl9CQVNFID0gbWl4aW5DaGFuZ2VTZWxlY3Rpb24oXG4gICAgY2xhc3Mge1xuICAgICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBob3N0RWxlbWVudDogSFRNTEVsZW1lbnRcbiAgICAgICkge1xuICAgICAgfVxuICAgIH0pO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRk5vZGVCYXNlIGV4dGVuZHMgTUlYSU5fQkFTRSBpbXBsZW1lbnRzIElDYW5DaGFuZ2VTZWxlY3Rpb24sIElIYXNIb3N0RWxlbWVudCB7XG5cbiAgcHVibGljIGFic3RyYWN0IG92ZXJyaWRlIGZJZDogc3RyaW5nO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmUGFyZW50SWQ6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIHJlYWRvbmx5IHN0YXRlQ2hhbmdlcyA9IG5ldyBGQ2hhbm5lbCgpO1xuXG5cbiAgcHVibGljIGFic3RyYWN0IHBvc2l0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SVBvaW50PjtcblxuICBwdWJsaWMgYWJzdHJhY3QgcG9zaXRpb246IElQb2ludDtcblxuICBwcm90ZWN0ZWQgX3Bvc2l0aW9uOiBJUG9pbnQgPSBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgpO1xuXG5cbiAgcHVibGljIGFic3RyYWN0IHNpemVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJUmVjdD47XG5cbiAgcHVibGljIGFic3RyYWN0IHNpemU6IElTaXplO1xuXG4gIHByb3RlY3RlZCBfc2l6ZTogSVNpemUgfCB1bmRlZmluZWQ7XG5cblxuICBwdWJsaWMgYWJzdHJhY3QgZkRyYWdnaW5nRGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgcHVibGljIGFic3RyYWN0IG92ZXJyaWRlIGZTZWxlY3Rpb25EaXNhYmxlZDogYm9vbGVhbjtcblxuICBwdWJsaWMgYWJzdHJhY3QgZkNvbm5lY3RPbk5vZGU6IGJvb2xlYW47XG5cbiAgcHVibGljIGZDYW5CZVJlc2l6ZWRCeUNoaWxkOiBib29sZWFuID0gdHJ1ZTtcblxuICBwdWJsaWMgYWJzdHJhY3QgZkluY2x1ZGVQYWRkaW5nOiBib29sZWFuO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCByZWZyZXNoKCk6IHZvaWQ7XG5cbiAgcHVibGljIGNvbm5lY3RvcnM6IEZDb25uZWN0b3JCYXNlW10gPSBbXTtcblxuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgc2V0U3R5bGUobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZDtcblxuICBwdWJsaWMgaXNDb250YWlucyhlbGVtZW50OiBIVE1MRWxlbWVudCB8IFNWR0VsZW1lbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5ob3N0RWxlbWVudC5jb250YWlucyhlbGVtZW50KTtcbiAgfVxuXG4gIHB1YmxpYyByZWRyYXcoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2l6ZSkge1xuICAgICAgdGhpcy5zZXRTdHlsZSgnd2lkdGgnLCAnJyArIHRoaXMuc2l6ZS53aWR0aCArICdweCcpO1xuICAgICAgdGhpcy5zZXRTdHlsZSgnaGVpZ2h0JywgJycgKyB0aGlzLnNpemUuaGVpZ2h0ICsgJ3B4Jyk7XG4gICAgfVxuXG4gICAgdGhpcy5zZXRTdHlsZSgndHJhbnNmb3JtJywgYHRyYW5zbGF0ZSgkeyB0aGlzLnBvc2l0aW9uLnggfXB4LCR7IHRoaXMucG9zaXRpb24ueSB9cHgpYCk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlUG9zaXRpb24ocG9zaXRpb246IElQb2ludCk6IHZvaWQge1xuICAgIHRoaXMuX3Bvc2l0aW9uID0gcG9zaXRpb247XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlU2l6ZSh2YWx1ZTogSVNpemUpOiB2b2lkIHtcbiAgICB0aGlzLl9zaXplID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgc2V0Q2xhc3MoY2xhc3NOYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmhvc3RFbGVtZW50LmNsYXNzTGlzdC5hZGQoY2xhc3NOYW1lKTtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVDbGFzcyhjbGFzc05hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuaG9zdEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShjbGFzc05hbWUpO1xuICB9XG5cbiAgcHVibGljIGFkZENvbm5lY3Rvcihjb25uZWN0b3I6IEZDb25uZWN0b3JCYXNlKTogdm9pZCB7XG4gICAgdGhpcy5jb25uZWN0b3JzLnB1c2goY29ubmVjdG9yKTtcbiAgICB0aGlzLnJlZnJlc2goKTtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVDb25uZWN0b3IoY29ubmVjdG9yOiBGQ29ubmVjdG9yQmFzZSk6IHZvaWQge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5jb25uZWN0b3JzLmluZGV4T2YoY29ubmVjdG9yKTtcbiAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICB0aGlzLmNvbm5lY3RvcnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB9XG4gICAgdGhpcy5yZWZyZXNoKCk7XG4gIH1cbn1cbiJdfQ==
@@ -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
- import { merge, Subscription } from 'rxjs';
4
- import { startWith, debounceTime } from 'rxjs/operators';
5
- import { FResizeObserver } from './f-resize-observer';
6
- import { CalculateConnectorConnectableSideHandler, CalculateConnectorConnectableSideRequest } from '../f-connectors';
7
- import { EmitTransformChangesRequest } from '../domain';
3
+ import { NotifyTransformChangedRequest } from '../f-storage';
4
+ import { FMediator } from '@foblex/mediator';
8
5
  import { F_NODE, FNodeBase } from './f-node-base';
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 FNodeDirective extends FNodeBase {
15
11
  set position(value) {
@@ -26,13 +22,10 @@ export class FNodeDirective 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-node-${uniqueId++}`;
37
30
  this.fParentId = null;
38
31
  this.positionChange = new EventEmitter();
@@ -42,7 +35,8 @@ export class FNodeDirective extends FNodeBase {
42
35
  this.fIncludePadding = true;
43
36
  //TODO: Add ability to connect to first connectable input if node is under pointer
44
37
  this.fConnectOnNode = true;
45
- this.connectors = [];
38
+ this._destroyRef = inject(DestroyRef);
39
+ this._fMediator = inject(FMediator);
46
40
  }
47
41
  ngOnInit() {
48
42
  this.setStyle('position', 'absolute');
@@ -52,49 +46,31 @@ export class FNodeDirective extends FNodeBase {
52
46
  this.setStyle('left', '0');
53
47
  this.setStyle('top', '0');
54
48
  super.redraw();
55
- this.fComponentsStore.addComponent(this.fComponentsStore.fNodes, this);
49
+ this._fMediator.send(new AddNodeToStoreRequest(this));
56
50
  }
57
51
  setStyle(styleName, value) {
58
52
  this.renderer.setStyle(this.hostElement, styleName, value);
59
53
  }
60
54
  redraw() {
61
55
  super.redraw();
62
- this.fMediator.send(new EmitTransformChangesRequest());
56
+ this._fMediator.send(new NotifyTransformChangedRequest());
63
57
  }
64
58
  ngAfterViewInit() {
65
59
  if (!this.fBrowser.isBrowser()) {
66
60
  return;
67
61
  }
68
- this.subscriptions$.add(this.subscribeOnResizeChanges());
62
+ this._listenStateSizeChanges();
69
63
  }
70
- subscribeOnResizeChanges() {
71
- return merge(new FResizeObserver(this.hostElement), this.stateChanges).pipe(debounceTime(10), startWith(null)).subscribe(() => {
72
- this.connectors.forEach((fConnector) => {
73
- fConnector.fConnectableSide = new CalculateConnectorConnectableSideHandler().handle(new CalculateConnectorConnectableSideRequest(fConnector, this.hostElement));
74
- });
75
- this.fComponentsStore.componentDataChanged();
76
- });
77
- }
78
- addConnector(connector) {
79
- this.connectors.push(connector);
80
- this.stateChanges.next();
81
- }
82
- removeConnector(connector) {
83
- const index = this.connectors.indexOf(connector);
84
- if (index !== -1) {
85
- this.connectors.splice(index, 1);
86
- }
87
- this.stateChanges.next();
64
+ _listenStateSizeChanges() {
65
+ this._fMediator.send(new UpdateNodeWhenStateOrSizeChangedRequest(this, this._destroyRef));
88
66
  }
89
67
  refresh() {
90
- this.stateChanges.next();
68
+ this.stateChanges.notify();
91
69
  }
92
70
  ngOnDestroy() {
93
- this.fComponentsStore.removeComponent(this.fComponentsStore.fNodes, this);
94
- this.stateChanges.complete();
95
- this.subscriptions$.unsubscribe();
71
+ this._fMediator.send(new RemoveNodeFromStoreRequest(this));
96
72
  }
97
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FNodeDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.FComponentsStore }, { token: i2.FMediator }, { token: i3.BrowserService }], target: i0.ɵɵFactoryTarget.Directive }); }
73
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FNodeDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.BrowserService }], target: i0.ɵɵFactoryTarget.Directive }); }
98
74
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: FNodeDirective, selector: "[fNode]", inputs: { fId: ["fNodeId", "fId"], fParentId: ["fNodeParentId", "fParentId"], position: ["fNodePosition", "position"], size: ["fNodeSize", "size"], fDraggingDisabled: ["fNodeDraggingDisabled", "fDraggingDisabled"], fSelectionDisabled: ["fNodeSelectionDisabled", "fSelectionDisabled"], fIncludePadding: "fIncludePadding", fConnectOnNode: "fConnectOnNode" }, outputs: { positionChange: "fNodePositionChange", sizeChange: "fNodeSizeChange" }, host: { properties: { "attr.data-f-node-id": "fId", "class.f-node-dragging-disabled": "fDraggingDisabled", "class.f-node-selection-disabled": "fSelectionDisabled" }, classAttribute: "f-node f-component" }, providers: [
99
75
  { provide: F_NODE, useExisting: FNodeDirective }
100
76
  ], exportAs: ["fComponent"], usesInheritance: true, ngImport: i0 }); }
@@ -114,7 +90,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
114
90
  { provide: F_NODE, useExisting: FNodeDirective }
115
91
  ],
116
92
  }]
117
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.FComponentsStore }, { type: i2.FMediator }, { type: i3.BrowserService }]; }, propDecorators: { fId: [{
93
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.BrowserService }]; }, propDecorators: { fId: [{
118
94
  type: Input,
119
95
  args: ['fNodeId']
120
96
  }], fParentId: [{
@@ -143,4 +119,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
143
119
  }], fConnectOnNode: [{
144
120
  type: Input
145
121
  }] } });
146
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1ub2RlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1ub2RlL2Ytbm9kZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVuRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RCxPQUFPLEVBQ0wsd0NBQXdDLEVBQ3hDLHdDQUF3QyxFQUV6QyxNQUFNLGlCQUFpQixDQUFDO0FBRXpCLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN4RCxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFHbEQsSUFBSSxRQUFRLEdBQVcsQ0FBQyxDQUFDO0FBZXpCLE1BQU0sT0FBTyxjQUFlLFNBQVEsU0FBUztJQVUzQyxJQUNvQixRQUFRLENBQUMsS0FBYTtRQUN4QyxJQUFJLENBQUMsU0FBUyxHQUFHLGVBQWUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFRCxJQUFvQixRQUFRO1FBQzFCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBS0QsSUFDb0IsSUFBSSxDQUFDLEtBQVk7UUFDbkMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFRCxJQUFvQixJQUFJO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLEtBQU0sQ0FBQztJQUNyQixDQUFDO0lBb0JELFlBQ0UsZ0JBQXlDLEVBQ2pDLFFBQW1CLEVBQ25CLGdCQUFrQyxFQUNsQyxTQUFvQixFQUNwQixRQUF3QjtRQUVoQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFMOUIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDcEIsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUF0RDFCLG1CQUFjLEdBQWlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFHMUMsUUFBRyxHQUFXLFVBQVcsUUFBUSxFQUFHLEVBQUUsQ0FBQztRQUd2QyxjQUFTLEdBQThCLElBQUksQ0FBQztRQWE1QyxtQkFBYyxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBYWxFLGVBQVUsR0FBd0IsSUFBSSxZQUFZLEVBQVMsQ0FBQztRQUc1RCxzQkFBaUIsR0FBWSxLQUFLLENBQUM7UUFHbkMsdUJBQWtCLEdBQVksS0FBSyxDQUFDO1FBR3BDLG9CQUFlLEdBQVksSUFBSSxDQUFDO1FBRWhELGtGQUFrRjtRQUVsRSxtQkFBYyxHQUFZLElBQUksQ0FBQztRQUUvQixlQUFVLEdBQXFCLEVBQUUsQ0FBQztJQVVsRCxDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxRQUFRLENBQUMsa0JBQWtCLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMxQixLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDZixJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVrQixRQUFRLENBQUMsU0FBaUIsRUFBRSxLQUFhO1FBQzFELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFZSxNQUFNO1FBQ3BCLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksMkJBQTJCLEVBQUUsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFTSxlQUFlO1FBQ3BCLElBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQzdCLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUNyQixJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FDaEMsQ0FBQztJQUNKLENBQUM7SUFFTyx3QkFBd0I7UUFDOUIsT0FBTyxLQUFLLENBQUMsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLFdBQTBCLENBQUMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUN4RixZQUFZLENBQUMsRUFBRSxDQUFDLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUNsQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQTBCLEVBQUUsRUFBRTtnQkFDckQsVUFBVSxDQUFDLGdCQUFnQixHQUFHLElBQUksd0NBQXdDLEVBQUUsQ0FBQyxNQUFNLENBQ2pGLElBQUksd0NBQXdDLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FDM0UsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLGdCQUFnQixDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDL0MsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRWUsWUFBWSxDQUFDLFNBQXlCO1FBQ3BELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVlLGVBQWUsQ0FBQyxTQUF5QjtRQUN2RCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNqRCxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsRUFBRTtZQUNoQixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDbEM7UUFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFTSxPQUFPO1FBQ1osSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDMUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3BDLENBQUM7K0dBNUhVLGNBQWM7bUdBQWQsY0FBYyx3cUJBSmQ7WUFDVCxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRTtTQUNqRDs7NEZBRVUsY0FBYztrQkFiMUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsU0FBUztvQkFDbkIsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLElBQUksRUFBRTt3QkFDSix1QkFBdUIsRUFBRSxLQUFLO3dCQUM5QixLQUFLLEVBQUUsb0JBQW9CO3dCQUMzQixrQ0FBa0MsRUFBRSxtQkFBbUI7d0JBQ3ZELG1DQUFtQyxFQUFFLG9CQUFvQjtxQkFDMUQ7b0JBQ0QsU0FBUyxFQUFFO3dCQUNULEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxXQUFXLGdCQUFnQixFQUFFO3FCQUNqRDtpQkFDRjs2TUFNaUIsR0FBRztzQkFEbEIsS0FBSzt1QkFBQyxTQUFTO2dCQUlBLFNBQVM7c0JBRHhCLEtBQUs7dUJBQUMsZUFBZTtnQkFJRixRQUFRO3NCQUQzQixLQUFLO3VCQUFDLGVBQWU7Z0JBV04sY0FBYztzQkFEN0IsTUFBTTt1QkFBQyxxQkFBcUI7Z0JBSVQsSUFBSTtzQkFEdkIsS0FBSzt1QkFBQyxXQUFXO2dCQVdGLFVBQVU7c0JBRHpCLE1BQU07dUJBQUMsaUJBQWlCO2dCQUlULGlCQUFpQjtzQkFEaEMsS0FBSzt1QkFBQyx1QkFBdUI7Z0JBSWQsa0JBQWtCO3NCQURqQyxLQUFLO3VCQUFDLHdCQUF3QjtnQkFJZixlQUFlO3NCQUQ5QixLQUFLO2dCQUtVLGNBQWM7c0JBRDdCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMixcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IElQb2ludCwgSVJlY3QsIElTaXplLCBQb2ludEV4dGVuc2lvbnMgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IEJyb3dzZXJTZXJ2aWNlIH0gZnJvbSAnQGZvYmxleC9wbGF0Zm9ybSc7XG5pbXBvcnQgeyBtZXJnZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzdGFydFdpdGgsIGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEZSZXNpemVPYnNlcnZlciB9IGZyb20gJy4vZi1yZXNpemUtb2JzZXJ2ZXInO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQge1xuICBDYWxjdWxhdGVDb25uZWN0b3JDb25uZWN0YWJsZVNpZGVIYW5kbGVyLFxuICBDYWxjdWxhdGVDb25uZWN0b3JDb25uZWN0YWJsZVNpZGVSZXF1ZXN0LFxuICBGQ29ubmVjdG9yQmFzZVxufSBmcm9tICcuLi9mLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHsgRk1lZGlhdG9yIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBFbWl0VHJhbnNmb3JtQ2hhbmdlc1JlcXVlc3QgfSBmcm9tICcuLi9kb21haW4nO1xuaW1wb3J0IHsgRl9OT0RFLCBGTm9kZUJhc2UgfSBmcm9tICcuL2Ytbm9kZS1iYXNlJztcbmltcG9ydCB7IElIYXNIb3N0RWxlbWVudCB9IGZyb20gJy4uL2ktaGFzLWhvc3QtZWxlbWVudCc7XG5cbmxldCB1bmlxdWVJZDogbnVtYmVyID0gMDtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiBcIltmTm9kZV1cIixcbiAgZXhwb3J0QXM6IFwiZkNvbXBvbmVudFwiLFxuICBob3N0OiB7XG4gICAgJ1thdHRyLmRhdGEtZi1ub2RlLWlkXSc6ICdmSWQnLFxuICAgIGNsYXNzOiBcImYtbm9kZSBmLWNvbXBvbmVudFwiLFxuICAgICdbY2xhc3MuZi1ub2RlLWRyYWdnaW5nLWRpc2FibGVkXSc6ICdmRHJhZ2dpbmdEaXNhYmxlZCcsXG4gICAgJ1tjbGFzcy5mLW5vZGUtc2VsZWN0aW9uLWRpc2FibGVkXSc6ICdmU2VsZWN0aW9uRGlzYWJsZWQnLFxuICB9LFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IEZfTk9ERSwgdXNlRXhpc3Rpbmc6IEZOb2RlRGlyZWN0aXZlIH1cbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRk5vZGVEaXJlY3RpdmUgZXh0ZW5kcyBGTm9kZUJhc2UgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIElIYXNIb3N0RWxlbWVudCwgT25EZXN0cm95IHtcblxuICBwcml2YXRlIHN1YnNjcmlwdGlvbnMkOiBTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgQElucHV0KCdmTm9kZUlkJylcbiAgcHVibGljIG92ZXJyaWRlIGZJZDogc3RyaW5nID0gYGYtbm9kZS0keyB1bmlxdWVJZCsrIH1gO1xuXG4gIEBJbnB1dCgnZk5vZGVQYXJlbnRJZCcpXG4gIHB1YmxpYyBvdmVycmlkZSBmUGFyZW50SWQ6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQgPSBudWxsO1xuXG4gIEBJbnB1dCgnZk5vZGVQb3NpdGlvbicpXG4gIHB1YmxpYyBvdmVycmlkZSBzZXQgcG9zaXRpb24odmFsdWU6IElQb2ludCkge1xuICAgIHRoaXMuX3Bvc2l0aW9uID0gUG9pbnRFeHRlbnNpb25zLmNhc3RUb1BvaW50KHZhbHVlKTtcbiAgICB0aGlzLnJlZnJlc2goKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgcG9zaXRpb24oKTogSVBvaW50IHtcbiAgICByZXR1cm4gdGhpcy5fcG9zaXRpb247XG4gIH1cblxuICBAT3V0cHV0KCdmTm9kZVBvc2l0aW9uQ2hhbmdlJylcbiAgcHVibGljIG92ZXJyaWRlIHBvc2l0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SVBvaW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8SVBvaW50PigpO1xuXG4gIEBJbnB1dCgnZk5vZGVTaXplJylcbiAgcHVibGljIG92ZXJyaWRlIHNldCBzaXplKHZhbHVlOiBJU2l6ZSkge1xuICAgIHRoaXMuX3NpemUgPSB2YWx1ZTtcbiAgICB0aGlzLnJlZnJlc2goKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgc2l6ZSgpOiBJU2l6ZSB7XG4gICAgcmV0dXJuIHRoaXMuX3NpemUhO1xuICB9XG5cbiAgQE91dHB1dCgnZk5vZGVTaXplQ2hhbmdlJylcbiAgcHVibGljIG92ZXJyaWRlIHNpemVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJUmVjdD4gPSBuZXcgRXZlbnRFbWl0dGVyPElSZWN0PigpO1xuXG4gIEBJbnB1dCgnZk5vZGVEcmFnZ2luZ0Rpc2FibGVkJylcbiAgcHVibGljIG92ZXJyaWRlIGZEcmFnZ2luZ0Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KCdmTm9kZVNlbGVjdGlvbkRpc2FibGVkJylcbiAgcHVibGljIG92ZXJyaWRlIGZTZWxlY3Rpb25EaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBmSW5jbHVkZVBhZGRpbmc6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIC8vVE9ETzogQWRkIGFiaWxpdHkgdG8gY29ubmVjdCB0byBmaXJzdCBjb25uZWN0YWJsZSBpbnB1dCBpZiBub2RlIGlzIHVuZGVyIHBvaW50ZXJcbiAgQElucHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGZDb25uZWN0T25Ob2RlOiBib29sZWFuID0gdHJ1ZTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdG9yczogRkNvbm5lY3RvckJhc2VbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGVsZW1lbnRSZWZlcmVuY2U6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIGZDb21wb25lbnRzU3RvcmU6IEZDb21wb25lbnRzU3RvcmUsXG4gICAgcHJpdmF0ZSBmTWVkaWF0b3I6IEZNZWRpYXRvcixcbiAgICBwcml2YXRlIGZCcm93c2VyOiBCcm93c2VyU2VydmljZVxuICApIHtcbiAgICBzdXBlcihlbGVtZW50UmVmZXJlbmNlLm5hdGl2ZUVsZW1lbnQpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0U3R5bGUoJ3Bvc2l0aW9uJywgJ2Fic29sdXRlJyk7XG4gICAgdGhpcy5zZXRTdHlsZSgndHJhbnNmb3JtLW9yaWdpbicsICdjZW50ZXInKTtcbiAgICB0aGlzLnNldFN0eWxlKCd1c2VyLXNlbGVjdCcsICdub25lJyk7XG4gICAgdGhpcy5zZXRTdHlsZSgncG9pbnRlci1ldmVudHMnLCAnYWxsJyk7XG4gICAgdGhpcy5zZXRTdHlsZSgnbGVmdCcsICcwJyk7XG4gICAgdGhpcy5zZXRTdHlsZSgndG9wJywgJzAnKTtcbiAgICBzdXBlci5yZWRyYXcoKTtcbiAgICB0aGlzLmZDb21wb25lbnRzU3RvcmUuYWRkQ29tcG9uZW50KHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mTm9kZXMsIHRoaXMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHNldFN0eWxlKHN0eWxlTmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmhvc3RFbGVtZW50LCBzdHlsZU5hbWUsIHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSByZWRyYXcoKTogdm9pZCB7XG4gICAgc3VwZXIucmVkcmF3KCk7XG4gICAgdGhpcy5mTWVkaWF0b3Iuc2VuZChuZXcgRW1pdFRyYW5zZm9ybUNoYW5nZXNSZXF1ZXN0KCkpO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZighdGhpcy5mQnJvd3Nlci5pc0Jyb3dzZXIoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMkLmFkZChcbiAgICAgIHRoaXMuc3Vic2NyaWJlT25SZXNpemVDaGFuZ2VzKClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBzdWJzY3JpYmVPblJlc2l6ZUNoYW5nZXMoKTogU3Vic2NyaXB0aW9uIHtcbiAgICByZXR1cm4gbWVyZ2UobmV3IEZSZXNpemVPYnNlcnZlcih0aGlzLmhvc3RFbGVtZW50IGFzIEhUTUxFbGVtZW50KSwgdGhpcy5zdGF0ZUNoYW5nZXMpLnBpcGUoXG4gICAgICBkZWJvdW5jZVRpbWUoMTApLCBzdGFydFdpdGgobnVsbClcbiAgICApLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmNvbm5lY3RvcnMuZm9yRWFjaCgoZkNvbm5lY3RvcjogRkNvbm5lY3RvckJhc2UpID0+IHtcbiAgICAgICAgZkNvbm5lY3Rvci5mQ29ubmVjdGFibGVTaWRlID0gbmV3IENhbGN1bGF0ZUNvbm5lY3RvckNvbm5lY3RhYmxlU2lkZUhhbmRsZXIoKS5oYW5kbGUoXG4gICAgICAgICAgbmV3IENhbGN1bGF0ZUNvbm5lY3RvckNvbm5lY3RhYmxlU2lkZVJlcXVlc3QoZkNvbm5lY3RvciwgdGhpcy5ob3N0RWxlbWVudClcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5mQ29tcG9uZW50c1N0b3JlLmNvbXBvbmVudERhdGFDaGFuZ2VkKCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgYWRkQ29ubmVjdG9yKGNvbm5lY3RvcjogRkNvbm5lY3RvckJhc2UpOiB2b2lkIHtcbiAgICB0aGlzLmNvbm5lY3RvcnMucHVzaChjb25uZWN0b3IpO1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSByZW1vdmVDb25uZWN0b3IoY29ubmVjdG9yOiBGQ29ubmVjdG9yQmFzZSk6IHZvaWQge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5jb25uZWN0b3JzLmluZGV4T2YoY29ubmVjdG9yKTtcbiAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICB0aGlzLmNvbm5lY3RvcnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB9XG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICB9XG5cbiAgcHVibGljIHJlZnJlc2goKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5yZW1vdmVDb21wb25lbnQodGhpcy5mQ29tcG9uZW50c1N0b3JlLmZOb2RlcywgdGhpcyk7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMuY29tcGxldGUoKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMkLnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiJdfQ==
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1ub2RlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1ub2RlL2Ytbm9kZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNVLFVBQVUsRUFDekIsU0FBUyxFQUVULFlBQVksRUFBRSxNQUFNLEVBQ3BCLEtBQUssRUFHTCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFbkUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzdELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVsRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsdUNBQXVDLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxXQUFXLENBQUM7OztBQUV2SCxJQUFJLFFBQVEsR0FBVyxDQUFDLENBQUM7QUFlekIsTUFBTSxPQUFPLGNBQWUsU0FBUSxTQUFTO0lBUTNDLElBQ29CLFFBQVEsQ0FBQyxLQUFhO1FBQ3hDLElBQUksQ0FBQyxTQUFTLEdBQUcsZUFBZSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELElBQW9CLFFBQVE7UUFDMUIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFLRCxJQUNvQixJQUFJLENBQUMsS0FBWTtRQUNuQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELElBQW9CLElBQUk7UUFDdEIsT0FBTyxJQUFJLENBQUMsS0FBTSxDQUFDO0lBQ3JC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QUFrQyxFQUFFLG1CQUFtQjt3QkFDdkQsbUNBQW1DLEVBQUUsb0JBQW9CO3FCQUMxRDtvQkFDRCxTQUFTLEVBQUU7d0JBQ1QsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsZ0JBQWdCLEVBQUU7cUJBQ2pEO2lCQUNGO3NKQUlpQixHQUFHO3NCQURsQixLQUFLO3VCQUFDLFNBQVM7Z0JBSUEsU0FBUztzQkFEeEIsS0FBSzt1QkFBQyxlQUFlO2dCQUlGLFFBQVE7c0JBRDNCLEtBQUs7dUJBQUMsZUFBZTtnQkFXTixjQUFjO3NCQUQ3QixNQUFNO3VCQUFDLHFCQUFxQjtnQkFJVCxJQUFJO3NCQUR2QixLQUFLO3VCQUFDLFdBQVc7Z0JBV0YsVUFBVTtzQkFEekIsTUFBTTt1QkFBQyxpQkFBaUI7Z0JBSVQsaUJBQWlCO3NCQURoQyxLQUFLO3VCQUFDLHVCQUF1QjtnQkFJZCxrQkFBa0I7c0JBRGpDLEtBQUs7dUJBQUMsd0JBQXdCO2dCQUlmLGVBQWU7c0JBRDlCLEtBQUs7Z0JBS1UsY0FBYztzQkFEN0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsIERlc3Ryb3lSZWYsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLCBpbmplY3QsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBSZW5kZXJlcjIsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBJUG9pbnQsIElSZWN0LCBJU2l6ZSwgUG9pbnRFeHRlbnNpb25zIH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQgeyBCcm93c2VyU2VydmljZSB9IGZyb20gJ0Bmb2JsZXgvcGxhdGZvcm0nO1xuaW1wb3J0IHsgTm90aWZ5VHJhbnNmb3JtQ2hhbmdlZFJlcXVlc3QgfSBmcm9tICcuLi9mLXN0b3JhZ2UnO1xuaW1wb3J0IHsgRk1lZGlhdG9yIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBGX05PREUsIEZOb2RlQmFzZSB9IGZyb20gJy4vZi1ub2RlLWJhc2UnO1xuaW1wb3J0IHsgSUhhc0hvc3RFbGVtZW50IH0gZnJvbSAnLi4vaS1oYXMtaG9zdC1lbGVtZW50JztcbmltcG9ydCB7IEFkZE5vZGVUb1N0b3JlUmVxdWVzdCwgVXBkYXRlTm9kZVdoZW5TdGF0ZU9yU2l6ZUNoYW5nZWRSZXF1ZXN0LCBSZW1vdmVOb2RlRnJvbVN0b3JlUmVxdWVzdCB9IGZyb20gJy4uL2RvbWFpbic7XG5cbmxldCB1bmlxdWVJZDogbnVtYmVyID0gMDtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiBcIltmTm9kZV1cIixcbiAgZXhwb3J0QXM6IFwiZkNvbXBvbmVudFwiLFxuICBob3N0OiB7XG4gICAgJ1thdHRyLmRhdGEtZi1ub2RlLWlkXSc6ICdmSWQnLFxuICAgIGNsYXNzOiBcImYtbm9kZSBmLWNvbXBvbmVudFwiLFxuICAgICdbY2xhc3MuZi1ub2RlLWRyYWdnaW5nLWRpc2FibGVkXSc6ICdmRHJhZ2dpbmdEaXNhYmxlZCcsXG4gICAgJ1tjbGFzcy5mLW5vZGUtc2VsZWN0aW9uLWRpc2FibGVkXSc6ICdmU2VsZWN0aW9uRGlzYWJsZWQnLFxuICB9LFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IEZfTk9ERSwgdXNlRXhpc3Rpbmc6IEZOb2RlRGlyZWN0aXZlIH1cbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRk5vZGVEaXJlY3RpdmUgZXh0ZW5kcyBGTm9kZUJhc2UgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIElIYXNIb3N0RWxlbWVudCwgT25EZXN0cm95IHtcblxuICBASW5wdXQoJ2ZOb2RlSWQnKVxuICBwdWJsaWMgb3ZlcnJpZGUgZklkOiBzdHJpbmcgPSBgZi1ub2RlLSR7IHVuaXF1ZUlkKysgfWA7XG5cbiAgQElucHV0KCdmTm9kZVBhcmVudElkJylcbiAgcHVibGljIG92ZXJyaWRlIGZQYXJlbnRJZDogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCA9IG51bGw7XG5cbiAgQElucHV0KCdmTm9kZVBvc2l0aW9uJylcbiAgcHVibGljIG92ZXJyaWRlIHNldCBwb3NpdGlvbih2YWx1ZTogSVBvaW50KSB7XG4gICAgdGhpcy5fcG9zaXRpb24gPSBQb2ludEV4dGVuc2lvbnMuY2FzdFRvUG9pbnQodmFsdWUpO1xuICAgIHRoaXMucmVmcmVzaCgpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGdldCBwb3NpdGlvbigpOiBJUG9pbnQge1xuICAgIHJldHVybiB0aGlzLl9wb3NpdGlvbjtcbiAgfVxuXG4gIEBPdXRwdXQoJ2ZOb2RlUG9zaXRpb25DaGFuZ2UnKVxuICBwdWJsaWMgb3ZlcnJpZGUgcG9zaXRpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxJUG9pbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxJUG9pbnQ+KCk7XG5cbiAgQElucHV0KCdmTm9kZVNpemUnKVxuICBwdWJsaWMgb3ZlcnJpZGUgc2V0IHNpemUodmFsdWU6IElTaXplKSB7XG4gICAgdGhpcy5fc2l6ZSA9IHZhbHVlO1xuICAgIHRoaXMucmVmcmVzaCgpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGdldCBzaXplKCk6IElTaXplIHtcbiAgICByZXR1cm4gdGhpcy5fc2l6ZSE7XG4gIH1cblxuICBAT3V0cHV0KCdmTm9kZVNpemVDaGFuZ2UnKVxuICBwdWJsaWMgb3ZlcnJpZGUgc2l6ZUNoYW5nZTogRXZlbnRFbWl0dGVyPElSZWN0PiA9IG5ldyBFdmVudEVtaXR0ZXI8SVJlY3Q+KCk7XG5cbiAgQElucHV0KCdmTm9kZURyYWdnaW5nRGlzYWJsZWQnKVxuICBwdWJsaWMgb3ZlcnJpZGUgZkRyYWdnaW5nRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoJ2ZOb2RlU2VsZWN0aW9uRGlzYWJsZWQnKVxuICBwdWJsaWMgb3ZlcnJpZGUgZlNlbGVjdGlvbkRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGZJbmNsdWRlUGFkZGluZzogYm9vbGVhbiA9IHRydWU7XG5cbiAgLy9UT0RPOiBBZGQgYWJpbGl0eSB0byBjb25uZWN0IHRvIGZpcnN0IGNvbm5lY3RhYmxlIGlucHV0IGlmIG5vZGUgaXMgdW5kZXIgcG9pbnRlclxuICBASW5wdXQoKVxuICBwdWJsaWMgb3ZlcnJpZGUgZkNvbm5lY3RPbk5vZGU6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIHByaXZhdGUgX2Rlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gIHByaXZhdGUgX2ZNZWRpYXRvciA9IGluamVjdChGTWVkaWF0b3IpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGVsZW1lbnRSZWZlcmVuY2U6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIGZCcm93c2VyOiBCcm93c2VyU2VydmljZVxuICApIHtcbiAgICBzdXBlcihlbGVtZW50UmVmZXJlbmNlLm5hdGl2ZUVsZW1lbnQpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0U3R5bGUoJ3Bvc2l0aW9uJywgJ2Fic29sdXRlJyk7XG4gICAgdGhpcy5zZXRTdHlsZSgndHJhbnNmb3JtLW9yaWdpbicsICdjZW50ZXInKTtcbiAgICB0aGlzLnNldFN0eWxlKCd1c2VyLXNlbGVjdCcsICdub25lJyk7XG4gICAgdGhpcy5zZXRTdHlsZSgncG9pbnRlci1ldmVudHMnLCAnYWxsJyk7XG4gICAgdGhpcy5zZXRTdHlsZSgnbGVmdCcsICcwJyk7XG4gICAgdGhpcy5zZXRTdHlsZSgndG9wJywgJzAnKTtcbiAgICBzdXBlci5yZWRyYXcoKTtcblxuICAgIHRoaXMuX2ZNZWRpYXRvci5zZW5kPHZvaWQ+KG5ldyBBZGROb2RlVG9TdG9yZVJlcXVlc3QodGhpcykpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHNldFN0eWxlKHN0eWxlTmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmhvc3RFbGVtZW50LCBzdHlsZU5hbWUsIHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSByZWRyYXcoKTogdm9pZCB7XG4gICAgc3VwZXIucmVkcmF3KCk7XG4gICAgdGhpcy5fZk1lZGlhdG9yLnNlbmQobmV3IE5vdGlmeVRyYW5zZm9ybUNoYW5nZWRSZXF1ZXN0KCkpO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZighdGhpcy5mQnJvd3Nlci5pc0Jyb3dzZXIoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9saXN0ZW5TdGF0ZVNpemVDaGFuZ2VzKCk7XG4gIH1cblxuICBwcml2YXRlIF9saXN0ZW5TdGF0ZVNpemVDaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuX2ZNZWRpYXRvci5zZW5kPHZvaWQ+KG5ldyBVcGRhdGVOb2RlV2hlblN0YXRlT3JTaXplQ2hhbmdlZFJlcXVlc3QodGhpcywgdGhpcy5fZGVzdHJveVJlZikpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlZnJlc2goKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubm90aWZ5KCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZk1lZGlhdG9yLnNlbmQ8dm9pZD4obmV3IFJlbW92ZU5vZGVGcm9tU3RvcmVSZXF1ZXN0KHRoaXMpKTtcbiAgfVxufVxuIl19
@@ -1,27 +1,21 @@
1
- import { Directive, HostBinding, InjectionToken, Input } from "@angular/core";
1
+ import { Directive, ElementRef, HostBinding, inject, InjectionToken, Input } from "@angular/core";
2
2
  import { EFResizeHandleType } from './e-f-resize-handle-type';
3
3
  import { castToEnum } from '@foblex/utils';
4
4
  import * as i0 from "@angular/core";
5
5
  export const F_RESIZE_HANDLE = new InjectionToken('F_RESIZE_HANDLE');
6
6
  export class FResizeHandleDirective {
7
- set type(type) {
8
- this._type = castToEnum(type, 'fResizeHandleType', EFResizeHandleType);
9
- }
10
- get type() {
11
- return this._type;
7
+ constructor() {
8
+ this._elementReference = inject(ElementRef);
9
+ this.type = EFResizeHandleType.LEFT_TOP;
12
10
  }
13
11
  get typeClass() {
14
12
  return `f-resize-handle-${EFResizeHandleType[this.type.toUpperCase()]}`;
15
13
  }
16
14
  get hostElement() {
17
- return this.elementReference.nativeElement;
18
- }
19
- constructor(elementReference) {
20
- this.elementReference = elementReference;
21
- this._type = EFResizeHandleType.LEFT_TOP;
15
+ return this._elementReference.nativeElement;
22
16
  }
23
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FResizeHandleDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
24
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: FResizeHandleDirective, selector: "[fResizeHandle]", inputs: { type: ["fResizeHandleType", "type"] }, host: { properties: { "attr.data-f-resize-handle-type": "type", "class": "this.typeClass" }, classAttribute: "f-resize-handle f-component" }, providers: [{ provide: F_RESIZE_HANDLE, useExisting: FResizeHandleDirective }], ngImport: i0 }); }
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FResizeHandleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
18
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "16.2.12", type: FResizeHandleDirective, selector: "[fResizeHandle]", inputs: { type: ["fResizeHandleType", "type", (x) => castToEnum(x, 'fResizeHandleType', EFResizeHandleType)] }, host: { properties: { "attr.data-f-resize-handle-type": "type", "class": "this.typeClass" }, classAttribute: "f-resize-handle f-component" }, providers: [{ provide: F_RESIZE_HANDLE, useExisting: FResizeHandleDirective }], ngImport: i0 }); }
25
19
  }
26
20
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FResizeHandleDirective, decorators: [{
27
21
  type: Directive,
@@ -33,11 +27,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
33
27
  },
34
28
  providers: [{ provide: F_RESIZE_HANDLE, useExisting: FResizeHandleDirective }],
35
29
  }]
36
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { type: [{
30
+ }], propDecorators: { type: [{
37
31
  type: Input,
38
- args: ['fResizeHandleType']
32
+ args: [{
33
+ alias: 'fResizeHandleType',
34
+ transform: (x) => castToEnum(x, 'fResizeHandleType', EFResizeHandleType)
35
+ }]
39
36
  }], typeClass: [{
40
37
  type: HostBinding,
41
38
  args: ['class']
42
39
  }] } });
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1yZXNpemUtaGFuZGxlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1ub2RlL2YtcmVzaXplLWhhbmRsZS9mLXJlc2l6ZS1oYW5kbGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQWMsV0FBVyxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQzFELE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTlELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRTNDLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBMkMsSUFBSSxjQUFjLENBQXlCLGlCQUFpQixDQUFDLENBQUM7QUFVckksTUFBTSxPQUFPLHNCQUFzQjtJQUdqQyxJQUNXLElBQUksQ0FBQyxJQUF3QjtRQUN0QyxJQUFJLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBQ0QsSUFBVyxJQUFJO1FBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUNXLFNBQVM7UUFDbEIsT0FBTyxtQkFBb0Isa0JBQWtCLENBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQXFDLENBQUcsRUFBRSxDQUFDO0lBQ2pILENBQUM7SUFFRCxJQUFXLFdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDO0lBQzdDLENBQUM7SUFFRCxZQUNVLGdCQUF5QztRQUF6QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXlCO1FBbkI1QyxVQUFLLEdBQXVCLGtCQUFrQixDQUFDLFFBQVEsQ0FBQztJQXFCL0QsQ0FBQzsrR0F2QlUsc0JBQXNCO21HQUF0QixzQkFBc0IseU9BRnRCLENBQUUsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxzQkFBc0IsRUFBRSxDQUFFOzs0RkFFckUsc0JBQXNCO2tCQVJsQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLElBQUksRUFBRTt3QkFDSixLQUFLLEVBQUUsNkJBQTZCO3dCQUNwQyxrQ0FBa0MsRUFBRSxNQUFNO3FCQUMzQztvQkFDRCxTQUFTLEVBQUUsQ0FBRSxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyx3QkFBd0IsRUFBRSxDQUFFO2lCQUNqRjtpR0FLWSxJQUFJO3NCQURkLEtBQUs7dUJBQUMsbUJBQW1CO2dCQVNmLFNBQVM7c0JBRG5CLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIEluamVjdGlvblRva2VuLCBJbnB1dFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRUZSZXNpemVIYW5kbGVUeXBlIH0gZnJvbSAnLi9lLWYtcmVzaXplLWhhbmRsZS10eXBlJztcbmltcG9ydCB7IElIYXNIb3N0RWxlbWVudCB9IGZyb20gJy4uLy4uL2ktaGFzLWhvc3QtZWxlbWVudCc7XG5pbXBvcnQgeyBjYXN0VG9FbnVtIH0gZnJvbSAnQGZvYmxleC91dGlscyc7XG5cbmV4cG9ydCBjb25zdCBGX1JFU0laRV9IQU5ETEU6IEluamVjdGlvblRva2VuPEZSZXNpemVIYW5kbGVEaXJlY3RpdmU+ID0gbmV3IEluamVjdGlvblRva2VuPEZSZXNpemVIYW5kbGVEaXJlY3RpdmU+KCdGX1JFU0laRV9IQU5ETEUnKTtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiBcIltmUmVzaXplSGFuZGxlXVwiLFxuICBob3N0OiB7XG4gICAgY2xhc3M6IGBmLXJlc2l6ZS1oYW5kbGUgZi1jb21wb25lbnRgLFxuICAgICdbYXR0ci5kYXRhLWYtcmVzaXplLWhhbmRsZS10eXBlXSc6ICd0eXBlJyxcbiAgfSxcbiAgcHJvdmlkZXJzOiBbIHsgcHJvdmlkZTogRl9SRVNJWkVfSEFORExFLCB1c2VFeGlzdGluZzogRlJlc2l6ZUhhbmRsZURpcmVjdGl2ZSB9IF0sXG59KVxuZXhwb3J0IGNsYXNzIEZSZXNpemVIYW5kbGVEaXJlY3RpdmUgaW1wbGVtZW50cyBJSGFzSG9zdEVsZW1lbnQge1xuXG4gIHB1YmxpYyBfdHlwZTogRUZSZXNpemVIYW5kbGVUeXBlID0gRUZSZXNpemVIYW5kbGVUeXBlLkxFRlRfVE9QO1xuICBASW5wdXQoJ2ZSZXNpemVIYW5kbGVUeXBlJylcbiAgcHVibGljIHNldCB0eXBlKHR5cGU6IEVGUmVzaXplSGFuZGxlVHlwZSkge1xuICAgIHRoaXMuX3R5cGUgPSBjYXN0VG9FbnVtKHR5cGUsICdmUmVzaXplSGFuZGxlVHlwZScsIEVGUmVzaXplSGFuZGxlVHlwZSk7XG4gIH1cbiAgcHVibGljIGdldCB0eXBlKCk6IEVGUmVzaXplSGFuZGxlVHlwZSB7XG4gICAgcmV0dXJuIHRoaXMuX3R5cGU7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgcHVibGljIGdldCB0eXBlQ2xhc3MoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYGYtcmVzaXplLWhhbmRsZS0keyBFRlJlc2l6ZUhhbmRsZVR5cGVbIHRoaXMudHlwZS50b1VwcGVyQ2FzZSgpIGFzIGtleW9mIHR5cGVvZiBFRlJlc2l6ZUhhbmRsZVR5cGUgXSB9YDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaG9zdEVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWZlcmVuY2UubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudFJlZmVyZW5jZTogRWxlbWVudFJlZjxIVE1MRWxlbWVudD5cbiAgKSB7XG4gIH1cbn1cbiJdfQ==
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1yZXNpemUtaGFuZGxlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1ub2RlL2YtcmVzaXplLWhhbmRsZS9mLXJlc2l6ZS1oYW5kbGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFDbEUsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFM0MsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLElBQUksY0FBYyxDQUF5QixpQkFBaUIsQ0FBQyxDQUFDO0FBVTdGLE1BQU0sT0FBTyxzQkFBc0I7SUFSbkM7UUFVVSxzQkFBaUIsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFNeEMsU0FBSSxHQUF1QixrQkFBa0IsQ0FBQyxRQUFRLENBQUM7S0FVL0Q7SUFSQyxJQUNXLFNBQVM7UUFDbEIsT0FBTyxtQkFBb0Isa0JBQWtCLENBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQXFDLENBQUcsRUFBRSxDQUFDO0lBQ2pILENBQUM7SUFFRCxJQUFXLFdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDO0lBQzlDLENBQUM7K0dBakJVLHNCQUFzQjttR0FBdEIsc0JBQXNCLDZFQU1wQixDQUFDLENBQVUsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsQ0FBQyw4SkFSeEUsQ0FBRSxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLHNCQUFzQixFQUFFLENBQUU7OzRGQUVyRSxzQkFBc0I7a0JBUmxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsSUFBSSxFQUFFO3dCQUNKLEtBQUssRUFBRSw2QkFBNkI7d0JBQ3BDLGtDQUFrQyxFQUFFLE1BQU07cUJBQzNDO29CQUNELFNBQVMsRUFBRSxDQUFFLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxXQUFXLHdCQUF3QixFQUFFLENBQUU7aUJBQ2pGOzhCQVNRLElBQUk7c0JBSlYsS0FBSzt1QkFBQzt3QkFDTCxLQUFLLEVBQUUsbUJBQW1CO3dCQUMxQixTQUFTLEVBQUUsQ0FBQyxDQUFVLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLENBQUM7cUJBQ2xGO2dCQUlVLFNBQVM7c0JBRG5CLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIGluamVjdCwgSW5qZWN0aW9uVG9rZW4sIElucHV0XG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBFRlJlc2l6ZUhhbmRsZVR5cGUgfSBmcm9tICcuL2UtZi1yZXNpemUtaGFuZGxlLXR5cGUnO1xuaW1wb3J0IHsgSUhhc0hvc3RFbGVtZW50IH0gZnJvbSAnLi4vLi4vaS1oYXMtaG9zdC1lbGVtZW50JztcbmltcG9ydCB7IGNhc3RUb0VudW0gfSBmcm9tICdAZm9ibGV4L3V0aWxzJztcblxuZXhwb3J0IGNvbnN0IEZfUkVTSVpFX0hBTkRMRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxGUmVzaXplSGFuZGxlRGlyZWN0aXZlPignRl9SRVNJWkVfSEFORExFJyk7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogXCJbZlJlc2l6ZUhhbmRsZV1cIixcbiAgaG9zdDoge1xuICAgIGNsYXNzOiBgZi1yZXNpemUtaGFuZGxlIGYtY29tcG9uZW50YCxcbiAgICAnW2F0dHIuZGF0YS1mLXJlc2l6ZS1oYW5kbGUtdHlwZV0nOiAndHlwZScsXG4gIH0sXG4gIHByb3ZpZGVyczogWyB7IHByb3ZpZGU6IEZfUkVTSVpFX0hBTkRMRSwgdXNlRXhpc3Rpbmc6IEZSZXNpemVIYW5kbGVEaXJlY3RpdmUgfSBdLFxufSlcbmV4cG9ydCBjbGFzcyBGUmVzaXplSGFuZGxlRGlyZWN0aXZlIGltcGxlbWVudHMgSUhhc0hvc3RFbGVtZW50IHtcblxuICBwcml2YXRlIF9lbGVtZW50UmVmZXJlbmNlID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuXG4gIEBJbnB1dCh7XG4gICAgYWxpYXM6ICdmUmVzaXplSGFuZGxlVHlwZScsXG4gICAgdHJhbnNmb3JtOiAoeDogdW5rbm93bikgPT4gY2FzdFRvRW51bSh4LCAnZlJlc2l6ZUhhbmRsZVR5cGUnLCBFRlJlc2l6ZUhhbmRsZVR5cGUpXG4gIH0pXG4gIHB1YmxpYyB0eXBlOiBFRlJlc2l6ZUhhbmRsZVR5cGUgPSBFRlJlc2l6ZUhhbmRsZVR5cGUuTEVGVF9UT1A7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIHB1YmxpYyBnZXQgdHlwZUNsYXNzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBmLXJlc2l6ZS1oYW5kbGUtJHsgRUZSZXNpemVIYW5kbGVUeXBlWyB0aGlzLnR5cGUudG9VcHBlckNhc2UoKSBhcyBrZXlvZiB0eXBlb2YgRUZSZXNpemVIYW5kbGVUeXBlIF0gfWA7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhvc3RFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZmVyZW5jZS5uYXRpdmVFbGVtZW50O1xuICB9XG59XG4iXX0=
@@ -5,6 +5,5 @@ export * from './f-rotate-handle';
5
5
  export * from './f-group.directive';
6
6
  export * from './f-node.directive';
7
7
  export * from './f-node-base';
8
- export * from './f-resize-observer';
9
8
  export * from './providers';
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2Ytbm9kZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFVBQVUsQ0FBQztBQUV6QixjQUFjLGlCQUFpQixDQUFDO0FBRWhDLGNBQWMsbUJBQW1CLENBQUM7QUFFbEMsY0FBYyxtQkFBbUIsQ0FBQztBQUVsQyxjQUFjLHFCQUFxQixDQUFDO0FBRXBDLGNBQWMsb0JBQW9CLENBQUM7QUFFbkMsY0FBYyxlQUFlLENBQUM7QUFFOUIsY0FBYyxxQkFBcUIsQ0FBQztBQUVwQyxjQUFjLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZG9tYWluJztcblxuZXhwb3J0ICogZnJvbSAnLi9mLWRyYWctaGFuZGxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9mLXJlc2l6ZS1oYW5kbGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2Ytcm90YXRlLWhhbmRsZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZi1ncm91cC5kaXJlY3RpdmUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2Ytbm9kZS5kaXJlY3RpdmUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2Ytbm9kZS1iYXNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9mLXJlc2l6ZS1vYnNlcnZlcic7XG5cbmV4cG9ydCAqIGZyb20gJy4vcHJvdmlkZXJzJztcblxuXG4iXX0=
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2Ytbm9kZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFVBQVUsQ0FBQztBQUV6QixjQUFjLGlCQUFpQixDQUFDO0FBRWhDLGNBQWMsbUJBQW1CLENBQUM7QUFFbEMsY0FBYyxtQkFBbUIsQ0FBQztBQUVsQyxjQUFjLHFCQUFxQixDQUFDO0FBRXBDLGNBQWMsb0JBQW9CLENBQUM7QUFFbkMsY0FBYyxlQUFlLENBQUM7QUFFOUIsY0FBYyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2RvbWFpbic7XG5cbmV4cG9ydCAqIGZyb20gJy4vZi1kcmFnLWhhbmRsZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZi1yZXNpemUtaGFuZGxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9mLXJvdGF0ZS1oYW5kbGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2YtZ3JvdXAuZGlyZWN0aXZlJztcblxuZXhwb3J0ICogZnJvbSAnLi9mLW5vZGUuZGlyZWN0aXZlJztcblxuZXhwb3J0ICogZnJvbSAnLi9mLW5vZGUtYmFzZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vcHJvdmlkZXJzJztcblxuXG4iXX0=
@@ -10,7 +10,7 @@ export let SelectionAreaFinalizeExecution = class SelectionAreaFinalizeExecution
10
10
  }
11
11
  handle(request) {
12
12
  this.fDraggableDataContext.draggableItems.forEach((x) => {
13
- x.complete?.();
13
+ x.onPointerUp?.();
14
14
  });
15
15
  }
16
16
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectionAreaFinalizeExecution, deps: [{ token: i1.FDraggableDataContext }], target: i0.ɵɵFactoryTarget.Injectable }); }
@@ -22,4 +22,4 @@ SelectionAreaFinalizeExecution = __decorate([
22
22
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectionAreaFinalizeExecution, decorators: [{
23
23
  type: Injectable
24
24
  }], ctorParameters: function () { return [{ type: i1.FDraggableDataContext }]; } });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWFyZWEtZmluYWxpemUuZXhlY3V0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLXNlbGVjdGlvbi1hcmVhL2RvbWFpbi9zZWxlY3Rpb24tYXJlYS1maW5hbGl6ZS9zZWxlY3Rpb24tYXJlYS1maW5hbGl6ZS5leGVjdXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDakYsT0FBTyxFQUFFLGtCQUFrQixFQUFjLE1BQU0sa0JBQWtCLENBQUM7OztBQUszRCxXQUFNLDhCQUE4QixHQUFwQyxNQUFNLDhCQUE4QjtJQUV6QyxZQUNVLHFCQUE0QztRQUE1QywwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO0lBRXRELENBQUM7SUFFTSxNQUFNLENBQUMsT0FBcUM7UUFDakQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUN0RCxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztRQUNqQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBWFUsOEJBQThCO21IQUE5Qiw4QkFBOEI7O0FBQTlCLDhCQUE4QjtJQUQxQyxrQkFBa0IsQ0FBQyw0QkFBNEIsQ0FBQztHQUNwQyw4QkFBOEIsQ0FZMUM7NEZBWlksOEJBQThCO2tCQUYxQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2VsZWN0aW9uQXJlYUZpbmFsaXplUmVxdWVzdCB9IGZyb20gJy4vc2VsZWN0aW9uLWFyZWEtZmluYWxpemUucmVxdWVzdCc7XG5pbXBvcnQgeyBGRXhlY3V0aW9uUmVnaXN0ZXIsIElFeGVjdXRpb24gfSBmcm9tICdAZm9ibGV4L21lZGlhdG9yJztcbmltcG9ydCB7IEZEcmFnZ2FibGVEYXRhQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL2YtZHJhZ2dhYmxlJztcblxuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihTZWxlY3Rpb25BcmVhRmluYWxpemVSZXF1ZXN0KVxuZXhwb3J0IGNsYXNzIFNlbGVjdGlvbkFyZWFGaW5hbGl6ZUV4ZWN1dGlvbiBpbXBsZW1lbnRzIElFeGVjdXRpb248U2VsZWN0aW9uQXJlYUZpbmFsaXplUmVxdWVzdCwgdm9pZD4ge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZkRyYWdnYWJsZURhdGFDb250ZXh0OiBGRHJhZ2dhYmxlRGF0YUNvbnRleHQsXG4gICkge1xuICB9XG5cbiAgcHVibGljIGhhbmRsZShyZXF1ZXN0OiBTZWxlY3Rpb25BcmVhRmluYWxpemVSZXF1ZXN0KTogdm9pZCB7XG4gICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuZHJhZ2dhYmxlSXRlbXMuZm9yRWFjaCgoeCkgPT4ge1xuICAgICAgeC5jb21wbGV0ZT8uKCk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWFyZWEtZmluYWxpemUuZXhlY3V0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLXNlbGVjdGlvbi1hcmVhL2RvbWFpbi9zZWxlY3Rpb24tYXJlYS1maW5hbGl6ZS9zZWxlY3Rpb24tYXJlYS1maW5hbGl6ZS5leGVjdXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDakYsT0FBTyxFQUFFLGtCQUFrQixFQUFjLE1BQU0sa0JBQWtCLENBQUM7OztBQUszRCxXQUFNLDhCQUE4QixHQUFwQyxNQUFNLDhCQUE4QjtJQUV6QyxZQUNVLHFCQUE0QztRQUE1QywwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO0lBRXRELENBQUM7SUFFTSxNQUFNLENBQUMsT0FBcUM7UUFDakQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUN0RCxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztRQUNwQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBWFUsOEJBQThCO21IQUE5Qiw4QkFBOEI7O0FBQTlCLDhCQUE4QjtJQUQxQyxrQkFBa0IsQ0FBQyw0QkFBNEIsQ0FBQztHQUNwQyw4QkFBOEIsQ0FZMUM7NEZBWlksOEJBQThCO2tCQUYxQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2VsZWN0aW9uQXJlYUZpbmFsaXplUmVxdWVzdCB9IGZyb20gJy4vc2VsZWN0aW9uLWFyZWEtZmluYWxpemUucmVxdWVzdCc7XG5pbXBvcnQgeyBGRXhlY3V0aW9uUmVnaXN0ZXIsIElFeGVjdXRpb24gfSBmcm9tICdAZm9ibGV4L21lZGlhdG9yJztcbmltcG9ydCB7IEZEcmFnZ2FibGVEYXRhQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL2YtZHJhZ2dhYmxlJztcblxuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihTZWxlY3Rpb25BcmVhRmluYWxpemVSZXF1ZXN0KVxuZXhwb3J0IGNsYXNzIFNlbGVjdGlvbkFyZWFGaW5hbGl6ZUV4ZWN1dGlvbiBpbXBsZW1lbnRzIElFeGVjdXRpb248U2VsZWN0aW9uQXJlYUZpbmFsaXplUmVxdWVzdCwgdm9pZD4ge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZkRyYWdnYWJsZURhdGFDb250ZXh0OiBGRHJhZ2dhYmxlRGF0YUNvbnRleHQsXG4gICkge1xuICB9XG5cbiAgcHVibGljIGhhbmRsZShyZXF1ZXN0OiBTZWxlY3Rpb25BcmVhRmluYWxpemVSZXF1ZXN0KTogdm9pZCB7XG4gICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuZHJhZ2dhYmxlSXRlbXMuZm9yRWFjaCgoeCkgPT4ge1xuICAgICAgeC5vblBvaW50ZXJVcD8uKCk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  import { Point, RectExtensions } from '@foblex/2d';
2
- import { EmitTransformChangesRequest } from '../../domain';
2
+ import { NotifyTransformChangedRequest } from '../../f-storage';
3
3
  import { GetCanBeSelectedItemsRequest } from '../../domain/get-can-be-selected-items/get-can-be-selected-items-request';
4
4
  export class SelectionAreaDragHandle {
5
5
  get canvasPosition() {
@@ -13,12 +13,12 @@ export class SelectionAreaDragHandle {
13
13
  this.canBeSelected = [];
14
14
  this.selectedByMove = [];
15
15
  }
16
- initialize() {
16
+ prepareDragSequence() {
17
17
  this.canBeSelected = this.fMediator.send(new GetCanBeSelectedItemsRequest());
18
18
  this.fSelectionArea.show();
19
19
  this.fSelectionArea.draw(RectExtensions.initialize(this.fDraggableDataContext.onPointerDownPosition.x, this.fDraggableDataContext.onPointerDownPosition.y));
20
20
  }
21
- move(difference) {
21
+ onPointerMove(difference) {
22
22
  const currentPoint = Point.fromPoint(difference).add(this.fDraggableDataContext.onPointerDownPosition);
23
23
  const x = Math.min(this.fDraggableDataContext.onPointerDownPosition.x, currentPoint.x);
24
24
  const y = Math.min(this.fDraggableDataContext.onPointerDownPosition.y, currentPoint.y);
@@ -35,9 +35,9 @@ export class SelectionAreaDragHandle {
35
35
  this.selectedByMove.push(item.element);
36
36
  }
37
37
  });
38
- this.fMediator.send(new EmitTransformChangesRequest());
38
+ this.fMediator.send(new NotifyTransformChangedRequest());
39
39
  }
40
- complete() {
40
+ onPointerUp() {
41
41
  this.fSelectionArea.hide();
42
42
  this.fDraggableDataContext.selectedItems.push(...this.selectedByMove);
43
43
  if (this.selectedByMove.length > 0) {
@@ -45,4 +45,4 @@ export class SelectionAreaDragHandle {
45
45
  }
46
46
  }
47
47
  }
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWFyZWEuZHJhZy1oYW5kbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2Ytc2VsZWN0aW9uLWFyZWEvZG9tYWluL3NlbGVjdGlvbi1hcmVhLmRyYWctaGFuZGxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVSxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTNELE9BQU8sRUFBRSwyQkFBMkIsRUFBdUIsTUFBTSxjQUFjLENBQUM7QUFFaEYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sMEVBQTBFLENBQUM7QUFLeEgsTUFBTSxPQUFPLHVCQUF1QjtJQU1sQyxJQUFZLGNBQWM7UUFDeEIsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFRLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBUSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN6SSxDQUFDO0lBRUQsWUFDVSxnQkFBa0MsRUFDbEMsY0FBa0MsRUFDbEMscUJBQTRDLEVBQzVDLFNBQW9CO1FBSHBCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsbUJBQWMsR0FBZCxjQUFjLENBQW9CO1FBQ2xDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFDNUMsY0FBUyxHQUFULFNBQVMsQ0FBVztRQVp0QixrQkFBYSxHQUEwQixFQUFFLENBQUM7UUFFMUMsbUJBQWMsR0FBMEIsRUFBRSxDQUFDO0lBWW5ELENBQUM7SUFFTSxVQUFVO1FBQ2YsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLDRCQUE0QixFQUFFLENBQUMsQ0FBQztRQUU3RSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUN0QixjQUFjLENBQUMsVUFBVSxDQUN2QixJQUFJLENBQUMscUJBQXFCLENBQUMscUJBQXFCLENBQUMsQ0FBQyxFQUNsRCxJQUFJLENBQUMscUJBQXFCLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUNuRCxDQUNGLENBQUM7SUFDSixDQUFDO0lBRU0sSUFBSSxDQUFDLFVBQWtCO1FBQzVCLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3ZHLE1BQU0sQ0FBQyxHQUFXLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLHFCQUFxQixDQUFDLENBQUMsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0YsTUFBTSxDQUFDLEdBQVcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMscUJBQXFCLENBQUMsQ0FBQyxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUUvRixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNyQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV0QyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FDdEIsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FDL0MsQ0FBQztRQUNGLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDbEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUV4QixNQUFNLFFBQVEsR0FBRyxjQUFjLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBRXpFLE1BQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLEVBQUUsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQ2xILElBQUksV0FBVyxFQUFFO2dCQUVmLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUN4QztRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQU8sSUFBSSwyQkFBMkIsRUFBRSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3RFLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ2xDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7U0FDckQ7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJUG9pbnQsIFBvaW50LCBSZWN0RXh0ZW5zaW9ucyB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uLy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQgeyBFbWl0VHJhbnNmb3JtQ2hhbmdlc1JlcXVlc3QsIElTZWxlY3RhYmxlV2l0aFJlY3QgfSBmcm9tICcuLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgRk1lZGlhdG9yIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBHZXRDYW5CZVNlbGVjdGVkSXRlbXNSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vZG9tYWluL2dldC1jYW4tYmUtc2VsZWN0ZWQtaXRlbXMvZ2V0LWNhbi1iZS1zZWxlY3RlZC1pdGVtcy1yZXF1ZXN0JztcbmltcG9ydCB7IEZEcmFnZ2FibGVEYXRhQ29udGV4dCwgSURyYWdnYWJsZUl0ZW0gfSBmcm9tICcuLi8uLi9mLWRyYWdnYWJsZSc7XG5pbXBvcnQgeyBGU2VsZWN0aW9uQXJlYUJhc2UgfSBmcm9tICcuLi9mLXNlbGVjdGlvbi1hcmVhLWJhc2UnO1xuaW1wb3J0IHsgSUNhbkNoYW5nZVNlbGVjdGlvbiB9IGZyb20gJy4uLy4uL21peGlucyc7XG5cbmV4cG9ydCBjbGFzcyBTZWxlY3Rpb25BcmVhRHJhZ0hhbmRsZSBpbXBsZW1lbnRzIElEcmFnZ2FibGVJdGVtIHtcblxuICBwcml2YXRlIGNhbkJlU2VsZWN0ZWQ6IElTZWxlY3RhYmxlV2l0aFJlY3RbXSA9IFtdO1xuXG4gIHByaXZhdGUgc2VsZWN0ZWRCeU1vdmU6IElDYW5DaGFuZ2VTZWxlY3Rpb25bXSA9IFtdO1xuXG4gIHByaXZhdGUgZ2V0IGNhbnZhc1Bvc2l0aW9uKCk6IFBvaW50IHtcbiAgICByZXR1cm4gUG9pbnQuZnJvbVBvaW50KHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mQ2FudmFzIS50cmFuc2Zvcm0ucG9zaXRpb24pLmFkZCh0aGlzLmZDb21wb25lbnRzU3RvcmUuZkNhbnZhcyEudHJhbnNmb3JtLnNjYWxlZFBvc2l0aW9uKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZkNvbXBvbmVudHNTdG9yZTogRkNvbXBvbmVudHNTdG9yZSxcbiAgICBwcml2YXRlIGZTZWxlY3Rpb25BcmVhOiBGU2VsZWN0aW9uQXJlYUJhc2UsXG4gICAgcHJpdmF0ZSBmRHJhZ2dhYmxlRGF0YUNvbnRleHQ6IEZEcmFnZ2FibGVEYXRhQ29udGV4dCxcbiAgICBwcml2YXRlIGZNZWRpYXRvcjogRk1lZGlhdG9yLFxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBpbml0aWFsaXplKCk6IHZvaWQge1xuICAgIHRoaXMuY2FuQmVTZWxlY3RlZCA9IHRoaXMuZk1lZGlhdG9yLnNlbmQobmV3IEdldENhbkJlU2VsZWN0ZWRJdGVtc1JlcXVlc3QoKSk7XG5cbiAgICB0aGlzLmZTZWxlY3Rpb25BcmVhLnNob3coKTtcbiAgICB0aGlzLmZTZWxlY3Rpb25BcmVhLmRyYXcoXG4gICAgICBSZWN0RXh0ZW5zaW9ucy5pbml0aWFsaXplKFxuICAgICAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5vblBvaW50ZXJEb3duUG9zaXRpb24ueCxcbiAgICAgICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQub25Qb2ludGVyRG93blBvc2l0aW9uLnlcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgcHVibGljIG1vdmUoZGlmZmVyZW5jZTogSVBvaW50KTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudFBvaW50ID0gUG9pbnQuZnJvbVBvaW50KGRpZmZlcmVuY2UpLmFkZCh0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5vblBvaW50ZXJEb3duUG9zaXRpb24pO1xuICAgIGNvbnN0IHg6IG51bWJlciA9IE1hdGgubWluKHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0Lm9uUG9pbnRlckRvd25Qb3NpdGlvbi54LCBjdXJyZW50UG9pbnQueCk7XG4gICAgY29uc3QgeTogbnVtYmVyID0gTWF0aC5taW4odGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQub25Qb2ludGVyRG93blBvc2l0aW9uLnksIGN1cnJlbnRQb2ludC55KTtcblxuICAgIGNvbnN0IHdpZHRoID0gTWF0aC5hYnMoZGlmZmVyZW5jZS54KTtcbiAgICBjb25zdCBoZWlnaHQgPSBNYXRoLmFicyhkaWZmZXJlbmNlLnkpO1xuXG4gICAgdGhpcy5mU2VsZWN0aW9uQXJlYS5kcmF3KFxuICAgICAgUmVjdEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSh4LCB5LCB3aWR0aCwgaGVpZ2h0KVxuICAgICk7XG4gICAgdGhpcy5zZWxlY3RlZEJ5TW92ZSA9IFtdO1xuICAgIHRoaXMuY2FuQmVTZWxlY3RlZC5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICBpdGVtLmVsZW1lbnQuZGVzZWxlY3QoKTtcblxuICAgICAgY29uc3QgaXRlbVJlY3QgPSBSZWN0RXh0ZW5zaW9ucy5hZGRQb2ludChpdGVtLnJlY3QsIHRoaXMuY2FudmFzUG9zaXRpb24pO1xuXG4gICAgICBjb25zdCBpc0ludGVyc2VjdCA9IFJlY3RFeHRlbnNpb25zLmludGVyc2VjdGlvbldpdGhSZWN0KGl0ZW1SZWN0LCBSZWN0RXh0ZW5zaW9ucy5pbml0aWFsaXplKHgsIHksIHdpZHRoLCBoZWlnaHQpKTtcbiAgICAgIGlmIChpc0ludGVyc2VjdCkge1xuXG4gICAgICAgIGl0ZW0uZWxlbWVudC5zZWxlY3QoKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEJ5TW92ZS5wdXNoKGl0ZW0uZWxlbWVudCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5mTWVkaWF0b3Iuc2VuZDx2b2lkPihuZXcgRW1pdFRyYW5zZm9ybUNoYW5nZXNSZXF1ZXN0KCkpO1xuICB9XG5cbiAgcHVibGljIGNvbXBsZXRlKCk6IHZvaWQge1xuICAgIHRoaXMuZlNlbGVjdGlvbkFyZWEuaGlkZSgpO1xuICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LnNlbGVjdGVkSXRlbXMucHVzaCguLi50aGlzLnNlbGVjdGVkQnlNb3ZlKTtcbiAgICBpZiAodGhpcy5zZWxlY3RlZEJ5TW92ZS5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5pc1NlbGVjdGVkQ2hhbmdlZCA9IHRydWU7XG4gICAgfVxuICB9XG59XG4iXX0=
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWFyZWEuZHJhZy1oYW5kbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2Ytc2VsZWN0aW9uLWFyZWEvZG9tYWluL3NlbGVjdGlvbi1hcmVhLmRyYWctaGFuZGxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVSxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzNELE9BQU8sRUFBb0IsNkJBQTZCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUdsRixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwwRUFBMEUsQ0FBQztBQUt4SCxNQUFNLE9BQU8sdUJBQXVCO0lBTWxDLElBQVksY0FBYztRQUN4QixPQUFPLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQVEsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFRLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3pJLENBQUM7SUFFRCxZQUNVLGdCQUFrQyxFQUNsQyxjQUFrQyxFQUNsQyxxQkFBNEMsRUFDNUMsU0FBb0I7UUFIcEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxtQkFBYyxHQUFkLGNBQWMsQ0FBb0I7UUFDbEMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUM1QyxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBWnRCLGtCQUFhLEdBQTBCLEVBQUUsQ0FBQztRQUUxQyxtQkFBYyxHQUEwQixFQUFFLENBQUM7SUFZbkQsQ0FBQztJQUVNLG1CQUFtQjtRQUN4QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksNEJBQTRCLEVBQUUsQ0FBQyxDQUFDO1FBRTdFLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQ3RCLGNBQWMsQ0FBQyxVQUFVLENBQ3ZCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLEVBQ2xELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQ25ELENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFTSxhQUFhLENBQUMsVUFBa0I7UUFDckMsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDdkcsTUFBTSxDQUFDLEdBQVcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMscUJBQXFCLENBQUMsQ0FBQyxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvRixNQUFNLENBQUMsR0FBVyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRS9GLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXRDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUN0QixjQUFjLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUMvQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNsQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBRXhCLE1BQU0sUUFBUSxHQUFHLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7WUFFekUsTUFBTSxXQUFXLEdBQUcsY0FBYyxDQUFDLG9CQUFvQixDQUFDLFFBQVEsRUFBRSxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDbEgsSUFBSSxXQUFXLEVBQUU7Z0JBRWYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDdEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ3hDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBTyxJQUFJLDZCQUE2QixFQUFFLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3RFLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ2xDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7U0FDckQ7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJUG9pbnQsIFBvaW50LCBSZWN0RXh0ZW5zaW9ucyB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSwgTm90aWZ5VHJhbnNmb3JtQ2hhbmdlZFJlcXVlc3QgfSBmcm9tICcuLi8uLi9mLXN0b3JhZ2UnO1xuaW1wb3J0IHsgSVNlbGVjdGFibGVXaXRoUmVjdCB9IGZyb20gJy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBGTWVkaWF0b3IgfSBmcm9tICdAZm9ibGV4L21lZGlhdG9yJztcbmltcG9ydCB7IEdldENhbkJlU2VsZWN0ZWRJdGVtc1JlcXVlc3QgfSBmcm9tICcuLi8uLi9kb21haW4vZ2V0LWNhbi1iZS1zZWxlY3RlZC1pdGVtcy9nZXQtY2FuLWJlLXNlbGVjdGVkLWl0ZW1zLXJlcXVlc3QnO1xuaW1wb3J0IHsgRkRyYWdnYWJsZURhdGFDb250ZXh0LCBJRHJhZ2dhYmxlSXRlbSB9IGZyb20gJy4uLy4uL2YtZHJhZ2dhYmxlJztcbmltcG9ydCB7IEZTZWxlY3Rpb25BcmVhQmFzZSB9IGZyb20gJy4uL2Ytc2VsZWN0aW9uLWFyZWEtYmFzZSc7XG5pbXBvcnQgeyBJQ2FuQ2hhbmdlU2VsZWN0aW9uIH0gZnJvbSAnLi4vLi4vbWl4aW5zJztcblxuZXhwb3J0IGNsYXNzIFNlbGVjdGlvbkFyZWFEcmFnSGFuZGxlIGltcGxlbWVudHMgSURyYWdnYWJsZUl0ZW0ge1xuXG4gIHByaXZhdGUgY2FuQmVTZWxlY3RlZDogSVNlbGVjdGFibGVXaXRoUmVjdFtdID0gW107XG5cbiAgcHJpdmF0ZSBzZWxlY3RlZEJ5TW92ZTogSUNhbkNoYW5nZVNlbGVjdGlvbltdID0gW107XG5cbiAgcHJpdmF0ZSBnZXQgY2FudmFzUG9zaXRpb24oKTogUG9pbnQge1xuICAgIHJldHVybiBQb2ludC5mcm9tUG9pbnQodGhpcy5mQ29tcG9uZW50c1N0b3JlLmZDYW52YXMhLnRyYW5zZm9ybS5wb3NpdGlvbikuYWRkKHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mQ2FudmFzIS50cmFuc2Zvcm0uc2NhbGVkUG9zaXRpb24pO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmQ29tcG9uZW50c1N0b3JlOiBGQ29tcG9uZW50c1N0b3JlLFxuICAgIHByaXZhdGUgZlNlbGVjdGlvbkFyZWE6IEZTZWxlY3Rpb25BcmVhQmFzZSxcbiAgICBwcml2YXRlIGZEcmFnZ2FibGVEYXRhQ29udGV4dDogRkRyYWdnYWJsZURhdGFDb250ZXh0LFxuICAgIHByaXZhdGUgZk1lZGlhdG9yOiBGTWVkaWF0b3IsXG4gICkge1xuICB9XG5cbiAgcHVibGljIHByZXBhcmVEcmFnU2VxdWVuY2UoKTogdm9pZCB7XG4gICAgdGhpcy5jYW5CZVNlbGVjdGVkID0gdGhpcy5mTWVkaWF0b3Iuc2VuZChuZXcgR2V0Q2FuQmVTZWxlY3RlZEl0ZW1zUmVxdWVzdCgpKTtcblxuICAgIHRoaXMuZlNlbGVjdGlvbkFyZWEuc2hvdygpO1xuICAgIHRoaXMuZlNlbGVjdGlvbkFyZWEuZHJhdyhcbiAgICAgIFJlY3RFeHRlbnNpb25zLmluaXRpYWxpemUoXG4gICAgICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0Lm9uUG9pbnRlckRvd25Qb3NpdGlvbi54LFxuICAgICAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5vblBvaW50ZXJEb3duUG9zaXRpb24ueVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgb25Qb2ludGVyTW92ZShkaWZmZXJlbmNlOiBJUG9pbnQpOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50UG9pbnQgPSBQb2ludC5mcm9tUG9pbnQoZGlmZmVyZW5jZSkuYWRkKHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0Lm9uUG9pbnRlckRvd25Qb3NpdGlvbik7XG4gICAgY29uc3QgeDogbnVtYmVyID0gTWF0aC5taW4odGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQub25Qb2ludGVyRG93blBvc2l0aW9uLngsIGN1cnJlbnRQb2ludC54KTtcbiAgICBjb25zdCB5OiBudW1iZXIgPSBNYXRoLm1pbih0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5vblBvaW50ZXJEb3duUG9zaXRpb24ueSwgY3VycmVudFBvaW50LnkpO1xuXG4gICAgY29uc3Qgd2lkdGggPSBNYXRoLmFicyhkaWZmZXJlbmNlLngpO1xuICAgIGNvbnN0IGhlaWdodCA9IE1hdGguYWJzKGRpZmZlcmVuY2UueSk7XG5cbiAgICB0aGlzLmZTZWxlY3Rpb25BcmVhLmRyYXcoXG4gICAgICBSZWN0RXh0ZW5zaW9ucy5pbml0aWFsaXplKHgsIHksIHdpZHRoLCBoZWlnaHQpXG4gICAgKTtcbiAgICB0aGlzLnNlbGVjdGVkQnlNb3ZlID0gW107XG4gICAgdGhpcy5jYW5CZVNlbGVjdGVkLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGl0ZW0uZWxlbWVudC5kZXNlbGVjdCgpO1xuXG4gICAgICBjb25zdCBpdGVtUmVjdCA9IFJlY3RFeHRlbnNpb25zLmFkZFBvaW50KGl0ZW0ucmVjdCwgdGhpcy5jYW52YXNQb3NpdGlvbik7XG5cbiAgICAgIGNvbnN0IGlzSW50ZXJzZWN0ID0gUmVjdEV4dGVuc2lvbnMuaW50ZXJzZWN0aW9uV2l0aFJlY3QoaXRlbVJlY3QsIFJlY3RFeHRlbnNpb25zLmluaXRpYWxpemUoeCwgeSwgd2lkdGgsIGhlaWdodCkpO1xuICAgICAgaWYgKGlzSW50ZXJzZWN0KSB7XG5cbiAgICAgICAgaXRlbS5lbGVtZW50LnNlbGVjdCgpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkQnlNb3ZlLnB1c2goaXRlbS5lbGVtZW50KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLmZNZWRpYXRvci5zZW5kPHZvaWQ+KG5ldyBOb3RpZnlUcmFuc2Zvcm1DaGFuZ2VkUmVxdWVzdCgpKTtcbiAgfVxuXG4gIHB1YmxpYyBvblBvaW50ZXJVcCgpOiB2b2lkIHtcbiAgICB0aGlzLmZTZWxlY3Rpb25BcmVhLmhpZGUoKTtcbiAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5zZWxlY3RlZEl0ZW1zLnB1c2goLi4udGhpcy5zZWxlY3RlZEJ5TW92ZSk7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRCeU1vdmUubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuaXNTZWxlY3RlZENoYW5nZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxufVxuIl19