@flowuent-org/diagramming-core 1.3.7 → 1.3.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/packages/diagrams/src/lib/components/automation/AutomationApiNode.tsx +7 -8
- package/packages/diagrams/src/lib/components/automation/AutomationEndNode.tsx +5 -21
- package/packages/diagrams/src/lib/components/automation/AutomationFormattingNode.tsx +5 -9
- package/packages/diagrams/src/lib/components/automation/AutomationGoogleServicesNode.tsx +363 -263
- package/packages/diagrams/src/lib/components/automation/AutomationInteractionNode.tsx +325 -231
- package/packages/diagrams/src/lib/components/automation/AutomationNavigationNode.tsx +4 -26
- package/packages/diagrams/src/lib/components/automation/AutomationSheetsNode.tsx +19 -2
- package/packages/diagrams/src/lib/components/automation/AutomationSlackNode.tsx +23 -11
- package/packages/diagrams/src/lib/components/automation/AutomationStartNode.tsx +4 -19
- package/packages/diagrams/src/lib/components/automation/AutomationTelegramNode.tsx +23 -11
- package/packages/diagrams/src/lib/templates/DiagramContent.tsx +3 -44
- package/packages/molecules/src/lib/SvgIcons/icons.tsx +55 -54
|
@@ -4,15 +4,10 @@ import { Handle, Position, useNodeId } from '@xyflow/react';
|
|
|
4
4
|
import { Box, Typography, Chip, IconButton, Card, CardContent, Tooltip } from '@mui/material';
|
|
5
5
|
import {
|
|
6
6
|
AccessTime as AccessTimeIcon,
|
|
7
|
-
Navigation as MuiNavigationIcon,
|
|
8
|
-
OpenInBrowser as OpenInBrowserIcon,
|
|
9
|
-
TouchApp as TouchAppIcon,
|
|
10
|
-
Search as SearchIcon,
|
|
11
7
|
ContentCopy as ContentCopyIcon,
|
|
12
8
|
} from '@mui/icons-material';
|
|
13
9
|
import { RiCloseLine } from 'react-icons/ri';
|
|
14
10
|
import ReactJson from 'react-json-view';
|
|
15
|
-
import { getIconByName } from '../../utils/iconMapper';
|
|
16
11
|
import { useTranslation } from 'react-i18next';
|
|
17
12
|
import { useDiagram } from '../../contexts/DiagramProvider';
|
|
18
13
|
import { NodeActionButtons } from './NodeActionButtons';
|
|
@@ -69,9 +64,6 @@ export const AutomationNavigationNode: React.FC<AutomationNavigationNodeProps> =
|
|
|
69
64
|
const nodes = useDiagram((state) => state.nodes);
|
|
70
65
|
const setNodes = useDiagram((state) => state.setNodes);
|
|
71
66
|
|
|
72
|
-
// Get the icon component based on the iconName
|
|
73
|
-
const IconComponent = getIconByName(data.iconName) || NavigationIcon;
|
|
74
|
-
|
|
75
67
|
const handleJsonClick = () => {
|
|
76
68
|
if (nodeId) setSelectedNode(nodeId);
|
|
77
69
|
if (!enableJson) return;
|
|
@@ -205,23 +197,7 @@ export const AutomationNavigationNode: React.FC<AutomationNavigationNodeProps> =
|
|
|
205
197
|
}
|
|
206
198
|
}, [isJsonOpen, data]);
|
|
207
199
|
|
|
208
|
-
|
|
209
|
-
const navType = data.formData?.navigationType || data.navigationType || 'navigate';
|
|
210
|
-
switch (navType) {
|
|
211
|
-
case 'navigate':
|
|
212
|
-
return <OpenInBrowserIcon sx={{ fontSize: '18px' }} />;
|
|
213
|
-
case 'click':
|
|
214
|
-
return <TouchAppIcon sx={{ fontSize: '18px' }} />;
|
|
215
|
-
case 'scroll':
|
|
216
|
-
return <NavigationIcon size={18} color="#93C5FD" />;
|
|
217
|
-
case 'wait':
|
|
218
|
-
return <AccessTimeIcon sx={{ fontSize: '18px' }} />;
|
|
219
|
-
case 'extract':
|
|
220
|
-
return <SearchIcon sx={{ fontSize: '18px' }} />;
|
|
221
|
-
default:
|
|
222
|
-
return <NavigationIcon size={18} color="#93C5FD" />;
|
|
223
|
-
}
|
|
224
|
-
};
|
|
200
|
+
|
|
225
201
|
|
|
226
202
|
const getNavigationTypeLabel = () => {
|
|
227
203
|
const navType = data.formData?.navigationType || data.navigationType || 'navigate';
|
|
@@ -323,14 +299,16 @@ export const AutomationNavigationNode: React.FC<AutomationNavigationNodeProps> =
|
|
|
323
299
|
sx={{
|
|
324
300
|
width: '32px',
|
|
325
301
|
height: '32px',
|
|
302
|
+
minWidth: '32px',
|
|
326
303
|
backgroundColor: '#8b5cf6',
|
|
327
304
|
borderRadius: '50%',
|
|
328
305
|
display: 'flex',
|
|
329
306
|
alignItems: 'center',
|
|
330
307
|
justifyContent: 'center',
|
|
308
|
+
flexShrink: 0,
|
|
331
309
|
}}
|
|
332
310
|
>
|
|
333
|
-
|
|
311
|
+
<NavigationIcon />
|
|
334
312
|
</Box>
|
|
335
313
|
<Typography variant="h6" sx={{ fontWeight: 600, fontSize: '16px' }}>
|
|
336
314
|
{highlightText(data.label)}
|
|
@@ -746,6 +746,21 @@ Data: ${JSON.stringify(data, null, 2)}
|
|
|
746
746
|
}}
|
|
747
747
|
onClick={handleJsonClick}
|
|
748
748
|
>
|
|
749
|
+
{/* Top Header Section */}
|
|
750
|
+
<Box sx={{
|
|
751
|
+
backgroundColor: "rgba(67, 93, 132, 0.1)",
|
|
752
|
+
padding: '8px 16px',
|
|
753
|
+
borderRadius: '12px 12px 0 0'
|
|
754
|
+
}}>
|
|
755
|
+
<Typography variant="body2" sx={{
|
|
756
|
+
color: '#ffffff',
|
|
757
|
+
fontSize: '12px',
|
|
758
|
+
fontWeight: 500
|
|
759
|
+
}}>
|
|
760
|
+
{data.description || 'Export data to Google Sheets'}
|
|
761
|
+
</Typography>
|
|
762
|
+
</Box>
|
|
763
|
+
|
|
749
764
|
{/* Header */}
|
|
750
765
|
<Box sx={{
|
|
751
766
|
display: 'flex',
|
|
@@ -759,11 +774,13 @@ Data: ${JSON.stringify(data, null, 2)}
|
|
|
759
774
|
sx={{
|
|
760
775
|
width: '32px',
|
|
761
776
|
height: '32px',
|
|
762
|
-
|
|
763
|
-
|
|
777
|
+
minWidth: '32px',
|
|
778
|
+
backgroundColor: '#1E3A8A',
|
|
779
|
+
borderRadius: '50%',
|
|
764
780
|
display: 'flex',
|
|
765
781
|
alignItems: 'center',
|
|
766
782
|
justifyContent: 'center',
|
|
783
|
+
flexShrink: 0,
|
|
767
784
|
}}
|
|
768
785
|
>
|
|
769
786
|
<IconComponent sx={{ color: 'white', fontSize: '18px' }} />
|
|
@@ -457,11 +457,26 @@ export const AutomationSlackNode: React.FC<AutomationSlackNodeProps> = ({
|
|
|
457
457
|
}}
|
|
458
458
|
/>
|
|
459
459
|
|
|
460
|
+
{/* Top Header Section */}
|
|
461
|
+
<Box sx={{
|
|
462
|
+
backgroundColor: "rgba(67, 93, 132, 0.1)",
|
|
463
|
+
padding: '8px 16px',
|
|
464
|
+
borderRadius: '12px 12px 0 0'
|
|
465
|
+
}}>
|
|
466
|
+
<Typography variant="body2" sx={{
|
|
467
|
+
color: '#ffffff',
|
|
468
|
+
fontSize: '12px',
|
|
469
|
+
fontWeight: 500
|
|
470
|
+
}}>
|
|
471
|
+
{data.description || operationConfig.description}
|
|
472
|
+
</Typography>
|
|
473
|
+
</Box>
|
|
474
|
+
|
|
460
475
|
{/* Header */}
|
|
461
476
|
<Box
|
|
462
477
|
sx={{
|
|
463
|
-
bgcolor:
|
|
464
|
-
borderBottom: `1px solid
|
|
478
|
+
bgcolor: "rgba(67, 93, 132, 0.1)",
|
|
479
|
+
borderBottom: `1px solid rgba(67, 93, 132, 0.2)`,
|
|
465
480
|
px: 2,
|
|
466
481
|
py: 1.5,
|
|
467
482
|
display: 'flex',
|
|
@@ -472,12 +487,15 @@ export const AutomationSlackNode: React.FC<AutomationSlackNodeProps> = ({
|
|
|
472
487
|
<Box sx={{ display: 'flex', alignItems: 'center', gap: 1.5 }}>
|
|
473
488
|
<Box
|
|
474
489
|
sx={{
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
490
|
+
width: '32px',
|
|
491
|
+
height: '32px',
|
|
492
|
+
minWidth: '32px',
|
|
493
|
+
backgroundColor: '#1E3A8A',
|
|
494
|
+
borderRadius: '50%',
|
|
478
495
|
display: 'flex',
|
|
479
496
|
alignItems: 'center',
|
|
480
497
|
justifyContent: 'center',
|
|
498
|
+
flexShrink: 0,
|
|
481
499
|
}}
|
|
482
500
|
>
|
|
483
501
|
<OperationIcon sx={{ fontSize: 18, color: '#fff' }} />
|
|
@@ -489,12 +507,6 @@ export const AutomationSlackNode: React.FC<AutomationSlackNodeProps> = ({
|
|
|
489
507
|
>
|
|
490
508
|
{highlightText(data.label || operationConfig.label)}
|
|
491
509
|
</Typography>
|
|
492
|
-
<Typography
|
|
493
|
-
variant="caption"
|
|
494
|
-
sx={{ color: '#9CA3AF', fontSize: 10 }}
|
|
495
|
-
>
|
|
496
|
-
{data.description || operationConfig.description}
|
|
497
|
-
</Typography>
|
|
498
510
|
</Box>
|
|
499
511
|
</Box>
|
|
500
512
|
{renderStatusBadge()}
|
|
@@ -5,13 +5,13 @@ import { Box, Typography, Chip, IconButton, Card, CardContent } from '@mui/mater
|
|
|
5
5
|
import { AccessTime as AccessTimeIcon } from '@mui/icons-material';
|
|
6
6
|
import { RiCloseLine, RiUser2Line } from 'react-icons/ri';
|
|
7
7
|
import ReactJson from 'react-json-view';
|
|
8
|
-
import { getIconByName } from '../../utils/iconMapper';
|
|
9
8
|
import { useTranslation } from 'react-i18next';
|
|
10
9
|
import { useDiagram } from '../../contexts/DiagramProvider';
|
|
11
10
|
import { NodeActionButtons } from './NodeActionButtons';
|
|
12
11
|
import { showNodeAIAssistantPopup } from './NodeAIAssistantPopup';
|
|
13
12
|
import { useSearch } from '../../contexts/SearchContext';
|
|
14
13
|
import { getStatusColor } from './statusColors';
|
|
14
|
+
import { StartNodeIcon } from '../../../../../molecules/src/lib/SvgIcons/icons';
|
|
15
15
|
|
|
16
16
|
interface AutomationStartNodeProps {
|
|
17
17
|
data: {
|
|
@@ -48,11 +48,6 @@ export const AutomationStartNode: React.FC<AutomationStartNodeProps> = ({ data,
|
|
|
48
48
|
const nodes = useDiagram((state) => state.nodes);
|
|
49
49
|
const setNodes = useDiagram((state) => state.setNodes);
|
|
50
50
|
|
|
51
|
-
// Get the icon component based on the iconName
|
|
52
|
-
const IconComponent = getIconByName(data.iconName);
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
51
|
const handleJsonClick = () => {
|
|
57
52
|
if (nodeId) setSelectedNode(nodeId);
|
|
58
53
|
if (!enableJson) return;
|
|
@@ -259,19 +254,9 @@ export const AutomationStartNode: React.FC<AutomationStartNodeProps> = ({ data,
|
|
|
259
254
|
{/* Title Section */}
|
|
260
255
|
<Box sx={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', mb: 2 }}>
|
|
261
256
|
<Box sx={{ display: 'flex', alignItems: 'center', gap: 1.5 }}>
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
height: '32px',
|
|
266
|
-
backgroundColor: '#0ea5e9',
|
|
267
|
-
borderRadius: '50%',
|
|
268
|
-
display: 'flex',
|
|
269
|
-
alignItems: 'center',
|
|
270
|
-
justifyContent: 'center',
|
|
271
|
-
}}
|
|
272
|
-
>
|
|
273
|
-
<IconComponent sx={{ color: 'white', fontSize: '18px' }} />
|
|
274
|
-
</Box>
|
|
257
|
+
|
|
258
|
+
<StartNodeIcon />
|
|
259
|
+
|
|
275
260
|
<Typography variant="h6" sx={{ fontWeight: 600, fontSize: '16px' }}>
|
|
276
261
|
{highlightText(data.label)}
|
|
277
262
|
</Typography>
|
|
@@ -450,11 +450,26 @@ export const AutomationTelegramNode: React.FC<AutomationTelegramNodeProps> = ({
|
|
|
450
450
|
}}
|
|
451
451
|
/>
|
|
452
452
|
|
|
453
|
+
{/* Top Header Section */}
|
|
454
|
+
<Box sx={{
|
|
455
|
+
backgroundColor: "rgba(67, 93, 132, 0.1)",
|
|
456
|
+
padding: '8px 16px',
|
|
457
|
+
borderRadius: '12px 12px 0 0'
|
|
458
|
+
}}>
|
|
459
|
+
<Typography variant="body2" sx={{
|
|
460
|
+
color: '#ffffff',
|
|
461
|
+
fontSize: '12px',
|
|
462
|
+
fontWeight: 500
|
|
463
|
+
}}>
|
|
464
|
+
{data.description || operationConfig.description}
|
|
465
|
+
</Typography>
|
|
466
|
+
</Box>
|
|
467
|
+
|
|
453
468
|
{/* Header */}
|
|
454
469
|
<Box
|
|
455
470
|
sx={{
|
|
456
|
-
bgcolor:
|
|
457
|
-
borderBottom: `1px solid
|
|
471
|
+
bgcolor: "rgba(67, 93, 132, 0.1)",
|
|
472
|
+
borderBottom: `1px solid rgba(67, 93, 132, 0.2)`,
|
|
458
473
|
px: 2,
|
|
459
474
|
py: 1.5,
|
|
460
475
|
display: 'flex',
|
|
@@ -465,12 +480,15 @@ export const AutomationTelegramNode: React.FC<AutomationTelegramNodeProps> = ({
|
|
|
465
480
|
<Box sx={{ display: 'flex', alignItems: 'center', gap: 1.5 }}>
|
|
466
481
|
<Box
|
|
467
482
|
sx={{
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
483
|
+
width: '32px',
|
|
484
|
+
height: '32px',
|
|
485
|
+
minWidth: '32px',
|
|
486
|
+
backgroundColor: '#1E3A8A',
|
|
487
|
+
borderRadius: '50%',
|
|
471
488
|
display: 'flex',
|
|
472
489
|
alignItems: 'center',
|
|
473
490
|
justifyContent: 'center',
|
|
491
|
+
flexShrink: 0,
|
|
474
492
|
}}
|
|
475
493
|
>
|
|
476
494
|
<OperationIcon sx={{ fontSize: 18, color: '#fff' }} />
|
|
@@ -482,12 +500,6 @@ export const AutomationTelegramNode: React.FC<AutomationTelegramNodeProps> = ({
|
|
|
482
500
|
>
|
|
483
501
|
{highlightText(data.label || operationConfig.label)}
|
|
484
502
|
</Typography>
|
|
485
|
-
<Typography
|
|
486
|
-
variant="caption"
|
|
487
|
-
sx={{ color: '#9CA3AF', fontSize: 10 }}
|
|
488
|
-
>
|
|
489
|
-
{data.description || operationConfig.description}
|
|
490
|
-
</Typography>
|
|
491
503
|
</Box>
|
|
492
504
|
</Box>
|
|
493
505
|
{renderStatusBadge()}
|
|
@@ -566,50 +566,9 @@ export const DiagramContent: React.FC<DiagramContentProps> = ({
|
|
|
566
566
|
ref={setNodeRef}
|
|
567
567
|
sx={{ height: '100svh', width: '100svw', position: 'relative' }}
|
|
568
568
|
>
|
|
569
|
-
{/*
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
position: 'absolute',
|
|
573
|
-
top: 16,
|
|
574
|
-
left: 16,
|
|
575
|
-
zIndex: 10,
|
|
576
|
-
display: 'flex',
|
|
577
|
-
gap: 0.5,
|
|
578
|
-
backgroundColor: 'background.paper',
|
|
579
|
-
borderRadius: 2,
|
|
580
|
-
boxShadow: 2,
|
|
581
|
-
padding: 0.5,
|
|
582
|
-
}}
|
|
583
|
-
>
|
|
584
|
-
<Tooltip title="Undo (Ctrl+Z)" placement="bottom">
|
|
585
|
-
<span>
|
|
586
|
-
<IconButton
|
|
587
|
-
onClick={undo}
|
|
588
|
-
disabled={!canUndo}
|
|
589
|
-
size="small"
|
|
590
|
-
sx={{
|
|
591
|
-
color: canUndo ? 'primary.main' : 'action.disabled',
|
|
592
|
-
}}
|
|
593
|
-
>
|
|
594
|
-
<UndoIcon fontSize="small" />
|
|
595
|
-
</IconButton>
|
|
596
|
-
</span>
|
|
597
|
-
</Tooltip>
|
|
598
|
-
<Tooltip title="Redo (Ctrl+Y)" placement="bottom">
|
|
599
|
-
<span>
|
|
600
|
-
<IconButton
|
|
601
|
-
onClick={redo}
|
|
602
|
-
disabled={!canRedo}
|
|
603
|
-
size="small"
|
|
604
|
-
sx={{
|
|
605
|
-
color: canRedo ? 'primary.main' : 'action.disabled',
|
|
606
|
-
}}
|
|
607
|
-
>
|
|
608
|
-
<RedoIcon fontSize="small" />
|
|
609
|
-
</IconButton>
|
|
610
|
-
</span>
|
|
611
|
-
</Tooltip>
|
|
612
|
-
</Box>
|
|
569
|
+
{/* Redo Toolbar */}
|
|
570
|
+
|
|
571
|
+
|
|
613
572
|
<ReactFlow
|
|
614
573
|
panOnDrag={isPannable}
|
|
615
574
|
nodesDraggable={isPannable}
|
|
@@ -64,46 +64,40 @@ export const ArticleAnalyzerIcon: React.FC<SvgIconProps> = ({ size = 15, color =
|
|
|
64
64
|
);
|
|
65
65
|
|
|
66
66
|
// Start Node Icon
|
|
67
|
-
export const StartNodeIcon: React.FC<SvgIconProps> = ({ size
|
|
68
|
-
<
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
67
|
+
export const StartNodeIcon: React.FC<SvgIconProps> = ({ size, color, style }) => (
|
|
68
|
+
<svg width="35" height="35" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
69
|
+
<path d="M0 14C0 6.26801 6.26801 0 14 0C21.732 0 28 6.26801 28 14C28 21.732 21.732 28 14 28C6.26801 28 0 21.732 0 14Z" fill="#1E3A8A"/>
|
|
70
|
+
<g clipPath="url(#clip0_8650_35616)">
|
|
71
|
+
<path d="M14.0007 20.6663C17.6825 20.6663 20.6673 17.6816 20.6673 13.9997C20.6673 10.3178 17.6825 7.33301 14.0007 7.33301C10.3188 7.33301 7.33398 10.3178 7.33398 13.9997C7.33398 17.6816 10.3188 20.6663 14.0007 20.6663Z" stroke="#86EFAC" strokeLinecap="round" strokeLinejoin="round"/>
|
|
72
|
+
<path d="M12.666 11.333L16.666 13.9997L12.666 16.6663V11.333Z" stroke="#86EFAC" strokeLinecap="round" strokeLinejoin="round"/>
|
|
73
|
+
</g>
|
|
74
|
+
<defs>
|
|
75
|
+
<clipPath id="clip0_8650_35616">
|
|
76
|
+
<rect width="16" height="16" fill="white" transform="translate(6 6)"/>
|
|
77
|
+
</clipPath>
|
|
78
|
+
</defs>
|
|
79
|
+
</svg>
|
|
80
|
+
|
|
81
|
+
|
|
82
82
|
);
|
|
83
83
|
|
|
84
84
|
// Navigation Icon
|
|
85
|
-
export const NavigationIcon: React.FC<SvgIconProps> = ({ size
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
stroke={color}
|
|
102
|
-
strokeLinecap="round"
|
|
103
|
-
strokeLinejoin="round"
|
|
104
|
-
/>
|
|
105
|
-
</BaseIcon>
|
|
106
|
-
);
|
|
85
|
+
export const NavigationIcon: React.FC<SvgIconProps> = ({ size, color, style }) => (
|
|
86
|
+
<svg width="35" height="35" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
87
|
+
<path d="M0 14C0 6.26801 6.26801 0 14 0C21.732 0 28 6.26801 28 14C28 21.732 21.732 28 14 28C6.26801 28 0 21.732 0 14Z" fill="#1E3A8A"/>
|
|
88
|
+
<g clipPath="url(#clip0_8650_35642)">
|
|
89
|
+
<path d="M14.0007 20.6663C17.6825 20.6663 20.6673 17.6816 20.6673 13.9997C20.6673 10.3178 17.6825 7.33301 14.0007 7.33301C10.3188 7.33301 7.33398 10.3178 7.33398 13.9997C7.33398 17.6816 10.3188 20.6663 14.0007 20.6663Z" stroke="#93C5FD" strokeLinecap="round" strokeLinejoin="round"/>
|
|
90
|
+
<path d="M14.0007 7.33301C12.2888 9.13044 11.334 11.5175 11.334 13.9997C11.334 16.4818 12.2888 18.8689 14.0007 20.6663C15.7125 18.8689 16.6673 16.4818 16.6673 13.9997C16.6673 11.5175 15.7125 9.13044 14.0007 7.33301Z" stroke="#93C5FD" strokeLinecap="round" strokeLinejoin="round"/>
|
|
91
|
+
<path d="M7.33398 14H20.6673" stroke="#93C5FD" strokeLinecap="round" strokeLinejoin="round"/>
|
|
92
|
+
</g>
|
|
93
|
+
<defs>
|
|
94
|
+
<clipPath id="clip0_8650_35642">
|
|
95
|
+
<rect width="16" height="16" fill="white" transform="translate(6 6)"/>
|
|
96
|
+
</clipPath>
|
|
97
|
+
</defs>
|
|
98
|
+
</svg>
|
|
99
|
+
|
|
100
|
+
);
|
|
107
101
|
|
|
108
102
|
// Workflow node type icons
|
|
109
103
|
export const ParallelIcon: React.FC<SvgIconProps> = ({ size = 15, color = '#86EFAC', style }) => (
|
|
@@ -260,7 +254,7 @@ export const EmptyNodeIcon: React.FC<SvgIconProps> = ({ size = 15, color = '#86E
|
|
|
260
254
|
</BaseIcon>
|
|
261
255
|
);
|
|
262
256
|
|
|
263
|
-
export const EntityIcon: React.FC<SvgIconProps> = ({ size
|
|
257
|
+
export const EntityIcon: React.FC<SvgIconProps> = ({ size, color = '#86EFAC', style }) => (
|
|
264
258
|
<BaseIcon size={size} color={color} style={style}>
|
|
265
259
|
<path
|
|
266
260
|
d="M7.16667 13.8333C10.8486 13.8333 13.8333 10.8486 13.8333 7.16667C13.8333 3.48477 10.8486 0.5 7.16667 0.5C3.48477 0.5 0.5 3.48477 0.5 7.16667C0.5 10.8486 3.48477 13.8333 7.16667 13.8333Z"
|
|
@@ -272,20 +266,27 @@ export const EntityIcon: React.FC<SvgIconProps> = ({ size = 15, color = '#86EFAC
|
|
|
272
266
|
);
|
|
273
267
|
|
|
274
268
|
// End Node Icon
|
|
275
|
-
export const EndNodeIcon: React.FC<SvgIconProps> = ({ size
|
|
276
|
-
<svg
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
282
|
-
style={style}
|
|
283
|
-
>
|
|
284
|
-
<path
|
|
285
|
-
d="M11.1667 0.5H1.83333C1.09695 0.5 0.5 1.09695 0.5 1.83333V11.1667C0.5 11.903 1.09695 12.5 1.83333 12.5H11.1667C11.903 12.5 12.5 11.903 12.5 11.1667V1.83333C12.5 1.09695 11.903 0.5 11.1667 0.5Z"
|
|
286
|
-
stroke={color}
|
|
287
|
-
strokeLinecap="round"
|
|
288
|
-
strokeLinejoin="round"
|
|
289
|
-
/>
|
|
290
|
-
</svg>
|
|
269
|
+
export const EndNodeIcon: React.FC<SvgIconProps> = ({ size, color , style }) => (
|
|
270
|
+
<svg width="35" height="35" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
271
|
+
<path d="M0 14C0 6.26801 6.26801 0 14 0C21.732 0 28 6.26801 28 14C28 21.732 21.732 28 14 28C6.26801 28 0 21.732 0 14Z" fill="#1E3A8A"/>
|
|
272
|
+
<path d="M18.6667 8H9.33333C8.59695 8 8 8.59695 8 9.33333V18.6667C8 19.403 8.59695 20 9.33333 20H18.6667C19.403 20 20 19.403 20 18.6667V9.33333C20 8.59695 19.403 8 18.6667 8Z" stroke="#FCA5A5" strokeLinecap="round" strokeLinejoin="round"/>
|
|
273
|
+
</svg>
|
|
274
|
+
|
|
291
275
|
);
|
|
276
|
+
|
|
277
|
+
export const FormattingNodeIcon: React.FC<SvgIconProps> = ({ size, color , style }) => (
|
|
278
|
+
<svg width="35" height="35" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
279
|
+
<path d="M0 14C0 6.26801 6.26801 0 14 0C21.732 0 28 6.26801 28 14C28 21.732 21.732 28 14 28C6.26801 28 0 21.732 0 14Z" fill="#1E3A8A"/>
|
|
280
|
+
<path d="M15.9993 7.33301H9.99935C9.64573 7.33301 9.30659 7.47348 9.05654 7.72353C8.80649 7.97358 8.66602 8.31272 8.66602 8.66634V19.333C8.66602 19.6866 8.80649 20.0258 9.05654 20.2758C9.30659 20.5259 9.64573 20.6663 9.99935 20.6663H17.9993C18.353 20.6663 18.6921 20.5259 18.9422 20.2758C19.1922 20.0258 19.3327 19.6866 19.3327 19.333V10.6663L15.9993 7.33301Z" stroke="#D8B4FE" strokeLinecap="round" strokeLinejoin="round"/>
|
|
281
|
+
<path d="M15.334 7.33301V9.99967C15.334 10.3533 15.4745 10.6924 15.7245 10.9425C15.9746 11.1925 16.3137 11.333 16.6673 11.333H19.334" stroke="#D8B4FE" strokeLinecap="round" strokeLinejoin="round"/>
|
|
282
|
+
<path d="M12.6673 12H11.334" stroke="#D8B4FE" strokeLinecap="round" strokeLinejoin="round"/>
|
|
283
|
+
<path d="M16.6673 14.667H11.334" stroke="#D8B4FE" strokeLinecap="round" strokeLinejoin="round"/>
|
|
284
|
+
<path d="M16.6673 17.333H11.334" stroke="#D8B4FE" strokeLinecap="round" strokeLinejoin="round"/>
|
|
285
|
+
</svg>
|
|
286
|
+
);
|
|
287
|
+
|
|
288
|
+
export const ApiNodeIcon: React.FC<SvgIconProps> = ({ size, color , style }) => (
|
|
289
|
+
<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
290
|
+
<path d="M3.89167 3.92167L2.66667 2.68583M10.4242 3.92167L11.6492 2.68583M2.66583 11.7525L3.89083 10.5158M7.1575 2.27417V0.625M2.2575 7.21917H0.625M12.1875 12.155L15.3658 10.9C15.4425 10.8693 15.5083 10.8164 15.5546 10.748C15.6009 10.6796 15.6256 10.5988 15.6256 10.5162C15.6256 10.4337 15.6009 10.3529 15.5546 10.2845C15.5083 10.2161 15.4425 10.1632 15.3658 10.1325L7.72833 7.12C7.65398 7.09123 7.57285 7.08475 7.49488 7.10138C7.4169 7.118 7.34547 7.157 7.28931 7.21359C7.23316 7.27019 7.19472 7.34193 7.17871 7.42003C7.1627 7.49813 7.16981 7.57921 7.19917 7.65333L10.1842 15.3625C10.3192 15.7125 10.8092 15.7125 10.9442 15.3625L12.1875 12.155Z" stroke="#FCFAFF" strokeWidth="1.25" strokeLinecap="round" strokeLinejoin="round"/>
|
|
291
|
+
</svg>
|
|
292
|
+
);
|