@flowuent-org/diagramming-core 1.3.10 → 1.4.1
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/.editorconfig +13 -13
- package/.eslintignore +1 -1
- package/.eslintrc.json +35 -35
- package/.prettierignore +3 -3
- package/.prettierrc +3 -3
- package/.vscode/settings.json +6 -6
- package/README.md +95 -95
- package/apps/authentication/tsconfig.app.json +23 -23
- package/apps/authentication/tsconfig.json +21 -21
- package/apps/authentication/tsconfig.spec.json +28 -28
- package/apps/diagramming/.eslintrc.json +18 -18
- package/apps/diagramming/index.html +16 -16
- package/apps/diagramming/project.json +53 -53
- package/apps/diagramming/public/aws-icons/compute/App Runner.svg +17 -17
- package/apps/diagramming/public/aws-icons/compute/Application Auto Scaling.svg +17 -17
- package/apps/diagramming/public/aws-icons/compute/Batch.svg +17 -17
- package/apps/diagramming/public/aws-icons/compute/Bottlerocket.svg +19 -19
- package/apps/diagramming/public/aws-icons/compute/Compute Optimizer.svg +17 -17
- package/apps/diagramming/public/aws-icons/compute/EC2 Auto Scaling.svg +17 -17
- package/apps/diagramming/public/aws-icons/compute/EC2 Image Builder.svg +17 -17
- package/apps/diagramming/public/aws-icons/compute/EC2.svg +17 -17
- package/apps/diagramming/public/aws-icons/compute/Elastic Beanstalk.svg +17 -17
- package/apps/diagramming/public/aws-icons/compute/Elastic Fabric Adapter.svg +17 -17
- package/apps/diagramming/public/aws-icons/compute/Fargate.svg +19 -19
- package/apps/diagramming/public/aws-icons/compute/Genomics CLI.svg +17 -17
- package/apps/diagramming/public/aws-icons/compute/Lambda.svg +17 -17
- package/apps/diagramming/public/aws-icons/compute/Local Zones.svg +17 -17
- package/apps/diagramming/public/aws-icons/compute/NICE DCV.svg +17 -17
- package/apps/diagramming/public/aws-icons/compute/NICE EnginFrame.svg +17 -17
- package/apps/diagramming/public/aws-icons/compute/Nitro Enclaves.svg +17 -17
- package/apps/diagramming/public/aws-icons/compute/Outposts family.svg +17 -17
- package/apps/diagramming/public/aws-icons/compute/Outposts rack.svg +17 -17
- package/apps/diagramming/public/aws-icons/compute/Outposts servers.svg +17 -17
- package/apps/diagramming/public/aws-icons/compute/ParallelCluster.svg +17 -17
- package/apps/diagramming/public/aws-icons/compute/Serverless Application Repository.svg +17 -17
- package/apps/diagramming/public/aws-icons/compute/SimSpace Weaver.svg +17 -17
- package/apps/diagramming/public/aws-icons/compute/Thinkbox Deadline.svg +17 -17
- package/apps/diagramming/public/aws-icons/compute/Thinkbox Frost.svg +17 -17
- package/apps/diagramming/public/aws-icons/compute/Thinkbox Sequoia.svg +17 -17
- package/apps/diagramming/public/aws-icons/compute/Thinkbox Stoke.svg +17 -17
- package/apps/diagramming/public/aws-icons/compute/Thinkbox XMesh.svg +17 -17
- package/apps/diagramming/public/aws-icons/compute/VMware Cloud on AWS.svg +17 -17
- package/apps/diagramming/public/aws-icons/compute/Wavelength.svg +17 -17
- package/apps/diagramming/public/aws-icons/container/ECS Anywhere.svg +17 -17
- package/apps/diagramming/public/aws-icons/container/EKS Anywhere.svg +17 -17
- package/apps/diagramming/public/aws-icons/container/EKS Cloud.svg +17 -17
- package/apps/diagramming/public/aws-icons/container/EKS Distro.svg +17 -17
- package/apps/diagramming/public/aws-icons/container/Elastic Container Registry.svg +17 -17
- package/apps/diagramming/public/aws-icons/container/Elastic Container Service.svg +17 -17
- package/apps/diagramming/public/aws-icons/container/Elastic Kubernetes Service.svg +17 -17
- package/apps/diagramming/public/aws-icons/container/Fargate.svg +19 -19
- package/apps/diagramming/public/aws-icons/container/Red Hat OpenShift Service on AWS.svg +17 -17
- package/apps/diagramming/public/aws-icons/database/Aurora.svg +17 -17
- package/apps/diagramming/public/aws-icons/database/Database Migration Service.svg +17 -17
- package/apps/diagramming/public/aws-icons/database/DocumentDB.svg +17 -17
- package/apps/diagramming/public/aws-icons/database/ElastiCache.svg +17 -17
- package/apps/diagramming/public/aws-icons/database/Keyspaces.svg +15 -15
- package/apps/diagramming/public/aws-icons/database/MemoryDB for Redis.svg +17 -17
- package/apps/diagramming/public/aws-icons/database/Neptune.svg +17 -17
- package/apps/diagramming/public/aws-icons/database/RDS on VMware.svg +17 -17
- package/apps/diagramming/public/aws-icons/database/RDS.svg +17 -17
- package/apps/diagramming/public/aws-icons/database/Timestream.svg +17 -17
- package/apps/diagramming/public/aws-icons/networking/App Mesh.svg +17 -17
- package/apps/diagramming/public/aws-icons/networking/Client VPN.svg +17 -17
- package/apps/diagramming/public/aws-icons/networking/Cloud Directory.svg +17 -17
- package/apps/diagramming/public/aws-icons/networking/Cloud Map.svg +17 -17
- package/apps/diagramming/public/aws-icons/networking/Cloud WAN.svg +17 -17
- package/apps/diagramming/public/aws-icons/networking/CloudFront.svg +17 -17
- package/apps/diagramming/public/aws-icons/networking/Direct Connect.svg +17 -17
- package/apps/diagramming/public/aws-icons/networking/Elastic Load Balancing.svg +17 -17
- package/apps/diagramming/public/aws-icons/networking/Global Accelerator.svg +17 -17
- package/apps/diagramming/public/aws-icons/networking/Private 5G.svg +17 -17
- package/apps/diagramming/public/aws-icons/networking/PrivateLink.svg +17 -17
- package/apps/diagramming/public/aws-icons/networking/Route 53.svg +17 -17
- package/apps/diagramming/public/aws-icons/networking/Site to Site VPN.svg +17 -17
- package/apps/diagramming/public/aws-icons/networking/Transit Gateway.svg +17 -17
- package/apps/diagramming/public/aws-icons/networking/VPC Lattice.svg +17 -17
- package/apps/diagramming/public/aws-icons/networking/Verified Access.svg +17 -17
- package/apps/diagramming/public/aws-icons/networking/Virtual Private Cloud.svg +17 -17
- package/apps/diagramming/public/aws-icons/security/Artifact.svg +17 -17
- package/apps/diagramming/public/aws-icons/security/Audit Manager.svg +17 -17
- package/apps/diagramming/public/aws-icons/security/Certificate Manager.svg +17 -17
- package/apps/diagramming/public/aws-icons/security/CloudHSM.svg +17 -17
- package/apps/diagramming/public/aws-icons/security/Cognito.svg +17 -17
- package/apps/diagramming/public/aws-icons/security/Detective.svg +17 -17
- package/apps/diagramming/public/aws-icons/security/Directory Service.svg +17 -17
- package/apps/diagramming/public/aws-icons/security/Firewall Manager.svg +17 -17
- package/apps/diagramming/public/aws-icons/security/GuardDuty.svg +17 -17
- package/apps/diagramming/public/aws-icons/security/IAM Identity Center.svg +17 -17
- package/apps/diagramming/public/aws-icons/security/Identity and Access Management.svg +17 -17
- package/apps/diagramming/public/aws-icons/security/Inspector.svg +17 -17
- package/apps/diagramming/public/aws-icons/security/Key Management Service.svg +17 -17
- package/apps/diagramming/public/aws-icons/security/Macie.svg +17 -17
- package/apps/diagramming/public/aws-icons/security/Network Firewall.svg +17 -17
- package/apps/diagramming/public/aws-icons/security/Resource Access Manager.svg +17 -17
- package/apps/diagramming/public/aws-icons/security/Secrets Manager.svg +17 -17
- package/apps/diagramming/public/aws-icons/security/Security Hub.svg +17 -17
- package/apps/diagramming/public/aws-icons/security/Security Lake.svg +17 -17
- package/apps/diagramming/public/aws-icons/security/Shield.svg +17 -17
- package/apps/diagramming/public/aws-icons/security/Signer.svg +17 -17
- package/apps/diagramming/public/aws-icons/security/Verified Permissions.svg +17 -17
- package/apps/diagramming/public/aws-icons/security/WAF.svg +17 -17
- package/apps/diagramming/public/aws-icons/storage/Backup.svg +17 -17
- package/apps/diagramming/public/aws-icons/storage/EFS.svg +17 -17
- package/apps/diagramming/public/aws-icons/storage/Elastic Block Store.svg +17 -17
- package/apps/diagramming/public/aws-icons/storage/Elastic Disaster Recovery.svg +15 -15
- package/apps/diagramming/public/aws-icons/storage/FSx for Lustre.svg +17 -17
- package/apps/diagramming/public/aws-icons/storage/FSx for NetApp ONTAP.svg +17 -17
- package/apps/diagramming/public/aws-icons/storage/FSx for OpenZFS.svg +17 -17
- package/apps/diagramming/public/aws-icons/storage/FSx for WFS.svg +17 -17
- package/apps/diagramming/public/aws-icons/storage/FSx.svg +17 -17
- package/apps/diagramming/public/aws-icons/storage/File Cache.svg +17 -17
- package/apps/diagramming/public/aws-icons/storage/S3 on Outposts.svg +17 -17
- package/apps/diagramming/public/aws-icons/storage/Simple Storage Service Glacier.svg +17 -17
- package/apps/diagramming/public/aws-icons/storage/Simple Storage Service.svg +17 -17
- package/apps/diagramming/public/aws-icons/storage/Snowball Edge.svg +17 -17
- package/apps/diagramming/public/aws-icons/storage/Snowball.svg +17 -17
- package/apps/diagramming/public/aws-icons/storage/Snowcone.svg +17 -17
- package/apps/diagramming/public/aws-icons/storage/Snowmobile.svg +17 -17
- package/apps/diagramming/public/aws-icons/storage/Storage Gateway.svg +17 -17
- package/apps/diagramming/public/azure-icons/compute/02112-icon-service-Automanaged-VM.svg +1 -1
- package/apps/diagramming/public/azure-icons/databases/02390-icon-service-Azure-SQL.svg +1 -1
- package/apps/diagramming/public/azure-icons/databases/02392-icon-service-SSIS-Lift-And-Shift-IR.svg +1 -1
- package/apps/diagramming/public/azure-icons/networking/02145-icon-service-Resource-Management-Private-Link.svg +1 -1
- package/apps/diagramming/public/azure-icons/security/02247-icon-service-Microsoft-Defender-for-IoT.svg +1 -1
- package/apps/diagramming/public/sample-node-complete.json +63 -63
- package/apps/diagramming/public/sample-node-data.json +63 -63
- package/apps/diagramming/src/AutomationDiagramData.ts +147 -480
- package/apps/diagramming/src/CollaborationDiagramData.ts +127 -127
- package/apps/diagramming/src/CustomIconExamples.ts +233 -233
- package/apps/diagramming/src/DiagramTabs.tsx +205 -205
- package/apps/diagramming/src/Pages/DevPlayground.tsx +3 -3
- package/apps/diagramming/src/Pages/Home.tsx +111 -111
- package/apps/diagramming/src/SequenceDiagramData.ts +215 -215
- package/apps/diagramming/src/StateMachineDiagramData.ts +64 -64
- package/apps/diagramming/src/UseCaseDiagramData.ts +52 -52
- package/apps/diagramming/src/cloud-data.ts +371 -371
- package/apps/diagramming/src/components/AddNodeView.tsx +252 -252
- package/apps/diagramming/src/createSelecors.tsx +17 -17
- package/apps/diagramming/src/index.scss +12 -12
- package/apps/diagramming/src/main.tsx +463 -463
- package/apps/diagramming/src/node-data.ts +664 -664
- package/apps/diagramming/src/sample-workflow-content.ts +55 -55
- package/apps/diagramming/src/stencil-items.ts +31 -31
- package/apps/diagramming/src/style.css +13 -13
- package/apps/diagramming/src/tabsStore.tsx +152 -152
- package/apps/diagramming/src/vite-env.d.ts +1 -1
- package/apps/diagramming/tsconfig.app.json +23 -23
- package/apps/diagramming/tsconfig.json +21 -21
- package/apps/diagramming/tsconfig.spec.json +28 -28
- package/apps/diagramming/vite.config.ts +34 -34
- package/apps/diagramming/webpack.config.js +13 -13
- package/apps/workflow/.eslintrc.json +18 -18
- package/apps/workflow/group/group-form-hooks/index.ts +3 -3
- package/apps/workflow/group/group-form-hooks/useFormValidation.ts +20 -20
- package/apps/workflow/group/group-form-schema/SettingsTabFormSchema.ts +7 -7
- package/apps/workflow/group/group-form-schema/index.ts +3 -3
- package/apps/workflow/i18n.ts +19 -19
- package/apps/workflow/index.html +16 -16
- package/apps/workflow/locales/en/translation.json +713 -713
- package/apps/workflow/project.json +8 -8
- package/apps/workflow/src/app/app.module.css +1 -1
- package/apps/workflow/src/app/app.spec.tsx +15 -15
- package/apps/workflow/src/app/app.tsx +370 -370
- package/apps/workflow/src/main.tsx +13 -13
- package/apps/workflow/src/styles.css +1 -1
- package/apps/workflow/src/theme/index.ts +546 -546
- package/apps/workflow/tsconfig.app.json +23 -23
- package/apps/workflow/tsconfig.json +21 -21
- package/apps/workflow/tsconfig.spec.json +28 -28
- package/apps/workflow/vite.config.ts +51 -51
- package/nx.json +58 -58
- package/package.json +1 -1
- package/packages/api/.babelrc +12 -12
- package/packages/api/.eslintrc.json +18 -18
- package/packages/api/README.md +7 -7
- package/packages/api/project.json +8 -8
- package/packages/api/src/index.ts +3 -3
- package/packages/api/src/lib/jsonPlaceholderService/endpoints.ts +3 -3
- package/packages/api/src/lib/jsonPlaceholderService/service.ts +13 -13
- package/packages/api/tsconfig.json +17 -17
- package/packages/api/tsconfig.lib.json +24 -24
- package/packages/atoms/.babelrc +12 -12
- package/packages/atoms/.eslintrc.json +18 -18
- package/packages/atoms/README.md +7 -7
- package/packages/atoms/forms/AuthenticationTabForm/authenticationTabForm.json +224 -224
- package/packages/atoms/forms/AuthenticationTabForm/index.tsx +255 -255
- package/packages/atoms/forms/SettingsTabForm/index.tsx +85 -85
- package/packages/atoms/forms/SettingsTabForm/settingTabForm.json +27 -27
- package/packages/atoms/forms/index.ts +4 -4
- package/packages/atoms/project.json +8 -8
- package/packages/atoms/src/index.ts +33 -33
- package/packages/atoms/src/lib/Accordion/Accordion.module.css +7 -7
- package/packages/atoms/src/lib/Accordion/Accordion.spec.tsx +13 -13
- package/packages/atoms/src/lib/Accordion/Accordion.tsx +29 -29
- package/packages/atoms/src/lib/Alert/Alert.module.css +7 -7
- package/packages/atoms/src/lib/Alert/Alert.spec.tsx +10 -10
- package/packages/atoms/src/lib/Alert/Alert.tsx +19 -19
- package/packages/atoms/src/lib/Avatar/Avatar.module.css +7 -7
- package/packages/atoms/src/lib/Avatar/Avatar.spec.tsx +10 -10
- package/packages/atoms/src/lib/Avatar/Avatar.tsx +22 -22
- package/packages/atoms/src/lib/Box/Box.module.css +7 -7
- package/packages/atoms/src/lib/Box/Box.spec.tsx +10 -10
- package/packages/atoms/src/lib/Box/Box.tsx +19 -19
- package/packages/atoms/src/lib/BulkEdit/BulkEdit.module.css +7 -7
- package/packages/atoms/src/lib/BulkEdit/BulkEdit.spec.tsx +10 -10
- package/packages/atoms/src/lib/BulkEdit/BulkEdit.tsx +15 -15
- package/packages/atoms/src/lib/Button/Button.module.css +7 -7
- package/packages/atoms/src/lib/Button/Button.spec.tsx +10 -10
- package/packages/atoms/src/lib/Button/Button.tsx +78 -78
- package/packages/atoms/src/lib/Card/Card.module.css +7 -7
- package/packages/atoms/src/lib/Card/Card.spec.tsx +10 -10
- package/packages/atoms/src/lib/Card/Card.tsx +19 -19
- package/packages/atoms/src/lib/CardContent/CardContent.module.css +7 -7
- package/packages/atoms/src/lib/CardContent/CardContent.spec.tsx +10 -10
- package/packages/atoms/src/lib/CardContent/CardContent.tsx +22 -22
- package/packages/atoms/src/lib/FormTextField/FormTextField.module.css +7 -7
- package/packages/atoms/src/lib/FormTextField/FormTextField.spec.tsx +10 -10
- package/packages/atoms/src/lib/FormTextField/FormTextField.tsx +35 -35
- package/packages/atoms/src/lib/Grid/Grid.module.css +7 -7
- package/packages/atoms/src/lib/Grid/Grid.spec.tsx +10 -10
- package/packages/atoms/src/lib/Grid/Grid.tsx +19 -19
- package/packages/atoms/src/lib/Stack/Stack.module.css +7 -7
- package/packages/atoms/src/lib/Stack/Stack.spec.tsx +10 -10
- package/packages/atoms/src/lib/Stack/Stack.tsx +19 -19
- package/packages/atoms/src/lib/Switch/Switch.module.css +7 -7
- package/packages/atoms/src/lib/Switch/Switch.spec.tsx +10 -10
- package/packages/atoms/src/lib/Switch/Switch.tsx +46 -46
- package/packages/atoms/src/lib/TableView/TableView.module.css +7 -7
- package/packages/atoms/src/lib/TableView/TableView.spec.tsx +10 -10
- package/packages/atoms/src/lib/TableView/TableView.tsx +88 -88
- package/packages/atoms/src/lib/TextField/TextField.module.css +7 -7
- package/packages/atoms/src/lib/TextField/TextField.spec.tsx +10 -10
- package/packages/atoms/src/lib/TextField/TextField.tsx +17 -17
- package/packages/atoms/src/lib/Typography/Typography.module.css +7 -7
- package/packages/atoms/src/lib/Typography/Typography.spec.tsx +10 -10
- package/packages/atoms/src/lib/Typography/Typography.tsx +22 -22
- package/packages/atoms/tsconfig.json +17 -17
- package/packages/atoms/tsconfig.lib.json +30 -30
- package/packages/common/.babelrc +12 -12
- package/packages/common/.eslintrc.json +18 -18
- package/packages/common/README.md +7 -7
- package/packages/common/project.json +8 -8
- package/packages/common/src/index.ts +4 -4
- package/packages/common/src/lib/generateRandomProfilePic.ts +3 -3
- package/packages/common/src/lib/generateValidationSchema.ts +46 -46
- package/packages/common/tsconfig.json +17 -17
- package/packages/common/tsconfig.lib.json +24 -24
- package/packages/contexts/.babelrc +12 -12
- package/packages/contexts/.eslintrc.json +18 -18
- package/packages/contexts/README.md +7 -7
- package/packages/contexts/project.json +8 -8
- package/packages/contexts/src/index.ts +2 -2
- package/packages/contexts/tsconfig.json +17 -17
- package/packages/contexts/tsconfig.lib.json +24 -24
- package/packages/diagrams/.babelrc +12 -12
- package/packages/diagrams/.ctirc +208 -208
- package/packages/diagrams/.eslintrc.json +17 -17
- package/packages/diagrams/CUSTOM_ICONS.md +232 -232
- package/packages/diagrams/GOOGLE_SHEETS_IMPLEMENTATION.md +233 -233
- package/packages/diagrams/NODE_DATA_UPDATE_API.md +430 -430
- package/packages/diagrams/README.md +7 -7
- package/packages/diagrams/UNDO_REDO_API.md +306 -306
- package/packages/diagrams/locales/en/translation.json +713 -713
- package/packages/diagrams/package.json +27 -27
- package/packages/diagrams/pnpm-lock.yaml +2606 -2606
- package/packages/diagrams/project.json +42 -42
- package/packages/diagrams/rollup.config.js +26 -26
- package/packages/diagrams/src/DiagramFlow.tsx +7 -7
- package/packages/diagrams/src/declarations.d.ts +7 -7
- package/packages/diagrams/src/index.ts +8 -1
- package/packages/diagrams/src/index.ts.bak +99 -99
- package/packages/diagrams/src/lib/assets/markers/markers.param.tsx +101 -101
- package/packages/diagrams/src/lib/assets/markers/markers.type.ts +10 -10
- package/packages/diagrams/src/lib/atoms/ActorNode.tsx +123 -123
- package/packages/diagrams/src/lib/atoms/AddParallelColButton.tsx +26 -26
- package/packages/diagrams/src/lib/atoms/BendpointNode.tsx +71 -71
- package/packages/diagrams/src/lib/atoms/CardBlockTypeSelector.tsx +35 -35
- package/packages/diagrams/src/lib/atoms/CardEditableTitle.tsx +76 -76
- package/packages/diagrams/src/lib/atoms/CardMainContent.tsx +19 -19
- package/packages/diagrams/src/lib/atoms/ConnectionPoints.tsx +149 -149
- package/packages/diagrams/src/lib/atoms/ContentAssist.tsx +341 -341
- package/packages/diagrams/src/lib/atoms/DiagramControls.tsx +56 -56
- package/packages/diagrams/src/lib/atoms/ExpressionInput.tsx +437 -437
- package/packages/diagrams/src/lib/atoms/FloatingConnectionLine.tsx +73 -73
- package/packages/diagrams/src/lib/atoms/LazyIcon.tsx +31 -31
- package/packages/diagrams/src/lib/atoms/MarkerSelector.tsx +106 -106
- package/packages/diagrams/src/lib/atoms/MultiSelectInput.tsx +87 -87
- package/packages/diagrams/src/lib/atoms/ParameterInput.tsx +199 -199
- package/packages/diagrams/src/lib/atoms/PropertyInput.tsx +114 -114
- package/packages/diagrams/src/lib/atoms/StyledBox.tsx +69 -69
- package/packages/diagrams/src/lib/atoms/ValidationError.tsx +37 -37
- package/packages/diagrams/src/lib/atoms/ValidationMessage.tsx +63 -63
- package/packages/diagrams/src/lib/components/AiButton.tsx +52 -52
- package/packages/diagrams/src/lib/components/ControlEdgeList.tsx +303 -303
- package/packages/diagrams/src/lib/components/CreateFunctionModal.tsx +264 -264
- package/packages/diagrams/src/lib/components/CustomCodeModal.tsx +287 -287
- package/packages/diagrams/src/lib/components/DiagramPanel.tsx +331 -331
- package/packages/diagrams/src/lib/components/FunctionModalTooltip.tsx +30 -30
- package/packages/diagrams/src/lib/components/GraphQLCustomCodeModal.tsx +210 -210
- package/packages/diagrams/src/lib/components/Header.tsx +143 -143
- package/packages/diagrams/src/lib/components/MiniMapCommon.tsx +24 -24
- package/packages/diagrams/src/lib/components/ResizeIcon.tsx +81 -81
- package/packages/diagrams/src/lib/components/SideBar.tsx +40 -40
- package/packages/diagrams/src/lib/components/automation/AISuggestionsModal.tsx +269 -269
- package/packages/diagrams/src/lib/components/automation/AISuggestionsPanel.tsx +28 -175
- package/packages/diagrams/src/lib/components/automation/AutomationApiNode.tsx +1 -1
- package/packages/diagrams/src/lib/components/automation/AutomationDecisionNode.tsx +94 -0
- package/packages/diagrams/src/lib/components/automation/AutomationEndNode.tsx +1 -1
- package/packages/diagrams/src/lib/components/automation/AutomationExecutionPanel.tsx +439 -439
- package/packages/diagrams/src/lib/components/automation/AutomationFormattingNode.tsx +1 -1
- package/packages/diagrams/src/lib/components/automation/AutomationInteractionNode.tsx +693 -693
- package/packages/diagrams/src/lib/components/automation/AutomationMonitoringNode.tsx +399 -399
- package/packages/diagrams/src/lib/components/automation/AutomationNavigationNode.tsx +1 -1
- package/packages/diagrams/src/lib/components/automation/AutomationNodeCard.tsx +414 -0
- package/packages/diagrams/src/lib/components/automation/AutomationSlackNode.tsx +694 -694
- package/packages/diagrams/src/lib/components/automation/AutomationSmsNode.tsx +62 -0
- package/packages/diagrams/src/lib/components/automation/AutomationStartNode.tsx +1 -1
- package/packages/diagrams/src/lib/components/automation/AutomationTelegramNode.tsx +664 -664
- package/packages/diagrams/src/lib/components/automation/AutomationVoiceCallNode.tsx +65 -0
- package/packages/diagrams/src/lib/components/automation/AutomationWorkflowNode.tsx +85 -0
- package/packages/diagrams/src/lib/components/automation/NodeAIAssistantPopup.tsx +504 -504
- package/packages/diagrams/src/lib/components/automation/index.ts +29 -19
- package/packages/diagrams/src/lib/components/automation/statusColors.ts +124 -124
- package/packages/diagrams/src/lib/contexts/CardDataProvider.tsx +111 -111
- package/packages/diagrams/src/lib/contexts/DiagramProvider.tsx +392 -391
- package/packages/diagrams/src/lib/contexts/diagramStoreTypes.tsx +134 -134
- package/packages/diagrams/src/lib/contexts/onConnect.ts +39 -39
- package/packages/diagrams/src/lib/contexts/onDragStart.ts +45 -45
- package/packages/diagrams/src/lib/contexts/onNodeDragEnd.ts +179 -179
- package/packages/diagrams/src/lib/contexts/onNodesChange.ts +406 -406
- package/packages/diagrams/src/lib/contexts/onReconnect.ts +59 -59
- package/packages/diagrams/src/lib/contexts/onWorkflowNodeDelete.ts +65 -65
- package/packages/diagrams/src/lib/contexts/setContentHeight.ts +14 -14
- package/packages/diagrams/src/lib/contexts/setDiagramType.ts +10 -10
- package/packages/diagrams/src/lib/contexts/setEdgeShapeType.ts +7 -7
- package/packages/diagrams/src/lib/contexts/setEdges.ts +9 -9
- package/packages/diagrams/src/lib/contexts/setLayoutDirection.ts +9 -9
- package/packages/diagrams/src/lib/contexts/setNodeSetting.ts +17 -17
- package/packages/diagrams/src/lib/contexts/setNodes.ts +10 -10
- package/packages/diagrams/src/lib/contexts/setPannable.ts +7 -7
- package/packages/diagrams/src/lib/contexts/setSelectedEdge.ts +7 -7
- package/packages/diagrams/src/lib/contexts/setSelectedNode.ts +7 -7
- package/packages/diagrams/src/lib/contexts/undo.ts +163 -163
- package/packages/diagrams/src/lib/contexts/updateNodeSetting.ts +17 -17
- package/packages/diagrams/src/lib/examples/TwilioWhatsAppConfigExample.ts +128 -128
- package/packages/diagrams/src/lib/externals.ts +4 -4
- package/packages/diagrams/src/lib/hooks/customUseReactFlow.tsx +90 -90
- package/packages/diagrams/src/lib/hooks/updateNodes.ts +45 -45
- package/packages/diagrams/src/lib/hooks/useAddChildButton.tsx +61 -61
- package/packages/diagrams/src/lib/hooks/useAddSwitchCase.ts +75 -75
- package/packages/diagrams/src/lib/hooks/useAutoRegisterFunctions.ts +135 -135
- package/packages/diagrams/src/lib/hooks/useAutoRegisterVariables.ts +286 -286
- package/packages/diagrams/src/lib/hooks/useDeleteNodeByEvent.ts +64 -64
- package/packages/diagrams/src/lib/hooks/useDragCallbacks.tsx +122 -122
- package/packages/diagrams/src/lib/hooks/useFormValidation.ts +349 -349
- package/packages/diagrams/src/lib/hooks/useFunctionFormCallbacks.ts +136 -136
- package/packages/diagrams/src/lib/hooks/useIsSelectedNode.ts +11 -11
- package/packages/diagrams/src/lib/hooks/useModalControls.ts +13 -13
- package/packages/diagrams/src/lib/hooks/useNodeDragHandlers.ts +43 -43
- package/packages/diagrams/src/lib/hooks/useNodeSelection.ts +55 -55
- package/packages/diagrams/src/lib/hooks/useRenderDividers.tsx +19 -19
- package/packages/diagrams/src/lib/hooks/useRenderPins.tsx +74 -74
- package/packages/diagrams/src/lib/hooks/useResizeObserver.ts +21 -21
- package/packages/diagrams/src/lib/hooks/useTreeChildNode.ts +536 -536
- package/packages/diagrams/src/lib/i18n.ts +42 -42
- package/packages/diagrams/src/lib/icons/icons.tsx +324 -0
- package/packages/diagrams/src/lib/icons/index.ts +29 -0
- package/packages/diagrams/src/lib/icons/types.ts +7 -0
- package/packages/diagrams/src/lib/molecules/AddingBlock.tsx +147 -147
- package/packages/diagrams/src/lib/molecules/AvailableVariablesDisplay.tsx +57 -57
- package/packages/diagrams/src/lib/molecules/Block.tsx +143 -143
- package/packages/diagrams/src/lib/molecules/BlockProvider.tsx +28 -28
- package/packages/diagrams/src/lib/molecules/BlockWrapper.tsx +14 -14
- package/packages/diagrams/src/lib/molecules/ConditionRule.tsx +131 -131
- package/packages/diagrams/src/lib/molecules/DraggablePane.tsx +198 -198
- package/packages/diagrams/src/lib/molecules/EntityNodeBlocks.tsx +66 -66
- package/packages/diagrams/src/lib/molecules/SideHandles.tsx +215 -215
- package/packages/diagrams/src/lib/molecules/StencilItem.tsx +85 -85
- package/packages/diagrams/src/lib/molecules/WorkflowNodeActionButtons.tsx +62 -62
- package/packages/diagrams/src/lib/molecules/animated-add-button.tsx +83 -83
- package/packages/diagrams/src/lib/molecules/json-viewer.tsx +107 -107
- package/packages/diagrams/src/lib/organisms/AddNodeView.tsx +102 -102
- package/packages/diagrams/src/lib/organisms/Card/EntityNode.tsx +259 -259
- package/packages/diagrams/src/lib/organisms/Card/card.params.ts +29 -29
- package/packages/diagrams/src/lib/organisms/Card/card.types.ts +5 -5
- package/packages/diagrams/src/lib/organisms/CodeModal.tsx +105 -105
- package/packages/diagrams/src/lib/organisms/ConditionRuleGroup.tsx +138 -138
- package/packages/diagrams/src/lib/organisms/CustomEdge/EdgeMarkers.tsx +51 -51
- package/packages/diagrams/src/lib/organisms/CustomEdge/custom-edge-generator.tsx +135 -135
- package/packages/diagrams/src/lib/organisms/CustomEdge/custom-edge.params.ts +6 -6
- package/packages/diagrams/src/lib/organisms/CustomEdge/custom-edge.type.ts +15 -15
- package/packages/diagrams/src/lib/organisms/CustomEdge/useCreateBendPoint.tsx +121 -121
- package/packages/diagrams/src/lib/organisms/CustomEdge/useEdgeModal.ts +37 -37
- package/packages/diagrams/src/lib/organisms/CustomEdge/useEdgePath.tsx +99 -99
- package/packages/diagrams/src/lib/organisms/DownloadPanel.tsx +345 -345
- package/packages/diagrams/src/lib/organisms/EdgeModal.tsx +243 -243
- package/packages/diagrams/src/lib/organisms/HistoryPane.tsx +118 -118
- package/packages/diagrams/src/lib/organisms/NodeContextMenu.tsx +259 -259
- package/packages/diagrams/src/lib/organisms/PropertiesPane.tsx +276 -276
- package/packages/diagrams/src/lib/organisms/SmartDynamicForm.tsx +226 -226
- package/packages/diagrams/src/lib/organisms/Stencil.tsx +60 -60
- package/packages/diagrams/src/lib/organisms/UseDiagramStore.tsx +4 -4
- package/packages/diagrams/src/lib/organisms/WorkFlowNode/NodeActionButtons.tsx +45 -45
- package/packages/diagrams/src/lib/organisms/WorkFlowNode/NodeTypeDisplay.tsx +114 -114
- package/packages/diagrams/src/lib/organisms/WorkFlowNode/WorkflowNodeIcons.tsx +21 -23
- package/packages/diagrams/src/lib/organisms/WorkflowNode.tsx +484 -484
- package/packages/diagrams/src/lib/services/GoogleSheetsService.ts +961 -961
- package/packages/diagrams/src/lib/services/SlackService.ts +134 -134
- package/packages/diagrams/src/lib/services/TwilioWhatsAppService.ts +273 -273
- package/packages/diagrams/src/lib/styles.css +55 -55
- package/packages/diagrams/src/lib/templates/PageLinks.tsx +13 -13
- package/packages/diagrams/src/lib/templates/arch/ArchDiagram.tsx +793 -793
- package/packages/diagrams/src/lib/templates/arch/components/EdgeDialog.tsx +82 -82
- package/packages/diagrams/src/lib/templates/arch/components/EdgeSettings.tsx +81 -81
- package/packages/diagrams/src/lib/templates/arch/components/GroupControls.tsx +59 -59
- package/packages/diagrams/src/lib/templates/arch/components/GroupSizeDialog.tsx +81 -81
- package/packages/diagrams/src/lib/templates/arch/components/NodeDialog.tsx +214 -214
- package/packages/diagrams/src/lib/templates/arch/components/nodeTypes.ts +91 -91
- package/packages/diagrams/src/lib/templates/arch/controls/ArchDiagramControls.tsx +349 -349
- package/packages/diagrams/src/lib/templates/arch/data/templatee-data.ts +212 -212
- package/packages/diagrams/src/lib/templates/cloud-arch/components/CloudArchitectureDiagram.tsx +3912 -3912
- package/packages/diagrams/src/lib/templates/cloud-arch/components/FormatConverter.tsx +809 -809
- package/packages/diagrams/src/lib/templates/cloud-arch/components/FragmentImporter.tsx +276 -276
- package/packages/diagrams/src/lib/templates/cloud-arch/components/PropertiesPanel.tsx +1063 -1063
- package/packages/diagrams/src/lib/templates/cloud-arch/components/ServiceIconPicker.tsx +138 -138
- package/packages/diagrams/src/lib/templates/cloud-arch/components/SettingsSidebar.tsx +656 -656
- package/packages/diagrams/src/lib/templates/cloud-arch/components/SubnetSelector.tsx +468 -468
- package/packages/diagrams/src/lib/templates/cloud-arch/components/nodes/ServiceNode.tsx +310 -310
- package/packages/diagrams/src/lib/templates/cloud-arch/components/nodes/SubnetNode.tsx +475 -475
- package/packages/diagrams/src/lib/templates/cloud-arch/components/nodes/UsersNode.tsx +277 -277
- package/packages/diagrams/src/lib/templates/cloud-arch/data/diagramManager.ts +364 -364
- package/packages/diagrams/src/lib/templates/cloud-arch/data/types.ts +183 -183
- package/packages/diagrams/src/lib/templates/cloud-arch/integration/diagramValidator.ts +379 -379
- package/packages/diagrams/src/lib/templates/cloud-arch/messages/errorMessages.json +95 -95
- package/packages/diagrams/src/lib/templates/cloud-arch/types/localization.ts +368 -368
- package/packages/diagrams/src/lib/templates/cloud-arch/types/validation.ts +72 -72
- package/packages/diagrams/src/lib/templates/cloud-arch/utils/aws-icons.ts +557 -557
- package/packages/diagrams/src/lib/templates/cloud-arch/utils/awsValidation.ts +446 -446
- package/packages/diagrams/src/lib/templates/cloud-arch/utils/azure-icons.ts +802 -802
- package/packages/diagrams/src/lib/templates/cloud-arch/utils/azureValidation.ts +495 -495
- package/packages/diagrams/src/lib/templates/cloud-arch/utils/cloudValidation.ts +929 -929
- package/packages/diagrams/src/lib/templates/cloud-arch/utils/errorMessages.ts +283 -283
- package/packages/diagrams/src/lib/templates/cloud-arch/utils/gcp-icons.ts +186 -186
- package/packages/diagrams/src/lib/templates/cloud-arch/utils/gcpValidation.ts +312 -312
- package/packages/diagrams/src/lib/templates/cloud-arch/utils/genericValidation.ts +689 -689
- package/packages/diagrams/src/lib/templates/cloud-arch/utils/iconMapping.ts +383 -383
- package/packages/diagrams/src/lib/templates/cloud-arch/utils/idGenerator.ts +220 -220
- package/packages/diagrams/src/lib/templates/cloud-arch/utils/localizationManager.ts +300 -300
- package/packages/diagrams/src/lib/templates/cloud-arch/utils/restrictionEngine.ts +550 -550
- package/packages/diagrams/src/lib/templates/cloud-arch/utils/restrictionValidator.ts +400 -400
- package/packages/diagrams/src/lib/templates/cloud-arch/utils/serviceIcons.tsx +129 -129
- package/packages/diagrams/src/lib/templates/cloud-arch/utils/serviceMapping.ts +330 -330
- package/packages/diagrams/src/lib/templates/cloud-arch/utils/translations.ts +54 -54
- package/packages/diagrams/src/lib/templates/cloud-arch/utils/validationExtractor.ts +342 -342
- package/packages/diagrams/src/lib/templates/collaborationDiagram/CollaborationDiagram.tsx +15 -15
- package/packages/diagrams/src/lib/templates/collaborationDiagram/components/AddCollabEdgeDialog.tsx +181 -181
- package/packages/diagrams/src/lib/templates/collaborationDiagram/components/CollabLayout.ts +182 -182
- package/packages/diagrams/src/lib/templates/collaborationDiagram/components/CollabObjectNodeSettings.tsx +86 -86
- package/packages/diagrams/src/lib/templates/collaborationDiagram/components/CollaborationDiagramFlow.tsx +731 -731
- package/packages/diagrams/src/lib/templates/collaborationDiagram/components/DraggableEdgeLabel.tsx +123 -123
- package/packages/diagrams/src/lib/templates/collaborationDiagram/controls/CollaborationControls.tsx +131 -131
- package/packages/diagrams/src/lib/templates/collaborationDiagram/nodes/CollabEdge.tsx +170 -170
- package/packages/diagrams/src/lib/templates/collaborationDiagram/nodes/CollabObjectNode.tsx +178 -178
- package/packages/diagrams/src/lib/templates/home.style.css +16 -16
- package/packages/diagrams/src/lib/templates/node-forms/ApiForm.tsx +416 -416
- package/packages/diagrams/src/lib/templates/node-forms/CallForm.tsx +370 -370
- package/packages/diagrams/src/lib/templates/node-forms/ForLoopNode.tsx +313 -313
- package/packages/diagrams/src/lib/templates/node-forms/FunctionForm.tsx +211 -211
- package/packages/diagrams/src/lib/templates/node-forms/GraphQLForm.tsx +679 -679
- package/packages/diagrams/src/lib/templates/node-forms/IfNodeForm.tsx +97 -97
- package/packages/diagrams/src/lib/templates/node-forms/LetNodeForm.tsx +533 -533
- package/packages/diagrams/src/lib/templates/node-forms/LoopNode.tsx +149 -149
- package/packages/diagrams/src/lib/templates/node-forms/NodeForm.tsx +383 -383
- package/packages/diagrams/src/lib/templates/node-forms/ReturnNodeForm.tsx +96 -96
- package/packages/diagrams/src/lib/templates/node-forms/SetNodeForm.tsx +141 -141
- package/packages/diagrams/src/lib/templates/node-forms/SwitchNodeForm.tsx +249 -249
- package/packages/diagrams/src/lib/templates/node-forms/TryCatchForm.tsx +167 -167
- package/packages/diagrams/src/lib/templates/nodeFormSchema.json +84 -84
- package/packages/diagrams/src/lib/templates/sequence/SequenceDiagram.tsx +22 -22
- package/packages/diagrams/src/lib/templates/sequence/components/ActivationBarNode.tsx +33 -33
- package/packages/diagrams/src/lib/templates/sequence/components/AddMessageDialog.tsx +302 -302
- package/packages/diagrams/src/lib/templates/sequence/components/CombinedFragmentNode.tsx +65 -65
- package/packages/diagrams/src/lib/templates/sequence/components/EntitySettings.tsx +559 -559
- package/packages/diagrams/src/lib/templates/sequence/components/FragmentSettings.tsx +116 -116
- package/packages/diagrams/src/lib/templates/sequence/components/SequenceComponents.tsx +14 -14
- package/packages/diagrams/src/lib/templates/sequence/components/SequenceDiagramFlow.tsx +1361 -1361
- package/packages/diagrams/src/lib/templates/sequence/components/SequenceEntityNode.tsx +394 -394
- package/packages/diagrams/src/lib/templates/sequence/components/SequenceMessageEdge.tsx +272 -272
- package/packages/diagrams/src/lib/templates/sequence/components/SimpleEntitySettings.tsx +89 -89
- package/packages/diagrams/src/lib/templates/sequence/controls/DiagramControls.tsx +707 -707
- package/packages/diagrams/src/lib/templates/sequence/data/template-data.ts +635 -635
- package/packages/diagrams/src/lib/templates/stateMachine/StateMachineDiagram.tsx +66 -66
- package/packages/diagrams/src/lib/templates/stateMachine/components/CompositeStateNodeSettings.tsx +638 -638
- package/packages/diagrams/src/lib/templates/stateMachine/components/CustomEdge.tsx +220 -220
- package/packages/diagrams/src/lib/templates/stateMachine/components/EdgeSettings.tsx +193 -193
- package/packages/diagrams/src/lib/templates/stateMachine/components/SelfConnectingEdge.tsx +41 -41
- package/packages/diagrams/src/lib/templates/stateMachine/components/StateMachineComponents.tsx +49 -49
- package/packages/diagrams/src/lib/templates/stateMachine/components/StateMachineDiagramFlow.tsx +1238 -1238
- package/packages/diagrams/src/lib/templates/stateMachine/components/StateMachineLayout.ts +350 -350
- package/packages/diagrams/src/lib/templates/stateMachine/components/StateNodeSettings.tsx +188 -188
- package/packages/diagrams/src/lib/templates/stateMachine/components/useSelfTransition.ts +114 -114
- package/packages/diagrams/src/lib/templates/stateMachine/controls/StateDiagramControls.tsx +488 -488
- package/packages/diagrams/src/lib/templates/stateMachine/data/template-data.ts +4 -4
- package/packages/diagrams/src/lib/templates/stateMachine/nodes/ChoicePointNode.tsx +54 -54
- package/packages/diagrams/src/lib/templates/stateMachine/nodes/CompositeStateNode.tsx +225 -225
- package/packages/diagrams/src/lib/templates/stateMachine/nodes/EntryPointNode.tsx +31 -31
- package/packages/diagrams/src/lib/templates/stateMachine/nodes/ExitPointNode.tsx +44 -44
- package/packages/diagrams/src/lib/templates/stateMachine/nodes/FinalStateNode.tsx +41 -41
- package/packages/diagrams/src/lib/templates/stateMachine/nodes/ForkJoinNode.tsx +53 -53
- package/packages/diagrams/src/lib/templates/stateMachine/nodes/HistoryStateNode.tsx +36 -36
- package/packages/diagrams/src/lib/templates/stateMachine/nodes/InitialStateNode.tsx +29 -29
- package/packages/diagrams/src/lib/templates/stateMachine/nodes/JunctionPointNode.tsx +33 -33
- package/packages/diagrams/src/lib/templates/stateMachine/nodes/PinPointNode.tsx +111 -111
- package/packages/diagrams/src/lib/templates/stateMachine/nodes/StateNode.tsx +124 -124
- package/packages/diagrams/src/lib/templates/stateMachine/nodes/bendPoint.tsx +71 -71
- package/packages/diagrams/src/lib/templates/systemFlow/SystemFlowDiagram.tsx +67 -67
- package/packages/diagrams/src/lib/templates/systemFlow/components/EdgeSettings.tsx +330 -330
- package/packages/diagrams/src/lib/templates/systemFlow/components/FloatingEdge.tsx +219 -219
- package/packages/diagrams/src/lib/templates/systemFlow/components/SystemFlowComponents.tsx +28 -28
- package/packages/diagrams/src/lib/templates/systemFlow/components/SystemFlowDiagramFlow.tsx +1179 -1179
- package/packages/diagrams/src/lib/templates/systemFlow/components/SystemFlowNodeSettings.tsx +151 -151
- package/packages/diagrams/src/lib/templates/systemFlow/controls/SystemFlowControls.tsx +435 -435
- package/packages/diagrams/src/lib/templates/systemFlow/data/template-data.ts +308 -308
- package/packages/diagrams/src/lib/templates/systemFlow/demo.tsx +91 -91
- package/packages/diagrams/src/lib/templates/systemFlow/index.ts +5 -5
- package/packages/diagrams/src/lib/templates/systemFlow/nodes/BendpointNode.tsx +80 -80
- package/packages/diagrams/src/lib/templates/systemFlow/nodes/SystemNode.tsx +92 -92
- package/packages/diagrams/src/lib/templates/systemFlow/nodes/TreeSystemNode.tsx +755 -755
- package/packages/diagrams/src/lib/templates/useCaseDiagram/UseCaseDiagram.tsx +16 -16
- package/packages/diagrams/src/lib/templates/useCaseDiagram/components/ActorNodeSettings.tsx +103 -103
- package/packages/diagrams/src/lib/templates/useCaseDiagram/components/AddRelationshipDialog.tsx +186 -186
- package/packages/diagrams/src/lib/templates/useCaseDiagram/components/PackageNodeSettings.tsx +205 -205
- package/packages/diagrams/src/lib/templates/useCaseDiagram/components/UseCaseDiagramFlow.tsx +637 -637
- package/packages/diagrams/src/lib/templates/useCaseDiagram/components/UseCaseNodeSettings.tsx +120 -120
- package/packages/diagrams/src/lib/templates/useCaseDiagram/controls/UseCaseControls.tsx +289 -289
- package/packages/diagrams/src/lib/templates/useCaseDiagram/nodes/PackageNode.tsx +83 -83
- package/packages/diagrams/src/lib/templates/useCaseDiagram/nodes/UseCaseEdge.tsx +115 -115
- package/packages/diagrams/src/lib/templates/useCaseDiagram/nodes/UseCaseNode.tsx +230 -230
- package/packages/diagrams/src/lib/templates/validationSchema.json +277 -277
- package/packages/diagrams/src/lib/theme.ts +439 -439
- package/packages/diagrams/src/lib/types/FunctionSignature.ts +11 -11
- package/packages/diagrams/src/lib/types/SmartDynamicFormField.ts +37 -37
- package/packages/diagrams/src/lib/types/automation-node-data-types.ts +45 -131
- package/packages/diagrams/src/lib/types/available-variables.ts +18 -18
- package/packages/diagrams/src/lib/types/card-node.ts +68 -68
- package/packages/diagrams/src/lib/types/collaboration-types.ts +114 -114
- package/packages/diagrams/src/lib/types/colors.ts +25 -25
- package/packages/diagrams/src/lib/types/condition-builder.ts +18 -18
- package/packages/diagrams/src/lib/types/diagram-types.ts +14 -14
- package/packages/diagrams/src/lib/types/edge-types.ts +39 -39
- package/packages/diagrams/src/lib/types/function-execution.ts +35 -35
- package/packages/diagrams/src/lib/types/hooks.types.ts +6 -6
- package/packages/diagrams/src/lib/types/ndoe-form-types.ts +139 -139
- package/packages/diagrams/src/lib/types/node-types.ts +13 -23
- package/packages/diagrams/src/lib/types/sequence-types.ts +178 -178
- package/packages/diagrams/src/lib/types/shared-node-types.ts +21 -21
- package/packages/diagrams/src/lib/types/state-machine-types.ts +225 -225
- package/packages/diagrams/src/lib/types/stencil-item.ts +7 -7
- package/packages/diagrams/src/lib/types/structures.ts +80 -80
- package/packages/diagrams/src/lib/types/system-flow-types.ts +129 -129
- package/packages/diagrams/src/lib/types/usecase-types.ts +84 -84
- package/packages/diagrams/src/lib/types/validation-types.ts +134 -134
- package/packages/diagrams/src/lib/types/workflow-content-dynamic-form-type.ts +23 -23
- package/packages/diagrams/src/lib/types/workflow-node-data-types.ts +172 -172
- package/packages/diagrams/src/lib/utils/AutomationExecutionEngine.ts +658 -1179
- package/packages/diagrams/src/lib/utils/add-new-block.ts +34 -34
- package/packages/diagrams/src/lib/utils/add-new-node.ts +52 -52
- package/packages/diagrams/src/lib/utils/addToHistory.ts +15 -15
- package/packages/diagrams/src/lib/utils/automation-flow-processor.ts +556 -619
- package/packages/diagrams/src/lib/utils/closestPoint.ts +45 -45
- package/packages/diagrams/src/lib/utils/color-options.tsx +26 -26
- package/packages/diagrams/src/lib/utils/compress-img.ts +59 -59
- package/packages/diagrams/src/lib/utils/configLoader.ts +329 -329
- package/packages/diagrams/src/lib/utils/constant-lengths.ts +8 -8
- package/packages/diagrams/src/lib/utils/create-updated.tsx +40 -40
- package/packages/diagrams/src/lib/utils/createHistoryChange.ts +3 -3
- package/packages/diagrams/src/lib/utils/dividerUtils.tsx +59 -59
- package/packages/diagrams/src/lib/utils/edge-hooks.ts +53 -53
- package/packages/diagrams/src/lib/utils/elkLayout.ts +297 -297
- package/packages/diagrams/src/lib/utils/event-hooks.ts +69 -69
- package/packages/diagrams/src/lib/utils/event-store.ts +58 -58
- package/packages/diagrams/src/lib/utils/flow-node-hooks.ts +28 -28
- package/packages/diagrams/src/lib/utils/flow-to-js.ts +1465 -1465
- package/packages/diagrams/src/lib/utils/functionGenerator.ts +38 -38
- package/packages/diagrams/src/lib/utils/generateEdgesFromNodeOrder.ts +113 -113
- package/packages/diagrams/src/lib/utils/helpers.types.ts +10 -10
- package/packages/diagrams/src/lib/utils/highlightText.tsx +93 -93
- package/packages/diagrams/src/lib/utils/iconMapper.tsx +76 -76
- package/packages/diagrams/src/lib/utils/logger.ts +5 -5
- package/packages/diagrams/src/lib/utils/model-hooks.ts +129 -129
- package/packages/diagrams/src/lib/utils/node-hooks.ts +78 -78
- package/packages/diagrams/src/lib/utils/nodeAIAssistantConfig.ts +54 -54
- package/packages/diagrams/src/lib/utils/nodeOrderByEdges.ts +437 -437
- package/packages/diagrams/src/lib/utils/nodeutils.ts +242 -242
- package/packages/diagrams/src/lib/utils/object.ts +13 -13
- package/packages/diagrams/src/lib/utils/useDebounce.ts +19 -19
- package/packages/diagrams/src/lib/utils/utilities.ts +105 -105
- package/packages/diagrams/src/lib/utils/validationEngine.ts +610 -610
- package/packages/diagrams/src/lib/utils/vhToPixels.ts +9 -9
- package/packages/diagrams/tsconfig.json +21 -21
- package/packages/diagrams/tsconfig.lib.json +26 -25
- package/packages/diagrams/webpack.config.js +17 -17
- package/packages/interfaces/.babelrc +12 -12
- package/packages/interfaces/.eslintrc.json +18 -18
- package/packages/interfaces/README.md +7 -7
- package/packages/interfaces/project.json +8 -8
- package/packages/interfaces/src/index.ts +21 -21
- package/packages/interfaces/src/lib/Button.tsx +1 -1
- package/packages/interfaces/src/lib/DataGrid.ts +14 -14
- package/packages/interfaces/src/lib/StyledBox.tsx +1 -1
- package/packages/interfaces/src/lib/ToolbarItem.ts +7 -7
- package/packages/interfaces/src/lib/UserCard.ts +8 -8
- package/packages/interfaces/src/lib/yup.ts +3 -3
- package/packages/interfaces/tsconfig.json +17 -17
- package/packages/interfaces/tsconfig.lib.json +24 -24
- package/packages/molecules/.babelrc +12 -12
- package/packages/molecules/.eslintrc.json +18 -18
- package/packages/molecules/README.md +7 -7
- package/packages/molecules/project.json +8 -8
- package/packages/molecules/src/index.ts +47 -41
- package/packages/molecules/src/lib/ActionTextField/ActionTextField.module.css +7 -7
- package/packages/molecules/src/lib/ActionTextField/ActionTextField.spec.tsx +10 -10
- package/packages/molecules/src/lib/ActionTextField/ActionTextField.tsx +33 -33
- package/packages/molecules/src/lib/ClosableButton/CloseableButton.module.css +7 -7
- package/packages/molecules/src/lib/ClosableButton/CloseableButton.spec.tsx +11 -11
- package/packages/molecules/src/lib/ClosableButton/CloseableButton.tsx +69 -69
- package/packages/molecules/src/lib/EditorTab/EditorTab.module.css +7 -7
- package/packages/molecules/src/lib/EditorTab/EditorTab.spec.tsx +10 -10
- package/packages/molecules/src/lib/EditorTab/EditorTab.tsx +42 -42
- package/packages/molecules/src/lib/EditorTab/TabPanel.tsx +25 -25
- package/packages/molecules/src/lib/ParamsActionField/ParamsActionField.module.css +7 -7
- package/packages/molecules/src/lib/ParamsActionField/ParamsActionField.spec.tsx +10 -10
- package/packages/molecules/src/lib/ParamsActionField/ParamsActionField.tsx +24 -24
- package/packages/molecules/src/lib/SvgIcons/icons.tsx +323 -291
- package/packages/molecules/src/lib/SvgIcons/index.ts +31 -25
- package/packages/molecules/src/lib/SvgIcons/types.ts +7 -7
- package/packages/molecules/src/lib/TableWithInlineView/TableWithInlineView.module.css +7 -7
- package/packages/molecules/src/lib/TableWithInlineView/TableWithInlineView.spec.tsx +10 -10
- package/packages/molecules/src/lib/TableWithInlineView/TableWithInlineView.tsx +47 -47
- package/packages/molecules/src/lib/UserCard/UserCard.module.css +7 -7
- package/packages/molecules/src/lib/UserCard/UserCard.spec.tsx +11 -11
- package/packages/molecules/src/lib/UserCard/UserCard.tsx +22 -22
- package/packages/molecules/src/lib/VerbSelection/HTTPVerbSelection.module.css +7 -7
- package/packages/molecules/src/lib/VerbSelection/HTTPVerbSelection.spec.tsx +10 -10
- package/packages/molecules/src/lib/VerbSelection/HTTPVerbSelection.tsx +72 -72
- package/packages/molecules/tsconfig.json +17 -17
- package/packages/molecules/tsconfig.lib.json +30 -30
- package/packages/organisms/.babelrc +12 -12
- package/packages/organisms/.eslintrc.json +18 -18
- package/packages/organisms/README.md +7 -7
- package/packages/organisms/project.json +8 -8
- package/packages/organisms/src/index.ts +4 -4
- package/packages/organisms/src/lib/EditorToolbar/EditorToolbar.module.css +7 -7
- package/packages/organisms/src/lib/EditorToolbar/EditorToolbar.spec.tsx +10 -10
- package/packages/organisms/src/lib/EditorToolbar/EditorToolbar.tsx +117 -117
- package/packages/organisms/src/lib/EditorToolbar/SortableItem.tsx +51 -51
- package/packages/organisms/src/lib/UserList/UserList.module.css +7 -7
- package/packages/organisms/src/lib/UserList/UserList.spec.tsx +11 -11
- package/packages/organisms/src/lib/UserList/UserList.tsx +48 -48
- package/packages/organisms/src/lib/UserList/store.ts +49 -49
- package/packages/organisms/tsconfig.json +17 -17
- package/packages/organisms/tsconfig.lib.json +24 -24
- package/packages/zustand/.babelrc +12 -12
- package/packages/zustand/.eslintrc.json +18 -18
- package/packages/zustand/README.md +7 -7
- package/packages/zustand/project.json +8 -8
- package/packages/zustand/src/index.ts +4 -4
- package/packages/zustand/tsconfig.json +17 -17
- package/packages/zustand/tsconfig.lib.json +24 -24
- package/tsconfig.base.json +29 -29
- package/packages/diagrams/src/lib/components/automation/AutomationAISuggestionNode.tsx +0 -304
- package/packages/diagrams/src/lib/components/automation/AutomationEmailNode.tsx +0 -773
- package/packages/diagrams/src/lib/components/automation/AutomationGoogleServicesNode.tsx +0 -779
- package/packages/diagrams/src/lib/components/automation/AutomationNoteNode.tsx +0 -422
- package/packages/diagrams/src/lib/components/automation/AutomationSheetsNode.tsx +0 -1135
- package/packages/diagrams/src/lib/examples/GoogleSheetsConfigurationExamples.ts +0 -306
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
# common
|
|
2
|
-
|
|
3
|
-
This library was generated with [Nx](https://nx.dev).
|
|
4
|
-
|
|
5
|
-
## Running unit tests
|
|
6
|
-
|
|
7
|
-
Run `nx test common` to execute the unit tests via [Jest](https://jestjs.io).
|
|
1
|
+
# common
|
|
2
|
+
|
|
3
|
+
This library was generated with [Nx](https://nx.dev).
|
|
4
|
+
|
|
5
|
+
## Running unit tests
|
|
6
|
+
|
|
7
|
+
Run `nx test common` to execute the unit tests via [Jest](https://jestjs.io).
|
|
@@ -1,306 +1,306 @@
|
|
|
1
|
-
# Undo/Redo API Documentation
|
|
2
|
-
|
|
3
|
-
## Overview
|
|
4
|
-
|
|
5
|
-
The diagramming library provides comprehensive undo/redo functionality for all diagram types, including automation diagrams. This document explains how to expose and use undo/redo controls externally when using the library.
|
|
6
|
-
|
|
7
|
-
## How Undo/Redo Works
|
|
8
|
-
|
|
9
|
-
### Internal Implementation
|
|
10
|
-
|
|
11
|
-
1. **History Management**: The system maintains a `history` array and `historyIndex` in the DiagramStore
|
|
12
|
-
2. **Change Tracking**: Every change to nodes/edges is tracked and stored as `HistoryEvent` objects
|
|
13
|
-
3. **State Restoration**: Changes are applied in reverse (undo) or forward (redo) direction
|
|
14
|
-
4. **Keyboard Shortcuts**: Ctrl+Z (undo) and Ctrl+Y/Cmd+Shift+Z (redo) work automatically
|
|
15
|
-
|
|
16
|
-
### Key Components
|
|
17
|
-
|
|
18
|
-
- **DiagramProvider**: Contains the main store with `undo()` and `redo()` methods
|
|
19
|
-
- **History System**: Tracks all changes with forward/backward operations
|
|
20
|
-
- **DownloadPanel**: Built-in undo/redo buttons (can be hidden)
|
|
21
|
-
|
|
22
|
-
## External Undo/Redo Control
|
|
23
|
-
|
|
24
|
-
### Method 1: Using Ref-based API (Recommended)
|
|
25
|
-
|
|
26
|
-
The `DiagrammingPage` component now supports a ref that exposes undo/redo functionality:
|
|
27
|
-
|
|
28
|
-
```typescript
|
|
29
|
-
import React, { useRef } from 'react';
|
|
30
|
-
import { DiagrammingPage, DiagrammingPageRef } from '@flowuent-labs/diagrams';
|
|
31
|
-
|
|
32
|
-
const MyComponent = () => {
|
|
33
|
-
const diagramRef = useRef<DiagrammingPageRef>(null);
|
|
34
|
-
|
|
35
|
-
const handleUndo = () => {
|
|
36
|
-
if (diagramRef.current?.canUndo()) {
|
|
37
|
-
diagramRef.current.undo();
|
|
38
|
-
}
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
const handleRedo = () => {
|
|
42
|
-
if (diagramRef.current?.canRedo()) {
|
|
43
|
-
diagramRef.current.redo();
|
|
44
|
-
}
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
return (
|
|
48
|
-
<div>
|
|
49
|
-
{/* Your external undo/redo buttons */}
|
|
50
|
-
<button onClick={handleUndo} disabled={!diagramRef.current?.canUndo()}>
|
|
51
|
-
Undo
|
|
52
|
-
</button>
|
|
53
|
-
<button onClick={handleRedo} disabled={!diagramRef.current?.canRedo()}>
|
|
54
|
-
Redo
|
|
55
|
-
</button>
|
|
56
|
-
|
|
57
|
-
{/* The diagram */}
|
|
58
|
-
<DiagrammingPage
|
|
59
|
-
ref={diagramRef}
|
|
60
|
-
diagramType="automation"
|
|
61
|
-
defaultNodes={nodes}
|
|
62
|
-
defaultEdges={edges}
|
|
63
|
-
availableFunctions={[]}
|
|
64
|
-
id={1}
|
|
65
|
-
/>
|
|
66
|
-
</div>
|
|
67
|
-
);
|
|
68
|
-
};
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
### Available Methods
|
|
72
|
-
|
|
73
|
-
The `DiagrammingPageRef` interface provides these methods:
|
|
74
|
-
|
|
75
|
-
```typescript
|
|
76
|
-
interface DiagrammingPageRef {
|
|
77
|
-
undo: () => void; // Perform undo operation
|
|
78
|
-
redo: () => void; // Perform redo operation
|
|
79
|
-
canUndo: () => boolean; // Check if undo is available
|
|
80
|
-
canRedo: () => boolean; // Check if redo is available
|
|
81
|
-
reset: () => void; // Clear the diagram
|
|
82
|
-
getHistoryLength: () => number; // Get total history length
|
|
83
|
-
getHistoryIndex: () => number; // Get current history index
|
|
84
|
-
}
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
### Method 2: Using DownloadPanel with Hidden Built-in Controls
|
|
88
|
-
|
|
89
|
-
You can hide the built-in undo/redo buttons and use your own:
|
|
90
|
-
|
|
91
|
-
```typescript
|
|
92
|
-
import { DiagrammingPage, DownloadPanel } from '@flowuent-labs/diagrams';
|
|
93
|
-
|
|
94
|
-
const MyComponent = () => {
|
|
95
|
-
return (
|
|
96
|
-
<DiagrammingPage
|
|
97
|
-
diagramType="automation"
|
|
98
|
-
defaultNodes={nodes}
|
|
99
|
-
defaultEdges={edges}
|
|
100
|
-
availableFunctions={[]}
|
|
101
|
-
id={1}
|
|
102
|
-
>
|
|
103
|
-
{/* Hide built-in undo/redo buttons */}
|
|
104
|
-
<DownloadPanel
|
|
105
|
-
hideUndo={true}
|
|
106
|
-
hideRedo={true}
|
|
107
|
-
position="top-left"
|
|
108
|
-
/>
|
|
109
|
-
|
|
110
|
-
{/* Your custom controls */}
|
|
111
|
-
<YourCustomControls />
|
|
112
|
-
</DiagrammingPage>
|
|
113
|
-
);
|
|
114
|
-
};
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
## Complete Example
|
|
118
|
-
|
|
119
|
-
Here's a complete example showing how to implement external undo/redo controls:
|
|
120
|
-
|
|
121
|
-
```typescript
|
|
122
|
-
import React, { useRef, useState, useEffect } from 'react';
|
|
123
|
-
import { Button, Box, Typography, IconButton } from '@mui/material';
|
|
124
|
-
import { UndoIcon, RedoIcon, ClearIcon } from '@mui/icons-material';
|
|
125
|
-
import { DiagrammingPage, DiagrammingPageRef } from '@flowuent-labs/diagrams';
|
|
126
|
-
import { ICardNode } from '@flowuent-labs/diagrams';
|
|
127
|
-
import { Edge } from '@xyflow/react';
|
|
128
|
-
|
|
129
|
-
const AutomationDiagramWithExternalControls: React.FC = () => {
|
|
130
|
-
const diagramRef = useRef<DiagrammingPageRef>(null);
|
|
131
|
-
const [canUndo, setCanUndo] = useState(false);
|
|
132
|
-
const [canRedo, setCanRedo] = useState(false);
|
|
133
|
-
const [historyInfo, setHistoryInfo] = useState({ index: 0, length: 0 });
|
|
134
|
-
|
|
135
|
-
// Sample automation diagram data
|
|
136
|
-
const defaultNodes: ICardNode[] = [
|
|
137
|
-
{
|
|
138
|
-
id: '1',
|
|
139
|
-
type: 'AutomationStartNode',
|
|
140
|
-
position: { x: 100, y: 100 },
|
|
141
|
-
data: { label: 'Start Process' }
|
|
142
|
-
},
|
|
143
|
-
{
|
|
144
|
-
id: '2',
|
|
145
|
-
type: 'AutomationApiNode',
|
|
146
|
-
position: { x: 300, y: 100 },
|
|
147
|
-
data: { label: 'API Call' }
|
|
148
|
-
},
|
|
149
|
-
{
|
|
150
|
-
id: '3',
|
|
151
|
-
type: 'AutomationEndNode',
|
|
152
|
-
position: { x: 500, y: 100 },
|
|
153
|
-
data: { label: 'End Process' }
|
|
154
|
-
}
|
|
155
|
-
];
|
|
156
|
-
|
|
157
|
-
const defaultEdges: Edge[] = [
|
|
158
|
-
{ id: 'e1-2', source: '1', target: '2' },
|
|
159
|
-
{ id: 'e2-3', source: '2', target: '3' }
|
|
160
|
-
];
|
|
161
|
-
|
|
162
|
-
const updateButtonStates = () => {
|
|
163
|
-
if (diagramRef.current) {
|
|
164
|
-
setCanUndo(diagramRef.current.canUndo());
|
|
165
|
-
setCanRedo(diagramRef.current.canRedo());
|
|
166
|
-
setHistoryInfo({
|
|
167
|
-
index: diagramRef.current.getHistoryIndex(),
|
|
168
|
-
length: diagramRef.current.getHistoryLength()
|
|
169
|
-
});
|
|
170
|
-
}
|
|
171
|
-
};
|
|
172
|
-
|
|
173
|
-
const handleUndo = () => {
|
|
174
|
-
if (diagramRef.current?.canUndo()) {
|
|
175
|
-
diagramRef.current.undo();
|
|
176
|
-
updateButtonStates();
|
|
177
|
-
}
|
|
178
|
-
};
|
|
179
|
-
|
|
180
|
-
const handleRedo = () => {
|
|
181
|
-
if (diagramRef.current?.canRedo()) {
|
|
182
|
-
diagramRef.current.redo();
|
|
183
|
-
updateButtonStates();
|
|
184
|
-
}
|
|
185
|
-
};
|
|
186
|
-
|
|
187
|
-
const handleReset = () => {
|
|
188
|
-
diagramRef.current?.reset();
|
|
189
|
-
updateButtonStates();
|
|
190
|
-
};
|
|
191
|
-
|
|
192
|
-
// Update button states when diagram changes
|
|
193
|
-
useEffect(() => {
|
|
194
|
-
const interval = setInterval(updateButtonStates, 100);
|
|
195
|
-
return () => clearInterval(interval);
|
|
196
|
-
}, []);
|
|
197
|
-
|
|
198
|
-
return (
|
|
199
|
-
<Box sx={{ height: '100vh', display: 'flex', flexDirection: 'column' }}>
|
|
200
|
-
{/* External Controls Toolbar */}
|
|
201
|
-
<Box sx={{
|
|
202
|
-
p: 2,
|
|
203
|
-
bgcolor: '#f5f5f5',
|
|
204
|
-
borderBottom: '1px solid #ddd',
|
|
205
|
-
display: 'flex',
|
|
206
|
-
gap: 2,
|
|
207
|
-
alignItems: 'center',
|
|
208
|
-
boxShadow: '0 2px 4px rgba(0,0,0,0.1)'
|
|
209
|
-
}}>
|
|
210
|
-
<Typography variant="h6" sx={{ fontWeight: 'bold' }}>
|
|
211
|
-
Automation Diagram Controls
|
|
212
|
-
</Typography>
|
|
213
|
-
|
|
214
|
-
<Box sx={{ display: 'flex', gap: 1, ml: 2 }}>
|
|
215
|
-
<IconButton
|
|
216
|
-
onClick={handleUndo}
|
|
217
|
-
disabled={!canUndo}
|
|
218
|
-
sx={{
|
|
219
|
-
bgcolor: canUndo ? '#1976d2' : '#e0e0e0',
|
|
220
|
-
color: canUndo ? 'white' : '#9e9e9e',
|
|
221
|
-
'&:hover': {
|
|
222
|
-
bgcolor: canUndo ? '#1565c0' : '#e0e0e0'
|
|
223
|
-
}
|
|
224
|
-
}}
|
|
225
|
-
>
|
|
226
|
-
<UndoIcon />
|
|
227
|
-
</IconButton>
|
|
228
|
-
|
|
229
|
-
<IconButton
|
|
230
|
-
onClick={handleRedo}
|
|
231
|
-
disabled={!canRedo}
|
|
232
|
-
sx={{
|
|
233
|
-
bgcolor: canRedo ? '#1976d2' : '#e0e0e0',
|
|
234
|
-
color: canRedo ? 'white' : '#9e9e9e',
|
|
235
|
-
'&:hover': {
|
|
236
|
-
bgcolor: canRedo ? '#1565c0' : '#e0e0e0'
|
|
237
|
-
}
|
|
238
|
-
}}
|
|
239
|
-
>
|
|
240
|
-
<RedoIcon />
|
|
241
|
-
</IconButton>
|
|
242
|
-
|
|
243
|
-
<IconButton
|
|
244
|
-
onClick={handleReset}
|
|
245
|
-
sx={{
|
|
246
|
-
bgcolor: '#d32f2f',
|
|
247
|
-
color: 'white',
|
|
248
|
-
'&:hover': {
|
|
249
|
-
bgcolor: '#c62828'
|
|
250
|
-
}
|
|
251
|
-
}}
|
|
252
|
-
>
|
|
253
|
-
<ClearIcon />
|
|
254
|
-
</IconButton>
|
|
255
|
-
</Box>
|
|
256
|
-
|
|
257
|
-
<Typography variant="body2" sx={{ ml: 'auto', color: '#666' }}>
|
|
258
|
-
History: {historyInfo.index} / {historyInfo.length}
|
|
259
|
-
</Typography>
|
|
260
|
-
</Box>
|
|
261
|
-
|
|
262
|
-
{/* Diagram */}
|
|
263
|
-
<Box sx={{ flex: 1 }}>
|
|
264
|
-
<DiagrammingPage
|
|
265
|
-
ref={diagramRef}
|
|
266
|
-
diagramType="automation"
|
|
267
|
-
defaultNodes={defaultNodes}
|
|
268
|
-
defaultEdges={defaultEdges}
|
|
269
|
-
availableFunctions={[]}
|
|
270
|
-
id={1}
|
|
271
|
-
onChange={() => {
|
|
272
|
-
// Update button states when diagram changes
|
|
273
|
-
setTimeout(updateButtonStates, 100);
|
|
274
|
-
}}
|
|
275
|
-
/>
|
|
276
|
-
</Box>
|
|
277
|
-
</Box>
|
|
278
|
-
);
|
|
279
|
-
};
|
|
280
|
-
|
|
281
|
-
export default AutomationDiagramWithExternalControls;
|
|
282
|
-
```
|
|
283
|
-
|
|
284
|
-
## Integration Steps for Your Team Member
|
|
285
|
-
|
|
286
|
-
1. **Install the updated library** with the new ref-based API
|
|
287
|
-
2. **Create a ref** to the DiagrammingPage component
|
|
288
|
-
3. **Add external buttons** that call the ref methods
|
|
289
|
-
4. **Handle state updates** to enable/disable buttons appropriately
|
|
290
|
-
5. **Test the functionality** with various diagram operations
|
|
291
|
-
|
|
292
|
-
## Key Benefits
|
|
293
|
-
|
|
294
|
-
- **Full Control**: Complete control over undo/redo UI and behavior
|
|
295
|
-
- **State Awareness**: Know when undo/redo is available
|
|
296
|
-
- **History Information**: Access to history length and current index
|
|
297
|
-
- **Keyboard Support**: Built-in keyboard shortcuts still work
|
|
298
|
-
- **Flexible Integration**: Works with any UI framework or custom components
|
|
299
|
-
|
|
300
|
-
## Notes
|
|
301
|
-
|
|
302
|
-
- The undo/redo functionality works automatically for all diagram types
|
|
303
|
-
- History is maintained per diagram instance
|
|
304
|
-
- Changes are tracked for node/edge additions, deletions, modifications, and movements
|
|
305
|
-
- The system prevents infinite loops and handles edge cases gracefully
|
|
306
|
-
- Keyboard shortcuts (Ctrl+Z, Ctrl+Y) work alongside external controls
|
|
1
|
+
# Undo/Redo API Documentation
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
The diagramming library provides comprehensive undo/redo functionality for all diagram types, including automation diagrams. This document explains how to expose and use undo/redo controls externally when using the library.
|
|
6
|
+
|
|
7
|
+
## How Undo/Redo Works
|
|
8
|
+
|
|
9
|
+
### Internal Implementation
|
|
10
|
+
|
|
11
|
+
1. **History Management**: The system maintains a `history` array and `historyIndex` in the DiagramStore
|
|
12
|
+
2. **Change Tracking**: Every change to nodes/edges is tracked and stored as `HistoryEvent` objects
|
|
13
|
+
3. **State Restoration**: Changes are applied in reverse (undo) or forward (redo) direction
|
|
14
|
+
4. **Keyboard Shortcuts**: Ctrl+Z (undo) and Ctrl+Y/Cmd+Shift+Z (redo) work automatically
|
|
15
|
+
|
|
16
|
+
### Key Components
|
|
17
|
+
|
|
18
|
+
- **DiagramProvider**: Contains the main store with `undo()` and `redo()` methods
|
|
19
|
+
- **History System**: Tracks all changes with forward/backward operations
|
|
20
|
+
- **DownloadPanel**: Built-in undo/redo buttons (can be hidden)
|
|
21
|
+
|
|
22
|
+
## External Undo/Redo Control
|
|
23
|
+
|
|
24
|
+
### Method 1: Using Ref-based API (Recommended)
|
|
25
|
+
|
|
26
|
+
The `DiagrammingPage` component now supports a ref that exposes undo/redo functionality:
|
|
27
|
+
|
|
28
|
+
```typescript
|
|
29
|
+
import React, { useRef } from 'react';
|
|
30
|
+
import { DiagrammingPage, DiagrammingPageRef } from '@flowuent-labs/diagrams';
|
|
31
|
+
|
|
32
|
+
const MyComponent = () => {
|
|
33
|
+
const diagramRef = useRef<DiagrammingPageRef>(null);
|
|
34
|
+
|
|
35
|
+
const handleUndo = () => {
|
|
36
|
+
if (diagramRef.current?.canUndo()) {
|
|
37
|
+
diagramRef.current.undo();
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
const handleRedo = () => {
|
|
42
|
+
if (diagramRef.current?.canRedo()) {
|
|
43
|
+
diagramRef.current.redo();
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
return (
|
|
48
|
+
<div>
|
|
49
|
+
{/* Your external undo/redo buttons */}
|
|
50
|
+
<button onClick={handleUndo} disabled={!diagramRef.current?.canUndo()}>
|
|
51
|
+
Undo
|
|
52
|
+
</button>
|
|
53
|
+
<button onClick={handleRedo} disabled={!diagramRef.current?.canRedo()}>
|
|
54
|
+
Redo
|
|
55
|
+
</button>
|
|
56
|
+
|
|
57
|
+
{/* The diagram */}
|
|
58
|
+
<DiagrammingPage
|
|
59
|
+
ref={diagramRef}
|
|
60
|
+
diagramType="automation"
|
|
61
|
+
defaultNodes={nodes}
|
|
62
|
+
defaultEdges={edges}
|
|
63
|
+
availableFunctions={[]}
|
|
64
|
+
id={1}
|
|
65
|
+
/>
|
|
66
|
+
</div>
|
|
67
|
+
);
|
|
68
|
+
};
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### Available Methods
|
|
72
|
+
|
|
73
|
+
The `DiagrammingPageRef` interface provides these methods:
|
|
74
|
+
|
|
75
|
+
```typescript
|
|
76
|
+
interface DiagrammingPageRef {
|
|
77
|
+
undo: () => void; // Perform undo operation
|
|
78
|
+
redo: () => void; // Perform redo operation
|
|
79
|
+
canUndo: () => boolean; // Check if undo is available
|
|
80
|
+
canRedo: () => boolean; // Check if redo is available
|
|
81
|
+
reset: () => void; // Clear the diagram
|
|
82
|
+
getHistoryLength: () => number; // Get total history length
|
|
83
|
+
getHistoryIndex: () => number; // Get current history index
|
|
84
|
+
}
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Method 2: Using DownloadPanel with Hidden Built-in Controls
|
|
88
|
+
|
|
89
|
+
You can hide the built-in undo/redo buttons and use your own:
|
|
90
|
+
|
|
91
|
+
```typescript
|
|
92
|
+
import { DiagrammingPage, DownloadPanel } from '@flowuent-labs/diagrams';
|
|
93
|
+
|
|
94
|
+
const MyComponent = () => {
|
|
95
|
+
return (
|
|
96
|
+
<DiagrammingPage
|
|
97
|
+
diagramType="automation"
|
|
98
|
+
defaultNodes={nodes}
|
|
99
|
+
defaultEdges={edges}
|
|
100
|
+
availableFunctions={[]}
|
|
101
|
+
id={1}
|
|
102
|
+
>
|
|
103
|
+
{/* Hide built-in undo/redo buttons */}
|
|
104
|
+
<DownloadPanel
|
|
105
|
+
hideUndo={true}
|
|
106
|
+
hideRedo={true}
|
|
107
|
+
position="top-left"
|
|
108
|
+
/>
|
|
109
|
+
|
|
110
|
+
{/* Your custom controls */}
|
|
111
|
+
<YourCustomControls />
|
|
112
|
+
</DiagrammingPage>
|
|
113
|
+
);
|
|
114
|
+
};
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
## Complete Example
|
|
118
|
+
|
|
119
|
+
Here's a complete example showing how to implement external undo/redo controls:
|
|
120
|
+
|
|
121
|
+
```typescript
|
|
122
|
+
import React, { useRef, useState, useEffect } from 'react';
|
|
123
|
+
import { Button, Box, Typography, IconButton } from '@mui/material';
|
|
124
|
+
import { UndoIcon, RedoIcon, ClearIcon } from '@mui/icons-material';
|
|
125
|
+
import { DiagrammingPage, DiagrammingPageRef } from '@flowuent-labs/diagrams';
|
|
126
|
+
import { ICardNode } from '@flowuent-labs/diagrams';
|
|
127
|
+
import { Edge } from '@xyflow/react';
|
|
128
|
+
|
|
129
|
+
const AutomationDiagramWithExternalControls: React.FC = () => {
|
|
130
|
+
const diagramRef = useRef<DiagrammingPageRef>(null);
|
|
131
|
+
const [canUndo, setCanUndo] = useState(false);
|
|
132
|
+
const [canRedo, setCanRedo] = useState(false);
|
|
133
|
+
const [historyInfo, setHistoryInfo] = useState({ index: 0, length: 0 });
|
|
134
|
+
|
|
135
|
+
// Sample automation diagram data
|
|
136
|
+
const defaultNodes: ICardNode[] = [
|
|
137
|
+
{
|
|
138
|
+
id: '1',
|
|
139
|
+
type: 'AutomationStartNode',
|
|
140
|
+
position: { x: 100, y: 100 },
|
|
141
|
+
data: { label: 'Start Process' }
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
id: '2',
|
|
145
|
+
type: 'AutomationApiNode',
|
|
146
|
+
position: { x: 300, y: 100 },
|
|
147
|
+
data: { label: 'API Call' }
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
id: '3',
|
|
151
|
+
type: 'AutomationEndNode',
|
|
152
|
+
position: { x: 500, y: 100 },
|
|
153
|
+
data: { label: 'End Process' }
|
|
154
|
+
}
|
|
155
|
+
];
|
|
156
|
+
|
|
157
|
+
const defaultEdges: Edge[] = [
|
|
158
|
+
{ id: 'e1-2', source: '1', target: '2' },
|
|
159
|
+
{ id: 'e2-3', source: '2', target: '3' }
|
|
160
|
+
];
|
|
161
|
+
|
|
162
|
+
const updateButtonStates = () => {
|
|
163
|
+
if (diagramRef.current) {
|
|
164
|
+
setCanUndo(diagramRef.current.canUndo());
|
|
165
|
+
setCanRedo(diagramRef.current.canRedo());
|
|
166
|
+
setHistoryInfo({
|
|
167
|
+
index: diagramRef.current.getHistoryIndex(),
|
|
168
|
+
length: diagramRef.current.getHistoryLength()
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
};
|
|
172
|
+
|
|
173
|
+
const handleUndo = () => {
|
|
174
|
+
if (diagramRef.current?.canUndo()) {
|
|
175
|
+
diagramRef.current.undo();
|
|
176
|
+
updateButtonStates();
|
|
177
|
+
}
|
|
178
|
+
};
|
|
179
|
+
|
|
180
|
+
const handleRedo = () => {
|
|
181
|
+
if (diagramRef.current?.canRedo()) {
|
|
182
|
+
diagramRef.current.redo();
|
|
183
|
+
updateButtonStates();
|
|
184
|
+
}
|
|
185
|
+
};
|
|
186
|
+
|
|
187
|
+
const handleReset = () => {
|
|
188
|
+
diagramRef.current?.reset();
|
|
189
|
+
updateButtonStates();
|
|
190
|
+
};
|
|
191
|
+
|
|
192
|
+
// Update button states when diagram changes
|
|
193
|
+
useEffect(() => {
|
|
194
|
+
const interval = setInterval(updateButtonStates, 100);
|
|
195
|
+
return () => clearInterval(interval);
|
|
196
|
+
}, []);
|
|
197
|
+
|
|
198
|
+
return (
|
|
199
|
+
<Box sx={{ height: '100vh', display: 'flex', flexDirection: 'column' }}>
|
|
200
|
+
{/* External Controls Toolbar */}
|
|
201
|
+
<Box sx={{
|
|
202
|
+
p: 2,
|
|
203
|
+
bgcolor: '#f5f5f5',
|
|
204
|
+
borderBottom: '1px solid #ddd',
|
|
205
|
+
display: 'flex',
|
|
206
|
+
gap: 2,
|
|
207
|
+
alignItems: 'center',
|
|
208
|
+
boxShadow: '0 2px 4px rgba(0,0,0,0.1)'
|
|
209
|
+
}}>
|
|
210
|
+
<Typography variant="h6" sx={{ fontWeight: 'bold' }}>
|
|
211
|
+
Automation Diagram Controls
|
|
212
|
+
</Typography>
|
|
213
|
+
|
|
214
|
+
<Box sx={{ display: 'flex', gap: 1, ml: 2 }}>
|
|
215
|
+
<IconButton
|
|
216
|
+
onClick={handleUndo}
|
|
217
|
+
disabled={!canUndo}
|
|
218
|
+
sx={{
|
|
219
|
+
bgcolor: canUndo ? '#1976d2' : '#e0e0e0',
|
|
220
|
+
color: canUndo ? 'white' : '#9e9e9e',
|
|
221
|
+
'&:hover': {
|
|
222
|
+
bgcolor: canUndo ? '#1565c0' : '#e0e0e0'
|
|
223
|
+
}
|
|
224
|
+
}}
|
|
225
|
+
>
|
|
226
|
+
<UndoIcon />
|
|
227
|
+
</IconButton>
|
|
228
|
+
|
|
229
|
+
<IconButton
|
|
230
|
+
onClick={handleRedo}
|
|
231
|
+
disabled={!canRedo}
|
|
232
|
+
sx={{
|
|
233
|
+
bgcolor: canRedo ? '#1976d2' : '#e0e0e0',
|
|
234
|
+
color: canRedo ? 'white' : '#9e9e9e',
|
|
235
|
+
'&:hover': {
|
|
236
|
+
bgcolor: canRedo ? '#1565c0' : '#e0e0e0'
|
|
237
|
+
}
|
|
238
|
+
}}
|
|
239
|
+
>
|
|
240
|
+
<RedoIcon />
|
|
241
|
+
</IconButton>
|
|
242
|
+
|
|
243
|
+
<IconButton
|
|
244
|
+
onClick={handleReset}
|
|
245
|
+
sx={{
|
|
246
|
+
bgcolor: '#d32f2f',
|
|
247
|
+
color: 'white',
|
|
248
|
+
'&:hover': {
|
|
249
|
+
bgcolor: '#c62828'
|
|
250
|
+
}
|
|
251
|
+
}}
|
|
252
|
+
>
|
|
253
|
+
<ClearIcon />
|
|
254
|
+
</IconButton>
|
|
255
|
+
</Box>
|
|
256
|
+
|
|
257
|
+
<Typography variant="body2" sx={{ ml: 'auto', color: '#666' }}>
|
|
258
|
+
History: {historyInfo.index} / {historyInfo.length}
|
|
259
|
+
</Typography>
|
|
260
|
+
</Box>
|
|
261
|
+
|
|
262
|
+
{/* Diagram */}
|
|
263
|
+
<Box sx={{ flex: 1 }}>
|
|
264
|
+
<DiagrammingPage
|
|
265
|
+
ref={diagramRef}
|
|
266
|
+
diagramType="automation"
|
|
267
|
+
defaultNodes={defaultNodes}
|
|
268
|
+
defaultEdges={defaultEdges}
|
|
269
|
+
availableFunctions={[]}
|
|
270
|
+
id={1}
|
|
271
|
+
onChange={() => {
|
|
272
|
+
// Update button states when diagram changes
|
|
273
|
+
setTimeout(updateButtonStates, 100);
|
|
274
|
+
}}
|
|
275
|
+
/>
|
|
276
|
+
</Box>
|
|
277
|
+
</Box>
|
|
278
|
+
);
|
|
279
|
+
};
|
|
280
|
+
|
|
281
|
+
export default AutomationDiagramWithExternalControls;
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
## Integration Steps for Your Team Member
|
|
285
|
+
|
|
286
|
+
1. **Install the updated library** with the new ref-based API
|
|
287
|
+
2. **Create a ref** to the DiagrammingPage component
|
|
288
|
+
3. **Add external buttons** that call the ref methods
|
|
289
|
+
4. **Handle state updates** to enable/disable buttons appropriately
|
|
290
|
+
5. **Test the functionality** with various diagram operations
|
|
291
|
+
|
|
292
|
+
## Key Benefits
|
|
293
|
+
|
|
294
|
+
- **Full Control**: Complete control over undo/redo UI and behavior
|
|
295
|
+
- **State Awareness**: Know when undo/redo is available
|
|
296
|
+
- **History Information**: Access to history length and current index
|
|
297
|
+
- **Keyboard Support**: Built-in keyboard shortcuts still work
|
|
298
|
+
- **Flexible Integration**: Works with any UI framework or custom components
|
|
299
|
+
|
|
300
|
+
## Notes
|
|
301
|
+
|
|
302
|
+
- The undo/redo functionality works automatically for all diagram types
|
|
303
|
+
- History is maintained per diagram instance
|
|
304
|
+
- Changes are tracked for node/edge additions, deletions, modifications, and movements
|
|
305
|
+
- The system prevents infinite loops and handles edge cases gracefully
|
|
306
|
+
- Keyboard shortcuts (Ctrl+Z, Ctrl+Y) work alongside external controls
|