This is an automated email from the ASF dual-hosted git repository.

marat pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-karavan.git


The following commit(s) were added to refs/heads/main by this push:
     new e70e9eb9 Fix #1296
e70e9eb9 is described below

commit e70e9eb975bfa400cd5fff0aa345c02ed60d36e8
Author: Marat Gubaidullin <ma...@talismancloud.io>
AuthorDate: Fri May 24 18:12:21 2024 -0400

    Fix #1296
---
 .../main/webui/src/designer/route/DslConnections.tsx  | 16 +++++++++-------
 .../webui/src/designer/route/element/DslElement.tsx   |  5 ++---
 .../src/designer/route/element/DslElementHeader.tsx   |  5 +++--
 karavan-designer/public/example/demo.camel.yaml       | 19 ++++++++++++++++++-
 .../src/designer/route/DslConnections.tsx             | 16 +++++++++-------
 .../src/designer/route/element/DslElement.tsx         |  5 ++---
 .../src/designer/route/element/DslElementHeader.tsx   |  5 +++--
 karavan-space/src/designer/route/DslConnections.tsx   | 16 +++++++++-------
 .../src/designer/route/element/DslElement.tsx         |  5 ++---
 .../src/designer/route/element/DslElementHeader.tsx   |  5 +++--
 10 files changed, 60 insertions(+), 37 deletions(-)

