Initial commit

This commit is contained in:
LZH-YS1998
2026-07-01 17:56:31 +08:00
commit d78931979d
731 changed files with 311088 additions and 0 deletions
@@ -0,0 +1,32 @@
import type { EmployeeAssignment } from '../types/kanban'
type WorkItemIdentity = {
workItemRoleId?: string
workItemRoleName?: string
employeeAssignment?: EmployeeAssignment
}
export function humanizeWorkItemRoleId(value?: string): string {
const normalized = (value ?? '').trim()
if (!normalized) return ''
return normalized
.replace(/[_-]+/g, ' ')
.replace(/\b\w/g, (char) => char.toUpperCase())
}
export function getWorkItemRoleLabel(identity: WorkItemIdentity): string {
const explicit = (identity.workItemRoleName ?? '').trim()
if (explicit) return explicit
return humanizeWorkItemRoleId(identity.workItemRoleId)
}
export function getWorkItemEmployeeLabel(identity: WorkItemIdentity): string {
return (identity.employeeAssignment?.name ?? '').trim()
}
export function getWorkItemAssignmentLabel(identity: WorkItemIdentity): string {
const role = getWorkItemRoleLabel(identity)
const employee = getWorkItemEmployeeLabel(identity)
if (role && employee) return `${role} · ${employee}`
return role || employee
}