@burdenoff/microfe-planmagnet 2026.928.4 → 2026.928.6
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/planmagnet/PlanMagnetRoot.d.ts.map +1 -1
- package/dist/planmagnet/PlanMagnetRoot.js +130 -97
- package/dist/planmagnet/PlanMagnetRoot.js.map +1 -1
- package/dist/planmagnet/PlanMagnetRoutes.d.ts.map +1 -1
- package/dist/planmagnet/PlanMagnetRoutes.js +256 -156
- package/dist/planmagnet/PlanMagnetRoutes.js.map +1 -1
- package/dist/planmagnet/automation/AutomationExecutionsPanel.d.ts +5 -0
- package/dist/planmagnet/automation/AutomationExecutionsPanel.d.ts.map +1 -0
- package/dist/planmagnet/automation/AutomationExecutionsPanel.js +107 -0
- package/dist/planmagnet/automation/AutomationExecutionsPanel.js.map +1 -0
- package/dist/planmagnet/automation/AutomationRuleFields.d.ts +29 -0
- package/dist/planmagnet/automation/AutomationRuleFields.d.ts.map +1 -0
- package/dist/planmagnet/automation/AutomationRuleFields.js +308 -0
- package/dist/planmagnet/automation/AutomationRuleFields.js.map +1 -0
- package/dist/planmagnet/automation/automationRuleTypes.d.ts +60 -0
- package/dist/planmagnet/automation/automationRuleTypes.d.ts.map +1 -0
- package/dist/planmagnet/automation/automationRuleTypes.js +113 -0
- package/dist/planmagnet/automation/automationRuleTypes.js.map +1 -0
- package/dist/planmagnet/board/BulkActions.d.ts +11 -0
- package/dist/planmagnet/board/BulkActions.d.ts.map +1 -0
- package/dist/planmagnet/board/BulkActions.js +182 -0
- package/dist/planmagnet/board/BulkActions.js.map +1 -0
- package/dist/planmagnet/board/ProjectBoard.d.ts.map +1 -1
- package/dist/planmagnet/board/ProjectBoard.js +289 -254
- package/dist/planmagnet/board/ProjectBoard.js.map +1 -1
- package/dist/planmagnet/budgets/BudgetControls.d.ts +30 -0
- package/dist/planmagnet/budgets/BudgetControls.d.ts.map +1 -0
- package/dist/planmagnet/budgets/BudgetControls.js +470 -0
- package/dist/planmagnet/budgets/BudgetControls.js.map +1 -0
- package/dist/planmagnet/budgets/ExpenseControls.d.ts +27 -0
- package/dist/planmagnet/budgets/ExpenseControls.d.ts.map +1 -0
- package/dist/planmagnet/budgets/ExpenseControls.js +366 -0
- package/dist/planmagnet/budgets/ExpenseControls.js.map +1 -0
- package/dist/planmagnet/budgets/ProjectBudgetsSummary.d.ts +5 -0
- package/dist/planmagnet/budgets/ProjectBudgetsSummary.d.ts.map +1 -0
- package/dist/planmagnet/budgets/ProjectBudgetsSummary.js +112 -0
- package/dist/planmagnet/budgets/ProjectBudgetsSummary.js.map +1 -0
- package/dist/planmagnet/budgets/budgetMath.d.ts +26 -0
- package/dist/planmagnet/budgets/budgetMath.d.ts.map +1 -0
- package/dist/planmagnet/budgets/budgetMath.js +49 -0
- package/dist/planmagnet/budgets/budgetMath.js.map +1 -0
- package/dist/planmagnet/controls/AutomationRuleControls.d.ts +23 -0
- package/dist/planmagnet/controls/AutomationRuleControls.d.ts.map +1 -0
- package/dist/planmagnet/controls/AutomationRuleControls.js +172 -0
- package/dist/planmagnet/controls/AutomationRuleControls.js.map +1 -0
- package/dist/planmagnet/controls/CompetitorControls.js +15 -15
- package/dist/planmagnet/controls/CustomFieldControls.d.ts +42 -0
- package/dist/planmagnet/controls/CustomFieldControls.d.ts.map +1 -0
- package/dist/planmagnet/controls/CustomFieldControls.js +84 -0
- package/dist/planmagnet/controls/CustomFieldControls.js.map +1 -0
- package/dist/planmagnet/controls/CustomFieldValuesPanel.d.ts +8 -0
- package/dist/planmagnet/controls/CustomFieldValuesPanel.d.ts.map +1 -0
- package/dist/planmagnet/controls/CustomFieldValuesPanel.js +315 -0
- package/dist/planmagnet/controls/CustomFieldValuesPanel.js.map +1 -0
- package/dist/planmagnet/controls/FeatureControls.js +54 -54
- package/dist/planmagnet/controls/ObjectiveControls.js +15 -15
- package/dist/planmagnet/controls/Pickers.d.ts +7 -0
- package/dist/planmagnet/controls/Pickers.d.ts.map +1 -1
- package/dist/planmagnet/controls/Pickers.js +58 -20
- package/dist/planmagnet/controls/Pickers.js.map +1 -1
- package/dist/planmagnet/controls/PortfolioControls.js +7 -7
- package/dist/planmagnet/controls/ProgramControls.js +19 -19
- package/dist/planmagnet/controls/ProjectControls.d.ts.map +1 -1
- package/dist/planmagnet/controls/ProjectControls.js +54 -47
- package/dist/planmagnet/controls/ProjectControls.js.map +1 -1
- package/dist/planmagnet/controls/ReleaseControls.js +7 -7
- package/dist/planmagnet/controls/RiskControls.d.ts +27 -0
- package/dist/planmagnet/controls/RiskControls.d.ts.map +1 -0
- package/dist/planmagnet/controls/RiskControls.js +346 -0
- package/dist/planmagnet/controls/RiskControls.js.map +1 -0
- package/dist/planmagnet/controls/TemplateControls.d.ts +15 -0
- package/dist/planmagnet/controls/TemplateControls.d.ts.map +1 -0
- package/dist/planmagnet/controls/TemplateControls.js +55 -0
- package/dist/planmagnet/controls/TemplateControls.js.map +1 -0
- package/dist/planmagnet/controls/WorkItemControls.d.ts +6 -2
- package/dist/planmagnet/controls/WorkItemControls.d.ts.map +1 -1
- package/dist/planmagnet/controls/WorkItemControls.js +9 -9
- package/dist/planmagnet/controls/WorkItemControls.js.map +1 -1
- package/dist/planmagnet/create/CreateDialogs.d.ts +20 -0
- package/dist/planmagnet/create/CreateDialogs.d.ts.map +1 -1
- package/dist/planmagnet/create/CreateDialogs.js +455 -116
- package/dist/planmagnet/create/CreateDialogs.js.map +1 -1
- package/dist/planmagnet/dependency/DependencyPanel.d.ts +6 -0
- package/dist/planmagnet/dependency/DependencyPanel.d.ts.map +1 -0
- package/dist/planmagnet/dependency/DependencyPanel.js +310 -0
- package/dist/planmagnet/dependency/DependencyPanel.js.map +1 -0
- package/dist/planmagnet/pages/AutomationAutomationRuleDetailPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/AutomationAutomationRuleDetailPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/AutomationAutomationRuleDetailPagePage.js +171 -0
- package/dist/planmagnet/pages/AutomationAutomationRuleDetailPagePage.js.map +1 -0
- package/dist/planmagnet/pages/AutomationAutomationRulesPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/AutomationAutomationRulesPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/AutomationAutomationRulesPagePage.js +232 -0
- package/dist/planmagnet/pages/AutomationAutomationRulesPagePage.js.map +1 -0
- package/dist/planmagnet/pages/AutomationCreateAutomationRulePagePage.d.ts +2 -0
- package/dist/planmagnet/pages/AutomationCreateAutomationRulePagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/AutomationCreateAutomationRulePagePage.js +93 -0
- package/dist/planmagnet/pages/AutomationCreateAutomationRulePagePage.js.map +1 -0
- package/dist/planmagnet/pages/DashboardDashboardPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/DashboardDashboardPagePage.js +11 -3
- package/dist/planmagnet/pages/DashboardDashboardPagePage.js.map +1 -1
- package/dist/planmagnet/pages/PortfoliosEditPortfolioPagePage.js +5 -5
- package/dist/planmagnet/pages/PortfoliosPortfolioDetailPagePage.js +9 -9
- package/dist/planmagnet/pages/PortfoliosPortfoliosPagePage.js +6 -6
- package/dist/planmagnet/pages/ProgramsCreateProgramPagePage.js +4 -4
- package/dist/planmagnet/pages/ProgramsEditProgramPagePage.js +6 -6
- package/dist/planmagnet/pages/ProgramsProgramsPagePage.js +5 -5
- package/dist/planmagnet/pages/ProjectsBudgetDetailPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProjectsBudgetDetailPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProjectsBudgetDetailPagePage.js +315 -0
- package/dist/planmagnet/pages/ProjectsBudgetDetailPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProjectsBudgetsPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProjectsBudgetsPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProjectsBudgetsPagePage.js +186 -0
- package/dist/planmagnet/pages/ProjectsBudgetsPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProjectsCriticalPathPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProjectsCriticalPathPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProjectsCriticalPathPagePage.js +164 -0
- package/dist/planmagnet/pages/ProjectsCriticalPathPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProjectsCustomFieldsPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProjectsCustomFieldsPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProjectsCustomFieldsPagePage.js +348 -0
- package/dist/planmagnet/pages/ProjectsCustomFieldsPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProjectsEditProjectPagePage.js +10 -10
- package/dist/planmagnet/pages/ProjectsMilestoneDetailPagePage.js +4 -4
- package/dist/planmagnet/pages/ProjectsPlanningDetailPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/ProjectsPlanningDetailPagePage.js +20 -10
- package/dist/planmagnet/pages/ProjectsPlanningDetailPagePage.js.map +1 -1
- package/dist/planmagnet/pages/ProjectsPlanningEditPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/ProjectsPlanningEditPagePage.js +13 -8
- package/dist/planmagnet/pages/ProjectsPlanningEditPagePage.js.map +1 -1
- package/dist/planmagnet/pages/ProjectsPlanningPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/ProjectsPlanningPagePage.js +76 -56
- 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 +372 -203
- 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 +81 -72
- package/dist/planmagnet/pages/ProjectsProjectsPagePage.js.map +1 -1
- package/dist/planmagnet/pages/RisksRiskDetailPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/RisksRiskDetailPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/RisksRiskDetailPagePage.js +278 -0
- package/dist/planmagnet/pages/RisksRiskDetailPagePage.js.map +1 -0
- package/dist/planmagnet/pages/RisksRiskRegisterPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/RisksRiskRegisterPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/RisksRiskRegisterPagePage.js +191 -0
- package/dist/planmagnet/pages/RisksRiskRegisterPagePage.js.map +1 -0
- package/dist/planmagnet/pages/SprintsStartSprintPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/SprintsStartSprintPagePage.js +168 -122
- package/dist/planmagnet/pages/SprintsStartSprintPagePage.js.map +1 -1
- package/dist/planmagnet/pages/TasksCreateTaskPagePage.js +5 -5
- package/dist/planmagnet/pages/TasksEditTaskPagePage.js +4 -4
- package/dist/planmagnet/pages/TasksTaskDetailPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/TasksTaskDetailPagePage.js +161 -137
- package/dist/planmagnet/pages/TasksTaskDetailPagePage.js.map +1 -1
- package/dist/planmagnet/pages/TasksTasksPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/TasksTasksPagePage.js +124 -113
- package/dist/planmagnet/pages/TasksTasksPagePage.js.map +1 -1
- package/dist/planmagnet/pages/TasksTimeEntriesPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/TasksTimeEntriesPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/TasksTimeEntriesPagePage.js +263 -0
- package/dist/planmagnet/pages/TasksTimeEntriesPagePage.js.map +1 -0
- package/dist/planmagnet/pages/TasksTimesheetDetailPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/TasksTimesheetDetailPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/TasksTimesheetDetailPagePage.js +254 -0
- package/dist/planmagnet/pages/TasksTimesheetDetailPagePage.js.map +1 -0
- package/dist/planmagnet/pages/TasksTimesheetsPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/TasksTimesheetsPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/TasksTimesheetsPagePage.js +165 -0
- package/dist/planmagnet/pages/TasksTimesheetsPagePage.js.map +1 -0
- package/dist/planmagnet/pages/TeamCreateTeamPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/TeamCreateTeamPagePage.js +288 -91
- package/dist/planmagnet/pages/TeamCreateTeamPagePage.js.map +1 -1
- package/dist/planmagnet/pages/TeamTeamDetailPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/TeamTeamDetailPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/TeamTeamDetailPagePage.js +217 -0
- package/dist/planmagnet/pages/TeamTeamDetailPagePage.js.map +1 -0
- package/dist/planmagnet/pages/TeamTeamEditPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/TeamTeamEditPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/TeamTeamEditPagePage.js +211 -0
- package/dist/planmagnet/pages/TeamTeamEditPagePage.js.map +1 -0
- package/dist/planmagnet/pages/TeamTeamsListPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/TeamTeamsListPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/TeamTeamsListPagePage.js +118 -0
- package/dist/planmagnet/pages/TeamTeamsListPagePage.js.map +1 -0
- package/dist/planmagnet/pages/TemplatesEditTemplatePagePage.d.ts +2 -0
- package/dist/planmagnet/pages/TemplatesEditTemplatePagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/TemplatesEditTemplatePagePage.js +316 -0
- package/dist/planmagnet/pages/TemplatesEditTemplatePagePage.js.map +1 -0
- package/dist/planmagnet/pages/TemplatesTemplatesPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/TemplatesTemplatesPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/TemplatesTemplatesPagePage.js +208 -0
- package/dist/planmagnet/pages/TemplatesTemplatesPagePage.js.map +1 -0
- package/dist/planmagnet/pages/analytics/DeliveryHealthCards.d.ts +0 -5
- package/dist/planmagnet/pages/analytics/DeliveryHealthCards.d.ts.map +1 -1
- package/dist/planmagnet/pages/analytics/DeliveryHealthCards.js +47 -89
- package/dist/planmagnet/pages/analytics/DeliveryHealthCards.js.map +1 -1
- package/dist/planmagnet/roadmaps/RoadmapControls.js +24 -24
- package/dist/planmagnet/sprints/SprintControls.d.ts +15 -3
- package/dist/planmagnet/sprints/SprintControls.d.ts.map +1 -1
- package/dist/planmagnet/sprints/SprintControls.js +293 -190
- package/dist/planmagnet/sprints/SprintControls.js.map +1 -1
- package/dist/planmagnet/team/TeamControls.d.ts +31 -0
- package/dist/planmagnet/team/TeamControls.d.ts.map +1 -0
- package/dist/planmagnet/team/TeamControls.js +407 -0
- package/dist/planmagnet/team/TeamControls.js.map +1 -0
- package/dist/planmagnet/time/TaskTimePanel.d.ts +7 -0
- package/dist/planmagnet/time/TaskTimePanel.d.ts.map +1 -0
- package/dist/planmagnet/time/TaskTimePanel.js +104 -0
- package/dist/planmagnet/time/TaskTimePanel.js.map +1 -0
- package/dist/planmagnet/time/TimeEntryControls.d.ts +37 -0
- package/dist/planmagnet/time/TimeEntryControls.d.ts.map +1 -0
- package/dist/planmagnet/time/TimeEntryControls.js +338 -0
- package/dist/planmagnet/time/TimeEntryControls.js.map +1 -0
- package/dist/planmagnet/time/TimesheetControls.d.ts +18 -0
- package/dist/planmagnet/time/TimesheetControls.d.ts.map +1 -0
- package/dist/planmagnet/time/TimesheetControls.js +244 -0
- package/dist/planmagnet/time/TimesheetControls.js.map +1 -0
- package/dist/planmagnet/time/timeShared.d.ts +29 -0
- package/dist/planmagnet/time/timeShared.d.ts.map +1 -0
- package/dist/planmagnet/time/timeShared.js +34 -0
- package/dist/planmagnet/time/timeShared.js.map +1 -0
- package/dist/planmagnet/utils/rowNavigation.js +5 -2
- package/dist/planmagnet/utils/rowNavigation.js.map +1 -1
- package/package.json +1 -1
|
@@ -2,14 +2,15 @@ import { usePlanMagnet as e, usePlanMagnetNavigate as t } from "../providers/Pla
|
|
|
2
2
|
import { PersonName as n } from "../people/People.js";
|
|
3
3
|
import { throwOnError as r } from "../utils/mutationResult.js";
|
|
4
4
|
import { allowedTargets as i, useProjectWorkflow as a, workflowLabel as o } from "../hooks/useProjectWorkflow.js";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
5
|
+
import { BulkActionsBar as s } from "./BulkActions.js";
|
|
6
|
+
import { createContext as c, useContext as l, useState as u } from "react";
|
|
7
|
+
import { ChevronLeft as d, ChevronRight as f, LayoutGrid as p, Pencil as m, Plus as h } from "lucide-react";
|
|
8
|
+
import { gql as g } from "@apollo/client";
|
|
9
|
+
import { useApolloClient as _, useMutation as v, useQuery as y } from "@apollo/client/react";
|
|
10
|
+
import { jsx as b, jsxs as x } from "react/jsx-runtime";
|
|
11
|
+
import { AlertDialog as ee, AlertDialogAction as S, AlertDialogCancel as te, AlertDialogContent as C, AlertDialogDescription as w, AlertDialogFooter as T, AlertDialogHeader as E, AlertDialogTitle as D, AlertDialogTrigger as ne, Button as O, Card as k, CardContent as re, Input as A, ResponsiveDialog as j, ResponsiveDialogContent as ie, ResponsiveDialogDescription as M, ResponsiveDialogFooter as N, ResponsiveDialogHeader as P, ResponsiveDialogTitle as ae, ResponsiveDialogTrigger as oe } from "@burdenoff/fe-libs/ui";
|
|
11
12
|
//#region src/planmagnet/board/ProjectBoard.tsx
|
|
12
|
-
var
|
|
13
|
+
var F = [
|
|
13
14
|
"BACKLOG",
|
|
14
15
|
"TODO",
|
|
15
16
|
"IN_PROGRESS",
|
|
@@ -17,10 +18,10 @@ var I = [
|
|
|
17
18
|
"TESTING",
|
|
18
19
|
"DONE",
|
|
19
20
|
"CANCELLED"
|
|
20
|
-
],
|
|
21
|
-
let e =
|
|
21
|
+
], I = c(null), L = () => {
|
|
22
|
+
let e = l(I);
|
|
22
23
|
return (t) => o(e, t);
|
|
23
|
-
},
|
|
24
|
+
}, R = (e) => e.charAt(0) + e.slice(1).toLowerCase().replace(/_/g, " "), z = 100, se = g`
|
|
24
25
|
query ProjectBoards($workspaceId: ID!, $projectId: String) {
|
|
25
26
|
planmagnetBoards(
|
|
26
27
|
workspaceId: $workspaceId
|
|
@@ -34,7 +35,7 @@ var I = [
|
|
|
34
35
|
}
|
|
35
36
|
}
|
|
36
37
|
}
|
|
37
|
-
`,
|
|
38
|
+
`, B = g`
|
|
38
39
|
query ProjectBoardColumnPage($boardId: ID!, $columnId: ID!, $after: String) {
|
|
39
40
|
planmagnetBoardColumnCards(
|
|
40
41
|
boardId: $boardId
|
|
@@ -57,7 +58,7 @@ var I = [
|
|
|
57
58
|
}
|
|
58
59
|
}
|
|
59
60
|
}
|
|
60
|
-
`,
|
|
61
|
+
`, V = g`
|
|
61
62
|
query ProjectBoard($id: ID!) {
|
|
62
63
|
planmagnetBoard(id: $id) {
|
|
63
64
|
id
|
|
@@ -89,57 +90,57 @@ var I = [
|
|
|
89
90
|
}
|
|
90
91
|
}
|
|
91
92
|
}
|
|
92
|
-
`,
|
|
93
|
+
`, H = g`
|
|
93
94
|
mutation ProjectBoardMoveCard($boardId: ID!, $input: PlanmagnetMoveCardInput!) {
|
|
94
95
|
planmagnetMoveCard(boardId: $boardId, input: $input) {
|
|
95
96
|
id
|
|
96
97
|
}
|
|
97
98
|
}
|
|
98
|
-
`,
|
|
99
|
+
`, U = g`
|
|
99
100
|
mutation ProjectBoardCreate($input: PlanmagnetCreateBoardInput!) {
|
|
100
101
|
planmagnetCreateBoard(input: $input) {
|
|
101
102
|
id
|
|
102
103
|
}
|
|
103
104
|
}
|
|
104
|
-
`,
|
|
105
|
+
`, W = g`
|
|
105
106
|
mutation ProjectBoardCreateColumn($input: PlanmagnetCreateBoardColumnInput!) {
|
|
106
107
|
planmagnetCreateBoardColumn(input: $input) {
|
|
107
108
|
id
|
|
108
109
|
}
|
|
109
110
|
}
|
|
110
|
-
`,
|
|
111
|
+
`, G = g`
|
|
111
112
|
mutation ProjectBoardUpdateColumn($id: ID!, $input: PlanmagnetUpdateBoardColumnInput!) {
|
|
112
113
|
planmagnetUpdateBoardColumn(id: $id, input: $input) {
|
|
113
114
|
id
|
|
114
115
|
}
|
|
115
116
|
}
|
|
116
|
-
`,
|
|
117
|
+
`, K = g`
|
|
117
118
|
mutation ProjectBoardDeleteColumn($id: ID!) {
|
|
118
119
|
planmagnetDeleteBoardColumn(id: $id)
|
|
119
120
|
}
|
|
120
|
-
`,
|
|
121
|
+
`, ce = g`
|
|
121
122
|
mutation ProjectBoardReorder($boardId: ID!, $input: PlanmagnetReorderColumnsInput!) {
|
|
122
123
|
planmagnetReorderColumns(boardId: $boardId, input: $input) {
|
|
123
124
|
id
|
|
124
125
|
}
|
|
125
126
|
}
|
|
126
|
-
`,
|
|
127
|
+
`, q = [
|
|
127
128
|
"ProjectBoard",
|
|
128
129
|
"ProjectBoards",
|
|
129
130
|
"GetWorkItems",
|
|
130
131
|
"GetWorkItemCounts",
|
|
131
132
|
"GetDashboardData"
|
|
132
|
-
],
|
|
133
|
+
], J = [
|
|
133
134
|
"CRITICAL",
|
|
134
135
|
"HIGH",
|
|
135
136
|
"MEDIUM",
|
|
136
137
|
"LOW",
|
|
137
138
|
"NONE"
|
|
138
|
-
],
|
|
139
|
-
function
|
|
140
|
-
return e ? Math.max(0, Math.floor((t - new Date(e).getTime()) /
|
|
139
|
+
], Y = 864e5;
|
|
140
|
+
function le(e, t) {
|
|
141
|
+
return e ? Math.max(0, Math.floor((t - new Date(e).getTime()) / Y)) : null;
|
|
141
142
|
}
|
|
142
|
-
function
|
|
143
|
+
function X(e) {
|
|
143
144
|
return e >= 14 ? "text-destructive font-medium" : e >= 7 ? "text-status-warning-text" : "text-muted-foreground";
|
|
144
145
|
}
|
|
145
146
|
function Z(e, t) {
|
|
@@ -147,52 +148,57 @@ function Z(e, t) {
|
|
|
147
148
|
}
|
|
148
149
|
var Q = (e, t) => e instanceof Error ? e.message : t;
|
|
149
150
|
function $({ message: e }) {
|
|
150
|
-
return /* @__PURE__ */
|
|
151
|
+
return /* @__PURE__ */ b("p", {
|
|
151
152
|
role: "alert",
|
|
152
153
|
className: "text-sm text-destructive",
|
|
153
154
|
children: e
|
|
154
155
|
});
|
|
155
156
|
}
|
|
156
|
-
function
|
|
157
|
-
let { workspaceId: i } = e(), o =
|
|
157
|
+
function ue({ projectId: t, projectName: n }) {
|
|
158
|
+
let { workspaceId: i } = e(), o = _(), [c, l] = u(null), [d, f] = u(null), [m] = u(() => Date.now()), [g, ee] = u("none"), [S, te] = u({
|
|
158
159
|
key: null,
|
|
159
160
|
byColumn: {}
|
|
160
|
-
}), [C, w] =
|
|
161
|
+
}), [C, w] = u(null), [T, E] = u(/* @__PURE__ */ new Set()), D = (e) => E((t) => {
|
|
162
|
+
let n = new Set(t);
|
|
163
|
+
return n.has(e) ? n.delete(e) : n.add(e), n;
|
|
164
|
+
}), ne = () => E(/* @__PURE__ */ new Set()), A = a(t), { data: j, loading: ie } = y(se, {
|
|
161
165
|
variables: {
|
|
162
166
|
workspaceId: i,
|
|
163
167
|
projectId: t
|
|
164
168
|
},
|
|
165
169
|
skip: !i
|
|
166
|
-
}),
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
170
|
+
}), M = j?.planmagnetBoards.items ?? [], N = (c && M.some((e) => e.id === c) ? c : null) ?? M.find((e) => e.isDefault)?.id ?? M[0]?.id ?? null, [P, ae] = u(N);
|
|
171
|
+
P !== N && (ae(N), E(/* @__PURE__ */ new Set()));
|
|
172
|
+
let { data: oe, loading: F } = y(V, {
|
|
173
|
+
variables: { id: N },
|
|
174
|
+
skip: !N
|
|
175
|
+
}), L = oe?.planmagnetBoard ?? null, R = S.key === L ? S.byColumn : {}, z = (e) => {
|
|
176
|
+
let t = R[e.id];
|
|
171
177
|
return {
|
|
172
178
|
items: t ? [...e.cards.items, ...t.items] : e.cards.items,
|
|
173
179
|
pageInfo: t ? t.pageInfo : e.cards.pageInfo,
|
|
174
180
|
totalCount: e.cards.totalCount
|
|
175
181
|
};
|
|
176
|
-
},
|
|
177
|
-
let t =
|
|
178
|
-
if (!(!
|
|
179
|
-
|
|
182
|
+
}, W = async (e) => {
|
|
183
|
+
let t = z(e).pageInfo.endCursor;
|
|
184
|
+
if (!(!L || !t)) {
|
|
185
|
+
f(null), w(e.id);
|
|
180
186
|
try {
|
|
181
187
|
let n = await o.query({
|
|
182
|
-
query:
|
|
188
|
+
query: B,
|
|
183
189
|
variables: {
|
|
184
|
-
boardId:
|
|
190
|
+
boardId: L.id,
|
|
185
191
|
columnId: e.id,
|
|
186
192
|
after: t
|
|
187
193
|
},
|
|
188
194
|
fetchPolicy: "network-only"
|
|
189
195
|
}), r = n.data?.planmagnetBoardColumnCards;
|
|
190
196
|
if (!r) throw Error(n.error?.message ?? "The next cards could not be loaded.");
|
|
191
|
-
let i =
|
|
192
|
-
|
|
193
|
-
key:
|
|
197
|
+
let i = R[e.id]?.items ?? [];
|
|
198
|
+
te({
|
|
199
|
+
key: L,
|
|
194
200
|
byColumn: {
|
|
195
|
-
...
|
|
201
|
+
...R,
|
|
196
202
|
[e.id]: {
|
|
197
203
|
items: [...i, ...r.items],
|
|
198
204
|
pageInfo: r.pageInfo
|
|
@@ -200,216 +206,241 @@ function le({ projectId: t, projectName: n }) {
|
|
|
200
206
|
}
|
|
201
207
|
});
|
|
202
208
|
} catch (e) {
|
|
203
|
-
|
|
209
|
+
f(Q(e, "The next cards could not be loaded."));
|
|
204
210
|
} finally {
|
|
205
211
|
w(null);
|
|
206
212
|
}
|
|
207
213
|
}
|
|
208
|
-
}, [
|
|
209
|
-
refetchQueries:
|
|
214
|
+
}, [G, K] = v(U, {
|
|
215
|
+
refetchQueries: q,
|
|
210
216
|
awaitRefetchQueries: !0
|
|
211
|
-
}), [
|
|
212
|
-
refetchQueries:
|
|
217
|
+
}), [J, Y] = v(H, {
|
|
218
|
+
refetchQueries: q,
|
|
213
219
|
awaitRefetchQueries: !0
|
|
214
|
-
}), [
|
|
215
|
-
refetchQueries:
|
|
220
|
+
}), [le] = v(ce, {
|
|
221
|
+
refetchQueries: q,
|
|
216
222
|
awaitRefetchQueries: !0
|
|
217
|
-
}),
|
|
218
|
-
|
|
223
|
+
}), X = async (e, t) => {
|
|
224
|
+
f(null);
|
|
219
225
|
try {
|
|
220
226
|
await r(e());
|
|
221
227
|
} catch (e) {
|
|
222
|
-
|
|
228
|
+
f(Q(e, t));
|
|
223
229
|
}
|
|
224
|
-
},
|
|
225
|
-
boardId:
|
|
230
|
+
}, Z = (e, t) => X(() => J({ variables: {
|
|
231
|
+
boardId: N,
|
|
226
232
|
input: {
|
|
227
233
|
workItemId: e,
|
|
228
234
|
targetColumnId: t
|
|
229
235
|
}
|
|
230
|
-
} }), "The card could not be moved."),
|
|
231
|
-
if (!
|
|
232
|
-
let n =
|
|
233
|
-
if (!(r < 0 || r >= n.length)) return [n[e], n[r]] = [n[r], n[e]],
|
|
234
|
-
boardId:
|
|
236
|
+
} }), "The card could not be moved."), ue = (e, t) => {
|
|
237
|
+
if (!L) return;
|
|
238
|
+
let n = L.columns.map((e) => e.id), r = e + t;
|
|
239
|
+
if (!(r < 0 || r >= n.length)) return [n[e], n[r]] = [n[r], n[e]], X(() => le({ variables: {
|
|
240
|
+
boardId: N,
|
|
235
241
|
input: { columnIds: n }
|
|
236
242
|
} }), "The columns could not be reordered.");
|
|
237
243
|
};
|
|
238
|
-
return
|
|
244
|
+
return ie && !j ? /* @__PURE__ */ b("p", {
|
|
239
245
|
className: "text-sm text-muted-foreground p-4",
|
|
240
246
|
children: "Loading board…"
|
|
241
|
-
}) :
|
|
242
|
-
value:
|
|
243
|
-
children: /* @__PURE__ */
|
|
247
|
+
}) : N ? /* @__PURE__ */ b(I.Provider, {
|
|
248
|
+
value: A,
|
|
249
|
+
children: /* @__PURE__ */ x("div", {
|
|
244
250
|
className: "space-y-3",
|
|
245
251
|
"data-testid": "project-board",
|
|
246
252
|
children: [
|
|
247
|
-
/* @__PURE__ */
|
|
253
|
+
/* @__PURE__ */ x("div", {
|
|
248
254
|
className: "flex flex-wrap items-center gap-3",
|
|
249
255
|
children: [
|
|
250
|
-
|
|
256
|
+
M.length > 1 && /* @__PURE__ */ b("select", {
|
|
251
257
|
"aria-label": "Board",
|
|
252
258
|
className: "rounded-md border border-input bg-background px-2 py-1 text-sm",
|
|
253
|
-
value:
|
|
254
|
-
onChange: (e) =>
|
|
255
|
-
children:
|
|
259
|
+
value: N,
|
|
260
|
+
onChange: (e) => l(e.target.value),
|
|
261
|
+
children: M.map((e) => /* @__PURE__ */ b("option", {
|
|
256
262
|
value: e.id,
|
|
257
263
|
children: e.name
|
|
258
264
|
}, e.id))
|
|
259
265
|
}),
|
|
260
|
-
|
|
266
|
+
L && /* @__PURE__ */ x("label", {
|
|
261
267
|
className: "flex items-center gap-1 text-sm",
|
|
262
|
-
children: [/* @__PURE__ */
|
|
268
|
+
children: [/* @__PURE__ */ b("span", {
|
|
263
269
|
className: "text-muted-foreground",
|
|
264
270
|
children: "Swimlanes"
|
|
265
|
-
}), /* @__PURE__ */
|
|
271
|
+
}), /* @__PURE__ */ x("select", {
|
|
266
272
|
"aria-label": "Swimlanes",
|
|
267
273
|
"data-testid": "board-lanes",
|
|
268
274
|
className: "rounded-md border border-input bg-background px-2 py-1 text-sm",
|
|
269
|
-
value:
|
|
270
|
-
onChange: (e) =>
|
|
275
|
+
value: g,
|
|
276
|
+
onChange: (e) => ee(e.target.value),
|
|
271
277
|
children: [
|
|
272
|
-
/* @__PURE__ */
|
|
278
|
+
/* @__PURE__ */ b("option", {
|
|
273
279
|
value: "none",
|
|
274
280
|
children: "None"
|
|
275
281
|
}),
|
|
276
|
-
/* @__PURE__ */
|
|
282
|
+
/* @__PURE__ */ b("option", {
|
|
277
283
|
value: "assignee",
|
|
278
284
|
children: "By assignee"
|
|
279
285
|
}),
|
|
280
|
-
/* @__PURE__ */
|
|
286
|
+
/* @__PURE__ */ b("option", {
|
|
281
287
|
value: "priority",
|
|
282
288
|
children: "By priority"
|
|
283
289
|
})
|
|
284
290
|
]
|
|
285
291
|
})]
|
|
286
292
|
}),
|
|
287
|
-
|
|
293
|
+
L && L.unplacedCount > 0 && /* @__PURE__ */ x("p", {
|
|
288
294
|
className: "text-xs text-muted-foreground",
|
|
289
295
|
"data-testid": "board-unplaced",
|
|
290
296
|
children: [
|
|
291
|
-
|
|
297
|
+
L.unplacedCount,
|
|
292
298
|
" work item",
|
|
293
|
-
|
|
299
|
+
L.unplacedCount === 1 ? " is" : "s are",
|
|
294
300
|
" not on this board: ",
|
|
295
|
-
|
|
301
|
+
L.unplacedCount === 1 ? "its status has" : "their status has",
|
|
296
302
|
" no column."
|
|
297
303
|
]
|
|
298
304
|
}),
|
|
299
|
-
|
|
305
|
+
L && /* @__PURE__ */ b("div", {
|
|
300
306
|
className: "ml-auto",
|
|
301
|
-
children: /* @__PURE__ */
|
|
307
|
+
children: /* @__PURE__ */ b(ge, { boardId: L.id })
|
|
302
308
|
})
|
|
303
309
|
]
|
|
304
310
|
}),
|
|
305
|
-
|
|
306
|
-
|
|
311
|
+
d && /* @__PURE__ */ b($, { message: d }),
|
|
312
|
+
L && T.size > 0 && /* @__PURE__ */ b(s, {
|
|
313
|
+
projectId: t,
|
|
314
|
+
selectedIds: [...T],
|
|
315
|
+
workflow: A,
|
|
316
|
+
onDone: ne
|
|
317
|
+
}),
|
|
318
|
+
F && !L ? /* @__PURE__ */ b("p", {
|
|
307
319
|
className: "text-sm text-muted-foreground p-4",
|
|
308
320
|
children: "Loading board…"
|
|
309
|
-
}) :
|
|
310
|
-
board:
|
|
311
|
-
laneBy:
|
|
312
|
-
cardsOf:
|
|
313
|
-
now:
|
|
314
|
-
busy:
|
|
321
|
+
}) : L && g !== "none" ? /* @__PURE__ */ b(me, {
|
|
322
|
+
board: L,
|
|
323
|
+
laneBy: g,
|
|
324
|
+
cardsOf: z,
|
|
325
|
+
now: m,
|
|
326
|
+
busy: Y.loading,
|
|
315
327
|
loadingMore: C,
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
328
|
+
selected: T,
|
|
329
|
+
onToggleSelect: D,
|
|
330
|
+
onLoadMore: (e) => void W(e),
|
|
331
|
+
onMove: Z
|
|
332
|
+
}) : /* @__PURE__ */ x("div", {
|
|
319
333
|
className: "flex gap-3 overflow-x-auto pb-2",
|
|
320
|
-
children: [
|
|
321
|
-
boardId:
|
|
334
|
+
children: [L?.columns.map((e, t) => /* @__PURE__ */ b(he, {
|
|
335
|
+
boardId: L.id,
|
|
322
336
|
column: e,
|
|
323
|
-
columns:
|
|
324
|
-
cards:
|
|
337
|
+
columns: L.columns,
|
|
338
|
+
cards: z(e),
|
|
325
339
|
isFirst: t === 0,
|
|
326
|
-
isLast: t ===
|
|
327
|
-
busy:
|
|
328
|
-
now:
|
|
340
|
+
isLast: t === L.columns.length - 1,
|
|
341
|
+
busy: Y.loading,
|
|
342
|
+
now: m,
|
|
329
343
|
loadingMore: C === e.id,
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
344
|
+
selected: T,
|
|
345
|
+
onToggleSelect: D,
|
|
346
|
+
onLoadMore: () => void W(e),
|
|
347
|
+
onMove: Z,
|
|
348
|
+
onShift: (e) => ue(t, e)
|
|
349
|
+
}, e.id)), L && L.columns.length === 0 && /* @__PURE__ */ b("p", {
|
|
334
350
|
className: "text-sm text-muted-foreground p-4",
|
|
335
351
|
children: "This board has no columns. Add one to start placing work."
|
|
336
352
|
})]
|
|
337
353
|
})
|
|
338
354
|
]
|
|
339
355
|
})
|
|
340
|
-
}) : /* @__PURE__ */
|
|
356
|
+
}) : /* @__PURE__ */ b(k, { children: /* @__PURE__ */ x(re, {
|
|
341
357
|
className: "p-8 text-center space-y-3",
|
|
342
358
|
"data-testid": "board-empty",
|
|
343
359
|
children: [
|
|
344
|
-
/* @__PURE__ */
|
|
345
|
-
/* @__PURE__ */
|
|
360
|
+
/* @__PURE__ */ b(p, { className: "h-8 w-8 mx-auto text-muted-foreground" }),
|
|
361
|
+
/* @__PURE__ */ x("p", {
|
|
346
362
|
className: "text-sm text-muted-foreground",
|
|
347
363
|
children: [n, " has no board yet."]
|
|
348
364
|
}),
|
|
349
|
-
/* @__PURE__ */
|
|
365
|
+
/* @__PURE__ */ x(O, {
|
|
350
366
|
size: "sm",
|
|
351
|
-
disabled:
|
|
352
|
-
onClick: () =>
|
|
367
|
+
disabled: K.loading,
|
|
368
|
+
onClick: () => X(() => G({ variables: { input: {
|
|
353
369
|
projectId: t,
|
|
354
370
|
name: `${n} board`,
|
|
355
371
|
type: "KANBAN",
|
|
356
372
|
isDefault: !0,
|
|
357
373
|
withDefaultColumns: !0
|
|
358
374
|
} } }), "The board could not be created."),
|
|
359
|
-
children: [/* @__PURE__ */
|
|
375
|
+
children: [/* @__PURE__ */ b(h, { className: "mr-1 h-4 w-4" }), K.loading ? "Creating…" : "Create board"]
|
|
360
376
|
}),
|
|
361
|
-
/* @__PURE__ */
|
|
377
|
+
/* @__PURE__ */ b("p", {
|
|
362
378
|
className: "text-xs text-muted-foreground",
|
|
363
379
|
children: "Starts with one column per status: Backlog, To Do, In Progress, In Review, Testing, Done."
|
|
364
380
|
}),
|
|
365
|
-
|
|
381
|
+
d && /* @__PURE__ */ b($, { message: d })
|
|
366
382
|
]
|
|
367
383
|
}) });
|
|
368
384
|
}
|
|
369
|
-
function
|
|
370
|
-
let
|
|
371
|
-
return /* @__PURE__ */
|
|
385
|
+
function de({ card: e, column: r, columns: a, busy: s, now: c, selected: u, onToggleSelect: d, onMove: f }) {
|
|
386
|
+
let p = t(), m = l(I), h = le(e.statusSince, c), g = i(m, e.status, F), _ = a.filter((e) => e.id !== r.id && (!e.mappedStatus || g.includes(e.mappedStatus)));
|
|
387
|
+
return /* @__PURE__ */ x("li", {
|
|
372
388
|
draggable: !0,
|
|
373
389
|
onDragStart: (t) => {
|
|
374
390
|
t.dataTransfer.setData("text/plain", e.id), t.dataTransfer.effectAllowed = "move";
|
|
375
391
|
},
|
|
376
|
-
className:
|
|
392
|
+
className: `rounded-md border bg-background p-2 space-y-1 cursor-grab ${u ? "ring-2 ring-primary" : ""}`,
|
|
377
393
|
"data-testid": "board-card",
|
|
378
394
|
children: [
|
|
379
|
-
/* @__PURE__ */
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
395
|
+
/* @__PURE__ */ x("div", {
|
|
396
|
+
className: "flex items-start gap-1.5",
|
|
397
|
+
children: [/* @__PURE__ */ b("input", {
|
|
398
|
+
type: "checkbox",
|
|
399
|
+
className: "mt-0.5 shrink-0",
|
|
400
|
+
"aria-label": `Select ${e.key}`,
|
|
401
|
+
"data-testid": "board-card-select",
|
|
402
|
+
checked: u,
|
|
403
|
+
draggable: !1,
|
|
404
|
+
onMouseDown: (e) => e.stopPropagation(),
|
|
405
|
+
onPointerDown: (e) => e.stopPropagation(),
|
|
406
|
+
onDragStart: (e) => e.stopPropagation(),
|
|
407
|
+
onClick: (e) => e.stopPropagation(),
|
|
408
|
+
onChange: () => d(e.id)
|
|
409
|
+
}), /* @__PURE__ */ b("button", {
|
|
410
|
+
type: "button",
|
|
411
|
+
className: "text-left text-sm font-medium leading-tight hover:underline",
|
|
412
|
+
onClick: () => p(`/tasks/task-detail-page?taskId=${encodeURIComponent(e.id)}`),
|
|
413
|
+
children: e.title
|
|
414
|
+
})]
|
|
384
415
|
}),
|
|
385
|
-
/* @__PURE__ */
|
|
416
|
+
/* @__PURE__ */ x("div", {
|
|
386
417
|
className: "flex items-center justify-between text-[11px] text-muted-foreground",
|
|
387
418
|
children: [
|
|
388
|
-
/* @__PURE__ */
|
|
389
|
-
|
|
419
|
+
/* @__PURE__ */ b("span", { children: e.key }),
|
|
420
|
+
h !== null && /* @__PURE__ */ b("span", {
|
|
390
421
|
"data-testid": "card-age",
|
|
391
|
-
className:
|
|
392
|
-
title: `In ${o(
|
|
393
|
-
children:
|
|
422
|
+
className: X(h),
|
|
423
|
+
title: `In ${o(m, e.status)} since ${new Date(e.statusSince ?? "").toLocaleDateString()}`,
|
|
424
|
+
children: h === 0 ? "today" : `${h}d in status`
|
|
394
425
|
}),
|
|
395
|
-
/* @__PURE__ */
|
|
426
|
+
/* @__PURE__ */ x("span", { children: [e.storyPoints ?? 0, " pts"] })
|
|
396
427
|
]
|
|
397
428
|
}),
|
|
398
|
-
/* @__PURE__ */
|
|
429
|
+
/* @__PURE__ */ x("div", {
|
|
399
430
|
className: "flex items-center justify-between gap-1 text-[11px] text-muted-foreground",
|
|
400
|
-
children: [/* @__PURE__ */
|
|
431
|
+
children: [/* @__PURE__ */ b("span", {
|
|
401
432
|
className: "truncate",
|
|
402
|
-
children: e.assigneeId ? /* @__PURE__ */
|
|
403
|
-
}), /* @__PURE__ */
|
|
433
|
+
children: e.assigneeId ? /* @__PURE__ */ b(n, { id: e.assigneeId }) : "Unassigned"
|
|
434
|
+
}), /* @__PURE__ */ x("select", {
|
|
404
435
|
"aria-label": `Move ${e.key} to column`,
|
|
405
436
|
className: "rounded border border-input bg-background px-1 py-0.5 text-[11px]",
|
|
406
437
|
value: "",
|
|
407
438
|
disabled: s,
|
|
408
|
-
onChange: (t) => t.target.value &&
|
|
409
|
-
children: [/* @__PURE__ */
|
|
439
|
+
onChange: (t) => t.target.value && f(e.id, t.target.value),
|
|
440
|
+
children: [/* @__PURE__ */ b("option", {
|
|
410
441
|
value: "",
|
|
411
442
|
children: "Move…"
|
|
412
|
-
}),
|
|
443
|
+
}), _.map((e) => /* @__PURE__ */ b("option", {
|
|
413
444
|
value: e.id,
|
|
414
445
|
children: e.name
|
|
415
446
|
}, e.id))]
|
|
@@ -418,9 +449,9 @@ function ue({ card: e, column: r, columns: a, busy: s, now: l, onMove: u }) {
|
|
|
418
449
|
]
|
|
419
450
|
});
|
|
420
451
|
}
|
|
421
|
-
function
|
|
422
|
-
let [a, o] =
|
|
423
|
-
return /* @__PURE__ */
|
|
452
|
+
function fe({ column: e, onMove: t, className: n, children: r, label: i }) {
|
|
453
|
+
let [a, o] = u(!1);
|
|
454
|
+
return /* @__PURE__ */ b("section", {
|
|
424
455
|
"aria-label": i,
|
|
425
456
|
className: `${n} ${a ? "ring-2 ring-primary" : ""}`,
|
|
426
457
|
onDragOver: (e) => {
|
|
@@ -435,11 +466,11 @@ function de({ column: e, onMove: t, className: n, children: r, label: i }) {
|
|
|
435
466
|
children: r
|
|
436
467
|
});
|
|
437
468
|
}
|
|
438
|
-
function
|
|
469
|
+
function pe({ cards: e, loading: t, onLoadMore: n }) {
|
|
439
470
|
let r = e.totalCount - e.items.length;
|
|
440
|
-
return r <= 0 || !e.pageInfo.hasNextPage ? null : /* @__PURE__ */
|
|
471
|
+
return r <= 0 || !e.pageInfo.hasNextPage ? null : /* @__PURE__ */ x("div", {
|
|
441
472
|
className: "px-2 pb-2 space-y-1",
|
|
442
|
-
children: [/* @__PURE__ */
|
|
473
|
+
children: [/* @__PURE__ */ x("p", {
|
|
443
474
|
className: "text-xs text-muted-foreground",
|
|
444
475
|
children: [
|
|
445
476
|
"Showing ",
|
|
@@ -447,27 +478,27 @@ function fe({ cards: e, loading: t, onLoadMore: n }) {
|
|
|
447
478
|
" of ",
|
|
448
479
|
e.totalCount
|
|
449
480
|
]
|
|
450
|
-
}), /* @__PURE__ */
|
|
481
|
+
}), /* @__PURE__ */ b(O, {
|
|
451
482
|
size: "sm",
|
|
452
483
|
variant: "outline",
|
|
453
484
|
className: "w-full",
|
|
454
485
|
"data-testid": "board-column-more",
|
|
455
486
|
disabled: t,
|
|
456
487
|
onClick: n,
|
|
457
|
-
children: t ? "Loading…" : `Show ${Math.min(r,
|
|
488
|
+
children: t ? "Loading…" : `Show ${Math.min(r, z)} more`
|
|
458
489
|
})]
|
|
459
490
|
});
|
|
460
491
|
}
|
|
461
|
-
function
|
|
462
|
-
let
|
|
492
|
+
function me({ board: e, laneBy: t, cardsOf: r, now: i, busy: a, loadingMore: o, selected: s, onToggleSelect: c, onLoadMore: l, onMove: u }) {
|
|
493
|
+
let d = e.columns.map((e) => ({
|
|
463
494
|
column: e,
|
|
464
495
|
cards: r(e)
|
|
465
|
-
})),
|
|
466
|
-
return /* @__PURE__ */
|
|
496
|
+
})), f = [...new Set(d.flatMap(({ cards: e }) => e.items.map((e) => Z(e, t))))].sort((e, n) => t === "priority" ? J.indexOf(e) - J.indexOf(n) : e === "" ? 1 : n === "" ? -1 : e.localeCompare(n)), p = (e) => t === "priority" ? R(e) : e ? /* @__PURE__ */ b(n, { id: e }) : "Unassigned";
|
|
497
|
+
return /* @__PURE__ */ x("div", {
|
|
467
498
|
className: "overflow-x-auto pb-2 space-y-3",
|
|
468
499
|
"data-testid": "board-swimlanes",
|
|
469
500
|
children: [
|
|
470
|
-
/* @__PURE__ */
|
|
501
|
+
/* @__PURE__ */ x("p", {
|
|
471
502
|
className: "text-xs text-muted-foreground",
|
|
472
503
|
children: [
|
|
473
504
|
"Dragging moves a card between columns. Its lane follows its",
|
|
@@ -476,16 +507,16 @@ function pe({ board: e, laneBy: t, cardsOf: r, now: i, busy: a, loadingMore: o,
|
|
|
476
507
|
"."
|
|
477
508
|
]
|
|
478
509
|
}),
|
|
479
|
-
/* @__PURE__ */
|
|
510
|
+
/* @__PURE__ */ b("div", {
|
|
480
511
|
className: "flex gap-3",
|
|
481
|
-
children:
|
|
512
|
+
children: d.map(({ column: e, cards: t }) => /* @__PURE__ */ b("div", {
|
|
482
513
|
className: "min-w-[240px] w-[240px] shrink-0 px-2",
|
|
483
|
-
children: /* @__PURE__ */
|
|
514
|
+
children: /* @__PURE__ */ x("h3", {
|
|
484
515
|
className: "text-sm font-medium truncate",
|
|
485
516
|
children: [
|
|
486
517
|
e.name,
|
|
487
518
|
" ",
|
|
488
|
-
/* @__PURE__ */
|
|
519
|
+
/* @__PURE__ */ b("span", {
|
|
489
520
|
className: "text-xs text-muted-foreground",
|
|
490
521
|
children: e.wipLimit ? `${t.totalCount} / ${e.wipLimit}` : t.totalCount
|
|
491
522
|
})
|
|
@@ -493,112 +524,114 @@ function pe({ board: e, laneBy: t, cardsOf: r, now: i, busy: a, loadingMore: o,
|
|
|
493
524
|
})
|
|
494
525
|
}, e.id))
|
|
495
526
|
}),
|
|
496
|
-
|
|
527
|
+
f.length === 0 && /* @__PURE__ */ b("p", {
|
|
497
528
|
className: "text-sm text-muted-foreground p-4",
|
|
498
529
|
children: "No cards on this board yet."
|
|
499
530
|
}),
|
|
500
|
-
|
|
531
|
+
f.map((n) => /* @__PURE__ */ x("div", {
|
|
501
532
|
"data-testid": "board-lane",
|
|
502
533
|
className: "space-y-1",
|
|
503
|
-
children: [/* @__PURE__ */
|
|
534
|
+
children: [/* @__PURE__ */ x("p", {
|
|
504
535
|
className: "text-xs font-medium",
|
|
505
536
|
children: [
|
|
506
|
-
|
|
537
|
+
p(n),
|
|
507
538
|
" ",
|
|
508
|
-
/* @__PURE__ */
|
|
539
|
+
/* @__PURE__ */ x("span", {
|
|
509
540
|
className: "text-muted-foreground",
|
|
510
541
|
children: [
|
|
511
542
|
"(",
|
|
512
|
-
|
|
543
|
+
d.reduce((e, { cards: r }) => e + r.items.filter((e) => Z(e, t) === n).length, 0),
|
|
513
544
|
")"
|
|
514
545
|
]
|
|
515
546
|
})
|
|
516
547
|
]
|
|
517
|
-
}), /* @__PURE__ */
|
|
548
|
+
}), /* @__PURE__ */ b("div", {
|
|
518
549
|
className: "flex gap-3",
|
|
519
|
-
children:
|
|
550
|
+
children: d.map(({ column: r, cards: o }) => /* @__PURE__ */ b(fe, {
|
|
520
551
|
column: r,
|
|
521
|
-
onMove:
|
|
552
|
+
onMove: u,
|
|
522
553
|
label: `${r.name} column`,
|
|
523
554
|
className: "min-w-[240px] w-[240px] shrink-0 rounded-md border bg-muted/30",
|
|
524
|
-
children: /* @__PURE__ */
|
|
555
|
+
children: /* @__PURE__ */ b("ul", {
|
|
525
556
|
className: "p-2 space-y-2 min-h-[48px]",
|
|
526
|
-
children: o.items.filter((e) => Z(e, t) === n).map((t) => /* @__PURE__ */
|
|
557
|
+
children: o.items.filter((e) => Z(e, t) === n).map((t) => /* @__PURE__ */ b(de, {
|
|
527
558
|
card: t,
|
|
528
559
|
column: r,
|
|
529
560
|
columns: e.columns,
|
|
530
561
|
busy: a,
|
|
531
562
|
now: i,
|
|
532
|
-
|
|
563
|
+
selected: s.has(t.id),
|
|
564
|
+
onToggleSelect: c,
|
|
565
|
+
onMove: u
|
|
533
566
|
}, t.id))
|
|
534
567
|
})
|
|
535
568
|
}, r.id))
|
|
536
569
|
})]
|
|
537
570
|
}, n || "none")),
|
|
538
|
-
/* @__PURE__ */
|
|
571
|
+
/* @__PURE__ */ b("div", {
|
|
539
572
|
className: "flex gap-3",
|
|
540
|
-
children:
|
|
573
|
+
children: d.map(({ column: e, cards: t }) => /* @__PURE__ */ b("div", {
|
|
541
574
|
className: "min-w-[240px] w-[240px] shrink-0",
|
|
542
|
-
children: /* @__PURE__ */
|
|
575
|
+
children: /* @__PURE__ */ b(pe, {
|
|
543
576
|
cards: t,
|
|
544
577
|
loading: o === e.id,
|
|
545
|
-
onLoadMore: () =>
|
|
578
|
+
onLoadMore: () => l(e)
|
|
546
579
|
})
|
|
547
580
|
}, e.id))
|
|
548
581
|
})
|
|
549
582
|
]
|
|
550
583
|
});
|
|
551
584
|
}
|
|
552
|
-
function
|
|
553
|
-
let
|
|
554
|
-
return /* @__PURE__ */
|
|
585
|
+
function he({ boardId: e, column: t, columns: n, cards: r, isFirst: i, isLast: a, busy: o, now: s, loadingMore: c, selected: l, onToggleSelect: u, onLoadMore: p, onMove: m, onShift: h }) {
|
|
586
|
+
let g = r.totalCount, _ = t.wipLimit != null && t.wipLimit > 0 && g >= t.wipLimit, v = L();
|
|
587
|
+
return /* @__PURE__ */ b(fe, {
|
|
555
588
|
column: t,
|
|
556
|
-
onMove:
|
|
589
|
+
onMove: m,
|
|
557
590
|
label: `${t.name} column`,
|
|
558
591
|
className: "min-w-[240px] w-[240px] shrink-0 rounded-md border bg-muted/30",
|
|
559
|
-
children: /* @__PURE__ */
|
|
592
|
+
children: /* @__PURE__ */ x("div", {
|
|
560
593
|
"data-testid": `board-column-${t.name}`,
|
|
561
594
|
children: [
|
|
562
|
-
/* @__PURE__ */
|
|
595
|
+
/* @__PURE__ */ x("header", {
|
|
563
596
|
className: "p-2 border-b space-y-1",
|
|
564
|
-
children: [/* @__PURE__ */
|
|
597
|
+
children: [/* @__PURE__ */ x("div", {
|
|
565
598
|
className: "flex items-center justify-between gap-1",
|
|
566
|
-
children: [/* @__PURE__ */
|
|
599
|
+
children: [/* @__PURE__ */ b("h3", {
|
|
567
600
|
className: "text-sm font-medium truncate",
|
|
568
601
|
children: t.name
|
|
569
|
-
}), /* @__PURE__ */
|
|
602
|
+
}), /* @__PURE__ */ b("span", {
|
|
570
603
|
"data-testid": `board-column-count-${t.name}`,
|
|
571
|
-
className: `text-xs rounded-full px-1.5 ${
|
|
604
|
+
className: `text-xs rounded-full px-1.5 ${_ ? "bg-status-warning-subtle text-status-warning" : "bg-muted"}`,
|
|
572
605
|
title: t.wipLimit ? `WIP limit ${t.wipLimit}` : void 0,
|
|
573
|
-
children: t.wipLimit ? `${
|
|
606
|
+
children: t.wipLimit ? `${g} / ${t.wipLimit}` : g
|
|
574
607
|
})]
|
|
575
|
-
}), /* @__PURE__ */
|
|
608
|
+
}), /* @__PURE__ */ x("div", {
|
|
576
609
|
className: "flex items-center justify-between gap-1",
|
|
577
|
-
children: [/* @__PURE__ */
|
|
610
|
+
children: [/* @__PURE__ */ b("span", {
|
|
578
611
|
className: "text-[11px] text-muted-foreground",
|
|
579
|
-
children: t.mappedStatus ? `Sets status: ${
|
|
580
|
-
}), /* @__PURE__ */
|
|
612
|
+
children: t.mappedStatus ? `Sets status: ${v(t.mappedStatus)}` : "No status"
|
|
613
|
+
}), /* @__PURE__ */ x("span", {
|
|
581
614
|
className: "flex",
|
|
582
615
|
children: [
|
|
583
|
-
/* @__PURE__ */
|
|
616
|
+
/* @__PURE__ */ b(O, {
|
|
584
617
|
size: "icon",
|
|
585
618
|
variant: "ghost",
|
|
586
619
|
className: "h-6 w-6",
|
|
587
620
|
"aria-label": `Move ${t.name} column left`,
|
|
588
621
|
disabled: i,
|
|
589
|
-
onClick: () =>
|
|
590
|
-
children: /* @__PURE__ */
|
|
622
|
+
onClick: () => h(-1),
|
|
623
|
+
children: /* @__PURE__ */ b(d, { className: "h-3.5 w-3.5" })
|
|
591
624
|
}),
|
|
592
|
-
/* @__PURE__ */
|
|
625
|
+
/* @__PURE__ */ b(O, {
|
|
593
626
|
size: "icon",
|
|
594
627
|
variant: "ghost",
|
|
595
628
|
className: "h-6 w-6",
|
|
596
629
|
"aria-label": `Move ${t.name} column right`,
|
|
597
630
|
disabled: a,
|
|
598
|
-
onClick: () =>
|
|
599
|
-
children: /* @__PURE__ */
|
|
631
|
+
onClick: () => h(1),
|
|
632
|
+
children: /* @__PURE__ */ b(f, { className: "h-3.5 w-3.5" })
|
|
600
633
|
}),
|
|
601
|
-
/* @__PURE__ */
|
|
634
|
+
/* @__PURE__ */ b(ge, {
|
|
602
635
|
boardId: e,
|
|
603
636
|
column: t
|
|
604
637
|
})
|
|
@@ -606,154 +639,156 @@ function me({ boardId: e, column: t, columns: n, cards: r, isFirst: i, isLast: a
|
|
|
606
639
|
})]
|
|
607
640
|
})]
|
|
608
641
|
}),
|
|
609
|
-
/* @__PURE__ */
|
|
642
|
+
/* @__PURE__ */ x("ul", {
|
|
610
643
|
className: "p-2 space-y-2 min-h-[80px]",
|
|
611
|
-
children: [r.items.map((e) => /* @__PURE__ */
|
|
644
|
+
children: [r.items.map((e) => /* @__PURE__ */ b(de, {
|
|
612
645
|
card: e,
|
|
613
646
|
column: t,
|
|
614
647
|
columns: n,
|
|
615
648
|
busy: o,
|
|
616
649
|
now: s,
|
|
617
|
-
|
|
618
|
-
|
|
650
|
+
selected: l.has(e.id),
|
|
651
|
+
onToggleSelect: u,
|
|
652
|
+
onMove: m
|
|
653
|
+
}, e.id)), g === 0 && /* @__PURE__ */ b("li", {
|
|
619
654
|
className: "text-xs text-muted-foreground text-center py-4",
|
|
620
655
|
children: "Empty"
|
|
621
656
|
})]
|
|
622
657
|
}),
|
|
623
|
-
/* @__PURE__ */
|
|
658
|
+
/* @__PURE__ */ b(pe, {
|
|
624
659
|
cards: r,
|
|
625
660
|
loading: c,
|
|
626
|
-
onLoadMore:
|
|
661
|
+
onLoadMore: p
|
|
627
662
|
})
|
|
628
663
|
]
|
|
629
664
|
})
|
|
630
665
|
});
|
|
631
666
|
}
|
|
632
|
-
function
|
|
633
|
-
let n = t !== void 0, i =
|
|
634
|
-
refetchQueries:
|
|
667
|
+
function ge({ boardId: e, column: t }) {
|
|
668
|
+
let n = t !== void 0, i = L(), [a, o] = u(!1), [s, c] = u(t?.name ?? ""), [l, d] = u(t?.mappedStatus ?? ""), [f, p] = u(t?.wipLimit ? String(t.wipLimit) : ""), [g, _] = u(null), y = {
|
|
669
|
+
refetchQueries: q,
|
|
635
670
|
awaitRefetchQueries: !0
|
|
636
|
-
}, [
|
|
637
|
-
c(t?.name ?? ""), d(t?.mappedStatus ?? ""),
|
|
638
|
-
},
|
|
639
|
-
|
|
671
|
+
}, [k, re] = v(W, y), [I, R] = v(G, y), [z, se] = v(K, y), B = re.loading || R.loading || se.loading, V = f.trim() === "" ? null : Number(f), H = V !== null && (!Number.isInteger(V) || V < 1), U = s.trim() !== "" && !H && !B, ce = () => {
|
|
672
|
+
c(t?.name ?? ""), d(t?.mappedStatus ?? ""), p(t?.wipLimit ? String(t.wipLimit) : ""), _(null);
|
|
673
|
+
}, J = async () => {
|
|
674
|
+
_(null);
|
|
640
675
|
let i = {
|
|
641
676
|
name: s.trim(),
|
|
642
|
-
mappedStatus:
|
|
643
|
-
wipLimit:
|
|
677
|
+
mappedStatus: l || null,
|
|
678
|
+
wipLimit: V
|
|
644
679
|
};
|
|
645
680
|
try {
|
|
646
|
-
n ? await r(
|
|
681
|
+
n ? await r(I({ variables: {
|
|
647
682
|
id: t.id,
|
|
648
683
|
input: i
|
|
649
|
-
} })) : await r(
|
|
684
|
+
} })) : await r(k({ variables: { input: {
|
|
650
685
|
boardId: e,
|
|
651
686
|
type: "CUSTOM",
|
|
652
687
|
...i
|
|
653
688
|
} } })), o(!1);
|
|
654
689
|
} catch (e) {
|
|
655
|
-
|
|
690
|
+
_(Q(e, "The column could not be saved."));
|
|
656
691
|
}
|
|
657
|
-
},
|
|
658
|
-
return /* @__PURE__ */
|
|
692
|
+
}, Y = n ? `column-${t.id}` : "new-column";
|
|
693
|
+
return /* @__PURE__ */ x(j, {
|
|
659
694
|
open: a,
|
|
660
695
|
onOpenChange: (e) => {
|
|
661
|
-
o(e), e &&
|
|
696
|
+
o(e), e && ce();
|
|
662
697
|
},
|
|
663
|
-
children: [/* @__PURE__ */
|
|
698
|
+
children: [/* @__PURE__ */ b(oe, {
|
|
664
699
|
asChild: !0,
|
|
665
|
-
children: n ? /* @__PURE__ */
|
|
700
|
+
children: n ? /* @__PURE__ */ b(O, {
|
|
666
701
|
size: "icon",
|
|
667
702
|
variant: "ghost",
|
|
668
703
|
className: "h-6 w-6",
|
|
669
704
|
"aria-label": `Edit ${t.name} column`,
|
|
670
|
-
children: /* @__PURE__ */
|
|
671
|
-
}) : /* @__PURE__ */
|
|
705
|
+
children: /* @__PURE__ */ b(m, { className: "h-3.5 w-3.5" })
|
|
706
|
+
}) : /* @__PURE__ */ x(O, {
|
|
672
707
|
size: "sm",
|
|
673
708
|
variant: "outline",
|
|
674
|
-
children: [/* @__PURE__ */
|
|
709
|
+
children: [/* @__PURE__ */ b(h, { className: "mr-1 h-4 w-4" }), "Add column"]
|
|
675
710
|
})
|
|
676
|
-
}), /* @__PURE__ */
|
|
711
|
+
}), /* @__PURE__ */ x(ie, {
|
|
677
712
|
className: "max-w-md",
|
|
678
713
|
children: [
|
|
679
|
-
/* @__PURE__ */
|
|
680
|
-
/* @__PURE__ */
|
|
714
|
+
/* @__PURE__ */ x(P, { children: [/* @__PURE__ */ b(ae, { children: n ? `Edit ${t.name}` : "Add column" }), /* @__PURE__ */ b(M, { children: "Moving a card into a column that sets a status changes the work item's status." })] }),
|
|
715
|
+
/* @__PURE__ */ x("div", {
|
|
681
716
|
className: "space-y-3",
|
|
682
717
|
children: [
|
|
683
|
-
/* @__PURE__ */
|
|
684
|
-
htmlFor: `${
|
|
718
|
+
/* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("label", {
|
|
719
|
+
htmlFor: `${Y}-name`,
|
|
685
720
|
className: "text-sm font-medium",
|
|
686
721
|
children: "Name"
|
|
687
|
-
}), /* @__PURE__ */
|
|
688
|
-
id: `${
|
|
722
|
+
}), /* @__PURE__ */ b(A, {
|
|
723
|
+
id: `${Y}-name`,
|
|
689
724
|
className: "mt-1",
|
|
690
725
|
value: s,
|
|
691
726
|
onChange: (e) => c(e.target.value)
|
|
692
727
|
})] }),
|
|
693
|
-
/* @__PURE__ */
|
|
694
|
-
htmlFor: `${
|
|
728
|
+
/* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("label", {
|
|
729
|
+
htmlFor: `${Y}-status`,
|
|
695
730
|
className: "text-sm font-medium",
|
|
696
731
|
children: "Sets status"
|
|
697
|
-
}), /* @__PURE__ */
|
|
698
|
-
id: `${
|
|
732
|
+
}), /* @__PURE__ */ x("select", {
|
|
733
|
+
id: `${Y}-status`,
|
|
699
734
|
className: "mt-1 w-full rounded-md border border-input bg-background px-3 py-2 text-sm",
|
|
700
|
-
value:
|
|
735
|
+
value: l,
|
|
701
736
|
onChange: (e) => d(e.target.value),
|
|
702
|
-
children: [/* @__PURE__ */
|
|
737
|
+
children: [/* @__PURE__ */ b("option", {
|
|
703
738
|
value: "",
|
|
704
739
|
children: "No status (cards keep theirs)"
|
|
705
|
-
}),
|
|
740
|
+
}), F.map((e) => /* @__PURE__ */ b("option", {
|
|
706
741
|
value: e,
|
|
707
742
|
children: i(e)
|
|
708
743
|
}, e))]
|
|
709
744
|
})] }),
|
|
710
|
-
/* @__PURE__ */
|
|
711
|
-
/* @__PURE__ */
|
|
712
|
-
htmlFor: `${
|
|
745
|
+
/* @__PURE__ */ x("div", { children: [
|
|
746
|
+
/* @__PURE__ */ b("label", {
|
|
747
|
+
htmlFor: `${Y}-wip`,
|
|
713
748
|
className: "text-sm font-medium",
|
|
714
749
|
children: "WIP limit (blank for none)"
|
|
715
750
|
}),
|
|
716
|
-
/* @__PURE__ */
|
|
717
|
-
id: `${
|
|
751
|
+
/* @__PURE__ */ b(A, {
|
|
752
|
+
id: `${Y}-wip`,
|
|
718
753
|
type: "number",
|
|
719
754
|
min: 1,
|
|
720
755
|
className: "mt-1",
|
|
721
756
|
value: f,
|
|
722
|
-
onChange: (e) =>
|
|
757
|
+
onChange: (e) => p(e.target.value)
|
|
723
758
|
}),
|
|
724
|
-
|
|
759
|
+
H && /* @__PURE__ */ b($, { message: "The WIP limit must be a whole number, 1 or more." })
|
|
725
760
|
] })
|
|
726
761
|
]
|
|
727
762
|
}),
|
|
728
|
-
g && /* @__PURE__ */
|
|
729
|
-
/* @__PURE__ */
|
|
763
|
+
g && /* @__PURE__ */ b($, { message: g }),
|
|
764
|
+
/* @__PURE__ */ x(N, {
|
|
730
765
|
className: "gap-2",
|
|
731
|
-
children: [n && /* @__PURE__ */
|
|
766
|
+
children: [n && /* @__PURE__ */ x(ee, { children: [/* @__PURE__ */ b(ne, {
|
|
732
767
|
asChild: !0,
|
|
733
|
-
children: /* @__PURE__ */
|
|
768
|
+
children: /* @__PURE__ */ b(O, {
|
|
734
769
|
variant: "outline",
|
|
735
|
-
disabled:
|
|
770
|
+
disabled: B,
|
|
736
771
|
children: "Delete column"
|
|
737
772
|
})
|
|
738
|
-
}), /* @__PURE__ */
|
|
773
|
+
}), /* @__PURE__ */ x(C, { children: [/* @__PURE__ */ x(E, { children: [/* @__PURE__ */ x(D, { children: [
|
|
739
774
|
"Delete ",
|
|
740
775
|
t.name,
|
|
741
776
|
"?"
|
|
742
|
-
] }), /* @__PURE__ */
|
|
777
|
+
] }), /* @__PURE__ */ b(w, { children: "Its cards are not deleted: each goes back to the column for its status, or off the board if no column sets that status." })] }), /* @__PURE__ */ x(T, { children: [/* @__PURE__ */ b(te, { children: "Keep it" }), /* @__PURE__ */ b(S, {
|
|
743
778
|
className: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
|
|
744
779
|
onClick: async () => {
|
|
745
780
|
try {
|
|
746
|
-
await r(
|
|
781
|
+
await r(z({ variables: { id: t.id } })), o(!1);
|
|
747
782
|
} catch (e) {
|
|
748
|
-
|
|
783
|
+
_(Q(e, "The column could not be deleted."));
|
|
749
784
|
}
|
|
750
785
|
},
|
|
751
786
|
children: "Delete column"
|
|
752
|
-
})] })] })] }), /* @__PURE__ */
|
|
753
|
-
onClick:
|
|
754
|
-
disabled: !
|
|
755
|
-
"data-testid": `${
|
|
756
|
-
children:
|
|
787
|
+
})] })] })] }), /* @__PURE__ */ b(O, {
|
|
788
|
+
onClick: J,
|
|
789
|
+
disabled: !U,
|
|
790
|
+
"data-testid": `${Y}-save`,
|
|
791
|
+
children: B ? "Saving…" : n ? "Save" : "Add column"
|
|
757
792
|
})]
|
|
758
793
|
})
|
|
759
794
|
]
|
|
@@ -761,6 +796,6 @@ function he({ boardId: e, column: t }) {
|
|
|
761
796
|
});
|
|
762
797
|
}
|
|
763
798
|
//#endregion
|
|
764
|
-
export {
|
|
799
|
+
export { ue as ProjectBoard };
|
|
765
800
|
|
|
766
801
|
//# sourceMappingURL=ProjectBoard.js.map
|