@foblex/flow 17.7.0 → 17.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (725) hide show
  1. package/domain/css-cls.d.ts +4 -0
  2. package/domain/f-background/add-pattern-to-background/add-pattern-to-background.execution.d.ts +2 -2
  3. package/domain/f-background/remove-background-from-store/remove-background-from-store.execution.d.ts +1 -1
  4. package/domain/f-connectors/add-outlet-to-store/add-outlet-to-store.execution.d.ts +1 -1
  5. package/domain/f-connectors/add-output-to-store/add-output-to-store.execution.d.ts +1 -1
  6. package/domain/f-connectors/get-all-can-be-connected-inputs-and-rects/get-all-can-be-connected-inputs-and-rects.execution.d.ts +1 -1
  7. package/domain/f-connectors/get-all-can-be-connected-source-connectors-and-rects/get-all-can-be-connected-source-connectors-and-rects.execution.d.ts +1 -1
  8. package/domain/f-draggable/emit-selection-change-event/emit-selection-change-event.execution.d.ts +1 -1
  9. package/domain/f-draggable/end-drag-sequence/end-drag-sequence.execution.d.ts +1 -1
  10. package/domain/f-draggable/initialize-drag-sequence/initialize-drag-sequence.execution.d.ts +1 -1
  11. package/domain/f-draggable/is-drag-started/index.d.ts +1 -1
  12. package/domain/f-draggable/is-drag-started/{is-drag-started.execution.d.ts → is-drag-started.d.ts} +3 -3
  13. package/domain/f-draggable/on-pointer-move/on-pointer-move.execution.d.ts +1 -1
  14. package/domain/f-draggable/prepare-drag-sequence/prepare-drag-sequence.execution.d.ts +1 -1
  15. package/domain/f-draggable/providers.d.ts +2 -2
  16. package/domain/f-draggable/start-drag-sequence/start-drag-sequence.execution.d.ts +2 -2
  17. package/domain/f-flow/get-flow-state/i-f-flow-state-node.d.ts +2 -1
  18. package/domain/f-node/add-node-to-store/{add-node-to-store.execution.d.ts → add-node-to-store.d.ts} +3 -3
  19. package/domain/f-node/add-node-to-store/index.d.ts +1 -1
  20. package/domain/f-node/calculate-input-connections/{calculate-input-connections.execution.d.ts → calculate-input-connections.d.ts} +3 -3
  21. package/domain/f-node/calculate-input-connections/index.d.ts +1 -1
  22. package/domain/f-node/calculate-nodes-bounding-box/{calculate-nodes-bounding-box.execution.d.ts → calculate-nodes-bounding-box.d.ts} +3 -3
  23. package/domain/f-node/calculate-nodes-bounding-box/index.d.ts +1 -1
  24. package/domain/f-node/calculate-nodes-bounding-box-normalized-position/{calculate-nodes-bounding-box-normalized-position.execution.d.ts → calculate-nodes-bounding-box-normalized-position.d.ts} +3 -3
  25. package/domain/f-node/calculate-nodes-bounding-box-normalized-position/index.d.ts +1 -1
  26. package/domain/f-node/calculate-output-connections/{calculate-output-connections.execution.d.ts → calculate-output-connections.d.ts} +3 -3
  27. package/domain/f-node/calculate-output-connections/index.d.ts +1 -1
  28. package/domain/f-node/fit-to-child-nodes-and-groups/fit-to-child-nodes-and-groups-request.d.ts +6 -0
  29. package/domain/f-node/fit-to-child-nodes-and-groups/fit-to-child-nodes-and-groups.d.ts +16 -0
  30. package/domain/f-node/fit-to-child-nodes-and-groups/index.d.ts +2 -0
  31. package/domain/f-node/get-child-node-ids/get-child-node-ids.d.ts +14 -0
  32. package/domain/f-node/get-child-node-ids/get-child-node-ids.request.d.ts +5 -0
  33. package/domain/f-node/get-child-node-ids/index.d.ts +2 -0
  34. package/domain/f-node/get-node-padding/{get-node-padding.execution.d.ts → get-node-padding.d.ts} +3 -3
  35. package/domain/f-node/get-node-padding/index.d.ts +1 -1
  36. package/domain/f-node/get-nodes/{get-nodes.execution.d.ts → get-nodes.d.ts} +3 -3
  37. package/domain/f-node/get-nodes/index.d.ts +1 -1
  38. package/domain/f-node/get-parent-nodes/{get-parent-nodes.execution.d.ts → get-parent-nodes.d.ts} +3 -3
  39. package/domain/f-node/get-parent-nodes/index.d.ts +1 -1
  40. package/domain/f-node/index.d.ts +2 -0
  41. package/domain/f-node/providers.d.ts +13 -11
  42. package/domain/f-node/remove-node-from-store/index.d.ts +1 -1
  43. package/domain/f-node/remove-node-from-store/{remove-node-from-store.execution.d.ts → remove-node-from-store.d.ts} +3 -3
  44. package/domain/f-node/update-node-when-state-or-size-changed/index.d.ts +1 -1
  45. package/domain/f-node/update-node-when-state-or-size-changed/update-node-when-state-or-size-changed-request.d.ts +2 -2
  46. package/domain/f-node/update-node-when-state-or-size-changed/{update-node-when-state-or-size-changed.execution.d.ts → update-node-when-state-or-size-changed.d.ts} +6 -4
  47. package/domain/f-selection/clear-selection/clear-selection.execution.d.ts +1 -1
  48. package/domain/f-selection/get-can-be-selected-items/get-can-be-selected-items.execution.d.ts +1 -1
  49. package/domain/f-selection/get-current-selection/get-current-selection.execution.d.ts +1 -1
  50. package/domain/f-selection/select/select.execution.d.ts +1 -1
  51. package/domain/f-selection/select-all/select-all.execution.d.ts +1 -1
  52. package/domain/f-selection/select-and-update-node-layer/select-and-update-node-layer.execution.d.ts +1 -1
  53. package/domain/f-zoom/remove-zoom-from-store/remove-zoom-from-store.execution.d.ts +1 -1
  54. package/domain/i-map.d.ts +1 -3
  55. package/domain/providers.d.ts +1 -1
  56. package/esm2022/domain/css-cls.mjs +6 -2
  57. package/esm2022/domain/f-background/add-background-to-store/add-background-to-store-request.mjs +1 -1
  58. package/esm2022/domain/f-background/add-pattern-to-background/add-pattern-to-background.execution.mjs +8 -8
  59. package/esm2022/domain/f-background/add-pattern-to-background/add-pattern-to-background.request.mjs +1 -1
  60. package/esm2022/domain/f-background/providers.mjs +2 -2
  61. package/esm2022/domain/f-background/remove-background-from-store/remove-background-from-store-request.mjs +1 -1
  62. package/esm2022/domain/f-background/remove-background-from-store/remove-background-from-store.execution.mjs +2 -2
  63. package/esm2022/domain/f-background/set-background-transform/set-background-transform-request.mjs +1 -1
  64. package/esm2022/domain/f-canvas/add-canvas-to-store/add-canvas-to-store-request.mjs +1 -1
  65. package/esm2022/domain/f-canvas/center-group-or-node/center-group-or-node-request.mjs +1 -1
  66. package/esm2022/domain/f-canvas/center-group-or-node/center-group-or-node.execution.mjs +2 -2
  67. package/esm2022/domain/f-canvas/fit-to-flow/fit-to-flow-request.mjs +1 -1
  68. package/esm2022/domain/f-canvas/fit-to-flow/fit-to-flow.execution.mjs +2 -2
  69. package/esm2022/domain/f-canvas/get-canvas/get-canvas.execution.mjs +1 -1
  70. package/esm2022/domain/f-canvas/input-canvas-position/input-canvas-position-request.mjs +1 -1
  71. package/esm2022/domain/f-canvas/input-canvas-position/input-canvas-position.execution.mjs +1 -1
  72. package/esm2022/domain/f-canvas/input-canvas-scale/input-canvas-scale-request.mjs +1 -1
  73. package/esm2022/domain/f-canvas/providers.mjs +2 -2
  74. package/esm2022/domain/f-canvas/redraw-canvas-with-animation/redraw-canvas-with-animation-request.mjs +1 -1
  75. package/esm2022/domain/f-canvas/reset-scale-and-center/reset-scale-and-center-request.mjs +1 -1
  76. package/esm2022/domain/f-canvas/reset-scale-and-center/reset-scale-and-center.execution.mjs +2 -2
  77. package/esm2022/domain/f-canvas/update-scale/update-scale-request.mjs +1 -1
  78. package/esm2022/domain/f-connection/add-connection-for-create-to-store/add-connection-for-create-to-store-request.mjs +1 -1
  79. package/esm2022/domain/f-connection/add-connection-marker-to-store/add-connection-marker-to-store-request.mjs +1 -1
  80. package/esm2022/domain/f-connection/add-connection-to-store/add-connection-to-store-request.mjs +1 -1
  81. package/esm2022/domain/f-connection/add-snap-connection-to-store/add-snap-connection-to-store-request.mjs +1 -1
  82. package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/fixed-center-behavior.mjs +2 -2
  83. package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/fixed-outbound-behavior.mjs +2 -2
  84. package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/floating-behavior.mjs +2 -2
  85. package/esm2022/domain/f-connection/create-connection-markers/create-connection-markers.execution.mjs +1 -1
  86. package/esm2022/domain/f-connection/providers.mjs +2 -2
  87. package/esm2022/domain/f-connection/redraw-connections/redraw-connections.execution.mjs +1 -1
  88. package/esm2022/domain/f-connection/remove-connection-from-store/remove-connection-from-store-request.mjs +1 -1
  89. package/esm2022/domain/f-connection/remove-connection-from-store/remove-connection-from-store.execution.mjs +1 -1
  90. package/esm2022/domain/f-connection/remove-connection-marker-from-store/remove-connection-marker-from-store-request.mjs +1 -1
  91. package/esm2022/domain/f-connectors/add-input-to-store/add-input-to-store-request.mjs +1 -1
  92. package/esm2022/domain/f-connectors/add-outlet-to-store/add-outlet-to-store-request.mjs +1 -1
  93. package/esm2022/domain/f-connectors/add-outlet-to-store/add-outlet-to-store.execution.mjs +3 -3
  94. package/esm2022/domain/f-connectors/add-output-to-store/add-output-to-store-request.mjs +1 -1
  95. package/esm2022/domain/f-connectors/add-output-to-store/add-output-to-store.execution.mjs +3 -3
  96. package/esm2022/domain/f-connectors/find-closest-connector/find-closest-connector.request.mjs +1 -1
  97. package/esm2022/domain/f-connectors/find-connectable-connector-using-priority-and-position/find-connectable-connector-using-priority-and-position.execution.mjs +2 -2
  98. package/esm2022/domain/f-connectors/get-all-can-be-connected-inputs-and-rects/get-all-can-be-connected-inputs-and-rects.execution.mjs +3 -3
  99. package/esm2022/domain/f-connectors/get-all-can-be-connected-source-connectors-and-rects/get-all-can-be-connected-source-connectors-and-rects.execution.mjs +4 -4
  100. package/esm2022/domain/f-connectors/get-all-can-be-connected-source-connectors-and-rects/get-all-can-be-connected-source-connectors-and-rects.request.mjs +1 -1
  101. package/esm2022/domain/f-connectors/get-connector-and-rect/get-connector-and-rect-request.mjs +1 -1
  102. package/esm2022/domain/f-connectors/get-connector-and-rect/get-connector-and-rect.execution.mjs +2 -2
  103. package/esm2022/domain/f-connectors/mark-connectable-connectors/mark-connectable-connectors.request.mjs +1 -1
  104. package/esm2022/domain/f-connectors/providers.mjs +4 -4
  105. package/esm2022/domain/f-connectors/remove-input-from-store/remove-input-from-store-request.mjs +1 -1
  106. package/esm2022/domain/f-connectors/remove-outlet-from-store/remove-outlet-from-store-request.mjs +1 -1
  107. package/esm2022/domain/f-connectors/remove-output-from-store/remove-output-from-store-request.mjs +1 -1
  108. package/esm2022/domain/f-connectors/unmark-connectable-connectors/unmark-connectable-connectors.request.mjs +1 -1
  109. package/esm2022/domain/f-draggable/add-dnd-to-store/add-dnd-to-store-request.mjs +1 -1
  110. package/esm2022/domain/f-draggable/emit-selection-change-event/emit-selection-change-event.execution.mjs +4 -4
  111. package/esm2022/domain/f-draggable/end-drag-sequence/end-drag-sequence.execution.mjs +3 -3
  112. package/esm2022/domain/f-draggable/initialize-drag-sequence/initialize-drag-sequence.execution.mjs +3 -3
  113. package/esm2022/domain/f-draggable/is-drag-started/index.mjs +2 -2
  114. package/esm2022/domain/f-draggable/is-drag-started/is-drag-started-request.mjs +1 -1
  115. package/esm2022/domain/f-draggable/is-drag-started/is-drag-started.mjs +25 -0
  116. package/esm2022/domain/f-draggable/on-pointer-move/on-pointer-move-request.mjs +1 -1
  117. package/esm2022/domain/f-draggable/on-pointer-move/on-pointer-move.execution.mjs +5 -5
  118. package/esm2022/domain/f-draggable/prepare-drag-sequence/prepare-drag-sequence.execution.mjs +3 -3
  119. package/esm2022/domain/f-draggable/providers.mjs +4 -4
  120. package/esm2022/domain/f-draggable/start-drag-sequence/start-drag-sequence.execution.mjs +6 -6
  121. package/esm2022/domain/f-flow/add-flow-to-store/add-flow-to-store-request.mjs +1 -1
  122. package/esm2022/domain/f-flow/get-flow/get-flow.execution.mjs +1 -1
  123. package/esm2022/domain/f-flow/get-flow-state/get-flow-state-connections/get-flow-state-connections.execution.mjs +2 -2
  124. package/esm2022/domain/f-flow/get-flow-state/get-flow-state-nodes/get-flow-state-nodes-request.mjs +1 -1
  125. package/esm2022/domain/f-flow/get-flow-state/get-flow-state-nodes/get-flow-state-nodes.execution.mjs +8 -7
  126. package/esm2022/domain/f-flow/get-flow-state/get-flow-state.execution.mjs +2 -2
  127. package/esm2022/domain/f-flow/get-flow-state/i-f-flow-state-node.mjs +1 -1
  128. package/esm2022/domain/f-flow/get-flow-state/providers.mjs +2 -2
  129. package/esm2022/domain/f-flow/providers.mjs +2 -2
  130. package/esm2022/domain/f-line-alignment/add-line-alignment-to-store/add-line-alignment-to-store-request.mjs +1 -1
  131. package/esm2022/domain/f-line-alignment/providers.mjs +2 -2
  132. package/esm2022/domain/f-node/add-node-to-store/add-node-to-store-request.mjs +1 -1
  133. package/esm2022/domain/f-node/add-node-to-store/add-node-to-store.mjs +25 -0
  134. package/esm2022/domain/f-node/add-node-to-store/index.mjs +2 -2
  135. package/esm2022/domain/f-node/calculate-input-connections/calculate-input-connections-request.mjs +1 -1
  136. package/esm2022/domain/f-node/calculate-input-connections/calculate-input-connections.mjs +34 -0
  137. package/esm2022/domain/f-node/calculate-input-connections/index.mjs +2 -2
  138. package/esm2022/domain/f-node/calculate-nodes-bounding-box/calculate-nodes-bounding-box.mjs +33 -0
  139. package/esm2022/domain/f-node/calculate-nodes-bounding-box/index.mjs +2 -2
  140. package/esm2022/domain/f-node/calculate-nodes-bounding-box-normalized-position/calculate-nodes-bounding-box-normalized-position.mjs +36 -0
  141. package/esm2022/domain/f-node/calculate-nodes-bounding-box-normalized-position/index.mjs +2 -2
  142. package/esm2022/domain/f-node/calculate-output-connections/calculate-output-connections-request.mjs +1 -1
  143. package/esm2022/domain/f-node/calculate-output-connections/calculate-output-connections.mjs +34 -0
  144. package/esm2022/domain/f-node/calculate-output-connections/index.mjs +2 -2
  145. package/esm2022/domain/f-node/fit-to-child-nodes-and-groups/fit-to-child-nodes-and-groups-request.mjs +8 -0
  146. package/esm2022/domain/f-node/fit-to-child-nodes-and-groups/fit-to-child-nodes-and-groups.mjs +64 -0
  147. package/esm2022/domain/f-node/fit-to-child-nodes-and-groups/index.mjs +3 -0
  148. package/esm2022/domain/f-node/get-child-node-ids/get-child-node-ids.mjs +45 -0
  149. package/esm2022/domain/f-node/get-child-node-ids/get-child-node-ids.request.mjs +8 -0
  150. package/esm2022/domain/f-node/get-child-node-ids/index.mjs +3 -0
  151. package/esm2022/domain/f-node/get-node-padding/get-node-padding.mjs +35 -0
  152. package/esm2022/domain/f-node/get-node-padding/get-node-padding.request.mjs +1 -1
  153. package/esm2022/domain/f-node/get-node-padding/index.mjs +2 -2
  154. package/esm2022/domain/f-node/get-nodes/get-nodes.mjs +25 -0
  155. package/esm2022/domain/f-node/get-nodes/index.mjs +2 -2
  156. package/esm2022/domain/f-node/get-parent-nodes/get-parent-nodes.mjs +37 -0
  157. package/esm2022/domain/f-node/get-parent-nodes/get-parent-nodes.request.mjs +1 -1
  158. package/esm2022/domain/f-node/get-parent-nodes/index.mjs +2 -2
  159. package/esm2022/domain/f-node/index.mjs +3 -1
  160. package/esm2022/domain/f-node/providers.mjs +25 -21
  161. package/esm2022/domain/f-node/remove-node-from-store/index.mjs +2 -2
  162. package/esm2022/domain/f-node/remove-node-from-store/remove-node-from-store-request.mjs +1 -1
  163. package/esm2022/domain/f-node/remove-node-from-store/remove-node-from-store.mjs +25 -0
  164. package/esm2022/domain/f-node/update-node-when-state-or-size-changed/index.mjs +2 -2
  165. package/esm2022/domain/f-node/update-node-when-state-or-size-changed/update-node-when-state-or-size-changed-request.mjs +4 -4
  166. package/esm2022/domain/f-node/update-node-when-state-or-size-changed/update-node-when-state-or-size-changed.mjs +104 -0
  167. package/esm2022/domain/f-selection/clear-selection/clear-selection.execution.mjs +5 -5
  168. package/esm2022/domain/f-selection/get-can-be-selected-items/get-can-be-selected-items.execution.mjs +7 -7
  169. package/esm2022/domain/f-selection/get-current-selection/get-current-selection.execution.mjs +6 -6
  170. package/esm2022/domain/f-selection/providers.mjs +2 -2
  171. package/esm2022/domain/f-selection/select/select.execution.mjs +7 -7
  172. package/esm2022/domain/f-selection/select-all/select-all.execution.mjs +7 -7
  173. package/esm2022/domain/f-selection/select-and-update-node-layer/select-and-update-node-layer.execution.mjs +5 -5
  174. package/esm2022/domain/f-selection/select-and-update-node-layer/select-and-update-node-layer.request.mjs +1 -1
  175. package/esm2022/domain/f-zoom/add-zoom-to-store/add-zoom-to-store-request.mjs +1 -1
  176. package/esm2022/domain/f-zoom/add-zoom-to-store/add-zoom-to-store.execution.mjs +2 -2
  177. package/esm2022/domain/f-zoom/providers.mjs +2 -2
  178. package/esm2022/domain/f-zoom/remove-zoom-from-store/remove-zoom-from-store.execution.mjs +3 -3
  179. package/esm2022/domain/f-zoom/set-zoom/set-zoom-request.mjs +1 -1
  180. package/esm2022/domain/f-zoom/set-zoom/set-zoom.execution.mjs +1 -1
  181. package/esm2022/domain/get-deep-children-nodes-and-groups/get-deep-children-nodes-and-groups.execution.mjs +2 -2
  182. package/esm2022/domain/get-deep-children-nodes-and-groups/get-deep-children-nodes-and-groups.request.mjs +1 -1
  183. package/esm2022/domain/get-element-rounded-rect/get-element-rounded-rect.execution.mjs +1 -1
  184. package/esm2022/domain/get-normalized-connector-rect/get-normalized-connector-rect.execution.mjs +1 -1
  185. package/esm2022/domain/get-normalized-element-rect/get-normalized-element-rect-request.mjs +1 -1
  186. package/esm2022/domain/get-normalized-element-rect/get-normalized-element-rect.execution.mjs +2 -2
  187. package/esm2022/domain/get-normalized-point/get-normalized-point-request.mjs +1 -1
  188. package/esm2022/domain/get-normalized-point/get-normalized-point.execution.mjs +1 -1
  189. package/esm2022/domain/i-map.mjs +1 -1
  190. package/esm2022/domain/log-deprecated.mjs +1 -1
  191. package/esm2022/domain/log-execution-time.mjs +1 -1
  192. package/esm2022/domain/providers.mjs +2 -2
  193. package/esm2022/domain/sort-item-layers/sort-items-by-parent/sort-items-by-parent.execution.mjs +2 -2
  194. package/esm2022/domain/sort-item-layers/sort-items-by-parent/sort-items-by-parent.request.mjs +2 -3
  195. package/esm2022/domain/sort-item-layers/sort-node-layers-by-groups/sort-node-layers.execution.mjs +1 -1
  196. package/esm2022/domain/update-item-and-children-layers/move-front-elements-before-target-element/move-front-elements-before-target-element.request.mjs +1 -1
  197. package/esm2022/domain/update-item-and-children-layers/update-item-and-children-layers.execution.mjs +1 -1
  198. package/esm2022/drag-toolkit/drag-and-drop-base.mjs +3 -3
  199. package/esm2022/drag-toolkit/event.extensions.mjs +1 -1
  200. package/esm2022/drag-toolkit/pointer-events/i-pointer-up-event.mjs +1 -1
  201. package/esm2022/drag-toolkit/pointer-events/i-touch-down-event.mjs +1 -1
  202. package/esm2022/drag-toolkit/pointer-events/i-touch-move-event.mjs +1 -1
  203. package/esm2022/f-backgroud/f-background.component.mjs +4 -4
  204. package/esm2022/f-backgroud/f-circle-pattern/f-circle-pattern.component.mjs +7 -7
  205. package/esm2022/f-backgroud/f-rect-pattern/f-rect-pattern.component.mjs +7 -7
  206. package/esm2022/f-backgroud/index.mjs +1 -1
  207. package/esm2022/f-backgroud/providers.mjs +2 -2
  208. package/esm2022/f-canvas/f-canvas-base.mjs +1 -1
  209. package/esm2022/f-canvas/f-canvas.component.mjs +3 -3
  210. package/esm2022/f-connection/common/domain/calculate-center-between-points/calculate-center-between-points-request.mjs +1 -1
  211. package/esm2022/f-connection/common/domain/calculate-connection-center/calculate-connection-center-request.mjs +1 -1
  212. package/esm2022/f-connection/common/domain/calculate-connection-center/calculate-connection-center.handler.mjs +2 -2
  213. package/esm2022/f-connection/common/domain/f-bezier.path-builder.mjs +2 -2
  214. package/esm2022/f-connection/common/domain/f-segment.path-builder.mjs +3 -3
  215. package/esm2022/f-connection/common/domain/f-straight.path-builder.mjs +1 -1
  216. package/esm2022/f-connection/common/f-connection-base.mjs +24 -5
  217. package/esm2022/f-connection/common/f-connection-identifiers.mjs +2 -2
  218. package/esm2022/f-connection/common/f-connection-text/f-connection-text-path.directive.mjs +4 -4
  219. package/esm2022/f-connection/common/f-connection-text/f-connection-text.component.mjs +2 -2
  220. package/esm2022/f-connection/common/f-drag-handle/f-connection-drag-handle-end.component.mjs +4 -4
  221. package/esm2022/f-connection/common/f-drag-handle/f-connection-drag-handle-start.component.mjs +4 -4
  222. package/esm2022/f-connection/common/f-gradient/f-connection-gradient.component.mjs +2 -2
  223. package/esm2022/f-connection/common/f-path/f-connection-path.component.mjs +1 -1
  224. package/esm2022/f-connection/common/f-selection/f-connection-selection.component.mjs +2 -2
  225. package/esm2022/f-connection/common/i-has-connection-color.mjs +1 -1
  226. package/esm2022/f-connection/common/i-has-connection-from-to.mjs +1 -1
  227. package/esm2022/f-connection/f-connection/f-connection.component.mjs +16 -31
  228. package/esm2022/f-connection/f-connection-builder/f-connection-builders.mjs +1 -1
  229. package/esm2022/f-connection/f-connection-builder/f-connection-factory.mjs +1 -1
  230. package/esm2022/f-connection/f-connection-center/f-connection-center.directive.mjs +3 -3
  231. package/esm2022/f-connection/f-connection-for-create/f-connection-for-create.component.mjs +8 -23
  232. package/esm2022/f-connection/f-marker/f-marker.directive.mjs +3 -3
  233. package/esm2022/f-connection/f-snap-connection/f-snap-connection.component.mjs +8 -23
  234. package/esm2022/f-connection/index.mjs +1 -1
  235. package/esm2022/f-connection/providers.mjs +3 -3
  236. package/esm2022/f-connectors/f-node-input/f-node-input.directive.mjs +4 -4
  237. package/esm2022/f-connectors/f-node-outlet/f-node-outlet.directive.mjs +2 -2
  238. package/esm2022/f-connectors/f-node-output/f-node-output.directive.mjs +3 -3
  239. package/esm2022/f-connectors/providers.mjs +2 -2
  240. package/esm2022/f-draggable/domain/get-normalized-parent-node-rect/get-normalized-parent-node-rect.execution.mjs +13 -13
  241. package/esm2022/f-draggable/domain/get-normalized-parent-node-rect/get-normalized-parent-node-rect.request.mjs +4 -4
  242. package/esm2022/f-draggable/domain/is-array-has-parent-node/is-array-has-parent-node.request.mjs +1 -1
  243. package/esm2022/f-draggable/domain/is-connection-under-node/is-connection-under-node.execution.mjs +8 -8
  244. package/esm2022/f-draggable/domain/is-connection-under-node/is-connection-under-node.request.mjs +1 -1
  245. package/esm2022/f-draggable/f-canvas/f-canvas.drag-handler.mjs +7 -7
  246. package/esm2022/f-draggable/f-canvas/move-finalize/f-canvas-move-finalize.execution.mjs +4 -4
  247. package/esm2022/f-draggable/f-canvas/move-finalize/f-canvas-move-finalize.request.mjs +1 -1
  248. package/esm2022/f-draggable/f-canvas/move-preparation/f-canvas-move-preparation.execution.mjs +11 -11
  249. package/esm2022/f-draggable/f-canvas/move-preparation/f-canvas-move-preparation.request.mjs +1 -1
  250. package/esm2022/f-draggable/f-connection/f-create-connection/create-finalize/f-create-connection-finalize.execution.mjs +8 -8
  251. package/esm2022/f-draggable/f-connection/f-create-connection/create-finalize/f-create-connection-finalize.request.mjs +1 -1
  252. package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/drag-handler-preparation/f-create-connection-drag-handler-preparation.execution.mjs +9 -9
  253. package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/drag-handler-preparation/f-create-connection-drag-handler-preparation.request.mjs +1 -1
  254. package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/f-create-connection-preparation.execution.mjs +5 -5
  255. package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/f-create-connection-preparation.request.mjs +1 -1
  256. package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/from-outlet-preparation/f-create-connection-from-outlet-preparation.execution.mjs +4 -4
  257. package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/from-outlet-preparation/f-create-connection-from-outlet-preparation.request.mjs +1 -1
  258. package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/from-output-preparation/f-create-connection-from-output-preparation.execution.mjs +4 -4
  259. package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/from-output-preparation/f-create-connection-from-output-preparation.request.mjs +1 -1
  260. package/esm2022/f-draggable/f-connection/f-create-connection/f-create-connection.drag-handler.mjs +6 -6
  261. package/esm2022/f-draggable/f-connection/f-create-connection/get-first-connectable-output/get-first-connectable-output.execution.mjs +1 -1
  262. package/esm2022/f-draggable/f-connection/f-create-connection/get-first-connectable-output/get-first-connectable-output.request.mjs +1 -1
  263. package/esm2022/f-draggable/f-connection/f-reassign-connection/f-reassign-connection.drag-handler.mjs +3 -3
  264. package/esm2022/f-draggable/f-connection/f-reassign-connection/f-reassign-connection.event.mjs +1 -1
  265. package/esm2022/f-draggable/f-connection/f-reassign-connection/f-reassign-source.drag-handler.mjs +2 -2
  266. package/esm2022/f-draggable/f-connection/f-reassign-connection/f-reassign-target.drag-handler.mjs +2 -2
  267. package/esm2022/f-draggable/f-connection/f-reassign-connection/i-f-reassign-handler.mjs +1 -1
  268. package/esm2022/f-draggable/f-connection/f-reassign-connection/reassign-finalize/f-reassign-connection-finalize.execution.mjs +1 -1
  269. package/esm2022/f-draggable/f-connection/f-reassign-connection/reassign-finalize/f-reassign-connection-finalize.request.mjs +1 -1
  270. package/esm2022/f-draggable/f-connection/f-reassign-connection/reassign-preparation/f-reassign-connection-preparation.execution.mjs +13 -13
  271. package/esm2022/f-draggable/f-connection/f-reassign-connection/reassign-preparation/f-reassign-connection-preparation.request.mjs +1 -1
  272. package/esm2022/f-draggable/f-connection/f-reassign-connection/reassign-preparation/is-pointer-inside-start-or-end-drag-handles.mjs +3 -3
  273. package/esm2022/f-draggable/f-drag-blocker.directive.mjs +2 -2
  274. package/esm2022/f-draggable/f-drag-handler/i-f-drag-handler.mjs +1 -1
  275. package/esm2022/f-draggable/f-draggable-base.mjs +2 -9
  276. package/esm2022/f-draggable/f-draggable-data-context.mjs +2 -1
  277. package/esm2022/f-draggable/f-draggable.directive.mjs +73 -61
  278. package/esm2022/f-draggable/f-drop-to-group/drop-to-group-finalize/drop-to-group-finalize-request.mjs +8 -0
  279. package/esm2022/f-draggable/f-drop-to-group/drop-to-group-finalize/drop-to-group-finalize.mjs +69 -0
  280. package/esm2022/f-draggable/f-drop-to-group/drop-to-group-finalize/index.mjs +3 -3
  281. package/esm2022/f-draggable/f-drop-to-group/drop-to-group-preparation/drop-to-group-preparation-request.mjs +8 -0
  282. package/esm2022/f-draggable/f-drop-to-group/drop-to-group-preparation/drop-to-group-preparation.mjs +101 -0
  283. package/esm2022/f-draggable/f-drop-to-group/drop-to-group-preparation/index.mjs +3 -3
  284. package/esm2022/f-draggable/f-drop-to-group/f-node-drop-to-group.drag-handler.mjs +22 -22
  285. package/esm2022/f-draggable/f-drop-to-group/index.mjs +2 -1
  286. package/esm2022/f-draggable/f-drop-to-group/providers.mjs +7 -5
  287. package/esm2022/f-draggable/f-drop-to-group/sort-containers-for-drop-by-layer/index.mjs +3 -0
  288. package/esm2022/f-draggable/f-drop-to-group/sort-containers-for-drop-by-layer/sort-containers-for-drop-by-layer-request.mjs +8 -0
  289. package/esm2022/f-draggable/f-drop-to-group/sort-containers-for-drop-by-layer/sort-containers-for-drop-by-layer.mjs +54 -0
  290. package/esm2022/f-draggable/f-node-move/connection-drag-handlers/base-connection.drag-handler.mjs +11 -11
  291. package/esm2022/f-draggable/f-node-move/constraint/drag-constraint-pipeline.mjs +29 -0
  292. package/esm2022/f-draggable/f-node-move/constraint/expand-rect-from-baseline.mjs +20 -0
  293. package/esm2022/f-draggable/f-node-move/constraint/index.mjs +5 -0
  294. package/esm2022/f-draggable/f-node-move/constraint/rect-constraint.mjs +37 -0
  295. package/esm2022/f-draggable/f-node-move/constraint/snap-to-grid.mjs +36 -0
  296. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/build-drag-hierarchy/build-drag-hierarchy-request.mjs +8 -0
  297. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/build-drag-hierarchy/build-drag-hierarchy-response.mjs +9 -0
  298. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/build-drag-hierarchy/build-drag-hierarchy.mjs +47 -0
  299. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/build-drag-hierarchy/index.mjs +4 -0
  300. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/calculate-drag-limits/calculate-drag-limits-request.mjs +8 -0
  301. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/calculate-drag-limits/calculate-drag-limits.mjs +72 -0
  302. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/calculate-drag-limits/i-drag-limits.mjs +2 -0
  303. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/calculate-drag-limits/i-soft-limit.mjs +2 -0
  304. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/calculate-drag-limits/index.mjs +5 -0
  305. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/create-drag-model-from-selection-request.mjs +8 -0
  306. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/create-drag-model-from-selection.mjs +88 -0
  307. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/create-input-connection-handler-and-set-to-node-handler/create-input-connection-handler-and-set-to-node-handler-request.mjs +12 -0
  308. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/create-input-connection-handler-and-set-to-node-handler/create-input-connection-handler-and-set-to-node-handler.mjs +59 -0
  309. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/create-input-connection-handler-and-set-to-node-handler/index.mjs +3 -0
  310. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/create-output-connection-handler-and-set-to-node-handler/create-output-connection-handler-and-set-to-node-handler-request.mjs +12 -0
  311. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/create-output-connection-handler-and-set-to-node-handler/create-output-connection-handler-and-set-to-node-handler.mjs +59 -0
  312. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/create-output-connection-handler-and-set-to-node-handler/index.mjs +3 -0
  313. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/create-summary-drag-handler/create-summary-drag-handler-request.mjs +10 -0
  314. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/create-summary-drag-handler/create-summary-drag-handler.mjs +33 -0
  315. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/create-summary-drag-handler/index.mjs +3 -0
  316. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/get-node-bounding-include-paddings/get-node-bounding-include-paddings-request.mjs +10 -0
  317. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/get-node-bounding-include-paddings/get-node-bounding-include-paddings-response.mjs +13 -0
  318. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/get-node-bounding-include-paddings/get-node-bounding-include-paddings.mjs +39 -0
  319. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/get-node-bounding-include-paddings/index.mjs +4 -0
  320. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/i-node-move-limits-and-position.mjs +2 -0
  321. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/i-node-move-limits.mjs +2 -0
  322. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/index.mjs +12 -0
  323. package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/providers.mjs +17 -0
  324. package/esm2022/f-draggable/f-node-move/create-snap-lines/create-snap-lines-request.mjs +8 -0
  325. package/esm2022/f-draggable/f-node-move/create-snap-lines/create-snap-lines.mjs +52 -0
  326. package/esm2022/f-draggable/f-node-move/create-snap-lines/index.mjs +3 -0
  327. package/esm2022/f-draggable/f-node-move/create-snap-lines/snap-lines.drag-handler.mjs +51 -0
  328. package/esm2022/f-draggable/f-node-move/f-move-nodes.event.mjs +8 -2
  329. package/esm2022/f-draggable/f-node-move/index.mjs +8 -7
  330. package/esm2022/f-draggable/f-node-move/move-drag-handler.mjs +95 -0
  331. package/esm2022/f-draggable/f-node-move/move-finalize/f-node-move-finalize.execution.mjs +39 -50
  332. package/esm2022/f-draggable/f-node-move/move-finalize/f-node-move-finalize.request.mjs +1 -1
  333. package/esm2022/f-draggable/f-node-move/move-preparation/f-node-move-preparation.execution.mjs +26 -26
  334. package/esm2022/f-draggable/f-node-move/move-preparation/f-node-move-preparation.request.mjs +1 -1
  335. package/esm2022/f-draggable/f-node-move/move-summary-drag-handler.mjs +44 -0
  336. package/esm2022/f-draggable/f-node-move/providers.mjs +4 -4
  337. package/esm2022/f-draggable/f-node-resize/apply-child-resize-constraints/apply-child-resize-constraints-request.mjs +10 -0
  338. package/esm2022/f-draggable/f-node-resize/apply-child-resize-constraints/apply-child-resize-constraints.mjs +57 -0
  339. package/esm2022/f-draggable/f-node-resize/apply-child-resize-constraints/index.mjs +3 -0
  340. package/esm2022/f-draggable/f-node-resize/apply-parent-resize-constraints/apply-parent-resize-constraints-request.mjs +10 -0
  341. package/esm2022/f-draggable/f-node-resize/apply-parent-resize-constraints/apply-parent-resize-constraints.mjs +147 -0
  342. package/esm2022/f-draggable/f-node-resize/apply-parent-resize-constraints/index.mjs +3 -0
  343. package/esm2022/f-draggable/f-node-resize/calculate-changed-rect-from-difference/calculate-changed-rect-from-difference-request.mjs +14 -0
  344. package/esm2022/f-draggable/f-node-resize/calculate-changed-rect-from-difference/calculate-changed-rect-from-difference.mjs +55 -0
  345. package/esm2022/f-draggable/f-node-resize/calculate-changed-rect-from-difference/index.mjs +3 -0
  346. package/esm2022/f-draggable/f-node-resize/calculate-direct-children-union-rect/calculate-direct-children-union-rect-request.mjs +10 -0
  347. package/esm2022/f-draggable/f-node-resize/calculate-direct-children-union-rect/calculate-direct-children-union-rect.mjs +39 -0
  348. package/esm2022/f-draggable/f-node-resize/calculate-direct-children-union-rect/index.mjs +3 -0
  349. package/esm2022/f-draggable/f-node-resize/calculate-resize-limits/calculate-resize-limits-request.mjs +10 -0
  350. package/esm2022/f-draggable/f-node-resize/calculate-resize-limits/calculate-resize-limits.mjs +69 -0
  351. package/esm2022/f-draggable/f-node-resize/calculate-resize-limits/index.mjs +3 -0
  352. package/esm2022/f-draggable/f-node-resize/constraint/i-resize-constraint.mjs +2 -0
  353. package/esm2022/f-draggable/f-node-resize/constraint/i-resize-limit.mjs +2 -0
  354. package/esm2022/f-draggable/f-node-resize/constraint/i-resize-limits.mjs +2 -0
  355. package/esm2022/f-draggable/f-node-resize/constraint/i-resize-overflow.mjs +2 -0
  356. package/esm2022/f-draggable/f-node-resize/constraint/index.mjs +5 -0
  357. package/esm2022/f-draggable/f-node-resize/index.mjs +8 -8
  358. package/esm2022/f-draggable/f-node-resize/node-resize.drag-handler.mjs +64 -0
  359. package/esm2022/f-draggable/f-node-resize/providers.mjs +15 -17
  360. package/esm2022/f-draggable/f-node-resize/resize-finalize/index.mjs +3 -3
  361. package/esm2022/f-draggable/f-node-resize/resize-finalize/node-resize-finalize-request.mjs +8 -0
  362. package/esm2022/f-draggable/f-node-resize/resize-finalize/node-resize-finalize.mjs +29 -0
  363. package/esm2022/f-draggable/f-node-resize/resize-preparation/index.mjs +3 -3
  364. package/esm2022/f-draggable/f-node-resize/resize-preparation/node-resize-preparation-request.mjs +10 -0
  365. package/esm2022/f-draggable/f-node-resize/resize-preparation/node-resize-preparation.mjs +71 -0
  366. package/esm2022/f-draggable/f-node-rotate/calculate-difference-after-rotation.mjs +1 -1
  367. package/esm2022/f-draggable/f-node-rotate/f-node-rotate.drag-handler.mjs +12 -12
  368. package/esm2022/f-draggable/f-node-rotate/rotate-finalize/f-node-rotate-finalize.execution.mjs +5 -4
  369. package/esm2022/f-draggable/f-node-rotate/rotate-finalize/f-node-rotate-finalize.request.mjs +1 -1
  370. package/esm2022/f-draggable/f-node-rotate/rotate-preparation/f-node-rotate-preparation.execution.mjs +16 -16
  371. package/esm2022/f-draggable/f-node-rotate/rotate-preparation/f-node-rotate-preparation.request.mjs +1 -1
  372. package/esm2022/f-draggable/f-single-select/f-single-select.execution.mjs +18 -18
  373. package/esm2022/f-draggable/f-single-select/f-single-select.request.mjs +1 -1
  374. package/esm2022/f-draggable/i-f-drag-and-drop-plugin.mjs +1 -1
  375. package/esm2022/f-draggable/index.mjs +1 -1
  376. package/esm2022/f-draggable/providers.mjs +2 -2
  377. package/esm2022/f-external-item/domain/constraint/external-rect-constraint.mjs +44 -0
  378. package/esm2022/f-external-item/domain/constraint/index.mjs +2 -0
  379. package/esm2022/f-external-item/domain/create-placeholder/f-external-item-create-placeholder.execution.mjs +1 -1
  380. package/esm2022/f-external-item/domain/create-preview/f-external-item-create-preview.execution.mjs +2 -2
  381. package/esm2022/f-external-item/domain/f-create-node.event.mjs +1 -1
  382. package/esm2022/f-external-item/domain/f-external-item.drag-handler.mjs +27 -22
  383. package/esm2022/f-external-item/domain/finalize/f-external-item-finalize.execution.mjs +16 -17
  384. package/esm2022/f-external-item/domain/finalize/f-external-item-finalize.request.mjs +1 -1
  385. package/esm2022/f-external-item/domain/index.mjs +2 -1
  386. package/esm2022/f-external-item/domain/preparation/f-external-item-preparation.execution.mjs +9 -9
  387. package/esm2022/f-external-item/domain/preparation/f-external-item-preparation.request.mjs +1 -1
  388. package/esm2022/f-external-item/domain/prevent-default-is-external-item/prevent-default-is-external-item.execution.mjs +5 -5
  389. package/esm2022/f-external-item/domain/prevent-default-is-external-item/prevent-default-is-external-item.request.mjs +1 -1
  390. package/esm2022/f-external-item/f-external-item-base.mjs +1 -1
  391. package/esm2022/f-external-item/f-external-item-placeholder.directive.mjs +5 -5
  392. package/esm2022/f-external-item/f-external-item-preview.directive.mjs +4 -4
  393. package/esm2022/f-external-item/f-external-item.directive.mjs +13 -20
  394. package/esm2022/f-external-item/f-external-item.service.mjs +3 -3
  395. package/esm2022/f-external-item/providers.mjs +2 -2
  396. package/esm2022/f-flow/f-flow.component.mjs +5 -5
  397. package/esm2022/f-flow/providers.mjs +2 -2
  398. package/esm2022/f-flow.module.mjs +3 -3
  399. package/esm2022/f-line-alignment/domain/i-snap-coordinate.mjs +2 -0
  400. package/esm2022/f-line-alignment/domain/i-snap-result.mjs +2 -0
  401. package/esm2022/f-line-alignment/domain/index.mjs +5 -5
  402. package/esm2022/f-line-alignment/domain/snap-line-element.mjs +28 -0
  403. package/esm2022/f-line-alignment/domain/snap-line-service.mjs +36 -0
  404. package/esm2022/f-line-alignment/f-line-alignment.component.mjs +4 -4
  405. package/esm2022/f-line-alignment/providers.mjs +2 -2
  406. package/esm2022/f-minimap/domain/calculate-flow-point-from-minimap-point/calculate-flow-point-from-minimap-point.execution.mjs +14 -18
  407. package/esm2022/f-minimap/domain/calculate-flow-point-from-minimap-point/calculate-flow-point-from-minimap-point.request.mjs +1 -1
  408. package/esm2022/f-minimap/domain/f-minimap-data.mjs +1 -1
  409. package/esm2022/f-minimap/domain/f-minimap.drag-handler.mjs +25 -25
  410. package/esm2022/f-minimap/domain/minimap-calculate-svg-scale-and-view-box/minimap-calculate-svg-scale-and-view-box.execution.mjs +2 -2
  411. package/esm2022/f-minimap/domain/minimap-calculate-view-box/minimap-calculate-view-box.execution.mjs +9 -8
  412. package/esm2022/f-minimap/domain/minimap-drag-finalize/minimap-drag-finalize.execution.mjs +9 -11
  413. package/esm2022/f-minimap/domain/minimap-drag-finalize/minimap-drag-finalize.request.mjs +1 -1
  414. package/esm2022/f-minimap/domain/minimap-drag-preparation/minimap-drag-preparation.execution.mjs +26 -32
  415. package/esm2022/f-minimap/domain/minimap-drag-preparation/minimap-drag-preparation.request.mjs +1 -1
  416. package/esm2022/f-minimap/domain/minimap-draw-nodes/minimap-draw-nodes.execution.mjs +12 -10
  417. package/esm2022/f-minimap/f-minimap-canvas.directive.mjs +2 -2
  418. package/esm2022/f-minimap/f-minimap-flow.directive.mjs +3 -3
  419. package/esm2022/f-minimap/f-minimap-view.directive.mjs +2 -2
  420. package/esm2022/f-minimap/f-minimap.component.mjs +1 -1
  421. package/esm2022/f-node/f-drag-handle.directive.mjs +3 -3
  422. package/esm2022/f-node/f-group.directive.mjs +60 -96
  423. package/esm2022/f-node/f-node-base.mjs +61 -7
  424. package/esm2022/f-node/f-node.directive.mjs +63 -104
  425. package/esm2022/f-node/f-resize-handle/f-resize-handle.directive.mjs +5 -5
  426. package/esm2022/f-selection-area/domain/providers.mjs +2 -2
  427. package/esm2022/f-selection-area/domain/selection-area-finalize/selection-area-finalize.execution.mjs +5 -5
  428. package/esm2022/f-selection-area/domain/selection-area-finalize/selection-area-finalize.request.mjs +1 -1
  429. package/esm2022/f-selection-area/domain/selection-area-preparation/selection-area-preparation.execution.mjs +9 -9
  430. package/esm2022/f-selection-area/domain/selection-area-preparation/selection-area-preparation.request.mjs +1 -1
  431. package/esm2022/f-selection-area/domain/selection-area.drag-handle.mjs +13 -13
  432. package/esm2022/f-selection-area/f-selection-area.component.mjs +2 -2
  433. package/esm2022/f-selection-area/providers.mjs +2 -2
  434. package/esm2022/f-storage/f-components-store.mjs +1 -1
  435. package/esm2022/f-storage/features/listen-components-data-changed/listen-data-changes.execution.mjs +4 -5
  436. package/esm2022/f-storage/features/listen-count-changes/listen-count-changes.execution.mjs +4 -5
  437. package/esm2022/f-storage/features/listen-transform-changes/listen-transform-changes.execution.mjs +4 -4
  438. package/esm2022/f-storage/features/notify-data-changed/notify-data-changed.execution.mjs +4 -4
  439. package/esm2022/f-storage/features/notify-transform-changed/notify-transform-changed.execution.mjs +4 -4
  440. package/esm2022/f-zoom/f-zoom.directive.mjs +4 -4
  441. package/esm2022/f-zoom/providers.mjs +2 -2
  442. package/esm2022/mixins/change-selection/change-selection.mjs +2 -2
  443. package/esm2022/mixins/change-selection/i-selectable.mjs +1 -1
  444. package/esm2022/reactivity/debounce-time.mjs +2 -2
  445. package/esm2022/reactivity/f-channel-hub.mjs +1 -1
  446. package/esm2022/reactivity/f-channel.mjs +1 -1
  447. package/esm2022/reactivity/f-resize-channel.mjs +1 -1
  448. package/esm2022/reactivity/index.mjs +1 -2
  449. package/esm2022/reactivity/notify-on-start.mjs +1 -1
  450. package/esm2022/utils/infinity-min-max.mjs +2 -2
  451. package/f-connection/common/f-connection-base.d.ts +17 -15
  452. package/f-connection/common/i-has-connection-color.d.ts +3 -3
  453. package/f-connection/f-connection/f-connection.component.d.ts +6 -20
  454. package/f-connection/f-connection-builder/f-connection-builders.d.ts +1 -3
  455. package/f-connection/f-connection-for-create/f-connection-for-create.component.d.ts +2 -17
  456. package/f-connection/f-snap-connection/f-snap-connection.component.d.ts +2 -17
  457. package/f-draggable/domain/get-normalized-parent-node-rect/get-normalized-parent-node-rect.execution.d.ts +3 -3
  458. package/f-draggable/domain/get-normalized-parent-node-rect/get-normalized-parent-node-rect.request.d.ts +2 -2
  459. package/f-draggable/domain/is-connection-under-node/is-connection-under-node.execution.d.ts +1 -1
  460. package/f-draggable/f-canvas/f-canvas.drag-handler.d.ts +1 -1
  461. package/f-draggable/f-canvas/move-finalize/f-canvas-move-finalize.execution.d.ts +1 -1
  462. package/f-draggable/f-canvas/move-preparation/f-canvas-move-preparation.execution.d.ts +2 -2
  463. package/f-draggable/f-connection/f-create-connection/create-finalize/f-create-connection-finalize.execution.d.ts +2 -2
  464. package/f-draggable/f-connection/f-create-connection/create-preparation/drag-handler-preparation/f-create-connection-drag-handler-preparation.execution.d.ts +2 -2
  465. package/f-draggable/f-connection/f-create-connection/create-preparation/f-create-connection-preparation.execution.d.ts +2 -2
  466. package/f-draggable/f-connection/f-create-connection/create-preparation/from-outlet-preparation/f-create-connection-from-outlet-preparation.execution.d.ts +1 -1
  467. package/f-draggable/f-connection/f-create-connection/create-preparation/from-output-preparation/f-create-connection-from-output-preparation.execution.d.ts +1 -1
  468. package/f-draggable/f-connection/f-create-connection/f-create-connection.drag-handler.d.ts +1 -1
  469. package/f-draggable/f-connection/f-reassign-connection/reassign-preparation/f-reassign-connection-preparation.execution.d.ts +2 -2
  470. package/f-draggable/f-draggable-base.d.ts +6 -9
  471. package/f-draggable/f-draggable-data-context.d.ts +1 -0
  472. package/f-draggable/f-draggable.directive.d.ts +28 -17
  473. package/f-draggable/{f-node-resize/resize-finalize/f-node-resize-finalize.request.d.ts → f-drop-to-group/drop-to-group-finalize/drop-to-group-finalize-request.d.ts} +1 -1
  474. package/f-draggable/f-drop-to-group/drop-to-group-finalize/drop-to-group-finalize.d.ts +16 -0
  475. package/f-draggable/f-drop-to-group/drop-to-group-finalize/index.d.ts +2 -2
  476. package/f-draggable/f-drop-to-group/{drop-to-group-finalize/f-node-drop-to-group-finalize.request.d.ts → drop-to-group-preparation/drop-to-group-preparation-request.d.ts} +1 -1
  477. package/f-draggable/f-drop-to-group/drop-to-group-preparation/drop-to-group-preparation.d.ts +29 -0
  478. package/f-draggable/f-drop-to-group/drop-to-group-preparation/index.d.ts +2 -2
  479. package/f-draggable/f-drop-to-group/f-node-drop-to-group.drag-handler.d.ts +4 -8
  480. package/f-draggable/f-drop-to-group/index.d.ts +1 -0
  481. package/f-draggable/f-drop-to-group/providers.d.ts +4 -3
  482. package/f-draggable/f-drop-to-group/sort-containers-for-drop-by-layer/index.d.ts +2 -0
  483. package/f-draggable/f-drop-to-group/sort-containers-for-drop-by-layer/sort-containers-for-drop-by-layer-request.d.ts +6 -0
  484. package/f-draggable/f-drop-to-group/sort-containers-for-drop-by-layer/sort-containers-for-drop-by-layer.d.ts +10 -0
  485. package/f-draggable/f-node-move/connection-drag-handlers/base-connection.drag-handler.d.ts +2 -2
  486. package/f-draggable/f-node-move/constraint/drag-constraint-pipeline.d.ts +17 -0
  487. package/f-draggable/f-node-move/constraint/expand-rect-from-baseline.d.ts +3 -0
  488. package/f-draggable/f-node-move/constraint/index.d.ts +4 -0
  489. package/f-draggable/f-node-move/constraint/rect-constraint.d.ts +19 -0
  490. package/f-draggable/f-node-move/constraint/snap-to-grid.d.ts +15 -0
  491. package/f-draggable/f-node-move/create-drag-model-from-selection/build-drag-hierarchy/build-drag-hierarchy-request.d.ts +6 -0
  492. package/f-draggable/f-node-move/create-drag-model-from-selection/build-drag-hierarchy/build-drag-hierarchy-response.d.ts +6 -0
  493. package/f-draggable/f-node-move/create-drag-model-from-selection/build-drag-hierarchy/build-drag-hierarchy.d.ts +13 -0
  494. package/f-draggable/f-node-move/create-drag-model-from-selection/build-drag-hierarchy/index.d.ts +3 -0
  495. package/f-draggable/f-node-move/create-drag-model-from-selection/calculate-drag-limits/calculate-drag-limits-request.d.ts +6 -0
  496. package/f-draggable/f-node-move/create-drag-model-from-selection/calculate-drag-limits/calculate-drag-limits.d.ts +19 -0
  497. package/f-draggable/f-node-move/create-drag-model-from-selection/calculate-drag-limits/i-drag-limits.d.ts +6 -0
  498. package/f-draggable/f-node-move/create-drag-model-from-selection/calculate-drag-limits/i-soft-limit.d.ts +8 -0
  499. package/f-draggable/f-node-move/create-drag-model-from-selection/calculate-drag-limits/index.d.ts +4 -0
  500. package/f-draggable/f-node-move/{create-move-nodes-drag-model-from-selection/create-move-nodes-drag-model-from-selection.request.d.ts → create-drag-model-from-selection/create-drag-model-from-selection-request.d.ts} +1 -1
  501. package/f-draggable/f-node-move/create-drag-model-from-selection/create-drag-model-from-selection.d.ts +24 -0
  502. package/f-draggable/f-node-move/create-drag-model-from-selection/create-input-connection-handler-and-set-to-node-handler/create-input-connection-handler-and-set-to-node-handler-request.d.ts +9 -0
  503. package/f-draggable/f-node-move/create-drag-model-from-selection/create-input-connection-handler-and-set-to-node-handler/create-input-connection-handler-and-set-to-node-handler.d.ts +16 -0
  504. package/f-draggable/f-node-move/create-drag-model-from-selection/create-input-connection-handler-and-set-to-node-handler/index.d.ts +2 -0
  505. package/f-draggable/f-node-move/create-drag-model-from-selection/create-output-connection-handler-and-set-to-node-handler/create-output-connection-handler-and-set-to-node-handler-request.d.ts +9 -0
  506. package/f-draggable/f-node-move/create-drag-model-from-selection/create-output-connection-handler-and-set-to-node-handler/create-output-connection-handler-and-set-to-node-handler.d.ts +18 -0
  507. package/f-draggable/f-node-move/create-drag-model-from-selection/create-output-connection-handler-and-set-to-node-handler/index.d.ts +2 -0
  508. package/f-draggable/f-node-move/create-drag-model-from-selection/create-summary-drag-handler/create-summary-drag-handler-request.d.ts +7 -0
  509. package/f-draggable/f-node-move/create-drag-model-from-selection/create-summary-drag-handler/create-summary-drag-handler.d.ts +13 -0
  510. package/f-draggable/f-node-move/create-drag-model-from-selection/create-summary-drag-handler/index.d.ts +2 -0
  511. package/f-draggable/f-node-move/create-drag-model-from-selection/get-node-bounding-include-paddings/get-node-bounding-include-paddings-request.d.ts +7 -0
  512. package/f-draggable/f-node-move/create-drag-model-from-selection/get-node-bounding-include-paddings/get-node-bounding-include-paddings-response.d.ts +9 -0
  513. package/f-draggable/f-node-move/create-drag-model-from-selection/get-node-bounding-include-paddings/get-node-bounding-include-paddings.d.ts +13 -0
  514. package/f-draggable/f-node-move/create-drag-model-from-selection/get-node-bounding-include-paddings/index.d.ts +3 -0
  515. package/f-draggable/f-node-move/create-drag-model-from-selection/index.d.ts +11 -0
  516. package/f-draggable/f-node-move/create-drag-model-from-selection/providers.d.ts +8 -0
  517. package/f-draggable/f-node-move/create-snap-lines/create-snap-lines-request.d.ts +6 -0
  518. package/f-draggable/f-node-move/create-snap-lines/create-snap-lines.d.ts +19 -0
  519. package/f-draggable/f-node-move/create-snap-lines/index.d.ts +2 -0
  520. package/f-draggable/f-node-move/create-snap-lines/snap-lines.drag-handler.d.ts +16 -0
  521. package/f-draggable/f-node-move/f-move-nodes.event.d.ts +4 -0
  522. package/f-draggable/f-node-move/index.d.ts +7 -6
  523. package/f-draggable/f-node-move/move-drag-handler.d.ts +33 -0
  524. package/f-draggable/f-node-move/move-finalize/f-node-move-finalize.execution.d.ts +10 -10
  525. package/f-draggable/f-node-move/move-preparation/f-node-move-preparation.execution.d.ts +4 -4
  526. package/f-draggable/f-node-move/move-summary-drag-handler.d.ts +22 -0
  527. package/f-draggable/f-node-move/providers.d.ts +2 -2
  528. package/f-draggable/f-node-resize/apply-child-resize-constraints/apply-child-resize-constraints-request.d.ts +7 -0
  529. package/f-draggable/f-node-resize/apply-child-resize-constraints/apply-child-resize-constraints.d.ts +13 -0
  530. package/f-draggable/f-node-resize/apply-child-resize-constraints/index.d.ts +2 -0
  531. package/f-draggable/f-node-resize/apply-parent-resize-constraints/apply-parent-resize-constraints-request.d.ts +8 -0
  532. package/f-draggable/f-node-resize/apply-parent-resize-constraints/apply-parent-resize-constraints.d.ts +36 -0
  533. package/f-draggable/f-node-resize/apply-parent-resize-constraints/index.d.ts +2 -0
  534. package/f-draggable/f-node-resize/calculate-changed-rect-from-difference/calculate-changed-rect-from-difference-request.d.ts +10 -0
  535. package/f-draggable/f-node-resize/calculate-changed-rect-from-difference/calculate-changed-rect-from-difference.d.ts +11 -0
  536. package/f-draggable/f-node-resize/calculate-changed-rect-from-difference/index.d.ts +2 -0
  537. package/f-draggable/f-node-resize/calculate-direct-children-union-rect/calculate-direct-children-union-rect-request.d.ts +7 -0
  538. package/f-draggable/f-node-resize/calculate-direct-children-union-rect/calculate-direct-children-union-rect.d.ts +15 -0
  539. package/f-draggable/f-node-resize/calculate-direct-children-union-rect/index.d.ts +2 -0
  540. package/f-draggable/f-node-resize/{get-node-resize-restrictions/get-node-resize-restrictions.request.d.ts → calculate-resize-limits/calculate-resize-limits-request.d.ts} +3 -3
  541. package/f-draggable/f-node-resize/calculate-resize-limits/calculate-resize-limits.d.ts +17 -0
  542. package/f-draggable/f-node-resize/calculate-resize-limits/index.d.ts +2 -0
  543. package/f-draggable/f-node-resize/constraint/i-resize-constraint.d.ts +7 -0
  544. package/f-draggable/f-node-resize/constraint/i-resize-limit.d.ts +7 -0
  545. package/f-draggable/f-node-resize/constraint/i-resize-limits.d.ts +5 -0
  546. package/f-draggable/f-node-resize/constraint/i-resize-overflow.d.ts +6 -0
  547. package/f-draggable/f-node-resize/constraint/index.d.ts +4 -0
  548. package/f-draggable/f-node-resize/index.d.ts +7 -7
  549. package/f-draggable/f-node-resize/node-resize.drag-handler.d.ts +25 -0
  550. package/f-draggable/f-node-resize/providers.d.ts +8 -9
  551. package/f-draggable/f-node-resize/resize-finalize/index.d.ts +2 -2
  552. package/f-draggable/{f-drop-to-group/drop-to-group-preparation/f-node-drop-to-group-preparation.request.d.ts → f-node-resize/resize-finalize/node-resize-finalize-request.d.ts} +2 -2
  553. package/f-draggable/f-node-resize/resize-finalize/node-resize-finalize.d.ts +10 -0
  554. package/f-draggable/f-node-resize/resize-preparation/index.d.ts +2 -2
  555. package/f-draggable/f-node-resize/resize-preparation/{f-node-resize-preparation.request.d.ts → node-resize-preparation-request.d.ts} +1 -1
  556. package/f-draggable/f-node-resize/resize-preparation/node-resize-preparation.d.ts +22 -0
  557. package/f-draggable/f-node-rotate/f-node-rotate.drag-handler.d.ts +3 -3
  558. package/f-draggable/f-node-rotate/rotate-finalize/f-node-rotate-finalize.execution.d.ts +1 -1
  559. package/f-draggable/f-node-rotate/rotate-preparation/f-node-rotate-preparation.execution.d.ts +2 -2
  560. package/f-draggable/f-single-select/f-single-select.execution.d.ts +2 -2
  561. package/f-draggable/providers.d.ts +1 -1
  562. package/{f-draggable/f-node-move/point-bounds-limiter.d.ts → f-external-item/domain/constraint/external-rect-constraint.d.ts} +4 -4
  563. package/f-external-item/domain/constraint/index.d.ts +1 -0
  564. package/f-external-item/domain/f-external-item.drag-handler.d.ts +6 -5
  565. package/f-external-item/domain/finalize/f-external-item-finalize.execution.d.ts +3 -3
  566. package/f-external-item/domain/index.d.ts +1 -0
  567. package/f-external-item/domain/preparation/f-external-item-preparation.execution.d.ts +2 -2
  568. package/f-external-item/f-external-item-base.d.ts +3 -3
  569. package/f-external-item/f-external-item-placeholder.directive.d.ts +1 -1
  570. package/f-external-item/f-external-item-preview.directive.d.ts +1 -1
  571. package/f-external-item/f-external-item-token.d.ts +1 -1
  572. package/f-external-item/f-external-item.directive.d.ts +5 -6
  573. package/f-external-item/f-external-item.service.d.ts +1 -1
  574. package/f-line-alignment/domain/{i-nearest-coordinate-result.d.ts → i-snap-coordinate.d.ts} +1 -1
  575. package/f-line-alignment/domain/i-snap-result.d.ts +5 -0
  576. package/f-line-alignment/domain/index.d.ts +4 -4
  577. package/f-line-alignment/domain/{line-element.d.ts → snap-line-element.d.ts} +3 -4
  578. package/f-line-alignment/domain/{line-service.d.ts → snap-line-service.d.ts} +4 -5
  579. package/f-minimap/domain/calculate-flow-point-from-minimap-point/calculate-flow-point-from-minimap-point.execution.d.ts +5 -7
  580. package/f-minimap/domain/f-minimap.drag-handler.d.ts +10 -10
  581. package/f-minimap/domain/minimap-calculate-view-box/minimap-calculate-view-box.execution.d.ts +3 -3
  582. package/f-minimap/domain/minimap-drag-finalize/minimap-drag-finalize.execution.d.ts +1 -3
  583. package/f-minimap/domain/minimap-drag-preparation/minimap-drag-preparation.execution.d.ts +7 -10
  584. package/f-minimap/domain/minimap-draw-nodes/minimap-draw-nodes.execution.d.ts +2 -2
  585. package/f-node/f-group.directive.d.ts +19 -28
  586. package/f-node/f-node-base.d.ts +26 -17
  587. package/f-node/f-node.directive.d.ts +19 -28
  588. package/f-selection-area/domain/selection-area-finalize/selection-area-finalize.execution.d.ts +2 -2
  589. package/f-selection-area/domain/selection-area-preparation/selection-area-preparation.execution.d.ts +2 -2
  590. package/f-selection-area/domain/selection-area.drag-handle.d.ts +3 -3
  591. package/f-storage/f-components-store.d.ts +1 -1
  592. package/f-storage/features/listen-components-data-changed/listen-data-changes.execution.d.ts +2 -2
  593. package/f-storage/features/listen-count-changes/listen-count-changes.execution.d.ts +2 -2
  594. package/f-storage/features/listen-transform-changes/listen-transform-changes.execution.d.ts +2 -2
  595. package/f-storage/features/notify-data-changed/notify-data-changed.execution.d.ts +2 -2
  596. package/f-storage/features/notify-transform-changed/notify-transform-changed.execution.d.ts +2 -2
  597. package/fesm2022/foblex-flow.mjs +2276 -1768
  598. package/fesm2022/foblex-flow.mjs.map +1 -1
  599. package/mixins/change-selection/i-selectable.d.ts +1 -1
  600. package/package.json +1 -1
  601. package/reactivity/f-resize-channel.d.ts +2 -2
  602. package/reactivity/index.d.ts +0 -1
  603. package/schematics/ng-add/index.js +1 -1
  604. package/schematics/ng-add/index.js.map +1 -1
  605. package/schematics/ng-update/index.js +1 -1
  606. package/schematics/ng-update/index.js.map +1 -1
  607. package/schematics/shared/foblex-dependencies.js +1 -1
  608. package/utils/infinity-min-max.d.ts +1 -1
  609. package/esm2022/domain/f-draggable/is-drag-started/is-drag-started.execution.mjs +0 -25
  610. package/esm2022/domain/f-node/add-node-to-store/add-node-to-store.execution.mjs +0 -25
  611. package/esm2022/domain/f-node/calculate-input-connections/calculate-input-connections.execution.mjs +0 -34
  612. package/esm2022/domain/f-node/calculate-nodes-bounding-box/calculate-nodes-bounding-box.execution.mjs +0 -35
  613. package/esm2022/domain/f-node/calculate-nodes-bounding-box-normalized-position/calculate-nodes-bounding-box-normalized-position.execution.mjs +0 -36
  614. package/esm2022/domain/f-node/calculate-output-connections/calculate-output-connections.execution.mjs +0 -34
  615. package/esm2022/domain/f-node/get-node-padding/get-node-padding.execution.mjs +0 -35
  616. package/esm2022/domain/f-node/get-nodes/get-nodes.execution.mjs +0 -25
  617. package/esm2022/domain/f-node/get-parent-nodes/get-parent-nodes.execution.mjs +0 -37
  618. package/esm2022/domain/f-node/remove-node-from-store/remove-node-from-store.execution.mjs +0 -25
  619. package/esm2022/domain/f-node/update-node-when-state-or-size-changed/update-node-when-state-or-size-changed.execution.mjs +0 -95
  620. package/esm2022/f-draggable/f-drop-to-group/drop-to-group-finalize/f-node-drop-to-group-finalize.execution.mjs +0 -57
  621. package/esm2022/f-draggable/f-drop-to-group/drop-to-group-finalize/f-node-drop-to-group-finalize.request.mjs +0 -8
  622. package/esm2022/f-draggable/f-drop-to-group/drop-to-group-preparation/f-node-drop-to-group-preparation.execution.mjs +0 -83
  623. package/esm2022/f-draggable/f-drop-to-group/drop-to-group-preparation/f-node-drop-to-group-preparation.request.mjs +0 -8
  624. package/esm2022/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/create-move-nodes-drag-model-from-selection.execution.mjs +0 -110
  625. package/esm2022/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/create-move-nodes-drag-model-from-selection.request.mjs +0 -8
  626. package/esm2022/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/calculate-common-node-move-limits/calculate-common-node-move-limits.execution.mjs +0 -69
  627. package/esm2022/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/calculate-common-node-move-limits/calculate-common-node-move-limits.request.mjs +0 -8
  628. package/esm2022/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/calculate-common-node-move-limits/index.mjs +0 -3
  629. package/esm2022/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/calculate-node-move-limits/calculate-node-move-limits.execution.mjs +0 -46
  630. package/esm2022/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/calculate-node-move-limits/calculate-node-move-limits.request.mjs +0 -10
  631. package/esm2022/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/calculate-node-move-limits/index.mjs +0 -3
  632. package/esm2022/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/put-input-connection-handlers-to-array/index.mjs +0 -3
  633. package/esm2022/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/put-input-connection-handlers-to-array/put-input-connection-handlers-to-array.execution.mjs +0 -60
  634. package/esm2022/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/put-input-connection-handlers-to-array/put-input-connection-handlers-to-array.request.mjs +0 -12
  635. package/esm2022/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/put-output-connection-handlers-to-array/index.mjs +0 -3
  636. package/esm2022/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/put-output-connection-handlers-to-array/put-output-connection-handlers-to-array.execution.mjs +0 -60
  637. package/esm2022/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/put-output-connection-handlers-to-array/put-output-connection-handlers-to-array.request.mjs +0 -12
  638. package/esm2022/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/i-node-move-limits-and-position.mjs +0 -2
  639. package/esm2022/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/i-node-move-limits.mjs +0 -2
  640. package/esm2022/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/index.mjs +0 -10
  641. package/esm2022/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/providers.mjs +0 -13
  642. package/esm2022/f-draggable/f-node-move/f-line-alignment.drag-handler.mjs +0 -63
  643. package/esm2022/f-draggable/f-node-move/f-node-move.drag-handler.mjs +0 -30
  644. package/esm2022/f-draggable/f-node-move/f-summary-node-move.drag-handler.mjs +0 -33
  645. package/esm2022/f-draggable/f-node-move/line-alignment-preparation/index.mjs +0 -3
  646. package/esm2022/f-draggable/f-node-move/line-alignment-preparation/line-alignment-preparation.execution.mjs +0 -57
  647. package/esm2022/f-draggable/f-node-move/line-alignment-preparation/line-alignment-preparation.request.mjs +0 -10
  648. package/esm2022/f-draggable/f-node-move/point-bounds-limiter.mjs +0 -43
  649. package/esm2022/f-draggable/f-node-resize/apply-child-resize-restrictions/apply-child-resize-restrictions.execution.mjs +0 -53
  650. package/esm2022/f-draggable/f-node-resize/apply-child-resize-restrictions/apply-child-resize-restrictions.request.mjs +0 -10
  651. package/esm2022/f-draggable/f-node-resize/apply-child-resize-restrictions/index.mjs +0 -3
  652. package/esm2022/f-draggable/f-node-resize/apply-parent-resize-restrictions/apply-parent-resize-restrictions.execution.mjs +0 -49
  653. package/esm2022/f-draggable/f-node-resize/apply-parent-resize-restrictions/apply-parent-resize-restrictions.request.mjs +0 -10
  654. package/esm2022/f-draggable/f-node-resize/apply-parent-resize-restrictions/index.mjs +0 -3
  655. package/esm2022/f-draggable/f-node-resize/calculate-changed-position/calculate-changed-position.execution.mjs +0 -25
  656. package/esm2022/f-draggable/f-node-resize/calculate-changed-position/calculate-changed-position.request.mjs +0 -14
  657. package/esm2022/f-draggable/f-node-resize/calculate-changed-position/index.mjs +0 -3
  658. package/esm2022/f-draggable/f-node-resize/calculate-changed-size/calculate-changed-size.execution.mjs +0 -34
  659. package/esm2022/f-draggable/f-node-resize/calculate-changed-size/calculate-changed-size.request.mjs +0 -12
  660. package/esm2022/f-draggable/f-node-resize/calculate-changed-size/index.mjs +0 -3
  661. package/esm2022/f-draggable/f-node-resize/f-node-resize.drag-handler.mjs +0 -73
  662. package/esm2022/f-draggable/f-node-resize/get-node-resize-restrictions/get-node-resize-restrictions.execution.mjs +0 -39
  663. package/esm2022/f-draggable/f-node-resize/get-node-resize-restrictions/get-node-resize-restrictions.request.mjs +0 -10
  664. package/esm2022/f-draggable/f-node-resize/get-node-resize-restrictions/i-node-resize-restrictions.mjs +0 -2
  665. package/esm2022/f-draggable/f-node-resize/get-node-resize-restrictions/index.mjs +0 -4
  666. package/esm2022/f-draggable/f-node-resize/get-normalized-children-nodes-rect/get-normalized-children-nodes-rect.execution.mjs +0 -38
  667. package/esm2022/f-draggable/f-node-resize/get-normalized-children-nodes-rect/get-normalized-children-nodes-rect.request.mjs +0 -10
  668. package/esm2022/f-draggable/f-node-resize/get-normalized-children-nodes-rect/index.mjs +0 -3
  669. package/esm2022/f-draggable/f-node-resize/resize-finalize/f-node-resize-finalize.execution.mjs +0 -31
  670. package/esm2022/f-draggable/f-node-resize/resize-finalize/f-node-resize-finalize.request.mjs +0 -8
  671. package/esm2022/f-draggable/f-node-resize/resize-preparation/f-node-resize-preparation.execution.mjs +0 -73
  672. package/esm2022/f-draggable/f-node-resize/resize-preparation/f-node-resize-preparation.request.mjs +0 -10
  673. package/esm2022/f-line-alignment/domain/i-line-alignment-result.mjs +0 -2
  674. package/esm2022/f-line-alignment/domain/i-nearest-coordinate-result.mjs +0 -2
  675. package/esm2022/f-line-alignment/domain/line-element.mjs +0 -24
  676. package/esm2022/f-line-alignment/domain/line-service.mjs +0 -38
  677. package/esm2022/reactivity/mediator-effect.mjs +0 -14
  678. package/f-draggable/f-drop-to-group/drop-to-group-finalize/f-node-drop-to-group-finalize.execution.d.ts +0 -15
  679. package/f-draggable/f-drop-to-group/drop-to-group-preparation/f-node-drop-to-group-preparation.execution.d.ts +0 -22
  680. package/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/create-move-nodes-drag-model-from-selection.execution.d.ts +0 -29
  681. package/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/calculate-common-node-move-limits/calculate-common-node-move-limits.execution.d.ts +0 -19
  682. package/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/calculate-common-node-move-limits/calculate-common-node-move-limits.request.d.ts +0 -6
  683. package/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/calculate-common-node-move-limits/index.d.ts +0 -2
  684. package/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/calculate-node-move-limits/calculate-node-move-limits.execution.d.ts +0 -15
  685. package/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/calculate-node-move-limits/calculate-node-move-limits.request.d.ts +0 -7
  686. package/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/calculate-node-move-limits/index.d.ts +0 -2
  687. package/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/put-input-connection-handlers-to-array/index.d.ts +0 -2
  688. package/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/put-input-connection-handlers-to-array/put-input-connection-handlers-to-array.execution.d.ts +0 -16
  689. package/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/put-input-connection-handlers-to-array/put-input-connection-handlers-to-array.request.d.ts +0 -9
  690. package/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/put-output-connection-handlers-to-array/index.d.ts +0 -2
  691. package/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/put-output-connection-handlers-to-array/put-output-connection-handlers-to-array.execution.d.ts +0 -18
  692. package/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/domain/put-output-connection-handlers-to-array/put-output-connection-handlers-to-array.request.d.ts +0 -9
  693. package/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/index.d.ts +0 -9
  694. package/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/providers.d.ts +0 -6
  695. package/f-draggable/f-node-move/f-line-alignment.drag-handler.d.ts +0 -21
  696. package/f-draggable/f-node-move/f-node-move.drag-handler.d.ts +0 -16
  697. package/f-draggable/f-node-move/f-summary-node-move.drag-handler.d.ts +0 -17
  698. package/f-draggable/f-node-move/line-alignment-preparation/index.d.ts +0 -2
  699. package/f-draggable/f-node-move/line-alignment-preparation/line-alignment-preparation.execution.d.ts +0 -20
  700. package/f-draggable/f-node-move/line-alignment-preparation/line-alignment-preparation.request.d.ts +0 -8
  701. package/f-draggable/f-node-resize/apply-child-resize-restrictions/apply-child-resize-restrictions.execution.d.ts +0 -13
  702. package/f-draggable/f-node-resize/apply-child-resize-restrictions/apply-child-resize-restrictions.request.d.ts +0 -8
  703. package/f-draggable/f-node-resize/apply-child-resize-restrictions/index.d.ts +0 -2
  704. package/f-draggable/f-node-resize/apply-parent-resize-restrictions/apply-parent-resize-restrictions.execution.d.ts +0 -13
  705. package/f-draggable/f-node-resize/apply-parent-resize-restrictions/apply-parent-resize-restrictions.request.d.ts +0 -7
  706. package/f-draggable/f-node-resize/apply-parent-resize-restrictions/index.d.ts +0 -2
  707. package/f-draggable/f-node-resize/calculate-changed-position/calculate-changed-position.execution.d.ts +0 -10
  708. package/f-draggable/f-node-resize/calculate-changed-position/calculate-changed-position.request.d.ts +0 -10
  709. package/f-draggable/f-node-resize/calculate-changed-position/index.d.ts +0 -2
  710. package/f-draggable/f-node-resize/calculate-changed-size/calculate-changed-size.execution.d.ts +0 -10
  711. package/f-draggable/f-node-resize/calculate-changed-size/calculate-changed-size.request.d.ts +0 -9
  712. package/f-draggable/f-node-resize/calculate-changed-size/index.d.ts +0 -2
  713. package/f-draggable/f-node-resize/f-node-resize.drag-handler.d.ts +0 -27
  714. package/f-draggable/f-node-resize/get-node-resize-restrictions/get-node-resize-restrictions.execution.d.ts +0 -13
  715. package/f-draggable/f-node-resize/get-node-resize-restrictions/i-node-resize-restrictions.d.ts +0 -6
  716. package/f-draggable/f-node-resize/get-node-resize-restrictions/index.d.ts +0 -3
  717. package/f-draggable/f-node-resize/get-normalized-children-nodes-rect/get-normalized-children-nodes-rect.execution.d.ts +0 -14
  718. package/f-draggable/f-node-resize/get-normalized-children-nodes-rect/get-normalized-children-nodes-rect.request.d.ts +0 -7
  719. package/f-draggable/f-node-resize/get-normalized-children-nodes-rect/index.d.ts +0 -2
  720. package/f-draggable/f-node-resize/resize-finalize/f-node-resize-finalize.execution.d.ts +0 -10
  721. package/f-draggable/f-node-resize/resize-preparation/f-node-resize-preparation.execution.d.ts +0 -22
  722. package/f-line-alignment/domain/i-line-alignment-result.d.ts +0 -5
  723. package/reactivity/mediator-effect.d.ts +0 -2
  724. /package/f-draggable/f-node-move/{create-move-nodes-drag-model-from-selection → create-drag-model-from-selection}/i-node-move-limits-and-position.d.ts +0 -0
  725. /package/f-draggable/f-node-move/{create-move-nodes-drag-model-from-selection → create-drag-model-from-selection}/i-node-move-limits.d.ts +0 -0
