@gadmin2n/schematics 0.0.139 → 0.0.140
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/dist/lib/application/files/gadmin2-game-angle-demo/Jenkinsfile +6 -34
- package/dist/lib/application/files/gadmin2-game-angle-demo/config/prisma/approval.prisma +199 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/config/prisma/system.prisma +9 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/config/prisma/workflow.prisma +191 -14
- package/dist/lib/application/files/gadmin2-game-angle-demo/gitignore +6 -5
- package/dist/lib/application/files/gadmin2-game-angle-demo/readme.md +10 -3
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/migrate-between-pg-schemas.js +6 -4
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/package.json +4 -1
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/prisma.config.ts +12 -3
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/scripts/migrate-human-approval-configs.ts +86 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/seed/workflow-node-types.ts +682 -121
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/seed/workflow.seed.ts +110 -1
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/config/index.ts +28 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/lib/json-body-parser.spec.ts +61 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/lib/json-body-parser.ts +7 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/lib/structured-all-exceptions.filter.spec.ts +54 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/lib/structured-all-exceptions.filter.ts +86 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/main.ts +9 -3
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/approvalChannel/approval-channel.controller.ts +89 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/approvalChannel/approval-channel.dto.ts +68 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/approvalChannel/approval-channel.service.spec.ts +177 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/approvalChannel/approval-channel.service.ts +283 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/approvalChannel/approvalChannel.module.ts +10 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/codeRuntime/code-executor.spec.ts +42 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/codeRuntime/code-executor.ts +108 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/codeRuntime/code-runtime.controller.ts +101 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/codeRuntime/code-runtime.dto.ts +29 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/codeRuntime/codeRuntime.module.ts +21 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/external-interaction-handler.registry.ts +30 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/external-interaction-handler.ts +15 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/external-interaction-runtime.controller.spec.ts +105 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/external-interaction-runtime.controller.ts +96 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/external-interaction-runtime.dto.ts +78 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/external-interaction-signal-outbox.service.spec.ts +56 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/external-interaction-signal-outbox.service.ts +111 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/external-interaction-token.spec.ts +23 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/external-interaction-token.ts +18 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/external-interaction.service.spec.ts +240 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/external-interaction.service.ts +339 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/external-interaction.types.ts +74 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/external-wait.handler.ts +47 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/externalInteraction.module.ts +41 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/human-approval.handler.spec.ts +70 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/human-approval.handler.ts +76 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/workflow-callback-url.controller.ts +12 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/workflow-callback-url.service.spec.ts +227 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/workflow-callback-url.service.ts +121 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/httpRequest/http-request-runtime.controller.ts +160 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/httpRequest/http-request-runtime.dto.ts +41 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/httpRequest/http-request-runtime.util.spec.ts +171 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/httpRequest/http-request-runtime.util.ts +245 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/httpRequest/httpRequest.module.ts +22 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/approval-rule-evaluator.spec.ts +68 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/approval-rule-evaluator.ts +126 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/approval-rule.types.ts +34 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/approval-signal-outbox.service.ts +115 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/approval-subject-source.util.spec.ts +45 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/approval-subject-source.util.ts +59 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/human-approval.controller.ts +72 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/human-approval.dto.ts +144 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/human-approval.errors.ts +19 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/human-approval.external-decision.spec.ts +350 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/human-approval.service.ts +774 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/humanApproval.module.ts +46 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/legacy-approval-config-migration.ts +227 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/outbox-retry.util.ts +14 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/runtime/human-approval-runtime.controller.ts +151 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/runtime/human-approval-runtime.dto.ts +88 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/runtime/runtime-token.guard.ts +43 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/index.ts +21 -1
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/integrationConnection/integration-connection.controller.ts +77 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/integrationConnection/integration-connection.dto.ts +98 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/integrationConnection/integration-connection.service.ts +277 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/integrationConnection/integration-secret-cipher.spec.ts +14 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/integrationConnection/integration-secret-cipher.ts +59 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/integrationConnection/integrationConnection.module.ts +10 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/subjectProvider/actor-context.util.ts +27 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/subjectProvider/providers/user-group.provider.ts +208 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/subjectProvider/providers/user.provider.ts +168 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/subjectProvider/subject-provider.controller.spec.ts +157 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/subjectProvider/subject-provider.controller.ts +176 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/subjectProvider/subject-provider.dto.ts +21 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/subjectProvider/subject-provider.errors.ts +78 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/subjectProvider/subject-provider.registry.spec.ts +100 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/subjectProvider/subject-provider.registry.ts +115 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/subjectProvider/subject-provider.types.ts +97 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/subjectProvider/subjectProvider.module.ts +34 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/temporalTenantConfig/temporalTenantConfig.controller.spec.ts +89 -1
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/temporalTenantConfig/temporalTenantConfig.controller.ts +4 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/userGroup/user-group.controller.ts +119 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/userGroup/user-group.dto.ts +91 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/userGroup/user-group.errors.ts +34 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/userGroup/user-group.service.spec.ts +161 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/userGroup/user-group.service.ts +390 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/userGroup/userGroup.module.ts +10 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/dsl-validate.util.spec.ts +17 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/dsl-validate.util.ts +8 -2
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/parameter-binding.ts +93 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-callable.spec.ts +158 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-callable.ts +155 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-compiler.service.spec.ts +363 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-compiler.service.ts +354 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-compiler.types.ts +43 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-data-edge.util.spec.ts +174 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-data-edge.util.ts +149 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-dsl-comparison.ts +43 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-execution.dto.ts +1 -1
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-export.dto.ts +4 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-export.service.ts +70 -28
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-handle-validator.ts +128 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow.controller.ts +12 -1
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow.module.ts +18 -3
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow.service.spec.ts +369 -22
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow.service.ts +319 -90
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowConfig/node-config-validator.service.spec.ts +79 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowConfig/node-config-validator.service.ts +62 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowConfig/schema.types.ts +10 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowConfig/subject-config-validator.service.spec.ts +124 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowConfig/subject-config-validator.service.ts +236 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowConfig/widget-catalog.service.spec.ts +49 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowConfig/widget-catalog.service.ts +69 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowConfig/workflowConfig.module.ts +20 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowNodeInstance/node-instance-config.util.spec.ts +15 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowNodeInstance/node-instance-config.util.ts +25 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowNodeInstance/workflowNodeInstance.controller.ts +103 -11
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowNodeInstance/workflowNodeInstance.dto.ts +98 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowNodeInstance/workflowNodeInstance.module.ts +3 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowNodeInstance/workflowNodeInstance.service.spec.ts +72 -62
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowNodeInstance/workflowNodeInstance.service.ts +148 -11
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/package.json +13 -9
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/App.tsx +5 -2
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/authProvider.ts +2 -2
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/BulkActions.tsx +0 -5
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/SearchBar.tsx +26 -18
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/auditLog/components/eventList/index.tsx +2 -2
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/auditLog/components/logButton/index.tsx +24 -17
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/auditLog/components/logList/index.tsx +7 -18
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/auditLog/components/modalDiffViewer/index.tsx +2 -2
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/contexts/color-mode/index.tsx +288 -33
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/contexts/color-mode/themeStyles.ts +97 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/layout/SettingDrawer.tsx +251 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/layout/header.tsx +47 -19
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/layout/layout.tsx +18 -9
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/layout/menuRenderer.tsx +155 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/layout/sider.tsx +123 -129
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/config/routeRegistry.tsx +16 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/constants/layout.ts +2 -1
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/AddDataModal.tsx +98 -3
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/AddPageModal.tsx +101 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/DevShell.tsx +8 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/style.css +51 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/form.tsx +1 -1
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/list.tsx +1 -1
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/login.ts +40 -1
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/show.tsx +5 -5
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useDynamicResources.tsx +16 -1
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useListPageState.ts +10 -7
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/i18n.ts +4 -2
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/locales/en/common.json +26 -2
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/locales/en/workflow.json +556 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/locales/zh_CN/common.json +26 -2
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/locales/zh_CN/workflow.json +556 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/plugins/devShellPlugin.ts +152 -2
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/agenda/index.tsx +6 -1
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/agenda/show.tsx +41 -9
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/agendaJob/edit.tsx +1 -1
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/agendaJob/list.tsx +10 -8
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/agendaJob/show.tsx +3 -3
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit/components/action-cell.css +1 -1
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit/edit.tsx +1 -1
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit/show.tsx +3 -6
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasCell.css +3 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasCell.tsx +45 -13
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasComponentLibrary.tsx +45 -22
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasListPage.tsx +168 -101
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasPage.tsx +248 -74
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasToolbar.tsx +33 -18
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CodeFloatWindow.tsx +16 -10
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/PublishModal.tsx +1 -1
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/canvasContextMenuRegistry.tsx +31 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/canvasDefaults.ts +15 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/BarChartDataSourceModal.tsx +16 -11
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/CanvasAiModal.tsx +25 -21
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/ExportModal.tsx +6 -1
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/LineChartDataSourceModal.tsx +9 -10
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/MultiChartConfigModal.tsx +4 -7
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/MultiChartDataSourceModal.tsx +23 -9
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/NumCardDataSourceModal.tsx +16 -11
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/PromptModal.tsx +2 -5
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/RadarChartDataSourceModal.tsx +16 -11
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/TableConfigModal.tsx +2 -9
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/TableDataSourceModal.tsx +23 -12
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/canvasModalProps.ts +2 -17
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/sectionCompactor.test.ts +149 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/sectionCompactor.ts +111 -17
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/types.ts +1 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/whiteboardLayout.test.ts +83 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/whiteboardLayout.ts +118 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/whiteboardName.test.ts +26 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas-page/index.tsx +9 -1
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/game/edit.tsx +1 -1
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/game/list.tsx +10 -8
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/game/show.tsx +3 -6
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/human-approval/DecisionModal.tsx +71 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/human-approval/inbox.tsx +216 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/Components/AssignRolesModal.tsx +6 -1
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/permissionReadme/index.tsx +8 -8
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/Components/modal.tsx +1 -1
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/list.tsx +5 -5
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/Components/modal.tsx +1 -1
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/components/show-drawer.tsx +1 -1
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/approval-channels/ApprovalChannelModal.test.tsx +84 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/approval-channels/ApprovalChannelModal.tsx +141 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/approval-channels/approval-channel.types.ts +16 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/approval-channels/index.tsx +208 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/CreateNodeInstanceDrawer.tsx +154 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/CustomNode.tsx +194 -5
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/DeletableEdge.tsx +76 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/DslView.tsx +1 -1
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/EnhancedFlowRenderer.tsx +176 -22
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/ExecutionStatusNode.test.tsx +62 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/ExecutionStatusNode.tsx +94 -5
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/ExportModal.tsx +15 -10
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/FlowRenderer.tsx +251 -70
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/ImportModal.tsx +18 -24
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/InstanceRequiredDialog.tsx +106 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/LookupConnectionDialog.test.tsx +45 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/LookupConnectionDialog.tsx +43 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/NewNodeDefaults.test.tsx +279 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/NodeEditModal.tsx +6 -7
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/NodePropertyPanel.test.tsx +335 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/NodePropertyPanel.tsx +433 -237
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/ParameterBindingEditor.tsx +179 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/RunWorkflowModal.tsx +18 -16
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/StatusCards.tsx +20 -16
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/VersionPanel.tsx +6 -4
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/connections/ConnectionModal.test.tsx +68 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/connections/ConnectionModal.tsx +367 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/connections/connection.types.ts +21 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/connections/index.tsx +171 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/editor.tsx +38 -22
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/hooks/useNodeInstanceLibrary.ts +41 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/hooks/useWorkflowAgent.ts +6 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/index.tsx +27 -20
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/instance-detail.tsx +8 -11
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/instances.tsx +6 -1
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/components/NodeInstanceForm.tsx +56 -23
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/create.tsx +21 -6
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/edit.tsx +17 -20
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/index.tsx +6 -1
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/schema-form/SchemaField.tsx +311 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/schema-form/SchemaForm.test.tsx +218 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/schema-form/SchemaForm.tsx +83 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/schema-form/default-widgets.tsx +135 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/schema-form/schema-defaults.ts +36 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/schema-form/schema.types.ts +32 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/schema-form/widget-registry.test.tsx +23 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/schema-form/widget-registry.tsx +52 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/show.tsx +9 -13
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/ApprovalRequestTriggerConfigEditor.tsx +39 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/ApprovalRuleEditor.test.tsx +20 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/ApprovalRuleEditor.tsx +72 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/ApproverSourceEditor.test.tsx +47 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/ApproverSourceEditor.tsx +185 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/CallableInputParametersEditor.test.tsx +102 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/CallableInputParametersEditor.tsx +150 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/CodeConfigEditor.tsx +103 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/ExternalRequestConfigEditor.test.tsx +93 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/ExternalRequestConfigEditor.tsx +196 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/ExternalWaitConfigEditor.tsx +303 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/HttpRequestConfigEditor.test.tsx +189 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/HttpRequestConfigEditor.tsx +706 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/HumanApprovalConfigEditor.test.tsx +86 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/HumanApprovalConfigEditor.tsx +458 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/ReturnResultConfigEditor.test.tsx +53 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/ReturnResultConfigEditor.tsx +91 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/SubjectPicker.test.tsx +61 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/SubjectPicker.tsx +266 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/SubmitApprovalResultConfigEditor.tsx +104 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/SubmitExternalResultConfigEditor.tsx +98 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/UserGroupCreateModal.tsx +70 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/UserGroupEditModal.tsx +138 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/approver-source.test.ts +25 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/approver-source.ts +42 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/subject-provider.api.ts +95 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/show.tsx +15 -11
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/temporal-tenant/index.tsx +49 -8
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/types/parameter-binding.ts +49 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/types.ts +31 -2
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/lookupConnection.test.ts +208 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/lookupConnection.ts +246 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/newNodeConfig.ts +73 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/removeWorkflowEdges.test.ts +34 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/removeWorkflowEdges.ts +18 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/resolveLookupPorts.ts +66 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/resolveOutputs.test.ts +39 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/resolveOutputs.ts +48 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/resolveWorkflowDisplay.test.ts +51 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/resolveWorkflowDisplay.ts +32 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflowEventOutbox/edit.tsx +1 -1
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflowEventOutbox/list.tsx +10 -8
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflowEventOutbox/show.tsx +3 -3
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/styles/antd-theme-vars.css +93 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/styles/antd.css +8 -8
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/styles/fc.css +4 -4
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/styles/index.css +20 -5
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/styles/show-drawer.module.css +3 -3
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/styles/show-page.module.css +3 -3
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/styles/theme-styles.css +81 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/test/setup.ts +5 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/vite.config.ts +1 -7
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/vitest.config.ts +12 -0
- package/package.json +1 -1
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/components/DynamicConfigForm.tsx +0 -154
package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/editor.tsx
CHANGED
|
@@ -26,6 +26,7 @@ import {
|
|
|
26
26
|
SaveOutlined,
|
|
27
27
|
} from '@ant-design/icons';
|
|
28
28
|
import { useNavigate, useParams } from 'react-router-dom';
|
|
29
|
+
import { useTranslation } from 'react-i18next';
|
|
29
30
|
import { customRequest } from 'helpers/http';
|
|
30
31
|
import { FlowRenderer } from './components/FlowRenderer';
|
|
31
32
|
import { NodePropertyPanel } from './components/NodePropertyPanel';
|
|
@@ -47,6 +48,7 @@ const NEW_DRAFT_KEY = 'workflow_new_draft';
|
|
|
47
48
|
const EDIT_DRAFT_KEY = (id: string) => `workflow_draft_${id}`;
|
|
48
49
|
|
|
49
50
|
export default function WorkflowEditorPage() {
|
|
51
|
+
const { t } = useTranslation('workflow');
|
|
50
52
|
const { id } = useParams<{ id: string }>();
|
|
51
53
|
const isNewMode = !id;
|
|
52
54
|
const navigate = useNavigate();
|
|
@@ -66,7 +68,7 @@ export default function WorkflowEditorPage() {
|
|
|
66
68
|
const dslViewRef = useRef<DslViewHandle>(null);
|
|
67
69
|
|
|
68
70
|
// Title editing state
|
|
69
|
-
const [title, setTitle] = useState(isNewMode ? '
|
|
71
|
+
const [title, setTitle] = useState(isNewMode ? t('editor.untitled') : '');
|
|
70
72
|
const [editingTitle, setEditingTitle] = useState(false);
|
|
71
73
|
const titleInputRef = useRef<any>(null);
|
|
72
74
|
|
|
@@ -141,16 +143,22 @@ export default function WorkflowEditorPage() {
|
|
|
141
143
|
setWorkflow(wf);
|
|
142
144
|
setVersions(vers);
|
|
143
145
|
setTitle(wf.name);
|
|
144
|
-
// DSL comes from findOne (includes full latest version with dsl field)
|
|
145
146
|
// getVersions only returns metadata (no dsl) for the version selector
|
|
146
147
|
const latestVersion = (wf as any).versions?.[0];
|
|
147
|
-
|
|
148
|
+
// wf.dsl is the draft (source of truth for in-progress edits, same
|
|
149
|
+
// precedence as backend publish()); fall back to the last published
|
|
150
|
+
// version only when no draft has ever been saved.
|
|
151
|
+
if (wf.dsl) {
|
|
152
|
+
setDsl(wf.dsl);
|
|
153
|
+
} else if (latestVersion?.dsl) {
|
|
148
154
|
setDsl(latestVersion.dsl);
|
|
155
|
+
}
|
|
156
|
+
if (latestVersion?.version) {
|
|
149
157
|
setCurrentVersion(latestVersion.version);
|
|
150
158
|
}
|
|
151
159
|
})
|
|
152
160
|
.catch((e) => {
|
|
153
|
-
message.error(e?.message ?? '
|
|
161
|
+
message.error(e?.message ?? t('editor.loadFailed'));
|
|
154
162
|
})
|
|
155
163
|
.finally(() => {
|
|
156
164
|
setLoading(false);
|
|
@@ -185,7 +193,7 @@ export default function WorkflowEditorPage() {
|
|
|
185
193
|
if (result && 'dsl' in result) {
|
|
186
194
|
setDsl(result.dsl);
|
|
187
195
|
setHasUnsavedChanges(true);
|
|
188
|
-
message.success(result.changeSummary || '
|
|
196
|
+
message.success(result.changeSummary || t('editor.updated'));
|
|
189
197
|
}
|
|
190
198
|
},
|
|
191
199
|
[dsl, generate],
|
|
@@ -204,7 +212,7 @@ export default function WorkflowEditorPage() {
|
|
|
204
212
|
if (result && 'dsl' in result) {
|
|
205
213
|
setDsl(result.dsl);
|
|
206
214
|
setHasUnsavedChanges(true);
|
|
207
|
-
message.success(result.changeSummary || '
|
|
215
|
+
message.success(result.changeSummary || t('editor.nodeUpdated'));
|
|
208
216
|
}
|
|
209
217
|
},
|
|
210
218
|
[dsl, generate],
|
|
@@ -245,6 +253,7 @@ export default function WorkflowEditorPage() {
|
|
|
245
253
|
updates: {
|
|
246
254
|
label?: string;
|
|
247
255
|
config?: Record<string, any>;
|
|
256
|
+
configOverride?: Record<string, any> | null;
|
|
248
257
|
instanceRef?: WorkflowNode['instanceRef'] | null;
|
|
249
258
|
},
|
|
250
259
|
) => {
|
|
@@ -261,6 +270,11 @@ export default function WorkflowEditorPage() {
|
|
|
261
270
|
} else if (updates.instanceRef !== undefined) {
|
|
262
271
|
updated.instanceRef = updates.instanceRef;
|
|
263
272
|
}
|
|
273
|
+
if (updates.configOverride === null) {
|
|
274
|
+
delete updated.configOverride;
|
|
275
|
+
} else if (updates.configOverride !== undefined) {
|
|
276
|
+
updated.configOverride = updates.configOverride;
|
|
277
|
+
}
|
|
264
278
|
return updated;
|
|
265
279
|
});
|
|
266
280
|
setDsl({ ...dsl, nodes: newNodes });
|
|
@@ -321,7 +335,7 @@ export default function WorkflowEditorPage() {
|
|
|
321
335
|
dsl,
|
|
322
336
|
});
|
|
323
337
|
localStorage.removeItem(NEW_DRAFT_KEY);
|
|
324
|
-
message.success('
|
|
338
|
+
message.success(t('editor.saveSuccess'));
|
|
325
339
|
navigate(`/admin/workflow/edit/${wf.id}`, { replace: true });
|
|
326
340
|
} else {
|
|
327
341
|
// Update existing: save draft
|
|
@@ -333,10 +347,10 @@ export default function WorkflowEditorPage() {
|
|
|
333
347
|
await customRequest(`workflow/${id}/save`, 'PATCH', { dsl });
|
|
334
348
|
localStorage.removeItem(EDIT_DRAFT_KEY(id!));
|
|
335
349
|
setHasUnsavedChanges(false);
|
|
336
|
-
message.success('
|
|
350
|
+
message.success(t('editor.saved'));
|
|
337
351
|
}
|
|
338
352
|
} catch (e: any) {
|
|
339
|
-
message.error(e?.message ?? '
|
|
353
|
+
message.error(e?.message ?? t('editor.saveFailed'));
|
|
340
354
|
} finally {
|
|
341
355
|
setSaving(false);
|
|
342
356
|
}
|
|
@@ -378,7 +392,7 @@ export default function WorkflowEditorPage() {
|
|
|
378
392
|
setSelectedNodeId(null);
|
|
379
393
|
localStorage.removeItem(EDIT_DRAFT_KEY(id));
|
|
380
394
|
} catch (e: any) {
|
|
381
|
-
message.error(e?.message ?? '
|
|
395
|
+
message.error(e?.message ?? t('editor.versionLoadFailed'));
|
|
382
396
|
}
|
|
383
397
|
}
|
|
384
398
|
|
|
@@ -441,7 +455,7 @@ export default function WorkflowEditorPage() {
|
|
|
441
455
|
height: 'calc(100vh - 96px)',
|
|
442
456
|
display: 'flex',
|
|
443
457
|
flexDirection: 'column',
|
|
444
|
-
background: '
|
|
458
|
+
background: 'var(--ant-color-bg-layout)',
|
|
445
459
|
overflow: 'hidden',
|
|
446
460
|
}}
|
|
447
461
|
>
|
|
@@ -482,7 +496,9 @@ export default function WorkflowEditorPage() {
|
|
|
482
496
|
/>
|
|
483
497
|
</>
|
|
484
498
|
)}
|
|
485
|
-
{hasUnsavedChanges &&
|
|
499
|
+
{hasUnsavedChanges && (
|
|
500
|
+
<Tag color="orange">{t('editor.unsaved')}</Tag>
|
|
501
|
+
)}
|
|
486
502
|
</Space>
|
|
487
503
|
<Space>
|
|
488
504
|
{!isNewMode && versions.length > 0 && (
|
|
@@ -490,9 +506,9 @@ export default function WorkflowEditorPage() {
|
|
|
490
506
|
value={currentVersion}
|
|
491
507
|
onChange={handleSelectVersion}
|
|
492
508
|
style={{ width: 200 }}
|
|
493
|
-
placeholder=
|
|
509
|
+
placeholder={t('editor.selectVersion')}
|
|
494
510
|
options={versions.map((v) => ({
|
|
495
|
-
label: `v${v.version} - ${v.changeSummary?.slice(0, 20) || '
|
|
511
|
+
label: `v${v.version} - ${v.changeSummary?.slice(0, 20) || t('editor.saved')}`,
|
|
496
512
|
value: v.version,
|
|
497
513
|
}))}
|
|
498
514
|
/>
|
|
@@ -503,7 +519,7 @@ export default function WorkflowEditorPage() {
|
|
|
503
519
|
icon={<RobotOutlined />}
|
|
504
520
|
onClick={handleOpenAiModal}
|
|
505
521
|
>
|
|
506
|
-
|
|
522
|
+
{t('editor.aiGenerate')}
|
|
507
523
|
</Button>
|
|
508
524
|
)}
|
|
509
525
|
<Button
|
|
@@ -513,7 +529,7 @@ export default function WorkflowEditorPage() {
|
|
|
513
529
|
loading={saving}
|
|
514
530
|
onClick={handleSave}
|
|
515
531
|
>
|
|
516
|
-
|
|
532
|
+
{t('common.save')}
|
|
517
533
|
</Button>
|
|
518
534
|
</Space>
|
|
519
535
|
</div>
|
|
@@ -589,18 +605,18 @@ export default function WorkflowEditorPage() {
|
|
|
589
605
|
|
|
590
606
|
{/* Name modal for untitled workflows */}
|
|
591
607
|
<Modal
|
|
592
|
-
title=
|
|
608
|
+
title={t('editor.save')}
|
|
593
609
|
open={nameModalOpen}
|
|
594
610
|
onOk={handleNameModalOk}
|
|
595
611
|
onCancel={() => setNameModalOpen(false)}
|
|
596
|
-
okText=
|
|
612
|
+
okText={t('common.save')}
|
|
597
613
|
okButtonProps={{ loading: saving }}
|
|
598
614
|
>
|
|
599
615
|
<div style={{ marginBottom: 8 }}>
|
|
600
|
-
<Typography.Text strong>
|
|
616
|
+
<Typography.Text strong>{t('editor.workflowName')}</Typography.Text>
|
|
601
617
|
</div>
|
|
602
618
|
<Input
|
|
603
|
-
placeholder=
|
|
619
|
+
placeholder={t('editor.workflowNamePlaceholder')}
|
|
604
620
|
value={saveName}
|
|
605
621
|
onChange={(e) => setSaveName(e.target.value)}
|
|
606
622
|
onPressEnter={handleNameModalOk}
|
|
@@ -624,7 +640,7 @@ export default function WorkflowEditorPage() {
|
|
|
624
640
|
<TextArea
|
|
625
641
|
value={aiPromptText}
|
|
626
642
|
onChange={(e) => setAiPromptText(e.target.value)}
|
|
627
|
-
placeholder=
|
|
643
|
+
placeholder={t('editor.changePlaceholder')}
|
|
628
644
|
autoSize={{ minRows: 6, maxRows: 12 }}
|
|
629
645
|
onPressEnter={(e) => {
|
|
630
646
|
if (e.ctrlKey && aiPromptText.trim()) {
|
|
@@ -649,7 +665,7 @@ export default function WorkflowEditorPage() {
|
|
|
649
665
|
style={{ marginTop: 12 }}
|
|
650
666
|
block
|
|
651
667
|
>
|
|
652
|
-
|
|
668
|
+
{t('editor.generate')}
|
|
653
669
|
</Button>
|
|
654
670
|
</Modal>
|
|
655
671
|
</div>
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { useCallback, useEffect, useState } from 'react';
|
|
2
|
+
import { customRequest } from 'helpers/http';
|
|
3
|
+
import type { WorkflowNodeInstance } from '../types';
|
|
4
|
+
|
|
5
|
+
export function useNodeInstanceLibrary(nodeTypeId?: string, enabled = true) {
|
|
6
|
+
const [instances, setInstances] = useState<WorkflowNodeInstance[]>([]);
|
|
7
|
+
const [loading, setLoading] = useState(false);
|
|
8
|
+
const [error, setError] = useState<Error>();
|
|
9
|
+
|
|
10
|
+
const reload = useCallback(async () => {
|
|
11
|
+
if (!nodeTypeId || !enabled) {
|
|
12
|
+
setInstances([]);
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
setLoading(true);
|
|
16
|
+
setError(undefined);
|
|
17
|
+
try {
|
|
18
|
+
const response = await customRequest<{ data: WorkflowNodeInstance[] }>(
|
|
19
|
+
'workflowNodeInstance/findMany',
|
|
20
|
+
'POST',
|
|
21
|
+
{
|
|
22
|
+
where: { nodeTypeId: Number(nodeTypeId), isEnabled: true },
|
|
23
|
+
orderBy: { name: 'asc' },
|
|
24
|
+
take: 100,
|
|
25
|
+
},
|
|
26
|
+
);
|
|
27
|
+
setInstances(Array.isArray(response) ? response : (response.data ?? []));
|
|
28
|
+
} catch (cause) {
|
|
29
|
+
setError(cause instanceof Error ? cause : new Error(String(cause)));
|
|
30
|
+
setInstances([]);
|
|
31
|
+
} finally {
|
|
32
|
+
setLoading(false);
|
|
33
|
+
}
|
|
34
|
+
}, [enabled, nodeTypeId]);
|
|
35
|
+
|
|
36
|
+
useEffect(() => {
|
|
37
|
+
void reload();
|
|
38
|
+
}, [reload]);
|
|
39
|
+
|
|
40
|
+
return { instances, loading, error, reload };
|
|
41
|
+
}
|
|
@@ -162,6 +162,12 @@ Each node: { "id": "uuid", "type": "node_type", "label": "Display Name", "positi
|
|
|
162
162
|
Each edge: { "id": "uuid", "source": "nodeId", "target": "nodeId", "sourceHandle?": "string", "label?": "string" }
|
|
163
163
|
${handleSection}
|
|
164
164
|
|
|
165
|
+
Data rules:
|
|
166
|
+
- "input" always means the value returned by the immediately previous FLOW node.
|
|
167
|
+
- "workflow" always means the original data received when the Workflow started.
|
|
168
|
+
- A callable parameter binding must be structured as {"source":"INPUT"|"WORKFLOW","path":"relative.path"} or {"source":"FIXED","valueType":"STRING"|"NUMBER"|"BOOLEAN"|"JSON","value":"..."}.
|
|
169
|
+
- Never generate context, inputMapping, node UUID paths, nodes.xxx, PREVIOUS, or CONTEXT_PATH as data references.
|
|
170
|
+
|
|
165
171
|
Position nodes using: x = vertical order (increment by 250 for each sequential step), y = horizontal lane (0 for single-path flows; use different y values spaced by 200 only for parallel branches).`;
|
|
166
172
|
}, [nodeTypes]);
|
|
167
173
|
|
package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/index.tsx
CHANGED
|
@@ -32,6 +32,7 @@ import { StatusCards } from './components/StatusCards';
|
|
|
32
32
|
import { ExportModal } from './components/ExportModal';
|
|
33
33
|
import { ImportModal } from './components/ImportModal';
|
|
34
34
|
import type { Workflow, WorkflowOverview } from './types';
|
|
35
|
+
import { useTranslation } from 'react-i18next';
|
|
35
36
|
|
|
36
37
|
const { Title } = Typography;
|
|
37
38
|
const PAGE_SIZE = 20;
|
|
@@ -80,6 +81,7 @@ const STATUS_COLOR: Record<string, string> = {
|
|
|
80
81
|
};
|
|
81
82
|
|
|
82
83
|
export default function WorkflowListPage() {
|
|
84
|
+
const { t } = useTranslation('workflow');
|
|
83
85
|
console.log('[WorkflowList] MOUNTED, pathname:', window.location.pathname);
|
|
84
86
|
const navigate = useNavigate();
|
|
85
87
|
const [workflows, setWorkflows] = useState<Workflow[]>([]);
|
|
@@ -162,7 +164,7 @@ export default function WorkflowListPage() {
|
|
|
162
164
|
setTotal(listRes.total);
|
|
163
165
|
setOverview(overviewRes);
|
|
164
166
|
} catch (e: any) {
|
|
165
|
-
message.error(e?.message ?? '
|
|
167
|
+
message.error(e?.message ?? t('list.fetchFailed'));
|
|
166
168
|
} finally {
|
|
167
169
|
setLoading(false);
|
|
168
170
|
}
|
|
@@ -175,7 +177,7 @@ export default function WorkflowListPage() {
|
|
|
175
177
|
async function handleDelete(id: string) {
|
|
176
178
|
try {
|
|
177
179
|
await customRequest(`workflow/${id}`, 'DELETE');
|
|
178
|
-
message.success('
|
|
180
|
+
message.success(t('list.deleted'));
|
|
179
181
|
fetchData();
|
|
180
182
|
} catch (e: any) {
|
|
181
183
|
message.error(e?.message ?? 'Delete failed');
|
|
@@ -189,13 +191,13 @@ export default function WorkflowListPage() {
|
|
|
189
191
|
await customRequest(`workflow/${publishId}/publish`, 'POST', {
|
|
190
192
|
changeSummary: publishSummary,
|
|
191
193
|
});
|
|
192
|
-
message.success('
|
|
194
|
+
message.success(t('list.published'));
|
|
193
195
|
setPublishModalOpen(false);
|
|
194
196
|
setPublishId(null);
|
|
195
197
|
setPublishSummary('');
|
|
196
198
|
fetchData();
|
|
197
199
|
} catch (e: any) {
|
|
198
|
-
message.error(e?.message ?? '
|
|
200
|
+
message.error(e?.message ?? t('list.publishFailed'));
|
|
199
201
|
} finally {
|
|
200
202
|
setPublishLoading(false);
|
|
201
203
|
}
|
|
@@ -280,25 +282,25 @@ export default function WorkflowListPage() {
|
|
|
280
282
|
<RunDot
|
|
281
283
|
count={runs.pending}
|
|
282
284
|
color="#faad14"
|
|
283
|
-
label=
|
|
285
|
+
label={t('list.pending')}
|
|
284
286
|
onClick={() => go('PENDING')}
|
|
285
287
|
/>
|
|
286
288
|
<RunDot
|
|
287
289
|
count={runs.completed}
|
|
288
290
|
color="#006d32"
|
|
289
|
-
label=
|
|
291
|
+
label={t('list.completed')}
|
|
290
292
|
onClick={() => go('COMPLETED')}
|
|
291
293
|
/>
|
|
292
294
|
<RunDot
|
|
293
295
|
count={runs.running}
|
|
294
296
|
color="#52c41a"
|
|
295
|
-
label=
|
|
297
|
+
label={t('list.running')}
|
|
296
298
|
onClick={() => go('RUNNING')}
|
|
297
299
|
/>
|
|
298
300
|
<RunDot
|
|
299
301
|
count={runs.failed}
|
|
300
302
|
color="#ff4d4f"
|
|
301
|
-
label=
|
|
303
|
+
label={t('list.failed')}
|
|
302
304
|
onClick={() => go('FAILED')}
|
|
303
305
|
/>
|
|
304
306
|
</Space>
|
|
@@ -335,21 +337,21 @@ export default function WorkflowListPage() {
|
|
|
335
337
|
width: 180,
|
|
336
338
|
render: (_: any, record: Workflow) => (
|
|
337
339
|
<Space>
|
|
338
|
-
<Tooltip title=
|
|
340
|
+
<Tooltip title={t('common.view')}>
|
|
339
341
|
<Button
|
|
340
342
|
size="small"
|
|
341
343
|
icon={<EyeOutlined />}
|
|
342
344
|
onClick={() => navigate(`/admin/workflow/show/${record.id}`)}
|
|
343
345
|
/>
|
|
344
346
|
</Tooltip>
|
|
345
|
-
<Tooltip title=
|
|
347
|
+
<Tooltip title={t('common.edit')}>
|
|
346
348
|
<Button
|
|
347
349
|
size="small"
|
|
348
350
|
icon={<EditOutlined />}
|
|
349
351
|
onClick={() => navigate(`/admin/workflow/edit/${record.id}`)}
|
|
350
352
|
/>
|
|
351
353
|
</Tooltip>
|
|
352
|
-
<Tooltip title=
|
|
354
|
+
<Tooltip title={t('list.runHistory')}>
|
|
353
355
|
<Button
|
|
354
356
|
size="small"
|
|
355
357
|
icon={<HistoryOutlined />}
|
|
@@ -358,7 +360,7 @@ export default function WorkflowListPage() {
|
|
|
358
360
|
}
|
|
359
361
|
/>
|
|
360
362
|
</Tooltip>
|
|
361
|
-
<Tooltip title=
|
|
363
|
+
<Tooltip title={t('list.export')}>
|
|
362
364
|
<Button
|
|
363
365
|
size="small"
|
|
364
366
|
icon={<ExportOutlined />}
|
|
@@ -369,7 +371,7 @@ export default function WorkflowListPage() {
|
|
|
369
371
|
/>
|
|
370
372
|
</Tooltip>
|
|
371
373
|
{record.status === 'DRAFT' && (
|
|
372
|
-
<Tooltip title=
|
|
374
|
+
<Tooltip title={t('list.publish')}>
|
|
373
375
|
<Button
|
|
374
376
|
size="small"
|
|
375
377
|
type="primary"
|
|
@@ -383,7 +385,7 @@ export default function WorkflowListPage() {
|
|
|
383
385
|
</Tooltip>
|
|
384
386
|
)}
|
|
385
387
|
<Popconfirm
|
|
386
|
-
title=
|
|
388
|
+
title={t('list.deleteConfirm')}
|
|
387
389
|
description="All versions and instances will be deleted."
|
|
388
390
|
okText="Delete"
|
|
389
391
|
cancelText="Cancel"
|
|
@@ -400,7 +402,12 @@ export default function WorkflowListPage() {
|
|
|
400
402
|
];
|
|
401
403
|
|
|
402
404
|
return (
|
|
403
|
-
<div
|
|
405
|
+
<div
|
|
406
|
+
style={{
|
|
407
|
+
background: 'var(--ant-color-bg-layout)',
|
|
408
|
+
minHeight: 'calc(100vh - 64px)',
|
|
409
|
+
}}
|
|
410
|
+
>
|
|
404
411
|
<Card style={{ marginBottom: 16 }}>
|
|
405
412
|
<div
|
|
406
413
|
style={{
|
|
@@ -410,7 +417,7 @@ export default function WorkflowListPage() {
|
|
|
410
417
|
}}
|
|
411
418
|
>
|
|
412
419
|
<Title level={4} style={{ margin: 0 }}>
|
|
413
|
-
|
|
420
|
+
{t('list.title')}
|
|
414
421
|
</Title>
|
|
415
422
|
<Space>
|
|
416
423
|
<Tooltip title="查看 WorkflowEventOutbox 表原始数据">
|
|
@@ -434,7 +441,7 @@ export default function WorkflowListPage() {
|
|
|
434
441
|
icon={<PlusOutlined />}
|
|
435
442
|
onClick={() => navigate('/admin/workflow/create')}
|
|
436
443
|
>
|
|
437
|
-
|
|
444
|
+
{t('list.new')}
|
|
438
445
|
</Button>
|
|
439
446
|
<Button icon={<ReloadOutlined />} onClick={fetchData} />
|
|
440
447
|
</Space>
|
|
@@ -457,7 +464,7 @@ export default function WorkflowListPage() {
|
|
|
457
464
|
style={{ width: 120 }}
|
|
458
465
|
options={[
|
|
459
466
|
{ value: 'draft', label: 'Draft' },
|
|
460
|
-
{ value: 'published', label: '
|
|
467
|
+
{ value: 'published', label: t('list.publishedStatus') },
|
|
461
468
|
]}
|
|
462
469
|
/>
|
|
463
470
|
<Input
|
|
@@ -496,7 +503,7 @@ export default function WorkflowListPage() {
|
|
|
496
503
|
</Card>
|
|
497
504
|
|
|
498
505
|
<Modal
|
|
499
|
-
title=
|
|
506
|
+
title={t('list.publishTitle')}
|
|
500
507
|
open={publishModalOpen}
|
|
501
508
|
onOk={handlePublish}
|
|
502
509
|
onCancel={() => {
|
|
@@ -504,7 +511,7 @@ export default function WorkflowListPage() {
|
|
|
504
511
|
setPublishId(null);
|
|
505
512
|
setPublishSummary('');
|
|
506
513
|
}}
|
|
507
|
-
okText=
|
|
514
|
+
okText={t('list.publish')}
|
|
508
515
|
cancelText="Cancel"
|
|
509
516
|
confirmLoading={publishLoading}
|
|
510
517
|
>
|
|
@@ -219,7 +219,7 @@ export default function WorkflowInstanceDetailPage() {
|
|
|
219
219
|
return (
|
|
220
220
|
<div
|
|
221
221
|
style={{
|
|
222
|
-
background: '
|
|
222
|
+
background: 'var(--ant-color-bg-layout)',
|
|
223
223
|
minHeight: 'calc(100vh - 64px)',
|
|
224
224
|
padding: 0,
|
|
225
225
|
}}
|
|
@@ -303,7 +303,6 @@ export default function WorkflowInstanceDetailPage() {
|
|
|
303
303
|
</Space>
|
|
304
304
|
</div>
|
|
305
305
|
</Card>
|
|
306
|
-
|
|
307
306
|
{/* Instance Info */}
|
|
308
307
|
<Card style={{ marginBottom: 16 }} title="Execution Details">
|
|
309
308
|
<Descriptions column={3} size="small">
|
|
@@ -325,7 +324,6 @@ export default function WorkflowInstanceDetailPage() {
|
|
|
325
324
|
</Descriptions.Item>
|
|
326
325
|
</Descriptions>
|
|
327
326
|
</Card>
|
|
328
|
-
|
|
329
327
|
{/* Node Execution Timeline / Canvas View */}
|
|
330
328
|
<Card
|
|
331
329
|
title={
|
|
@@ -425,7 +423,7 @@ export default function WorkflowInstanceDetailPage() {
|
|
|
425
423
|
<div
|
|
426
424
|
style={{
|
|
427
425
|
fontSize: 12,
|
|
428
|
-
color: '
|
|
426
|
+
color: 'var(--ant-color-text-secondary)',
|
|
429
427
|
cursor: 'pointer',
|
|
430
428
|
}}
|
|
431
429
|
onClick={() =>
|
|
@@ -456,13 +454,12 @@ export default function WorkflowInstanceDetailPage() {
|
|
|
456
454
|
/>
|
|
457
455
|
)}
|
|
458
456
|
</div>
|
|
459
|
-
|
|
460
457
|
{/* Node Detail Panel (shared with canvas view) */}
|
|
461
458
|
{selectedExecution && (
|
|
462
459
|
<div
|
|
463
460
|
style={{
|
|
464
461
|
width: 320,
|
|
465
|
-
borderLeft: '1px solid
|
|
462
|
+
borderLeft: '1px solid var(--ant-color-border-secondary)',
|
|
466
463
|
paddingLeft: 16,
|
|
467
464
|
overflowY: 'auto',
|
|
468
465
|
}}
|
|
@@ -519,7 +516,7 @@ export default function WorkflowInstanceDetailPage() {
|
|
|
519
516
|
</Text>
|
|
520
517
|
<pre
|
|
521
518
|
style={{
|
|
522
|
-
background: '
|
|
519
|
+
background: 'var(--ant-color-fill-quaternary)',
|
|
523
520
|
padding: 8,
|
|
524
521
|
borderRadius: 4,
|
|
525
522
|
fontSize: 11,
|
|
@@ -539,7 +536,7 @@ export default function WorkflowInstanceDetailPage() {
|
|
|
539
536
|
</Text>
|
|
540
537
|
<pre
|
|
541
538
|
style={{
|
|
542
|
-
background: '
|
|
539
|
+
background: 'var(--ant-color-fill-quaternary)',
|
|
543
540
|
padding: 8,
|
|
544
541
|
borderRadius: 4,
|
|
545
542
|
fontSize: 11,
|
|
@@ -599,7 +596,7 @@ export default function WorkflowInstanceDetailPage() {
|
|
|
599
596
|
<div
|
|
600
597
|
style={{
|
|
601
598
|
width: 320,
|
|
602
|
-
borderLeft: '1px solid
|
|
599
|
+
borderLeft: '1px solid var(--ant-color-border-secondary)',
|
|
603
600
|
paddingLeft: 16,
|
|
604
601
|
overflowY: 'auto',
|
|
605
602
|
}}
|
|
@@ -663,7 +660,7 @@ export default function WorkflowInstanceDetailPage() {
|
|
|
663
660
|
</Text>
|
|
664
661
|
<pre
|
|
665
662
|
style={{
|
|
666
|
-
background: '
|
|
663
|
+
background: 'var(--ant-color-fill-quaternary)',
|
|
667
664
|
padding: 8,
|
|
668
665
|
borderRadius: 4,
|
|
669
666
|
fontSize: 11,
|
|
@@ -683,7 +680,7 @@ export default function WorkflowInstanceDetailPage() {
|
|
|
683
680
|
</Text>
|
|
684
681
|
<pre
|
|
685
682
|
style={{
|
|
686
|
-
background: '
|
|
683
|
+
background: 'var(--ant-color-fill-quaternary)',
|
|
687
684
|
padding: 8,
|
|
688
685
|
borderRadius: 4,
|
|
689
686
|
fontSize: 11,
|
package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/instances.tsx
CHANGED
|
@@ -183,7 +183,12 @@ export default function WorkflowInstancesPage() {
|
|
|
183
183
|
];
|
|
184
184
|
|
|
185
185
|
return (
|
|
186
|
-
<div
|
|
186
|
+
<div
|
|
187
|
+
style={{
|
|
188
|
+
background: 'var(--ant-color-bg-layout)',
|
|
189
|
+
minHeight: 'calc(100vh - 64px)',
|
|
190
|
+
}}
|
|
191
|
+
>
|
|
187
192
|
<Card style={{ marginBottom: 16 }}>
|
|
188
193
|
<div
|
|
189
194
|
style={{
|