@foblex/flow 17.0.0 → 17.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (589) hide show
  1. package/domain/f-background/add-background-to-store/add-background-to-store-request.d.ts +5 -0
  2. package/domain/f-background/add-background-to-store/add-background-to-store.execution.d.ts +9 -0
  3. package/domain/f-background/add-background-to-store/index.d.ts +2 -0
  4. package/domain/f-background/index.d.ts +3 -0
  5. package/domain/f-background/providers.d.ts +4 -1
  6. package/domain/f-background/remove-background-from-store/index.d.ts +2 -0
  7. package/domain/f-background/remove-background-from-store/remove-background-from-store-request.d.ts +5 -0
  8. package/domain/f-background/remove-background-from-store/remove-background-from-store.execution.d.ts +9 -0
  9. package/domain/f-background/set-background-transform/index.d.ts +2 -0
  10. package/domain/f-background/set-background-transform/set-background-transform-request.d.ts +5 -0
  11. package/domain/f-background/set-background-transform/set-background-transform.execution.d.ts +9 -0
  12. package/domain/f-canvas/add-canvas-to-store/add-canvas-to-store-request.d.ts +5 -0
  13. package/domain/f-canvas/add-canvas-to-store/add-canvas-to-store.execution.d.ts +9 -0
  14. package/domain/f-canvas/add-canvas-to-store/index.d.ts +2 -0
  15. package/domain/f-canvas/center-group-or-node/center-group-or-node.execution.d.ts +2 -3
  16. package/domain/f-canvas/fit-to-flow/fit-to-flow.execution.d.ts +3 -5
  17. package/domain/f-canvas/get-canvas/get-canvas-request.d.ts +2 -0
  18. package/domain/f-canvas/get-canvas/get-canvas.execution.d.ts +10 -0
  19. package/domain/f-canvas/get-canvas/index.d.ts +2 -0
  20. package/domain/f-canvas/index.d.ts +4 -0
  21. package/domain/f-canvas/input-canvas-position/input-canvas-position.execution.d.ts +1 -3
  22. package/domain/f-canvas/input-canvas-scale/input-canvas-scale.execution.d.ts +1 -3
  23. package/domain/f-canvas/providers.d.ts +5 -1
  24. package/domain/f-canvas/redraw-canvas-with-animation/index.d.ts +2 -0
  25. package/domain/f-canvas/redraw-canvas-with-animation/redraw-canvas-with-animation-request.d.ts +4 -0
  26. package/domain/f-canvas/redraw-canvas-with-animation/redraw-canvas-with-animation.execution.d.ts +12 -0
  27. package/domain/f-canvas/remove-canvas-from-store/index.d.ts +2 -0
  28. package/domain/f-canvas/remove-canvas-from-store/remove-canvas-from-store-request.d.ts +2 -0
  29. package/domain/f-canvas/remove-canvas-from-store/remove-canvas-from-store.execution.d.ts +9 -0
  30. package/domain/f-canvas/reset-scale/reset-scale.execution.d.ts +1 -3
  31. package/domain/f-canvas/reset-scale-and-center/reset-scale-and-center.execution.d.ts +3 -5
  32. package/domain/f-canvas/update-scale/update-scale.execution.d.ts +1 -3
  33. package/domain/f-connection/add-connection-for-create-to-store/add-connection-for-create-to-store-request.d.ts +5 -0
  34. package/domain/f-connection/add-connection-for-create-to-store/add-connection-for-create-to-store.execution.d.ts +9 -0
  35. package/domain/f-connection/add-connection-for-create-to-store/index.d.ts +2 -0
  36. package/domain/f-connection/add-connection-marker-to-store/add-connection-marker-to-store-request.d.ts +5 -0
  37. package/domain/f-connection/add-connection-marker-to-store/add-connection-marker-to-store.execution.d.ts +9 -0
  38. package/domain/f-connection/add-connection-marker-to-store/index.d.ts +2 -0
  39. package/domain/f-connection/add-connection-to-store/add-connection-to-store.execution.d.ts +1 -3
  40. package/domain/f-connection/add-snap-connection-to-store/add-snap-connection-to-store-request.d.ts +5 -0
  41. package/domain/f-connection/add-snap-connection-to-store/add-snap-connection-to-store.execution.d.ts +9 -0
  42. package/domain/f-connection/add-snap-connection-to-store/index.d.ts +2 -0
  43. package/domain/{create-connection-markers → f-connection/create-connection-markers}/create-connection-markers-request.d.ts +1 -1
  44. package/domain/{create-connection-markers → f-connection/create-connection-markers}/create-connection-markers.execution.d.ts +2 -2
  45. package/domain/f-connection/index.d.ts +8 -0
  46. package/domain/f-connection/providers.d.ts +9 -1
  47. package/domain/{redraw-connections → f-connection/redraw-connections}/redraw-connections.execution.d.ts +1 -1
  48. package/domain/f-connection/remove-connection-for-create-from-store/index.d.ts +2 -0
  49. package/domain/f-connection/remove-connection-for-create-from-store/remove-connection-for-create-from-store-request.d.ts +2 -0
  50. package/domain/f-connection/remove-connection-for-create-from-store/remove-connection-for-create-from-store.execution.d.ts +9 -0
  51. package/domain/f-connection/remove-connection-from-store/remove-connection-from-store.execution.d.ts +2 -3
  52. package/domain/f-connection/remove-connection-marker-from-store/index.d.ts +2 -0
  53. package/domain/f-connection/remove-connection-marker-from-store/remove-connection-marker-from-store-request.d.ts +5 -0
  54. package/domain/f-connection/remove-connection-marker-from-store/remove-connection-marker-from-store.execution.d.ts +9 -0
  55. package/domain/f-connection/remove-snap-connection-from-store/index.d.ts +2 -0
  56. package/domain/f-connection/remove-snap-connection-from-store/remove-snap-connection-from-store-request.d.ts +2 -0
  57. package/domain/f-connection/remove-snap-connection-from-store/remove-snap-connection-from-store.execution.d.ts +9 -0
  58. package/domain/f-connectors/add-input-to-store/add-input-to-store-request.d.ts +5 -0
  59. package/domain/f-connectors/add-input-to-store/add-input-to-store.execution.d.ts +9 -0
  60. package/domain/f-connectors/add-input-to-store/index.d.ts +2 -0
  61. package/domain/f-connectors/add-outlet-to-store/add-outlet-to-store-request.d.ts +5 -0
  62. package/domain/f-connectors/add-outlet-to-store/add-outlet-to-store.execution.d.ts +9 -0
  63. package/domain/f-connectors/add-outlet-to-store/index.d.ts +2 -0
  64. package/domain/f-connectors/add-output-to-store/add-output-to-store-request.d.ts +5 -0
  65. package/domain/f-connectors/add-output-to-store/add-output-to-store.execution.d.ts +9 -0
  66. package/domain/f-connectors/add-output-to-store/index.d.ts +2 -0
  67. package/domain/f-connectors/index.d.ts +7 -0
  68. package/domain/f-connectors/providers.d.ts +7 -0
  69. package/domain/f-connectors/remove-input-from-store/index.d.ts +2 -0
  70. package/domain/f-connectors/remove-input-from-store/remove-input-from-store-request.d.ts +5 -0
  71. package/domain/f-connectors/remove-input-from-store/remove-input-from-store.execution.d.ts +9 -0
  72. package/domain/f-connectors/remove-outlet-from-store/index.d.ts +2 -0
  73. package/domain/f-connectors/remove-outlet-from-store/remove-outlet-from-store-request.d.ts +5 -0
  74. package/domain/f-connectors/remove-outlet-from-store/remove-outlet-from-store.execution.d.ts +9 -0
  75. package/domain/f-connectors/remove-output-from-store/index.d.ts +2 -0
  76. package/domain/f-connectors/remove-output-from-store/remove-output-from-store-request.d.ts +5 -0
  77. package/domain/f-connectors/remove-output-from-store/remove-output-from-store.execution.d.ts +9 -0
  78. package/domain/f-draggable/add-dnd-to-store/add-dnd-to-store-request.d.ts +5 -0
  79. package/domain/f-draggable/add-dnd-to-store/add-dnd-to-store.execution.d.ts +9 -0
  80. package/domain/f-draggable/add-dnd-to-store/index.d.ts +2 -0
  81. package/domain/f-draggable/emit-selection-change-event/emit-selection-change-event-request.d.ts +2 -0
  82. package/domain/f-draggable/emit-selection-change-event/emit-selection-change-event.execution.d.ts +12 -0
  83. package/domain/f-draggable/emit-selection-change-event/index.d.ts +2 -0
  84. package/domain/f-draggable/end-drag-sequence/end-drag-sequence-request.d.ts +2 -0
  85. package/domain/f-draggable/end-drag-sequence/end-drag-sequence.execution.d.ts +11 -0
  86. package/domain/f-draggable/end-drag-sequence/index.d.ts +2 -0
  87. package/domain/f-draggable/index.d.ts +10 -0
  88. package/domain/f-draggable/initialize-drag-sequence/index.d.ts +2 -0
  89. package/domain/f-draggable/initialize-drag-sequence/initialize-drag-sequence-request.d.ts +2 -0
  90. package/domain/f-draggable/initialize-drag-sequence/initialize-drag-sequence.execution.d.ts +9 -0
  91. package/domain/f-draggable/is-drag-started/index.d.ts +2 -0
  92. package/domain/f-draggable/is-drag-started/is-drag-started-request.d.ts +2 -0
  93. package/domain/f-draggable/is-drag-started/is-drag-started.execution.d.ts +9 -0
  94. package/domain/f-draggable/on-pointer-move/index.d.ts +2 -0
  95. package/domain/f-draggable/on-pointer-move/on-pointer-move-request.d.ts +5 -0
  96. package/domain/f-draggable/on-pointer-move/on-pointer-move.execution.d.ts +14 -0
  97. package/domain/f-draggable/prepare-drag-sequence/index.d.ts +2 -0
  98. package/domain/f-draggable/prepare-drag-sequence/prepare-drag-sequence-request.d.ts +2 -0
  99. package/domain/f-draggable/prepare-drag-sequence/prepare-drag-sequence.execution.d.ts +11 -0
  100. package/domain/f-draggable/providers.d.ts +10 -0
  101. package/domain/f-draggable/remove-dnd-from-store/index.d.ts +2 -0
  102. package/domain/f-draggable/remove-dnd-from-store/remove-dnd-from-store-request.d.ts +2 -0
  103. package/domain/f-draggable/remove-dnd-from-store/remove-dnd-from-store.execution.d.ts +9 -0
  104. package/domain/f-draggable/start-drag-sequence/index.d.ts +2 -0
  105. package/domain/f-draggable/start-drag-sequence/start-drag-sequence-request.d.ts +2 -0
  106. package/domain/f-draggable/start-drag-sequence/start-drag-sequence.execution.d.ts +12 -0
  107. package/domain/f-flow/add-flow-to-store/add-flow-to-store-request.d.ts +5 -0
  108. package/domain/f-flow/add-flow-to-store/add-flow-to-store.execution.d.ts +9 -0
  109. package/domain/f-flow/add-flow-to-store/index.d.ts +2 -0
  110. package/domain/f-flow/get-flow/get-flow-request.d.ts +2 -0
  111. package/domain/f-flow/get-flow/get-flow.execution.d.ts +10 -0
  112. package/domain/f-flow/get-flow/index.d.ts +2 -0
  113. package/domain/f-flow/get-flow-host-element/get-flow-host-element.execution.d.ts +9 -0
  114. package/domain/f-flow/get-flow-host-element/get-flow-host-element.request.d.ts +2 -0
  115. package/domain/f-flow/get-flow-host-element/index.d.ts +2 -0
  116. package/domain/f-flow/index.d.ts +5 -0
  117. package/domain/f-flow/providers.d.ts +5 -0
  118. package/domain/f-flow/remove-flow-from-store/index.d.ts +2 -0
  119. package/domain/f-flow/remove-flow-from-store/remove-flow-from-store-request.d.ts +2 -0
  120. package/domain/f-flow/remove-flow-from-store/remove-flow-from-store.execution.d.ts +9 -0
  121. package/domain/f-line-alignment/add-line-alignment-to-store/add-line-alignment-to-store-request.d.ts +5 -0
  122. package/domain/f-line-alignment/add-line-alignment-to-store/add-line-alignment-to-store.execution.d.ts +9 -0
  123. package/domain/f-line-alignment/add-line-alignment-to-store/index.d.ts +2 -0
  124. package/domain/f-line-alignment/index.d.ts +3 -0
  125. package/domain/f-line-alignment/providers.d.ts +3 -0
  126. package/domain/f-line-alignment/remove-line-alignment-from-store/index.d.ts +2 -0
  127. package/domain/f-line-alignment/remove-line-alignment-from-store/remove-line-alignment-from-store-request.d.ts +2 -0
  128. package/domain/f-line-alignment/remove-line-alignment-from-store/remove-line-alignment-from-store.execution.d.ts +9 -0
  129. package/domain/f-node/add-node-to-store/add-node-to-store-request.d.ts +5 -0
  130. package/domain/f-node/add-node-to-store/add-node-to-store.execution.d.ts +9 -0
  131. package/domain/f-node/add-node-to-store/index.d.ts +2 -0
  132. package/domain/f-node/calculate-nodes-bounding-box/calculate-nodes-bounding-box.execution.d.ts +12 -0
  133. package/domain/f-node/calculate-nodes-bounding-box/calculate-nodes-bounding-box.request.d.ts +2 -0
  134. package/domain/f-node/calculate-nodes-bounding-box/index.d.ts +2 -0
  135. package/domain/f-node/get-nodes/get-nodes-request.d.ts +2 -0
  136. package/domain/f-node/get-nodes/get-nodes.execution.d.ts +10 -0
  137. package/domain/f-node/get-nodes/index.d.ts +2 -0
  138. package/domain/f-node/index.d.ts +6 -0
  139. package/domain/f-node/providers.d.ts +6 -0
  140. package/domain/f-node/remove-node-from-store/index.d.ts +2 -0
  141. package/domain/f-node/remove-node-from-store/remove-node-from-store-request.d.ts +5 -0
  142. package/domain/f-node/remove-node-from-store/remove-node-from-store.execution.d.ts +9 -0
  143. package/domain/f-node/update-node-when-state-or-size-changed/index.d.ts +2 -0
  144. package/domain/f-node/update-node-when-state-or-size-changed/update-node-when-state-or-size-changed-request.d.ts +7 -0
  145. package/domain/f-node/update-node-when-state-or-size-changed/update-node-when-state-or-size-changed.execution.d.ts +10 -0
  146. package/domain/get-element-rect-in-flow/get-element-rect-in-flow.execution.d.ts +5 -6
  147. package/domain/get-flow-state/i-f-flow-state-connection.d.ts +1 -1
  148. package/domain/index.d.ts +7 -7
  149. package/domain/is-mobile.d.ts +1 -0
  150. package/domain/providers.d.ts +1 -7
  151. package/domain/transition-end.d.ts +1 -0
  152. package/esm2022/domain/f-background/add-background-to-store/add-background-to-store-request.mjs +6 -0
  153. package/esm2022/domain/f-background/add-background-to-store/add-background-to-store.execution.mjs +23 -0
  154. package/esm2022/domain/f-background/add-background-to-store/index.mjs +3 -0
  155. package/esm2022/domain/f-background/index.mjs +4 -1
  156. package/esm2022/domain/f-background/providers.mjs +8 -2
  157. package/esm2022/domain/f-background/remove-background-from-store/index.mjs +3 -0
  158. package/esm2022/domain/f-background/remove-background-from-store/remove-background-from-store-request.mjs +6 -0
  159. package/esm2022/domain/f-background/remove-background-from-store/remove-background-from-store.execution.mjs +23 -0
  160. package/esm2022/domain/f-background/set-background-transform/index.mjs +3 -0
  161. package/esm2022/domain/f-background/set-background-transform/set-background-transform-request.mjs +6 -0
  162. package/esm2022/domain/f-background/set-background-transform/set-background-transform.execution.mjs +23 -0
  163. package/esm2022/domain/f-canvas/add-canvas-to-store/add-canvas-to-store-request.mjs +6 -0
  164. package/esm2022/domain/f-canvas/add-canvas-to-store/add-canvas-to-store.execution.mjs +23 -0
  165. package/esm2022/domain/f-canvas/add-canvas-to-store/index.mjs +3 -0
  166. package/esm2022/domain/f-canvas/center-group-or-node/center-group-or-node.execution.mjs +15 -16
  167. package/esm2022/domain/f-canvas/fit-to-flow/fit-to-flow.execution.mjs +15 -18
  168. package/esm2022/domain/f-canvas/get-canvas/get-canvas-request.mjs +3 -0
  169. package/esm2022/domain/f-canvas/get-canvas/get-canvas.execution.mjs +27 -0
  170. package/esm2022/domain/f-canvas/get-canvas/index.mjs +3 -0
  171. package/esm2022/domain/f-canvas/index.mjs +5 -1
  172. package/esm2022/domain/f-canvas/input-canvas-position/input-canvas-position.execution.mjs +8 -8
  173. package/esm2022/domain/f-canvas/input-canvas-scale/input-canvas-scale.execution.mjs +8 -8
  174. package/esm2022/domain/f-canvas/providers.mjs +9 -1
  175. package/esm2022/domain/f-canvas/redraw-canvas-with-animation/index.mjs +3 -0
  176. package/esm2022/domain/f-canvas/redraw-canvas-with-animation/redraw-canvas-with-animation-request.mjs +6 -0
  177. package/esm2022/domain/f-canvas/redraw-canvas-with-animation/redraw-canvas-with-animation.execution.mjs +36 -0
  178. package/esm2022/domain/f-canvas/remove-canvas-from-store/index.mjs +3 -0
  179. package/esm2022/domain/f-canvas/remove-canvas-from-store/remove-canvas-from-store-request.mjs +3 -0
  180. package/esm2022/domain/f-canvas/remove-canvas-from-store/remove-canvas-from-store.execution.mjs +23 -0
  181. package/esm2022/domain/f-canvas/reset-scale/reset-scale.execution.mjs +9 -9
  182. package/esm2022/domain/f-canvas/reset-scale-and-center/reset-scale-and-center.execution.mjs +15 -18
  183. package/esm2022/domain/f-canvas/update-scale/update-scale.execution.mjs +9 -9
  184. package/esm2022/domain/f-connection/add-connection-for-create-to-store/add-connection-for-create-to-store-request.mjs +6 -0
  185. package/esm2022/domain/f-connection/add-connection-for-create-to-store/add-connection-for-create-to-store.execution.mjs +23 -0
  186. package/esm2022/domain/f-connection/add-connection-for-create-to-store/index.mjs +3 -0
  187. package/esm2022/domain/f-connection/add-connection-marker-to-store/add-connection-marker-to-store-request.mjs +6 -0
  188. package/esm2022/domain/f-connection/add-connection-marker-to-store/add-connection-marker-to-store.execution.mjs +23 -0
  189. package/esm2022/domain/f-connection/add-connection-marker-to-store/index.mjs +3 -0
  190. package/esm2022/domain/f-connection/add-connection-to-store/add-connection-to-store.execution.mjs +9 -9
  191. package/esm2022/domain/f-connection/add-snap-connection-to-store/add-snap-connection-to-store-request.mjs +6 -0
  192. package/esm2022/domain/f-connection/add-snap-connection-to-store/add-snap-connection-to-store.execution.mjs +23 -0
  193. package/esm2022/domain/f-connection/add-snap-connection-to-store/index.mjs +3 -0
  194. package/esm2022/domain/f-connection/create-connection-markers/create-connection-markers-request.mjs +6 -0
  195. package/esm2022/domain/f-connection/create-connection-markers/create-connection-markers.execution.mjs +60 -0
  196. package/esm2022/domain/f-connection/create-connection-markers/index.mjs +3 -0
  197. package/esm2022/domain/f-connection/get-all-can-be-connected-input-positions/get-all-can-be-connected-input-positions.execution.mjs +3 -3
  198. package/esm2022/domain/f-connection/index.mjs +9 -1
  199. package/esm2022/domain/f-connection/providers.mjs +18 -2
  200. package/esm2022/domain/f-connection/redraw-connections/index.mjs +3 -0
  201. package/esm2022/domain/f-connection/redraw-connections/redraw-connections-request.mjs +3 -0
  202. package/esm2022/domain/f-connection/redraw-connections/redraw-connections.execution.mjs +60 -0
  203. package/esm2022/domain/f-connection/remove-connection-for-create-from-store/index.mjs +3 -0
  204. package/esm2022/domain/f-connection/remove-connection-for-create-from-store/remove-connection-for-create-from-store-request.mjs +3 -0
  205. package/esm2022/domain/f-connection/remove-connection-for-create-from-store/remove-connection-for-create-from-store.execution.mjs +23 -0
  206. package/esm2022/domain/f-connection/remove-connection-from-store/remove-connection-from-store.execution.mjs +14 -11
  207. package/esm2022/domain/f-connection/remove-connection-marker-from-store/index.mjs +3 -0
  208. package/esm2022/domain/f-connection/remove-connection-marker-from-store/remove-connection-marker-from-store-request.mjs +6 -0
  209. package/esm2022/domain/f-connection/remove-connection-marker-from-store/remove-connection-marker-from-store.execution.mjs +23 -0
  210. package/esm2022/domain/f-connection/remove-snap-connection-from-store/index.mjs +3 -0
  211. package/esm2022/domain/f-connection/remove-snap-connection-from-store/remove-snap-connection-from-store-request.mjs +3 -0
  212. package/esm2022/domain/f-connection/remove-snap-connection-from-store/remove-snap-connection-from-store.execution.mjs +23 -0
  213. package/esm2022/domain/f-connectors/add-input-to-store/add-input-to-store-request.mjs +6 -0
  214. package/esm2022/domain/f-connectors/add-input-to-store/add-input-to-store.execution.mjs +23 -0
  215. package/esm2022/domain/f-connectors/add-input-to-store/index.mjs +3 -0
  216. package/esm2022/domain/f-connectors/add-outlet-to-store/add-outlet-to-store-request.mjs +6 -0
  217. package/esm2022/domain/f-connectors/add-outlet-to-store/add-outlet-to-store.execution.mjs +23 -0
  218. package/esm2022/domain/f-connectors/add-outlet-to-store/index.mjs +3 -0
  219. package/esm2022/domain/f-connectors/add-output-to-store/add-output-to-store-request.mjs +6 -0
  220. package/esm2022/domain/f-connectors/add-output-to-store/add-output-to-store.execution.mjs +23 -0
  221. package/esm2022/domain/f-connectors/add-output-to-store/index.mjs +3 -0
  222. package/esm2022/domain/f-connectors/index.mjs +8 -0
  223. package/esm2022/domain/f-connectors/providers.mjs +15 -0
  224. package/esm2022/domain/f-connectors/remove-input-from-store/index.mjs +3 -0
  225. package/esm2022/domain/f-connectors/remove-input-from-store/remove-input-from-store-request.mjs +6 -0
  226. package/esm2022/domain/f-connectors/remove-input-from-store/remove-input-from-store.execution.mjs +23 -0
  227. package/esm2022/domain/f-connectors/remove-outlet-from-store/index.mjs +3 -0
  228. package/esm2022/domain/f-connectors/remove-outlet-from-store/remove-outlet-from-store-request.mjs +6 -0
  229. package/esm2022/domain/f-connectors/remove-outlet-from-store/remove-outlet-from-store.execution.mjs +23 -0
  230. package/esm2022/domain/f-connectors/remove-output-from-store/index.mjs +3 -0
  231. package/esm2022/domain/f-connectors/remove-output-from-store/remove-output-from-store-request.mjs +6 -0
  232. package/esm2022/domain/f-connectors/remove-output-from-store/remove-output-from-store.execution.mjs +23 -0
  233. package/esm2022/domain/f-draggable/add-dnd-to-store/add-dnd-to-store-request.mjs +6 -0
  234. package/esm2022/domain/f-draggable/add-dnd-to-store/add-dnd-to-store.execution.mjs +23 -0
  235. package/esm2022/domain/f-draggable/add-dnd-to-store/index.mjs +3 -0
  236. package/esm2022/domain/f-draggable/emit-selection-change-event/emit-selection-change-event-request.mjs +3 -0
  237. package/esm2022/domain/f-draggable/emit-selection-change-event/emit-selection-change-event.execution.mjs +36 -0
  238. package/esm2022/domain/f-draggable/emit-selection-change-event/index.mjs +3 -0
  239. package/esm2022/domain/f-draggable/end-drag-sequence/end-drag-sequence-request.mjs +3 -0
  240. package/esm2022/domain/f-draggable/end-drag-sequence/end-drag-sequence.execution.mjs +29 -0
  241. package/esm2022/domain/f-draggable/end-drag-sequence/index.mjs +3 -0
  242. package/esm2022/domain/f-draggable/index.mjs +11 -0
  243. package/esm2022/domain/f-draggable/initialize-drag-sequence/index.mjs +3 -0
  244. package/esm2022/domain/f-draggable/initialize-drag-sequence/initialize-drag-sequence-request.mjs +3 -0
  245. package/esm2022/domain/f-draggable/initialize-drag-sequence/initialize-drag-sequence.execution.mjs +23 -0
  246. package/esm2022/domain/f-draggable/is-drag-started/index.mjs +3 -0
  247. package/esm2022/domain/f-draggable/is-drag-started/is-drag-started-request.mjs +3 -0
  248. package/esm2022/domain/f-draggable/is-drag-started/is-drag-started.execution.mjs +23 -0
  249. package/esm2022/domain/f-draggable/on-pointer-move/index.mjs +3 -0
  250. package/esm2022/domain/f-draggable/on-pointer-move/on-pointer-move-request.mjs +6 -0
  251. package/esm2022/domain/f-draggable/on-pointer-move/on-pointer-move.execution.mjs +42 -0
  252. package/esm2022/domain/f-draggable/prepare-drag-sequence/index.mjs +3 -0
  253. package/esm2022/domain/f-draggable/prepare-drag-sequence/prepare-drag-sequence-request.mjs +3 -0
  254. package/esm2022/domain/f-draggable/prepare-drag-sequence/prepare-drag-sequence.execution.mjs +31 -0
  255. package/esm2022/domain/f-draggable/providers.mjs +21 -0
  256. package/esm2022/domain/f-draggable/remove-dnd-from-store/index.mjs +3 -0
  257. package/esm2022/domain/f-draggable/remove-dnd-from-store/remove-dnd-from-store-request.mjs +3 -0
  258. package/esm2022/domain/f-draggable/remove-dnd-from-store/remove-dnd-from-store.execution.mjs +23 -0
  259. package/esm2022/domain/f-draggable/start-drag-sequence/index.mjs +3 -0
  260. package/esm2022/domain/f-draggable/start-drag-sequence/start-drag-sequence-request.mjs +3 -0
  261. package/esm2022/domain/f-draggable/start-drag-sequence/start-drag-sequence.execution.mjs +33 -0
  262. package/esm2022/domain/f-flow/add-flow-to-store/add-flow-to-store-request.mjs +6 -0
  263. package/esm2022/domain/f-flow/add-flow-to-store/add-flow-to-store.execution.mjs +23 -0
  264. package/esm2022/domain/f-flow/add-flow-to-store/index.mjs +3 -0
  265. package/esm2022/domain/f-flow/get-flow/get-flow-request.mjs +3 -0
  266. package/esm2022/domain/f-flow/get-flow/get-flow.execution.mjs +27 -0
  267. package/esm2022/domain/f-flow/get-flow/index.mjs +3 -0
  268. package/esm2022/domain/f-flow/get-flow-host-element/get-flow-host-element.execution.mjs +23 -0
  269. package/esm2022/domain/f-flow/get-flow-host-element/get-flow-host-element.request.mjs +3 -0
  270. package/esm2022/domain/f-flow/get-flow-host-element/index.mjs +3 -0
  271. package/esm2022/domain/f-flow/index.mjs +6 -0
  272. package/esm2022/domain/f-flow/providers.mjs +11 -0
  273. package/esm2022/domain/f-flow/remove-flow-from-store/index.mjs +3 -0
  274. package/esm2022/domain/f-flow/remove-flow-from-store/remove-flow-from-store-request.mjs +3 -0
  275. package/esm2022/domain/f-flow/remove-flow-from-store/remove-flow-from-store.execution.mjs +23 -0
  276. package/esm2022/domain/f-line-alignment/add-line-alignment-to-store/add-line-alignment-to-store-request.mjs +6 -0
  277. package/esm2022/domain/f-line-alignment/add-line-alignment-to-store/add-line-alignment-to-store.execution.mjs +23 -0
  278. package/esm2022/domain/f-line-alignment/add-line-alignment-to-store/index.mjs +3 -0
  279. package/esm2022/domain/f-line-alignment/index.mjs +4 -0
  280. package/esm2022/domain/f-line-alignment/providers.mjs +7 -0
  281. package/esm2022/domain/f-line-alignment/remove-line-alignment-from-store/index.mjs +3 -0
  282. package/esm2022/domain/f-line-alignment/remove-line-alignment-from-store/remove-line-alignment-from-store-request.mjs +3 -0
  283. package/esm2022/domain/f-line-alignment/remove-line-alignment-from-store/remove-line-alignment-from-store.execution.mjs +23 -0
  284. package/esm2022/domain/f-node/add-node-to-store/add-node-to-store-request.mjs +6 -0
  285. package/esm2022/domain/f-node/add-node-to-store/add-node-to-store.execution.mjs +23 -0
  286. package/esm2022/domain/f-node/add-node-to-store/index.mjs +3 -0
  287. package/esm2022/domain/f-node/calculate-nodes-bounding-box/calculate-nodes-bounding-box.execution.mjs +30 -0
  288. package/esm2022/domain/f-node/calculate-nodes-bounding-box/calculate-nodes-bounding-box.request.mjs +3 -0
  289. package/esm2022/domain/f-node/calculate-nodes-bounding-box/index.mjs +3 -0
  290. package/esm2022/domain/f-node/get-nodes/get-nodes-request.mjs +3 -0
  291. package/esm2022/domain/f-node/get-nodes/get-nodes.execution.mjs +23 -0
  292. package/esm2022/domain/f-node/get-nodes/index.mjs +3 -0
  293. package/esm2022/domain/f-node/index.mjs +7 -0
  294. package/esm2022/domain/f-node/providers.mjs +13 -0
  295. package/esm2022/domain/f-node/remove-node-from-store/index.mjs +3 -0
  296. package/esm2022/domain/f-node/remove-node-from-store/remove-node-from-store-request.mjs +6 -0
  297. package/esm2022/domain/f-node/remove-node-from-store/remove-node-from-store.execution.mjs +23 -0
  298. package/esm2022/domain/f-node/update-node-when-state-or-size-changed/index.mjs +3 -0
  299. package/esm2022/domain/f-node/update-node-when-state-or-size-changed/update-node-when-state-or-size-changed-request.mjs +7 -0
  300. package/esm2022/domain/f-node/update-node-when-state-or-size-changed/update-node-when-state-or-size-changed.execution.mjs +35 -0
  301. package/esm2022/domain/get-element-rect-in-flow/get-element-rect-in-flow.execution.mjs +19 -17
  302. package/esm2022/domain/get-flow-state/get-flow-state-nodes/get-flow-state-nodes.execution.mjs +3 -3
  303. package/esm2022/domain/get-flow-state/i-f-flow-state-connection.mjs +1 -1
  304. package/esm2022/domain/get-position-in-flow/get-position-in-flow.execution.mjs +2 -2
  305. package/esm2022/domain/index.mjs +8 -8
  306. package/esm2022/domain/is-connection-under-node/is-connection-under-node.execution.mjs +3 -4
  307. package/esm2022/domain/is-mobile.mjs +5 -0
  308. package/esm2022/domain/providers.mjs +11 -13
  309. package/esm2022/domain/transition-end.mjs +10 -0
  310. package/esm2022/f-backgroud/f-background-base.mjs +1 -1
  311. package/esm2022/f-backgroud/f-background.component.mjs +15 -20
  312. package/esm2022/f-backgroud/f-circle-pattern/f-circle-pattern.component.mjs +40 -46
  313. package/esm2022/f-backgroud/f-rect-pattern/f-rect-pattern.component.mjs +42 -56
  314. package/esm2022/f-canvas/f-canvas-base.mjs +1 -1
  315. package/esm2022/f-canvas/f-canvas.component.mjs +30 -40
  316. package/esm2022/f-connection/common/f-connection-base.mjs +1 -3
  317. package/esm2022/f-connection/common/f-connection-text/f-connection-text-path.directive.mjs +2 -2
  318. package/esm2022/f-connection/common/f-drag-handle/f-connection-drag-handle.component.mjs +3 -3
  319. package/esm2022/f-connection/common/i-has-connection-text.mjs +1 -1
  320. package/esm2022/f-connection/f-connection/f-connection.component.mjs +36 -90
  321. package/esm2022/f-connection/f-connection-builder/i-f-connection-factory-request.mjs +1 -1
  322. package/esm2022/f-connection/f-connection-for-create/f-connection-for-create.component.mjs +30 -65
  323. package/esm2022/f-connection/f-marker/f-marker.directive.mjs +10 -9
  324. package/esm2022/f-connection/f-snap-connection/f-snap-connection.component.mjs +30 -65
  325. package/esm2022/f-connectors/domain/calculate-connector-connectable-side/calculate-connector-connectable-side.handler.mjs +3 -3
  326. package/esm2022/f-connectors/f-connector-base.mjs +9 -6
  327. package/esm2022/f-connectors/f-node-input/f-node-input-base.mjs +1 -5
  328. package/esm2022/f-connectors/f-node-input/f-node-input.directive.mjs +33 -42
  329. package/esm2022/f-connectors/f-node-outlet/f-node-outlet-base.mjs +1 -2
  330. package/esm2022/f-connectors/f-node-outlet/f-node-outlet.directive.mjs +21 -33
  331. package/esm2022/f-connectors/f-node-output/f-node-output-base.mjs +1 -5
  332. package/esm2022/f-connectors/f-node-output/f-node-output.directive.mjs +33 -45
  333. package/esm2022/f-draggable/canvas/canvas-move-finalize/canvas-move-finalize.execution.mjs +2 -2
  334. package/esm2022/f-draggable/canvas/canvas-move-preparation/canvas-move-preparation.validator.mjs +4 -3
  335. package/esm2022/f-draggable/canvas/canvas.drag-handler.mjs +4 -4
  336. package/esm2022/f-draggable/connections/create-connection/create-connection-finalize/create-connection-finalize.execution.mjs +5 -5
  337. package/esm2022/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-outlet-preparation/create-connection-from-outlet-preparation.execution.mjs +3 -2
  338. package/esm2022/f-draggable/connections/create-connection/create-connection-preparation/create-connection-from-output-preparation/create-connection-from-output-preparation.validator.mjs +3 -2
  339. package/esm2022/f-draggable/connections/create-connection/create-connection-preparation/create-connection-preparation.execution.mjs +3 -2
  340. package/esm2022/f-draggable/connections/create-connection/create-connection-preparation/create-connection-preparation.validator.mjs +3 -2
  341. package/esm2022/f-draggable/connections/create-connection/create-connection.drag-handler.mjs +8 -8
  342. package/esm2022/f-draggable/connections/get-input-under-pointer/get-input-under-pointer.execution.mjs +3 -3
  343. package/esm2022/f-draggable/connections/get-input-under-pointer/get-input-under-pointer.validator.mjs +3 -3
  344. package/esm2022/f-draggable/connections/reassign-connection/reassign-connection-finalize/reassign-connection-finalize.execution.mjs +4 -4
  345. package/esm2022/f-draggable/connections/reassign-connection/reassign-connection.drag-handler.mjs +6 -6
  346. package/esm2022/f-draggable/f-draggable.directive.mjs +45 -95
  347. package/esm2022/f-draggable/i-draggable-item.mjs +1 -1
  348. package/esm2022/f-draggable/index.mjs +2 -1
  349. package/esm2022/f-draggable/node/connection-base-drag-handler.mjs +4 -4
  350. package/esm2022/f-draggable/node/connection-source.drag-handler.mjs +2 -2
  351. package/esm2022/f-draggable/node/connection-target.drag-handler.mjs +2 -2
  352. package/esm2022/f-draggable/node/connection.drag-handler.mjs +2 -2
  353. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/create-move-nodes-drag-model-from-selection.execution.mjs +8 -5
  354. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/put-input-connection-handlers-to-array/put-input-connection-handlers-to-array.execution.mjs +2 -2
  355. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/put-output-connection-handlers-to-array/put-output-connection-handlers-to-array.execution.mjs +2 -2
  356. package/esm2022/f-draggable/node/node-drag-to-parent-finalize/node-drag-to-parent-finalize.execution.mjs +4 -2
  357. package/esm2022/f-draggable/node/node-drag-to-parent-preparation/node-drag-to-parent-preparation.execution.mjs +4 -3
  358. package/esm2022/f-draggable/node/node-drag-to-parent.drag-handler.mjs +4 -4
  359. package/esm2022/f-draggable/node/node-move-finalize/node-move-finalize.execution.mjs +3 -3
  360. package/esm2022/f-draggable/node/node-move-preparation/node-move-preparation.execution.mjs +2 -2
  361. package/esm2022/f-draggable/node/node-move-preparation/node-move-preparation.validator.mjs +2 -2
  362. package/esm2022/f-draggable/node/node-resize-by-child.drag-handler.mjs +5 -3
  363. package/esm2022/f-draggable/node/node.drag-handler.mjs +3 -3
  364. package/esm2022/f-draggable/node-resize/node-resize-finalize/node-resize-finalize.execution.mjs +2 -2
  365. package/esm2022/f-draggable/node-resize/node-resize-preparation/node-resize-preparation.execution.mjs +3 -2
  366. package/esm2022/f-draggable/node-resize/node-resize-preparation/node-resize-preparation.validator.mjs +3 -2
  367. package/esm2022/f-draggable/node-resize/node-resize.drag-handler.mjs +4 -4
  368. package/esm2022/f-draggable/providers.mjs +2 -2
  369. package/esm2022/f-draggable/single-select/single-select.execution.mjs +5 -2
  370. package/esm2022/f-external-item/domain/external-item-finalize/external-item-finalize.execution.mjs +2 -2
  371. package/esm2022/f-external-item/domain/external-item-preparation/external-item-preparation.validator.mjs +1 -1
  372. package/esm2022/f-external-item/domain/external-item.drag-handler.mjs +4 -4
  373. package/esm2022/f-external-item/domain/index.mjs +2 -1
  374. package/esm2022/f-external-item/domain/prevent-default-is-external-item/index.mjs +3 -0
  375. package/esm2022/f-external-item/domain/prevent-default-is-external-item/prevent-default-is-external-item.execution.mjs +36 -0
  376. package/esm2022/f-external-item/domain/prevent-default-is-external-item/prevent-default-is-external-item.request.mjs +6 -0
  377. package/esm2022/f-external-item/domain/providers.mjs +3 -1
  378. package/esm2022/f-flow/f-flow-base.mjs +1 -1
  379. package/esm2022/f-flow/f-flow.component.mjs +46 -49
  380. package/esm2022/f-line-alignment/f-line-alignment.component.mjs +21 -22
  381. package/esm2022/f-minimap/domain/f-minimap.drag-handler.mjs +4 -4
  382. package/esm2022/f-minimap/domain/index.mjs +4 -2
  383. package/esm2022/f-minimap/domain/minimap-calculate-svg-scale-and-view-box/i-f-minimap-scale-and-view-box.mjs +2 -0
  384. package/esm2022/f-minimap/domain/minimap-calculate-svg-scale-and-view-box/index.mjs +4 -0
  385. package/esm2022/f-minimap/domain/minimap-calculate-svg-scale-and-view-box/minimap-calculate-svg-scale-and-view-box.execution.mjs +71 -0
  386. package/esm2022/f-minimap/domain/minimap-calculate-svg-scale-and-view-box/minimap-calculate-svg-scale-and-view-box.request.mjs +7 -0
  387. package/esm2022/f-minimap/domain/minimap-calculate-view-box/index.mjs +3 -0
  388. package/esm2022/f-minimap/domain/minimap-calculate-view-box/minimap-calculate-view-box.execution.mjs +39 -0
  389. package/esm2022/f-minimap/domain/minimap-calculate-view-box/minimap-calculate-view-box.request.mjs +3 -0
  390. package/esm2022/f-minimap/domain/minimap-drag-finalize/minimap-drag-finalize.execution.mjs +2 -2
  391. package/esm2022/f-minimap/domain/minimap-draw-nodes/index.mjs +3 -0
  392. package/esm2022/f-minimap/domain/minimap-draw-nodes/minimap-draw-nodes.execution.mjs +60 -0
  393. package/esm2022/f-minimap/domain/minimap-draw-nodes/minimap-draw-nodes.request.mjs +3 -0
  394. package/esm2022/f-minimap/domain/providers.mjs +7 -1
  395. package/esm2022/f-minimap/f-minimap-canvas.directive.mjs +17 -51
  396. package/esm2022/f-minimap/f-minimap-flow.directive.mjs +16 -60
  397. package/esm2022/f-minimap/f-minimap-view.directive.mjs +14 -25
  398. package/esm2022/f-minimap/f-minimap.component.mjs +28 -30
  399. package/esm2022/f-node/domain/index.mjs +1 -2
  400. package/esm2022/f-node/f-drag-handle/f-drag-handle.directive.mjs +8 -8
  401. package/esm2022/f-node/f-group.directive.mjs +18 -42
  402. package/esm2022/f-node/f-node-base.mjs +15 -3
  403. package/esm2022/f-node/f-node.directive.mjs +18 -42
  404. package/esm2022/f-node/f-resize-handle/f-resize-handle.directive.mjs +13 -16
  405. package/esm2022/f-node/index.mjs +1 -2
  406. package/esm2022/f-selection-area/domain/selection-area-finalize/selection-area-finalize.execution.mjs +2 -2
  407. package/esm2022/f-selection-area/domain/selection-area.drag-handle.mjs +6 -6
  408. package/esm2022/f-selection-area/f-selection-area.component.mjs +13 -13
  409. package/esm2022/f-storage/f-components-store.mjs +15 -20
  410. package/esm2022/f-storage/features/listen-components-data-changed/index.mjs +3 -0
  411. package/esm2022/f-storage/features/listen-components-data-changed/listen-data-changes-request.mjs +3 -0
  412. package/esm2022/f-storage/features/listen-components-data-changed/listen-data-changes.execution.mjs +25 -0
  413. package/esm2022/f-storage/features/listen-count-changes/index.mjs +3 -0
  414. package/esm2022/f-storage/features/listen-count-changes/listen-count-changes-request.mjs +3 -0
  415. package/esm2022/f-storage/features/listen-count-changes/listen-count-changes.execution.mjs +25 -0
  416. package/esm2022/f-storage/features/listen-transform-changes/index.mjs +3 -0
  417. package/esm2022/f-storage/features/listen-transform-changes/listen-transform-changes.execution.mjs +24 -0
  418. package/esm2022/f-storage/features/listen-transform-changes/listen-transform-changes.request.mjs +3 -0
  419. package/esm2022/f-storage/features/notify-data-changed/index.mjs +3 -0
  420. package/esm2022/f-storage/features/notify-data-changed/notify-data-changed-request.mjs +3 -0
  421. package/esm2022/f-storage/features/notify-data-changed/notify-data-changed.execution.mjs +23 -0
  422. package/esm2022/f-storage/features/notify-transform-changed/index.mjs +3 -0
  423. package/esm2022/f-storage/features/notify-transform-changed/notify-transform-changed.execution.mjs +23 -0
  424. package/esm2022/f-storage/features/notify-transform-changed/notify-transform-changed.request.mjs +3 -0
  425. package/esm2022/f-storage/index.mjs +7 -2
  426. package/esm2022/f-storage/providers.mjs +15 -0
  427. package/esm2022/f-zoom/f-zoom-base.mjs +51 -45
  428. package/esm2022/f-zoom/f-zoom.directive.mjs +11 -12
  429. package/esm2022/public-api.mjs +2 -2
  430. package/esm2022/reactivity/debounce-time.mjs +10 -0
  431. package/esm2022/reactivity/f-channel-hub.mjs +23 -0
  432. package/esm2022/reactivity/f-channel.mjs +16 -0
  433. package/esm2022/reactivity/f-resize-channel.mjs +28 -0
  434. package/esm2022/reactivity/index.mjs +7 -0
  435. package/esm2022/reactivity/notify-on-start.mjs +7 -0
  436. package/esm2022/reactivity/types.mjs +2 -0
  437. package/f-backgroud/f-background-base.d.ts +0 -1
  438. package/f-backgroud/f-background.component.d.ts +3 -8
  439. package/f-backgroud/f-circle-pattern/f-circle-pattern.component.d.ts +16 -17
  440. package/f-backgroud/f-rect-pattern/f-rect-pattern.component.d.ts +17 -20
  441. package/f-canvas/f-canvas-base.d.ts +0 -2
  442. package/f-canvas/f-canvas.component.d.ts +5 -11
  443. package/f-connection/common/f-connection-base.d.ts +3 -5
  444. package/f-connection/common/f-drag-handle/f-connection-drag-handle.component.d.ts +1 -1
  445. package/f-connection/common/i-has-connection-text.d.ts +1 -0
  446. package/f-connection/f-connection/f-connection.component.d.ts +17 -35
  447. package/f-connection/f-connection-builder/i-f-connection-factory-request.d.ts +1 -1
  448. package/f-connection/f-connection-for-create/f-connection-for-create.component.d.ts +13 -23
  449. package/f-connection/f-marker/f-marker.directive.d.ts +2 -3
  450. package/f-connection/f-snap-connection/f-snap-connection.component.d.ts +13 -23
  451. package/f-connection/providers.d.ts +1 -1
  452. package/f-connectors/f-connector-base.d.ts +7 -8
  453. package/f-connectors/f-node-input/f-node-input-base.d.ts +0 -1
  454. package/f-connectors/f-node-input/f-node-input.directive.d.ts +14 -16
  455. package/f-connectors/f-node-outlet/f-node-outlet-base.d.ts +0 -1
  456. package/f-connectors/f-node-outlet/f-node-outlet.directive.d.ts +9 -11
  457. package/f-connectors/f-node-output/f-node-output-base.d.ts +0 -1
  458. package/f-connectors/f-node-output/f-node-output.directive.d.ts +14 -16
  459. package/f-draggable/canvas/canvas.drag-handler.d.ts +3 -3
  460. package/f-draggable/connections/create-connection/create-connection.drag-handler.d.ts +3 -3
  461. package/f-draggable/connections/providers.d.ts +1 -1
  462. package/f-draggable/connections/reassign-connection/reassign-connection.drag-handler.d.ts +3 -3
  463. package/f-draggable/f-draggable.directive.d.ts +6 -15
  464. package/f-draggable/i-draggable-item.d.ts +3 -3
  465. package/f-draggable/index.d.ts +1 -0
  466. package/f-draggable/node/connection-base-drag-handler.d.ts +2 -2
  467. package/f-draggable/node/connection-source.drag-handler.d.ts +1 -1
  468. package/f-draggable/node/connection-target.drag-handler.d.ts +1 -1
  469. package/f-draggable/node/connection.drag-handler.d.ts +1 -1
  470. package/f-draggable/node/create-move-nodes-drag-model-from-selection/create-move-nodes-drag-model-from-selection.execution.d.ts +1 -0
  471. package/f-draggable/node/create-move-nodes-drag-model-from-selection/providers.d.ts +1 -1
  472. package/f-draggable/node/node-drag-to-parent.drag-handler.d.ts +2 -2
  473. package/f-draggable/node/node-resize-by-child.drag-handler.d.ts +3 -2
  474. package/f-draggable/node/node.drag-handler.d.ts +2 -2
  475. package/f-draggable/node/providers.d.ts +1 -1
  476. package/f-draggable/node-resize/node-resize.drag-handler.d.ts +3 -3
  477. package/f-draggable/providers.d.ts +1 -1
  478. package/f-draggable/single-select/single-select.execution.d.ts +1 -0
  479. package/f-external-item/domain/external-item.drag-handler.d.ts +3 -3
  480. package/f-external-item/domain/index.d.ts +1 -0
  481. package/f-external-item/domain/prevent-default-is-external-item/index.d.ts +2 -0
  482. package/f-external-item/domain/prevent-default-is-external-item/prevent-default-is-external-item.execution.d.ts +10 -0
  483. package/f-external-item/domain/prevent-default-is-external-item/prevent-default-is-external-item.request.d.ts +4 -0
  484. package/f-external-item/domain/providers.d.ts +2 -1
  485. package/f-flow/f-flow-base.d.ts +1 -1
  486. package/f-flow/f-flow.component.d.ts +11 -13
  487. package/f-line-alignment/f-line-alignment.component.d.ts +8 -10
  488. package/f-minimap/domain/f-minimap.drag-handler.d.ts +3 -3
  489. package/f-minimap/domain/index.d.ts +3 -1
  490. package/f-minimap/domain/minimap-calculate-svg-scale-and-view-box/i-f-minimap-scale-and-view-box.d.ts +5 -0
  491. package/f-minimap/domain/minimap-calculate-svg-scale-and-view-box/index.d.ts +3 -0
  492. package/f-minimap/domain/minimap-calculate-svg-scale-and-view-box/minimap-calculate-svg-scale-and-view-box.execution.d.ts +22 -0
  493. package/f-minimap/domain/minimap-calculate-svg-scale-and-view-box/minimap-calculate-svg-scale-and-view-box.request.d.ts +5 -0
  494. package/f-minimap/domain/minimap-calculate-view-box/index.d.ts +2 -0
  495. package/f-minimap/domain/minimap-calculate-view-box/minimap-calculate-view-box.execution.d.ts +14 -0
  496. package/f-minimap/domain/minimap-calculate-view-box/minimap-calculate-view-box.request.d.ts +2 -0
  497. package/f-minimap/domain/minimap-draw-nodes/index.d.ts +2 -0
  498. package/f-minimap/domain/minimap-draw-nodes/minimap-draw-nodes.execution.d.ts +18 -0
  499. package/f-minimap/domain/minimap-draw-nodes/minimap-draw-nodes.request.d.ts +2 -0
  500. package/f-minimap/domain/providers.d.ts +4 -1
  501. package/f-minimap/f-minimap-canvas.directive.d.ts +3 -15
  502. package/f-minimap/f-minimap-flow.directive.d.ts +4 -20
  503. package/f-minimap/f-minimap-view.directive.d.ts +4 -9
  504. package/f-minimap/f-minimap.component.d.ts +7 -10
  505. package/f-node/domain/index.d.ts +0 -1
  506. package/f-node/f-drag-handle/f-drag-handle.directive.d.ts +2 -3
  507. package/f-node/f-group.directive.d.ts +4 -11
  508. package/f-node/f-node-base.d.ts +6 -7
  509. package/f-node/f-node.directive.d.ts +4 -11
  510. package/f-node/f-resize-handle/f-resize-handle.directive.d.ts +4 -6
  511. package/f-node/index.d.ts +0 -1
  512. package/f-selection-area/domain/selection-area.drag-handle.d.ts +3 -3
  513. package/f-selection-area/f-selection-area.component.d.ts +3 -5
  514. package/f-storage/f-components-store.d.ts +7 -9
  515. package/f-storage/features/listen-components-data-changed/index.d.ts +2 -0
  516. package/f-storage/features/listen-components-data-changed/listen-data-changes-request.d.ts +2 -0
  517. package/f-storage/features/listen-components-data-changed/listen-data-changes.execution.d.ts +10 -0
  518. package/f-storage/features/listen-count-changes/index.d.ts +2 -0
  519. package/f-storage/features/listen-count-changes/listen-count-changes-request.d.ts +2 -0
  520. package/f-storage/features/listen-count-changes/listen-count-changes.execution.d.ts +10 -0
  521. package/f-storage/features/listen-transform-changes/index.d.ts +2 -0
  522. package/f-storage/features/listen-transform-changes/listen-transform-changes.execution.d.ts +10 -0
  523. package/f-storage/features/listen-transform-changes/listen-transform-changes.request.d.ts +2 -0
  524. package/f-storage/features/notify-data-changed/index.d.ts +2 -0
  525. package/f-storage/features/notify-data-changed/notify-data-changed-request.d.ts +2 -0
  526. package/f-storage/features/notify-data-changed/notify-data-changed.execution.d.ts +9 -0
  527. package/f-storage/features/notify-transform-changed/index.d.ts +2 -0
  528. package/f-storage/features/notify-transform-changed/notify-transform-changed.execution.d.ts +9 -0
  529. package/f-storage/features/notify-transform-changed/notify-transform-changed.request.d.ts +2 -0
  530. package/f-storage/index.d.ts +6 -1
  531. package/f-storage/providers.d.ts +7 -0
  532. package/f-zoom/f-zoom-base.d.ts +10 -11
  533. package/f-zoom/f-zoom.directive.d.ts +0 -2
  534. package/fesm2022/foblex-flow.mjs +5843 -4931
  535. package/fesm2022/foblex-flow.mjs.map +1 -1
  536. package/package.json +5 -6
  537. package/public-api.d.ts +1 -1
  538. package/reactivity/debounce-time.d.ts +2 -0
  539. package/reactivity/f-channel-hub.d.ts +10 -0
  540. package/reactivity/f-channel.d.ts +7 -0
  541. package/reactivity/f-resize-channel.d.ts +11 -0
  542. package/reactivity/index.d.ts +6 -0
  543. package/reactivity/notify-on-start.d.ts +2 -0
  544. package/reactivity/types.d.ts +2 -0
  545. package/domain/constants.d.ts +0 -1
  546. package/domain/emit-transform-changes/emit-transform-changes.execution.d.ts +0 -11
  547. package/domain/emit-transform-changes/emit-transform-changes.request.d.ts +0 -2
  548. package/domain/emit-transform-changes/index.d.ts +0 -2
  549. package/domain/get-nodes-rect/get-nodes-rect.execution.d.ts +0 -14
  550. package/domain/get-nodes-rect/get-nodes-rect.request.d.ts +0 -2
  551. package/domain/get-nodes-rect/index.d.ts +0 -2
  552. package/domain/show-connections-after-calculations/index.d.ts +0 -2
  553. package/domain/show-connections-after-calculations/show-connections-after-calculations-request.d.ts +0 -2
  554. package/domain/show-connections-after-calculations/show-connections-after-calculations.execution.d.ts +0 -11
  555. package/domain/subscribe-on-transform-changes/index.d.ts +0 -2
  556. package/domain/subscribe-on-transform-changes/subscribe-on-transform-changes.execution.d.ts +0 -13
  557. package/domain/subscribe-on-transform-changes/subscribe-on-transform-changes.request.d.ts +0 -2
  558. package/esm2022/domain/constants.mjs +0 -2
  559. package/esm2022/domain/create-connection-markers/create-connection-markers-request.mjs +0 -6
  560. package/esm2022/domain/create-connection-markers/create-connection-markers.execution.mjs +0 -60
  561. package/esm2022/domain/create-connection-markers/index.mjs +0 -3
  562. package/esm2022/domain/emit-transform-changes/emit-transform-changes.execution.mjs +0 -23
  563. package/esm2022/domain/emit-transform-changes/emit-transform-changes.request.mjs +0 -3
  564. package/esm2022/domain/emit-transform-changes/index.mjs +0 -3
  565. package/esm2022/domain/get-nodes-rect/get-nodes-rect.execution.mjs +0 -30
  566. package/esm2022/domain/get-nodes-rect/get-nodes-rect.request.mjs +0 -3
  567. package/esm2022/domain/get-nodes-rect/index.mjs +0 -3
  568. package/esm2022/domain/redraw-connections/index.mjs +0 -3
  569. package/esm2022/domain/redraw-connections/redraw-connections-request.mjs +0 -3
  570. package/esm2022/domain/redraw-connections/redraw-connections.execution.mjs +0 -62
  571. package/esm2022/domain/show-connections-after-calculations/index.mjs +0 -3
  572. package/esm2022/domain/show-connections-after-calculations/show-connections-after-calculations-request.mjs +0 -3
  573. package/esm2022/domain/show-connections-after-calculations/show-connections-after-calculations.execution.mjs +0 -25
  574. package/esm2022/domain/subscribe-on-transform-changes/index.mjs +0 -3
  575. package/esm2022/domain/subscribe-on-transform-changes/subscribe-on-transform-changes.execution.mjs +0 -25
  576. package/esm2022/domain/subscribe-on-transform-changes/subscribe-on-transform-changes.request.mjs +0 -3
  577. package/esm2022/f-minimap/domain/check-rect-is-finite.mjs +0 -8
  578. package/esm2022/f-node/domain/is-group.mjs +0 -4
  579. package/esm2022/f-node/f-resize-observer.mjs +0 -16
  580. package/esm2022/f-storage/f-transform-store.mjs +0 -14
  581. package/esm2022/i-has-state-changes.mjs +0 -2
  582. package/f-minimap/domain/check-rect-is-finite.d.ts +0 -2
  583. package/f-node/domain/is-group.d.ts +0 -1
  584. package/f-node/f-resize-observer.d.ts +0 -4
  585. package/f-storage/f-transform-store.d.ts +0 -7
  586. package/i-has-state-changes.d.ts +0 -4
  587. /package/domain/{create-connection-markers → f-connection/create-connection-markers}/index.d.ts +0 -0
  588. /package/domain/{redraw-connections → f-connection/redraw-connections}/index.d.ts +0 -0
  589. /package/domain/{redraw-connections → f-connection/redraw-connections}/redraw-connections-request.d.ts +0 -0
