Files
KArtSell.Aegis/docs/Design/kbx-foundation-v36/packages/kbx-contracts/src/workflow.ts
T

31 lines
689 B
TypeScript

import type { KbxStatusSemantic } from './status'
export interface KbxWorkflowStateDefinition {
value: string
label: string
semantic: KbxStatusSemantic
terminal?: boolean
}
export interface KbxWorkflowTransitionDefinition {
id: string
from: string[]
to: string
label: string
permission?: string
confirm?: boolean
reasonRequired?: boolean
}
export interface KbxWorkflowDefinition {
id: string
version: string
states: KbxWorkflowStateDefinition[]
transitions: KbxWorkflowTransitionDefinition[]
}
export function allowedKbxTransitions(workflow: KbxWorkflowDefinition, current: string) {
return workflow.transitions.filter(x => x.from.includes(current))
}