@foblex/flow 12.6.4 → 12.6.6

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 (259) hide show
  1. package/bundles/foblex-flow.umd.js +2589 -2297
  2. package/bundles/foblex-flow.umd.js.map +1 -1
  3. package/domain/create-connection-markers/create-connection-markers.execution.d.ts +5 -1
  4. package/domain/{clear-selection → f-selection/clear-selection}/clear-selection.execution.d.ts +1 -1
  5. package/domain/{get-selection → f-selection/get-selection}/get-selection.execution.d.ts +1 -1
  6. package/domain/f-selection/index.d.ts +6 -0
  7. package/domain/f-selection/providers.d.ts +6 -0
  8. package/domain/{select → f-selection/select}/select.execution.d.ts +2 -2
  9. package/domain/{select-all → f-selection/select-all}/select-all.execution.d.ts +2 -2
  10. package/domain/{select-and-update-node-layer → f-selection/select-and-update-node-layer}/select-and-update-node-layer.execution.d.ts +2 -2
  11. package/domain/f-selection/select-and-update-node-layer/select-and-update-node-layer.request.d.ts +5 -0
  12. package/domain/get-flow-state/providers.d.ts +1 -1
  13. package/domain/index.d.ts +1 -8
  14. package/domain/providers.d.ts +1 -9
  15. package/esm2015/domain/create-connection-markers/create-connection-markers.execution.js +10 -5
  16. package/esm2015/domain/f-selection/clear-selection/clear-selection.execution.js +26 -0
  17. package/esm2015/domain/f-selection/clear-selection/clear-selection.request.js +3 -0
  18. package/esm2015/domain/f-selection/clear-selection/index.js +3 -0
  19. package/esm2015/domain/f-selection/get-selection/get-selection.execution.js +35 -0
  20. package/esm2015/domain/f-selection/get-selection/get-selection.request.js +3 -0
  21. package/esm2015/domain/f-selection/get-selection/index.js +3 -0
  22. package/esm2015/domain/f-selection/index.js +7 -0
  23. package/esm2015/domain/f-selection/providers.js +13 -0
  24. package/esm2015/domain/f-selection/select/index.js +3 -0
  25. package/esm2015/domain/f-selection/select/select.execution.js +44 -0
  26. package/esm2015/domain/f-selection/select/select.request.js +7 -0
  27. package/esm2015/domain/f-selection/select-all/index.js +3 -0
  28. package/esm2015/domain/f-selection/select-all/select-all.execution.js +38 -0
  29. package/esm2015/domain/f-selection/select-all/select-all.request.js +3 -0
  30. package/esm2015/domain/f-selection/select-and-update-node-layer/index.js +3 -0
  31. package/esm2015/domain/f-selection/select-and-update-node-layer/select-and-update-node-layer.execution.js +35 -0
  32. package/esm2015/domain/f-selection/select-and-update-node-layer/select-and-update-node-layer.request.js +6 -0
  33. package/esm2015/domain/index.js +2 -9
  34. package/esm2015/domain/providers.js +7 -17
  35. package/esm2015/domain/redraw-connections/redraw-connections.execution.js +4 -1
  36. package/esm2015/f-backgroud/domain/add-pattern-to-background/add-pattern-to-background.execution.js +48 -0
  37. package/esm2015/f-backgroud/domain/add-pattern-to-background/add-pattern-to-background.request.js +6 -0
  38. package/esm2015/f-backgroud/domain/add-pattern-to-background/index.js +3 -0
  39. package/esm2015/f-backgroud/domain/i-f-background-pattern.js +1 -1
  40. package/esm2015/f-backgroud/domain/index.js +3 -1
  41. package/esm2015/f-backgroud/domain/providers.js +5 -0
  42. package/esm2015/f-backgroud/f-background.component.js +10 -28
  43. package/esm2015/f-canvas/domain/center-group-or-node/center-group-or-node-request.js +7 -0
  44. package/esm2015/f-canvas/domain/center-group-or-node/center-group-or-node.execution.js +49 -0
  45. package/esm2015/f-canvas/domain/center-group-or-node/index.js +3 -0
  46. package/esm2015/f-canvas/domain/fit-to-flow/fit-to-flow-request.js +7 -0
  47. package/esm2015/f-canvas/domain/fit-to-flow/fit-to-flow.execution.js +56 -0
  48. package/esm2015/f-canvas/domain/fit-to-flow/index.js +3 -0
  49. package/esm2015/f-canvas/domain/index.js +9 -1
  50. package/esm2015/f-canvas/domain/input-canvas-position/index.js +3 -0
  51. package/esm2015/f-canvas/domain/input-canvas-position/input-canvas-position-request.js +7 -0
  52. package/esm2015/f-canvas/domain/input-canvas-position/input-canvas-position.execution.js +34 -0
  53. package/esm2015/f-canvas/domain/input-canvas-scale/index.js +3 -0
  54. package/esm2015/f-canvas/domain/input-canvas-scale/input-canvas-scale-request.js +7 -0
  55. package/esm2015/f-canvas/domain/input-canvas-scale/input-canvas-scale.execution.js +29 -0
  56. package/esm2015/f-canvas/domain/providers.js +17 -0
  57. package/esm2015/f-canvas/domain/reset-scale/index.js +3 -0
  58. package/esm2015/f-canvas/domain/reset-scale/reset-scale-request.js +3 -0
  59. package/esm2015/f-canvas/domain/reset-scale/reset-scale.execution.js +29 -0
  60. package/esm2015/f-canvas/domain/reset-scale-and-center/index.js +3 -0
  61. package/esm2015/f-canvas/domain/reset-scale-and-center/reset-scale-and-center-request.js +6 -0
  62. package/esm2015/f-canvas/domain/reset-scale-and-center/reset-scale-and-center.execution.js +51 -0
  63. package/esm2015/f-canvas/domain/update-scale/index.js +3 -0
  64. package/esm2015/f-canvas/domain/update-scale/update-scale-request.js +7 -0
  65. package/esm2015/f-canvas/domain/update-scale/update-scale.execution.js +34 -0
  66. package/esm2015/f-canvas/f-canvas-base.js +12 -15
  67. package/esm2015/f-canvas/f-canvas.component.js +21 -44
  68. package/esm2015/f-connection/common/f-connection-base.js +1 -1
  69. package/esm2015/f-connection/f-connection/f-connection.component.js +2 -7
  70. package/esm2015/f-connection/f-connection-for-create/f-connection-for-create.component.js +1 -6
  71. package/esm2015/f-connection/f-snap-connection/f-snap-connection.component.js +13 -9
  72. package/esm2015/f-connection/providers.js +4 -2
  73. package/esm2015/f-connectors/f-node-input/index.js +1 -2
  74. package/esm2015/f-draggable/canvas/canvas.drag-handler.js +2 -2
  75. package/esm2015/f-draggable/connections/common/find-closest-input-using-snap-threshold/find-closest-input-using-snap-threshold.execution.js +39 -0
  76. package/esm2015/f-draggable/connections/common/find-closest-input-using-snap-threshold/find-closest-input-using-snap-threshold.request.js +8 -0
  77. package/esm2015/f-draggable/connections/common/find-closest-input-using-snap-threshold/index.js +3 -0
  78. package/esm2015/f-draggable/connections/common/get-all-can-be-connected-input-positions/get-all-can-be-connected-input-positions.execution.js +55 -0
  79. package/esm2015/f-draggable/connections/common/get-all-can-be-connected-input-positions/get-all-can-be-connected-input-positions.request.js +6 -0
  80. package/esm2015/f-draggable/connections/common/get-all-can-be-connected-input-positions/index.js +3 -0
  81. package/esm2015/f-draggable/connections/common/get-connector-with-rect/get-connector-with-rect-request.js +6 -0
  82. package/esm2015/f-draggable/connections/common/get-connector-with-rect/get-connector-with-rect.execution.js +28 -0
  83. package/esm2015/f-draggable/connections/common/get-connector-with-rect/i-connector-with-rect.js +2 -0
  84. package/esm2015/f-draggable/connections/common/get-connector-with-rect/index.js +4 -0
  85. package/esm2015/f-draggable/connections/common/get-input-under-pointer/get-input-under-pointer.execution.js +85 -0
  86. package/esm2015/f-draggable/connections/common/get-input-under-pointer/get-input-under-pointer.request.js +7 -0
  87. package/esm2015/f-draggable/connections/common/get-input-under-pointer/get-input-under-pointer.validator.js +35 -0
  88. package/esm2015/f-draggable/connections/common/get-input-under-pointer/index.js +4 -0
  89. package/esm2015/f-draggable/connections/common/index.js +6 -0
  90. package/esm2015/f-draggable/connections/common/providers.js +12 -0
  91. package/esm2015/f-draggable/connections/create-connection/create-connection-finalize/create-connection-finalize.execution.js +5 -5
  92. package/esm2015/f-draggable/connections/create-connection/create-connection-preparation/create-connection-drag-handler/create-connection-drag-handler.execution.js +4 -5
  93. package/esm2015/f-draggable/connections/create-connection/create-connection.drag-handler.js +51 -20
  94. package/esm2015/f-draggable/connections/index.js +2 -2
  95. package/esm2015/f-draggable/connections/providers.js +6 -4
  96. package/esm2015/f-draggable/connections/reassign-connection/f-reassign-connection.event.js +3 -3
  97. package/esm2015/f-draggable/connections/reassign-connection/reassign-connection-finalize/reassign-connection-finalize.execution.js +4 -4
  98. package/esm2015/f-draggable/connections/reassign-connection/reassign-connection-preparation/reassign-connection-preparation.execution.js +2 -2
  99. package/esm2015/f-draggable/connections/reassign-connection/reassign-connection.drag-handler.js +51 -23
  100. package/esm2015/f-draggable/node/connection-base-drag-handler.js +17 -19
  101. package/esm2015/f-draggable/node/connection-source.drag-handler.js +5 -4
  102. package/esm2015/f-draggable/node/connection-target.drag-handler.js +5 -4
  103. package/esm2015/f-draggable/node/connection.drag-handler.js +5 -4
  104. package/esm2015/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/put-input-connection-handlers-to-array/put-input-connection-handlers-to-array.execution.js +3 -3
  105. package/esm2015/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/put-output-connection-handlers-to-array/put-output-connection-handlers-to-array.execution.js +3 -3
  106. package/esm2015/f-draggable/node/node-move-preparation/node-move-preparation.execution.js +2 -2
  107. package/esm2015/f-draggable/providers.js +2 -2
  108. package/esm2015/f-flow/f-flow.component.js +8 -6
  109. package/esm2015/f-flow.module.js +18 -17
  110. package/esm2015/f-minimap/domain/f-minimap.drag-handler.js +2 -2
  111. package/esm2015/f-minimap/domain/minimap-drag-preparation/minimap-drag-preparation.execution.js +2 -2
  112. package/esm2015/f-storage/f-components-store.js +1 -1
  113. package/esm2015/f-zoom/f-zoom-base.js +4 -4
  114. package/esm2015/mixins/index.js +1 -6
  115. package/f-backgroud/domain/add-pattern-to-background/add-pattern-to-background.execution.d.ts +14 -0
  116. package/f-backgroud/domain/add-pattern-to-background/add-pattern-to-background.request.d.ts +5 -0
  117. package/f-backgroud/domain/add-pattern-to-background/index.d.ts +2 -0
  118. package/f-backgroud/domain/i-f-background-pattern.d.ts +1 -0
  119. package/f-backgroud/domain/index.d.ts +2 -0
  120. package/f-backgroud/domain/providers.d.ts +2 -0
  121. package/f-backgroud/f-background.component.d.ts +5 -4
  122. package/{domain → f-canvas/domain}/center-group-or-node/center-group-or-node.execution.d.ts +1 -1
  123. package/f-canvas/domain/fit-to-flow/fit-to-flow-request.d.ts +6 -0
  124. package/f-canvas/domain/fit-to-flow/fit-to-flow.execution.d.ts +16 -0
  125. package/f-canvas/domain/fit-to-flow/index.d.ts +2 -0
  126. package/f-canvas/domain/index.d.ts +8 -0
  127. package/f-canvas/domain/input-canvas-position/index.d.ts +2 -0
  128. package/f-canvas/domain/input-canvas-position/input-canvas-position-request.d.ts +6 -0
  129. package/f-canvas/domain/input-canvas-position/input-canvas-position.execution.d.ts +11 -0
  130. package/f-canvas/domain/input-canvas-scale/index.d.ts +2 -0
  131. package/f-canvas/domain/input-canvas-scale/input-canvas-scale-request.d.ts +6 -0
  132. package/f-canvas/domain/input-canvas-scale/input-canvas-scale.execution.d.ts +11 -0
  133. package/f-canvas/domain/providers.d.ts +8 -0
  134. package/f-canvas/domain/reset-scale/index.d.ts +2 -0
  135. package/f-canvas/domain/reset-scale/reset-scale-request.d.ts +2 -0
  136. package/f-canvas/domain/reset-scale/reset-scale.execution.d.ts +12 -0
  137. package/f-canvas/domain/reset-scale-and-center/index.d.ts +2 -0
  138. package/f-canvas/domain/reset-scale-and-center/reset-scale-and-center-request.d.ts +4 -0
  139. package/f-canvas/domain/reset-scale-and-center/reset-scale-and-center.execution.d.ts +16 -0
  140. package/f-canvas/domain/update-scale/index.d.ts +2 -0
  141. package/f-canvas/domain/update-scale/update-scale-request.d.ts +6 -0
  142. package/f-canvas/domain/update-scale/update-scale.execution.d.ts +12 -0
  143. package/f-canvas/f-canvas-base.d.ts +8 -12
  144. package/f-canvas/f-canvas.component.d.ts +3 -1
  145. package/f-connection/common/f-connection-base.d.ts +0 -2
  146. package/f-connection/f-connection/f-connection.component.d.ts +0 -2
  147. package/f-connection/f-connection-for-create/f-connection-for-create.component.d.ts +0 -2
  148. package/f-connection/f-snap-connection/f-snap-connection.component.d.ts +2 -3
  149. package/f-connection/providers.d.ts +2 -1
  150. package/f-connectors/f-node-input/index.d.ts +0 -1
  151. package/f-draggable/connections/common/find-closest-input-using-snap-threshold/find-closest-input-using-snap-threshold.execution.d.ts +11 -0
  152. package/f-draggable/connections/common/find-closest-input-using-snap-threshold/find-closest-input-using-snap-threshold.request.d.ts +8 -0
  153. package/f-draggable/connections/common/find-closest-input-using-snap-threshold/index.d.ts +2 -0
  154. package/f-draggable/connections/common/get-all-can-be-connected-input-positions/get-all-can-be-connected-input-positions.execution.d.ts +21 -0
  155. package/f-draggable/connections/common/get-all-can-be-connected-input-positions/get-all-can-be-connected-input-positions.request.d.ts +4 -0
  156. package/f-draggable/connections/common/get-all-can-be-connected-input-positions/index.d.ts +2 -0
  157. package/f-draggable/connections/common/get-connector-with-rect/get-connector-with-rect-request.d.ts +5 -0
  158. package/f-draggable/connections/common/get-connector-with-rect/get-connector-with-rect.execution.d.ts +11 -0
  159. package/f-draggable/connections/common/get-connector-with-rect/i-connector-with-rect.d.ts +6 -0
  160. package/f-draggable/connections/common/get-connector-with-rect/index.d.ts +3 -0
  161. package/f-draggable/connections/{get-input-under-pointer → common/get-input-under-pointer}/get-input-under-pointer.execution.d.ts +7 -4
  162. package/f-draggable/connections/{get-input-under-pointer → common/get-input-under-pointer}/get-input-under-pointer.request.d.ts +2 -2
  163. package/f-draggable/connections/{get-input-under-pointer → common/get-input-under-pointer}/get-input-under-pointer.validator.d.ts +1 -1
  164. package/f-draggable/connections/{get-input-under-pointer → common/get-input-under-pointer}/index.d.ts +0 -1
  165. package/f-draggable/connections/common/index.d.ts +5 -0
  166. package/f-draggable/connections/common/providers.d.ts +5 -0
  167. package/f-draggable/connections/create-connection/create-connection.drag-handler.d.ts +14 -5
  168. package/f-draggable/connections/index.d.ts +1 -1
  169. package/f-draggable/connections/providers.d.ts +1 -1
  170. package/f-draggable/connections/reassign-connection/f-reassign-connection.event.d.ts +6 -6
  171. package/f-draggable/connections/reassign-connection/reassign-connection.drag-handler.d.ts +16 -7
  172. package/f-draggable/node/connection-base-drag-handler.d.ts +9 -7
  173. package/f-draggable/node/connection-source.drag-handler.d.ts +2 -1
  174. package/f-draggable/node/connection-target.drag-handler.d.ts +2 -1
  175. package/f-draggable/node/connection.drag-handler.d.ts +2 -1
  176. package/f-draggable/providers.d.ts +1 -1
  177. package/f-flow.module.d.ts +19 -18
  178. package/f-node/providers.d.ts +1 -1
  179. package/f-storage/f-components-store.d.ts +1 -0
  180. package/fesm2015/foblex-flow.js +1514 -1260
  181. package/fesm2015/foblex-flow.js.map +1 -1
  182. package/mixins/index.d.ts +0 -5
  183. package/package.json +1 -1
  184. package/domain/get-input-rect-in-flow/get-input-rect-in-flow-request.d.ts +0 -4
  185. package/domain/get-input-rect-in-flow/get-input-rect-in-flow-response.d.ts +0 -7
  186. package/domain/get-input-rect-in-flow/get-input-rect-in-flow.execution.d.ts +0 -13
  187. package/domain/get-input-rect-in-flow/index.d.ts +0 -3
  188. package/domain/get-output-rect-in-flow/get-output-rect-in-flow-request.d.ts +0 -4
  189. package/domain/get-output-rect-in-flow/get-output-rect-in-flow-response.d.ts +0 -7
  190. package/domain/get-output-rect-in-flow/get-output-rect-in-flow.execution.d.ts +0 -13
  191. package/domain/get-output-rect-in-flow/index.d.ts +0 -3
  192. package/domain/select-and-update-node-layer/select-and-update-node-layer.request.d.ts +0 -5
  193. package/esm2015/domain/center-group-or-node/center-group-or-node-request.js +0 -7
  194. package/esm2015/domain/center-group-or-node/center-group-or-node.execution.js +0 -51
  195. package/esm2015/domain/center-group-or-node/index.js +0 -3
  196. package/esm2015/domain/clear-selection/clear-selection.execution.js +0 -26
  197. package/esm2015/domain/clear-selection/clear-selection.request.js +0 -3
  198. package/esm2015/domain/clear-selection/index.js +0 -3
  199. package/esm2015/domain/get-input-rect-in-flow/get-input-rect-in-flow-request.js +0 -6
  200. package/esm2015/domain/get-input-rect-in-flow/get-input-rect-in-flow-response.js +0 -7
  201. package/esm2015/domain/get-input-rect-in-flow/get-input-rect-in-flow.execution.js +0 -33
  202. package/esm2015/domain/get-input-rect-in-flow/index.js +0 -4
  203. package/esm2015/domain/get-output-rect-in-flow/get-output-rect-in-flow-request.js +0 -6
  204. package/esm2015/domain/get-output-rect-in-flow/get-output-rect-in-flow-response.js +0 -7
  205. package/esm2015/domain/get-output-rect-in-flow/get-output-rect-in-flow.execution.js +0 -37
  206. package/esm2015/domain/get-output-rect-in-flow/index.js +0 -4
  207. package/esm2015/domain/get-selection/get-selection.execution.js +0 -35
  208. package/esm2015/domain/get-selection/get-selection.request.js +0 -3
  209. package/esm2015/domain/get-selection/index.js +0 -3
  210. package/esm2015/domain/select/index.js +0 -3
  211. package/esm2015/domain/select/select.execution.js +0 -44
  212. package/esm2015/domain/select/select.request.js +0 -7
  213. package/esm2015/domain/select-all/index.js +0 -3
  214. package/esm2015/domain/select-all/select-all.execution.js +0 -38
  215. package/esm2015/domain/select-all/select-all.request.js +0 -3
  216. package/esm2015/domain/select-and-update-node-layer/index.js +0 -3
  217. package/esm2015/domain/select-and-update-node-layer/select-and-update-node-layer.execution.js +0 -35
  218. package/esm2015/domain/select-and-update-node-layer/select-and-update-node-layer.request.js +0 -6
  219. package/esm2015/f-connectors/f-node-input/is-node-input.js +0 -4
  220. package/esm2015/f-draggable/connections/get-input-under-pointer/get-input-under-pointer.execution.js +0 -74
  221. package/esm2015/f-draggable/connections/get-input-under-pointer/get-input-under-pointer.request.js +0 -7
  222. package/esm2015/f-draggable/connections/get-input-under-pointer/get-input-under-pointer.validator.js +0 -35
  223. package/esm2015/f-draggable/connections/get-input-under-pointer/index.js +0 -5
  224. package/esm2015/f-draggable/connections/get-input-under-pointer/providers.js +0 -7
  225. package/esm2015/mixins/change-position.js +0 -15
  226. package/esm2015/mixins/change-zoom/change-zoom.js +0 -25
  227. package/esm2015/mixins/change-zoom/i-can-change-zoom.js +0 -2
  228. package/esm2015/mixins/change-zoom/index.js +0 -3
  229. package/esm2015/mixins/fit-to-parent/fit-to-parent.js +0 -27
  230. package/esm2015/mixins/fit-to-parent/i-can-fit-to-parent.js +0 -2
  231. package/esm2015/mixins/fit-to-parent/index.js +0 -3
  232. package/esm2015/mixins/i-transformable.js +0 -2
  233. package/esm2015/mixins/one-to-one-centering/i-can-one-to-one-centering.js +0 -2
  234. package/esm2015/mixins/one-to-one-centering/index.js +0 -3
  235. package/esm2015/mixins/one-to-one-centering/one-to-one-centering.js +0 -24
  236. package/f-connectors/f-node-input/is-node-input.d.ts +0 -1
  237. package/f-draggable/connections/get-input-under-pointer/providers.d.ts +0 -3
  238. package/mixins/change-position.d.ts +0 -10
  239. package/mixins/change-zoom/change-zoom.d.ts +0 -6
  240. package/mixins/change-zoom/i-can-change-zoom.d.ts +0 -6
  241. package/mixins/change-zoom/index.d.ts +0 -2
  242. package/mixins/fit-to-parent/fit-to-parent.d.ts +0 -6
  243. package/mixins/fit-to-parent/i-can-fit-to-parent.d.ts +0 -4
  244. package/mixins/fit-to-parent/index.d.ts +0 -2
  245. package/mixins/i-transformable.d.ts +0 -4
  246. package/mixins/one-to-one-centering/i-can-one-to-one-centering.d.ts +0 -4
  247. package/mixins/one-to-one-centering/index.d.ts +0 -2
  248. package/mixins/one-to-one-centering/one-to-one-centering.d.ts +0 -6
  249. /package/domain/{clear-selection → f-selection/clear-selection}/clear-selection.request.d.ts +0 -0
  250. /package/domain/{clear-selection → f-selection/clear-selection}/index.d.ts +0 -0
  251. /package/domain/{get-selection → f-selection/get-selection}/get-selection.request.d.ts +0 -0
  252. /package/domain/{get-selection → f-selection/get-selection}/index.d.ts +0 -0
  253. /package/domain/{select → f-selection/select}/index.d.ts +0 -0
  254. /package/domain/{select → f-selection/select}/select.request.d.ts +0 -0
  255. /package/domain/{select-all → f-selection/select-all}/index.d.ts +0 -0
  256. /package/domain/{select-all → f-selection/select-all}/select-all.request.d.ts +0 -0
  257. /package/domain/{select-and-update-node-layer → f-selection/select-and-update-node-layer}/index.d.ts +0 -0
  258. /package/{domain → f-canvas/domain}/center-group-or-node/center-group-or-node-request.d.ts +0 -0
  259. /package/{domain → f-canvas/domain}/center-group-or-node/index.d.ts +0 -0