@@ -1,85 +1,79 @@
1
- import { ChangeDetectionStrategy, Component, Input } from "@angular/core";
1
+ import { ChangeDetectionStrategy, Component, DestroyRef, ElementRef, inject, Input } from "@angular/core";
2
2
  import { PointExtensions, TransformModelExtensions } from '@foblex/2d';
3
3
  import { F_BACKGROUND_PATTERN } from '../domain';
4
4
  import { createSVGElement } from '../../domain';
5
- import { Subject, Subscription } from 'rxjs';
6
- import { startWith } from 'rxjs/operators';
5
+ import { FChannel, FChannelHub, notifyOnStart } from '../../reactivity';
7
6
  import * as i0 from "@angular/core";
8
7
  import * as i1 from "@foblex/platform";
9
8
  let uniqueId = 0;
10
9
  export class FCirclePatternComponent {
11
10
  get hostElement() {
12
- return this.elementReference.nativeElement;
11
+ return this._elementReference.nativeElement;
13
12
  }
14
- set color(value) {
15
- this._color = value;
16
- this._stateChanges.next();
17
- }
18
- set radius(value) {
19
- this._radius = value;
20
- this._stateChanges.next();
21
- }
22
- constructor(elementReference, fBrowser) {
23
- this.elementReference = elementReference;
24
- this.fBrowser = fBrowser;
25
- this._subscription$ = new Subscription();
26
- this._stateChanges = new Subject();
13
+ constructor(_fBrowser) {
14
+ this._fBrowser = _fBrowser;
15
+ this._destroyRef = inject(DestroyRef);
16
+ this._elementReference = inject(ElementRef);
17
+ this._stateChanges = new FChannel();
27
18
  this.id = `f-pattern-${uniqueId++}`;
28
- this._color = 'rgba(0,0,0,0.1)';
29
- this._radius = 20;
19
+ this.color = 'rgba(0,0,0,0.1)';
20
+ this.radius = 20;
30
21
  this._scaledRadius = 20;
31
22
  this._transform = TransformModelExtensions.default();
32
23
  this._position = PointExtensions.initialize();
33
- this.createPattern();
24
+ this._createPattern();
34
25
  }
35
- createPattern() {
36
- this._pattern = createSVGElement('pattern', this.fBrowser);
26
+ _createPattern() {
27
+ this._pattern = createSVGElement('pattern', this._fBrowser);
37
28
  this._pattern.setAttribute('patternUnits', 'userSpaceOnUse');
38
29
  this.hostElement.appendChild(this._pattern);
39
- this._circle = createSVGElement('circle', this.fBrowser);
30
+ this._circle = createSVGElement('circle', this._fBrowser);
40
31
  this._pattern.appendChild(this._circle);
41
32
  }
42
33
  ngOnInit() {
43
- this._subscription$.add(this.subscribeToStateChanges());
34
+ this._listenStateChanges();
35
+ }
36
+ _listenStateChanges() {
37
+ new FChannelHub(this._stateChanges).pipe(notifyOnStart()).listen(this._destroyRef, () => this._redraw());
44
38
  }
45
- subscribeToStateChanges() {
46
- return this._stateChanges.pipe(startWith(null)).subscribe(() => {
47
- this.redraw();
48
- });
39
+ ngOnChanges(changes) {
40
+ if (changes['radius'] || changes['color']) {
41
+ this._refresh();
42
+ }
49
43
  }
50
- calculatePattern() {
44
+ _redraw() {
45
+ this._calculatePattern();
46
+ this._redrawPattern();
47
+ this._redrawElement();
48
+ }
49
+ _calculatePattern() {
51
50
  this._position.x = this._transform.position.x + this._transform.scaledPosition.x;
52
51
  this._position.y = this._transform.position.y + this._transform.scaledPosition.y;
53
- this._scaledRadius = this._radius * this._transform.scale;
54
- }
55
- redraw() {
56
- this.calculatePattern();
57
- this.redrawPattern();
58
- this.redrawElement();
52
+ this._scaledRadius = this.radius * this._transform.scale;
59
53
  }
60
- redrawPattern() {
54
+ _redrawPattern() {
61
55
  this._pattern.setAttribute('x', `${this._position.x}`);
62
56
  this._pattern.setAttribute('y', `${this._position.y}`);
63
57
  this._pattern.setAttribute('width', `${this._scaledRadius}`);
64
58
  this._pattern.setAttribute('height', `${this._scaledRadius}`);
65
59
  }
66
- redrawElement() {
67
- this._circle.setAttribute('fill', this._color);
60
+ _redrawElement() {
61
+ this._circle.setAttribute('fill', this.color);
68
62
  this._circle.setAttribute('cx', `${this._scaledRadius / 2}`);
69
63
  this._circle.setAttribute('cy', `${this._scaledRadius / 2}`);
70
- this._circle.setAttribute('r', `${this._scaledRadius / this._radius}`);
64
+ this._circle.setAttribute('r', `${this._scaledRadius / this.radius}`);
71
65
  }
72
66
  setTransform(transform) {
73
67
  this._transform = transform;
74
- this._stateChanges.next();
68
+ this._refresh();
75
69
  }
76
- ngOnDestroy() {
77
- this._subscription$.unsubscribe();
70
+ _refresh() {
71
+ this._stateChanges.notify();
78
72
  }
79
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FCirclePatternComponent, deps: [{ token: i0.ElementRef }, { token: i1.BrowserService }], target: i0.ɵɵFactoryTarget.Component }); }
73
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FCirclePatternComponent, deps: [{ token: i1.BrowserService }], target: i0.ɵɵFactoryTarget.Component }); }
80
74
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FCirclePatternComponent, selector: "f-circle-pattern", inputs: { id: "id", color: "color", radius: "radius" }, host: { properties: { "attr.id": "id" } }, providers: [
81
75
  { provide: F_BACKGROUND_PATTERN, useExisting: FCirclePatternComponent }
82
- ], ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
76
+ ], usesOnChanges: true, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
83
77
  }
