@burdenoff/microfe-planmagnet 2026.927.3 → 2026.927.5
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/generated/global-types.d.ts +9 -1
- package/dist/generated/global-types.d.ts.map +1 -1
- package/dist/generated/wspace-operations.d.ts +0 -12
- package/dist/generated/wspace-operations.d.ts.map +1 -1
- package/dist/planmagnet/PlanMagnetRoutes.d.ts.map +1 -1
- package/dist/planmagnet/PlanMagnetRoutes.js +14 -10
- package/dist/planmagnet/PlanMagnetRoutes.js.map +1 -1
- package/dist/planmagnet/admin/PlanMagnetAdminRoot.d.ts.map +1 -1
- package/dist/planmagnet/admin/PlanMagnetAdminRoot.js +149 -127
- package/dist/planmagnet/admin/PlanMagnetAdminRoot.js.map +1 -1
- package/dist/planmagnet/controls/FeatureControls.d.ts +26 -0
- package/dist/planmagnet/controls/FeatureControls.d.ts.map +1 -0
- package/dist/planmagnet/controls/FeatureControls.js +321 -0
- package/dist/planmagnet/controls/FeatureControls.js.map +1 -0
- package/dist/planmagnet/controls/FeatureTriage.d.ts +21 -0
- package/dist/planmagnet/controls/FeatureTriage.d.ts.map +1 -0
- package/dist/planmagnet/controls/FeatureTriage.js +398 -0
- package/dist/planmagnet/controls/FeatureTriage.js.map +1 -0
- package/dist/planmagnet/controls/MilestoneControls.d.ts +17 -0
- package/dist/planmagnet/controls/MilestoneControls.d.ts.map +1 -0
- package/dist/planmagnet/controls/MilestoneControls.js +203 -0
- package/dist/planmagnet/controls/MilestoneControls.js.map +1 -0
- package/dist/planmagnet/controls/ObjectiveControls.d.ts +31 -0
- package/dist/planmagnet/controls/ObjectiveControls.d.ts.map +1 -0
- package/dist/planmagnet/controls/ObjectiveControls.js +296 -0
- package/dist/planmagnet/controls/ObjectiveControls.js.map +1 -0
- package/dist/planmagnet/controls/Pickers.d.ts +26 -0
- package/dist/planmagnet/controls/Pickers.d.ts.map +1 -0
- package/dist/planmagnet/controls/Pickers.js +171 -0
- package/dist/planmagnet/controls/Pickers.js.map +1 -0
- package/dist/planmagnet/controls/ProjectControls.d.ts.map +1 -1
- package/dist/planmagnet/controls/ProjectControls.js +47 -44
- package/dist/planmagnet/controls/ProjectControls.js.map +1 -1
- package/dist/planmagnet/controls/ReleaseControls.d.ts +14 -0
- package/dist/planmagnet/controls/ReleaseControls.d.ts.map +1 -0
- package/dist/planmagnet/controls/ReleaseControls.js +111 -0
- package/dist/planmagnet/controls/ReleaseControls.js.map +1 -0
- package/dist/planmagnet/controls/WorkItemControls.d.ts.map +1 -1
- package/dist/planmagnet/controls/WorkItemControls.js +68 -65
- package/dist/planmagnet/controls/WorkItemControls.js.map +1 -1
- package/dist/planmagnet/hooks/useCounts.d.ts +39 -0
- package/dist/planmagnet/hooks/useCounts.d.ts.map +1 -0
- package/dist/planmagnet/hooks/useCounts.js +209 -0
- package/dist/planmagnet/hooks/useCounts.js.map +1 -0
- package/dist/planmagnet/import/exportColumns.d.ts +52 -0
- package/dist/planmagnet/import/exportColumns.d.ts.map +1 -0
- package/dist/planmagnet/import/exportColumns.js +81 -0
- package/dist/planmagnet/import/exportColumns.js.map +1 -0
- package/dist/planmagnet/pages/AnalyticsAnalyticsPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/AnalyticsAnalyticsPagePage.js +255 -242
- package/dist/planmagnet/pages/AnalyticsAnalyticsPagePage.js.map +1 -1
- package/dist/planmagnet/pages/DashboardDashboardPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/DashboardDashboardPagePage.js +199 -160
- package/dist/planmagnet/pages/DashboardDashboardPagePage.js.map +1 -1
- package/dist/planmagnet/pages/DocsDocDetailPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/DocsDocDetailPagePage.js +190 -153
- package/dist/planmagnet/pages/DocsDocDetailPagePage.js.map +1 -1
- package/dist/planmagnet/pages/GoalsCreateObjectivePagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/GoalsCreateObjectivePagePage.js +63 -56
- package/dist/planmagnet/pages/GoalsCreateObjectivePagePage.js.map +1 -1
- package/dist/planmagnet/pages/GoalsGoalsPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/GoalsGoalsPagePage.js +2 -7
- package/dist/planmagnet/pages/GoalsGoalsPagePage.js.map +1 -1
- package/dist/planmagnet/pages/GoalsObjectiveDetailPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/GoalsObjectiveDetailPagePage.js +229 -214
- package/dist/planmagnet/pages/GoalsObjectiveDetailPagePage.js.map +1 -1
- package/dist/planmagnet/pages/ProductsEditProductPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/ProductsEditProductPagePage.js +145 -114
- package/dist/planmagnet/pages/ProductsEditProductPagePage.js.map +1 -1
- package/dist/planmagnet/pages/ProductsEditReleasePagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/ProductsEditReleasePagePage.js +134 -105
- package/dist/planmagnet/pages/ProductsEditReleasePagePage.js.map +1 -1
- package/dist/planmagnet/pages/ProductsFeatureAnalyticsPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/ProductsFeatureAnalyticsPagePage.js +97 -117
- package/dist/planmagnet/pages/ProductsFeatureAnalyticsPagePage.js.map +1 -1
- package/dist/planmagnet/pages/ProductsFeatureDetailPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/ProductsFeatureDetailPagePage.js +169 -110
- package/dist/planmagnet/pages/ProductsFeatureDetailPagePage.js.map +1 -1
- package/dist/planmagnet/pages/ProductsFeaturesPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/ProductsFeaturesPagePage.js +117 -103
- package/dist/planmagnet/pages/ProductsFeaturesPagePage.js.map +1 -1
- package/dist/planmagnet/pages/ProductsNewFeaturePagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/ProductsNewFeaturePagePage.js +119 -94
- package/dist/planmagnet/pages/ProductsNewFeaturePagePage.js.map +1 -1
- package/dist/planmagnet/pages/ProductsProductDetailPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/ProductsProductDetailPagePage.js +4 -8
- package/dist/planmagnet/pages/ProductsProductDetailPagePage.js.map +1 -1
- package/dist/planmagnet/pages/ProductsProductsPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/ProductsProductsPagePage.js +85 -90
- package/dist/planmagnet/pages/ProductsProductsPagePage.js.map +1 -1
- package/dist/planmagnet/pages/ProductsReleaseDetailPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/ProductsReleaseDetailPagePage.js +118 -107
- package/dist/planmagnet/pages/ProductsReleaseDetailPagePage.js.map +1 -1
- package/dist/planmagnet/pages/ProductsReleasesPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/ProductsReleasesPagePage.js +4 -2
- package/dist/planmagnet/pages/ProductsReleasesPagePage.js.map +1 -1
- package/dist/planmagnet/pages/ProductsRoadmapAnalyticsPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/ProductsRoadmapAnalyticsPagePage.js +48 -71
- package/dist/planmagnet/pages/ProductsRoadmapAnalyticsPagePage.js.map +1 -1
- package/dist/planmagnet/pages/ProductsRoadmapsPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/ProductsRoadmapsPagePage.js +17 -13
- package/dist/planmagnet/pages/ProductsRoadmapsPagePage.js.map +1 -1
- package/dist/planmagnet/pages/ProjectsActiveProjectsPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/ProjectsActiveProjectsPagePage.js +1 -1
- package/dist/planmagnet/pages/ProjectsActiveProjectsPagePage.js.map +1 -1
- package/dist/planmagnet/pages/ProjectsMilestoneDetailPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/ProjectsMilestoneDetailPagePage.js +55 -63
- package/dist/planmagnet/pages/ProjectsMilestoneDetailPagePage.js.map +1 -1
- package/dist/planmagnet/pages/ProjectsPlanningDetailPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/ProjectsPlanningDetailPagePage.js +11 -8
- package/dist/planmagnet/pages/ProjectsPlanningDetailPagePage.js.map +1 -1
- package/dist/planmagnet/pages/ProjectsPlanningPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/ProjectsPlanningPagePage.js +1 -1
- package/dist/planmagnet/pages/ProjectsPlanningPagePage.js.map +1 -1
- package/dist/planmagnet/pages/ProjectsProjectDetailPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/ProjectsProjectDetailPagePage.js +152 -139
- package/dist/planmagnet/pages/ProjectsProjectDetailPagePage.js.map +1 -1
- package/dist/planmagnet/pages/ProjectsProjectsPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/ProjectsProjectsPagePage.js +75 -74
- package/dist/planmagnet/pages/ProjectsProjectsPagePage.js.map +1 -1
- package/dist/planmagnet/pages/ReportsReportsPagePage.d.ts +7 -0
- package/dist/planmagnet/pages/ReportsReportsPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/ReportsReportsPagePage.js +39 -201
- package/dist/planmagnet/pages/ReportsReportsPagePage.js.map +1 -1
- package/dist/planmagnet/pages/SprintsStartSprintPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/SprintsStartSprintPagePage.js +118 -99
- package/dist/planmagnet/pages/SprintsStartSprintPagePage.js.map +1 -1
- package/dist/planmagnet/pages/TasksCreateTaskPagePage.js +123 -128
- package/dist/planmagnet/pages/TasksCreateTaskPagePage.js.map +1 -1
- package/dist/planmagnet/pages/TasksEditTaskPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/TasksEditTaskPagePage.js +139 -107
- package/dist/planmagnet/pages/TasksEditTaskPagePage.js.map +1 -1
- package/dist/planmagnet/pages/TasksImportPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/TasksImportPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/TasksImportPagePage.js +309 -0
- package/dist/planmagnet/pages/TasksImportPagePage.js.map +1 -0
- package/dist/planmagnet/pages/TasksTaskDetailPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/TasksTaskDetailPagePage.js +173 -126
- package/dist/planmagnet/pages/TasksTaskDetailPagePage.js.map +1 -1
- package/dist/planmagnet/pages/TasksTasksPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/TasksTasksPagePage.js +111 -104
- package/dist/planmagnet/pages/TasksTasksPagePage.js.map +1 -1
- package/dist/planmagnet/pages/TeamTeamPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/TeamTeamPagePage.js +99 -177
- package/dist/planmagnet/pages/TeamTeamPagePage.js.map +1 -1
- package/dist/planmagnet/pages/analytics/DeliveryHealthCards.d.ts.map +1 -1
- package/dist/planmagnet/pages/analytics/DeliveryHealthCards.js +8 -4
- package/dist/planmagnet/pages/analytics/DeliveryHealthCards.js.map +1 -1
- package/dist/planmagnet/releases/ReleaseWorkItemsCard.d.ts.map +1 -1
- package/dist/planmagnet/releases/ReleaseWorkItemsCard.js +10 -4
- package/dist/planmagnet/releases/ReleaseWorkItemsCard.js.map +1 -1
- package/dist/planmagnet/roadmaps/RoadmapControls.d.ts.map +1 -1
- package/dist/planmagnet/roadmaps/RoadmapControls.js +150 -137
- package/dist/planmagnet/roadmaps/RoadmapControls.js.map +1 -1
- package/dist/planmagnet/sprints/SprintControls.d.ts.map +1 -1
- package/dist/planmagnet/sprints/SprintControls.js +32 -30
- package/dist/planmagnet/sprints/SprintControls.js.map +1 -1
- package/dist/planmagnet/utils/mutationResult.d.ts +10 -0
- package/dist/planmagnet/utils/mutationResult.d.ts.map +1 -1
- package/dist/planmagnet/utils/mutationResult.js +2 -1
- package/dist/planmagnet/utils/mutationResult.js.map +1 -1
- package/dist/planmagnet/utils/rowNavigation.d.ts +2 -0
- package/dist/planmagnet/utils/rowNavigation.d.ts.map +1 -1
- package/dist/planmagnet/utils/rowNavigation.js +9 -8
- package/dist/planmagnet/utils/rowNavigation.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
import { usePlanMagnetNavigate as e } from "../providers/PlanMagnetProvider.js";
|
|
2
2
|
import { PersonName as t } from "../people/People.js";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
3
|
+
import { LEAVES_PAGE_CONTEXT as n, throwOnError as ee } from "../utils/mutationResult.js";
|
|
4
|
+
import { WorkItemSearchSelect as te } from "../controls/Pickers.js";
|
|
5
|
+
import { MarkdownEditor as ne } from "../../components/MarkdownEditor.js";
|
|
6
|
+
import { DOC_STATUSES as re, DocStatusBadge as ie } from "../docs/DocStatusBadge.js";
|
|
6
7
|
import { useState as r } from "react";
|
|
7
|
-
import { ArrowLeft as
|
|
8
|
-
import { useSearchParams as
|
|
9
|
-
import { gql as
|
|
10
|
-
import { useApolloClient as
|
|
11
|
-
import { jsx as
|
|
12
|
-
import { AlertDialog as
|
|
13
|
-
import { Markdown as
|
|
14
|
-
import { clearGraphqlFetchResponseCache as
|
|
8
|
+
import { ArrowLeft as ae, History as oe, Link2 as i, X as se } from "lucide-react";
|
|
9
|
+
import { useSearchParams as ce } from "react-router";
|
|
10
|
+
import { gql as a } from "@apollo/client";
|
|
11
|
+
import { useApolloClient as le, useMutation as o, useQuery as ue } from "@apollo/client/react";
|
|
12
|
+
import { jsx as s, jsxs as c } from "react/jsx-runtime";
|
|
13
|
+
import { AlertDialog as l, AlertDialogAction as u, AlertDialogCancel as d, AlertDialogContent as f, AlertDialogDescription as p, AlertDialogFooter as m, AlertDialogHeader as h, AlertDialogTitle as g, AlertDialogTrigger as _, Button as v, Card as y, CardContent as b, CardHeader as x, CardTitle as S, Input as C } from "@burdenoff/fe-libs/ui";
|
|
14
|
+
import { Markdown as w } from "@burdenoff/fe-libs/shared/components";
|
|
15
|
+
import { clearGraphqlFetchResponseCache as de } from "@burdenoff/fe-libs/shared/graphql";
|
|
15
16
|
//#region src/planmagnet/pages/DocsDocDetailPagePage.tsx
|
|
16
|
-
var
|
|
17
|
+
var T = a`
|
|
17
18
|
query DocDetail($id: ID!) {
|
|
18
19
|
planmagnetDoc(id: $id) {
|
|
19
20
|
id
|
|
@@ -41,7 +42,7 @@ var w = i`
|
|
|
41
42
|
}
|
|
42
43
|
}
|
|
43
44
|
}
|
|
44
|
-
`,
|
|
45
|
+
`, fe = a`
|
|
45
46
|
mutation DocUpdate($id: ID!, $input: PlanmagnetUpdateDocInput!) {
|
|
46
47
|
planmagnetUpdateDoc(id: $id, input: $input) {
|
|
47
48
|
id
|
|
@@ -49,119 +50,131 @@ var w = i`
|
|
|
49
50
|
status
|
|
50
51
|
}
|
|
51
52
|
}
|
|
52
|
-
`,
|
|
53
|
+
`, pe = a`
|
|
53
54
|
mutation DocRevert($id: ID!, $toVersion: Int!, $expectedVersion: Int) {
|
|
54
55
|
planmagnetRevertDoc(id: $id, toVersion: $toVersion, expectedVersion: $expectedVersion) {
|
|
55
56
|
id
|
|
56
57
|
version
|
|
57
58
|
}
|
|
58
59
|
}
|
|
59
|
-
`,
|
|
60
|
+
`, me = a`
|
|
60
61
|
mutation DocDelete($id: ID!) {
|
|
61
62
|
planmagnetDeleteDoc(id: $id)
|
|
62
63
|
}
|
|
63
|
-
`,
|
|
64
|
+
`, he = a`
|
|
65
|
+
mutation DocLinkWorkItem($docId: ID!, $workItemId: ID!) {
|
|
66
|
+
planmagnetLinkDocToWorkItem(docId: $docId, workItemId: $workItemId) {
|
|
67
|
+
id
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
`, ge = a`
|
|
64
71
|
mutation DocUnlinkWorkItem($docId: ID!, $workItemId: ID!) {
|
|
65
72
|
planmagnetUnlinkDocFromWorkItem(docId: $docId, workItemId: $workItemId)
|
|
66
73
|
}
|
|
67
|
-
`,
|
|
68
|
-
function
|
|
69
|
-
let [
|
|
70
|
-
variables: { id:
|
|
71
|
-
skip: !
|
|
74
|
+
`, _e = (e, t) => e instanceof Error ? e.message : t, E = (e) => new Date(e).toLocaleString();
|
|
75
|
+
function D() {
|
|
76
|
+
let [a] = ce(), D = a.get("docId") ?? "", O = e(), [k, A] = r(!1), [j, M] = r(""), [N, P] = r(""), [F, I] = r(""), [L, R] = r(null), [z, ve] = r(null), [B, ye] = r(null), { data: V, loading: be, error: H } = ue(T, {
|
|
77
|
+
variables: { id: D },
|
|
78
|
+
skip: !D,
|
|
72
79
|
fetchPolicy: "cache-and-network"
|
|
73
|
-
}),
|
|
80
|
+
}), xe = le(), U = {
|
|
74
81
|
refetchQueries: ["DocDetail"],
|
|
75
82
|
awaitRefetchQueries: !0
|
|
76
|
-
}, [
|
|
77
|
-
|
|
83
|
+
}, [W, G] = o(fe, U), [Se, Ce] = o(pe, U), [we, Te] = o(me, {
|
|
84
|
+
refetchQueries: ["DocsList"],
|
|
85
|
+
context: n
|
|
86
|
+
}), [Ee, De] = o(ge, U), [K, Oe] = o(he, {
|
|
87
|
+
...U,
|
|
88
|
+
refetchQueries: ["DocDetail", "GetWorkItemDocs"]
|
|
89
|
+
}), [q, J] = r(""), Y = V?.planmagnetDoc, X = G.loading || Ce.loading || Te.loading, Z = async (e, t) => {
|
|
90
|
+
R(null);
|
|
78
91
|
try {
|
|
79
|
-
return await
|
|
92
|
+
return await ee(e()), !0;
|
|
80
93
|
} catch (e) {
|
|
81
|
-
return
|
|
82
|
-
query:
|
|
83
|
-
variables: { id:
|
|
94
|
+
return R(_e(e, t)), de(), await xe.query({
|
|
95
|
+
query: T,
|
|
96
|
+
variables: { id: D },
|
|
84
97
|
fetchPolicy: "network-only"
|
|
85
98
|
}).catch(() => void 0), !1;
|
|
86
99
|
}
|
|
87
100
|
};
|
|
88
|
-
if (!
|
|
101
|
+
if (!D) return /* @__PURE__ */ s("div", {
|
|
89
102
|
className: "p-6 text-sm text-muted-foreground",
|
|
90
103
|
children: "No doc selected."
|
|
91
104
|
});
|
|
92
|
-
if (
|
|
105
|
+
if (be && !V) return /* @__PURE__ */ s("div", {
|
|
93
106
|
className: "p-6 text-sm text-muted-foreground",
|
|
94
107
|
children: "Loading doc…"
|
|
95
108
|
});
|
|
96
|
-
if (
|
|
109
|
+
if (H && !Y) return /* @__PURE__ */ c("p", {
|
|
97
110
|
role: "alert",
|
|
98
111
|
className: "p-6 text-sm text-destructive",
|
|
99
|
-
children: ["The doc could not be loaded: ",
|
|
112
|
+
children: ["The doc could not be loaded: ", H.message]
|
|
100
113
|
});
|
|
101
|
-
if (!Y) return /* @__PURE__ */
|
|
114
|
+
if (!Y) return /* @__PURE__ */ c("div", {
|
|
102
115
|
className: "space-y-3 p-6",
|
|
103
|
-
children: [/* @__PURE__ */
|
|
116
|
+
children: [/* @__PURE__ */ s("p", {
|
|
104
117
|
className: "text-sm text-muted-foreground",
|
|
105
118
|
children: "This doc does not exist in this workspace, or it was deleted."
|
|
106
|
-
}), /* @__PURE__ */
|
|
119
|
+
}), /* @__PURE__ */ s(v, {
|
|
107
120
|
size: "sm",
|
|
108
121
|
variant: "outline",
|
|
109
|
-
onClick: () =>
|
|
122
|
+
onClick: () => O("/docs/docs-page"),
|
|
110
123
|
children: "Back to docs"
|
|
111
124
|
})]
|
|
112
125
|
});
|
|
113
|
-
let
|
|
114
|
-
|
|
115
|
-
},
|
|
116
|
-
await Z(() =>
|
|
126
|
+
let ke = () => {
|
|
127
|
+
M(Y.title), P(Y.content), I(""), R(null), ye(Y.version), A(!0);
|
|
128
|
+
}, Ae = async () => {
|
|
129
|
+
await Z(() => W({ variables: {
|
|
117
130
|
id: Y.id,
|
|
118
131
|
input: {
|
|
119
|
-
title:
|
|
120
|
-
content:
|
|
121
|
-
...
|
|
122
|
-
expectedVersion:
|
|
132
|
+
title: j.trim(),
|
|
133
|
+
content: N,
|
|
134
|
+
...F.trim() ? { changeNote: F.trim() } : {},
|
|
135
|
+
expectedVersion: B
|
|
123
136
|
}
|
|
124
|
-
} }), "The doc could not be saved.") &&
|
|
125
|
-
}, Q = [...Y.revisions].sort((e, t) => t.version - e.version), $ =
|
|
126
|
-
return /* @__PURE__ */
|
|
137
|
+
} }), "The doc could not be saved.") && A(!1);
|
|
138
|
+
}, Q = [...Y.revisions].sort((e, t) => t.version - e.version), $ = z === null ? null : Q.find((e) => e.version === z);
|
|
139
|
+
return /* @__PURE__ */ c("div", {
|
|
127
140
|
className: "space-y-6 p-6",
|
|
128
141
|
"data-testid": "doc-detail",
|
|
129
142
|
children: [
|
|
130
|
-
/* @__PURE__ */
|
|
143
|
+
/* @__PURE__ */ c(v, {
|
|
131
144
|
size: "sm",
|
|
132
145
|
variant: "ghost",
|
|
133
|
-
onClick: () =>
|
|
134
|
-
children: [/* @__PURE__ */
|
|
146
|
+
onClick: () => O("/docs/docs-page"),
|
|
147
|
+
children: [/* @__PURE__ */ s(ae, { className: "mr-1 h-4 w-4" }), "All docs"]
|
|
135
148
|
}),
|
|
136
|
-
/* @__PURE__ */
|
|
149
|
+
/* @__PURE__ */ c("div", {
|
|
137
150
|
className: "flex flex-wrap items-start justify-between gap-3",
|
|
138
|
-
children: [/* @__PURE__ */
|
|
151
|
+
children: [/* @__PURE__ */ c("div", {
|
|
139
152
|
className: "min-w-0 space-y-1",
|
|
140
|
-
children: [/* @__PURE__ */
|
|
153
|
+
children: [/* @__PURE__ */ s("h1", {
|
|
141
154
|
className: "text-2xl font-semibold break-words",
|
|
142
155
|
"data-testid": "doc-title",
|
|
143
156
|
children: Y.title
|
|
144
|
-
}), /* @__PURE__ */
|
|
157
|
+
}), /* @__PURE__ */ c("p", {
|
|
145
158
|
className: "text-xs text-muted-foreground",
|
|
146
159
|
children: [
|
|
147
|
-
/* @__PURE__ */
|
|
160
|
+
/* @__PURE__ */ s(ie, { status: Y.status }),
|
|
148
161
|
" · version ",
|
|
149
162
|
Y.version,
|
|
150
163
|
" · updated",
|
|
151
164
|
" ",
|
|
152
|
-
|
|
165
|
+
E(Y.updatedAt),
|
|
153
166
|
" by ",
|
|
154
|
-
/* @__PURE__ */
|
|
167
|
+
/* @__PURE__ */ s(t, { id: Y.updatedBy ?? Y.createdBy })
|
|
155
168
|
]
|
|
156
169
|
})]
|
|
157
|
-
}), !
|
|
170
|
+
}), !k && /* @__PURE__ */ c("div", {
|
|
158
171
|
className: "flex flex-wrap gap-2",
|
|
159
172
|
children: [
|
|
160
|
-
|
|
173
|
+
re.filter((e) => e !== Y.status).map((e) => /* @__PURE__ */ s(v, {
|
|
161
174
|
size: "sm",
|
|
162
175
|
variant: "outline",
|
|
163
176
|
disabled: X,
|
|
164
|
-
onClick: () => Z(() =>
|
|
177
|
+
onClick: () => Z(() => W({ variables: {
|
|
165
178
|
id: Y.id,
|
|
166
179
|
input: {
|
|
167
180
|
status: e,
|
|
@@ -170,144 +183,144 @@ function A() {
|
|
|
170
183
|
} }), "The status could not be changed."),
|
|
171
184
|
children: e === "PUBLISHED" ? "Publish" : e === "ARCHIVED" ? "Archive" : "Back to draft"
|
|
172
185
|
}, e)),
|
|
173
|
-
/* @__PURE__ */
|
|
186
|
+
/* @__PURE__ */ s(v, {
|
|
174
187
|
size: "sm",
|
|
175
|
-
onClick:
|
|
188
|
+
onClick: ke,
|
|
176
189
|
"data-testid": "doc-edit",
|
|
177
190
|
children: "Edit"
|
|
178
191
|
}),
|
|
179
|
-
/* @__PURE__ */
|
|
192
|
+
/* @__PURE__ */ c(l, { children: [/* @__PURE__ */ s(_, {
|
|
180
193
|
asChild: !0,
|
|
181
|
-
children: /* @__PURE__ */
|
|
194
|
+
children: /* @__PURE__ */ s(v, {
|
|
182
195
|
size: "sm",
|
|
183
196
|
variant: "outline",
|
|
184
197
|
disabled: X,
|
|
185
198
|
children: "Delete"
|
|
186
199
|
})
|
|
187
|
-
}), /* @__PURE__ */
|
|
200
|
+
}), /* @__PURE__ */ c(f, { children: [/* @__PURE__ */ c(h, { children: [/* @__PURE__ */ c(g, { children: [
|
|
188
201
|
"Delete “",
|
|
189
202
|
Y.title,
|
|
190
203
|
"”?"
|
|
191
|
-
] }), /* @__PURE__ */
|
|
204
|
+
] }), /* @__PURE__ */ c(p, { children: [
|
|
192
205
|
"The doc and its history are removed for everyone, and it is unlinked from",
|
|
193
206
|
" ",
|
|
194
207
|
Y.linkedWorkItems.length,
|
|
195
208
|
" work item",
|
|
196
209
|
Y.linkedWorkItems.length === 1 ? "" : "s",
|
|
197
210
|
"."
|
|
198
|
-
] })] }), /* @__PURE__ */
|
|
211
|
+
] })] }), /* @__PURE__ */ c(m, { children: [/* @__PURE__ */ s(d, { children: "Keep it" }), /* @__PURE__ */ s(u, {
|
|
199
212
|
className: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
|
|
200
213
|
onClick: async () => {
|
|
201
|
-
await Z(() =>
|
|
214
|
+
await Z(() => we({ variables: { id: Y.id } }), "The doc could not be deleted.") && O("/docs/docs-page");
|
|
202
215
|
},
|
|
203
216
|
children: "Delete"
|
|
204
217
|
})] })] })] })
|
|
205
218
|
]
|
|
206
219
|
})]
|
|
207
220
|
}),
|
|
208
|
-
|
|
221
|
+
L && /* @__PURE__ */ s("p", {
|
|
209
222
|
role: "alert",
|
|
210
223
|
className: "text-sm text-destructive",
|
|
211
224
|
"data-testid": "doc-error",
|
|
212
|
-
children:
|
|
225
|
+
children: L
|
|
213
226
|
}),
|
|
214
|
-
|
|
227
|
+
k && B !== Y.version && /* @__PURE__ */ c("p", {
|
|
215
228
|
className: "text-sm text-status-warning-text",
|
|
216
229
|
"data-testid": "doc-moved-on",
|
|
217
230
|
children: [
|
|
218
231
|
"Someone saved version ",
|
|
219
232
|
Y.version,
|
|
220
233
|
" after you started editing version ",
|
|
221
|
-
|
|
234
|
+
B,
|
|
222
235
|
". Your text is kept below; copy what you need, then discard and edit the latest."
|
|
223
236
|
]
|
|
224
237
|
}),
|
|
225
|
-
|
|
238
|
+
k ? /* @__PURE__ */ s(y, { children: /* @__PURE__ */ c(b, {
|
|
226
239
|
className: "space-y-3 pt-6",
|
|
227
240
|
children: [
|
|
228
|
-
/* @__PURE__ */
|
|
241
|
+
/* @__PURE__ */ s(C, {
|
|
229
242
|
"aria-label": "Doc title",
|
|
230
|
-
value:
|
|
231
|
-
onChange: (e) =>
|
|
243
|
+
value: j,
|
|
244
|
+
onChange: (e) => M(e.target.value)
|
|
232
245
|
}),
|
|
233
|
-
/* @__PURE__ */
|
|
234
|
-
value:
|
|
235
|
-
onChange:
|
|
246
|
+
/* @__PURE__ */ s(ne, {
|
|
247
|
+
value: N,
|
|
248
|
+
onChange: P,
|
|
236
249
|
minHeight: 240
|
|
237
250
|
}),
|
|
238
|
-
/* @__PURE__ */
|
|
251
|
+
/* @__PURE__ */ s(C, {
|
|
239
252
|
"aria-label": "Change note",
|
|
240
253
|
placeholder: "What changed? (optional, shown in the history)",
|
|
241
|
-
value:
|
|
242
|
-
onChange: (e) =>
|
|
254
|
+
value: F,
|
|
255
|
+
onChange: (e) => I(e.target.value)
|
|
243
256
|
}),
|
|
244
|
-
/* @__PURE__ */
|
|
257
|
+
/* @__PURE__ */ c("div", {
|
|
245
258
|
className: "flex justify-end gap-2",
|
|
246
|
-
children: [/* @__PURE__ */
|
|
259
|
+
children: [/* @__PURE__ */ s(v, {
|
|
247
260
|
size: "sm",
|
|
248
261
|
variant: "ghost",
|
|
249
262
|
onClick: () => {
|
|
250
|
-
|
|
263
|
+
A(!1), R(null);
|
|
251
264
|
},
|
|
252
|
-
children:
|
|
253
|
-
}), /* @__PURE__ */
|
|
265
|
+
children: B === Y.version ? "Cancel" : "Discard my edits"
|
|
266
|
+
}), /* @__PURE__ */ s(v, {
|
|
254
267
|
size: "sm",
|
|
255
|
-
onClick:
|
|
256
|
-
disabled:
|
|
268
|
+
onClick: Ae,
|
|
269
|
+
disabled: G.loading || B !== Y.version,
|
|
257
270
|
"data-testid": "doc-save",
|
|
258
|
-
children:
|
|
271
|
+
children: G.loading ? "Saving…" : "Save new version"
|
|
259
272
|
})]
|
|
260
273
|
})
|
|
261
274
|
]
|
|
262
|
-
}) }) : /* @__PURE__ */
|
|
275
|
+
}) }) : /* @__PURE__ */ s(y, { children: /* @__PURE__ */ s(b, {
|
|
263
276
|
className: "prose prose-sm max-w-none pt-6 dark:prose-invert",
|
|
264
|
-
children: Y.content.trim() ? /* @__PURE__ */
|
|
277
|
+
children: Y.content.trim() ? /* @__PURE__ */ s(w, { children: Y.content }) : /* @__PURE__ */ s("p", {
|
|
265
278
|
className: "text-sm text-muted-foreground",
|
|
266
279
|
children: "This doc is empty."
|
|
267
280
|
})
|
|
268
281
|
}) }),
|
|
269
|
-
/* @__PURE__ */
|
|
282
|
+
/* @__PURE__ */ c("div", {
|
|
270
283
|
className: "grid grid-cols-1 gap-6 lg:grid-cols-2",
|
|
271
|
-
children: [/* @__PURE__ */
|
|
284
|
+
children: [/* @__PURE__ */ c(y, {
|
|
272
285
|
"data-testid": "doc-history",
|
|
273
|
-
children: [/* @__PURE__ */
|
|
286
|
+
children: [/* @__PURE__ */ s(x, { children: /* @__PURE__ */ c(S, {
|
|
274
287
|
className: "flex items-center gap-2",
|
|
275
288
|
children: [
|
|
276
|
-
/* @__PURE__ */
|
|
289
|
+
/* @__PURE__ */ s(oe, { className: "h-4 w-4" }),
|
|
277
290
|
" History (",
|
|
278
291
|
Q.length,
|
|
279
292
|
")"
|
|
280
293
|
]
|
|
281
|
-
}) }), /* @__PURE__ */
|
|
294
|
+
}) }), /* @__PURE__ */ c(b, {
|
|
282
295
|
className: "space-y-2",
|
|
283
|
-
children: [/* @__PURE__ */
|
|
296
|
+
children: [/* @__PURE__ */ s("ol", {
|
|
284
297
|
className: "space-y-2",
|
|
285
298
|
children: Q.map((e) => {
|
|
286
299
|
let n = e.version === Y.version;
|
|
287
|
-
return /* @__PURE__ */
|
|
300
|
+
return /* @__PURE__ */ c("li", {
|
|
288
301
|
className: "space-y-1 rounded-md border p-2",
|
|
289
302
|
"data-testid": "doc-revision",
|
|
290
|
-
children: [/* @__PURE__ */
|
|
303
|
+
children: [/* @__PURE__ */ c("div", {
|
|
291
304
|
className: "flex flex-wrap items-center justify-between gap-2",
|
|
292
|
-
children: [/* @__PURE__ */
|
|
305
|
+
children: [/* @__PURE__ */ c("span", {
|
|
293
306
|
className: "text-sm font-medium",
|
|
294
307
|
children: [
|
|
295
308
|
"Version ",
|
|
296
309
|
e.version,
|
|
297
310
|
n ? " (current)" : ""
|
|
298
311
|
]
|
|
299
|
-
}), /* @__PURE__ */
|
|
312
|
+
}), /* @__PURE__ */ c("span", {
|
|
300
313
|
className: "flex gap-1",
|
|
301
|
-
children: [/* @__PURE__ */
|
|
314
|
+
children: [/* @__PURE__ */ s(v, {
|
|
302
315
|
size: "sm",
|
|
303
316
|
variant: "ghost",
|
|
304
317
|
className: "h-7 text-xs",
|
|
305
|
-
"aria-expanded":
|
|
306
|
-
onClick: () =>
|
|
307
|
-
children:
|
|
308
|
-
}), !n && !
|
|
318
|
+
"aria-expanded": z === e.version,
|
|
319
|
+
onClick: () => ve(z === e.version ? null : e.version),
|
|
320
|
+
children: z === e.version ? "Hide" : "View"
|
|
321
|
+
}), !n && !k && /* @__PURE__ */ c(l, { children: [/* @__PURE__ */ s(_, {
|
|
309
322
|
asChild: !0,
|
|
310
|
-
children: /* @__PURE__ */
|
|
323
|
+
children: /* @__PURE__ */ s(v, {
|
|
311
324
|
size: "sm",
|
|
312
325
|
variant: "outline",
|
|
313
326
|
className: "h-7 text-xs",
|
|
@@ -315,18 +328,18 @@ function A() {
|
|
|
315
328
|
"data-testid": "doc-restore",
|
|
316
329
|
children: "Restore"
|
|
317
330
|
})
|
|
318
|
-
}), /* @__PURE__ */
|
|
331
|
+
}), /* @__PURE__ */ c(f, { children: [/* @__PURE__ */ c(h, { children: [/* @__PURE__ */ c(g, { children: [
|
|
319
332
|
"Restore version ",
|
|
320
333
|
e.version,
|
|
321
334
|
"?"
|
|
322
|
-
] }), /* @__PURE__ */
|
|
335
|
+
] }), /* @__PURE__ */ c(p, { children: [
|
|
323
336
|
"Its title and text become version ",
|
|
324
337
|
Y.version + 1,
|
|
325
338
|
". Nothing is deleted: version ",
|
|
326
339
|
Y.version,
|
|
327
340
|
" stays in the history."
|
|
328
|
-
] })] }), /* @__PURE__ */
|
|
329
|
-
onClick: () => Z(() =>
|
|
341
|
+
] })] }), /* @__PURE__ */ c(m, { children: [/* @__PURE__ */ s(d, { children: "Cancel" }), /* @__PURE__ */ s(u, {
|
|
342
|
+
onClick: () => Z(() => Se({ variables: {
|
|
330
343
|
id: Y.id,
|
|
331
344
|
toVersion: e.version,
|
|
332
345
|
expectedVersion: Y.version
|
|
@@ -334,21 +347,21 @@ function A() {
|
|
|
334
347
|
children: "Restore"
|
|
335
348
|
})] })] })] })]
|
|
336
349
|
})]
|
|
337
|
-
}), /* @__PURE__ */
|
|
350
|
+
}), /* @__PURE__ */ c("p", {
|
|
338
351
|
className: "text-xs text-muted-foreground",
|
|
339
352
|
children: [
|
|
340
|
-
|
|
353
|
+
E(e.createdAt),
|
|
341
354
|
" · ",
|
|
342
|
-
/* @__PURE__ */
|
|
355
|
+
/* @__PURE__ */ s(t, { id: e.createdBy }),
|
|
343
356
|
e.changeNote ? ` · ${e.changeNote}` : ""
|
|
344
357
|
]
|
|
345
358
|
})]
|
|
346
359
|
}, e.id);
|
|
347
360
|
})
|
|
348
|
-
}), $ && /* @__PURE__ */
|
|
361
|
+
}), $ && /* @__PURE__ */ c("div", {
|
|
349
362
|
className: "space-y-1 rounded-md border bg-muted/40 p-3",
|
|
350
363
|
"data-testid": "doc-revision-view",
|
|
351
|
-
children: [/* @__PURE__ */
|
|
364
|
+
children: [/* @__PURE__ */ c("p", {
|
|
352
365
|
className: "text-sm font-medium",
|
|
353
366
|
children: [
|
|
354
367
|
"Version ",
|
|
@@ -356,53 +369,77 @@ function A() {
|
|
|
356
369
|
": ",
|
|
357
370
|
$.title
|
|
358
371
|
]
|
|
359
|
-
}), /* @__PURE__ */
|
|
372
|
+
}), /* @__PURE__ */ s("div", {
|
|
360
373
|
className: "prose prose-sm max-w-none dark:prose-invert",
|
|
361
|
-
children: /* @__PURE__ */
|
|
374
|
+
children: /* @__PURE__ */ s(w, { children: $.content })
|
|
362
375
|
})]
|
|
363
376
|
})]
|
|
364
377
|
})]
|
|
365
|
-
}), /* @__PURE__ */
|
|
378
|
+
}), /* @__PURE__ */ c(y, {
|
|
366
379
|
"data-testid": "doc-linked-items",
|
|
367
|
-
children: [/* @__PURE__ */
|
|
380
|
+
children: [/* @__PURE__ */ s(x, { children: /* @__PURE__ */ c(S, {
|
|
368
381
|
className: "flex items-center gap-2",
|
|
369
382
|
children: [
|
|
370
|
-
/* @__PURE__ */
|
|
383
|
+
/* @__PURE__ */ s(i, { className: "h-4 w-4" }),
|
|
371
384
|
" Linked work items (",
|
|
372
385
|
Y.linkedWorkItems.length,
|
|
373
386
|
")"
|
|
374
387
|
]
|
|
375
|
-
}) }), /* @__PURE__ */
|
|
388
|
+
}) }), /* @__PURE__ */ c(b, {
|
|
376
389
|
className: "space-y-2",
|
|
377
|
-
children: [
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
390
|
+
children: [
|
|
391
|
+
Y.linkedWorkItems.length === 0 && /* @__PURE__ */ s("p", {
|
|
392
|
+
className: "text-sm text-muted-foreground",
|
|
393
|
+
children: "Not linked to any work item yet. Pick one below, or use “Link existing doc” on the task."
|
|
394
|
+
}),
|
|
395
|
+
Y.linkedWorkItems.map((e) => /* @__PURE__ */ c("div", {
|
|
396
|
+
className: "flex items-center justify-between gap-2 rounded-md border p-2",
|
|
397
|
+
children: [/* @__PURE__ */ c("button", {
|
|
398
|
+
type: "button",
|
|
399
|
+
className: "min-w-0 truncate text-left text-sm hover:underline",
|
|
400
|
+
onClick: () => O(`/tasks/task-detail-page?taskId=${encodeURIComponent(e.id)}`),
|
|
401
|
+
children: [
|
|
402
|
+
/* @__PURE__ */ s("span", {
|
|
403
|
+
className: "text-muted-foreground",
|
|
404
|
+
children: e.key
|
|
405
|
+
}),
|
|
406
|
+
" ",
|
|
407
|
+
e.title
|
|
408
|
+
]
|
|
409
|
+
}), /* @__PURE__ */ s(v, {
|
|
410
|
+
size: "icon",
|
|
411
|
+
variant: "ghost",
|
|
412
|
+
disabled: De.loading,
|
|
413
|
+
"aria-label": `Unlink ${e.title}`,
|
|
414
|
+
onClick: () => Z(() => Ee({ variables: {
|
|
415
|
+
docId: Y.id,
|
|
416
|
+
workItemId: e.id
|
|
417
|
+
} }), "The work item could not be unlinked."),
|
|
418
|
+
children: /* @__PURE__ */ s(se, { className: "h-4 w-4" })
|
|
419
|
+
})]
|
|
420
|
+
}, e.id)),
|
|
421
|
+
/* @__PURE__ */ c("div", {
|
|
422
|
+
className: "space-y-2 pt-2",
|
|
423
|
+
"data-testid": "doc-link-work-item",
|
|
424
|
+
children: [/* @__PURE__ */ s(te, {
|
|
425
|
+
id: "doc-link-work-item-select",
|
|
426
|
+
value: q,
|
|
427
|
+
onChange: J,
|
|
428
|
+
exclude: Y.linkedWorkItems.map((e) => e.id)
|
|
429
|
+
}), /* @__PURE__ */ c(v, {
|
|
430
|
+
size: "sm",
|
|
431
|
+
variant: "outline",
|
|
432
|
+
disabled: !q || Oe.loading,
|
|
433
|
+
onClick: async () => {
|
|
434
|
+
await Z(() => K({ variables: {
|
|
435
|
+
docId: Y.id,
|
|
436
|
+
workItemId: q
|
|
437
|
+
} }), "The work item could not be linked.") && J("");
|
|
438
|
+
},
|
|
439
|
+
children: [/* @__PURE__ */ s(i, { className: "mr-1 h-4 w-4" }), "Link work item"]
|
|
440
|
+
})]
|
|
441
|
+
})
|
|
442
|
+
]
|
|
406
443
|
})]
|
|
407
444
|
})]
|
|
408
445
|
})
|
|
@@ -410,6 +447,6 @@ function A() {
|
|
|
410
447
|
});
|
|
411
448
|
}
|
|
412
449
|
//#endregion
|
|
413
|
-
export {
|
|
450
|
+
export { D as DocsDocDetailPagePage };
|
|
414
451
|
|
|
415
452
|
//# sourceMappingURL=DocsDocDetailPagePage.js.map
|