@@ -0,0 +1,29 @@
1
+ import { __decorate } from "tslib";
2
+ import { Injectable } from '@angular/core';
3
+ import { InputCanvasScaleRequest } from './input-canvas-scale-request';
4
+ import { FExecutionRegister } from '@foblex/mediator';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../../../f-storage";
7
+ let InputCanvasScaleExecution = class InputCanvasScaleExecution {
8
+ constructor(fComponentsStore) {
9
+ this.fComponentsStore = fComponentsStore;
10
+ }
11
+ handle(request) {
12
+ var _a;
13
+ if (!request.scale) {
14
+ return;
15
+ }
16
+ request.transform.scale = request.scale;
17
+ (_a = this.fComponentsStore.fCanvas) === null || _a === void 0 ? void 0 : _a.redraw();
18
+ }
19
+ };
20
+ InputCanvasScaleExecution.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: InputCanvasScaleExecution, deps: [{ token: i1.FComponentsStore }], target: i0.ɵɵFactoryTarget.Injectable });
21
+ InputCanvasScaleExecution.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: InputCanvasScaleExecution });
22
+ InputCanvasScaleExecution = __decorate([
23
+ FExecutionRegister(InputCanvasScaleRequest)
24
+ ], InputCanvasScaleExecution);
25
+ export { InputCanvasScaleExecution };
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: InputCanvasScaleExecution, decorators: [{
27
+ type: Injectable
28
+ }], ctorParameters: function () { return [{ type: i1.FComponentsStore }]; } });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtY2FudmFzLXNjYWxlLmV4ZWN1dGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jYW52YXMvZG9tYWluL2lucHV0LWNhbnZhcy1zY2FsZS9pbnB1dC1jYW52YXMtc2NhbGUuZXhlY3V0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxrQkFBa0IsRUFBYyxNQUFNLGtCQUFrQixDQUFDOzs7SUFLckQseUJBQXlCLFNBQXpCLHlCQUF5QjtJQUdwQyxZQUNVLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO0lBRTVDLENBQUM7SUFFTSxNQUFNLENBQUMsT0FBZ0M7O1FBQzVDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFO1lBQ2xCLE9BQU87U0FDUjtRQUNELE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDeEMsTUFBQSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTywwQ0FBRSxNQUFNLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0NBQ0YsQ0FBQTt1SEFmWSx5QkFBeUI7MkhBQXpCLHlCQUF5QjtBQUF6Qix5QkFBeUI7SUFEckMsa0JBQWtCLENBQUMsdUJBQXVCLENBQUM7R0FDL0IseUJBQXlCLENBZXJDO1NBZlkseUJBQXlCOzRGQUF6Qix5QkFBeUI7a0JBRnJDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbnB1dENhbnZhc1NjYWxlUmVxdWVzdCB9IGZyb20gJy4vaW5wdXQtY2FudmFzLXNjYWxlLXJlcXVlc3QnO1xuaW1wb3J0IHsgRkV4ZWN1dGlvblJlZ2lzdGVyLCBJRXhlY3V0aW9uIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vLi4vLi4vZi1zdG9yYWdlJztcblxuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihJbnB1dENhbnZhc1NjYWxlUmVxdWVzdClcbmV4cG9ydCBjbGFzcyBJbnB1dENhbnZhc1NjYWxlRXhlY3V0aW9uIGltcGxlbWVudHMgSUV4ZWN1dGlvbjxJbnB1dENhbnZhc1NjYWxlUmVxdWVzdCwgdm9pZD4ge1xuXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmQ29tcG9uZW50c1N0b3JlOiBGQ29tcG9uZW50c1N0b3JlXG4gICkge1xuICB9XG5cbiAgcHVibGljIGhhbmRsZShyZXF1ZXN0OiBJbnB1dENhbnZhc1NjYWxlUmVxdWVzdCk6IHZvaWQge1xuICAgIGlmICghcmVxdWVzdC5zY2FsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICByZXF1ZXN0LnRyYW5zZm9ybS5zY2FsZSA9IHJlcXVlc3Quc2NhbGU7XG4gICAgdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZDYW52YXM/LnJlZHJhdygpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,17 @@
1
+ import { CenterGroupOrNodeExecution } from './center-group-or-node';
2
+ import { FitToFlowExecution } from './fit-to-flow';
3
+ import { ResetScaleAndCenterExecution } from './reset-scale-and-center';
4
+ import { ResetScaleExecution } from './reset-scale';
5
+ import { UpdateScaleExecution } from './update-scale';
6
+ import { InputCanvasPositionExecution } from './input-canvas-position';
7
+ import { InputCanvasScaleExecution } from './input-canvas-scale';
8
+ export const F_CANVAS_FEATURES = [
9
+ CenterGroupOrNodeExecution,
10
+ FitToFlowExecution,
11
+ InputCanvasPositionExecution,
12
+ InputCanvasScaleExecution,
13
+ ResetScaleExecution,
14
+ ResetScaleAndCenterExecution,
15
+ UpdateScaleExecution
16
+ ];
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNhbnZhcy9kb21haW4vcHJvdmlkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFakUsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUc7SUFFL0IsMEJBQTBCO0lBRTFCLGtCQUFrQjtJQUVsQiw0QkFBNEI7SUFFNUIseUJBQXlCO0lBRXpCLG1CQUFtQjtJQUVuQiw0QkFBNEI7SUFFNUIsb0JBQW9CO0NBQ3JCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZW50ZXJHcm91cE9yTm9kZUV4ZWN1dGlvbiB9IGZyb20gJy4vY2VudGVyLWdyb3VwLW9yLW5vZGUnO1xuaW1wb3J0IHsgRml0VG9GbG93RXhlY3V0aW9uIH0gZnJvbSAnLi9maXQtdG8tZmxvdyc7XG5pbXBvcnQgeyBSZXNldFNjYWxlQW5kQ2VudGVyRXhlY3V0aW9uIH0gZnJvbSAnLi9yZXNldC1zY2FsZS1hbmQtY2VudGVyJztcbmltcG9ydCB7IFJlc2V0U2NhbGVFeGVjdXRpb24gfSBmcm9tICcuL3Jlc2V0LXNjYWxlJztcbmltcG9ydCB7IFVwZGF0ZVNjYWxlRXhlY3V0aW9uIH0gZnJvbSAnLi91cGRhdGUtc2NhbGUnO1xuaW1wb3J0IHsgSW5wdXRDYW52YXNQb3NpdGlvbkV4ZWN1dGlvbiB9IGZyb20gJy4vaW5wdXQtY2FudmFzLXBvc2l0aW9uJztcbmltcG9ydCB7IElucHV0Q2FudmFzU2NhbGVFeGVjdXRpb24gfSBmcm9tICcuL2lucHV0LWNhbnZhcy1zY2FsZSc7XG5cbmV4cG9ydCBjb25zdCBGX0NBTlZBU19GRUFUVVJFUyA9IFtcblxuICBDZW50ZXJHcm91cE9yTm9kZUV4ZWN1dGlvbixcblxuICBGaXRUb0Zsb3dFeGVjdXRpb24sXG5cbiAgSW5wdXRDYW52YXNQb3NpdGlvbkV4ZWN1dGlvbixcblxuICBJbnB1dENhbnZhc1NjYWxlRXhlY3V0aW9uLFxuXG4gIFJlc2V0U2NhbGVFeGVjdXRpb24sXG5cbiAgUmVzZXRTY2FsZUFuZENlbnRlckV4ZWN1dGlvbixcblxuICBVcGRhdGVTY2FsZUV4ZWN1dGlvblxuXTtcbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export * from './reset-scale.execution';
2
+ export * from './reset-scale-request';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY2FudmFzL2RvbWFpbi9yZXNldC1zY2FsZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlCQUF5QixDQUFDO0FBRXhDLGNBQWMsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3Jlc2V0LXNjYWxlLmV4ZWN1dGlvbic7XG5cbmV4cG9ydCAqIGZyb20gJy4vcmVzZXQtc2NhbGUtcmVxdWVzdCc7XG4iXX0=
@@ -0,0 +1,3 @@
1
+ export class ResetScaleRequest {
2
+ }
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzZXQtc2NhbGUtcmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jYW52YXMvZG9tYWluL3Jlc2V0LXNjYWxlL3Jlc2V0LXNjYWxlLXJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLGlCQUFpQjtDQUM3QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBSZXNldFNjYWxlUmVxdWVzdCB7XG59XG4iXX0=
@@ -0,0 +1,29 @@
1
+ import { __decorate } from "tslib";
2
+ import { Injectable } from '@angular/core';
3
+ import { ResetScaleRequest } from './reset-scale-request';
4
+ import { FExecutionRegister } from '@foblex/mediator';
5
+ import { PointExtensions } from '@foblex/2d';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../../../f-storage";
8
+ let ResetScaleExecution = class ResetScaleExecution {
9
+ constructor(fComponentsStore) {
10
+ this.fComponentsStore = fComponentsStore;
11
+ }
12
+ get transform() {
13
+ return this.fComponentsStore.fCanvas.transform;
14
+ }
15
+ handle(request) {
16
+ this.transform.scale = 1;
17
+ this.transform.scaledPosition = PointExtensions.initialize();
18
+ }
19
+ };
20
+ ResetScaleExecution.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ResetScaleExecution, deps: [{ token: i1.FComponentsStore }], target: i0.ɵɵFactoryTarget.Injectable });
21
+ ResetScaleExecution.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ResetScaleExecution });
22
+ ResetScaleExecution = __decorate([
23
+ FExecutionRegister(ResetScaleRequest)
24
+ ], ResetScaleExecution);
25
+ export { ResetScaleExecution };
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ResetScaleExecution, decorators: [{
27
+ type: Injectable
28
+ }], ctorParameters: function () { return [{ type: i1.FComponentsStore }]; } });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzZXQtc2NhbGUuZXhlY3V0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNhbnZhcy9kb21haW4vcmVzZXQtc2NhbGUvcmVzZXQtc2NhbGUuZXhlY3V0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxrQkFBa0IsRUFBYyxNQUFNLGtCQUFrQixDQUFDO0FBQ2xFLE9BQU8sRUFBbUIsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDOzs7SUFNakQsbUJBQW1CLFNBQW5CLG1CQUFtQjtJQU05QixZQUNVLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO0lBRTVDLENBQUM7SUFQRCxJQUFZLFNBQVM7UUFDbkIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBUSxDQUFDLFNBQVMsQ0FBQztJQUNsRCxDQUFDO0lBT00sTUFBTSxDQUFDLE9BQTBCO1FBQ3RDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsR0FBRyxlQUFlLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDL0QsQ0FBQztDQUNGLENBQUE7aUhBZlksbUJBQW1CO3FIQUFuQixtQkFBbUI7QUFBbkIsbUJBQW1CO0lBRC9CLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDO0dBQ3pCLG1CQUFtQixDQWUvQjtTQWZZLG1CQUFtQjs0RkFBbkIsbUJBQW1CO2tCQUYvQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVzZXRTY2FsZVJlcXVlc3QgfSBmcm9tICcuL3Jlc2V0LXNjYWxlLXJlcXVlc3QnO1xuaW1wb3J0IHsgRkV4ZWN1dGlvblJlZ2lzdGVyLCBJRXhlY3V0aW9uIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBJVHJhbnNmb3JtTW9kZWwsIFBvaW50RXh0ZW5zaW9ucyB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uLy4uLy4uL2Ytc3RvcmFnZSc7XG5cblxuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihSZXNldFNjYWxlUmVxdWVzdClcbmV4cG9ydCBjbGFzcyBSZXNldFNjYWxlRXhlY3V0aW9uIGltcGxlbWVudHMgSUV4ZWN1dGlvbjxSZXNldFNjYWxlUmVxdWVzdCwgdm9pZD4ge1xuXG4gIHByaXZhdGUgZ2V0IHRyYW5zZm9ybSgpOiBJVHJhbnNmb3JtTW9kZWwge1xuICAgIHJldHVybiB0aGlzLmZDb21wb25lbnRzU3RvcmUuZkNhbnZhcyEudHJhbnNmb3JtO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmQ29tcG9uZW50c1N0b3JlOiBGQ29tcG9uZW50c1N0b3JlXG4gICkge1xuICB9XG5cbiAgcHVibGljIGhhbmRsZShyZXF1ZXN0OiBSZXNldFNjYWxlUmVxdWVzdCk6IHZvaWQge1xuICAgIHRoaXMudHJhbnNmb3JtLnNjYWxlID0gMTtcbiAgICB0aGlzLnRyYW5zZm9ybS5zY2FsZWRQb3NpdGlvbiA9IFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export * from './reset-scale-and-center.execution';
2
+ export * from './reset-scale-and-center-request';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY2FudmFzL2RvbWFpbi9yZXNldC1zY2FsZS1hbmQtY2VudGVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0NBQW9DLENBQUM7QUFFbkQsY0FBYyxrQ0FBa0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcmVzZXQtc2NhbGUtYW5kLWNlbnRlci5leGVjdXRpb24nO1xuXG5leHBvcnQgKiBmcm9tICcuL3Jlc2V0LXNjYWxlLWFuZC1jZW50ZXItcmVxdWVzdCc7XG4iXX0=
@@ -0,0 +1,6 @@
1
+ export class ResetScaleAndCenterRequest {
2
+ constructor(animated) {
3
+ this.animated = animated;
4
+ }
5
+ }
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzZXQtc2NhbGUtYW5kLWNlbnRlci1yZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNhbnZhcy9kb21haW4vcmVzZXQtc2NhbGUtYW5kLWNlbnRlci9yZXNldC1zY2FsZS1hbmQtY2VudGVyLXJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLDBCQUEwQjtJQUVyQyxZQUNTLFFBQWlCO1FBQWpCLGFBQVEsR0FBUixRQUFRLENBQVM7SUFFMUIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFJlc2V0U2NhbGVBbmRDZW50ZXJSZXF1ZXN0IHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgYW5pbWF0ZWQ6IGJvb2xlYW5cbiAgKSB7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,51 @@
1
+ import { __decorate } from "tslib";
2
+ import { Injectable } from '@angular/core';
3
+ import { ResetScaleAndCenterRequest } from './reset-scale-and-center-request';
4
+ import { FExecutionRegister } from '@foblex/mediator';
5
+ import { PointExtensions, RectExtensions } from '@foblex/2d';
6
+ import { F_CANVAS_ANIMATION_DURATION, GetNodesRectRequest } from '../../../domain';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "../../../f-storage";
9
+ import * as i2 from "@foblex/mediator";
10
+ let ResetScaleAndCenterExecution = class ResetScaleAndCenterExecution {
11
+ constructor(fComponentsStore, fMediator) {
12
+ this.fComponentsStore = fComponentsStore;
13
+ this.fMediator = fMediator;
14
+ }
15
+ get transform() {
16
+ return this.fComponentsStore.fCanvas.transform;
17
+ }
18
+ handle(request) {
19
+ const fNodesRect = this.fMediator.send(new GetNodesRectRequest()) || RectExtensions.initialize();
20
+ if (fNodesRect.width === 0 || fNodesRect.height === 0) {
21
+ return;
22
+ }
23
+ this.oneToOneCentering(fNodesRect, RectExtensions.fromElement(this.fComponentsStore.fFlow.hostElement), this.fComponentsStore.fNodes.map((x) => x.position));
24
+ request.animated ? this.fComponentsStore.fCanvas.redrawWithAnimation() : this.fComponentsStore.fCanvas.redraw();
25
+ this.fComponentsStore.fCanvas.emitCanvasChangeEvent();
26
+ setTimeout(() => this.fComponentsStore.componentDataChanged(), F_CANVAS_ANIMATION_DURATION);
27
+ }
28
+ oneToOneCentering(rect, parentRect, points) {
29
+ this.transform.scaledPosition = PointExtensions.initialize();
30
+ this.transform.position = this.getZeroPositionWithoutScale(points);
31
+ const newX = (parentRect.width - rect.width / this.transform.scale) / 2 - this.transform.position.x;
32
+ const newY = (parentRect.height - rect.height / this.transform.scale) / 2 - this.transform.position.y;
33
+ this.transform.scale = 1;
34
+ this.transform.position = PointExtensions.initialize(newX, newY);
35
+ }
36
+ getZeroPositionWithoutScale(points) {
37
+ const xPoint = points.length ? Math.min(...points.map((point) => point.x)) : 0;
38
+ const yPoint = points.length ? Math.min(...points.map((point) => point.y)) : 0;
39
+ return PointExtensions.initialize(xPoint, yPoint);
40
+ }
41
+ };
42
+ ResetScaleAndCenterExecution.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ResetScaleAndCenterExecution, deps: [{ token: i1.FComponentsStore }, { token: i2.FMediator }], target: i0.ɵɵFactoryTarget.Injectable });
43
+ ResetScaleAndCenterExecution.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ResetScaleAndCenterExecution });
44
+ ResetScaleAndCenterExecution = __decorate([
45
+ FExecutionRegister(ResetScaleAndCenterRequest)
46
+ ], ResetScaleAndCenterExecution);
47
+ export { ResetScaleAndCenterExecution };
48
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ResetScaleAndCenterExecution, decorators: [{
49
+ type: Injectable
50
+ }], ctorParameters: function () { return [{ type: i1.FComponentsStore }, { type: i2.FMediator }]; } });
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzZXQtc2NhbGUtYW5kLWNlbnRlci5leGVjdXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY2FudmFzL2RvbWFpbi9yZXNldC1zY2FsZS1hbmQtY2VudGVyL3Jlc2V0LXNjYWxlLWFuZC1jZW50ZXIuZXhlY3V0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxrQkFBa0IsRUFBeUIsTUFBTSxrQkFBa0IsQ0FBQztBQUM3RSxPQUFPLEVBQWtDLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDN0YsT0FBTyxFQUFFLDJCQUEyQixFQUFFLG1CQUFtQixFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7SUFNdEUsNEJBQTRCLFNBQTVCLDRCQUE0QjtJQU12QyxZQUNVLGdCQUFrQyxFQUNsQyxTQUFvQjtRQURwQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGNBQVMsR0FBVCxTQUFTLENBQVc7SUFFOUIsQ0FBQztJQVJELElBQVksU0FBUztRQUNuQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFRLENBQUMsU0FBUyxDQUFDO0lBQ2xELENBQUM7SUFRTSxNQUFNLENBQUMsT0FBbUM7UUFDL0MsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQWUsSUFBSSxtQkFBbUIsRUFBRSxDQUFDLElBQUksY0FBYyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQy9HLElBQUksVUFBVSxDQUFDLEtBQUssS0FBSyxDQUFDLElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDckQsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLGlCQUFpQixDQUNwQixVQUFVLEVBQ1YsY0FBYyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBTSxDQUFDLFdBQVcsQ0FBQyxFQUNwRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUNwRCxDQUFDO1FBRUYsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQVEsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2xILElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFRLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUN2RCxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLG9CQUFvQixFQUFFLEVBQUUsMkJBQTJCLENBQUMsQ0FBQztJQUM5RixDQUFDO0lBRU0saUJBQWlCLENBQUMsSUFBVyxFQUFFLFVBQWlCLEVBQUUsTUFBZ0I7UUFDdkUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLEdBQUcsZUFBZSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQzdELElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVuRSxNQUFNLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDcEcsTUFBTSxJQUFJLEdBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBRXRHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsR0FBRyxlQUFlLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRU8sMkJBQTJCLENBQUMsTUFBZ0I7UUFDbEQsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0UsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0UsT0FBTyxlQUFlLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQTtJQUNuRCxDQUFDO0NBQ0YsQ0FBQTswSEE1Q1ksNEJBQTRCOzhIQUE1Qiw0QkFBNEI7QUFBNUIsNEJBQTRCO0lBRHhDLGtCQUFrQixDQUFDLDBCQUEwQixDQUFDO0dBQ2xDLDRCQUE0QixDQTRDeEM7U0E1Q1ksNEJBQTRCOzRGQUE1Qiw0QkFBNEI7a0JBRnhDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZXNldFNjYWxlQW5kQ2VudGVyUmVxdWVzdCB9IGZyb20gJy4vcmVzZXQtc2NhbGUtYW5kLWNlbnRlci1yZXF1ZXN0JztcbmltcG9ydCB7IEZFeGVjdXRpb25SZWdpc3RlciwgRk1lZGlhdG9yLCBJRXhlY3V0aW9uIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBJUG9pbnQsIElSZWN0LCBJVHJhbnNmb3JtTW9kZWwsIFBvaW50RXh0ZW5zaW9ucywgUmVjdEV4dGVuc2lvbnMgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IEZfQ0FOVkFTX0FOSU1BVElPTl9EVVJBVElPTiwgR2V0Tm9kZXNSZWN0UmVxdWVzdCB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vLi4vLi4vZi1zdG9yYWdlJztcblxuXG5ASW5qZWN0YWJsZSgpXG5ARkV4ZWN1dGlvblJlZ2lzdGVyKFJlc2V0U2NhbGVBbmRDZW50ZXJSZXF1ZXN0KVxuZXhwb3J0IGNsYXNzIFJlc2V0U2NhbGVBbmRDZW50ZXJFeGVjdXRpb24gaW1wbGVtZW50cyBJRXhlY3V0aW9uPFJlc2V0U2NhbGVBbmRDZW50ZXJSZXF1ZXN0LCB2b2lkPiB7XG5cbiAgcHJpdmF0ZSBnZXQgdHJhbnNmb3JtKCk6IElUcmFuc2Zvcm1Nb2RlbCB7XG4gICAgcmV0dXJuIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mQ2FudmFzIS50cmFuc2Zvcm07XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZDb21wb25lbnRzU3RvcmU6IEZDb21wb25lbnRzU3RvcmUsXG4gICAgcHJpdmF0ZSBmTWVkaWF0b3I6IEZNZWRpYXRvclxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGUocmVxdWVzdDogUmVzZXRTY2FsZUFuZENlbnRlclJlcXVlc3QpOiB2b2lkIHtcbiAgICBjb25zdCBmTm9kZXNSZWN0ID0gdGhpcy5mTWVkaWF0b3Iuc2VuZDxJUmVjdCB8IG51bGw+KG5ldyBHZXROb2Rlc1JlY3RSZXF1ZXN0KCkpIHx8IFJlY3RFeHRlbnNpb25zLmluaXRpYWxpemUoKTtcbiAgICBpZiAoZk5vZGVzUmVjdC53aWR0aCA9PT0gMCB8fCBmTm9kZXNSZWN0LmhlaWdodCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm9uZVRvT25lQ2VudGVyaW5nKFxuICAgICAgZk5vZGVzUmVjdCxcbiAgICAgIFJlY3RFeHRlbnNpb25zLmZyb21FbGVtZW50KHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mRmxvdyEuaG9zdEVsZW1lbnQpLFxuICAgICAgdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZOb2Rlcy5tYXAoKHgpID0+IHgucG9zaXRpb24pXG4gICAgKTtcblxuICAgIHJlcXVlc3QuYW5pbWF0ZWQgPyB0aGlzLmZDb21wb25lbnRzU3RvcmUuZkNhbnZhcyEucmVkcmF3V2l0aEFuaW1hdGlvbigpIDogdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZDYW52YXMhLnJlZHJhdygpO1xuICAgIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mQ2FudmFzIS5lbWl0Q2FudmFzQ2hhbmdlRXZlbnQoKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuZkNvbXBvbmVudHNTdG9yZS5jb21wb25lbnREYXRhQ2hhbmdlZCgpLCBGX0NBTlZBU19BTklNQVRJT05fRFVSQVRJT04pO1xuICB9XG5cbiAgcHVibGljIG9uZVRvT25lQ2VudGVyaW5nKHJlY3Q6IElSZWN0LCBwYXJlbnRSZWN0OiBJUmVjdCwgcG9pbnRzOiBJUG9pbnRbXSk6IHZvaWQge1xuICAgIHRoaXMudHJhbnNmb3JtLnNjYWxlZFBvc2l0aW9uID0gUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoKTtcbiAgICB0aGlzLnRyYW5zZm9ybS5wb3NpdGlvbiA9IHRoaXMuZ2V0WmVyb1Bvc2l0aW9uV2l0aG91dFNjYWxlKHBvaW50cyk7XG5cbiAgICBjb25zdCBuZXdYID0gKHBhcmVudFJlY3Qud2lkdGggLSByZWN0LndpZHRoIC8gdGhpcy50cmFuc2Zvcm0uc2NhbGUpIC8gMiAtIHRoaXMudHJhbnNmb3JtLnBvc2l0aW9uLng7XG4gICAgY29uc3QgbmV3WSA9IChwYXJlbnRSZWN0LmhlaWdodCAtIHJlY3QuaGVpZ2h0IC8gdGhpcy50cmFuc2Zvcm0uc2NhbGUpIC8gMiAtIHRoaXMudHJhbnNmb3JtLnBvc2l0aW9uLnk7XG5cbiAgICB0aGlzLnRyYW5zZm9ybS5zY2FsZSA9IDE7XG4gICAgdGhpcy50cmFuc2Zvcm0ucG9zaXRpb24gPSBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZShuZXdYLCBuZXdZKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0WmVyb1Bvc2l0aW9uV2l0aG91dFNjYWxlKHBvaW50czogSVBvaW50W10pOiBJUG9pbnQge1xuICAgIGNvbnN0IHhQb2ludCA9IHBvaW50cy5sZW5ndGggPyBNYXRoLm1pbiguLi5wb2ludHMubWFwKChwb2ludCkgPT4gcG9pbnQueCkpIDogMDtcbiAgICBjb25zdCB5UG9pbnQgPSBwb2ludHMubGVuZ3RoID8gTWF0aC5taW4oLi4ucG9pbnRzLm1hcCgocG9pbnQpID0+IHBvaW50LnkpKSA6IDA7XG4gICAgcmV0dXJuIFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKHhQb2ludCwgeVBvaW50KVxuICB9XG59XG4iXX0=
@@ -0,0 +1,3 @@
1
+ export * from './update-scale.execution';
2
+ export * from './update-scale-request';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY2FudmFzL2RvbWFpbi91cGRhdGUtc2NhbGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywwQkFBMEIsQ0FBQztBQUV6QyxjQUFjLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi91cGRhdGUtc2NhbGUuZXhlY3V0aW9uJztcblxuZXhwb3J0ICogZnJvbSAnLi91cGRhdGUtc2NhbGUtcmVxdWVzdCc7XG4iXX0=
@@ -0,0 +1,7 @@
1
+ export class UpdateScaleRequest {
2
+ constructor(scale, toPosition) {
3
+ this.scale = scale;
4
+ this.toPosition = toPosition;
5
+ }
6
+ }
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLXNjYWxlLXJlcXVlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY2FudmFzL2RvbWFpbi91cGRhdGUtc2NhbGUvdXBkYXRlLXNjYWxlLXJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLGtCQUFrQjtJQUU3QixZQUNTLEtBQWEsRUFDYixVQUFrQjtRQURsQixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2IsZUFBVSxHQUFWLFVBQVUsQ0FBUTtJQUUzQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJUG9pbnQgfSBmcm9tICdAZm9ibGV4LzJkJztcblxuZXhwb3J0IGNsYXNzIFVwZGF0ZVNjYWxlUmVxdWVzdCB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHNjYWxlOiBudW1iZXIsXG4gICAgcHVibGljIHRvUG9zaXRpb246IElQb2ludFxuICApIHtcbiAgfVxufVxuIl19
@@ -0,0 +1,34 @@
1
+ import { __decorate } from "tslib";
2
+ import { Injectable } from '@angular/core';
3
+ import { UpdateScaleRequest } from './update-scale-request';
4
+ import { FExecutionRegister } from '@foblex/mediator';
5
+ import { PointExtensions } from '@foblex/2d';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../../../f-storage";
8
+ let UpdateScaleExecution = class UpdateScaleExecution {
9
+ constructor(fComponentsStore) {
10
+ this.fComponentsStore = fComponentsStore;
11
+ }
12
+ get transform() {
13
+ return this.fComponentsStore.fCanvas.transform;
14
+ }
15
+ handle(request) {
16
+ if (request.scale !== this.transform.scale) {
17
+ const summaryPosition = PointExtensions.sum(this.transform.scaledPosition, this.transform.position);
18
+ const newX = request.toPosition.x - (request.toPosition.x - summaryPosition.x) * request.scale / this.transform.scale;
19
+ const newY = request.toPosition.y - (request.toPosition.y - summaryPosition.y) * request.scale / this.transform.scale;
20
+ this.transform.scale = request.scale;
21
+ this.transform.scaledPosition = PointExtensions.sub(PointExtensions.initialize(newX, newY), this.transform.position);
22
+ }
23
+ }
24
+ };
25
+ UpdateScaleExecution.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: UpdateScaleExecution, deps: [{ token: i1.FComponentsStore }], target: i0.ɵɵFactoryTarget.Injectable });
26
+ UpdateScaleExecution.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: UpdateScaleExecution });
27
+ UpdateScaleExecution = __decorate([
28
+ FExecutionRegister(UpdateScaleRequest)
29
+ ], UpdateScaleExecution);
30
+ export { UpdateScaleExecution };
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: UpdateScaleExecution, decorators: [{
32
+ type: Injectable
33
+ }], ctorParameters: function () { return [{ type: i1.FComponentsStore }]; } });
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLXNjYWxlLmV4ZWN1dGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jYW52YXMvZG9tYWluL3VwZGF0ZS1zY2FsZS91cGRhdGUtc2NhbGUuZXhlY3V0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxrQkFBa0IsRUFBYyxNQUFNLGtCQUFrQixDQUFDO0FBQ2xFLE9BQU8sRUFBbUIsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDOzs7SUFNakQsb0JBQW9CLFNBQXBCLG9CQUFvQjtJQU0vQixZQUNVLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO0lBRTVDLENBQUM7SUFQRCxJQUFZLFNBQVM7UUFDbkIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBUSxDQUFDLFNBQVMsQ0FBQztJQUNsRCxDQUFDO0lBT00sTUFBTSxDQUFDLE9BQTJCO1FBQ3ZDLElBQUksT0FBTyxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRTtZQUUxQyxNQUFNLGVBQWUsR0FBRyxlQUFlLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFcEcsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxlQUFlLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztZQUN0SCxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLGVBQWUsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO1lBRXRILElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDckMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLEdBQUcsZUFBZSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3RIO0lBQ0gsQ0FBQztDQUNGLENBQUE7a0hBdkJZLG9CQUFvQjtzSEFBcEIsb0JBQW9CO0FBQXBCLG9CQUFvQjtJQURoQyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQztHQUMxQixvQkFBb0IsQ0F1QmhDO1NBdkJZLG9CQUFvQjs0RkFBcEIsb0JBQW9CO2tCQUZoQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVXBkYXRlU2NhbGVSZXF1ZXN0IH0gZnJvbSAnLi91cGRhdGUtc2NhbGUtcmVxdWVzdCc7XG5pbXBvcnQgeyBGRXhlY3V0aW9uUmVnaXN0ZXIsIElFeGVjdXRpb24gfSBmcm9tICdAZm9ibGV4L21lZGlhdG9yJztcbmltcG9ydCB7IElUcmFuc2Zvcm1Nb2RlbCwgUG9pbnRFeHRlbnNpb25zIH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vLi4vLi4vZi1zdG9yYWdlJztcblxuXG5ASW5qZWN0YWJsZSgpXG5ARkV4ZWN1dGlvblJlZ2lzdGVyKFVwZGF0ZVNjYWxlUmVxdWVzdClcbmV4cG9ydCBjbGFzcyBVcGRhdGVTY2FsZUV4ZWN1dGlvbiBpbXBsZW1lbnRzIElFeGVjdXRpb248VXBkYXRlU2NhbGVSZXF1ZXN0LCB2b2lkPiB7XG5cbiAgcHJpdmF0ZSBnZXQgdHJhbnNmb3JtKCk6IElUcmFuc2Zvcm1Nb2RlbCB7XG4gICAgcmV0dXJuIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mQ2FudmFzIS50cmFuc2Zvcm07XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZDb21wb25lbnRzU3RvcmU6IEZDb21wb25lbnRzU3RvcmVcbiAgKSB7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlKHJlcXVlc3Q6IFVwZGF0ZVNjYWxlUmVxdWVzdCk6IHZvaWQge1xuICAgIGlmIChyZXF1ZXN0LnNjYWxlICE9PSB0aGlzLnRyYW5zZm9ybS5zY2FsZSkge1xuXG4gICAgICBjb25zdCBzdW1tYXJ5UG9zaXRpb24gPSBQb2ludEV4dGVuc2lvbnMuc3VtKHRoaXMudHJhbnNmb3JtLnNjYWxlZFBvc2l0aW9uLCB0aGlzLnRyYW5zZm9ybS5wb3NpdGlvbik7XG5cbiAgICAgIGNvbnN0IG5ld1ggPSByZXF1ZXN0LnRvUG9zaXRpb24ueCAtIChyZXF1ZXN0LnRvUG9zaXRpb24ueCAtIHN1bW1hcnlQb3NpdGlvbi54KSAqIHJlcXVlc3Quc2NhbGUgLyB0aGlzLnRyYW5zZm9ybS5zY2FsZTtcbiAgICAgIGNvbnN0IG5ld1kgPSByZXF1ZXN0LnRvUG9zaXRpb24ueSAtIChyZXF1ZXN0LnRvUG9zaXRpb24ueSAtIHN1bW1hcnlQb3NpdGlvbi55KSAqIHJlcXVlc3Quc2NhbGUgLyB0aGlzLnRyYW5zZm9ybS5zY2FsZTtcblxuICAgICAgdGhpcy50cmFuc2Zvcm0uc2NhbGUgPSByZXF1ZXN0LnNjYWxlO1xuICAgICAgdGhpcy50cmFuc2Zvcm0uc2NhbGVkUG9zaXRpb24gPSBQb2ludEV4dGVuc2lvbnMuc3ViKFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKG5ld1gsIG5ld1kpLCB0aGlzLnRyYW5zZm9ybS5wb3NpdGlvbik7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,28 +1,25 @@
1
- import { mixinChangePosition, mixinChangeZoom, mixinFitToParent, mixinOneToOneCentering } from '../mixins';
2
1
  import { PointExtensions, TransformModelExtensions } from '@foblex/2d';