84
78
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FCirclePatternComponent, decorators: [{
85
79
  type: Component,
@@ -94,11 +88,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
94
88
  ],
95
89
  changeDetection: ChangeDetectionStrategy.OnPush
96
90
  }]
97
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.BrowserService }]; }, propDecorators: { id: [{
91
+ }], ctorParameters: function () { return [{ type: i1.BrowserService }]; }, propDecorators: { id: [{
98
92
  type: Input
99
93
  }], color: [{
100
94
  type: Input
101
95
  }], radius: [{
102
96
  type: Input
103
97
  }] } });
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jaXJjbGUtcGF0dGVybi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtYmFja2dyb3VkL2YtY2lyY2xlLXBhdHRlcm4vZi1jaXJjbGUtcGF0dGVybi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ0csS0FBSyxFQUVsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0wsZUFBZSxFQUNmLHdCQUF3QixFQUN6QixNQUFNLFlBQVksQ0FBQztBQUNwQixPQUFPLEVBQUUsb0JBQW9CLEVBQXVCLE1BQU0sV0FBVyxDQUFDO0FBRXRFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNoRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUUzQyxJQUFJLFFBQVEsR0FBVyxDQUFDLENBQUM7QUFhekIsTUFBTSxPQUFPLHVCQUF1QjtJQU1sQyxJQUFXLFdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDO0lBQzdDLENBQUM7SUFRRCxJQUNXLEtBQUssQ0FBQyxLQUFhO1FBQzVCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUtELElBQ1csTUFBTSxDQUFDLEtBQWE7UUFDN0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBU0QsWUFDVSxnQkFBeUMsRUFDekMsUUFBd0I7UUFEeEIscUJBQWdCLEdBQWhCLGdC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QkFEZixLQUFLO2dCQVVLLE1BQU07c0JBRGhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLCBJbnB1dCwgT25EZXN0cm95LFxuICBPbkluaXRcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7XG4gIElQb2ludCxcbiAgSVRyYW5zZm9ybU1vZGVsLFxuICBQb2ludEV4dGVuc2lvbnMsXG4gIFRyYW5zZm9ybU1vZGVsRXh0ZW5zaW9uc1xufSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IEZfQkFDS0dST1VORF9QQVRURVJOLCBJRkJhY2tncm91bmRQYXR0ZXJuIH0gZnJvbSAnLi4vZG9tYWluJztcbmltcG9ydCB7IEJyb3dzZXJTZXJ2aWNlIH0gZnJvbSAnQGZvYmxleC9wbGF0Zm9ybSc7XG5pbXBvcnQgeyBjcmVhdGVTVkdFbGVtZW50IH0gZnJvbSAnLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc3RhcnRXaXRoIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5sZXQgdW5pcXVlSWQ6IG51bWJlciA9IDA7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJmLWNpcmNsZS1wYXR0ZXJuXCIsXG4gIHRlbXBsYXRlOiBgYCxcbiAgaG9zdDoge1xuICAgICdbYXR0ci5pZF0nOiAnaWQnXG4gIH0sXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogRl9CQUNLR1JPVU5EX1BBVFRFUk4sIHVzZUV4aXN0aW5nOiBGQ2lyY2xlUGF0dGVybkNvbXBvbmVudCB9XG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEZDaXJjbGVQYXR0ZXJuQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIElGQmFja2dyb3VuZFBhdHRlcm4ge1xuXG4gIHByaXZhdGUgX3N1YnNjcmlwdGlvbiQ6IFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBwcml2YXRlIF9zdGF0ZUNoYW5nZXM6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHB1YmxpYyBnZXQgaG9zdEVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWZlcmVuY2UubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpZDogc3RyaW5nID0gYGYtcGF0dGVybi0keyB1bmlxdWVJZCsrIH1gO1xuXG5cbiAgcHJpdmF0ZSBfY29sb3I6IHN0cmluZyA9ICdyZ2JhKDAsMCwwLDAuMSknO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgY29sb3IodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2NvbG9yID0gdmFsdWU7XG4gICAgdGhpcy5fc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3JhZGl1czogbnVtYmVyID0gMjA7XG4gIHByaXZhdGUgX3NjYWxlZFJhZGl1czogbnVtYmVyID0gMjA7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCByYWRpdXModmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX3JhZGl1cyA9IHZhbHVlO1xuICAgIHRoaXMuX3N0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gIH1cblxuICBwcml2YXRlIF90cmFuc2Zvcm06IElUcmFuc2Zvcm1Nb2RlbCA9IFRyYW5zZm9ybU1vZGVsRXh0ZW5zaW9ucy5kZWZhdWx0KCk7XG5cbiAgcHJpdmF0ZSBfcG9zaXRpb246IElQb2ludCA9IFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKCk7XG5cbiAgcHJpdmF0ZSBfcGF0dGVybiE6IFNWR1BhdHRlcm5FbGVtZW50O1xuICBwcml2YXRlIF9jaXJjbGUhOiBTVkdDaXJjbGVFbGVtZW50O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudFJlZmVyZW5jZTogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgcHJpdmF0ZSBmQnJvd3NlcjogQnJvd3NlclNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5jcmVhdGVQYXR0ZXJuKCk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVBhdHRlcm4oKTogdm9pZCB7XG4gICAgdGhpcy5fcGF0dGVybiA9IGNyZWF0ZVNWR0VsZW1lbnQoJ3BhdHRlcm4nLCB0aGlzLmZCcm93c2VyKTtcbiAgICB0aGlzLl9wYXR0ZXJuLnNldEF0dHJpYnV0ZSgncGF0dGVyblVuaXRzJywgJ3VzZXJTcGFjZU9uVXNlJyk7XG4gICAgdGhpcy5ob3N0RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9wYXR0ZXJuKTtcblxuICAgIHRoaXMuX2NpcmNsZSA9IGNyZWF0ZVNWR0VsZW1lbnQoJ2NpcmNsZScsIHRoaXMuZkJyb3dzZXIpO1xuICAgIHRoaXMuX3BhdHRlcm4uYXBwZW5kQ2hpbGQodGhpcy5fY2lyY2xlKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24kLmFkZCh0aGlzLnN1YnNjcmliZVRvU3RhdGVDaGFuZ2VzKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdWJzY3JpYmVUb1N0YXRlQ2hhbmdlcygpOiBTdWJzY3JpcHRpb24ge1xuICAgIHJldHVybiB0aGlzLl9zdGF0ZUNoYW5nZXMucGlwZShzdGFydFdpdGgobnVsbCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnJlZHJhdygpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjYWxjdWxhdGVQYXR0ZXJuKCk6IHZvaWQge1xuICAgIHRoaXMuX3Bvc2l0aW9uLnggPSB0aGlzLl90cmFuc2Zvcm0ucG9zaXRpb24ueCArIHRoaXMuX3RyYW5zZm9ybS5zY2FsZWRQb3NpdGlvbi54O1xuICAgIHRoaXMuX3Bvc2l0aW9uLnkgPSB0aGlzLl90cmFuc2Zvcm0ucG9zaXRpb24ueSArIHRoaXMuX3RyYW5zZm9ybS5zY2FsZWRQb3NpdGlvbi55O1xuICAgIHRoaXMuX3NjYWxlZFJhZGl1cyA9IHRoaXMuX3JhZGl1cyAqIHRoaXMuX3RyYW5zZm9ybS5zY2FsZTtcbiAgfVxuXG4gIHByaXZhdGUgcmVkcmF3KCk6IHZvaWQge1xuICAgIHRoaXMuY2FsY3VsYXRlUGF0dGVybigpO1xuICAgIHRoaXMucmVkcmF3UGF0dGVybigpO1xuICAgIHRoaXMucmVkcmF3RWxlbWVudCgpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWRyYXdQYXR0ZXJuKCk6IHZvaWQge1xuICAgIHRoaXMuX3BhdHRlcm4uc2V0QXR0cmlidXRlKCd4JywgYCR7IHRoaXMuX3Bvc2l0aW9uLnggfWApO1xuICAgIHRoaXMuX3BhdHRlcm4uc2V0QXR0cmlidXRlKCd5JywgYCR7IHRoaXMuX3Bvc2l0aW9uLnkgfWApO1xuICAgIHRoaXMuX3BhdHRlcm4uc2V0QXR0cmlidXRlKCd3aWR0aCcsIGAkeyB0aGlzLl9zY2FsZWRSYWRpdXMgfWApO1xuICAgIHRoaXMuX3BhdHRlcm4uc2V0QXR0cmlidXRlKCdoZWlnaHQnLCBgJHsgdGhpcy5fc2NhbGVkUmFkaXVzIH1gKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVkcmF3RWxlbWVudCgpOiB2b2lkIHtcbiAgICB0aGlzLl9jaXJjbGUuc2V0QXR0cmlidXRlKCdmaWxsJywgdGhpcy5fY29sb3IpO1xuICAgIHRoaXMuX2NpcmNsZS5zZXRBdHRyaWJ1dGUoJ2N4JywgYCR7IHRoaXMuX3NjYWxlZFJhZGl1cyAvIDIgfWApO1xuICAgIHRoaXMuX2NpcmNsZS5zZXRBdHRyaWJ1dGUoJ2N5JywgYCR7IHRoaXMuX3NjYWxlZFJhZGl1cyAvIDIgfWApO1xuICAgIHRoaXMuX2NpcmNsZS5zZXRBdHRyaWJ1dGUoJ3InLCBgJHsgdGhpcy5fc2NhbGVkUmFkaXVzIC8gdGhpcy5fcmFkaXVzIH1gKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRUcmFuc2Zvcm0odHJhbnNmb3JtOiBJVHJhbnNmb3JtTW9kZWwpOiB2b2lkIHtcbiAgICB0aGlzLl90cmFuc2Zvcm0gPSB0cmFuc2Zvcm07XG4gICAgdGhpcy5fc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24kLnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiJdfQ==
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jaXJjbGUtcGF0dGVybi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtYmFja2dyb3VkL2YtY2lyY2xlLXBhdHRlcm4vZi1jaXJjbGUtcGF0dGVybi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQUUsVUFBVSxFQUNyQixVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFFMUIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUdMLGVBQWUsRUFDZix3QkFBd0IsRUFDekIsTUFBTSxZQUFZLENBQUM7QUFDcEIsT0FBTyxFQUFFLG9CQUFvQixFQUF1QixNQUFNLFdBQVcsQ0FBQztBQUV0RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDaEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7OztBQUV4RSxJQUFJLFFBQVEsR0FBVyxDQUFDLENBQUM7QUFhekIsTUFBTSxPQUFPLHVCQUF1QjtJQVFsQyxJQUFXLFdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDO0lBQzlDLENBQUM7SUFvQkQsWUFDVSxTQUF5QjtRQUF6QixjQUFTLEdBQVQsU0FBUyxDQUFnQjtRQTdCM0IsZ0JBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFakMsc0JBQWlCLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXZDLGtCQUFhLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQU9oQyxPQUFFLEdBQVcsYUFBYyxRQUFRLEVBQUcsRUFBRSxDQUFDO1FBR3pDLFVBQUssR0FBVyxpQkFBaUIsQ0FBQztRQUdsQyxXQUFNLEdBQVcsRUFBRSxDQUFDO1FBRW5CLGtCQUFhLEdBQVcsRUFBRSxDQUFDO1FBRTNCLGVBQVUsR0FBb0Isd0JBQXdCLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFakUsY0FBUyxHQUFXLGVBQWUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQVF2RCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVPLGNBQWM7UUFDcEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUU1QyxJQUFJLENBQUMsT0FBTyxHQUFHLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVPLG1CQUFtQjtRQUN6QixJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDM0csQ0FBQztJQUVNLFdBQVcsQ0FBQyxPQUFzQjtRQUN2QyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDekMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ2pCO0lBQ0gsQ0FBQztJQUVPLE9BQU87UUFDYixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFTyxpQkFBaUI7UUFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztRQUNqRixJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1FBQ2pGLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQztJQUMzRCxDQUFDO0lBRU8sY0FBYztRQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsR0FBSSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUUsRUFBRSxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLEdBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxHQUFJLElBQUksQ0FBQyxhQUFjLEVBQUUsQ0FBQyxDQUFDO1FBQy9ELElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxHQUFJLElBQUksQ0FBQyxhQUFjLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFTyxjQUFjO1FBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLEdBQUksSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQy9ELElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxHQUFJLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBRSxFQUFFLENBQUMsQ0FBQztRQUMvRCxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsR0FBSSxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxNQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFTSxZQUFZLENBQUMsU0FBMEI7UUFDNUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDNUIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFFTyxRQUFRO1FBQ2QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUM5QixDQUFDOytHQTVGVSx1QkFBdUI7bUdBQXZCLHVCQUF1Qiw4SUFMdkI7WUFDVCxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxXQUFXLEVBQUUsdUJBQXVCLEVBQUU7U0FDeEUsK0NBTlMsRUFBRTs7NEZBU0QsdUJBQXVCO2tCQVhuQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFFBQVEsRUFBRSxFQUFFO29CQUNaLElBQUksRUFBRTt3QkFDSixXQUFXLEVBQUUsSUFBSTtxQkFDbEI7b0JBQ0QsU0FBUyxFQUFFO3dCQUNULEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFdBQVcseUJBQXlCLEVBQUU7cUJBQ3hFO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRDtxR0FjUSxFQUFFO3NCQURSLEtBQUs7Z0JBSUMsS0FBSztzQkFEWCxLQUFLO2dCQUlDLE1BQU07c0JBRFosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsIERlc3Ryb3lSZWYsXG4gIEVsZW1lbnRSZWYsIGluamVjdCwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LFxuICBPbkluaXQsIFNpbXBsZUNoYW5nZXNcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7XG4gIElQb2ludCxcbiAgSVRyYW5zZm9ybU1vZGVsLFxuICBQb2ludEV4dGVuc2lvbnMsXG4gIFRyYW5zZm9ybU1vZGVsRXh0ZW5zaW9uc1xufSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IEZfQkFDS0dST1VORF9QQVRURVJOLCBJRkJhY2tncm91bmRQYXR0ZXJuIH0gZnJvbSAnLi4vZG9tYWluJztcbmltcG9ydCB7IEJyb3dzZXJTZXJ2aWNlIH0gZnJvbSAnQGZvYmxleC9wbGF0Zm9ybSc7XG5pbXBvcnQgeyBjcmVhdGVTVkdFbGVtZW50IH0gZnJvbSAnLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IEZDaGFubmVsLCBGQ2hhbm5lbEh1Yiwgbm90aWZ5T25TdGFydCB9IGZyb20gJy4uLy4uL3JlYWN0aXZpdHknO1xuXG5sZXQgdW5pcXVlSWQ6IG51bWJlciA9IDA7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJmLWNpcmNsZS1wYXR0ZXJuXCIsXG4gIHRlbXBsYXRlOiBgYCxcbiAgaG9zdDoge1xuICAgICdbYXR0ci5pZF0nOiAnaWQnXG4gIH0sXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogRl9CQUNLR1JPVU5EX1BBVFRFUk4sIHVzZUV4aXN0aW5nOiBGQ2lyY2xlUGF0dGVybkNvbXBvbmVudCB9XG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEZDaXJjbGVQYXR0ZXJuQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIElGQmFja2dyb3VuZFBhdHRlcm4ge1xuXG4gIHByaXZhdGUgX2Rlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgcHJpdmF0ZSBfZWxlbWVudFJlZmVyZW5jZSA9IGluamVjdChFbGVtZW50UmVmKTtcblxuICBwcml2YXRlIF9zdGF0ZUNoYW5nZXMgPSBuZXcgRkNoYW5uZWwoKTtcblxuICBwdWJsaWMgZ2V0IGhvc3RFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZmVyZW5jZS5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIGlkOiBzdHJpbmcgPSBgZi1wYXR0ZXJuLSR7IHVuaXF1ZUlkKysgfWA7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNvbG9yOiBzdHJpbmcgPSAncmdiYSgwLDAsMCwwLjEpJztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcmFkaXVzOiBudW1iZXIgPSAyMDtcblxuICBwcml2YXRlIF9zY2FsZWRSYWRpdXM6IG51bWJlciA9IDIwO1xuXG4gIHByaXZhdGUgX3RyYW5zZm9ybTogSVRyYW5zZm9ybU1vZGVsID0gVHJhbnNmb3JtTW9kZWxFeHRlbnNpb25zLmRlZmF1bHQoKTtcblxuICBwcml2YXRlIF9wb3NpdGlvbjogSVBvaW50ID0gUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoKTtcblxuICBwcml2YXRlIF9wYXR0ZXJuITogU1ZHUGF0dGVybkVsZW1lbnQ7XG4gIHByaXZhdGUgX2NpcmNsZSE6IFNWR0NpcmNsZUVsZW1lbnQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfZkJyb3dzZXI6IEJyb3dzZXJTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuX2NyZWF0ZVBhdHRlcm4oKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NyZWF0ZVBhdHRlcm4oKTogdm9pZCB7XG4gICAgdGhpcy5fcGF0dGVybiA9IGNyZWF0ZVNWR0VsZW1lbnQoJ3BhdHRlcm4nLCB0aGlzLl9mQnJvd3Nlcik7XG4gICAgdGhpcy5fcGF0dGVybi5zZXRBdHRyaWJ1dGUoJ3BhdHRlcm5Vbml0cycsICd1c2VyU3BhY2VPblVzZScpO1xuICAgIHRoaXMuaG9zdEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fcGF0dGVybik7XG5cbiAgICB0aGlzLl9jaXJjbGUgPSBjcmVhdGVTVkdFbGVtZW50KCdjaXJjbGUnLCB0aGlzLl9mQnJvd3Nlcik7XG4gICAgdGhpcy5fcGF0dGVybi5hcHBlbmRDaGlsZCh0aGlzLl9jaXJjbGUpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX2xpc3RlblN0YXRlQ2hhbmdlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBfbGlzdGVuU3RhdGVDaGFuZ2VzKCk6IHZvaWQge1xuICAgIG5ldyBGQ2hhbm5lbEh1Yih0aGlzLl9zdGF0ZUNoYW5nZXMpLnBpcGUobm90aWZ5T25TdGFydCgpKS5saXN0ZW4odGhpcy5fZGVzdHJveVJlZiwgKCkgPT4gdGhpcy5fcmVkcmF3KCkpO1xuICB9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1sncmFkaXVzJ10gfHwgY2hhbmdlc1snY29sb3InXSkge1xuICAgICAgdGhpcy5fcmVmcmVzaCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3JlZHJhdygpOiB2b2lkIHtcbiAgICB0aGlzLl9jYWxjdWxhdGVQYXR0ZXJuKCk7XG4gICAgdGhpcy5fcmVkcmF3UGF0dGVybigpO1xuICAgIHRoaXMuX3JlZHJhd0VsZW1lbnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NhbGN1bGF0ZVBhdHRlcm4oKTogdm9pZCB7XG4gICAgdGhpcy5fcG9zaXRpb24ueCA9IHRoaXMuX3RyYW5zZm9ybS5wb3NpdGlvbi54ICsgdGhpcy5fdHJhbnNmb3JtLnNjYWxlZFBvc2l0aW9uLng7XG4gICAgdGhpcy5fcG9zaXRpb24ueSA9IHRoaXMuX3RyYW5zZm9ybS5wb3NpdGlvbi55ICsgdGhpcy5fdHJhbnNmb3JtLnNjYWxlZFBvc2l0aW9uLnk7XG4gICAgdGhpcy5fc2NhbGVkUmFkaXVzID0gdGhpcy5yYWRpdXMgKiB0aGlzLl90cmFuc2Zvcm0uc2NhbGU7XG4gIH1cblxuICBwcml2YXRlIF9yZWRyYXdQYXR0ZXJuKCk6IHZvaWQge1xuICAgIHRoaXMuX3BhdHRlcm4uc2V0QXR0cmlidXRlKCd4JywgYCR7IHRoaXMuX3Bvc2l0aW9uLnggfWApO1xuICAgIHRoaXMuX3BhdHRlcm4uc2V0QXR0cmlidXRlKCd5JywgYCR7IHRoaXMuX3Bvc2l0aW9uLnkgfWApO1xuICAgIHRoaXMuX3BhdHRlcm4uc2V0QXR0cmlidXRlKCd3aWR0aCcsIGAkeyB0aGlzLl9zY2FsZWRSYWRpdXMgfWApO1xuICAgIHRoaXMuX3BhdHRlcm4uc2V0QXR0cmlidXRlKCdoZWlnaHQnLCBgJHsgdGhpcy5fc2NhbGVkUmFkaXVzIH1gKTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlZHJhd0VsZW1lbnQoKTogdm9pZCB7XG4gICAgdGhpcy5fY2lyY2xlLnNldEF0dHJpYnV0ZSgnZmlsbCcsIHRoaXMuY29sb3IpO1xuICAgIHRoaXMuX2NpcmNsZS5zZXRBdHRyaWJ1dGUoJ2N4JywgYCR7IHRoaXMuX3NjYWxlZFJhZGl1cyAvIDIgfWApO1xuICAgIHRoaXMuX2NpcmNsZS5zZXRBdHRyaWJ1dGUoJ2N5JywgYCR7IHRoaXMuX3NjYWxlZFJhZGl1cyAvIDIgfWApO1xuICAgIHRoaXMuX2NpcmNsZS5zZXRBdHRyaWJ1dGUoJ3InLCBgJHsgdGhpcy5fc2NhbGVkUmFkaXVzIC8gdGhpcy5yYWRpdXMgfWApO1xuICB9XG5cbiAgcHVibGljIHNldFRyYW5zZm9ybSh0cmFuc2Zvcm06IElUcmFuc2Zvcm1Nb2RlbCk6IHZvaWQge1xuICAgIHRoaXMuX3RyYW5zZm9ybSA9IHRyYW5zZm9ybTtcbiAgICB0aGlzLl9yZWZyZXNoKCk7XG4gIH1cblxuICBwcml2YXRlIF9yZWZyZXNoKCk6IHZvaWQge1xuICAgIHRoaXMuX3N0YXRlQ2hhbmdlcy5ub3RpZnkoKTtcbiAgfVxufVxuIl19
@@ -1,76 +1,62 @@
1
- import { ChangeDetectionStrategy, Component, Input } from "@angular/core";
1
+ import { ChangeDetectionStrategy, Component, DestroyRef, ElementRef, inject, Input } from "@angular/core";
2
2
  import { PointExtensions, SizeExtensions, TransformModelExtensions } from '@foblex/2d';
