@flowuent-org/diagramming-core 1.0.5 → 1.0.7
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/TRANSLATION_FIX_SUMMARY.md +118 -0
- package/apps/diagramming/src/DiagramTabs.tsx +205 -205
- package/apps/diagramming/src/sample-workflow-content.ts +55 -54
- package/package.json +116 -116
- package/packages/diagrams/I18N_SETUP.md +126 -0
- package/packages/diagrams/NODE_DATA_UPDATE_API.md +430 -430
- package/packages/diagrams/README.md +443 -3
- package/packages/diagrams/UNDO_REDO_API.md +306 -306
- package/packages/diagrams/locales/en/translation.json +713 -0
- package/packages/diagrams/package.json +5 -23
- package/packages/diagrams/pnpm-lock.yaml +2606 -0
- package/packages/diagrams/project.json +42 -38
- package/packages/diagrams/rollup.config.js +5 -10
- package/packages/diagrams/src/index.ts +116 -113
- package/packages/diagrams/src/lib/atoms/CardEditableTitle.tsx +76 -76
- package/packages/diagrams/src/lib/components/automation/AutomationApiNode.tsx +24 -3
- package/packages/diagrams/src/lib/components/automation/AutomationEndNode.tsx +23 -2
- package/packages/diagrams/src/lib/components/automation/AutomationFormattingNode.tsx +24 -3
- package/packages/diagrams/src/lib/components/automation/AutomationStartNode.tsx +24 -3
- package/packages/diagrams/src/lib/contexts/onWorkflowNodeDelete.ts +1 -1
- package/packages/diagrams/src/lib/i18n.ts +42 -0
- package/packages/diagrams/src/lib/organisms/CustomEdge/useCreateBendPoint.tsx +121 -119
- package/packages/diagrams/src/lib/organisms/WorkFlowNode/NodeActionButtons.tsx +1 -1
- package/packages/diagrams/src/lib/templates/node-forms/CallForm.tsx +370 -370
- package/packages/diagrams/src/lib/types/node-types.ts +29 -29
- package/packages/diagrams/src/lib/utils/AutomationExecutionEngine.ts +1168 -1162
- package/packages/diagrams/tsconfig.lib.json +1 -3
- package/tsconfig.base.json +1 -1
|
@@ -1,38 +1,42 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "diagrams",
|
|
3
|
-
"$schema": "../../node_modules/nx/schemas/project-schema.json",
|
|
4
|
-
"sourceRoot": "packages/diagrams/src",
|
|
5
|
-
"projectType": "library",
|
|
6
|
-
"tags": [],
|
|
7
|
-
"targets": {
|
|
8
|
-
"build": {
|
|
9
|
-
"executor": "@nx/rollup:rollup",
|
|
10
|
-
"outputs": ["{options.outputPath}"],
|
|
11
|
-
"options": {
|
|
12
|
-
"outputPath": "dist/packages/diagrams",
|
|
13
|
-
"tsConfig": "packages/diagrams/tsconfig.lib.json",
|
|
14
|
-
"project": "packages/diagrams/package.json",
|
|
15
|
-
"entryFile": "packages/diagrams/src/index.ts",
|
|
16
|
-
"external": ["react", "react-dom", "react/jsx-runtime"],
|
|
17
|
-
"rollupConfig": "packages/diagrams/rollup.config.js",
|
|
18
|
-
"compiler": "
|
|
19
|
-
"
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "diagrams",
|
|
3
|
+
"$schema": "../../node_modules/nx/schemas/project-schema.json",
|
|
4
|
+
"sourceRoot": "packages/diagrams/src",
|
|
5
|
+
"projectType": "library",
|
|
6
|
+
"tags": [],
|
|
7
|
+
"targets": {
|
|
8
|
+
"build": {
|
|
9
|
+
"executor": "@nx/rollup:rollup",
|
|
10
|
+
"outputs": ["{options.outputPath}"],
|
|
11
|
+
"options": {
|
|
12
|
+
"outputPath": "dist/packages/diagrams",
|
|
13
|
+
"tsConfig": "packages/diagrams/tsconfig.lib.json",
|
|
14
|
+
"project": "packages/diagrams/package.json",
|
|
15
|
+
"entryFile": "packages/diagrams/src/index.ts",
|
|
16
|
+
"external": ["react", "react-dom", "react/jsx-runtime"],
|
|
17
|
+
"rollupConfig": "packages/diagrams/rollup.config.js",
|
|
18
|
+
"compiler": "babel",
|
|
19
|
+
"assets": [
|
|
20
|
+
{
|
|
21
|
+
"glob": "packages/diagrams/README.md",
|
|
22
|
+
"input": ".",
|
|
23
|
+
"output": "."
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"glob": "**/*",
|
|
27
|
+
"input": "packages/diagrams/locales",
|
|
28
|
+
"output": "locales"
|
|
29
|
+
}
|
|
30
|
+
],
|
|
31
|
+
"buildableProjectDepsInPackageJsonType": "peerDependencies"
|
|
32
|
+
},
|
|
33
|
+
"configurations": {
|
|
34
|
+
"production": {
|
|
35
|
+
"optimization": true,
|
|
36
|
+
"extractLicenses": true,
|
|
37
|
+
"inspect": false
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -8,16 +8,11 @@ module.exports = (options) => {
|
|
|
8
8
|
// Enable tree shaking
|
|
9
9
|
nxRollupOptions.treeshake = true; // Explicitly enable tree shaking
|
|
10
10
|
|
|
11
|
-
//
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
return !(plugin && plugin.name === 'rpt2');
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
// Add the preserveDirectives plugin
|
|
20
|
-
nxRollupOptions.plugins.push(preserveDirectives());
|
|
11
|
+
// Add the preserveDirectives plugin to the existing plugins
|
|
12
|
+
nxRollupOptions.plugins = [
|
|
13
|
+
...(Array.isArray(nxRollupOptions.plugins) ? nxRollupOptions.plugins : []),
|
|
14
|
+
preserveDirectives(),
|
|
15
|
+
];
|
|
21
16
|
|
|
22
17
|
// Externalize MUI packages
|
|
23
18
|
nxRollupOptions.external = [
|
|
@@ -1,113 +1,116 @@
|
|
|
1
|
-
export * from './lib/externals';
|
|
2
|
-
export * from './lib/
|
|
3
|
-
export * from './lib/
|
|
4
|
-
export * from './lib/
|
|
5
|
-
export * from './lib/atoms/
|
|
6
|
-
export * from './lib/atoms/
|
|
7
|
-
export * from './lib/atoms/
|
|
8
|
-
export * from './lib/atoms/
|
|
9
|
-
export * from './lib/atoms/
|
|
10
|
-
export * from './lib/atoms/
|
|
11
|
-
export * from './lib/atoms/
|
|
12
|
-
export * from './lib/atoms/
|
|
13
|
-
export * from './lib/
|
|
14
|
-
export * from './lib/contexts/
|
|
15
|
-
export * from './lib/contexts/
|
|
16
|
-
export * from './lib/contexts/
|
|
17
|
-
export * from './lib/contexts/
|
|
18
|
-
export * from './lib/contexts/
|
|
19
|
-
export * from './lib/contexts/
|
|
20
|
-
export * from './lib/contexts/
|
|
21
|
-
export * from './lib/contexts/
|
|
22
|
-
export * from './lib/contexts/
|
|
23
|
-
export * from './lib/contexts/
|
|
24
|
-
export * from './lib/contexts/
|
|
25
|
-
export * from './lib/contexts/
|
|
26
|
-
export * from './lib/contexts/
|
|
27
|
-
export * from './lib/contexts/
|
|
28
|
-
export * from './lib/contexts/
|
|
29
|
-
export * from './lib/contexts/
|
|
30
|
-
export * from './lib/contexts/
|
|
31
|
-
export * from './lib/
|
|
32
|
-
export * from './lib/hooks/
|
|
33
|
-
export * from './lib/hooks/
|
|
34
|
-
export * from './lib/hooks/
|
|
35
|
-
export * from './lib/hooks/
|
|
36
|
-
export * from './lib/hooks/
|
|
37
|
-
export * from './lib/
|
|
38
|
-
export * from './lib/molecules/
|
|
39
|
-
export * from './lib/molecules/
|
|
40
|
-
export * from './lib/molecules/
|
|
41
|
-
export * from './lib/molecules/
|
|
42
|
-
export * from './lib/molecules/
|
|
43
|
-
export * from './lib/molecules/
|
|
44
|
-
export * from './lib/molecules/
|
|
45
|
-
export * from './lib/molecules/
|
|
46
|
-
export * from './lib/molecules/
|
|
47
|
-
export * from './lib/molecules/
|
|
48
|
-
export * from './lib/
|
|
49
|
-
export * from './lib/organisms/
|
|
50
|
-
export * from './lib/organisms/
|
|
51
|
-
export * from './lib/organisms/
|
|
52
|
-
export * from './lib/organisms/
|
|
53
|
-
export * from './lib/organisms/
|
|
54
|
-
export * from './lib/organisms/
|
|
55
|
-
export * from './lib/organisms/
|
|
56
|
-
export * from './lib/organisms/
|
|
57
|
-
export * from './lib/
|
|
58
|
-
export * from './lib/templates/
|
|
59
|
-
export * from './lib/templates/
|
|
60
|
-
export
|
|
61
|
-
export
|
|
62
|
-
export * from './lib/
|
|
63
|
-
export * from './lib/types/
|
|
64
|
-
export * from './lib/types/
|
|
65
|
-
export * from './lib/types/
|
|
66
|
-
export * from './lib/types/
|
|
67
|
-
export * from './lib/types/
|
|
68
|
-
export * from './lib/types/
|
|
69
|
-
export * from './lib/types/
|
|
70
|
-
export * from './lib/types/
|
|
71
|
-
export * from './lib/types/
|
|
72
|
-
export * from './lib/types/
|
|
73
|
-
export * from './lib/
|
|
74
|
-
export * from './lib/utils/add-new-
|
|
75
|
-
export * from './lib/utils/
|
|
76
|
-
export * from './lib/utils/
|
|
77
|
-
export * from './lib/utils/
|
|
78
|
-
export * from './lib/utils/
|
|
79
|
-
export * from './lib/utils/
|
|
80
|
-
export * from './lib/utils/
|
|
81
|
-
export * from './lib/utils/
|
|
82
|
-
export * from './lib/utils/
|
|
83
|
-
export * from './lib/utils/
|
|
84
|
-
export * from './lib/utils/
|
|
85
|
-
export * from './lib/utils/event-
|
|
86
|
-
export * from './lib/utils/
|
|
87
|
-
export * from './lib/utils/flow-
|
|
88
|
-
export * from './lib/utils/
|
|
89
|
-
export * from './lib/utils/
|
|
90
|
-
export * from './lib/utils/
|
|
91
|
-
export * from './lib/utils/
|
|
92
|
-
export
|
|
93
|
-
export
|
|
94
|
-
export * from './lib/utils/
|
|
95
|
-
export * from './lib/utils/
|
|
96
|
-
export * from './lib/utils/
|
|
97
|
-
export * from './lib/
|
|
98
|
-
export * from './lib/assets/markers/markers.
|
|
99
|
-
export * from './lib/
|
|
100
|
-
export * from './lib/organisms/Card/card.
|
|
101
|
-
export * from './lib/organisms/Card/
|
|
102
|
-
export * from './lib/organisms/
|
|
103
|
-
export * from './lib/organisms/CustomEdge/custom-edge
|
|
104
|
-
export * from './lib/organisms/CustomEdge/custom-edge.
|
|
105
|
-
export * from './lib/organisms/
|
|
106
|
-
export * from './lib/organisms/
|
|
107
|
-
|
|
108
|
-
export * from './lib/
|
|
109
|
-
export
|
|
110
|
-
export
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
1
|
+
export * from './lib/externals';
|
|
2
|
+
export * from './lib/i18n';
|
|
3
|
+
export * from './lib/templates/systemFlow';
|
|
4
|
+
export * from './lib/theme';
|
|
5
|
+
export * from './lib/atoms/AddNodeAnchor';
|
|
6
|
+
export * from './lib/atoms/AddParallelColButton';
|
|
7
|
+
export * from './lib/atoms/BendpointNode';
|
|
8
|
+
export * from './lib/atoms/CardBlockTypeSelector';
|
|
9
|
+
export * from './lib/atoms/CardMainContent';
|
|
10
|
+
export * from './lib/atoms/FloatingConnectionLine';
|
|
11
|
+
export * from './lib/atoms/MarkerSelector';
|
|
12
|
+
export * from './lib/atoms/PropertyInput';
|
|
13
|
+
export * from './lib/atoms/StyledBox';
|
|
14
|
+
export * from './lib/contexts/CardDataProvider';
|
|
15
|
+
export * from './lib/contexts/DiagramProvider';
|
|
16
|
+
export * from './lib/contexts/diagramStoreTypes';
|
|
17
|
+
export * from './lib/contexts/onConnect';
|
|
18
|
+
export * from './lib/contexts/onDragStart';
|
|
19
|
+
export * from './lib/contexts/onNodeDragEnd';
|
|
20
|
+
export * from './lib/contexts/onNodesChange';
|
|
21
|
+
export * from './lib/contexts/setContentHeight';
|
|
22
|
+
export * from './lib/contexts/setDiagramType';
|
|
23
|
+
export * from './lib/contexts/setEdges';
|
|
24
|
+
export * from './lib/contexts/setEdgeShapeType';
|
|
25
|
+
export * from './lib/contexts/setNodes';
|
|
26
|
+
export * from './lib/contexts/setNodeSetting';
|
|
27
|
+
export * from './lib/contexts/setPannable';
|
|
28
|
+
export * from './lib/contexts/setSelectedEdge';
|
|
29
|
+
export * from './lib/contexts/setSelectedNode';
|
|
30
|
+
export * from './lib/contexts/undo';
|
|
31
|
+
export * from './lib/contexts/updateNodeSetting';
|
|
32
|
+
export * from './lib/hooks/customUseReactFlow';
|
|
33
|
+
export * from './lib/hooks/updateNodes';
|
|
34
|
+
export * from './lib/hooks/useDragCallbacks';
|
|
35
|
+
export * from './lib/hooks/useModalControls';
|
|
36
|
+
export * from './lib/hooks/useWorkflowNodeActiont';
|
|
37
|
+
export * from './lib/hooks/useAutoRegisterFunctions';
|
|
38
|
+
export * from './lib/molecules/AddingBlock';
|
|
39
|
+
export * from './lib/molecules/animated-add-button';
|
|
40
|
+
export * from './lib/molecules/Block';
|
|
41
|
+
export * from './lib/molecules/BlockProvider';
|
|
42
|
+
export * from './lib/molecules/BlockWrapper';
|
|
43
|
+
export * from './lib/molecules/DraggablePane';
|
|
44
|
+
export * from './lib/molecules/EntityNodeBlocks';
|
|
45
|
+
export * from './lib/molecules/json-viewer';
|
|
46
|
+
export * from './lib/molecules/SideHandles';
|
|
47
|
+
export * from './lib/molecules/StencilItem';
|
|
48
|
+
export * from './lib/molecules/WorkflowNodeActionButtons';
|
|
49
|
+
export * from './lib/organisms/AddNodeView';
|
|
50
|
+
export * from './lib/organisms/DownloadPanel';
|
|
51
|
+
export * from './lib/organisms/EdgeModal';
|
|
52
|
+
export * from './lib/organisms/NodeContextMenu';
|
|
53
|
+
export * from './lib/organisms/SmartDynamicForm';
|
|
54
|
+
export * from './lib/organisms/Stencil';
|
|
55
|
+
export * from './lib/organisms/UseDiagramStore';
|
|
56
|
+
export * from './lib/organisms/ConditionRuleGroup';
|
|
57
|
+
export * from './lib/organisms/WorkflowNode';
|
|
58
|
+
export * from './lib/templates/DiagramContainer';
|
|
59
|
+
export * from './lib/templates/DiagramContent';
|
|
60
|
+
export * from './lib/templates/Diagramming';
|
|
61
|
+
export type { DiagrammingPageRef } from './lib/templates/Diagramming';
|
|
62
|
+
export * from './lib/templates/PageLinks';
|
|
63
|
+
export * from './lib/types/card-node';
|
|
64
|
+
export * from './lib/types/collaboration-types';
|
|
65
|
+
export * from './lib/types/colors';
|
|
66
|
+
export * from './lib/types/edge-types';
|
|
67
|
+
export * from './lib/types/hooks.types';
|
|
68
|
+
export * from './lib/types/node-types';
|
|
69
|
+
export * from './lib/types/SmartDynamicFormField';
|
|
70
|
+
export * from './lib/types/stencil-item';
|
|
71
|
+
export * from './lib/types/structures';
|
|
72
|
+
export * from './lib/types/workflow-content-dynamic-form-type';
|
|
73
|
+
export * from './lib/types/FunctionSignature';
|
|
74
|
+
export * from './lib/utils/add-new-block';
|
|
75
|
+
export * from './lib/utils/add-new-node';
|
|
76
|
+
export * from './lib/utils/addToHistory';
|
|
77
|
+
export * from './lib/utils/closestPoint';
|
|
78
|
+
export * from './lib/utils/color-options';
|
|
79
|
+
export * from './lib/utils/compress-img';
|
|
80
|
+
export * from './lib/utils/constant-lengths';
|
|
81
|
+
export * from './lib/utils/create-updated';
|
|
82
|
+
export * from './lib/utils/createHistoryChange';
|
|
83
|
+
export * from './lib/utils/edge-hooks';
|
|
84
|
+
export * from './lib/utils/elkLayout';
|
|
85
|
+
export * from './lib/utils/event-hooks';
|
|
86
|
+
export * from './lib/utils/event-store';
|
|
87
|
+
export * from './lib/utils/flow-node-hooks';
|
|
88
|
+
export * from './lib/utils/flow-to-js';
|
|
89
|
+
export * from './lib/utils/helpers.types';
|
|
90
|
+
export * from './lib/utils/logger';
|
|
91
|
+
export * from './lib/utils/model-hooks';
|
|
92
|
+
export * from './lib/utils/node-hooks';
|
|
93
|
+
export { useHistory, useHistoryIndex } from './lib/contexts/DiagramProvider';
|
|
94
|
+
export * from './lib/utils/object';
|
|
95
|
+
export * from './lib/utils/nodeutils';
|
|
96
|
+
export * from './lib/utils/utilities';
|
|
97
|
+
export * from './lib/utils/vhToPixels';
|
|
98
|
+
export * from './lib/assets/markers/markers.param';
|
|
99
|
+
export * from './lib/assets/markers/markers.type';
|
|
100
|
+
export * from './lib/organisms/Card/card.params';
|
|
101
|
+
export * from './lib/organisms/Card/card.types';
|
|
102
|
+
export * from './lib/organisms/Card/EntityNode';
|
|
103
|
+
export * from './lib/organisms/CustomEdge/custom-edge-generator';
|
|
104
|
+
export * from './lib/organisms/CustomEdge/custom-edge.params';
|
|
105
|
+
export * from './lib/organisms/CustomEdge/custom-edge.type';
|
|
106
|
+
export * from './lib/organisms/PropertiesPane';
|
|
107
|
+
export * from './lib/organisms/HistoryPane';
|
|
108
|
+
//export * from './lib/types/workflow-node-data-types';
|
|
109
|
+
export * from './lib/templates/node-forms/NodeForm';
|
|
110
|
+
export { AutomationExecutionEngine } from './lib/utils/AutomationExecutionEngine';
|
|
111
|
+
export type {
|
|
112
|
+
AutomationLog,
|
|
113
|
+
AutomationResult,
|
|
114
|
+
} from './lib/utils/AutomationExecutionEngine';
|
|
115
|
+
export * from './lib/components/automation';
|
|
116
|
+
export * from './lib/types/automation-node-data-types';
|
|
@@ -1,76 +1,76 @@
|
|
|
1
|
-
import React, { useCallback, useEffect, useRef, useState } from 'react';
|
|
2
|
-
import { Box, TextField } from '@mui/material';
|
|
3
|
-
import { ICardNode } from '../types/card-node';
|
|
4
|
-
import { useCustomReactFlow } from '../hooks/customUseReactFlow';
|
|
5
|
-
import { useNodeId, useNodeTitle } from '
|
|
6
|
-
|
|
7
|
-
export const CardEditableTitle = React.memo(() => {
|
|
8
|
-
const title = useNodeTitle()
|
|
9
|
-
const nodeId = useNodeId()
|
|
10
|
-
const { getNodes, setNodes } = useCustomReactFlow();
|
|
11
|
-
const [text, setText] = useState(title);
|
|
12
|
-
const inputRef = useRef<HTMLInputElement>(null);
|
|
13
|
-
|
|
14
|
-
useEffect(() => {
|
|
15
|
-
if (title !== text) setText(title);
|
|
16
|
-
}, [title]);
|
|
17
|
-
|
|
18
|
-
const changeTitle = useCallback(
|
|
19
|
-
(val: string) => {
|
|
20
|
-
const prevNodes = [...getNodes()] as ICardNode[];
|
|
21
|
-
const newNodes: ICardNode[] = prevNodes.map((node) => {
|
|
22
|
-
if (node.id === nodeId) {
|
|
23
|
-
return {
|
|
24
|
-
...node,
|
|
25
|
-
data: { ...node.data, title: val },
|
|
26
|
-
};
|
|
27
|
-
} else return node;
|
|
28
|
-
});
|
|
29
|
-
setNodes(newNodes);
|
|
30
|
-
},
|
|
31
|
-
[getNodes, setNodes, nodeId],
|
|
32
|
-
);
|
|
33
|
-
|
|
34
|
-
const handleSave = useCallback(() => {
|
|
35
|
-
changeTitle(text ?? '');
|
|
36
|
-
}, [text, changeTitle]);
|
|
37
|
-
|
|
38
|
-
const handleKeyDown = useCallback(
|
|
39
|
-
(e: React.KeyboardEvent<HTMLInputElement>) => {
|
|
40
|
-
if (e.key === 'Enter') {
|
|
41
|
-
handleSave();
|
|
42
|
-
} else if (e.key === 'Escape') {
|
|
43
|
-
setText(title);
|
|
44
|
-
}
|
|
45
|
-
},
|
|
46
|
-
[handleSave, title],
|
|
47
|
-
);
|
|
48
|
-
|
|
49
|
-
return (
|
|
50
|
-
<Box
|
|
51
|
-
sx={{
|
|
52
|
-
display: 'flex',
|
|
53
|
-
justifyContent: 'center',
|
|
54
|
-
width: '100%',
|
|
55
|
-
my: 1,
|
|
56
|
-
backgroundColor: '#6B04F1',
|
|
57
|
-
borderRadius: '3px',
|
|
58
|
-
}}
|
|
59
|
-
>
|
|
60
|
-
<TextField
|
|
61
|
-
size={'small'}
|
|
62
|
-
inputProps={{
|
|
63
|
-
style: { fontSize: '18px', fontWeight: 'bold', textAlign: 'center', color: '#fff' },
|
|
64
|
-
}}
|
|
65
|
-
variant="outlined"
|
|
66
|
-
value={text}
|
|
67
|
-
onChange={(e) => setText(e.target.value)}
|
|
68
|
-
onKeyDown={handleKeyDown}
|
|
69
|
-
inputRef={inputRef}
|
|
70
|
-
fullWidth
|
|
71
|
-
/>
|
|
72
|
-
</Box>
|
|
73
|
-
);
|
|
74
|
-
});
|
|
75
|
-
|
|
76
|
-
export default CardEditableTitle;
|
|
1
|
+
import React, { useCallback, useEffect, useRef, useState } from 'react';
|
|
2
|
+
import { Box, TextField } from '@mui/material';
|
|
3
|
+
import { ICardNode } from '../types/card-node';
|
|
4
|
+
import { useCustomReactFlow } from '../hooks/customUseReactFlow';
|
|
5
|
+
import { useNodeId, useNodeTitle } from '@flowuent-labs/diagrams';
|
|
6
|
+
|
|
7
|
+
export const CardEditableTitle = React.memo(() => {
|
|
8
|
+
const title = useNodeTitle()
|
|
9
|
+
const nodeId = useNodeId()
|
|
10
|
+
const { getNodes, setNodes } = useCustomReactFlow();
|
|
11
|
+
const [text, setText] = useState(title);
|
|
12
|
+
const inputRef = useRef<HTMLInputElement>(null);
|
|
13
|
+
|
|
14
|
+
useEffect(() => {
|
|
15
|
+
if (title !== text) setText(title);
|
|
16
|
+
}, [title]);
|
|
17
|
+
|
|
18
|
+
const changeTitle = useCallback(
|
|
19
|
+
(val: string) => {
|
|
20
|
+
const prevNodes = [...getNodes()] as ICardNode[];
|
|
21
|
+
const newNodes: ICardNode[] = prevNodes.map((node) => {
|
|
22
|
+
if (node.id === nodeId) {
|
|
23
|
+
return {
|
|
24
|
+
...node,
|
|
25
|
+
data: { ...node.data, title: val },
|
|
26
|
+
};
|
|
27
|
+
} else return node;
|
|
28
|
+
});
|
|
29
|
+
setNodes(newNodes);
|
|
30
|
+
},
|
|
31
|
+
[getNodes, setNodes, nodeId],
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
const handleSave = useCallback(() => {
|
|
35
|
+
changeTitle(text ?? '');
|
|
36
|
+
}, [text, changeTitle]);
|
|
37
|
+
|
|
38
|
+
const handleKeyDown = useCallback(
|
|
39
|
+
(e: React.KeyboardEvent<HTMLInputElement>) => {
|
|
40
|
+
if (e.key === 'Enter') {
|
|
41
|
+
handleSave();
|
|
42
|
+
} else if (e.key === 'Escape') {
|
|
43
|
+
setText(title);
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
[handleSave, title],
|
|
47
|
+
);
|
|
48
|
+
|
|
49
|
+
return (
|
|
50
|
+
<Box
|
|
51
|
+
sx={{
|
|
52
|
+
display: 'flex',
|
|
53
|
+
justifyContent: 'center',
|
|
54
|
+
width: '100%',
|
|
55
|
+
my: 1,
|
|
56
|
+
backgroundColor: '#6B04F1',
|
|
57
|
+
borderRadius: '3px',
|
|
58
|
+
}}
|
|
59
|
+
>
|
|
60
|
+
<TextField
|
|
61
|
+
size={'small'}
|
|
62
|
+
inputProps={{
|
|
63
|
+
style: { fontSize: '18px', fontWeight: 'bold', textAlign: 'center', color: '#fff' },
|
|
64
|
+
}}
|
|
65
|
+
variant="outlined"
|
|
66
|
+
value={text}
|
|
67
|
+
onChange={(e) => setText(e.target.value)}
|
|
68
|
+
onKeyDown={handleKeyDown}
|
|
69
|
+
inputRef={inputRef}
|
|
70
|
+
fullWidth
|
|
71
|
+
/>
|
|
72
|
+
</Box>
|
|
73
|
+
);
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
export default CardEditableTitle;
|
|
@@ -278,6 +278,19 @@ export const AutomationApiNode: React.FC<AutomationApiNodeProps> = ({ data, sele
|
|
|
278
278
|
transition: 'all 0.2s ease',
|
|
279
279
|
cursor: 'pointer',
|
|
280
280
|
overflow: 'hidden',
|
|
281
|
+
...(data.status === 'Running' && {
|
|
282
|
+
animation: 'pulse-glow 2s ease-in-out infinite',
|
|
283
|
+
'@keyframes pulse-glow': {
|
|
284
|
+
'0%, 100%': {
|
|
285
|
+
boxShadow: '0 0 20px rgba(251, 191, 36, 0.4), 0 0 40px rgba(251, 191, 36, 0.2)',
|
|
286
|
+
borderColor: 'rgba(251, 191, 36, 0.6)',
|
|
287
|
+
},
|
|
288
|
+
'50%': {
|
|
289
|
+
boxShadow: '0 0 30px rgba(251, 191, 36, 0.6), 0 0 60px rgba(251, 191, 36, 0.3)',
|
|
290
|
+
borderColor: 'rgba(251, 191, 36, 0.9)',
|
|
291
|
+
},
|
|
292
|
+
},
|
|
293
|
+
}),
|
|
281
294
|
}}
|
|
282
295
|
onClick={handleJsonClick}
|
|
283
296
|
>
|
|
@@ -322,8 +335,16 @@ export const AutomationApiNode: React.FC<AutomationApiNodeProps> = ({ data, sele
|
|
|
322
335
|
label={data.status}
|
|
323
336
|
size="small"
|
|
324
337
|
sx={{
|
|
325
|
-
backgroundColor:
|
|
326
|
-
|
|
338
|
+
backgroundColor: data.status === 'Completed'
|
|
339
|
+
? 'rgba(37, 99, 235, 0.1)'
|
|
340
|
+
: data.status === 'Running'
|
|
341
|
+
? 'rgba(251, 191, 36, 0.1)'
|
|
342
|
+
: 'rgba(16, 185, 129, 0.1)',
|
|
343
|
+
color: data.status === 'Completed'
|
|
344
|
+
? '#93C5FD'
|
|
345
|
+
: data.status === 'Running'
|
|
346
|
+
? '#FCD34D'
|
|
347
|
+
: '#86EFAC',
|
|
327
348
|
fontWeight: 500,
|
|
328
349
|
fontSize: '12px',
|
|
329
350
|
height: '24px',
|
|
@@ -370,7 +391,7 @@ export const AutomationApiNode: React.FC<AutomationApiNodeProps> = ({ data, sele
|
|
|
370
391
|
{t('automation.apiNode.additionalInfo')}
|
|
371
392
|
</Typography>
|
|
372
393
|
|
|
373
|
-
{(data.formData?.executionResult || data.formData?.schemaMatch) && (
|
|
394
|
+
{data.status === 'Completed' && (data.formData?.executionResult || data.formData?.schemaMatch) && (
|
|
374
395
|
<>
|
|
375
396
|
{/* Schema Row */}
|
|
376
397
|
<Box sx={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', mb: 2 }}>
|
|
@@ -207,6 +207,19 @@ export const AutomationEndNode: React.FC<AutomationEndNodeProps> = ({ data, sele
|
|
|
207
207
|
transition: 'all 0.2s ease',
|
|
208
208
|
cursor: 'pointer',
|
|
209
209
|
overflow: 'hidden',
|
|
210
|
+
...(data.status === 'Running' && {
|
|
211
|
+
animation: 'pulse-glow 2s ease-in-out infinite',
|
|
212
|
+
'@keyframes pulse-glow': {
|
|
213
|
+
'0%, 100%': {
|
|
214
|
+
boxShadow: '0 0 20px rgba(251, 191, 36, 0.4), 0 0 40px rgba(251, 191, 36, 0.2)',
|
|
215
|
+
borderColor: 'rgba(251, 191, 36, 0.6)',
|
|
216
|
+
},
|
|
217
|
+
'50%': {
|
|
218
|
+
boxShadow: '0 0 30px rgba(251, 191, 36, 0.6), 0 0 60px rgba(251, 191, 36, 0.3)',
|
|
219
|
+
borderColor: 'rgba(251, 191, 36, 0.9)',
|
|
220
|
+
},
|
|
221
|
+
},
|
|
222
|
+
}),
|
|
210
223
|
}}
|
|
211
224
|
onClick={handleJsonClick}
|
|
212
225
|
>
|
|
@@ -251,8 +264,16 @@ export const AutomationEndNode: React.FC<AutomationEndNodeProps> = ({ data, sele
|
|
|
251
264
|
label={data.status}
|
|
252
265
|
size="small"
|
|
253
266
|
sx={{
|
|
254
|
-
backgroundColor:
|
|
255
|
-
|
|
267
|
+
backgroundColor: data.status === 'Completed'
|
|
268
|
+
? 'rgba(37, 99, 235, 0.1)'
|
|
269
|
+
: data.status === 'Running'
|
|
270
|
+
? 'rgba(251, 191, 36, 0.1)'
|
|
271
|
+
: 'rgba(16, 185, 129, 0.1)',
|
|
272
|
+
color: data.status === 'Completed'
|
|
273
|
+
? '#93C5FD'
|
|
274
|
+
: data.status === 'Running'
|
|
275
|
+
? '#FCD34D'
|
|
276
|
+
: '#86EFAC',
|
|
256
277
|
fontWeight: 500,
|
|
257
278
|
fontSize: '12px',
|
|
258
279
|
height: '24px',
|
|
@@ -282,6 +282,19 @@ export const AutomationFormattingNode: React.FC<AutomationFormattingNodeProps> =
|
|
|
282
282
|
transition: 'all 0.2s ease',
|
|
283
283
|
cursor: 'pointer',
|
|
284
284
|
overflow: 'hidden',
|
|
285
|
+
...(data.status === 'Running' && {
|
|
286
|
+
animation: 'pulse-glow 2s ease-in-out infinite',
|
|
287
|
+
'@keyframes pulse-glow': {
|
|
288
|
+
'0%, 100%': {
|
|
289
|
+
boxShadow: '0 0 20px rgba(251, 191, 36, 0.4), 0 0 40px rgba(251, 191, 36, 0.2)',
|
|
290
|
+
borderColor: 'rgba(251, 191, 36, 0.6)',
|
|
291
|
+
},
|
|
292
|
+
'50%': {
|
|
293
|
+
boxShadow: '0 0 30px rgba(251, 191, 36, 0.6), 0 0 60px rgba(251, 191, 36, 0.3)',
|
|
294
|
+
borderColor: 'rgba(251, 191, 36, 0.9)',
|
|
295
|
+
},
|
|
296
|
+
},
|
|
297
|
+
}),
|
|
285
298
|
}}
|
|
286
299
|
onClick={handleJsonClick}
|
|
287
300
|
>
|
|
@@ -326,8 +339,16 @@ export const AutomationFormattingNode: React.FC<AutomationFormattingNodeProps> =
|
|
|
326
339
|
label={data.status}
|
|
327
340
|
size="small"
|
|
328
341
|
sx={{
|
|
329
|
-
backgroundColor:
|
|
330
|
-
|
|
342
|
+
backgroundColor: data.status === 'Completed'
|
|
343
|
+
? 'rgba(37, 99, 235, 0.1)'
|
|
344
|
+
: data.status === 'Running'
|
|
345
|
+
? 'rgba(251, 191, 36, 0.1)'
|
|
346
|
+
: 'rgba(16, 185, 129, 0.1)',
|
|
347
|
+
color: data.status === 'Completed'
|
|
348
|
+
? '#93C5FD'
|
|
349
|
+
: data.status === 'Running'
|
|
350
|
+
? '#FCD34D'
|
|
351
|
+
: '#86EFAC',
|
|
331
352
|
fontWeight: 500,
|
|
332
353
|
fontSize: '12px',
|
|
333
354
|
height: '24px',
|
|
@@ -408,7 +429,7 @@ export const AutomationFormattingNode: React.FC<AutomationFormattingNodeProps> =
|
|
|
408
429
|
</Box>
|
|
409
430
|
</Box>
|
|
410
431
|
|
|
411
|
-
{(data.formData?.executionResult || data.formData?.schemaMatch) && (
|
|
432
|
+
{data.status === 'Completed' && (data.formData?.executionResult || data.formData?.schemaMatch) && (
|
|
412
433
|
<>
|
|
413
434
|
{/* Schema Row */}
|
|
414
435
|
<Box sx={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', mb: 2 }}>
|