@burdenoff/microfe-planmagnet 2026.928.7 → 2026.928.9
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/PlanMagnetRoutes.d.ts.map +1 -1
- package/dist/planmagnet/PlanMagnetRoutes.js +18 -14
- package/dist/planmagnet/PlanMagnetRoutes.js.map +1 -1
- package/dist/planmagnet/automation/AutomationRuleFields.d.ts.map +1 -1
- package/dist/planmagnet/automation/AutomationRuleFields.js +13 -12
- package/dist/planmagnet/automation/AutomationRuleFields.js.map +1 -1
- package/dist/planmagnet/controls/WorkItemControls.d.ts +21 -0
- package/dist/planmagnet/controls/WorkItemControls.d.ts.map +1 -1
- package/dist/planmagnet/controls/WorkItemControls.js +34 -15
- package/dist/planmagnet/controls/WorkItemControls.js.map +1 -1
- package/dist/planmagnet/pages/ProjectsCriticalPathPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/ProjectsCriticalPathPagePage.js +153 -63
- package/dist/planmagnet/pages/ProjectsCriticalPathPagePage.js.map +1 -1
- package/dist/planmagnet/pages/ReportsReportsPagePage.d.ts +0 -7
- package/dist/planmagnet/pages/ReportsReportsPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/ReportsReportsPagePage.js +517 -39
- package/dist/planmagnet/pages/ReportsReportsPagePage.js.map +1 -1
- package/dist/planmagnet/pages/TasksMyWorkPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/TasksMyWorkPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/TasksMyWorkPagePage.js +257 -0
- package/dist/planmagnet/pages/TasksMyWorkPagePage.js.map +1 -0
- package/dist/planmagnet/pages/TemplatesTemplatesPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/TemplatesTemplatesPagePage.js +77 -70
- package/dist/planmagnet/pages/TemplatesTemplatesPagePage.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlanMagnetRoutes.d.ts","sourceRoot":"","sources":["../../src/planmagnet/PlanMagnetRoutes.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PlanMagnetRoutes.d.ts","sourceRoot":"","sources":["../../src/planmagnet/PlanMagnetRoutes.tsx"],"names":[],"mappings":"AAmVA,wBAAgB,gBAAgB,4CAkN/B"}
|
|
@@ -4,16 +4,16 @@ import { Loader2 as ee } from "lucide-react";
|
|
|
4
4
|
import { Route as r, Routes as i } from "react-router";
|
|
5
5
|
import { jsx as a, jsxs as o } from "react/jsx-runtime";
|
|
6
6
|
//#region src/planmagnet/PlanMagnetRoutes.tsx
|
|
7
|
-
var te = n(() => import("./pages/NotFoundPage.js").then((e) => ({ default: e.PlanMagnetNotFoundPage }))), ne = n(() => import("./pages/DocsDocsPagePage.js").then((e) => ({ default: e.DocsDocsPagePage }))), s = n(() => import("./pages/DocsDocDetailPagePage.js").then((e) => ({ default: e.DocsDocDetailPagePage }))), c = n(() => import("./pages/DashboardDashboardPagePage.js").then((e) => ({ default: e.DashboardDashboardPagePage }))), l = n(() => import("./pages/ProductsCreateProductPagePage.js").then((e) => ({ default: e.ProductsCreateProductPagePage }))), re = n(() => import("./pages/ProductsCreateRoadmapPagePage.js").then((e) => ({ default: e.ProductsCreateRoadmapPagePage }))), u = n(() => import("./pages/ProductsEditProductPagePage.js").then((e) => ({ default: e.ProductsEditProductPagePage }))), d = n(() => import("./pages/ProductsEditReleasePagePage.js").then((e) => ({ default: e.ProductsEditReleasePagePage }))), f = n(() => import("./pages/ProductsFeatureAnalyticsPagePage.js").then((e) => ({ default: e.ProductsFeatureAnalyticsPagePage }))), p = n(() => import("./pages/ProductsFeatureDetailPagePage.js").then((e) => ({ default: e.ProductsFeatureDetailPagePage }))), m = n(() => import("./pages/ProductsFeaturesPagePage.js").then((e) => ({ default: e.ProductsFeaturesPagePage }))), h = n(() => import("./pages/ProductsNewFeaturePagePage.js").then((e) => ({ default: e.ProductsNewFeaturePagePage }))), g = n(() => import("./pages/ProductsProductDetailPagePage.js").then((e) => ({ default: e.ProductsProductDetailPagePage }))), ie = n(() => import("./pages/ProductsProductsPagePage.js").then((e) => ({ default: e.ProductsProductsPagePage }))), _ = n(() => import("./pages/ProductsReleaseDetailPagePage.js").then((e) => ({ default: e.ProductsReleaseDetailPagePage }))), ae = n(() => import("./pages/ProductsReleasesPagePage.js").then((e) => ({ default: e.ProductsReleasesPagePage }))), v = n(() => import("./pages/ProductsRoadmapAnalyticsPagePage.js").then((e) => ({ default: e.ProductsRoadmapAnalyticsPagePage }))), y = n(() => import("./pages/ProductsRoadmapDetailPagePage.js").then((e) => ({ default: e.ProductsRoadmapDetailPagePage }))), oe = n(() => import("./pages/ProductsRoadmapsPagePage.js").then((e) => ({ default: e.ProductsRoadmapsPagePage }))), se = n(() => import("./pages/PortfoliosPortfoliosPagePage.js").then((e) => ({ default: e.PortfoliosPortfoliosPagePage }))), b = n(() => import("./pages/PortfoliosCreatePortfolioPagePage.js").then((e) => ({ default: e.PortfoliosCreatePortfolioPagePage }))), x = n(() => import("./pages/PortfoliosPortfolioDetailPagePage.js").then((e) => ({ default: e.PortfoliosPortfolioDetailPagePage }))), S = n(() => import("./pages/PortfoliosEditPortfolioPagePage.js").then((e) => ({ default: e.PortfoliosEditPortfolioPagePage }))), C = n(() => import("./pages/ProgramsProgramsPagePage.js").then((e) => ({ default: e.ProgramsProgramsPagePage }))), w = n(() => import("./pages/ProgramsCreateProgramPagePage.js").then((e) => ({ default: e.ProgramsCreateProgramPagePage }))), T = n(() => import("./pages/ProgramsProgramDetailPagePage.js").then((e) => ({ default: e.ProgramsProgramDetailPagePage }))), E = n(() => import("./pages/ProgramsEditProgramPagePage.js").then((e) => ({ default: e.ProgramsEditProgramPagePage }))), D = n(() => import("./pages/CompetitorsCompetitorsPagePage.js").then((e) => ({ default: e.CompetitorsCompetitorsPagePage }))), O = n(() => import("./pages/CompetitorsCreateCompetitorPagePage.js").then((e) => ({ default: e.CompetitorsCreateCompetitorPagePage }))), k = n(() => import("./pages/CompetitorsCompetitorDetailPagePage.js").then((e) => ({ default: e.CompetitorsCompetitorDetailPagePage }))), A = n(() => import("./pages/CompetitorsEditCompetitorPagePage.js").then((e) => ({ default: e.CompetitorsEditCompetitorPagePage }))), j = n(() => import("./pages/ProjectsActiveProjectsPagePage.js").then((e) => ({ default: e.ProjectsActiveProjectsPagePage }))), M = n(() => import("./pages/ProjectsCreateProjectPagePage.js").then((e) => ({ default: e.ProjectsCreateProjectPagePage }))), N = n(() => import("./pages/ProjectsEditProjectPagePage.js").then((e) => ({ default: e.ProjectsEditProjectPagePage }))), P = n(() => import("./pages/ProjectsMilestoneDetailPagePage.js").then((e) => ({ default: e.ProjectsMilestoneDetailPagePage }))), F = n(() => import("./pages/ProjectsBudgetsPagePage.js").then((e) => ({ default: e.ProjectsBudgetsPagePage }))), I = n(() => import("./pages/ProjectsBudgetDetailPagePage.js").then((e) => ({ default: e.ProjectsBudgetDetailPagePage }))), L = n(() => import("./pages/TasksTimeEntriesPagePage.js").then((e) => ({ default: e.TasksTimeEntriesPagePage }))), R = n(() => import("./pages/TasksTimesheetsPagePage.js").then((e) => ({ default: e.TasksTimesheetsPagePage }))), z = n(() => import("./pages/TasksTimesheetDetailPagePage.js").then((e) => ({ default: e.TasksTimesheetDetailPagePage }))), B = n(() => import("./pages/GoalsGoalsPagePage.js").then((e) => ({ default: e.GoalsGoalsPagePage }))), V = n(() => import("./pages/GoalsCreateObjectivePagePage.js").then((e) => ({ default: e.GoalsCreateObjectivePagePage }))), H = n(() => import("./pages/GoalsObjectiveDetailPagePage.js").then((e) => ({ default: e.GoalsObjectiveDetailPagePage }))), U = n(() => import("./pages/ProjectsMilestonesPagePage.js").then((e) => ({ default: e.ProjectsMilestonesPagePage }))), W = n(() => import("./pages/ProjectsPlanningDetailPagePage.js").then((e) => ({ default: e.ProjectsPlanningDetailPagePage }))), G = n(() => import("./pages/ProjectsPlanningEditPagePage.js").then((e) => ({ default: e.ProjectsPlanningEditPagePage }))), K = n(() => import("./pages/ProjectsPlanningPagePage.js").then((e) => ({ default: e.ProjectsPlanningPagePage }))), q = n(() => import("./pages/ProjectsProjectDetailPagePage.js").then((e) => ({ default: e.ProjectsProjectDetailPagePage }))), ce = n(() => import("./pages/ProjectsProjectsPagePage.js").then((e) => ({ default: e.ProjectsProjectsPagePage }))), le = n(() => import("./pages/ReportsCreateReportPagePage.js").then((e) => ({ default: e.ReportsCreateReportPagePage }))), ue = n(() => import("./pages/ReportsReportsPagePage.js").then((e) => ({ default: e.ReportsReportsPagePage }))), de = n(() => import("./pages/SprintsStartSprintPagePage.js").then((e) => ({ default: e.SprintsStartSprintPagePage }))), fe = n(() => import("./pages/TasksCreateTaskPagePage.js").then((e) => ({ default: e.TasksCreateTaskPagePage }))), pe = n(() => import("./pages/TasksEditTaskPagePage.js").then((e) => ({ default: e.TasksEditTaskPagePage }))), me = n(() => import("./pages/ProjectsWorkflowPagePage.js").then((e) => ({ default: e.ProjectsWorkflowPagePage }))), he = n(() => import("./pages/ProjectsCustomFieldsPagePage.js").then((e) => ({ default: e.ProjectsCustomFieldsPagePage }))), ge = n(() => import("./pages/TasksImportPagePage.js").then((e) => ({ default: e.TasksImportPagePage }))), _e = n(() => import("./pages/TasksTaskDetailPagePage.js").then((e) => ({ default: e.TasksTaskDetailPagePage }))), ve = n(() => import("./pages/TasksTasksPagePage.js").then((e) => ({ default: e.TasksTasksPagePage }))), ye = n(() => import("./pages/TeamCreateTeamPagePage.js").then((e) => ({ default: e.TeamCreateTeamPagePage }))),
|
|
8
|
-
function
|
|
7
|
+
var te = n(() => import("./pages/NotFoundPage.js").then((e) => ({ default: e.PlanMagnetNotFoundPage }))), ne = n(() => import("./pages/DocsDocsPagePage.js").then((e) => ({ default: e.DocsDocsPagePage }))), s = n(() => import("./pages/DocsDocDetailPagePage.js").then((e) => ({ default: e.DocsDocDetailPagePage }))), c = n(() => import("./pages/DashboardDashboardPagePage.js").then((e) => ({ default: e.DashboardDashboardPagePage }))), l = n(() => import("./pages/ProductsCreateProductPagePage.js").then((e) => ({ default: e.ProductsCreateProductPagePage }))), re = n(() => import("./pages/ProductsCreateRoadmapPagePage.js").then((e) => ({ default: e.ProductsCreateRoadmapPagePage }))), u = n(() => import("./pages/ProductsEditProductPagePage.js").then((e) => ({ default: e.ProductsEditProductPagePage }))), d = n(() => import("./pages/ProductsEditReleasePagePage.js").then((e) => ({ default: e.ProductsEditReleasePagePage }))), f = n(() => import("./pages/ProductsFeatureAnalyticsPagePage.js").then((e) => ({ default: e.ProductsFeatureAnalyticsPagePage }))), p = n(() => import("./pages/ProductsFeatureDetailPagePage.js").then((e) => ({ default: e.ProductsFeatureDetailPagePage }))), m = n(() => import("./pages/ProductsFeaturesPagePage.js").then((e) => ({ default: e.ProductsFeaturesPagePage }))), h = n(() => import("./pages/ProductsNewFeaturePagePage.js").then((e) => ({ default: e.ProductsNewFeaturePagePage }))), g = n(() => import("./pages/ProductsProductDetailPagePage.js").then((e) => ({ default: e.ProductsProductDetailPagePage }))), ie = n(() => import("./pages/ProductsProductsPagePage.js").then((e) => ({ default: e.ProductsProductsPagePage }))), _ = n(() => import("./pages/ProductsReleaseDetailPagePage.js").then((e) => ({ default: e.ProductsReleaseDetailPagePage }))), ae = n(() => import("./pages/ProductsReleasesPagePage.js").then((e) => ({ default: e.ProductsReleasesPagePage }))), v = n(() => import("./pages/ProductsRoadmapAnalyticsPagePage.js").then((e) => ({ default: e.ProductsRoadmapAnalyticsPagePage }))), y = n(() => import("./pages/ProductsRoadmapDetailPagePage.js").then((e) => ({ default: e.ProductsRoadmapDetailPagePage }))), oe = n(() => import("./pages/ProductsRoadmapsPagePage.js").then((e) => ({ default: e.ProductsRoadmapsPagePage }))), se = n(() => import("./pages/PortfoliosPortfoliosPagePage.js").then((e) => ({ default: e.PortfoliosPortfoliosPagePage }))), b = n(() => import("./pages/PortfoliosCreatePortfolioPagePage.js").then((e) => ({ default: e.PortfoliosCreatePortfolioPagePage }))), x = n(() => import("./pages/PortfoliosPortfolioDetailPagePage.js").then((e) => ({ default: e.PortfoliosPortfolioDetailPagePage }))), S = n(() => import("./pages/PortfoliosEditPortfolioPagePage.js").then((e) => ({ default: e.PortfoliosEditPortfolioPagePage }))), C = n(() => import("./pages/ProgramsProgramsPagePage.js").then((e) => ({ default: e.ProgramsProgramsPagePage }))), w = n(() => import("./pages/ProgramsCreateProgramPagePage.js").then((e) => ({ default: e.ProgramsCreateProgramPagePage }))), T = n(() => import("./pages/ProgramsProgramDetailPagePage.js").then((e) => ({ default: e.ProgramsProgramDetailPagePage }))), E = n(() => import("./pages/ProgramsEditProgramPagePage.js").then((e) => ({ default: e.ProgramsEditProgramPagePage }))), D = n(() => import("./pages/CompetitorsCompetitorsPagePage.js").then((e) => ({ default: e.CompetitorsCompetitorsPagePage }))), O = n(() => import("./pages/CompetitorsCreateCompetitorPagePage.js").then((e) => ({ default: e.CompetitorsCreateCompetitorPagePage }))), k = n(() => import("./pages/CompetitorsCompetitorDetailPagePage.js").then((e) => ({ default: e.CompetitorsCompetitorDetailPagePage }))), A = n(() => import("./pages/CompetitorsEditCompetitorPagePage.js").then((e) => ({ default: e.CompetitorsEditCompetitorPagePage }))), j = n(() => import("./pages/ProjectsActiveProjectsPagePage.js").then((e) => ({ default: e.ProjectsActiveProjectsPagePage }))), M = n(() => import("./pages/ProjectsCreateProjectPagePage.js").then((e) => ({ default: e.ProjectsCreateProjectPagePage }))), N = n(() => import("./pages/ProjectsEditProjectPagePage.js").then((e) => ({ default: e.ProjectsEditProjectPagePage }))), P = n(() => import("./pages/ProjectsMilestoneDetailPagePage.js").then((e) => ({ default: e.ProjectsMilestoneDetailPagePage }))), F = n(() => import("./pages/ProjectsBudgetsPagePage.js").then((e) => ({ default: e.ProjectsBudgetsPagePage }))), I = n(() => import("./pages/ProjectsBudgetDetailPagePage.js").then((e) => ({ default: e.ProjectsBudgetDetailPagePage }))), L = n(() => import("./pages/TasksTimeEntriesPagePage.js").then((e) => ({ default: e.TasksTimeEntriesPagePage }))), R = n(() => import("./pages/TasksTimesheetsPagePage.js").then((e) => ({ default: e.TasksTimesheetsPagePage }))), z = n(() => import("./pages/TasksTimesheetDetailPagePage.js").then((e) => ({ default: e.TasksTimesheetDetailPagePage }))), B = n(() => import("./pages/GoalsGoalsPagePage.js").then((e) => ({ default: e.GoalsGoalsPagePage }))), V = n(() => import("./pages/GoalsCreateObjectivePagePage.js").then((e) => ({ default: e.GoalsCreateObjectivePagePage }))), H = n(() => import("./pages/GoalsObjectiveDetailPagePage.js").then((e) => ({ default: e.GoalsObjectiveDetailPagePage }))), U = n(() => import("./pages/ProjectsMilestonesPagePage.js").then((e) => ({ default: e.ProjectsMilestonesPagePage }))), W = n(() => import("./pages/ProjectsPlanningDetailPagePage.js").then((e) => ({ default: e.ProjectsPlanningDetailPagePage }))), G = n(() => import("./pages/ProjectsPlanningEditPagePage.js").then((e) => ({ default: e.ProjectsPlanningEditPagePage }))), K = n(() => import("./pages/ProjectsPlanningPagePage.js").then((e) => ({ default: e.ProjectsPlanningPagePage }))), q = n(() => import("./pages/ProjectsProjectDetailPagePage.js").then((e) => ({ default: e.ProjectsProjectDetailPagePage }))), ce = n(() => import("./pages/ProjectsProjectsPagePage.js").then((e) => ({ default: e.ProjectsProjectsPagePage }))), le = n(() => import("./pages/ReportsCreateReportPagePage.js").then((e) => ({ default: e.ReportsCreateReportPagePage }))), ue = n(() => import("./pages/ReportsReportsPagePage.js").then((e) => ({ default: e.ReportsReportsPagePage }))), de = n(() => import("./pages/SprintsStartSprintPagePage.js").then((e) => ({ default: e.SprintsStartSprintPagePage }))), fe = n(() => import("./pages/TasksCreateTaskPagePage.js").then((e) => ({ default: e.TasksCreateTaskPagePage }))), pe = n(() => import("./pages/TasksEditTaskPagePage.js").then((e) => ({ default: e.TasksEditTaskPagePage }))), me = n(() => import("./pages/ProjectsWorkflowPagePage.js").then((e) => ({ default: e.ProjectsWorkflowPagePage }))), he = n(() => import("./pages/ProjectsCustomFieldsPagePage.js").then((e) => ({ default: e.ProjectsCustomFieldsPagePage }))), ge = n(() => import("./pages/TasksImportPagePage.js").then((e) => ({ default: e.TasksImportPagePage }))), _e = n(() => import("./pages/TasksTaskDetailPagePage.js").then((e) => ({ default: e.TasksTaskDetailPagePage }))), ve = n(() => import("./pages/TasksTasksPagePage.js").then((e) => ({ default: e.TasksTasksPagePage }))), ye = n(() => import("./pages/TasksMyWorkPagePage.js").then((e) => ({ default: e.TasksMyWorkPagePage }))), be = n(() => import("./pages/TeamCreateTeamPagePage.js").then((e) => ({ default: e.TeamCreateTeamPagePage }))), xe = n(() => import("./pages/TeamInviteMemberPagePage.js").then((e) => ({ default: e.TeamInviteMemberPagePage }))), Se = n(() => import("./pages/TeamTeamPagePage.js").then((e) => ({ default: e.TeamTeamPagePage }))), Ce = n(() => import("./pages/TeamTeamsListPagePage.js").then((e) => ({ default: e.TeamTeamsListPagePage }))), J = n(() => import("./pages/TeamTeamDetailPagePage.js").then((e) => ({ default: e.TeamTeamDetailPagePage }))), Y = n(() => import("./pages/TeamTeamEditPagePage.js").then((e) => ({ default: e.TeamTeamEditPagePage }))), we = n(() => import("./pages/WorkspaceCreateWorkspacePagePage.js").then((e) => ({ default: e.WorkspaceCreateWorkspacePagePage }))), Te = n(() => import("./pages/AutomationAutomationRulesPagePage.js").then((e) => ({ default: e.AutomationAutomationRulesPagePage }))), Ee = n(() => import("./pages/AutomationCreateAutomationRulePagePage.js").then((e) => ({ default: e.AutomationCreateAutomationRulePagePage }))), X = n(() => import("./pages/AutomationAutomationRuleDetailPagePage.js").then((e) => ({ default: e.AutomationAutomationRuleDetailPagePage }))), De = n(() => import("./pages/TemplatesTemplatesPagePage.js").then((e) => ({ default: e.TemplatesTemplatesPagePage }))), Z = n(() => import("./pages/TemplatesEditTemplatePagePage.js").then((e) => ({ default: e.TemplatesEditTemplatePagePage }))), Oe = n(() => import("./pages/RisksRiskRegisterPagePage.js").then((e) => ({ default: e.RisksRiskRegisterPagePage }))), Q = n(() => import("./pages/RisksRiskDetailPagePage.js").then((e) => ({ default: e.RisksRiskDetailPagePage }))), $ = n(() => import("./pages/ProjectsCriticalPathPagePage.js").then((e) => ({ default: e.ProjectsCriticalPathPagePage })));
|
|
8
|
+
function ke() {
|
|
9
9
|
return /* @__PURE__ */ a("div", {
|
|
10
10
|
className: "flex min-h-[320px] items-center justify-center",
|
|
11
11
|
children: /* @__PURE__ */ a(ee, { className: "h-8 w-8 animate-spin text-primary" })
|
|
12
12
|
});
|
|
13
13
|
}
|
|
14
|
-
function
|
|
14
|
+
function Ae() {
|
|
15
15
|
return /* @__PURE__ */ a(t, {
|
|
16
|
-
fallback: /* @__PURE__ */ a(
|
|
16
|
+
fallback: /* @__PURE__ */ a(ke, {}),
|
|
17
17
|
children: /* @__PURE__ */ o(i, { children: [
|
|
18
18
|
/* @__PURE__ */ a(r, {
|
|
19
19
|
index: !0,
|
|
@@ -263,6 +263,10 @@ function ke() {
|
|
|
263
263
|
path: "goals/objective-detail-page",
|
|
264
264
|
element: /* @__PURE__ */ a(H, {})
|
|
265
265
|
}),
|
|
266
|
+
/* @__PURE__ */ a(r, {
|
|
267
|
+
path: "tasks/my-work-page",
|
|
268
|
+
element: /* @__PURE__ */ a(ye, {})
|
|
269
|
+
}),
|
|
266
270
|
/* @__PURE__ */ a(r, {
|
|
267
271
|
path: "tasks/tasks-page",
|
|
268
272
|
element: /* @__PURE__ */ a(ve, {})
|
|
@@ -321,11 +325,11 @@ function ke() {
|
|
|
321
325
|
}),
|
|
322
326
|
/* @__PURE__ */ a(r, {
|
|
323
327
|
path: "team/team-page",
|
|
324
|
-
element: /* @__PURE__ */ a(
|
|
328
|
+
element: /* @__PURE__ */ a(Se, {})
|
|
325
329
|
}),
|
|
326
330
|
/* @__PURE__ */ a(r, {
|
|
327
331
|
path: "team/teams-page",
|
|
328
|
-
element: /* @__PURE__ */ a(
|
|
332
|
+
element: /* @__PURE__ */ a(Ce, {})
|
|
329
333
|
}),
|
|
330
334
|
/* @__PURE__ */ a(r, {
|
|
331
335
|
path: "team/team-detail-page",
|
|
@@ -345,23 +349,23 @@ function ke() {
|
|
|
345
349
|
}),
|
|
346
350
|
/* @__PURE__ */ a(r, {
|
|
347
351
|
path: "team/create-team-page",
|
|
348
|
-
element: /* @__PURE__ */ a(
|
|
352
|
+
element: /* @__PURE__ */ a(be, {})
|
|
349
353
|
}),
|
|
350
354
|
/* @__PURE__ */ a(r, {
|
|
351
355
|
path: "team/invite-member-page",
|
|
352
|
-
element: /* @__PURE__ */ a(
|
|
356
|
+
element: /* @__PURE__ */ a(xe, {})
|
|
353
357
|
}),
|
|
354
358
|
/* @__PURE__ */ a(r, {
|
|
355
359
|
path: "workspace/create-workspace-page",
|
|
356
|
-
element: /* @__PURE__ */ a(
|
|
360
|
+
element: /* @__PURE__ */ a(we, {})
|
|
357
361
|
}),
|
|
358
362
|
/* @__PURE__ */ a(r, {
|
|
359
363
|
path: "automation/automation-rules-page",
|
|
360
|
-
element: /* @__PURE__ */ a(
|
|
364
|
+
element: /* @__PURE__ */ a(Te, {})
|
|
361
365
|
}),
|
|
362
366
|
/* @__PURE__ */ a(r, {
|
|
363
367
|
path: "automation/create-automation-rule-page",
|
|
364
|
-
element: /* @__PURE__ */ a(
|
|
368
|
+
element: /* @__PURE__ */ a(Ee, {})
|
|
365
369
|
}),
|
|
366
370
|
/* @__PURE__ */ a(r, {
|
|
367
371
|
path: "automation/automation-rule-detail-page",
|
|
@@ -373,7 +377,7 @@ function ke() {
|
|
|
373
377
|
}),
|
|
374
378
|
/* @__PURE__ */ a(r, {
|
|
375
379
|
path: "templates/templates-page",
|
|
376
|
-
element: /* @__PURE__ */ a(
|
|
380
|
+
element: /* @__PURE__ */ a(De, {})
|
|
377
381
|
}),
|
|
378
382
|
/* @__PURE__ */ a(r, {
|
|
379
383
|
path: "templates/edit-template-page",
|
|
@@ -385,7 +389,7 @@ function ke() {
|
|
|
385
389
|
}),
|
|
386
390
|
/* @__PURE__ */ a(r, {
|
|
387
391
|
path: "risks/risk-register-page",
|
|
388
|
-
element: /* @__PURE__ */ a(
|
|
392
|
+
element: /* @__PURE__ */ a(Oe, {})
|
|
389
393
|
}),
|
|
390
394
|
/* @__PURE__ */ a(r, {
|
|
391
395
|
path: "risks/risk-detail-page",
|
|
@@ -407,6 +411,6 @@ function ke() {
|
|
|
407
411
|
});
|
|
408
412
|
}
|
|
409
413
|
//#endregion
|
|
410
|
-
export {
|
|
414
|
+
export { Ae as PlanMagnetRoutes };
|
|
411
415
|
|
|
412
416
|
//# sourceMappingURL=PlanMagnetRoutes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlanMagnetRoutes.js","names":[],"sources":["../../src/planmagnet/PlanMagnetRoutes.tsx"],"sourcesContent":["import { lazy, Suspense } from 'react';\nimport { Route, Routes } from 'react-router';\nimport { Loader2 } from 'lucide-react';\nimport { AnalyticsAnalyticsPagePage } from './pages/AnalyticsAnalyticsPagePage';\n\nconst PlanMagnetNotFoundPage = lazy(() =>\n import('./pages/NotFoundPage').then((m) => ({ default: m.PlanMagnetNotFoundPage }))\n);\nconst DocsDocsPagePage = lazy(() =>\n import('./pages/DocsDocsPagePage').then((m) => ({ default: m.DocsDocsPagePage }))\n);\nconst DocsDocDetailPagePage = lazy(() =>\n import('./pages/DocsDocDetailPagePage').then((m) => ({ default: m.DocsDocDetailPagePage }))\n);\nconst DashboardDashboardPagePage = lazy(() =>\n import('./pages/DashboardDashboardPagePage').then((m) => ({\n default: m.DashboardDashboardPagePage,\n }))\n);\nconst ProductsCreateProductPagePage = lazy(() =>\n import('./pages/ProductsCreateProductPagePage').then((m) => ({\n default: m.ProductsCreateProductPagePage,\n }))\n);\nconst ProductsCreateRoadmapPagePage = lazy(() =>\n import('./pages/ProductsCreateRoadmapPagePage').then((m) => ({\n default: m.ProductsCreateRoadmapPagePage,\n }))\n);\nconst ProductsEditProductPagePage = lazy(() =>\n import('./pages/ProductsEditProductPagePage').then((m) => ({\n default: m.ProductsEditProductPagePage,\n }))\n);\nconst ProductsEditReleasePagePage = lazy(() =>\n import('./pages/ProductsEditReleasePagePage').then((m) => ({\n default: m.ProductsEditReleasePagePage,\n }))\n);\nconst ProductsFeatureAnalyticsPagePage = lazy(() =>\n import('./pages/ProductsFeatureAnalyticsPagePage').then((m) => ({\n default: m.ProductsFeatureAnalyticsPagePage,\n }))\n);\nconst ProductsFeatureDetailPagePage = lazy(() =>\n import('./pages/ProductsFeatureDetailPagePage').then((m) => ({\n default: m.ProductsFeatureDetailPagePage,\n }))\n);\nconst ProductsFeaturesPagePage = lazy(() =>\n import('./pages/ProductsFeaturesPagePage').then((m) => ({ default: m.ProductsFeaturesPagePage }))\n);\nconst ProductsNewFeaturePagePage = lazy(() =>\n import('./pages/ProductsNewFeaturePagePage').then((m) => ({\n default: m.ProductsNewFeaturePagePage,\n }))\n);\nconst ProductsProductDetailPagePage = lazy(() =>\n import('./pages/ProductsProductDetailPagePage').then((m) => ({\n default: m.ProductsProductDetailPagePage,\n }))\n);\nconst ProductsProductsPagePage = lazy(() =>\n import('./pages/ProductsProductsPagePage').then((m) => ({ default: m.ProductsProductsPagePage }))\n);\nconst ProductsReleaseDetailPagePage = lazy(() =>\n import('./pages/ProductsReleaseDetailPagePage').then((m) => ({\n default: m.ProductsReleaseDetailPagePage,\n }))\n);\nconst ProductsReleasesPagePage = lazy(() =>\n import('./pages/ProductsReleasesPagePage').then((m) => ({ default: m.ProductsReleasesPagePage }))\n);\nconst ProductsRoadmapAnalyticsPagePage = lazy(() =>\n import('./pages/ProductsRoadmapAnalyticsPagePage').then((m) => ({\n default: m.ProductsRoadmapAnalyticsPagePage,\n }))\n);\nconst ProductsRoadmapDetailPagePage = lazy(() =>\n import('./pages/ProductsRoadmapDetailPagePage').then((m) => ({\n default: m.ProductsRoadmapDetailPagePage,\n }))\n);\nconst ProductsRoadmapsPagePage = lazy(() =>\n import('./pages/ProductsRoadmapsPagePage').then((m) => ({ default: m.ProductsRoadmapsPagePage }))\n);\nconst PortfoliosPortfoliosPagePage = lazy(() =>\n import('./pages/PortfoliosPortfoliosPagePage').then((m) => ({\n default: m.PortfoliosPortfoliosPagePage,\n }))\n);\nconst PortfoliosCreatePortfolioPagePage = lazy(() =>\n import('./pages/PortfoliosCreatePortfolioPagePage').then((m) => ({\n default: m.PortfoliosCreatePortfolioPagePage,\n }))\n);\nconst PortfoliosPortfolioDetailPagePage = lazy(() =>\n import('./pages/PortfoliosPortfolioDetailPagePage').then((m) => ({\n default: m.PortfoliosPortfolioDetailPagePage,\n }))\n);\nconst PortfoliosEditPortfolioPagePage = lazy(() =>\n import('./pages/PortfoliosEditPortfolioPagePage').then((m) => ({\n default: m.PortfoliosEditPortfolioPagePage,\n }))\n);\nconst ProgramsProgramsPagePage = lazy(() =>\n import('./pages/ProgramsProgramsPagePage').then((m) => ({ default: m.ProgramsProgramsPagePage }))\n);\nconst ProgramsCreateProgramPagePage = lazy(() =>\n import('./pages/ProgramsCreateProgramPagePage').then((m) => ({\n default: m.ProgramsCreateProgramPagePage,\n }))\n);\nconst ProgramsProgramDetailPagePage = lazy(() =>\n import('./pages/ProgramsProgramDetailPagePage').then((m) => ({\n default: m.ProgramsProgramDetailPagePage,\n }))\n);\nconst ProgramsEditProgramPagePage = lazy(() =>\n import('./pages/ProgramsEditProgramPagePage').then((m) => ({\n default: m.ProgramsEditProgramPagePage,\n }))\n);\nconst CompetitorsCompetitorsPagePage = lazy(() =>\n import('./pages/CompetitorsCompetitorsPagePage').then((m) => ({\n default: m.CompetitorsCompetitorsPagePage,\n }))\n);\nconst CompetitorsCreateCompetitorPagePage = lazy(() =>\n import('./pages/CompetitorsCreateCompetitorPagePage').then((m) => ({\n default: m.CompetitorsCreateCompetitorPagePage,\n }))\n);\nconst CompetitorsCompetitorDetailPagePage = lazy(() =>\n import('./pages/CompetitorsCompetitorDetailPagePage').then((m) => ({\n default: m.CompetitorsCompetitorDetailPagePage,\n }))\n);\nconst CompetitorsEditCompetitorPagePage = lazy(() =>\n import('./pages/CompetitorsEditCompetitorPagePage').then((m) => ({\n default: m.CompetitorsEditCompetitorPagePage,\n }))\n);\nconst ProjectsActiveProjectsPagePage = lazy(() =>\n import('./pages/ProjectsActiveProjectsPagePage').then((m) => ({\n default: m.ProjectsActiveProjectsPagePage,\n }))\n);\nconst ProjectsCreateProjectPagePage = lazy(() =>\n import('./pages/ProjectsCreateProjectPagePage').then((m) => ({\n default: m.ProjectsCreateProjectPagePage,\n }))\n);\nconst ProjectsEditProjectPagePage = lazy(() =>\n import('./pages/ProjectsEditProjectPagePage').then((m) => ({\n default: m.ProjectsEditProjectPagePage,\n }))\n);\nconst ProjectsMilestoneDetailPagePage = lazy(() =>\n import('./pages/ProjectsMilestoneDetailPagePage').then((m) => ({\n default: m.ProjectsMilestoneDetailPagePage,\n }))\n);\nconst ProjectsBudgetsPagePage = lazy(() =>\n import('./pages/ProjectsBudgetsPagePage').then((m) => ({ default: m.ProjectsBudgetsPagePage }))\n);\nconst ProjectsBudgetDetailPagePage = lazy(() =>\n import('./pages/ProjectsBudgetDetailPagePage').then((m) => ({\n default: m.ProjectsBudgetDetailPagePage,\n }))\n);\nconst TasksTimeEntriesPagePage = lazy(() =>\n import('./pages/TasksTimeEntriesPagePage').then((m) => ({\n default: m.TasksTimeEntriesPagePage,\n }))\n);\nconst TasksTimesheetsPagePage = lazy(() =>\n import('./pages/TasksTimesheetsPagePage').then((m) => ({\n default: m.TasksTimesheetsPagePage,\n }))\n);\nconst TasksTimesheetDetailPagePage = lazy(() =>\n import('./pages/TasksTimesheetDetailPagePage').then((m) => ({\n default: m.TasksTimesheetDetailPagePage,\n }))\n);\nconst GoalsGoalsPagePage = lazy(() =>\n import('./pages/GoalsGoalsPagePage').then((m) => ({ default: m.GoalsGoalsPagePage }))\n);\nconst GoalsCreateObjectivePagePage = lazy(() =>\n import('./pages/GoalsCreateObjectivePagePage').then((m) => ({\n default: m.GoalsCreateObjectivePagePage,\n }))\n);\nconst GoalsObjectiveDetailPagePage = lazy(() =>\n import('./pages/GoalsObjectiveDetailPagePage').then((m) => ({\n default: m.GoalsObjectiveDetailPagePage,\n }))\n);\nconst ProjectsMilestonesPagePage = lazy(() =>\n import('./pages/ProjectsMilestonesPagePage').then((m) => ({\n default: m.ProjectsMilestonesPagePage,\n }))\n);\nconst ProjectsPlanningDetailPagePage = lazy(() =>\n import('./pages/ProjectsPlanningDetailPagePage').then((m) => ({\n default: m.ProjectsPlanningDetailPagePage,\n }))\n);\nconst ProjectsPlanningEditPagePage = lazy(() =>\n import('./pages/ProjectsPlanningEditPagePage').then((m) => ({\n default: m.ProjectsPlanningEditPagePage,\n }))\n);\nconst ProjectsPlanningPagePage = lazy(() =>\n import('./pages/ProjectsPlanningPagePage').then((m) => ({ default: m.ProjectsPlanningPagePage }))\n);\nconst ProjectsProjectDetailPagePage = lazy(() =>\n import('./pages/ProjectsProjectDetailPagePage').then((m) => ({\n default: m.ProjectsProjectDetailPagePage,\n }))\n);\nconst ProjectsProjectsPagePage = lazy(() =>\n import('./pages/ProjectsProjectsPagePage').then((m) => ({ default: m.ProjectsProjectsPagePage }))\n);\nconst ReportsCreateReportPagePage = lazy(() =>\n import('./pages/ReportsCreateReportPagePage').then((m) => ({\n default: m.ReportsCreateReportPagePage,\n }))\n);\nconst ReportsReportsPagePage = lazy(() =>\n import('./pages/ReportsReportsPagePage').then((m) => ({ default: m.ReportsReportsPagePage }))\n);\nconst SprintsStartSprintPagePage = lazy(() =>\n import('./pages/SprintsStartSprintPagePage').then((m) => ({\n default: m.SprintsStartSprintPagePage,\n }))\n);\nconst TasksCreateTaskPagePage = lazy(() =>\n import('./pages/TasksCreateTaskPagePage').then((m) => ({ default: m.TasksCreateTaskPagePage }))\n);\nconst TasksEditTaskPagePage = lazy(() =>\n import('./pages/TasksEditTaskPagePage').then((m) => ({ default: m.TasksEditTaskPagePage }))\n);\nconst ProjectsWorkflowPagePage = lazy(() =>\n import('./pages/ProjectsWorkflowPagePage').then((m) => ({ default: m.ProjectsWorkflowPagePage }))\n);\nconst ProjectsCustomFieldsPagePage = lazy(() =>\n import('./pages/ProjectsCustomFieldsPagePage').then((m) => ({\n default: m.ProjectsCustomFieldsPagePage,\n }))\n);\nconst TasksImportPagePage = lazy(() =>\n import('./pages/TasksImportPagePage').then((m) => ({ default: m.TasksImportPagePage }))\n);\nconst TasksTaskDetailPagePage = lazy(() =>\n import('./pages/TasksTaskDetailPagePage').then((m) => ({ default: m.TasksTaskDetailPagePage }))\n);\nconst TasksTasksPagePage = lazy(() =>\n import('./pages/TasksTasksPagePage').then((m) => ({ default: m.TasksTasksPagePage }))\n);\nconst TeamCreateTeamPagePage = lazy(() =>\n import('./pages/TeamCreateTeamPagePage').then((m) => ({ default: m.TeamCreateTeamPagePage }))\n);\nconst TeamInviteMemberPagePage = lazy(() =>\n import('./pages/TeamInviteMemberPagePage').then((m) => ({ default: m.TeamInviteMemberPagePage }))\n);\nconst TeamTeamPagePage = lazy(() =>\n import('./pages/TeamTeamPagePage').then((m) => ({ default: m.TeamTeamPagePage }))\n);\nconst TeamTeamsListPagePage = lazy(() =>\n import('./pages/TeamTeamsListPagePage').then((m) => ({ default: m.TeamTeamsListPagePage }))\n);\nconst TeamTeamDetailPagePage = lazy(() =>\n import('./pages/TeamTeamDetailPagePage').then((m) => ({ default: m.TeamTeamDetailPagePage }))\n);\nconst TeamTeamEditPagePage = lazy(() =>\n import('./pages/TeamTeamEditPagePage').then((m) => ({ default: m.TeamTeamEditPagePage }))\n);\nconst WorkspaceCreateWorkspacePagePage = lazy(() =>\n import('./pages/WorkspaceCreateWorkspacePagePage').then((m) => ({\n default: m.WorkspaceCreateWorkspacePagePage,\n }))\n);\n// BOFF-8047: Automation rules and Project templates\nconst AutomationAutomationRulesPagePage = lazy(() =>\n import('./pages/AutomationAutomationRulesPagePage').then((m) => ({\n default: m.AutomationAutomationRulesPagePage,\n }))\n);\nconst AutomationCreateAutomationRulePagePage = lazy(() =>\n import('./pages/AutomationCreateAutomationRulePagePage').then((m) => ({\n default: m.AutomationCreateAutomationRulePagePage,\n }))\n);\nconst AutomationAutomationRuleDetailPagePage = lazy(() =>\n import('./pages/AutomationAutomationRuleDetailPagePage').then((m) => ({\n default: m.AutomationAutomationRuleDetailPagePage,\n }))\n);\nconst TemplatesTemplatesPagePage = lazy(() =>\n import('./pages/TemplatesTemplatesPagePage').then((m) => ({\n default: m.TemplatesTemplatesPagePage,\n }))\n);\nconst TemplatesEditTemplatePagePage = lazy(() =>\n import('./pages/TemplatesEditTemplatePagePage').then((m) => ({\n default: m.TemplatesEditTemplatePagePage,\n }))\n);\nconst RisksRiskRegisterPagePage = lazy(() =>\n import('./pages/RisksRiskRegisterPagePage').then((m) => ({\n default: m.RisksRiskRegisterPagePage,\n }))\n);\nconst RisksRiskDetailPagePage = lazy(() =>\n import('./pages/RisksRiskDetailPagePage').then((m) => ({ default: m.RisksRiskDetailPagePage }))\n);\nconst ProjectsCriticalPathPagePage = lazy(() =>\n import('./pages/ProjectsCriticalPathPagePage').then((m) => ({\n default: m.ProjectsCriticalPathPagePage,\n }))\n);\n\n// Phase 2 new pages\n\nfunction PageLoader() {\n return (\n <div className=\"flex min-h-[320px] items-center justify-center\">\n <Loader2 className=\"h-8 w-8 animate-spin text-primary\" />\n </div>\n );\n}\n\nexport function PlanMagnetRoutes() {\n return (\n <Suspense fallback={<PageLoader />}>\n <Routes>\n <Route index element={<DashboardDashboardPagePage />} />\n {/* Dashboard */}\n <Route path=\"dashboard/dashboard-page\" element={<DashboardDashboardPagePage />} />\n {/* Products */}\n {/*\n The detail/edit/analytics pages below read their record id with\n useParams<{ id: string }>(). Each therefore needs a \":id\" segment — without one the\n id is permanently undefined and the page can never load a record, however it is\n reached. The bare paths are kept alongside so previously-bookmarked URLs still\n resolve rather than falling through to the catch-all redirect.\n */}\n <Route path=\"products/products-page\" element={<ProductsProductsPagePage />} />\n <Route path=\"products/create-product-page\" element={<ProductsCreateProductPagePage />} />\n <Route path=\"products/edit-product-page\" element={<ProductsEditProductPagePage />} />\n <Route path=\"products/edit-product-page/:id\" element={<ProductsEditProductPagePage />} />\n <Route path=\"products/product-detail-page\" element={<ProductsProductDetailPagePage />} />\n <Route\n path=\"products/product-detail-page/:id\"\n element={<ProductsProductDetailPagePage />}\n />\n <Route path=\"products/features-page\" element={<ProductsFeaturesPagePage />} />\n <Route path=\"products/new-feature-page\" element={<ProductsNewFeaturePagePage />} />\n <Route path=\"products/feature-detail-page\" element={<ProductsFeatureDetailPagePage />} />\n <Route\n path=\"products/feature-detail-page/:id\"\n element={<ProductsFeatureDetailPagePage />}\n />\n <Route\n path=\"products/feature-analytics-page\"\n element={<ProductsFeatureAnalyticsPagePage />}\n />\n <Route\n path=\"products/feature-analytics-page/:id\"\n element={<ProductsFeatureAnalyticsPagePage />}\n />\n <Route path=\"products/releases-page\" element={<ProductsReleasesPagePage />} />\n <Route path=\"products/release-detail-page\" element={<ProductsReleaseDetailPagePage />} />\n <Route\n path=\"products/release-detail-page/:id\"\n element={<ProductsReleaseDetailPagePage />}\n />\n <Route path=\"products/edit-release-page\" element={<ProductsEditReleasePagePage />} />\n <Route path=\"products/edit-release-page/:id\" element={<ProductsEditReleasePagePage />} />\n <Route path=\"products/roadmaps-page\" element={<ProductsRoadmapsPagePage />} />\n <Route path=\"products/roadmap-detail-page\" element={<ProductsRoadmapDetailPagePage />} />\n <Route\n path=\"products/roadmap-detail-page/:id\"\n element={<ProductsRoadmapDetailPagePage />}\n />\n <Route path=\"products/create-roadmap-page\" element={<ProductsCreateRoadmapPagePage />} />\n <Route\n path=\"products/roadmap-analytics-page\"\n element={<ProductsRoadmapAnalyticsPagePage />}\n />\n <Route\n path=\"products/roadmap-analytics-page/:id\"\n element={<ProductsRoadmapAnalyticsPagePage />}\n />\n {/* Portfolios (BOFF-8047) */}\n <Route path=\"products/portfolios-page\" element={<PortfoliosPortfoliosPagePage />} />\n <Route\n path=\"products/create-portfolio-page\"\n element={<PortfoliosCreatePortfolioPagePage />}\n />\n <Route\n path=\"products/portfolio-detail-page/:id\"\n element={<PortfoliosPortfolioDetailPagePage />}\n />\n <Route\n path=\"products/edit-portfolio-page/:id\"\n element={<PortfoliosEditPortfolioPagePage />}\n />\n {/* Programs (BOFF-8047) */}\n <Route path=\"products/programs-page\" element={<ProgramsProgramsPagePage />} />\n <Route path=\"products/create-program-page\" element={<ProgramsCreateProgramPagePage />} />\n <Route\n path=\"products/program-detail-page/:id\"\n element={<ProgramsProgramDetailPagePage />}\n />\n <Route path=\"products/edit-program-page/:id\" element={<ProgramsEditProgramPagePage />} />\n {/* Competitors (BOFF-8047) */}\n <Route path=\"products/competitors-page\" element={<CompetitorsCompetitorsPagePage />} />\n <Route\n path=\"products/create-competitor-page\"\n element={<CompetitorsCreateCompetitorPagePage />}\n />\n <Route\n path=\"products/competitor-detail-page/:id\"\n element={<CompetitorsCompetitorDetailPagePage />}\n />\n <Route\n path=\"products/edit-competitor-page/:id\"\n element={<CompetitorsEditCompetitorPagePage />}\n />\n {/* Projects */}\n <Route path=\"projects/projects-page\" element={<ProjectsProjectsPagePage />} />\n <Route path=\"projects/active-projects-page\" element={<ProjectsActiveProjectsPagePage />} />\n <Route path=\"projects/create-project-page\" element={<ProjectsCreateProjectPagePage />} />\n <Route path=\"projects/edit-project-page\" element={<ProjectsEditProjectPagePage />} />\n <Route path=\"projects/edit-project-page/:id\" element={<ProjectsEditProjectPagePage />} />\n <Route path=\"projects/project-detail-page\" element={<ProjectsProjectDetailPagePage />} />\n <Route\n path=\"projects/project-detail-page/:id\"\n element={<ProjectsProjectDetailPagePage />}\n />\n <Route path=\"projects/project-workflow-page/:id\" element={<ProjectsWorkflowPagePage />} />\n <Route\n path=\"projects/project-custom-fields-page/:id\"\n element={<ProjectsCustomFieldsPagePage />}\n />\n <Route path=\"projects/milestones-page\" element={<ProjectsMilestonesPagePage />} />\n <Route\n path=\"projects/milestone-detail-page\"\n element={<ProjectsMilestoneDetailPagePage />}\n />\n <Route\n path=\"projects/milestone-detail-page/:id\"\n element={<ProjectsMilestoneDetailPagePage />}\n />\n <Route path=\"projects/planning-page\" element={<ProjectsPlanningPagePage />} />\n <Route path=\"projects/planning-detail-page\" element={<ProjectsPlanningDetailPagePage />} />\n <Route\n path=\"projects/planning-detail-page/:id\"\n element={<ProjectsPlanningDetailPagePage />}\n />\n <Route path=\"projects/planning-edit-page\" element={<ProjectsPlanningEditPagePage />} />\n <Route path=\"projects/planning-edit-page/:id\" element={<ProjectsPlanningEditPagePage />} />\n <Route path=\"projects/budgets-page\" element={<ProjectsBudgetsPagePage />} />\n <Route path=\"projects/budget-detail-page\" element={<ProjectsBudgetDetailPagePage />} />\n <Route path=\"projects/budget-detail-page/:id\" element={<ProjectsBudgetDetailPagePage />} />\n {/* Critical path (BOFF-8047): CPM over WorkItemDependency, scoped to a project. */}\n <Route path=\"projects/critical-path-page\" element={<ProjectsCriticalPathPagePage />} />\n <Route path=\"projects/critical-path-page/:id\" element={<ProjectsCriticalPathPagePage />} />\n {/* Goals (OKRs, BOFF-4441) */}\n <Route path=\"goals/goals-page\" element={<GoalsGoalsPagePage />} />\n <Route path=\"goals/create-objective-page\" element={<GoalsCreateObjectivePagePage />} />\n <Route path=\"goals/objective-detail-page\" element={<GoalsObjectiveDetailPagePage />} />\n {/* Tasks */}\n <Route path=\"tasks/tasks-page\" element={<TasksTasksPagePage />} />\n <Route path=\"tasks/create-task-page\" element={<TasksCreateTaskPagePage />} />\n <Route path=\"tasks/edit-task-page\" element={<TasksEditTaskPagePage />} />\n <Route path=\"tasks/task-detail-page\" element={<TasksTaskDetailPagePage />} />\n <Route path=\"tasks/import-page\" element={<TasksImportPagePage />} />\n <Route path=\"tasks/time-entries-page\" element={<TasksTimeEntriesPagePage />} />\n <Route path=\"tasks/timesheets-page\" element={<TasksTimesheetsPagePage />} />\n <Route path=\"tasks/timesheet-detail-page\" element={<TasksTimesheetDetailPagePage />} />\n <Route path=\"tasks/timesheet-detail-page/:id\" element={<TasksTimesheetDetailPagePage />} />\n {/* Sprints */}\n <Route path=\"sprints/start-sprint-page\" element={<SprintsStartSprintPagePage />} />\n\n <Route path=\"docs/docs-page\" element={<DocsDocsPagePage />} />\n <Route path=\"docs/doc-detail-page\" element={<DocsDocDetailPagePage />} />\n {/* Reports */}\n <Route path=\"reports/reports-page\" element={<ReportsReportsPagePage />} />\n <Route path=\"reports/create-report-page\" element={<ReportsCreateReportPagePage />} />\n {/* Team */}\n <Route path=\"team/team-page\" element={<TeamTeamPagePage />} />\n <Route path=\"team/teams-page\" element={<TeamTeamsListPagePage />} />\n <Route path=\"team/team-detail-page\" element={<TeamTeamDetailPagePage />} />\n <Route path=\"team/team-detail-page/:id\" element={<TeamTeamDetailPagePage />} />\n <Route path=\"team/team-edit-page\" element={<TeamTeamEditPagePage />} />\n <Route path=\"team/team-edit-page/:id\" element={<TeamTeamEditPagePage />} />\n <Route path=\"team/create-team-page\" element={<TeamCreateTeamPagePage />} />\n <Route path=\"team/invite-member-page\" element={<TeamInviteMemberPagePage />} />\n {/* Workspace */}\n <Route\n path=\"workspace/create-workspace-page\"\n element={<WorkspaceCreateWorkspacePagePage />}\n />\n {/* Automation rules (BOFF-8047) */}\n <Route\n path=\"automation/automation-rules-page\"\n element={<AutomationAutomationRulesPagePage />}\n />\n <Route\n path=\"automation/create-automation-rule-page\"\n element={<AutomationCreateAutomationRulePagePage />}\n />\n <Route\n path=\"automation/automation-rule-detail-page\"\n element={<AutomationAutomationRuleDetailPagePage />}\n />\n <Route\n path=\"automation/automation-rule-detail-page/:id\"\n element={<AutomationAutomationRuleDetailPagePage />}\n />\n {/* Project templates (BOFF-8047) */}\n <Route path=\"templates/templates-page\" element={<TemplatesTemplatesPagePage />} />\n <Route path=\"templates/edit-template-page\" element={<TemplatesEditTemplatePagePage />} />\n <Route\n path=\"templates/edit-template-page/:id\"\n element={<TemplatesEditTemplatePagePage />}\n />\n {/* Risks (BOFF-8047) */}\n <Route path=\"risks/risk-register-page\" element={<RisksRiskRegisterPagePage />} />\n <Route path=\"risks/risk-detail-page\" element={<RisksRiskDetailPagePage />} />\n <Route path=\"risks/risk-detail-page/:id\" element={<RisksRiskDetailPagePage />} />\n {/* Analytics */}\n <Route path=\"analytics/analytics-page\" element={<AnalyticsAnalyticsPagePage />} />\n {/* 404 — a real page, not a redirect to the same URL (H5) */}\n <Route path=\"*\" element={<PlanMagnetNotFoundPage />} />\n </Routes>\n </Suspense>\n );\n}\n"],"mappings":";;;;;;AAKA,IAAM,KAAyB,QAC7B,OAAO,2BAAwB,MAAM,OAAO,EAAE,SAAS,EAAE,wBAAwB,EAAE,CACpF,EACK,KAAmB,QACvB,OAAO,+BAA4B,MAAM,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAClF,EACK,IAAwB,QAC5B,OAAO,oCAAiC,MAAM,OAAO,EAAE,SAAS,EAAE,uBAAuB,EAAE,CAC5F,EACK,IAA6B,QACjC,OAAO,yCAAsC,MAAM,OAAO,EACxD,SAAS,EAAE,4BACZ,EAAE,CACJ,EACK,IAAgC,QACpC,OAAO,4CAAyC,MAAM,OAAO,EAC3D,SAAS,EAAE,+BACZ,EAAE,CACJ,EACK,KAAgC,QACpC,OAAO,4CAAyC,MAAM,OAAO,EAC3D,SAAS,EAAE,+BACZ,EAAE,CACJ,EACK,IAA8B,QAClC,OAAO,0CAAuC,MAAM,OAAO,EACzD,SAAS,EAAE,6BACZ,EAAE,CACJ,EACK,IAA8B,QAClC,OAAO,0CAAuC,MAAM,OAAO,EACzD,SAAS,EAAE,6BACZ,EAAE,CACJ,EACK,IAAmC,QACvC,OAAO,+CAA4C,MAAM,OAAO,EAC9D,SAAS,EAAE,kCACZ,EAAE,CACJ,EACK,IAAgC,QACpC,OAAO,4CAAyC,MAAM,OAAO,EAC3D,SAAS,EAAE,+BACZ,EAAE,CACJ,EACK,IAA2B,QAC/B,OAAO,uCAAoC,MAAM,OAAO,EAAE,SAAS,EAAE,0BAA0B,EAAE,CAClG,EACK,IAA6B,QACjC,OAAO,yCAAsC,MAAM,OAAO,EACxD,SAAS,EAAE,4BACZ,EAAE,CACJ,EACK,IAAgC,QACpC,OAAO,4CAAyC,MAAM,OAAO,EAC3D,SAAS,EAAE,+BACZ,EAAE,CACJ,EACK,KAA2B,QAC/B,OAAO,uCAAoC,MAAM,OAAO,EAAE,SAAS,EAAE,0BAA0B,EAAE,CAClG,EACK,IAAgC,QACpC,OAAO,4CAAyC,MAAM,OAAO,EAC3D,SAAS,EAAE,+BACZ,EAAE,CACJ,EACK,KAA2B,QAC/B,OAAO,uCAAoC,MAAM,OAAO,EAAE,SAAS,EAAE,0BAA0B,EAAE,CAClG,EACK,IAAmC,QACvC,OAAO,+CAA4C,MAAM,OAAO,EAC9D,SAAS,EAAE,kCACZ,EAAE,CACJ,EACK,IAAgC,QACpC,OAAO,4CAAyC,MAAM,OAAO,EAC3D,SAAS,EAAE,+BACZ,EAAE,CACJ,EACK,KAA2B,QAC/B,OAAO,uCAAoC,MAAM,OAAO,EAAE,SAAS,EAAE,0BAA0B,EAAE,CAClG,EACK,KAA+B,QACnC,OAAO,2CAAwC,MAAM,OAAO,EAC1D,SAAS,EAAE,8BACZ,EAAE,CACJ,EACK,IAAoC,QACxC,OAAO,gDAA6C,MAAM,OAAO,EAC/D,SAAS,EAAE,mCACZ,EAAE,CACJ,EACK,IAAoC,QACxC,OAAO,gDAA6C,MAAM,OAAO,EAC/D,SAAS,EAAE,mCACZ,EAAE,CACJ,EACK,IAAkC,QACtC,OAAO,8CAA2C,MAAM,OAAO,EAC7D,SAAS,EAAE,iCACZ,EAAE,CACJ,EACK,IAA2B,QAC/B,OAAO,uCAAoC,MAAM,OAAO,EAAE,SAAS,EAAE,0BAA0B,EAAE,CAClG,EACK,IAAgC,QACpC,OAAO,4CAAyC,MAAM,OAAO,EAC3D,SAAS,EAAE,+BACZ,EAAE,CACJ,EACK,IAAgC,QACpC,OAAO,4CAAyC,MAAM,OAAO,EAC3D,SAAS,EAAE,+BACZ,EAAE,CACJ,EACK,IAA8B,QAClC,OAAO,0CAAuC,MAAM,OAAO,EACzD,SAAS,EAAE,6BACZ,EAAE,CACJ,EACK,IAAiC,QACrC,OAAO,6CAA0C,MAAM,OAAO,EAC5D,SAAS,EAAE,gCACZ,EAAE,CACJ,EACK,IAAsC,QAC1C,OAAO,kDAA+C,MAAM,OAAO,EACjE,SAAS,EAAE,qCACZ,EAAE,CACJ,EACK,IAAsC,QAC1C,OAAO,kDAA+C,MAAM,OAAO,EACjE,SAAS,EAAE,qCACZ,EAAE,CACJ,EACK,IAAoC,QACxC,OAAO,gDAA6C,MAAM,OAAO,EAC/D,SAAS,EAAE,mCACZ,EAAE,CACJ,EACK,IAAiC,QACrC,OAAO,6CAA0C,MAAM,OAAO,EAC5D,SAAS,EAAE,gCACZ,EAAE,CACJ,EACK,IAAgC,QACpC,OAAO,4CAAyC,MAAM,OAAO,EAC3D,SAAS,EAAE,+BACZ,EAAE,CACJ,EACK,IAA8B,QAClC,OAAO,0CAAuC,MAAM,OAAO,EACzD,SAAS,EAAE,6BACZ,EAAE,CACJ,EACK,IAAkC,QACtC,OAAO,8CAA2C,MAAM,OAAO,EAC7D,SAAS,EAAE,iCACZ,EAAE,CACJ,EACK,IAA0B,QAC9B,OAAO,sCAAmC,MAAM,OAAO,EAAE,SAAS,EAAE,yBAAyB,EAAE,CAChG,EACK,IAA+B,QACnC,OAAO,2CAAwC,MAAM,OAAO,EAC1D,SAAS,EAAE,8BACZ,EAAE,CACJ,EACK,IAA2B,QAC/B,OAAO,uCAAoC,MAAM,OAAO,EACtD,SAAS,EAAE,0BACZ,EAAE,CACJ,EACK,IAA0B,QAC9B,OAAO,sCAAmC,MAAM,OAAO,EACrD,SAAS,EAAE,yBACZ,EAAE,CACJ,EACK,IAA+B,QACnC,OAAO,2CAAwC,MAAM,OAAO,EAC1D,SAAS,EAAE,8BACZ,EAAE,CACJ,EACK,IAAqB,QACzB,OAAO,iCAA8B,MAAM,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,CACtF,EACK,IAA+B,QACnC,OAAO,2CAAwC,MAAM,OAAO,EAC1D,SAAS,EAAE,8BACZ,EAAE,CACJ,EACK,IAA+B,QACnC,OAAO,2CAAwC,MAAM,OAAO,EAC1D,SAAS,EAAE,8BACZ,EAAE,CACJ,EACK,IAA6B,QACjC,OAAO,yCAAsC,MAAM,OAAO,EACxD,SAAS,EAAE,4BACZ,EAAE,CACJ,EACK,IAAiC,QACrC,OAAO,6CAA0C,MAAM,OAAO,EAC5D,SAAS,EAAE,gCACZ,EAAE,CACJ,EACK,IAA+B,QACnC,OAAO,2CAAwC,MAAM,OAAO,EAC1D,SAAS,EAAE,8BACZ,EAAE,CACJ,EACK,IAA2B,QAC/B,OAAO,uCAAoC,MAAM,OAAO,EAAE,SAAS,EAAE,0BAA0B,EAAE,CAClG,EACK,IAAgC,QACpC,OAAO,4CAAyC,MAAM,OAAO,EAC3D,SAAS,EAAE,+BACZ,EAAE,CACJ,EACK,KAA2B,QAC/B,OAAO,uCAAoC,MAAM,OAAO,EAAE,SAAS,EAAE,0BAA0B,EAAE,CAClG,EACK,KAA8B,QAClC,OAAO,0CAAuC,MAAM,OAAO,EACzD,SAAS,EAAE,6BACZ,EAAE,CACJ,EACK,KAAyB,QAC7B,OAAO,qCAAkC,MAAM,OAAO,EAAE,SAAS,EAAE,wBAAwB,EAAE,CAC9F,EACK,KAA6B,QACjC,OAAO,yCAAsC,MAAM,OAAO,EACxD,SAAS,EAAE,4BACZ,EAAE,CACJ,EACK,KAA0B,QAC9B,OAAO,sCAAmC,MAAM,OAAO,EAAE,SAAS,EAAE,yBAAyB,EAAE,CAChG,EACK,KAAwB,QAC5B,OAAO,oCAAiC,MAAM,OAAO,EAAE,SAAS,EAAE,uBAAuB,EAAE,CAC5F,EACK,KAA2B,QAC/B,OAAO,uCAAoC,MAAM,OAAO,EAAE,SAAS,EAAE,0BAA0B,EAAE,CAClG,EACK,KAA+B,QACnC,OAAO,2CAAwC,MAAM,OAAO,EAC1D,SAAS,EAAE,8BACZ,EAAE,CACJ,EACK,KAAsB,QAC1B,OAAO,kCAA+B,MAAM,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,CACxF,EACK,KAA0B,QAC9B,OAAO,sCAAmC,MAAM,OAAO,EAAE,SAAS,EAAE,yBAAyB,EAAE,CAChG,EACK,KAAqB,QACzB,OAAO,iCAA8B,MAAM,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,CACtF,EACK,KAAyB,QAC7B,OAAO,qCAAkC,MAAM,OAAO,EAAE,SAAS,EAAE,wBAAwB,EAAE,CAC9F,EACK,KAA2B,QAC/B,OAAO,uCAAoC,MAAM,OAAO,EAAE,SAAS,EAAE,0BAA0B,EAAE,CAClG,EACK,KAAmB,QACvB,OAAO,+BAA4B,MAAM,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAClF,EACK,KAAwB,QAC5B,OAAO,oCAAiC,MAAM,OAAO,EAAE,SAAS,EAAE,uBAAuB,EAAE,CAC5F,EACK,IAAyB,QAC7B,OAAO,qCAAkC,MAAM,OAAO,EAAE,SAAS,EAAE,wBAAwB,EAAE,CAC9F,EACK,IAAuB,QAC3B,OAAO,mCAAgC,MAAM,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE,CAC1F,EACK,KAAmC,QACvC,OAAO,+CAA4C,MAAM,OAAO,EAC9D,SAAS,EAAE,kCACZ,EAAE,CACJ,EAEK,KAAoC,QACxC,OAAO,gDAA6C,MAAM,OAAO,EAC/D,SAAS,EAAE,mCACZ,EAAE,CACJ,EACK,KAAyC,QAC7C,OAAO,qDAAkD,MAAM,OAAO,EACpE,SAAS,EAAE,wCACZ,EAAE,CACJ,EACK,IAAyC,QAC7C,OAAO,qDAAkD,MAAM,OAAO,EACpE,SAAS,EAAE,wCACZ,EAAE,CACJ,EACK,KAA6B,QACjC,OAAO,yCAAsC,MAAM,OAAO,EACxD,SAAS,EAAE,4BACZ,EAAE,CACJ,EACK,IAAgC,QACpC,OAAO,4CAAyC,MAAM,OAAO,EAC3D,SAAS,EAAE,+BACZ,EAAE,CACJ,EACK,KAA4B,QAChC,OAAO,wCAAqC,MAAM,OAAO,EACvD,SAAS,EAAE,2BACZ,EAAE,CACJ,EACK,IAA0B,QAC9B,OAAO,sCAAmC,MAAM,OAAO,EAAE,SAAS,EAAE,yBAAyB,EAAE,CAChG,EACK,IAA+B,QACnC,OAAO,2CAAwC,MAAM,OAAO,EAC1D,SAAS,EAAE,8BACZ,EAAE,CACJ;AAID,SAAS,KAAa;AACpB,QACE,kBAAC,OAAD;EAAK,WAAU;YACb,kBAAC,IAAD,EAAS,WAAU,qCAAsC,CAAA;EACrD,CAAA;;AAIV,SAAgB,KAAmB;AACjC,QACE,kBAAC,GAAD;EAAU,UAAU,kBAAC,IAAD,EAAc,CAAA;YAChC,kBAAC,GAAD,EAAA,UAAA;GACE,kBAAC,GAAD;IAAO,OAAA;IAAM,SAAS,kBAAC,GAAD,EAA8B,CAAA;IAAI,CAAA;GAExD,kBAAC,GAAD;IAAO,MAAK;IAA2B,SAAS,kBAAC,GAAD,EAA8B,CAAA;IAAI,CAAA;GASlF,kBAAC,GAAD;IAAO,MAAK;IAAyB,SAAS,kBAAC,IAAD,EAA4B,CAAA;IAAI,CAAA;GAC9E,kBAAC,GAAD;IAAO,MAAK;IAA+B,SAAS,kBAAC,GAAD,EAAiC,CAAA;IAAI,CAAA;GACzF,kBAAC,GAAD;IAAO,MAAK;IAA6B,SAAS,kBAAC,GAAD,EAA+B,CAAA;IAAI,CAAA;GACrF,kBAAC,GAAD;IAAO,MAAK;IAAiC,SAAS,kBAAC,GAAD,EAA+B,CAAA;IAAI,CAAA;GACzF,kBAAC,GAAD;IAAO,MAAK;IAA+B,SAAS,kBAAC,GAAD,EAAiC,CAAA;IAAI,CAAA;GACzF,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,kBAAC,GAAD,EAAiC,CAAA;IAC1C,CAAA;GACF,kBAAC,GAAD;IAAO,MAAK;IAAyB,SAAS,kBAAC,GAAD,EAA4B,CAAA;IAAI,CAAA;GAC9E,kBAAC,GAAD;IAAO,MAAK;IAA4B,SAAS,kBAAC,GAAD,EAA8B,CAAA;IAAI,CAAA;GACnF,kBAAC,GAAD;IAAO,MAAK;IAA+B,SAAS,kBAAC,GAAD,EAAiC,CAAA;IAAI,CAAA;GACzF,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,kBAAC,GAAD,EAAiC,CAAA;IAC1C,CAAA;GACF,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,kBAAC,GAAD,EAAoC,CAAA;IAC7C,CAAA;GACF,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,kBAAC,GAAD,EAAoC,CAAA;IAC7C,CAAA;GACF,kBAAC,GAAD;IAAO,MAAK;IAAyB,SAAS,kBAAC,IAAD,EAA4B,CAAA;IAAI,CAAA;GAC9E,kBAAC,GAAD;IAAO,MAAK;IAA+B,SAAS,kBAAC,GAAD,EAAiC,CAAA;IAAI,CAAA;GACzF,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,kBAAC,GAAD,EAAiC,CAAA;IAC1C,CAAA;GACF,kBAAC,GAAD;IAAO,MAAK;IAA6B,SAAS,kBAAC,GAAD,EAA+B,CAAA;IAAI,CAAA;GACrF,kBAAC,GAAD;IAAO,MAAK;IAAiC,SAAS,kBAAC,GAAD,EAA+B,CAAA;IAAI,CAAA;GACzF,kBAAC,GAAD;IAAO,MAAK;IAAyB,SAAS,kBAAC,IAAD,EAA4B,CAAA;IAAI,CAAA;GAC9E,kBAAC,GAAD;IAAO,MAAK;IAA+B,SAAS,kBAAC,GAAD,EAAiC,CAAA;IAAI,CAAA;GACzF,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,kBAAC,GAAD,EAAiC,CAAA;IAC1C,CAAA;GACF,kBAAC,GAAD;IAAO,MAAK;IAA+B,SAAS,kBAAC,IAAD,EAAiC,CAAA;IAAI,CAAA;GACzF,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,kBAAC,GAAD,EAAoC,CAAA;IAC7C,CAAA;GACF,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,kBAAC,GAAD,EAAoC,CAAA;IAC7C,CAAA;GAEF,kBAAC,GAAD;IAAO,MAAK;IAA2B,SAAS,kBAAC,IAAD,EAAgC,CAAA;IAAI,CAAA;GACpF,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,kBAAC,GAAD,EAAqC,CAAA;IAC9C,CAAA;GACF,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,kBAAC,GAAD,EAAqC,CAAA;IAC9C,CAAA;GACF,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,kBAAC,GAAD,EAAmC,CAAA;IAC5C,CAAA;GAEF,kBAAC,GAAD;IAAO,MAAK;IAAyB,SAAS,kBAAC,GAAD,EAA4B,CAAA;IAAI,CAAA;GAC9E,kBAAC,GAAD;IAAO,MAAK;IAA+B,SAAS,kBAAC,GAAD,EAAiC,CAAA;IAAI,CAAA;GACzF,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,kBAAC,GAAD,EAAiC,CAAA;IAC1C,CAAA;GACF,kBAAC,GAAD;IAAO,MAAK;IAAiC,SAAS,kBAAC,GAAD,EAA+B,CAAA;IAAI,CAAA;GAEzF,kBAAC,GAAD;IAAO,MAAK;IAA4B,SAAS,kBAAC,GAAD,EAAkC,CAAA;IAAI,CAAA;GACvF,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,kBAAC,GAAD,EAAuC,CAAA;IAChD,CAAA;GACF,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,kBAAC,GAAD,EAAuC,CAAA;IAChD,CAAA;GACF,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,kBAAC,GAAD,EAAqC,CAAA;IAC9C,CAAA;GAEF,kBAAC,GAAD;IAAO,MAAK;IAAyB,SAAS,kBAAC,IAAD,EAA4B,CAAA;IAAI,CAAA;GAC9E,kBAAC,GAAD;IAAO,MAAK;IAAgC,SAAS,kBAAC,GAAD,EAAkC,CAAA;IAAI,CAAA;GAC3F,kBAAC,GAAD;IAAO,MAAK;IAA+B,SAAS,kBAAC,GAAD,EAAiC,CAAA;IAAI,CAAA;GACzF,kBAAC,GAAD;IAAO,MAAK;IAA6B,SAAS,kBAAC,GAAD,EAA+B,CAAA;IAAI,CAAA;GACrF,kBAAC,GAAD;IAAO,MAAK;IAAiC,SAAS,kBAAC,GAAD,EAA+B,CAAA;IAAI,CAAA;GACzF,kBAAC,GAAD;IAAO,MAAK;IAA+B,SAAS,kBAAC,GAAD,EAAiC,CAAA;IAAI,CAAA;GACzF,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,kBAAC,GAAD,EAAiC,CAAA;IAC1C,CAAA;GACF,kBAAC,GAAD;IAAO,MAAK;IAAqC,SAAS,kBAAC,IAAD,EAA4B,CAAA;IAAI,CAAA;GAC1F,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,kBAAC,IAAD,EAAgC,CAAA;IACzC,CAAA;GACF,kBAAC,GAAD;IAAO,MAAK;IAA2B,SAAS,kBAAC,GAAD,EAA8B,CAAA;IAAI,CAAA;GAClF,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,kBAAC,GAAD,EAAmC,CAAA;IAC5C,CAAA;GACF,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,kBAAC,GAAD,EAAmC,CAAA;IAC5C,CAAA;GACF,kBAAC,GAAD;IAAO,MAAK;IAAyB,SAAS,kBAAC,GAAD,EAA4B,CAAA;IAAI,CAAA;GAC9E,kBAAC,GAAD;IAAO,MAAK;IAAgC,SAAS,kBAAC,GAAD,EAAkC,CAAA;IAAI,CAAA;GAC3F,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,kBAAC,GAAD,EAAkC,CAAA;IAC3C,CAAA;GACF,kBAAC,GAAD;IAAO,MAAK;IAA8B,SAAS,kBAAC,GAAD,EAAgC,CAAA;IAAI,CAAA;GACvF,kBAAC,GAAD;IAAO,MAAK;IAAkC,SAAS,kBAAC,GAAD,EAAgC,CAAA;IAAI,CAAA;GAC3F,kBAAC,GAAD;IAAO,MAAK;IAAwB,SAAS,kBAAC,GAAD,EAA2B,CAAA;IAAI,CAAA;GAC5E,kBAAC,GAAD;IAAO,MAAK;IAA8B,SAAS,kBAAC,GAAD,EAAgC,CAAA;IAAI,CAAA;GACvF,kBAAC,GAAD;IAAO,MAAK;IAAkC,SAAS,kBAAC,GAAD,EAAgC,CAAA;IAAI,CAAA;GAE3F,kBAAC,GAAD;IAAO,MAAK;IAA8B,SAAS,kBAAC,GAAD,EAAgC,CAAA;IAAI,CAAA;GACvF,kBAAC,GAAD;IAAO,MAAK;IAAkC,SAAS,kBAAC,GAAD,EAAgC,CAAA;IAAI,CAAA;GAE3F,kBAAC,GAAD;IAAO,MAAK;IAAmB,SAAS,kBAAC,GAAD,EAAsB,CAAA;IAAI,CAAA;GAClE,kBAAC,GAAD;IAAO,MAAK;IAA8B,SAAS,kBAAC,GAAD,EAAgC,CAAA;IAAI,CAAA;GACvF,kBAAC,GAAD;IAAO,MAAK;IAA8B,SAAS,kBAAC,GAAD,EAAgC,CAAA;IAAI,CAAA;GAEvF,kBAAC,GAAD;IAAO,MAAK;IAAmB,SAAS,kBAAC,IAAD,EAAsB,CAAA;IAAI,CAAA;GAClE,kBAAC,GAAD;IAAO,MAAK;IAAyB,SAAS,kBAAC,IAAD,EAA2B,CAAA;IAAI,CAAA;GAC7E,kBAAC,GAAD;IAAO,MAAK;IAAuB,SAAS,kBAAC,IAAD,EAAyB,CAAA;IAAI,CAAA;GACzE,kBAAC,GAAD;IAAO,MAAK;IAAyB,SAAS,kBAAC,IAAD,EAA2B,CAAA;IAAI,CAAA;GAC7E,kBAAC,GAAD;IAAO,MAAK;IAAoB,SAAS,kBAAC,IAAD,EAAuB,CAAA;IAAI,CAAA;GACpE,kBAAC,GAAD;IAAO,MAAK;IAA0B,SAAS,kBAAC,GAAD,EAA4B,CAAA;IAAI,CAAA;GAC/E,kBAAC,GAAD;IAAO,MAAK;IAAwB,SAAS,kBAAC,GAAD,EAA2B,CAAA;IAAI,CAAA;GAC5E,kBAAC,GAAD;IAAO,MAAK;IAA8B,SAAS,kBAAC,GAAD,EAAgC,CAAA;IAAI,CAAA;GACvF,kBAAC,GAAD;IAAO,MAAK;IAAkC,SAAS,kBAAC,GAAD,EAAgC,CAAA;IAAI,CAAA;GAE3F,kBAAC,GAAD;IAAO,MAAK;IAA4B,SAAS,kBAAC,IAAD,EAA8B,CAAA;IAAI,CAAA;GAEnF,kBAAC,GAAD;IAAO,MAAK;IAAiB,SAAS,kBAAC,IAAD,EAAoB,CAAA;IAAI,CAAA;GAC9D,kBAAC,GAAD;IAAO,MAAK;IAAuB,SAAS,kBAAC,GAAD,EAAyB,CAAA;IAAI,CAAA;GAEzE,kBAAC,GAAD;IAAO,MAAK;IAAuB,SAAS,kBAAC,IAAD,EAA0B,CAAA;IAAI,CAAA;GAC1E,kBAAC,GAAD;IAAO,MAAK;IAA6B,SAAS,kBAAC,IAAD,EAA+B,CAAA;IAAI,CAAA;GAErF,kBAAC,GAAD;IAAO,MAAK;IAAiB,SAAS,kBAAC,IAAD,EAAoB,CAAA;IAAI,CAAA;GAC9D,kBAAC,GAAD;IAAO,MAAK;IAAkB,SAAS,kBAAC,IAAD,EAAyB,CAAA;IAAI,CAAA;GACpE,kBAAC,GAAD;IAAO,MAAK;IAAwB,SAAS,kBAAC,GAAD,EAA0B,CAAA;IAAI,CAAA;GAC3E,kBAAC,GAAD;IAAO,MAAK;IAA4B,SAAS,kBAAC,GAAD,EAA0B,CAAA;IAAI,CAAA;GAC/E,kBAAC,GAAD;IAAO,MAAK;IAAsB,SAAS,kBAAC,GAAD,EAAwB,CAAA;IAAI,CAAA;GACvE,kBAAC,GAAD;IAAO,MAAK;IAA0B,SAAS,kBAAC,GAAD,EAAwB,CAAA;IAAI,CAAA;GAC3E,kBAAC,GAAD;IAAO,MAAK;IAAwB,SAAS,kBAAC,IAAD,EAA0B,CAAA;IAAI,CAAA;GAC3E,kBAAC,GAAD;IAAO,MAAK;IAA0B,SAAS,kBAAC,IAAD,EAA4B,CAAA;IAAI,CAAA;GAE/E,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,kBAAC,IAAD,EAAoC,CAAA;IAC7C,CAAA;GAEF,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,kBAAC,IAAD,EAAqC,CAAA;IAC9C,CAAA;GACF,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,kBAAC,IAAD,EAA0C,CAAA;IACnD,CAAA;GACF,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,kBAAC,GAAD,EAA0C,CAAA;IACnD,CAAA;GACF,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,kBAAC,GAAD,EAA0C,CAAA;IACnD,CAAA;GAEF,kBAAC,GAAD;IAAO,MAAK;IAA2B,SAAS,kBAAC,IAAD,EAA8B,CAAA;IAAI,CAAA;GAClF,kBAAC,GAAD;IAAO,MAAK;IAA+B,SAAS,kBAAC,GAAD,EAAiC,CAAA;IAAI,CAAA;GACzF,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,kBAAC,GAAD,EAAiC,CAAA;IAC1C,CAAA;GAEF,kBAAC,GAAD;IAAO,MAAK;IAA2B,SAAS,kBAAC,IAAD,EAA6B,CAAA;IAAI,CAAA;GACjF,kBAAC,GAAD;IAAO,MAAK;IAAyB,SAAS,kBAAC,GAAD,EAA2B,CAAA;IAAI,CAAA;GAC7E,kBAAC,GAAD;IAAO,MAAK;IAA6B,SAAS,kBAAC,GAAD,EAA2B,CAAA;IAAI,CAAA;GAEjF,kBAAC,GAAD;IAAO,MAAK;IAA2B,SAAS,kBAAC,GAAD,EAA8B,CAAA;IAAI,CAAA;GAElF,kBAAC,GAAD;IAAO,MAAK;IAAI,SAAS,kBAAC,IAAD,EAA0B,CAAA;IAAI,CAAA;GAChD,EAAA,CAAA;EACA,CAAA"}
|
|
1
|
+
{"version":3,"file":"PlanMagnetRoutes.js","names":[],"sources":["../../src/planmagnet/PlanMagnetRoutes.tsx"],"sourcesContent":["import { lazy, Suspense } from 'react';\nimport { Route, Routes } from 'react-router';\nimport { Loader2 } from 'lucide-react';\nimport { AnalyticsAnalyticsPagePage } from './pages/AnalyticsAnalyticsPagePage';\n\nconst PlanMagnetNotFoundPage = lazy(() =>\n import('./pages/NotFoundPage').then((m) => ({ default: m.PlanMagnetNotFoundPage }))\n);\nconst DocsDocsPagePage = lazy(() =>\n import('./pages/DocsDocsPagePage').then((m) => ({ default: m.DocsDocsPagePage }))\n);\nconst DocsDocDetailPagePage = lazy(() =>\n import('./pages/DocsDocDetailPagePage').then((m) => ({ default: m.DocsDocDetailPagePage }))\n);\nconst DashboardDashboardPagePage = lazy(() =>\n import('./pages/DashboardDashboardPagePage').then((m) => ({\n default: m.DashboardDashboardPagePage,\n }))\n);\nconst ProductsCreateProductPagePage = lazy(() =>\n import('./pages/ProductsCreateProductPagePage').then((m) => ({\n default: m.ProductsCreateProductPagePage,\n }))\n);\nconst ProductsCreateRoadmapPagePage = lazy(() =>\n import('./pages/ProductsCreateRoadmapPagePage').then((m) => ({\n default: m.ProductsCreateRoadmapPagePage,\n }))\n);\nconst ProductsEditProductPagePage = lazy(() =>\n import('./pages/ProductsEditProductPagePage').then((m) => ({\n default: m.ProductsEditProductPagePage,\n }))\n);\nconst ProductsEditReleasePagePage = lazy(() =>\n import('./pages/ProductsEditReleasePagePage').then((m) => ({\n default: m.ProductsEditReleasePagePage,\n }))\n);\nconst ProductsFeatureAnalyticsPagePage = lazy(() =>\n import('./pages/ProductsFeatureAnalyticsPagePage').then((m) => ({\n default: m.ProductsFeatureAnalyticsPagePage,\n }))\n);\nconst ProductsFeatureDetailPagePage = lazy(() =>\n import('./pages/ProductsFeatureDetailPagePage').then((m) => ({\n default: m.ProductsFeatureDetailPagePage,\n }))\n);\nconst ProductsFeaturesPagePage = lazy(() =>\n import('./pages/ProductsFeaturesPagePage').then((m) => ({ default: m.ProductsFeaturesPagePage }))\n);\nconst ProductsNewFeaturePagePage = lazy(() =>\n import('./pages/ProductsNewFeaturePagePage').then((m) => ({\n default: m.ProductsNewFeaturePagePage,\n }))\n);\nconst ProductsProductDetailPagePage = lazy(() =>\n import('./pages/ProductsProductDetailPagePage').then((m) => ({\n default: m.ProductsProductDetailPagePage,\n }))\n);\nconst ProductsProductsPagePage = lazy(() =>\n import('./pages/ProductsProductsPagePage').then((m) => ({ default: m.ProductsProductsPagePage }))\n);\nconst ProductsReleaseDetailPagePage = lazy(() =>\n import('./pages/ProductsReleaseDetailPagePage').then((m) => ({\n default: m.ProductsReleaseDetailPagePage,\n }))\n);\nconst ProductsReleasesPagePage = lazy(() =>\n import('./pages/ProductsReleasesPagePage').then((m) => ({ default: m.ProductsReleasesPagePage }))\n);\nconst ProductsRoadmapAnalyticsPagePage = lazy(() =>\n import('./pages/ProductsRoadmapAnalyticsPagePage').then((m) => ({\n default: m.ProductsRoadmapAnalyticsPagePage,\n }))\n);\nconst ProductsRoadmapDetailPagePage = lazy(() =>\n import('./pages/ProductsRoadmapDetailPagePage').then((m) => ({\n default: m.ProductsRoadmapDetailPagePage,\n }))\n);\nconst ProductsRoadmapsPagePage = lazy(() =>\n import('./pages/ProductsRoadmapsPagePage').then((m) => ({ default: m.ProductsRoadmapsPagePage }))\n);\nconst PortfoliosPortfoliosPagePage = lazy(() =>\n import('./pages/PortfoliosPortfoliosPagePage').then((m) => ({\n default: m.PortfoliosPortfoliosPagePage,\n }))\n);\nconst PortfoliosCreatePortfolioPagePage = lazy(() =>\n import('./pages/PortfoliosCreatePortfolioPagePage').then((m) => ({\n default: m.PortfoliosCreatePortfolioPagePage,\n }))\n);\nconst PortfoliosPortfolioDetailPagePage = lazy(() =>\n import('./pages/PortfoliosPortfolioDetailPagePage').then((m) => ({\n default: m.PortfoliosPortfolioDetailPagePage,\n }))\n);\nconst PortfoliosEditPortfolioPagePage = lazy(() =>\n import('./pages/PortfoliosEditPortfolioPagePage').then((m) => ({\n default: m.PortfoliosEditPortfolioPagePage,\n }))\n);\nconst ProgramsProgramsPagePage = lazy(() =>\n import('./pages/ProgramsProgramsPagePage').then((m) => ({ default: m.ProgramsProgramsPagePage }))\n);\nconst ProgramsCreateProgramPagePage = lazy(() =>\n import('./pages/ProgramsCreateProgramPagePage').then((m) => ({\n default: m.ProgramsCreateProgramPagePage,\n }))\n);\nconst ProgramsProgramDetailPagePage = lazy(() =>\n import('./pages/ProgramsProgramDetailPagePage').then((m) => ({\n default: m.ProgramsProgramDetailPagePage,\n }))\n);\nconst ProgramsEditProgramPagePage = lazy(() =>\n import('./pages/ProgramsEditProgramPagePage').then((m) => ({\n default: m.ProgramsEditProgramPagePage,\n }))\n);\nconst CompetitorsCompetitorsPagePage = lazy(() =>\n import('./pages/CompetitorsCompetitorsPagePage').then((m) => ({\n default: m.CompetitorsCompetitorsPagePage,\n }))\n);\nconst CompetitorsCreateCompetitorPagePage = lazy(() =>\n import('./pages/CompetitorsCreateCompetitorPagePage').then((m) => ({\n default: m.CompetitorsCreateCompetitorPagePage,\n }))\n);\nconst CompetitorsCompetitorDetailPagePage = lazy(() =>\n import('./pages/CompetitorsCompetitorDetailPagePage').then((m) => ({\n default: m.CompetitorsCompetitorDetailPagePage,\n }))\n);\nconst CompetitorsEditCompetitorPagePage = lazy(() =>\n import('./pages/CompetitorsEditCompetitorPagePage').then((m) => ({\n default: m.CompetitorsEditCompetitorPagePage,\n }))\n);\nconst ProjectsActiveProjectsPagePage = lazy(() =>\n import('./pages/ProjectsActiveProjectsPagePage').then((m) => ({\n default: m.ProjectsActiveProjectsPagePage,\n }))\n);\nconst ProjectsCreateProjectPagePage = lazy(() =>\n import('./pages/ProjectsCreateProjectPagePage').then((m) => ({\n default: m.ProjectsCreateProjectPagePage,\n }))\n);\nconst ProjectsEditProjectPagePage = lazy(() =>\n import('./pages/ProjectsEditProjectPagePage').then((m) => ({\n default: m.ProjectsEditProjectPagePage,\n }))\n);\nconst ProjectsMilestoneDetailPagePage = lazy(() =>\n import('./pages/ProjectsMilestoneDetailPagePage').then((m) => ({\n default: m.ProjectsMilestoneDetailPagePage,\n }))\n);\nconst ProjectsBudgetsPagePage = lazy(() =>\n import('./pages/ProjectsBudgetsPagePage').then((m) => ({ default: m.ProjectsBudgetsPagePage }))\n);\nconst ProjectsBudgetDetailPagePage = lazy(() =>\n import('./pages/ProjectsBudgetDetailPagePage').then((m) => ({\n default: m.ProjectsBudgetDetailPagePage,\n }))\n);\nconst TasksTimeEntriesPagePage = lazy(() =>\n import('./pages/TasksTimeEntriesPagePage').then((m) => ({\n default: m.TasksTimeEntriesPagePage,\n }))\n);\nconst TasksTimesheetsPagePage = lazy(() =>\n import('./pages/TasksTimesheetsPagePage').then((m) => ({\n default: m.TasksTimesheetsPagePage,\n }))\n);\nconst TasksTimesheetDetailPagePage = lazy(() =>\n import('./pages/TasksTimesheetDetailPagePage').then((m) => ({\n default: m.TasksTimesheetDetailPagePage,\n }))\n);\nconst GoalsGoalsPagePage = lazy(() =>\n import('./pages/GoalsGoalsPagePage').then((m) => ({ default: m.GoalsGoalsPagePage }))\n);\nconst GoalsCreateObjectivePagePage = lazy(() =>\n import('./pages/GoalsCreateObjectivePagePage').then((m) => ({\n default: m.GoalsCreateObjectivePagePage,\n }))\n);\nconst GoalsObjectiveDetailPagePage = lazy(() =>\n import('./pages/GoalsObjectiveDetailPagePage').then((m) => ({\n default: m.GoalsObjectiveDetailPagePage,\n }))\n);\nconst ProjectsMilestonesPagePage = lazy(() =>\n import('./pages/ProjectsMilestonesPagePage').then((m) => ({\n default: m.ProjectsMilestonesPagePage,\n }))\n);\nconst ProjectsPlanningDetailPagePage = lazy(() =>\n import('./pages/ProjectsPlanningDetailPagePage').then((m) => ({\n default: m.ProjectsPlanningDetailPagePage,\n }))\n);\nconst ProjectsPlanningEditPagePage = lazy(() =>\n import('./pages/ProjectsPlanningEditPagePage').then((m) => ({\n default: m.ProjectsPlanningEditPagePage,\n }))\n);\nconst ProjectsPlanningPagePage = lazy(() =>\n import('./pages/ProjectsPlanningPagePage').then((m) => ({ default: m.ProjectsPlanningPagePage }))\n);\nconst ProjectsProjectDetailPagePage = lazy(() =>\n import('./pages/ProjectsProjectDetailPagePage').then((m) => ({\n default: m.ProjectsProjectDetailPagePage,\n }))\n);\nconst ProjectsProjectsPagePage = lazy(() =>\n import('./pages/ProjectsProjectsPagePage').then((m) => ({ default: m.ProjectsProjectsPagePage }))\n);\nconst ReportsCreateReportPagePage = lazy(() =>\n import('./pages/ReportsCreateReportPagePage').then((m) => ({\n default: m.ReportsCreateReportPagePage,\n }))\n);\nconst ReportsReportsPagePage = lazy(() =>\n import('./pages/ReportsReportsPagePage').then((m) => ({ default: m.ReportsReportsPagePage }))\n);\nconst SprintsStartSprintPagePage = lazy(() =>\n import('./pages/SprintsStartSprintPagePage').then((m) => ({\n default: m.SprintsStartSprintPagePage,\n }))\n);\nconst TasksCreateTaskPagePage = lazy(() =>\n import('./pages/TasksCreateTaskPagePage').then((m) => ({ default: m.TasksCreateTaskPagePage }))\n);\nconst TasksEditTaskPagePage = lazy(() =>\n import('./pages/TasksEditTaskPagePage').then((m) => ({ default: m.TasksEditTaskPagePage }))\n);\nconst ProjectsWorkflowPagePage = lazy(() =>\n import('./pages/ProjectsWorkflowPagePage').then((m) => ({ default: m.ProjectsWorkflowPagePage }))\n);\nconst ProjectsCustomFieldsPagePage = lazy(() =>\n import('./pages/ProjectsCustomFieldsPagePage').then((m) => ({\n default: m.ProjectsCustomFieldsPagePage,\n }))\n);\nconst TasksImportPagePage = lazy(() =>\n import('./pages/TasksImportPagePage').then((m) => ({ default: m.TasksImportPagePage }))\n);\nconst TasksTaskDetailPagePage = lazy(() =>\n import('./pages/TasksTaskDetailPagePage').then((m) => ({ default: m.TasksTaskDetailPagePage }))\n);\nconst TasksTasksPagePage = lazy(() =>\n import('./pages/TasksTasksPagePage').then((m) => ({ default: m.TasksTasksPagePage }))\n);\n// My Work (BOFF-8048)\nconst TasksMyWorkPagePage = lazy(() =>\n import('./pages/TasksMyWorkPagePage').then((m) => ({ default: m.TasksMyWorkPagePage }))\n);\nconst TeamCreateTeamPagePage = lazy(() =>\n import('./pages/TeamCreateTeamPagePage').then((m) => ({ default: m.TeamCreateTeamPagePage }))\n);\nconst TeamInviteMemberPagePage = lazy(() =>\n import('./pages/TeamInviteMemberPagePage').then((m) => ({ default: m.TeamInviteMemberPagePage }))\n);\nconst TeamTeamPagePage = lazy(() =>\n import('./pages/TeamTeamPagePage').then((m) => ({ default: m.TeamTeamPagePage }))\n);\nconst TeamTeamsListPagePage = lazy(() =>\n import('./pages/TeamTeamsListPagePage').then((m) => ({ default: m.TeamTeamsListPagePage }))\n);\nconst TeamTeamDetailPagePage = lazy(() =>\n import('./pages/TeamTeamDetailPagePage').then((m) => ({ default: m.TeamTeamDetailPagePage }))\n);\nconst TeamTeamEditPagePage = lazy(() =>\n import('./pages/TeamTeamEditPagePage').then((m) => ({ default: m.TeamTeamEditPagePage }))\n);\nconst WorkspaceCreateWorkspacePagePage = lazy(() =>\n import('./pages/WorkspaceCreateWorkspacePagePage').then((m) => ({\n default: m.WorkspaceCreateWorkspacePagePage,\n }))\n);\n// BOFF-8047: Automation rules and Project templates\nconst AutomationAutomationRulesPagePage = lazy(() =>\n import('./pages/AutomationAutomationRulesPagePage').then((m) => ({\n default: m.AutomationAutomationRulesPagePage,\n }))\n);\nconst AutomationCreateAutomationRulePagePage = lazy(() =>\n import('./pages/AutomationCreateAutomationRulePagePage').then((m) => ({\n default: m.AutomationCreateAutomationRulePagePage,\n }))\n);\nconst AutomationAutomationRuleDetailPagePage = lazy(() =>\n import('./pages/AutomationAutomationRuleDetailPagePage').then((m) => ({\n default: m.AutomationAutomationRuleDetailPagePage,\n }))\n);\nconst TemplatesTemplatesPagePage = lazy(() =>\n import('./pages/TemplatesTemplatesPagePage').then((m) => ({\n default: m.TemplatesTemplatesPagePage,\n }))\n);\nconst TemplatesEditTemplatePagePage = lazy(() =>\n import('./pages/TemplatesEditTemplatePagePage').then((m) => ({\n default: m.TemplatesEditTemplatePagePage,\n }))\n);\nconst RisksRiskRegisterPagePage = lazy(() =>\n import('./pages/RisksRiskRegisterPagePage').then((m) => ({\n default: m.RisksRiskRegisterPagePage,\n }))\n);\nconst RisksRiskDetailPagePage = lazy(() =>\n import('./pages/RisksRiskDetailPagePage').then((m) => ({ default: m.RisksRiskDetailPagePage }))\n);\nconst ProjectsCriticalPathPagePage = lazy(() =>\n import('./pages/ProjectsCriticalPathPagePage').then((m) => ({\n default: m.ProjectsCriticalPathPagePage,\n }))\n);\n\n// Phase 2 new pages\n\nfunction PageLoader() {\n return (\n <div className=\"flex min-h-[320px] items-center justify-center\">\n <Loader2 className=\"h-8 w-8 animate-spin text-primary\" />\n </div>\n );\n}\n\nexport function PlanMagnetRoutes() {\n return (\n <Suspense fallback={<PageLoader />}>\n <Routes>\n <Route index element={<DashboardDashboardPagePage />} />\n {/* Dashboard */}\n <Route path=\"dashboard/dashboard-page\" element={<DashboardDashboardPagePage />} />\n {/* Products */}\n {/*\n The detail/edit/analytics pages below read their record id with\n useParams<{ id: string }>(). Each therefore needs a \":id\" segment — without one the\n id is permanently undefined and the page can never load a record, however it is\n reached. The bare paths are kept alongside so previously-bookmarked URLs still\n resolve rather than falling through to the catch-all redirect.\n */}\n <Route path=\"products/products-page\" element={<ProductsProductsPagePage />} />\n <Route path=\"products/create-product-page\" element={<ProductsCreateProductPagePage />} />\n <Route path=\"products/edit-product-page\" element={<ProductsEditProductPagePage />} />\n <Route path=\"products/edit-product-page/:id\" element={<ProductsEditProductPagePage />} />\n <Route path=\"products/product-detail-page\" element={<ProductsProductDetailPagePage />} />\n <Route\n path=\"products/product-detail-page/:id\"\n element={<ProductsProductDetailPagePage />}\n />\n <Route path=\"products/features-page\" element={<ProductsFeaturesPagePage />} />\n <Route path=\"products/new-feature-page\" element={<ProductsNewFeaturePagePage />} />\n <Route path=\"products/feature-detail-page\" element={<ProductsFeatureDetailPagePage />} />\n <Route\n path=\"products/feature-detail-page/:id\"\n element={<ProductsFeatureDetailPagePage />}\n />\n <Route\n path=\"products/feature-analytics-page\"\n element={<ProductsFeatureAnalyticsPagePage />}\n />\n <Route\n path=\"products/feature-analytics-page/:id\"\n element={<ProductsFeatureAnalyticsPagePage />}\n />\n <Route path=\"products/releases-page\" element={<ProductsReleasesPagePage />} />\n <Route path=\"products/release-detail-page\" element={<ProductsReleaseDetailPagePage />} />\n <Route\n path=\"products/release-detail-page/:id\"\n element={<ProductsReleaseDetailPagePage />}\n />\n <Route path=\"products/edit-release-page\" element={<ProductsEditReleasePagePage />} />\n <Route path=\"products/edit-release-page/:id\" element={<ProductsEditReleasePagePage />} />\n <Route path=\"products/roadmaps-page\" element={<ProductsRoadmapsPagePage />} />\n <Route path=\"products/roadmap-detail-page\" element={<ProductsRoadmapDetailPagePage />} />\n <Route\n path=\"products/roadmap-detail-page/:id\"\n element={<ProductsRoadmapDetailPagePage />}\n />\n <Route path=\"products/create-roadmap-page\" element={<ProductsCreateRoadmapPagePage />} />\n <Route\n path=\"products/roadmap-analytics-page\"\n element={<ProductsRoadmapAnalyticsPagePage />}\n />\n <Route\n path=\"products/roadmap-analytics-page/:id\"\n element={<ProductsRoadmapAnalyticsPagePage />}\n />\n {/* Portfolios (BOFF-8047) */}\n <Route path=\"products/portfolios-page\" element={<PortfoliosPortfoliosPagePage />} />\n <Route\n path=\"products/create-portfolio-page\"\n element={<PortfoliosCreatePortfolioPagePage />}\n />\n <Route\n path=\"products/portfolio-detail-page/:id\"\n element={<PortfoliosPortfolioDetailPagePage />}\n />\n <Route\n path=\"products/edit-portfolio-page/:id\"\n element={<PortfoliosEditPortfolioPagePage />}\n />\n {/* Programs (BOFF-8047) */}\n <Route path=\"products/programs-page\" element={<ProgramsProgramsPagePage />} />\n <Route path=\"products/create-program-page\" element={<ProgramsCreateProgramPagePage />} />\n <Route\n path=\"products/program-detail-page/:id\"\n element={<ProgramsProgramDetailPagePage />}\n />\n <Route path=\"products/edit-program-page/:id\" element={<ProgramsEditProgramPagePage />} />\n {/* Competitors (BOFF-8047) */}\n <Route path=\"products/competitors-page\" element={<CompetitorsCompetitorsPagePage />} />\n <Route\n path=\"products/create-competitor-page\"\n element={<CompetitorsCreateCompetitorPagePage />}\n />\n <Route\n path=\"products/competitor-detail-page/:id\"\n element={<CompetitorsCompetitorDetailPagePage />}\n />\n <Route\n path=\"products/edit-competitor-page/:id\"\n element={<CompetitorsEditCompetitorPagePage />}\n />\n {/* Projects */}\n <Route path=\"projects/projects-page\" element={<ProjectsProjectsPagePage />} />\n <Route path=\"projects/active-projects-page\" element={<ProjectsActiveProjectsPagePage />} />\n <Route path=\"projects/create-project-page\" element={<ProjectsCreateProjectPagePage />} />\n <Route path=\"projects/edit-project-page\" element={<ProjectsEditProjectPagePage />} />\n <Route path=\"projects/edit-project-page/:id\" element={<ProjectsEditProjectPagePage />} />\n <Route path=\"projects/project-detail-page\" element={<ProjectsProjectDetailPagePage />} />\n <Route\n path=\"projects/project-detail-page/:id\"\n element={<ProjectsProjectDetailPagePage />}\n />\n <Route path=\"projects/project-workflow-page/:id\" element={<ProjectsWorkflowPagePage />} />\n <Route\n path=\"projects/project-custom-fields-page/:id\"\n element={<ProjectsCustomFieldsPagePage />}\n />\n <Route path=\"projects/milestones-page\" element={<ProjectsMilestonesPagePage />} />\n <Route\n path=\"projects/milestone-detail-page\"\n element={<ProjectsMilestoneDetailPagePage />}\n />\n <Route\n path=\"projects/milestone-detail-page/:id\"\n element={<ProjectsMilestoneDetailPagePage />}\n />\n <Route path=\"projects/planning-page\" element={<ProjectsPlanningPagePage />} />\n <Route path=\"projects/planning-detail-page\" element={<ProjectsPlanningDetailPagePage />} />\n <Route\n path=\"projects/planning-detail-page/:id\"\n element={<ProjectsPlanningDetailPagePage />}\n />\n <Route path=\"projects/planning-edit-page\" element={<ProjectsPlanningEditPagePage />} />\n <Route path=\"projects/planning-edit-page/:id\" element={<ProjectsPlanningEditPagePage />} />\n <Route path=\"projects/budgets-page\" element={<ProjectsBudgetsPagePage />} />\n <Route path=\"projects/budget-detail-page\" element={<ProjectsBudgetDetailPagePage />} />\n <Route path=\"projects/budget-detail-page/:id\" element={<ProjectsBudgetDetailPagePage />} />\n {/* Critical path (BOFF-8047): CPM over WorkItemDependency, scoped to a project. */}\n <Route path=\"projects/critical-path-page\" element={<ProjectsCriticalPathPagePage />} />\n <Route path=\"projects/critical-path-page/:id\" element={<ProjectsCriticalPathPagePage />} />\n {/* Goals (OKRs, BOFF-4441) */}\n <Route path=\"goals/goals-page\" element={<GoalsGoalsPagePage />} />\n <Route path=\"goals/create-objective-page\" element={<GoalsCreateObjectivePagePage />} />\n <Route path=\"goals/objective-detail-page\" element={<GoalsObjectiveDetailPagePage />} />\n {/* Tasks */}\n {/* My Work (BOFF-8048): before tasks-page so its route target is easy to find here. */}\n <Route path=\"tasks/my-work-page\" element={<TasksMyWorkPagePage />} />\n <Route path=\"tasks/tasks-page\" element={<TasksTasksPagePage />} />\n <Route path=\"tasks/create-task-page\" element={<TasksCreateTaskPagePage />} />\n <Route path=\"tasks/edit-task-page\" element={<TasksEditTaskPagePage />} />\n <Route path=\"tasks/task-detail-page\" element={<TasksTaskDetailPagePage />} />\n <Route path=\"tasks/import-page\" element={<TasksImportPagePage />} />\n <Route path=\"tasks/time-entries-page\" element={<TasksTimeEntriesPagePage />} />\n <Route path=\"tasks/timesheets-page\" element={<TasksTimesheetsPagePage />} />\n <Route path=\"tasks/timesheet-detail-page\" element={<TasksTimesheetDetailPagePage />} />\n <Route path=\"tasks/timesheet-detail-page/:id\" element={<TasksTimesheetDetailPagePage />} />\n {/* Sprints */}\n <Route path=\"sprints/start-sprint-page\" element={<SprintsStartSprintPagePage />} />\n\n <Route path=\"docs/docs-page\" element={<DocsDocsPagePage />} />\n <Route path=\"docs/doc-detail-page\" element={<DocsDocDetailPagePage />} />\n {/* Reports */}\n <Route path=\"reports/reports-page\" element={<ReportsReportsPagePage />} />\n <Route path=\"reports/create-report-page\" element={<ReportsCreateReportPagePage />} />\n {/* Team */}\n <Route path=\"team/team-page\" element={<TeamTeamPagePage />} />\n <Route path=\"team/teams-page\" element={<TeamTeamsListPagePage />} />\n <Route path=\"team/team-detail-page\" element={<TeamTeamDetailPagePage />} />\n <Route path=\"team/team-detail-page/:id\" element={<TeamTeamDetailPagePage />} />\n <Route path=\"team/team-edit-page\" element={<TeamTeamEditPagePage />} />\n <Route path=\"team/team-edit-page/:id\" element={<TeamTeamEditPagePage />} />\n <Route path=\"team/create-team-page\" element={<TeamCreateTeamPagePage />} />\n <Route path=\"team/invite-member-page\" element={<TeamInviteMemberPagePage />} />\n {/* Workspace */}\n <Route\n path=\"workspace/create-workspace-page\"\n element={<WorkspaceCreateWorkspacePagePage />}\n />\n {/* Automation rules (BOFF-8047) */}\n <Route\n path=\"automation/automation-rules-page\"\n element={<AutomationAutomationRulesPagePage />}\n />\n <Route\n path=\"automation/create-automation-rule-page\"\n element={<AutomationCreateAutomationRulePagePage />}\n />\n <Route\n path=\"automation/automation-rule-detail-page\"\n element={<AutomationAutomationRuleDetailPagePage />}\n />\n <Route\n path=\"automation/automation-rule-detail-page/:id\"\n element={<AutomationAutomationRuleDetailPagePage />}\n />\n {/* Project templates (BOFF-8047) */}\n <Route path=\"templates/templates-page\" element={<TemplatesTemplatesPagePage />} />\n <Route path=\"templates/edit-template-page\" element={<TemplatesEditTemplatePagePage />} />\n <Route\n path=\"templates/edit-template-page/:id\"\n element={<TemplatesEditTemplatePagePage />}\n />\n {/* Risks (BOFF-8047) */}\n <Route path=\"risks/risk-register-page\" element={<RisksRiskRegisterPagePage />} />\n <Route path=\"risks/risk-detail-page\" element={<RisksRiskDetailPagePage />} />\n <Route path=\"risks/risk-detail-page/:id\" element={<RisksRiskDetailPagePage />} />\n {/* Analytics */}\n <Route path=\"analytics/analytics-page\" element={<AnalyticsAnalyticsPagePage />} />\n {/* 404 — a real page, not a redirect to the same URL (H5) */}\n <Route path=\"*\" element={<PlanMagnetNotFoundPage />} />\n </Routes>\n </Suspense>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutomationRuleFields.d.ts","sourceRoot":"","sources":["../../../src/planmagnet/automation/AutomationRuleFields.tsx"],"names":[],"mappings":"AASA,OAAO,EAWL,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,WAAW,EACjB,MAAM,uBAAuB,CAAC;AAE/B,+DAA+D;AAC/D,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,EAAE,aAAa,EAAE,CAAC;IAC5B,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB;
|
|
1
|
+
{"version":3,"file":"AutomationRuleFields.d.ts","sourceRoot":"","sources":["../../../src/planmagnet/automation/AutomationRuleFields.tsx"],"names":[],"mappings":"AASA,OAAO,EAWL,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,WAAW,EACjB,MAAM,uBAAuB,CAAC;AAE/B,+DAA+D;AAC/D,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,EAAE,aAAa,EAAE,CAAC;IAC5B,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB;AAoED,8GAA8G;AAC9G,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EACP,QAAQ,GACT,EAAE;IACD,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,IAAI,CAAC;CACxC,2CA0EA;AAED,8GAA8G;AAC9G,wBAAgB,gBAAgB,CAAC,EAC/B,UAAU,EACV,QAAQ,GACT,EAAE;IACD,UAAU,EAAE,aAAa,EAAE,CAAC;IAC5B,QAAQ,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,IAAI,CAAC;CAC3C,2CA4EA;AAED,sGAAsG;AACtG,wBAAgB,oBAAoB,CAAC,EACnC,IAAI,EACJ,QAAQ,EACR,aAAqB,GACtB,EAAE;IACD,IAAI,EAAE,uBAAuB,CAAC;IAC9B,QAAQ,EAAE,CAAC,IAAI,EAAE,uBAAuB,KAAK,IAAI,CAAC;IAClD,0FAA0F;IAC1F,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,2CA6FA"}
|
|
@@ -5,8 +5,8 @@ import { Plus as p, X as m } from "lucide-react";
|
|
|
5
5
|
import { jsx as h, jsxs as g } from "react/jsx-runtime";
|
|
6
6
|
import { Button as _, Input as v } from "@burdenoff/fe-libs/ui";
|
|
7
7
|
//#region src/planmagnet/automation/AutomationRuleFields.tsx
|
|
8
|
-
var y = "mt-1 w-full rounded-md border border-input bg-background px-3 py-2 text-sm disabled:opacity-60";
|
|
9
|
-
function
|
|
8
|
+
var y = "mt-1 w-full rounded-md border border-input bg-background px-3 py-2 text-sm disabled:opacity-60", b = "text-foreground";
|
|
9
|
+
function x({ action: e, onChange: a }) {
|
|
10
10
|
switch (e.type) {
|
|
11
11
|
case "ASSIGN_TO_USER": return /* @__PURE__ */ h(t, {
|
|
12
12
|
value: e.value,
|
|
@@ -38,13 +38,14 @@ function b({ action: e, onChange: a }) {
|
|
|
38
38
|
});
|
|
39
39
|
default: return /* @__PURE__ */ h(v, {
|
|
40
40
|
"aria-label": "Label",
|
|
41
|
+
className: b,
|
|
41
42
|
placeholder: "e.g. needs-review",
|
|
42
43
|
value: e.value,
|
|
43
44
|
onChange: (e) => a(e.target.value)
|
|
44
45
|
});
|
|
45
46
|
}
|
|
46
47
|
}
|
|
47
|
-
function
|
|
48
|
+
function S({ actions: e, onChange: t }) {
|
|
48
49
|
let n = (n, r) => t(e.map((e, t) => t === n ? {
|
|
49
50
|
...e,
|
|
50
51
|
...r
|
|
@@ -74,7 +75,7 @@ function x({ actions: e, onChange: t }) {
|
|
|
74
75
|
}),
|
|
75
76
|
/* @__PURE__ */ h("div", {
|
|
76
77
|
className: "min-w-0 flex-1",
|
|
77
|
-
children: /* @__PURE__ */ h(
|
|
78
|
+
children: /* @__PURE__ */ h(x, {
|
|
78
79
|
action: e,
|
|
79
80
|
onChange: (e) => n(t, { value: e })
|
|
80
81
|
})
|
|
@@ -112,7 +113,7 @@ function x({ actions: e, onChange: t }) {
|
|
|
112
113
|
]
|
|
113
114
|
});
|
|
114
115
|
}
|
|
115
|
-
function
|
|
116
|
+
function C({ conditions: e, onChange: t }) {
|
|
116
117
|
let n = (n, r) => t(e.map((e, t) => t === n ? {
|
|
117
118
|
...e,
|
|
118
119
|
...r
|
|
@@ -126,7 +127,7 @@ function S({ conditions: e, onChange: t }) {
|
|
|
126
127
|
/* @__PURE__ */ h(v, {
|
|
127
128
|
"aria-label": "Condition field",
|
|
128
129
|
list: "automation-condition-fields",
|
|
129
|
-
className:
|
|
130
|
+
className: `w-36 shrink-0 ${b}`,
|
|
130
131
|
placeholder: "field",
|
|
131
132
|
value: e.field,
|
|
132
133
|
onChange: (e) => n(t, { field: e.target.value })
|
|
@@ -143,7 +144,7 @@ function S({ conditions: e, onChange: t }) {
|
|
|
143
144
|
}),
|
|
144
145
|
e.operator !== "exists" && /* @__PURE__ */ h(v, {
|
|
145
146
|
"aria-label": "Condition value",
|
|
146
|
-
className:
|
|
147
|
+
className: `min-w-0 flex-1 ${b}`,
|
|
147
148
|
placeholder: e.operator === "in" || e.operator === "notIn" ? "comma, separated, values" : "value",
|
|
148
149
|
value: e.value,
|
|
149
150
|
onChange: (e) => n(t, { value: e.target.value })
|
|
@@ -181,7 +182,7 @@ function S({ conditions: e, onChange: t }) {
|
|
|
181
182
|
]
|
|
182
183
|
});
|
|
183
184
|
}
|
|
184
|
-
function
|
|
185
|
+
function w({ form: t, onChange: n, projectLocked: r = !1 }) {
|
|
185
186
|
return /* @__PURE__ */ g("div", {
|
|
186
187
|
className: "space-y-4",
|
|
187
188
|
children: [
|
|
@@ -191,7 +192,7 @@ function C({ form: t, onChange: n, projectLocked: r = !1 }) {
|
|
|
191
192
|
children: "Name"
|
|
192
193
|
}), /* @__PURE__ */ h(v, {
|
|
193
194
|
id: "automation-name",
|
|
194
|
-
className:
|
|
195
|
+
className: `mt-1 ${b}`,
|
|
195
196
|
value: t.name,
|
|
196
197
|
onChange: (e) => n({
|
|
197
198
|
...t,
|
|
@@ -274,7 +275,7 @@ function C({ form: t, onChange: n, projectLocked: r = !1 }) {
|
|
|
274
275
|
className: "mb-2 text-xs text-muted-foreground",
|
|
275
276
|
children: "All conditions must match. Leave empty to match every event."
|
|
276
277
|
}),
|
|
277
|
-
/* @__PURE__ */ h(
|
|
278
|
+
/* @__PURE__ */ h(C, {
|
|
278
279
|
conditions: t.conditions,
|
|
279
280
|
onChange: (e) => n({
|
|
280
281
|
...t,
|
|
@@ -291,7 +292,7 @@ function C({ form: t, onChange: n, projectLocked: r = !1 }) {
|
|
|
291
292
|
className: "mb-2 text-xs text-muted-foreground",
|
|
292
293
|
children: "Run in order when the conditions match."
|
|
293
294
|
}),
|
|
294
|
-
/* @__PURE__ */ h(
|
|
295
|
+
/* @__PURE__ */ h(S, {
|
|
295
296
|
actions: t.actions,
|
|
296
297
|
onChange: (e) => n({
|
|
297
298
|
...t,
|
|
@@ -303,6 +304,6 @@ function C({ form: t, onChange: n, projectLocked: r = !1 }) {
|
|
|
303
304
|
});
|
|
304
305
|
}
|
|
305
306
|
//#endregion
|
|
306
|
-
export {
|
|
307
|
+
export { w as AutomationRuleFields };
|
|
307
308
|
|
|
308
309
|
//# sourceMappingURL=AutomationRuleFields.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutomationRuleFields.js","names":[],"sources":["../../../src/planmagnet/automation/AutomationRuleFields.tsx"],"sourcesContent":["import { Button, Input } from '@burdenoff/fe-libs/ui';\nimport { Plus, X } from 'lucide-react';\nimport {\n AssigneeSelect,\n WORK_ITEM_PRIORITIES,\n WORK_ITEM_STATUSES,\n enumLabel,\n} from '../controls/WorkItemControls';\nimport { ProjectSelect } from '../controls/Pickers';\nimport {\n ACTION_TYPES,\n ACTION_TYPE_LABEL,\n AUTOMATIC_TRIGGER_TYPES,\n CONDITION_FIELDS,\n CONDITION_OPERATORS,\n CONDITION_OPERATOR_LABEL,\n TRIGGER_TYPES,\n TRIGGER_TYPE_LABEL,\n type ActionType,\n type ConditionOperator,\n type RuleAction,\n type RuleCondition,\n type TriggerType,\n} from './automationRuleTypes';\n\n/** The editable shape both the create and edit pages share. */\nexport interface AutomationRuleFormState {\n name: string;\n description: string;\n projectId: string;\n triggerType: TriggerType;\n conditions: RuleCondition[];\n actions: RuleAction[];\n}\n\nconst fieldClass =\n 'mt-1 w-full rounded-md border border-input bg-background px-3 py-2 text-sm disabled:opacity-60';\n\nfunction ActionValueEditor({\n action,\n onChange,\n}: {\n action: RuleAction;\n onChange: (value: string) => void;\n}) {\n switch (action.type) {\n case 'ASSIGN_TO_USER':\n return <AssigneeSelect value={action.value} onChange={onChange} />;\n case 'SET_STATUS':\n return (\n <select\n className={fieldClass}\n value={action.value}\n onChange={(e) => onChange(e.target.value)}\n >\n <option value=\"\">Choose a status</option>\n {WORK_ITEM_STATUSES.map((s) => (\n <option key={s} value={s}>\n {enumLabel(s)}\n </option>\n ))}\n </select>\n );\n case 'SET_PRIORITY':\n return (\n <select\n className={fieldClass}\n value={action.value}\n onChange={(e) => onChange(e.target.value)}\n >\n <option value=\"\">Choose a priority</option>\n {WORK_ITEM_PRIORITIES.map((p) => (\n <option key={p} value={p}>\n {enumLabel(p)}\n </option>\n ))}\n </select>\n );\n case 'ADD_LABEL':\n default:\n return (\n <Input\n aria-label=\"Label\"\n placeholder=\"e.g. needs-review\"\n value={action.value}\n onChange={(e) => onChange(e.target.value)}\n />\n );\n }\n}\n\n/** The actions builder: only the four types the engine can actually dispatch (see automationRuleTypes.ts). */\nexport function ActionsEditor({\n actions,\n onChange,\n}: {\n actions: RuleAction[];\n onChange: (next: RuleAction[]) => void;\n}) {\n const update = (index: number, patch: Partial<RuleAction>) =>\n onChange(actions.map((a, i) => (i === index ? { ...a, ...patch } : a)));\n const remove = (index: number) => onChange(actions.filter((_, i) => i !== index));\n const add = () => onChange([...actions, { type: 'ASSIGN_TO_USER', value: '' }]);\n\n return (\n <div className=\"space-y-2\">\n {actions.map((action, index) => {\n // A rule created before this UI existed (or via the API directly) can carry an action type this\n // builder does not offer (e.g. POST_COMMENT, which the engine never dispatches — see\n // automationRuleTypes.ts). Keep it selectable and visible rather than silently swapping it out from\n // under the user the moment they open the edit page.\n const known = (ACTION_TYPES as readonly string[]).includes(action.type);\n const typeOptions = known ? ACTION_TYPES : [action.type, ...ACTION_TYPES];\n return (\n <div key={index} className=\"space-y-1\">\n <div className=\"flex items-start gap-2\">\n <select\n aria-label=\"Action type\"\n className={`${fieldClass} mt-0 w-40 shrink-0`}\n value={action.type}\n onChange={(e) =>\n update(index, {\n type: e.target.value as ActionType,\n value: e.target.value === action.type ? action.value : '',\n })\n }\n >\n {typeOptions.map((t) => (\n <option key={t} value={t}>\n {known || t !== action.type ? (ACTION_TYPE_LABEL[t as ActionType] ?? t) : t}\n </option>\n ))}\n </select>\n <div className=\"min-w-0 flex-1\">\n <ActionValueEditor action={action} onChange={(value) => update(index, { value })} />\n </div>\n <Button\n type=\"button\"\n size=\"sm\"\n variant=\"ghost\"\n aria-label=\"Remove action\"\n onClick={() => remove(index)}\n >\n <X className=\"h-4 w-4\" />\n </Button>\n </div>\n {!known && (\n <p className=\"text-xs text-muted-foreground\">\n This action type is not run by the engine yet; the rule keeps it but never\n dispatches it.\n </p>\n )}\n </div>\n );\n })}\n <Button\n type=\"button\"\n size=\"sm\"\n variant=\"outline\"\n onClick={add}\n data-testid=\"automation-add-action\"\n >\n <Plus className=\"mr-1 h-4 w-4\" />\n Add action\n </Button>\n {actions.length === 0 && (\n <p className=\"text-xs text-muted-foreground\">\n A rule with no actions still records that it ran, but changes nothing.\n </p>\n )}\n </div>\n );\n}\n\n/** The conditions builder. A rule with no conditions always matches — the gate is opt-in (engine default). */\nexport function ConditionsEditor({\n conditions,\n onChange,\n}: {\n conditions: RuleCondition[];\n onChange: (next: RuleCondition[]) => void;\n}) {\n const update = (index: number, patch: Partial<RuleCondition>) =>\n onChange(conditions.map((c, i) => (i === index ? { ...c, ...patch } : c)));\n const remove = (index: number) => onChange(conditions.filter((_, i) => i !== index));\n const add = () => onChange([...conditions, { field: 'status', operator: 'eq', value: '' }]);\n\n return (\n <div className=\"space-y-2\">\n {conditions.map((condition, index) => (\n <div key={index} className=\"flex items-start gap-2\">\n <Input\n aria-label=\"Condition field\"\n list=\"automation-condition-fields\"\n className=\"w-36 shrink-0\"\n placeholder=\"field\"\n value={condition.field}\n onChange={(e) => update(index, { field: e.target.value })}\n />\n <select\n aria-label=\"Condition operator\"\n className={`${fieldClass} mt-0 w-32 shrink-0`}\n value={condition.operator}\n onChange={(e) => update(index, { operator: e.target.value as ConditionOperator })}\n >\n {CONDITION_OPERATORS.map((op) => (\n <option key={op} value={op}>\n {CONDITION_OPERATOR_LABEL[op]}\n </option>\n ))}\n </select>\n {condition.operator !== 'exists' && (\n <Input\n aria-label=\"Condition value\"\n className=\"min-w-0 flex-1\"\n placeholder={\n condition.operator === 'in' || condition.operator === 'notIn'\n ? 'comma, separated, values'\n : 'value'\n }\n value={condition.value}\n onChange={(e) => update(index, { value: e.target.value })}\n />\n )}\n <Button\n type=\"button\"\n size=\"sm\"\n variant=\"ghost\"\n aria-label=\"Remove condition\"\n onClick={() => remove(index)}\n >\n <X className=\"h-4 w-4\" />\n </Button>\n </div>\n ))}\n <datalist id=\"automation-condition-fields\">\n {CONDITION_FIELDS.map((f) => (\n <option key={f} value={f} />\n ))}\n </datalist>\n <Button\n type=\"button\"\n size=\"sm\"\n variant=\"outline\"\n onClick={add}\n data-testid=\"automation-add-condition\"\n >\n <Plus className=\"mr-1 h-4 w-4\" />\n Add condition\n </Button>\n {conditions.length === 0 && (\n <p className=\"text-xs text-muted-foreground\">\n No conditions: the rule matches every event.\n </p>\n )}\n </div>\n );\n}\n\n/** Name, description, project, trigger, conditions and actions — the fields create and edit share. */\nexport function AutomationRuleFields({\n form,\n onChange,\n projectLocked = false,\n}: {\n form: AutomationRuleFormState;\n onChange: (next: AutomationRuleFormState) => void;\n /** The edit page cannot change the project (the API accepts no `projectId` on update). */\n projectLocked?: boolean;\n}) {\n return (\n <div className=\"space-y-4\">\n <div>\n <label htmlFor=\"automation-name\" className=\"text-sm font-medium\">\n Name\n </label>\n <Input\n id=\"automation-name\"\n className=\"mt-1\"\n value={form.name}\n onChange={(e) => onChange({ ...form, name: e.target.value })}\n placeholder=\"e.g. Assign new bugs to triage\"\n />\n </div>\n <div>\n <label htmlFor=\"automation-description\" className=\"text-sm font-medium\">\n Description\n </label>\n <textarea\n id=\"automation-description\"\n className=\"mt-1 w-full rounded-md border border-input bg-background px-3 py-2 text-sm min-h-[72px]\"\n value={form.description}\n onChange={(e) => onChange({ ...form, description: e.target.value })}\n placeholder=\"What this rule is for\"\n />\n </div>\n <div className=\"grid grid-cols-1 gap-4 sm:grid-cols-2\">\n <div>\n <label htmlFor=\"automation-project\" className=\"text-sm font-medium\">\n Project\n </label>\n {projectLocked ? (\n <p className=\"mt-1 text-sm text-muted-foreground\">\n A rule's project cannot be changed after it is created.\n </p>\n ) : (\n <div className=\"mt-1\">\n <ProjectSelect\n id=\"automation-project\"\n value={form.projectId}\n onChange={(projectId) => onChange({ ...form, projectId })}\n />\n </div>\n )}\n </div>\n <div>\n <label htmlFor=\"automation-trigger\" className=\"text-sm font-medium\">\n Trigger\n </label>\n <select\n id=\"automation-trigger\"\n className={fieldClass}\n value={form.triggerType}\n onChange={(e) => onChange({ ...form, triggerType: e.target.value as TriggerType })}\n >\n {TRIGGER_TYPES.map((t) => (\n <option key={t} value={t}>\n {TRIGGER_TYPE_LABEL[t]}\n {AUTOMATIC_TRIGGER_TYPES.has(t) ? '' : ' (not yet automatic)'}\n </option>\n ))}\n </select>\n {!AUTOMATIC_TRIGGER_TYPES.has(form.triggerType) && (\n <p className=\"mt-1 text-xs text-muted-foreground\">\n This trigger is saved but does not fire on its own yet — use{' '}\n <span className=\"font-medium\">Run now</span> to run it against a work item.\n </p>\n )}\n </div>\n </div>\n <div>\n <p className=\"text-sm font-medium\">Conditions</p>\n <p className=\"mb-2 text-xs text-muted-foreground\">\n All conditions must match. Leave empty to match every event.\n </p>\n <ConditionsEditor\n conditions={form.conditions}\n onChange={(conditions) => onChange({ ...form, conditions })}\n />\n </div>\n <div>\n <p className=\"text-sm font-medium\">Actions</p>\n <p className=\"mb-2 text-xs text-muted-foreground\">\n Run in order when the conditions match.\n </p>\n <ActionsEditor\n actions={form.actions}\n onChange={(actions) => onChange({ ...form, actions })}\n />\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AutomationRuleFields.js","names":[],"sources":["../../../src/planmagnet/automation/AutomationRuleFields.tsx"],"sourcesContent":["import { Button, Input } from '@burdenoff/fe-libs/ui';\nimport { Plus, X } from 'lucide-react';\nimport {\n AssigneeSelect,\n WORK_ITEM_PRIORITIES,\n WORK_ITEM_STATUSES,\n enumLabel,\n} from '../controls/WorkItemControls';\nimport { ProjectSelect } from '../controls/Pickers';\nimport {\n ACTION_TYPES,\n ACTION_TYPE_LABEL,\n AUTOMATIC_TRIGGER_TYPES,\n CONDITION_FIELDS,\n CONDITION_OPERATORS,\n CONDITION_OPERATOR_LABEL,\n TRIGGER_TYPES,\n TRIGGER_TYPE_LABEL,\n type ActionType,\n type ConditionOperator,\n type RuleAction,\n type RuleCondition,\n type TriggerType,\n} from './automationRuleTypes';\n\n/** The editable shape both the create and edit pages share. */\nexport interface AutomationRuleFormState {\n name: string;\n description: string;\n projectId: string;\n triggerType: TriggerType;\n conditions: RuleCondition[];\n actions: RuleAction[];\n}\n\nconst fieldClass =\n 'mt-1 w-full rounded-md border border-input bg-background px-3 py-2 text-sm disabled:opacity-60';\n\n// fe-libs' <Input> sets its own text color via `text-text-primary` (a semantic token from its own theme\n// scope), but every Input below sits in a row that also carries this file's OTHER token family\n// (`fieldClass` above uses `border-input`/`bg-background`, and the rest of this microfe standardizes on\n// `text-foreground`/`bg-background`/`border-input`). Passing this class merges via `cn()` (tailwind-merge),\n// which recognizes both `text-text-primary` and `text-foreground` as the same \"text color\" group and keeps\n// only the last one — so this pins every value/label an editor renders here to the token this microfe's own\n// pages already render correctly with, instead of leaving it to whichever token happens to win the cascade.\nconst inputTextClass = 'text-foreground';\n\nfunction ActionValueEditor({\n action,\n onChange,\n}: {\n action: RuleAction;\n onChange: (value: string) => void;\n}) {\n switch (action.type) {\n case 'ASSIGN_TO_USER':\n return <AssigneeSelect value={action.value} onChange={onChange} />;\n case 'SET_STATUS':\n return (\n <select\n className={fieldClass}\n value={action.value}\n onChange={(e) => onChange(e.target.value)}\n >\n <option value=\"\">Choose a status</option>\n {WORK_ITEM_STATUSES.map((s) => (\n <option key={s} value={s}>\n {enumLabel(s)}\n </option>\n ))}\n </select>\n );\n case 'SET_PRIORITY':\n return (\n <select\n className={fieldClass}\n value={action.value}\n onChange={(e) => onChange(e.target.value)}\n >\n <option value=\"\">Choose a priority</option>\n {WORK_ITEM_PRIORITIES.map((p) => (\n <option key={p} value={p}>\n {enumLabel(p)}\n </option>\n ))}\n </select>\n );\n case 'ADD_LABEL':\n default:\n return (\n <Input\n aria-label=\"Label\"\n className={inputTextClass}\n placeholder=\"e.g. needs-review\"\n value={action.value}\n onChange={(e) => onChange(e.target.value)}\n />\n );\n }\n}\n\n/** The actions builder: only the four types the engine can actually dispatch (see automationRuleTypes.ts). */\nexport function ActionsEditor({\n actions,\n onChange,\n}: {\n actions: RuleAction[];\n onChange: (next: RuleAction[]) => void;\n}) {\n const update = (index: number, patch: Partial<RuleAction>) =>\n onChange(actions.map((a, i) => (i === index ? { ...a, ...patch } : a)));\n const remove = (index: number) => onChange(actions.filter((_, i) => i !== index));\n const add = () => onChange([...actions, { type: 'ASSIGN_TO_USER', value: '' }]);\n\n return (\n <div className=\"space-y-2\">\n {actions.map((action, index) => {\n // A rule created before this UI existed (or via the API directly) can carry an action type this\n // builder does not offer (e.g. POST_COMMENT, which the engine never dispatches — see\n // automationRuleTypes.ts). Keep it selectable and visible rather than silently swapping it out from\n // under the user the moment they open the edit page.\n const known = (ACTION_TYPES as readonly string[]).includes(action.type);\n const typeOptions = known ? ACTION_TYPES : [action.type, ...ACTION_TYPES];\n return (\n <div key={index} className=\"space-y-1\">\n <div className=\"flex items-start gap-2\">\n <select\n aria-label=\"Action type\"\n className={`${fieldClass} mt-0 w-40 shrink-0`}\n value={action.type}\n onChange={(e) =>\n update(index, {\n type: e.target.value as ActionType,\n value: e.target.value === action.type ? action.value : '',\n })\n }\n >\n {typeOptions.map((t) => (\n <option key={t} value={t}>\n {known || t !== action.type ? (ACTION_TYPE_LABEL[t as ActionType] ?? t) : t}\n </option>\n ))}\n </select>\n <div className=\"min-w-0 flex-1\">\n <ActionValueEditor action={action} onChange={(value) => update(index, { value })} />\n </div>\n <Button\n type=\"button\"\n size=\"sm\"\n variant=\"ghost\"\n aria-label=\"Remove action\"\n onClick={() => remove(index)}\n >\n <X className=\"h-4 w-4\" />\n </Button>\n </div>\n {!known && (\n <p className=\"text-xs text-muted-foreground\">\n This action type is not run by the engine yet; the rule keeps it but never\n dispatches it.\n </p>\n )}\n </div>\n );\n })}\n <Button\n type=\"button\"\n size=\"sm\"\n variant=\"outline\"\n onClick={add}\n data-testid=\"automation-add-action\"\n >\n <Plus className=\"mr-1 h-4 w-4\" />\n Add action\n </Button>\n {actions.length === 0 && (\n <p className=\"text-xs text-muted-foreground\">\n A rule with no actions still records that it ran, but changes nothing.\n </p>\n )}\n </div>\n );\n}\n\n/** The conditions builder. A rule with no conditions always matches — the gate is opt-in (engine default). */\nexport function ConditionsEditor({\n conditions,\n onChange,\n}: {\n conditions: RuleCondition[];\n onChange: (next: RuleCondition[]) => void;\n}) {\n const update = (index: number, patch: Partial<RuleCondition>) =>\n onChange(conditions.map((c, i) => (i === index ? { ...c, ...patch } : c)));\n const remove = (index: number) => onChange(conditions.filter((_, i) => i !== index));\n const add = () => onChange([...conditions, { field: 'status', operator: 'eq', value: '' }]);\n\n return (\n <div className=\"space-y-2\">\n {conditions.map((condition, index) => (\n <div key={index} className=\"flex items-start gap-2\">\n <Input\n aria-label=\"Condition field\"\n list=\"automation-condition-fields\"\n className={`w-36 shrink-0 ${inputTextClass}`}\n placeholder=\"field\"\n value={condition.field}\n onChange={(e) => update(index, { field: e.target.value })}\n />\n <select\n aria-label=\"Condition operator\"\n className={`${fieldClass} mt-0 w-32 shrink-0`}\n value={condition.operator}\n onChange={(e) => update(index, { operator: e.target.value as ConditionOperator })}\n >\n {CONDITION_OPERATORS.map((op) => (\n <option key={op} value={op}>\n {CONDITION_OPERATOR_LABEL[op]}\n </option>\n ))}\n </select>\n {condition.operator !== 'exists' && (\n <Input\n aria-label=\"Condition value\"\n className={`min-w-0 flex-1 ${inputTextClass}`}\n placeholder={\n condition.operator === 'in' || condition.operator === 'notIn'\n ? 'comma, separated, values'\n : 'value'\n }\n value={condition.value}\n onChange={(e) => update(index, { value: e.target.value })}\n />\n )}\n <Button\n type=\"button\"\n size=\"sm\"\n variant=\"ghost\"\n aria-label=\"Remove condition\"\n onClick={() => remove(index)}\n >\n <X className=\"h-4 w-4\" />\n </Button>\n </div>\n ))}\n <datalist id=\"automation-condition-fields\">\n {CONDITION_FIELDS.map((f) => (\n <option key={f} value={f} />\n ))}\n </datalist>\n <Button\n type=\"button\"\n size=\"sm\"\n variant=\"outline\"\n onClick={add}\n data-testid=\"automation-add-condition\"\n >\n <Plus className=\"mr-1 h-4 w-4\" />\n Add condition\n </Button>\n {conditions.length === 0 && (\n <p className=\"text-xs text-muted-foreground\">\n No conditions: the rule matches every event.\n </p>\n )}\n </div>\n );\n}\n\n/** Name, description, project, trigger, conditions and actions — the fields create and edit share. */\nexport function AutomationRuleFields({\n form,\n onChange,\n projectLocked = false,\n}: {\n form: AutomationRuleFormState;\n onChange: (next: AutomationRuleFormState) => void;\n /** The edit page cannot change the project (the API accepts no `projectId` on update). */\n projectLocked?: boolean;\n}) {\n return (\n <div className=\"space-y-4\">\n <div>\n <label htmlFor=\"automation-name\" className=\"text-sm font-medium\">\n Name\n </label>\n <Input\n id=\"automation-name\"\n className={`mt-1 ${inputTextClass}`}\n value={form.name}\n onChange={(e) => onChange({ ...form, name: e.target.value })}\n placeholder=\"e.g. Assign new bugs to triage\"\n />\n </div>\n <div>\n <label htmlFor=\"automation-description\" className=\"text-sm font-medium\">\n Description\n </label>\n <textarea\n id=\"automation-description\"\n className=\"mt-1 w-full rounded-md border border-input bg-background px-3 py-2 text-sm min-h-[72px]\"\n value={form.description}\n onChange={(e) => onChange({ ...form, description: e.target.value })}\n placeholder=\"What this rule is for\"\n />\n </div>\n <div className=\"grid grid-cols-1 gap-4 sm:grid-cols-2\">\n <div>\n <label htmlFor=\"automation-project\" className=\"text-sm font-medium\">\n Project\n </label>\n {projectLocked ? (\n <p className=\"mt-1 text-sm text-muted-foreground\">\n A rule's project cannot be changed after it is created.\n </p>\n ) : (\n <div className=\"mt-1\">\n <ProjectSelect\n id=\"automation-project\"\n value={form.projectId}\n onChange={(projectId) => onChange({ ...form, projectId })}\n />\n </div>\n )}\n </div>\n <div>\n <label htmlFor=\"automation-trigger\" className=\"text-sm font-medium\">\n Trigger\n </label>\n <select\n id=\"automation-trigger\"\n className={fieldClass}\n value={form.triggerType}\n onChange={(e) => onChange({ ...form, triggerType: e.target.value as TriggerType })}\n >\n {TRIGGER_TYPES.map((t) => (\n <option key={t} value={t}>\n {TRIGGER_TYPE_LABEL[t]}\n {AUTOMATIC_TRIGGER_TYPES.has(t) ? '' : ' (not yet automatic)'}\n </option>\n ))}\n </select>\n {!AUTOMATIC_TRIGGER_TYPES.has(form.triggerType) && (\n <p className=\"mt-1 text-xs text-muted-foreground\">\n This trigger is saved but does not fire on its own yet — use{' '}\n <span className=\"font-medium\">Run now</span> to run it against a work item.\n </p>\n )}\n </div>\n </div>\n <div>\n <p className=\"text-sm font-medium\">Conditions</p>\n <p className=\"mb-2 text-xs text-muted-foreground\">\n All conditions must match. Leave empty to match every event.\n </p>\n <ConditionsEditor\n conditions={form.conditions}\n onChange={(conditions) => onChange({ ...form, conditions })}\n />\n </div>\n <div>\n <p className=\"text-sm font-medium\">Actions</p>\n <p className=\"mb-2 text-xs text-muted-foreground\">\n Run in order when the conditions match.\n </p>\n <ActionsEditor\n actions={form.actions}\n onChange={(actions) => onChange({ ...form, actions })}\n />\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;;AAmCA,IAAM,IACJ,kGASI,IAAiB;AAEvB,SAAS,EAAkB,EACzB,WACA,eAIC;AACD,SAAQ,EAAO,MAAf;EACE,KAAK,iBACH,QAAO,kBAAC,GAAD;GAAgB,OAAO,EAAO;GAAiB;GAAY,CAAA;EACpE,KAAK,aACH,QACE,kBAAC,UAAD;GACE,WAAW;GACX,OAAO,EAAO;GACd,WAAW,MAAM,EAAS,EAAE,OAAO,MAAM;aAH3C,CAKE,kBAAC,UAAD;IAAQ,OAAM;cAAG;IAAwB,CAAA,EACxC,EAAmB,KAAK,MACvB,kBAAC,UAAD;IAAgB,OAAO;cACpB,EAAU,EAAE;IACN,EAFI,EAEJ,CACT,CACK;;EAEb,KAAK,eACH,QACE,kBAAC,UAAD;GACE,WAAW;GACX,OAAO,EAAO;GACd,WAAW,MAAM,EAAS,EAAE,OAAO,MAAM;aAH3C,CAKE,kBAAC,UAAD;IAAQ,OAAM;cAAG;IAA0B,CAAA,EAC1C,EAAqB,KAAK,MACzB,kBAAC,UAAD;IAAgB,OAAO;cACpB,EAAU,EAAE;IACN,EAFI,EAEJ,CACT,CACK;;EAGb,QACE,QACE,kBAAC,GAAD;GACE,cAAW;GACX,WAAW;GACX,aAAY;GACZ,OAAO,EAAO;GACd,WAAW,MAAM,EAAS,EAAE,OAAO,MAAM;GACzC,CAAA;;;AAMV,SAAgB,EAAc,EAC5B,YACA,eAIC;CACD,IAAM,KAAU,GAAe,MAC7B,EAAS,EAAQ,KAAK,GAAG,MAAO,MAAM,IAAQ;EAAE,GAAG;EAAG,GAAG;EAAO,GAAG,EAAG,CAAC,EACnE,KAAU,MAAkB,EAAS,EAAQ,QAAQ,GAAG,MAAM,MAAM,EAAM,CAAC;AAGjF,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf;GACG,EAAQ,KAAK,GAAQ,MAAU;IAK9B,IAAM,IAAS,EAAmC,SAAS,EAAO,KAAK,EACjE,IAAc,IAAQ,IAAe,CAAC,EAAO,MAAM,GAAG,EAAa;AACzE,WACE,kBAAC,OAAD;KAAiB,WAAU;eAA3B,CACE,kBAAC,OAAD;MAAK,WAAU;gBAAf;OACE,kBAAC,UAAD;QACE,cAAW;QACX,WAAW,GAAG,EAAW;QACzB,OAAO,EAAO;QACd,WAAW,MACT,EAAO,GAAO;SACZ,MAAM,EAAE,OAAO;SACf,OAAO,EAAE,OAAO,UAAU,EAAO,OAAO,EAAO,QAAQ;SACxD,CAAC;kBAGH,EAAY,KAAK,MAChB,kBAAC,UAAD;SAAgB,OAAO;mBACpB,KAAS,MAAM,EAAO,OAAQ,EAAkB,MAAoB,IAAK;SACnE,EAFI,EAEJ,CACT;QACK,CAAA;OACT,kBAAC,OAAD;QAAK,WAAU;kBACb,kBAAC,GAAD;SAA2B;SAAQ,WAAW,MAAU,EAAO,GAAO,EAAE,UAAO,CAAC;SAAI,CAAA;QAChF,CAAA;OACN,kBAAC,GAAD;QACE,MAAK;QACL,MAAK;QACL,SAAQ;QACR,cAAW;QACX,eAAe,EAAO,EAAM;kBAE5B,kBAAC,GAAD,EAAG,WAAU,WAAY,CAAA;QAClB,CAAA;OACL;SACL,CAAC,KACA,kBAAC,KAAD;MAAG,WAAU;gBAAgC;MAGzC,CAAA,CAEF;OAtCI,EAsCJ;KAER;GACF,kBAAC,GAAD;IACE,MAAK;IACL,MAAK;IACL,SAAQ;IACR,eAzDY,EAAS,CAAC,GAAG,GAAS;KAAE,MAAM;KAAkB,OAAO;KAAI,CAAC,CAAC;IA0DzE,eAAY;cALd,CAOE,kBAAC,GAAD,EAAM,WAAU,gBAAiB,CAAA,EAAA,aAE1B;;GACR,EAAQ,WAAW,KAClB,kBAAC,KAAD;IAAG,WAAU;cAAgC;IAEzC,CAAA;GAEF;;;AAKV,SAAgB,EAAiB,EAC/B,eACA,eAIC;CACD,IAAM,KAAU,GAAe,MAC7B,EAAS,EAAW,KAAK,GAAG,MAAO,MAAM,IAAQ;EAAE,GAAG;EAAG,GAAG;EAAO,GAAG,EAAG,CAAC,EACtE,KAAU,MAAkB,EAAS,EAAW,QAAQ,GAAG,MAAM,MAAM,EAAM,CAAC;AAGpF,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf;GACG,EAAW,KAAK,GAAW,MAC1B,kBAAC,OAAD;IAAiB,WAAU;cAA3B;KACE,kBAAC,GAAD;MACE,cAAW;MACX,MAAK;MACL,WAAW,iBAAiB;MAC5B,aAAY;MACZ,OAAO,EAAU;MACjB,WAAW,MAAM,EAAO,GAAO,EAAE,OAAO,EAAE,OAAO,OAAO,CAAC;MACzD,CAAA;KACF,kBAAC,UAAD;MACE,cAAW;MACX,WAAW,GAAG,EAAW;MACzB,OAAO,EAAU;MACjB,WAAW,MAAM,EAAO,GAAO,EAAE,UAAU,EAAE,OAAO,OAA4B,CAAC;gBAEhF,EAAoB,KAAK,MACxB,kBAAC,UAAD;OAAiB,OAAO;iBACrB,EAAyB;OACnB,EAFI,EAEJ,CACT;MACK,CAAA;KACR,EAAU,aAAa,YACtB,kBAAC,GAAD;MACE,cAAW;MACX,WAAW,kBAAkB;MAC7B,aACE,EAAU,aAAa,QAAQ,EAAU,aAAa,UAClD,6BACA;MAEN,OAAO,EAAU;MACjB,WAAW,MAAM,EAAO,GAAO,EAAE,OAAO,EAAE,OAAO,OAAO,CAAC;MACzD,CAAA;KAEJ,kBAAC,GAAD;MACE,MAAK;MACL,MAAK;MACL,SAAQ;MACR,cAAW;MACX,eAAe,EAAO,EAAM;gBAE5B,kBAAC,GAAD,EAAG,WAAU,WAAY,CAAA;MAClB,CAAA;KACL;MA3CI,EA2CJ,CACN;GACF,kBAAC,YAAD;IAAU,IAAG;cACV,EAAiB,KAAK,MACrB,kBAAC,UAAD,EAAgB,OAAO,GAAK,EAAf,EAAe,CAC5B;IACO,CAAA;GACX,kBAAC,GAAD;IACE,MAAK;IACL,MAAK;IACL,SAAQ;IACR,eA3DY,EAAS,CAAC,GAAG,GAAY;KAAE,OAAO;KAAU,UAAU;KAAM,OAAO;KAAI,CAAC,CAAC;IA4DrF,eAAY;cALd,CAOE,kBAAC,GAAD,EAAM,WAAU,gBAAiB,CAAA,EAAA,gBAE1B;;GACR,EAAW,WAAW,KACrB,kBAAC,KAAD;IAAG,WAAU;cAAgC;IAEzC,CAAA;GAEF;;;AAKV,SAAgB,EAAqB,EACnC,SACA,aACA,mBAAgB,MAMf;AACD,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf;GACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,SAAD;IAAO,SAAQ;IAAkB,WAAU;cAAsB;IAEzD,CAAA,EACR,kBAAC,GAAD;IACE,IAAG;IACH,WAAW,QAAQ;IACnB,OAAO,EAAK;IACZ,WAAW,MAAM,EAAS;KAAE,GAAG;KAAM,MAAM,EAAE,OAAO;KAAO,CAAC;IAC5D,aAAY;IACZ,CAAA,CACE,EAAA,CAAA;GACN,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,SAAD;IAAO,SAAQ;IAAyB,WAAU;cAAsB;IAEhE,CAAA,EACR,kBAAC,YAAD;IACE,IAAG;IACH,WAAU;IACV,OAAO,EAAK;IACZ,WAAW,MAAM,EAAS;KAAE,GAAG;KAAM,aAAa,EAAE,OAAO;KAAO,CAAC;IACnE,aAAY;IACZ,CAAA,CACE,EAAA,CAAA;GACN,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,SAAD;KAAO,SAAQ;KAAqB,WAAU;eAAsB;KAE5D,CAAA,EACP,IACC,kBAAC,KAAD;KAAG,WAAU;eAAqC;KAE9C,CAAA,GAEJ,kBAAC,OAAD;KAAK,WAAU;eACb,kBAAC,GAAD;MACE,IAAG;MACH,OAAO,EAAK;MACZ,WAAW,MAAc,EAAS;OAAE,GAAG;OAAM;OAAW,CAAC;MACzD,CAAA;KACE,CAAA,CAEJ,EAAA,CAAA,EACN,kBAAC,OAAD,EAAA,UAAA;KACE,kBAAC,SAAD;MAAO,SAAQ;MAAqB,WAAU;gBAAsB;MAE5D,CAAA;KACR,kBAAC,UAAD;MACE,IAAG;MACH,WAAW;MACX,OAAO,EAAK;MACZ,WAAW,MAAM,EAAS;OAAE,GAAG;OAAM,aAAa,EAAE,OAAO;OAAsB,CAAC;gBAEjF,EAAc,KAAK,MAClB,kBAAC,UAAD;OAAgB,OAAO;iBAAvB,CACG,EAAmB,IACnB,EAAwB,IAAI,EAAE,GAAG,KAAK,uBAChC;SAHI,EAGJ,CACT;MACK,CAAA;KACR,CAAC,EAAwB,IAAI,EAAK,YAAY,IAC7C,kBAAC,KAAD;MAAG,WAAU;gBAAb;OAAkD;OACa;OAC7D,kBAAC,QAAD;QAAM,WAAU;kBAAc;QAAc,CAAA;;OAC1C;;KAEF,EAAA,CAAA,CACF;;GACN,kBAAC,OAAD,EAAA,UAAA;IACE,kBAAC,KAAD;KAAG,WAAU;eAAsB;KAAc,CAAA;IACjD,kBAAC,KAAD;KAAG,WAAU;eAAqC;KAE9C,CAAA;IACJ,kBAAC,GAAD;KACE,YAAY,EAAK;KACjB,WAAW,MAAe,EAAS;MAAE,GAAG;MAAM;MAAY,CAAC;KAC3D,CAAA;IACE,EAAA,CAAA;GACN,kBAAC,OAAD,EAAA,UAAA;IACE,kBAAC,KAAD;KAAG,WAAU;eAAsB;KAAW,CAAA;IAC9C,kBAAC,KAAD;KAAG,WAAU;eAAqC;KAE9C,CAAA;IACJ,kBAAC,GAAD;KACE,SAAS,EAAK;KACd,WAAW,MAAY,EAAS;MAAE,GAAG;MAAM;MAAS,CAAC;KACrD,CAAA;IACE,EAAA,CAAA;GACF"}
|
|
@@ -10,6 +10,17 @@
|
|
|
10
10
|
export declare const WORK_ITEM_STATUSES: readonly ["BACKLOG", "TODO", "IN_PROGRESS", "IN_REVIEW", "TESTING", "DONE", "CANCELLED"];
|
|
11
11
|
export declare const WORK_ITEM_PRIORITIES: readonly ["NONE", "LOW", "MEDIUM", "HIGH", "CRITICAL"];
|
|
12
12
|
export declare function enumLabel(value: string): string;
|
|
13
|
+
/**
|
|
14
|
+
* Shared by every inline-edit control on this page and on My Work (BOFF-8048): saves through
|
|
15
|
+
* planmagnetUpdateWorkItem and surfaces a refusal (workflow, validation) as `error` rather than swallowing it —
|
|
16
|
+
* see utils/mutationResult.ts. Exported so a page composing several of these controls in one row (My Work) can also
|
|
17
|
+
* drive its own due-date input through the identical save path without re-deriving it.
|
|
18
|
+
*/
|
|
19
|
+
export declare function useWorkItemUpdate(workItemId: string): {
|
|
20
|
+
save: (input: Record<string, unknown>) => Promise<void>;
|
|
21
|
+
saving: boolean;
|
|
22
|
+
error: string | null;
|
|
23
|
+
};
|
|
13
24
|
/** A status or priority select that saves on change. */
|
|
14
25
|
export declare function WorkItemEnumSelect({ workItemId, field, value, options, label, }: {
|
|
15
26
|
workItemId: string;
|
|
@@ -57,6 +68,16 @@ export declare function WorkItemAssigneeSelect({ workItemId, assigneeId, }: {
|
|
|
57
68
|
workItemId: string;
|
|
58
69
|
assigneeId: string | null;
|
|
59
70
|
}): import("react/jsx-runtime").JSX.Element;
|
|
71
|
+
/**
|
|
72
|
+
* The due-date inline control (BOFF-8048): a plain date input saving straight through
|
|
73
|
+
* planmagnetUpdateWorkItem's `dueDate: DateTime` scalar — an already-implemented real scalar (see
|
|
74
|
+
* utils/datetime-scalar.ts), so the epoch-serialization trap that hits a GraphQL `String` date field does not
|
|
75
|
+
* apply here. Clearing the field saves `null` (no due date) rather than being unclearable once set.
|
|
76
|
+
*/
|
|
77
|
+
export declare function WorkItemDueDateInput({ workItemId, dueDate, }: {
|
|
78
|
+
workItemId: string;
|
|
79
|
+
dueDate: string | null;
|
|
80
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
60
81
|
/** Edit and Delete for the task detail header. */
|
|
61
82
|
export declare function WorkItemHeaderActions({ workItemId, title, }: {
|
|
62
83
|
workItemId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkItemControls.d.ts","sourceRoot":"","sources":["../../../src/planmagnet/controls/WorkItemControls.tsx"],"names":[],"mappings":"AAYA;;;;;;;;GAQG;AAEH,eAAO,MAAM,kBAAkB,0FAQrB,CAAC;AACX,eAAO,MAAM,oBAAoB,wDAAyD,CAAC;AAE3F,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAG/C;
|
|
1
|
+
{"version":3,"file":"WorkItemControls.d.ts","sourceRoot":"","sources":["../../../src/planmagnet/controls/WorkItemControls.tsx"],"names":[],"mappings":"AAYA;;;;;;;;GAQG;AAEH,eAAO,MAAM,kBAAkB,0FAQrB,CAAC;AACX,eAAO,MAAM,oBAAoB,wDAAyD,CAAC;AAE3F,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAG/C;AAmCD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM;kBAMvB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;EASnD;AAED,wDAAwD;AACxD,wBAAgB,kBAAkB,CAAC,EACjC,UAAU,EACV,KAAK,EACL,KAAK,EACL,OAAO,EACP,KAAK,GACN,EAAE;IACD,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;CACf,2CAyBA;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,UAAU,EACV,SAAS,EACT,KAAK,GACN,EAAE;IACD,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf,2CA8BA;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;;;;;;;;EAmBtE;AAED,mGAAmG;AACnG,wBAAgB,cAAc,CAAC,EAC7B,EAAE,EACF,KAAK,EACL,QAAQ,EACR,QAAgB,EAChB,SAAwB,EACxB,SAAsB,GACvB,EAAE;IACD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4FAA4F;IAC5F,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qFAAqF;IACrF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,2CAkCA;AAED,2DAA2D;AAC3D,wBAAgB,sBAAsB,CAAC,EACrC,UAAU,EACV,UAAU,GACX,EAAE;IACD,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,2CAcA;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,UAAU,EACV,OAAO,GACR,EAAE;IACD,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,2CAsBA;AAED,kDAAkD;AAClD,wBAAgB,qBAAqB,CAAC,EACpC,UAAU,EACV,KAAK,GACN,EAAE;IACD,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf,2CA6CA"}
|