@mj-biz-apps/tasks-ng 0.0.1 → 1.0.0
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/lib/components/my-tasks/my-tasks.component.d.ts +68 -0
- package/dist/lib/components/my-tasks/my-tasks.component.d.ts.map +1 -0
- package/dist/lib/components/my-tasks/my-tasks.component.js +136 -0
- package/dist/lib/components/my-tasks/my-tasks.component.js.map +1 -0
- package/dist/lib/components/task-assignee-list/task-assignee-list.component.d.ts +42 -0
- package/dist/lib/components/task-assignee-list/task-assignee-list.component.d.ts.map +1 -0
- package/dist/lib/components/task-assignee-list/task-assignee-list.component.js +76 -0
- package/dist/lib/components/task-assignee-list/task-assignee-list.component.js.map +1 -0
- package/dist/lib/components/task-bulk-actions-bar/task-bulk-actions-bar.component.d.ts +62 -0
- package/dist/lib/components/task-bulk-actions-bar/task-bulk-actions-bar.component.d.ts.map +1 -0
- package/dist/lib/components/task-bulk-actions-bar/task-bulk-actions-bar.component.js +151 -0
- package/dist/lib/components/task-bulk-actions-bar/task-bulk-actions-bar.component.js.map +1 -0
- package/dist/lib/components/task-dashboard/task-dashboard.component.d.ts +96 -0
- package/dist/lib/components/task-dashboard/task-dashboard.component.d.ts.map +1 -0
- package/dist/lib/components/task-dashboard/task-dashboard.component.js +451 -0
- package/dist/lib/components/task-dashboard/task-dashboard.component.js.map +1 -0
- package/dist/lib/components/task-detail-panel/task-detail-panel.component.d.ts +120 -0
- package/dist/lib/components/task-detail-panel/task-detail-panel.component.d.ts.map +1 -0
- package/dist/lib/components/task-detail-panel/task-detail-panel.component.js +842 -0
- package/dist/lib/components/task-detail-panel/task-detail-panel.component.js.map +1 -0
- package/dist/lib/components/task-edit-panel/task-edit-panel.component.d.ts +124 -0
- package/dist/lib/components/task-edit-panel/task-edit-panel.component.d.ts.map +1 -0
- package/dist/lib/components/task-edit-panel/task-edit-panel.component.js +1057 -0
- package/dist/lib/components/task-edit-panel/task-edit-panel.component.js.map +1 -0
- package/dist/lib/components/task-gantt/task-gantt.component.d.ts +36 -0
- package/dist/lib/components/task-gantt/task-gantt.component.d.ts.map +1 -0
- package/dist/lib/components/task-gantt/task-gantt.component.js +130 -0
- package/dist/lib/components/task-gantt/task-gantt.component.js.map +1 -0
- package/dist/lib/components/task-kanban/task-kanban.component.d.ts +54 -0
- package/dist/lib/components/task-kanban/task-kanban.component.d.ts.map +1 -0
- package/dist/lib/components/task-kanban/task-kanban.component.js +151 -0
- package/dist/lib/components/task-kanban/task-kanban.component.js.map +1 -0
- package/dist/lib/components/task-list/task-list.component.d.ts +248 -0
- package/dist/lib/components/task-list/task-list.component.d.ts.map +1 -0
- package/dist/lib/components/task-list/task-list.component.js +1184 -0
- package/dist/lib/components/task-list/task-list.component.js.map +1 -0
- package/dist/lib/components/task-panel/task-panel.component.d.ts +246 -0
- package/dist/lib/components/task-panel/task-panel.component.d.ts.map +1 -0
- package/dist/lib/components/task-panel/task-panel.component.js +469 -0
- package/dist/lib/components/task-panel/task-panel.component.js.map +1 -0
- package/dist/lib/components/task-priority-badge/task-priority-badge.component.d.ts +24 -0
- package/dist/lib/components/task-priority-badge/task-priority-badge.component.d.ts.map +1 -0
- package/dist/lib/components/task-priority-badge/task-priority-badge.component.js +46 -0
- package/dist/lib/components/task-priority-badge/task-priority-badge.component.js.map +1 -0
- package/dist/lib/components/task-template-wizard/task-template-wizard.component.d.ts +107 -0
- package/dist/lib/components/task-template-wizard/task-template-wizard.component.d.ts.map +1 -0
- package/dist/lib/components/task-template-wizard/task-template-wizard.component.js +586 -0
- package/dist/lib/components/task-template-wizard/task-template-wizard.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTask/mjbizappstaskstask.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTask/mjbizappstaskstask.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTask/mjbizappstaskstask.form.component.js +256 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTask/mjbizappstaskstask.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskActivity/mjbizappstaskstaskactivity.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskActivity/mjbizappstaskstaskactivity.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskActivity/mjbizappstaskstaskactivity.form.component.js +67 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskActivity/mjbizappstaskstaskactivity.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskAssignment/mjbizappstaskstaskassignment.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskAssignment/mjbizappstaskstaskassignment.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskAssignment/mjbizappstaskstaskassignment.form.component.js +71 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskAssignment/mjbizappstaskstaskassignment.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskCategory/mjbizappstaskstaskcategory.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskCategory/mjbizappstaskstaskcategory.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskCategory/mjbizappstaskstaskcategory.form.component.js +124 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskCategory/mjbizappstaskstaskcategory.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskComment/mjbizappstaskstaskcomment.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskComment/mjbizappstaskstaskcomment.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskComment/mjbizappstaskstaskcomment.form.component.js +86 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskComment/mjbizappstaskstaskcomment.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskDependency/mjbizappstaskstaskdependency.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskDependency/mjbizappstaskstaskdependency.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskDependency/mjbizappstaskstaskdependency.form.component.js +61 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskDependency/mjbizappstaskstaskdependency.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskLink/mjbizappstaskstasklink.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskLink/mjbizappstaskstasklink.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskLink/mjbizappstaskstasklink.form.component.js +63 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskLink/mjbizappstaskstasklink.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskNotificationConfig/mjbizappstaskstasknotificationconfig.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskNotificationConfig/mjbizappstaskstasknotificationconfig.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskNotificationConfig/mjbizappstaskstasknotificationconfig.form.component.js +69 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskNotificationConfig/mjbizappstaskstasknotificationconfig.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskNotificationLog/mjbizappstaskstasknotificationlog.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskNotificationLog/mjbizappstaskstasknotificationlog.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskNotificationLog/mjbizappstaskstasknotificationlog.form.component.js +63 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskNotificationLog/mjbizappstaskstasknotificationlog.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskRole/mjbizappstaskstaskrole.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskRole/mjbizappstaskstaskrole.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskRole/mjbizappstaskstaskrole.form.component.js +98 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskRole/mjbizappstaskstaskrole.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskTag/mjbizappstaskstasktag.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskTag/mjbizappstaskstasktag.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskTag/mjbizappstaskstasktag.form.component.js +80 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskTag/mjbizappstaskstasktag.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskTagLink/mjbizappstaskstasktaglink.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskTagLink/mjbizappstaskstasktaglink.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskTagLink/mjbizappstaskstasktaglink.form.component.js +59 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskTagLink/mjbizappstaskstasktaglink.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskTemplate/mjbizappstaskstasktemplate.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskTemplate/mjbizappstaskstasktemplate.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskTemplate/mjbizappstaskstasktemplate.form.component.js +84 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskTemplate/mjbizappstaskstasktemplate.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskTemplateItem/mjbizappstaskstasktemplateitem.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskTemplateItem/mjbizappstaskstasktemplateitem.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskTemplateItem/mjbizappstaskstasktemplateitem.form.component.js +146 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskTemplateItem/mjbizappstaskstasktemplateitem.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskTemplateItemDependency/mjbizappstaskstasktemplateitemdependency.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskTemplateItemDependency/mjbizappstaskstasktemplateitemdependency.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskTemplateItemDependency/mjbizappstaskstasktemplateitemdependency.form.component.js +61 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskTemplateItemDependency/mjbizappstaskstasktemplateitemdependency.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskTemplateItemRole/mjbizappstaskstasktemplateitemrole.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskTemplateItemRole/mjbizappstaskstasktemplateitemrole.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskTemplateItemRole/mjbizappstaskstasktemplateitemrole.form.component.js +59 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskTemplateItemRole/mjbizappstaskstasktemplateitemrole.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskType/mjbizappstaskstasktype.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskType/mjbizappstaskstasktype.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskType/mjbizappstaskstasktype.form.component.js +128 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskType/mjbizappstaskstasktype.form.component.js.map +1 -0
- package/dist/lib/generated/generated-forms.module.d.ts +34 -0
- package/dist/lib/generated/generated-forms.module.d.ts.map +1 -0
- package/dist/lib/generated/generated-forms.module.js +111 -0
- package/dist/lib/generated/generated-forms.module.js.map +1 -0
- package/dist/lib/tasks.module.d.ts +23 -0
- package/dist/lib/tasks.module.d.ts.map +1 -0
- package/dist/lib/tasks.module.js +103 -0
- package/dist/lib/tasks.module.js.map +1 -0
- package/dist/public-api.d.ts +15 -0
- package/dist/public-api.d.ts.map +1 -0
- package/dist/public-api.js +18 -0
- package/dist/public-api.js.map +1 -0
- package/package.json +49 -7
- package/README.md +0 -45
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { EventEmitter, OnInit } from '@angular/core';
|
|
2
|
+
import { TaskListComponent, TaskRow } from '../task-list/task-list.component';
|
|
3
|
+
import { TaskKanbanComponent } from '../task-kanban/task-kanban.component';
|
|
4
|
+
import { TaskGanttComponent } from '../task-gantt/task-gantt.component';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
type ViewMode = 'list' | 'kanban' | 'gantt';
|
|
7
|
+
type PanelMode = 'none' | 'detail' | 'edit' | 'template';
|
|
8
|
+
/**
|
|
9
|
+
* Full Tasks dashboard — combines list + kanban + gantt views with a view toggle,
|
|
10
|
+
* plus slide-in detail/edit panels and template wizard.
|
|
11
|
+
*
|
|
12
|
+
* Register as an MJ Application component for standalone navigation.
|
|
13
|
+
*/
|
|
14
|
+
export declare class TaskDashboardComponent implements OnInit {
|
|
15
|
+
/**
|
|
16
|
+
* Filter all views (list, kanban, gantt) to a specific category.
|
|
17
|
+
* Pass `null` to show all tasks across categories.
|
|
18
|
+
*/
|
|
19
|
+
CategoryID: string | null;
|
|
20
|
+
/**
|
|
21
|
+
* Additional SQL WHERE clause filter applied to all views.
|
|
22
|
+
*/
|
|
23
|
+
ExtraFilter: string | null;
|
|
24
|
+
/**
|
|
25
|
+
* PersonID of the currently logged-in user. Passed to the detail panel
|
|
26
|
+
* for attributing comments, and to the template wizard for assignee defaults.
|
|
27
|
+
*/
|
|
28
|
+
PersonID: string | null;
|
|
29
|
+
/**
|
|
30
|
+
* Which views to make available in the toggle. Pass a subset to hide views.
|
|
31
|
+
* The first enabled view becomes the default. If only one view is enabled
|
|
32
|
+
* the toggle is hidden entirely.
|
|
33
|
+
* @default ['list', 'kanban', 'gantt']
|
|
34
|
+
*/
|
|
35
|
+
EnabledViews: ViewMode[];
|
|
36
|
+
/**
|
|
37
|
+
* Whether to show the delete control in the task detail panel.
|
|
38
|
+
* Host apps pass this based on the current user's permissions.
|
|
39
|
+
* @default false
|
|
40
|
+
*/
|
|
41
|
+
ShowDelete: boolean;
|
|
42
|
+
/** @internal */
|
|
43
|
+
get enabledViewCount(): number;
|
|
44
|
+
/**
|
|
45
|
+
* Emitted when a task is selected (clicked) in any view. Payload is the task ID.
|
|
46
|
+
*/
|
|
47
|
+
TaskSelected: EventEmitter<string>;
|
|
48
|
+
/** @internal */
|
|
49
|
+
taskList?: TaskListComponent;
|
|
50
|
+
/** @internal */
|
|
51
|
+
taskKanban?: TaskKanbanComponent;
|
|
52
|
+
/** @internal */
|
|
53
|
+
taskGantt?: TaskGanttComponent;
|
|
54
|
+
/** @internal Current active view tab. */
|
|
55
|
+
viewMode: ViewMode;
|
|
56
|
+
ngOnInit(): void;
|
|
57
|
+
/** @internal Current slide-in panel state. */
|
|
58
|
+
panelMode: PanelMode;
|
|
59
|
+
/** @internal Task ID for the open detail/edit panel, or null for new task. */
|
|
60
|
+
selectedTaskID: string | null;
|
|
61
|
+
/**
|
|
62
|
+
* Refreshes whichever view is currently active (list, kanban, or gantt).
|
|
63
|
+
*/
|
|
64
|
+
RefreshCurrentView(): void;
|
|
65
|
+
/**
|
|
66
|
+
* Programmatically opens the detail panel for a specific task.
|
|
67
|
+
* @param taskID - The task to display.
|
|
68
|
+
*/
|
|
69
|
+
OpenDetailPanel(taskID: string): void;
|
|
70
|
+
/**
|
|
71
|
+
* Programmatically opens the edit panel. Pass a task ID to edit,
|
|
72
|
+
* or `null` to create a new task.
|
|
73
|
+
* @param taskID - The task to edit, or `null` for new.
|
|
74
|
+
*/
|
|
75
|
+
OpenEditPanel(taskID: string | null): void;
|
|
76
|
+
/**
|
|
77
|
+
* Closes any open slide-in panel (detail, edit, or template wizard).
|
|
78
|
+
*/
|
|
79
|
+
ClosePanel(): void;
|
|
80
|
+
/** @internal */
|
|
81
|
+
onTaskSelected(task: TaskRow): void;
|
|
82
|
+
/** @internal */
|
|
83
|
+
openPanel(mode: PanelMode, taskID?: string | null): void;
|
|
84
|
+
/** @internal */
|
|
85
|
+
closePanel(): void;
|
|
86
|
+
/** @internal */
|
|
87
|
+
onTaskSaved(_taskID: string): void;
|
|
88
|
+
/** @internal */
|
|
89
|
+
onTaskDeleted(): void;
|
|
90
|
+
/** @internal */
|
|
91
|
+
onTemplateCreated(_tasks: any[]): void;
|
|
92
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TaskDashboardComponent, never>;
|
|
93
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TaskDashboardComponent, "bizapps-task-dashboard", never, { "CategoryID": { "alias": "CategoryID"; "required": false; }; "ExtraFilter": { "alias": "ExtraFilter"; "required": false; }; "PersonID": { "alias": "PersonID"; "required": false; }; "EnabledViews": { "alias": "EnabledViews"; "required": false; }; "ShowDelete": { "alias": "ShowDelete"; "required": false; }; }, { "TaskSelected": "TaskSelected"; }, never, never, true, never>;
|
|
94
|
+
}
|
|
95
|
+
export {};
|
|
96
|
+
//# sourceMappingURL=task-dashboard.component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-dashboard.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/task-dashboard/task-dashboard.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,YAAY,EAA4B,MAAM,EAAE,MAAM,eAAe,CAAC;AAE1F,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;;AAKxE,KAAK,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;AAC5C,KAAK,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;AAEzD;;;;;GAKG;AACH,qBAiLa,sBAAuB,YAAW,MAAM;IAGjD;;;OAGG;IACM,UAAU,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE1C;;OAEG;IACM,WAAW,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE3C;;;OAGG;IACM,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAQ;IAExC;;;;;OAKG;IACM,YAAY,EAAE,QAAQ,EAAE,CAA+B;IAEhE;;;;OAIG;IACM,UAAU,UAAS;IAE5B,gBAAgB;IAChB,IAAI,gBAAgB,IAAI,MAAM,CAAqC;IAInE;;OAEG;IACO,YAAY,uBAA8B;IAIpD,gBAAgB;IACO,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IACpD,gBAAgB;IACS,UAAU,CAAC,EAAE,mBAAmB,CAAC;IAC1D,gBAAgB;IACQ,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAIvD,yCAAyC;IACzC,QAAQ,EAAE,QAAQ,CAAU;IAE5B,QAAQ,IAAI,IAAI;IAMhB,8CAA8C;IAC9C,SAAS,EAAE,SAAS,CAAU;IAC9B,8EAA8E;IAC9E,cAAc,EAAE,MAAM,GAAG,IAAI,CAAQ;IAIrC;;OAEG;IACH,kBAAkB,IAAI,IAAI;IAM1B;;;OAGG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIrC;;;;OAIG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAI1C;;OAEG;IACH,UAAU,IAAI,IAAI;IAMlB,gBAAgB;IAChB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAKnC,gBAAgB;IAChB,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAKxD,gBAAgB;IAChB,UAAU,IAAI,IAAI;IAKlB,gBAAgB;IAChB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKlC,gBAAgB;IAChB,aAAa,IAAI,IAAI;IAKrB,gBAAgB;IAChB,iBAAiB,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI;yCA1I7B,sBAAsB;2CAAtB,sBAAsB;CA8IlC"}
|
|
@@ -0,0 +1,451 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { TaskListComponent } from '../task-list/task-list.component';
|
|
4
|
+
import { TaskKanbanComponent } from '../task-kanban/task-kanban.component';
|
|
5
|
+
import { TaskGanttComponent } from '../task-gantt/task-gantt.component';
|
|
6
|
+
import { TaskDetailPanelComponent } from '../task-detail-panel/task-detail-panel.component';
|
|
7
|
+
import { TaskEditPanelComponent } from '../task-edit-panel/task-edit-panel.component';
|
|
8
|
+
import { TaskTemplateWizardComponent } from '../task-template-wizard/task-template-wizard.component';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
const _c0 = ["taskList"];
|
|
11
|
+
const _c1 = ["taskKanban"];
|
|
12
|
+
const _c2 = ["taskGantt"];
|
|
13
|
+
function TaskDashboardComponent_Conditional_7_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
14
|
+
const _r1 = i0.ɵɵgetCurrentView();
|
|
15
|
+
i0.ɵɵelementStart(0, "button", 17);
|
|
16
|
+
i0.ɵɵlistener("click", function TaskDashboardComponent_Conditional_7_Conditional_1_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.viewMode = "list"); });
|
|
17
|
+
i0.ɵɵelement(1, "i", 18);
|
|
18
|
+
i0.ɵɵtext(2, " List ");
|
|
19
|
+
i0.ɵɵelementEnd();
|
|
20
|
+
} if (rf & 2) {
|
|
21
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
22
|
+
i0.ɵɵclassProp("active", ctx_r1.viewMode === "list");
|
|
23
|
+
} }
|
|
24
|
+
function TaskDashboardComponent_Conditional_7_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
25
|
+
const _r3 = i0.ɵɵgetCurrentView();
|
|
26
|
+
i0.ɵɵelementStart(0, "button", 17);
|
|
27
|
+
i0.ɵɵlistener("click", function TaskDashboardComponent_Conditional_7_Conditional_2_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.viewMode = "kanban"); });
|
|
28
|
+
i0.ɵɵelement(1, "i", 19);
|
|
29
|
+
i0.ɵɵtext(2, " Board ");
|
|
30
|
+
i0.ɵɵelementEnd();
|
|
31
|
+
} if (rf & 2) {
|
|
32
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
33
|
+
i0.ɵɵclassProp("active", ctx_r1.viewMode === "kanban");
|
|
34
|
+
} }
|
|
35
|
+
function TaskDashboardComponent_Conditional_7_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
36
|
+
const _r4 = i0.ɵɵgetCurrentView();
|
|
37
|
+
i0.ɵɵelementStart(0, "button", 17);
|
|
38
|
+
i0.ɵɵlistener("click", function TaskDashboardComponent_Conditional_7_Conditional_3_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.viewMode = "gantt"); });
|
|
39
|
+
i0.ɵɵelement(1, "i", 20);
|
|
40
|
+
i0.ɵɵtext(2, " Gantt ");
|
|
41
|
+
i0.ɵɵelementEnd();
|
|
42
|
+
} if (rf & 2) {
|
|
43
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
44
|
+
i0.ɵɵclassProp("active", ctx_r1.viewMode === "gantt");
|
|
45
|
+
} }
|
|
46
|
+
function TaskDashboardComponent_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
47
|
+
i0.ɵɵelementStart(0, "div", 9);
|
|
48
|
+
i0.ɵɵconditionalCreate(1, TaskDashboardComponent_Conditional_7_Conditional_1_Template, 3, 2, "button", 16);
|
|
49
|
+
i0.ɵɵconditionalCreate(2, TaskDashboardComponent_Conditional_7_Conditional_2_Template, 3, 2, "button", 16);
|
|
50
|
+
i0.ɵɵconditionalCreate(3, TaskDashboardComponent_Conditional_7_Conditional_3_Template, 3, 2, "button", 16);
|
|
51
|
+
i0.ɵɵelementEnd();
|
|
52
|
+
} if (rf & 2) {
|
|
53
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
54
|
+
i0.ɵɵadvance();
|
|
55
|
+
i0.ɵɵconditional(ctx_r1.EnabledViews.includes("list") ? 1 : -1);
|
|
56
|
+
i0.ɵɵadvance();
|
|
57
|
+
i0.ɵɵconditional(ctx_r1.EnabledViews.includes("kanban") ? 2 : -1);
|
|
58
|
+
i0.ɵɵadvance();
|
|
59
|
+
i0.ɵɵconditional(ctx_r1.EnabledViews.includes("gantt") ? 3 : -1);
|
|
60
|
+
} }
|
|
61
|
+
function TaskDashboardComponent_Conditional_13_Template(rf, ctx) { if (rf & 1) {
|
|
62
|
+
const _r5 = i0.ɵɵgetCurrentView();
|
|
63
|
+
i0.ɵɵelementStart(0, "bizapps-task-list", 21, 0);
|
|
64
|
+
i0.ɵɵlistener("AfterTaskSelected", function TaskDashboardComponent_Conditional_13_Template_bizapps_task_list_AfterTaskSelected_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onTaskSelected($event)); })("CreateTask", function TaskDashboardComponent_Conditional_13_Template_bizapps_task_list_CreateTask_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.openPanel("edit", null)); });
|
|
65
|
+
i0.ɵɵelementEnd();
|
|
66
|
+
} if (rf & 2) {
|
|
67
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
68
|
+
i0.ɵɵproperty("CategoryID", ctx_r1.CategoryID)("ExtraFilter", ctx_r1.ExtraFilter)("ShowCreateButton", false);
|
|
69
|
+
} }
|
|
70
|
+
function TaskDashboardComponent_Conditional_14_Template(rf, ctx) { if (rf & 1) {
|
|
71
|
+
const _r6 = i0.ɵɵgetCurrentView();
|
|
72
|
+
i0.ɵɵelementStart(0, "bizapps-task-kanban", 22, 1);
|
|
73
|
+
i0.ɵɵlistener("TaskClicked", function TaskDashboardComponent_Conditional_14_Template_bizapps_task_kanban_TaskClicked_0_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.openPanel("detail", $event)); });
|
|
74
|
+
i0.ɵɵelementEnd();
|
|
75
|
+
} if (rf & 2) {
|
|
76
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
77
|
+
i0.ɵɵproperty("CategoryID", ctx_r1.CategoryID)("ExtraFilter", ctx_r1.ExtraFilter);
|
|
78
|
+
} }
|
|
79
|
+
function TaskDashboardComponent_Conditional_15_Template(rf, ctx) { if (rf & 1) {
|
|
80
|
+
const _r7 = i0.ɵɵgetCurrentView();
|
|
81
|
+
i0.ɵɵelementStart(0, "bizapps-task-gantt", 23, 2);
|
|
82
|
+
i0.ɵɵlistener("TaskClicked", function TaskDashboardComponent_Conditional_15_Template_bizapps_task_gantt_TaskClicked_0_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.openPanel("detail", $event)); });
|
|
83
|
+
i0.ɵɵelementEnd();
|
|
84
|
+
} if (rf & 2) {
|
|
85
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
86
|
+
i0.ɵɵproperty("CategoryID", ctx_r1.CategoryID)("ExtraFilter", ctx_r1.ExtraFilter)("Height", "calc(100vh - 140px)");
|
|
87
|
+
} }
|
|
88
|
+
function TaskDashboardComponent_Conditional_16_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
89
|
+
const _r9 = i0.ɵɵgetCurrentView();
|
|
90
|
+
i0.ɵɵelementStart(0, "bizapps-task-detail-panel", 29);
|
|
91
|
+
i0.ɵɵlistener("EditRequested", function TaskDashboardComponent_Conditional_16_Conditional_2_Template_bizapps_task_detail_panel_EditRequested_0_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.openPanel("edit", $event)); })("DeleteRequested", function TaskDashboardComponent_Conditional_16_Conditional_2_Template_bizapps_task_detail_panel_DeleteRequested_0_listener() { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onTaskDeleted()); })("Close", function TaskDashboardComponent_Conditional_16_Conditional_2_Template_bizapps_task_detail_panel_Close_0_listener() { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.closePanel()); });
|
|
92
|
+
i0.ɵɵelementEnd();
|
|
93
|
+
} if (rf & 2) {
|
|
94
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
95
|
+
i0.ɵɵproperty("TaskID", ctx_r1.selectedTaskID)("PersonID", ctx_r1.PersonID)("ShowDelete", ctx_r1.ShowDelete);
|
|
96
|
+
} }
|
|
97
|
+
function TaskDashboardComponent_Conditional_16_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
98
|
+
const _r10 = i0.ɵɵgetCurrentView();
|
|
99
|
+
i0.ɵɵelementStart(0, "bizapps-task-edit-panel", 30);
|
|
100
|
+
i0.ɵɵlistener("Saved", function TaskDashboardComponent_Conditional_16_Conditional_3_Template_bizapps_task_edit_panel_Saved_0_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onTaskSaved($event)); })("Cancel", function TaskDashboardComponent_Conditional_16_Conditional_3_Template_bizapps_task_edit_panel_Cancel_0_listener() { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.closePanel()); });
|
|
101
|
+
i0.ɵɵelementEnd();
|
|
102
|
+
} if (rf & 2) {
|
|
103
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
104
|
+
i0.ɵɵproperty("TaskID", ctx_r1.selectedTaskID)("DefaultCategoryID", ctx_r1.CategoryID);
|
|
105
|
+
} }
|
|
106
|
+
function TaskDashboardComponent_Conditional_16_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
107
|
+
const _r11 = i0.ɵɵgetCurrentView();
|
|
108
|
+
i0.ɵɵelementStart(0, "bizapps-task-template-wizard", 31);
|
|
109
|
+
i0.ɵɵlistener("Created", function TaskDashboardComponent_Conditional_16_Conditional_4_Template_bizapps_task_template_wizard_Created_0_listener($event) { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onTemplateCreated($event)); })("Cancelled", function TaskDashboardComponent_Conditional_16_Conditional_4_Template_bizapps_task_template_wizard_Cancelled_0_listener() { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.closePanel()); });
|
|
110
|
+
i0.ɵɵelementEnd();
|
|
111
|
+
} if (rf & 2) {
|
|
112
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
113
|
+
i0.ɵɵproperty("DefaultCategoryID", ctx_r1.CategoryID);
|
|
114
|
+
} }
|
|
115
|
+
function TaskDashboardComponent_Conditional_16_Template(rf, ctx) { if (rf & 1) {
|
|
116
|
+
const _r8 = i0.ɵɵgetCurrentView();
|
|
117
|
+
i0.ɵɵelementStart(0, "div", 24);
|
|
118
|
+
i0.ɵɵlistener("click", function TaskDashboardComponent_Conditional_16_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.closePanel()); });
|
|
119
|
+
i0.ɵɵelementEnd();
|
|
120
|
+
i0.ɵɵelementStart(1, "div", 25);
|
|
121
|
+
i0.ɵɵconditionalCreate(2, TaskDashboardComponent_Conditional_16_Conditional_2_Template, 1, 3, "bizapps-task-detail-panel", 26);
|
|
122
|
+
i0.ɵɵconditionalCreate(3, TaskDashboardComponent_Conditional_16_Conditional_3_Template, 1, 2, "bizapps-task-edit-panel", 27);
|
|
123
|
+
i0.ɵɵconditionalCreate(4, TaskDashboardComponent_Conditional_16_Conditional_4_Template, 1, 1, "bizapps-task-template-wizard", 28);
|
|
124
|
+
i0.ɵɵelementEnd();
|
|
125
|
+
} if (rf & 2) {
|
|
126
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
127
|
+
i0.ɵɵadvance(2);
|
|
128
|
+
i0.ɵɵconditional(ctx_r1.panelMode === "detail" ? 2 : -1);
|
|
129
|
+
i0.ɵɵadvance();
|
|
130
|
+
i0.ɵɵconditional(ctx_r1.panelMode === "edit" ? 3 : -1);
|
|
131
|
+
i0.ɵɵadvance();
|
|
132
|
+
i0.ɵɵconditional(ctx_r1.panelMode === "template" ? 4 : -1);
|
|
133
|
+
} }
|
|
134
|
+
/**
|
|
135
|
+
* Full Tasks dashboard — combines list + kanban + gantt views with a view toggle,
|
|
136
|
+
* plus slide-in detail/edit panels and template wizard.
|
|
137
|
+
*
|
|
138
|
+
* Register as an MJ Application component for standalone navigation.
|
|
139
|
+
*/
|
|
140
|
+
/**
|
|
141
|
+
* Full-featured Tasks dashboard combining list, kanban, and gantt views
|
|
142
|
+
* with a view toggle toolbar, slide-in detail/edit panels, and template wizard.
|
|
143
|
+
*
|
|
144
|
+
* Designed to be registered as a standalone MJ Application with its own nav
|
|
145
|
+
* entry, or embedded within any consuming app's layout. Internally composes
|
|
146
|
+
* {@link TaskListComponent}, {@link TaskKanbanComponent}, {@link TaskGanttComponent},
|
|
147
|
+
* {@link TaskDetailPanelComponent}, {@link TaskEditPanelComponent}, and
|
|
148
|
+
* {@link TaskTemplateWizardComponent}.
|
|
149
|
+
*
|
|
150
|
+
* @example
|
|
151
|
+
* ```html
|
|
152
|
+
* <bizapps-task-dashboard
|
|
153
|
+
* [CategoryID]="committeeCategoryId"
|
|
154
|
+
* [PersonID]="currentUserPersonID"
|
|
155
|
+
* (TaskSelected)="onTaskOpened($event)">
|
|
156
|
+
* </bizapps-task-dashboard>
|
|
157
|
+
* ```
|
|
158
|
+
*/
|
|
159
|
+
export class TaskDashboardComponent {
|
|
160
|
+
// ── Inputs ──────────────────────────────────────────────
|
|
161
|
+
/**
|
|
162
|
+
* Filter all views (list, kanban, gantt) to a specific category.
|
|
163
|
+
* Pass `null` to show all tasks across categories.
|
|
164
|
+
*/
|
|
165
|
+
CategoryID = null;
|
|
166
|
+
/**
|
|
167
|
+
* Additional SQL WHERE clause filter applied to all views.
|
|
168
|
+
*/
|
|
169
|
+
ExtraFilter = null;
|
|
170
|
+
/**
|
|
171
|
+
* PersonID of the currently logged-in user. Passed to the detail panel
|
|
172
|
+
* for attributing comments, and to the template wizard for assignee defaults.
|
|
173
|
+
*/
|
|
174
|
+
PersonID = null;
|
|
175
|
+
/**
|
|
176
|
+
* Which views to make available in the toggle. Pass a subset to hide views.
|
|
177
|
+
* The first enabled view becomes the default. If only one view is enabled
|
|
178
|
+
* the toggle is hidden entirely.
|
|
179
|
+
* @default ['list', 'kanban', 'gantt']
|
|
180
|
+
*/
|
|
181
|
+
EnabledViews = ['list', 'kanban', 'gantt'];
|
|
182
|
+
/**
|
|
183
|
+
* Whether to show the delete control in the task detail panel.
|
|
184
|
+
* Host apps pass this based on the current user's permissions.
|
|
185
|
+
* @default false
|
|
186
|
+
*/
|
|
187
|
+
ShowDelete = false;
|
|
188
|
+
/** @internal */
|
|
189
|
+
get enabledViewCount() { return this.EnabledViews.length; }
|
|
190
|
+
// ── Outputs ─────────────────────────────────────────────
|
|
191
|
+
/**
|
|
192
|
+
* Emitted when a task is selected (clicked) in any view. Payload is the task ID.
|
|
193
|
+
*/
|
|
194
|
+
TaskSelected = new EventEmitter();
|
|
195
|
+
// ── View References ─────────────────────────────────────
|
|
196
|
+
/** @internal */
|
|
197
|
+
taskList;
|
|
198
|
+
/** @internal */
|
|
199
|
+
taskKanban;
|
|
200
|
+
/** @internal */
|
|
201
|
+
taskGantt;
|
|
202
|
+
// ── Internal State ──────────────────────────────────────
|
|
203
|
+
/** @internal Current active view tab. */
|
|
204
|
+
viewMode = 'list';
|
|
205
|
+
ngOnInit() {
|
|
206
|
+
// Default to the first enabled view
|
|
207
|
+
if (this.EnabledViews.length > 0 && !this.EnabledViews.includes(this.viewMode)) {
|
|
208
|
+
this.viewMode = this.EnabledViews[0];
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
/** @internal Current slide-in panel state. */
|
|
212
|
+
panelMode = 'none';
|
|
213
|
+
/** @internal Task ID for the open detail/edit panel, or null for new task. */
|
|
214
|
+
selectedTaskID = null;
|
|
215
|
+
// ── Public Methods ──────────────────────────────────────
|
|
216
|
+
/**
|
|
217
|
+
* Refreshes whichever view is currently active (list, kanban, or gantt).
|
|
218
|
+
*/
|
|
219
|
+
RefreshCurrentView() {
|
|
220
|
+
this.taskList?.Refresh();
|
|
221
|
+
this.taskKanban?.Refresh();
|
|
222
|
+
this.taskGantt?.Refresh();
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Programmatically opens the detail panel for a specific task.
|
|
226
|
+
* @param taskID - The task to display.
|
|
227
|
+
*/
|
|
228
|
+
OpenDetailPanel(taskID) {
|
|
229
|
+
this.openPanel('detail', taskID);
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Programmatically opens the edit panel. Pass a task ID to edit,
|
|
233
|
+
* or `null` to create a new task.
|
|
234
|
+
* @param taskID - The task to edit, or `null` for new.
|
|
235
|
+
*/
|
|
236
|
+
OpenEditPanel(taskID) {
|
|
237
|
+
this.openPanel('edit', taskID);
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Closes any open slide-in panel (detail, edit, or template wizard).
|
|
241
|
+
*/
|
|
242
|
+
ClosePanel() {
|
|
243
|
+
this.closePanel();
|
|
244
|
+
}
|
|
245
|
+
// ── Internal Event Handlers ─────────────────────────────
|
|
246
|
+
/** @internal */
|
|
247
|
+
onTaskSelected(task) {
|
|
248
|
+
this.openPanel('detail', task.ID);
|
|
249
|
+
this.TaskSelected.emit(task.ID);
|
|
250
|
+
}
|
|
251
|
+
/** @internal */
|
|
252
|
+
openPanel(mode, taskID) {
|
|
253
|
+
this.panelMode = mode;
|
|
254
|
+
this.selectedTaskID = taskID ?? null;
|
|
255
|
+
}
|
|
256
|
+
/** @internal */
|
|
257
|
+
closePanel() {
|
|
258
|
+
this.panelMode = 'none';
|
|
259
|
+
this.selectedTaskID = null;
|
|
260
|
+
}
|
|
261
|
+
/** @internal */
|
|
262
|
+
onTaskSaved(_taskID) {
|
|
263
|
+
this.closePanel();
|
|
264
|
+
this.RefreshCurrentView();
|
|
265
|
+
}
|
|
266
|
+
/** @internal */
|
|
267
|
+
onTaskDeleted() {
|
|
268
|
+
this.closePanel();
|
|
269
|
+
this.RefreshCurrentView();
|
|
270
|
+
}
|
|
271
|
+
/** @internal */
|
|
272
|
+
onTemplateCreated(_tasks) {
|
|
273
|
+
this.closePanel();
|
|
274
|
+
this.RefreshCurrentView();
|
|
275
|
+
}
|
|
276
|
+
static ɵfac = function TaskDashboardComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TaskDashboardComponent)(); };
|
|
277
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TaskDashboardComponent, selectors: [["bizapps-task-dashboard"]], viewQuery: function TaskDashboardComponent_Query(rf, ctx) { if (rf & 1) {
|
|
278
|
+
i0.ɵɵviewQuery(_c0, 5)(_c1, 5)(_c2, 5);
|
|
279
|
+
} if (rf & 2) {
|
|
280
|
+
let _t;
|
|
281
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.taskList = _t.first);
|
|
282
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.taskKanban = _t.first);
|
|
283
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.taskGantt = _t.first);
|
|
284
|
+
} }, inputs: { CategoryID: "CategoryID", ExtraFilter: "ExtraFilter", PersonID: "PersonID", EnabledViews: "EnabledViews", ShowDelete: "ShowDelete" }, outputs: { TaskSelected: "TaskSelected" }, decls: 17, vars: 5, consts: [["taskList", ""], ["taskKanban", ""], ["taskGantt", ""], [1, "dashboard"], [1, "dashboard-main"], [1, "toolbar"], [1, "dashboard-title"], [1, "fa-solid", "fa-list-check"], [1, "toolbar-actions"], [1, "view-toggle"], [1, "btn-template", 3, "click"], [1, "fa-solid", "fa-copy"], [1, "btn-create", 3, "click"], [3, "CategoryID", "ExtraFilter", "ShowCreateButton"], [3, "CategoryID", "ExtraFilter"], [3, "CategoryID", "ExtraFilter", "Height"], [3, "active"], [3, "click"], [1, "fa-solid", "fa-list"], [1, "fa-solid", "fa-columns"], [1, "fa-solid", "fa-chart-gantt"], [3, "AfterTaskSelected", "CreateTask", "CategoryID", "ExtraFilter", "ShowCreateButton"], [3, "TaskClicked", "CategoryID", "ExtraFilter"], [3, "TaskClicked", "CategoryID", "ExtraFilter", "Height"], [1, "panel-backdrop", 3, "click"], [1, "side-panel"], [3, "TaskID", "PersonID", "ShowDelete"], [3, "TaskID", "DefaultCategoryID"], [3, "DefaultCategoryID"], [3, "EditRequested", "DeleteRequested", "Close", "TaskID", "PersonID", "ShowDelete"], [3, "Saved", "Cancel", "TaskID", "DefaultCategoryID"], [3, "Created", "Cancelled", "DefaultCategoryID"]], template: function TaskDashboardComponent_Template(rf, ctx) { if (rf & 1) {
|
|
285
|
+
i0.ɵɵelementStart(0, "div", 3)(1, "div", 4)(2, "div", 5)(3, "h2", 6);
|
|
286
|
+
i0.ɵɵelement(4, "i", 7);
|
|
287
|
+
i0.ɵɵtext(5, " Tasks ");
|
|
288
|
+
i0.ɵɵelementEnd();
|
|
289
|
+
i0.ɵɵelementStart(6, "div", 8);
|
|
290
|
+
i0.ɵɵconditionalCreate(7, TaskDashboardComponent_Conditional_7_Template, 4, 3, "div", 9);
|
|
291
|
+
i0.ɵɵelementStart(8, "button", 10);
|
|
292
|
+
i0.ɵɵlistener("click", function TaskDashboardComponent_Template_button_click_8_listener() { return ctx.openPanel("template"); });
|
|
293
|
+
i0.ɵɵelement(9, "i", 11);
|
|
294
|
+
i0.ɵɵtext(10, " From Template ");
|
|
295
|
+
i0.ɵɵelementEnd();
|
|
296
|
+
i0.ɵɵelementStart(11, "button", 12);
|
|
297
|
+
i0.ɵɵlistener("click", function TaskDashboardComponent_Template_button_click_11_listener() { return ctx.openPanel("edit", null); });
|
|
298
|
+
i0.ɵɵtext(12, " + New Task ");
|
|
299
|
+
i0.ɵɵelementEnd()()();
|
|
300
|
+
i0.ɵɵconditionalCreate(13, TaskDashboardComponent_Conditional_13_Template, 2, 3, "bizapps-task-list", 13);
|
|
301
|
+
i0.ɵɵconditionalCreate(14, TaskDashboardComponent_Conditional_14_Template, 2, 2, "bizapps-task-kanban", 14);
|
|
302
|
+
i0.ɵɵconditionalCreate(15, TaskDashboardComponent_Conditional_15_Template, 2, 3, "bizapps-task-gantt", 15);
|
|
303
|
+
i0.ɵɵelementEnd();
|
|
304
|
+
i0.ɵɵconditionalCreate(16, TaskDashboardComponent_Conditional_16_Template, 5, 3);
|
|
305
|
+
i0.ɵɵelementEnd();
|
|
306
|
+
} if (rf & 2) {
|
|
307
|
+
i0.ɵɵadvance(7);
|
|
308
|
+
i0.ɵɵconditional(ctx.enabledViewCount > 1 ? 7 : -1);
|
|
309
|
+
i0.ɵɵadvance(6);
|
|
310
|
+
i0.ɵɵconditional(ctx.viewMode === "list" ? 13 : -1);
|
|
311
|
+
i0.ɵɵadvance();
|
|
312
|
+
i0.ɵɵconditional(ctx.viewMode === "kanban" ? 14 : -1);
|
|
313
|
+
i0.ɵɵadvance();
|
|
314
|
+
i0.ɵɵconditional(ctx.viewMode === "gantt" ? 15 : -1);
|
|
315
|
+
i0.ɵɵadvance();
|
|
316
|
+
i0.ɵɵconditional(ctx.panelMode !== "none" ? 16 : -1);
|
|
317
|
+
} }, dependencies: [CommonModule,
|
|
318
|
+
TaskListComponent, TaskKanbanComponent, TaskGanttComponent,
|
|
319
|
+
TaskDetailPanelComponent, TaskEditPanelComponent, TaskTemplateWizardComponent], styles: ["[_nghost-%COMP%] { display: block; position: relative; }\n .dashboard[_ngcontent-%COMP%] { height: 100%; }\n .dashboard-main[_ngcontent-%COMP%] { padding: 16px; overflow: auto; }\n .panel-backdrop[_ngcontent-%COMP%] {\n position: fixed; inset: 0; background: rgba(0, 0, 0, 0.2);\n z-index: 999; animation: _ngcontent-%COMP%_fadeIn 0.15s ease;\n }\n .side-panel[_ngcontent-%COMP%] {\n position: fixed; top: 0; right: 0; bottom: 0;\n width: 520px; max-width: 90vw;\n background: #fff; z-index: 1000;\n box-shadow: -4px 0 24px rgba(0, 0, 0, 0.12);\n overflow-y: auto;\n animation: _ngcontent-%COMP%_slideIn 0.2s ease;\n }\n @keyframes _ngcontent-%COMP%_fadeIn { from { opacity: 0; } to { opacity: 1; } }\n @keyframes _ngcontent-%COMP%_slideIn { from { transform: translateX(100%); } to { transform: translateX(0); } }\n .toolbar[_ngcontent-%COMP%] {\n display: flex; justify-content: space-between; align-items: center;\n margin-bottom: 16px; flex-wrap: wrap; gap: 8px;\n }\n .dashboard-title[_ngcontent-%COMP%] {\n margin: 0; font-size: 1.3rem; font-weight: 600; color: #1f2937;\n display: flex; align-items: center; gap: 8px;\n }\n .toolbar-actions[_ngcontent-%COMP%] { display: flex; gap: 8px; align-items: center; }\n .view-toggle[_ngcontent-%COMP%] {\n display: inline-flex; border: 1px solid #d1d5db; border-radius: 6px; overflow: hidden;\n }\n .view-toggle[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n padding: 6px 12px; border: none; background: #fff; font-size: 0.85rem;\n cursor: pointer; display: flex; align-items: center; gap: 4px;\n border-right: 1px solid #d1d5db; font-family: inherit;\n }\n .view-toggle[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:last-child { border-right: none; }\n .view-toggle[_ngcontent-%COMP%] button.active[_ngcontent-%COMP%] { background: #4f46e5; color: #fff; }\n .btn-create[_ngcontent-%COMP%] {\n padding: 6px 14px; border: none; border-radius: 6px;\n background: #4f46e5; color: #fff; font-size: 0.85rem; cursor: pointer;\n font-weight: 500; font-family: inherit;\n }\n .btn-template[_ngcontent-%COMP%] {\n padding: 6px 14px; border: 1px solid #d1d5db; border-radius: 6px;\n background: #fff; font-size: 0.85rem; cursor: pointer;\n display: flex; align-items: center; gap: 4px; font-family: inherit;\n }"] });
|
|
320
|
+
}
|
|
321
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TaskDashboardComponent, [{
|
|
322
|
+
type: Component,
|
|
323
|
+
args: [{ selector: 'bizapps-task-dashboard', standalone: true, imports: [
|
|
324
|
+
CommonModule,
|
|
325
|
+
TaskListComponent, TaskKanbanComponent, TaskGanttComponent,
|
|
326
|
+
TaskDetailPanelComponent, TaskEditPanelComponent, TaskTemplateWizardComponent,
|
|
327
|
+
], template: `
|
|
328
|
+
<div class="dashboard">
|
|
329
|
+
<!-- Main content area -->
|
|
330
|
+
<div class="dashboard-main">
|
|
331
|
+
<!-- Toolbar -->
|
|
332
|
+
<div class="toolbar">
|
|
333
|
+
<h2 class="dashboard-title">
|
|
334
|
+
<i class="fa-solid fa-list-check"></i> Tasks
|
|
335
|
+
</h2>
|
|
336
|
+
<div class="toolbar-actions">
|
|
337
|
+
@if (enabledViewCount > 1) {
|
|
338
|
+
<div class="view-toggle">
|
|
339
|
+
@if (EnabledViews.includes('list')) {
|
|
340
|
+
<button [class.active]="viewMode === 'list'" (click)="viewMode = 'list'">
|
|
341
|
+
<i class="fa-solid fa-list"></i> List
|
|
342
|
+
</button>
|
|
343
|
+
}
|
|
344
|
+
@if (EnabledViews.includes('kanban')) {
|
|
345
|
+
<button [class.active]="viewMode === 'kanban'" (click)="viewMode = 'kanban'">
|
|
346
|
+
<i class="fa-solid fa-columns"></i> Board
|
|
347
|
+
</button>
|
|
348
|
+
}
|
|
349
|
+
@if (EnabledViews.includes('gantt')) {
|
|
350
|
+
<button [class.active]="viewMode === 'gantt'" (click)="viewMode = 'gantt'">
|
|
351
|
+
<i class="fa-solid fa-chart-gantt"></i> Gantt
|
|
352
|
+
</button>
|
|
353
|
+
}
|
|
354
|
+
</div>
|
|
355
|
+
}
|
|
356
|
+
<button class="btn-template" (click)="openPanel('template')">
|
|
357
|
+
<i class="fa-solid fa-copy"></i> From Template
|
|
358
|
+
</button>
|
|
359
|
+
<button class="btn-create" (click)="openPanel('edit', null)">
|
|
360
|
+
+ New Task
|
|
361
|
+
</button>
|
|
362
|
+
</div>
|
|
363
|
+
</div>
|
|
364
|
+
|
|
365
|
+
<!-- Views -->
|
|
366
|
+
@if (viewMode === 'list') {
|
|
367
|
+
<bizapps-task-list
|
|
368
|
+
#taskList
|
|
369
|
+
[CategoryID]="CategoryID"
|
|
370
|
+
[ExtraFilter]="ExtraFilter"
|
|
371
|
+
[ShowCreateButton]="false"
|
|
372
|
+
(AfterTaskSelected)="onTaskSelected($event)"
|
|
373
|
+
(CreateTask)="openPanel('edit', null)">
|
|
374
|
+
</bizapps-task-list>
|
|
375
|
+
}
|
|
376
|
+
@if (viewMode === 'kanban') {
|
|
377
|
+
<bizapps-task-kanban
|
|
378
|
+
#taskKanban
|
|
379
|
+
[CategoryID]="CategoryID"
|
|
380
|
+
[ExtraFilter]="ExtraFilter"
|
|
381
|
+
(TaskClicked)="openPanel('detail', $event)">
|
|
382
|
+
</bizapps-task-kanban>
|
|
383
|
+
}
|
|
384
|
+
@if (viewMode === 'gantt') {
|
|
385
|
+
<bizapps-task-gantt
|
|
386
|
+
#taskGantt
|
|
387
|
+
[CategoryID]="CategoryID"
|
|
388
|
+
[ExtraFilter]="ExtraFilter"
|
|
389
|
+
[Height]="'calc(100vh - 140px)'"
|
|
390
|
+
(TaskClicked)="openPanel('detail', $event)">
|
|
391
|
+
</bizapps-task-gantt>
|
|
392
|
+
}
|
|
393
|
+
</div>
|
|
394
|
+
|
|
395
|
+
<!-- Slide-in panel overlay -->
|
|
396
|
+
@if (panelMode !== 'none') {
|
|
397
|
+
<div class="panel-backdrop" (click)="closePanel()"></div>
|
|
398
|
+
<div class="side-panel">
|
|
399
|
+
@if (panelMode === 'detail') {
|
|
400
|
+
<bizapps-task-detail-panel
|
|
401
|
+
[TaskID]="selectedTaskID"
|
|
402
|
+
[PersonID]="PersonID"
|
|
403
|
+
[ShowDelete]="ShowDelete"
|
|
404
|
+
(EditRequested)="openPanel('edit', $event)"
|
|
405
|
+
(DeleteRequested)="onTaskDeleted()"
|
|
406
|
+
(Close)="closePanel()">
|
|
407
|
+
</bizapps-task-detail-panel>
|
|
408
|
+
}
|
|
409
|
+
@if (panelMode === 'edit') {
|
|
410
|
+
<bizapps-task-edit-panel
|
|
411
|
+
[TaskID]="selectedTaskID"
|
|
412
|
+
[DefaultCategoryID]="CategoryID"
|
|
413
|
+
(Saved)="onTaskSaved($event)"
|
|
414
|
+
(Cancel)="closePanel()">
|
|
415
|
+
</bizapps-task-edit-panel>
|
|
416
|
+
}
|
|
417
|
+
@if (panelMode === 'template') {
|
|
418
|
+
<bizapps-task-template-wizard
|
|
419
|
+
[DefaultCategoryID]="CategoryID"
|
|
420
|
+
(Created)="onTemplateCreated($event)"
|
|
421
|
+
(Cancelled)="closePanel()">
|
|
422
|
+
</bizapps-task-template-wizard>
|
|
423
|
+
}
|
|
424
|
+
</div>
|
|
425
|
+
}
|
|
426
|
+
</div>
|
|
427
|
+
`, styles: ["\n :host { display: block; position: relative; }\n .dashboard { height: 100%; }\n .dashboard-main { padding: 16px; overflow: auto; }\n .panel-backdrop {\n position: fixed; inset: 0; background: rgba(0, 0, 0, 0.2);\n z-index: 999; animation: fadeIn 0.15s ease;\n }\n .side-panel {\n position: fixed; top: 0; right: 0; bottom: 0;\n width: 520px; max-width: 90vw;\n background: #fff; z-index: 1000;\n box-shadow: -4px 0 24px rgba(0, 0, 0, 0.12);\n overflow-y: auto;\n animation: slideIn 0.2s ease;\n }\n @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }\n @keyframes slideIn { from { transform: translateX(100%); } to { transform: translateX(0); } }\n .toolbar {\n display: flex; justify-content: space-between; align-items: center;\n margin-bottom: 16px; flex-wrap: wrap; gap: 8px;\n }\n .dashboard-title {\n margin: 0; font-size: 1.3rem; font-weight: 600; color: #1f2937;\n display: flex; align-items: center; gap: 8px;\n }\n .toolbar-actions { display: flex; gap: 8px; align-items: center; }\n .view-toggle {\n display: inline-flex; border: 1px solid #d1d5db; border-radius: 6px; overflow: hidden;\n }\n .view-toggle button {\n padding: 6px 12px; border: none; background: #fff; font-size: 0.85rem;\n cursor: pointer; display: flex; align-items: center; gap: 4px;\n border-right: 1px solid #d1d5db; font-family: inherit;\n }\n .view-toggle button:last-child { border-right: none; }\n .view-toggle button.active { background: #4f46e5; color: #fff; }\n .btn-create {\n padding: 6px 14px; border: none; border-radius: 6px;\n background: #4f46e5; color: #fff; font-size: 0.85rem; cursor: pointer;\n font-weight: 500; font-family: inherit;\n }\n .btn-template {\n padding: 6px 14px; border: 1px solid #d1d5db; border-radius: 6px;\n background: #fff; font-size: 0.85rem; cursor: pointer;\n display: flex; align-items: center; gap: 4px; font-family: inherit;\n }\n "] }]
|
|
428
|
+
}], null, { CategoryID: [{
|
|
429
|
+
type: Input
|
|
430
|
+
}], ExtraFilter: [{
|
|
431
|
+
type: Input
|
|
432
|
+
}], PersonID: [{
|
|
433
|
+
type: Input
|
|
434
|
+
}], EnabledViews: [{
|
|
435
|
+
type: Input
|
|
436
|
+
}], ShowDelete: [{
|
|
437
|
+
type: Input
|
|
438
|
+
}], TaskSelected: [{
|
|
439
|
+
type: Output
|
|
440
|
+
}], taskList: [{
|
|
441
|
+
type: ViewChild,
|
|
442
|
+
args: ['taskList']
|
|
443
|
+
}], taskKanban: [{
|
|
444
|
+
type: ViewChild,
|
|
445
|
+
args: ['taskKanban']
|
|
446
|
+
}], taskGantt: [{
|
|
447
|
+
type: ViewChild,
|
|
448
|
+
args: ['taskGantt']
|
|
449
|
+
}] }); })();
|
|
450
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TaskDashboardComponent, { className: "TaskDashboardComponent", filePath: "src/lib/components/task-dashboard/task-dashboard.component.ts", lineNumber: 196 }); })();
|
|
451
|
+
//# sourceMappingURL=task-dashboard.component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-dashboard.component.js","sourceRoot":"","sources":["../../../../src/lib/components/task-dashboard/task-dashboard.component.ts"],"names":[],"mappings":"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"}
|