@burdenoff/microfe-planmagnet 2026.509.103
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/README.md +12 -0
- package/dist/dev/main.d.ts +2 -0
- package/dist/dev/main.d.ts.map +1 -0
- package/dist/generated/global-operations.d.ts +2 -0
- package/dist/generated/global-operations.d.ts.map +1 -0
- package/dist/generated/global-types.d.ts +21253 -0
- package/dist/generated/global-types.d.ts.map +1 -0
- package/dist/generated/wspace-operations.d.ts +8370 -0
- package/dist/generated/wspace-operations.d.ts.map +1 -0
- package/dist/generated/wspace-types.d.ts +4182 -0
- package/dist/generated/wspace-types.d.ts.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/node_modules/@apollo/client/errors/CombinedGraphQLErrors.js +24 -0
- package/dist/node_modules/@apollo/client/errors/CombinedGraphQLErrors.js.map +1 -0
- package/dist/node_modules/@apollo/client/errors/utils.js +16 -0
- package/dist/node_modules/@apollo/client/errors/utils.js.map +1 -0
- package/dist/planmagnet/PlanMagnetRoot.d.ts +5 -0
- package/dist/planmagnet/PlanMagnetRoot.d.ts.map +1 -0
- package/dist/planmagnet/PlanMagnetRoot.js +292 -0
- package/dist/planmagnet/PlanMagnetRoot.js.map +1 -0
- package/dist/planmagnet/PlanMagnetRoutes.d.ts +2 -0
- package/dist/planmagnet/PlanMagnetRoutes.d.ts.map +1 -0
- package/dist/planmagnet/PlanMagnetRoutes.js +211 -0
- package/dist/planmagnet/PlanMagnetRoutes.js.map +1 -0
- package/dist/planmagnet/index.d.ts +5 -0
- package/dist/planmagnet/index.d.ts.map +1 -0
- package/dist/planmagnet/index.js +3 -0
- package/dist/planmagnet/pages/AnalyticsAnalyticsPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/AnalyticsAnalyticsPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/AnalyticsAnalyticsPagePage.js +312 -0
- package/dist/planmagnet/pages/AnalyticsAnalyticsPagePage.js.map +1 -0
- package/dist/planmagnet/pages/CollaborationCollaborationPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/CollaborationCollaborationPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/CollaborationCollaborationPagePage.js +110 -0
- package/dist/planmagnet/pages/CollaborationCollaborationPagePage.js.map +1 -0
- package/dist/planmagnet/pages/CollaborationCreateChannelPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/CollaborationCreateChannelPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/CollaborationCreateChannelPagePage.js +96 -0
- package/dist/planmagnet/pages/CollaborationCreateChannelPagePage.js.map +1 -0
- package/dist/planmagnet/pages/CollaborationFilesPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/CollaborationFilesPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/CollaborationFilesPagePage.js +112 -0
- package/dist/planmagnet/pages/CollaborationFilesPagePage.js.map +1 -0
- package/dist/planmagnet/pages/CollaborationMessagesPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/CollaborationMessagesPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/CollaborationMessagesPagePage.js +141 -0
- package/dist/planmagnet/pages/CollaborationMessagesPagePage.js.map +1 -0
- package/dist/planmagnet/pages/CollaborationNewDiscussionPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/CollaborationNewDiscussionPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/CollaborationNewDiscussionPagePage.js +124 -0
- package/dist/planmagnet/pages/CollaborationNewDiscussionPagePage.js.map +1 -0
- package/dist/planmagnet/pages/DashboardDashboardPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/DashboardDashboardPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/DashboardDashboardPagePage.js +350 -0
- package/dist/planmagnet/pages/DashboardDashboardPagePage.js.map +1 -0
- package/dist/planmagnet/pages/MeetingsScheduleMeetingPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/MeetingsScheduleMeetingPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/MeetingsScheduleMeetingPagePage.js +290 -0
- package/dist/planmagnet/pages/MeetingsScheduleMeetingPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProductsCreateProductPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProductsCreateProductPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProductsCreateProductPagePage.js +189 -0
- package/dist/planmagnet/pages/ProductsCreateProductPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProductsCreateRoadmapPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProductsCreateRoadmapPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProductsCreateRoadmapPagePage.js +151 -0
- package/dist/planmagnet/pages/ProductsCreateRoadmapPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProductsEditProductPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProductsEditProductPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProductsEditProductPagePage.js +257 -0
- package/dist/planmagnet/pages/ProductsEditProductPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProductsEditReleasePagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProductsEditReleasePagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProductsEditReleasePagePage.js +221 -0
- package/dist/planmagnet/pages/ProductsEditReleasePagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProductsFeatureAnalyticsPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProductsFeatureAnalyticsPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProductsFeatureAnalyticsPagePage.js +284 -0
- package/dist/planmagnet/pages/ProductsFeatureAnalyticsPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProductsFeatureDetailPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProductsFeatureDetailPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProductsFeatureDetailPagePage.js +291 -0
- package/dist/planmagnet/pages/ProductsFeatureDetailPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProductsFeaturesPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProductsFeaturesPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProductsFeaturesPagePage.js +257 -0
- package/dist/planmagnet/pages/ProductsFeaturesPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProductsNewFeaturePagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProductsNewFeaturePagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProductsNewFeaturePagePage.js +222 -0
- package/dist/planmagnet/pages/ProductsNewFeaturePagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProductsProductDetailPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProductsProductDetailPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProductsProductDetailPagePage.js +288 -0
- package/dist/planmagnet/pages/ProductsProductDetailPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProductsProductsPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProductsProductsPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProductsProductsPagePage.js +225 -0
- package/dist/planmagnet/pages/ProductsProductsPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProductsReleaseDetailPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProductsReleaseDetailPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProductsReleaseDetailPagePage.js +262 -0
- package/dist/planmagnet/pages/ProductsReleaseDetailPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProductsReleasesPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProductsReleasesPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProductsReleasesPagePage.js +162 -0
- package/dist/planmagnet/pages/ProductsReleasesPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProductsRoadmapAnalyticsPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProductsRoadmapAnalyticsPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProductsRoadmapAnalyticsPagePage.js +342 -0
- package/dist/planmagnet/pages/ProductsRoadmapAnalyticsPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProductsRoadmapDetailPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProductsRoadmapDetailPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProductsRoadmapDetailPagePage.js +233 -0
- package/dist/planmagnet/pages/ProductsRoadmapDetailPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProductsRoadmapsPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProductsRoadmapsPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProductsRoadmapsPagePage.js +193 -0
- package/dist/planmagnet/pages/ProductsRoadmapsPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProjectsActiveProjectsPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProjectsActiveProjectsPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProjectsActiveProjectsPagePage.js +116 -0
- package/dist/planmagnet/pages/ProjectsActiveProjectsPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProjectsCreateProjectPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProjectsCreateProjectPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProjectsCreateProjectPagePage.js +199 -0
- package/dist/planmagnet/pages/ProjectsCreateProjectPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProjectsEditProjectPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProjectsEditProjectPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProjectsEditProjectPagePage.js +197 -0
- package/dist/planmagnet/pages/ProjectsEditProjectPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProjectsMilestoneDetailPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProjectsMilestoneDetailPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProjectsMilestoneDetailPagePage.js +173 -0
- package/dist/planmagnet/pages/ProjectsMilestoneDetailPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProjectsMilestonesPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProjectsMilestonesPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProjectsMilestonesPagePage.js +119 -0
- package/dist/planmagnet/pages/ProjectsMilestonesPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProjectsPlanningDetailPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProjectsPlanningDetailPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProjectsPlanningDetailPagePage.js +257 -0
- package/dist/planmagnet/pages/ProjectsPlanningDetailPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProjectsPlanningEditPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProjectsPlanningEditPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProjectsPlanningEditPagePage.js +222 -0
- package/dist/planmagnet/pages/ProjectsPlanningEditPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProjectsPlanningPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProjectsPlanningPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProjectsPlanningPagePage.js +142 -0
- package/dist/planmagnet/pages/ProjectsPlanningPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProjectsProjectDetailPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProjectsProjectDetailPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProjectsProjectDetailPagePage.js +363 -0
- package/dist/planmagnet/pages/ProjectsProjectDetailPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProjectsProjectsPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProjectsProjectsPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProjectsProjectsPagePage.js +176 -0
- package/dist/planmagnet/pages/ProjectsProjectsPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ReportsCreateReportPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ReportsCreateReportPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ReportsCreateReportPagePage.js +173 -0
- package/dist/planmagnet/pages/ReportsCreateReportPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ReportsReportsPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ReportsReportsPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ReportsReportsPagePage.js +221 -0
- package/dist/planmagnet/pages/ReportsReportsPagePage.js.map +1 -0
- package/dist/planmagnet/pages/SprintsStartSprintPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/SprintsStartSprintPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/SprintsStartSprintPagePage.js +282 -0
- package/dist/planmagnet/pages/SprintsStartSprintPagePage.js.map +1 -0
- package/dist/planmagnet/pages/TasksCreateTaskPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/TasksCreateTaskPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/TasksCreateTaskPagePage.js +227 -0
- package/dist/planmagnet/pages/TasksCreateTaskPagePage.js.map +1 -0
- package/dist/planmagnet/pages/TasksEditTaskPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/TasksEditTaskPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/TasksEditTaskPagePage.js +234 -0
- package/dist/planmagnet/pages/TasksEditTaskPagePage.js.map +1 -0
- package/dist/planmagnet/pages/TasksTaskDetailPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/TasksTaskDetailPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/TasksTaskDetailPagePage.js +232 -0
- package/dist/planmagnet/pages/TasksTaskDetailPagePage.js.map +1 -0
- package/dist/planmagnet/pages/TasksTasksPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/TasksTasksPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/TasksTasksPagePage.js +206 -0
- package/dist/planmagnet/pages/TasksTasksPagePage.js.map +1 -0
- package/dist/planmagnet/pages/TeamCreateTeamPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/TeamCreateTeamPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/TeamCreateTeamPagePage.js +138 -0
- package/dist/planmagnet/pages/TeamCreateTeamPagePage.js.map +1 -0
- package/dist/planmagnet/pages/TeamInviteMemberPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/TeamInviteMemberPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/TeamInviteMemberPagePage.js +161 -0
- package/dist/planmagnet/pages/TeamInviteMemberPagePage.js.map +1 -0
- package/dist/planmagnet/pages/TeamTeamPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/TeamTeamPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/TeamTeamPagePage.js +203 -0
- package/dist/planmagnet/pages/TeamTeamPagePage.js.map +1 -0
- package/dist/planmagnet/pages/WorkspaceCreateWorkspacePagePage.d.ts +2 -0
- package/dist/planmagnet/pages/WorkspaceCreateWorkspacePagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/WorkspaceCreateWorkspacePagePage.js +97 -0
- package/dist/planmagnet/pages/WorkspaceCreateWorkspacePagePage.js.map +1 -0
- package/dist/planmagnet/providers/PlanMagnetProvider.d.ts +31 -0
- package/dist/planmagnet/providers/PlanMagnetProvider.d.ts.map +1 -0
- package/dist/planmagnet/providers/PlanMagnetProvider.js +119 -0
- package/dist/planmagnet/providers/PlanMagnetProvider.js.map +1 -0
- package/dist/planmagnet/store/planmagnetStore.d.ts +30 -0
- package/dist/planmagnet/store/planmagnetStore.d.ts.map +1 -0
- package/dist/planmagnet/store/planmagnetStore.js +42 -0
- package/dist/planmagnet/store/planmagnetStore.js.map +1 -0
- package/dist/planmagnet/types/index.d.ts +317 -0
- package/dist/planmagnet/types/index.d.ts.map +1 -0
- package/dist/planmagnet/utils/cn.d.ts +4 -0
- package/dist/planmagnet/utils/cn.d.ts.map +1 -0
- package/dist/planmagnet/utils/navigation.d.ts +2 -0
- package/dist/planmagnet/utils/navigation.d.ts.map +1 -0
- package/dist/planmagnet/utils/navigation.js +8 -0
- package/dist/planmagnet/utils/navigation.js.map +1 -0
- package/package.json +107 -0
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
import { usePlanMagnet as e } from "../providers/PlanMagnetProvider.js";
|
|
2
|
+
import { useState as t } from "react";
|
|
3
|
+
import { Calendar as n, GitBranch as r, Loader2 as i, Map as a, Package as o, Plus as s } from "lucide-react";
|
|
4
|
+
import { gql as c } from "@apollo/client";
|
|
5
|
+
import { useQuery as l } from "@apollo/client/react";
|
|
6
|
+
import { jsx as u, jsxs as d } from "react/jsx-runtime";
|
|
7
|
+
import { useI18n as f } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
8
|
+
import { Badge as p, Button as m, Card as h, CardContent as g, CardHeader as _, CardTitle as v } from "@burdenoff/fe-libs/ui";
|
|
9
|
+
//#region src/planmagnet/pages/ProductsProductsPagePage.tsx
|
|
10
|
+
var y = c`
|
|
11
|
+
query ListRoadmaps($workspaceId: ID!, $pagination: PaginationInput) {
|
|
12
|
+
planmagnetRoadmaps(workspaceId: $workspaceId, pagination: $pagination) {
|
|
13
|
+
items {
|
|
14
|
+
id
|
|
15
|
+
workspaceId
|
|
16
|
+
name
|
|
17
|
+
description
|
|
18
|
+
type
|
|
19
|
+
isPublic
|
|
20
|
+
ownerId
|
|
21
|
+
metadata
|
|
22
|
+
createdBy
|
|
23
|
+
createdAt
|
|
24
|
+
updatedAt
|
|
25
|
+
updatedBy
|
|
26
|
+
items {
|
|
27
|
+
id
|
|
28
|
+
status
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
totalCount
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
`, b = c`
|
|
35
|
+
query ListFeatureRequestsForProducts($workspaceId: ID!, $pagination: PaginationInput) {
|
|
36
|
+
planmagnetFeatureRequests(workspaceId: $workspaceId, pagination: $pagination) {
|
|
37
|
+
totalCount
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
`, x = c`
|
|
41
|
+
query ListReleasesForProducts($workspaceId: ID!, $pagination: PaginationInput) {
|
|
42
|
+
planmagnetReleases(workspaceId: $workspaceId, pagination: $pagination) {
|
|
43
|
+
totalCount
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
`;
|
|
47
|
+
function S() {
|
|
48
|
+
let { workspaceId: c } = e(), { t: S } = f(), [C, w] = t("grid"), { data: T, loading: E, error: D } = l(y, {
|
|
49
|
+
variables: {
|
|
50
|
+
workspaceId: c,
|
|
51
|
+
pagination: { first: 50 }
|
|
52
|
+
},
|
|
53
|
+
skip: !c
|
|
54
|
+
}), { data: O } = l(b, {
|
|
55
|
+
variables: {
|
|
56
|
+
workspaceId: c,
|
|
57
|
+
pagination: { first: 1 }
|
|
58
|
+
},
|
|
59
|
+
skip: !c
|
|
60
|
+
}), { data: k } = l(x, {
|
|
61
|
+
variables: {
|
|
62
|
+
workspaceId: c,
|
|
63
|
+
pagination: { first: 1 }
|
|
64
|
+
},
|
|
65
|
+
skip: !c
|
|
66
|
+
});
|
|
67
|
+
if (E) return /* @__PURE__ */ u("div", {
|
|
68
|
+
className: "flex items-center justify-center p-12",
|
|
69
|
+
children: /* @__PURE__ */ u(i, { className: "h-8 w-8 animate-spin text-muted-foreground" })
|
|
70
|
+
});
|
|
71
|
+
if (D) return /* @__PURE__ */ d("div", {
|
|
72
|
+
className: "p-6 text-destructive",
|
|
73
|
+
children: [
|
|
74
|
+
S("planmagnet.products.errorLoading", "Failed to load products"),
|
|
75
|
+
": ",
|
|
76
|
+
D.message
|
|
77
|
+
]
|
|
78
|
+
});
|
|
79
|
+
let A = T?.roadmaps?.items ?? [], j = T?.roadmaps?.totalCount ?? 0, M = O?.featureRequests?.totalCount ?? 0, N = k?.releases?.totalCount ?? 0, P = (e) => {
|
|
80
|
+
switch (e) {
|
|
81
|
+
case "TIMELINE": return "default";
|
|
82
|
+
case "GANTT": return "secondary";
|
|
83
|
+
case "SWIMLANE": return "outline";
|
|
84
|
+
default: return "outline";
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
return /* @__PURE__ */ d("div", {
|
|
88
|
+
className: "space-y-6 p-6",
|
|
89
|
+
children: [
|
|
90
|
+
/* @__PURE__ */ d("div", {
|
|
91
|
+
className: "flex items-center justify-between",
|
|
92
|
+
children: [/* @__PURE__ */ d("div", { children: [/* @__PURE__ */ d("h1", {
|
|
93
|
+
className: "text-2xl font-semibold flex items-center gap-2",
|
|
94
|
+
children: [
|
|
95
|
+
/* @__PURE__ */ u(o, { className: "h-6 w-6" }),
|
|
96
|
+
" ",
|
|
97
|
+
S("planmagnet.products.title", "Products")
|
|
98
|
+
]
|
|
99
|
+
}), /* @__PURE__ */ u("p", {
|
|
100
|
+
className: "text-sm text-muted-foreground mt-1",
|
|
101
|
+
children: S("planmagnet.products.subtitle", "Manage your product portfolio and track feature development")
|
|
102
|
+
})] }), /* @__PURE__ */ d(m, {
|
|
103
|
+
size: "sm",
|
|
104
|
+
children: [/* @__PURE__ */ u(s, { className: "h-4 w-4 mr-1" }), S("planmagnet.products.actions.newProduct", "New Product")]
|
|
105
|
+
})]
|
|
106
|
+
}),
|
|
107
|
+
/* @__PURE__ */ u("div", {
|
|
108
|
+
className: "grid gap-4 md:grid-cols-4",
|
|
109
|
+
children: [
|
|
110
|
+
{
|
|
111
|
+
label: S("planmagnet.products.metrics.totalProducts", "Total Products"),
|
|
112
|
+
val: j,
|
|
113
|
+
icon: o,
|
|
114
|
+
color: "text-blue-500"
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
label: S("planmagnet.products.metrics.activeFeatures", "Active Features"),
|
|
118
|
+
val: M,
|
|
119
|
+
icon: r,
|
|
120
|
+
color: "text-green-500"
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
label: S("planmagnet.products.metrics.releases", "Releases"),
|
|
124
|
+
val: N,
|
|
125
|
+
icon: n,
|
|
126
|
+
color: "text-purple-500"
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
label: S("planmagnet.products.metrics.roadmaps", "Roadmaps"),
|
|
130
|
+
val: j,
|
|
131
|
+
icon: a,
|
|
132
|
+
color: "text-orange-500"
|
|
133
|
+
}
|
|
134
|
+
].map((e) => /* @__PURE__ */ u(h, { children: /* @__PURE__ */ u(g, {
|
|
135
|
+
className: "pt-6",
|
|
136
|
+
children: /* @__PURE__ */ d("div", {
|
|
137
|
+
className: "flex items-center justify-between",
|
|
138
|
+
children: [/* @__PURE__ */ d("div", { children: [/* @__PURE__ */ u("p", {
|
|
139
|
+
className: "text-sm text-muted-foreground",
|
|
140
|
+
children: e.label
|
|
141
|
+
}), /* @__PURE__ */ u("p", {
|
|
142
|
+
className: "text-2xl font-bold",
|
|
143
|
+
children: e.val
|
|
144
|
+
})] }), /* @__PURE__ */ u(e.icon, { className: `h-8 w-8 ${e.color} opacity-60` })]
|
|
145
|
+
})
|
|
146
|
+
}) }, e.label))
|
|
147
|
+
}),
|
|
148
|
+
/* @__PURE__ */ u("div", {
|
|
149
|
+
className: "grid gap-4 md:grid-cols-2 lg:grid-cols-2",
|
|
150
|
+
children: A.map((e) => /* @__PURE__ */ d(h, {
|
|
151
|
+
className: "hover:shadow-md transition-shadow",
|
|
152
|
+
children: [/* @__PURE__ */ u(_, { children: /* @__PURE__ */ d("div", {
|
|
153
|
+
className: "flex items-center justify-between",
|
|
154
|
+
children: [/* @__PURE__ */ u(v, {
|
|
155
|
+
className: "text-base",
|
|
156
|
+
children: e.name
|
|
157
|
+
}), /* @__PURE__ */ u(p, {
|
|
158
|
+
variant: P(e.type),
|
|
159
|
+
children: e.type.toLowerCase()
|
|
160
|
+
})]
|
|
161
|
+
}) }), /* @__PURE__ */ d(g, {
|
|
162
|
+
className: "space-y-3",
|
|
163
|
+
children: [
|
|
164
|
+
/* @__PURE__ */ u("p", {
|
|
165
|
+
className: "text-sm text-muted-foreground",
|
|
166
|
+
children: e.description ?? S("planmagnet.products.shared.noDescription", "No description")
|
|
167
|
+
}),
|
|
168
|
+
/* @__PURE__ */ d("div", {
|
|
169
|
+
className: "grid grid-cols-3 gap-2 text-center",
|
|
170
|
+
children: [
|
|
171
|
+
/* @__PURE__ */ d("div", {
|
|
172
|
+
className: "rounded border p-2",
|
|
173
|
+
children: [/* @__PURE__ */ u("p", {
|
|
174
|
+
className: "text-lg font-bold",
|
|
175
|
+
children: e.items?.length ?? 0
|
|
176
|
+
}), /* @__PURE__ */ u("p", {
|
|
177
|
+
className: "text-xs text-muted-foreground",
|
|
178
|
+
children: S("planmagnet.products.shared.items", "Items")
|
|
179
|
+
})]
|
|
180
|
+
}),
|
|
181
|
+
/* @__PURE__ */ d("div", {
|
|
182
|
+
className: "rounded border p-2",
|
|
183
|
+
children: [/* @__PURE__ */ u("p", {
|
|
184
|
+
className: "text-lg font-bold",
|
|
185
|
+
children: e.isPublic ? S("planmagnet.products.shared.public", "Public") : S("planmagnet.products.shared.private", "Private")
|
|
186
|
+
}), /* @__PURE__ */ u("p", {
|
|
187
|
+
className: "text-xs text-muted-foreground",
|
|
188
|
+
children: S("planmagnet.products.shared.visibility", "Visibility")
|
|
189
|
+
})]
|
|
190
|
+
}),
|
|
191
|
+
/* @__PURE__ */ d("div", {
|
|
192
|
+
className: "rounded border p-2",
|
|
193
|
+
children: [/* @__PURE__ */ u("p", {
|
|
194
|
+
className: "text-lg font-bold",
|
|
195
|
+
children: e.type.toLowerCase()
|
|
196
|
+
}), /* @__PURE__ */ u("p", {
|
|
197
|
+
className: "text-xs text-muted-foreground",
|
|
198
|
+
children: S("planmagnet.products.shared.type", "Type")
|
|
199
|
+
})]
|
|
200
|
+
})
|
|
201
|
+
]
|
|
202
|
+
}),
|
|
203
|
+
/* @__PURE__ */ d("div", {
|
|
204
|
+
className: "flex items-center justify-between text-xs text-muted-foreground",
|
|
205
|
+
children: [/* @__PURE__ */ d("span", { children: [
|
|
206
|
+
S("planmagnet.products.shared.owner", "Owner"),
|
|
207
|
+
": ",
|
|
208
|
+
e.ownerId
|
|
209
|
+
] }), /* @__PURE__ */ d("span", { children: [
|
|
210
|
+
S("planmagnet.products.shared.updated", "Updated"),
|
|
211
|
+
" ",
|
|
212
|
+
new Date(e.updatedAt).toLocaleDateString()
|
|
213
|
+
] })]
|
|
214
|
+
})
|
|
215
|
+
]
|
|
216
|
+
})]
|
|
217
|
+
}, e.id))
|
|
218
|
+
})
|
|
219
|
+
]
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
//#endregion
|
|
223
|
+
export { S as ProductsProductsPagePage };
|
|
224
|
+
|
|
225
|
+
//# sourceMappingURL=ProductsProductsPagePage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProductsProductsPagePage.js","names":[],"sources":["../../../src/planmagnet/pages/ProductsProductsPagePage.tsx"],"sourcesContent":["// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\nimport { useState } from 'react';\nimport { gql } from '@apollo/client';\nimport { useQuery } from '@apollo/client/react';\nimport { Card, CardContent, CardHeader, CardTitle, Badge, Button } from '@burdenoff/fe-libs/ui';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { Package, Plus, TrendingUp, Calendar, GitBranch, Map, Loader2 } from 'lucide-react';\nimport { usePlanMagnet } from '../providers/PlanMagnetProvider';\n\nconst LIST_ROADMAPS = gql`\n query ListRoadmaps($workspaceId: ID!, $pagination: PaginationInput) {\n planmagnetRoadmaps(workspaceId: $workspaceId, pagination: $pagination) {\n items {\n id\n workspaceId\n name\n description\n type\n isPublic\n ownerId\n metadata\n createdBy\n createdAt\n updatedAt\n updatedBy\n items {\n id\n status\n }\n }\n totalCount\n }\n }\n`;\n\nconst LIST_FEATURE_REQUESTS = gql`\n query ListFeatureRequestsForProducts($workspaceId: ID!, $pagination: PaginationInput) {\n planmagnetFeatureRequests(workspaceId: $workspaceId, pagination: $pagination) {\n totalCount\n }\n }\n`;\n\nconst LIST_RELEASES = gql`\n query ListReleasesForProducts($workspaceId: ID!, $pagination: PaginationInput) {\n planmagnetReleases(workspaceId: $workspaceId, pagination: $pagination) {\n totalCount\n }\n }\n`;\n\ninterface RoadmapNode {\n id: string;\n name: string;\n description: string | null;\n type: string;\n isPublic: boolean;\n ownerId: string;\n createdAt: string;\n updatedAt: string;\n items: { id: string; status: string }[];\n}\n\nexport function ProductsProductsPagePage() {\n const { workspaceId } = usePlanMagnet();\n const { t } = useI18n();\n const [view, setView] = useState<'grid' | 'list'>('grid');\n\n const {\n data: roadmapsData,\n loading: roadmapsLoading,\n error: roadmapsError,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } = useQuery<Record<string, any>>(LIST_ROADMAPS, {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n variables: { workspaceId, pagination: { first: 50 } },\n skip: !workspaceId,\n });\n\n const {\n data: featuresData,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } = // eslint-disable-next-line @typescript-eslint/no-explicit-any\n useQuery<Record<string, any>>(LIST_FEATURE_REQUESTS, {\n variables: { workspaceId, pagination: { first: 1 } },\n skip: !workspaceId,\n });\n\n const {\n data: releasesData,\n } = // eslint-disable-next-line @typescript-eslint/no-explicit-any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n useQuery<Record<string, any>>(LIST_RELEASES, {\n variables: { workspaceId, pagination: { first: 1 } },\n skip: !workspaceId,\n });\n\n if (roadmapsLoading) {\n return (\n <div className=\"flex items-center justify-center p-12\">\n <Loader2 className=\"h-8 w-8 animate-spin text-muted-foreground\" />\n </div>\n );\n }\n\n if (roadmapsError) {\n return (\n <div className=\"p-6 text-destructive\">\n {t('planmagnet.products.errorLoading', 'Failed to load products')}: {roadmapsError.message}\n </div>\n );\n }\n\n const roadmaps: RoadmapNode[] = roadmapsData?.roadmaps?.items ?? [];\n const totalRoadmaps = roadmapsData?.roadmaps?.totalCount ?? 0;\n const totalFeatures = featuresData?.featureRequests?.totalCount ?? 0;\n const totalReleases = releasesData?.releases?.totalCount ?? 0;\n\n const typeLabel = (t: string) => {\n switch (t) {\n case 'TIMELINE':\n return 'default';\n case 'GANTT':\n return 'secondary';\n case 'SWIMLANE':\n return 'outline';\n default:\n return 'outline';\n }\n };\n\n return (\n <div className=\"space-y-6 p-6\">\n <div className=\"flex items-center justify-between\">\n <div>\n <h1 className=\"text-2xl font-semibold flex items-center gap-2\">\n <Package className=\"h-6 w-6\" /> {t('planmagnet.products.title', 'Products')}\n </h1>\n <p className=\"text-sm text-muted-foreground mt-1\">\n {t(\n 'planmagnet.products.subtitle',\n 'Manage your product portfolio and track feature development'\n )}\n </p>\n </div>\n <Button size=\"sm\">\n <Plus className=\"h-4 w-4 mr-1\" />\n {t('planmagnet.products.actions.newProduct', 'New Product')}\n </Button>\n </div>\n\n <div className=\"grid gap-4 md:grid-cols-4\">\n {[\n {\n label: t('planmagnet.products.metrics.totalProducts', 'Total Products'),\n val: totalRoadmaps,\n icon: Package,\n color: 'text-blue-500',\n },\n {\n label: t('planmagnet.products.metrics.activeFeatures', 'Active Features'),\n val: totalFeatures,\n icon: GitBranch,\n color: 'text-green-500',\n },\n {\n label: t('planmagnet.products.metrics.releases', 'Releases'),\n val: totalReleases,\n icon: Calendar,\n color: 'text-purple-500',\n },\n {\n label: t('planmagnet.products.metrics.roadmaps', 'Roadmaps'),\n val: totalRoadmaps,\n icon: Map,\n color: 'text-orange-500',\n },\n ].map((s) => (\n <Card key={s.label}>\n <CardContent className=\"pt-6\">\n <div className=\"flex items-center justify-between\">\n <div>\n <p className=\"text-sm text-muted-foreground\">{s.label}</p>\n <p className=\"text-2xl font-bold\">{s.val}</p>\n </div>\n <s.icon className={`h-8 w-8 ${s.color} opacity-60`} />\n </div>\n </CardContent>\n </Card>\n ))}\n </div>\n\n <div className=\"grid gap-4 md:grid-cols-2 lg:grid-cols-2\">\n {roadmaps.map((roadmap) => (\n <Card key={roadmap.id} className=\"hover:shadow-md transition-shadow\">\n <CardHeader>\n <div className=\"flex items-center justify-between\">\n <CardTitle className=\"text-base\">{roadmap.name}</CardTitle>\n <Badge variant={typeLabel(roadmap.type)}>{roadmap.type.toLowerCase()}</Badge>\n </div>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n <p className=\"text-sm text-muted-foreground\">\n {roadmap.description ??\n t('planmagnet.products.shared.noDescription', 'No description')}\n </p>\n <div className=\"grid grid-cols-3 gap-2 text-center\">\n <div className=\"rounded border p-2\">\n <p className=\"text-lg font-bold\">{roadmap.items?.length ?? 0}</p>\n <p className=\"text-xs text-muted-foreground\">\n {t('planmagnet.products.shared.items', 'Items')}\n </p>\n </div>\n <div className=\"rounded border p-2\">\n <p className=\"text-lg font-bold\">\n {roadmap.isPublic\n ? t('planmagnet.products.shared.public', 'Public')\n : t('planmagnet.products.shared.private', 'Private')}\n </p>\n <p className=\"text-xs text-muted-foreground\">\n {t('planmagnet.products.shared.visibility', 'Visibility')}\n </p>\n </div>\n <div className=\"rounded border p-2\">\n <p className=\"text-lg font-bold\">{roadmap.type.toLowerCase()}</p>\n <p className=\"text-xs text-muted-foreground\">\n {t('planmagnet.products.shared.type', 'Type')}\n </p>\n </div>\n </div>\n <div className=\"flex items-center justify-between text-xs text-muted-foreground\">\n <span>\n {t('planmagnet.products.shared.owner', 'Owner')}: {roadmap.ownerId}\n </span>\n <span>\n {t('planmagnet.products.shared.updated', 'Updated')}{' '}\n {new Date(roadmap.updatedAt).toLocaleDateString()}\n </span>\n </div>\n </CardContent>\n </Card>\n ))}\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProductsReleaseDetailPagePage.d.ts","sourceRoot":"","sources":["../../../src/planmagnet/pages/ProductsReleaseDetailPagePage.tsx"],"names":[],"mappings":"AAwDA,wBAAgB,6BAA6B,4CAiM5C"}
|
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
import { usePlanMagnet as e } from "../providers/PlanMagnetProvider.js";
|
|
2
|
+
import { Calendar as t, Clock as n, GitBranch as r, Loader2 as i } from "lucide-react";
|
|
3
|
+
import { useParams as a } from "react-router-dom";
|
|
4
|
+
import { gql as o } from "@apollo/client";
|
|
5
|
+
import { useQuery as s } from "@apollo/client/react";
|
|
6
|
+
import { jsx as c, jsxs as l } from "react/jsx-runtime";
|
|
7
|
+
import { Badge as u, Card as d, CardContent as f, CardHeader as p, CardTitle as m } from "@burdenoff/fe-libs/ui";
|
|
8
|
+
//#region src/planmagnet/pages/ProductsReleaseDetailPagePage.tsx
|
|
9
|
+
var h = o`
|
|
10
|
+
query GetRelease($id: ID!) {
|
|
11
|
+
planmagnetRelease(id: $id) {
|
|
12
|
+
id
|
|
13
|
+
workspaceId
|
|
14
|
+
projectId
|
|
15
|
+
name
|
|
16
|
+
description
|
|
17
|
+
version
|
|
18
|
+
status
|
|
19
|
+
plannedDate
|
|
20
|
+
releasedAt
|
|
21
|
+
releaseNotes
|
|
22
|
+
ownerId
|
|
23
|
+
tags
|
|
24
|
+
metadata
|
|
25
|
+
createdAt
|
|
26
|
+
updatedAt
|
|
27
|
+
workItems {
|
|
28
|
+
id
|
|
29
|
+
title
|
|
30
|
+
status
|
|
31
|
+
type
|
|
32
|
+
priority
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
`, g = {
|
|
37
|
+
DRAFT: "bg-gray-100 text-gray-800",
|
|
38
|
+
PLANNING: "bg-yellow-100 text-yellow-800",
|
|
39
|
+
IN_PROGRESS: "bg-blue-100 text-blue-800",
|
|
40
|
+
READY: "bg-orange-100 text-orange-800",
|
|
41
|
+
RELEASED: "bg-green-100 text-green-800",
|
|
42
|
+
CANCELLED: "bg-red-100 text-red-800",
|
|
43
|
+
ROLLED_BACK: "bg-red-100 text-red-800"
|
|
44
|
+
};
|
|
45
|
+
function _() {
|
|
46
|
+
let { workspaceId: o } = e(), _ = a().id ?? "", { data: v, loading: y, error: b } = s(h, {
|
|
47
|
+
variables: { id: _ },
|
|
48
|
+
skip: !_
|
|
49
|
+
});
|
|
50
|
+
if (y) return /* @__PURE__ */ c("div", {
|
|
51
|
+
className: "flex items-center justify-center p-12",
|
|
52
|
+
children: /* @__PURE__ */ c(i, { className: "h-8 w-8 animate-spin text-muted-foreground" })
|
|
53
|
+
});
|
|
54
|
+
if (b) return /* @__PURE__ */ l("div", {
|
|
55
|
+
className: "p-6 text-destructive",
|
|
56
|
+
children: ["Failed to load release: ", b.message]
|
|
57
|
+
});
|
|
58
|
+
let x = v?.planmagnetRelease;
|
|
59
|
+
if (!x) return /* @__PURE__ */ c("div", {
|
|
60
|
+
className: "p-6 text-muted-foreground",
|
|
61
|
+
children: "Release not found."
|
|
62
|
+
});
|
|
63
|
+
let S = x.workItems ?? [], C = S.filter((e) => e.type === "STORY" || e.type === "FEATURE"), w = S.filter((e) => e.type === "BUG");
|
|
64
|
+
return /* @__PURE__ */ l("div", {
|
|
65
|
+
className: "space-y-6 p-6",
|
|
66
|
+
children: [/* @__PURE__ */ l("div", {
|
|
67
|
+
className: "flex items-center justify-between",
|
|
68
|
+
children: [/* @__PURE__ */ l("div", { children: [/* @__PURE__ */ l("div", {
|
|
69
|
+
className: "flex items-center gap-2",
|
|
70
|
+
children: [
|
|
71
|
+
/* @__PURE__ */ c(r, { className: "h-5 w-5 text-primary" }),
|
|
72
|
+
/* @__PURE__ */ c("h1", {
|
|
73
|
+
className: "text-2xl font-semibold",
|
|
74
|
+
children: x.version
|
|
75
|
+
}),
|
|
76
|
+
/* @__PURE__ */ c("span", {
|
|
77
|
+
className: `text-xs px-2 py-0.5 rounded-full capitalize ${g[x.status] ?? "bg-gray-100"}`,
|
|
78
|
+
children: x.status.toLowerCase().replace("_", " ")
|
|
79
|
+
})
|
|
80
|
+
]
|
|
81
|
+
}), /* @__PURE__ */ c("p", {
|
|
82
|
+
className: "text-sm text-muted-foreground mt-1",
|
|
83
|
+
children: x.name
|
|
84
|
+
})] }), /* @__PURE__ */ c(u, {
|
|
85
|
+
variant: "outline",
|
|
86
|
+
className: "capitalize",
|
|
87
|
+
children: x.status.toLowerCase().replace("_", " ")
|
|
88
|
+
})]
|
|
89
|
+
}), /* @__PURE__ */ l("div", {
|
|
90
|
+
className: "grid grid-cols-1 lg:grid-cols-3 gap-6",
|
|
91
|
+
children: [/* @__PURE__ */ l("div", {
|
|
92
|
+
className: "lg:col-span-2 space-y-6",
|
|
93
|
+
children: [
|
|
94
|
+
/* @__PURE__ */ l(d, { children: [/* @__PURE__ */ c(p, { children: /* @__PURE__ */ c(m, { children: "Overview" }) }), /* @__PURE__ */ l(f, {
|
|
95
|
+
className: "space-y-4",
|
|
96
|
+
children: [/* @__PURE__ */ c("p", {
|
|
97
|
+
className: "text-sm",
|
|
98
|
+
children: x.description ?? "No description provided."
|
|
99
|
+
}), /* @__PURE__ */ l("div", {
|
|
100
|
+
className: "grid grid-cols-3 gap-4",
|
|
101
|
+
children: [
|
|
102
|
+
/* @__PURE__ */ l("div", {
|
|
103
|
+
className: "text-center p-3 bg-muted rounded-md",
|
|
104
|
+
children: [/* @__PURE__ */ c("p", {
|
|
105
|
+
className: "text-lg font-semibold mt-1",
|
|
106
|
+
children: C.length
|
|
107
|
+
}), /* @__PURE__ */ c("p", {
|
|
108
|
+
className: "text-xs text-muted-foreground",
|
|
109
|
+
children: "Features"
|
|
110
|
+
})]
|
|
111
|
+
}),
|
|
112
|
+
/* @__PURE__ */ l("div", {
|
|
113
|
+
className: "text-center p-3 bg-muted rounded-md",
|
|
114
|
+
children: [/* @__PURE__ */ c("p", {
|
|
115
|
+
className: "text-lg font-semibold mt-1",
|
|
116
|
+
children: w.length
|
|
117
|
+
}), /* @__PURE__ */ c("p", {
|
|
118
|
+
className: "text-xs text-muted-foreground",
|
|
119
|
+
children: "Bug Fixes"
|
|
120
|
+
})]
|
|
121
|
+
}),
|
|
122
|
+
/* @__PURE__ */ l("div", {
|
|
123
|
+
className: "text-center p-3 bg-muted rounded-md",
|
|
124
|
+
children: [/* @__PURE__ */ c("p", {
|
|
125
|
+
className: "text-lg font-semibold mt-1",
|
|
126
|
+
children: S.length
|
|
127
|
+
}), /* @__PURE__ */ c("p", {
|
|
128
|
+
className: "text-xs text-muted-foreground",
|
|
129
|
+
children: "Total Items"
|
|
130
|
+
})]
|
|
131
|
+
})
|
|
132
|
+
]
|
|
133
|
+
})]
|
|
134
|
+
})] }),
|
|
135
|
+
x.releaseNotes && /* @__PURE__ */ l(d, { children: [/* @__PURE__ */ c(p, { children: /* @__PURE__ */ c(m, { children: "Release Notes" }) }), /* @__PURE__ */ c(f, { children: /* @__PURE__ */ c("p", {
|
|
136
|
+
className: "text-sm whitespace-pre-wrap",
|
|
137
|
+
children: x.releaseNotes
|
|
138
|
+
}) })] }),
|
|
139
|
+
S.length > 0 && /* @__PURE__ */ l(d, { children: [/* @__PURE__ */ c(p, { children: /* @__PURE__ */ l(m, { children: [
|
|
140
|
+
"Work Items (",
|
|
141
|
+
S.length,
|
|
142
|
+
")"
|
|
143
|
+
] }) }), /* @__PURE__ */ c(f, {
|
|
144
|
+
className: "space-y-2",
|
|
145
|
+
children: S.map((e) => /* @__PURE__ */ l("div", {
|
|
146
|
+
className: "flex items-center justify-between border rounded-md p-3",
|
|
147
|
+
children: [/* @__PURE__ */ l("div", { children: [/* @__PURE__ */ c("p", {
|
|
148
|
+
className: "text-sm font-medium",
|
|
149
|
+
children: e.title
|
|
150
|
+
}), /* @__PURE__ */ l("p", {
|
|
151
|
+
className: "text-xs text-muted-foreground capitalize",
|
|
152
|
+
children: [
|
|
153
|
+
e.type.toLowerCase(),
|
|
154
|
+
" · ",
|
|
155
|
+
e.priority.toLowerCase(),
|
|
156
|
+
" priority"
|
|
157
|
+
]
|
|
158
|
+
})] }), /* @__PURE__ */ c(u, {
|
|
159
|
+
variant: "outline",
|
|
160
|
+
className: "text-xs capitalize",
|
|
161
|
+
children: e.status.toLowerCase().replace("_", " ")
|
|
162
|
+
})]
|
|
163
|
+
}, e.id))
|
|
164
|
+
})] })
|
|
165
|
+
]
|
|
166
|
+
}), /* @__PURE__ */ l("div", {
|
|
167
|
+
className: "space-y-6",
|
|
168
|
+
children: [
|
|
169
|
+
/* @__PURE__ */ l(d, { children: [/* @__PURE__ */ c(p, { children: /* @__PURE__ */ c(m, { children: "Timeline" }) }), /* @__PURE__ */ l(f, {
|
|
170
|
+
className: "space-y-3 text-sm",
|
|
171
|
+
children: [/* @__PURE__ */ l("div", {
|
|
172
|
+
className: "flex items-center gap-2",
|
|
173
|
+
children: [
|
|
174
|
+
/* @__PURE__ */ c(t, { className: "h-4 w-4 text-muted-foreground" }),
|
|
175
|
+
/* @__PURE__ */ c("span", {
|
|
176
|
+
className: "text-muted-foreground",
|
|
177
|
+
children: "Planned:"
|
|
178
|
+
}),
|
|
179
|
+
/* @__PURE__ */ c("span", {
|
|
180
|
+
className: "font-medium",
|
|
181
|
+
children: x.plannedDate ? new Date(x.plannedDate).toLocaleDateString() : "Not set"
|
|
182
|
+
})
|
|
183
|
+
]
|
|
184
|
+
}), x.releasedAt && /* @__PURE__ */ l("div", {
|
|
185
|
+
className: "flex items-center gap-2",
|
|
186
|
+
children: [
|
|
187
|
+
/* @__PURE__ */ c(n, { className: "h-4 w-4 text-green-500" }),
|
|
188
|
+
/* @__PURE__ */ c("span", {
|
|
189
|
+
className: "text-muted-foreground",
|
|
190
|
+
children: "Released:"
|
|
191
|
+
}),
|
|
192
|
+
/* @__PURE__ */ c("span", {
|
|
193
|
+
className: "font-medium",
|
|
194
|
+
children: new Date(x.releasedAt).toLocaleDateString()
|
|
195
|
+
})
|
|
196
|
+
]
|
|
197
|
+
})]
|
|
198
|
+
})] }),
|
|
199
|
+
/* @__PURE__ */ l(d, { children: [/* @__PURE__ */ c(p, { children: /* @__PURE__ */ c(m, { children: "Details" }) }), /* @__PURE__ */ l(f, {
|
|
200
|
+
className: "space-y-2 text-sm",
|
|
201
|
+
children: [
|
|
202
|
+
/* @__PURE__ */ l("div", {
|
|
203
|
+
className: "flex justify-between",
|
|
204
|
+
children: [/* @__PURE__ */ c("span", {
|
|
205
|
+
className: "text-muted-foreground",
|
|
206
|
+
children: "Version"
|
|
207
|
+
}), /* @__PURE__ */ c("span", {
|
|
208
|
+
className: "font-medium",
|
|
209
|
+
children: x.version
|
|
210
|
+
})]
|
|
211
|
+
}),
|
|
212
|
+
/* @__PURE__ */ l("div", {
|
|
213
|
+
className: "flex justify-between",
|
|
214
|
+
children: [/* @__PURE__ */ c("span", {
|
|
215
|
+
className: "text-muted-foreground",
|
|
216
|
+
children: "Status"
|
|
217
|
+
}), /* @__PURE__ */ c(u, {
|
|
218
|
+
variant: "outline",
|
|
219
|
+
className: "text-xs capitalize",
|
|
220
|
+
children: x.status.toLowerCase().replace("_", " ")
|
|
221
|
+
})]
|
|
222
|
+
}),
|
|
223
|
+
/* @__PURE__ */ l("div", {
|
|
224
|
+
className: "flex justify-between",
|
|
225
|
+
children: [/* @__PURE__ */ c("span", {
|
|
226
|
+
className: "text-muted-foreground",
|
|
227
|
+
children: "Owner"
|
|
228
|
+
}), /* @__PURE__ */ c("span", { children: x.ownerId })]
|
|
229
|
+
}),
|
|
230
|
+
/* @__PURE__ */ l("div", {
|
|
231
|
+
className: "flex justify-between",
|
|
232
|
+
children: [/* @__PURE__ */ c("span", {
|
|
233
|
+
className: "text-muted-foreground",
|
|
234
|
+
children: "Created"
|
|
235
|
+
}), /* @__PURE__ */ c("span", { children: new Date(x.createdAt).toLocaleDateString() })]
|
|
236
|
+
}),
|
|
237
|
+
/* @__PURE__ */ l("div", {
|
|
238
|
+
className: "flex justify-between",
|
|
239
|
+
children: [/* @__PURE__ */ c("span", {
|
|
240
|
+
className: "text-muted-foreground",
|
|
241
|
+
children: "Updated"
|
|
242
|
+
}), /* @__PURE__ */ c("span", { children: new Date(x.updatedAt).toLocaleDateString() })]
|
|
243
|
+
})
|
|
244
|
+
]
|
|
245
|
+
})] }),
|
|
246
|
+
x.tags?.length > 0 && /* @__PURE__ */ l(d, { children: [/* @__PURE__ */ c(p, { children: /* @__PURE__ */ c(m, { children: "Tags" }) }), /* @__PURE__ */ c(f, {
|
|
247
|
+
className: "flex flex-wrap gap-1",
|
|
248
|
+
children: x.tags.map((e) => /* @__PURE__ */ c(u, {
|
|
249
|
+
variant: "outline",
|
|
250
|
+
className: "text-xs",
|
|
251
|
+
children: e
|
|
252
|
+
}, e))
|
|
253
|
+
})] })
|
|
254
|
+
]
|
|
255
|
+
})]
|
|
256
|
+
})]
|
|
257
|
+
});
|
|
258
|
+
}
|
|
259
|
+
//#endregion
|
|
260
|
+
export { _ as ProductsReleaseDetailPagePage };
|
|
261
|
+
|
|
262
|
+
//# sourceMappingURL=ProductsReleaseDetailPagePage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProductsReleaseDetailPagePage.js","names":[],"sources":["../../../src/planmagnet/pages/ProductsReleaseDetailPagePage.tsx"],"sourcesContent":["// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\nimport { gql } from '@apollo/client';\nimport { useQuery } from '@apollo/client/react';\nimport { Card, CardContent, CardHeader, CardTitle, Badge } from '@burdenoff/fe-libs/ui';\nimport { GitBranch, Calendar, Clock, Server, Loader2 } from 'lucide-react';\nimport { usePlanMagnet } from '../providers/PlanMagnetProvider';\nimport { useParams } from 'react-router-dom';\n\nconst GET_RELEASE = gql`\n query GetRelease($id: ID!) {\n planmagnetRelease(id: $id) {\n id\n workspaceId\n projectId\n name\n description\n version\n status\n plannedDate\n releasedAt\n releaseNotes\n ownerId\n tags\n metadata\n createdAt\n updatedAt\n workItems {\n id\n title\n status\n type\n priority\n }\n }\n }\n`;\n\ninterface WorkItemSummary {\n id: string;\n title: string;\n status: string;\n type: string;\n priority: string;\n}\n\nconst statusColor: Record<string, string> = {\n DRAFT: 'bg-gray-100 text-gray-800',\n PLANNING: 'bg-yellow-100 text-yellow-800',\n IN_PROGRESS: 'bg-blue-100 text-blue-800',\n READY: 'bg-orange-100 text-orange-800',\n RELEASED: 'bg-green-100 text-green-800',\n CANCELLED: 'bg-red-100 text-red-800',\n ROLLED_BACK: 'bg-red-100 text-red-800',\n};\n\nexport function ProductsReleaseDetailPagePage() {\n const { workspaceId } = usePlanMagnet();\n const params = useParams<{ id: string }>();\n const releaseId = params.id ?? '';\n\n const {\n data,\n loading,\n error,\n } = // eslint-disable-next-line @typescript-eslint/no-explicit-any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n useQuery<Record<string, any>>(GET_RELEASE, {\n variables: { id: releaseId },\n skip: !releaseId,\n });\n\n if (loading) {\n return (\n <div className=\"flex items-center justify-center p-12\">\n <Loader2 className=\"h-8 w-8 animate-spin text-muted-foreground\" />\n </div>\n );\n }\n\n if (error) {\n return <div className=\"p-6 text-destructive\">Failed to load release: {error.message}</div>;\n }\n\n const release = data?.planmagnetRelease;\n if (!release) return <div className=\"p-6 text-muted-foreground\">Release not found.</div>;\n\n const workItems: WorkItemSummary[] = release.workItems ?? [];\n const featureItems = workItems.filter((w) => w.type === 'STORY' || w.type === 'FEATURE');\n const bugItems = workItems.filter((w) => w.type === 'BUG');\n\n return (\n <div className=\"space-y-6 p-6\">\n <div className=\"flex items-center justify-between\">\n <div>\n <div className=\"flex items-center gap-2\">\n <GitBranch className=\"h-5 w-5 text-primary\" />\n <h1 className=\"text-2xl font-semibold\">{release.version}</h1>\n <span\n className={`text-xs px-2 py-0.5 rounded-full capitalize ${statusColor[release.status] ?? 'bg-gray-100'}`}\n >\n {release.status.toLowerCase().replace('_', ' ')}\n </span>\n </div>\n <p className=\"text-sm text-muted-foreground mt-1\">{release.name}</p>\n </div>\n <Badge variant=\"outline\" className=\"capitalize\">\n {release.status.toLowerCase().replace('_', ' ')}\n </Badge>\n </div>\n\n <div className=\"grid grid-cols-1 lg:grid-cols-3 gap-6\">\n <div className=\"lg:col-span-2 space-y-6\">\n <Card>\n <CardHeader>\n <CardTitle>Overview</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n <p className=\"text-sm\">{release.description ?? 'No description provided.'}</p>\n <div className=\"grid grid-cols-3 gap-4\">\n <div className=\"text-center p-3 bg-muted rounded-md\">\n <p className=\"text-lg font-semibold mt-1\">{featureItems.length}</p>\n <p className=\"text-xs text-muted-foreground\">Features</p>\n </div>\n <div className=\"text-center p-3 bg-muted rounded-md\">\n <p className=\"text-lg font-semibold mt-1\">{bugItems.length}</p>\n <p className=\"text-xs text-muted-foreground\">Bug Fixes</p>\n </div>\n <div className=\"text-center p-3 bg-muted rounded-md\">\n <p className=\"text-lg font-semibold mt-1\">{workItems.length}</p>\n <p className=\"text-xs text-muted-foreground\">Total Items</p>\n </div>\n </div>\n </CardContent>\n </Card>\n\n {release.releaseNotes && (\n <Card>\n <CardHeader>\n <CardTitle>Release Notes</CardTitle>\n </CardHeader>\n <CardContent>\n <p className=\"text-sm whitespace-pre-wrap\">{release.releaseNotes}</p>\n </CardContent>\n </Card>\n )}\n\n {workItems.length > 0 && (\n <Card>\n <CardHeader>\n <CardTitle>Work Items ({workItems.length})</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-2\">\n {workItems.map((item) => (\n <div\n key={item.id}\n className=\"flex items-center justify-between border rounded-md p-3\"\n >\n <div>\n <p className=\"text-sm font-medium\">{item.title}</p>\n <p className=\"text-xs text-muted-foreground capitalize\">\n {item.type.toLowerCase()} · {item.priority.toLowerCase()} priority\n </p>\n </div>\n <Badge variant=\"outline\" className=\"text-xs capitalize\">\n {item.status.toLowerCase().replace('_', ' ')}\n </Badge>\n </div>\n ))}\n </CardContent>\n </Card>\n )}\n </div>\n\n <div className=\"space-y-6\">\n <Card>\n <CardHeader>\n <CardTitle>Timeline</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-3 text-sm\">\n <div className=\"flex items-center gap-2\">\n <Calendar className=\"h-4 w-4 text-muted-foreground\" />\n <span className=\"text-muted-foreground\">Planned:</span>\n <span className=\"font-medium\">\n {release.plannedDate\n ? new Date(release.plannedDate).toLocaleDateString()\n : 'Not set'}\n </span>\n </div>\n {release.releasedAt && (\n <div className=\"flex items-center gap-2\">\n <Clock className=\"h-4 w-4 text-green-500\" />\n <span className=\"text-muted-foreground\">Released:</span>\n <span className=\"font-medium\">\n {new Date(release.releasedAt).toLocaleDateString()}\n </span>\n </div>\n )}\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle>Details</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-2 text-sm\">\n <div className=\"flex justify-between\">\n <span className=\"text-muted-foreground\">Version</span>\n <span className=\"font-medium\">{release.version}</span>\n </div>\n <div className=\"flex justify-between\">\n <span className=\"text-muted-foreground\">Status</span>\n <Badge variant=\"outline\" className=\"text-xs capitalize\">\n {release.status.toLowerCase().replace('_', ' ')}\n </Badge>\n </div>\n <div className=\"flex justify-between\">\n <span className=\"text-muted-foreground\">Owner</span>\n <span>{release.ownerId}</span>\n </div>\n <div className=\"flex justify-between\">\n <span className=\"text-muted-foreground\">Created</span>\n <span>{new Date(release.createdAt).toLocaleDateString()}</span>\n </div>\n <div className=\"flex justify-between\">\n <span className=\"text-muted-foreground\">Updated</span>\n <span>{new Date(release.updatedAt).toLocaleDateString()}</span>\n </div>\n </CardContent>\n </Card>\n\n {release.tags?.length > 0 && (\n <Card>\n <CardHeader>\n <CardTitle>Tags</CardTitle>\n </CardHeader>\n <CardContent className=\"flex flex-wrap gap-1\">\n {release.tags.map((tag: string) => (\n <Badge key={tag} variant=\"outline\" className=\"text-xs\">\n {tag}\n </Badge>\n ))}\n </CardContent>\n </Card>\n )}\n </div>\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProductsReleasesPagePage.d.ts","sourceRoot":"","sources":["../../../src/planmagnet/pages/ProductsReleasesPagePage.tsx"],"names":[],"mappings":"AAmEA,wBAAgB,wBAAwB,4CA0HvC"}
|