@codingfactory/task-engine-client 0.1.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 (53) hide show
  1. package/README.md +53 -0
  2. package/dist/components/dashboard/MyStatsWidget.vue.d.ts +10 -0
  3. package/dist/components/dashboard/MyTasksToday.vue.d.ts +10 -0
  4. package/dist/components/dashboard/OverdueTracker.vue.d.ts +10 -0
  5. package/dist/components/dashboard/TaskDashboard.vue.d.ts +20 -0
  6. package/dist/components/dashboard/TaskHealthAlerts.vue.d.ts +18 -0
  7. package/dist/components/dashboard/TeamActivityFeed.vue.d.ts +11 -0
  8. package/dist/components/dashboard/UpcomingThisWeek.vue.d.ts +10 -0
  9. package/dist/components/dashboard/WidgetGrid.vue.d.ts +25 -0
  10. package/dist/components/index.d.ts +29 -0
  11. package/dist/components/list/TaskBoardView.vue.d.ts +21 -0
  12. package/dist/components/list/TaskBulkActionBar.vue.d.ts +20 -0
  13. package/dist/components/list/TaskCalendarView.vue.d.ts +11 -0
  14. package/dist/components/list/TaskFilterBar.vue.d.ts +15 -0
  15. package/dist/components/list/TaskListView.vue.d.ts +39 -0
  16. package/dist/components/list/TaskSavedFilterTabs.vue.d.ts +13 -0
  17. package/dist/components/recurrence/RecurringTemplateForm.vue.d.ts +17 -0
  18. package/dist/components/recurrence/RecurringTemplateList.vue.d.ts +25 -0
  19. package/dist/components/shared/TaskEntityWidget.vue.d.ts +20 -0
  20. package/dist/components/shared/TaskNotificationToast.vue.d.ts +16 -0
  21. package/dist/components/shared/TaskPriorityIcon.vue.d.ts +7 -0
  22. package/dist/components/shared/TaskQuickCreate.vue.d.ts +17 -0
  23. package/dist/components/task/EscalationActions.vue.d.ts +22 -0
  24. package/dist/components/task/EscalationBadge.vue.d.ts +9 -0
  25. package/dist/components/task/TaskCard.vue.d.ts +14 -0
  26. package/dist/components/task/TaskChecklist.vue.d.ts +17 -0
  27. package/dist/components/task/TaskComments.vue.d.ts +17 -0
  28. package/dist/components/task/TaskDetail.vue.d.ts +47 -0
  29. package/dist/components/task/TaskForm.vue.d.ts +21 -0
  30. package/dist/components/task/TaskStatusBadge.vue.d.ts +6 -0
  31. package/dist/components/task/TaskTimeline.vue.d.ts +11 -0
  32. package/dist/composables/index.d.ts +7 -0
  33. package/dist/composables/useTaskDashboard.d.ts +504 -0
  34. package/dist/composables/useTaskDetail.d.ts +207 -0
  35. package/dist/composables/useTaskFilters.d.ts +38 -0
  36. package/dist/composables/useTaskNotificationFeed.d.ts +47 -0
  37. package/dist/composables/useTaskPresence.d.ts +22 -0
  38. package/dist/composables/useTaskSavedFilters.d.ts +47 -0
  39. package/dist/composables/useTaskWebSocket.d.ts +31 -0
  40. package/dist/index.cjs +1 -0
  41. package/dist/index.d.ts +5 -0
  42. package/dist/index.js +5163 -0
  43. package/dist/services/index.d.ts +1 -0
  44. package/dist/services/taskApi.d.ts +12 -0
  45. package/dist/stores/index.d.ts +2 -0
  46. package/dist/stores/taskListStore.d.ts +179 -0
  47. package/dist/stores/taskStore.d.ts +2294 -0
  48. package/dist/task-engine-client.css +1 -0
  49. package/dist/types/index.d.ts +700 -0
  50. package/dist/utils/index.d.ts +3 -0
  51. package/dist/utils/recurrence.d.ts +25 -0
  52. package/dist/utils/taskDisplay.d.ts +14 -0
  53. package/package.json +74 -0
