import { type } from '@ngrx/signals'; import { eventGroup } from '@ngrx/signals/events'; import { Activity, CreateReleaseInput, MemberInput, Project, ProjectAnalytics, ProjectSettings, ProjectStats, Release, ReleaseBurnup, CreateSprintInput, Sprint, SprintBurndown, UpdateSprintInput, UserDirectoryEntry, } from '@task-stream/web/tracker/domain'; export const projectPageEvents = eventGroup({ source: 'Project Page', events: { opened: type<{ idOrKey: string }>(), memberAddRequested: type(), memberRoleChangeRequested: type(), memberRemoveRequested: type<{ projectId: string; userId: string }>(), releaseCreateRequested: type(), releasePublishRequested: type<{ releaseId: string; force: boolean }>(), releaseArchiveRequested: type<{ releaseId: string }>(), sprintCreateRequested: type(), sprintUpdateRequested: type(), sprintStartRequested: type<{ sprintId: string }>(), sprintCloseRequested: type<{ sprintId: string; carryOverTo: string | null; }>(), sprintDeleteRequested: type<{ sprintId: string }>(), burndownRequested: type<{ sprintId: string }>(), userSearchRequested: type(), settingsSaveRequested: type<{ projectId: string; settings: ProjectSettings; }>(), analyticsRequested: type<{ projectId: string; days: number }>(), burnupRequested: type<{ releaseId: string }>(), visibilityChangeRequested: type<{ projectId: string; isPublic: boolean }>(), deleteRequested: type<{ projectId: string; confirmKey: string }>(), }, }); export const projectApiEvents = eventGroup({ source: 'Project API', events: { loaded: type(), loadFailed: type(), statsLoaded: type(), releasesLoaded: type(), sprintsLoaded: type(), burndownLoaded: type(), activityLoaded: type(), commandSucceeded: type(), commandFailed: type(), usersFound: type(), analyticsLoaded: type(), analyticsFailed: type(), burnupLoaded: type(), settingsSaved: type(), /** I deleted the open project. */ deleted: type(), }, }); export const projectRealtimeEvents = eventGroup({ source: 'Project Realtime', events: { projectChanged: type(), /** Someone else deleted the open project. */ projectDeleted: type(), activityAdded: type(), releaseChanged: type(), sprintChanged: type<{ sprintId: string }>(), }, });