3
3
  import { F_BACKGROUND_PATTERN } from '../domain';
4
- import { Subject, Subscription } from 'rxjs';
5
- import { startWith } from 'rxjs/operators';
6
4
  import { createSVGElement } from '../../domain';
5
+ import { FChannel, FChannelHub, notifyOnStart } from '../../reactivity';
7
6
  import * as i0 from "@angular/core";
8
7
  import * as i1 from "@foblex/platform";
9
8
  let uniqueId = 0;
10
9
  export class FRectPatternComponent {
11
10
  get hostElement() {
12
- return this.elementReference.nativeElement;
11
+ return this._elementReference.nativeElement;
13
12
  }
14
- set vColor(value) {
15
- this._vColor = value;
16
- this._stateChanges.next();
17
- }
18
- set hColor(value) {
19
- this._hColor = value;
20
- this._stateChanges.next();
21
- }
22
- set vSize(value) {
23
- this._vSize = value;
24
- this._stateChanges.next();
25
- }
26
- set hSize(value) {
27
- this._hSize = value;
28
- this._stateChanges.next();
29
- }
30
- constructor(elementReference, fBrowser) {
31
- this.elementReference = elementReference;
32
- this.fBrowser = fBrowser;
33
- this._subscription$ = new Subscription();
34
- this._stateChanges = new Subject();
13
+ constructor(_fBrowser) {
14
+ this._fBrowser = _fBrowser;
15
+ this._destroyRef = inject(DestroyRef);
16
+ this._elementReference = inject(ElementRef);
17
+ this._stateChanges = new FChannel();
35
18
  this.id = `f-pattern-${uniqueId++}`;
36
- this._vColor = 'rgba(0,0,0,0.1)';
37
- this._hColor = 'rgba(0,0,0,0.1)';
38
- this._vSize = 20;
39
- this._hSize = 20;
19
+ this.vColor = 'rgba(0,0,0,0.1)';
20
+ this.hColor = 'rgba(0,0,0,0.1)';
21
+ this.vSize = 20;
22
+ this.hSize = 20;
40
23
  this._transform = TransformModelExtensions.default();
41
24
  this._position = PointExtensions.initialize();
42
- this._size = SizeExtensions.initialize(this._hSize, this._vSize);
43
- this.createPattern();
25
+ this._size = SizeExtensions.initialize(this.hSize, this.vSize);
26
+ this._createPattern();
44
27
  }
45
- createPattern() {
46
- this._pattern = createSVGElement('pattern', this.fBrowser);
28
+ _createPattern() {
29
+ this._pattern = createSVGElement('pattern', this._fBrowser);
47
30
  this._pattern.setAttribute('patternUnits', 'userSpaceOnUse');
48
31
  this.hostElement.appendChild(this._pattern);
49
- this._vLine = createSVGElement('line', this.fBrowser);
32
+ this._vLine = createSVGElement('line', this._fBrowser);
50
33
  this._pattern.appendChild(this._vLine);
51
- this._hLine = createSVGElement('line', this.fBrowser);
34
+ this._hLine = createSVGElement('line', this._fBrowser);
52
35
  this._pattern.appendChild(this._hLine);
53
36
  }
54
37
  ngOnInit() {
55
- this._subscription$.add(this.subscribeToStateChanges());
38
+ this._listenStateChanges();
56
39
  }
57
- subscribeToStateChanges() {
58
- return this._stateChanges.pipe(startWith(null)).subscribe(() => {
59
- this.redraw();
60
- });
40
+ _listenStateChanges() {
41
+ new FChannelHub(this._stateChanges).pipe(notifyOnStart()).listen(this._destroyRef, () => this._redraw());
61
42
  }
62
- calculatePattern() {
43
+ ngOnChanges(changes) {
44
+ if (changes['vSize'] || changes['hSize'] || changes['vColor'] || changes['hColor']) {
45
+ this._refresh();
46
+ }
47
+ }
48
+ _redraw() {
49
+ this._calculatePattern();
50
+ this._redrawPattern();
51
+ this.redrawLine(this._vLine, this.vColor, this._size.width, 0, this._size.width, this._size.height);
52
+ this.redrawLine(this._hLine, this.hColor, 0, this._size.height, this._size.width, this._size.height);
53
+ }
54
+ _calculatePattern() {
63
55
  this._position.x = this._transform.position.x + this._transform.scaledPosition.x;
64
56
  this._position.y = this._transform.position.y + this._transform.scaledPosition.y;
65
- this._size = SizeExtensions.initialize(this._hSize * this._transform.scale, this._vSize * this._transform.scale);
66
- }
67
- redraw() {
68
- this.calculatePattern();
69
- this.redrawPattern();
70
- this.redrawLine(this._vLine, this._vColor, this._size.width, 0, this._size.width, this._size.height);
71
- this.redrawLine(this._hLine, this._hColor, 0, this._size.height, this._size.width, this._size.height);
57
+ this._size = SizeExtensions.initialize(this.hSize * this._transform.scale, this.vSize * this._transform.scale);
72
58
  }
73
- redrawPattern() {
59
+ _redrawPattern() {
74
60
  this._pattern.setAttribute('x', `${this._position.x}`);
75
61
  this._pattern.setAttribute('y', `${this._position.y}`);
76
62
  this._pattern.setAttribute('width', `${this._size.width}`);
@@ -85,15 +71,15 @@ export class FRectPatternComponent {
85
71
  }
86
72
  setTransform(transform) {
87
73
  this._transform = transform;
88
- this._stateChanges.next();
74
+ this._refresh();
89
75
  }
90
- ngOnDestroy() {
91
- this._subscription$.unsubscribe();
76
+ _refresh() {
77
+ this._stateChanges.notify();
92
78
  }
93
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FRectPatternComponent, deps: [{ token: i0.ElementRef }, { token: i1.BrowserService }], target: i0.ɵɵFactoryTarget.Component }); }
79
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FRectPatternComponent, deps: [{ token: i1.BrowserService }], target: i0.ɵɵFactoryTarget.Component }); }
94
80
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FRectPatternComponent, selector: "f-rect-pattern", inputs: { id: "id", vColor: "vColor", hColor: "hColor", vSize: "vSize", hSize: "hSize" }, host: { properties: { "attr.id": "id" } }, providers: [
95
81
  { provide: F_BACKGROUND_PATTERN, useExisting: FRectPatternComponent }
96
- ], ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
82
+ ], usesOnChanges: true, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
97
83
  }
