@memberjunction/ng-conversations 2.104.0 → 2.106.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.
Files changed (106) hide show
  1. package/dist/lib/components/collection/collection-view.component.d.ts +5 -1
  2. package/dist/lib/components/collection/collection-view.component.d.ts.map +1 -1
  3. package/dist/lib/components/collection/collection-view.component.js +53 -11
  4. package/dist/lib/components/collection/collection-view.component.js.map +1 -1
  5. package/dist/lib/components/conversation/conversation-chat-area.component.d.ts +53 -13
  6. package/dist/lib/components/conversation/conversation-chat-area.component.d.ts.map +1 -1
  7. package/dist/lib/components/conversation/conversation-chat-area.component.js +455 -289
  8. package/dist/lib/components/conversation/conversation-chat-area.component.js.map +1 -1
  9. package/dist/lib/components/conversation/conversation-list.component.d.ts +9 -1
  10. package/dist/lib/components/conversation/conversation-list.component.d.ts.map +1 -1
  11. package/dist/lib/components/conversation/conversation-list.component.js +258 -71
  12. package/dist/lib/components/conversation/conversation-list.component.js.map +1 -1
  13. package/dist/lib/components/mention/mention-dropdown.component.d.ts +6 -0
  14. package/dist/lib/components/mention/mention-dropdown.component.d.ts.map +1 -1
  15. package/dist/lib/components/mention/mention-dropdown.component.js +35 -13
  16. package/dist/lib/components/mention/mention-dropdown.component.js.map +1 -1
  17. package/dist/lib/components/message/message-input.component.d.ts +49 -12
  18. package/dist/lib/components/message/message-input.component.d.ts.map +1 -1
  19. package/dist/lib/components/message/message-input.component.js +579 -221
  20. package/dist/lib/components/message/message-input.component.js.map +1 -1
  21. package/dist/lib/components/message/message-item.component.d.ts +16 -5
  22. package/dist/lib/components/message/message-item.component.d.ts.map +1 -1
  23. package/dist/lib/components/message/message-item.component.js +136 -64
  24. package/dist/lib/components/message/message-item.component.js.map +1 -1
  25. package/dist/lib/components/message/message-list.component.d.ts +11 -5
  26. package/dist/lib/components/message/message-list.component.d.ts.map +1 -1
  27. package/dist/lib/components/message/message-list.component.js +48 -9
  28. package/dist/lib/components/message/message-list.component.js.map +1 -1
  29. package/dist/lib/components/navigation/conversation-navigation.component.d.ts.map +1 -1
  30. package/dist/lib/components/navigation/conversation-navigation.component.js +24 -9
  31. package/dist/lib/components/navigation/conversation-navigation.component.js.map +1 -1
  32. package/dist/lib/components/task/tasks-full-view.component.d.ts +47 -0
  33. package/dist/lib/components/task/tasks-full-view.component.d.ts.map +1 -0
  34. package/dist/lib/components/task/tasks-full-view.component.js +368 -0
  35. package/dist/lib/components/task/tasks-full-view.component.js.map +1 -0
  36. package/dist/lib/components/tasks/task-widget.component.d.ts +29 -0
  37. package/dist/lib/components/tasks/task-widget.component.d.ts.map +1 -0
  38. package/dist/lib/components/tasks/task-widget.component.js +385 -0
  39. package/dist/lib/components/tasks/task-widget.component.js.map +1 -0
  40. package/dist/lib/components/tasks/tasks-dropdown.component.d.ts +22 -8
  41. package/dist/lib/components/tasks/tasks-dropdown.component.d.ts.map +1 -1
  42. package/dist/lib/components/tasks/tasks-dropdown.component.js +195 -99
  43. package/dist/lib/components/tasks/tasks-dropdown.component.js.map +1 -1
  44. package/dist/lib/components/thread/thread-panel.component.d.ts +3 -1
  45. package/dist/lib/components/thread/thread-panel.component.d.ts.map +1 -1
  46. package/dist/lib/components/thread/thread-panel.component.js +14 -14
  47. package/dist/lib/components/thread/thread-panel.component.js.map +1 -1
  48. package/dist/lib/components/workspace/conversation-workspace.component.d.ts +43 -4
  49. package/dist/lib/components/workspace/conversation-workspace.component.d.ts.map +1 -1
  50. package/dist/lib/components/workspace/conversation-workspace.component.js +288 -46
  51. package/dist/lib/components/workspace/conversation-workspace.component.js.map +1 -1
  52. package/dist/lib/conversations.module.d.ts +40 -46
  53. package/dist/lib/conversations.module.d.ts.map +1 -1
  54. package/dist/lib/conversations.module.js +28 -42
  55. package/dist/lib/conversations.module.js.map +1 -1
  56. package/dist/lib/models/conversation-state.model.d.ts +29 -1
  57. package/dist/lib/models/conversation-state.model.d.ts.map +1 -1
  58. package/dist/lib/services/conversation-agent.service.d.ts +6 -5
  59. package/dist/lib/services/conversation-agent.service.d.ts.map +1 -1
  60. package/dist/lib/services/conversation-agent.service.js +18 -19
  61. package/dist/lib/services/conversation-agent.service.js.map +1 -1
  62. package/dist/lib/services/data-cache.service.d.ts +96 -0
  63. package/dist/lib/services/data-cache.service.d.ts.map +1 -0
  64. package/dist/lib/services/data-cache.service.js +203 -0
  65. package/dist/lib/services/data-cache.service.js.map +1 -0
  66. package/dist/public-api.d.ts +3 -6
  67. package/dist/public-api.d.ts.map +1 -1
  68. package/dist/public-api.js +3 -6
  69. package/dist/public-api.js.map +1 -1
  70. package/package.json +12 -10
  71. package/dist/lib/components/artifact/artifact-panel.component.d.ts +0 -22
  72. package/dist/lib/components/artifact/artifact-panel.component.d.ts.map +0 -1
  73. package/dist/lib/components/artifact/artifact-panel.component.js +0 -237
  74. package/dist/lib/components/artifact/artifact-panel.component.js.map +0 -1
  75. package/dist/lib/components/artifact/artifact-upload-modal.component.d.ts +0 -39
  76. package/dist/lib/components/artifact/artifact-upload-modal.component.d.ts.map +0 -1
  77. package/dist/lib/components/artifact/artifact-upload-modal.component.js +0 -384
  78. package/dist/lib/components/artifact/artifact-upload-modal.component.js.map +0 -1
  79. package/dist/lib/components/artifact/artifact-version-history.component.d.ts +0 -28
  80. package/dist/lib/components/artifact/artifact-version-history.component.d.ts.map +0 -1
  81. package/dist/lib/components/artifact/artifact-version-history.component.js +0 -280
  82. package/dist/lib/components/artifact/artifact-version-history.component.js.map +0 -1
  83. package/dist/lib/components/artifact/artifact-viewer-panel.component.d.ts +0 -22
  84. package/dist/lib/components/artifact/artifact-viewer-panel.component.d.ts.map +0 -1
  85. package/dist/lib/components/artifact/artifact-viewer-panel.component.js +0 -182
  86. package/dist/lib/components/artifact/artifact-viewer-panel.component.js.map +0 -1
  87. package/dist/lib/components/artifact/artifact-viewer.component.d.ts +0 -27
  88. package/dist/lib/components/artifact/artifact-viewer.component.d.ts.map +0 -1
  89. package/dist/lib/components/artifact/artifact-viewer.component.js +0 -266
  90. package/dist/lib/components/artifact/artifact-viewer.component.js.map +0 -1
  91. package/dist/lib/components/artifact/inline-artifact.component.d.ts +0 -46
  92. package/dist/lib/components/artifact/inline-artifact.component.d.ts.map +0 -1
  93. package/dist/lib/components/artifact/inline-artifact.component.js +0 -447
  94. package/dist/lib/components/artifact/inline-artifact.component.js.map +0 -1
  95. package/dist/lib/components/task/task-form-modal.component.d.ts +0 -42
  96. package/dist/lib/components/task/task-form-modal.component.d.ts.map +0 -1
  97. package/dist/lib/components/task/task-form-modal.component.js +0 -329
  98. package/dist/lib/components/task/task-form-modal.component.js.map +0 -1
  99. package/dist/lib/components/task/task-item.component.d.ts +0 -22
  100. package/dist/lib/components/task/task-item.component.d.ts.map +0 -1
  101. package/dist/lib/components/task/task-item.component.js +0 -234
  102. package/dist/lib/components/task/task-item.component.js.map +0 -1
  103. package/dist/lib/components/task/task-list.component.d.ts +0 -32
  104. package/dist/lib/components/task/task-list.component.d.ts.map +0 -1
  105. package/dist/lib/components/task/task-list.component.js +0 -290
  106. package/dist/lib/components/task/task-list.component.js.map +0 -1