3
2
  import { Directive, InjectionToken } from '@angular/core';
4
3
  import { FCanvasChangeEvent } from './domain';
5
4
  import * as i0 from "@angular/core";
6
5
  export const F_CANVAS = new InjectionToken('F_CANVAS');
7
- const MIXIN_BASE = mixinChangePosition(mixinFitToParent(mixinOneToOneCentering(mixinChangeZoom(class {
8
- constructor(transform) {
9
- this.transform = transform;
10
- }
11
- }))));
12
- export class FCanvasBase extends MIXIN_BASE {
6
+ export class FCanvasBase {
13
7
  constructor() {
14
- super(TransformModelExtensions.default());
8
+ this.transform = TransformModelExtensions.default();
9
+ }
10
+ getPosition() {
11
+ return this.transform.position;
15
12
  }
16
- completeDrag() {
17
- this.fCanvasChange.emit(new FCanvasChangeEvent(this.getCanvasPosition(), this.transform.scale));
13
+ setPosition(position) {
14
+ this.transform.position = position;
18
15
  }
19
- getCanvasPosition() {
20
- return PointExtensions.sum(this.transform.position, this.transform.scaledPosition);
16
+ emitCanvasChangeEvent() {
17
+ this.fCanvasChange.emit(new FCanvasChangeEvent(PointExtensions.sum(this.transform.position, this.transform.scaledPosition), this.transform.scale));
21
18
  }
22
19
  }
23
20
  FCanvasBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FCanvasBase, deps: [], target: i0.ɵɵFactoryTarget.Directive });
24
- FCanvasBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: FCanvasBase, usesInheritance: true, ngImport: i0 });
21
+ FCanvasBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: FCanvasBase, ngImport: i0 });
25
22
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FCanvasBase, decorators: [{
26
23
  type: Directive
27
- }], ctorParameters: function () { return []; } });
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jYW52YXMtYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jYW52YXMvZi1jYW52YXMtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsbUJBQW1CLEVBQ25CLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsc0JBQXNCLEVBQ3ZCLE1BQU0sV0FBVyxDQUFDO0FBQ25CLE9BQU8sRUFBbUIsZUFBZSxFQUFFLHdCQUF3QixFQUFVLE1BQU0sWUFBWSxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxTQUFTLEVBQTRCLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBSTlDLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxJQUFJLGNBQWMsQ0FBYyxVQUFVLENBQUMsQ0FBQztBQUVwRSxNQUFNLFVBQVUsR0FBRyxtQkFBbUIsQ0FDbEMsZ0JBQWdCLENBQ1osc0JBQXNCLENBQ2xCLGVBQWUsQ0FDWDtJQUNFLFlBQ1csU0FBMEI7UUFBMUIsY0FBUyxHQUFULFNBQVMsQ0FBaUI7SUFFckMsQ0FBQztDQUNGLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUd0QixNQUFNLE9BQWdCLFdBQ2xCLFNBQVEsVUFBVTtJQWVwQjtRQUNFLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFNTSxZQUFZO1FBQ2pCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUNuQixJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQ3pFLENBQUM7SUFDSixDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLE9BQU8sZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7O3lHQWhDbUIsV0FBVzs2RkFBWCxXQUFXOzRGQUFYLFdBQVc7a0JBRGhDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJQ2FuQ2hhbmdlUG9zaXRpb24sIElDYW5DaGFuZ2Vab29tLCBJQ2FuRml0VG9QYXJlbnQsIElDYW5PbmVUb09uZUNlbnRlcmluZyxcbiAgbWl4aW5DaGFuZ2VQb3NpdGlvbixcbiAgbWl4aW5DaGFuZ2Vab29tLFxuICBtaXhpbkZpdFRvUGFyZW50LFxuICBtaXhpbk9uZVRvT25lQ2VudGVyaW5nXG59IGZyb20gJy4uL21peGlucyc7XG5pbXBvcnQgeyBJVHJhbnNmb3JtTW9kZWwsIFBvaW50RXh0ZW5zaW9ucywgVHJhbnNmb3JtTW9kZWxFeHRlbnNpb25zLCBJUG9pbnQgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRkNhbnZhc0NoYW5nZUV2ZW50IH0gZnJvbSAnLi9kb21haW4nO1xuaW1wb3J0IHsgRk5vZGVCYXNlIH0gZnJvbSAnLi4vZi1ub2RlJztcbmltcG9ydCB7IElIYXNIb3N0RWxlbWVudCB9IGZyb20gJy4uL2ktaGFzLWhvc3QtZWxlbWVudCc7XG5cbmV4cG9ydCBjb25zdCBGX0NBTlZBUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxGQ2FudmFzQmFzZT4oJ0ZfQ0FOVkFTJyk7XG5cbmNvbnN0IE1JWElOX0JBU0UgPSBtaXhpbkNoYW5nZVBvc2l0aW9uKFxuICAgIG1peGluRml0VG9QYXJlbnQoXG4gICAgICAgIG1peGluT25lVG9PbmVDZW50ZXJpbmcoXG4gICAgICAgICAgICBtaXhpbkNoYW5nZVpvb20oXG4gICAgICAgICAgICAgICAgY2xhc3Mge1xuICAgICAgICAgICAgICAgICAgY29uc3RydWN0b3IoXG4gICAgICAgICAgICAgICAgICAgICAgcHVibGljIHRyYW5zZm9ybTogSVRyYW5zZm9ybU1vZGVsXG4gICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KSkpKTtcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRkNhbnZhc0Jhc2VcbiAgICBleHRlbmRzIE1JWElOX0JBU0VcbiAgICBpbXBsZW1lbnRzIElIYXNIb3N0RWxlbWVudCwgSUNhbkNoYW5nZVBvc2l0aW9uLCBJQ2FuRml0VG9QYXJlbnQsIElDYW5PbmVUb09uZUNlbnRlcmluZywgSUNhbkNoYW5nZVpvb20ge1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmQ2FudmFzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RkNhbnZhc0NoYW5nZUV2ZW50PjtcblxuICBwdWJsaWMgYWJzdHJhY3QgZk5vZGVzOiBGTm9kZUJhc2VbXTtcblxuICBwdWJsaWMgYWJzdHJhY3QgaG9zdEVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmR3JvdXBzQ29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBwdWJsaWMgYWJzdHJhY3QgZk5vZGVzQ29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBwdWJsaWMgYWJzdHJhY3QgZkNvbm5lY3Rpb25zQ29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoVHJhbnNmb3JtTW9kZWxFeHRlbnNpb25zLmRlZmF1bHQoKSk7XG4gIH1cblxuICBwdWJsaWMgYWJzdHJhY3QgcmVkcmF3KCk6IHZvaWQ7XG5cbiAgcHVibGljIGFic3RyYWN0IHJlZHJhd1dpdGhBbmltYXRpb24oKTogdm9pZDtcblxuICBwdWJsaWMgY29tcGxldGVEcmFnKCk6IHZvaWQge1xuICAgIHRoaXMuZkNhbnZhc0NoYW5nZS5lbWl0KFxuICAgICAgICBuZXcgRkNhbnZhc0NoYW5nZUV2ZW50KHRoaXMuZ2V0Q2FudmFzUG9zaXRpb24oKSwgdGhpcy50cmFuc2Zvcm0uc2NhbGUpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2FudmFzUG9zaXRpb24oKTogSVBvaW50IHtcbiAgICByZXR1cm4gUG9pbnRFeHRlbnNpb25zLnN1bSh0aGlzLnRyYW5zZm9ybS5wb3NpdGlvbiwgdGhpcy50cmFuc2Zvcm0uc2NhbGVkUG9zaXRpb24pO1xuICB9XG59XG4iXX0=
24
+ }] });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jYW52YXMtYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jYW52YXMvZi1jYW52YXMtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLHdCQUF3QixFQUFVLE1BQU0sWUFBWSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxTQUFTLEVBQTRCLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBSTlDLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxJQUFJLGNBQWMsQ0FBYyxVQUFVLENBQUMsQ0FBQztBQUlwRSxNQUFNLE9BQWdCLFdBQVc7SUFEakM7UUFlUyxjQUFTLEdBQUcsd0JBQXdCLENBQUMsT0FBTyxFQUFFLENBQUM7S0F1QnZEO0lBakJRLFdBQVc7UUFDaEIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQztJQUNqQyxDQUFDO0lBRU0sV0FBVyxDQUFDLFFBQWdCO1FBQ2pDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUNyQyxDQUFDO0lBTU0scUJBQXFCO1FBQzFCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUNuQixJQUFJLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUM1SCxDQUFDO0lBQ0osQ0FBQzs7eUdBcENtQixXQUFXOzZGQUFYLFdBQVc7NEZBQVgsV0FBVztrQkFEaEMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBvaW50RXh0ZW5zaW9ucywgVHJhbnNmb3JtTW9kZWxFeHRlbnNpb25zLCBJUG9pbnQgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRkNhbnZhc0NoYW5nZUV2ZW50IH0gZnJvbSAnLi9kb21haW4nO1xuaW1wb3J0IHsgRk5vZGVCYXNlIH0gZnJvbSAnLi4vZi1ub2RlJztcbmltcG9ydCB7IElIYXNIb3N0RWxlbWVudCB9IGZyb20gJy4uL2ktaGFzLWhvc3QtZWxlbWVudCc7XG5cbmV4cG9ydCBjb25zdCBGX0NBTlZBUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxGQ2FudmFzQmFzZT4oJ0ZfQ0FOVkFTJyk7XG5cblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRkNhbnZhc0Jhc2UgaW1wbGVtZW50cyBJSGFzSG9zdEVsZW1lbnQge1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmQ2FudmFzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RkNhbnZhc0NoYW5nZUV2ZW50PjtcblxuICBwdWJsaWMgYWJzdHJhY3QgZk5vZGVzOiBGTm9kZUJhc2VbXTtcblxuICBwdWJsaWMgYWJzdHJhY3QgaG9zdEVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmR3JvdXBzQ29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBwdWJsaWMgYWJzdHJhY3QgZk5vZGVzQ29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBwdWJsaWMgYWJzdHJhY3QgZkNvbm5lY3Rpb25zQ29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBwdWJsaWMgdHJhbnNmb3JtID0gVHJhbnNmb3JtTW9kZWxFeHRlbnNpb25zLmRlZmF1bHQoKTtcblxuICBwdWJsaWMgYWJzdHJhY3QgcmVkcmF3KCk6IHZvaWQ7XG5cbiAgcHVibGljIGFic3RyYWN0IHJlZHJhd1dpdGhBbmltYXRpb24oKTogdm9pZDtcblxuICBwdWJsaWMgZ2V0UG9zaXRpb24oKTogSVBvaW50IHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2Zvcm0ucG9zaXRpb247XG4gIH1cblxuICBwdWJsaWMgc2V0UG9zaXRpb24ocG9zaXRpb246IElQb2ludCk6IHZvaWQge1xuICAgIHRoaXMudHJhbnNmb3JtLnBvc2l0aW9uID0gcG9zaXRpb247XG4gIH1cblxuICBwdWJsaWMgYWJzdHJhY3Qgc2V0Wm9vbShzY2FsZTogbnVtYmVyLCB0b1Bvc2l0aW9uOiBJUG9pbnQpOiB2b2lkO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCByZXNldFpvb20oKTogdm9pZDtcblxuICBwdWJsaWMgZW1pdENhbnZhc0NoYW5nZUV2ZW50KCk6IHZvaWQge1xuICAgIHRoaXMuZkNhbnZhc0NoYW5nZS5lbWl0KFxuICAgICAgICBuZXcgRkNhbnZhc0NoYW5nZUV2ZW50KFBvaW50RXh0ZW5zaW9ucy5zdW0odGhpcy50cmFuc2Zvcm0ucG9zaXRpb24sIHRoaXMudHJhbnNmb3JtLnNjYWxlZFBvc2l0aW9uKSwgdGhpcy50cmFuc2Zvcm0uc2NhbGUpXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -1,7 +1,8 @@
1
1
  import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild, } from "@angular/core";