@@ -1,61 +1,57 @@
1
- import { booleanAttribute, DestroyRef, Directive, EventEmitter, inject, input, Input, Output, } from "@angular/core";
2
- import { PointExtensions, SizeExtensions } from '@foblex/2d';
1
+ import { booleanAttribute, DestroyRef, Directive, inject, input, model, output, } from "@angular/core";
2
+ import { PointExtensions } from '@foblex/2d';
3
3
  import { F_NODE, FNodeBase } from './f-node-base';
4
4
  import { NotifyTransformChangedRequest } from '../f-storage';
5
5
  import { FMediator } from '@foblex/mediator';
6
6
  import { AddNodeToStoreRequest, UpdateNodeWhenStateOrSizeChangedRequest, RemoveNodeFromStoreRequest } from '../domain';
7
7
  import * as i0 from "@angular/core";
8
- import * as i1 from "@foblex/platform";
9
8
  let uniqueId = 0;
10
9
  export class FGroupDirective extends FNodeBase {
11
- renderer;
12
- fBrowser;
13
10
  _destroyRef = inject(DestroyRef);
14
- _fMediator = inject(FMediator);
11
+ _mediator = inject(FMediator);
15
12
  fId = input(`f-group-${uniqueId++}`, { alias: 'fGroupId' });
16
- fParentId = null;
17
- set position(value) {
18
- if (!PointExtensions.isEqual(this._position, value)) {
19
- this._position = value;
20
- this.redraw();
21
- this.refresh();
22
- }
23
- }
24
- get position() {
25
- return this._position;
26
- }
27
- positionChange = new EventEmitter();
28
- set rotate(value) {
29
- if (this._rotate !== value) {
30
- this._rotate = value;
31
- this.redraw();
32
- this.refresh();
33
- }
34
- }
35
- get rotate() {
36
- return this._rotate;
37
- }
38
- rotateChange = new EventEmitter();
39
- set size(value) {
40
- if (!this.size || !SizeExtensions.isEqual(this._size, value)) {
41
- this._size = value;
42
- this.redraw();
43
- this.refresh();
44
- }
45
- }
46
- get size() {
47
- return this._size;
48
- }
49
- sizeChange = new EventEmitter();
50
- fDraggingDisabled = false;
51
- fSelectionDisabled = false;
52
- fIncludePadding = true;
53
- fConnectOnNode = true;
54
- fMinimapClass = [];
55
- constructor(elementReference, renderer, fBrowser) {
13
+ fParentId = input(null, {
14
+ alias: 'fGroupParentId',
15
+ });
16
+ position = model(PointExtensions.initialize(), {
17
+ alias: 'fGroupPosition',
18
+ });
19
+ size = input(undefined, {
20
+ alias: 'fGroupSize',
21
+ });
22
+ sizeChange = output({ alias: 'fGroupSizeChange' });
23
+ rotate = model(0, {
24
+ alias: 'fGroupRotate',
25
+ });
26
+ fConnectOnNode = input(true, {
27
+ transform: booleanAttribute,
28
+ });
29
+ fMinimapClass = input([]);
30
+ fDraggingDisabled = input(false, {
31
+ alias: 'fGroupDraggingDisabled',
32
+ transform: booleanAttribute,
33
+ });
34
+ fSelectionDisabled = input(false, {
35
+ alias: 'fGroupSelectionDisabled',
36
+ transform: booleanAttribute,
37
+ });
38
+ fIncludePadding = input(true, {
39
+ transform: booleanAttribute,
40
+ });
41
+ fAutoExpandOnChildHit = input(false, {
42
+ transform: booleanAttribute,
43
+ });
44
+ fAutoSizeToFitChildren = input(false, {
45
+ transform: booleanAttribute,
46
+ });
47
+ constructor(
48
+ // eslint-disable-next-line @angular-eslint/prefer-inject
49
+ elementReference) {
56
50
  super(elementReference.nativeElement);
57
- this.renderer = renderer;
58
- this.fBrowser = fBrowser;
51
+ super.positionChanges();
52
+ super.sizeChanges();
53
+ super.rotateChanges();
54
+ super.parentChanges();
59
55
  }
60
56
  ngOnInit() {
61
57
  this.setStyle('position', 'absolute');
@@ -65,33 +61,36 @@ export class FGroupDirective extends FNodeBase {
65
61
  this.setStyle('left', '0');
66
62
  this.setStyle('top', '0');
67
63
  super.redraw();
68
- this._fMediator.execute(new AddNodeToStoreRequest(this));
64
+ this._mediator.execute(new AddNodeToStoreRequest(this));
69
65
  }
70
66
  setStyle(styleName, value) {
71
67
  this.renderer.setStyle(this.hostElement, styleName, value);
72
68
  }
69
+ removeStyle(styleName) {
70
+ this.renderer.removeStyle(this.hostElement, styleName);
71
+ }
73
72
  redraw() {
74
73
  super.redraw();
75
- this._fMediator.execute(new NotifyTransformChangedRequest());
74
+ this._mediator.execute(new NotifyTransformChangedRequest());
76
75
  }
77
76
  ngAfterViewInit() {
78
- if (!this.fBrowser.isBrowser()) {
77
+ if (!this.browser.isBrowser()) {
79
78
  return;
80
79
  }
81
80
  this._listenStateSizeChanges();
82
81
  }
83
82
  _listenStateSizeChanges() {
84
- this._fMediator.execute(new UpdateNodeWhenStateOrSizeChangedRequest(this, this._destroyRef));
83
+ this._mediator.execute(new UpdateNodeWhenStateOrSizeChangedRequest(this, this._destroyRef));
85
84
  }
86
85
  refresh() {
87
86
  this.stateChanges.notify();
88
87
  }
89
88
  ngOnDestroy() {
90
- this._fMediator.execute(new RemoveNodeFromStoreRequest(this));
89
+ this._mediator.execute(new RemoveNodeFromStoreRequest(this));
91
90
  }
92
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FGroupDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.BrowserService }], target: i0.ɵɵFactoryTarget.Directive });
93
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: FGroupDirective, selector: "[fGroup]", inputs: { fId: { classPropertyName: "fId", publicName: "fGroupId", isSignal: true, isRequired: false, transformFunction: null }, fParentId: { classPropertyName: "fParentId", publicName: "fGroupParentId", isSignal: false, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "fGroupPosition", isSignal: false, isRequired: false, transformFunction: null }, rotate: { classPropertyName: "rotate", publicName: "fGroupRotate", isSignal: false, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "fGroupSize", isSignal: false, isRequired: false, transformFunction: null }, fDraggingDisabled: { classPropertyName: "fDraggingDisabled", publicName: "fGroupDraggingDisabled", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, fSelectionDisabled: { classPropertyName: "fSelectionDisabled", publicName: "fGroupSelectionDisabled", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, fIncludePadding: { classPropertyName: "fIncludePadding", publicName: "fIncludePadding", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, fConnectOnNode: { classPropertyName: "fConnectOnNode", publicName: "fConnectOnNode", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, fMinimapClass: { classPropertyName: "fMinimapClass", publicName: "fMinimapClass", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { positionChange: "fGroupPositionChange", rotateChange: "fGroupRotateChange", sizeChange: "fGroupSizeChange" }, host: { properties: { "attr.data-f-group-id": "fId()", "class.f-group-dragging-disabled": "fDraggingDisabled", "class.f-group-selection-disabled": "fSelectionDisabled" }, classAttribute: "f-group f-component" }, providers: [
94
- { provide: F_NODE, useExisting: FGroupDirective }
91
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FGroupDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
92
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: FGroupDirective, selector: "[fGroup]", inputs: { fId: { classPropertyName: "fId", publicName: "fGroupId", isSignal: true, isRequired: false, transformFunction: null }, fParentId: { classPropertyName: "fParentId", publicName: "fGroupParentId", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "fGroupPosition", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "fGroupSize", isSignal: true, isRequired: false, transformFunction: null }, rotate: { classPropertyName: "rotate", publicName: "fGroupRotate", isSignal: true, isRequired: false, transformFunction: null }, fConnectOnNode: { classPropertyName: "fConnectOnNode", publicName: "fConnectOnNode", isSignal: true, isRequired: false, transformFunction: null }, fMinimapClass: { classPropertyName: "fMinimapClass", publicName: "fMinimapClass", isSignal: true, isRequired: false, transformFunction: null }, fDraggingDisabled: { classPropertyName: "fDraggingDisabled", publicName: "fGroupDraggingDisabled", isSignal: true, isRequired: false, transformFunction: null }, fSelectionDisabled: { classPropertyName: "fSelectionDisabled", publicName: "fGroupSelectionDisabled", isSignal: true, isRequired: false, transformFunction: null }, fIncludePadding: { classPropertyName: "fIncludePadding", publicName: "fIncludePadding", isSignal: true, isRequired: false, transformFunction: null }, fAutoExpandOnChildHit: { classPropertyName: "fAutoExpandOnChildHit", publicName: "fAutoExpandOnChildHit", isSignal: true, isRequired: false, transformFunction: null }, fAutoSizeToFitChildren: { classPropertyName: "fAutoSizeToFitChildren", publicName: "fAutoSizeToFitChildren", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { position: "fGroupPositionChange", sizeChange: "fGroupSizeChange", rotate: "fGroupRotateChange" }, host: { properties: { "attr.data-f-group-id": "fId()", "class.f-group-dragging-disabled": "fDraggingDisabled()", "class.f-group-selection-disabled": "fSelectionDisabled()" }, classAttribute: "f-group f-component" }, providers: [
93
+ { provide: F_NODE, useExisting: FGroupDirective },
95
94
  ], exportAs: ["fComponent"], usesInheritance: true, ngImport: i0 });
96
95
  }
97
96
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FGroupDirective, decorators: [{
@@ -102,47 +101,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
102
101
  host: {
103
102
  '[attr.data-f-group-id]': 'fId()',
104
103
  class: "f-group f-component",
105
- '[class.f-group-dragging-disabled]': 'fDraggingDisabled',
106
- '[class.f-group-selection-disabled]': 'fSelectionDisabled',
104
+ '[class.f-group-dragging-disabled]': 'fDraggingDisabled()',
105
+ '[class.f-group-selection-disabled]': 'fSelectionDisabled()',
107
106
  },
108
107
  providers: [
109
- { provide: F_NODE, useExisting: FGroupDirective }
108
+ { provide: F_NODE, useExisting: FGroupDirective },
110
109
  ],
111
110
  }]
112
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.BrowserService }], propDecorators: { fParentId: [{
113
- type: Input,
114
- args: ['fGroupParentId']
115
- }], position: [{
116
- type: Input,
117
- args: ['fGroupPosition']
118
- }], positionChange: [{
119
- type: Output,
120
- args: ['fGroupPositionChange']
121
- }], rotate: [{
122
- type: Input,
123
- args: ['fGroupRotate']
124
- }], rotateChange: [{
125
- type: Output,
126
- args: ['fGroupRotateChange']
127
- }], size: [{
128
- type: Input,
129
- args: ['fGroupSize']
130
- }], sizeChange: [{
131
- type: Output,
132
- args: ['fGroupSizeChange']
133
- }], fDraggingDisabled: [{
134
- type: Input,
135
- args: [{ alias: 'fGroupDraggingDisabled', transform: booleanAttribute }]
136
- }], fSelectionDisabled: [{
137
- type: Input,
138
- args: [{ alias: 'fGroupSelectionDisabled', transform: booleanAttribute }]
139
- }], fIncludePadding: [{
140
- type: Input,
141
- args: [{ transform: booleanAttribute }]
142
- }], fConnectOnNode: [{
143
- type: Input,
144
- args: [{ transform: booleanAttribute }]
145
- }], fMinimapClass: [{
146
- type: Input
147
- }] } });
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1ncm91cC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2Ytbm9kZS9mLWdyb3VwLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ1UsZ0JBQWdCLEVBQUUsVUFBVSxFQUMzQyxTQUFTLEVBRVQsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQzNCLEtBQUssRUFHTCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixlQUFlLEVBQUUsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM3RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHN0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLHVDQUF1QyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFFdkgsSUFBSSxRQUFRLEdBQVcsQ0FBQyxDQUFDO0FBZXpCLE1BQU0sT0FBTyxlQUFnQixTQUFRLFNBQVM7SUF5RWxDO0lBQ0E7SUF2RU8sV0FBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNqQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRWhDLEdBQUcsR0FBRyxLQUFLLENBQVMsV0FBWSxRQUFRLEVBQUcsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFHdEUsU0FBUyxHQUE4QixJQUFJLENBQUM7SUFFNUQsSUFDb0IsUUFBUSxDQUFDLEtBQWE7UUFDeEMsSUFBRyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFD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QUFNO3VCQUFDLHNCQUFzQjtnQkFLVixNQUFNO3NCQUR6QixLQUFLO3VCQUFDLGNBQWM7Z0JBYUwsWUFBWTtzQkFEM0IsTUFBTTt1QkFBQyxvQkFBb0I7Z0JBS1IsSUFBSTtzQkFEdkIsS0FBSzt1QkFBQyxZQUFZO2dCQVlILFVBQVU7c0JBRHpCLE1BQU07dUJBQUMsa0JBQWtCO2dCQUlWLGlCQUFpQjtzQkFEaEMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBSXZELGtCQUFrQjtzQkFEakMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSx5QkFBeUIsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBSXhELGVBQWU7c0JBRDlCLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBSXRCLGNBQWM7c0JBRDdCLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBSXRCLGFBQWE7c0JBRDVCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LCBib29sZWFuQXR0cmlidXRlLCBEZXN0cm95UmVmLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBpbnB1dCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMixcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IElQb2ludCwgSVJlY3QsIElTaXplLCBQb2ludEV4dGVuc2lvbnMsIFNpemVFeHRlbnNpb25zIH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQgeyBGX05PREUsIEZOb2RlQmFzZSB9IGZyb20gJy4vZi1ub2RlLWJhc2UnO1xuaW1wb3J0IHsgTm90aWZ5VHJhbnNmb3JtQ2hhbmdlZFJlcXVlc3QgfSBmcm9tICcuLi9mLXN0b3JhZ2UnO1xuaW1wb3J0IHsgRk1lZGlhdG9yIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBCcm93c2VyU2VydmljZSB9IGZyb20gJ0Bmb2JsZXgvcGxhdGZvcm0nO1xuaW1wb3J0IHsgSUhhc0hvc3RFbGVtZW50IH0gZnJvbSAnLi4vaS1oYXMtaG9zdC1lbGVtZW50JztcbmltcG9ydCB7IEFkZE5vZGVUb1N0b3JlUmVxdWVzdCwgVXBkYXRlTm9kZVdoZW5TdGF0ZU9yU2l6ZUNoYW5nZWRSZXF1ZXN0LCBSZW1vdmVOb2RlRnJvbVN0b3JlUmVxdWVzdCB9IGZyb20gJy4uL2RvbWFpbic7XG5cbmxldCB1bmlxdWVJZDogbnVtYmVyID0gMDtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiBcIltmR3JvdXBdXCIsXG4gIGV4cG9ydEFzOiBcImZDb21wb25lbnRcIixcbiAgaG9zdDoge1xuICAgICdbYXR0ci5kYXRhLWYtZ3JvdXAtaWRdJzogJ2ZJZCgpJyxcbiAgICBjbGFzczogXCJmLWdyb3VwIGYtY29tcG9uZW50XCIsXG4gICAgJ1tjbGFzcy5mLWdyb3VwLWRyYWdnaW5nLWRpc2FibGVkXSc6ICdmRHJhZ2dpbmdEaXNhYmxlZCcsXG4gICAgJ1tjbGFzcy5mLWdyb3VwLXNlbGVjdGlvbi1kaXNhYmxlZF0nOiAnZlNlbGVjdGlvbkRpc2FibGVkJyxcbiAgfSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBGX05PREUsIHVzZUV4aXN0aW5nOiBGR3JvdXBEaXJlY3RpdmUgfVxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGR3JvdXBEaXJlY3RpdmUgZXh0ZW5kcyBGTm9kZUJhc2VcbiAgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIElIYXNIb3N0RWxlbWVudCwgT25EZXN0cm95IHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9mTWVkaWF0b3IgPSBpbmplY3QoRk1lZGlhdG9yKTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgZklkID0gaW5wdXQ8c3RyaW5nPihgZi1ncm91cC0keyB1bmlxdWVJZCsrIH1gLCB7IGFsaWFzOiAnZkdyb3VwSWQnIH0pO1xuXG4gIEBJbnB1dCgnZkdyb3VwUGFyZW50SWQnKVxuICBwdWJsaWMgb3ZlcnJpZGUgZlBhcmVudElkOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkID0gbnVsbDtcblxuICBASW5wdXQoJ2ZHcm91cFBvc2l0aW9uJylcbiAgcHVibGljIG92ZXJyaWRlIHNldCBwb3NpdGlvbih2YWx1ZTogSVBvaW50KSB7XG4gICAgaWYoIVBvaW50RXh0ZW5zaW9ucy5pc0VxdWFsKHRoaXMuX3Bvc2l0aW9uLCB2YWx1ZSkpIHtcbiAgICAgIHRoaXMuX3Bvc2l0aW9uID0gdmFsdWU7XG4gICAgICB0aGlzLnJlZHJhdygpO1xuICAgICAgdGhpcy5yZWZyZXNoKCk7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgcG9zaXRpb24oKTogSVBvaW50IHtcbiAgICByZXR1cm4gdGhpcy5fcG9zaXRpb247XG4gIH1cbiAgQE91dHB1dCgnZkdyb3VwUG9zaXRpb25DaGFuZ2UnKVxuICBwdWJsaWMgb3ZlcnJpZGUgcG9zaXRpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPElQb2ludD4oKTtcblxuXG4gIEBJbnB1dCgnZkdyb3VwUm90YXRlJylcbiAgcHVibGljIG92ZXJyaWRlIHNldCByb3RhdGUodmFsdWU6IG51bWJlcikge1xuICAgIGlmKHRoaXMuX3JvdGF0ZSAhPT0gdmFsdWUpIHtcbiAgICAgIHRoaXMuX3JvdGF0ZSA9IHZhbHVlO1xuICAgICAgdGhpcy5yZWRyYXcoKTtcbiAgICAgIHRoaXMucmVmcmVzaCgpO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IHJvdGF0ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9yb3RhdGU7XG4gIH1cblxuICBAT3V0cHV0KCdmR3JvdXBSb3RhdGVDaGFuZ2UnKVxuICBwdWJsaWMgb3ZlcnJpZGUgcm90YXRlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cblxuICBASW5wdXQoJ2ZHcm91cFNpemUnKVxuICBwdWJsaWMgb3ZlcnJpZGUgc2V0IHNpemUodmFsdWU6IElTaXplKSB7XG4gICAgaWYoIXRoaXMuc2l6ZSB8fCAhU2l6ZUV4dGVuc2lvbnMuaXNFcXVhbCh0aGlzLl9zaXplISwgdmFsdWUpKSB7XG4gICAgICB0aGlzLl9zaXplID0gdmFsdWU7XG4gICAgICB0aGlzLnJlZHJhdygpO1xuICAgICAgdGhpcy5yZWZyZXNoKClcbiAgICB9XG4gIH1cbiAgcHVibGljIG92ZXJyaWRlIGdldCBzaXplKCk6IElTaXplIHtcbiAgICByZXR1cm4gdGhpcy5fc2l6ZSE7XG4gIH1cbiAgQE91dHB1dCgnZkdyb3VwU2l6ZUNoYW5nZScpXG4gIHB1YmxpYyBvdmVycmlkZSBzaXplQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxJUmVjdD4oKTtcblxuICBASW5wdXQoeyBhbGlhczogJ2ZHcm91cERyYWdnaW5nRGlzYWJsZWQnLCB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgcHVibGljIG92ZXJyaWRlIGZEcmFnZ2luZ0Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KHsgYWxpYXM6ICdmR3JvdXBTZWxlY3Rpb25EaXNhYmxlZCcsIHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgb3ZlcnJpZGUgZlNlbGVjdGlvbkRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBvdmVycmlkZSBmSW5jbHVkZVBhZGRpbmc6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgb3ZlcnJpZGUgZkNvbm5lY3RPbk5vZGU6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBmTWluaW1hcENsYXNzOiBzdHJpbmdbXSB8IHN0cmluZyA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGVsZW1lbnRSZWZlcmVuY2U6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIGZCcm93c2VyOiBCcm93c2VyU2VydmljZVxuICApIHtcbiAgICBzdXBlcihlbGVtZW50UmVmZXJlbmNlLm5hdGl2ZUVsZW1lbnQpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0U3R5bGUoJ3Bvc2l0aW9uJywgJ2Fic29sdXRlJyk7XG4gICAgdGhpcy5zZXRTdHlsZSgndHJhbnNmb3JtLW9yaWdpbicsICdjZW50ZXInKTtcbiAgICB0aGlzLnNldFN0eWxlKCd1c2VyLXNlbGVjdCcsICdub25lJyk7XG4gICAgdGhpcy5zZXRTdHlsZSgncG9pbnRlci1ldmVudHMnLCAnYWxsJyk7XG4gICAgdGhpcy5zZXRTdHlsZSgnbGVmdCcsICcwJyk7XG4gICAgdGhpcy5zZXRTdHlsZSgndG9wJywgJzAnKTtcbiAgICBzdXBlci5yZWRyYXcoKTtcblxuICAgIHRoaXMuX2ZNZWRpYXRvci5leGVjdXRlPHZvaWQ+KG5ldyBBZGROb2RlVG9TdG9yZVJlcXVlc3QodGhpcykpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHNldFN0eWxlKHN0eWxlTmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmhvc3RFbGVtZW50LCBzdHlsZU5hbWUsIHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSByZWRyYXcoKTogdm9pZCB7XG4gICAgc3VwZXIucmVkcmF3KCk7XG4gICAgdGhpcy5fZk1lZGlhdG9yLmV4ZWN1dGUobmV3IE5vdGlmeVRyYW5zZm9ybUNoYW5nZWRSZXF1ZXN0KCkpO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZighdGhpcy5mQnJvd3Nlci5pc0Jyb3dzZXIoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9saXN0ZW5TdGF0ZVNpemVDaGFuZ2VzKCk7XG4gIH1cblxuICBwcml2YXRlIF9saXN0ZW5TdGF0ZVNpemVDaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuX2ZNZWRpYXRvci5leGVjdXRlPHZvaWQ+KG5ldyBVcGRhdGVOb2RlV2hlblN0YXRlT3JTaXplQ2hhbmdlZFJlcXVlc3QodGhpcywgdGhpcy5fZGVzdHJveVJlZikpO1xuICB9XG5cbiAgcHVibGljIHJlZnJlc2goKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubm90aWZ5KCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZk1lZGlhdG9yLmV4ZWN1dGU8dm9pZD4obmV3IFJlbW92ZU5vZGVGcm9tU3RvcmVSZXF1ZXN0KHRoaXMpKTtcbiAgfVxufVxuIl19
111
+ }], ctorParameters: () => [{ type: i0.ElementRef }] });
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1ncm91cC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2Ytbm9kZS9mLWdyb3VwLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ1UsZ0JBQWdCLEVBQUUsVUFBVSxFQUMzQyxTQUFTLEVBRVQsTUFBTSxFQUFFLEtBQUssRUFDYixLQUFLLEVBRUcsTUFBTSxHQUNmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBZ0IsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzNELE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM3RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFN0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLHVDQUF1QyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sV0FBVyxDQUFDOztBQUV2SCxJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUM7QUFlakIsTUFBTSxPQUFPLGVBQWdCLFNBQVEsU0FBUztJQUczQixXQUFXLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2pDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFdEIsR0FBRyxHQUFHLEtBQUssQ0FBUyxXQUFXLFFBQVEsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUVwRSxTQUFTLEdBQUcsS0FBSyxDQUE0QixJQUFJLEVBQUU7UUFDMUUsS0FBSyxFQUFFLGdCQUFnQjtLQUN4QixDQUFDLENBQUM7SUFFc0IsUUFBUSxHQUFHLEtBQUssQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFLEVBQUU7UUFDdEUsS0FBSyxFQUFFLGdCQUFnQjtLQUN4QixDQUFDLENB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RSxDQUFDO1lBQzlCLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVPLHVCQUF1QjtRQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBTyxJQUFJLHVDQUF1QyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUNwRyxDQUFDO0lBRWUsT0FBTztRQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFPLElBQUksMEJBQTBCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNyRSxDQUFDO3dHQTNHVSxlQUFlOzRGQUFmLGVBQWUsd2tFQUpmO1lBQ1QsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUU7U0FDbEQ7OzRGQUVVLGVBQWU7a0JBYjNCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFVBQVU7b0JBQ3BCLFFBQVEsRUFBRSxZQUFZO29CQUN0QixJQUFJLEVBQUU7d0JBQ0osd0JBQXdCLEVBQUUsT0FBTzt3QkFDakMsS0FBSyxFQUFFLHFCQUFxQjt3QkFDNUIsbUNBQW1DLEVBQUUscUJBQXFCO3dCQUMxRCxvQ0FBb0MsRUFBRSxzQkFBc0I7cUJBQzdEO29CQUNELFNBQVMsRUFBRTt3QkFDVCxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxpQkFBaUIsRUFBRTtxQkFDbEQ7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LCBib29sZWFuQXR0cmlidXRlLCBEZXN0cm95UmVmLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIGluamVjdCwgaW5wdXQsXG4gIG1vZGVsLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCwgb3V0cHV0LFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgSVJlY3QsIElTaXplLCBQb2ludEV4dGVuc2lvbnMgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IEZfTk9ERSwgRk5vZGVCYXNlIH0gZnJvbSAnLi9mLW5vZGUtYmFzZSc7XG5pbXBvcnQgeyBOb3RpZnlUcmFuc2Zvcm1DaGFuZ2VkUmVxdWVzdCB9IGZyb20gJy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQgeyBGTWVkaWF0b3IgfSBmcm9tICdAZm9ibGV4L21lZGlhdG9yJztcbmltcG9ydCB7IElIYXNIb3N0RWxlbWVudCB9IGZyb20gJy4uL2ktaGFzLWhvc3QtZWxlbWVudCc7XG5pbXBvcnQgeyBBZGROb2RlVG9TdG9yZVJlcXVlc3QsIFVwZGF0ZU5vZGVXaGVuU3RhdGVPclNpemVDaGFuZ2VkUmVxdWVzdCwgUmVtb3ZlTm9kZUZyb21TdG9yZVJlcXVlc3QgfSBmcm9tICcuLi9kb21haW4nO1xuXG5sZXQgdW5pcXVlSWQgPSAwO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6IFwiW2ZHcm91cF1cIixcbiAgZXhwb3J0QXM6IFwiZkNvbXBvbmVudFwiLFxuICBob3N0OiB7XG4gICAgJ1thdHRyLmRhdGEtZi1ncm91cC1pZF0nOiAnZklkKCknLFxuICAgIGNsYXNzOiBcImYtZ3JvdXAgZi1jb21wb25lbnRcIixcbiAgICAnW2NsYXNzLmYtZ3JvdXAtZHJhZ2dpbmctZGlzYWJsZWRdJzogJ2ZEcmFnZ2luZ0Rpc2FibGVkKCknLFxuICAgICdbY2xhc3MuZi1ncm91cC1zZWxlY3Rpb24tZGlzYWJsZWRdJzogJ2ZTZWxlY3Rpb25EaXNhYmxlZCgpJyxcbiAgfSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBGX05PREUsIHVzZUV4aXN0aW5nOiBGR3JvdXBEaXJlY3RpdmUgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRkdyb3VwRGlyZWN0aXZlIGV4dGVuZHMgRk5vZGVCYXNlXG4gIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBJSGFzSG9zdEVsZW1lbnQsIE9uRGVzdHJveSB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfbWVkaWF0b3IgPSBpbmplY3QoRk1lZGlhdG9yKTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgcmVhZG9ubHkgZklkID0gaW5wdXQ8c3RyaW5nPihgZi1ncm91cC0ke3VuaXF1ZUlkKyt9YCwgeyBhbGlhczogJ2ZHcm91cElkJyB9KTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgcmVhZG9ubHkgZlBhcmVudElkID0gaW5wdXQ8c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZD4obnVsbCwge1xuICAgIGFsaWFzOiAnZkdyb3VwUGFyZW50SWQnLFxuICB9KTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgcmVhZG9ubHkgcG9zaXRpb24gPSBtb2RlbChQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgpLCB7XG4gICAgYWxpYXM6ICdmR3JvdXBQb3NpdGlvbicsXG4gIH0pO1xuXG4gIHB1YmxpYyBvdmVycmlkZSByZWFkb25seSBzaXplID0gaW5wdXQ8SVNpemUgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCwge1xuICAgIGFsaWFzOiAnZkdyb3VwU2l6ZScsXG4gIH0pO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBzaXplQ2hhbmdlID0gb3V0cHV0PElSZWN0Pih7IGFsaWFzOiAnZkdyb3VwU2l6ZUNoYW5nZScgfSk7XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlYWRvbmx5IHJvdGF0ZSA9IG1vZGVsKDAsIHtcbiAgICBhbGlhczogJ2ZHcm91cFJvdGF0ZScsXG4gIH0pO1xuXG4gIHB1YmxpYyBvdmVycmlkZSByZWFkb25seSBmQ29ubmVjdE9uTm9kZSA9IGlucHV0KHRydWUsIHtcbiAgICB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUsXG4gIH0pO1xuXG4gIHB1YmxpYyBvdmVycmlkZSByZWFkb25seSBmTWluaW1hcENsYXNzID0gaW5wdXQ8c3RyaW5nW10gfCBzdHJpbmc+KFtdKTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgcmVhZG9ubHkgZkRyYWdnaW5nRGlzYWJsZWQgPSBpbnB1dChmYWxzZSwge1xuICAgIGFsaWFzOiAnZkdyb3VwRHJhZ2dpbmdEaXNhYmxlZCcsXG4gICAgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlLFxuICB9KTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgcmVhZG9ubHkgZlNlbGVjdGlvbkRpc2FibGVkID0gaW5wdXQoZmFsc2UsIHtcbiAgICBhbGlhczogJ2ZHcm91cFNlbGVjdGlvbkRpc2FibGVkJyxcbiAgICB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUsXG4gIH0pO1xuXG4gIHB1YmxpYyBvdmVycmlkZSByZWFkb25seSBmSW5jbHVkZVBhZGRpbmcgPSBpbnB1dCh0cnVlLCB7XG4gICAgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlLFxuICB9KTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgcmVhZG9ubHkgZkF1dG9FeHBhbmRPbkNoaWxkSGl0ID0gaW5wdXQoZmFsc2UsIHtcbiAgICB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUsXG4gIH0pO1xuXG4gIHB1YmxpYyBvdmVycmlkZSByZWFkb25seSBmQXV0b1NpemVUb0ZpdENoaWxkcmVuID0gaW5wdXQoZmFsc2UsIHtcbiAgICB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUsXG4gIH0pO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvcHJlZmVyLWluamVjdFxuICAgIGVsZW1lbnRSZWZlcmVuY2U6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICApIHtcbiAgICBzdXBlcihlbGVtZW50UmVmZXJlbmNlLm5hdGl2ZUVsZW1lbnQpO1xuICAgIHN1cGVyLnBvc2l0aW9uQ2hhbmdlcygpO1xuICAgIHN1cGVyLnNpemVDaGFuZ2VzKCk7XG4gICAgc3VwZXIucm90YXRlQ2hhbmdlcygpO1xuICAgIHN1cGVyLnBhcmVudENoYW5nZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldFN0eWxlKCdwb3NpdGlvbicsICdhYnNvbHV0ZScpO1xuICAgIHRoaXMuc2V0U3R5bGUoJ3RyYW5zZm9ybS1vcmlnaW4nLCAnY2VudGVyJyk7XG4gICAgdGhpcy5zZXRTdHlsZSgndXNlci1zZWxlY3QnLCAnbm9uZScpO1xuICAgIHRoaXMuc2V0U3R5bGUoJ3BvaW50ZXItZXZlbnRzJywgJ2FsbCcpO1xuICAgIHRoaXMuc2V0U3R5bGUoJ2xlZnQnLCAnMCcpO1xuICAgIHRoaXMuc2V0U3R5bGUoJ3RvcCcsICcwJyk7XG4gICAgc3VwZXIucmVkcmF3KCk7XG5cbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlPHZvaWQ+KG5ldyBBZGROb2RlVG9TdG9yZVJlcXVlc3QodGhpcykpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHNldFN0eWxlKHN0eWxlTmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmhvc3RFbGVtZW50LCBzdHlsZU5hbWUsIHZhbHVlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW1vdmVTdHlsZShzdHlsZU5hbWU6IHN0cmluZykge1xuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUodGhpcy5ob3N0RWxlbWVudCwgc3R5bGVOYW1lKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSByZWRyYXcoKTogdm9pZCB7XG4gICAgc3VwZXIucmVkcmF3KCk7XG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZShuZXcgTm90aWZ5VHJhbnNmb3JtQ2hhbmdlZFJlcXVlc3QoKSk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5icm93c2VyLmlzQnJvd3NlcigpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX2xpc3RlblN0YXRlU2l6ZUNoYW5nZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2xpc3RlblN0YXRlU2l6ZUNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZTx2b2lkPihuZXcgVXBkYXRlTm9kZVdoZW5TdGF0ZU9yU2l6ZUNoYW5nZWRSZXF1ZXN0KHRoaXMsIHRoaXMuX2Rlc3Ryb3lSZWYpKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSByZWZyZXNoKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5vdGlmeSgpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8dm9pZD4obmV3IFJlbW92ZU5vZGVGcm9tU3RvcmVSZXF1ZXN0KHRoaXMpKTtcbiAgfVxufVxuIl19
@@ -1,7 +1,8 @@
1
- import { InjectionToken } from '@angular/core';
1
+ import { effect, inject, InjectionToken, Injector, Renderer2, untracked, } from '@angular/core';
2
2
  import { PointExtensions } from '@foblex/2d';
