Please describe the feature that you want to propose
Description
Provide support for rendering basic EIP branches in the visualization, assuming you are entering YAML that consists of at least one branch.
Epic: #151
Considerations for Tasks
This task will involve some refactoring to make the existing code base more reusable for branching and unit testing. To build the edges for the branching, we will need the main linear integration to be completely built, because we will need a reference to the initial and next step to be able to merge back. Branching should be done from the parent steps (the one it branches off of, and potentially the one it merges back into), and there we determine if we merge back or not.
Tasks
[x] Refactor: Build default parameters for nodes from visualizationService
[x] Refactor: A function to build a single linear flow, whether for branching or the main integration
[x] Calls a function that accepts an array of steps, and builds nodes (buildNodesFromSteps)
[x] Calls a function that accepts an array of nodes, and builds edges for those nodes (buildEdges)
[x] Implement methods to handle branching specifically
[x] Calls the same function to build nodes in a linear fashion (buildNodesFromSteps)
[x] Calls the same function to build edges (buildEdges)
[x] Refactor: Accept a custom initial step position in buildNodesFromSteps, which will be different for branches
[x] Refactor: buildNodesFromSteps, so that we can wait for it to finish before building the edges
[x] Modify isFirstStepAndNotSource check to ensure it's not a branch prior to inserting a ADD STEP placeholder
[x] Allow all EIP steps to have both a left and right handle, so that edges can later attach to them
[x] Handle branch edges
[x] First step in a branch should refer to its parent step as the previousStep
[x] Add support for a nextStep
[x] Check if last step in a branch should merge back to the next step *
[x] Edges inside of step groups
[x] Branch positioning to handle multiple branches *
Please describe the feature that you want to propose
Description
Provide support for rendering basic EIP branches in the visualization, assuming you are entering YAML that consists of at least one branch.
Epic: #151
Considerations for Tasks
This task will involve some refactoring to make the existing code base more reusable for branching and unit testing. To build the edges for the branching, we will need the main linear integration to be completely built, because we will need a reference to the initial and next step to be able to merge back. Branching should be done from the parent steps (the one it branches off of, and potentially the one it merges back into), and there we determine if we merge back or not.
Tasks
visualizationService
buildNodesFromSteps
)buildEdges
)buildNodesFromSteps
)buildEdges
)buildNodesFromSteps
, which will be different for branchesbuildNodesFromSteps
, so that we can wait for it to finish before building the edgesisFirstStepAndNotSource
check to ensure it's not a branch prior to inserting aADD STEP
placeholderEIP
steps to have both a left and right handle, so that edges can later attach to themparent
step as thepreviousStep
nextStep
* = potentially best left for a follow-up PR