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

commit 13902116852b1116bd57e27487a8c336feabc0eb
Author: Marat Gubaidullin <marat.gubaidul...@gmail.com>
AuthorDate: Tue Feb 28 14:56:35 2023 -0500

    Copy files from designer
---
 .../main/webui/src/components/ComponentCard.tsx    |  12 ++-
 .../src/main/webui/src/designer/karavan.css        | 102 +++++++++++++++------
 .../main/webui/src/designer/route/DslSelector.tsx  |  23 +++--
 .../src/main/webui/src/designer/utils/CamelUi.tsx  |   2 +
 .../main/webui/src/designer/utils/DslMetaModel.ts  |   1 +
 karavan-app/src/main/webui/src/eip/EipCard.tsx     |   7 +-
 .../src/main/webui/src/kamelets/KameletCard.tsx    |  12 ++-
 7 files changed, 110 insertions(+), 49 deletions(-)

diff --git a/karavan-app/src/main/webui/src/components/ComponentCard.tsx 
b/karavan-app/src/main/webui/src/components/ComponentCard.tsx
index ba18bd4f..83521a66 100644
--- a/karavan-app/src/main/webui/src/components/ComponentCard.tsx
+++ b/karavan-app/src/main/webui/src/components/ComponentCard.tsx
@@ -16,7 +16,7 @@
  */
 import React from 'react';
 import {
-    CardHeader, Card, CardTitle, CardBody, CardFooter,Badge
+    CardHeader, Card, CardTitle, CardBody, CardFooter, Badge, Text
 } from '@patternfly/react-core';
 import '../designer/karavan.css';
 import {camelIcon, CamelUi} from "../designer/utils/CamelUi";
@@ -48,14 +48,18 @@ export class ComponentCard extends React.Component<Props, 
State> {
             <Card isHoverable isCompact key={component.component.name} 
className="kamelet-card"
                 onClick={event => this.click(event)}
             >
+                <CardHeader className="header-labels">
+                    {component.component.supportType === 'Supported' && <Badge 
isRead className="support-type 
labels">{component.component.supportType}</Badge>}
+                    <Badge isRead className="support-level 
labels">{component.component.supportLevel}</Badge>
+                </CardHeader>
                 <CardHeader>
                     {CamelUi.getIconFromSource(camelIcon)}
+                    <CardTitle>{component.component.title}</CardTitle>
                 </CardHeader>
-                <CardTitle>{component.component.title}</CardTitle>
                 <CardBody>{component.component.description}</CardBody>
-                <CardFooter>
+                <CardFooter className="footer-labels">
                     <Badge isRead 
className="labels">{component.component.label}</Badge>
-                    <Badge isRead 
className="version">{component.component.version}</Badge>
+                    <Badge isRead className="version 
labels">{component.component.version}</Badge>
                 </CardFooter>
             </Card>
         );
diff --git a/karavan-app/src/main/webui/src/designer/karavan.css 
b/karavan-app/src/main/webui/src/designer/karavan.css
index 3598b1ab..4e714245 100644
--- a/karavan-app/src/main/webui/src/designer/karavan.css
+++ b/karavan-app/src/main/webui/src/designer/karavan.css
@@ -43,9 +43,10 @@
     justify-content: space-between;
 }
 
-.karavan .page-header .top-toolbar .pf-c-page__header-tools{
+.karavan .page-header .top-toolbar .pf-c-page__header-tools {
     margin-right: 0;
 }
+
 .karavan .page-header .top-toolbar {
     width: 100%;
 }
@@ -124,10 +125,6 @@
     height: 160px;
 }
 
-.kamelets-page .kamelet-card .pf-c-card__header {
-    /*padding-right: 6px;*/
-}
-
 .kamelets-page .kamelet-card .pf-c-card__header .custom {
     margin-left: auto;
 }
@@ -140,12 +137,14 @@
 .kamelets-page .kamelet-card .pf-c-card__body {
     overflow: hidden;
     position: relative;
+    line-height: 1.6em;
 }
 
 .kamelets-page .kamelet-card .icon {
     height: 24px;
     margin-top: auto;
     margin-bottom: auto;
+    margin-right: 3px;
     border: none;
     -webkit-user-select: none;
     -khtml-user-select: none;
@@ -154,12 +153,33 @@
     user-select: none;
 }
 