2
2
  import { FCanvasBase, F_CANVAS } from './f-canvas-base';
3
- import { Point, PointExtensions, RectExtensions, TransformModelExtensions } from '@foblex/2d';
4
- import { CenterGroupOrNodeRequest, EmitTransformChangesRequest, F_CANVAS_ANIMATION_DURATION, GetNodesRectRequest } from '../domain';
3
+ import { PointExtensions, TransformModelExtensions } from '@foblex/2d';
4
+ import { CenterGroupOrNodeRequest, FitToFlowRequest, InputCanvasPositionRequest, InputCanvasScaleRequest, ResetScaleAndCenterRequest, ResetScaleRequest, UpdateScaleRequest } from './domain';
5
+ import { EmitTransformChangesRequest, F_CANVAS_ANIMATION_DURATION, } from '../domain';
5
6
  import * as i0 from "@angular/core";
6
7
  import * as i1 from "@foblex/mediator";
7
8
  import * as i2 from "../f-storage";
@@ -14,22 +15,10 @@ export class FCanvasComponent extends FCanvasBase {
14
15
  this.fCanvasChange = new EventEmitter();
15
16
  }
16
17
  set position(value) {
17
- if (!value) {
18
- return;
19
- }
20
- const position = PointExtensions.sum(this.transform.position, this.transform.scaledPosition);
21
- if (!PointExtensions.isEqual(position, value)) {
22
- this.transform.position = value;
23
- this.transform.scaledPosition = PointExtensions.initialize();
24
- this.redraw();
25
- }
18
+ this.fMediator.send(new InputCanvasPositionRequest(this.transform, value));
26
19
  }