98
84
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FRectPatternComponent, decorators: [{
99
85
  type: Component,
@@ -108,7 +94,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
108
94
  ],
109
95
  changeDetection: ChangeDetectionStrategy.OnPush
110
96
  }]
111
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.BrowserService }]; }, propDecorators: { id: [{
97
+ }], ctorParameters: function () { return [{ type: i1.BrowserService }]; }, propDecorators: { id: [{
112
98
  type: Input
113
99
  }], vColor: [{
114
100
  type: Input
@@ -119,4 +105,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
119
105
  }], hSize: [{
120
106
  type: Input
121
107
  }] } });
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1yZWN0LXBhdHRlcm4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWJhY2tncm91ZC9mLXJlY3QtcGF0dGVybi9mLXJlY3QtcGF0dGVybi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ0csS0FBSyxFQUVsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUwsZUFBZSxFQUFFLGNBQWMsRUFBRSx3QkFBd0IsRUFDMUQsTUFBTSxZQUFZLENBQUM7QUFDcEIsT0FBTyxFQUFFLG9CQUFvQixFQUF1QixNQUFNLFdBQVcsQ0FBQztBQUN0RSxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sY0FBYyxDQUFDOzs7QUFHaEQsSUFBSSxRQUFRLEdBQVcsQ0FBQyxDQUFDO0FBYXpCLE1BQU0sT0FBTyxxQkFBcUI7SUFNaEMsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQztJQUM3QyxDQUFDO0lBT0QsSUFDVyxNQUFNLENBQUMsS0FBYTtRQUM3QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFJRCxJQUNXLE1BQU0sQ0FBQyxLQUFhO1FBQzdCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUlELElBQ1csS0FBSyxDQUFDLEtBQWE7UUFDNUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBSUQsSUFDVyxLQUFLLENBQUMsS0FBYTtRQUM1QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFZRCxZQUNVLGdCQUF5QyxFQUN6QyxRQUF3QjtRQUR4QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXlCO1FBQ3pDLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBdkQxQixtQkFBYyxHQUFpQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRWxELGtCQUFhLEdBQWtCLElBQUksT0FBTyxFQUFRLENBQUM7UUFPcEQsT0FBRSxHQUFXLGFBQWMsUUFBUSxFQUFHLEVBQUUsQ0FBQztRQUV4QyxZQUFPLEdBQVcsaUJBQWlCLENBQUM7UUFRcEMsWUFBTyxHQUFXLGlCQUFpQixDQUFDO1FBUXBDLFdBQU0sR0FBVyxFQUFFLENBQUM7UUFRcEIsV0FBTSxHQUFXLEVBQUUsQ0FBQztRQVFwQixlQUFVLEdBQW9CLHdCQUF3QixDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRWpFLGNBQVMsR0FBVyxlQUFlLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFakQsVUFBSyxHQUFVLGNBQWMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFVekUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFTyxhQUFhO1FBQ25CLElBQUksQ0FBQyxRQUFRLEdBQUcsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxjQUFjLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFNUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV2QyxJQUFJLENBQUMsTUFBTSxHQUFHLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRU8sdUJBQXVCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUM3RCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7UUFDakYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztRQUNqRixJQUFJLENBQUMsS0FBSyxHQUFHLGNBQWMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkgsQ0FBQztJQUVPLE1BQU07UUFDWixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFckIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDckcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEcsQ0FBQztJQUVPLGFBQWE7UUFDbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLEdBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxHQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBRSxFQUFFLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsR0FBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQU0sRUFBRSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLEdBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFTyxVQUFVLENBQUMsSUFBb0IsRUFBRSxLQUFhLEVBQUUsRUFBVSxFQUFFLEVBQVUsRUFBRSxFQUFVLEVBQUUsRUFBVTtRQUNwRyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxHQUFJLEtBQU0sRUFBRSxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsR0FBSSxFQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLEdBQUksRUFBRyxFQUFFLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxHQUFJLEVBQUcsRUFBRSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsR0FBSSxFQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFTSxZQUFZLENBQUMsU0FBMEI7UUFDNUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDNUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3BDLENBQUM7K0dBeEhVLHFCQUFxQjttR0FBckIscUJBQXFCLDhLQUxyQjtZQUNULEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFdBQVcsRUFBRSxxQkFBcUIsRUFBRTtTQUN0RSwwQkFOUyxFQUFFOzs0RkFTRCxxQkFBcUI7a0JBWGpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsUUFBUSxFQUFFLEVBQUU7b0JBQ1osSUFBSSxFQUFFO3dCQUNKLFdBQVcsRUFBRSxJQUFJO3FCQUNsQjtvQkFDRCxTQUFTLEVBQUU7d0JBQ1QsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsV0FBVyx1QkFBdUIsRUFBRTtxQkFDdEU7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEOzhIQVlRLEVBQUU7c0JBRFIsS0FBSztnQkFNSyxNQUFNO3NCQURoQixLQUFLO2dCQVNLLE1BQU07c0JBRGhCLEtBQUs7Z0JBU0ssS0FBSztzQkFEZixLQUFLO2dCQVNLLEtBQUs7c0JBRGYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsIElucHV0LCBPbkRlc3Ryb3ksXG4gIE9uSW5pdFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtcbiAgSVBvaW50LCBJU2l6ZSwgSVRyYW5zZm9ybU1vZGVsLFxuICBQb2ludEV4dGVuc2lvbnMsIFNpemVFeHRlbnNpb25zLCBUcmFuc2Zvcm1Nb2RlbEV4dGVuc2lvbnNcbn0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQgeyBGX0JBQ0tHUk9VTkRfUEFUVEVSTiwgSUZCYWNrZ3JvdW5kUGF0dGVybiB9IGZyb20gJy4uL2RvbWFpbic7XG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGNyZWF0ZVNWR0VsZW1lbnQgfSBmcm9tICcuLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgQnJvd3NlclNlcnZpY2UgfSBmcm9tICdAZm9ibGV4L3BsYXRmb3JtJztcblxubGV0IHVuaXF1ZUlkOiBudW1iZXIgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiZi1yZWN0LXBhdHRlcm5cIixcbiAgdGVtcGxhdGU6IGBgLFxuICBob3N0OiB7XG4gICAgJ1thdHRyLmlkXSc6ICdpZCdcbiAgfSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBGX0JBQ0tHUk9VTkRfUEFUVEVSTiwgdXNlRXhpc3Rpbmc6IEZSZWN0UGF0dGVybkNvbXBvbmVudCB9XG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEZSZWN0UGF0dGVybkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBJRkJhY2tncm91bmRQYXR0ZXJuIHtcblxuICBwcml2YXRlIF9zdWJzY3JpcHRpb24kOiBTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgcHJpdmF0ZSBfc3RhdGVDaGFuZ2VzOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwdWJsaWMgZ2V0IGhvc3RFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmZXJlbmNlLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgaWQ6IHN0cmluZyA9IGBmLXBhdHRlcm4tJHsgdW5pcXVlSWQrKyB9YDtcblxuICBwcml2YXRlIF92Q29sb3I6IHN0cmluZyA9ICdyZ2JhKDAsMCwwLDAuMSknO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgdkNvbG9yKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl92Q29sb3IgPSB2YWx1ZTtcbiAgICB0aGlzLl9zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaENvbG9yOiBzdHJpbmcgPSAncmdiYSgwLDAsMCwwLjEpJztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGhDb2xvcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5faENvbG9yID0gdmFsdWU7XG4gICAgdGhpcy5fc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3ZTaXplOiBudW1iZXIgPSAyMDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHZTaXplKHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl92U2l6ZSA9IHZhbHVlO1xuICAgIHRoaXMuX3N0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gIH1cblxuICBwcml2YXRlIF9oU2l6ZTogbnVtYmVyID0gMjA7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBoU2l6ZSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5faFNpemUgPSB2YWx1ZTtcbiAgICB0aGlzLl9zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdHJhbnNmb3JtOiBJVHJhbnNmb3JtTW9kZWwgPSBUcmFuc2Zvcm1Nb2RlbEV4dGVuc2lvbnMuZGVmYXVsdCgpO1xuXG4gIHByaXZhdGUgX3Bvc2l0aW9uOiBJUG9pbnQgPSBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgpO1xuXG4gIHByaXZhdGUgX3NpemU6IElTaXplID0gU2l6ZUV4dGVuc2lvbnMuaW5pdGlhbGl6ZSh0aGlzLl9oU2l6ZSwgdGhpcy5fdlNpemUpO1xuXG4gIHByaXZhdGUgX3BhdHRlcm4hOiBTVkdQYXR0ZXJuRWxlbWVudDtcbiAgcHJpdmF0ZSBfdkxpbmUhOiBTVkdMaW5lRWxlbWVudDtcbiAgcHJpdmF0ZSBfaExpbmUhOiBTVkdMaW5lRWxlbWVudDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsZW1lbnRSZWZlcmVuY2U6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIHByaXZhdGUgZkJyb3dzZXI6IEJyb3dzZXJTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuY3JlYXRlUGF0dGVybigpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVQYXR0ZXJuKCk6IHZvaWQge1xuICAgIHRoaXMuX3BhdHRlcm4gPSBjcmVhdGVTVkdFbGVtZW50KCdwYXR0ZXJuJywgdGhpcy5mQnJvd3Nlcik7XG4gICAgdGhpcy5fcGF0dGVybi5zZXRBdHRyaWJ1dGUoJ3BhdHRlcm5Vbml0cycsICd1c2VyU3BhY2VPblVzZScpO1xuICAgIHRoaXMuaG9zdEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fcGF0dGVybik7XG5cbiAgICB0aGlzLl92TGluZSA9IGNyZWF0ZVNWR0VsZW1lbnQoJ2xpbmUnLCB0aGlzLmZCcm93c2VyKTtcbiAgICB0aGlzLl9wYXR0ZXJuLmFwcGVuZENoaWxkKHRoaXMuX3ZMaW5lKTtcblxuICAgIHRoaXMuX2hMaW5lID0gY3JlYXRlU1ZHRWxlbWVudCgnbGluZScsIHRoaXMuZkJyb3dzZXIpO1xuICAgIHRoaXMuX3BhdHRlcm4uYXBwZW5kQ2hpbGQodGhpcy5faExpbmUpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbiQuYWRkKHRoaXMuc3Vic2NyaWJlVG9TdGF0ZUNoYW5nZXMoKSk7XG4gIH1cblxuICBwcml2YXRlIHN1YnNjcmliZVRvU3RhdGVDaGFuZ2VzKCk6IFN1YnNjcmlwdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXRlQ2hhbmdlcy5waXBlKHN0YXJ0V2l0aChudWxsKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMucmVkcmF3KCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNhbGN1bGF0ZVBhdHRlcm4oKTogdm9pZCB7XG4gICAgdGhpcy5fcG9zaXRpb24ueCA9IHRoaXMuX3RyYW5zZm9ybS5wb3NpdGlvbi54ICsgdGhpcy5fdHJhbnNmb3JtLnNjYWxlZFBvc2l0aW9uLng7XG4gICAgdGhpcy5fcG9zaXRpb24ueSA9IHRoaXMuX3RyYW5zZm9ybS5wb3NpdGlvbi55ICsgdGhpcy5fdHJhbnNmb3JtLnNjYWxlZFBvc2l0aW9uLnk7XG4gICAgdGhpcy5fc2l6ZSA9IFNpemVFeHRlbnNpb25zLmluaXRpYWxpemUodGhpcy5faFNpemUgKiB0aGlzLl90cmFuc2Zvcm0uc2NhbGUsIHRoaXMuX3ZTaXplICogdGhpcy5fdHJhbnNmb3JtLnNjYWxlKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVkcmF3KCk6IHZvaWQge1xuICAgIHRoaXMuY2FsY3VsYXRlUGF0dGVybigpO1xuICAgIHRoaXMucmVkcmF3UGF0dGVybigpO1xuXG4gICAgdGhpcy5yZWRyYXdMaW5lKHRoaXMuX3ZMaW5lLCB0aGlzLl92Q29sb3IsIHRoaXMuX3NpemUud2lkdGgsIDAsIHRoaXMuX3NpemUud2lkdGgsIHRoaXMuX3NpemUuaGVpZ2h0KTtcbiAgICB0aGlzLnJlZHJhd0xpbmUodGhpcy5faExpbmUsIHRoaXMuX2hDb2xvciwgMCwgdGhpcy5fc2l6ZS5oZWlnaHQsIHRoaXMuX3NpemUud2lkdGgsIHRoaXMuX3NpemUuaGVpZ2h0KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVkcmF3UGF0dGVybigpOiB2b2lkIHtcbiAgICB0aGlzLl9wYXR0ZXJuLnNldEF0dHJpYnV0ZSgneCcsIGAkeyB0aGlzLl9wb3NpdGlvbi54IH1gKTtcbiAgICB0aGlzLl9wYXR0ZXJuLnNldEF0dHJpYnV0ZSgneScsIGAkeyB0aGlzLl9wb3NpdGlvbi55IH1gKTtcbiAgICB0aGlzLl9wYXR0ZXJuLnNldEF0dHJpYnV0ZSgnd2lkdGgnLCBgJHsgdGhpcy5fc2l6ZS53aWR0aCB9YCk7XG4gICAgdGhpcy5fcGF0dGVybi5zZXRBdHRyaWJ1dGUoJ2hlaWdodCcsIGAkeyB0aGlzLl9zaXplLmhlaWdodCB9YCk7XG4gIH1cblxuICBwcml2YXRlIHJlZHJhd0xpbmUobGluZTogU1ZHTGluZUVsZW1lbnQsIGNvbG9yOiBzdHJpbmcsIHgxOiBudW1iZXIsIHkxOiBudW1iZXIsIHgyOiBudW1iZXIsIHkyOiBudW1iZXIpOiB2b2lkIHtcbiAgICBsaW5lLnNldEF0dHJpYnV0ZSgnc3Ryb2tlJywgYCR7IGNvbG9yIH1gKTtcbiAgICBsaW5lLnNldEF0dHJpYnV0ZSgneDEnLCBgJHsgeDEgfWApO1xuICAgIGxpbmUuc2V0QXR0cmlidXRlKCd4MicsIGAkeyB4MiB9YCk7XG4gICAgbGluZS5zZXRBdHRyaWJ1dGUoJ3kxJywgYCR7IHkxIH1gKTtcbiAgICBsaW5lLnNldEF0dHJpYnV0ZSgneTInLCBgJHsgeTIgfWApO1xuICB9XG5cbiAgcHVibGljIHNldFRyYW5zZm9ybSh0cmFuc2Zvcm06IElUcmFuc2Zvcm1Nb2RlbCk6IHZvaWQge1xuICAgIHRoaXMuX3RyYW5zZm9ybSA9IHRyYW5zZm9ybTtcbiAgICB0aGlzLl9zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbiQudW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIl19
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1yZWN0LXBhdHRlcm4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWJhY2tncm91ZC9mLXJlY3QtcGF0dGVybi9mLXJlY3QtcGF0dGVybi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQUUsVUFBVSxFQUNyQixVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFFMUIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVMLGVBQWUsRUFBRSxjQUFjLEVBQUUsd0JBQXdCLEVBQzFELE1BQU0sWUFBWSxDQUFDO0FBQ3BCLE9BQU8sRUFBRSxvQkFBb0IsRUFBdUIsTUFBTSxXQUFXLENBQUM7QUFDdEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRWhELE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7QUFFeEUsSUFBSSxRQUFRLEdBQVcsQ0FBQyxDQUFDO0FBYXpCLE1BQU0sT0FBTyxxQkFBcUI7SUFRaEMsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQztJQUM5QyxDQUFDO0lBMkJELFlBQ1UsU0FBeUI7UUFBekIsY0FBUyxHQUFULFNBQVMsQ0FBZ0I7UUFwQzNCLGdCQUFXLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRWpDLHNCQUFpQixHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV2QyxrQkFBYSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7UUFPaEMsT0FBRSxHQUFXLGFBQWMsUUFBUSxFQUFHLEVBQUUsQ0FBQztRQUd6QyxXQUFNLEdBQVcsaUJBQWlCLENBQUM7UUFHbkMsV0FBTSxHQUFXLGlCQUFpQixDQUFDO1FBR25DLFVB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QyxJQUFJLEVBQUUsR0FBSSxFQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFTSxZQUFZLENBQUMsU0FBMEI7UUFDNUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDNUIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFFTyxRQUFRO1FBQ2QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUM5QixDQUFDOytHQXpHVSxxQkFBcUI7bUdBQXJCLHFCQUFxQiw4S0FMckI7WUFDVCxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxXQUFXLEVBQUUscUJBQXFCLEVBQUU7U0FDdEUsK0NBTlMsRUFBRTs7NEZBU0QscUJBQXFCO2tCQVhqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFFBQVEsRUFBRSxFQUFFO29CQUNaLElBQUksRUFBRTt3QkFDSixXQUFXLEVBQUUsSUFBSTtxQkFDbEI7b0JBQ0QsU0FBUyxFQUFFO3dCQUNULEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFdBQVcsdUJBQXVCLEVBQUU7cUJBQ3RFO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRDtxR0FjUSxFQUFFO3NCQURSLEtBQUs7Z0JBSUMsTUFBTTtzQkFEWixLQUFLO2dCQUlDLE1BQU07c0JBRFosS0FBSztnQkFJQyxLQUFLO3NCQURYLEtBQUs7Z0JBSUMsS0FBSztzQkFEWCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCwgRGVzdHJveVJlZixcbiAgRWxlbWVudFJlZiwgaW5qZWN0LCBJbnB1dCwgT25DaGFuZ2VzLFxuICBPbkluaXQsIFNpbXBsZUNoYW5nZXNcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7XG4gIElQb2ludCwgSVNpemUsIElUcmFuc2Zvcm1Nb2RlbCxcbiAgUG9pbnRFeHRlbnNpb25zLCBTaXplRXh0ZW5zaW9ucywgVHJhbnNmb3JtTW9kZWxFeHRlbnNpb25zXG59IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgRl9CQUNLR1JPVU5EX1BBVFRFUk4sIElGQmFja2dyb3VuZFBhdHRlcm4gfSBmcm9tICcuLi9kb21haW4nO1xuaW1wb3J0IHsgY3JlYXRlU1ZHRWxlbWVudCB9IGZyb20gJy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBCcm93c2VyU2VydmljZSB9IGZyb20gJ0Bmb2JsZXgvcGxhdGZvcm0nO1xuaW1wb3J0IHsgRkNoYW5uZWwsIEZDaGFubmVsSHViLCBub3RpZnlPblN0YXJ0IH0gZnJvbSAnLi4vLi4vcmVhY3Rpdml0eSc7XG5cbmxldCB1bmlxdWVJZDogbnVtYmVyID0gMDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImYtcmVjdC1wYXR0ZXJuXCIsXG4gIHRlbXBsYXRlOiBgYCxcbiAgaG9zdDoge1xuICAgICdbYXR0ci5pZF0nOiAnaWQnXG4gIH0sXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogRl9CQUNLR1JPVU5EX1BBVFRFUk4sIHVzZUV4aXN0aW5nOiBGUmVjdFBhdHRlcm5Db21wb25lbnQgfVxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBGUmVjdFBhdHRlcm5Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgSUZCYWNrZ3JvdW5kUGF0dGVybiB7XG5cbiAgcHJpdmF0ZSBfZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICBwcml2YXRlIF9lbGVtZW50UmVmZXJlbmNlID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuXG4gIHByaXZhdGUgX3N0YXRlQ2hhbmdlcyA9IG5ldyBGQ2hhbm5lbCgpO1xuXG4gIHB1YmxpYyBnZXQgaG9zdEVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLl9lbGVtZW50UmVmZXJlbmNlLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgaWQ6IHN0cmluZyA9IGBmLXBhdHRlcm4tJHsgdW5pcXVlSWQrKyB9YDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgdkNvbG9yOiBzdHJpbmcgPSAncmdiYSgwLDAsMCwwLjEpJztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgaENvbG9yOiBzdHJpbmcgPSAncmdiYSgwLDAsMCwwLjEpJztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgdlNpemU6IG51bWJlciA9IDIwO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoU2l6ZTogbnVtYmVyID0gMjA7XG5cbiAgcHJpdmF0ZSBfdHJhbnNmb3JtOiBJVHJhbnNmb3JtTW9kZWwgPSBUcmFuc2Zvcm1Nb2RlbEV4dGVuc2lvbnMuZGVmYXVsdCgpO1xuXG4gIHByaXZhdGUgX3Bvc2l0aW9uOiBJUG9pbnQgPSBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgpO1xuXG4gIHByaXZhdGUgX3NpemU6IElTaXplID0gU2l6ZUV4dGVuc2lvbnMuaW5pdGlhbGl6ZSh0aGlzLmhTaXplLCB0aGlzLnZTaXplKTtcblxuICBwcml2YXRlIF9wYXR0ZXJuITogU1ZHUGF0dGVybkVsZW1lbnQ7XG4gIHByaXZhdGUgX3ZMaW5lITogU1ZHTGluZUVsZW1lbnQ7XG4gIHByaXZhdGUgX2hMaW5lITogU1ZHTGluZUVsZW1lbnQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfZkJyb3dzZXI6IEJyb3dzZXJTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuX2NyZWF0ZVBhdHRlcm4oKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NyZWF0ZVBhdHRlcm4oKTogdm9pZCB7XG4gICAgdGhpcy5fcGF0dGVybiA9IGNyZWF0ZVNWR0VsZW1lbnQoJ3BhdHRlcm4nLCB0aGlzLl9mQnJvd3Nlcik7XG4gICAgdGhpcy5fcGF0dGVybi5zZXRBdHRyaWJ1dGUoJ3BhdHRlcm5Vbml0cycsICd1c2VyU3BhY2VPblVzZScpO1xuICAgIHRoaXMuaG9zdEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fcGF0dGVybik7XG5cbiAgICB0aGlzLl92TGluZSA9IGNyZWF0ZVNWR0VsZW1lbnQoJ2xpbmUnLCB0aGlzLl9mQnJvd3Nlcik7XG4gICAgdGhpcy5fcGF0dGVybi5hcHBlbmRDaGlsZCh0aGlzLl92TGluZSk7XG5cbiAgICB0aGlzLl9oTGluZSA9IGNyZWF0ZVNWR0VsZW1lbnQoJ2xpbmUnLCB0aGlzLl9mQnJvd3Nlcik7XG4gICAgdGhpcy5fcGF0dGVybi5hcHBlbmRDaGlsZCh0aGlzLl9oTGluZSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fbGlzdGVuU3RhdGVDaGFuZ2VzKCk7XG4gIH1cblxuICBwcml2YXRlIF9saXN0ZW5TdGF0ZUNoYW5nZXMoKTogdm9pZCB7XG4gICAgbmV3IEZDaGFubmVsSHViKHRoaXMuX3N0YXRlQ2hhbmdlcykucGlwZShub3RpZnlPblN0YXJ0KCkpLmxpc3Rlbih0aGlzLl9kZXN0cm95UmVmLCAoKSA9PiB0aGlzLl9yZWRyYXcoKSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzWyd2U2l6ZSddIHx8IGNoYW5nZXNbJ2hTaXplJ10gfHwgY2hhbmdlc1sndkNvbG9yJ10gfHwgY2hhbmdlc1snaENvbG9yJ10pIHtcbiAgICAgIHRoaXMuX3JlZnJlc2goKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9yZWRyYXcoKTogdm9pZCB7XG4gICAgdGhpcy5fY2FsY3VsYXRlUGF0dGVybigpO1xuICAgIHRoaXMuX3JlZHJhd1BhdHRlcm4oKTtcblxuICAgIHRoaXMucmVkcmF3TGluZSh0aGlzLl92TGluZSwgdGhpcy52Q29sb3IsIHRoaXMuX3NpemUud2lkdGgsIDAsIHRoaXMuX3NpemUud2lkdGgsIHRoaXMuX3NpemUuaGVpZ2h0KTtcbiAgICB0aGlzLnJlZHJhd0xpbmUodGhpcy5faExpbmUsIHRoaXMuaENvbG9yLCAwLCB0aGlzLl9zaXplLmhlaWdodCwgdGhpcy5fc2l6ZS53aWR0aCwgdGhpcy5fc2l6ZS5oZWlnaHQpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2FsY3VsYXRlUGF0dGVybigpOiB2b2lkIHtcbiAgICB0aGlzLl9wb3NpdGlvbi54ID0gdGhpcy5fdHJhbnNmb3JtLnBvc2l0aW9uLnggKyB0aGlzLl90cmFuc2Zvcm0uc2NhbGVkUG9zaXRpb24ueDtcbiAgICB0aGlzLl9wb3NpdGlvbi55ID0gdGhpcy5fdHJhbnNmb3JtLnBvc2l0aW9uLnkgKyB0aGlzLl90cmFuc2Zvcm0uc2NhbGVkUG9zaXRpb24ueTtcbiAgICB0aGlzLl9zaXplID0gU2l6ZUV4dGVuc2lvbnMuaW5pdGlhbGl6ZSh0aGlzLmhTaXplICogdGhpcy5fdHJhbnNmb3JtLnNjYWxlLCB0aGlzLnZTaXplICogdGhpcy5fdHJhbnNmb3JtLnNjYWxlKTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlZHJhd1BhdHRlcm4oKTogdm9pZCB7XG4gICAgdGhpcy5fcGF0dGVybi5zZXRBdHRyaWJ1dGUoJ3gnLCBgJHsgdGhpcy5fcG9zaXRpb24ueCB9YCk7XG4gICAgdGhpcy5fcGF0dGVybi5zZXRBdHRyaWJ1dGUoJ3knLCBgJHsgdGhpcy5fcG9zaXRpb24ueSB9YCk7XG4gICAgdGhpcy5fcGF0dGVybi5zZXRBdHRyaWJ1dGUoJ3dpZHRoJywgYCR7IHRoaXMuX3NpemUud2lkdGggfWApO1xuICAgIHRoaXMuX3BhdHRlcm4uc2V0QXR0cmlidXRlKCdoZWlnaHQnLCBgJHsgdGhpcy5fc2l6ZS5oZWlnaHQgfWApO1xuICB9XG5cbiAgcHJpdmF0ZSByZWRyYXdMaW5lKGxpbmU6IFNWR0xpbmVFbGVtZW50LCBjb2xvcjogc3RyaW5nLCB4MTogbnVtYmVyLCB5MTogbnVtYmVyLCB4MjogbnVtYmVyLCB5MjogbnVtYmVyKTogdm9pZCB7XG4gICAgbGluZS5zZXRBdHRyaWJ1dGUoJ3N0cm9rZScsIGAkeyBjb2xvciB9YCk7XG4gICAgbGluZS5zZXRBdHRyaWJ1dGUoJ3gxJywgYCR7IHgxIH1gKTtcbiAgICBsaW5lLnNldEF0dHJpYnV0ZSgneDInLCBgJHsgeDIgfWApO1xuICAgIGxpbmUuc2V0QXR0cmlidXRlKCd5MScsIGAkeyB5MSB9YCk7XG4gICAgbGluZS5zZXRBdHRyaWJ1dGUoJ3kyJywgYCR7IHkyIH1gKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRUcmFuc2Zvcm0odHJhbnNmb3JtOiBJVHJhbnNmb3JtTW9kZWwpOiB2b2lkIHtcbiAgICB0aGlzLl90cmFuc2Zvcm0gPSB0cmFuc2Zvcm07XG4gICAgdGhpcy5fcmVmcmVzaCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVmcmVzaCgpOiB2b2lkIHtcbiAgICB0aGlzLl9zdGF0ZUNoYW5nZXMubm90aWZ5KCk7XG4gIH1cbn1cbiJdfQ==
@@ -22,4 +22,4 @@ export class FCanvasBase {
22
22
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FCanvasBase, decorators: [{
23
23
  type: Directive
24
24
  }] });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jYW52YXMtYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jYW52YXMvZi1jYW52YXMtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLHdCQUF3QixFQUFVLE1BQU0sWUFBWSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxTQUFTLEVBQTRCLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBSTlDLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxJQUFJLGNBQWMsQ0FBYyxVQUFVLENBQUMsQ0FBQztBQUlwRSxNQUFNLE9BQWdCLFdBQVc7SUFEakM7UUFlUyxjQUFTLEdBQUcsd0JBQXdCLENBQUMsT0FBTyxFQUFFLENBQUM7S0F1QnZEO0lBakJRLFdBQVc7UUFDaEIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQztJQUNqQyxDQUFDO0lBRU0sV0FBVyxDQUFDLFFBQWdCO1FBQ2pDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUNyQyxDQUFDO0lBTU0scUJBQXFCO1FBQzFCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUNuQixJQUFJLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUM1SCxDQUFDO0lBQ0osQ0FBQzsrR0FwQ21CLFdBQVc7bUdBQVgsV0FBVzs7NEZBQVgsV0FBVztrQkFEaEMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBvaW50RXh0ZW5zaW9ucywgVHJhbnNmb3JtTW9kZWxFeHRlbnNpb25zLCBJUG9pbnQgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRkNhbnZhc0NoYW5nZUV2ZW50IH0gZnJvbSAnLi9kb21haW4nO1xuaW1wb3J0IHsgRk5vZGVCYXNlIH0gZnJvbSAnLi4vZi1ub2RlJztcbmltcG9ydCB7IElIYXNIb3N0RWxlbWVudCB9IGZyb20gJy4uL2ktaGFzLWhvc3QtZWxlbWVudCc7XG5cbmV4cG9ydCBjb25zdCBGX0NBTlZBUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxGQ2FudmFzQmFzZT4oJ0ZfQ0FOVkFTJyk7XG5cblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRkNhbnZhc0Jhc2UgaW1wbGVtZW50cyBJSGFzSG9zdEVsZW1lbnQge1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmQ2FudmFzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RkNhbnZhc0NoYW5nZUV2ZW50PjtcblxuICBwdWJsaWMgYWJzdHJhY3QgZk5vZGVzOiBGTm9kZUJhc2VbXTtcblxuICBwdWJsaWMgYWJzdHJhY3QgaG9zdEVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmR3JvdXBzQ29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBwdWJsaWMgYWJzdHJhY3QgZk5vZGVzQ29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBwdWJsaWMgYWJzdHJhY3QgZkNvbm5lY3Rpb25zQ29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBwdWJsaWMgdHJhbnNmb3JtID0gVHJhbnNmb3JtTW9kZWxFeHRlbnNpb25zLmRlZmF1bHQoKTtcblxuICBwdWJsaWMgYWJzdHJhY3QgcmVkcmF3KCk6IHZvaWQ7XG5cbiAgcHVibGljIGFic3RyYWN0IHJlZHJhd1dpdGhBbmltYXRpb24oKTogdm9pZDtcblxuICBwdWJsaWMgZ2V0UG9zaXRpb24oKTogSVBvaW50IHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2Zvcm0ucG9zaXRpb247XG4gIH1cblxuICBwdWJsaWMgc2V0UG9zaXRpb24ocG9zaXRpb246IElQb2ludCk6IHZvaWQge1xuICAgIHRoaXMudHJhbnNmb3JtLnBvc2l0aW9uID0gcG9zaXRpb247XG4gIH1cblxuICBwdWJsaWMgYWJzdHJhY3Qgc2V0Wm9vbShzY2FsZTogbnVtYmVyLCB0b1Bvc2l0aW9uOiBJUG9pbnQpOiB2b2lkO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCByZXNldFpvb20oKTogdm9pZDtcblxuICBwdWJsaWMgZW1pdENhbnZhc0NoYW5nZUV2ZW50KCk6IHZvaWQge1xuICAgIHRoaXMuZkNhbnZhc0NoYW5nZS5lbWl0KFxuICAgICAgICBuZXcgRkNhbnZhc0NoYW5nZUV2ZW50KFBvaW50RXh0ZW5zaW9ucy5zdW0odGhpcy50cmFuc2Zvcm0ucG9zaXRpb24sIHRoaXMudHJhbnNmb3JtLnNjYWxlZFBvc2l0aW9uKSwgdGhpcy50cmFuc2Zvcm0uc2NhbGUpXG4gICAgKTtcbiAgfVxufVxuIl19
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jYW52YXMtYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jYW52YXMvZi1jYW52YXMtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLHdCQUF3QixFQUFVLE1BQU0sWUFBWSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxTQUFTLEVBQTRCLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBRzlDLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxJQUFJLGNBQWMsQ0FBYyxVQUFVLENBQUMsQ0FBQztBQUdwRSxNQUFNLE9BQWdCLFdBQVc7SUFEakM7UUFhUyxjQUFTLEdBQUcsd0JBQXdCLENBQUMsT0FBTyxFQUFFLENBQUM7S0F1QnZEO0lBakJRLFdBQVc7UUFDaEIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQztJQUNqQyxDQUFDO0lBRU0sV0FBVyxDQUFDLFFBQWdCO1FBQ2pDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUNyQyxDQUFDO0lBTU0scUJBQXFCO1FBQzFCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUNuQixJQUFJLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUM1SCxDQUFDO0lBQ0osQ0FBQzsrR0FsQ21CLFdBQVc7bUdBQVgsV0FBVzs7NEZBQVgsV0FBVztrQkFEaEMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBvaW50RXh0ZW5zaW9ucywgVHJhbnNmb3JtTW9kZWxFeHRlbnNpb25zLCBJUG9pbnQgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRkNhbnZhc0NoYW5nZUV2ZW50IH0gZnJvbSAnLi9kb21haW4nO1xuaW1wb3J0IHsgSUhhc0hvc3RFbGVtZW50IH0gZnJvbSAnLi4vaS1oYXMtaG9zdC1lbGVtZW50JztcblxuZXhwb3J0IGNvbnN0IEZfQ0FOVkFTID0gbmV3IEluamVjdGlvblRva2VuPEZDYW52YXNCYXNlPignRl9DQU5WQVMnKTtcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRkNhbnZhc0Jhc2UgaW1wbGVtZW50cyBJSGFzSG9zdEVsZW1lbnQge1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmQ2FudmFzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RkNhbnZhc0NoYW5nZUV2ZW50PjtcblxuICBwdWJsaWMgYWJzdHJhY3QgaG9zdEVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmR3JvdXBzQ29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBwdWJsaWMgYWJzdHJhY3QgZk5vZGVzQ29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBwdWJsaWMgYWJzdHJhY3QgZkNvbm5lY3Rpb25zQ29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBwdWJsaWMgdHJhbnNmb3JtID0gVHJhbnNmb3JtTW9kZWxFeHRlbnNpb25zLmRlZmF1bHQoKTtcblxuICBwdWJsaWMgYWJzdHJhY3QgcmVkcmF3KCk6IHZvaWQ7XG5cbiAgcHVibGljIGFic3RyYWN0IHJlZHJhd1dpdGhBbmltYXRpb24oKTogdm9pZDtcblxuICBwdWJsaWMgZ2V0UG9zaXRpb24oKTogSVBvaW50IHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2Zvcm0ucG9zaXRpb247XG4gIH1cblxuICBwdWJsaWMgc2V0UG9zaXRpb24ocG9zaXRpb246IElQb2ludCk6IHZvaWQge1xuICAgIHRoaXMudHJhbnNmb3JtLnBvc2l0aW9uID0gcG9zaXRpb247XG4gIH1cblxuICBwdWJsaWMgYWJzdHJhY3Qgc2V0Wm9vbShzY2FsZTogbnVtYmVyLCB0b1Bvc2l0aW9uOiBJUG9pbnQpOiB2b2lkO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCByZXNldFpvb20oKTogdm9pZDtcblxuICBwdWJsaWMgZW1pdENhbnZhc0NoYW5nZUV2ZW50KCk6IHZvaWQge1xuICAgIHRoaXMuZkNhbnZhc0NoYW5nZS5lbWl0KFxuICAgICAgICBuZXcgRkNhbnZhc0NoYW5nZUV2ZW50KFBvaW50RXh0ZW5zaW9ucy5zdW0odGhpcy50cmFuc2Zvcm0ucG9zaXRpb24sIHRoaXMudHJhbnNmb3JtLnNjYWxlZFBvc2l0aW9uKSwgdGhpcy50cmFuc2Zvcm0uc2NhbGUpXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -1,68 +1,58 @@
1
- import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild, } from "@angular/core";
1
+ import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, inject, Input, Output, ViewChild, } from "@angular/core";
2
2
  import { FCanvasBase, F_CANVAS } from './f-canvas-base';