@@ -1,32 +0,0 @@
1
- import { OnInit, OnChanges, SimpleChanges } from '@angular/core';
2
- import { TaskEntity } from '@memberjunction/core-entities';
3
- import { UserInfo } from '@memberjunction/core';
4
- import { DialogService } from '../../services/dialog.service';
5
- import * as i0 from "@angular/core";
6
- export declare class TaskListComponent implements OnInit, OnChanges {
7
- private dialogService;
8
- conversationId: string;
9
- currentUser: UserInfo;
10
- tasks: TaskEntity[];
11
- filteredTasks: TaskEntity[];
12
- filterStatus: 'all' | 'active' | 'overdue' | 'completed';
13
- isTaskModalVisible: boolean;
14
- selectedTask?: TaskEntity;
15
- constructor(dialogService: DialogService);
16
- ngOnInit(): void;
17
- ngOnChanges(changes: SimpleChanges): void;
18
- private loadTasks;
19
- applyFilter(): void;
20
- private isTaskOverdue;
21
- private sortTasks;
22
- getOverdueCount(): number;
23
- onToggleStatus(task: TaskEntity): Promise<void>;
24
- onAddTask(): void;
25
- onEditTask(task: TaskEntity): void;
26
- onDeleteTask(task: TaskEntity): Promise<void>;
27
- onTaskSaved(task: TaskEntity): void;
28
- onTaskModalCancelled(): void;
29
- static ɵfac: i0.ɵɵFactoryDeclaration<TaskListComponent, never>;
30
- static ɵcmp: i0.ɵɵComponentDeclaration<TaskListComponent, "mj-task-list", never, { "conversationId": { "alias": "conversationId"; "required": false; }; "currentUser": { "alias": "currentUser"; "required": false; }; }, {}, never, never, false, never>;
31
- }
32
- //# sourceMappingURL=task-list.component.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"task-list.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/task/task-list.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAW,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;;AAE9D,qBAuFa,iBAAkB,YAAW,MAAM,EAAE,SAAS;IAU7C,OAAO,CAAC,aAAa;IATxB,cAAc,EAAG,MAAM,CAAC;IACxB,WAAW,EAAG,QAAQ,CAAC;IAEzB,KAAK,EAAE,UAAU,EAAE,CAAM;IACzB,aAAa,EAAE,UAAU,EAAE,CAAM;IACjC,YAAY,EAAE,KAAK,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAS;IACjE,kBAAkB,UAAS;IAC3B,YAAY,CAAC,EAAE,UAAU,CAAC;gBAEb,aAAa,EAAE,aAAa;IAEhD,QAAQ;IAIR,WAAW,CAAC,OAAO,EAAE,aAAa;YAMpB,SAAS;IAmBvB,WAAW,IAAI,IAAI;IAYnB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,SAAS;IAmBjB,eAAe,IAAI,MAAM;IAInB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAWrD,SAAS,IAAI,IAAI;IAKjB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAK5B,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBnD,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAMnC,oBAAoB,IAAI,IAAI;yCArIjB,iBAAiB;2CAAjB,iBAAiB;CAyI7B"}
@@ -1,290 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import { RunView } from '@memberjunction/core';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "../../services/dialog.service";
5
- import * as i2 from "./task-item.component";
6
- import * as i3 from "./task-form-modal.component";
7
- const _forTrack0 = ($index, $item) => $item.ID;
8
- function TaskListComponent_Conditional_11_Template(rf, ctx) { if (rf & 1) {
9
- i0.ɵɵelementStart(0, "span", 5);
10
- i0.ɵɵtext(1);
11
- i0.ɵɵelementEnd();
12
- } if (rf & 2) {
13
- const ctx_r0 = i0.ɵɵnextContext();
14
- i0.ɵɵadvance();
15
- i0.ɵɵtextInterpolate(ctx_r0.getOverdueCount());
16
- } }
17
- function TaskListComponent_Conditional_17_Template(rf, ctx) { if (rf & 1) {
18
- i0.ɵɵelementStart(0, "div", 9);
19
- i0.ɵɵelement(1, "i", 12);
20
- i0.ɵɵelementStart(2, "p");
21
- i0.ɵɵtext(3, "No tasks found");
22
- i0.ɵɵelementEnd()();
23
- } }
24
- function TaskListComponent_For_19_Template(rf, ctx) { if (rf & 1) {
25
- const _r2 = i0.ɵɵgetCurrentView();
26
- i0.ɵɵelementStart(0, "mj-task-item", 13);
27
- i0.ɵɵlistener("statusToggled", function TaskListComponent_For_19_Template_mj_task_item_statusToggled_0_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onToggleStatus($event)); })("editRequested", function TaskListComponent_For_19_Template_mj_task_item_editRequested_0_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onEditTask($event)); })("deleteRequested", function TaskListComponent_For_19_Template_mj_task_item_deleteRequested_0_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onDeleteTask($event)); });
28
- i0.ɵɵelementEnd();
29
- } if (rf & 2) {
30
- const task_r3 = ctx.$implicit;
31
- i0.ɵɵproperty("task", task_r3);
32
- } }
33
- export class TaskListComponent {
34
- dialogService;
35
- conversationId;
36
- currentUser;
37
- tasks = [];
38
- filteredTasks = [];
39
- filterStatus = 'all';
40
- isTaskModalVisible = false;
41
- selectedTask;
42
- constructor(dialogService) {
43
- this.dialogService = dialogService;
44
- }
45
- ngOnInit() {
46
- this.loadTasks();
47
- }
48
- ngOnChanges(changes) {
49
- if (changes['conversationId'] && !changes['conversationId'].firstChange) {
50
- this.loadTasks();
51
- }
52
- }
53
- async loadTasks() {
54
- try {
55
- const rv = new RunView();
56
- const result = await rv.RunView({
57
- EntityName: 'MJ: Tasks',
58
- ExtraFilter: `ConversationDetailID='${this.conversationId}'`,
59
- OrderBy: 'Status ASC, DueAt ASC, __mj_CreatedAt ASC',
60
- ResultType: 'entity_object'
61
- }, this.currentUser);
62
- if (result.Success) {
63
- this.tasks = result.Results || [];
64
- this.applyFilter();
65
- }
66
- }
67
- catch (error) {
68
- console.error('Failed to load tasks:', error);
69
- }
70
- }
71
- applyFilter() {
72
- if (this.filterStatus === 'all') {
73
- this.filteredTasks = this.sortTasks(this.tasks);
74
- }
75
- else if (this.filterStatus === 'active') {
76
- this.filteredTasks = this.sortTasks(this.tasks.filter(t => t.Status !== 'Complete'));
77
- }
78
- else if (this.filterStatus === 'overdue') {
79
- this.filteredTasks = this.sortTasks(this.tasks.filter(t => this.isTaskOverdue(t)));
80
- }
81
- else {
82
- this.filteredTasks = this.sortTasks(this.tasks.filter(t => t.Status === 'Complete'));
83
- }
84
- }
85
- isTaskOverdue(task) {
86
- if (!task.DueAt || task.Status === 'Complete') {
87
- return false;
88
- }
89
- const now = new Date();
90
- const dueDate = new Date(task.DueAt);
91
- return dueDate.getTime() < now.getTime();
92
- }
93
- sortTasks(tasks) {
94
- return [...tasks].sort((a, b) => {
95
- const aOverdue = this.isTaskOverdue(a);
96
- const bOverdue = this.isTaskOverdue(b);
97
- if (aOverdue && !bOverdue)
98
- return -1;
99
- if (!aOverdue && bOverdue)
100
- return 1;
101
- if (a.DueAt && b.DueAt) {
102
- return new Date(a.DueAt).getTime() - new Date(b.DueAt).getTime();
103
- }
104
- if (a.DueAt && !b.DueAt)
105
- return -1;
106
- if (!a.DueAt && b.DueAt)
107
- return 1;
108
- return 0;
109
- });
110
- }
111
- getOverdueCount() {
112
- return this.tasks.filter(t => this.isTaskOverdue(t)).length;
113
- }
114
- async onToggleStatus(task) {
115
- try {
116
- task.Status = task.Status === 'Complete' ? 'In Progress' : 'Complete';
117
- await task.Save();
118
- this.applyFilter();
119
- }
120
- catch (error) {
121
- console.error('Failed to update task status:', error);
122
- await this.dialogService.alert('Error', 'Failed to update task status');
123
- }
124
- }
125
- onAddTask() {
126
- this.selectedTask = undefined;
127
- this.isTaskModalVisible = true;
128
- }
129
- onEditTask(task) {
130
- this.selectedTask = task;
131
- this.isTaskModalVisible = true;
132
- }
133
- async onDeleteTask(task) {
134
- const confirmed = await this.dialogService.confirm({
135
- title: 'Delete Task',
136
- message: `Delete task "${task.Name}"?`,
137
- okText: 'Delete',
138
- cancelText: 'Cancel'
139
- });
140
- if (!confirmed)
141
- return;
142
- try {
143
- const deleted = await task.Delete();
144
- if (deleted) {
145
- await this.loadTasks();
146
- }
147
- }
148
- catch (error) {
149
- console.error('Failed to delete task:', error);
150
- await this.dialogService.alert('Error', 'Failed to delete task');
151
- }
152
- }
153
- onTaskSaved(task) {
154
- this.isTaskModalVisible = false;
155
- this.selectedTask = undefined;
156
- this.loadTasks();
157
- }
158
- onTaskModalCancelled() {
159
- this.isTaskModalVisible = false;
160
- this.selectedTask = undefined;
161
- }
162
- static ɵfac = function TaskListComponent_Factory(t) { return new (t || TaskListComponent)(i0.ɵɵdirectiveInject(i1.DialogService)); };
163
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TaskListComponent, selectors: [["mj-task-list"]], inputs: { conversationId: "conversationId", currentUser: "currentUser" }, features: [i0.ɵɵNgOnChangesFeature], decls: 21, vars: 15, consts: [[1, "task-list"], [1, "task-header"], [1, "task-filters"], [1, "filter-btn", 3, "click"], [1, "filter-btn", 3, "click", "title"], [1, "filter-badge"], ["title", "Add Task", 1, "btn-add-task", 3, "click"], [1, "fa-solid", "fa-plus"], [1, "task-content"], [1, "empty-state"], [3, "task"], [3, "saved", "cancelled", "isVisible", "task", "conversationId", "currentUser"], [1, "fa-solid", "fa-tasks"], [3, "statusToggled", "editRequested", "deleteRequested", "task"]], template: function TaskListComponent_Template(rf, ctx) { if (rf & 1) {
164
- i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "h3");
165
- i0.ɵɵtext(3, "Tasks");
166
- i0.ɵɵelementEnd();
167
- i0.ɵɵelementStart(4, "div", 2)(5, "button", 3);
168
- i0.ɵɵlistener("click", function TaskListComponent_Template_button_click_5_listener() { ctx.filterStatus = "all"; return ctx.applyFilter(); });
169
- i0.ɵɵtext(6, " All ");
170
- i0.ɵɵelementEnd();
171
- i0.ɵɵelementStart(7, "button", 3);
172
- i0.ɵɵlistener("click", function TaskListComponent_Template_button_click_7_listener() { ctx.filterStatus = "active"; return ctx.applyFilter(); });
173
- i0.ɵɵtext(8, " Active ");
174
- i0.ɵɵelementEnd();
175
- i0.ɵɵelementStart(9, "button", 4);
176
- i0.ɵɵlistener("click", function TaskListComponent_Template_button_click_9_listener() { ctx.filterStatus = "overdue"; return ctx.applyFilter(); });
177
- i0.ɵɵtext(10, " Overdue ");
178
- i0.ɵɵtemplate(11, TaskListComponent_Conditional_11_Template, 2, 1, "span", 5);
179
- i0.ɵɵelementEnd();
180
- i0.ɵɵelementStart(12, "button", 3);
181
- i0.ɵɵlistener("click", function TaskListComponent_Template_button_click_12_listener() { ctx.filterStatus = "completed"; return ctx.applyFilter(); });
182
- i0.ɵɵtext(13, " Completed ");
183
- i0.ɵɵelementEnd()();
184
- i0.ɵɵelementStart(14, "button", 6);
185
- i0.ɵɵlistener("click", function TaskListComponent_Template_button_click_14_listener() { return ctx.onAddTask(); });
186
- i0.ɵɵelement(15, "i", 7);
187
- i0.ɵɵelementEnd()();
188
- i0.ɵɵelementStart(16, "div", 8);
189
- i0.ɵɵtemplate(17, TaskListComponent_Conditional_17_Template, 4, 0, "div", 9);
190
- i0.ɵɵrepeaterCreate(18, TaskListComponent_For_19_Template, 1, 1, "mj-task-item", 10, _forTrack0);
191
- i0.ɵɵelementEnd();
192
- i0.ɵɵelementStart(20, "mj-task-form-modal", 11);
193
- i0.ɵɵlistener("saved", function TaskListComponent_Template_mj_task_form_modal_saved_20_listener($event) { return ctx.onTaskSaved($event); })("cancelled", function TaskListComponent_Template_mj_task_form_modal_cancelled_20_listener() { return ctx.onTaskModalCancelled(); });
194
- i0.ɵɵelementEnd()();
195
- } if (rf & 2) {
196
- i0.ɵɵadvance(5);
197
- i0.ɵɵclassProp("active", ctx.filterStatus === "all");
198
- i0.ɵɵadvance(2);
199
- i0.ɵɵclassProp("active", ctx.filterStatus === "active");
200
- i0.ɵɵadvance(2);
201
- i0.ɵɵclassProp("active", ctx.filterStatus === "overdue");
202
- i0.ɵɵproperty("title", ctx.getOverdueCount() + " overdue tasks");
203
- i0.ɵɵadvance(2);
204
- i0.ɵɵconditional(ctx.getOverdueCount() > 0 ? 11 : -1);
205
- i0.ɵɵadvance();
206
- i0.ɵɵclassProp("active", ctx.filterStatus === "completed");
207
- i0.ɵɵadvance(5);
208
- i0.ɵɵconditional(ctx.filteredTasks.length === 0 ? 17 : -1);
209
- i0.ɵɵadvance();
210
- i0.ɵɵrepeater(ctx.filteredTasks);
211
- i0.ɵɵadvance(2);
212
- i0.ɵɵproperty("isVisible", ctx.isTaskModalVisible)("task", ctx.selectedTask)("conversationId", ctx.conversationId)("currentUser", ctx.currentUser);
213
- } }, dependencies: [i2.TaskItemComponent, i3.TaskFormModalComponent], styles: [".task-list[_ngcontent-%COMP%] { display: flex; flex-direction: column; height: 100%; background: white; }\n .task-header[_ngcontent-%COMP%] { padding: 16px; border-bottom: 1px solid #D9D9D9; display: flex; align-items: center; gap: 12px; }\n .task-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] { margin: 0; font-size: 16px; flex: 1; }\n .task-filters[_ngcontent-%COMP%] { display: flex; gap: 4px; }\n .filter-btn[_ngcontent-%COMP%] { padding: 6px 12px; background: transparent; border: 1px solid #D9D9D9; border-radius: 4px; cursor: pointer; font-size: 13px; transition: all 150ms ease; position: relative; }\n .filter-btn[_ngcontent-%COMP%]:hover { background: #F4F4F4; }\n .filter-btn.active[_ngcontent-%COMP%] { background: #0076B6; color: white; border-color: #0076B6; }\n .filter-badge[_ngcontent-%COMP%] { display: inline-block; margin-left: 6px; padding: 1px 6px; background: #C62828; color: white; border-radius: 10px; font-size: 10px; font-weight: bold; }\n .filter-btn.active[_ngcontent-%COMP%] .filter-badge[_ngcontent-%COMP%] { background: rgba(255,255,255,0.3); }\n .btn-add-task[_ngcontent-%COMP%] { padding: 6px 10px; background: #0076B6; color: white; border: none; border-radius: 4px; cursor: pointer; }\n .btn-add-task[_ngcontent-%COMP%]:hover { background: #005A8C; }\n .task-content[_ngcontent-%COMP%] { flex: 1; overflow-y: auto; }\n .empty-state[_ngcontent-%COMP%] { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 48px 24px; color: #999; }\n .empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 48px; margin-bottom: 16px; }\n .empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] { margin: 0; font-size: 14px; }"] });
214
- }
215
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TaskListComponent, [{
216
- type: Component,
217
- args: [{ selector: 'mj-task-list', template: `
218
- <div class="task-list">
219
- <div class="task-header">
220
- <h3>Tasks</h3>
221
- <div class="task-filters">
222
- <button
223
- class="filter-btn"
224
- [class.active]="filterStatus === 'all'"
225
- (click)="filterStatus = 'all'; applyFilter()">
226
- All
227
- </button>
228
- <button
229
- class="filter-btn"
230
- [class.active]="filterStatus === 'active'"
231
- (click)="filterStatus = 'active'; applyFilter()">
232
- Active
233
- </button>
234
- <button
235
- class="filter-btn"
236
- [class.active]="filterStatus === 'overdue'"
237
- (click)="filterStatus = 'overdue'; applyFilter()"
238
- [title]="getOverdueCount() + ' overdue tasks'">
239
- Overdue
240
- @if (getOverdueCount() > 0) {
241
- <span class="filter-badge">{{ getOverdueCount() }}</span>
242
- }
243
- </button>
244
- <button
245
- class="filter-btn"
246
- [class.active]="filterStatus === 'completed'"
247
- (click)="filterStatus = 'completed'; applyFilter()">
248
- Completed
249
- </button>
250
- </div>
251
- <button class="btn-add-task" (click)="onAddTask()" title="Add Task">
252
- <i class="fa-solid fa-plus"></i>
253
- </button>
254
- </div>
255
-
256
- <div class="task-content">
257
- @if (filteredTasks.length === 0) {
258
- <div class="empty-state">
259
- <i class="fa-solid fa-tasks"></i>
260
- <p>No tasks found</p>
261
- </div>
262
- }
263
-
264
- @for (task of filteredTasks; track task.ID) {
265
- <mj-task-item
266
- [task]="task"
267
- (statusToggled)="onToggleStatus($event)"
268
- (editRequested)="onEditTask($event)"
269
- (deleteRequested)="onDeleteTask($event)">
270
- </mj-task-item>
271
- }
272
- </div>
273
-
274
- <mj-task-form-modal
275
- [isVisible]="isTaskModalVisible"
276
- [task]="selectedTask"
277
- [conversationId]="conversationId"
278
- [currentUser]="currentUser"
279
- (saved)="onTaskSaved($event)"
280
- (cancelled)="onTaskModalCancelled()">
281
- </mj-task-form-modal>
282
- </div>
283
- `, styles: ["\n .task-list { display: flex; flex-direction: column; height: 100%; background: white; }\n .task-header { padding: 16px; border-bottom: 1px solid #D9D9D9; display: flex; align-items: center; gap: 12px; }\n .task-header h3 { margin: 0; font-size: 16px; flex: 1; }\n .task-filters { display: flex; gap: 4px; }\n .filter-btn { padding: 6px 12px; background: transparent; border: 1px solid #D9D9D9; border-radius: 4px; cursor: pointer; font-size: 13px; transition: all 150ms ease; position: relative; }\n .filter-btn:hover { background: #F4F4F4; }\n .filter-btn.active { background: #0076B6; color: white; border-color: #0076B6; }\n .filter-badge { display: inline-block; margin-left: 6px; padding: 1px 6px; background: #C62828; color: white; border-radius: 10px; font-size: 10px; font-weight: bold; }\n .filter-btn.active .filter-badge { background: rgba(255,255,255,0.3); }\n .btn-add-task { padding: 6px 10px; background: #0076B6; color: white; border: none; border-radius: 4px; cursor: pointer; }\n .btn-add-task:hover { background: #005A8C; }\n .task-content { flex: 1; overflow-y: auto; }\n .empty-state { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 48px 24px; color: #999; }\n .empty-state i { font-size: 48px; margin-bottom: 16px; }\n .empty-state p { margin: 0; font-size: 14px; }\n "] }]
284
- }], () => [{ type: i1.DialogService }], { conversationId: [{
285
- type: Input
286
- }], currentUser: [{
287
- type: Input
288
- }] }); })();
289
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TaskListComponent, { className: "TaskListComponent", filePath: "src/lib/components/task/task-list.component.ts", lineNumber: 93 }); })();
290
- //# sourceMappingURL=task-list.component.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"task-list.component.js","sourceRoot":"","sources":["../../../../src/lib/components/task/task-list.component.ts"],"names":[],"mappings":"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"}