You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ma...@apache.org on 2023/08/24 23:26:16 UTC
[camel-karavan] 02/06: Fix connections issues #836
This is an automated email from the ASF dual-hosted git repository.
marat pushed a commit to branch feature-836
in repository https://gitbox.apache.org/repos/asf/camel-karavan.git
commit 64a8c66a2da57cabbeab525aa048814b1b703e02
Author: Marat Gubaidullin <ma...@Marats-MacBook-Pro.local>
AuthorDate: Wed Aug 23 18:36:22 2023 -0400
Fix connections issues #836
---
karavan-designer/public/example/demo.camel.yaml | 1706 ++++++++++----------
.../src/designer/route/DslConnections.tsx | 2 -
karavan-designer/src/designer/route/DslElement.tsx | 100 +-
.../src/designer/route/RouteDesigner.tsx | 22 +-
.../src/designer/route/useRouteDesignerHook.tsx | 24 +-
5 files changed, 935 insertions(+), 919 deletions(-)
diff --git a/karavan-designer/public/example/demo.camel.yaml b/karavan-designer/public/example/demo.camel.yaml
index f7df5980..14003ed0 100644
--- a/karavan-designer/public/example/demo.camel.yaml
+++ b/karavan-designer/public/example/demo.camel.yaml
@@ -10,859 +10,7 @@
id: when-064f
steps:
- multicast:
- id: multicast-38ce
- steps:
- - bean:
- id: bean-3b8e
- - log:
- message: ${body}
- id: log-546f
- - loop:
- expression: {}
- id: loop-4635
- steps:
- - convertBodyTo:
- id: convertBodyTo-1cae
- otherwise:
- id: otherwise-0b09
- steps:
- - filter:
- expression: {}
- id: filter-a02b
- id: choice-c53c
- - doTry:
- id: doTry-8fd5
- doCatch:
- - id: doCatch-1071
- - id: doCatch-c38e
- steps:
- - routingSlip:
- expression: {}
- id: routingSlip-a85a
-- route:
- id: route-178a
- from:
- uri: kamelet:aws-cloudtrail-source
- id: from-3e7d
- steps:
- - multicast:
- id: multicast-eef7
- steps:
- - bean:
- id: bean-a5ef
- - aggregate:
- id: aggregate-f5d8
- - aggregate:
- id: aggregate-b9e7
- - aggregate:
- id: aggregate-5eb8
- - aggregate:
- id: aggregate-c57e
- - aggregate:
- id: aggregate-1cd4
- - bean:
- id: bean-72a1
- - choice:
- when:
- - expression: {}
- id: when-a56b
- otherwise:
- id: otherwise-9f31
- id: choice-1905
-- route:
- id: route-f435
- from:
- uri: kamelet:timer-source
- id: from-e52c
- steps:
- - choice:
- when:
- - expression: {}
- id: when-064f
- steps:
- - multicast:
- id: multicast-38ce
- steps:
- - bean:
- id: bean-3b8e
- - log:
- message: ${body}
- id: log-546f
- - loop:
- expression: {}
- id: loop-4635
- steps:
- - convertBodyTo:
- id: convertBodyTo-1cae
- otherwise:
- id: otherwise-0b09
- steps:
- - filter:
- expression: {}
- id: filter-a02b
- id: choice-c53c
- - doTry:
- id: doTry-8fd5
- doCatch:
- - id: doCatch-1071
- - id: doCatch-c38e
- steps:
- - routingSlip:
- expression: {}
- id: routingSlip-a85a
-- route:
- id: route-178a
- from:
- uri: kamelet:aws-cloudtrail-source
- id: from-3e7d
- steps:
- - multicast:
- id: multicast-eef7
- steps:
- - bean:
- id: bean-a5ef
- - aggregate:
- id: aggregate-f5d8
- - aggregate:
- id: aggregate-b9e7
- - aggregate:
- id: aggregate-5eb8
- - aggregate:
- id: aggregate-c57e
- - aggregate:
- id: aggregate-1cd4
- - bean:
- id: bean-72a1
- - choice:
- when:
- - expression: {}
- id: when-a56b
- otherwise:
- id: otherwise-9f31
- id: choice-1905
-- route:
- id: route-f435
- from:
- uri: kamelet:timer-source
- id: from-e52c
- steps:
- - choice:
- when:
- - expression: {}
- id: when-064f
- steps:
- - multicast:
- id: multicast-38ce
- steps:
- - bean:
- id: bean-3b8e
- - log:
- message: ${body}
- id: log-546f
- - loop:
- expression: {}
- id: loop-4635
- steps:
- - convertBodyTo:
- id: convertBodyTo-1cae
- otherwise:
- id: otherwise-0b09
- steps:
- - filter:
- expression: {}
- id: filter-a02b
- id: choice-c53c
- - doTry:
- id: doTry-8fd5
- doCatch:
- - id: doCatch-1071
- - id: doCatch-c38e
- steps:
- - routingSlip:
- expression: {}
- id: routingSlip-a85a
-- route:
- id: route-178a
- from:
- uri: kamelet:aws-cloudtrail-source
- id: from-3e7d
- steps:
- - multicast:
- id: multicast-eef7
- steps:
- - bean:
- id: bean-a5ef
- - aggregate:
- id: aggregate-f5d8
- - aggregate:
- id: aggregate-b9e7
- - aggregate:
- id: aggregate-5eb8
- - aggregate:
- id: aggregate-c57e
- - aggregate:
- id: aggregate-1cd4
- - bean:
- id: bean-72a1
- - choice:
- when:
- - expression: {}
- id: when-a56b
- otherwise:
- id: otherwise-9f31
- id: choice-1905
-- route:
- id: route-f435
- from:
- uri: kamelet:timer-source
- id: from-e52c
- steps:
- - choice:
- when:
- - expression: {}
- id: when-064f
- steps:
- - multicast:
- id: multicast-38ce
- steps:
- - bean:
- id: bean-3b8e
- - log:
- message: ${body}
- id: log-546f
- - loop:
- expression: {}
- id: loop-4635
- steps:
- - convertBodyTo:
- id: convertBodyTo-1cae
- otherwise:
- id: otherwise-0b09
- steps:
- - filter:
- expression: {}
- id: filter-a02b
- id: choice-c53c
- - doTry:
- id: doTry-8fd5
- doCatch:
- - id: doCatch-1071
- - id: doCatch-c38e
- steps:
- - routingSlip:
- expression: {}
- id: routingSlip-a85a
-- route:
- id: route-178a
- from:
- uri: kamelet:aws-cloudtrail-source
- id: from-3e7d
- steps:
- - multicast:
- id: multicast-eef7
- steps:
- - bean:
- id: bean-a5ef
- - aggregate:
- id: aggregate-f5d8
- - aggregate:
- id: aggregate-b9e7
- - aggregate:
- id: aggregate-5eb8
- - aggregate:
- id: aggregate-c57e
- - aggregate:
- id: aggregate-1cd4
- - bean:
- id: bean-72a1
- - choice:
- when:
- - expression: {}
- id: when-a56b
- otherwise:
- id: otherwise-9f31
- id: choice-1905
-- route:
- id: route-f435
- from:
- uri: kamelet:timer-source
- id: from-e52c
- steps:
- - choice:
- when:
- - expression: {}
- id: when-064f
- steps:
- - multicast:
- id: multicast-38ce
- steps:
- - bean:
- id: bean-3b8e
- - log:
- message: ${body}
- id: log-546f
- - loop:
- expression: {}
- id: loop-4635
- steps:
- - convertBodyTo:
- id: convertBodyTo-1cae
- otherwise:
- id: otherwise-0b09
- steps:
- - filter:
- expression: {}
- id: filter-a02b
- id: choice-c53c
- - doTry:
- id: doTry-8fd5
- doCatch:
- - id: doCatch-1071
- - id: doCatch-c38e
- steps:
- - routingSlip:
- expression: {}
- id: routingSlip-a85a
-- route:
- id: route-178a
- from:
- uri: kamelet:aws-cloudtrail-source
- id: from-3e7d
- steps:
- - multicast:
- id: multicast-eef7
- steps:
- - bean:
- id: bean-a5ef
- - aggregate:
- id: aggregate-f5d8
- - aggregate:
- id: aggregate-b9e7
- - aggregate:
- id: aggregate-5eb8
- - aggregate:
- id: aggregate-c57e
- - aggregate:
- id: aggregate-1cd4
- - bean:
- id: bean-72a1
- - choice:
- when:
- - expression: {}
- id: when-a56b
- otherwise:
- id: otherwise-9f31
- id: choice-1905
-- route:
- id: route-f435
- from:
- uri: kamelet:timer-source
- id: from-e52c
- steps:
- - choice:
- when:
- - expression: {}
- id: when-064f
- steps:
- - multicast:
- id: multicast-38ce
- steps:
- - bean:
- id: bean-3b8e
- - log:
- message: ${body}
- id: log-546f
- - loop:
- expression: {}
- id: loop-4635
- steps:
- - convertBodyTo:
- id: convertBodyTo-1cae
- otherwise:
- id: otherwise-0b09
- steps:
- - filter:
- expression: {}
- id: filter-a02b
- id: choice-c53c
- - doTry:
- id: doTry-8fd5
- doCatch:
- - id: doCatch-1071
- - id: doCatch-c38e
- steps:
- - routingSlip:
- expression: {}
- id: routingSlip-a85a
-- route:
- id: route-178a
- from:
- uri: kamelet:aws-cloudtrail-source
- id: from-3e7d
- steps:
- - multicast:
- id: multicast-eef7
- steps:
- - bean:
- id: bean-a5ef
- - aggregate:
- id: aggregate-f5d8
- - aggregate:
- id: aggregate-b9e7
- - aggregate:
- id: aggregate-5eb8
- - aggregate:
- id: aggregate-c57e
- - aggregate:
- id: aggregate-1cd4
- - bean:
- id: bean-72a1
- - choice:
- when:
- - expression: {}
- id: when-a56b
- otherwise:
- id: otherwise-9f31
- id: choice-1905
-- route:
- id: route-f435
- from:
- uri: kamelet:timer-source
- id: from-e52c
- steps:
- - choice:
- when:
- - expression: {}
- id: when-064f
- steps:
- - multicast:
- id: multicast-38ce
- steps:
- - bean:
- id: bean-3b8e
- - log:
- message: ${body}
- id: log-546f
- - loop:
- expression: {}
- id: loop-4635
- steps:
- - convertBodyTo:
- id: convertBodyTo-1cae
- otherwise:
- id: otherwise-0b09
- steps:
- - filter:
- expression: {}
- id: filter-a02b
- id: choice-c53c
- - doTry:
- id: doTry-8fd5
- doCatch:
- - id: doCatch-1071
- - id: doCatch-c38e
- steps:
- - routingSlip:
- expression: {}
- id: routingSlip-a85a
-- route:
- id: route-178a
- from:
- uri: kamelet:aws-cloudtrail-source
- id: from-3e7d
- steps:
- - multicast:
- id: multicast-eef7
- steps:
- - bean:
- id: bean-a5ef
- - aggregate:
- id: aggregate-f5d8
- - aggregate:
- id: aggregate-b9e7
- - aggregate:
- id: aggregate-5eb8
- - aggregate:
- id: aggregate-c57e
- - aggregate:
- id: aggregate-1cd4
- - bean:
- id: bean-72a1
- - choice:
- when:
- - expression: {}
- id: when-a56b
- otherwise:
- id: otherwise-9f31
- id: choice-1905
-- route:
- id: route-f435
- from:
- uri: kamelet:timer-source
- id: from-e52c
- steps:
- - choice:
- when:
- - expression: {}
- id: when-064f
- steps:
- - multicast:
- id: multicast-38ce
- steps:
- - bean:
- id: bean-3b8e
- - log:
- message: ${body}
- id: log-546f
- - loop:
- expression: {}
- id: loop-4635
- steps:
- - convertBodyTo:
- id: convertBodyTo-1cae
- otherwise:
- id: otherwise-0b09
- steps:
- - filter:
- expression: {}
- id: filter-a02b
- id: choice-c53c
- - doTry:
- id: doTry-8fd5
- doCatch:
- - id: doCatch-1071
- - id: doCatch-c38e
- steps:
- - routingSlip:
- expression: {}
- id: routingSlip-a85a
-- route:
- id: route-178a
- from:
- uri: kamelet:aws-cloudtrail-source
- id: from-3e7d
- steps:
- - multicast:
- id: multicast-eef7
- steps:
- - bean:
- id: bean-a5ef
- - aggregate:
- id: aggregate-f5d8
- - aggregate:
- id: aggregate-b9e7
- - aggregate:
- id: aggregate-5eb8
- - aggregate:
- id: aggregate-c57e
- - aggregate:
- id: aggregate-1cd4
- - bean:
- id: bean-72a1
- - choice:
- when:
- - expression: {}
- id: when-a56b
- otherwise:
- id: otherwise-9f31
- id: choice-1905
-- route:
- id: route-f435
- from:
- uri: kamelet:timer-source
- id: from-e52c
- steps:
- - choice:
- when:
- - expression: {}
- id: when-064f
- steps:
- - multicast:
- id: multicast-38ce
- steps:
- - bean:
- id: bean-3b8e
- - log:
- message: ${body}
- id: log-546f
- - loop:
- expression: {}
- id: loop-4635
- steps:
- - convertBodyTo:
- id: convertBodyTo-1cae
- otherwise:
- id: otherwise-0b09
- steps:
- - filter:
- expression: {}
- id: filter-a02b
- id: choice-c53c
- - doTry:
- id: doTry-8fd5
- doCatch:
- - id: doCatch-1071
- - id: doCatch-c38e
- steps:
- - routingSlip:
- expression: {}
- id: routingSlip-a85a
-- route:
- id: route-178a
- from:
- uri: kamelet:aws-cloudtrail-source
- id: from-3e7d
- steps:
- - multicast:
- id: multicast-eef7
- steps:
- - bean:
- id: bean-a5ef
- - aggregate:
- id: aggregate-f5d8
- - aggregate:
- id: aggregate-b9e7
- - aggregate:
- id: aggregate-5eb8
- - aggregate:
- id: aggregate-c57e
- - aggregate:
- id: aggregate-1cd4
- - bean:
- id: bean-72a1
- - choice:
- when:
- - expression: {}
- id: when-a56b
- otherwise:
- id: otherwise-9f31
- id: choice-1905
-- route:
- id: route-f435
- from:
- uri: kamelet:timer-source
- id: from-e52c
- steps:
- - choice:
- when:
- - expression: {}
- id: when-064f
- steps:
- - multicast:
- id: multicast-38ce
- steps:
- - bean:
- id: bean-3b8e
- - log:
- message: ${body}
- id: log-546f
- - loop:
- expression: {}
- id: loop-4635
- steps:
- - convertBodyTo:
- id: convertBodyTo-1cae
- otherwise:
- id: otherwise-0b09
- steps:
- - filter:
- expression: {}
- id: filter-a02b
- id: choice-c53c
- - doTry:
- id: doTry-8fd5
- doCatch:
- - id: doCatch-1071
- - id: doCatch-c38e
- steps:
- - routingSlip:
- expression: {}
- id: routingSlip-a85a
-- route:
- id: route-178a
- from:
- uri: kamelet:aws-cloudtrail-source
- id: from-3e7d
- steps:
- - multicast:
- id: multicast-eef7
- steps:
- - bean:
- id: bean-a5ef
- - aggregate:
- id: aggregate-f5d8
- - aggregate:
- id: aggregate-b9e7
- - aggregate:
- id: aggregate-5eb8
- - aggregate:
- id: aggregate-c57e
- - aggregate:
- id: aggregate-1cd4
- - bean:
- id: bean-72a1
- - choice:
- when:
- - expression: {}
- id: when-a56b
- otherwise:
- id: otherwise-9f31
- id: choice-1905
-- route:
- id: route-f435
- from:
- uri: kamelet:timer-source
- id: from-e52c
- steps:
- - choice:
- when:
- - expression: {}
- id: when-064f
- steps:
- - multicast:
- id: multicast-38ce
- steps:
- - bean:
- id: bean-3b8e
- - log:
- message: ${body}
- id: log-546f
- - loop:
- expression: {}
- id: loop-4635
- steps:
- - convertBodyTo:
- id: convertBodyTo-1cae
- otherwise:
- id: otherwise-0b09
- steps:
- - filter:
- expression: {}
- id: filter-a02b
- id: choice-c53c
- - doTry:
- id: doTry-8fd5
- doCatch:
- - id: doCatch-1071
- - id: doCatch-c38e
- steps:
- - routingSlip:
- expression: {}
- id: routingSlip-a85a
-- route:
- id: route-178a
- from:
- uri: kamelet:aws-cloudtrail-source
- id: from-3e7d
- steps:
- - multicast:
- id: multicast-eef7
- steps:
- - bean:
- id: bean-a5ef
- - aggregate:
- id: aggregate-f5d8
- - aggregate:
- id: aggregate-b9e7
- - aggregate:
- id: aggregate-5eb8
- - aggregate:
- id: aggregate-c57e
- - aggregate:
- id: aggregate-1cd4
- - bean:
- id: bean-72a1
- - choice:
- when:
- - expression: {}
- id: when-a56b
- otherwise:
- id: otherwise-9f31
- id: choice-1905
-- route:
- id: route-f435
- from:
- uri: kamelet:timer-source
- id: from-e52c
- steps:
- - choice:
- when:
- - expression: {}
- id: when-064f
- steps:
- - multicast:
- id: multicast-38ce
- steps:
- - bean:
- id: bean-3b8e
- - log:
- message: ${body}
- id: log-546f
- - loop:
- expression: {}
- id: loop-4635
- steps:
- - convertBodyTo:
- id: convertBodyTo-1cae
- otherwise:
- id: otherwise-0b09
- steps:
- - filter:
- expression: {}
- id: filter-a02b
- id: choice-c53c
- - doTry:
- id: doTry-8fd5
- doCatch:
- - id: doCatch-1071
- - id: doCatch-c38e
- steps:
- - routingSlip:
- expression: {}
- id: routingSlip-a85a
-- route:
- id: route-178a
- from:
- uri: kamelet:aws-cloudtrail-source
- id: from-3e7d
- steps:
- - multicast:
- id: multicast-eef7
- steps:
- - bean:
- id: bean-a5ef
- - aggregate:
- id: aggregate-f5d8
- - aggregate:
- id: aggregate-b9e7
- - aggregate:
- id: aggregate-5eb8
- - aggregate:
- id: aggregate-c57e
- - aggregate:
- id: aggregate-1cd4
- - bean:
- id: bean-72a1
- - choice:
- when:
- - expression: {}
- id: when-a56b
- otherwise:
- id: otherwise-9f31
- id: choice-1905
-- route:
- id: route-f435
- from:
- uri: kamelet:timer-source
- id: from-e52c
- steps:
- - choice:
- when:
- - expression: {}
- id: when-064f
- steps:
- - multicast:
- id: multicast-38ce
+ id: multicast-38cea
steps:
- bean:
id: bean-3b8e
@@ -921,3 +69,855 @@
otherwise:
id: otherwise-9f31
id: choice-1905
+#- route:
+# id: route-f435
+# from:
+# uri: kamelet:timer-source
+# id: from-e52c
+# steps:
+# - choice:
+# when:
+# - expression: {}
+# id: when-064f
+# steps:
+# - multicast:
+# id: multicast-38ce
+# steps:
+# - bean:
+# id: bean-3b8e
+# - log:
+# message: ${body}
+# id: log-546f
+# - loop:
+# expression: {}
+# id: loop-4635
+# steps:
+# - convertBodyTo:
+# id: convertBodyTo-1cae
+# otherwise:
+# id: otherwise-0b09
+# steps:
+# - filter:
+# expression: {}
+# id: filter-a02b
+# id: choice-c53c
+# - doTry:
+# id: doTry-8fd5
+# doCatch:
+# - id: doCatch-1071
+# - id: doCatch-c38e
+# steps:
+# - routingSlip:
+# expression: {}
+# id: routingSlip-a85a
+#- route:
+# id: route-178a
+# from:
+# uri: kamelet:aws-cloudtrail-source
+# id: from-3e7d
+# steps:
+# - multicast:
+# id: multicast-eef7
+# steps:
+# - bean:
+# id: bean-a5ef
+# - aggregate:
+# id: aggregate-f5d8
+# - aggregate:
+# id: aggregate-b9e7
+# - aggregate:
+# id: aggregate-5eb8
+# - aggregate:
+# id: aggregate-c57e
+# - aggregate:
+# id: aggregate-1cd4
+# - bean:
+# id: bean-72a1
+# - choice:
+# when:
+# - expression: {}
+# id: when-a56b
+# otherwise:
+# id: otherwise-9f31
+# id: choice-1905
+#- route:
+# id: route-f435
+# from:
+# uri: kamelet:timer-source
+# id: from-e52c
+# steps:
+# - choice:
+# when:
+# - expression: {}
+# id: when-064f
+# steps:
+# - multicast:
+# id: multicast-38ce
+# steps:
+# - bean:
+# id: bean-3b8e
+# - log:
+# message: ${body}
+# id: log-546f
+# - loop:
+# expression: {}
+# id: loop-4635
+# steps:
+# - convertBodyTo:
+# id: convertBodyTo-1cae
+# otherwise:
+# id: otherwise-0b09
+# steps:
+# - filter:
+# expression: {}
+# id: filter-a02b
+# id: choice-c53c
+# - doTry:
+# id: doTry-8fd5
+# doCatch:
+# - id: doCatch-1071
+# - id: doCatch-c38e
+# steps:
+# - routingSlip:
+# expression: {}
+# id: routingSlip-a85a
+#- route:
+# id: route-178a
+# from:
+# uri: kamelet:aws-cloudtrail-source
+# id: from-3e7d
+# steps:
+# - multicast:
+# id: multicast-eef7
+# steps:
+# - bean:
+# id: bean-a5ef
+# - aggregate:
+# id: aggregate-f5d8
+# - aggregate:
+# id: aggregate-b9e7
+# - aggregate:
+# id: aggregate-5eb8
+# - aggregate:
+# id: aggregate-c57e
+# - aggregate:
+# id: aggregate-1cd4
+# - bean:
+# id: bean-72a1
+# - choice:
+# when:
+# - expression: {}
+# id: when-a56b
+# otherwise:
+# id: otherwise-9f31
+# id: choice-1905
+#- route:
+# id: route-f435
+# from:
+# uri: kamelet:timer-source
+# id: from-e52c
+# steps:
+# - choice:
+# when:
+# - expression: {}
+# id: when-064f
+# steps:
+# - multicast:
+# id: multicast-38ce
+# steps:
+# - bean:
+# id: bean-3b8e
+# - log:
+# message: ${body}
+# id: log-546f
+# - loop:
+# expression: {}
+# id: loop-4635
+# steps:
+# - convertBodyTo:
+# id: convertBodyTo-1cae
+# otherwise:
+# id: otherwise-0b09
+# steps:
+# - filter:
+# expression: {}
+# id: filter-a02b
+# id: choice-c53c
+# - doTry:
+# id: doTry-8fd5
+# doCatch:
+# - id: doCatch-1071
+# - id: doCatch-c38e
+# steps:
+# - routingSlip:
+# expression: {}
+# id: routingSlip-a85a
+#- route:
+# id: route-178a
+# from:
+# uri: kamelet:aws-cloudtrail-source
+# id: from-3e7d
+# steps:
+# - multicast:
+# id: multicast-eef7
+# steps:
+# - bean:
+# id: bean-a5ef
+# - aggregate:
+# id: aggregate-f5d8
+# - aggregate:
+# id: aggregate-b9e7
+# - aggregate:
+# id: aggregate-5eb8
+# - aggregate:
+# id: aggregate-c57e
+# - aggregate:
+# id: aggregate-1cd4
+# - bean:
+# id: bean-72a1
+# - choice:
+# when:
+# - expression: {}
+# id: when-a56b
+# otherwise:
+# id: otherwise-9f31
+# id: choice-1905
+#- route:
+# id: route-f435
+# from:
+# uri: kamelet:timer-source
+# id: from-e52c
+# steps:
+# - choice:
+# when:
+# - expression: {}
+# id: when-064f
+# steps:
+# - multicast:
+# id: multicast-38ce
+# steps:
+# - bean:
+# id: bean-3b8e
+# - log:
+# message: ${body}
+# id: log-546f
+# - loop:
+# expression: {}
+# id: loop-4635
+# steps:
+# - convertBodyTo:
+# id: convertBodyTo-1cae
+# otherwise:
+# id: otherwise-0b09
+# steps:
+# - filter:
+# expression: {}
+# id: filter-a02b
+# id: choice-c53c
+# - doTry:
+# id: doTry-8fd5
+# doCatch:
+# - id: doCatch-1071
+# - id: doCatch-c38e
+# steps:
+# - routingSlip:
+# expression: {}
+# id: routingSlip-a85a
+#- route:
+# id: route-178a
+# from:
+# uri: kamelet:aws-cloudtrail-source
+# id: from-3e7d
+# steps:
+# - multicast:
+# id: multicast-eef7
+# steps:
+# - bean:
+# id: bean-a5ef
+# - aggregate:
+# id: aggregate-f5d8
+# - aggregate:
+# id: aggregate-b9e7
+# - aggregate:
+# id: aggregate-5eb8
+# - aggregate:
+# id: aggregate-c57e
+# - aggregate:
+# id: aggregate-1cd4
+# - bean:
+# id: bean-72a1
+# - choice:
+# when:
+# - expression: {}
+# id: when-a56b
+# otherwise:
+# id: otherwise-9f31
+# id: choice-1905
+#- route:
+# id: route-f435
+# from:
+# uri: kamelet:timer-source
+# id: from-e52c
+# steps:
+# - choice:
+# when:
+# - expression: {}
+# id: when-064f
+# steps:
+# - multicast:
+# id: multicast-38ce
+# steps:
+# - bean:
+# id: bean-3b8e
+# - log:
+# message: ${body}
+# id: log-546f
+# - loop:
+# expression: {}
+# id: loop-4635
+# steps:
+# - convertBodyTo:
+# id: convertBodyTo-1cae
+# otherwise:
+# id: otherwise-0b09
+# steps:
+# - filter:
+# expression: {}
+# id: filter-a02b
+# id: choice-c53c
+# - doTry:
+# id: doTry-8fd5
+# doCatch:
+# - id: doCatch-1071
+# - id: doCatch-c38e
+# steps:
+# - routingSlip:
+# expression: {}
+# id: routingSlip-a85a
+#- route:
+# id: route-178a
+# from:
+# uri: kamelet:aws-cloudtrail-source
+# id: from-3e7d
+# steps:
+# - multicast:
+# id: multicast-eef7
+# steps:
+# - bean:
+# id: bean-a5ef
+# - aggregate:
+# id: aggregate-f5d8
+# - aggregate:
+# id: aggregate-b9e7
+# - aggregate:
+# id: aggregate-5eb8
+# - aggregate:
+# id: aggregate-c57e
+# - aggregate:
+# id: aggregate-1cd4
+# - bean:
+# id: bean-72a1
+# - choice:
+# when:
+# - expression: {}
+# id: when-a56b
+# otherwise:
+# id: otherwise-9f31
+# id: choice-1905
+#- route:
+# id: route-f435
+# from:
+# uri: kamelet:timer-source
+# id: from-e52c
+# steps:
+# - choice:
+# when:
+# - expression: {}
+# id: when-064f
+# steps:
+# - multicast:
+# id: multicast-38ce
+# steps:
+# - bean:
+# id: bean-3b8e
+# - log:
+# message: ${body}
+# id: log-546f
+# - loop:
+# expression: {}
+# id: loop-4635
+# steps:
+# - convertBodyTo:
+# id: convertBodyTo-1cae
+# otherwise:
+# id: otherwise-0b09
+# steps:
+# - filter:
+# expression: {}
+# id: filter-a02b
+# id: choice-c53c
+# - doTry:
+# id: doTry-8fd5
+# doCatch:
+# - id: doCatch-1071
+# - id: doCatch-c38e
+# steps:
+# - routingSlip:
+# expression: {}
+# id: routingSlip-a85a
+#- route:
+# id: route-178a
+# from:
+# uri: kamelet:aws-cloudtrail-source
+# id: from-3e7d
+# steps:
+# - multicast:
+# id: multicast-eef7
+# steps:
+# - bean:
+# id: bean-a5ef
+# - aggregate:
+# id: aggregate-f5d8
+# - aggregate:
+# id: aggregate-b9e7
+# - aggregate:
+# id: aggregate-5eb8
+# - aggregate:
+# id: aggregate-c57e
+# - aggregate:
+# id: aggregate-1cd4
+# - bean:
+# id: bean-72a1
+# - choice:
+# when:
+# - expression: {}
+# id: when-a56b
+# otherwise:
+# id: otherwise-9f31
+# id: choice-1905
+#- route:
+# id: route-f435
+# from:
+# uri: kamelet:timer-source
+# id: from-e52c
+# steps:
+# - choice:
+# when:
+# - expression: {}
+# id: when-064f
+# steps:
+# - multicast:
+# id: multicast-38ce
+# steps:
+# - bean:
+# id: bean-3b8e
+# - log:
+# message: ${body}
+# id: log-546f
+# - loop:
+# expression: {}
+# id: loop-4635
+# steps:
+# - convertBodyTo:
+# id: convertBodyTo-1cae
+# otherwise:
+# id: otherwise-0b09
+# steps:
+# - filter:
+# expression: {}
+# id: filter-a02b
+# id: choice-c53c
+# - doTry:
+# id: doTry-8fd5
+# doCatch:
+# - id: doCatch-1071
+# - id: doCatch-c38e
+# steps:
+# - routingSlip:
+# expression: {}
+# id: routingSlip-a85a
+#- route:
+# id: route-178a
+# from:
+# uri: kamelet:aws-cloudtrail-source
+# id: from-3e7d
+# steps:
+# - multicast:
+# id: multicast-eef7
+# steps:
+# - bean:
+# id: bean-a5ef
+# - aggregate:
+# id: aggregate-f5d8
+# - aggregate:
+# id: aggregate-b9e7
+# - aggregate:
+# id: aggregate-5eb8
+# - aggregate:
+# id: aggregate-c57e
+# - aggregate:
+# id: aggregate-1cd4
+# - bean:
+# id: bean-72a1
+# - choice:
+# when:
+# - expression: {}
+# id: when-a56b
+# otherwise:
+# id: otherwise-9f31
+# id: choice-1905
+#- route:
+# id: route-f435
+# from:
+# uri: kamelet:timer-source
+# id: from-e52c
+# steps:
+# - choice:
+# when:
+# - expression: {}
+# id: when-064f
+# steps:
+# - multicast:
+# id: multicast-38ce
+# steps:
+# - bean:
+# id: bean-3b8e
+# - log:
+# message: ${body}
+# id: log-546f
+# - loop:
+# expression: {}
+# id: loop-4635
+# steps:
+# - convertBodyTo:
+# id: convertBodyTo-1cae
+# otherwise:
+# id: otherwise-0b09
+# steps:
+# - filter:
+# expression: {}
+# id: filter-a02b
+# id: choice-c53c
+# - doTry:
+# id: doTry-8fd5
+# doCatch:
+# - id: doCatch-1071
+# - id: doCatch-c38e
+# steps:
+# - routingSlip:
+# expression: {}
+# id: routingSlip-a85a
+#- route:
+# id: route-178a
+# from:
+# uri: kamelet:aws-cloudtrail-source
+# id: from-3e7d
+# steps:
+# - multicast:
+# id: multicast-eef7
+# steps:
+# - bean:
+# id: bean-a5ef
+# - aggregate:
+# id: aggregate-f5d8
+# - aggregate:
+# id: aggregate-b9e7
+# - aggregate:
+# id: aggregate-5eb8
+# - aggregate:
+# id: aggregate-c57e
+# - aggregate:
+# id: aggregate-1cd4
+# - bean:
+# id: bean-72a1
+# - choice:
+# when:
+# - expression: {}
+# id: when-a56b
+# otherwise:
+# id: otherwise-9f31
+# id: choice-1905
+#- route:
+# id: route-f435
+# from:
+# uri: kamelet:timer-source
+# id: from-e52c
+# steps:
+# - choice:
+# when:
+# - expression: {}
+# id: when-064f
+# steps:
+# - multicast:
+# id: multicast-38ce
+# steps:
+# - bean:
+# id: bean-3b8e
+# - log:
+# message: ${body}
+# id: log-546f
+# - loop:
+# expression: {}
+# id: loop-4635
+# steps:
+# - convertBodyTo:
+# id: convertBodyTo-1cae
+# otherwise:
+# id: otherwise-0b09
+# steps:
+# - filter:
+# expression: {}
+# id: filter-a02b
+# id: choice-c53c
+# - doTry:
+# id: doTry-8fd5
+# doCatch:
+# - id: doCatch-1071
+# - id: doCatch-c38e
+# steps:
+# - routingSlip:
+# expression: {}
+# id: routingSlip-a85a
+#- route:
+# id: route-178a
+# from:
+# uri: kamelet:aws-cloudtrail-source
+# id: from-3e7d
+# steps:
+# - multicast:
+# id: multicast-eef7
+# steps:
+# - bean:
+# id: bean-a5ef
+# - aggregate:
+# id: aggregate-f5d8
+# - aggregate:
+# id: aggregate-b9e7
+# - aggregate:
+# id: aggregate-5eb8
+# - aggregate:
+# id: aggregate-c57e
+# - aggregate:
+# id: aggregate-1cd4
+# - bean:
+# id: bean-72a1
+# - choice:
+# when:
+# - expression: {}
+# id: when-a56b
+# otherwise:
+# id: otherwise-9f31
+# id: choice-1905
+#- route:
+# id: route-f435
+# from:
+# uri: kamelet:timer-source
+# id: from-e52c
+# steps:
+# - choice:
+# when:
+# - expression: {}
+# id: when-064f
+# steps:
+# - multicast:
+# id: multicast-38ce
+# steps:
+# - bean:
+# id: bean-3b8e
+# - log:
+# message: ${body}
+# id: log-546f
+# - loop:
+# expression: {}
+# id: loop-4635
+# steps:
+# - convertBodyTo:
+# id: convertBodyTo-1cae
+# otherwise:
+# id: otherwise-0b09
+# steps:
+# - filter:
+# expression: {}
+# id: filter-a02b
+# id: choice-c53c
+# - doTry:
+# id: doTry-8fd5
+# doCatch:
+# - id: doCatch-1071
+# - id: doCatch-c38e
+# steps:
+# - routingSlip:
+# expression: {}
+# id: routingSlip-a85a
+#- route:
+# id: route-178a
+# from:
+# uri: kamelet:aws-cloudtrail-source
+# id: from-3e7d
+# steps:
+# - multicast:
+# id: multicast-eef7
+# steps:
+# - bean:
+# id: bean-a5ef
+# - aggregate:
+# id: aggregate-f5d8
+# - aggregate:
+# id: aggregate-b9e7
+# - aggregate:
+# id: aggregate-5eb8
+# - aggregate:
+# id: aggregate-c57e
+# - aggregate:
+# id: aggregate-1cd4
+# - bean:
+# id: bean-72a1
+# - choice:
+# when:
+# - expression: {}
+# id: when-a56b
+# otherwise:
+# id: otherwise-9f31
+# id: choice-1905
+#- route:
+# id: route-f435
+# from:
+# uri: kamelet:timer-source
+# id: from-e52c
+# steps:
+# - choice:
+# when:
+# - expression: {}
+# id: when-064f
+# steps:
+# - multicast:
+# id: multicast-38ce
+# steps:
+# - bean:
+# id: bean-3b8e
+# - log:
+# message: ${body}
+# id: log-546f
+# - loop:
+# expression: {}
+# id: loop-4635
+# steps:
+# - convertBodyTo:
+# id: convertBodyTo-1cae
+# otherwise:
+# id: otherwise-0b09
+# steps:
+# - filter:
+# expression: {}
+# id: filter-a02b
+# id: choice-c53c
+# - doTry:
+# id: doTry-8fd5
+# doCatch:
+# - id: doCatch-1071
+# - id: doCatch-c38e
+# steps:
+# - routingSlip:
+# expression: {}
+# id: routingSlip-a85a
+#- route:
+# id: route-178a
+# from:
+# uri: kamelet:aws-cloudtrail-source
+# id: from-3e7d
+# steps:
+# - multicast:
+# id: multicast-eef7
+# steps:
+# - bean:
+# id: bean-a5ef
+# - aggregate:
+# id: aggregate-f5d8
+# - aggregate:
+# id: aggregate-b9e7
+# - aggregate:
+# id: aggregate-5eb8
+# - aggregate:
+# id: aggregate-c57e
+# - aggregate:
+# id: aggregate-1cd4
+# - bean:
+# id: bean-72a1
+# - choice:
+# when:
+# - expression: {}
+# id: when-a56b
+# otherwise:
+# id: otherwise-9f31
+# id: choice-1905
+#- route:
+# id: route-f435
+# from:
+# uri: kamelet:timer-source
+# id: from-e52c
+# steps:
+# - choice:
+# when:
+# - expression: {}
+# id: when-064f
+# steps:
+# - multicast:
+# id: multicast-38ce
+# steps:
+# - bean:
+# id: bean-3b8e
+# - log:
+# message: ${body}
+# id: log-546f
+# - loop:
+# expression: {}
+# id: loop-4635
+# steps:
+# - convertBodyTo:
+# id: convertBodyTo-1cae
+# otherwise:
+# id: otherwise-0b09
+# steps:
+# - filter:
+# expression: {}
+# id: filter-a02b
+# id: choice-c53c
+# - doTry:
+# id: doTry-8fd5
+# doCatch:
+# - id: doCatch-1071
+# - id: doCatch-c38e
+# steps:
+# - routingSlip:
+# expression: {}
+# id: routingSlip-a85a
+#- route:
+# id: route-178a
+# from:
+# uri: kamelet:aws-cloudtrail-source
+# id: from-3e7d
+# steps:
+# - multicast:
+# id: multicast-eef7
+# steps:
+# - bean:
+# id: bean-a5ef
+# - aggregate:
+# id: aggregate-f5d8
+# - aggregate:
+# id: aggregate-b9e7
+# - aggregate:
+# id: aggregate-5eb8
+# - aggregate:
+# id: aggregate-c57e
+# - aggregate:
+# id: aggregate-1cd4
+# - bean:
+# id: bean-72a1
+# - choice:
+# when:
+# - expression: {}
+# id: when-a56b
+# otherwise:
+# id: otherwise-9f31
+# id: choice-1905
diff --git a/karavan-designer/src/designer/route/DslConnections.tsx b/karavan-designer/src/designer/route/DslConnections.tsx
index 7a58e30f..a2505f4f 100644
--- a/karavan-designer/src/designer/route/DslConnections.tsx
+++ b/karavan-designer/src/designer/route/DslConnections.tsx
@@ -81,8 +81,6 @@ export const DslConnections = () => {
const lineX2 = fromX - r * 2 + 7;
const lineY2 = fromY;
- const imageX = incomingX - r + 5;
- const imageY = fromY - r + 5;
return (
<g key={pos.step.uuid + "-incoming"}>
<circle cx={incomingX} cy={fromY} r={r} className="circle-incoming"/>
diff --git a/karavan-designer/src/designer/route/DslElement.tsx b/karavan-designer/src/designer/route/DslElement.tsx
index 19554e03..5cdfabf5 100644
--- a/karavan-designer/src/designer/route/DslElement.tsx
+++ b/karavan-designer/src/designer/route/DslElement.tsx
@@ -45,22 +45,22 @@ interface Props {
export const DslElement = (props: Props) => {
const ref = React.createRef();
- const { deleteElement, selectElement, moveElement, onShowDeleteConfirmation, openSelector } = useRouteDesignerHook();
+ const {deleteElement, selectElement, moveElement, onShowDeleteConfirmation, openSelector} = useRouteDesignerHook();
const [integration, setIntegration] = useIntegrationStore((s) => [s.integration, s.setIntegration], shallow)
- const [showDeleteConfirmation, propertyOnly,deleteMessage, selectedUuids,clipboardSteps,selectedStep,showMoveConfirmation,
- setShowDeleteConfirmation,setPropertyOnly,setDeleteMessage, setSelectedUuids, setClipboardSteps,setPosition,setShowMoveConfirmation,
+ const [showDeleteConfirmation, propertyOnly, deleteMessage, selectedUuids, clipboardSteps, selectedStep, showMoveConfirmation,
+ setShowDeleteConfirmation, setPropertyOnly, setDeleteMessage, setSelectedUuids, setClipboardSteps, setPosition, setShowMoveConfirmation,
width, height, top, left] = useDesignerStore((s) =>
- [s.showDeleteConfirmation, s.propertyOnly,s.deleteMessage, s.selectedUuids,s.clipboardSteps, s.selectedStep, s.showMoveConfirmation,
- s.setShowDeleteConfirmation,s.setPropertyOnly,s.setDeleteMessage, s.setSelectedUuids, s.setClipboardSteps, s.setPosition, s.setShowMoveConfirmation,
+ [s.showDeleteConfirmation, s.propertyOnly, s.deleteMessage, s.selectedUuids, s.clipboardSteps, s.selectedStep, s.showMoveConfirmation,
+ s.setShowDeleteConfirmation, s.setPropertyOnly, s.setDeleteMessage, s.setSelectedUuids, s.setClipboardSteps, s.setPosition, s.setShowMoveConfirmation,
s.width, s.height, s.top, s.left], shallow)
const [isDragging, setIsDragging] = useState<boolean>(false);
const [isDraggedOver, setIsDraggedOver] = useState<boolean>(false);
const [moveElements, setMoveElements] = useState<[string | undefined, string | undefined]>([undefined, undefined]);
- function onOpenSelector (evt: React.MouseEvent, showSteps: boolean = true, isInsert: boolean = false) {
+ function onOpenSelector(evt: React.MouseEvent, showSteps: boolean = true, isInsert: boolean = false) {
evt.stopPropagation();
if (isInsert && props.parent) {
openSelector(props.parent.uuid, props.parent.dslName, showSteps, props.position);
@@ -69,24 +69,24 @@ export const DslElement = (props: Props) => {
}
}
- function onDeleteElement (evt: React.MouseEvent) {
+ function onDeleteElement(evt: React.MouseEvent) {
evt.stopPropagation();
onShowDeleteConfirmation(props.step.uuid);
}
- function onSelectElement (evt: React.MouseEvent) {
+ function onSelectElement(evt: React.MouseEvent) {
evt.stopPropagation();
selectElement(props.step);
}
- function dragElement (event: React.DragEvent<HTMLDivElement>, element: CamelElement) {
+ function dragElement(event: React.DragEvent<HTMLDivElement>, element: CamelElement) {
event.preventDefault();
event.stopPropagation();
setIsDraggedOver(false);
const sourceUuid = event.dataTransfer.getData("text/plain");
const targetUuid = element.uuid;
if (sourceUuid !== targetUuid) {
- if (element.hasSteps()){
+ if (element.hasSteps()) {
setShowMoveConfirmation(true);
setMoveElements([sourceUuid, targetUuid])
} else {
@@ -95,7 +95,7 @@ export const DslElement = (props: Props) => {
}
}
- function confirmMove (asChild: boolean) {
+ function confirmMove(asChild: boolean) {
const sourceUuid = moveElements[0];
const targetUuid = moveElements[1];
if (sourceUuid && targetUuid && sourceUuid !== targetUuid) {
@@ -104,16 +104,16 @@ export const DslElement = (props: Props) => {
}
}
- function cancelMove () {
+ function cancelMove() {
setShowMoveConfirmation(false);
setMoveElements([undefined, undefined]);
}
- function isSelected (): boolean {
+ function isSelected(): boolean {
return selectedUuids.includes(props.step.uuid);
}
- function hasBorder (): boolean {
+ function hasBorder(): boolean {
return (props.step?.hasSteps() && !['FromDefinition'].includes(props.step.dslName))
|| ['RouteConfigurationDefinition',
'RouteDefinition',
@@ -122,35 +122,35 @@ export const DslElement = (props: Props) => {
'SwitchDefinition'].includes(props.step.dslName);
}
- function isNotDraggable (): boolean {
+ function isNotDraggable(): boolean {
return ['FromDefinition', 'RouteConfigurationDefinition', 'RouteDefinition', 'WhenDefinition', 'OtherwiseDefinition'].includes(props.step.dslName);
}
- function isWide (): boolean {
+ function isWide(): boolean {
return ['RouteConfigurationDefinition', 'RouteDefinition', 'ChoiceDefinition', 'SwitchDefinition', 'MulticastDefinition', 'TryDefinition', 'CircuitBreakerDefinition']
.includes(props.step.dslName);
}
- function isAddStepButtonLeft (): boolean {
+ function isAddStepButtonLeft(): boolean {
return ['MulticastDefinition']
.includes(props.step.dslName);
}
- function isHorizontal (): boolean {
+ function isHorizontal(): boolean {
return ['MulticastDefinition'].includes(props.step.dslName);
}
- function isRoot (): boolean {
+ function isRoot(): boolean {
return ['RouteConfigurationDefinition', 'RouteDefinition'].includes(props.step?.dslName);
}
- function isInStepWithChildren () {
+ function isInStepWithChildren() {
const step: CamelElement = props.step;
const children = CamelDefinitionApiExt.getElementChildrenDefinition(step.dslName);
return children.filter((c: ChildElement) => c.name === 'steps' || c.multiple).length > 0 && props.inSteps;
}
- function getChildrenInfo (step: CamelElement): [boolean, number, boolean, number, number] {
+ function getChildrenInfo(step: CamelElement): [boolean, number, boolean, number, number] {
const children = CamelDefinitionApiExt.getElementChildrenDefinition(step.dslName);
const hasStepsField = children.filter((c: ChildElement) => c.name === 'steps').length === 1;
const stepsChildrenCount = children
@@ -170,7 +170,7 @@ export const DslElement = (props: Props) => {
return [hasStepsField, stepsChildrenCount, hasNonStepsFields, nonStepChildrenCount, childrenCount]
}
- function hasWideChildrenElement () {
+ function hasWideChildrenElement() {
const [hasStepsField, stepsChildrenCount, hasNonStepsFields, nonStepChildrenCount, childrenCount] = getChildrenInfo(props.step);
if (isHorizontal() && stepsChildrenCount > 1) return true;
else if (hasStepsField && stepsChildrenCount > 0 && hasNonStepsFields && nonStepChildrenCount > 0) return true;
@@ -179,13 +179,13 @@ export const DslElement = (props: Props) => {
else return false;
}
- function hasBorderOverSteps (step: CamelElement) {
+ function hasBorderOverSteps(step: CamelElement) {
const [hasStepsField, stepsChildrenCount, hasNonStepsFields, nonStepChildrenCount] = getChildrenInfo(step);
if (hasStepsField && stepsChildrenCount > 0 && hasNonStepsFields && nonStepChildrenCount > 0) return true;
else return false;
}
- function getHeaderStyle () {
+ function getHeaderStyle() {
const style: CSSProperties = {
width: isWide() ? "100%" : "",
fontWeight: isSelected() ? "bold" : "normal",
@@ -193,7 +193,7 @@ export const DslElement = (props: Props) => {
return style;
}
- function sendPosition (el: HTMLDivElement | null, isSelected: boolean) {
+ function sendPosition(el: HTMLDivElement | null, isSelected: boolean) {
const node = el;
if (node && el) {
const header = Array.from(node.childNodes.values()).filter((n: any) => n.classList.contains("header"))[0];
@@ -201,7 +201,6 @@ export const DslElement = (props: Props) => {
const headerIcon: any = Array.from(header.childNodes.values()).filter((n: any) => n.classList.contains("header-icon"))[0];
const headerRect = headerIcon.getBoundingClientRect();
const rect = el.getBoundingClientRect();
- // if ()
if (props.step.show) {
EventBus.sendPosition("add", props.step, props.parent, rect, headerRect, props.position, props.inSteps, isSelected);
} else {
@@ -211,7 +210,7 @@ export const DslElement = (props: Props) => {
}
}
- function getAvailableModels () { // TODO: make static list-of-values instead
+ function getAvailableModels() { // TODO: make static list-of-values instead
const step: CamelElement = props.step
return CamelUi.getSelectorModelsForParent(step.dslName, false);
}
@@ -222,7 +221,7 @@ export const DslElement = (props: Props) => {
);
- function getHeader () {
+ function getHeader() {
const step: CamelElement = props.step;
const parent = props.parent;
const inRouteConfiguration = parent !== undefined && parent.dslName === 'RouteConfigurationDefinition';
@@ -236,9 +235,9 @@ export const DslElement = (props: Props) => {
<div className={headerClasses} style={getHeaderStyle()}>
{!['RouteConfigurationDefinition', 'RouteDefinition'].includes(props.step.dslName) &&
<div
- // ref={el => sendPosition(el, isSelected())}
- className={"header-icon"}
- style={isWide() ? {width: ""} : {}}>
+ ref={el => sendPosition(el, isSelected())}
+ className={"header-icon"}
+ style={isWide() ? {width: ""} : {}}>
{CamelUi.getIconForElement(step)}
</div>
}
@@ -253,7 +252,7 @@ export const DslElement = (props: Props) => {
)
}
- function getHeaderTextWithTooltip (step: CamelElement) {
+ function getHeaderTextWithTooltip(step: CamelElement) {
const checkRequired = CamelUtil.checkRequired(step);
const title = (step as any).description ? (step as any).description : CamelUi.getElementTitle(props.step);
let className = hasWideChildrenElement() ? "text text-right" : "text text-bottom";
@@ -261,13 +260,13 @@ export const DslElement = (props: Props) => {
if (checkRequired[0]) return <Text className={className}>{title}</Text>
else return (
<Tooltip position={"right"} className="tooltip-required-field"
- content={checkRequired[1].map((text, i) =>(<div key={i}>{text}</div>))}>
+ content={checkRequired[1].map((text, i) => (<div key={i}>{text}</div>))}>
<Text className={className}>{title}</Text>
</Tooltip>
)
}
- function getHeaderWithTooltip (tooltip: string | undefined) {
+ function getHeaderWithTooltip(tooltip: string | undefined) {
return (
<Tooltip position={"left"}
content={<div>{tooltip}</div>}>
@@ -276,13 +275,13 @@ export const DslElement = (props: Props) => {
)
}
- function getHeaderTooltip (): string | undefined {
+ function getHeaderTooltip(): string | undefined {
if (CamelUi.isShowExpressionTooltip(props.step)) return CamelUi.getExpressionTooltip(props.step);
if (CamelUi.isShowUriTooltip(props.step)) return CamelUi.getUriTooltip(props.step);
return undefined;
}
- function getElementHeader () {
+ function getElementHeader() {
const tooltip = getHeaderTooltip();
if (tooltip !== undefined && !isDragging) {
return getHeaderWithTooltip(tooltip);
@@ -290,7 +289,7 @@ export const DslElement = (props: Props) => {
return getHeader();
}
- function getChildrenStyle () {
+ function getChildrenStyle() {
const style: CSSProperties = {
display: "flex",
flexDirection: "row",
@@ -298,7 +297,7 @@ export const DslElement = (props: Props) => {
return style;
}
- function getChildrenElementsStyle (child: ChildElement, notOnlySteps: boolean) {
+ function getChildrenElementsStyle(child: ChildElement, notOnlySteps: boolean) {
const step = props.step;
const isBorder = child.name === 'steps' && hasBorderOverSteps(step);
const style: CSSProperties = {
@@ -312,7 +311,7 @@ export const DslElement = (props: Props) => {
return style;
}
- function getChildElements () {
+ function getChildElements() {
const step: CamelElement = props.step;
let children: ChildElement[] = CamelDefinitionApiExt.getElementChildrenDefinition(step.dslName);
const notOnlySteps = children.filter(c => c.name === 'steps').length === 1
@@ -334,12 +333,13 @@ export const DslElement = (props: Props) => {
)
}
- function getChildDslElements (child: ChildElement, index: number, notOnlySteps: boolean) {
+ function getChildDslElements(child: ChildElement, index: number, notOnlySteps: boolean) {
const step = props.step;
const children: CamelElement[] = CamelDefinitionApiExt.getElementChildren(step, child);
if (children.length > 0) {
return (
- <div className={child.name + " has-child"} style={getChildrenElementsStyle(child, notOnlySteps)} key={step.uuid + "-child-" + index}>
+ <div className={child.name + " has-child"} style={getChildrenElementsStyle(child, notOnlySteps)}
+ key={step.uuid + "-child-" + index}>
{children.map((element, index) => (
<div key={step.uuid + child.className + index}>
<DslElement
@@ -354,7 +354,8 @@ export const DslElement = (props: Props) => {
)
} else if (child.name === 'steps') {
return (
- <div className={child.name + " has-child"} style={getChildrenElementsStyle(child, notOnlySteps)} key={step.uuid + "-child-" + index}>
+ <div className={child.name + " has-child"} style={getChildrenElementsStyle(child, notOnlySteps)}
+ key={step.uuid + "-child-" + index}>
{getAddStepButton()}
</div>
)
@@ -362,7 +363,7 @@ export const DslElement = (props: Props) => {
}
function getAddStepButton() {
- const { step} = props;
+ const {step} = props;
const hideAddButton = step.dslName === 'StepDefinition' && !CamelDisplayUtil.isStepDefinitionExpanded(integration, step.uuid, selectedUuids.at(0));
if (hideAddButton) return (<></>)
else return (
@@ -370,7 +371,7 @@ export const DslElement = (props: Props) => {
content={<div>{"Add step to " + CamelUi.getTitle(step)}</div>}>
<button type="button" aria-label="Add" onClick={e => onOpenSelector(e)}
className={isAddStepButtonLeft() ? "add-button add-button-left" : "add-button add-button-bottom"}>
- <AddIcon />
+ <AddIcon/>
</button>
</Tooltip>
)
@@ -384,7 +385,7 @@ export const DslElement = (props: Props) => {
aria-label="Add"
onClick={e => onOpenSelector(e, false)}
className={"add-element-button"}>
- <AddIcon />
+ <AddIcon/>
</button>
</Tooltip>
)
@@ -393,7 +394,8 @@ export const DslElement = (props: Props) => {
function getInsertElementButton() {
return (
<Tooltip position={"left"} content={<div>{"Insert element before"}</div>}>
- <button type="button" aria-label="Insert" onClick={e => onOpenSelector(e, true, true)} className={"insert-element-button"}><InsertIcon />
+ <button type="button" aria-label="Insert" onClick={e => onOpenSelector(e, true, true)}
+ className={"insert-element-button"}><InsertIcon/>
</button>
</Tooltip>
)
@@ -402,7 +404,8 @@ export const DslElement = (props: Props) => {
function getDeleteButton() {
return (
<Tooltip position={"right"} content={<div>{"Delete element"}</div>}>
- <button type="button" aria-label="Delete" onClick={e => onDeleteElement(e)} className="delete-button"><DeleteIcon /></button>
+ <button type="button" aria-label="Delete" onClick={e => onDeleteElement(e)} className="delete-button">
+ <DeleteIcon/></button>
</Tooltip>
)
}
@@ -417,7 +420,8 @@ export const DslElement = (props: Props) => {
><Flex direction={{default: "column"}}>
<div>Select move type:</div>
<Button key="place" variant="primary" onClick={event => confirmMove(false)}>Shift (target down)</Button>
- <Button key="child" variant="secondary" onClick={event => confirmMove(true)}>Move as target step</Button>
+ <Button key="child" variant="secondary" onClick={event => confirmMove(true)}>Move as target
+ step</Button>
<Button key="cancel" variant="tertiary" onClick={event => cancelMove()}>Cancel</Button>
</Flex>
diff --git a/karavan-designer/src/designer/route/RouteDesigner.tsx b/karavan-designer/src/designer/route/RouteDesigner.tsx
index d605044a..5e373f0d 100644
--- a/karavan-designer/src/designer/route/RouteDesigner.tsx
+++ b/karavan-designer/src/designer/route/RouteDesigner.tsx
@@ -64,10 +64,17 @@ export const RouteDesigner = () => {
}, [])
function changeGraphSize () {
+ console.log("changeGraphSize")
if (flowRef && flowRef.current) {
- const el = flowRef.current.getBoundingClientRect();
- if (width !== el.width || height !== el.height || top !== el.top || left !== el.left) {
- setPosition(el.width, el.height, el.top, el.left)
+ const el = flowRef.current;
+ const rect = el.getBoundingClientRect();
+ // if (width !== el.scrollWidth || height !== el.scrollHeight || top !== rect.top || left !== rect.left) {
+ if (width !== rect.width || height !== rect?.height || top !== rect.top || left !== rect.left) {
+ console.log("State", width, height, top, left)
+ console.log("Graph", rect.width, rect.height, rect.top, rect.left)
+ setPosition(rect.width, rect.height, rect.top, rect.left)
+ // setPosition(el?.scrollWidth, el?.scrollHeight, el?.scrollTop, el?.scrollLeft)
+ // setPosition(el?.scrollWidth, el?.scrollHeight, rect.top, rect.left)
}
}
}
@@ -76,10 +83,12 @@ export const RouteDesigner = () => {
const secondRef = useMutationsObserver(onChangeGraphSize);
const printerRef = useRef<HTMLDivElement | null>(null);
const flowRef = useRef<HTMLDivElement | null>(null);
- const contentRef: React.RefObject<HTMLDivElement> = useRef(null);
useEffect(()=>{
- window.addEventListener('resize', changeGraphSize);
+ // window.addEventListener('resize', changeGraphSize);
+ const interval = setInterval(() => {
+ changeGraphSize();
+ }, 500);
window.addEventListener('keydown', handleKeyDown);
window.addEventListener('keyup', handleKeyUp);
const commandSub = EventBus.onCommand()?.subscribe((command: Command) => onCommand(command, printerRef));
@@ -89,7 +98,8 @@ export const RouteDesigner = () => {
changeGraphSize();
}
return ()=> {
- window.removeEventListener('resize', changeGraphSize);
+ clearInterval(interval)
+ // window.removeEventListener('resize', changeGraphSize);
window.removeEventListener('keydown', handleKeyDown);
window.removeEventListener('keyup', handleKeyUp);
commandSub?.unsubscribe();
diff --git a/karavan-designer/src/designer/route/useRouteDesignerHook.tsx b/karavan-designer/src/designer/route/useRouteDesignerHook.tsx
index 4a69a10d..993e45ef 100644
--- a/karavan-designer/src/designer/route/useRouteDesignerHook.tsx
+++ b/karavan-designer/src/designer/route/useRouteDesignerHook.tsx
@@ -107,6 +107,7 @@ export const useRouteDesignerHook = () => {
}
function copyToClipboard (): void {
+ console.log("copyToClipboard1", selectedUuids)
const steps: CamelElement[] = []
selectedUuids.forEach(selectedUuid => {
const selectedElement = CamelDefinitionApiExt.findElementInIntegration(integration, selectedUuid);
@@ -115,10 +116,12 @@ export const useRouteDesignerHook = () => {
}
})
if (steps.length > 0) {
+ console.log("copyToClipboard2", steps)
setClipboardSteps(steps);
}
}
function pasteFromClipboard (): void {
+ console.log("pasteFromClipboard")
if (clipboardSteps.length === 1 && clipboardSteps[0]?.dslName === 'FromDefinition') {
const clone = CamelUtil.cloneStep(clipboardSteps[0], true);
const route = CamelDefinitionApi.createRouteDefinition({from: clone});
@@ -212,29 +215,30 @@ export const useRouteDesignerHook = () => {
}
const selectElement = (element: CamelElement) => {
- // const {shiftKeyPressed, selectedUuids, integration} = this.routeDesigner.state;
+ // console.log("selectElement", element, selectedUuids)
+ const uuids = [...selectedUuids];
let canNotAdd: boolean = false;
if (shiftKeyPressed) {
- const hasFrom = selectedUuids.map(e => CamelDefinitionApiExt.findElementInIntegration(integration, e)?.dslName === 'FromDefinition').filter(r => r).length > 0;
- canNotAdd = hasFrom || (selectedUuids.length > 0 && element.dslName === 'FromDefinition');
+ const hasFrom = uuids.map(e => CamelDefinitionApiExt.findElementInIntegration(integration, e)?.dslName === 'FromDefinition').filter(r => r).length > 0;
+ canNotAdd = hasFrom || (uuids.length > 0 && element.dslName === 'FromDefinition');
}
- const add = shiftKeyPressed && !selectedUuids.includes(element.uuid);
- const remove = shiftKeyPressed && selectedUuids.includes(element.uuid);
+ const add = shiftKeyPressed && !uuids.includes(element.uuid);
+ const remove = shiftKeyPressed && uuids.includes(element.uuid);
// TODO: do we need to change Intgration just for select????
const i = CamelDisplayUtil.setIntegrationVisibility(integration, element.uuid);
if (remove) {
- const index = selectedUuids.indexOf(element.uuid);
- selectedUuids.splice(index, 1);
+ const index = uuids.indexOf(element.uuid);
+ uuids.splice(index, 1);
} else if (add && !canNotAdd) {
- selectedUuids.push(element.uuid);
+ uuids.push(element.uuid);
}
- const uuid: string = selectedUuids.includes(element.uuid) ? element.uuid : selectedUuids.at(0) || '';
+ const uuid: string = uuids.includes(element.uuid) ? element.uuid : uuids.at(0) || '';
const selectedElement = shiftKeyPressed ? CamelDefinitionApiExt.findElementInIntegration(integration, uuid) : element;
setIntegration(i);
setSelectedStep(selectedElement);
- setSelectedUuids(shiftKeyPressed ? [...selectedUuids] : [element.uuid])
+ setSelectedUuids(shiftKeyPressed ? [...uuids] : [element.uuid])
}
//
// function unselectElement = (evt: React.MouseEvent<HTMLDivElement, MouseEvent>) => {