@nocobase/app-plugin-projects 0.1.0-beta.7 → 0.1.0-beta.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +58 -0
- package/README.md +60 -104
- package/dist/client/api/changed-issues.d.ts +12 -0
- package/dist/client/api/changed-issues.d.ts.map +1 -0
- package/dist/client/api/changed-issues.js +30 -0
- package/dist/client/api/changed-issues.js.map +1 -0
- package/dist/client/api/client.d.ts +4 -23
- package/dist/client/api/client.d.ts.map +1 -1
- package/dist/client/api/client.js +4 -48
- package/dist/client/api/client.js.map +1 -1
- package/dist/client/api/keys.d.ts +2 -8
- package/dist/client/api/keys.d.ts.map +1 -1
- package/dist/client/api/keys.js +2 -17
- package/dist/client/api/keys.js.map +1 -1
- package/dist/client/components/pm-badges.d.ts +1 -1
- package/dist/client/components/pm-badges.d.ts.map +1 -1
- package/dist/client/components/pm-executor-select.d.ts +2 -0
- package/dist/client/components/pm-executor-select.d.ts.map +1 -1
- package/dist/client/components/pm-executor-select.js.map +1 -1
- package/dist/client/components/ui/radio-group.d.ts +7 -0
- package/dist/client/components/ui/radio-group.d.ts.map +1 -0
- package/dist/client/components/ui/radio-group.js +12 -0
- package/dist/client/components/ui/radio-group.js.map +1 -0
- package/dist/client/config.d.ts +0 -2
- package/dist/client/config.d.ts.map +1 -1
- package/dist/client/config.js +1 -5
- package/dist/client/config.js.map +1 -1
- package/dist/client/issues.d.ts +2 -4
- package/dist/client/issues.d.ts.map +1 -1
- package/dist/client/issues.js +2 -3
- package/dist/client/issues.js.map +1 -1
- package/dist/client/kit/plans/lookup.d.ts +2 -2
- package/dist/client/kit/plans/lookup.js +3 -3
- package/dist/client/kit/plans/lookup.js.map +1 -1
- package/dist/client/kit/plans/plan-row.js +2 -2
- package/dist/client/kit/plans/plan-row.js.map +1 -1
- package/dist/client/kit.d.ts +3 -9
- package/dist/client/kit.d.ts.map +1 -1
- package/dist/client/kit.js +3 -9
- package/dist/client/kit.js.map +1 -1
- package/dist/client/lib/kinds.d.ts +3 -29
- package/dist/client/lib/kinds.d.ts.map +1 -1
- package/dist/client/lib/kinds.js +7 -46
- package/dist/client/lib/kinds.js.map +1 -1
- package/dist/client/lib/status-events.d.ts +21 -0
- package/dist/client/lib/status-events.d.ts.map +1 -0
- package/dist/client/lib/status-events.js +31 -0
- package/dist/client/lib/status-events.js.map +1 -0
- package/dist/client/lib/status.d.ts +5 -7
- package/dist/client/lib/status.d.ts.map +1 -1
- package/dist/client/lib/status.js +5 -7
- package/dist/client/lib/status.js.map +1 -1
- package/dist/client/locales/en-US.d.ts +6 -256
- package/dist/client/locales/en-US.d.ts.map +1 -1
- package/dist/client/locales/en-US.js +9 -255
- package/dist/client/locales/en-US.js.map +1 -1
- package/dist/client/locales/zh-CN.d.ts.map +1 -1
- package/dist/client/locales/zh-CN.js +10 -248
- package/dist/client/locales/zh-CN.js.map +1 -1
- package/dist/client/pages/issues/board/board-model.d.ts +1 -1
- package/dist/client/pages/issues/board/board-model.js +1 -1
- package/dist/client/pages/issues/board/use-board-move.d.ts +2 -8
- package/dist/client/pages/issues/board/use-board-move.d.ts.map +1 -1
- package/dist/client/pages/issues/board/use-board-move.js +5 -42
- package/dist/client/pages/issues/board/use-board-move.js.map +1 -1
- package/dist/client/pages/issues/detail/new-subtask.d.ts.map +1 -1
- package/dist/client/pages/issues/detail/new-subtask.js +6 -28
- package/dist/client/pages/issues/detail/new-subtask.js.map +1 -1
- package/dist/client/pages/issues/detail/subtask-model.d.ts +1 -1
- package/dist/client/pages/issues/detail/subtask-model.js +1 -1
- package/dist/client/pages/issues/detail/use-confirmed-update.d.ts +6 -8
- package/dist/client/pages/issues/detail/use-confirmed-update.d.ts.map +1 -1
- package/dist/client/pages/issues/detail/use-confirmed-update.js +9 -42
- package/dist/client/pages/issues/detail/use-confirmed-update.js.map +1 -1
- package/dist/client/pages/issues/detail/use-issue-page.d.ts +0 -4
- package/dist/client/pages/issues/detail/use-issue-page.d.ts.map +1 -1
- package/dist/client/pages/issues/detail/use-issue-page.js +0 -14
- package/dist/client/pages/issues/detail/use-issue-page.js.map +1 -1
- package/dist/client/pages/issues/detail/use-issue-update.d.ts +2 -2
- package/dist/client/pages/issues/detail/use-issue-update.d.ts.map +1 -1
- package/dist/client/pages/issues/detail/use-issue-update.js +4 -6
- package/dist/client/pages/issues/detail/use-issue-update.js.map +1 -1
- package/dist/client/pages/issues/new-issue-form.d.ts +11 -8
- package/dist/client/pages/issues/new-issue-form.d.ts.map +1 -1
- package/dist/client/pages/issues/new-issue-form.js +47 -79
- package/dist/client/pages/issues/new-issue-form.js.map +1 -1
- package/dist/client/pages/issues/new.d.ts.map +1 -1
- package/dist/client/pages/issues/new.js +2 -1
- package/dist/client/pages/issues/new.js.map +1 -1
- package/dist/client/pages/issues/use-executor-options.d.ts +3 -2
- package/dist/client/pages/issues/use-executor-options.d.ts.map +1 -1
- package/dist/client/pages/issues/use-executor-options.js +5 -23
- package/dist/client/pages/issues/use-executor-options.js.map +1 -1
- package/dist/client/pages/projects/detail/use-project-page.d.ts +4 -26
- package/dist/client/pages/projects/detail/use-project-page.d.ts.map +1 -1
- package/dist/client/pages/projects/detail/use-project-page.js +7 -53
- package/dist/client/pages/projects/detail/use-project-page.js.map +1 -1
- package/dist/client/pages/projects/new.d.ts +1 -1
- package/dist/client/pages/projects/new.d.ts.map +1 -1
- package/dist/client/pages/projects/new.js +3 -7
- package/dist/client/pages/projects/new.js.map +1 -1
- package/dist/client/plugin.d.ts +3 -0
- package/dist/client/plugin.d.ts.map +1 -1
- package/dist/client/plugin.js +8 -1
- package/dist/client/plugin.js.map +1 -1
- package/dist/client/projects.d.ts +2 -2
- package/dist/client/projects.d.ts.map +1 -1
- package/dist/client/projects.js +2 -2
- package/dist/client/projects.js.map +1 -1
- package/dist/client/providers/query-provider.d.ts.map +1 -1
- package/dist/client/providers/query-provider.js +13 -10
- package/dist/client/providers/query-provider.js.map +1 -1
- package/dist/database/migrations/.manifest.json +8 -0
- package/dist/database/migrations/202610240010_pm_fixed_statuses.d.ts +4 -0
- package/dist/database/migrations/202610240010_pm_fixed_statuses.d.ts.map +1 -0
- package/dist/database/migrations/202610240010_pm_fixed_statuses.js +189 -0
- package/dist/database/migrations/202610240010_pm_fixed_statuses.js.map +1 -0
- package/dist/database/migrations/202610240011_pm_issue_progress.d.ts +4 -0
- package/dist/database/migrations/202610240011_pm_issue_progress.d.ts.map +1 -0
- package/dist/database/migrations/202610240011_pm_issue_progress.js +19 -0
- package/dist/database/migrations/202610240011_pm_issue_progress.js.map +1 -0
- package/dist/server/composition.d.ts +11 -17
- package/dist/server/composition.d.ts.map +1 -1
- package/dist/server/composition.js +11 -56
- package/dist/server/composition.js.map +1 -1
- package/dist/server/domains/comments/comment.queries.d.ts +31 -0
- package/dist/server/domains/comments/comment.queries.d.ts.map +1 -1
- package/dist/server/domains/comments/comment.queries.js +27 -1
- package/dist/server/domains/comments/comment.queries.js.map +1 -1
- package/dist/server/domains/comments/comment.store.d.ts +19 -0
- package/dist/server/domains/comments/comment.store.d.ts.map +1 -1
- package/dist/server/domains/comments/comment.store.js +55 -0
- package/dist/server/domains/comments/comment.store.js.map +1 -1
- package/dist/server/domains/comments/index.d.ts +1 -1
- package/dist/server/domains/comments/index.d.ts.map +1 -1
- package/dist/server/domains/comments/index.js.map +1 -1
- package/dist/server/domains/issues/index.d.ts +1 -1
- package/dist/server/domains/issues/index.d.ts.map +1 -1
- package/dist/server/domains/issues/index.js +1 -1
- package/dist/server/domains/issues/index.js.map +1 -1
- package/dist/server/domains/issues/issue.context.d.ts +6 -22
- package/dist/server/domains/issues/issue.context.d.ts.map +1 -1
- package/dist/server/domains/issues/issue.context.js +1 -22
- package/dist/server/domains/issues/issue.context.js.map +1 -1
- package/dist/server/domains/issues/issue.fields.d.ts +5 -3
- package/dist/server/domains/issues/issue.fields.d.ts.map +1 -1
- package/dist/server/domains/issues/issue.fields.js +37 -16
- package/dist/server/domains/issues/issue.fields.js.map +1 -1
- package/dist/server/domains/issues/issue.projects.d.ts +2 -2
- package/dist/server/domains/issues/issue.projects.d.ts.map +1 -1
- package/dist/server/domains/issues/issue.projects.js +1 -2
- package/dist/server/domains/issues/issue.projects.js.map +1 -1
- package/dist/server/domains/issues/issue.queries.d.ts +10 -7
- package/dist/server/domains/issues/issue.queries.d.ts.map +1 -1
- package/dist/server/domains/issues/issue.queries.js +15 -41
- package/dist/server/domains/issues/issue.queries.js.map +1 -1
- package/dist/server/domains/issues/issue.routes.d.ts +1 -1
- package/dist/server/domains/issues/issue.routes.d.ts.map +1 -1
- package/dist/server/domains/issues/issue.routes.js +20 -38
- package/dist/server/domains/issues/issue.routes.js.map +1 -1
- package/dist/server/domains/issues/issue.service.d.ts +20 -44
- package/dist/server/domains/issues/issue.service.d.ts.map +1 -1
- package/dist/server/domains/issues/issue.service.js +26 -81
- package/dist/server/domains/issues/issue.service.js.map +1 -1
- package/dist/server/domains/issues/issue.status.d.ts +6 -10
- package/dist/server/domains/issues/issue.status.d.ts.map +1 -1
- package/dist/server/domains/issues/issue.status.js +3 -20
- package/dist/server/domains/issues/issue.status.js.map +1 -1
- package/dist/server/domains/issues/issue.store.d.ts +2 -0
- package/dist/server/domains/issues/issue.store.d.ts.map +1 -1
- package/dist/server/domains/issues/issue.store.js +2 -0
- package/dist/server/domains/issues/issue.store.js.map +1 -1
- package/dist/server/domains/issues/ports.d.ts +19 -36
- package/dist/server/domains/issues/ports.d.ts.map +1 -1
- package/dist/server/domains/issues/ports.js +0 -5
- package/dist/server/domains/issues/ports.js.map +1 -1
- package/dist/server/domains/notices/notice.planner.d.ts +2 -1
- package/dist/server/domains/notices/notice.planner.d.ts.map +1 -1
- package/dist/server/domains/notices/notice.planner.js +2 -1
- package/dist/server/domains/notices/notice.planner.js.map +1 -1
- package/dist/server/domains/notices/notice.rules.d.ts +1 -4
- package/dist/server/domains/notices/notice.rules.d.ts.map +1 -1
- package/dist/server/domains/notices/notice.rules.js +4 -5
- package/dist/server/domains/notices/notice.rules.js.map +1 -1
- package/dist/server/domains/plans/plan.ops.d.ts +3 -3
- package/dist/server/domains/plans/plan.ops.d.ts.map +1 -1
- package/dist/server/domains/plans/plan.ops.js +23 -13
- package/dist/server/domains/plans/plan.ops.js.map +1 -1
- package/dist/server/domains/projects/index.d.ts +1 -1
- package/dist/server/domains/projects/index.d.ts.map +1 -1
- package/dist/server/domains/projects/index.js.map +1 -1
- package/dist/server/domains/projects/project.events.d.ts +10 -0
- package/dist/server/domains/projects/project.events.d.ts.map +1 -0
- package/dist/server/domains/projects/project.events.js +2 -0
- package/dist/server/domains/projects/project.events.js.map +1 -0
- package/dist/server/domains/projects/project.routes.d.ts.map +1 -1
- package/dist/server/domains/projects/project.routes.js +1 -3
- package/dist/server/domains/projects/project.routes.js.map +1 -1
- package/dist/server/domains/projects/project.service.d.ts +1 -7
- package/dist/server/domains/projects/project.service.d.ts.map +1 -1
- package/dist/server/domains/projects/project.service.js +2 -17
- package/dist/server/domains/projects/project.service.js.map +1 -1
- package/dist/server/domains/projects/project.store.d.ts +0 -1
- package/dist/server/domains/projects/project.store.d.ts.map +1 -1
- package/dist/server/domains/projects/project.store.js +0 -1
- package/dist/server/domains/projects/project.store.js.map +1 -1
- package/dist/server/domains/reports/report.service.d.ts +1 -12
- package/dist/server/domains/reports/report.service.d.ts.map +1 -1
- package/dist/server/domains/reports/report.service.js +23 -79
- package/dist/server/domains/reports/report.service.js.map +1 -1
- package/dist/server/domains/statuses/event-types.d.ts +16 -0
- package/dist/server/domains/statuses/event-types.d.ts.map +1 -0
- package/dist/server/domains/statuses/event-types.js +31 -0
- package/dist/server/domains/statuses/event-types.js.map +1 -0
- package/dist/server/domains/statuses/index.d.ts +4 -0
- package/dist/server/domains/statuses/index.d.ts.map +1 -0
- package/dist/server/domains/statuses/index.js +4 -0
- package/dist/server/domains/statuses/index.js.map +1 -0
- package/dist/server/domains/statuses/status.catalog.d.ts +15 -0
- package/dist/server/domains/statuses/status.catalog.d.ts.map +1 -0
- package/dist/server/domains/statuses/status.catalog.js +119 -0
- package/dist/server/domains/statuses/status.catalog.js.map +1 -0
- package/dist/server/domains/statuses/status.events.d.ts +15 -0
- package/dist/server/domains/statuses/status.events.d.ts.map +1 -0
- package/dist/server/domains/statuses/status.events.js +2 -0
- package/dist/server/domains/statuses/status.events.js.map +1 -0
- package/dist/server/domains/statuses/status.fire.d.ts +48 -0
- package/dist/server/domains/statuses/status.fire.d.ts.map +1 -0
- package/dist/server/domains/statuses/status.fire.js +38 -0
- package/dist/server/domains/statuses/status.fire.js.map +1 -0
- package/dist/server/domains/subscriptions/subscription.routes.d.ts.map +1 -1
- package/dist/server/domains/subscriptions/subscription.routes.js +4 -2
- package/dist/server/domains/subscriptions/subscription.routes.js.map +1 -1
- package/dist/server/domains/subtasks/subtask.blocking.d.ts +4 -4
- package/dist/server/domains/subtasks/subtask.blocking.d.ts.map +1 -1
- package/dist/server/domains/subtasks/subtask.blocking.js +2 -10
- package/dist/server/domains/subtasks/subtask.blocking.js.map +1 -1
- package/dist/server/domains/subtasks/subtask.release.d.ts +5 -9
- package/dist/server/domains/subtasks/subtask.release.d.ts.map +1 -1
- package/dist/server/domains/subtasks/subtask.release.js +0 -4
- package/dist/server/domains/subtasks/subtask.release.js.map +1 -1
- package/dist/server/domains/subtasks/subtask.service.d.ts +1 -3
- package/dist/server/domains/subtasks/subtask.service.d.ts.map +1 -1
- package/dist/server/domains/subtasks/subtask.service.js +0 -12
- package/dist/server/domains/subtasks/subtask.service.js.map +1 -1
- package/dist/server/kernel/http.d.ts.map +1 -1
- package/dist/server/kernel/http.js +0 -3
- package/dist/server/kernel/http.js.map +1 -1
- package/dist/server/kernel/kinds.d.ts +24 -6
- package/dist/server/kernel/kinds.d.ts.map +1 -1
- package/dist/server/kernel/kinds.js +21 -1
- package/dist/server/kernel/kinds.js.map +1 -1
- package/dist/server/kernel/work.d.ts +8 -4
- package/dist/server/kernel/work.d.ts.map +1 -1
- package/dist/server/kernel/work.js +21 -10
- package/dist/server/kernel/work.js.map +1 -1
- package/dist/server/locales/en-US.d.ts +0 -9
- package/dist/server/locales/en-US.d.ts.map +1 -1
- package/dist/server/locales/en-US.js +0 -9
- package/dist/server/locales/en-US.js.map +1 -1
- package/dist/server/locales/zh-CN.d.ts.map +1 -1
- package/dist/server/locales/zh-CN.js +2 -11
- package/dist/server/locales/zh-CN.js.map +1 -1
- package/dist/server/providers/change-announcer.d.ts +27 -0
- package/dist/server/providers/change-announcer.d.ts.map +1 -0
- package/dist/server/providers/change-announcer.js +74 -0
- package/dist/server/providers/change-announcer.js.map +1 -0
- package/dist/server/providers/notifications.d.ts +1 -0
- package/dist/server/providers/notifications.d.ts.map +1 -1
- package/dist/server/providers/notifications.js +6 -120
- package/dist/server/providers/notifications.js.map +1 -1
- package/dist/server/providers/projects.d.ts +3 -8
- package/dist/server/providers/projects.d.ts.map +1 -1
- package/dist/server/providers/projects.js +14 -37
- package/dist/server/providers/projects.js.map +1 -1
- package/dist/server/routes/api.d.ts.map +1 -1
- package/dist/server/routes/api.js +0 -6
- package/dist/server/routes/api.js.map +1 -1
- package/dist/server/routes/schemas.d.ts +1 -27
- package/dist/server/routes/schemas.d.ts.map +1 -1
- package/dist/server/routes/schemas.js +23 -167
- package/dist/server/routes/schemas.js.map +1 -1
- package/dist/server/tokens.d.ts +12 -34
- package/dist/server/tokens.d.ts.map +1 -1
- package/dist/server/tokens.js +4 -16
- package/dist/server/tokens.js.map +1 -1
- package/dist/shared/access.d.ts +0 -1
- package/dist/shared/access.d.ts.map +1 -1
- package/dist/shared/access.js +2 -11
- package/dist/shared/access.js.map +1 -1
- package/dist/shared/issues.d.ts +14 -36
- package/dist/shared/issues.d.ts.map +1 -1
- package/dist/shared/issues.js +1 -0
- package/dist/shared/issues.js.map +1 -1
- package/dist/shared/kinds.d.ts +3 -1
- package/dist/shared/kinds.d.ts.map +1 -1
- package/dist/shared/kinds.js +1 -1
- package/dist/shared/locales/access.en-US.d.ts +0 -1
- package/dist/shared/locales/access.en-US.d.ts.map +1 -1
- package/dist/shared/locales/access.en-US.js +1 -2
- package/dist/shared/locales/access.en-US.js.map +1 -1
- package/dist/shared/locales/access.zh-CN.d.ts.map +1 -1
- package/dist/shared/locales/access.zh-CN.js +1 -2
- package/dist/shared/locales/access.zh-CN.js.map +1 -1
- package/dist/shared/plans.d.ts +6 -6
- package/dist/shared/plans.d.ts.map +1 -1
- package/dist/shared/plans.js +2 -1
- package/dist/shared/plans.js.map +1 -1
- package/dist/shared/projects.d.ts +0 -4
- package/dist/shared/projects.d.ts.map +1 -1
- package/dist/shared/projects.js.map +1 -1
- package/dist/shared/realtime.d.ts +9 -3
- package/dist/shared/realtime.d.ts.map +1 -1
- package/dist/shared/realtime.js +3 -2
- package/dist/shared/realtime.js.map +1 -1
- package/dist/shared/statuses.d.ts +42 -0
- package/dist/shared/statuses.d.ts.map +1 -0
- package/dist/shared/statuses.js +73 -0
- package/dist/shared/statuses.js.map +1 -0
- package/dist/shared/subtasks.d.ts +3 -3
- package/dist/shared/subtasks.d.ts.map +1 -1
- package/package.json +9 -17
- package/skills/nocobase-app-plugin-projects/SKILL.md +27 -51
- package/dist/client/hooks/use-workflow-leave-guard.d.ts +0 -3
- package/dist/client/hooks/use-workflow-leave-guard.d.ts.map +0 -1
- package/dist/client/hooks/use-workflow-leave-guard.js +0 -31
- package/dist/client/hooks/use-workflow-leave-guard.js.map +0 -1
- package/dist/client/lib/built-in-rule-editors.d.ts +0 -13
- package/dist/client/lib/built-in-rule-editors.d.ts.map +0 -1
- package/dist/client/lib/built-in-rule-editors.js +0 -86
- package/dist/client/lib/built-in-rule-editors.js.map +0 -1
- package/dist/client/lib/built-in-rule-types.d.ts +0 -3
- package/dist/client/lib/built-in-rule-types.d.ts.map +0 -1
- package/dist/client/lib/built-in-rule-types.js +0 -63
- package/dist/client/lib/built-in-rule-types.js.map +0 -1
- package/dist/client/lib/status-rule-types.d.ts +0 -60
- package/dist/client/lib/status-rule-types.d.ts.map +0 -1
- package/dist/client/lib/status-rule-types.js +0 -38
- package/dist/client/lib/status-rule-types.js.map +0 -1
- package/dist/client/lib/workflow-events.d.ts +0 -25
- package/dist/client/lib/workflow-events.d.ts.map +0 -1
- package/dist/client/lib/workflow-events.js +0 -30
- package/dist/client/lib/workflow-events.js.map +0 -1
- package/dist/client/pages/config/workflow-detail.d.ts +0 -10
- package/dist/client/pages/config/workflow-detail.d.ts.map +0 -1
- package/dist/client/pages/config/workflow-detail.js +0 -207
- package/dist/client/pages/config/workflow-detail.js.map +0 -1
- package/dist/client/pages/config/workflows/flow-editor.d.ts +0 -15
- package/dist/client/pages/config/workflows/flow-editor.d.ts.map +0 -1
- package/dist/client/pages/config/workflows/flow-editor.js +0 -76
- package/dist/client/pages/config/workflows/flow-editor.js.map +0 -1
- package/dist/client/pages/config/workflows/status-rules.d.ts +0 -21
- package/dist/client/pages/config/workflows/status-rules.d.ts.map +0 -1
- package/dist/client/pages/config/workflows/status-rules.js +0 -203
- package/dist/client/pages/config/workflows/status-rules.js.map +0 -1
- package/dist/client/pages/config/workflows/transitions-matrix.d.ts +0 -20
- package/dist/client/pages/config/workflows/transitions-matrix.d.ts.map +0 -1
- package/dist/client/pages/config/workflows/transitions-matrix.js +0 -114
- package/dist/client/pages/config/workflows/transitions-matrix.js.map +0 -1
- package/dist/client/pages/config/workflows/use-status-name.d.ts +0 -4
- package/dist/client/pages/config/workflows/use-status-name.d.ts.map +0 -1
- package/dist/client/pages/config/workflows/use-status-name.js +0 -17
- package/dist/client/pages/config/workflows/use-status-name.js.map +0 -1
- package/dist/client/pages/config/workflows/workflow-diagram.d.ts +0 -17
- package/dist/client/pages/config/workflows/workflow-diagram.d.ts.map +0 -1
- package/dist/client/pages/config/workflows/workflow-diagram.js +0 -298
- package/dist/client/pages/config/workflows/workflow-diagram.js.map +0 -1
- package/dist/client/pages/config/workflows/workflow-model.d.ts +0 -157
- package/dist/client/pages/config/workflows/workflow-model.d.ts.map +0 -1
- package/dist/client/pages/config/workflows/workflow-model.js +0 -403
- package/dist/client/pages/config/workflows/workflow-model.js.map +0 -1
- package/dist/client/pages/config/workflows/workflow-views.d.ts +0 -31
- package/dist/client/pages/config/workflows/workflow-views.d.ts.map +0 -1
- package/dist/client/pages/config/workflows/workflow-views.js +0 -76
- package/dist/client/pages/config/workflows/workflow-views.js.map +0 -1
- package/dist/client/pages/config/workflows.d.ts +0 -8
- package/dist/client/pages/config/workflows.d.ts.map +0 -1
- package/dist/client/pages/config/workflows.js +0 -139
- package/dist/client/pages/config/workflows.js.map +0 -1
- package/dist/client/pages/issues/detail/start-dialog.d.ts +0 -20
- package/dist/client/pages/issues/detail/start-dialog.d.ts.map +0 -1
- package/dist/client/pages/issues/detail/start-dialog.js +0 -31
- package/dist/client/pages/issues/detail/start-dialog.js.map +0 -1
- package/dist/client/pages/projects/workflow-select.d.ts +0 -14
- package/dist/client/pages/projects/workflow-select.d.ts.map +0 -1
- package/dist/client/pages/projects/workflow-select.js +0 -34
- package/dist/client/pages/projects/workflow-select.js.map +0 -1
- package/dist/server/domains/approvals/approval.events.d.ts +0 -47
- package/dist/server/domains/approvals/approval.events.d.ts.map +0 -1
- package/dist/server/domains/approvals/approval.events.js +0 -2
- package/dist/server/domains/approvals/approval.events.js.map +0 -1
- package/dist/server/domains/approvals/approval.lifecycle.d.ts +0 -8
- package/dist/server/domains/approvals/approval.lifecycle.d.ts.map +0 -1
- package/dist/server/domains/approvals/approval.lifecycle.js +0 -54
- package/dist/server/domains/approvals/approval.lifecycle.js.map +0 -1
- package/dist/server/domains/approvals/approval.routes.d.ts +0 -10
- package/dist/server/domains/approvals/approval.routes.d.ts.map +0 -1
- package/dist/server/domains/approvals/approval.routes.js +0 -87
- package/dist/server/domains/approvals/approval.routes.js.map +0 -1
- package/dist/server/domains/approvals/approval.service.d.ts +0 -72
- package/dist/server/domains/approvals/approval.service.d.ts.map +0 -1
- package/dist/server/domains/approvals/approval.service.js +0 -261
- package/dist/server/domains/approvals/approval.service.js.map +0 -1
- package/dist/server/domains/approvals/approval.store.d.ts +0 -42
- package/dist/server/domains/approvals/approval.store.d.ts.map +0 -1
- package/dist/server/domains/approvals/approval.store.js +0 -66
- package/dist/server/domains/approvals/approval.store.js.map +0 -1
- package/dist/server/domains/approvals/index.d.ts +0 -4
- package/dist/server/domains/approvals/index.d.ts.map +0 -1
- package/dist/server/domains/approvals/index.js +0 -3
- package/dist/server/domains/approvals/index.js.map +0 -1
- package/dist/server/domains/checklists/checklist.routes.d.ts +0 -9
- package/dist/server/domains/checklists/checklist.routes.d.ts.map +0 -1
- package/dist/server/domains/checklists/checklist.routes.js +0 -62
- package/dist/server/domains/checklists/checklist.routes.js.map +0 -1
- package/dist/server/domains/checklists/checklist.service.d.ts +0 -26
- package/dist/server/domains/checklists/checklist.service.d.ts.map +0 -1
- package/dist/server/domains/checklists/checklist.service.js +0 -80
- package/dist/server/domains/checklists/checklist.service.js.map +0 -1
- package/dist/server/domains/checklists/checklist.store.d.ts +0 -32
- package/dist/server/domains/checklists/checklist.store.d.ts.map +0 -1
- package/dist/server/domains/checklists/checklist.store.js +0 -66
- package/dist/server/domains/checklists/checklist.store.js.map +0 -1
- package/dist/server/domains/checklists/index.d.ts +0 -4
- package/dist/server/domains/checklists/index.d.ts.map +0 -1
- package/dist/server/domains/checklists/index.js +0 -4
- package/dist/server/domains/checklists/index.js.map +0 -1
- package/dist/server/domains/workflows/built-in-rule-types.d.ts +0 -40
- package/dist/server/domains/workflows/built-in-rule-types.d.ts.map +0 -1
- package/dist/server/domains/workflows/built-in-rule-types.js +0 -260
- package/dist/server/domains/workflows/built-in-rule-types.js.map +0 -1
- package/dist/server/domains/workflows/event-types.d.ts +0 -21
- package/dist/server/domains/workflows/event-types.d.ts.map +0 -1
- package/dist/server/domains/workflows/event-types.js +0 -31
- package/dist/server/domains/workflows/event-types.js.map +0 -1
- package/dist/server/domains/workflows/index.d.ts +0 -10
- package/dist/server/domains/workflows/index.d.ts.map +0 -1
- package/dist/server/domains/workflows/index.js +0 -10
- package/dist/server/domains/workflows/index.js.map +0 -1
- package/dist/server/domains/workflows/rule-types.d.ts +0 -129
- package/dist/server/domains/workflows/rule-types.d.ts.map +0 -1
- package/dist/server/domains/workflows/rule-types.js +0 -33
- package/dist/server/domains/workflows/rule-types.js.map +0 -1
- package/dist/server/domains/workflows/templates.d.ts +0 -62
- package/dist/server/domains/workflows/templates.d.ts.map +0 -1
- package/dist/server/domains/workflows/templates.js +0 -63
- package/dist/server/domains/workflows/templates.js.map +0 -1
- package/dist/server/domains/workflows/workflow.diff.d.ts +0 -14
- package/dist/server/domains/workflows/workflow.diff.d.ts.map +0 -1
- package/dist/server/domains/workflows/workflow.diff.js +0 -80
- package/dist/server/domains/workflows/workflow.diff.js.map +0 -1
- package/dist/server/domains/workflows/workflow.events.d.ts +0 -26
- package/dist/server/domains/workflows/workflow.events.d.ts.map +0 -1
- package/dist/server/domains/workflows/workflow.events.js +0 -2
- package/dist/server/domains/workflows/workflow.events.js.map +0 -1
- package/dist/server/domains/workflows/workflow.fire.d.ts +0 -38
- package/dist/server/domains/workflows/workflow.fire.d.ts.map +0 -1
- package/dist/server/domains/workflows/workflow.fire.js +0 -57
- package/dist/server/domains/workflows/workflow.fire.js.map +0 -1
- package/dist/server/domains/workflows/workflow.registry.d.ts +0 -27
- package/dist/server/domains/workflows/workflow.registry.d.ts.map +0 -1
- package/dist/server/domains/workflows/workflow.registry.js +0 -132
- package/dist/server/domains/workflows/workflow.registry.js.map +0 -1
- package/dist/server/domains/workflows/workflow.routes.d.ts +0 -6
- package/dist/server/domains/workflows/workflow.routes.d.ts.map +0 -1
- package/dist/server/domains/workflows/workflow.routes.js +0 -148
- package/dist/server/domains/workflows/workflow.routes.js.map +0 -1
- package/dist/server/domains/workflows/workflow.rules.d.ts +0 -14
- package/dist/server/domains/workflows/workflow.rules.d.ts.map +0 -1
- package/dist/server/domains/workflows/workflow.rules.js +0 -212
- package/dist/server/domains/workflows/workflow.rules.js.map +0 -1
- package/dist/server/domains/workflows/workflow.service.d.ts +0 -71
- package/dist/server/domains/workflows/workflow.service.d.ts.map +0 -1
- package/dist/server/domains/workflows/workflow.service.js +0 -366
- package/dist/server/domains/workflows/workflow.service.js.map +0 -1
- package/dist/server/domains/workflows/workflow.store.d.ts +0 -33
- package/dist/server/domains/workflows/workflow.store.d.ts.map +0 -1
- package/dist/server/domains/workflows/workflow.store.js +0 -148
- package/dist/server/domains/workflows/workflow.store.js.map +0 -1
- package/dist/shared/approvals.d.ts +0 -37
- package/dist/shared/approvals.d.ts.map +0 -1
- package/dist/shared/approvals.js +0 -4
- package/dist/shared/approvals.js.map +0 -1
- package/dist/shared/checklists.d.ts +0 -27
- package/dist/shared/checklists.d.ts.map +0 -1
- package/dist/shared/checklists.js +0 -7
- package/dist/shared/checklists.js.map +0 -1
- package/dist/shared/workflows.d.ts +0 -276
- package/dist/shared/workflows.d.ts.map +0 -1
- package/dist/shared/workflows.js +0 -151
- package/dist/shared/workflows.js.map +0 -1
|
@@ -1,298 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useTranslation } from '@nocobase/i18n/client';
|
|
3
|
-
import { ArrowRightIcon } from 'lucide-react';
|
|
4
|
-
import { useLayoutEffect, useMemo, useRef, useState, } from 'react';
|
|
5
|
-
import { ANY_STATUS, STATUS_CATEGORIES, } from '../../../../shared/workflows.js';
|
|
6
|
-
import { PmTag } from '../../../components/pm-tag.js';
|
|
7
|
-
import { cn } from 'cn';
|
|
8
|
-
import { CATEGORY_NODE_CLASS, eventEdges, explicitEdges, reachableFrom, statusesByCategory, wildcardMoves, } from './workflow-model.js';
|
|
9
|
-
import { useStatusName } from './use-status-name.js';
|
|
10
|
-
import { ActorIcons } from './workflow-views.js';
|
|
11
|
-
import { isBuiltInKind, orderKinds, useKindLabel } from '../../../lib/kinds.js';
|
|
12
|
-
/**
|
|
13
|
-
* The status card's picture: four category columns (unstarted → started → done, closed apart on the right), each
|
|
14
|
-
* stacking its statuses in board order, with the transitions set for two concrete statuses drawn as arrows between
|
|
15
|
-
* them. Entries with "any status" on an end are stated in a line above instead of drawn, since they join everything.
|
|
16
|
-
* Pointing at a status shows everywhere it can go, wildcards included.
|
|
17
|
-
*/
|
|
18
|
-
/** Unstarted, started and done follow one another; closed stands apart. */
|
|
19
|
-
const PROGRESSION = ['unstarted', 'started', 'done'];
|
|
20
|
-
const column = (status) => STATUS_CATEGORIES.indexOf(status.category);
|
|
21
|
-
/**
|
|
22
|
-
* Routes every edge from the measured node boxes. Within a column an edge arcs out beside the column (downward moves
|
|
23
|
-
* on the right, upward on the left, wider for longer spans); between columns it leaves the side facing the target.
|
|
24
|
-
* Ends sharing a node side are spread along it, ordered by where their other end is, so they do not meet.
|
|
25
|
-
*/
|
|
26
|
-
function route(edges, states, boxes) {
|
|
27
|
-
const status = new Map(states.map((state) => [state.key, state]));
|
|
28
|
-
const rows = new Map();
|
|
29
|
-
for (const category of STATUS_CATEGORIES)
|
|
30
|
-
states
|
|
31
|
-
.filter((state) => state.category === category)
|
|
32
|
-
.forEach((state, index) => rows.set(state.key, index));
|
|
33
|
-
const centre = (key) => {
|
|
34
|
-
const box = boxes.get(key);
|
|
35
|
-
return box ? box.y + box.h / 2 : 0;
|
|
36
|
-
};
|
|
37
|
-
const plans = edges.map((edge) => {
|
|
38
|
-
const from = status.get(edge.from);
|
|
39
|
-
const to = status.get(edge.to);
|
|
40
|
-
const sameColumn = column(from) === column(to);
|
|
41
|
-
const down = (rows.get(edge.to) ?? 0) > (rows.get(edge.from) ?? 0);
|
|
42
|
-
const forward = column(to) > column(from);
|
|
43
|
-
const fromSide = sameColumn
|
|
44
|
-
? down
|
|
45
|
-
? 'right'
|
|
46
|
-
: 'left'
|
|
47
|
-
: forward
|
|
48
|
-
? 'right'
|
|
49
|
-
: 'left';
|
|
50
|
-
const toSide = sameColumn ? fromSide : forward ? 'left' : 'right';
|
|
51
|
-
return { edge, sameColumn, fromSide, toSide };
|
|
52
|
-
});
|
|
53
|
-
// Ends per node side, spread along the side in the order of the other end's height.
|
|
54
|
-
const ends = new Map();
|
|
55
|
-
plans.forEach((plan, index) => {
|
|
56
|
-
for (const end of ['from', 'to']) {
|
|
57
|
-
const key = `${plan.edge[end]}:${end === 'from' ? plan.fromSide : plan.toSide}`;
|
|
58
|
-
ends.set(key, [...(ends.get(key) ?? []), { plan: index, end }]);
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
const offset = new Map();
|
|
62
|
-
for (const [key, list] of ends) {
|
|
63
|
-
const node = key.slice(0, key.lastIndexOf(':'));
|
|
64
|
-
const box = boxes.get(node);
|
|
65
|
-
const room = box ? Math.max(0, box.h - 12) : 0;
|
|
66
|
-
const step = list.length > 1 ? Math.min(7, room / (list.length - 1)) : 0;
|
|
67
|
-
[...list]
|
|
68
|
-
.sort((a, b) => {
|
|
69
|
-
const other = (entry) => centre(entry.end === 'from'
|
|
70
|
-
? plans[entry.plan].edge.to
|
|
71
|
-
: plans[entry.plan].edge.from);
|
|
72
|
-
return other(a) - other(b);
|
|
73
|
-
})
|
|
74
|
-
.forEach((entry, index) => offset.set(`${entry.plan}:${entry.end}`, (index - (list.length - 1) / 2) * step));
|
|
75
|
-
}
|
|
76
|
-
return plans.map((plan, index) => {
|
|
77
|
-
const a = boxes.get(plan.edge.from) ?? { x: 0, y: 0, w: 0, h: 0 };
|
|
78
|
-
const b = boxes.get(plan.edge.to) ?? { x: 0, y: 0, w: 0, h: 0 };
|
|
79
|
-
const sx = plan.fromSide === 'right' ? a.x + a.w : a.x;
|
|
80
|
-
const sy = a.y + a.h / 2 + (offset.get(`${index}:from`) ?? 0);
|
|
81
|
-
const ex = plan.toSide === 'right' ? b.x + b.w : b.x;
|
|
82
|
-
const ey = b.y + b.h / 2 + (offset.get(`${index}:to`) ?? 0);
|
|
83
|
-
if (plan.sameColumn) {
|
|
84
|
-
const span = Math.abs((rows.get(plan.edge.to) ?? 0) - (rows.get(plan.edge.from) ?? 0));
|
|
85
|
-
const bulge = Math.min(96, 30 + 18 * (span - 1));
|
|
86
|
-
const out = plan.fromSide === 'right' ? bulge : -bulge;
|
|
87
|
-
return {
|
|
88
|
-
edge: plan.edge,
|
|
89
|
-
path: `M${sx},${sy} C${sx + out},${sy} ${ex + out},${ey} ${ex},${ey}`,
|
|
90
|
-
label: { x: sx + out * 0.75, y: (sy + ey) / 2 },
|
|
91
|
-
};
|
|
92
|
-
}
|
|
93
|
-
const dx = (ex - sx) / 2;
|
|
94
|
-
return {
|
|
95
|
-
edge: plan.edge,
|
|
96
|
-
path: `M${sx},${sy} C${sx + dx},${sy} ${ex - dx},${ey} ${ex},${ey}`,
|
|
97
|
-
label: { x: (sx + ex) / 2, y: (sy + ey) / 2 },
|
|
98
|
-
};
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* How an edge is drawn: approvals amber, the selected status's moves in the primary colour, else by who may move: a
|
|
103
|
-
* kind other than people and the system (`lib/kinds.ts`) in blue, the system dashed, people only grey.
|
|
104
|
-
*/
|
|
105
|
-
function toneOf(edge, selected) {
|
|
106
|
-
if (edge.approval)
|
|
107
|
-
return 'approval';
|
|
108
|
-
if (selected)
|
|
109
|
-
return 'selected';
|
|
110
|
-
if (edge.actors.some((actor) => !isBuiltInKind(actor)))
|
|
111
|
-
return 'other';
|
|
112
|
-
if (edge.actors.includes('system'))
|
|
113
|
-
return 'system';
|
|
114
|
-
return 'people';
|
|
115
|
-
}
|
|
116
|
-
const TONE_STROKE = {
|
|
117
|
-
approval: 'stroke-amber-500',
|
|
118
|
-
selected: 'stroke-primary',
|
|
119
|
-
other: 'stroke-sky-600 dark:stroke-sky-400',
|
|
120
|
-
system: 'stroke-muted-foreground',
|
|
121
|
-
people: 'stroke-muted-foreground',
|
|
122
|
-
};
|
|
123
|
-
const TONE_FILL = {
|
|
124
|
-
approval: 'fill-amber-500',
|
|
125
|
-
selected: 'fill-primary',
|
|
126
|
-
other: 'fill-sky-600 dark:fill-sky-400',
|
|
127
|
-
system: 'fill-muted-foreground',
|
|
128
|
-
people: 'fill-muted-foreground',
|
|
129
|
-
};
|
|
130
|
-
const TONES = [
|
|
131
|
-
'approval',
|
|
132
|
-
'selected',
|
|
133
|
-
'other',
|
|
134
|
-
'system',
|
|
135
|
-
'people',
|
|
136
|
-
];
|
|
137
|
-
/** What the line styles mean, under the diagram. */
|
|
138
|
-
function Legend({ others, }) {
|
|
139
|
-
const { t } = useTranslation();
|
|
140
|
-
const sample = (tone, dashed = false) => (_jsx("svg", { "aria-hidden": 'true', width: '24', height: '8', className: 'shrink-0', children: _jsx("line", { x1: '0', y1: '4', x2: '24', y2: '4', strokeWidth: '1.5', strokeDasharray: dashed ? '4 3' : undefined, className: TONE_STROKE[tone] }) }));
|
|
141
|
-
return (_jsxs("ul", { className: 'flex flex-wrap gap-x-4 gap-y-1 text-xs text-muted-foreground', children: [others.length > 0 ? (_jsxs("li", { className: 'inline-flex items-center gap-1.5', children: [sample('other'), t('workflows.legendKinds', {
|
|
142
|
-
names: others.join(t('workflows.listSeparator')),
|
|
143
|
-
})] })) : null, _jsxs("li", { className: 'inline-flex items-center gap-1.5', children: [sample('system', true), t('workflows.legendSystem')] }), _jsxs("li", { className: 'inline-flex items-center gap-1.5', children: [sample('people'), t('workflows.legendPeople')] }), _jsxs("li", { className: 'inline-flex items-center gap-1.5', children: [sample('approval'), t('workflows.legendApproval')] })] }));
|
|
144
|
-
}
|
|
145
|
-
/** The node boxes relative to the diagram, measured after layout and again whenever the diagram resizes. */
|
|
146
|
-
function useBoxes(container, version) {
|
|
147
|
-
const [boxes, setBoxes] = useState(() => new Map());
|
|
148
|
-
useLayoutEffect(() => {
|
|
149
|
-
const element = container.current;
|
|
150
|
-
if (!element)
|
|
151
|
-
return undefined;
|
|
152
|
-
const measure = () => {
|
|
153
|
-
const origin = element.getBoundingClientRect();
|
|
154
|
-
const next = new Map();
|
|
155
|
-
for (const node of element.querySelectorAll('[data-node]')) {
|
|
156
|
-
const rect = node.getBoundingClientRect();
|
|
157
|
-
next.set(node.dataset.node ?? '', {
|
|
158
|
-
x: rect.left - origin.left,
|
|
159
|
-
y: rect.top - origin.top,
|
|
160
|
-
w: rect.width,
|
|
161
|
-
h: rect.height,
|
|
162
|
-
});
|
|
163
|
-
}
|
|
164
|
-
setBoxes(next);
|
|
165
|
-
};
|
|
166
|
-
// After the frame the nodes are laid out in; a resize measures again.
|
|
167
|
-
const frame = requestAnimationFrame(measure);
|
|
168
|
-
const observer = typeof ResizeObserver === 'undefined'
|
|
169
|
-
? null
|
|
170
|
-
: new ResizeObserver(measure);
|
|
171
|
-
observer?.observe(element);
|
|
172
|
-
return () => {
|
|
173
|
-
cancelAnimationFrame(frame);
|
|
174
|
-
observer?.disconnect();
|
|
175
|
-
};
|
|
176
|
-
}, [container, version]);
|
|
177
|
-
return boxes;
|
|
178
|
-
}
|
|
179
|
-
/** "People: between any statuses", "System: any status → Done": the entries the diagram does not draw. */
|
|
180
|
-
function WildcardLines({ definition, }) {
|
|
181
|
-
const { t } = useTranslation();
|
|
182
|
-
const name = useStatusName(definition);
|
|
183
|
-
const kindLabel = useKindLabel('workflows.actors');
|
|
184
|
-
const lines = wildcardMoves(definition);
|
|
185
|
-
if (lines.length === 0)
|
|
186
|
-
return null;
|
|
187
|
-
const separator = t('workflows.listSeparator');
|
|
188
|
-
return (_jsx("ul", { "aria-label": t('workflows.wildcardTitle'), className: 'space-y-1 text-sm', children: lines.map(({ actor, moves }) => (_jsxs("li", { className: 'flex flex-wrap items-center gap-2', children: [_jsx(ActorIcons, { actors: [actor] }), _jsx("span", { children: t('workflows.wildcardLine', {
|
|
189
|
-
actor: kindLabel(actor),
|
|
190
|
-
moves: moves
|
|
191
|
-
.map((move) => move.from === ANY_STATUS && move.to === ANY_STATUS
|
|
192
|
-
? t('workflows.anyToAny')
|
|
193
|
-
: t('workflows.moveText', {
|
|
194
|
-
from: name(move.from),
|
|
195
|
-
to: name(move.to),
|
|
196
|
-
}) +
|
|
197
|
-
(move.approval
|
|
198
|
-
? t('workflows.moveNeedsApproval', {
|
|
199
|
-
roles: move.approval
|
|
200
|
-
.map((role) => t(`workflows.approvers.${role}`))
|
|
201
|
-
.join(separator),
|
|
202
|
-
})
|
|
203
|
-
: ''))
|
|
204
|
-
.join(t('workflows.moveSeparator')),
|
|
205
|
-
}) })] }, actor))) }));
|
|
206
|
-
}
|
|
207
|
-
/** Under the diagram: where the status pointed at can go, and who may move it there. */
|
|
208
|
-
function Reachable({ definition, shown, }) {
|
|
209
|
-
const { t } = useTranslation();
|
|
210
|
-
const name = useStatusName(definition);
|
|
211
|
-
const separator = t('workflows.listSeparator');
|
|
212
|
-
const cells = shown ? reachableFrom(definition, shown) : [];
|
|
213
|
-
return (_jsx("div", { "aria-live": 'polite', className: 'min-h-9 rounded-lg border bg-muted/30 px-3 py-2 text-sm', children: !shown ? (_jsx("span", { className: 'text-muted-foreground', children: t('workflows.reachableHint') })) : cells.length === 0 ? (_jsx("span", { children: t('workflows.reachableNone', { name: name(shown) }) })) : (_jsxs("div", { className: 'flex flex-wrap items-center gap-x-3 gap-y-1.5', children: [_jsx("span", { className: 'font-medium', children: t('workflows.reachableTitle', { name: name(shown) }) }), cells.map((cell) => (_jsxs("span", { "data-reachable": cell.to, className: 'inline-flex items-center gap-1.5', children: [name(cell.to), _jsx("span", { className: 'text-muted-foreground', children: _jsx(ActorIcons, { actors: cell.actors }) }), cell.approval ? (_jsx(PmTag, { tone: 'amber', children: t('workflows.approvalBy', {
|
|
214
|
-
roles: cell.approval
|
|
215
|
-
.map((role) => t(`workflows.approvers.${role}`))
|
|
216
|
-
.join(separator),
|
|
217
|
-
}) })) : null] }, cell.to)))] })) }));
|
|
218
|
-
}
|
|
219
|
-
/** A status as the read-only diagram shows it: a button that, when pressed, keeps its moves shown. */
|
|
220
|
-
function StatusNode({ status, name, pressed, onPress, }) {
|
|
221
|
-
const { t } = useTranslation();
|
|
222
|
-
return (_jsxs("button", { type: 'button', "aria-pressed": pressed, title: name, "data-category": status.category, onClick: onPress, className: cn('flex h-8 w-full items-center justify-center rounded-lg border px-2 text-sm font-medium focus-visible:ring-2 focus-visible:ring-ring focus-visible:outline-none', CATEGORY_NODE_CLASS[status.category]), children: [_jsx("span", { className: 'truncate', children: name }), _jsx("span", { className: 'sr-only', children: `(${t(`workflows.categories.${status.category}.title`)})` })] }));
|
|
223
|
-
}
|
|
224
|
-
/**
|
|
225
|
-
* The diagram. With `renderStatus` (edit mode) each status is whatever it renders, usually a button opening an editor,
|
|
226
|
-
* and `renderAdd` closes each column; without it a status is a button that pins its moves.
|
|
227
|
-
*/
|
|
228
|
-
export function WorkflowDiagram({ definition, renderStatus, renderAdd, }) {
|
|
229
|
-
const { t } = useTranslation();
|
|
230
|
-
const name = useStatusName(definition);
|
|
231
|
-
const containerRef = useRef(null);
|
|
232
|
-
const [hovered, setHovered] = useState(null);
|
|
233
|
-
const [pinned, setPinned] = useState(null);
|
|
234
|
-
const known = new Set(definition.states.map((state) => state.key));
|
|
235
|
-
const shown = (hovered && known.has(hovered) ? hovered : null) ??
|
|
236
|
-
(pinned && known.has(pinned) ? pinned : null);
|
|
237
|
-
const columns = statusesByCategory(definition);
|
|
238
|
-
const kindLabel = useKindLabel('workflows.actors');
|
|
239
|
-
// Moves the system makes on an event are drawn dashed, as system moves, unless the pair is drawn already.
|
|
240
|
-
const edges = useMemo(() => {
|
|
241
|
-
const drawn = explicitEdges(definition);
|
|
242
|
-
const pairs = new Set(drawn.map((edge) => `${edge.from}>${edge.to}`));
|
|
243
|
-
return [
|
|
244
|
-
...drawn,
|
|
245
|
-
...eventEdges(definition)
|
|
246
|
-
.filter((edge) => !pairs.has(`${edge.from}>${edge.to}`))
|
|
247
|
-
.map((edge) => ({
|
|
248
|
-
from: edge.from,
|
|
249
|
-
to: edge.to,
|
|
250
|
-
actors: ['system'],
|
|
251
|
-
approval: null,
|
|
252
|
-
})),
|
|
253
|
-
];
|
|
254
|
-
}, [definition]);
|
|
255
|
-
const layout = definition.states
|
|
256
|
-
.map((state) => `${state.key}:${state.category}:${state.name}`)
|
|
257
|
-
.join('|');
|
|
258
|
-
const boxes = useBoxes(containerRef, layout);
|
|
259
|
-
const placed = route(edges, definition.states, boxes);
|
|
260
|
-
const reachable = new Set(shown ? reachableFrom(definition, shown).map((cell) => cell.to) : []);
|
|
261
|
-
const size = { w: 0, h: 0 };
|
|
262
|
-
for (const box of boxes.values()) {
|
|
263
|
-
size.w = Math.max(size.w, box.x + box.w + 80);
|
|
264
|
-
size.h = Math.max(size.h, box.y + box.h + 16);
|
|
265
|
-
}
|
|
266
|
-
const column = (category) => {
|
|
267
|
-
const statuses = columns.find((entry) => entry.category === category)?.statuses ?? [];
|
|
268
|
-
return (_jsxs("div", { className: 'flex min-w-0 flex-col items-center gap-6', children: [_jsx("ul", { "aria-label": t(`workflows.categories.${category}.title`), className: 'flex w-full max-w-36 flex-col gap-6', children: statuses.map((status) => {
|
|
269
|
-
const state = shown === null
|
|
270
|
-
? 'idle'
|
|
271
|
-
: status.key === shown
|
|
272
|
-
? 'source'
|
|
273
|
-
: reachable.has(status.key)
|
|
274
|
-
? 'target'
|
|
275
|
-
: 'other';
|
|
276
|
-
return (_jsx("li", { "data-node": status.key, "data-state": state, onMouseEnter: () => setHovered(status.key), onMouseLeave: () => setHovered(null), onFocus: () => setHovered(status.key), onBlur: () => setHovered(null), className: cn('relative rounded-lg transition-opacity', state === 'source' && 'ring-2 ring-primary ring-offset-2', state === 'target' && 'ring-1 ring-primary/60', state === 'other' && 'opacity-35'), children: renderStatus ? (renderStatus(status)) : (_jsx(StatusNode, { status: status, name: name(status.key), pressed: pinned === status.key, onPress: () => setPinned((current) => current === status.key ? null : status.key) })) }, status.key));
|
|
277
|
-
}) }), renderAdd ? renderAdd(category) : null] }, category));
|
|
278
|
-
};
|
|
279
|
-
return (_jsxs("div", { className: 'space-y-4', children: [_jsx(WildcardLines, { definition: definition }), _jsx("div", { className: 'overflow-x-auto', children: _jsxs("div", { className: 'min-w-[44rem] space-y-3', children: [_jsxs("div", { "aria-hidden": 'true', className: 'grid grid-cols-[1fr_1fr_1fr_auto_1fr] items-center gap-x-12 text-xs font-medium text-muted-foreground', children: [PROGRESSION.map((category, index) => (_jsxs("div", { className: 'relative flex items-center justify-center gap-1.5', children: [_jsx("span", { className: cn('size-2.5 rounded-sm border', CATEGORY_NODE_CLASS[category]) }), t(`workflows.categories.${category}.title`), index < PROGRESSION.length - 1 ? (_jsx(ArrowRightIcon, { className: 'absolute -right-8 size-4' })) : null] }, category))), _jsx("span", {}), _jsxs("div", { className: 'flex items-center justify-center gap-1.5', children: [_jsx("span", { className: cn('size-2.5 rounded-sm border', CATEGORY_NODE_CLASS.closed) }), t('workflows.categories.closed.title')] })] }), _jsxs("div", { ref: containerRef, className: 'relative grid grid-cols-[1fr_1fr_1fr_auto_1fr] gap-x-12 py-2', children: [PROGRESSION.map(column), _jsx("div", { "aria-hidden": 'true', className: 'w-px self-stretch bg-border' }), column('closed'), _jsxs("svg", { "aria-hidden": 'true', className: 'pointer-events-none absolute top-0 left-0 overflow-visible', width: size.w, height: size.h, children: [_jsx("defs", { children: TONES.map((tone) => (_jsx("marker", { id: `pm-workflow-arrow-${tone}`, viewBox: '0 0 8 8', refX: '7', refY: '4', markerWidth: '6', markerHeight: '6', orient: 'auto-start-reverse', children: _jsx("path", { d: 'M0,0 L8,4 L0,8 z', className: TONE_FILL[tone] }) }, tone))) }), placed.map(({ edge, path }) => {
|
|
280
|
-
const selected = shown !== null && edge.from === shown;
|
|
281
|
-
const tone = toneOf(edge, selected);
|
|
282
|
-
return (_jsx("path", { "data-edge": `${edge.from}>${edge.to}`, "data-tone": tone, d: path, fill: 'none', strokeWidth: selected ? 2 : 1.5, strokeDasharray: tone === 'system' ? '4 3' : undefined, markerEnd: `url(#pm-workflow-arrow-${tone})`, className: cn('transition-opacity', TONE_STROKE[tone], shown === null || selected ? 'opacity-90' : 'opacity-10') }, `${edge.from}>${edge.to}`));
|
|
283
|
-
})] }), _jsx("div", { "aria-hidden": 'true', className: 'pointer-events-none absolute top-0 left-0', children: placed
|
|
284
|
-
.filter(({ edge }) => (shown !== null && edge.from === shown) ||
|
|
285
|
-
(edge.approval !== null && shown === null))
|
|
286
|
-
.map(({ edge, label }) => (_jsxs("span", { "data-edge-label": `${edge.from}>${edge.to}`, style: { left: label.x, top: label.y }, className: cn('absolute flex -translate-1/2 items-center gap-1 rounded-full border bg-background px-1.5 py-0.5 text-[10px] leading-none text-muted-foreground shadow-xs', edge.approval && 'border-amber-400 text-amber-700'), children: [_jsx(ActorIcons, { actors: edge.actors }), edge.approval ? t('workflows.approval') : null] }, `${edge.from}>${edge.to}`))) })] })] }) }), _jsx(Legend, { others: orderKinds(edges.flatMap((edge) => edge.actors))
|
|
287
|
-
.filter((actor) => !isBuiltInKind(actor))
|
|
288
|
-
.map(kindLabel) }), _jsx(Reachable, { definition: definition, shown: shown }), _jsx("p", { className: 'sr-only', children: t('workflows.diagramTextHint') })] }));
|
|
289
|
-
}
|
|
290
|
-
/** The list's cards: each category's statuses as a column of small chips, without transitions. */
|
|
291
|
-
export function WorkflowColumns({ definition, }) {
|
|
292
|
-
const { t } = useTranslation();
|
|
293
|
-
const name = useStatusName(definition);
|
|
294
|
-
return (_jsx("div", { className: 'grid grid-cols-4 gap-3', children: STATUS_CATEGORIES.map((category) => (_jsxs("div", { className: 'min-w-0 space-y-1.5', children: [_jsx("p", { className: 'text-xs text-muted-foreground', children: t(`workflows.categories.${category}.title`) }), _jsx("ul", { "aria-label": t(`workflows.categories.${category}.title`), className: 'flex flex-col items-start gap-1', children: definition.states
|
|
295
|
-
.filter((status) => status.category === category)
|
|
296
|
-
.map((status) => (_jsx("li", { "data-category": status.category, className: cn('max-w-full truncate rounded-md border px-2 py-0.5 text-xs font-medium', CATEGORY_NODE_CLASS[status.category]), children: name(status.key) }, status.key))) })] }, category))) }));
|
|
297
|
-
}
|
|
298
|
-
//# sourceMappingURL=workflow-diagram.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-diagram.js","sourceRoot":"","sources":["../../../../../client/pages/config/workflows/workflow-diagram.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,157 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The workflow editor's model: pure changes to a draft definition, and how the transition matrix reads it. The server
|
|
3
|
-
* checks every rule again (`server/domains/workflows/workflow.rules.ts`); these keep the editor from offering what it
|
|
4
|
-
* will refuse, such as removing a built-in status.
|
|
5
|
-
*/
|
|
6
|
-
import type { Color } from '../../../../shared/common.js';
|
|
7
|
-
import type { StatusCategory } from '../../../../shared/issues.js';
|
|
8
|
-
import { type ApproverRole, type TransitionActor, type Workflow, type WorkflowDefinition, type WorkflowEvent, type ContributedStatusRule, type WorkflowStatus, type WorkflowStatusRule, type WorkflowTransition, type WorkflowValidationIssue } from '../../../../shared/workflows.js';
|
|
9
|
-
type Translate = (key: string, options?: Record<string, unknown>) => string;
|
|
10
|
-
/** The workflows tab. */
|
|
11
|
-
export declare const WORKFLOWS_PATH = "/config/workflows";
|
|
12
|
-
/** A workflow's page, relative to the workflows tab. */
|
|
13
|
-
export declare function workflowPath(id: string): string;
|
|
14
|
-
/** A workflow a template created keeps its translated name, by the title the server sends with it, until renamed. */
|
|
15
|
-
export declare function workflowName(t: Translate, workflow: Pick<Workflow, 'name'> & {
|
|
16
|
-
readonly title?: {
|
|
17
|
-
readonly key: string;
|
|
18
|
-
readonly ns: string;
|
|
19
|
-
};
|
|
20
|
-
}): string;
|
|
21
|
-
export interface WorkflowDraft {
|
|
22
|
-
readonly name: string;
|
|
23
|
-
readonly definition: WorkflowDefinition;
|
|
24
|
-
}
|
|
25
|
-
export declare function sameDraft(a: WorkflowDraft, b: WorkflowDraft): boolean;
|
|
26
|
-
/** The statuses of each category, in definition order. */
|
|
27
|
-
export declare function statusesByCategory(definition: WorkflowDefinition): {
|
|
28
|
-
category: StatusCategory;
|
|
29
|
-
statuses: WorkflowStatus[];
|
|
30
|
-
}[];
|
|
31
|
-
export declare function updateStatus(definition: WorkflowDefinition, key: string, patch: Partial<Pick<WorkflowStatus, 'name' | 'color'>>): WorkflowDefinition;
|
|
32
|
-
/** Swaps the status with its neighbour of the same category; the order of other categories is kept. */
|
|
33
|
-
export declare function moveStatus(definition: WorkflowDefinition, key: string, direction: -1 | 1): WorkflowDefinition;
|
|
34
|
-
/** A key for a new status: its name in lower case with underscores, or `status` when that leaves nothing usable. */
|
|
35
|
-
export declare function keyFor(name: string, taken: ReadonlySet<string>): string;
|
|
36
|
-
/** Adds a status at the end of its category. */
|
|
37
|
-
export declare function addStatus(definition: WorkflowDefinition, input: {
|
|
38
|
-
name: string;
|
|
39
|
-
category: StatusCategory;
|
|
40
|
-
color: Color;
|
|
41
|
-
}): WorkflowDefinition;
|
|
42
|
-
/** Removes a status the workflow added, with every transition into or out of it. */
|
|
43
|
-
export declare function removeStatus(definition: WorkflowDefinition, key: string): WorkflowDefinition;
|
|
44
|
-
/** The status's rule of `type`, if any. */
|
|
45
|
-
export declare function contributedRuleOf(status: WorkflowStatus, type: string): ContributedStatusRule | undefined;
|
|
46
|
-
/** Makes `rule` the status's rule of its type, or with `null` removes the rule of `type`. */
|
|
47
|
-
export declare function setRule(definition: WorkflowDefinition, key: string, type: string, rule: WorkflowStatusRule | null): WorkflowDefinition;
|
|
48
|
-
/**
|
|
49
|
-
* The transitions people and the matrix deal with: those without an event. An event transition (`on`) is the system
|
|
50
|
-
* moving an issue when something happens, edited as a status rule (`setAutoMove`), never shown as "the system may".
|
|
51
|
-
*/
|
|
52
|
-
export declare function manualTransitions(definition: WorkflowDefinition): WorkflowTransition[];
|
|
53
|
-
/** Who the definition names for exactly `from → to` (`*` included). */
|
|
54
|
-
export declare function actorsAt(definition: WorkflowDefinition, from: string, to: string): TransitionActor[];
|
|
55
|
-
/**
|
|
56
|
-
* Who may also move `from → to` through a wider entry (`*`), and is not named for the pair itself: the matrix shows
|
|
57
|
-
* them faded, as allowed but not set in this cell.
|
|
58
|
-
*/
|
|
59
|
-
export declare function impliedActorsAt(definition: WorkflowDefinition, from: string, to: string): TransitionActor[];
|
|
60
|
-
/** Makes `actors` exactly who is named for `from → to`; no one removes the entry, with its approval. */
|
|
61
|
-
export declare function setActorsAt(definition: WorkflowDefinition, from: string, to: string, actors: readonly TransitionActor[]): WorkflowDefinition;
|
|
62
|
-
/** Who must approve a move set for exactly `from → to`; none when it needs no approval. */
|
|
63
|
-
export declare function approvalAt(definition: WorkflowDefinition, from: string, to: string): ApproverRole[];
|
|
64
|
-
/**
|
|
65
|
-
* Makes `approvers` who must approve `from → to`; none removes the approval. A cell nobody is named for yet gets people
|
|
66
|
-
* named, since an approval applies to a move someone may make.
|
|
67
|
-
*/
|
|
68
|
-
export declare function setApprovalAt(definition: WorkflowDefinition, from: string, to: string, approvers: readonly ApproverRole[]): WorkflowDefinition;
|
|
69
|
-
/** Whether people may move an issue between any two statuses (`* → *` names them). */
|
|
70
|
-
export declare function peopleAnywhere(definition: WorkflowDefinition): boolean;
|
|
71
|
-
export declare function setPeopleAnywhere(definition: WorkflowDefinition, on: boolean): WorkflowDefinition;
|
|
72
|
-
/** The server's issues split by where the editor shows them: per status key, in the matrix, or for the whole. */
|
|
73
|
-
export declare function placeIssues(definition: WorkflowDefinition, issues: readonly WorkflowValidationIssue[]): {
|
|
74
|
-
byStatus: Map<string, string[]>;
|
|
75
|
-
transitions: string[];
|
|
76
|
-
general: string[];
|
|
77
|
-
};
|
|
78
|
-
/** `details.issues` of a 400 `INVALID_WORKFLOW`. */
|
|
79
|
-
export declare function validationIssuesOf(metadata: Readonly<Record<string, unknown>> | undefined): WorkflowValidationIssue[];
|
|
80
|
-
/** Every status in flow order: by category (unstarted, started, done, closed), each in the definition's order. */
|
|
81
|
-
export declare function flowOrder(definition: Pick<WorkflowDefinition, 'states'>): WorkflowStatus[];
|
|
82
|
-
export interface MatrixCell {
|
|
83
|
-
readonly actors: readonly TransitionActor[];
|
|
84
|
-
/** Approver roles when a matching entry requires an approval, else null. */
|
|
85
|
-
readonly approval: readonly ApproverRole[] | null;
|
|
86
|
-
}
|
|
87
|
-
/** Who may move an issue from `from` to `to`: every matching entry together (`*` matches any status). */
|
|
88
|
-
export declare function transitionCell(transitions: readonly WorkflowTransition[], from: string, to: string): MatrixCell;
|
|
89
|
-
export interface TransitionMatrix {
|
|
90
|
-
readonly keys: readonly string[];
|
|
91
|
-
readonly rows: readonly {
|
|
92
|
-
readonly from: string;
|
|
93
|
-
readonly cells: readonly (MatrixCell & {
|
|
94
|
-
readonly to: string;
|
|
95
|
-
})[];
|
|
96
|
-
}[];
|
|
97
|
-
}
|
|
98
|
-
/** Rows are "from", columns "to", in flow order; the diagonal (no move) is left empty. */
|
|
99
|
-
export declare function transitionMatrix(definition: WorkflowDefinition): TransitionMatrix;
|
|
100
|
-
export type WorkflowRuleLine = {
|
|
101
|
-
readonly kind: 'autoMove';
|
|
102
|
-
readonly from: string;
|
|
103
|
-
readonly to: string;
|
|
104
|
-
readonly event: WorkflowEvent;
|
|
105
|
-
} | {
|
|
106
|
-
readonly kind: 'transition';
|
|
107
|
-
readonly from: string;
|
|
108
|
-
readonly to: string;
|
|
109
|
-
readonly actors: readonly TransitionActor[];
|
|
110
|
-
readonly approval: readonly ApproverRole[] | null;
|
|
111
|
-
} | {
|
|
112
|
-
readonly kind: 'status';
|
|
113
|
-
readonly status: string;
|
|
114
|
-
readonly rule: WorkflowStatusRule;
|
|
115
|
-
};
|
|
116
|
-
/**
|
|
117
|
-
* The definition as sentences: each declared transition (approvals first), then what entering each status does, in
|
|
118
|
-
* flow order.
|
|
119
|
-
*/
|
|
120
|
-
export declare function workflowRules(definition: WorkflowDefinition): WorkflowRuleLine[];
|
|
121
|
-
/** Where the system moves an issue in `from` when `event` happens, or null when it does not. */
|
|
122
|
-
export declare function autoMoveAt(definition: WorkflowDefinition, from: string, event: WorkflowEvent): string | null;
|
|
123
|
-
/** Makes the system move an issue in `from` to `to` when `event` happens; `null` stops it. */
|
|
124
|
-
export declare function setAutoMove(definition: WorkflowDefinition, from: string, event: WorkflowEvent, to: string | null): WorkflowDefinition;
|
|
125
|
-
/** One edge of the diagram: every entry for exactly `from → to` (two concrete, different statuses) merged. */
|
|
126
|
-
export interface WorkflowEdge {
|
|
127
|
-
readonly from: string;
|
|
128
|
-
readonly to: string;
|
|
129
|
-
readonly actors: readonly TransitionActor[];
|
|
130
|
-
/** Approver roles when an entry for the pair requires an approval, else null. */
|
|
131
|
-
readonly approval: readonly ApproverRole[] | null;
|
|
132
|
-
}
|
|
133
|
-
/** The transitions the diagram draws: those naming two concrete statuses, merged per pair, in definition order. */
|
|
134
|
-
export declare function explicitEdges(definition: WorkflowDefinition): WorkflowEdge[];
|
|
135
|
-
/** The entries with `*` on either end, per actor in actor order: the diagram states them instead of drawing them. */
|
|
136
|
-
export declare function wildcardMoves(definition: WorkflowDefinition): {
|
|
137
|
-
readonly actor: TransitionActor;
|
|
138
|
-
readonly moves: readonly {
|
|
139
|
-
readonly from: string;
|
|
140
|
-
readonly to: string;
|
|
141
|
-
readonly approval: readonly ApproverRole[] | null;
|
|
142
|
-
}[];
|
|
143
|
-
}[];
|
|
144
|
-
/** Every status an issue in `key` may move to, with who may (wildcards included), in flow order. */
|
|
145
|
-
export declare function reachableFrom(definition: WorkflowDefinition, key: string): (MatrixCell & {
|
|
146
|
-
readonly to: string;
|
|
147
|
-
})[];
|
|
148
|
-
/** The event transitions the diagram draws dashed: between two known, different statuses. */
|
|
149
|
-
export declare function eventEdges(definition: WorkflowDefinition): {
|
|
150
|
-
readonly from: string;
|
|
151
|
-
readonly to: string;
|
|
152
|
-
readonly event: WorkflowEvent;
|
|
153
|
-
}[];
|
|
154
|
-
/** Category → token classes for a status node, so the flow follows light and dark themes. */
|
|
155
|
-
export declare const CATEGORY_NODE_CLASS: Readonly<Record<StatusCategory, string>>;
|
|
156
|
-
export {};
|
|
157
|
-
//# sourceMappingURL=workflow-model.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-model.d.ts","sourceRoot":"","sources":["../../../../../client/pages/config/workflows/workflow-model.ts"],"names":[],"mappings":"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"}
|