@burdenoff/microfe-planmagnet 2026.1002.2 → 2026.1008.1
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/wspace-operations.d.ts +574 -0
- package/dist/generated/wspace-operations.d.ts.map +1 -1
- package/dist/generated/wspace-types.d.ts +486 -16
- package/dist/generated/wspace-types.d.ts.map +1 -1
- package/dist/index.js +8 -8
- package/dist/planmagnet/PlanMagnetRoot.d.ts.map +1 -1
- package/dist/planmagnet/PlanMagnetRoot.js +174 -168
- package/dist/planmagnet/PlanMagnetRoot.js.map +1 -1
- package/dist/planmagnet/PlanMagnetRoutes.d.ts.map +1 -1
- package/dist/planmagnet/PlanMagnetRoutes.js +63 -59
- package/dist/planmagnet/PlanMagnetRoutes.js.map +1 -1
- package/dist/planmagnet/board/BulkActions.d.ts.map +1 -1
- package/dist/planmagnet/board/BulkActions.js +106 -55
- package/dist/planmagnet/board/BulkActions.js.map +1 -1
- package/dist/planmagnet/controls/Pickers.d.ts +3 -3
- package/dist/planmagnet/controls/Pickers.js.map +1 -1
- package/dist/planmagnet/dashboards/DashboardUI.d.ts +0 -4
- package/dist/planmagnet/dashboards/DashboardUI.d.ts.map +1 -1
- package/dist/planmagnet/dashboards/DashboardUI.js +6 -13
- package/dist/planmagnet/dashboards/DashboardUI.js.map +1 -1
- package/dist/planmagnet/dashboards/cards/SprintCapacityCard.d.ts.map +1 -1
- package/dist/planmagnet/dashboards/cards/SprintCapacityCard.js +70 -59
- package/dist/planmagnet/dashboards/cards/SprintCapacityCard.js.map +1 -1
- package/dist/planmagnet/forecast/ResourceForecastCard.js +1 -1
- package/dist/planmagnet/forecast/ResourceForecastCard.js.map +1 -1
- package/dist/planmagnet/index.d.ts +1 -1
- package/dist/planmagnet/index.d.ts.map +1 -1
- package/dist/planmagnet/pages/DashboardsProjectManagerPagePage.d.ts +3 -3
- package/dist/planmagnet/pages/DashboardsProjectManagerPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/DashboardsProjectManagerPagePage.js +26 -19
- package/dist/planmagnet/pages/DashboardsProjectManagerPagePage.js.map +1 -1
- package/dist/planmagnet/pages/DashboardsTeamUtilizationPagePage.d.ts +2 -2
- package/dist/planmagnet/pages/DashboardsTeamUtilizationPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/DashboardsTeamUtilizationPagePage.js +18 -12
- package/dist/planmagnet/pages/DashboardsTeamUtilizationPagePage.js.map +1 -1
- package/dist/planmagnet/pages/ProductsCustomerSatisfactionPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProductsCustomerSatisfactionPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProductsCustomerSatisfactionPagePage.js +251 -0
- package/dist/planmagnet/pages/ProductsCustomerSatisfactionPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProductsProductDetailPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/ProductsProductDetailPagePage.js +94 -92
- package/dist/planmagnet/pages/ProductsProductDetailPagePage.js.map +1 -1
- package/dist/planmagnet/pages/ProductsReleaseDetailPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/ProductsReleaseDetailPagePage.js +116 -114
- package/dist/planmagnet/pages/ProductsReleaseDetailPagePage.js.map +1 -1
- package/dist/planmagnet/pages/ProjectsPlanningDetailPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/ProjectsPlanningDetailPagePage.js +174 -159
- package/dist/planmagnet/pages/ProjectsPlanningDetailPagePage.js.map +1 -1
- package/dist/planmagnet/pages/TasksCreateTaskPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/TasksCreateTaskPagePage.js +159 -145
- 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 +161 -143
- package/dist/planmagnet/pages/TasksEditTaskPagePage.js.map +1 -1
- package/dist/planmagnet/pages/TasksTaskDetailPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/TasksTaskDetailPagePage.js +157 -155
- package/dist/planmagnet/pages/TasksTaskDetailPagePage.js.map +1 -1
- package/dist/planmagnet/pages/TeamInviteMemberPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/TeamInviteMemberPagePage.js +142 -82
- package/dist/planmagnet/pages/TeamInviteMemberPagePage.js.map +1 -1
- package/dist/planmagnet/pages/analytics/DeliveryKpisCard.d.ts.map +1 -1
- package/dist/planmagnet/pages/analytics/DeliveryKpisCard.js +97 -99
- package/dist/planmagnet/pages/analytics/DeliveryKpisCard.js.map +1 -1
- package/dist/planmagnet/product/FeatureLinkPanels.js +66 -66
- package/dist/planmagnet/product/ProductFeatureControls.js +38 -38
- package/dist/planmagnet/product/ProductFeatureLinkCard.js +8 -8
- package/dist/planmagnet/product/ProductLineControls.js +83 -83
- package/dist/planmagnet/product/ProductTeamsPanel.js +6 -6
- package/dist/planmagnet/product/routes.d.ts +6 -0
- package/dist/planmagnet/product/routes.d.ts.map +1 -1
- package/dist/planmagnet/product/routes.js +2 -2
- package/dist/planmagnet/product/routes.js.map +1 -1
- package/dist/planmagnet/satisfaction/DeliverySatisfactionSection.d.ts +20 -0
- package/dist/planmagnet/satisfaction/DeliverySatisfactionSection.d.ts.map +1 -0
- package/dist/planmagnet/satisfaction/DeliverySatisfactionSection.js +55 -0
- package/dist/planmagnet/satisfaction/DeliverySatisfactionSection.js.map +1 -0
- package/dist/planmagnet/satisfaction/SatisfactionFigures.d.ts +30 -0
- package/dist/planmagnet/satisfaction/SatisfactionFigures.d.ts.map +1 -0
- package/dist/planmagnet/satisfaction/SatisfactionFigures.js +282 -0
- package/dist/planmagnet/satisfaction/SatisfactionFigures.js.map +1 -0
- package/dist/planmagnet/satisfaction/SatisfactionImportDialog.d.ts +9 -0
- package/dist/planmagnet/satisfaction/SatisfactionImportDialog.d.ts.map +1 -0
- package/dist/planmagnet/satisfaction/SatisfactionImportDialog.js +390 -0
- package/dist/planmagnet/satisfaction/SatisfactionImportDialog.js.map +1 -0
- package/dist/planmagnet/satisfaction/SatisfactionLinkFields.d.ts +17 -0
- package/dist/planmagnet/satisfaction/SatisfactionLinkFields.d.ts.map +1 -0
- package/dist/planmagnet/satisfaction/SatisfactionLinkFields.js +77 -0
- package/dist/planmagnet/satisfaction/SatisfactionLinkFields.js.map +1 -0
- package/dist/planmagnet/satisfaction/SatisfactionReleaseSelect.d.ts +18 -0
- package/dist/planmagnet/satisfaction/SatisfactionReleaseSelect.d.ts.map +1 -0
- package/dist/planmagnet/satisfaction/SatisfactionReleaseSelect.js +87 -0
- package/dist/planmagnet/satisfaction/SatisfactionReleaseSelect.js.map +1 -0
- package/dist/planmagnet/satisfaction/SatisfactionResponseDialog.d.ts +13 -0
- package/dist/planmagnet/satisfaction/SatisfactionResponseDialog.d.ts.map +1 -0
- package/dist/planmagnet/satisfaction/SatisfactionResponseDialog.js +326 -0
- package/dist/planmagnet/satisfaction/SatisfactionResponseDialog.js.map +1 -0
- package/dist/planmagnet/satisfaction/SatisfactionResponsesTable.d.ts +23 -0
- package/dist/planmagnet/satisfaction/SatisfactionResponsesTable.d.ts.map +1 -0
- package/dist/planmagnet/satisfaction/SatisfactionResponsesTable.js +258 -0
- package/dist/planmagnet/satisfaction/SatisfactionResponsesTable.js.map +1 -0
- package/dist/planmagnet/satisfaction/SatisfactionSummaryCard.d.ts +6 -0
- package/dist/planmagnet/satisfaction/SatisfactionSummaryCard.d.ts.map +1 -0
- package/dist/planmagnet/satisfaction/SatisfactionSummaryCard.js +56 -0
- package/dist/planmagnet/satisfaction/SatisfactionSummaryCard.js.map +1 -0
- package/dist/planmagnet/satisfaction/SatisfactionWindowPicker.d.ts +16 -0
- package/dist/planmagnet/satisfaction/SatisfactionWindowPicker.d.ts.map +1 -0
- package/dist/planmagnet/satisfaction/SatisfactionWindowPicker.js +102 -0
- package/dist/planmagnet/satisfaction/SatisfactionWindowPicker.js.map +1 -0
- package/dist/planmagnet/satisfaction/satisfaction.d.ts +154 -0
- package/dist/planmagnet/satisfaction/satisfaction.d.ts.map +1 -0
- package/dist/planmagnet/satisfaction/satisfaction.js +210 -0
- package/dist/planmagnet/satisfaction/satisfaction.js.map +1 -0
- package/dist/planmagnet/satisfaction/satisfactionCsv.d.ts +108 -0
- package/dist/planmagnet/satisfaction/satisfactionCsv.d.ts.map +1 -0
- package/dist/planmagnet/satisfaction/satisfactionCsv.js +211 -0
- package/dist/planmagnet/satisfaction/satisfactionCsv.js.map +1 -0
- package/dist/planmagnet/satisfaction/satisfactionForm.d.ts +90 -0
- package/dist/planmagnet/satisfaction/satisfactionForm.d.ts.map +1 -0
- package/dist/planmagnet/satisfaction/satisfactionForm.js +90 -0
- package/dist/planmagnet/satisfaction/satisfactionForm.js.map +1 -0
- package/dist/planmagnet/satisfaction/satisfactionOperations.d.ts +116 -0
- package/dist/planmagnet/satisfaction/satisfactionOperations.d.ts.map +1 -0
- package/dist/planmagnet/satisfaction/satisfactionOperations.js +86 -0
- package/dist/planmagnet/satisfaction/satisfactionOperations.js.map +1 -0
- package/dist/planmagnet/satisfaction/useSatisfactionAccess.d.ts +20 -0
- package/dist/planmagnet/satisfaction/useSatisfactionAccess.d.ts.map +1 -0
- package/dist/planmagnet/satisfaction/useSatisfactionAccess.js +31 -0
- package/dist/planmagnet/satisfaction/useSatisfactionAccess.js.map +1 -0
- package/dist/planmagnet/skills/RequiredSkillsEditor.d.ts +35 -0
- package/dist/planmagnet/skills/RequiredSkillsEditor.d.ts.map +1 -0
- package/dist/planmagnet/skills/RequiredSkillsEditor.js +124 -0
- package/dist/planmagnet/skills/RequiredSkillsEditor.js.map +1 -0
- package/dist/planmagnet/skills/SkillChips.d.ts +30 -0
- package/dist/planmagnet/skills/SkillChips.d.ts.map +1 -0
- package/dist/planmagnet/skills/SkillChips.js +57 -0
- package/dist/planmagnet/skills/SkillChips.js.map +1 -0
- package/dist/planmagnet/skills/SkillCoverageCard.d.ts +24 -0
- package/dist/planmagnet/skills/SkillCoverageCard.d.ts.map +1 -0
- package/dist/planmagnet/skills/SkillCoverageCard.js +256 -0
- package/dist/planmagnet/skills/SkillCoverageCard.js.map +1 -0
- package/dist/planmagnet/skills/WorkItemRequiredSkills.d.ts +10 -0
- package/dist/planmagnet/skills/WorkItemRequiredSkills.d.ts.map +1 -0
- package/dist/planmagnet/skills/WorkItemRequiredSkills.js +65 -0
- package/dist/planmagnet/skills/WorkItemRequiredSkills.js.map +1 -0
- package/dist/planmagnet/skills/skillOperations.d.ts +52 -0
- package/dist/planmagnet/skills/skillOperations.d.ts.map +1 -0
- package/dist/planmagnet/skills/skillOperations.js +44 -0
- package/dist/planmagnet/skills/skillOperations.js.map +1 -0
- package/dist/planmagnet/skills/skillTags.d.ts +103 -0
- package/dist/planmagnet/skills/skillTags.d.ts.map +1 -0
- package/dist/planmagnet/skills/skillTags.js +115 -0
- package/dist/planmagnet/skills/skillTags.js.map +1 -0
- package/dist/planmagnet/skills/useRequiredSkillsDraft.d.ts +28 -0
- package/dist/planmagnet/skills/useRequiredSkillsDraft.d.ts.map +1 -0
- package/dist/planmagnet/skills/useRequiredSkillsDraft.js +30 -0
- package/dist/planmagnet/skills/useRequiredSkillsDraft.js.map +1 -0
- package/dist/planmagnet/team/PendingInvitations.d.ts +27 -0
- package/dist/planmagnet/team/PendingInvitations.d.ts.map +1 -0
- package/dist/planmagnet/team/PendingInvitations.js +220 -0
- package/dist/planmagnet/team/PendingInvitations.js.map +1 -0
- package/dist/planmagnet/team/invitationEmail.d.ts +35 -0
- package/dist/planmagnet/team/invitationEmail.d.ts.map +1 -0
- package/dist/planmagnet/team/invitationEmail.js +73 -0
- package/dist/planmagnet/team/invitationEmail.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
import { usePlanMagnet as e, usePlanMagnetNavigate as t } from "../providers/PlanMagnetProvider.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
2
|
+
import { useTr as n } from "../../shared/hooks/useTr.js";
|
|
3
|
+
import { throwOnError as r } from "../utils/mutationResult.js";
|
|
4
|
+
import { AssigneeSelect as i, WORK_ITEM_PRIORITIES as a } from "../controls/WorkItemControls.js";
|
|
5
|
+
import { parseEstimateHours as o, parseIntField as s } from "../utils/formValidation.js";
|
|
6
|
+
import { requiredSkillsRefusal as c } from "../skills/skillTags.js";
|
|
7
|
+
import { MilestoneSelect as l } from "../milestones/MilestoneControls.js";
|
|
8
|
+
import { RequiredSkillsField as u } from "../skills/RequiredSkillsEditor.js";
|
|
9
|
+
import { useState as d } from "react";
|
|
10
|
+
import { CheckSquare as f, Save as p, X as m } from "lucide-react";
|
|
11
|
+
import { gql as h } from "@apollo/client";
|
|
12
|
+
import { useMutation as g, useQuery as _ } from "@apollo/client/react";
|
|
13
|
+
import { jsx as v, jsxs as y } from "react/jsx-runtime";
|
|
14
|
+
import { Button as b, Card as x, CardContent as S, CardHeader as C, CardTitle as w, Input as T } from "@burdenoff/fe-libs/ui";
|
|
12
15
|
//#region src/planmagnet/pages/TasksCreateTaskPagePage.tsx
|
|
13
|
-
var
|
|
16
|
+
var E = h`
|
|
14
17
|
mutation CreateWorkItem($input: PlanmagnetCreateWorkItemInput!) {
|
|
15
18
|
planmagnetCreateWorkItem(input: $input) {
|
|
16
19
|
id
|
|
@@ -26,7 +29,7 @@ var C = f`
|
|
|
26
29
|
createdAt
|
|
27
30
|
}
|
|
28
31
|
}
|
|
29
|
-
`,
|
|
32
|
+
`, D = h`
|
|
30
33
|
query GetProjectsForTaskCreate($workspaceId: ID!) {
|
|
31
34
|
planmagnetProjects(workspaceId: $workspaceId, pagination: { first: 100 }) {
|
|
32
35
|
items {
|
|
@@ -36,7 +39,7 @@ var C = f`
|
|
|
36
39
|
}
|
|
37
40
|
}
|
|
38
41
|
}
|
|
39
|
-
`,
|
|
42
|
+
`, O = h`
|
|
40
43
|
query GetSprintsForTaskCreate($workspaceId: ID!, $projectId: String) {
|
|
41
44
|
planmagnetSprints(
|
|
42
45
|
workspaceId: $workspaceId
|
|
@@ -50,13 +53,13 @@ var C = f`
|
|
|
50
53
|
}
|
|
51
54
|
}
|
|
52
55
|
}
|
|
53
|
-
`,
|
|
56
|
+
`, k = new Set([
|
|
54
57
|
"PLANNING",
|
|
55
58
|
"ACTIVE",
|
|
56
59
|
"REVIEW"
|
|
57
60
|
]);
|
|
58
|
-
function
|
|
59
|
-
let { workspaceId:
|
|
61
|
+
function A() {
|
|
62
|
+
let { workspaceId: h } = e(), A = n(), [j, M] = d({
|
|
60
63
|
title: "",
|
|
61
64
|
description: "",
|
|
62
65
|
projectId: "",
|
|
@@ -69,122 +72,124 @@ function D() {
|
|
|
69
72
|
assigneeId: "",
|
|
70
73
|
dueDate: "",
|
|
71
74
|
estimateHours: ""
|
|
72
|
-
}), { data:
|
|
73
|
-
variables: { workspaceId:
|
|
74
|
-
skip: !
|
|
75
|
-
}),
|
|
75
|
+
}), { data: N, loading: P, error: F, refetch: I } = _(D, {
|
|
76
|
+
variables: { workspaceId: h ?? "default" },
|
|
77
|
+
skip: !h
|
|
78
|
+
}), L = N?.planmagnetProjects?.items ?? [], R = j.projectId || L[0]?.id || "", { data: z, loading: B } = _(O, {
|
|
76
79
|
variables: {
|
|
77
|
-
workspaceId:
|
|
78
|
-
projectId:
|
|
80
|
+
workspaceId: h ?? "default",
|
|
81
|
+
projectId: R
|
|
79
82
|
},
|
|
80
|
-
skip: !
|
|
81
|
-
}),
|
|
82
|
-
return /* @__PURE__ */
|
|
83
|
+
skip: !h || !R
|
|
84
|
+
}), V = (z?.planmagnetSprints?.items ?? []).filter((e) => k.has(e.status)), H = t(), [U, { loading: W }] = g(E, { refetchQueries: ["GetWorkItems"] }), [G, K] = d(null), [q, J] = d([]), [Y, X] = d(null), Z = s(j.storyPoints, { min: 0 }), Q = o(j.estimateHours);
|
|
85
|
+
return /* @__PURE__ */ y("div", {
|
|
83
86
|
className: "space-y-6 p-6 max-w-4xl",
|
|
84
87
|
children: [
|
|
85
|
-
/* @__PURE__ */
|
|
88
|
+
/* @__PURE__ */ y("div", {
|
|
86
89
|
className: "flex items-center justify-between",
|
|
87
|
-
children: [/* @__PURE__ */
|
|
90
|
+
children: [/* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("h1", {
|
|
88
91
|
className: "text-2xl font-semibold",
|
|
89
92
|
children: "Create Task"
|
|
90
|
-
}), /* @__PURE__ */
|
|
93
|
+
}), /* @__PURE__ */ v("p", {
|
|
91
94
|
className: "text-sm text-muted-foreground",
|
|
92
95
|
children: "Add a new task to the project backlog."
|
|
93
|
-
})] }), /* @__PURE__ */
|
|
96
|
+
})] }), /* @__PURE__ */ y("div", {
|
|
94
97
|
className: "flex gap-2",
|
|
95
|
-
children: [/* @__PURE__ */
|
|
98
|
+
children: [/* @__PURE__ */ y(b, {
|
|
96
99
|
variant: "outline",
|
|
97
100
|
size: "sm",
|
|
98
|
-
onClick: () =>
|
|
99
|
-
children: [/* @__PURE__ */
|
|
100
|
-
}), /* @__PURE__ */
|
|
101
|
+
onClick: () => H("/tasks/tasks-page"),
|
|
102
|
+
children: [/* @__PURE__ */ v(m, { className: "mr-1 h-4 w-4" }), "Cancel"]
|
|
103
|
+
}), /* @__PURE__ */ y(b, {
|
|
101
104
|
size: "sm",
|
|
102
105
|
onClick: async () => {
|
|
103
|
-
if (!(!
|
|
104
|
-
|
|
106
|
+
if (!(!j.title.trim() || !R || !h || Z.invalid || Q.invalid)) {
|
|
107
|
+
K(null), X(null);
|
|
105
108
|
try {
|
|
106
|
-
let e = (await
|
|
107
|
-
projectId:
|
|
108
|
-
title:
|
|
109
|
-
description:
|
|
110
|
-
type:
|
|
111
|
-
priority:
|
|
112
|
-
storyPoints:
|
|
113
|
-
labels:
|
|
114
|
-
sprintId:
|
|
115
|
-
milestoneId:
|
|
116
|
-
assigneeId:
|
|
117
|
-
dueDate:
|
|
118
|
-
estimateMinutes:
|
|
109
|
+
let e = (await r(U({ variables: { input: {
|
|
110
|
+
projectId: R,
|
|
111
|
+
title: j.title,
|
|
112
|
+
description: j.description || void 0,
|
|
113
|
+
type: j.type,
|
|
114
|
+
priority: j.priority,
|
|
115
|
+
storyPoints: Z.value,
|
|
116
|
+
labels: j.labels ? j.labels.split(",").map((e) => e.trim()).filter(Boolean) : void 0,
|
|
117
|
+
sprintId: j.sprintId || void 0,
|
|
118
|
+
milestoneId: j.milestoneId || void 0,
|
|
119
|
+
assigneeId: j.assigneeId || void 0,
|
|
120
|
+
dueDate: j.dueDate || void 0,
|
|
121
|
+
estimateMinutes: Q.minutes,
|
|
122
|
+
requiredSkills: q.length > 0 ? q : void 0
|
|
119
123
|
} } }))).data?.planmagnetCreateWorkItem?.id;
|
|
120
|
-
|
|
124
|
+
H(e ? `/tasks/task-detail-page?taskId=${encodeURIComponent(e)}` : "/tasks/tasks-page");
|
|
121
125
|
} catch (e) {
|
|
122
|
-
|
|
126
|
+
let t = c(e);
|
|
127
|
+
t ? (X(t), K(A("planmagnet.skills.editor.createRefused", "The task was not created: see Required skills below."))) : K(e instanceof Error ? e.message : "The task could not be created.");
|
|
123
128
|
}
|
|
124
129
|
}
|
|
125
130
|
},
|
|
126
|
-
disabled:
|
|
127
|
-
children: [/* @__PURE__ */
|
|
131
|
+
disabled: W || !j.title.trim() || !R || Z.invalid || Q.invalid,
|
|
132
|
+
children: [/* @__PURE__ */ v(p, { className: "mr-1 h-4 w-4" }), W ? "Creating..." : "Create Task"]
|
|
128
133
|
})]
|
|
129
134
|
})]
|
|
130
135
|
}),
|
|
131
|
-
|
|
136
|
+
G && /* @__PURE__ */ v("div", {
|
|
132
137
|
role: "alert",
|
|
133
138
|
className: "p-3 bg-destructive/10 text-destructive rounded-md text-sm",
|
|
134
|
-
children:
|
|
139
|
+
children: G
|
|
135
140
|
}),
|
|
136
|
-
/* @__PURE__ */
|
|
141
|
+
/* @__PURE__ */ y(x, { children: [/* @__PURE__ */ v(C, { children: /* @__PURE__ */ y(w, {
|
|
137
142
|
className: "flex items-center gap-2",
|
|
138
|
-
children: [/* @__PURE__ */
|
|
139
|
-
}) }), /* @__PURE__ */
|
|
143
|
+
children: [/* @__PURE__ */ v(f, { className: "h-4 w-4" }), "Task Details"]
|
|
144
|
+
}) }), /* @__PURE__ */ y(S, {
|
|
140
145
|
className: "space-y-4",
|
|
141
146
|
children: [
|
|
142
|
-
/* @__PURE__ */
|
|
147
|
+
/* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
|
|
143
148
|
className: "text-sm font-medium",
|
|
144
149
|
children: "Title"
|
|
145
|
-
}), /* @__PURE__ */
|
|
146
|
-
value:
|
|
147
|
-
onChange: (e) =>
|
|
148
|
-
...
|
|
150
|
+
}), /* @__PURE__ */ v(T, {
|
|
151
|
+
value: j.title,
|
|
152
|
+
onChange: (e) => M({
|
|
153
|
+
...j,
|
|
149
154
|
title: e.target.value
|
|
150
155
|
}),
|
|
151
156
|
className: "mt-1",
|
|
152
157
|
placeholder: "e.g. Implement search query parser"
|
|
153
158
|
})] }),
|
|
154
|
-
/* @__PURE__ */
|
|
159
|
+
/* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
|
|
155
160
|
className: "text-sm font-medium",
|
|
156
161
|
children: "Description"
|
|
157
|
-
}), /* @__PURE__ */
|
|
162
|
+
}), /* @__PURE__ */ v("textarea", {
|
|
158
163
|
className: "mt-1 w-full rounded-md border border-input bg-background px-3 py-2 text-sm min-h-[100px]",
|
|
159
|
-
value:
|
|
160
|
-
onChange: (e) =>
|
|
161
|
-
...
|
|
164
|
+
value: j.description,
|
|
165
|
+
onChange: (e) => M({
|
|
166
|
+
...j,
|
|
162
167
|
description: e.target.value
|
|
163
168
|
}),
|
|
164
169
|
placeholder: "Describe the task requirements..."
|
|
165
170
|
})] }),
|
|
166
|
-
/* @__PURE__ */
|
|
171
|
+
/* @__PURE__ */ y("div", {
|
|
167
172
|
className: "grid grid-cols-3 gap-4",
|
|
168
173
|
children: [
|
|
169
|
-
/* @__PURE__ */
|
|
170
|
-
/* @__PURE__ */
|
|
174
|
+
/* @__PURE__ */ y("div", { children: [
|
|
175
|
+
/* @__PURE__ */ v("label", {
|
|
171
176
|
className: "text-sm font-medium",
|
|
172
177
|
children: "Project"
|
|
173
178
|
}),
|
|
174
|
-
/* @__PURE__ */
|
|
179
|
+
/* @__PURE__ */ y("select", {
|
|
175
180
|
className: "mt-1 w-full rounded-md border border-input bg-background px-3 py-2 text-sm",
|
|
176
|
-
value:
|
|
177
|
-
onChange: (e) =>
|
|
178
|
-
...
|
|
181
|
+
value: R,
|
|
182
|
+
onChange: (e) => M({
|
|
183
|
+
...j,
|
|
179
184
|
projectId: e.target.value,
|
|
180
185
|
sprintId: "",
|
|
181
186
|
milestoneId: ""
|
|
182
187
|
}),
|
|
183
|
-
children: [
|
|
188
|
+
children: [L.length === 0 && /* @__PURE__ */ v("option", {
|
|
184
189
|
value: "",
|
|
185
190
|
disabled: !0,
|
|
186
|
-
children:
|
|
187
|
-
}),
|
|
191
|
+
children: P && !N ? "Loading projects…" : F ? "Projects could not be loaded" : "No projects yet"
|
|
192
|
+
}), L.map((e) => /* @__PURE__ */ y("option", {
|
|
188
193
|
value: e.id,
|
|
189
194
|
children: [
|
|
190
195
|
e.key,
|
|
@@ -193,48 +198,48 @@ function D() {
|
|
|
193
198
|
]
|
|
194
199
|
}, e.id))]
|
|
195
200
|
}),
|
|
196
|
-
|
|
201
|
+
F && /* @__PURE__ */ y("p", {
|
|
197
202
|
role: "alert",
|
|
198
203
|
className: "mt-1 flex items-center gap-2 text-xs text-destructive",
|
|
199
|
-
children: [
|
|
204
|
+
children: [F.message, /* @__PURE__ */ v(b, {
|
|
200
205
|
type: "button",
|
|
201
206
|
size: "sm",
|
|
202
207
|
variant: "ghost",
|
|
203
208
|
className: "h-6 px-2 text-xs",
|
|
204
|
-
onClick: () => void
|
|
209
|
+
onClick: () => void I(),
|
|
205
210
|
children: "Retry"
|
|
206
211
|
})]
|
|
207
212
|
}),
|
|
208
|
-
!
|
|
213
|
+
!P && !F && N && L.length === 0 && /* @__PURE__ */ v("button", {
|
|
209
214
|
type: "button",
|
|
210
215
|
className: "mt-1 text-xs text-muted-foreground underline",
|
|
211
|
-
onClick: () =>
|
|
216
|
+
onClick: () => H("/projects/create-project-page"),
|
|
212
217
|
children: "Create a project first"
|
|
213
218
|
})
|
|
214
219
|
] }),
|
|
215
|
-
/* @__PURE__ */
|
|
220
|
+
/* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
|
|
216
221
|
className: "text-sm font-medium",
|
|
217
222
|
children: "Priority"
|
|
218
|
-
}), /* @__PURE__ */
|
|
223
|
+
}), /* @__PURE__ */ v("select", {
|
|
219
224
|
className: "mt-1 w-full rounded-md border border-input bg-background px-3 py-2 text-sm",
|
|
220
|
-
value:
|
|
221
|
-
onChange: (e) =>
|
|
222
|
-
...
|
|
225
|
+
value: j.priority,
|
|
226
|
+
onChange: (e) => M({
|
|
227
|
+
...j,
|
|
223
228
|
priority: e.target.value
|
|
224
229
|
}),
|
|
225
|
-
children:
|
|
230
|
+
children: a.map((e) => /* @__PURE__ */ v("option", {
|
|
226
231
|
value: e,
|
|
227
232
|
children: e.toLowerCase()
|
|
228
233
|
}, e))
|
|
229
234
|
})] }),
|
|
230
|
-
/* @__PURE__ */
|
|
235
|
+
/* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
|
|
231
236
|
className: "text-sm font-medium",
|
|
232
237
|
children: "Type"
|
|
233
|
-
}), /* @__PURE__ */
|
|
238
|
+
}), /* @__PURE__ */ v("select", {
|
|
234
239
|
className: "mt-1 w-full rounded-md border border-input bg-background px-3 py-2 text-sm",
|
|
235
|
-
value:
|
|
236
|
-
onChange: (e) =>
|
|
237
|
-
...
|
|
240
|
+
value: j.type,
|
|
241
|
+
onChange: (e) => M({
|
|
242
|
+
...j,
|
|
238
243
|
type: e.target.value
|
|
239
244
|
}),
|
|
240
245
|
children: [
|
|
@@ -243,70 +248,70 @@ function D() {
|
|
|
243
248
|
"TASK",
|
|
244
249
|
"EPIC",
|
|
245
250
|
"SUB_TASK"
|
|
246
|
-
].map((e) => /* @__PURE__ */
|
|
251
|
+
].map((e) => /* @__PURE__ */ v("option", {
|
|
247
252
|
value: e,
|
|
248
253
|
children: e.toLowerCase().replace("_", " ")
|
|
249
254
|
}, e))
|
|
250
255
|
})] })
|
|
251
256
|
]
|
|
252
257
|
}),
|
|
253
|
-
/* @__PURE__ */
|
|
258
|
+
/* @__PURE__ */ y("div", {
|
|
254
259
|
className: "grid grid-cols-3 gap-4",
|
|
255
260
|
children: [
|
|
256
|
-
/* @__PURE__ */
|
|
257
|
-
/* @__PURE__ */
|
|
261
|
+
/* @__PURE__ */ y("div", { children: [
|
|
262
|
+
/* @__PURE__ */ v("label", {
|
|
258
263
|
htmlFor: "task-story-points",
|
|
259
264
|
className: "text-sm font-medium",
|
|
260
265
|
children: "Story Points"
|
|
261
266
|
}),
|
|
262
|
-
/* @__PURE__ */
|
|
267
|
+
/* @__PURE__ */ v(T, {
|
|
263
268
|
id: "task-story-points",
|
|
264
269
|
type: "number",
|
|
265
270
|
min: 0,
|
|
266
271
|
step: 1,
|
|
267
|
-
value:
|
|
268
|
-
onChange: (e) =>
|
|
269
|
-
...
|
|
272
|
+
value: j.storyPoints,
|
|
273
|
+
onChange: (e) => M({
|
|
274
|
+
...j,
|
|
270
275
|
storyPoints: e.target.value
|
|
271
276
|
}),
|
|
272
|
-
"aria-invalid":
|
|
277
|
+
"aria-invalid": Z.invalid,
|
|
273
278
|
className: "mt-1"
|
|
274
279
|
}),
|
|
275
|
-
|
|
280
|
+
Z.invalid && /* @__PURE__ */ v("p", {
|
|
276
281
|
role: "alert",
|
|
277
282
|
className: "mt-1 text-xs text-destructive",
|
|
278
283
|
children: "Story points must be a whole number, 0 or more."
|
|
279
284
|
})
|
|
280
285
|
] }),
|
|
281
|
-
/* @__PURE__ */
|
|
286
|
+
/* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
|
|
282
287
|
htmlFor: "task-milestone",
|
|
283
288
|
className: "text-sm font-medium",
|
|
284
289
|
children: "Milestone"
|
|
285
|
-
}), /* @__PURE__ */
|
|
290
|
+
}), /* @__PURE__ */ v(l, {
|
|
286
291
|
id: "task-milestone",
|
|
287
|
-
projectId:
|
|
288
|
-
value:
|
|
289
|
-
onChange: (e) =>
|
|
290
|
-
...
|
|
292
|
+
projectId: R,
|
|
293
|
+
value: j.milestoneId,
|
|
294
|
+
onChange: (e) => M({
|
|
295
|
+
...j,
|
|
291
296
|
milestoneId: e
|
|
292
297
|
})
|
|
293
298
|
})] }),
|
|
294
|
-
/* @__PURE__ */
|
|
299
|
+
/* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
|
|
295
300
|
htmlFor: "task-sprint",
|
|
296
301
|
className: "text-sm font-medium",
|
|
297
302
|
children: "Sprint"
|
|
298
|
-
}), /* @__PURE__ */
|
|
303
|
+
}), /* @__PURE__ */ y("select", {
|
|
299
304
|
id: "task-sprint",
|
|
300
305
|
className: "mt-1 w-full rounded-md border border-input bg-background px-3 py-2 text-sm",
|
|
301
|
-
value:
|
|
302
|
-
onChange: (e) =>
|
|
303
|
-
...
|
|
306
|
+
value: j.sprintId,
|
|
307
|
+
onChange: (e) => M({
|
|
308
|
+
...j,
|
|
304
309
|
sprintId: e.target.value
|
|
305
310
|
}),
|
|
306
|
-
children: [/* @__PURE__ */
|
|
311
|
+
children: [/* @__PURE__ */ v("option", {
|
|
307
312
|
value: "",
|
|
308
|
-
children:
|
|
309
|
-
}),
|
|
313
|
+
children: B && !z ? "Loading sprints…" : "No sprint"
|
|
314
|
+
}), V.map((e) => /* @__PURE__ */ y("option", {
|
|
310
315
|
value: e.id,
|
|
311
316
|
children: [
|
|
312
317
|
e.name,
|
|
@@ -316,86 +321,95 @@ function D() {
|
|
|
316
321
|
]
|
|
317
322
|
}, e.id))]
|
|
318
323
|
})] }),
|
|
319
|
-
/* @__PURE__ */
|
|
324
|
+
/* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
|
|
320
325
|
className: "text-sm font-medium",
|
|
321
326
|
children: "Due Date"
|
|
322
|
-
}), /* @__PURE__ */
|
|
327
|
+
}), /* @__PURE__ */ v(T, {
|
|
323
328
|
type: "date",
|
|
324
|
-
value:
|
|
325
|
-
onChange: (e) =>
|
|
326
|
-
...
|
|
329
|
+
value: j.dueDate,
|
|
330
|
+
onChange: (e) => M({
|
|
331
|
+
...j,
|
|
327
332
|
dueDate: e.target.value
|
|
328
333
|
}),
|
|
329
334
|
className: "mt-1"
|
|
330
335
|
})] })
|
|
331
336
|
]
|
|
332
337
|
}),
|
|
333
|
-
/* @__PURE__ */
|
|
338
|
+
/* @__PURE__ */ v("div", {
|
|
334
339
|
className: "grid grid-cols-3 gap-4",
|
|
335
|
-
children: /* @__PURE__ */
|
|
336
|
-
/* @__PURE__ */
|
|
340
|
+
children: /* @__PURE__ */ y("div", { children: [
|
|
341
|
+
/* @__PURE__ */ v("label", {
|
|
337
342
|
htmlFor: "task-estimate-hours",
|
|
338
343
|
className: "text-sm font-medium",
|
|
339
344
|
children: "Estimate (hours)"
|
|
340
345
|
}),
|
|
341
|
-
/* @__PURE__ */
|
|
346
|
+
/* @__PURE__ */ v(T, {
|
|
342
347
|
id: "task-estimate-hours",
|
|
343
348
|
type: "number",
|
|
344
349
|
min: 0,
|
|
345
350
|
step: .25,
|
|
346
|
-
value:
|
|
347
|
-
onChange: (e) =>
|
|
348
|
-
...
|
|
351
|
+
value: j.estimateHours,
|
|
352
|
+
onChange: (e) => M({
|
|
353
|
+
...j,
|
|
349
354
|
estimateHours: e.target.value
|
|
350
355
|
}),
|
|
351
|
-
"aria-invalid":
|
|
356
|
+
"aria-invalid": Q.invalid,
|
|
352
357
|
"aria-describedby": "task-estimate-hint",
|
|
353
358
|
className: "mt-1"
|
|
354
359
|
}),
|
|
355
|
-
|
|
360
|
+
Q.invalid ? /* @__PURE__ */ v("p", {
|
|
356
361
|
role: "alert",
|
|
357
362
|
className: "mt-1 text-xs text-destructive",
|
|
358
363
|
children: "The estimate must be a number of hours, 0 or more."
|
|
359
|
-
}) : /* @__PURE__ */
|
|
364
|
+
}) : /* @__PURE__ */ v("p", {
|
|
360
365
|
id: "task-estimate-hint",
|
|
361
366
|
className: "mt-1 text-xs text-muted-foreground",
|
|
362
367
|
children: "Used as the task's duration on the critical path."
|
|
363
368
|
})
|
|
364
369
|
] })
|
|
365
370
|
}),
|
|
366
|
-
/* @__PURE__ */
|
|
371
|
+
/* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
|
|
367
372
|
htmlFor: "task-assignee",
|
|
368
373
|
className: "text-sm font-medium",
|
|
369
374
|
children: "Assignee"
|
|
370
|
-
}), /* @__PURE__ */
|
|
375
|
+
}), /* @__PURE__ */ v("div", {
|
|
371
376
|
className: "mt-1",
|
|
372
|
-
children: /* @__PURE__ */
|
|
377
|
+
children: /* @__PURE__ */ v(i, {
|
|
373
378
|
id: "task-assignee",
|
|
374
|
-
value:
|
|
375
|
-
onChange: (e) =>
|
|
376
|
-
...
|
|
379
|
+
value: j.assigneeId,
|
|
380
|
+
onChange: (e) => M({
|
|
381
|
+
...j,
|
|
377
382
|
assigneeId: e
|
|
378
383
|
})
|
|
379
384
|
})
|
|
380
385
|
})] }),
|
|
381
|
-
/* @__PURE__ */
|
|
386
|
+
/* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
|
|
382
387
|
className: "text-sm font-medium",
|
|
383
388
|
children: "Labels (comma-separated)"
|
|
384
|
-
}), /* @__PURE__ */
|
|
385
|
-
value:
|
|
386
|
-
onChange: (e) =>
|
|
387
|
-
...
|
|
389
|
+
}), /* @__PURE__ */ v(T, {
|
|
390
|
+
value: j.labels,
|
|
391
|
+
onChange: (e) => M({
|
|
392
|
+
...j,
|
|
388
393
|
labels: e.target.value
|
|
389
394
|
}),
|
|
390
395
|
className: "mt-1",
|
|
391
396
|
placeholder: "backend, search, performance"
|
|
392
|
-
})] })
|
|
397
|
+
})] }),
|
|
398
|
+
/* @__PURE__ */ v(u, {
|
|
399
|
+
id: "task-required-skills",
|
|
400
|
+
value: q,
|
|
401
|
+
onChange: (e) => {
|
|
402
|
+
J(e), X(null);
|
|
403
|
+
},
|
|
404
|
+
disabled: W,
|
|
405
|
+
serverError: Y
|
|
406
|
+
})
|
|
393
407
|
]
|
|
394
408
|
})] })
|
|
395
409
|
]
|
|
396
410
|
});
|
|
397
411
|
}
|
|
398
412
|
//#endregion
|
|
399
|
-
export {
|
|
413
|
+
export { A as TasksCreateTaskPagePage };
|
|
400
414
|
|
|
401
415
|
//# sourceMappingURL=TasksCreateTaskPagePage.js.map
|