3
3
  import { PointExtensions, TransformModelExtensions } from '@foblex/2d';
4
- import { CenterGroupOrNodeRequest, EmitTransformChangesRequest, F_CANVAS_ANIMATION_DURATION, FitToFlowRequest, InputCanvasPositionRequest, InputCanvasScaleRequest, ResetScaleAndCenterRequest, ResetScaleRequest, UpdateScaleRequest, } from '../domain';
4
+ import { FMediator } from '@foblex/mediator';
5
+ import { AddCanvasToStoreRequest, CenterGroupOrNodeRequest, FitToFlowRequest, InputCanvasPositionRequest, InputCanvasScaleRequest, isMobile, RemoveCanvasFromStoreRequest, ResetScaleAndCenterRequest, ResetScaleRequest, SetBackgroundTransformRequest, transitionEnd, UpdateScaleRequest, } from '../domain';
6
+ import { NotifyTransformChangedRequest } from '../f-storage';
5
7
  import * as i0 from "@angular/core";
6
- import * as i1 from "@foblex/mediator";
7
- import * as i2 from "../f-storage";
8
8
  export class FCanvasComponent extends FCanvasBase {
9
+ constructor() {
10
+ super(...arguments);
11
+ this._elementReference = inject(ElementRef);
12
+ this.fCanvasChange = new EventEmitter();
13
+ this._fMediator = inject(FMediator);
14
+ }
9
15
  set position(value) {
10
- this.fMediator.send(new InputCanvasPositionRequest(this.transform, value));
16
+ this._fMediator.send(new InputCanvasPositionRequest(this.transform, value));
11
17
  }
12
18
  set scale(value) {
13
- this.fMediator.send(new InputCanvasScaleRequest(this.transform, value));
14
- }
15
- get fNodes() {
16
- return this.fComponentsStore.fNodes;
19
+ this._fMediator.send(new InputCanvasScaleRequest(this.transform, value));
17
20
  }
18
21
  get hostElement() {
19
- return this.elementReference.nativeElement;
20
- }
21
- constructor(elementReference, fMediator, fComponentsStore) {
22
- super();
23
- this.elementReference = elementReference;
24
- this.fMediator = fMediator;
25
- this.fComponentsStore = fComponentsStore;
26
- this.fCanvasChange = new EventEmitter();
22
+ return this._elementReference.nativeElement;
27
23
  }
28
24
  ngOnInit() {
29
- this.fComponentsStore.fCanvas = this;
25
+ this._fMediator.send(new AddCanvasToStoreRequest(this));
30
26
  }
31
27
  redraw() {
32
- this.fComponentsStore.fBackground?.setTransform(this.transform);
28
+ this._fMediator.send(new SetBackgroundTransformRequest(this.transform));
33
29
  this.hostElement.setAttribute("style", `transform: ${TransformModelExtensions.toString(this.transform)}`);
34
- this.fMediator.send(new EmitTransformChangesRequest());
30
+ this._fMediator.send(new NotifyTransformChangedRequest());
35
31
  }
36
32
  redrawWithAnimation() {
37
- let duration = F_CANVAS_ANIMATION_DURATION;
38
- if (this.isMobile()) {
39
- duration = 80;
40
- }
41
- this.fComponentsStore.fBackground?.setTransform(this.transform);
42
- this.hostElement.setAttribute("style", `transition: transform ${duration}ms ease-in-out; transform: ${TransformModelExtensions.toString(this.transform)}`);
43
- setTimeout(() => this.redraw(), F_CANVAS_ANIMATION_DURATION);
44
- }
45
- isMobile() {
46
- // @ts-ignore
47
- const userAgent = navigator.userAgent || navigator.vendor || window['opera'];
48
- return /android|iPad|iPhone|iPod/i.test(userAgent);
33
+ this._fMediator.send(new SetBackgroundTransformRequest(this.transform));
34
+ this.hostElement.setAttribute("style", `transition: transform ${isMobile() ? 80 : 150}ms ease-in-out; transform: ${TransformModelExtensions.toString(this.transform)}`);
35
+ transitionEnd(this.hostElement, () => this.redraw());
49
36
  }
50
37
  centerGroupOrNode(id, animated = true) {
51
- this.fMediator.send(new CenterGroupOrNodeRequest(id, animated));
38
+ this._fMediator.send(new CenterGroupOrNodeRequest(id, animated));
52
39
  }
53
40
  fitToScreen(toCenter = PointExtensions.initialize(), animated = true) {
54
- this.fMediator.send(new FitToFlowRequest(toCenter, animated));
41
+ this._fMediator.send(new FitToFlowRequest(toCenter, animated));
55
42
  }
56
43
  resetScaleAndCenter(animated = true) {
57
- this.fMediator.send(new ResetScaleAndCenterRequest(animated));
44
+ this._fMediator.send(new ResetScaleAndCenterRequest(animated));
58
45
  }
59
46
  setZoom(scale, toPosition = PointExtensions.initialize()) {
60
- this.fMediator.send(new UpdateScaleRequest(scale, toPosition));
47
+ this._fMediator.send(new UpdateScaleRequest(scale, toPosition));
61
48
  }
62
49
  resetZoom() {
63
- this.fMediator.send(new ResetScaleRequest());
50
+ this._fMediator.send(new ResetScaleRequest());
51
+ }
52
+ ngOnDestroy() {
53
+ this._fMediator.send(new RemoveCanvasFromStoreRequest());
64
54
  }
65
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FCanvasComponent, deps: [{ token: i0.ElementRef }, { token: i1.FMediator }, { token: i2.FComponentsStore }], target: i0.ɵɵFactoryTarget.Component }); }
55
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FCanvasComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
66
56
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FCanvasComponent, selector: "f-canvas", inputs: { position: "position", scale: "scale" }, outputs: { fCanvasChange: "fCanvasChange" }, host: { classAttribute: "f-component f-canvas" }, providers: [
67
57
  { provide: F_CANVAS, useExisting: FCanvasComponent }
68
58
  ], 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 }); }