27
20
  set scale(value) {
28
- if (!value) {
29
- return;
30
- }
31
- this.transform.scale = value;
32
- this.redraw();
21
+ this.fMediator.send(new InputCanvasScaleRequest(this.transform, value));
33
22
  }
34
23
  get fNodes() {
35
24
  return this.fComponentsStore.fNodes;
@@ -58,36 +47,22 @@ export class FCanvasComponent extends FCanvasBase {
58
47
  this.fMediator.send(new CenterGroupOrNodeRequest(id, animated));
59
48
  }
60
49
  fitToScreen(toCenter = PointExtensions.initialize(), animated = true) {
61
- const fNodesRect = this.fMediator.send(new GetNodesRectRequest()) || RectExtensions.initialize();
62
- if (fNodesRect.width === 0 || fNodesRect.height === 0) {
63
- return;
64
- }
65
- this.fitToParent(fNodesRect, RectExtensions.fromElement(this.fComponentsStore.fFlow.hostElement), this.fNodes.map((x) => {
66
- return Point.fromPoint(x.position);
67
- }), toCenter);
68
- animated ? this.redrawWithAnimation() : this.redraw();
69
- this.completeDrag();
70
- setTimeout(() => {
71
- this.fComponentsStore.componentDataChanged();
72
- }, F_CANVAS_ANIMATION_DURATION);
50
+ this.fMediator.send(new FitToFlowRequest(toCenter, animated));
73
51
  }
74
- oneToOne() {
75
- const fNodesRect = this.fMediator.send(new GetNodesRectRequest()) || RectExtensions.initialize();
76
- if (fNodesRect.width === 0 || fNodesRect.height === 0) {
77
- return;
78
- }
79
- this.oneToOneCentering(fNodesRect, RectExtensions.fromElement(this.fComponentsStore.fFlow.hostElement), this.fNodes.map((x) => {
80
- return Point.fromPoint(x.position);
81
- }));
82
- this.redrawWithAnimation();
83
- this.completeDrag();
84
- setTimeout(() => {
85
- this.fComponentsStore.componentDataChanged();
86
- }, F_CANVAS_ANIMATION_DURATION);
52
+ resetScaleAndCenter(animated = true) {
53
+ this.fMediator.send(new ResetScaleAndCenterRequest(animated));
54
+ }
55
+ setZoom(scale, toPosition = PointExtensions.initialize()) {
56
+ this.fMediator.send(new UpdateScaleRequest(scale, toPosition));
57
+ }
58
+ resetZoom() {
59
+ this.fMediator.send(new ResetScaleRequest());
87
60
  }
88
61
  }
89
62
  FCanvasComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FCanvasComponent, deps: [{ token: i0.ElementRef }, { token: i1.FMediator }, { token: i2.FComponentsStore }], target: i0.ɵɵFactoryTarget.Component });
90
- FCanvasComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: FCanvasComponent, selector: "f-canvas", inputs: { position: "position", scale: "scale" }, outputs: { fCanvasChange: "fCanvasChange" }, host: { classAttribute: "f-component f-canvas" }, providers: [{ provide: F_CANVAS, useExisting: FCanvasComponent }], viewQueries: [{ propertyName: "fGroupsContainer", first: true, predicate: ["fGroupsContainer"], descendants: true, static: true }, { propertyName: "fNodesContainer", first: true, predicate: ["fNodesContainer"], descendants: true, static: true }, { propertyName: "fConnectionsContainer", first: true, predicate: ["fConnectionsContainer"], descendants: true, static: true }], exportAs: ["fComponent"], usesInheritance: true, ngImport: i0, template: "<ng-container>\n <div #fGroupsContainer>\n <ng-content select=\"[fGroup]\"></ng-content>\n </div>\n <div #fConnectionsContainer>\n <ng-content select=\"f-snap-connection\"></ng-content>\n <ng-content select=\"f-connection\"></ng-content>\n <ng-content select=\"f-connection-for-create\"></ng-content>\n </div>\n\n <div #fNodesContainer>\n <ng-content select=\"[fNode]\"></ng-content>\n </div>\n</ng-container>\n", styles: [":host{position:absolute;overflow:visible;width:100%;height:100%;left:0;top:0;transform-origin:0 0;pointer-events:none}:host.f-scaled-animate{transition:transform .09s}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
63
+ FCanvasComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: FCanvasComponent, selector: "f-canvas", inputs: { position: "position", scale: "scale" }, outputs: { fCanvasChange: "fCanvasChange" }, host: { classAttribute: "f-component f-canvas" }, providers: [
64
+ { provide: F_CANVAS, useExisting: FCanvasComponent }
65
+ ], viewQueries: [{ propertyName: "fGroupsContainer", first: true, predicate: ["fGroupsContainer"], descendants: true, static: true }, { propertyName: "fNodesContainer", first: true, predicate: ["fNodesContainer"], descendants: true, static: true }, { propertyName: "fConnectionsContainer", first: true, predicate: ["fConnectionsContainer"], descendants: true, static: true }], exportAs: ["fComponent"], usesInheritance: true, ngImport: i0, template: "<ng-container>\n <div #fGroupsContainer>\n <ng-content select=\"[fGroup]\"></ng-content>\n </div>\n <div #fConnectionsContainer>\n <ng-content select=\"f-snap-connection\"></ng-content>\n <ng-content select=\"f-connection\"></ng-content>\n <ng-content select=\"f-connection-for-create\"></ng-content>\n </div>\n\n <div #fNodesContainer>\n <ng-content select=\"[fNode]\"></ng-content>\n </div>\n</ng-container>\n", styles: [":host{position:absolute;overflow:visible;width:100%;height:100%;left:0;top:0;transform-origin:0 0;pointer-events:none}:host.f-scaled-animate{transition:transform .09s}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
91
66
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FCanvasComponent, decorators: [{
92
67
  type: Component,
93
68
  args: [{
@@ -98,7 +73,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
98
73
  host: {
99
74
  'class': 'f-component f-canvas',
100
75
  },
101
- providers: [{ provide: F_CANVAS, useExisting: FCanvasComponent }],
76
+ providers: [
77
+ { provide: F_CANVAS, useExisting: FCanvasComponent }
78
+ ],
102
79
  changeDetection: ChangeDetectionStrategy.OnPush,
103
80
  }]
104
81
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.FMediator }, { type: i2.FComponentsStore }]; }, propDecorators: { fCanvasChange: [{
@@ -117,4 +94,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
117
94
  type: ViewChild,
118
95
  args: ['fConnectionsContainer', { static: true }]
119
96
  }] } });
