@parhelia/core 0.3.12816 → 0.3.12818
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/editor/ContentTree.d.ts +1 -1
- package/dist/editor/ContentTree.js +25 -3
- package/dist/editor/ContentTree.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentStopCommand.js +16 -14
- package/dist/editor/ai/terminal/useAgentStopCommand.js.map +1 -1
- package/dist/editor/client/operations.js +12 -3
- package/dist/editor/client/operations.js.map +1 -1
- package/dist/editor/media-selector/Thumbnails.js +23 -10
- package/dist/editor/media-selector/Thumbnails.js.map +1 -1
- package/dist/editor/media-selector/mediaItemDrag.d.ts +22 -5
- package/dist/editor/media-selector/mediaItemDrag.js +108 -10
- package/dist/editor/media-selector/mediaItemDrag.js.map +1 -1
- package/dist/editor/settings/panels/ProjectTemplatesPanel.js +45 -1
- package/dist/editor/settings/panels/ProjectTemplatesPanel.js.map +1 -1
- package/dist/revision.d.ts +2 -2
- package/dist/revision.js +2 -2
- package/dist/task-board/TaskBoardWorkspace.js +186 -7
- package/dist/task-board/TaskBoardWorkspace.js.map +1 -1
- package/dist/task-board/components/CreateTaskDialog.d.ts +2 -0
- package/dist/task-board/components/CreateTaskDialog.js +6 -3
- package/dist/task-board/components/CreateTaskDialog.js.map +1 -1
- package/dist/task-board/components/GoalCoverageBar.d.ts +4 -0
- package/dist/task-board/components/GoalCoverageBar.js +22 -0
- package/dist/task-board/components/GoalCoverageBar.js.map +1 -0
- package/dist/task-board/components/GoalDataView.d.ts +39 -0
- package/dist/task-board/components/GoalDataView.js +385 -0
- package/dist/task-board/components/GoalDataView.js.map +1 -0
- package/dist/task-board/components/GoalsMatrix.d.ts +16 -0
- package/dist/task-board/components/GoalsMatrix.js +129 -0
- package/dist/task-board/components/GoalsMatrix.js.map +1 -0
- package/dist/task-board/components/ProjectDashboard.d.ts +1 -1
- package/dist/task-board/components/ProjectGoalsPanel.d.ts +16 -0
- package/dist/task-board/components/ProjectGoalsPanel.js +74 -113
- package/dist/task-board/components/ProjectGoalsPanel.js.map +1 -1
- package/dist/task-board/components/SubgoalStatusIcon.d.ts +4 -0
- package/dist/task-board/components/SubgoalStatusIcon.js +19 -0
- package/dist/task-board/components/SubgoalStatusIcon.js.map +1 -0
- package/dist/task-board/components/goalDisplaySpec.d.ts +19 -0
- package/dist/task-board/components/goalDisplaySpec.js +72 -0
- package/dist/task-board/components/goalDisplaySpec.js.map +1 -0
- package/dist/task-board/goalRefreshState.d.ts +6 -0
- package/dist/task-board/goalRefreshState.js +11 -0
- package/dist/task-board/goalRefreshState.js.map +1 -0
- package/dist/task-board/goalTaskNavigationState.d.ts +43 -0
- package/dist/task-board/goalTaskNavigationState.js +65 -0
- package/dist/task-board/goalTaskNavigationState.js.map +1 -0
- package/dist/task-board/types.d.ts +6 -0
- package/package.json +1 -1
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
export const initialGoalTaskNavigationState = {
|
|
2
|
+
pending: null,
|
|
3
|
+
outcome: { kind: "none" },
|
|
4
|
+
};
|
|
5
|
+
function sameId(left, right) {
|
|
6
|
+
return left?.toLowerCase() === right.toLowerCase();
|
|
7
|
+
}
|
|
8
|
+
export function reduceGoalTaskNavigation(state, action) {
|
|
9
|
+
switch (action.type) {
|
|
10
|
+
case "request": {
|
|
11
|
+
const isCurrentProject = sameId(action.currentProjectId, action.projectId);
|
|
12
|
+
const existingTask = isCurrentProject
|
|
13
|
+
? action.currentTaskIds.find((taskId) => sameId(taskId, action.taskId))
|
|
14
|
+
: undefined;
|
|
15
|
+
if (existingTask) {
|
|
16
|
+
return {
|
|
17
|
+
pending: null,
|
|
18
|
+
outcome: { kind: "select", taskId: existingTask },
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
if (isCurrentProject &&
|
|
22
|
+
action.inFlightGeneration === undefined &&
|
|
23
|
+
action.latestIssuedGeneration > 0) {
|
|
24
|
+
return { pending: null, outcome: { kind: "missing" } };
|
|
25
|
+
}
|
|
26
|
+
return {
|
|
27
|
+
pending: {
|
|
28
|
+
projectId: action.projectId,
|
|
29
|
+
taskId: action.taskId,
|
|
30
|
+
requiredGeneration: action.inFlightGeneration ?? action.latestIssuedGeneration + 1,
|
|
31
|
+
},
|
|
32
|
+
outcome: {
|
|
33
|
+
kind: "load",
|
|
34
|
+
projectId: action.projectId,
|
|
35
|
+
switchProject: !isCurrentProject,
|
|
36
|
+
refresh: isCurrentProject && action.inFlightGeneration === undefined,
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
case "projectSelected":
|
|
41
|
+
return {
|
|
42
|
+
pending: state.pending && sameId(action.projectId, state.pending.projectId)
|
|
43
|
+
? state.pending
|
|
44
|
+
: null,
|
|
45
|
+
outcome: { kind: "none" },
|
|
46
|
+
};
|
|
47
|
+
case "tasksLoaded": {
|
|
48
|
+
if (!state.pending ||
|
|
49
|
+
!sameId(action.projectId, state.pending.projectId) ||
|
|
50
|
+
action.generation < state.pending.requiredGeneration) {
|
|
51
|
+
return { ...state, outcome: { kind: "none" } };
|
|
52
|
+
}
|
|
53
|
+
const matchedTask = action.taskIds.find((taskId) => sameId(taskId, state.pending.taskId));
|
|
54
|
+
return {
|
|
55
|
+
pending: null,
|
|
56
|
+
outcome: matchedTask
|
|
57
|
+
? { kind: "select", taskId: matchedTask }
|
|
58
|
+
: { kind: "missing" },
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
case "cancel":
|
|
62
|
+
return initialGoalTaskNavigationState;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=goalTaskNavigationState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"goalTaskNavigationState.js","sourceRoot":"","sources":["../../src/task-board/goalTaskNavigationState.ts"],"names":[],"mappings":"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"}
|
|
@@ -65,6 +65,9 @@ export type GoalData = unknown;
|
|
|
65
65
|
export type GoalCoverage = {
|
|
66
66
|
total: number;
|
|
67
67
|
done: number;
|
|
68
|
+
inProgress: number;
|
|
69
|
+
failed: number;
|
|
70
|
+
pending: number;
|
|
68
71
|
skipped: number;
|
|
69
72
|
hasMeasurableSubgoals: boolean;
|
|
70
73
|
percent?: number | null;
|
|
@@ -115,12 +118,15 @@ export type GoalDefinition = {
|
|
|
115
118
|
sortOrder?: number;
|
|
116
119
|
defaultScopeJson?: string | null;
|
|
117
120
|
dataShape?: string | null;
|
|
121
|
+
displaySpec?: string | null;
|
|
118
122
|
};
|
|
119
123
|
export type ProjectGoalsResponse = {
|
|
120
124
|
projectId: string;
|
|
121
125
|
includeDescendants: boolean;
|
|
122
126
|
goals: Goal[];
|
|
123
127
|
catalog: GoalDefinition[];
|
|
128
|
+
/** Raw Display Spec JSON keyed by source goal-definition id, including disabled definitions. */
|
|
129
|
+
displaySpecs?: Record<string, string>;
|
|
124
130
|
/** Effective permission per project id in scope (row-by-row edit gating). */
|
|
125
131
|
permissions: Record<string, ProjectPermission | string>;
|
|
126
132
|
};
|