@@ -74,7 +64,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
74
64
  }, providers: [
75
65
  { provide: F_CANVAS, useExisting: FCanvasComponent }
76
66
  ], changeDetection: ChangeDetectionStrategy.OnPush, 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"] }]
77
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.FMediator }, { type: i2.FComponentsStore }]; }, propDecorators: { fCanvasChange: [{
67
+ }], propDecorators: { fCanvasChange: [{
78
68
  type: Output
79
69
  }], position: [{
80
70
  type: Input
@@ -90,4 +80,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
90
80
  type: ViewChild,
91
81
  args: ['fConnectionsContainer', { static: true }]
92
82
  }] } });
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jYW52YXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNhbnZhcy9mLWNhbnZhcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY2FudmFzL2YtY2FudmFzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsR0FDdEUsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLFdBQVcsRUFBRSxRQUFRLEVBQ3RCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFVLGVBQWUsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQU8vRSxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLDJCQUEyQixFQUMzQiwyQkFBMkIsRUFDM0IsZ0JBQWdCLEVBQ2hCLDBCQUEwQixFQUMxQix1QkFBdUIsRUFDdkIsMEJBQTBCLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEdBQ2xFLE1BQU0sV0FBVyxDQUFDOzs7O0FBZW5CLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxXQUFXO0lBSy9DLElBQ1csUUFBUSxDQUFDLEtBQXlCO1FBQzNDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksMEJBQTBCLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFRCxJQUNXLEtBQUssQ0FBQyxLQUF5QjtRQUN4QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLHVCQUF1QixDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRUQsSUFBb0IsTUFBTTtRQUN4QixPQUFPLElB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RUFBRSxDQUFDLENBQUM7SUFDL0MsQ0FBQzsrR0FwRlUsZ0JBQWdCO21HQUFoQixnQkFBZ0Isb0xBTGhCO1lBQ1QsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRTtTQUNyRCxpY0NsQ0gsa2JBY0E7OzRGRHVCYSxnQkFBZ0I7a0JBYjVCLFNBQVM7K0JBQ0UsVUFBVSxZQUdWLFlBQVksUUFDaEI7d0JBQ0osT0FBTyxFQUFFLHNCQUFzQjtxQkFDaEMsYUFDVTt3QkFDVCxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxrQkFBa0IsRUFBRTtxQkFDckQsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU07d0pBSy9CLGFBQWE7c0JBRDVCLE1BQU07Z0JBSUksUUFBUTtzQkFEbEIsS0FBSztnQkFNSyxLQUFLO3NCQURmLEtBQUs7Z0JBY1UsZ0JBQWdCO3NCQUQvQixTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJL0IsZUFBZTtzQkFEOUIsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSTlCLHFCQUFxQjtzQkFEcEMsU0FBUzt1QkFBQyx1QkFBdUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtcbiAgRkNhbnZhc0Jhc2UsIEZfQ0FOVkFTXG59IGZyb20gJy4vZi1jYW52YXMtYmFzZSc7XG5pbXBvcnQgeyBJUG9pbnQsIFBvaW50RXh0ZW5zaW9ucywgVHJhbnNmb3JtTW9kZWxFeHRlbnNpb25zIH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQge1xuICBGQ2FudmFzQ2hhbmdlRXZlbnQsXG59IGZyb20gJy4vZG9tYWluJztcbmltcG9ydCB7IEZDb21wb25lbnRzU3RvcmUgfSBmcm9tICcuLi9mLXN0b3JhZ2UnO1xuaW1wb3J0IHsgRk5vZGVCYXNlIH0gZnJvbSAnLi4vZi1ub2RlJztcbmltcG9ydCB7IEZNZWRpYXRvciB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHtcbiAgQ2VudGVyR3JvdXBPck5vZGVSZXF1ZXN0LFxuICBFbWl0VHJhbnNmb3JtQ2hhbmdlc1JlcXVlc3QsXG4gIEZfQ0FOVkFTX0FOSU1BVElPTl9EVVJBVElPTixcbiAgRml0VG9GbG93UmVxdWVzdCxcbiAgSW5wdXRDYW52YXNQb3NpdGlvblJlcXVlc3QsXG4gIElucHV0Q2FudmFzU2NhbGVSZXF1ZXN0LFxuICBSZXNldFNjYWxlQW5kQ2VudGVyUmVxdWVzdCwgUmVzZXRTY2FsZVJlcXVlc3QsIFVwZGF0ZVNjYWxlUmVxdWVzdCxcbn0gZnJvbSAnLi4vZG9tYWluJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZi1jYW52YXMnLFxuICB0ZW1wbGF0ZVVybDogJy4vZi1jYW52YXMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsgJy4vZi1jYW52YXMuY29tcG9uZW50LnNjc3MnIF0sXG4gIGV4cG9ydEFzOiAnZkNvbXBvbmVudCcsXG4gIGhvc3Q6IHtcbiAgICAnY2xhc3MnOiAnZi1jb21wb25lbnQgZi1jYW52YXMnLFxuICB9LFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IEZfQ0FOVkFTLCB1c2VFeGlzdGluZzogRkNhbnZhc0NvbXBvbmVudCB9XG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBGQ2FudmFzQ29tcG9uZW50IGV4dGVuZHMgRkNhbnZhc0Jhc2UgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgb3ZlcnJpZGUgZkNhbnZhc0NoYW5nZTogRXZlbnRFbWl0dGVyPEZDYW52YXNDaGFuZ2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEZDYW52YXNDaGFuZ2VFdmVudD4oKTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHBvc2l0aW9uKHZhbHVlOiBJUG9pbnQgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLmZNZWRpYXRvci5zZW5kKG5ldyBJbnB1dENhbnZhc1Bvc2l0aW9uUmVxdWVzdCh0aGlzLnRyYW5zZm9ybSwgdmFsdWUpKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgc2NhbGUodmFsdWU6IG51bWJlciB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuZk1lZGlhdG9yLnNlbmQobmV3IElucHV0Q2FudmFzU2NhbGVSZXF1ZXN0KHRoaXMudHJhbnNmb3JtLCB2YWx1ZSkpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGdldCBmTm9kZXMoKTogRk5vZGVCYXNlW10ge1xuICAgIHJldHVybiB0aGlzLmZDb21wb25lbnRzU3RvcmUuZk5vZGVzO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGdldCBob3N0RWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZmVyZW5jZS5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgQFZpZXdDaGlsZCgnZkdyb3Vwc0NvbnRhaW5lcicsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHB1YmxpYyBvdmVycmlkZSBmR3JvdXBzQ29udGFpbmVyITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgQFZpZXdDaGlsZCgnZk5vZGVzQ29udGFpbmVyJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHVibGljIG92ZXJyaWRlIGZOb2Rlc0NvbnRhaW5lciE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIEBWaWV3Q2hpbGQoJ2ZDb25uZWN0aW9uc0NvbnRhaW5lcicsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHB1YmxpYyBvdmVycmlkZSBmQ29ubmVjdGlvbnNDb250YWluZXIhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsZW1lbnRSZWZlcmVuY2U6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIHByaXZhdGUgZk1lZGlhdG9yOiBGTWVkaWF0b3IsXG4gICAgcHJpdmF0ZSBmQ29tcG9uZW50c1N0b3JlOiBGQ29tcG9uZW50c1N0b3JlLFxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mQ2FudmFzID0gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSByZWRyYXcoKTogdm9pZCB7XG4gICAgdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZCYWNrZ3JvdW5kPy5zZXRUcmFuc2Zvcm0odGhpcy50cmFuc2Zvcm0pO1xuICAgIHRoaXMuaG9zdEVsZW1lbnQuc2V0QXR0cmlidXRlKFwic3R5bGVcIiwgYHRyYW5zZm9ybTogJHsgVHJhbnNmb3JtTW9kZWxFeHRlbnNpb25zLnRvU3RyaW5nKHRoaXMudHJhbnNmb3JtKSB9YCk7XG4gICAgdGhpcy5mTWVkaWF0b3Iuc2VuZChuZXcgRW1pdFRyYW5zZm9ybUNoYW5nZXNSZXF1ZXN0KCkpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlZHJhd1dpdGhBbmltYXRpb24oKTogdm9pZCB7XG4gICAgbGV0IGR1cmF0aW9uID0gRl9DQU5WQVNfQU5JTUFUSU9OX0RVUkFUSU9OO1xuICAgIGlmICh0aGlzLmlzTW9iaWxlKCkpIHtcbiAgICAgIGR1cmF0aW9uID0gODA7XG4gICAgfVxuICAgIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mQmFja2dyb3VuZD8uc2V0VHJhbnNmb3JtKHRoaXMudHJhbnNmb3JtKTtcbiAgICB0aGlzLmhvc3RFbGVtZW50LnNldEF0dHJpYnV0ZShcInN0eWxlXCIsIGB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gJHsgZHVyYXRpb24gfW1zIGVhc2UtaW4tb3V0OyB0cmFuc2Zvcm06ICR7IFRyYW5zZm9ybU1vZGVsRXh0ZW5zaW9ucy50b1N0cmluZyh0aGlzLnRyYW5zZm9ybSkgfWApO1xuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5yZWRyYXcoKSwgRl9DQU5WQVNfQU5JTUFUSU9OX0RVUkFUSU9OKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNNb2JpbGUoKTogYm9vbGVhbiB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGNvbnN0IHVzZXJBZ2VudCA9IG5hdmlnYXRvci51c2VyQWdlbnQgfHwgbmF2aWdhdG9yLnZlbmRvciB8fCB3aW5kb3dbICdvcGVyYScgXTtcbiAgICByZXR1cm4gL2FuZHJvaWR8aVBhZHxpUGhvbmV8aVBvZC9pLnRlc3QodXNlckFnZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBjZW50ZXJHcm91cE9yTm9kZShpZDogc3RyaW5nLCBhbmltYXRlZDogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcbiAgICB0aGlzLmZNZWRpYXRvci5zZW5kKG5ldyBDZW50ZXJHcm91cE9yTm9kZVJlcXVlc3QoaWQsIGFuaW1hdGVkKSk7XG4gIH1cblxuICBwdWJsaWMgZml0VG9TY3JlZW4odG9DZW50ZXI6IElQb2ludCA9IFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKCksIGFuaW1hdGVkOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xuICAgIHRoaXMuZk1lZGlhdG9yLnNlbmQobmV3IEZpdFRvRmxvd1JlcXVlc3QodG9DZW50ZXIsIGFuaW1hdGVkKSk7XG4gIH1cblxuICBwdWJsaWMgcmVzZXRTY2FsZUFuZENlbnRlcihhbmltYXRlZDogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcbiAgICB0aGlzLmZNZWRpYXRvci5zZW5kKG5ldyBSZXNldFNjYWxlQW5kQ2VudGVyUmVxdWVzdChhbmltYXRlZCkpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHNldFpvb20oc2NhbGU6IG51bWJlciwgdG9Qb3NpdGlvbjogSVBvaW50ID0gUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoKSk6IHZvaWQge1xuICAgIHRoaXMuZk1lZGlhdG9yLnNlbmQobmV3IFVwZGF0ZVNjYWxlUmVxdWVzdChzY2FsZSwgdG9Qb3NpdGlvbikpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlc2V0Wm9vbSgpOiB2b2lkIHtcbiAgICB0aGlzLmZNZWRpYXRvci5zZW5kKG5ldyBSZXNldFNjYWxlUmVxdWVzdCgpKTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lcj5cbiAgPGRpdiAjZkdyb3Vwc0NvbnRhaW5lcj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZkdyb3VwXVwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG4gIDxkaXYgI2ZDb25uZWN0aW9uc0NvbnRhaW5lcj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJmLXNuYXAtY29ubmVjdGlvblwiPjwvbmctY29udGVudD5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJmLWNvbm5lY3Rpb25cIj48L25nLWNvbnRlbnQ+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZi1jb25uZWN0aW9uLWZvci1jcmVhdGVcIj48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuXG4gIDxkaXYgI2ZOb2Rlc0NvbnRhaW5lcj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZk5vZGVdXCI+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jYW52YXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNhbnZhcy9mLWNhbnZhcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY2FudmFzL2YtY2FudmFzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLFNBQVMsR0FDekYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLFdBQVcsRUFBRSxRQUFRLEVBQ3RCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFVLGVBQWUsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUkvRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDN0MsT0FBTyxFQUNMLHVCQUF1QixFQUN2Qix3QkFBd0IsRUFDeEIsZ0JBQWdCLEVBQ2hCLDBCQUEwQixFQUMxQix1QkFBdUIsRUFBRSxRQUFRLEVBQUUsNEJBQTRCLEVBQy9ELDBCQUEwQixFQUFFLGlCQUFpQixFQUFFLDZCQUE2QixFQUFFLGFBQWEsRUFBRSxrQkFBa0IsR0FDaEgsTUFBTSxXQUFXLENBQUM7QUFDbkIsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sY0FBYyxDQUFDOztBQWU3RCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsV0FBVztJQWJqRDs7UUFlVSxzQkFBaUIsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFHL0Isa0JBQWEsR0FBcUMsSUFBSSxZQUFZLEVBQXNCLENBQUM7UUF5QmpHLGVBQVUsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7S0F5Q3hDO0lBaEVDLElBQ1csUUFBUSxD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QUFRLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFO1NBQ3JELGljQ2hDSCxrYkFjQTs7NEZEcUJhLGdCQUFnQjtrQkFiNUIsU0FBUzsrQkFDRSxVQUFVLFlBR1YsWUFBWSxRQUNoQjt3QkFDSixPQUFPLEVBQUUsc0JBQXNCO3FCQUNoQyxhQUNVO3dCQUNULEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxXQUFXLGtCQUFrQixFQUFFO3FCQUNyRCxtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTTs4QkFPL0IsYUFBYTtzQkFENUIsTUFBTTtnQkFJSSxRQUFRO3NCQURsQixLQUFLO2dCQU1LLEtBQUs7c0JBRGYsS0FBSztnQkFVVSxnQkFBZ0I7c0JBRC9CLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUkvQixlQUFlO3NCQUQ5QixTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJOUIscUJBQXFCO3NCQURwQyxTQUFTO3VCQUFDLHVCQUF1QixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtcbiAgRkNhbnZhc0Jhc2UsIEZfQ0FOVkFTXG59IGZyb20gJy4vZi1jYW52YXMtYmFzZSc7XG5pbXBvcnQgeyBJUG9pbnQsIFBvaW50RXh0ZW5zaW9ucywgVHJhbnNmb3JtTW9kZWxFeHRlbnNpb25zIH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQge1xuICBGQ2FudmFzQ2hhbmdlRXZlbnQsXG59IGZyb20gJy4vZG9tYWluJztcbmltcG9ydCB7IEZNZWRpYXRvciB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHtcbiAgQWRkQ2FudmFzVG9TdG9yZVJlcXVlc3QsXG4gIENlbnRlckdyb3VwT3JOb2RlUmVxdWVzdCxcbiAgRml0VG9GbG93UmVxdWVzdCxcbiAgSW5wdXRDYW52YXNQb3NpdGlvblJlcXVlc3QsXG4gIElucHV0Q2FudmFzU2NhbGVSZXF1ZXN0LCBpc01vYmlsZSwgUmVtb3ZlQ2FudmFzRnJvbVN0b3JlUmVxdWVzdCxcbiAgUmVzZXRTY2FsZUFuZENlbnRlclJlcXVlc3QsIFJlc2V0U2NhbGVSZXF1ZXN0LCBTZXRCYWNrZ3JvdW5kVHJhbnNmb3JtUmVxdWVzdCwgdHJhbnNpdGlvbkVuZCwgVXBkYXRlU2NhbGVSZXF1ZXN0LFxufSBmcm9tICcuLi9kb21haW4nO1xuaW1wb3J0IHsgTm90aWZ5VHJhbnNmb3JtQ2hhbmdlZFJlcXVlc3QgfSBmcm9tICcuLi9mLXN0b3JhZ2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmLWNhbnZhcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9mLWNhbnZhcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWyAnLi9mLWNhbnZhcy5jb21wb25lbnQuc2NzcycgXSxcbiAgZXhwb3J0QXM6ICdmQ29tcG9uZW50JyxcbiAgaG9zdDoge1xuICAgICdjbGFzcyc6ICdmLWNvbXBvbmVudCBmLWNhbnZhcycsXG4gIH0sXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogRl9DQU5WQVMsIHVzZUV4aXN0aW5nOiBGQ2FudmFzQ29tcG9uZW50IH1cbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEZDYW52YXNDb21wb25lbnQgZXh0ZW5kcyBGQ2FudmFzQmFzZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBwcml2YXRlIF9lbGVtZW50UmVmZXJlbmNlID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgb3ZlcnJpZGUgZkNhbnZhc0NoYW5nZTogRXZlbnRFbWl0dGVyPEZDYW52YXNDaGFuZ2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEZDYW52YXNDaGFuZ2VFdmVudD4oKTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHBvc2l0aW9uKHZhbHVlOiBJUG9pbnQgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9mTWVkaWF0b3Iuc2VuZChuZXcgSW5wdXRDYW52YXNQb3NpdGlvblJlcXVlc3QodGhpcy50cmFuc2Zvcm0sIHZhbHVlKSk7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNjYWxlKHZhbHVlOiBudW1iZXIgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9mTWVkaWF0b3Iuc2VuZChuZXcgSW5wdXRDYW52YXNTY2FsZVJlcXVlc3QodGhpcy50cmFuc2Zvcm0sIHZhbHVlKSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IGhvc3RFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZmVyZW5jZS5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgQFZpZXdDaGlsZCgnZkdyb3Vwc0NvbnRhaW5lcicsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHB1YmxpYyBvdmVycmlkZSBmR3JvdXBzQ29udGFpbmVyITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgQFZpZXdDaGlsZCgnZk5vZGVzQ29udGFpbmVyJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHVibGljIG92ZXJyaWRlIGZOb2Rlc0NvbnRhaW5lciE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIEBWaWV3Q2hpbGQoJ2ZDb25uZWN0aW9uc0NvbnRhaW5lcicsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHB1YmxpYyBvdmVycmlkZSBmQ29ubmVjdGlvbnNDb250YWluZXIhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBwcml2YXRlIF9mTWVkaWF0b3IgPSBpbmplY3QoRk1lZGlhdG9yKTtcblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5fZk1lZGlhdG9yLnNlbmQobmV3IEFkZENhbnZhc1RvU3RvcmVSZXF1ZXN0KHRoaXMpKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSByZWRyYXcoKTogdm9pZCB7XG4gICAgdGhpcy5fZk1lZGlhdG9yLnNlbmQobmV3IFNldEJhY2tncm91bmRUcmFuc2Zvcm1SZXF1ZXN0KHRoaXMudHJhbnNmb3JtKSk7XG4gICAgdGhpcy5ob3N0RWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJzdHlsZVwiLCBgdHJhbnNmb3JtOiAkeyBUcmFuc2Zvcm1Nb2RlbEV4dGVuc2lvbnMudG9TdHJpbmcodGhpcy50cmFuc2Zvcm0pIH1gKTtcbiAgICB0aGlzLl9mTWVkaWF0b3Iuc2VuZChuZXcgTm90aWZ5VHJhbnNmb3JtQ2hhbmdlZFJlcXVlc3QoKSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgcmVkcmF3V2l0aEFuaW1hdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLl9mTWVkaWF0b3Iuc2VuZChuZXcgU2V0QmFja2dyb3VuZFRyYW5zZm9ybVJlcXVlc3QodGhpcy50cmFuc2Zvcm0pKTtcbiAgICB0aGlzLmhvc3RFbGVtZW50LnNldEF0dHJpYnV0ZShcInN0eWxlXCIsIGB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gJHsgaXNNb2JpbGUoKSA/IDgwIDogMTUwIH1tcyBlYXNlLWluLW91dDsgdHJhbnNmb3JtOiAkeyBUcmFuc2Zvcm1Nb2RlbEV4dGVuc2lvbnMudG9TdHJpbmcodGhpcy50cmFuc2Zvcm0pIH1gKTtcbiAgICB0cmFuc2l0aW9uRW5kKHRoaXMuaG9zdEVsZW1lbnQsICgpID0+IHRoaXMucmVkcmF3KCkpO1xuICB9XG5cbiAgcHVibGljIGNlbnRlckdyb3VwT3JOb2RlKGlkOiBzdHJpbmcsIGFuaW1hdGVkOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xuICAgIHRoaXMuX2ZNZWRpYXRvci5zZW5kKG5ldyBDZW50ZXJHcm91cE9yTm9kZVJlcXVlc3QoaWQsIGFuaW1hdGVkKSk7XG4gIH1cblxuICBwdWJsaWMgZml0VG9TY3JlZW4odG9DZW50ZXI6IElQb2ludCA9IFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKCksIGFuaW1hdGVkOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xuICAgIHRoaXMuX2ZNZWRpYXRvci5zZW5kKG5ldyBGaXRUb0Zsb3dSZXF1ZXN0KHRvQ2VudGVyLCBhbmltYXRlZCkpO1xuICB9XG5cbiAgcHVibGljIHJlc2V0U2NhbGVBbmRDZW50ZXIoYW5pbWF0ZWQ6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XG4gICAgdGhpcy5fZk1lZGlhdG9yLnNlbmQobmV3IFJlc2V0U2NhbGVBbmRDZW50ZXJSZXF1ZXN0KGFuaW1hdGVkKSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgc2V0Wm9vbShzY2FsZTogbnVtYmVyLCB0b1Bvc2l0aW9uOiBJUG9pbnQgPSBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgpKTogdm9pZCB7XG4gICAgdGhpcy5fZk1lZGlhdG9yLnNlbmQobmV3IFVwZGF0ZVNjYWxlUmVxdWVzdChzY2FsZSwgdG9Qb3NpdGlvbikpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlc2V0Wm9vbSgpOiB2b2lkIHtcbiAgICB0aGlzLl9mTWVkaWF0b3Iuc2VuZChuZXcgUmVzZXRTY2FsZVJlcXVlc3QoKSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZk1lZGlhdG9yLnNlbmQobmV3IFJlbW92ZUNhbnZhc0Zyb21TdG9yZVJlcXVlc3QoKSk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXI+XG4gIDxkaXYgI2ZHcm91cHNDb250YWluZXI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ZHcm91cF1cIj48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuICA8ZGl2ICNmQ29ubmVjdGlvbnNDb250YWluZXI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZi1zbmFwLWNvbm5lY3Rpb25cIj48L25nLWNvbnRlbnQ+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZi1jb25uZWN0aW9uXCI+PC9uZy1jb250ZW50PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImYtY29ubmVjdGlvbi1mb3ItY3JlYXRlXCI+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cblxuICA8ZGl2ICNmTm9kZXNDb250YWluZXI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ZOb2RlXVwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==