120
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jYW52YXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNhbnZhcy9mLWNhbnZhcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY2FudmFzL2YtY2FudmFzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsR0FDdEUsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLFdBQVcsRUFBRSxRQUFRLEVBQ3RCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFpQixLQUFLLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUs3RyxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLDJCQUEyQixFQUMzQiwyQkFBMkIsRUFDM0IsbUJBQW1CLEVBQ3BCLE1BQU0sV0FBVyxDQUFDOzs7O0FBYW5CLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxXQUFXO0lBNEMvQyxZQUNVLGdCQUF5QyxFQUN6QyxTQUFvQixFQUNwQixnQkFBa0M7UUFFMUMsS0FBSyxFQUFFLENBQUM7UUFKQSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXlCO1FBQ3pDLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDcEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQTVDNUIsa0JBQWEsR0FBcUMsSUFBSSxZQUFZLEVBQXNCLENBQUM7SUErQ3pHLENBQUM7SUE3Q0QsSUFDVyxRQUFRLENBQUMsS0FBeUI7UUFDM0MsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNWLE9BQU87U0FDUjtRQUNELE1BQU0sUUFBUSxHQUFHLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FB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QWhCLGdCQUFnQixvTEFIaEIsQ0FBRSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLENBQUUsaWNDM0JyRSxrYkFjQTs0RkRnQmEsZ0JBQWdCO2tCQVg1QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxVQUFVO29CQUNwQixXQUFXLEVBQUUsMkJBQTJCO29CQUN4QyxTQUFTLEVBQUUsQ0FBRSwyQkFBMkIsQ0FBRTtvQkFDMUMsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLElBQUksRUFBRTt3QkFDSixPQUFPLEVBQUUsc0JBQXNCO3FCQUNoQztvQkFDRCxTQUFTLEVBQUUsQ0FBRSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxrQkFBa0IsRUFBRSxDQUFFO29CQUNuRSxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQ7d0pBSWlCLGFBQWE7c0JBRDVCLE1BQU07Z0JBSUksUUFBUTtzQkFEbEIsS0FBSztnQkFjSyxLQUFLO3NCQURmLEtBQUs7Z0JBa0JVLGdCQUFnQjtzQkFEL0IsU0FBUzt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSS9CLGVBQWU7c0JBRDlCLFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUk5QixxQkFBcUI7c0JBRHBDLFNBQVM7dUJBQUMsdUJBQXVCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCxcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7XG4gIEZDYW52YXNCYXNlLCBGX0NBTlZBU1xufSBmcm9tICcuL2YtY2FudmFzLWJhc2UnO1xuaW1wb3J0IHsgSVBvaW50LCBJUmVjdCwgUG9pbnQsIFBvaW50RXh0ZW5zaW9ucywgUmVjdEV4dGVuc2lvbnMsIFRyYW5zZm9ybU1vZGVsRXh0ZW5zaW9ucyB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgRkNhbnZhc0NoYW5nZUV2ZW50IH0gZnJvbSAnLi9kb21haW4nO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQgeyBGTm9kZUJhc2UgfSBmcm9tICcuLi9mLW5vZGUnO1xuaW1wb3J0IHsgRk1lZGlhdG9yIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQge1xuICBDZW50ZXJHcm91cE9yTm9kZVJlcXVlc3QsXG4gIEVtaXRUcmFuc2Zvcm1DaGFuZ2VzUmVxdWVzdCxcbiAgRl9DQU5WQVNfQU5JTUFUSU9OX0RVUkFUSU9OLFxuICBHZXROb2Rlc1JlY3RSZXF1ZXN0XG59IGZyb20gJy4uL2RvbWFpbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2YtY2FudmFzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2YtY2FudmFzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbICcuL2YtY2FudmFzLmNvbXBvbmVudC5zY3NzJyBdLFxuICBleHBvcnRBczogJ2ZDb21wb25lbnQnLFxuICBob3N0OiB7XG4gICAgJ2NsYXNzJzogJ2YtY29tcG9uZW50IGYtY2FudmFzJyxcbiAgfSxcbiAgcHJvdmlkZXJzOiBbIHsgcHJvdmlkZTogRl9DQU5WQVMsIHVzZUV4aXN0aW5nOiBGQ2FudmFzQ29tcG9uZW50IH0gXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEZDYW52YXNDb21wb25lbnQgZXh0ZW5kcyBGQ2FudmFzQmFzZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBmQ2FudmFzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RkNhbnZhc0NoYW5nZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RkNhbnZhc0NoYW5nZUV2ZW50PigpO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgcG9zaXRpb24odmFsdWU6IElQb2ludCB8IHVuZGVmaW5lZCkge1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgcG9zaXRpb24gPSBQb2ludEV4dGVuc2lvbnMuc3VtKHRoaXMudHJhbnNmb3JtLnBvc2l0aW9uLCB0aGlzLnRyYW5zZm9ybS5zY2FsZWRQb3NpdGlvbik7XG4gICAgaWYgKCFQb2ludEV4dGVuc2lvbnMuaXNFcXVhbChwb3NpdGlvbiwgdmFsdWUpKSB7XG4gICAgICB0aGlzLnRyYW5zZm9ybS5wb3NpdGlvbiA9IHZhbHVlO1xuICAgICAgdGhpcy50cmFuc2Zvcm0uc2NhbGVkUG9zaXRpb24gPSBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgpO1xuICAgICAgdGhpcy5yZWRyYXcoKTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNjYWxlKHZhbHVlOiBudW1iZXIgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMudHJhbnNmb3JtLnNjYWxlID0gdmFsdWU7XG4gICAgdGhpcy5yZWRyYXcoKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgZk5vZGVzKCk6IEZOb2RlQmFzZVtdIHtcbiAgICByZXR1cm4gdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZOb2RlcztcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgaG9zdEVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWZlcmVuY2UubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ2ZHcm91cHNDb250YWluZXInLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgb3ZlcnJpZGUgZkdyb3Vwc0NvbnRhaW5lciE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIEBWaWV3Q2hpbGQoJ2ZOb2Rlc0NvbnRhaW5lcicsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHB1YmxpYyBvdmVycmlkZSBmTm9kZXNDb250YWluZXIhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBAVmlld0NoaWxkKCdmQ29ubmVjdGlvbnNDb250YWluZXInLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgb3ZlcnJpZGUgZkNvbm5lY3Rpb25zQ29udGFpbmVyITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmZXJlbmNlOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBwcml2YXRlIGZNZWRpYXRvcjogRk1lZGlhdG9yLFxuICAgIHByaXZhdGUgZkNvbXBvbmVudHNTdG9yZTogRkNvbXBvbmVudHNTdG9yZSxcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmZDb21wb25lbnRzU3RvcmUuZkNhbnZhcyA9IHRoaXM7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgcmVkcmF3KCk6IHZvaWQge1xuICAgIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mQmFja2dyb3VuZD8uc2V0VHJhbnNmb3JtKHRoaXMudHJhbnNmb3JtKTtcbiAgICB0aGlzLmhvc3RFbGVtZW50LnNldEF0dHJpYnV0ZShcInN0eWxlXCIsIGB0cmFuc2Zvcm06ICR7IFRyYW5zZm9ybU1vZGVsRXh0ZW5zaW9ucy50b1N0cmluZyh0aGlzLnRyYW5zZm9ybSkgfWApO1xuICAgIHRoaXMuZk1lZGlhdG9yLnNlbmQobmV3IEVtaXRUcmFuc2Zvcm1DaGFuZ2VzUmVxdWVzdCgpKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSByZWRyYXdXaXRoQW5pbWF0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mQmFja2dyb3VuZD8uc2V0VHJhbnNmb3JtKHRoaXMudHJhbnNmb3JtKTtcbiAgICB0aGlzLmhvc3RFbGVtZW50LnNldEF0dHJpYnV0ZShcInN0eWxlXCIsIGB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gJHsgRl9DQU5WQVNfQU5JTUFUSU9OX0RVUkFUSU9OIH1tcyBlYXNlLWluLW91dDsgdHJhbnNmb3JtOiAkeyBUcmFuc2Zvcm1Nb2RlbEV4dGVuc2lvbnMudG9TdHJpbmcodGhpcy50cmFuc2Zvcm0pIH1gKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMucmVkcmF3KCk7XG4gICAgfSwgRl9DQU5WQVNfQU5JTUFUSU9OX0RVUkFUSU9OKTtcbiAgfVxuXG4gIHB1YmxpYyBjZW50ZXJHcm91cE9yTm9kZShpZDogc3RyaW5nLCBhbmltYXRlZDogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcbiAgICB0aGlzLmZNZWRpYXRvci5zZW5kKG5ldyBDZW50ZXJHcm91cE9yTm9kZVJlcXVlc3QoaWQsIGFuaW1hdGVkKSk7XG4gIH1cblxuICBwdWJsaWMgZml0VG9TY3JlZW4odG9DZW50ZXI6IElQb2ludCA9IFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKCksIGFuaW1hdGVkOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xuICAgIGNvbnN0IGZOb2Rlc1JlY3QgPSB0aGlzLmZNZWRpYXRvci5zZW5kPElSZWN0IHwgbnVsbD4obmV3IEdldE5vZGVzUmVjdFJlcXVlc3QoKSkgfHwgUmVjdEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgpO1xuICAgIGlmIChmTm9kZXNSZWN0LndpZHRoID09PSAwIHx8IGZOb2Rlc1JlY3QuaGVpZ2h0ID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5maXRUb1BhcmVudChcbiAgICAgIGZOb2Rlc1JlY3QsXG4gICAgICBSZWN0RXh0ZW5zaW9ucy5mcm9tRWxlbWVudCh0aGlzLmZDb21wb25lbnRzU3RvcmUuZkZsb3chLmhvc3RFbGVtZW50KSxcbiAgICAgIHRoaXMuZk5vZGVzLm1hcCgoeCkgPT4ge1xuICAgICAgICByZXR1cm4gUG9pbnQuZnJvbVBvaW50KHgucG9zaXRpb24pXG4gICAgICB9KSxcbiAgICAgIHRvQ2VudGVyXG4gICAgKTtcbiAgICBhbmltYXRlZCA/IHRoaXMucmVkcmF3V2l0aEFuaW1hdGlvbigpIDogdGhpcy5yZWRyYXcoKTtcbiAgICB0aGlzLmNvbXBsZXRlRHJhZygpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5mQ29tcG9uZW50c1N0b3JlLmNvbXBvbmVudERhdGFDaGFuZ2VkKCk7XG4gICAgfSwgRl9DQU5WQVNfQU5JTUFUSU9OX0RVUkFUSU9OKTtcbiAgfVxuXG4gIHB1YmxpYyBvbmVUb09uZSgpOiB2b2lkIHtcbiAgICBjb25zdCBmTm9kZXNSZWN0ID0gdGhpcy5mTWVkaWF0b3Iuc2VuZDxJUmVjdCB8IG51bGw+KG5ldyBHZXROb2Rlc1JlY3RSZXF1ZXN0KCkpIHx8IFJlY3RFeHRlbnNpb25zLmluaXRpYWxpemUoKTtcbiAgICBpZiAoZk5vZGVzUmVjdC53aWR0aCA9PT0gMCB8fCBmTm9kZXNSZWN0LmhlaWdodCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm9uZVRvT25lQ2VudGVyaW5nKFxuICAgICAgZk5vZGVzUmVjdCxcbiAgICAgIFJlY3RFeHRlbnNpb25zLmZyb21FbGVtZW50KHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mRmxvdyEuaG9zdEVsZW1lbnQpLFxuICAgICAgdGhpcy5mTm9kZXMubWFwKCh4KSA9PiB7XG4gICAgICAgIHJldHVybiBQb2ludC5mcm9tUG9pbnQoeC5wb3NpdGlvbilcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLnJlZHJhd1dpdGhBbmltYXRpb24oKTtcbiAgICB0aGlzLmNvbXBsZXRlRHJhZygpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5mQ29tcG9uZW50c1N0b3JlLmNvbXBvbmVudERhdGFDaGFuZ2VkKCk7XG4gICAgfSwgRl9DQU5WQVNfQU5JTUFUSU9OX0RVUkFUSU9OKTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lcj5cbiAgPGRpdiAjZkdyb3Vwc0NvbnRhaW5lcj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZkdyb3VwXVwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG4gIDxkaXYgI2ZDb25uZWN0aW9uc0NvbnRhaW5lcj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJmLXNuYXAtY29ubmVjdGlvblwiPjwvbmctY29udGVudD5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJmLWNvbm5lY3Rpb25cIj48L25nLWNvbnRlbnQ+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZi1jb25uZWN0aW9uLWZvci1jcmVhdGVcIj48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuXG4gIDxkaXYgI2ZOb2Rlc0NvbnRhaW5lcj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZk5vZGVdXCI+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jYW52YXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNhbnZhcy9mLWNhbnZhcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY2FudmFzL2YtY2FudmFzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsR0FDdEUsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLFdBQVcsRUFBRSxRQUFRLEVBQ3RCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFVLGVBQWUsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMvRSxPQUFPLEVBQ0wsd0JBQXdCLEVBQ0osZ0JBQWdCLEVBQ3BDLDBCQUEwQixFQUMxQix1QkFBdUIsRUFBRSwwQkFBMEIsRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsRUFDM0YsTUFBTSxVQUFVLENBQUM7QUFJbEIsT0FBTyxFQUNMLDJCQUEyQixFQUMzQiwyQkFBMkIsR0FDNUIsTUFBTSxXQUFXLENBQUM7Ozs7QUFlbkIsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFdBQVc7SUFnQy9DLFlBQ1UsZ0JBQXlDLEVBQ3pDLFNBQW9CLEVBQ3BCLGdCQUFrQztRQUUxQyxLQUFLLEVBQUUsQ0FBQztRQUpBLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBeUI7UUFDekMsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNwQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBaEM1QixrQkFBYSxHQUFxQyxJQUFJLFlBQVksRUFBc0IsQ0FBQztJQW1DekcsQ0FBQztJQWpDRCxJQUNXLFFBQVEsQ0FBQyxLQUF5QjtRQUMzQyxJQUFJLENBQUMsU0FBUyxDQUFDLElB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QUFFLDJCQUEyQjtvQkFDeEMsU0FBUyxFQUFFLENBQUUsMkJBQTJCLENBQUU7b0JBQzFDLFFBQVEsRUFBRSxZQUFZO29CQUN0QixJQUFJLEVBQUU7d0JBQ0osT0FBTyxFQUFFLHNCQUFzQjtxQkFDaEM7b0JBQ0QsU0FBUyxFQUFFO3dCQUNULEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxXQUFXLGtCQUFrQixFQUFFO3FCQUNyRDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQ7d0pBSWlCLGFBQWE7c0JBRDVCLE1BQU07Z0JBSUksUUFBUTtzQkFEbEIsS0FBSztnQkFNSyxLQUFLO3NCQURmLEtBQUs7Z0JBY1UsZ0JBQWdCO3NCQUQvQixTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJL0IsZUFBZTtzQkFEOUIsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSTlCLHFCQUFxQjtzQkFEcEMsU0FBUzt1QkFBQyx1QkFBdUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtcbiAgRkNhbnZhc0Jhc2UsIEZfQ0FOVkFTXG59IGZyb20gJy4vZi1jYW52YXMtYmFzZSc7XG5pbXBvcnQgeyBJUG9pbnQsIFBvaW50RXh0ZW5zaW9ucywgVHJhbnNmb3JtTW9kZWxFeHRlbnNpb25zIH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQge1xuICBDZW50ZXJHcm91cE9yTm9kZVJlcXVlc3QsXG4gIEZDYW52YXNDaGFuZ2VFdmVudCwgRml0VG9GbG93UmVxdWVzdCxcbiAgSW5wdXRDYW52YXNQb3NpdGlvblJlcXVlc3QsXG4gIElucHV0Q2FudmFzU2NhbGVSZXF1ZXN0LCBSZXNldFNjYWxlQW5kQ2VudGVyUmVxdWVzdCwgUmVzZXRTY2FsZVJlcXVlc3QsIFVwZGF0ZVNjYWxlUmVxdWVzdFxufSBmcm9tICcuL2RvbWFpbic7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vZi1zdG9yYWdlJztcbmltcG9ydCB7IEZOb2RlQmFzZSB9IGZyb20gJy4uL2Ytbm9kZSc7XG5pbXBvcnQgeyBGTWVkaWF0b3IgfSBmcm9tICdAZm9ibGV4L21lZGlhdG9yJztcbmltcG9ydCB7XG4gIEVtaXRUcmFuc2Zvcm1DaGFuZ2VzUmVxdWVzdCxcbiAgRl9DQU5WQVNfQU5JTUFUSU9OX0RVUkFUSU9OLFxufSBmcm9tICcuLi9kb21haW4nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmLWNhbnZhcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9mLWNhbnZhcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWyAnLi9mLWNhbnZhcy5jb21wb25lbnQuc2NzcycgXSxcbiAgZXhwb3J0QXM6ICdmQ29tcG9uZW50JyxcbiAgaG9zdDoge1xuICAgICdjbGFzcyc6ICdmLWNvbXBvbmVudCBmLWNhbnZhcycsXG4gIH0sXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogRl9DQU5WQVMsIHVzZUV4aXN0aW5nOiBGQ2FudmFzQ29tcG9uZW50IH1cbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEZDYW52YXNDb21wb25lbnQgZXh0ZW5kcyBGQ2FudmFzQmFzZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBmQ2FudmFzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RkNhbnZhc0NoYW5nZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RkNhbnZhc0NoYW5nZUV2ZW50PigpO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgcG9zaXRpb24odmFsdWU6IElQb2ludCB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuZk1lZGlhdG9yLnNlbmQobmV3IElucHV0Q2FudmFzUG9zaXRpb25SZXF1ZXN0KHRoaXMudHJhbnNmb3JtLCB2YWx1ZSkpO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBzY2FsZSh2YWx1ZTogbnVtYmVyIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5mTWVkaWF0b3Iuc2VuZChuZXcgSW5wdXRDYW52YXNTY2FsZVJlcXVlc3QodGhpcy50cmFuc2Zvcm0sIHZhbHVlKSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IGZOb2RlcygpOiBGTm9kZUJhc2VbXSB7XG4gICAgcmV0dXJuIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mTm9kZXM7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IGhvc3RFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmZXJlbmNlLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBAVmlld0NoaWxkKCdmR3JvdXBzQ29udGFpbmVyJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHVibGljIG92ZXJyaWRlIGZHcm91cHNDb250YWluZXIhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBAVmlld0NoaWxkKCdmTm9kZXNDb250YWluZXInLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgb3ZlcnJpZGUgZk5vZGVzQ29udGFpbmVyITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgQFZpZXdDaGlsZCgnZkNvbm5lY3Rpb25zQ29udGFpbmVyJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHVibGljIG92ZXJyaWRlIGZDb25uZWN0aW9uc0NvbnRhaW5lciE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudFJlZmVyZW5jZTogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgcHJpdmF0ZSBmTWVkaWF0b3I6IEZNZWRpYXRvcixcbiAgICBwcml2YXRlIGZDb21wb25lbnRzU3RvcmU6IEZDb21wb25lbnRzU3RvcmUsXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZDYW52YXMgPSB0aGlzO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlZHJhdygpOiB2b2lkIHtcbiAgICB0aGlzLmZDb21wb25lbnRzU3RvcmUuZkJhY2tncm91bmQ/LnNldFRyYW5zZm9ybSh0aGlzLnRyYW5zZm9ybSk7XG4gICAgdGhpcy5ob3N0RWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJzdHlsZVwiLCBgdHJhbnNmb3JtOiAkeyBUcmFuc2Zvcm1Nb2RlbEV4dGVuc2lvbnMudG9TdHJpbmcodGhpcy50cmFuc2Zvcm0pIH1gKTtcbiAgICB0aGlzLmZNZWRpYXRvci5zZW5kKG5ldyBFbWl0VHJhbnNmb3JtQ2hhbmdlc1JlcXVlc3QoKSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgcmVkcmF3V2l0aEFuaW1hdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLmZDb21wb25lbnRzU3RvcmUuZkJhY2tncm91bmQ/LnNldFRyYW5zZm9ybSh0aGlzLnRyYW5zZm9ybSk7XG4gICAgdGhpcy5ob3N0RWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJzdHlsZVwiLCBgdHJhbnNpdGlvbjogdHJhbnNmb3JtICR7IEZfQ0FOVkFTX0FOSU1BVElPTl9EVVJBVElPTiB9bXMgZWFzZS1pbi1vdXQ7IHRyYW5zZm9ybTogJHsgVHJhbnNmb3JtTW9kZWxFeHRlbnNpb25zLnRvU3RyaW5nKHRoaXMudHJhbnNmb3JtKSB9YCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnJlZHJhdygpO1xuICAgIH0sIEZfQ0FOVkFTX0FOSU1BVElPTl9EVVJBVElPTik7XG4gIH1cblxuICBwdWJsaWMgY2VudGVyR3JvdXBPck5vZGUoaWQ6IHN0cmluZywgYW5pbWF0ZWQ6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XG4gICAgdGhpcy5mTWVkaWF0b3Iuc2VuZChuZXcgQ2VudGVyR3JvdXBPck5vZGVSZXF1ZXN0KGlkLCBhbmltYXRlZCkpO1xuICB9XG5cbiAgcHVibGljIGZpdFRvU2NyZWVuKHRvQ2VudGVyOiBJUG9pbnQgPSBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgpLCBhbmltYXRlZDogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcbiAgICB0aGlzLmZNZWRpYXRvci5zZW5kKG5ldyBGaXRUb0Zsb3dSZXF1ZXN0KHRvQ2VudGVyLCBhbmltYXRlZCkpO1xuICB9XG5cbiAgcHVibGljIHJlc2V0U2NhbGVBbmRDZW50ZXIoYW5pbWF0ZWQ6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XG4gICAgdGhpcy5mTWVkaWF0b3Iuc2VuZChuZXcgUmVzZXRTY2FsZUFuZENlbnRlclJlcXVlc3QoYW5pbWF0ZWQpKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBzZXRab29tKHNjYWxlOiBudW1iZXIsIHRvUG9zaXRpb246IElQb2ludCA9IFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKCkpOiB2b2lkIHtcbiAgICB0aGlzLmZNZWRpYXRvci5zZW5kKG5ldyBVcGRhdGVTY2FsZVJlcXVlc3Qoc2NhbGUsIHRvUG9zaXRpb24pKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSByZXNldFpvb20oKTogdm9pZCB7XG4gICAgdGhpcy5mTWVkaWF0b3Iuc2VuZChuZXcgUmVzZXRTY2FsZVJlcXVlc3QoKSk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXI+XG4gIDxkaXYgI2ZHcm91cHNDb250YWluZXI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ZHcm91cF1cIj48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuICA8ZGl2ICNmQ29ubmVjdGlvbnNDb250YWluZXI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZi1zbmFwLWNvbm5lY3Rpb25cIj48L25nLWNvbnRlbnQ+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZi1jb25uZWN0aW9uXCI+PC9uZy1jb250ZW50PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImYtY29ubmVjdGlvbi1mb3ItY3JlYXRlXCI+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cblxuICA8ZGl2ICNmTm9kZXNDb250YWluZXI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ZOb2RlXVwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -65,4 +65,4 @@ FConnectionBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", versio
65
65
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FConnectionBase, decorators: [{
66
66
  type: Directive
67
67
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.FConnectionFactory }]; } });
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb25uZWN0aW9uLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi9jb21tb24vZi1jb25uZWN0aW9uLWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQWlCLGNBQWMsRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDNUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQWdCL0IsT0FBTyxFQUVMLG9CQUFvQixFQUFFLHFCQUFxQixFQUM1QyxNQUFNLGNBQWMsQ0FBQzs7O0FBRXRCLE1BQU0sVUFBVSxHQUFHLG9CQUFvQixDQUNyQyxxQkFBcUIsQ0FDbkI7SUFDRSxZQUNTLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO0lBRWpDLENBQUM7Q0FDRixDQUFDLENBQUMsQ0FBQztBQUdSLE1BQU0sT0FBZ0IsZUFBZ0IsU0FBUSxVQUFVO0lBd0R0RCxZQUNFLGdCQUF5QyxFQUNqQyxRQUE0QjtRQUVwQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFGOUIsYUFBUSxHQUFSLFFBQVEsQ0FBb0I7UUF0Qy9CLFNBQUksR0FBVyxFQUFFLENBQUM7UUFFbEIsU0FBSSxHQUFVLGNBQWMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUVqQyxpQkFBWSxHQUFrQixJQUFJLE9BQU8sRUFBUSxDQUFDO1FBOEIxRCxxQkFBZ0IsR0FBVyxlQUFlLENBQUMsVUFBVSxFQUFFLENBQUM7SUFPaEUsQ0FBQztJQUVNLFVBQVU7UUFDZixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxVQUFVLENBQUMsT0FBaUM7O1FBQ2pELE9BQU8sQ0FBQyxNQUFBLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSwwQ0FBRSxTQUF5QixDQUFBLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFTSxPQUFPLENBQUMsTUFBYyxFQUFFLFVBQTZCLEVBQUUsTUFBYyxFQUFFLFVBQTZCOztRQUN6RyxJQUFJLENBQUMsSUFBSSxHQUFHLGNBQWMsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3RELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDOUUsSUFBSSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDO1FBQzVCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxVQUFVLENBQUMsZ0JBQWdCLElBQUksTUFBTSxDQUFDO1FBQzlELE1BQUEsTUFBQSxJQUFJLENBQUMsaUJBQWlCLDBDQUFFLGFBQWEsMENBQUUsWUFBWSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7SUFDL0csQ0FBQztJQUVPLGFBQWEsQ0FBQyxNQUFjLEVBQUUsVUFBNkIsRUFBRSxNQUFjLEVBQUUsVUFBNkI7UUFDaEgsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25ELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQ3pCO1lBQ0UsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2hCLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFO1NBQ3BFLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFTyxZQUFZLENBQUMsUUFBZ0I7UUFDbkMsT0FBTyxtRkFBb0YsUUFBUSxDQUFDLENBQUUsWUFBYSxRQUFRLENBQUMsQ0FBRSxJQUFJLENBQUM7SUFDckksQ0FBQztJQUVlLFdBQVc7UUFDekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRWUsYUFBYTtRQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFTSxNQUFNO1FBQ1gsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7OzZHQTlHbUIsZUFBZTtpR0FBZixlQUFlOzRGQUFmLGVBQWU7a0JBRHBDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElMaW5lLCBJUG9pbnQsIExpbmVFeHRlbnNpb25zLCBQb2ludEV4dGVuc2lvbnMgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEVGQ29ubmVjdGlvbkJlaGF2aW9yIH0gZnJvbSAnLi9lLWYtY29ubmVjdGlvbi1iZWhhdmlvcic7XG5pbXBvcnQgeyBFRkNvbm5lY3Rpb25UeXBlIH0gZnJvbSAnLi9lLWYtY29ubmVjdGlvbi10eXBlJztcbmltcG9ydCB7IElIYXNDb25uZWN0aW9uQ29sb3IgfSBmcm9tICcuL2ktaGFzLWNvbm5lY3Rpb24tY29sb3InO1xuaW1wb3J0IHsgSUhhc0Nvbm5lY3Rpb25Gcm9tVG8gfSBmcm9tICcuL2ktaGFzLWNvbm5lY3Rpb24tZnJvbS10byc7XG5pbXBvcnQgeyBJSGFzQ29ubmVjdGlvblRleHQgfSBmcm9tICcuL2ktaGFzLWNvbm5lY3Rpb24tdGV4dCc7XG5pbXBvcnQgeyBJQ29ubmVjdGlvblBhdGggfSBmcm9tICcuL2YtcGF0aCc7XG5pbXBvcnQgeyBJQ29ubmVjdGlvbkdyYWRpZW50IH0gZnJvbSAnLi9mLWdyYWRpZW50JztcbmltcG9ydCB7IEZDb25uZWN0aW9uRHJhZ0hhbmRsZUNvbXBvbmVudCB9IGZyb20gJy4vZi1kcmFnLWhhbmRsZSc7XG5pbXBvcnQgeyBGQ29ubmVjdGlvblNlbGVjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vZi1zZWxlY3Rpb24nO1xuaW1wb3J0IHsgSUNvbm5lY3Rpb25UZXh0IH0gZnJvbSAnLi9mLWNvbm5lY3Rpb24tdGV4dCc7XG5pbXBvcnQgeyBJSGFzU3RhdGVDaGFuZ2VzIH0gZnJvbSAnLi4vLi4vaS1oYXMtc3RhdGUtY2hhbmdlcyc7XG5pbXBvcnQgeyBGTWFya2VyQmFzZSB9IGZyb20gJy4uL2YtbWFya2VyJztcbmltcG9ydCB7IEVGQ29ubmVjdGFibGVTaWRlIH0gZnJvbSAnLi4vLi4vZi1jb25uZWN0b3JzJztcbmltcG9ydCB7IEZDb25uZWN0aW9uRmFjdG9yeSB9IGZyb20gJy4uL2YtY29ubmVjdGlvbi1idWlsZGVyJztcbmltcG9ydCB7IElIYXNIb3N0RWxlbWVudCB9IGZyb20gJy4uLy4uL2ktaGFzLWhvc3QtZWxlbWVudCc7XG5pbXBvcnQge1xuICBJQ2FuQ2hhbmdlU2VsZWN0aW9uLCBJQ2FuQ2hhbmdlVmlzaWJpbGl0eSxcbiAgbWl4aW5DaGFuZ2VTZWxlY3Rpb24sIG1peGluQ2hhbmdlVmlzaWJpbGl0eVxufSBmcm9tICcuLi8uLi9taXhpbnMnO1xuXG5jb25zdCBNSVhJTl9CQVNFID0gbWl4aW5DaGFuZ2VTZWxlY3Rpb24oXG4gIG1peGluQ2hhbmdlVmlzaWJpbGl0eShcbiAgICBjbGFzcyB7XG4gICAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGhvc3RFbGVtZW50OiBIVE1MRWxlbWVudFxuICAgICAgKSB7XG4gICAgICB9XG4gICAgfSkpO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBGQ29ubmVjdGlvbkJhc2UgZXh0ZW5kcyBNSVhJTl9CQVNFXG4gIGltcGxlbWVudHMgSUhhc0hvc3RFbGVtZW50LCBJQ2FuQ2hhbmdlU2VsZWN0aW9uLFxuICAgICAgICAgICAgIElDYW5DaGFuZ2VWaXNpYmlsaXR5LFxuICAgICAgICAgICAgIElIYXNTdGF0ZUNoYW5nZXMsIElIYXNDb25uZWN0aW9uQ29sb3IsXG4gICAgICAgICAgICAgSUhhc0Nvbm5lY3Rpb25Gcm9tVG8sIElIYXNDb25uZWN0aW9uVGV4dCB7XG5cbiAgcHVibGljIGFic3RyYWN0IG92ZXJyaWRlIGZJZDogc3RyaW5nO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmU3RhcnRDb2xvcjogc3RyaW5nO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmRW5kQ29sb3I6IHN0cmluZztcblxuICBwdWJsaWMgYWJzdHJhY3QgZk91dHB1dElkOiBzdHJpbmc7XG5cbiAgcHVibGljIGFic3RyYWN0IGZJbnB1dElkOiBzdHJpbmc7XG5cbiAgcHVibGljIGFic3RyYWN0IGZSYWRpdXM6IG51bWJlcjtcblxuICBwdWJsaWMgYWJzdHJhY3QgZk9mZnNldDogbnVtYmVyO1xuXG4gIHB1YmxpYyBwYXRoOiBzdHJpbmcgPSAnJztcblxuICBwdWJsaWMgbGluZTogSUxpbmUgPSBMaW5lRXh0ZW5zaW9ucy5pbml0aWFsaXplKCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHN0YXRlQ2hhbmdlczogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHVibGljIGFic3RyYWN0IGZEcmFnZ2luZ0Rpc2FibGVkOiBib29sZWFuO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBvdmVycmlkZSBmU2VsZWN0aW9uRGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgcHVibGljIGFic3RyYWN0IGJvdW5kaW5nRWxlbWVudDogSFRNTEVsZW1lbnQgfCBTVkdFbGVtZW50O1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmQmVoYXZpb3I6IEVGQ29ubmVjdGlvbkJlaGF2aW9yO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmVHlwZTogRUZDb25uZWN0aW9uVHlwZTtcblxuICBwdWJsaWMgYWJzdHJhY3QgZkRlZnM6IEVsZW1lbnRSZWY8U1ZHRGVmc0VsZW1lbnQ+O1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmTWFya2VyczogRk1hcmtlckJhc2VbXTtcblxuICBwdWJsaWMgYWJzdHJhY3QgZlBhdGg6IElDb25uZWN0aW9uUGF0aDtcblxuICBwdWJsaWMgYWJzdHJhY3QgZkdyYWRpZW50OiBJQ29ubmVjdGlvbkdyYWRpZW50O1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmRHJhZ0hhbmRsZTogRkNvbm5lY3Rpb25EcmFnSGFuZGxlQ29tcG9uZW50O1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmU2VsZWN0aW9uOiBGQ29ubmVjdGlvblNlbGVjdGlvbkNvbXBvbmVudDtcblxuICBwdWJsaWMgYWJzdHJhY3QgZlRleHRDb21wb25lbnQ6IElDb25uZWN0aW9uVGV4dDtcblxuICBwdWJsaWMgYWJzdHJhY3QgZlRleHQ6IHN0cmluZztcblxuICBwdWJsaWMgYWJzdHJhY3QgZkNvbm5lY3Rpb25DZW50ZXI6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gIHByaXZhdGUgcGVudWx0aW1hdGVQb2ludDogSVBvaW50ID0gUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoKTtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoXG4gICAgZWxlbWVudFJlZmVyZW5jZTogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgcHJpdmF0ZSBjRmFjdG9yeTogRkNvbm5lY3Rpb25GYWN0b3J5XG4gICkge1xuICAgIHN1cGVyKGVsZW1lbnRSZWZlcmVuY2UubmF0aXZlRWxlbWVudCk7XG4gIH1cblxuICBwdWJsaWMgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmZQYXRoLmluaXRpYWxpemUoKTtcbiAgICB0aGlzLmZHcmFkaWVudC5pbml0aWFsaXplKCk7XG4gICAgdGhpcy5yZWRyYXcoKTtcbiAgfVxuXG4gIHB1YmxpYyBpc0NvbnRhaW5zKGVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgU1ZHRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAodGhpcy5ob3N0RWxlbWVudC5maXJzdENoaWxkPy5sYXN0Q2hpbGQgYXMgSFRNTEVsZW1lbnQpLmNvbnRhaW5zKGVsZW1lbnQpO1xuICB9XG5cbiAgcHVibGljIHNldExpbmUoc291cmNlOiBJUG9pbnQsIHNvdXJjZVNpZGU6IEVGQ29ubmVjdGFibGVTaWRlLCB0YXJnZXQ6IElQb2ludCwgdGFyZ2V0U2lkZTogRUZDb25uZWN0YWJsZVNpZGUpOiB2b2lkIHtcbiAgICB0aGlzLmxpbmUgPSBMaW5lRXh0ZW5zaW9ucy5pbml0aWFsaXplKHNvdXJjZSwgdGFyZ2V0KTtcbiAgICBjb25zdCBwYXRoUmVzdWx0ID0gdGhpcy5nZXRQYXRoUmVzdWx0KHNvdXJjZSwgc291cmNlU2lkZSwgdGFyZ2V0LCB0YXJnZXRTaWRlKTtcbiAgICB0aGlzLnBhdGggPSBwYXRoUmVzdWx0LnBhdGg7XG4gICAgdGhpcy5wZW51bHRpbWF0ZVBvaW50ID0gcGF0aFJlc3VsdC5wZW51bHRpbWF0ZVBvaW50IHx8IHNvdXJjZTtcbiAgICB0aGlzLmZDb25uZWN0aW9uQ2VudGVyPy5uYXRpdmVFbGVtZW50Py5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgdGhpcy5nZXRUcmFuc2Zvcm0ocGF0aFJlc3VsdC5jb25uZWN0aW9uQ2VudGVyKSk7XG4gIH1cblxuICBwcml2YXRlIGdldFBhdGhSZXN1bHQoc291cmNlOiBJUG9pbnQsIHNvdXJjZVNpZGU6IEVGQ29ubmVjdGFibGVTaWRlLCB0YXJnZXQ6IElQb2ludCwgdGFyZ2V0U2lkZTogRUZDb25uZWN0YWJsZVNpZGUpOiBhbnkge1xuICAgIGNvbnN0IHJhZGl1cyA9IHRoaXMuZlJhZGl1cyA+IDAgPyB0aGlzLmZSYWRpdXMgOiAwO1xuICAgIGNvbnN0IG9mZnNldCA9IHRoaXMuZk9mZnNldCA+IDAgPyB0aGlzLmZPZmZzZXQgOiAxO1xuICAgIHJldHVybiB0aGlzLmNGYWN0b3J5LmhhbmRsZShcbiAgICAgIHtcbiAgICAgICAgdHlwZTogdGhpcy5mVHlwZSxcbiAgICAgICAgcGF5bG9hZDogeyBzb3VyY2UsIHNvdXJjZVNpZGUsIHRhcmdldCwgdGFyZ2V0U2lkZSwgcmFkaXVzLCBvZmZzZXQgfVxuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdldFRyYW5zZm9ybShwb3NpdGlvbjogSVBvaW50KTogc3RyaW5nIHtcbiAgICByZXR1cm4gYHBvc2l0aW9uOiBhYnNvbHV0ZTsgcG9pbnRlckV2ZW50czogYWxsOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsgbGVmdDogJHsgcG9zaXRpb24ueCB9cHg7IHRvcDogJHsgcG9zaXRpb24ueSB9cHhgO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHNlbGVjdENoaWxkKCk6IHZvaWQge1xuICAgIHRoaXMuZlBhdGguc2VsZWN0KCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZGVzZWxlY3RDaGlsZCgpOiB2b2lkIHtcbiAgICB0aGlzLmZQYXRoLmRlc2VsZWN0KCk7XG4gIH1cblxuICBwdWJsaWMgcmVkcmF3KCk6IHZvaWQge1xuICAgIHRoaXMuZlBhdGguc2V0UGF0aCh0aGlzLnBhdGgpO1xuICAgIHRoaXMuZlNlbGVjdGlvbi5zZXRQYXRoKHRoaXMucGF0aCk7XG4gICAgdGhpcy5mR3JhZGllbnQucmVkcmF3KHRoaXMubGluZSk7XG4gICAgdGhpcy5mRHJhZ0hhbmRsZS5yZWRyYXcodGhpcy5wZW51bHRpbWF0ZVBvaW50LCB0aGlzLmxpbmUucG9pbnQyKTtcbiAgICB0aGlzLmZUZXh0Q29tcG9uZW50LnJlZHJhdyh0aGlzLmxpbmUpO1xuICB9XG59XG4iXX0=
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb25uZWN0aW9uLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi9jb21tb24vZi1jb25uZWN0aW9uLWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQWlCLGNBQWMsRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDNUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQWdCL0IsT0FBTyxFQUVMLG9CQUFvQixFQUFFLHFCQUFxQixFQUM1QyxNQUFNLGNBQWMsQ0FBQzs7O0FBRXRCLE1BQU0sVUFBVSxHQUFHLG9CQUFvQixDQUNyQyxxQkFBcUIsQ0FDbkI7SUFDRSxZQUNTLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO0lBRWpDLENBQUM7Q0FDRixDQUFDLENBQUMsQ0FBQztBQUdSLE1BQU0sT0FBZ0IsZUFBZ0IsU0FBUSxVQUFVO0lBc0R0RCxZQUNFLGdCQUF5QyxFQUNqQyxRQUE0QjtRQUVwQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFGOUIsYUFBUSxHQUFSLFFBQVEsQ0FBb0I7UUFwQy9CLFNBQUksR0FBVyxFQUFFLENBQUM7UUFFbEIsU0FBSSxHQUFVLGNBQWMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUVqQyxpQkFBWSxHQUFrQixJQUFJLE9BQU8sRUFBUSxDQUFDO1FBNEIxRCxxQkFBZ0IsR0FBVyxlQUFlLENBQUMsVUFBVSxFQUFFLENBQUM7SUFPaEUsQ0FBQztJQUVNLFVBQVU7UUFDZixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxVQUFVLENBQUMsT0FBaUM7O1FBQ2pELE9BQU8sQ0FBQyxNQUFBLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSwwQ0FBRSxTQUF5QixDQUFBLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFTSxPQUFPLENBQUMsTUFBYyxFQUFFLFVBQTZCLEVBQUUsTUFBYyxFQUFFLFVBQTZCOztRQUN6RyxJQUFJLENBQUMsSUFBSSxHQUFHLGNBQWMsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3RELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDOUUsSUFBSSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDO1FBQzVCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxVQUFVLENBQUMsZ0JBQWdCLElBQUksTUFBTSxDQUFDO1FBQzlELE1BQUEsTUFBQSxJQUFJLENBQUMsaUJBQWlCLDBDQUFFLGFBQWEsMENBQUUsWUFBWSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7SUFDL0csQ0FBQztJQUVPLGFBQWEsQ0FBQyxNQUFjLEVBQUUsVUFBNkIsRUFBRSxNQUFjLEVBQUUsVUFBNkI7UUFDaEgsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25ELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQ3pCO1lBQ0UsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2hCLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFO1NBQ3BFLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFTyxZQUFZLENBQUMsUUFBZ0I7UUFDbkMsT0FBTyxtRkFBb0YsUUFBUSxDQUFDLENBQUUsWUFBYSxRQUFRLENBQUMsQ0FBRSxJQUFJLENBQUM7SUFDckksQ0FBQztJQUVlLFdBQVc7UUFDekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRWUsYUFBYTtRQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFTSxNQUFNO1FBQ1gsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7OzZHQTVHbUIsZUFBZTtpR0FBZixlQUFlOzRGQUFmLGVBQWU7a0JBRHBDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElMaW5lLCBJUG9pbnQsIExpbmVFeHRlbnNpb25zLCBQb2ludEV4dGVuc2lvbnMgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEVGQ29ubmVjdGlvbkJlaGF2aW9yIH0gZnJvbSAnLi9lLWYtY29ubmVjdGlvbi1iZWhhdmlvcic7XG5pbXBvcnQgeyBFRkNvbm5lY3Rpb25UeXBlIH0gZnJvbSAnLi9lLWYtY29ubmVjdGlvbi10eXBlJztcbmltcG9ydCB7IElIYXNDb25uZWN0aW9uQ29sb3IgfSBmcm9tICcuL2ktaGFzLWNvbm5lY3Rpb24tY29sb3InO1xuaW1wb3J0IHsgSUhhc0Nvbm5lY3Rpb25Gcm9tVG8gfSBmcm9tICcuL2ktaGFzLWNvbm5lY3Rpb24tZnJvbS10byc7XG5pbXBvcnQgeyBJSGFzQ29ubmVjdGlvblRleHQgfSBmcm9tICcuL2ktaGFzLWNvbm5lY3Rpb24tdGV4dCc7XG5pbXBvcnQgeyBJQ29ubmVjdGlvblBhdGggfSBmcm9tICcuL2YtcGF0aCc7XG5pbXBvcnQgeyBJQ29ubmVjdGlvbkdyYWRpZW50IH0gZnJvbSAnLi9mLWdyYWRpZW50JztcbmltcG9ydCB7IEZDb25uZWN0aW9uRHJhZ0hhbmRsZUNvbXBvbmVudCB9IGZyb20gJy4vZi1kcmFnLWhhbmRsZSc7XG5pbXBvcnQgeyBGQ29ubmVjdGlvblNlbGVjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vZi1zZWxlY3Rpb24nO1xuaW1wb3J0IHsgSUNvbm5lY3Rpb25UZXh0IH0gZnJvbSAnLi9mLWNvbm5lY3Rpb24tdGV4dCc7XG5pbXBvcnQgeyBJSGFzU3RhdGVDaGFuZ2VzIH0gZnJvbSAnLi4vLi4vaS1oYXMtc3RhdGUtY2hhbmdlcyc7XG5pbXBvcnQgeyBGTWFya2VyQmFzZSB9IGZyb20gJy4uL2YtbWFya2VyJztcbmltcG9ydCB7IEVGQ29ubmVjdGFibGVTaWRlIH0gZnJvbSAnLi4vLi4vZi1jb25uZWN0b3JzJztcbmltcG9ydCB7IEZDb25uZWN0aW9uRmFjdG9yeSB9IGZyb20gJy4uL2YtY29ubmVjdGlvbi1idWlsZGVyJztcbmltcG9ydCB7IElIYXNIb3N0RWxlbWVudCB9IGZyb20gJy4uLy4uL2ktaGFzLWhvc3QtZWxlbWVudCc7XG5pbXBvcnQge1xuICBJQ2FuQ2hhbmdlU2VsZWN0aW9uLCBJQ2FuQ2hhbmdlVmlzaWJpbGl0eSxcbiAgbWl4aW5DaGFuZ2VTZWxlY3Rpb24sIG1peGluQ2hhbmdlVmlzaWJpbGl0eVxufSBmcm9tICcuLi8uLi9taXhpbnMnO1xuXG5jb25zdCBNSVhJTl9CQVNFID0gbWl4aW5DaGFuZ2VTZWxlY3Rpb24oXG4gIG1peGluQ2hhbmdlVmlzaWJpbGl0eShcbiAgICBjbGFzcyB7XG4gICAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGhvc3RFbGVtZW50OiBIVE1MRWxlbWVudFxuICAgICAgKSB7XG4gICAgICB9XG4gICAgfSkpO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBGQ29ubmVjdGlvbkJhc2UgZXh0ZW5kcyBNSVhJTl9CQVNFXG4gIGltcGxlbWVudHMgSUhhc0hvc3RFbGVtZW50LCBJQ2FuQ2hhbmdlU2VsZWN0aW9uLFxuICAgICAgICAgICAgIElDYW5DaGFuZ2VWaXNpYmlsaXR5LFxuICAgICAgICAgICAgIElIYXNTdGF0ZUNoYW5nZXMsIElIYXNDb25uZWN0aW9uQ29sb3IsXG4gICAgICAgICAgICAgSUhhc0Nvbm5lY3Rpb25Gcm9tVG8sIElIYXNDb25uZWN0aW9uVGV4dCB7XG5cbiAgcHVibGljIGFic3RyYWN0IG92ZXJyaWRlIGZJZDogc3RyaW5nO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmU3RhcnRDb2xvcjogc3RyaW5nO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmRW5kQ29sb3I6IHN0cmluZztcblxuICBwdWJsaWMgYWJzdHJhY3QgZk91dHB1dElkOiBzdHJpbmc7XG5cbiAgcHVibGljIGFic3RyYWN0IGZJbnB1dElkOiBzdHJpbmc7XG5cbiAgcHVibGljIGFic3RyYWN0IGZSYWRpdXM6IG51bWJlcjtcblxuICBwdWJsaWMgYWJzdHJhY3QgZk9mZnNldDogbnVtYmVyO1xuXG4gIHB1YmxpYyBwYXRoOiBzdHJpbmcgPSAnJztcblxuICBwdWJsaWMgbGluZTogSUxpbmUgPSBMaW5lRXh0ZW5zaW9ucy5pbml0aWFsaXplKCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHN0YXRlQ2hhbmdlczogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHVibGljIGFic3RyYWN0IGZEcmFnZ2luZ0Rpc2FibGVkOiBib29sZWFuO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBvdmVycmlkZSBmU2VsZWN0aW9uRGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgcHVibGljIGFic3RyYWN0IGJvdW5kaW5nRWxlbWVudDogSFRNTEVsZW1lbnQgfCBTVkdFbGVtZW50O1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmQmVoYXZpb3I6IEVGQ29ubmVjdGlvbkJlaGF2aW9yO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmVHlwZTogRUZDb25uZWN0aW9uVHlwZTtcblxuICBwdWJsaWMgYWJzdHJhY3QgZkRlZnM6IEVsZW1lbnRSZWY8U1ZHRGVmc0VsZW1lbnQ+O1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmUGF0aDogSUNvbm5lY3Rpb25QYXRoO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmR3JhZGllbnQ6IElDb25uZWN0aW9uR3JhZGllbnQ7XG5cbiAgcHVibGljIGFic3RyYWN0IGZEcmFnSGFuZGxlOiBGQ29ubmVjdGlvbkRyYWdIYW5kbGVDb21wb25lbnQ7XG5cbiAgcHVibGljIGFic3RyYWN0IGZTZWxlY3Rpb246IEZDb25uZWN0aW9uU2VsZWN0aW9uQ29tcG9uZW50O1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmVGV4dENvbXBvbmVudDogSUNvbm5lY3Rpb25UZXh0O1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmVGV4dDogc3RyaW5nO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmQ29ubmVjdGlvbkNlbnRlcjogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgcHJpdmF0ZSBwZW51bHRpbWF0ZVBvaW50OiBJUG9pbnQgPSBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgpO1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihcbiAgICBlbGVtZW50UmVmZXJlbmNlOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBwcml2YXRlIGNGYWN0b3J5OiBGQ29ubmVjdGlvbkZhY3RvcnlcbiAgKSB7XG4gICAgc3VwZXIoZWxlbWVudFJlZmVyZW5jZS5uYXRpdmVFbGVtZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBpbml0aWFsaXplKCk6IHZvaWQge1xuICAgIHRoaXMuZlBhdGguaW5pdGlhbGl6ZSgpO1xuICAgIHRoaXMuZkdyYWRpZW50LmluaXRpYWxpemUoKTtcbiAgICB0aGlzLnJlZHJhdygpO1xuICB9XG5cbiAgcHVibGljIGlzQ29udGFpbnMoZWxlbWVudDogSFRNTEVsZW1lbnQgfCBTVkdFbGVtZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICh0aGlzLmhvc3RFbGVtZW50LmZpcnN0Q2hpbGQ/Lmxhc3RDaGlsZCBhcyBIVE1MRWxlbWVudCkuY29udGFpbnMoZWxlbWVudCk7XG4gIH1cblxuICBwdWJsaWMgc2V0TGluZShzb3VyY2U6IElQb2ludCwgc291cmNlU2lkZTogRUZDb25uZWN0YWJsZVNpZGUsIHRhcmdldDogSVBvaW50LCB0YXJnZXRTaWRlOiBFRkNvbm5lY3RhYmxlU2lkZSk6IHZvaWQge1xuICAgIHRoaXMubGluZSA9IExpbmVFeHRlbnNpb25zLmluaXRpYWxpemUoc291cmNlLCB0YXJnZXQpO1xuICAgIGNvbnN0IHBhdGhSZXN1bHQgPSB0aGlzLmdldFBhdGhSZXN1bHQoc291cmNlLCBzb3VyY2VTaWRlLCB0YXJnZXQsIHRhcmdldFNpZGUpO1xuICAgIHRoaXMucGF0aCA9IHBhdGhSZXN1bHQucGF0aDtcbiAgICB0aGlzLnBlbnVsdGltYXRlUG9pbnQgPSBwYXRoUmVzdWx0LnBlbnVsdGltYXRlUG9pbnQgfHwgc291cmNlO1xuICAgIHRoaXMuZkNvbm5lY3Rpb25DZW50ZXI/Lm5hdGl2ZUVsZW1lbnQ/LnNldEF0dHJpYnV0ZSgnc3R5bGUnLCB0aGlzLmdldFRyYW5zZm9ybShwYXRoUmVzdWx0LmNvbm5lY3Rpb25DZW50ZXIpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UGF0aFJlc3VsdChzb3VyY2U6IElQb2ludCwgc291cmNlU2lkZTogRUZDb25uZWN0YWJsZVNpZGUsIHRhcmdldDogSVBvaW50LCB0YXJnZXRTaWRlOiBFRkNvbm5lY3RhYmxlU2lkZSk6IGFueSB7XG4gICAgY29uc3QgcmFkaXVzID0gdGhpcy5mUmFkaXVzID4gMCA/IHRoaXMuZlJhZGl1cyA6IDA7XG4gICAgY29uc3Qgb2Zmc2V0ID0gdGhpcy5mT2Zmc2V0ID4gMCA/IHRoaXMuZk9mZnNldCA6IDE7XG4gICAgcmV0dXJuIHRoaXMuY0ZhY3RvcnkuaGFuZGxlKFxuICAgICAge1xuICAgICAgICB0eXBlOiB0aGlzLmZUeXBlLFxuICAgICAgICBwYXlsb2FkOiB7IHNvdXJjZSwgc291cmNlU2lkZSwgdGFyZ2V0LCB0YXJnZXRTaWRlLCByYWRpdXMsIG9mZnNldCB9XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VHJhbnNmb3JtKHBvc2l0aW9uOiBJUG9pbnQpOiBzdHJpbmcge1xuICAgIHJldHVybiBgcG9zaXRpb246IGFic29sdXRlOyBwb2ludGVyRXZlbnRzOiBhbGw7IHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOyBsZWZ0OiAkeyBwb3NpdGlvbi54IH1weDsgdG9wOiAkeyBwb3NpdGlvbi55IH1weGA7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgc2VsZWN0Q2hpbGQoKTogdm9pZCB7XG4gICAgdGhpcy5mUGF0aC5zZWxlY3QoKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBkZXNlbGVjdENoaWxkKCk6IHZvaWQge1xuICAgIHRoaXMuZlBhdGguZGVzZWxlY3QoKTtcbiAgfVxuXG4gIHB1YmxpYyByZWRyYXcoKTogdm9pZCB7XG4gICAgdGhpcy5mUGF0aC5zZXRQYXRoKHRoaXMucGF0aCk7XG4gICAgdGhpcy5mU2VsZWN0aW9uLnNldFBhdGgodGhpcy5wYXRoKTtcbiAgICB0aGlzLmZHcmFkaWVudC5yZWRyYXcodGhpcy5saW5lKTtcbiAgICB0aGlzLmZEcmFnSGFuZGxlLnJlZHJhdyh0aGlzLnBlbnVsdGltYXRlUG9pbnQsIHRoaXMubGluZS5wb2ludDIpO1xuICAgIHRoaXMuZlRleHRDb21wb25lbnQucmVkcmF3KHRoaXMubGluZSk7XG4gIH1cbn1cbiJdfQ==