-.karavan .kamelets-page .kamelet-card .pf-c-card__footer {
+.kamelets-page .kamelet-card .header-labels {
+    padding: 5px;
+    display: flex;
+    flex-direction: row;
+    justify-content: flex-end;
+}
+
+.kamelets-page .kamelet-card .footer-labels {
+    padding: 5px;
     display: flex;
     flex-direction: row;
     justify-content: space-between;
 }
 
+.kamelets-page .kamelet-card .version,
+.kamelets-page .kamelet-card .support-type,
+.kamelets-page .kamelet-card .support-level {
+    white-space: nowrap;
+}
+
+.kamelets-page .kamelet-card .labels {
+    opacity: 0.5;
+}
+
+.kamelets-page .kamelet-card:hover .labels {
+    opacity: 1;
+}
 
 /*kamelet modal*/
 .kamelet-modal-card .pf-c-card__header {
@@ -277,7 +297,7 @@
     flex-direction: row;
 }
 
-.karavan .properties .headers .top h1{
+.karavan .properties .headers .top h1 {
     width: 100%;
     margin-top: auto;
     margin-bottom: auto;
@@ -321,16 +341,17 @@
 .karavan .properties .input-group .pf-c-chip-group .pf-c-chip-group__list,
 .karavan .properties .input-group .pf-c-chip-group .pf-c-chip-group__list 
.pf-c-chip-group__list-item,
 .karavan .properties .input-group .pf-c-chip-group .pf-c-chip-group__main {
-    display:block;
+    display: block;
 }
 
 .karavan .properties .input-group .pf-c-chip-group {
     margin-left: 0;
 }
 
-.karavan .properties .input-group .pf-c-chip-group .pf-c-chip .pf-c-chip__text{
+.karavan .properties .input-group .pf-c-chip-group .pf-c-chip .pf-c-chip__text 
{
     max-width: inherit;
 }
+
 .karavan .properties .input-group .pf-c-chip-group .pf-c-chip {
     width: 100%;
 }
@@ -340,8 +361,8 @@
     margin-top: auto;
 }
 
-.karavan .properties .chip .pf-c-button{
-    position:absolute;
+.karavan .properties .chip .pf-c-button {
+    position: absolute;
     right: 0;
 }
 
@@ -464,7 +485,7 @@
 .karavan .properties .expression .pf-c-select__menu-wrapper,
 .karavan .properties .object .pf-c-select__menu-wrapper,
 .karavan .properties .dataformat .pf-c-select__menu-wrapper,
-.karavan .properties .parameters .pf-c-select__menu-wrapper{
+.karavan .properties .parameters .pf-c-select__menu-wrapper {
     width: 350px;
 }
 
@@ -487,7 +508,7 @@
 }
 
 .karavan .properties .delete-button {
-    color:  #909090;
+    color: #909090;
 }
 
 .karavan .properties .pf-c-expandable-section__toggle {
@@ -592,7 +613,11 @@
     fill: transparent;
 }
 
-@keyframes dashdraw{0%{stroke-dashoffset:10}}
+@keyframes dashdraw {
+    0% {
+        stroke-dashoffset: 10
+    }
+}
 
 .karavan .dsl-page .flows .step-element {
     align-items: center;
@@ -617,14 +642,14 @@
 .karavan .dsl-page .flows .children {
     display: flex;
     flex-wrap: wrap;
-    flex-wrap:nowrap;
+    flex-wrap: nowrap;
     gap: 6px;
 }
 
 .karavan .dsl-page .flows .has-child {
     display: flex;
     flex-direction: column;
-    flex-wrap:nowrap;
+    flex-wrap: nowrap;
     gap: 6px;
 }
 
@@ -700,16 +725,19 @@
     display: flex;
     flex-direction: row;
 }
+
 .karavan .step-element .header .spacer {
     width: 50%
 }
+
 .karavan .step-element .header .text-bottom {
     background-color: rgba(255, 255, 255, 0.5);
 }
+
 .karavan .step-element .header .text-right {
     padding-left: 17px;
     width: 50%;
-    text-align:start;
+    text-align: start;
 }
 
 .karavan .step-element .header .header-text-required {
@@ -867,7 +895,7 @@
 }
 
 
-.dsl-modal .search .pf-c-form__group-label{
+.dsl-modal .search .pf-c-form__group-label {
     padding: 0;
     margin: auto;
 }
@@ -896,16 +924,23 @@
     flex-wrap: wrap;
 }
 
-.dsl-modal .version {
-    opacity: 0.5;
-    white-space: nowrap;
-    margin-left: auto;
+.dsl-modal .pf-c-card.pf-m-compact .header-labels {
+    padding: 5px;
+    display: flex;
+    flex-direction: row;
+    justify-content: flex-end;
+}
+
+.dsl-modal .pf-c-card.pf-m-compact .footer-labels {
+    padding: 5px;
+    display: flex;
+    flex-direction: row;
+    justify-content: space-between;
 }
 
+.dsl-modal .version,
+.dsl-modal .support-type,
 .dsl-modal .support-level {
-    position: absolute;
-    right: 6px;
-    top: 6px;
     white-space: nowrap;
 }
 
@@ -913,6 +948,10 @@
     opacity: 0.5;
 }
 
+.dsl-modal .dsl-card:hover .labels {
+    opacity: 1;
+}
+
 .move-modal {
     width: 270px !important;
 }
@@ -920,6 +959,7 @@
 .move-modal .pf-c-modal-box__body {
     margin-right: 0 !important;
 }
+
 .move-modal .pf-m-plain {
     display: none;
 }
@@ -1128,13 +1168,14 @@
 .karavan .yaml-page {
     height: 100px;
 }
+
 /*Exception*/
 /*Template*/
 /*Error*/
 
 .karavan .templates-page,
 .karavan .exception-page,
-.karavan .error-page{
+.karavan .error-page {
     flex: 1;
     overflow: auto;
 }
@@ -1163,6 +1204,7 @@
     display: flex;
     flex-direction: row;
 }
+
 .karavan .tools-section .tools .header .labels {
     height: fit-content;
     margin-left: 3px;
@@ -1185,8 +1227,7 @@
 
 .karavan .project-builder .pf-c-tabs__link,
 .karavan .project-builder .pf-c-card__title,
-.karavan .project-builder .profile-caption
-{
+.karavan .project-builder .profile-caption {
     font-size: 14px;
 }
 
@@ -1238,6 +1279,7 @@
     gap: 10px;
     padding: 10px;
 }
+
 .karavan .project-builder .center-column {
     width: 100%;
     display: flex;
@@ -1262,18 +1304,22 @@
     flex-direction: column;
     justify-content: space-around;
 }
+
 .karavan .project-builder .project-properties td {
     padding: 0;
     margin: 0;
 }
+
 .karavan .project-builder .project-properties td,
 .karavan .project-builder .project-properties tr {
     border: none;
 }
+
 .karavan .project-builder .project-properties .delete-button {
     padding: 0 0 0 6px;
     margin: 0;
 }
+
 .karavan .project-builder .add-button {
     width: fit-content;
     margin-top: 6px;
diff --git a/karavan-app/src/main/webui/src/designer/route/DslSelector.tsx 
b/karavan-app/src/main/webui/src/designer/route/DslSelector.tsx
index dd68403b..f394a92e 100644
--- a/karavan-app/src/main/webui/src/designer/route/DslSelector.tsx
+++ b/karavan-app/src/main/webui/src/designer/route/DslSelector.tsx
@@ -88,28 +88,31 @@ export class DslSelector extends React.Component<Props, 
State> {
         return (
             <Card key={dsl.dsl + index} isHoverable isCompact 
className="dsl-card"
                   onClick={event => this.selectDsl(event, dsl)}>
+                <CardHeader className="header-labels">
+                    {dsl.supportType === 'Supported' && <Badge isRead 
className="support-type labels">{dsl.supportType}</Badge>}
+                    <Badge isRead className="support-level 
labels">{dsl.supportLevel}</Badge>
+                </CardHeader>
                 <CardHeader>
                     {CamelUi.getIconForDsl(dsl)}
                     <Text>{dsl.title}</Text>
-                    {dsl.supportLevel && dsl.supportLevel === 'Preview' && 
<Badge isRead className="support-level">{dsl.supportLevel}</Badge>}
                 </CardHeader>
                 <CardBody>
                     <Text>{dsl.description}</Text>
                 </CardBody>
-                <CardFooter>
                     {dsl.navigation.toLowerCase() === "kamelet"
-                        && <div className="footer" style={{justifyContent: 
"space-between"}}>
+                        && <CardFooter className="footer-labels">
                             <Badge isRead 
className="labels">{dsl.labels}</Badge>
-                            <Badge isRead 
className="version">{dsl.version}</Badge>
-                        </div>}
+                            <Badge isRead className="version 
labels">{dsl.version}</Badge>
+                        </CardFooter>}
                     {dsl.navigation.toLowerCase() === "component"
-                        && <div className="footer" style={{justifyContent: 
"flex-start"}}>
-                            {dsl.labels.split(',').map((s: string,  i: number) 
=> <Badge key={s + i} isRead
+                        && <CardFooter className="footer-labels">
+                            <div>
+                                {dsl.labels.split(',').map((s: string,  i: 
number) => <Badge key={s + i} isRead
                                                                                
          className="labels">{s}</Badge>)}
-                            <Badge isRead 
className="version">{dsl.version}</Badge>
-                        </div>
+                            </div>
+                            <Badge isRead className="version 
labels">{dsl.version}</Badge>
+                        </CardFooter>
                     }
-                </CardFooter>
             </Card>
         )
     }
diff --git a/karavan-app/src/main/webui/src/designer/utils/CamelUi.tsx 
b/karavan-app/src/main/webui/src/designer/utils/CamelUi.tsx
index 334607ef..a8985521 100644
--- a/karavan-app/src/main/webui/src/designer/utils/CamelUi.tsx
+++ b/karavan-app/src/main/webui/src/designer/utils/CamelUi.tsx
@@ -177,6 +177,8 @@ export class CamelUi {
                     title: c.component.title,
                     description: c.component.description,
                     version: c.component.version,
+                    supportLevel: c.component.supportLevel,
+                    supportType: c.component.supportType,
                 }));
     }
 
diff --git a/karavan-app/src/main/webui/src/designer/utils/DslMetaModel.ts 
b/karavan-app/src/main/webui/src/designer/utils/DslMetaModel.ts
index 53318bd0..d267a56d 100644
--- a/karavan-app/src/main/webui/src/designer/utils/DslMetaModel.ts
+++ b/karavan-app/src/main/webui/src/designer/utils/DslMetaModel.ts
@@ -25,6 +25,7 @@ export class DslMetaModel {
     navigation: string = ''
     version: string = ''
     supportLevel: string = ''
+    supportType: string = ''
     properties: any;
 
     public constructor(init?: Partial<DslMetaModel>) {
diff --git a/karavan-app/src/main/webui/src/eip/EipCard.tsx 
b/karavan-app/src/main/webui/src/eip/EipCard.tsx
index bfb2f8de..d288ac6f 100644
--- a/karavan-app/src/main/webui/src/eip/EipCard.tsx
+++ b/karavan-app/src/main/webui/src/eip/EipCard.tsx
@@ -53,8 +53,11 @@ export class EipCard extends React.Component<Props, State> {
                 </CardHeader>
                 <CardTitle>{component.title}</CardTitle>
                 <CardBody>{component.description}</CardBody>
-                <CardFooter>
-                        <Badge isRead 
className="labels">{component.labels}</Badge>
+                <CardFooter className="footer-labels">
+                    <div>
+                        {component.labels.split(',').map((s: string,  i: 
number) => <Badge key={s + i} isRead
+                                                                               
      className="labels">{s}</Badge>)}
+                    </div>
                 </CardFooter>
             </Card>
         )
diff --git a/karavan-app/src/main/webui/src/kamelets/KameletCard.tsx 
b/karavan-app/src/main/webui/src/kamelets/KameletCard.tsx
index 5d4faafa..cfe3d48d 100644
--- a/karavan-app/src/main/webui/src/kamelets/KameletCard.tsx
+++ b/karavan-app/src/main/webui/src/kamelets/KameletCard.tsx
@@ -50,16 +50,18 @@ export class KameletCard extends React.Component<Props, 
State> {
             <Card isHoverable isCompact key={kamelet.metadata.name} 
className="kamelet-card"
                   onClick={event => this.click(event)}
             >
+                <CardHeader className="header-labels">
+                    {isCustom && <Badge className="custom">custom</Badge>}
+                    <Badge isRead className="support-level 
labels">{kamelet.metadata.annotations["camel.apache.org/kamelet.support.level"]}</Badge>
+                </CardHeader>
                 <CardHeader>
                     {CamelUi.getIconFromSource(kamelet.icon())}
-                    {isCustom && <Badge className="custom">custom</Badge>}
+                    <CardTitle>{kamelet.spec.definition.title}</CardTitle>
                 </CardHeader>
-                <CardTitle>{kamelet.spec.definition.title}</CardTitle>
                 <CardBody>{kamelet.spec.definition.description}</CardBody>
-                <CardFooter>
-                    {/*<div style={{justifyContent: "space-between"}}>*/}
+                <CardFooter className="footer-labels">
                     <Badge isRead 
className="labels">{kamelet.metadata.labels["camel.apache.org/kamelet.type"].toLowerCase()}</Badge>
-                    <Badge isRead 
className="version">{kamelet.metadata.annotations["camel.apache.org/catalog.version"].toLowerCase()}</Badge>
+                    <Badge isRead className="version 
labels">{kamelet.metadata.annotations["camel.apache.org/catalog.version"].toLowerCase()}</Badge>
                     {/*</div>*/}
                 </CardFooter>
             </Card>

Reply via email to