diff --git a/karavan-app/src/main/webui/src/designer/route/DslConnections.tsx 
b/karavan-app/src/main/webui/src/designer/route/DslConnections.tsx
index 0b5dead4..718f60be 100644
--- a/karavan-app/src/main/webui/src/designer/route/DslConnections.tsx
+++ b/karavan-app/src/main/webui/src/designer/route/DslConnections.tsx
@@ -285,7 +285,7 @@ export function DslConnections() {
     }
 
     function isSpecial(pos: DslPosition): boolean {
-        return ['ChoiceDefinition', 'MulticastDefinition', 'TryDefinition', 
'RouteConfigurationDefinition'].includes(pos.step.dslName);
+        return ['ChoiceDefinition', 'MulticastDefinition', 
'LoadBalanceDefinition', 'TryDefinition', 
'RouteConfigurationDefinition'].includes(pos.step.dslName);
     }
 
     function addArrowToList(list: JSX.Element[], from?: DslPosition, to?: 
DslPosition, fromHeader?: boolean, toHeader?: boolean): JSX.Element[]  {
@@ -309,7 +309,7 @@ export function DslConnections() {
         if (pos.parent && pos.parent.dslName === 'TryDefinition' && 
pos.position === 0) {
             const parent = steps.get(pos.parent.uuid);
             list.push(...addArrowToList(list, parent, pos, true, false))
-        } else if (pos.parent && ['RouteConfigurationDefinition', 
'MulticastDefinition'].includes(pos.parent.dslName)) {
+        } else if (pos.parent && ['RouteConfigurationDefinition', 
'MulticastDefinition', 'LoadBalanceDefinition'].includes(pos.parent.dslName)) {
             const parent = steps.get(pos.parent.uuid);
             list.push(...addArrowToList(list, parent, pos, true, false))
             if (parent?.nextstep) {
@@ -327,7 +327,7 @@ export function DslConnections() {
             if (pos.position === (pos.inStepsLength - 1) && !isSpecial(pos)) {
                 const nextElement = getNext(pos);
                 const parentDsl1 = getParentDsl(nextElement?.uuid);
-                if (parentDsl1 && ['RouteConfigurationDefinition', 
'MulticastDefinition'].includes(parentDsl1)) {
+                if (parentDsl1 && ['RouteConfigurationDefinition', 
'MulticastDefinition', 'LoadBalanceDefinition'].includes(parentDsl1)) {
                     // do nothing
                 } else if (nextElement) {
                     const next = steps.get(nextElement.uuid);
@@ -349,7 +349,7 @@ export function DslConnections() {
 
         if (['WhenDefinition', 
'OtherwiseDefinition'].includes(pos.step.dslName) && pos.step.hasSteps() && 
(pos.step as any).steps.length === 0) {
             const parentDsl = getParentDsl(pos?.nextstep?.uuid);
-            if (parentDsl && ['RouteConfigurationDefinition', 
'MulticastDefinition'].includes(parentDsl)) {
+            if (parentDsl && ['RouteConfigurationDefinition', 
'MulticastDefinition', 'LoadBalanceDefinition'].includes(parentDsl)) {
                 // do nothing
             } else if (pos.nextstep) {
                 const to = steps.get(pos.nextstep.uuid);
@@ -357,7 +357,7 @@ export function DslConnections() {
             } else {
                 const next = getNext(pos);
                 const parentDsl1 = getParentDsl(next?.uuid);
-                if (parentDsl1 && ['RouteConfigurationDefinition', 
'MulticastDefinition'].includes(parentDsl1)) {
+                if (parentDsl1 && ['RouteConfigurationDefinition', 
'MulticastDefinition', 'LoadBalanceDefinition'].includes(parentDsl1)) {
                     // do nothing
                 } else if (next) {
                     const to = steps.get(next.uuid);
@@ -374,7 +374,8 @@ export function DslConnections() {
             }
         }
 
-        if (!isSpecial(pos) && pos.inSteps && pos.nextstep && 
pos.parent?.dslName !== 'MulticastDefinition') {
+        if (!isSpecial(pos) && pos.inSteps && pos.nextstep && 
(pos.parent?.dslName &&
+            !['MulticastDefinition', 
'LoadBalanceDefinition'].includes(pos.parent?.dslName))) {
             const next = steps.get(pos.nextstep.uuid);
             if (pos.step.hasSteps() && pos.prevStep) {
             } else {
@@ -382,7 +383,8 @@ export function DslConnections() {
             }
         }
 
-        if (!isSpecial(pos) && pos.inSteps && pos.nextstep && 
pos.parent?.dslName !== 'MulticastDefinition') {
+        if (!isSpecial(pos) && pos.inSteps && pos.nextstep && 
(pos.parent?.dslName &&
+            !['MulticastDefinition', 
'LoadBalanceDefinition'].includes(pos.parent?.dslName))) {
             const next = steps.get(pos.nextstep.uuid);
             if (next && !isSpecial(next) && next.inSteps) {
                 // console.log(pos)
diff --git 
a/karavan-app/src/main/webui/src/designer/route/element/DslElement.tsx 
b/karavan-app/src/main/webui/src/designer/route/element/DslElement.tsx
index ae566055..0416f3cb 100644
--- a/karavan-app/src/main/webui/src/designer/route/element/DslElement.tsx
+++ b/karavan-app/src/main/webui/src/designer/route/element/DslElement.tsx
@@ -102,7 +102,6 @@ export function DslElement(props: Props) {
         if ([
             'FromDefinition',
             'TryDefinition',
-            'MulticastDefinition',
             'CatchDefinition', 'FinallyDefinition',
             'ChoiceDefinition',
             'SwitchDefinition', 'WhenDefinition', 'OtherwiseDefinition'
@@ -117,12 +116,12 @@ export function DslElement(props: Props) {
     }
 
     function isAddStepButtonLeft(): boolean {
-        return ['MulticastDefinition']
+        return ['MulticastDefinition', 'LoadBalanceDefinition']
             .includes(props.step.dslName);
     }
 
     function isHorizontal(): boolean {
-        return ['MulticastDefinition'].includes(props.step.dslName);
+        return ['MulticastDefinition', 
'LoadBalanceDefinition'].includes(props.step.dslName);
     }
 
 
diff --git 
a/karavan-app/src/main/webui/src/designer/route/element/DslElementHeader.tsx 
b/karavan-app/src/main/webui/src/designer/route/element/DslElementHeader.tsx
index c047e846..78e7da52 100644
--- a/karavan-app/src/main/webui/src/designer/route/element/DslElementHeader.tsx
+++ b/karavan-app/src/main/webui/src/designer/route/element/DslElementHeader.tsx
@@ -76,12 +76,13 @@ export function DslElementHeader(props: Props) {
     }
 
     function isWide(): boolean {
-        return ['RouteConfigurationDefinition', 'RouteDefinition', 
'ChoiceDefinition', 'MulticastDefinition', 'TryDefinition', 
'CircuitBreakerDefinition']
+        return ['RouteConfigurationDefinition', 'RouteDefinition', 
'ChoiceDefinition', 'MulticastDefinition',
+            'LoadBalanceDefinition', 'TryDefinition', 
'CircuitBreakerDefinition']
             .includes(props.step.dslName);
     }
 
     function isHorizontal(): boolean {
-        return ['MulticastDefinition'].includes(props.step.dslName);
+        return ['MulticastDefinition', 
'LoadBalanceDefinition'].includes(props.step.dslName);
     }
 
     function getChildrenInfo(step: CamelElement): [boolean, number, boolean, 
number, number] {
diff --git a/karavan-designer/public/example/demo.camel.yaml 
b/karavan-designer/public/example/demo.camel.yaml
index 0637a088..57f6252a 100644
--- a/karavan-designer/public/example/demo.camel.yaml
+++ b/karavan-designer/public/example/demo.camel.yaml
@@ -1 +1,18 @@
-[]
\ No newline at end of file
+- route:
+    id: route-3d00
+    nodePrefixId: route-01c
+    from:
+      id: from-4a08
+      uri: direct
+      parameters:
+        name: adsdasdas
+      steps:
+        - loadBalance:
+            id: loadBalance-55de
+            steps:
+              - to:
+                  id: to-87b5
+                  uri: direct
+              - to:
+                  id: to-f061
+                  uri: direct
diff --git a/karavan-designer/src/designer/route/DslConnections.tsx 
b/karavan-designer/src/designer/route/DslConnections.tsx
index 0b5dead4..718f60be 100644
--- a/karavan-designer/src/designer/route/DslConnections.tsx
+++ b/karavan-designer/src/designer/route/DslConnections.tsx
@@ -285,7 +285,7 @@ export function DslConnections() {
     }
 
     function isSpecial(pos: DslPosition): boolean {
-        return ['ChoiceDefinition', 'MulticastDefinition', 'TryDefinition', 
'RouteConfigurationDefinition'].includes(pos.step.dslName);
+        return ['ChoiceDefinition', 'MulticastDefinition', 
'LoadBalanceDefinition', 'TryDefinition', 
'RouteConfigurationDefinition'].includes(pos.step.dslName);
     }
 
     function addArrowToList(list: JSX.Element[], from?: DslPosition, to?: 
DslPosition, fromHeader?: boolean, toHeader?: boolean): JSX.Element[]  {
@@ -309,7 +309,7 @@ export function DslConnections() {
         if (pos.parent && pos.parent.dslName === 'TryDefinition' && 
pos.position === 0) {
             const parent = steps.get(pos.parent.uuid);
             list.push(...addArrowToList(list, parent, pos, true, false))
-        } else if (pos.parent && ['RouteConfigurationDefinition', 
'MulticastDefinition'].includes(pos.parent.dslName)) {
+        } else if (pos.parent && ['RouteConfigurationDefinition', 
'MulticastDefinition', 'LoadBalanceDefinition'].includes(pos.parent.dslName)) {
             const parent = steps.get(pos.parent.uuid);
             list.push(...addArrowToList(list, parent, pos, true, false))
             if (parent?.nextstep) {
@@ -327,7 +327,7 @@ export function DslConnections() {
             if (pos.position === (pos.inStepsLength - 1) && !isSpecial(pos)) {
                 const nextElement = getNext(pos);
                 const parentDsl1 = getParentDsl(nextElement?.uuid);
-                if (parentDsl1 && ['RouteConfigurationDefinition', 
'MulticastDefinition'].includes(parentDsl1)) {
+                if (parentDsl1 && ['RouteConfigurationDefinition', 
'MulticastDefinition', 'LoadBalanceDefinition'].includes(parentDsl1)) {
                     // do nothing
                 } else if (nextElement) {
                     const next = steps.get(nextElement.uuid);
@@ -349,7 +349,7 @@ export function DslConnections() {
 
         if (['WhenDefinition', 
'OtherwiseDefinition'].includes(pos.step.dslName) && pos.step.hasSteps() && 
(pos.step as any).steps.length === 0) {
             const parentDsl = getParentDsl(pos?.nextstep?.uuid);
-            if (parentDsl && ['RouteConfigurationDefinition', 
'MulticastDefinition'].includes(parentDsl)) {
+            if (parentDsl && ['RouteConfigurationDefinition', 
'MulticastDefinition', 'LoadBalanceDefinition'].includes(parentDsl)) {
                 // do nothing
             } else if (pos.nextstep) {
                 const to = steps.get(pos.nextstep.uuid);
@@ -357,7 +357,7 @@ export function DslConnections() {
             } else {
                 const next = getNext(pos);
                 const parentDsl1 = getParentDsl(next?.uuid);
-                if (parentDsl1 && ['RouteConfigurationDefinition', 
'MulticastDefinition'].includes(parentDsl1)) {
+                if (parentDsl1 && ['RouteConfigurationDefinition', 
'MulticastDefinition', 'LoadBalanceDefinition'].includes(parentDsl1)) {
                     // do nothing
                 } else if (next) {
                     const to = steps.get(next.uuid);
@@ -374,7 +374,8 @@ export function DslConnections() {
             }
         }
 
-        if (!isSpecial(pos) && pos.inSteps && pos.nextstep && 
pos.parent?.dslName !== 'MulticastDefinition') {
+        if (!isSpecial(pos) && pos.inSteps && pos.nextstep && 
(pos.parent?.dslName &&
+            !['MulticastDefinition', 
'LoadBalanceDefinition'].includes(pos.parent?.dslName))) {
             const next = steps.get(pos.nextstep.uuid);
             if (pos.step.hasSteps() && pos.prevStep) {
             } else {
@@ -382,7 +383,8 @@ export function DslConnections() {
             }
         }
 
-        if (!isSpecial(pos) && pos.inSteps && pos.nextstep && 
pos.parent?.dslName !== 'MulticastDefinition') {
+        if (!isSpecial(pos) && pos.inSteps && pos.nextstep && 
(pos.parent?.dslName &&
+            !['MulticastDefinition', 
'LoadBalanceDefinition'].includes(pos.parent?.dslName))) {
             const next = steps.get(pos.nextstep.uuid);
             if (next && !isSpecial(next) && next.inSteps) {
                 // console.log(pos)
diff --git a/karavan-designer/src/designer/route/element/DslElement.tsx 
b/karavan-designer/src/designer/route/element/DslElement.tsx
index ae566055..0416f3cb 100644
--- a/karavan-designer/src/designer/route/element/DslElement.tsx
+++ b/karavan-designer/src/designer/route/element/DslElement.tsx
@@ -102,7 +102,6 @@ export function DslElement(props: Props) {
         if ([
             'FromDefinition',
             'TryDefinition',
-            'MulticastDefinition',
             'CatchDefinition', 'FinallyDefinition',
             'ChoiceDefinition',
             'SwitchDefinition', 'WhenDefinition', 'OtherwiseDefinition'
@@ -117,12 +116,12 @@ export function DslElement(props: Props) {
     }
 
     function isAddStepButtonLeft(): boolean {
-        return ['MulticastDefinition']
+        return ['MulticastDefinition', 'LoadBalanceDefinition']
             .includes(props.step.dslName);
     }
 
     function isHorizontal(): boolean {
-        return ['MulticastDefinition'].includes(props.step.dslName);
+        return ['MulticastDefinition', 
'LoadBalanceDefinition'].includes(props.step.dslName);
     }
 
 
diff --git a/karavan-designer/src/designer/route/element/DslElementHeader.tsx 
b/karavan-designer/src/designer/route/element/DslElementHeader.tsx
index c047e846..78e7da52 100644
--- a/karavan-designer/src/designer/route/element/DslElementHeader.tsx
+++ b/karavan-designer/src/designer/route/element/DslElementHeader.tsx
@@ -76,12 +76,13 @@ export function DslElementHeader(props: Props) {
     }
 
     function isWide(): boolean {
-        return ['RouteConfigurationDefinition', 'RouteDefinition', 
'ChoiceDefinition', 'MulticastDefinition', 'TryDefinition', 
'CircuitBreakerDefinition']
+        return ['RouteConfigurationDefinition', 'RouteDefinition', 
'ChoiceDefinition', 'MulticastDefinition',
+            'LoadBalanceDefinition', 'TryDefinition', 
'CircuitBreakerDefinition']
             .includes(props.step.dslName);
     }
 
     function isHorizontal(): boolean {
-        return ['MulticastDefinition'].includes(props.step.dslName);
+        return ['MulticastDefinition', 
'LoadBalanceDefinition'].includes(props.step.dslName);
     }
 
     function getChildrenInfo(step: CamelElement): [boolean, number, boolean, 
number, number] {
diff --git a/karavan-space/src/designer/route/DslConnections.tsx 
b/karavan-space/src/designer/route/DslConnections.tsx
index 0b5dead4..718f60be 100644
--- a/karavan-space/src/designer/route/DslConnections.tsx
+++ b/karavan-space/src/designer/route/DslConnections.tsx
@@ -285,7 +285,7 @@ export function DslConnections() {
     }
 
     function isSpecial(pos: DslPosition): boolean {
-        return ['ChoiceDefinition', 'MulticastDefinition', 'TryDefinition', 
'RouteConfigurationDefinition'].includes(pos.step.dslName);
+        return ['ChoiceDefinition', 'MulticastDefinition', 
'LoadBalanceDefinition', 'TryDefinition', 
'RouteConfigurationDefinition'].includes(pos.step.dslName);
     }
 
     function addArrowToList(list: JSX.Element[], from?: DslPosition, to?: 
DslPosition, fromHeader?: boolean, toHeader?: boolean): JSX.Element[]  {
@@ -309,7 +309,7 @@ export function DslConnections() {
         if (pos.parent && pos.parent.dslName === 'TryDefinition' && 
pos.position === 0) {
             const parent = steps.get(pos.parent.uuid);
             list.push(...addArrowToList(list, parent, pos, true, false))
-        } else if (pos.parent && ['RouteConfigurationDefinition', 
'MulticastDefinition'].includes(pos.parent.dslName)) {
+        } else if (pos.parent && ['RouteConfigurationDefinition', 
'MulticastDefinition', 'LoadBalanceDefinition'].includes(pos.parent.dslName)) {
             const parent = steps.get(pos.parent.uuid);
             list.push(...addArrowToList(list, parent, pos, true, false))
             if (parent?.nextstep) {
@@ -327,7 +327,7 @@ export function DslConnections() {
             if (pos.position === (pos.inStepsLength - 1) && !isSpecial(pos)) {
                 const nextElement = getNext(pos);
                 const parentDsl1 = getParentDsl(nextElement?.uuid);
-                if (parentDsl1 && ['RouteConfigurationDefinition', 
'MulticastDefinition'].includes(parentDsl1)) {
+                if (parentDsl1 && ['RouteConfigurationDefinition', 
'MulticastDefinition', 'LoadBalanceDefinition'].includes(parentDsl1)) {
                     // do nothing
                 } else if (nextElement) {
                     const next = steps.get(nextElement.uuid);
@@ -349,7 +349,7 @@ export function DslConnections() {
 
         if (['WhenDefinition', 
'OtherwiseDefinition'].includes(pos.step.dslName) && pos.step.hasSteps() && 
(pos.step as any).steps.length === 0) {
             const parentDsl = getParentDsl(pos?.nextstep?.uuid);
-            if (parentDsl && ['RouteConfigurationDefinition', 
'MulticastDefinition'].includes(parentDsl)) {
+            if (parentDsl && ['RouteConfigurationDefinition', 
'MulticastDefinition', 'LoadBalanceDefinition'].includes(parentDsl)) {
                 // do nothing
             } else if (pos.nextstep) {
                 const to = steps.get(pos.nextstep.uuid);
@@ -357,7 +357,7 @@ export function DslConnections() {
             } else {
                 const next = getNext(pos);
                 const parentDsl1 = getParentDsl(next?.uuid);
-                if (parentDsl1 && ['RouteConfigurationDefinition', 
'MulticastDefinition'].includes(parentDsl1)) {
+                if (parentDsl1 && ['RouteConfigurationDefinition', 
'MulticastDefinition', 'LoadBalanceDefinition'].includes(parentDsl1)) {
                     // do nothing
                 } else if (next) {
                     const to = steps.get(next.uuid);
@@ -374,7 +374,8 @@ export function DslConnections() {
             }
         }
 
-        if (!isSpecial(pos) && pos.inSteps && pos.nextstep && 
pos.parent?.dslName !== 'MulticastDefinition') {
+        if (!isSpecial(pos) && pos.inSteps && pos.nextstep && 
(pos.parent?.dslName &&
+            !['MulticastDefinition', 
'LoadBalanceDefinition'].includes(pos.parent?.dslName))) {
             const next = steps.get(pos.nextstep.uuid);
             if (pos.step.hasSteps() && pos.prevStep) {
             } else {
@@ -382,7 +383,8 @@ export function DslConnections() {
             }
         }
 
-        if (!isSpecial(pos) && pos.inSteps && pos.nextstep && 
pos.parent?.dslName !== 'MulticastDefinition') {
+        if (!isSpecial(pos) && pos.inSteps && pos.nextstep && 
(pos.parent?.dslName &&
+            !['MulticastDefinition', 
'LoadBalanceDefinition'].includes(pos.parent?.dslName))) {
             const next = steps.get(pos.nextstep.uuid);
             if (next && !isSpecial(next) && next.inSteps) {
                 // console.log(pos)
diff --git a/karavan-space/src/designer/route/element/DslElement.tsx 
b/karavan-space/src/designer/route/element/DslElement.tsx
index ae566055..0416f3cb 100644
--- a/karavan-space/src/designer/route/element/DslElement.tsx
+++ b/karavan-space/src/designer/route/element/DslElement.tsx
@@ -102,7 +102,6 @@ export function DslElement(props: Props) {
         if ([
             'FromDefinition',
             'TryDefinition',
-            'MulticastDefinition',
             'CatchDefinition', 'FinallyDefinition',
             'ChoiceDefinition',
             'SwitchDefinition', 'WhenDefinition', 'OtherwiseDefinition'
@@ -117,12 +116,12 @@ export function DslElement(props: Props) {
     }
 
     function isAddStepButtonLeft(): boolean {
-        return ['MulticastDefinition']
+        return ['MulticastDefinition', 'LoadBalanceDefinition']
             .includes(props.step.dslName);
     }
 
     function isHorizontal(): boolean {
-        return ['MulticastDefinition'].includes(props.step.dslName);
+        return ['MulticastDefinition', 
'LoadBalanceDefinition'].includes(props.step.dslName);
     }
 
 
diff --git a/karavan-space/src/designer/route/element/DslElementHeader.tsx 
b/karavan-space/src/designer/route/element/DslElementHeader.tsx
index c047e846..78e7da52 100644
--- a/karavan-space/src/designer/route/element/DslElementHeader.tsx
+++ b/karavan-space/src/designer/route/element/DslElementHeader.tsx
@@ -76,12 +76,13 @@ export function DslElementHeader(props: Props) {
     }
 
     function isWide(): boolean {
-        return ['RouteConfigurationDefinition', 'RouteDefinition', 
'ChoiceDefinition', 'MulticastDefinition', 'TryDefinition', 
'CircuitBreakerDefinition']
+        return ['RouteConfigurationDefinition', 'RouteDefinition', 
'ChoiceDefinition', 'MulticastDefinition',
+            'LoadBalanceDefinition', 'TryDefinition', 
'CircuitBreakerDefinition']
             .includes(props.step.dslName);
     }
 
     function isHorizontal(): boolean {
-        return ['MulticastDefinition'].includes(props.step.dslName);
+        return ['MulticastDefinition', 
'LoadBalanceDefinition'].includes(props.step.dslName);
     }
 
     function getChildrenInfo(step: CamelElement): [boolean, number, boolean, 
number, number] {

Reply via email to