3
3
  import { mixinChangeSelection } from '../mixins';
4
4
  import { FChannel } from '../reactivity';
5
+ import { BrowserService } from "@foblex/platform";
5
6
  export const F_NODE = new InjectionToken('F_NODE');
6
7
  const MIXIN_BASE = mixinChangeSelection(class {
7
8
  hostElement;
@@ -10,21 +11,74 @@ const MIXIN_BASE = mixinChangeSelection(class {
10
11
  }
11
12
  });
12
13
  export class FNodeBase extends MIXIN_BASE {
14
+ _injector = inject(Injector);
15
+ renderer = inject(Renderer2);
16
+ browser = inject(BrowserService);
13
17
  stateChanges = new FChannel();
14
18
  _position = PointExtensions.initialize();
15
19
  _rotate = 0;
16
20
  _size;
17
- fCanBeResizedByChild = true;
18
21
  connectors = [];
22
+ positionChanges() {
23
+ effect(() => {
24
+ const position = this.position();
25
+ untracked(() => {
26
+ if (!PointExtensions.isEqual(this._position, position)) {
27
+ this._position = position;
28
+ this.redraw();
29
+ this.refresh();
30
+ }
31
+ });
32
+ }, { injector: this._injector });
33
+ }
34
+ sizeChanges() {
35
+ effect(() => {
36
+ const size = this.size();
37
+ untracked(() => {
38
+ if (!this._isSizeEqual(size)) {
39
+ this._size = size;
40
+ this.redraw();
41
+ this.refresh();
42
+ }
43
+ });
44
+ }, { injector: this._injector });
45
+ }
46
+ rotateChanges() {
47
+ effect(() => {
48
+ const rotate = this.rotate();
49
+ untracked(() => {
50
+ if (this._rotate !== rotate) {
51
+ this._rotate = rotate;
52
+ this.redraw();
53
+ this.refresh();
54
+ }
55
+ });
56
+ }, { injector: this._injector });
57
+ }
58
+ parentChanges() {
59
+ effect(() => {
60
+ this.fParentId();
61
+ this.fIncludePadding();
62
+ this.fAutoSizeToFitChildren();
63
+ untracked(() => this.refresh());
64
+ }, { injector: this._injector });
65
+ }
66
+ _isSizeEqual(value) {
67
+ return this._size?.width === value?.width && this._size?.height === value?.height;
68
+ }
19
69
  isContains(element) {
20
70
  return this.hostElement.contains(element);
21
71
  }
22
72
  redraw() {
23
- if (this.size) {
24
- this.setStyle('width', '' + this.size.width + 'px');
25
- this.setStyle('height', '' + this.size.height + 'px');
73
+ if (this._size) {
74
+ this.setStyle('width', '' + this._size.width + 'px');
75
+ this.setStyle('height', '' + this._size.height + 'px');
26
76
  }
27
- this.setStyle('transform', `translate(${this.position.x}px,${this.position.y}px) rotate(${this.rotate}deg)`);
77
+ this.setStyle('transform', `translate(${this._position.x}px,${this._position.y}px) rotate(${this._rotate}deg)`);
78
+ }
79
+ resetSize() {
80
+ this.removeStyle('width');
81
+ this.removeStyle('height');
28
82
  }
29
83
  updatePosition(position) {
30
84
  this._position = position;
@@ -53,4 +107,4 @@ export class FNodeBase extends MIXIN_BASE {
53
107
  this.refresh();
54
108
  }
55
109
  }
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1ub2RlLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2Ytbm9kZS9mLW5vZGUtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWUsY0FBYyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBd0IsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBS25FLE9BQU8sRUFBZSxvQkFBb0IsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM5RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxJQUFJLGNBQWMsQ0FBWSxRQUFRLENBQUMsQ0FBQztBQUU5RCxNQUFNLFVBQVUsR0FBRyxvQkFBb0IsQ0FDckM7SUFFVztJQURULFlBQ1MsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7SUFFakMsQ0FBQztDQUNGLENBQUMsQ0FBQztBQUVMLE1BQU0sT0FBZ0IsU0FBVSxTQUFRLFVBQVU7SUFNaEMsWUFBWSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7SUFPcEMsU0FBUyxHQUFXLGVBQWUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQU9qRCxPQUFPLEdBQVcsQ0FBQyxDQUFDO0lBT3BCLEtBQUssQ0FBb0I7SUFZNUIsb0JBQW9CLEdBQVksSUFBSSxDQUFDO0lBTXJDLFVBQVUsR0FBcUIsRUFBRSxDQUFDO0lBSWxDLFVBQVUsQ0FBQyxPQUFpQztRQUNqRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFTSxNQUFNO1FBQ1gsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDZCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDcEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ3hELENBQUM7UUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxhQUFjLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBRSxNQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBRSxjQUFlLElBQUksQ0FBQyxNQUFPLE1BQU0sQ0FBQyxDQUFDO0lBQ3JILENBQUM7SUFFTSxjQUFjLENBQUMsUUFBZ0I7UUFDcEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7SUFDNUIsQ0FBQztJQUVNLFlBQVksQ0FBQyxNQUFjO1FBQ2hDLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO0lBQ3hCLENBQUM7SUFFTSxVQUFVLENBQUMsS0FBWTtRQUM1QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBRU0sUUFBUSxDQUFDLFNBQWlCO1FBQy9CLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRU0sV0FBVyxDQUFDLFNBQWlCO1FBQ2xDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRU0sWUFBWSxDQUFDLFNBQXlCO1FBQzNDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRU0sZUFBZSxDQUFDLFNBQXlCO1FBQzlDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pELElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ25DLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtFdmVudEVtaXR0ZXIsIEluamVjdGlvblRva2VuLCBTaWduYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSVBvaW50LCBJUmVjdCwgSVNpemUsIFBvaW50RXh0ZW5zaW9ucyB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHtcbiAgRkNvbm5lY3RvckJhc2Vcbn0gZnJvbSAnLi4vZi1jb25uZWN0b3JzJztcbmltcG9ydCB7IElIYXNIb3N0RWxlbWVudCB9IGZyb20gJy4uL2ktaGFzLWhvc3QtZWxlbWVudCc7XG5pbXBvcnQgeyBJU2VsZWN0YWJsZSwgbWl4aW5DaGFuZ2VTZWxlY3Rpb24gfSBmcm9tICcuLi9taXhpbnMnO1xuaW1wb3J0IHsgRkNoYW5uZWwgfSBmcm9tICcuLi9yZWFjdGl2aXR5JztcblxuZXhwb3J0IGNvbnN0IEZfTk9ERSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxGTm9kZUJhc2U+KCdGX05PREUnKTtcblxuY29uc3QgTUlYSU5fQkFTRSA9IG1peGluQ2hhbmdlU2VsZWN0aW9uKFxuICBjbGFzcyB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICBwdWJsaWMgaG9zdEVsZW1lbnQ6IEhUTUxFbGVtZW50XG4gICAgKSB7XG4gICAgfVxuICB9KTtcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZOb2RlQmFzZSBleHRlbmRzIE1JWElOX0JBU0UgaW1wbGVtZW50cyBJU2VsZWN0YWJsZSwgSUhhc0hvc3RFbGVtZW50IHtcblxuICBwdWJsaWMgYWJzdHJhY3Qgb3ZlcnJpZGUgZklkOiBTaWduYWw8c3RyaW5nPjtcblxuICBwdWJsaWMgYWJzdHJhY3QgZlBhcmVudElkOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyByZWFkb25seSBzdGF0ZUNoYW5nZXMgPSBuZXcgRkNoYW5uZWwoKTtcblxuXG4gIHB1YmxpYyBhYnN0cmFjdCBwb3NpdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPElQb2ludD47XG5cbiAgcHVibGljIGFic3RyYWN0IHBvc2l0aW9uOiBJUG9pbnQ7XG5cbiAgcHJvdGVjdGVkIF9wb3NpdGlvbjogSVBvaW50ID0gUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoKTtcblxuXG4gIHB1YmxpYyBhYnN0cmFjdCByb3RhdGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXI+O1xuXG4gIHB1YmxpYyBhYnN0cmFjdCByb3RhdGU6IG51bWJlcjtcblxuICBwcm90ZWN0ZWQgX3JvdGF0ZTogbnVtYmVyID0gMDtcblxuXG4gIHB1YmxpYyBhYnN0cmFjdCBzaXplQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SVJlY3Q+O1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBzaXplOiBJU2l6ZTtcblxuICBwcm90ZWN0ZWQgX3NpemU6IElTaXplIHwgdW5kZWZpbmVkO1xuXG5cbiAgcHVibGljIGFic3RyYWN0IGZNaW5pbWFwQ2xhc3M6IHN0cmluZ1tdIHwgc3RyaW5nO1xuXG5cbiAgcHVibGljIGFic3RyYWN0IGZEcmFnZ2luZ0Rpc2FibGVkOiBib29sZWFuO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBvdmVycmlkZSBmU2VsZWN0aW9uRGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgcHVibGljIGFic3RyYWN0IGZDb25uZWN0T25Ob2RlOiBib29sZWFuO1xuXG4gIHB1YmxpYyBmQ2FuQmVSZXNpemVkQnlDaGlsZDogYm9vbGVhbiA9IHRydWU7XG5cbiAgcHVibGljIGFic3RyYWN0IGZJbmNsdWRlUGFkZGluZzogYm9vbGVhbjtcblxuICBwdWJsaWMgYWJzdHJhY3QgcmVmcmVzaCgpOiB2b2lkO1xuXG4gIHB1YmxpYyBjb25uZWN0b3JzOiBGQ29ubmVjdG9yQmFzZVtdID0gW107XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IHNldFN0eWxlKG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQ7XG5cbiAgcHVibGljIGlzQ29udGFpbnMoZWxlbWVudDogSFRNTEVsZW1lbnQgfCBTVkdFbGVtZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaG9zdEVsZW1lbnQuY29udGFpbnMoZWxlbWVudCk7XG4gIH1cblxuICBwdWJsaWMgcmVkcmF3KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNpemUpIHtcbiAgICAgIHRoaXMuc2V0U3R5bGUoJ3dpZHRoJywgJycgKyB0aGlzLnNpemUud2lkdGggKyAncHgnKTtcbiAgICAgIHRoaXMuc2V0U3R5bGUoJ2hlaWdodCcsICcnICsgdGhpcy5zaXplLmhlaWdodCArICdweCcpO1xuICAgIH1cblxuICAgIHRoaXMuc2V0U3R5bGUoJ3RyYW5zZm9ybScsIGB0cmFuc2xhdGUoJHsgdGhpcy5wb3NpdGlvbi54IH1weCwkeyB0aGlzLnBvc2l0aW9uLnkgfXB4KSByb3RhdGUoJHsgdGhpcy5yb3RhdGUgfWRlZylgKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVQb3NpdGlvbihwb3NpdGlvbjogSVBvaW50KTogdm9pZCB7XG4gICAgdGhpcy5fcG9zaXRpb24gPSBwb3NpdGlvbjtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVSb3RhdGUocm90YXRlOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLl9yb3RhdGUgPSByb3RhdGU7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlU2l6ZSh2YWx1ZTogSVNpemUpOiB2b2lkIHtcbiAgICB0aGlzLl9zaXplID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgc2V0Q2xhc3MoY2xhc3NOYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmhvc3RFbGVtZW50LmNsYXNzTGlzdC5hZGQoY2xhc3NOYW1lKTtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVDbGFzcyhjbGFzc05hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuaG9zdEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShjbGFzc05hbWUpO1xuICB9XG5cbiAgcHVibGljIGFkZENvbm5lY3Rvcihjb25uZWN0b3I6IEZDb25uZWN0b3JCYXNlKTogdm9pZCB7XG4gICAgdGhpcy5jb25uZWN0b3JzLnB1c2goY29ubmVjdG9yKTtcbiAgICB0aGlzLnJlZnJlc2goKTtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVDb25uZWN0b3IoY29ubmVjdG9yOiBGQ29ubmVjdG9yQmFzZSk6IHZvaWQge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5jb25uZWN0b3JzLmluZGV4T2YoY29ubmVjdG9yKTtcbiAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICB0aGlzLmNvbm5lY3RvcnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB9XG4gICAgdGhpcy5yZWZyZXNoKCk7XG4gIH1cbn1cbiJdfQ==
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1ub2RlLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2Ytbm9kZS9mLW5vZGUtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsTUFBTSxFQUNOLE1BQU0sRUFDTixjQUFjLEVBQ2QsUUFBUSxFQUVVLFNBQVMsRUFDbkIsU0FBUyxHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUtuRSxPQUFPLEVBQWUsb0JBQW9CLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDOUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFbEQsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLElBQUksY0FBYyxDQUFZLFFBQVEsQ0FBQyxDQUFDO0FBRTlELE1BQU0sVUFBVSxHQUFHLG9CQUFvQixDQUNyQztJQUVXO0lBRFQsWUFDUyxXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtJQUVqQyxDQUFDO0NBQ0YsQ0FBQyxDQUFDO0FBRUwsTUFBTSxPQUFnQixTQUFVLFNBQVEsVUFBVTtJQUUvQixTQUFTLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRTNCLFFBQVEsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDN0IsT0FBTyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQU1wQyxZQUFZLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztJQUt2QyxTQUFTLEdBQUcsZUFBZSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBS3pDLE9BQU8sR0FBVyxDQUFDLENBQUM7SUFPcEIsS0FBSyxDQUFvQjtJQWlCekIsVUFBVSxHQUFxQixFQUFFLENBQUM7SUFFL0IsZUFBZTtRQUN2QixNQUFNLENB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QUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ25DLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgZWZmZWN0LFxuICBpbmplY3QsXG4gIEluamVjdGlvblRva2VuLFxuICBJbmplY3RvciwgSW5wdXRTaWduYWwsXG4gIE1vZGVsU2lnbmFsLFxuICBPdXRwdXRFbWl0dGVyUmVmLCBSZW5kZXJlcjIsXG4gIFNpZ25hbCwgdW50cmFja2VkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElQb2ludCwgSVJlY3QsIElTaXplLCBQb2ludEV4dGVuc2lvbnMgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7XG4gIEZDb25uZWN0b3JCYXNlLFxufSBmcm9tICcuLi9mLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHsgSUhhc0hvc3RFbGVtZW50IH0gZnJvbSAnLi4vaS1oYXMtaG9zdC1lbGVtZW50JztcbmltcG9ydCB7IElTZWxlY3RhYmxlLCBtaXhpbkNoYW5nZVNlbGVjdGlvbiB9IGZyb20gJy4uL21peGlucyc7XG5pbXBvcnQgeyBGQ2hhbm5lbCB9IGZyb20gJy4uL3JlYWN0aXZpdHknO1xuaW1wb3J0IHsgQnJvd3NlclNlcnZpY2UgfSBmcm9tIFwiQGZvYmxleC9wbGF0Zm9ybVwiO1xuXG5leHBvcnQgY29uc3QgRl9OT0RFID0gbmV3IEluamVjdGlvblRva2VuPEZOb2RlQmFzZT4oJ0ZfTk9ERScpO1xuXG5jb25zdCBNSVhJTl9CQVNFID0gbWl4aW5DaGFuZ2VTZWxlY3Rpb24oXG4gIGNsYXNzIHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgIHB1YmxpYyBob3N0RWxlbWVudDogSFRNTEVsZW1lbnQsXG4gICAgKSB7XG4gICAgfVxuICB9KTtcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZOb2RlQmFzZSBleHRlbmRzIE1JWElOX0JBU0UgaW1wbGVtZW50cyBJU2VsZWN0YWJsZSwgSUhhc0hvc3RFbGVtZW50IHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9pbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHJlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XG4gIHByb3RlY3RlZCByZWFkb25seSBicm93c2VyID0gaW5qZWN0KEJyb3dzZXJTZXJ2aWNlKTtcblxuICBwdWJsaWMgYWJzdHJhY3Qgb3ZlcnJpZGUgZklkOiBTaWduYWw8c3RyaW5nPjtcblxuICBwdWJsaWMgYWJzdHJhY3QgZlBhcmVudElkOiBTaWduYWw8c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZD47XG5cbiAgcHVibGljIHJlYWRvbmx5IHN0YXRlQ2hhbmdlcyA9IG5ldyBGQ2hhbm5lbCgpO1xuXG5cbiAgcHVibGljIGFic3RyYWN0IHBvc2l0aW9uOiBNb2RlbFNpZ25hbDxJUG9pbnQ+O1xuXG4gIHB1YmxpYyBfcG9zaXRpb24gPSBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgpO1xuXG5cbiAgcHVibGljIGFic3RyYWN0IHJvdGF0ZTogTW9kZWxTaWduYWw8bnVtYmVyPjtcblxuICBwdWJsaWMgX3JvdGF0ZTogbnVtYmVyID0gMDtcblxuXG4gIHB1YmxpYyBhYnN0cmFjdCBzaXplQ2hhbmdlOiBPdXRwdXRFbWl0dGVyUmVmPElSZWN0PjtcblxuICBwdWJsaWMgYWJzdHJhY3Qgc2l6ZTogSW5wdXRTaWduYWw8SVNpemUgfCB1bmRlZmluZWQ+O1xuXG4gIHB1YmxpYyBfc2l6ZTogSVNpemUgfCB1bmRlZmluZWQ7XG5cbiAgLy9BZGQgYWJpbGl0eSB0byBjb25uZWN0IHRvIGZpcnN0IGNvbm5lY3RhYmxlIGlucHV0IGlmIG5vZGUgaXMgYXQgcG9pbnRlciBwb3NpdGlvblxuICBwdWJsaWMgYWJzdHJhY3QgZkNvbm5lY3RPbk5vZGU6IFNpZ25hbDxib29sZWFuPjtcblxuICBwdWJsaWMgYWJzdHJhY3QgZk1pbmltYXBDbGFzczogU2lnbmFsPHN0cmluZ1tdIHwgc3RyaW5nPjtcblxuICBwdWJsaWMgYWJzdHJhY3QgZkRyYWdnaW5nRGlzYWJsZWQ6IFNpZ25hbDxib29sZWFuPjtcblxuICBwdWJsaWMgYWJzdHJhY3QgZkF1dG9FeHBhbmRPbkNoaWxkSGl0OiBTaWduYWw8Ym9vbGVhbj47XG5cbiAgcHVibGljIGFic3RyYWN0IGZBdXRvU2l6ZVRvRml0Q2hpbGRyZW46IFNpZ25hbDxib29sZWFuPjtcblxuICBwdWJsaWMgYWJzdHJhY3QgZkluY2x1ZGVQYWRkaW5nOiBTaWduYWw8Ym9vbGVhbj47XG5cbiAgcHVibGljIGFic3RyYWN0IHJlZnJlc2goKTogdm9pZDtcblxuICBwdWJsaWMgY29ubmVjdG9yczogRkNvbm5lY3RvckJhc2VbXSA9IFtdO1xuXG4gIHByb3RlY3RlZCBwb3NpdGlvbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IHBvc2l0aW9uID0gdGhpcy5wb3NpdGlvbigpO1xuICAgICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgICAgaWYgKCFQb2ludEV4dGVuc2lvbnMuaXNFcXVhbCh0aGlzLl9wb3NpdGlvbiwgcG9zaXRpb24pKSB7XG4gICAgICAgICAgdGhpcy5fcG9zaXRpb24gPSBwb3NpdGlvbjtcbiAgICAgICAgICB0aGlzLnJlZHJhdygpO1xuICAgICAgICAgIHRoaXMucmVmcmVzaCgpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIH0sIHsgaW5qZWN0b3I6IHRoaXMuX2luamVjdG9yIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNpemVDaGFuZ2VzKCk6IHZvaWQge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBzaXplID0gdGhpcy5zaXplKCk7XG4gICAgICB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuX2lzU2l6ZUVxdWFsKHNpemUpKSB7XG4gICAgICAgICAgdGhpcy5fc2l6ZSA9IHNpemU7XG4gICAgICAgICAgdGhpcy5yZWRyYXcoKTtcbiAgICAgICAgICB0aGlzLnJlZnJlc2goKVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9LCB7IGluamVjdG9yOiB0aGlzLl9pbmplY3RvciB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCByb3RhdGVDaGFuZ2VzKCk6IHZvaWQge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCByb3RhdGUgPSB0aGlzLnJvdGF0ZSgpO1xuICAgICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuX3JvdGF0ZSAhPT0gcm90YXRlKSB7XG4gICAgICAgICAgdGhpcy5fcm90YXRlID0gcm90YXRlO1xuICAgICAgICAgIHRoaXMucmVkcmF3KCk7XG4gICAgICAgICAgdGhpcy5yZWZyZXNoKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0sIHsgaW5qZWN0b3I6IHRoaXMuX2luamVjdG9yIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHBhcmVudENoYW5nZXMoKTogdm9pZCB7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIHRoaXMuZlBhcmVudElkKCk7XG4gICAgICB0aGlzLmZJbmNsdWRlUGFkZGluZygpO1xuICAgICAgdGhpcy5mQXV0b1NpemVUb0ZpdENoaWxkcmVuKCk7XG4gICAgICB1bnRyYWNrZWQoKCkgPT4gdGhpcy5yZWZyZXNoKCkpO1xuICAgIH0sIHsgaW5qZWN0b3I6IHRoaXMuX2luamVjdG9yIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfaXNTaXplRXF1YWwodmFsdWU/OiBJU2l6ZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9zaXplPy53aWR0aCA9PT0gdmFsdWU/LndpZHRoICYmIHRoaXMuX3NpemU/LmhlaWdodCA9PT0gdmFsdWU/LmhlaWdodDtcbiAgfVxuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBzZXRTdHlsZShuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiB2b2lkO1xuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCByZW1vdmVTdHlsZShuYW1lOiBzdHJpbmcpOiB2b2lkO1xuXG4gIHB1YmxpYyBpc0NvbnRhaW5zKGVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgU1ZHRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhvc3RFbGVtZW50LmNvbnRhaW5zKGVsZW1lbnQpO1xuICB9XG5cbiAgcHVibGljIHJlZHJhdygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fc2l6ZSkge1xuICAgICAgdGhpcy5zZXRTdHlsZSgnd2lkdGgnLCAnJyArIHRoaXMuX3NpemUud2lkdGggKyAncHgnKTtcbiAgICAgIHRoaXMuc2V0U3R5bGUoJ2hlaWdodCcsICcnICsgdGhpcy5fc2l6ZS5oZWlnaHQgKyAncHgnKTtcbiAgICB9XG5cbiAgICB0aGlzLnNldFN0eWxlKCd0cmFuc2Zvcm0nLCBgdHJhbnNsYXRlKCR7dGhpcy5fcG9zaXRpb24ueH1weCwke3RoaXMuX3Bvc2l0aW9uLnl9cHgpIHJvdGF0ZSgke3RoaXMuX3JvdGF0ZX1kZWcpYCk7XG4gIH1cblxuICBwdWJsaWMgcmVzZXRTaXplKCk6IHZvaWQge1xuICAgIHRoaXMucmVtb3ZlU3R5bGUoJ3dpZHRoJyk7XG4gICAgdGhpcy5yZW1vdmVTdHlsZSgnaGVpZ2h0Jyk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlUG9zaXRpb24ocG9zaXRpb246IElQb2ludCk6IHZvaWQge1xuICAgIHRoaXMuX3Bvc2l0aW9uID0gcG9zaXRpb247XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlUm90YXRlKHJvdGF0ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5fcm90YXRlID0gcm90YXRlO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZVNpemUodmFsdWU6IElTaXplKTogdm9pZCB7XG4gICAgdGhpcy5fc2l6ZSA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIHNldENsYXNzKGNsYXNzTmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5ob3N0RWxlbWVudC5jbGFzc0xpc3QuYWRkKGNsYXNzTmFtZSk7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlQ2xhc3MoY2xhc3NOYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmhvc3RFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoY2xhc3NOYW1lKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRDb25uZWN0b3IoY29ubmVjdG9yOiBGQ29ubmVjdG9yQmFzZSk6IHZvaWQge1xuICAgIHRoaXMuY29ubmVjdG9ycy5wdXNoKGNvbm5lY3Rvcik7XG4gICAgdGhpcy5yZWZyZXNoKCk7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlQ29ubmVjdG9yKGNvbm5lY3RvcjogRkNvbm5lY3RvckJhc2UpOiB2b2lkIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuY29ubmVjdG9ycy5pbmRleE9mKGNvbm5lY3Rvcik7XG4gICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgdGhpcy5jb25uZWN0b3JzLnNwbGljZShpbmRleCwgMSk7XG4gICAgfVxuICAgIHRoaXMucmVmcmVzaCgpO1xuICB9XG59XG4iXX0=