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 2022/03/30 17:15:31 UTC
[camel-karavan] branch main updated: Readme (#260)
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 2385c14 Readme (#260)
2385c14 is described below
commit 2385c14e3403c86f607619f5354285534593d744
Author: Marat Gubaidullin <ma...@gmail.com>
AuthorDate: Wed Mar 30 13:15:28 2022 -0400
Readme (#260)
---
README.md | 35 ++--
{screenshots => images}/create.png | Bin
{screenshots => images}/install.png | Bin
images/karavan-logo-dark.png | Bin 0 -> 23280 bytes
images/karavan-logo-dark.svg | 222 +++++++++++++++++++++
images/karavan-logo-light.png | Bin 0 -> 23131 bytes
images/karavan-logo-light.svg | 222 +++++++++++++++++++++
images/karavan-vscode.png | Bin 0 -> 523137 bytes
images/karavan-web.png | Bin 0 -> 434416 bytes
{screenshots => images}/karavan.png | Bin
{screenshots => images}/open.png | Bin
.../src/designer/route/DslSelector.tsx | 27 ++-
.../designer/route/property/DslPropertyField.tsx | 2 +-
karavan-designer/src/designer/utils/CamelUi.ts | 4 +-
screenshots/karavan-vscode.png | Bin 319708 -> 0 bytes
15 files changed, 483 insertions(+), 29 deletions(-)
diff --git a/README.md b/README.md
index 49e9186..f2c802b 100644
--- a/README.md
+++ b/README.md
@@ -1,33 +1,38 @@
-![Build](https://img.shields.io/badge/Build_with-Fun-orange.svg?style=for-the-badge)
-![Camel](https://img.shields.io/badge/-Camel-orange.svg?style=for-the-badge&)
-![Java](https://img.shields.io/badge/-Java-orange.svg?style=for-the-badge&logo=java)
-![Quarkus](https://img.shields.io/badge/-Quarkus-orange.svg?style=for-the-badge&logo=quarkus)
-![React](https://img.shields.io/badge/-React-orange.svg?style=for-the-badge&logo=react)
-![Typescript](https://img.shields.io/badge/-Typescript-orange.svg?style=for-the-badge&logo=typescript)
-![License](https://img.shields.io/badge/License-Apache-green.svg?style=for-the-badge&logo=apache)
+![Build](https://img.shields.io/badge/Build_with-Fun-blue.svg?style=for-the-badge)
+![Camel](https://img.shields.io/badge/-Camel-blue.svg?style=for-the-badge&)
+![Java](https://img.shields.io/badge/-Java-blue.svg?style=for-the-badge&logo=java)
+![Quarkus](https://img.shields.io/badge/-Quarkus-blue.svg?style=for-the-badge&logo=quarkus)
+![React](https://img.shields.io/badge/-React-blue.svg?style=for-the-badge&logo=react)
+![Typescript](https://img.shields.io/badge/-Typescript-blue.svg?style=for-the-badge&logo=typescript)
+![License](https://img.shields.io/badge/License-Apache-blue.svg?style=for-the-badge&logo=apache)
-# Apache Camel Karavan
-Karavan, an Integration Designer for Apache Camel makes integration easy and fun through visualization of integration pipeline.
+![karavan-logo](images/karavan-logo-dark.png#gh-dark-mode-only)
+![karavan-logo](images/karavan-logo-light.png#gh-light-mode-only)
+
+## Apache Camel Karavan
+Mastering Tool for Apache Camel makes integration easy and fun through the visualization of pipelines and integration with runtimes.
## Features
-* Read/Write Integration CRD (*.yaml with kind:Integration) and plain yaml routes
-* Kamelets source/sink/action
* Enterprise Integration Patterns DSL
-* Components consumer/producer
-* Integration with [JBang](https://www.jbang.dev)
+* REST DSL
+* Beans and dependencies
+* 100+ Kamelets source/sink/action
+* 300+ Components consumer/producer
+* Read/Write Integration CRD (*.yaml with kind:Integration) and plain yaml routes
+* Integration with [Camel-K](https://camel.apache.org/camel-k/next/index.html) and [JBang](https://www.jbang.dev)
## VS Code extension
Install Karavan VS Code extension from the [Marketplace](https://marketplace.visualstudio.com/items?itemName=camel-karavan.karavan)
-![karavan-vscode](screenshots/karavan-vscode.png)
+![karavan-vscode](images/karavan-vscode.png)
## Standalone application
Install Karavan Standalone command line: `docker pull ghcr.io/apache/camel-karavan:latest`
-![karavan](screenshots/karavan.png)
+![karavan-web](images/karavan-web.png)
## Project structure
1. Karavan-generator
diff --git a/screenshots/create.png b/images/create.png
similarity index 100%
rename from screenshots/create.png
rename to images/create.png
diff --git a/screenshots/install.png b/images/install.png
similarity index 100%
rename from screenshots/install.png
rename to images/install.png
diff --git a/images/karavan-logo-dark.png b/images/karavan-logo-dark.png
new file mode 100644
index 0000000..280e38d
Binary files /dev/null and b/images/karavan-logo-dark.png differ
diff --git a/images/karavan-logo-dark.svg b/images/karavan-logo-dark.svg
new file mode 100644
index 0000000..396ffc2
--- /dev/null
+++ b/images/karavan-logo-dark.svg
@@ -0,0 +1,222 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="1132.0219"
+ height="360.13885"
+ viewBox="0 0 1132.0219 360.13885"
+ version="1.1"
+ preserveAspectRatio="xMidYMid"
+ id="svg50"
+ sodipodi:docname="karavan-logo.svg"
+ inkscape:version="1.1.2 (b8e25be8, 2022-02-05)"
+ inkscape:export-filename="/Users/mgubaidu/Desktop/karavan-logo.png"
+ inkscape:export-xdpi="50.880001"
+ inkscape:export-ydpi="50.880001"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <sodipodi:namedview
+ id="namedview52"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ inkscape:pagecheckerboard="0"
+ showgrid="false"
+ inkscape:zoom="0.36"
+ inkscape:cx="309.72222"
+ inkscape:cy="229.16667"
+ inkscape:window-width="2560"
+ inkscape:window-height="1387"
+ inkscape:window-x="0"
+ inkscape:window-y="25"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg50"
+ width="1256px"
+ fit-margin-top="0"
+ fit-margin-left="0"
+ fit-margin-right="0"
+ fit-margin-bottom="0" />
+ <defs
+ id="defs31">
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient1351">
+ <stop
+ style="stop-color:#dcffff;stop-opacity:1"
+ offset="0"
+ id="stop1347" />
+ <stop
+ style="stop-color:#96d2e6;stop-opacity:1"
+ offset="1"
+ id="stop1349" />
+ </linearGradient>
+ <circle
+ id="path-1"
+ cx="128"
+ cy="128.00015"
+ r="128" />
+ <linearGradient
+ x1="-26.051073"
+ y1="271.33054"
+ x2="254.31573"
+ y2="0.047514945"
+ id="linearGradient-3"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ stop-color="#F69923"
+ offset="0%"
+ id="stop10"
+ style="stop-color:#4790bb;stop-opacity:1" />
+ <stop
+ stop-color="#F79A23"
+ offset="10.996%"
+ id="stop12"
+ style="stop-color:#64b7db;stop-opacity:1" />
+ <stop
+ stop-color="#E97826"
+ offset="94.502%"
+ id="stop14"
+ style="stop-color:#326ea0;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ x1="-32.163429"
+ y1="277.02905"
+ x2="259.33835"
+ y2="-5.0281582"
+ id="linearGradient-4"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ stop-color="#F69923"
+ offset="0%"
+ id="stop17" />
+ <stop
+ stop-color="#F79A23"
+ offset="8.0478%"
+ id="stop19" />
+ <stop
+ stop-color="#E97826"
+ offset="41.874%"
+ id="stop21" />
+ </linearGradient>
+ <linearGradient
+ x1="217.94496"
+ y1="67.504837"
+ x2="99.458817"
+ y2="247.00549"
+ id="linearGradient-5"
+ gradientTransform="scale(0.96441978,1.0368929)"
+ gradientUnits="userSpaceOnUse"
+ xlink:href="#linearGradient-4">
+ <stop
+ stop-color="#F6E423"
+ offset="0%"
+ id="stop24"
+ style="stop-color:#92d6d5;stop-opacity:1" />
+ <stop
+ stop-color="#F79A23"
+ offset="41.191%"
+ id="stop26"
+ style="stop-color:#79b7cc;stop-opacity:1" />
+ <stop
+ stop-color="#E97826"
+ offset="73.271%"
+ id="stop28"
+ style="stop-color:#5891c5;stop-opacity:1" />
+ </linearGradient>
+ <mask
+ id="mask-2"
+ fill="#ffffff">
+ <use
+ xlink:href="#path-1"
+ id="use33"
+ x="0"
+ y="0"
+ width="100%"
+ height="100%" />
+ </mask>
+ <mask
+ id="mask-2-7"
+ fill="#ffffff">
+ <use
+ xlink:href="#path-1"
+ id="use137"
+ x="0"
+ y="0"
+ width="100%"
+ height="100%" />
+ </mask>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1351"
+ id="linearGradient1345"
+ x1="233.12198"
+ y1="56.01545"
+ x2="2.2396212"
+ y2="242.78015"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <g
+ id="g36"
+ transform="translate(45.104634,56.041665)" />
+ <circle
+ fill="url(#linearGradient-3)"
+ fill-rule="nonzero"
+ mask="url(#mask-2)"
+ cx="127.99429"
+ cy="127.99429"
+ r="123.11053"
+ id="circle38"
+ style="fill:url(#linearGradient-3)"
+ transform="translate(45.104634,56.041665)" />
+ <g
+ id="g2266"
+ transform="translate(45.104634,56.041665)">
+ <path
+ d="m 98.043695,75.516752 c -1.750682,-0.002 -3.524167,0.0098 -5.292059,0.06144 -2.05519,0.06065 -4.816316,0.713182 -7.999625,1.784532 53.775199,40.834016 73.108199,114.497516 39.875049,178.514206 1.12865,0.0293 2.24876,0.12307 3.38456,0.12307 60.7361,0 111.49261,-42.32269 124.60904,-99.07129 C 214.07872,111.75077 161.80794,75.61511 98.043301,75.516654 Z"
+ fill="url(#linearGradient-5)"
+ fill-rule="nonzero"
+ opacity="0.75"
+ mask="url(#mask-2)"
+ id="path42"
+ style="fill:url(#linearGradient-5);fill-opacity:1" />
+ </g>
+ <path
+ d="M 84.752011,77.367742 C 66.89547,83.377158 32.82977,104.54579 0.07906091,132.8108 2.5662796,200.14549 57.107277,254.12351 124.62706,255.88195 157.86021,191.86526 138.528,118.20176 84.752011,77.367742 Z"
+ fill="#28170b"
+ fill-rule="nonzero"
+ opacity="0.75"
+ mask="url(#mask-2)"
+ id="path44"
+ style="fill:#1e4b7b;fill-opacity:1"
+ transform="translate(45.104634,56.041665)" />
+ <path
+ d="m 128.74719,54.004528 c -10.98485,5.495372 0,27.466068 0,27.466068 -32.973011,27.483724 -25.9672,74.429124 -64.435392,74.429124 -20.970343,0 -42.242226,-24.0768 -64.23273709,-38.82804 -0.28309669,3.47897 -0.78535974,6.97247 -0.78535974,10.52442 0,48.09504 26.26287383,89.92436 65.41967783,111.89721 10.952683,-1.3796 22.838636,-4.11444 31.050991,-9.59255 43.14527,-28.76482 53.85703,-83.49096 71.48633,-109.92509 10.97897,-16.492 62.43429,-15.06102 65.90679,-22.01013 5.50126,-10.9907 [...]
+ fill="#ffffff"
+ fill-rule="nonzero"
+ mask="url(#mask-2-7)"
+ id="path150"
+ transform="translate(44.335601,55.908568)"
+ style="fill:url(#linearGradient1345);fill-opacity:1" />
+ <path
+ d="M 128,256 C 57.307552,256 0,198.69245 0,128 0,57.307552 57.307552,0 128,0 c 70.69245,0 128,57.307552 128,128 0,70.69245 -57.30755,128 -128,128 z m 0,-9.76795 C 193.29776,246.23205 246.23205,193.29776 246.23205,128 246.23205,62.702243 193.29776,9.7679529 128,9.7679529 62.702243,9.7679529 9.7679529,62.702243 9.7679529,128 9.7679529,193.29776 62.702243,246.23205 128,246.23205 Z"
+ fill="url(#linearGradient-4)"
+ fill-rule="nonzero"
+ mask="url(#mask-2)"
+ id="path40"
+ style="fill:#2d4150;fill-opacity:1"
+ transform="matrix(1.020345,0,0,1.020345,41.979634,53.958328)" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:213.949px;line-height:1.25;font-family:'M PLUS 1 Code';-inkscape-font-specification:'M PLUS 1 Code, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#96d2e6;fill-opacity:1;stroke:none;stroke-width:5.3487"
+ x="346.91318"
+ y="259.39081"
+ id="text3018"><tspan
+ sodipodi:role="line"
+ id="tspan3016"
+ x="346.91318"
+ y="259.39081"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:213.949px;font-family:'M PLUS 1 Code';-inkscape-font-specification:'M PLUS 1 Code, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#96d2e6;fill-opacity:1;stroke-width:5.3487">Karavan</tspan></text>
+</svg>
diff --git a/images/karavan-logo-light.png b/images/karavan-logo-light.png
new file mode 100644
index 0000000..a80c02e
Binary files /dev/null and b/images/karavan-logo-light.png differ
diff --git a/images/karavan-logo-light.svg b/images/karavan-logo-light.svg
new file mode 100644
index 0000000..82a46b5
--- /dev/null
+++ b/images/karavan-logo-light.svg
@@ -0,0 +1,222 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="1109.375"
+ height="344.79166"
+ viewBox="0 0 1109.375 344.79166"
+ version="1.1"
+ preserveAspectRatio="xMidYMid"
+ id="svg50"
+ sodipodi:docname="karavan-logo-light.svg"
+ inkscape:version="1.1.2 (b8e25be8, 2022-02-05)"
+ inkscape:export-filename="/Users/mgubaidu/projects/oss/camel-karavan/images/karavan-logo-light.png"
+ inkscape:export-xdpi="50.880001"
+ inkscape:export-ydpi="50.880001"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <sodipodi:namedview
+ id="namedview52"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ inkscape:pagecheckerboard="0"
+ showgrid="false"
+ inkscape:zoom="0.96"
+ inkscape:cx="276.5625"
+ inkscape:cy="293.22917"
+ inkscape:window-width="2560"
+ inkscape:window-height="1387"
+ inkscape:window-x="0"
+ inkscape:window-y="25"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg50"
+ width="1256px"
+ fit-margin-top="0"
+ fit-margin-left="0"
+ fit-margin-right="0"
+ fit-margin-bottom="0" />
+ <defs
+ id="defs31">
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient1351">
+ <stop
+ style="stop-color:#dcffff;stop-opacity:1"
+ offset="0"
+ id="stop1347" />
+ <stop
+ style="stop-color:#96d2e6;stop-opacity:1"
+ offset="1"
+ id="stop1349" />
+ </linearGradient>
+ <circle
+ id="path-1"
+ cx="128"
+ cy="128.00015"
+ r="128" />
+ <linearGradient
+ x1="-26.051073"
+ y1="271.33054"
+ x2="254.31573"
+ y2="0.047514945"
+ id="linearGradient-3"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ stop-color="#F69923"
+ offset="0%"
+ id="stop10"
+ style="stop-color:#4790bb;stop-opacity:1" />
+ <stop
+ stop-color="#F79A23"
+ offset="10.996%"
+ id="stop12"
+ style="stop-color:#64b7db;stop-opacity:1" />
+ <stop
+ stop-color="#E97826"
+ offset="94.502%"
+ id="stop14"
+ style="stop-color:#326ea0;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ x1="-32.163429"
+ y1="277.02905"
+ x2="259.33835"
+ y2="-5.0281582"
+ id="linearGradient-4"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ stop-color="#F69923"
+ offset="0%"
+ id="stop17" />
+ <stop
+ stop-color="#F79A23"
+ offset="8.0478%"
+ id="stop19" />
+ <stop
+ stop-color="#E97826"
+ offset="41.874%"
+ id="stop21" />
+ </linearGradient>
+ <linearGradient
+ x1="217.94496"
+ y1="67.504837"
+ x2="99.458817"
+ y2="247.00549"
+ id="linearGradient-5"
+ gradientTransform="scale(0.96441978,1.0368929)"
+ gradientUnits="userSpaceOnUse"
+ xlink:href="#linearGradient-4">
+ <stop
+ stop-color="#F6E423"
+ offset="0%"
+ id="stop24"
+ style="stop-color:#92d6d5;stop-opacity:1" />
+ <stop
+ stop-color="#F79A23"
+ offset="41.191%"
+ id="stop26"
+ style="stop-color:#79b7cc;stop-opacity:1" />
+ <stop
+ stop-color="#E97826"
+ offset="73.271%"
+ id="stop28"
+ style="stop-color:#5891c5;stop-opacity:1" />
+ </linearGradient>
+ <mask
+ id="mask-2"
+ fill="#ffffff">
+ <use
+ xlink:href="#path-1"
+ id="use33"
+ x="0"
+ y="0"
+ width="100%"
+ height="100%" />
+ </mask>
+ <mask
+ id="mask-2-7"
+ fill="#ffffff">
+ <use
+ xlink:href="#path-1"
+ id="use137"
+ x="0"
+ y="0"
+ width="100%"
+ height="100%" />
+ </mask>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1351"
+ id="linearGradient1345"
+ x1="233.12198"
+ y1="56.01545"
+ x2="2.2396212"
+ y2="242.78015"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <g
+ id="g36"
+ transform="translate(54.166668,36.458182)" />
+ <circle
+ fill="url(#linearGradient-3)"
+ fill-rule="nonzero"
+ mask="url(#mask-2)"
+ cx="127.99429"
+ cy="127.99429"
+ r="123.11053"
+ id="circle38"
+ style="fill:url(#linearGradient-3)"
+ transform="translate(54.166668,36.458182)" />
+ <g
+ id="g2266"
+ transform="translate(54.166668,36.458182)">
+ <path
+ d="m 98.043695,75.516752 c -1.750682,-0.002 -3.524167,0.0098 -5.292059,0.06144 -2.05519,0.06065 -4.816316,0.713182 -7.999625,1.784532 53.775199,40.834016 73.108199,114.497516 39.875049,178.514206 1.12865,0.0293 2.24876,0.12307 3.38456,0.12307 60.7361,0 111.49261,-42.32269 124.60904,-99.07129 C 214.07872,111.75077 161.80794,75.61511 98.043301,75.516654 Z"
+ fill="url(#linearGradient-5)"
+ fill-rule="nonzero"
+ opacity="0.75"
+ mask="url(#mask-2)"
+ id="path42"
+ style="fill:url(#linearGradient-5);fill-opacity:1" />
+ </g>
+ <path
+ d="M 84.752011,77.367742 C 66.89547,83.377158 32.82977,104.54579 0.07906091,132.8108 2.5662796,200.14549 57.107277,254.12351 124.62706,255.88195 157.86021,191.86526 138.528,118.20176 84.752011,77.367742 Z"
+ fill="#28170b"
+ fill-rule="nonzero"
+ opacity="0.75"
+ mask="url(#mask-2)"
+ id="path44"
+ style="fill:#1e4b7b;fill-opacity:1"
+ transform="translate(54.166668,36.458182)" />
+ <path
+ d="m 128.74719,54.004528 c -10.98485,5.495372 0,27.466068 0,27.466068 -32.973011,27.483724 -25.9672,74.429124 -64.435392,74.429124 -20.970343,0 -42.242226,-24.0768 -64.23273709,-38.82804 -0.28309669,3.47897 -0.78535974,6.97247 -0.78535974,10.52442 0,48.09504 26.26287383,89.92436 65.41967783,111.89721 10.952683,-1.3796 22.838636,-4.11444 31.050991,-9.59255 43.14527,-28.76482 53.85703,-83.49096 71.48633,-109.92509 10.97897,-16.492 62.43429,-15.06102 65.90679,-22.01013 5.50126,-10.9907 [...]
+ fill="#ffffff"
+ fill-rule="nonzero"
+ mask="url(#mask-2-7)"
+ id="path150"
+ transform="translate(53.397635,36.325085)"
+ style="fill:url(#linearGradient1345);fill-opacity:1" />
+ <path
+ d="M 128,256 C 57.307552,256 0,198.69245 0,128 0,57.307552 57.307552,0 128,0 c 70.69245,0 128,57.307552 128,128 0,70.69245 -57.30755,128 -128,128 z m 0,-9.76795 C 193.29776,246.23205 246.23205,193.29776 246.23205,128 246.23205,62.702243 193.29776,9.7679529 128,9.7679529 62.702243,9.7679529 9.7679529,62.702243 9.7679529,128 9.7679529,193.29776 62.702243,246.23205 128,246.23205 Z"
+ fill="url(#linearGradient-4)"
+ fill-rule="nonzero"
+ mask="url(#mask-2)"
+ id="path40"
+ style="fill:#2d4150;fill-opacity:1"
+ transform="matrix(1.020345,0,0,1.020345,51.041668,34.374845)" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:213.949px;line-height:1.25;font-family:'M PLUS 1 Code';-inkscape-font-specification:'M PLUS 1 Code, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#1e4b7b;fill-opacity:1;stroke:none;stroke-width:5.3487"
+ x="355.97519"
+ y="239.80733"
+ id="text3018"><tspan
+ sodipodi:role="line"
+ id="tspan3016"
+ x="355.97519"
+ y="239.80733"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:213.949px;font-family:'M PLUS 1 Code';-inkscape-font-specification:'M PLUS 1 Code, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#1e4b7b;fill-opacity:1;stroke-width:5.3487">Karavan</tspan></text>
+</svg>
diff --git a/images/karavan-vscode.png b/images/karavan-vscode.png
new file mode 100644
index 0000000..106f4a5
Binary files /dev/null and b/images/karavan-vscode.png differ
diff --git a/images/karavan-web.png b/images/karavan-web.png
new file mode 100644
index 0000000..b76f8e7
Binary files /dev/null and b/images/karavan-web.png differ
diff --git a/screenshots/karavan.png b/images/karavan.png
similarity index 100%
rename from screenshots/karavan.png
rename to images/karavan.png
diff --git a/screenshots/open.png b/images/open.png
similarity index 100%
rename from screenshots/open.png
rename to images/open.png
diff --git a/karavan-designer/src/designer/route/DslSelector.tsx b/karavan-designer/src/designer/route/DslSelector.tsx
index 2cb6456..797fe1f 100644
--- a/karavan-designer/src/designer/route/DslSelector.tsx
+++ b/karavan-designer/src/designer/route/DslSelector.tsx
@@ -42,7 +42,7 @@ interface State {
export class DslSelector extends React.Component<Props, State> {
public state: State = {
- tabIndex: CamelUi.getSelectorModelTypes(this.props.parentDsl, this.props.showSteps)[0],
+ tabIndex: CamelUi.getSelectorModelTypes(this.props.parentDsl, this.props.showSteps)[0][0],
};
@@ -52,7 +52,7 @@ export class DslSelector extends React.Component<Props, State> {
componentDidUpdate = (prevProps: Readonly<Props>, prevState: Readonly<State>, snapshot?: any) => {
if (prevProps.parentDsl !== this.props.parentDsl) {
- this.setState({tabIndex: CamelUi.getSelectorModelTypes(this.props.parentDsl, this.props.showSteps)[0]});
+ this.setState({tabIndex: CamelUi.getSelectorModelTypes(this.props.parentDsl, this.props.showSteps)[0][0]});
}
}
@@ -131,15 +131,20 @@ export class DslSelector extends React.Component<Props, State> {
<PageSection variant={this.props.dark ? "darker" : "light"}>
{this.searchInput()}
<Tabs style={{overflow: 'hidden'}} activeKey={this.state.tabIndex} onSelect={this.selectTab}>
- {CamelUi.getSelectorModelTypes(parentDsl, this.props.showSteps).map((label: any, index: number) => (
- <Tab eventKey={label} key={"tab-" + label} title={<TabTitleText>{CamelUtil.capitalizeName(label)}</TabTitleText>}>
- <Gallery key={"gallery-" + label} hasGutter className="dsl-gallery">
- {CamelUi.getSelectorModelsForParentFiltered(parentDsl, label, this.props.showSteps)
- .filter((dsl: DslMetaModel) => this.checkFilter(dsl))
- .map((dsl: DslMetaModel, index: number) => this.getCard(dsl, index))}
- </Gallery>
- </Tab>
- ))}
+ {CamelUi.getSelectorModelTypes(parentDsl, this.props.showSteps).map((label: [string, number], index: number) => {
+ const labelText = label[0];
+ const count = label[1];
+ const title = ['kamelet', 'component'].includes(labelText.toLowerCase()) ? labelText+"s (" + count + ")" : labelText;
+ return (
+ <Tab eventKey={labelText} key={"tab-" + labelText} title={<TabTitleText>{CamelUtil.capitalizeName(title)}</TabTitleText>}>
+ <Gallery key={"gallery-" + labelText} hasGutter className="dsl-gallery">
+ {CamelUi.getSelectorModelsForParentFiltered(parentDsl, labelText, this.props.showSteps)
+ .filter((dsl: DslMetaModel) => this.checkFilter(dsl))
+ .map((dsl: DslMetaModel, index: number) => this.getCard(dsl, index))}
+ </Gallery>
+ </Tab>
+ )
+ })}
</Tabs>
</PageSection>
);
diff --git a/karavan-designer/src/designer/route/property/DslPropertyField.tsx b/karavan-designer/src/designer/route/property/DslPropertyField.tsx
index 9dec9b1..4408ab5 100644
--- a/karavan-designer/src/designer/route/property/DslPropertyField.tsx
+++ b/karavan-designer/src/designer/route/property/DslPropertyField.tsx
@@ -44,7 +44,7 @@ import {ObjectField} from "./ObjectField";
import {CamelDefinitionApi} from "karavan-core/lib/api/CamelDefinitionApi";
import AddIcon from "@patternfly/react-icons/dist/js/icons/plus-circle-icon";
import {MediaTypes} from "../../utils/MediaTypes";
-import {ComponentProperty} from "../../../../../karavan-core/lib/model/ComponentModels";
+import {ComponentProperty} from "karavan-core/lib/model/ComponentModels";
interface Props {
property: PropertyMeta,
diff --git a/karavan-designer/src/designer/utils/CamelUi.ts b/karavan-designer/src/designer/utils/CamelUi.ts
index 5dad20c..7d919df 100644
--- a/karavan-designer/src/designer/utils/CamelUi.ts
+++ b/karavan-designer/src/designer/utils/CamelUi.ts
@@ -79,14 +79,14 @@ export class RouteToCreate {
export class CamelUi {
- static getSelectorModelTypes = (parentDsl: string | undefined, showSteps: boolean = true): string[] => {
+ static getSelectorModelTypes = (parentDsl: string | undefined, showSteps: boolean = true): [string, number][] => {
const navs = CamelUi.getSelectorModelsForParent(parentDsl, showSteps).map(dsl => dsl.navigation.split(","))
.reduce((accumulator, value) => accumulator.concat(value), [])
.filter((nav, i, arr) => arr.findIndex(l => l === nav) === i)
.filter((nav, i, arr) => ![ 'dataformat'].includes(nav));
const connectorNavs = ['routing', "transformation", "error", "configuration", "endpoint", "kamelet", "component"];
const eipLabels = connectorNavs.filter(n => navs.includes(n));
- return eipLabels;
+ return eipLabels.map(label => [label, this.getSelectorModelsForParentFiltered(parentDsl, label, true).length]);
}
static dslHasSteps = (className: string): boolean => {
diff --git a/screenshots/karavan-vscode.png b/screenshots/karavan-vscode.png
deleted file mode 100644
index 036d10c..0000000
Binary files a/screenshots/karavan-vscode.png and /dev/null differ