@@ -0,0 +1,504 @@
1
+ import { type MaybeRefOrGetter } from 'vue';
2
+ import type { TaskDashboardActivityWidget, TaskDashboardConfig, TaskDashboardData, TaskDashboardHealthWidget, TaskDashboardLayout, TaskDashboardStats, TaskDashboardStatsPeriod, TaskDashboardTaskListWidget, TaskDashboardUpcomingWidget, TaskDashboardWidgetId } from '@/types';
3
+ import { type TaskEchoLike } from './useTaskWebSocket';
4
+ type DashboardWidgetPayload = TaskDashboardTaskListWidget | TaskDashboardUpcomingWidget | TaskDashboardActivityWidget | TaskDashboardHealthWidget | TaskDashboardStats;
5
+ interface UseTaskDashboardOptions {
6
+ echo?: TaskEchoLike | (() => TaskEchoLike | null | undefined) | null | undefined;
7
+ autoLoad?: boolean;
8
+ autoConnect?: boolean;
9
+ }
10
+ export declare function useTaskDashboard(userId: MaybeRefOrGetter<string | number | null | undefined>, options?: UseTaskDashboardOptions): {
11
+ dashboardData: import("vue").Ref<{
12
+ scope: import("@/types").TaskDashboardScope;
13
+ config: {
14
+ id: string;
15
+ tenant_id: string;
16
+ user_id: string;
17
+ layout: {
18
+ widgets: {
19
+ id: TaskDashboardWidgetId | string;
20
+ x: number;
21
+ y: number;
22
+ w: number;
23
+ h: number;
24
+ visible: boolean;
25
+ settings?: Record<string, unknown>;
26
+ }[];
27
+ };
28
+ preferences: Record<string, unknown>;
29
+ created_at: string | null;
30
+ updated_at: string | null;
31
+ };
32
+ widgets: {
33
+ my_tasks_today: {
34
+ items: {
35
+ id: string;
36
+ display_number_formatted: string;
37
+ title: string;
38
+ description: string | null;
39
+ status: import("@/types").TaskStatus;
40
+ priority: import("@/types").TaskPriority;
41
+ due_at: string | null;
42
+ is_overdue: boolean;
43
+ primary_assignee: {
44
+ id: string | number;
45
+ name: string;
46
+ avatar_url?: string;
47
+ } | null;
48
+ created_by: {
49
+ id: string | number;
50
+ name: string;
51
+ avatar_url?: string;
52
+ } | null;
53
+ completed_by: {
54
+ id: string | number;
55
+ name: string;
56
+ avatar_url?: string;
57
+ } | null;
58
+ current_escalation_tier: import("@/types").EscalationTier | null;
59
+ current_escalation_label: string | null;
60
+ comment_count: number;
61
+ checklist_total: number;
62
+ checklist_completed: number;
63
+ subtask_count: number;
64
+ progress_percentage: number;
65
+ created_at: string | null;
66
+ updated_at: string | null;
67
+ }[];
68
+ summary: Record<string, boolean | number | string | null>;
69
+ };
70
+ upcoming_this_week: {
71
+ days: {
72
+ date: string;
73
+ label: string;
74
+ weekday: string;
75
+ is_today: boolean;
76
+ tasks: {
77
+ id: string;
78
+ display_number_formatted: string;
79
+ title: string;
80
+ description: string | null;
81
+ status: import("@/types").TaskStatus;
82
+ priority: import("@/types").TaskPriority;
83
+ due_at: string | null;
84
+ is_overdue: boolean;
85
+ primary_assignee: {
86
+ id: string | number;
87
+ name: string;
88
+ avatar_url?: string;
89
+ } | null;
90
+ created_by: {
91
+ id: string | number;
92
+ name: string;
93
+ avatar_url?: string;
94
+ } | null;
95
+ completed_by: {
96
+ id: string | number;
97
+ name: string;
98
+ avatar_url?: string;
99
+ } | null;
100
+ current_escalation_tier: import("@/types").EscalationTier | null;
101
+ current_escalation_label: string | null;
102
+ comment_count: number;
103
+ checklist_total: number;
104
+ checklist_completed: number;
105
+ subtask_count: number;
106
+ progress_percentage: number;
107
+ created_at: string | null;
108
+ updated_at: string | null;
109
+ }[];
110
+ }[];
111
+ summary: Record<string, boolean | number | string | null>;
112
+ };
113
+ overdue: {
114
+ items: {
115
+ id: string;
116
+ display_number_formatted: string;
117
+ title: string;
118
+ description: string | null;
119
+ status: import("@/types").TaskStatus;
120
+ priority: import("@/types").TaskPriority;
121
+ due_at: string | null;
122
+ is_overdue: boolean;
123
+ primary_assignee: {
124
+ id: string | number;
125
+ name: string;
126
+ avatar_url?: string;
127
+ } | null;
128
+ created_by: {
129
+ id: string | number;
130
+ name: string;
131
+ avatar_url?: string;
132
+ } | null;
133
+ completed_by: {
134
+ id: string | number;
135
+ name: string;
136
+ avatar_url?: string;
137
+ } | null;
138
+ current_escalation_tier: import("@/types").EscalationTier | null;
139
+ current_escalation_label: string | null;
140
+ comment_count: number;
141
+ checklist_total: number;
142
+ checklist_completed: number;
143
+ subtask_count: number;
144
+ progress_percentage: number;
145
+ created_at: string | null;
146
+ updated_at: string | null;
147
+ }[];
148
+ summary: Record<string, boolean | number | string | null>;
149
+ };
150
+ activity: {
151
+ items: {
152
+ id: string;
153
+ action: string;
154
+ description: string | null;
155
+ changes: Record<string, unknown> | null;
156
+ metadata: Record<string, unknown> | null;
157
+ created_at: string | null;
158
+ user: {
159
+ id: string | number;
160
+ name: string;
161
+ avatar_url?: string;
162
+ } | null;
163
+ task: {
164
+ id: string;
165
+ display_number_formatted: string;
166
+ title: string;
167
+ status: import("@/types").TaskStatus;
168
+ priority: import("@/types").TaskPriority;
169
+ } | null;
170
+ }[];
171
+ summary: Record<string, boolean | number | string | null>;
172
+ };
173
+ my_stats: {
174
+ period: TaskDashboardStatsPeriod;
175
+ current: {
176
+ tasks_completed: number;
177
+ tasks_created: number;
178
+ on_time_percentage: number;
179
+ avg_cycle_hours: number;
180
+ streak_days?: number;
181
+ };
182
+ previous: {
183
+ tasks_completed: number;
184
+ tasks_created: number;
185
+ on_time_percentage: number;
186
+ avg_cycle_hours: number;
187
+ streak_days?: number;
188
+ };
189
+ trends: {
190
+ tasks_completed: "up" | "down" | "flat";
191
+ tasks_created: "up" | "down" | "flat";
192
+ on_time_percentage: "up" | "down" | "flat";
193
+ avg_cycle_hours: "up" | "down" | "flat";
194
+ };
195
+ };
196
+ health_alerts: {
197
+ items: {
198
+ task: {
199
+ id: string;
200
+ display_number_formatted: string;
201
+ title: string;
202
+ description: string | null;
203
+ status: import("@/types").TaskStatus;
204
+ priority: import("@/types").TaskPriority;
205
+ due_at: string | null;
206
+ is_overdue: boolean;
207
+ primary_assignee: {
208
+ id: string | number;
209
+ name: string;
210
+ avatar_url?: string;
211
+ } | null;
212
+ created_by: {
213
+ id: string | number;
214
+ name: string;
215
+ avatar_url?: string;
216
+ } | null;
217
+ completed_by: {
218
+ id: string | number;
219
+ name: string;
220
+ avatar_url?: string;
221
+ } | null;
222
+ current_escalation_tier: import("@/types").EscalationTier | null;
223
+ current_escalation_label: string | null;
224
+ comment_count: number;
225
+ checklist_total: number;
226
+ checklist_completed: number;
227
+ subtask_count: number;
228
+ progress_percentage: number;
229
+ created_at: string | null;
230
+ updated_at: string | null;
231
+ };
232
+ health_status: import("@/types").TaskDashboardHealthStatus;
233
+ health_score: number;
234
+ issues: {
235
+ type: "stale" | "unassigned" | "blocked_too_long" | "overdue" | "orphaned_subtask" | "no_due_date";
236
+ label: string;
237
+ message: string;
238
+ suggested_actions: string[];
239
+ }[];
240
+ }[];
241
+ summary: Record<string, boolean | number | string | null>;
242
+ };
243
+ };
244
+ meta: {
245
+ generated_at: string;
246
+ can_view_analytics: boolean;
247
+ };
248
+ } | null, TaskDashboardData | {
249
+ scope: import("@/types").TaskDashboardScope;
250
+ config: {
251
+ id: string;
252
+ tenant_id: string;
253
+ user_id: string;
254
+ layout: {
255
+ widgets: {
256
+ id: TaskDashboardWidgetId | string;
257
+ x: number;
258
+ y: number;
259
+ w: number;
260
+ h: number;
261
+ visible: boolean;
262
+ settings?: Record<string, unknown>;
263
+ }[];
264
+ };
265
+ preferences: Record<string, unknown>;
266
+ created_at: string | null;
267
+ updated_at: string | null;
268
+ };
269
+ widgets: {
270
+ my_tasks_today: {
271
+ items: {
272
+ id: string;
273
+ display_number_formatted: string;
274
+ title: string;
275
+ description: string | null;
276
+ status: import("@/types").TaskStatus;
277
+ priority: import("@/types").TaskPriority;
278
+ due_at: string | null;
279
+ is_overdue: boolean;
280
+ primary_assignee: {
281
+ id: string | number;
282
+ name: string;
283
+ avatar_url?: string;
284
+ } | null;
285
+ created_by: {
286
+ id: string | number;
287
+ name: string;
288
+ avatar_url?: string;
289
+ } | null;
290
+ completed_by: {
291
+ id: string | number;
292
+ name: string;
293
+ avatar_url?: string;
294
+ } | null;
295
+ current_escalation_tier: import("@/types").EscalationTier | null;
296
+ current_escalation_label: string | null;
297
+ comment_count: number;
298
+ checklist_total: number;
299
+ checklist_completed: number;
300
+ subtask_count: number;
301
+ progress_percentage: number;
302
+ created_at: string | null;
303
+ updated_at: string | null;
304
+ }[];
305
+ summary: Record<string, boolean | number | string | null>;
306
+ };
307
+ upcoming_this_week: {
308
+ days: {
309
+ date: string;
310
+ label: string;
311
+ weekday: string;
312
+ is_today: boolean;
313
+ tasks: {
314
+ id: string;
315
+ display_number_formatted: string;
316
+ title: string;
317
+ description: string | null;
318
+ status: import("@/types").TaskStatus;
319
+ priority: import("@/types").TaskPriority;
320
+ due_at: string | null;
321
+ is_overdue: boolean;
322
+ primary_assignee: {
323
+ id: string | number;
324
+ name: string;
325
+ avatar_url?: string;
326
+ } | null;
327
+ created_by: {
328
+ id: string | number;
329
+ name: string;
330
+ avatar_url?: string;
331
+ } | null;
332
+ completed_by: {
333
+ id: string | number;
334
+ name: string;
335
+ avatar_url?: string;
336
+ } | null;
337
+ current_escalation_tier: import("@/types").EscalationTier | null;
338
+ current_escalation_label: string | null;
339
+ comment_count: number;
340
+ checklist_total: number;
341
+ checklist_completed: number;
342
+ subtask_count: number;
343
+ progress_percentage: number;
344
+ created_at: string | null;
345
+ updated_at: string | null;
346
+ }[];
347
+ }[];
348
+ summary: Record<string, boolean | number | string | null>;
349
+ };
350
+ overdue: {
351
+ items: {
352
+ id: string;
353
+ display_number_formatted: string;
354
+ title: string;
355
+ description: string | null;
356
+ status: import("@/types").TaskStatus;
357
+ priority: import("@/types").TaskPriority;
358
+ due_at: string | null;
359
+ is_overdue: boolean;
360
+ primary_assignee: {
361
+ id: string | number;
362
+ name: string;
363
+ avatar_url?: string;
364
+ } | null;
365
+ created_by: {
366
+ id: string | number;
367
+ name: string;
368
+ avatar_url?: string;
369
+ } | null;
370
+ completed_by: {
371
+ id: string | number;
372
+ name: string;
373
+ avatar_url?: string;
374
+ } | null;
375
+ current_escalation_tier: import("@/types").EscalationTier | null;
376
+ current_escalation_label: string | null;
377
+ comment_count: number;
378
+ checklist_total: number;
379
+ checklist_completed: number;
380
+ subtask_count: number;
381
+ progress_percentage: number;
382
+ created_at: string | null;
383
+ updated_at: string | null;
384
+ }[];
385
+ summary: Record<string, boolean | number | string | null>;
386
+ };
387
+ activity: {
388
+ items: {
389
+ id: string;
390
+ action: string;
391
+ description: string | null;
392
+ changes: Record<string, unknown> | null;
393
+ metadata: Record<string, unknown> | null;
394
+ created_at: string | null;
395
+ user: {
396
+ id: string | number;
397
+ name: string;
398
+ avatar_url?: string;
399
+ } | null;
400
+ task: {
401
+ id: string;
402
+ display_number_formatted: string;
403
+ title: string;
404
+ status: import("@/types").TaskStatus;
405
+ priority: import("@/types").TaskPriority;
406
+ } | null;
407
+ }[];
408
+ summary: Record<string, boolean | number | string | null>;
409
+ };
410
+ my_stats: {
411
+ period: TaskDashboardStatsPeriod;
412
+ current: {
413
+ tasks_completed: number;
414
+ tasks_created: number;
415
+ on_time_percentage: number;
416
+ avg_cycle_hours: number;
417
+ streak_days?: number;
418
+ };
419
+ previous: {
420
+ tasks_completed: number;
421
+ tasks_created: number;
422
+ on_time_percentage: number;
423
+ avg_cycle_hours: number;
424
+ streak_days?: number;
425
+ };
426
+ trends: {
427
+ tasks_completed: "up" | "down" | "flat";
428
+ tasks_created: "up" | "down" | "flat";
429
+ on_time_percentage: "up" | "down" | "flat";
430
+ avg_cycle_hours: "up" | "down" | "flat";
431
+ };
432
+ };
433
+ health_alerts: {
434
+ items: {
435
+ task: {
436
+ id: string;
437
+ display_number_formatted: string;
438
+ title: string;
439
+ description: string | null;
440
+ status: import("@/types").TaskStatus;
441
+ priority: import("@/types").TaskPriority;
442
+ due_at: string | null;
443
+ is_overdue: boolean;
444
+ primary_assignee: {
445
+ id: string | number;
446
+ name: string;
447
+ avatar_url?: string;
448
+ } | null;
449
+ created_by: {
450
+ id: string | number;
451
+ name: string;
452
+ avatar_url?: string;
453
+ } | null;
454
+ completed_by: {
455
+ id: string | number;
456
+ name: string;
457
+ avatar_url?: string;
458
+ } | null;
459
+ current_escalation_tier: import("@/types").EscalationTier | null;
460
+ current_escalation_label: string | null;
461
+ comment_count: number;
462
+ checklist_total: number;
463
+ checklist_completed: number;
464
+ subtask_count: number;
465
+ progress_percentage: number;
466
+ created_at: string | null;
467
+ updated_at: string | null;
468
+ };
469
+ health_status: import("@/types").TaskDashboardHealthStatus;
470
+ health_score: number;
471
+ issues: {
472
+ type: "stale" | "unassigned" | "blocked_too_long" | "overdue" | "orphaned_subtask" | "no_due_date";
473
+ label: string;
474
+ message: string;
475
+ suggested_actions: string[];
476
+ }[];
477
+ }[];
478
+ summary: Record<string, boolean | number | string | null>;
479
+ };
480
+ };
481
+ meta: {
482
+ generated_at: string;
483
+ can_view_analytics: boolean;
484
+ };
485
+ } | null>;
486
+ loading: import("vue").ComputedRef<boolean>;
487
+ saving: import("vue").ComputedRef<boolean>;
488
+ error: import("vue").ComputedRef<string | null>;
489
+ widgetLoading: import("vue").ComputedRef<{
490
+ "my-tasks-today"?: boolean;
491
+ "upcoming-this-week"?: boolean;
492
+ "overdue-tracker"?: boolean;
493
+ "team-activity-feed"?: boolean;
494
+ "my-stats"?: boolean;
495
+ "task-health-alerts"?: boolean;
496
+ }>;
497
+ statsPeriod: import("vue").ComputedRef<TaskDashboardStatsPeriod>;
498
+ loadDashboard: (period?: TaskDashboardStatsPeriod) => Promise<TaskDashboardData | null>;
499
+ loadWidget: (widgetId: TaskDashboardWidgetId) => Promise<DashboardWidgetPayload | null>;
500
+ saveLayout: (layout: TaskDashboardLayout, preferences?: Record<string, unknown>) => Promise<TaskDashboardConfig>;
501
+ updateLayoutWidgets: (widgets: TaskDashboardLayout["widgets"]) => void;
502
+ setStatsPeriod: (period: TaskDashboardStatsPeriod) => Promise<void>;
503
+ };
504
+ export {};