@burdenoff/microfe-planmagnet 2026.927.4 → 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.map +1 -1
- package/dist/planmagnet/controls/FeatureControls.js +142 -139
- package/dist/planmagnet/controls/FeatureControls.js.map +1 -1
- 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.map +1 -1
- package/dist/planmagnet/controls/MilestoneControls.js +76 -73
- package/dist/planmagnet/controls/MilestoneControls.js.map +1 -1
- 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.map +1 -1
- package/dist/planmagnet/controls/ReleaseControls.js +47 -44
- package/dist/planmagnet/controls/ReleaseControls.js.map +1 -1
- 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 +147 -144
- package/dist/planmagnet/pages/DocsDocDetailPagePage.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 +173 -173
- 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 +120 -117
- package/dist/planmagnet/pages/ProductsEditProductPagePage.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 +168 -103
- 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/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 +12 -2
- 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 +2 -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/ProjectsEditProjectPagePage.js +6 -6
- 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/ProjectsPlanningEditPagePage.js +4 -4
- 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/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/TasksTasksPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/TasksTasksPagePage.js +110 -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 +151 -138
- 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
|
@@ -4,13 +4,25 @@ import { useTr as r } from "../../shared/hooks/useTr.js";
|
|
|
4
4
|
import { cn as i } from "../utils/cn.js";
|
|
5
5
|
import { throwOnError as a } from "../utils/mutationResult.js";
|
|
6
6
|
import { useMemo as o, useState as s } from "react";
|
|
7
|
-
import { AlertCircle as c, Archive as l, FolderKanban as u, LayoutTemplate as d, Loader2 as f,
|
|
8
|
-
import { gql as
|
|
9
|
-
import { useMutation as
|
|
10
|
-
import { Fragment as
|
|
11
|
-
import { Badge as
|
|
7
|
+
import { AlertCircle as c, Archive as l, FolderKanban as u, LayoutTemplate as d, Loader2 as f, Users as p, Zap as m } from "lucide-react";
|
|
8
|
+
import { gql as h } from "@apollo/client";
|
|
9
|
+
import { useMutation as g, useQuery as _ } from "@apollo/client/react";
|
|
10
|
+
import { Fragment as v, jsx as y, jsxs as b } from "react/jsx-runtime";
|
|
11
|
+
import { Badge as x, Button as S, Card as C, CardContent as w, CardHeader as T, CardTitle as E, Checkbox as D, Skeleton as O } from "@burdenoff/fe-libs/ui";
|
|
12
12
|
//#region src/planmagnet/admin/PlanMagnetAdminRoot.tsx
|
|
13
|
-
var
|
|
13
|
+
var k = h`
|
|
14
|
+
query AdminPlanmagnetQuota($workspaceId: ID!) {
|
|
15
|
+
planmagnetWorkspaceQuotaOverview(workspaceId: $workspaceId) {
|
|
16
|
+
projectCount
|
|
17
|
+
projectLimit
|
|
18
|
+
boardCount
|
|
19
|
+
boardLimit
|
|
20
|
+
automationRuleCount
|
|
21
|
+
editorCount
|
|
22
|
+
editorLimit
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
`, A = h`
|
|
14
26
|
query AdminPlanmagnetProjects($workspaceId: ID!) {
|
|
15
27
|
planmagnetProjects(workspaceId: $workspaceId, pagination: { first: 100 }) {
|
|
16
28
|
items {
|
|
@@ -25,7 +37,7 @@ var O = m`
|
|
|
25
37
|
totalCount
|
|
26
38
|
}
|
|
27
39
|
}
|
|
28
|
-
`,
|
|
40
|
+
`, j = h`
|
|
29
41
|
query AdminPlanmagnetBoards($workspaceId: ID!) {
|
|
30
42
|
planmagnetBoards(workspaceId: $workspaceId, pagination: { first: 100 }) {
|
|
31
43
|
items {
|
|
@@ -37,7 +49,7 @@ var O = m`
|
|
|
37
49
|
totalCount
|
|
38
50
|
}
|
|
39
51
|
}
|
|
40
|
-
`,
|
|
52
|
+
`, M = h`
|
|
41
53
|
query AdminPlanmagnetAutomationRules($workspaceId: ID!) {
|
|
42
54
|
planmagnetAutomationRules(workspaceId: $workspaceId, pagination: { first: 100 }) {
|
|
43
55
|
items {
|
|
@@ -52,7 +64,7 @@ var O = m`
|
|
|
52
64
|
totalCount
|
|
53
65
|
}
|
|
54
66
|
}
|
|
55
|
-
`,
|
|
67
|
+
`, N = h`
|
|
56
68
|
mutation AdminArchiveProject($id: ID!) {
|
|
57
69
|
planmagnetUpdateProject(id: $id, input: { status: ARCHIVED }) {
|
|
58
70
|
id
|
|
@@ -60,7 +72,7 @@ var O = m`
|
|
|
60
72
|
}
|
|
61
73
|
}
|
|
62
74
|
`;
|
|
63
|
-
function
|
|
75
|
+
function P(e) {
|
|
64
76
|
switch (e) {
|
|
65
77
|
case "ACTIVE": return "success";
|
|
66
78
|
case "ARCHIVED": return "secondary";
|
|
@@ -71,7 +83,7 @@ function M(e) {
|
|
|
71
83
|
default: return "default";
|
|
72
84
|
}
|
|
73
85
|
}
|
|
74
|
-
function
|
|
86
|
+
function F(e) {
|
|
75
87
|
switch (e) {
|
|
76
88
|
case "ACTIVE": return "success";
|
|
77
89
|
case "PAUSED": return "warning";
|
|
@@ -80,7 +92,7 @@ function N(e) {
|
|
|
80
92
|
default: return "default";
|
|
81
93
|
}
|
|
82
94
|
}
|
|
83
|
-
function
|
|
95
|
+
function I(e) {
|
|
84
96
|
if (!e) return "—";
|
|
85
97
|
try {
|
|
86
98
|
return new Date(e).toLocaleDateString();
|
|
@@ -88,76 +100,75 @@ function P(e) {
|
|
|
88
100
|
return e;
|
|
89
101
|
}
|
|
90
102
|
}
|
|
91
|
-
function
|
|
103
|
+
function L(e) {
|
|
92
104
|
return e.toLowerCase().replace(/_/g, " ");
|
|
93
105
|
}
|
|
94
|
-
function
|
|
106
|
+
function R(e) {
|
|
95
107
|
return e.toLowerCase().replace(/_/g, " ");
|
|
96
108
|
}
|
|
97
|
-
function
|
|
98
|
-
let o = Math.min(100, Math.round(n / Math.max(1, r) * 100));
|
|
99
|
-
return /* @__PURE__ */
|
|
109
|
+
function z({ icon: e, label: t, used: n, limit: r, className: a }) {
|
|
110
|
+
let o = n !== void 0 && r != null ? Math.min(100, Math.round(n / Math.max(1, r) * 100)) : null;
|
|
111
|
+
return /* @__PURE__ */ y(C, {
|
|
100
112
|
className: a,
|
|
101
|
-
children: /* @__PURE__ */
|
|
113
|
+
children: /* @__PURE__ */ b(w, {
|
|
102
114
|
className: "pt-6",
|
|
103
115
|
children: [
|
|
104
|
-
/* @__PURE__ */
|
|
116
|
+
/* @__PURE__ */ b("div", {
|
|
105
117
|
className: "flex items-center gap-2 text-muted-foreground",
|
|
106
|
-
children: [/* @__PURE__ */
|
|
118
|
+
children: [/* @__PURE__ */ y(e, { className: "h-4 w-4" }), /* @__PURE__ */ y("span", {
|
|
107
119
|
className: "text-sm",
|
|
108
120
|
children: t
|
|
109
121
|
})]
|
|
110
122
|
}),
|
|
111
|
-
/* @__PURE__ */
|
|
123
|
+
/* @__PURE__ */ b("div", {
|
|
112
124
|
className: "mt-2 flex items-baseline gap-2",
|
|
113
|
-
children: [/* @__PURE__ */
|
|
125
|
+
children: [/* @__PURE__ */ y("span", {
|
|
114
126
|
className: "text-2xl font-semibold",
|
|
115
|
-
children: n
|
|
127
|
+
children: n ?? "—"
|
|
116
128
|
}), /* @__PURE__ */ y("span", {
|
|
117
129
|
className: "text-sm text-muted-foreground",
|
|
118
|
-
children:
|
|
130
|
+
children: r === null ? "No limit" : r === void 0 ? "" : `/ ${r}`
|
|
119
131
|
})]
|
|
120
132
|
}),
|
|
121
|
-
/* @__PURE__ */ v("div", {
|
|
133
|
+
o !== null && /* @__PURE__ */ b(v, { children: [/* @__PURE__ */ y("div", {
|
|
122
134
|
className: "mt-3 h-2 w-full overflow-hidden rounded-full bg-muted",
|
|
123
|
-
children: /* @__PURE__ */
|
|
135
|
+
children: /* @__PURE__ */ y("div", {
|
|
124
136
|
className: i("h-full rounded-full transition-all", o >= 90 ? "bg-destructive" : o >= 70 ? "bg-warning" : "bg-success"),
|
|
125
137
|
style: { width: `${o}%` }
|
|
126
138
|
})
|
|
127
|
-
}),
|
|
128
|
-
/* @__PURE__ */ y("p", {
|
|
139
|
+
}), /* @__PURE__ */ b("p", {
|
|
129
140
|
className: "mt-2 text-xs text-muted-foreground",
|
|
130
141
|
children: [o, "% used"]
|
|
131
|
-
})
|
|
142
|
+
})] })
|
|
132
143
|
]
|
|
133
144
|
})
|
|
134
145
|
});
|
|
135
146
|
}
|
|
136
|
-
function
|
|
137
|
-
return /* @__PURE__ */
|
|
147
|
+
function B() {
|
|
148
|
+
return /* @__PURE__ */ b("div", {
|
|
138
149
|
className: "space-y-3",
|
|
139
|
-
children: [/* @__PURE__ */
|
|
150
|
+
children: [/* @__PURE__ */ y(O, { className: "h-8 w-1/3" }), /* @__PURE__ */ y(O, { className: "h-32 w-full" })]
|
|
140
151
|
});
|
|
141
152
|
}
|
|
142
|
-
function
|
|
143
|
-
return t.length === 0 ? /* @__PURE__ */
|
|
153
|
+
function V({ columns: e, data: t, emptyState: n }) {
|
|
154
|
+
return t.length === 0 ? /* @__PURE__ */ y("div", {
|
|
144
155
|
className: "py-8 text-center text-sm text-muted-foreground",
|
|
145
156
|
children: n
|
|
146
|
-
}) : /* @__PURE__ */
|
|
157
|
+
}) : /* @__PURE__ */ y("div", {
|
|
147
158
|
className: "overflow-x-auto",
|
|
148
|
-
children: /* @__PURE__ */
|
|
159
|
+
children: /* @__PURE__ */ b("table", {
|
|
149
160
|
className: "w-full text-sm",
|
|
150
|
-
children: [/* @__PURE__ */
|
|
161
|
+
children: [/* @__PURE__ */ y("thead", {
|
|
151
162
|
className: "bg-muted/50",
|
|
152
|
-
children: /* @__PURE__ */
|
|
163
|
+
children: /* @__PURE__ */ y("tr", { children: e.map((e) => /* @__PURE__ */ y("th", {
|
|
153
164
|
className: i("px-4 py-3 text-left font-medium text-muted-foreground", e.className),
|
|
154
165
|
children: e.header
|
|
155
166
|
}, e.key)) })
|
|
156
|
-
}), /* @__PURE__ */
|
|
167
|
+
}), /* @__PURE__ */ y("tbody", {
|
|
157
168
|
className: "divide-y",
|
|
158
|
-
children: t.map((t) => /* @__PURE__ */
|
|
169
|
+
children: t.map((t) => /* @__PURE__ */ y("tr", {
|
|
159
170
|
className: "hover:bg-muted/30",
|
|
160
|
-
children: e.map((e) => /* @__PURE__ */
|
|
171
|
+
children: e.map((e) => /* @__PURE__ */ y("td", {
|
|
161
172
|
className: i("px-4 py-3", e.className),
|
|
162
173
|
children: e.cell(t)
|
|
163
174
|
}, `${t.id}-${e.key}`))
|
|
@@ -166,121 +177,132 @@ function z({ columns: e, data: t, emptyState: n }) {
|
|
|
166
177
|
})
|
|
167
178
|
});
|
|
168
179
|
}
|
|
169
|
-
function
|
|
170
|
-
let { workspaceId: e } = t(), i = r(), [
|
|
180
|
+
function H() {
|
|
181
|
+
let { workspaceId: e } = t(), i = r(), [h, O] = s(/* @__PURE__ */ new Set()), [H, U] = s(!1), [W, G] = s(null), K = _(A, {
|
|
171
182
|
variables: { workspaceId: e ?? "" },
|
|
172
183
|
skip: !e
|
|
173
|
-
}),
|
|
184
|
+
}), q = _(j, {
|
|
174
185
|
variables: { workspaceId: e ?? "" },
|
|
175
186
|
skip: !e
|
|
176
|
-
}),
|
|
187
|
+
}), J = _(M, {
|
|
177
188
|
variables: { workspaceId: e ?? "" },
|
|
178
189
|
skip: !e
|
|
179
|
-
}),
|
|
180
|
-
|
|
190
|
+
}), Y = _(k, {
|
|
191
|
+
variables: { workspaceId: e ?? "" },
|
|
192
|
+
skip: !e
|
|
193
|
+
}).data?.planmagnetWorkspaceQuotaOverview, [X] = g(N), Z = K.data?.planmagnetProjects.items ?? [];
|
|
194
|
+
q.data?.planmagnetBoards.items;
|
|
195
|
+
let Q = J.data?.planmagnetAutomationRules.items ?? [], $ = o(() => Z.filter((e) => e.status !== "ARCHIVED"), [Z]), ee = (e) => {
|
|
196
|
+
O((t) => {
|
|
181
197
|
let n = new Set(t);
|
|
182
198
|
return n.has(e) ? n.delete(e) : n.add(e), n;
|
|
183
199
|
});
|
|
184
|
-
},
|
|
185
|
-
|
|
186
|
-
},
|
|
187
|
-
if (
|
|
188
|
-
|
|
189
|
-
let e = Array.from(
|
|
200
|
+
}, te = () => {
|
|
201
|
+
h.size === $.length ? O(/* @__PURE__ */ new Set()) : O(new Set($.map((e) => e.id)));
|
|
202
|
+
}, ne = async () => {
|
|
203
|
+
if (h.size === 0) return;
|
|
204
|
+
U(!0), G(null);
|
|
205
|
+
let e = Array.from(h);
|
|
190
206
|
try {
|
|
191
|
-
let t = await Promise.allSettled(e.map((e) => a(
|
|
192
|
-
if (await
|
|
193
|
-
let r = t.find((e) => e.status === "rejected"), i = r.reason instanceof Error ? r.reason.message : String(r.reason), a = n.map((e) =>
|
|
194
|
-
|
|
207
|
+
let t = await Promise.allSettled(e.map((e) => a(X({ variables: { id: e } })))), n = e.filter((e, n) => t[n].status === "rejected");
|
|
208
|
+
if (await K.refetch(), O(new Set(n)), n.length > 0) {
|
|
209
|
+
let r = t.find((e) => e.status === "rejected"), i = r.reason instanceof Error ? r.reason.message : String(r.reason), a = n.map((e) => Z.find((t) => t.id === e)?.name ?? e).join(", ");
|
|
210
|
+
G(`${n.length} of ${e.length} could not be archived (${a}): ${i}`);
|
|
195
211
|
}
|
|
196
212
|
} catch (e) {
|
|
197
|
-
|
|
213
|
+
G(e instanceof Error ? e.message : i("planmagnet.admin.archive.unknownError", "Bulk archive failed"));
|
|
198
214
|
} finally {
|
|
199
|
-
|
|
215
|
+
U(!1);
|
|
200
216
|
}
|
|
201
217
|
};
|
|
202
|
-
if (!e) return /* @__PURE__ */
|
|
218
|
+
if (!e) return /* @__PURE__ */ y("div", {
|
|
203
219
|
className: "min-h-screen bg-background",
|
|
204
|
-
children: /* @__PURE__ */
|
|
220
|
+
children: /* @__PURE__ */ b("div", {
|
|
205
221
|
className: "flex min-h-[320px] flex-col items-center justify-center gap-3 text-muted-foreground",
|
|
206
|
-
children: [/* @__PURE__ */
|
|
222
|
+
children: [/* @__PURE__ */ y(c, { className: "h-8 w-8" }), /* @__PURE__ */ y("p", { children: i("planmagnet.admin.noWorkspace", "Select a workspace to manage PlanMagnet admin settings.") })]
|
|
207
223
|
})
|
|
208
224
|
});
|
|
209
|
-
let
|
|
210
|
-
return /* @__PURE__ */
|
|
225
|
+
let re = K.loading || q.loading || J.loading;
|
|
226
|
+
return /* @__PURE__ */ y("div", {
|
|
211
227
|
className: "min-h-screen bg-background",
|
|
212
|
-
children: /* @__PURE__ */
|
|
228
|
+
children: /* @__PURE__ */ b("div", {
|
|
213
229
|
className: "mx-auto max-w-7xl space-y-6 p-6",
|
|
214
230
|
children: [
|
|
215
|
-
/* @__PURE__ */
|
|
231
|
+
/* @__PURE__ */ y("div", {
|
|
216
232
|
className: "flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between",
|
|
217
|
-
children: /* @__PURE__ */
|
|
233
|
+
children: /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("h1", {
|
|
218
234
|
className: "text-2xl font-semibold tracking-tight",
|
|
219
235
|
children: i("planmagnet.admin.title", "PlanMagnet Admin")
|
|
220
|
-
}), /* @__PURE__ */
|
|
236
|
+
}), /* @__PURE__ */ y("p", {
|
|
221
237
|
className: "text-sm text-muted-foreground",
|
|
222
238
|
children: i("planmagnet.admin.purpose", "Workspace quota overview, bulk project archive, and automation rule audit.")
|
|
223
239
|
})] })
|
|
224
240
|
}),
|
|
225
|
-
/* @__PURE__ */
|
|
226
|
-
className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-
|
|
241
|
+
/* @__PURE__ */ b("div", {
|
|
242
|
+
className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4",
|
|
227
243
|
children: [
|
|
228
|
-
/* @__PURE__ */
|
|
244
|
+
/* @__PURE__ */ y(z, {
|
|
229
245
|
icon: u,
|
|
230
246
|
label: i("planmagnet.admin.quota.projects", "Projects"),
|
|
231
|
-
used:
|
|
232
|
-
limit:
|
|
247
|
+
used: Y?.projectCount,
|
|
248
|
+
limit: Y?.projectLimit
|
|
233
249
|
}),
|
|
234
|
-
/* @__PURE__ */
|
|
250
|
+
/* @__PURE__ */ y(z, {
|
|
235
251
|
icon: d,
|
|
236
252
|
label: i("planmagnet.admin.quota.boards", "Boards"),
|
|
237
|
-
used: Y
|
|
238
|
-
limit:
|
|
253
|
+
used: Y?.boardCount,
|
|
254
|
+
limit: Y?.boardLimit
|
|
239
255
|
}),
|
|
240
|
-
/* @__PURE__ */
|
|
241
|
-
icon:
|
|
256
|
+
/* @__PURE__ */ y(z, {
|
|
257
|
+
icon: m,
|
|
242
258
|
label: i("planmagnet.admin.quota.automationRules", "Automation Rules"),
|
|
243
|
-
used:
|
|
244
|
-
limit:
|
|
259
|
+
used: Y?.automationRuleCount,
|
|
260
|
+
limit: null
|
|
261
|
+
}),
|
|
262
|
+
/* @__PURE__ */ y(z, {
|
|
263
|
+
icon: p,
|
|
264
|
+
label: i("planmagnet.admin.quota.editors", "Editors"),
|
|
265
|
+
used: Y?.editorCount,
|
|
266
|
+
limit: Y?.editorLimit
|
|
245
267
|
})
|
|
246
268
|
]
|
|
247
269
|
}),
|
|
248
|
-
|
|
270
|
+
re ? /* @__PURE__ */ y(B, {}) : /* @__PURE__ */ b(v, { children: [/* @__PURE__ */ b(C, { children: [/* @__PURE__ */ b(T, {
|
|
249
271
|
className: "flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between",
|
|
250
|
-
children: [/* @__PURE__ */
|
|
272
|
+
children: [/* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y(E, { children: i("planmagnet.admin.archive.title", "Bulk Project Archive") }), /* @__PURE__ */ y("p", {
|
|
251
273
|
className: "text-sm text-muted-foreground",
|
|
252
274
|
children: i("planmagnet.admin.archive.subtitle", "Select projects and archive them in one action.")
|
|
253
|
-
})] }), /* @__PURE__ */
|
|
275
|
+
})] }), /* @__PURE__ */ b(S, {
|
|
254
276
|
size: "sm",
|
|
255
277
|
variant: "destructive",
|
|
256
|
-
disabled:
|
|
257
|
-
onClick:
|
|
278
|
+
disabled: h.size === 0 || H,
|
|
279
|
+
onClick: ne,
|
|
258
280
|
children: [
|
|
259
|
-
|
|
281
|
+
H ? /* @__PURE__ */ y(f, { className: "mr-2 h-4 w-4 animate-spin" }) : /* @__PURE__ */ y(l, { className: "mr-2 h-4 w-4" }),
|
|
260
282
|
i("planmagnet.admin.archive.action", "Archive"),
|
|
261
283
|
" (",
|
|
262
|
-
|
|
284
|
+
h.size,
|
|
263
285
|
")"
|
|
264
286
|
]
|
|
265
287
|
})]
|
|
266
|
-
}), /* @__PURE__ */
|
|
288
|
+
}), /* @__PURE__ */ b(w, { children: [W && /* @__PURE__ */ b("div", {
|
|
267
289
|
className: "mb-4 flex items-center gap-2 rounded-md bg-destructive/10 p-3 text-sm text-destructive",
|
|
268
|
-
children: [/* @__PURE__ */
|
|
269
|
-
}), /* @__PURE__ */
|
|
290
|
+
children: [/* @__PURE__ */ y(c, { className: "h-4 w-4" }), W]
|
|
291
|
+
}), /* @__PURE__ */ y("div", {
|
|
270
292
|
className: "rounded-md border",
|
|
271
|
-
children: /* @__PURE__ */
|
|
272
|
-
data:
|
|
293
|
+
children: /* @__PURE__ */ y(V, {
|
|
294
|
+
data: $,
|
|
273
295
|
columns: [
|
|
274
296
|
{
|
|
275
297
|
key: "select",
|
|
276
|
-
header: /* @__PURE__ */
|
|
277
|
-
checked:
|
|
278
|
-
onCheckedChange:
|
|
298
|
+
header: /* @__PURE__ */ y(D, {
|
|
299
|
+
checked: $.length > 0 && h.size === $.length,
|
|
300
|
+
onCheckedChange: te,
|
|
279
301
|
"aria-label": i("planmagnet.admin.archive.selectAll", "Select all projects")
|
|
280
302
|
}),
|
|
281
|
-
cell: (e) => /* @__PURE__ */
|
|
282
|
-
checked:
|
|
283
|
-
onCheckedChange: () =>
|
|
303
|
+
cell: (e) => /* @__PURE__ */ y(D, {
|
|
304
|
+
checked: h.has(e.id),
|
|
305
|
+
onCheckedChange: () => ee(e.id),
|
|
284
306
|
"aria-label": i("planmagnet.admin.archive.selectProject", "Select project")
|
|
285
307
|
}),
|
|
286
308
|
className: "w-12"
|
|
@@ -288,12 +310,12 @@ function B() {
|
|
|
288
310
|
{
|
|
289
311
|
key: "name",
|
|
290
312
|
header: i("planmagnet.admin.archive.column.name", "Project"),
|
|
291
|
-
cell: (e) => /* @__PURE__ */
|
|
313
|
+
cell: (e) => /* @__PURE__ */ b("div", {
|
|
292
314
|
className: "flex flex-col",
|
|
293
|
-
children: [/* @__PURE__ */
|
|
315
|
+
children: [/* @__PURE__ */ y("span", {
|
|
294
316
|
className: "font-medium",
|
|
295
317
|
children: e.name
|
|
296
|
-
}), /* @__PURE__ */
|
|
318
|
+
}), /* @__PURE__ */ y("span", {
|
|
297
319
|
className: "text-xs text-muted-foreground font-mono",
|
|
298
320
|
children: e.key
|
|
299
321
|
})]
|
|
@@ -302,50 +324,50 @@ function B() {
|
|
|
302
324
|
{
|
|
303
325
|
key: "status",
|
|
304
326
|
header: i("planmagnet.admin.archive.column.status", "Status"),
|
|
305
|
-
cell: (e) => /* @__PURE__ */
|
|
306
|
-
variant:
|
|
327
|
+
cell: (e) => /* @__PURE__ */ y(x, {
|
|
328
|
+
variant: P(e.status),
|
|
307
329
|
children: e.status.toLowerCase().replace("_", " ")
|
|
308
330
|
})
|
|
309
331
|
},
|
|
310
332
|
{
|
|
311
333
|
key: "methodology",
|
|
312
334
|
header: i("planmagnet.admin.archive.column.methodology", "Methodology"),
|
|
313
|
-
cell: (e) => /* @__PURE__ */
|
|
335
|
+
cell: (e) => /* @__PURE__ */ y("span", {
|
|
314
336
|
className: "text-sm capitalize",
|
|
315
|
-
children:
|
|
337
|
+
children: L(e.methodology)
|
|
316
338
|
})
|
|
317
339
|
},
|
|
318
340
|
{
|
|
319
341
|
key: "owner",
|
|
320
342
|
header: i("planmagnet.admin.archive.column.owner", "Owner"),
|
|
321
|
-
cell: (e) => /* @__PURE__ */
|
|
343
|
+
cell: (e) => /* @__PURE__ */ y("span", {
|
|
322
344
|
className: "text-sm text-muted-foreground font-mono",
|
|
323
|
-
children: /* @__PURE__ */
|
|
345
|
+
children: /* @__PURE__ */ y(n, { id: e.ownerId })
|
|
324
346
|
})
|
|
325
347
|
},
|
|
326
348
|
{
|
|
327
349
|
key: "created",
|
|
328
350
|
header: i("planmagnet.admin.archive.column.created", "Created"),
|
|
329
|
-
cell: (e) => /* @__PURE__ */
|
|
351
|
+
cell: (e) => /* @__PURE__ */ y("span", {
|
|
330
352
|
className: "text-sm",
|
|
331
|
-
children:
|
|
353
|
+
children: I(e.createdAt)
|
|
332
354
|
})
|
|
333
355
|
}
|
|
334
356
|
],
|
|
335
357
|
emptyState: i("planmagnet.admin.archive.empty", "No active projects to archive.")
|
|
336
358
|
})
|
|
337
|
-
})] })] }), /* @__PURE__ */
|
|
359
|
+
})] })] }), /* @__PURE__ */ b(C, { children: [/* @__PURE__ */ b(T, { children: [/* @__PURE__ */ y(E, { children: i("planmagnet.admin.automation.title", "Automation Rule Audit") }), /* @__PURE__ */ y("p", {
|
|
338
360
|
className: "text-sm text-muted-foreground",
|
|
339
361
|
children: i("planmagnet.admin.automation.subtitle", "Review rule health, execution counts, and last run timestamps.")
|
|
340
|
-
})] }), /* @__PURE__ */
|
|
362
|
+
})] }), /* @__PURE__ */ y(w, { children: /* @__PURE__ */ y("div", {
|
|
341
363
|
className: "rounded-md border",
|
|
342
|
-
children: /* @__PURE__ */
|
|
343
|
-
data:
|
|
364
|
+
children: /* @__PURE__ */ y(V, {
|
|
365
|
+
data: Q,
|
|
344
366
|
columns: [
|
|
345
367
|
{
|
|
346
368
|
key: "name",
|
|
347
369
|
header: i("planmagnet.admin.automation.column.name", "Rule"),
|
|
348
|
-
cell: (e) => /* @__PURE__ */
|
|
370
|
+
cell: (e) => /* @__PURE__ */ y("span", {
|
|
349
371
|
className: "font-medium",
|
|
350
372
|
children: e.name
|
|
351
373
|
})
|
|
@@ -353,23 +375,23 @@ function B() {
|
|
|
353
375
|
{
|
|
354
376
|
key: "trigger",
|
|
355
377
|
header: i("planmagnet.admin.automation.column.trigger", "Trigger"),
|
|
356
|
-
cell: (e) => /* @__PURE__ */
|
|
378
|
+
cell: (e) => /* @__PURE__ */ y("span", {
|
|
357
379
|
className: "text-sm",
|
|
358
|
-
children:
|
|
380
|
+
children: R(e.triggerType)
|
|
359
381
|
})
|
|
360
382
|
},
|
|
361
383
|
{
|
|
362
384
|
key: "status",
|
|
363
385
|
header: i("planmagnet.admin.automation.column.status", "Status"),
|
|
364
|
-
cell: (e) => /* @__PURE__ */
|
|
365
|
-
variant:
|
|
386
|
+
cell: (e) => /* @__PURE__ */ y(x, {
|
|
387
|
+
variant: F(e.status),
|
|
366
388
|
children: e.status.toLowerCase()
|
|
367
389
|
})
|
|
368
390
|
},
|
|
369
391
|
{
|
|
370
392
|
key: "executions",
|
|
371
393
|
header: i("planmagnet.admin.automation.column.executions", "Executions"),
|
|
372
|
-
cell: (e) => /* @__PURE__ */
|
|
394
|
+
cell: (e) => /* @__PURE__ */ y("span", {
|
|
373
395
|
className: "text-sm",
|
|
374
396
|
children: e.executionCount
|
|
375
397
|
})
|
|
@@ -377,17 +399,17 @@ function B() {
|
|
|
377
399
|
{
|
|
378
400
|
key: "lastRun",
|
|
379
401
|
header: i("planmagnet.admin.automation.column.lastRun", "Last Run"),
|
|
380
|
-
cell: (e) => /* @__PURE__ */
|
|
402
|
+
cell: (e) => /* @__PURE__ */ y("span", {
|
|
381
403
|
className: "text-sm",
|
|
382
|
-
children:
|
|
404
|
+
children: I(e.lastExecutedAt)
|
|
383
405
|
})
|
|
384
406
|
},
|
|
385
407
|
{
|
|
386
408
|
key: "created",
|
|
387
409
|
header: i("planmagnet.admin.automation.column.created", "Created"),
|
|
388
|
-
cell: (e) => /* @__PURE__ */
|
|
410
|
+
cell: (e) => /* @__PURE__ */ y("span", {
|
|
389
411
|
className: "text-sm",
|
|
390
|
-
children:
|
|
412
|
+
children: I(e.createdAt)
|
|
391
413
|
})
|
|
392
414
|
}
|
|
393
415
|
],
|
|
@@ -398,13 +420,13 @@ function B() {
|
|
|
398
420
|
})
|
|
399
421
|
});
|
|
400
422
|
}
|
|
401
|
-
function
|
|
402
|
-
return /* @__PURE__ */
|
|
423
|
+
function U(t) {
|
|
424
|
+
return /* @__PURE__ */ y(e, {
|
|
403
425
|
...t,
|
|
404
|
-
children: /* @__PURE__ */
|
|
426
|
+
children: /* @__PURE__ */ y(H, {})
|
|
405
427
|
});
|
|
406
428
|
}
|
|
407
429
|
//#endregion
|
|
408
|
-
export {
|
|
430
|
+
export { U as PlanMagnetAdminRoot };
|
|
409
431
|
|
|
410
432
|
//# sourceMappingURL=PlanMagnetAdminRoot.js.map
|