@acorex/modules 19.4.3 → 19.4.5
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/conversation/README.md +113 -2
- package/conversation/index.d.ts +2 -14
- package/conversation/lib/const.d.ts +25 -6
- package/conversation/lib/conversation.module.d.ts +32 -3
- package/conversation/lib/entities/index.d.ts +2 -0
- package/conversation/lib/entities/message/index.d.ts +3 -0
- package/conversation/lib/entities/message/message.entity.d.ts +3 -0
- package/conversation/lib/entities/message/message.service.d.ts +10 -0
- package/conversation/lib/entities/message/message.types.d.ts +20 -0
- package/conversation/lib/entities/room/index.d.ts +3 -0
- package/conversation/lib/entities/room/room.entity.d.ts +3 -0
- package/conversation/lib/entities/room/room.service.d.ts +10 -0
- package/conversation/lib/entities/room/room.types.d.ts +8 -0
- package/conversation/lib/entity.provider.d.ts +12 -0
- package/conversation/lib/features/chat/chat-preview.helper.d.ts +68 -0
- package/conversation/lib/features/chat/chat.component.d.ts +42 -0
- package/conversation/lib/features/chat/chat.service.d.ts +101 -0
- package/conversation/lib/features/chat/chat.type.d.ts +38 -0
- package/conversation/lib/{entities → features}/chat/components/chat-item/chat-item.component.d.ts +6 -1
- package/conversation/lib/{entities → features}/chat/components/chat-preview/chat-preview.component.d.ts +3 -0
- package/conversation/lib/features/chat/index.d.ts +5 -0
- package/conversation/lib/{entities/comments/pages → features/comment}/comment-list-view.component.d.ts +12 -12
- package/conversation/lib/features/comment/comment.service.d.ts +66 -0
- package/conversation/lib/features/comment/comment.type.d.ts +45 -0
- package/conversation/lib/features/comment/index.d.ts +4 -0
- package/conversation/lib/features/index.d.ts +2 -0
- package/document-management/lib/entities/folder/folder.types.d.ts +3 -2
- package/document-management/lib/features/document-explorer/components/create-folder-dialog/create-folder-dialog.component.d.ts +5 -2
- package/document-management/lib/features/document-explorer/document-explorer.component.d.ts +22 -20
- package/document-management/lib/features/document-explorer/document-explorer.viewmodel.d.ts +22 -2
- package/document-management/lib/features/document-explorer/views/attachement-widget/attachment-widget.component.d.ts +52 -33
- package/document-management/lib/features/document-explorer/views/detail-panel/detail-panel.component.d.ts +52 -33
- package/document-management/lib/features/document-explorer/views/details/details-view.component.d.ts +52 -33
- package/document-management/lib/features/document-explorer/views/large-icons/large-icons-view.component.d.ts +52 -33
- package/document-management/lib/features/document-explorer/views/large-tiles/large-tiles-view.component.d.ts +52 -33
- package/document-management/lib/features/document-explorer/views/list/list-view.component.d.ts +52 -33
- package/document-management/lib/features/document-explorer/views/small-icons/small-icons-view.component.d.ts +52 -33
- package/document-management/lib/features/document-explorer/views/small-tiles/small-tiles-view.component.d.ts +52 -33
- package/document-management/lib/features/drive/drive.component.d.ts +52 -31
- package/document-management/lib/features/drive-choose/drive-choose.component.d.ts +49 -28
- package/document-management/lib/features/shared/components/document-type-choose-file/document-type-choose-file.component.d.ts +6 -6
- package/document-management/lib/features/shared/components/folder-path-breadcrumbs/folder-path-breadcrumbs.component.d.ts +21 -2
- package/document-management/lib/features/shared/document-manager.service.d.ts +177 -45
- package/document-management/lib/features/shared/document-manager.types.d.ts +2 -1
- package/document-management/lib/features/shared/index.d.ts +1 -0
- package/fesm2022/acorex-modules-application-management-module-designer.component-BJp8imYd.mjs +315 -0
- package/fesm2022/acorex-modules-application-management-module-designer.component-BJp8imYd.mjs.map +1 -0
- package/fesm2022/acorex-modules-application-management.mjs +1 -1
- package/fesm2022/acorex-modules-common.mjs +7 -0
- package/fesm2022/acorex-modules-common.mjs.map +1 -1
- package/fesm2022/acorex-modules-conversation.mjs +2382 -820
- package/fesm2022/acorex-modules-conversation.mjs.map +1 -1
- package/fesm2022/{acorex-modules-document-management-acorex-modules-document-management-BpmG6Dyx.mjs → acorex-modules-document-management-acorex-modules-document-management-BATdoqJi.mjs} +1679 -2019
- package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-BATdoqJi.mjs.map +1 -0
- package/fesm2022/{acorex-modules-document-management-attachment-widget.component-DIF_t4fE.mjs → acorex-modules-document-management-attachment-widget.component-C1-gQepw.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-attachment-widget.component-DIF_t4fE.mjs.map → acorex-modules-document-management-attachment-widget.component-C1-gQepw.mjs.map} +1 -1
- package/fesm2022/acorex-modules-document-management-create-folder-dialog.component-ZMvsadWt.mjs +144 -0
- package/fesm2022/acorex-modules-document-management-create-folder-dialog.component-ZMvsadWt.mjs.map +1 -0
- package/fesm2022/{acorex-modules-document-management-details-view.component-D0RIYrHB.mjs → acorex-modules-document-management-details-view.component-CvHIETNf.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-details-view.component-D0RIYrHB.mjs.map → acorex-modules-document-management-details-view.component-CvHIETNf.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-drive-choose.component-DMAQr0nK.mjs → acorex-modules-document-management-drive-choose.component-UTy9OISj.mjs} +29 -9
- package/fesm2022/acorex-modules-document-management-drive-choose.component-UTy9OISj.mjs.map +1 -0
- package/fesm2022/acorex-modules-document-management-drive.component-Crh10Z5J.mjs +363 -0
- package/fesm2022/acorex-modules-document-management-drive.component-Crh10Z5J.mjs.map +1 -0
- package/fesm2022/{acorex-modules-document-management-large-icons-view.component-C686Ec7s.mjs → acorex-modules-document-management-large-icons-view.component-BuV7MPG5.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-large-icons-view.component-C686Ec7s.mjs.map → acorex-modules-document-management-large-icons-view.component-BuV7MPG5.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-0GpMVYv5.mjs → acorex-modules-document-management-large-tiles-view.component-CwYwVxoG.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-0GpMVYv5.mjs.map → acorex-modules-document-management-large-tiles-view.component-CwYwVxoG.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-list-view.component-C1inszTC.mjs → acorex-modules-document-management-list-view.component-BHEwRA3m.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-list-view.component-C1inszTC.mjs.map → acorex-modules-document-management-list-view.component-BHEwRA3m.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-permission-definition.provider-B7lgRLHi.mjs → acorex-modules-document-management-permission-definition.provider-B3qaYwRL.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-permission-definition.provider-B7lgRLHi.mjs.map → acorex-modules-document-management-permission-definition.provider-B3qaYwRL.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-rename-node-dialog.component-C9k8WgDG.mjs → acorex-modules-document-management-rename-node-dialog.component-CrcJm9jP.mjs} +5 -5
- package/fesm2022/{acorex-modules-document-management-rename-node-dialog.component-C9k8WgDG.mjs.map → acorex-modules-document-management-rename-node-dialog.component-CrcJm9jP.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-small-icons-view.component-BGcUzNCv.mjs → acorex-modules-document-management-small-icons-view.component-CD5UORaq.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-small-icons-view.component-BGcUzNCv.mjs.map → acorex-modules-document-management-small-icons-view.component-CD5UORaq.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-CumumWvO.mjs → acorex-modules-document-management-small-tiles-view.component-cpc_xfbT.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-CumumWvO.mjs.map → acorex-modules-document-management-small-tiles-view.component-cpc_xfbT.mjs.map} +1 -1
- package/fesm2022/acorex-modules-document-management.mjs +1 -1
- package/fesm2022/{acorex-modules-issue-management-acorex-modules-issue-management-ErtEMU89.mjs → acorex-modules-issue-management-acorex-modules-issue-management-DbVfrgVX.mjs} +5 -5
- package/fesm2022/acorex-modules-issue-management-acorex-modules-issue-management-DbVfrgVX.mjs.map +1 -0
- package/fesm2022/{acorex-modules-issue-management-capture-screen.component-B6k0Zn9C.mjs → acorex-modules-issue-management-capture-screen.component-_9mwJVkz.mjs} +2 -2
- package/fesm2022/{acorex-modules-issue-management-capture-screen.component-B6k0Zn9C.mjs.map → acorex-modules-issue-management-capture-screen.component-_9mwJVkz.mjs.map} +1 -1
- package/fesm2022/acorex-modules-issue-management.mjs +1 -1
- package/fesm2022/acorex-modules-notification-management.mjs +5 -5
- package/fesm2022/acorex-modules-notification-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-organization-management-org-chart.page-CP8zz-Bc.mjs → acorex-modules-organization-management-org-chart.page-CrOUUr4c.mjs} +1 -2
- package/fesm2022/acorex-modules-organization-management-org-chart.page-CrOUUr4c.mjs.map +1 -0
- package/fesm2022/acorex-modules-organization-management.mjs +2 -2
- package/fesm2022/{acorex-modules-platform-management-acorex-modules-platform-management-C9ZApxct.mjs → acorex-modules-platform-management-acorex-modules-platform-management-DtXOjIIK.mjs} +326 -87
- package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-DtXOjIIK.mjs.map +1 -0
- package/fesm2022/{acorex-modules-platform-management-list-version.component-D50Xundj.mjs → acorex-modules-platform-management-list-version.component-DY4yMd8n.mjs} +2 -2
- package/fesm2022/{acorex-modules-platform-management-list-version.component-D50Xundj.mjs.map → acorex-modules-platform-management-list-version.component-DY4yMd8n.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-platform-management-settings.provider-DsHGn3AZ.mjs → acorex-modules-platform-management-settings.provider-BO-1dmVc.mjs} +2 -2
- package/fesm2022/{acorex-modules-platform-management-settings.provider-DsHGn3AZ.mjs.map → acorex-modules-platform-management-settings.provider-BO-1dmVc.mjs.map} +1 -1
- package/fesm2022/acorex-modules-platform-management.mjs +1 -1
- package/fesm2022/acorex-modules-project-management.mjs +108 -0
- package/fesm2022/acorex-modules-project-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-settings-management.mjs +20 -21
- package/fesm2022/acorex-modules-settings-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-training-management.mjs +1 -1
- package/fesm2022/acorex-modules-training-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-workflow-management-task-board.page-3_Tn2GeA.mjs +305 -0
- package/fesm2022/acorex-modules-workflow-management-task-board.page-3_Tn2GeA.mjs.map +1 -0
- package/fesm2022/acorex-modules-workflow-management.mjs +123 -0
- package/fesm2022/acorex-modules-workflow-management.mjs.map +1 -0
- package/package.json +20 -16
- package/platform-management/lib/task-board.provider.d.ts +14 -0
- package/project-management/lib/task-board.provider.d.ts +14 -0
- package/settings-management/lib/settings-management.module.d.ts +1 -1
- package/workflow-management/README.md +3 -0
- package/workflow-management/index.d.ts +2 -0
- package/workflow-management/lib/const.d.ts +11 -0
- package/workflow-management/lib/features/task-board/index.d.ts +2 -0
- package/workflow-management/lib/features/task-board/settings.keys.d.ts +5 -0
- package/workflow-management/lib/features/task-board/task-board.module.d.ts +6 -0
- package/workflow-management/lib/features/task-board/task-board.page.d.ts +76 -0
- package/workflow-management/lib/features/task-board/task-board.service.d.ts +13 -0
- package/workflow-management/lib/features/task-board/task-board.viewmodel.d.ts +20 -0
- package/workflow-management/lib/features/task-board/views/task-board-calendar-view/task-board-calendar-view.page.d.ts +25 -0
- package/workflow-management/lib/workflow-management.module.d.ts +8 -0
- package/conversation/lib/entities/chat/chat.module.d.ts +0 -28
- package/conversation/lib/entities/chat/chat.service.d.ts +0 -14
- package/conversation/lib/entities/chat/chat.type.d.ts +0 -22
- package/conversation/lib/entities/chat/components/chat-item-footer/chat-item-footer.component.d.ts +0 -5
- package/conversation/lib/entities/chat/components/chat-item-header/chat-item-header.component.d.ts +0 -12
- package/conversation/lib/entities/chat/components/chat-preview-header/chat-preview-header.component.d.ts +0 -7
- package/conversation/lib/entities/chat/pages/chat/chat.component.d.ts +0 -23
- package/conversation/lib/entities/comments/comment.module.d.ts +0 -26
- package/conversation/lib/entities/comments/comments.service.d.ts +0 -13
- package/conversation/lib/entities/comments/comments.type.d.ts +0 -74
- package/document-management/lib/features/widgets/document-attachment/document-attachment-widget-column.component.d.ts +0 -6
- package/document-management/lib/features/widgets/document-attachment/document-attachment-widget-edit.component.d.ts +0 -212
- package/document-management/lib/features/widgets/document-attachment/document-attachment-widget-print.component.d.ts +0 -6
- package/document-management/lib/features/widgets/document-attachment/document-attachment-widget-view.component.d.ts +0 -6
- package/document-management/lib/features/widgets/document-attachment/document-attachment-widget.config.d.ts +0 -7
- package/document-management/lib/features/widgets/document-attachment/index.d.ts +0 -5
- package/document-management/lib/features/widgets/index.d.ts +0 -1
- package/fesm2022/acorex-modules-application-management-module-designer.component-BRh6mzWA.mjs +0 -315
- package/fesm2022/acorex-modules-application-management-module-designer.component-BRh6mzWA.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-BpmG6Dyx.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-create-folder-dialog.component-CCvKUDsw.mjs +0 -141
- package/fesm2022/acorex-modules-document-management-create-folder-dialog.component-CCvKUDsw.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-drive-choose.component-DMAQr0nK.mjs.map +0 -1
- package/fesm2022/acorex-modules-issue-management-acorex-modules-issue-management-ErtEMU89.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-org-chart.page-CP8zz-Bc.mjs.map +0 -1
- package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-C9ZApxct.mjs.map +0 -1
- /package/conversation/lib/{entities/comments/pages → features/comment}/comment-lookup-popup.component.d.ts +0 -0
@@ -0,0 +1,305 @@
|
|
1
|
+
import { AXBadgeModule } from '@acorex/components/badge';
|
2
|
+
import { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';
|
3
|
+
import * as i4 from '@acorex/components/button';
|
4
|
+
import { AXButtonModule } from '@acorex/components/button';
|
5
|
+
import { AXCalendarComponent } from '@acorex/components/calendar';
|
6
|
+
import * as i6 from '@acorex/components/decorators';
|
7
|
+
import { AXDecoratorModule } from '@acorex/components/decorators';
|
8
|
+
import { AXDropdownPanelComponent } from '@acorex/components/dropdown';
|
9
|
+
import { AXDropdownButtonModule } from '@acorex/components/dropdown-button';
|
10
|
+
import { AXLoadingModule } from '@acorex/components/loading';
|
11
|
+
import * as i3 from '@acorex/components/menu';
|
12
|
+
import { AXMenuModule } from '@acorex/components/menu';
|
13
|
+
import * as i7 from '@acorex/components/popover';
|
14
|
+
import { AXPopoverModule } from '@acorex/components/popover';
|
15
|
+
import { AXLocaleService } from '@acorex/core/locale';
|
16
|
+
import * as i5 from '@acorex/core/translation';
|
17
|
+
import { AXTranslationModule } from '@acorex/core/translation';
|
18
|
+
import { AXPThemeLayoutBlockComponent } from '@acorex/platform/layout/components';
|
19
|
+
import { AXPPageLayoutBaseComponent, AXPPageLayoutComponent, AXPPageLayoutBase } from '@acorex/platform/layout/views';
|
20
|
+
import * as i2 from '@angular/common';
|
21
|
+
import { CommonModule } from '@angular/common';
|
22
|
+
import * as i0 from '@angular/core';
|
23
|
+
import { computed, inject, viewChild, input, model, output, ViewEncapsulation, ChangeDetectionStrategy, Component, signal } from '@angular/core';
|
24
|
+
import * as i1 from '@angular/forms';
|
25
|
+
import { FormsModule } from '@angular/forms';
|
26
|
+
import { RouterModule } from '@angular/router';
|
27
|
+
import { AXPTaskBoardService } from './acorex-modules-workflow-management.mjs';
|
28
|
+
import { AXPSettingService } from '@acorex/platform/common';
|
29
|
+
import { AXPPlatformScope } from '@acorex/platform/core';
|
30
|
+
import { signalStore, withState, withComputed, withMethods, patchState } from '@ngrx/signals';
|
31
|
+
import { AXSchedulerComponent } from '@acorex/components/scheduler';
|
32
|
+
|
33
|
+
const config = {
|
34
|
+
i18n: 'workflow-management',
|
35
|
+
};
|
36
|
+
const RootConfig = {
|
37
|
+
config,
|
38
|
+
module: {
|
39
|
+
module: 'WorkflowManagement',
|
40
|
+
name: 'WorkflowManagement',
|
41
|
+
title: `t('module-name', {scope:"${config.i18n}"})`,
|
42
|
+
icon: 'fa-light fa-clipboard-list-check',
|
43
|
+
},
|
44
|
+
};
|
45
|
+
|
46
|
+
var AXMTaskBoardSettings;
|
47
|
+
(function (AXMTaskBoardSettings) {
|
48
|
+
AXMTaskBoardSettings["CalendarViewMode"] = "taskboard.calendar.viewMode";
|
49
|
+
AXMTaskBoardSettings["CurrentDate"] = "taskboard.calendar.currentDate";
|
50
|
+
AXMTaskBoardSettings["SelectedTaskTypeFilter"] = "taskboard.filter.selectedTaskType";
|
51
|
+
})(AXMTaskBoardSettings || (AXMTaskBoardSettings = {}));
|
52
|
+
|
53
|
+
const AXMTaskBoardViewModel = signalStore({ providedIn: 'root' }, withState(() => ({
|
54
|
+
isLoading: true, // Start with loading true until initialized
|
55
|
+
calendarViewMode: 'month', // Default value
|
56
|
+
currentDate: new Date(), // Default to today
|
57
|
+
selectedTaskTypeName: null, // Store the name/ID of the task type for persistence
|
58
|
+
taskTypes: [],
|
59
|
+
})), withComputed((store) => ({
|
60
|
+
// Computed property to get the actual AXPWorkflowTaskProvider object
|
61
|
+
selectedTaskType: computed(() => {
|
62
|
+
const name = store.selectedTaskTypeName();
|
63
|
+
if (!name) {
|
64
|
+
return null;
|
65
|
+
}
|
66
|
+
return store.taskTypes().find((tt) => tt.name === name) || null;
|
67
|
+
}),
|
68
|
+
// Example computed (you can add more as needed):
|
69
|
+
// isMonthView: computed(() => store.calendarViewMode() === 'month'),
|
70
|
+
})), withMethods((store, settingService = inject(AXPSettingService), // Inject the main service
|
71
|
+
taskBoardService = inject(AXPTaskBoardService)) => ({
|
72
|
+
async initialize() {
|
73
|
+
patchState(store, { isLoading: true });
|
74
|
+
const userScopedSettings = settingService.scope(AXPPlatformScope.User); // Get user scope once
|
75
|
+
try {
|
76
|
+
// 1. Load Task Types first
|
77
|
+
const taskTypes = await taskBoardService.getTaskTypes();
|
78
|
+
patchState(store, { taskTypes });
|
79
|
+
// 2. Load Persisted Settings individually
|
80
|
+
const [savedViewMode, savedDateString, savedTaskTypeName] = await Promise.all([
|
81
|
+
userScopedSettings.get(AXMTaskBoardSettings.CalendarViewMode),
|
82
|
+
userScopedSettings.get(AXMTaskBoardSettings.CurrentDate),
|
83
|
+
userScopedSettings.get(AXMTaskBoardSettings.SelectedTaskTypeFilter),
|
84
|
+
]);
|
85
|
+
patchState(store, {
|
86
|
+
calendarViewMode: savedViewMode || 'month', // Fallback to default
|
87
|
+
currentDate: savedDateString ? new Date(savedDateString) : new Date(), // Parse stored date string
|
88
|
+
selectedTaskTypeName: savedTaskTypeName || null, // Load persisted task type name
|
89
|
+
isLoading: false,
|
90
|
+
});
|
91
|
+
}
|
92
|
+
catch (error) {
|
93
|
+
console.error('Error initializing TaskBoard ViewModel:', error);
|
94
|
+
// Fallback to defaults on error to ensure the app is usable
|
95
|
+
patchState(store, {
|
96
|
+
calendarViewMode: 'month',
|
97
|
+
currentDate: new Date(),
|
98
|
+
selectedTaskTypeName: null,
|
99
|
+
taskTypes: store.taskTypes(), // Retain loaded task types if any, or empty if error was before taskTypes load
|
100
|
+
isLoading: false,
|
101
|
+
});
|
102
|
+
}
|
103
|
+
},
|
104
|
+
setCalendarViewMode(mode) {
|
105
|
+
patchState(store, { calendarViewMode: mode });
|
106
|
+
settingService
|
107
|
+
.scope(AXPPlatformScope.User)
|
108
|
+
.set(AXMTaskBoardSettings.CalendarViewMode, mode)
|
109
|
+
.catch((error) => console.error('Error saving calendar view mode:', error));
|
110
|
+
},
|
111
|
+
setCurrentDate(date) {
|
112
|
+
patchState(store, { currentDate: new Date(date) }); // Ensure it's a new Date object
|
113
|
+
settingService
|
114
|
+
.scope(AXPPlatformScope.User)
|
115
|
+
.set(AXMTaskBoardSettings.CurrentDate, date.toISOString()) // Store as ISO string
|
116
|
+
.catch((error) => console.error('Error saving current date:', error));
|
117
|
+
},
|
118
|
+
setSelectedTaskTypeProvider(taskType) {
|
119
|
+
const taskTypeName = taskType ? taskType.name : null;
|
120
|
+
patchState(store, { selectedTaskTypeName: taskTypeName });
|
121
|
+
settingService
|
122
|
+
.scope(AXPPlatformScope.User)
|
123
|
+
.set(AXMTaskBoardSettings.SelectedTaskTypeFilter, taskTypeName)
|
124
|
+
.catch((error) => console.error('Error saving selected task type filter:', error));
|
125
|
+
},
|
126
|
+
})));
|
127
|
+
|
128
|
+
/**
|
129
|
+
* Component for displaying and interacting with an organizational chart.
|
130
|
+
*/
|
131
|
+
class AXMTaskBoardCalendarViewComponent {
|
132
|
+
constructor() {
|
133
|
+
this.taskBoardService = inject(AXPTaskBoardService);
|
134
|
+
this.schedulerComponent = viewChild(AXSchedulerComponent);
|
135
|
+
this.startingDate = input(new Date());
|
136
|
+
this.selectedView = model('day');
|
137
|
+
this.dataSource = input.required();
|
138
|
+
this.onTaskChanged = output();
|
139
|
+
this.onMonthSlotDblClicked = output();
|
140
|
+
this.component = output();
|
141
|
+
this.onTaskRightClick = output();
|
142
|
+
}
|
143
|
+
ngAfterViewInit() {
|
144
|
+
if (this.schedulerComponent()) {
|
145
|
+
this.component.emit(this.schedulerComponent());
|
146
|
+
}
|
147
|
+
}
|
148
|
+
onTaskDrop(event) {
|
149
|
+
this.taskBoardService
|
150
|
+
.updateTask(event.appointment, {
|
151
|
+
from: event.slot.startDate.date,
|
152
|
+
end: event.slot.endDate.date,
|
153
|
+
})
|
154
|
+
.then((task) => {
|
155
|
+
this.onTaskChanged.emit(task);
|
156
|
+
this.schedulerComponent()?.refresh([task]);
|
157
|
+
});
|
158
|
+
}
|
159
|
+
onTaskRightClickHandler(event) {
|
160
|
+
this.onTaskRightClick.emit(event);
|
161
|
+
}
|
162
|
+
onSlotDblClicked(event) {
|
163
|
+
if (event.sender.selectedView() === 'month') {
|
164
|
+
this.onMonthSlotDblClicked.emit(event.slot.startDate.date);
|
165
|
+
}
|
166
|
+
}
|
167
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXMTaskBoardCalendarViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
168
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.2.10", type: AXMTaskBoardCalendarViewComponent, isStandalone: true, selector: "axm-task-board-calendar-view", inputs: { startingDate: { classPropertyName: "startingDate", publicName: "startingDate", isSignal: true, isRequired: false, transformFunction: null }, selectedView: { classPropertyName: "selectedView", publicName: "selectedView", isSignal: true, isRequired: false, transformFunction: null }, dataSource: { classPropertyName: "dataSource", publicName: "dataSource", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { selectedView: "selectedViewChange", onTaskChanged: "onTaskChanged", onMonthSlotDblClicked: "onMonthSlotDblClicked", component: "component", onTaskRightClick: "onTaskRightClick" }, viewQueries: [{ propertyName: "schedulerComponent", first: true, predicate: AXSchedulerComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<ax-scheduler\n [hasHeader]=\"false\"\n [dataSource]=\"dataSource()\"\n [startingDate]=\"startingDate()\"\n [selectedView]=\"selectedView()\"\n (onAppointmentDrop)=\"onTaskDrop($event)\"\n (onSlotDblClicked)=\"onSlotDblClicked($event)\"\n (onAppointmentRightClick)=\"onTaskRightClickHandler($event)\"\n></ax-scheduler>\n", styles: ["ax-scheduler{line-height:1.5;background-color:rgba(var(--ax-sys-color-lightest-surface))!important}\n"], dependencies: [{ kind: "component", type: AXSchedulerComponent, selector: "ax-scheduler", inputs: ["calendar", "startingDate", "endDayHour", "startDayHour", "hasHeader", "readonly", "draggable", "allowFullScreen", "multiDayViewDaysCount", "dataSource", "firstDayOfWeek", "views", "selectedView"], outputs: ["selectedViewChange", "onDataLoaded", "onRangeChanged", "onSlotClicked", "onSlotDblClicked", "onSlotRightClick", "onAppointmentDrop", "onAppointmentClicked", "onAppointmentDblClicked", "onAppointmentRightClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
169
|
+
}
|
170
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXMTaskBoardCalendarViewComponent, decorators: [{
|
171
|
+
type: Component,
|
172
|
+
args: [{ selector: 'axm-task-board-calendar-view', imports: [AXSchedulerComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ax-scheduler\n [hasHeader]=\"false\"\n [dataSource]=\"dataSource()\"\n [startingDate]=\"startingDate()\"\n [selectedView]=\"selectedView()\"\n (onAppointmentDrop)=\"onTaskDrop($event)\"\n (onSlotDblClicked)=\"onSlotDblClicked($event)\"\n (onAppointmentRightClick)=\"onTaskRightClickHandler($event)\"\n></ax-scheduler>\n", styles: ["ax-scheduler{line-height:1.5;background-color:rgba(var(--ax-sys-color-lightest-surface))!important}\n"] }]
|
173
|
+
}] });
|
174
|
+
|
175
|
+
/**
|
176
|
+
* Component for displaying and interacting with an organizational chart.
|
177
|
+
*/
|
178
|
+
class AXMTaskBoardPage extends AXPPageLayoutBaseComponent {
|
179
|
+
constructor() {
|
180
|
+
super(...arguments);
|
181
|
+
this.rootConfig = RootConfig;
|
182
|
+
this.localeService = inject(AXLocaleService);
|
183
|
+
this.taskBoardService = inject(AXPTaskBoardService);
|
184
|
+
this.vm = inject(AXMTaskBoardViewModel);
|
185
|
+
this.currentTask = signal(null);
|
186
|
+
this.schedulerComponent = signal(null);
|
187
|
+
this.viewsItems = signal([
|
188
|
+
{ key: 'day', text: 'daily', icon: 'fa-light fa-calendar-day' },
|
189
|
+
{ key: 'week', text: 'weekly', icon: 'fa-light fa-calendar-week' },
|
190
|
+
{ key: 'month', text: 'monthly', icon: 'fa-light fa-calendar-alt' },
|
191
|
+
{ key: 'agenda', text: 'agenda', icon: 'fa-light fa-calendar-range' },
|
192
|
+
]);
|
193
|
+
this.calendarType = computed(() => this.localeService.activeProfile().calendar.system);
|
194
|
+
this.contextMenu = viewChild('rootContextMenu');
|
195
|
+
this.selectedViewMode = computed(() => this.viewsItems().find((item) => item.key === this.vm.calendarViewMode()) || this.viewsItems()[0]);
|
196
|
+
this.dataSource = (filter) => {
|
197
|
+
const taskTypeProvider = this.vm.selectedTaskType();
|
198
|
+
const types = taskTypeProvider ? [taskTypeProvider.name] : undefined;
|
199
|
+
return this.taskBoardService.getTasks({ ...filter, types });
|
200
|
+
};
|
201
|
+
}
|
202
|
+
async ngOnInit() {
|
203
|
+
await super.ngOnInit();
|
204
|
+
await this.vm.initialize();
|
205
|
+
}
|
206
|
+
async getPageTitle() {
|
207
|
+
return await this.translateService.translateAsync('task-board.page-title', { scope: this.rootConfig.config.i18n });
|
208
|
+
}
|
209
|
+
async getPageBreadcrumbs() {
|
210
|
+
return [
|
211
|
+
{
|
212
|
+
title: await this.translateService.translateAsync('root-menu', { scope: this.rootConfig.config.i18n }),
|
213
|
+
},
|
214
|
+
];
|
215
|
+
}
|
216
|
+
schedulerComponentChanged(component) {
|
217
|
+
this.schedulerComponent.set(component);
|
218
|
+
}
|
219
|
+
handleContextMenuOnOpening(event) {
|
220
|
+
for (const item of this.currentTask()?.data?.actions || []) {
|
221
|
+
event.items.push({
|
222
|
+
text: item.title,
|
223
|
+
icon: item.icon,
|
224
|
+
data: {
|
225
|
+
command: item.command,
|
226
|
+
},
|
227
|
+
});
|
228
|
+
}
|
229
|
+
}
|
230
|
+
handleTaskRightClick(event) {
|
231
|
+
this.currentTask.set(event.appointment);
|
232
|
+
const x = event.nativeEvent.clientX;
|
233
|
+
const y = event.nativeEvent.clientY;
|
234
|
+
const element = event.sender.nativeElement;
|
235
|
+
this.contextMenu()?.showAt({ x, y }, element);
|
236
|
+
}
|
237
|
+
handleMonthSlotDblClicked(date) {
|
238
|
+
this.vm.setCurrentDate(date);
|
239
|
+
this.vm.setCalendarViewMode('day');
|
240
|
+
}
|
241
|
+
handleCalendarViewChange(view) {
|
242
|
+
this.vm.setCalendarViewMode(view);
|
243
|
+
}
|
244
|
+
handleSelectedTaskTypeChange(taskType) {
|
245
|
+
this.vm.setSelectedTaskTypeProvider(taskType);
|
246
|
+
this.schedulerComponent()?.refresh();
|
247
|
+
}
|
248
|
+
handleSchedulerDateChanged(event) {
|
249
|
+
if (this.vm.isLoading()) {
|
250
|
+
return;
|
251
|
+
}
|
252
|
+
const newDate = event.value;
|
253
|
+
const currentDateInVm = this.vm.currentDate();
|
254
|
+
const dateToSet = newDate || new Date();
|
255
|
+
if (!currentDateInVm || currentDateInVm.getTime() !== dateToSet.getTime()) {
|
256
|
+
this.vm.setCurrentDate(dateToSet);
|
257
|
+
}
|
258
|
+
}
|
259
|
+
handleContextMenuItemClick(event) {
|
260
|
+
this.taskBoardService.executeCommand(event.item.data?.command, this.currentTask()?.data?.provider);
|
261
|
+
}
|
262
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXMTaskBoardPage, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
263
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.10", type: AXMTaskBoardPage, isStandalone: true, selector: "ng-component", providers: [
|
264
|
+
{
|
265
|
+
provide: AXPPageLayoutBase,
|
266
|
+
useExisting: AXMTaskBoardPage,
|
267
|
+
},
|
268
|
+
], viewQueries: [{ propertyName: "contextMenu", first: true, predicate: ["rootContextMenu"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<axp-page-layout *translate=\"let t\">\n <axp-page-toolbar>\n <axp-layout-prefix>\n <ax-button\n [text]=\"t(vm.selectedTaskType()?.title || 'task-board.all', { scope: rootConfig.config.i18n }) | async\"\n >\n <ax-prefix><ax-icon icon=\"fa-light {{vm.selectedTaskType()?.icon || 'fa-tasks'}}\"></ax-icon></ax-prefix>\n <ax-dropdown-panel>\n <ax-button-item-list class=\"ax-p-2\">\n <ax-button-item\n (onClick)=\"handleSelectedTaskTypeChange(null)\"\n [text]=\"(t('task-board.all', { scope: rootConfig.config.i18n }) | async)!\"\n >\n <ax-prefix><ax-icon icon=\"fa-light fa-tasks\"></ax-icon></ax-prefix>\n </ax-button-item>\n @for(item of vm.taskTypes(); track item.name) {\n <ax-button-item\n (onClick)=\"handleSelectedTaskTypeChange(item)\"\n [text]=\"(t(item.title, { scope: rootConfig.config.i18n }) | async)!\"\n >\n <ax-prefix><ax-icon icon=\"fa-light {{ item.icon }}\"></ax-icon></ax-prefix>\n </ax-button-item>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n\n <div class=\"ax-scheduler-header\">\n <ax-button look=\"blank\" (onClick)=\"schedulerComponent()?.prevClick()\">\n <ax-icon class=\"ax-icon ax-text-xl ax-icon-chevron-left arrow-icon\"></ax-icon>\n </ax-button>\n <ax-button look=\"blank\" [text]=\"schedulerComponent()?.currentDateText()\" #date></ax-button>\n <ax-button look=\"blank\" (onClick)=\"schedulerComponent()?.nextClick()\">\n <ax-icon class=\"ax-icon ax-text-xl ax-icon-chevron-right arrow-icon\"></ax-icon>\n </ax-button>\n <ax-popover [target]=\"date\" [placement]=\"'bottom'\">\n <div class=\"ax-overlay-pane\">\n <ax-calendar\n [type]=\"calendarType()\"\n [ngModel]=\"vm.currentDate()\"\n [depth]=\"schedulerComponent()?.calendarDepth()\"\n (onValueChanged)=\"handleSchedulerDateChanged($event)\"\n ></ax-calendar>\n </div>\n </ax-popover>\n </div>\n </axp-layout-prefix>\n <axp-layout-suffix>\n <ax-button>\n <ax-icon icon=\"fa-light {{ selectedViewMode().icon }}\"></ax-icon>\n <ax-dropdown-panel>\n <ax-button-item-list>\n @for(item of viewsItems(); track item.key) {\n <ax-button-item\n [text]=\"(t('dateTime.duration.' + item.text, { scope: 'common' }) | async)!\"\n [selected]=\"vm.calendarViewMode() === item.key\"\n (onClick)=\"handleCalendarViewChange(item.key)\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-light {{ item.icon }}\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n @if(item.break) {\n <ax-divider></ax-divider>\n } }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n </axp-layout-suffix>\n </axp-page-toolbar>\n <axp-page-content class=\"ax-overflow-hidden\">\n <axm-task-board-calendar-view\n class=\"axp-scheduler-container\"\n [dataSource]=\"dataSource\"\n [startingDate]=\"vm.currentDate()\"\n [selectedView]=\"vm.calendarViewMode()\"\n (component)=\"schedulerComponentChanged($event)\"\n (onTaskRightClick)=\"handleTaskRightClick($event)\"\n (onMonthSlotDblClicked)=\"handleMonthSlotDblClicked($event)\"\n ></axm-task-board-calendar-view>\n <ax-context-menu\n #rootContextMenu\n [closeOn]=\"'leave'\"\n [orientation]=\"'vertical'\"\n (onOpening)=\"handleContextMenuOnOpening($event)\"\n (onItemClick)=\"handleContextMenuItemClick($event)\"\n >\n </ax-context-menu>\n </axp-page-content>\n</axp-page-layout>\n", styles: ["axm-task-board-calendar-view{height:100%}html[dir=rtl] axp-page-layout axp-page-toolbar axp-layout-prefix .ax-scheduler-header .arrow-icon:before{-moz-transform:scale(-1,1);-webkit-transform:scale(-1,1);-o-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scaleX(-1)}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type:
|
269
|
+
//
|
270
|
+
AXMenuModule }, { kind: "component", type: i3.AXContextMenuComponent, selector: "ax-context-menu", inputs: ["orientation", "openOn", "closeOn", "items", "target"], outputs: ["onItemClick", "onOpening"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i4.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: i4.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i4.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "directive", type: i5.AXTranslatorDirective, selector: "[translate]" }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i6.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i6.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type:
|
271
|
+
//
|
272
|
+
AXPThemeLayoutBlockComponent, selector: " axp-page-content, axp-page-footer-container, axp-page-footer, axp-page-header, axp-page-header-container, axp-page-toolbar, axp-layout-content, axp-layout-page-content, axp-layout-sections, axp-layout-body, axp-layout-page-body, axp-layout-prefix, axp-layout-suffix, axp-layout-title-bar, axp-layout-title, axp-layout-title-actions, axp-layout-nav-button, axp-layout-description, axp-layout-breadcrumbs, axp-layout-list-action, " }, { kind: "component", type: AXPPageLayoutComponent, selector: "axp-page-layout" }, { kind: "component", type: AXMTaskBoardCalendarViewComponent, selector: "axm-task-board-calendar-view", inputs: ["startingDate", "selectedView", "dataSource"], outputs: ["selectedViewChange", "onTaskChanged", "onMonthSlotDblClicked", "component", "onTaskRightClick"] }, { kind: "component", type: AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "placement", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "component", type: i7.AXPopoverComponent, selector: "ax-popover", inputs: ["offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: AXCalendarComponent, selector: "ax-calendar", inputs: ["rtl", "readonly", "value", "name", "disabled", "depth", "activeView", "minValue", "maxValue", "disabledDates", "holidayDates", "type", "cellTemplate", "cellClass", "showNavigation", "count", "id"], outputs: ["onOptionChanged", "valueChange", "onValueChanged", "minValueChange", "maxValueChange", "onBlur", "onFocus", "depthChange", "typeChange", "activeViewChange", "disabledDatesChange", "holidayDatesChange", "onNavigate", "onSlotClick", "countChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
273
|
+
}
|
274
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXMTaskBoardPage, decorators: [{
|
275
|
+
type: Component,
|
276
|
+
args: [{ imports: [
|
277
|
+
FormsModule,
|
278
|
+
CommonModule,
|
279
|
+
RouterModule,
|
280
|
+
//
|
281
|
+
AXMenuModule,
|
282
|
+
AXButtonModule,
|
283
|
+
AXDropdownButtonModule,
|
284
|
+
AXTranslationModule,
|
285
|
+
AXDecoratorModule,
|
286
|
+
AXLoadingModule,
|
287
|
+
AXBreadcrumbsModule,
|
288
|
+
AXBadgeModule,
|
289
|
+
//
|
290
|
+
AXPThemeLayoutBlockComponent,
|
291
|
+
AXPPageLayoutComponent,
|
292
|
+
AXMTaskBoardCalendarViewComponent,
|
293
|
+
AXDropdownPanelComponent,
|
294
|
+
AXPopoverModule,
|
295
|
+
AXCalendarComponent,
|
296
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
|
297
|
+
{
|
298
|
+
provide: AXPPageLayoutBase,
|
299
|
+
useExisting: AXMTaskBoardPage,
|
300
|
+
},
|
301
|
+
], template: "<axp-page-layout *translate=\"let t\">\n <axp-page-toolbar>\n <axp-layout-prefix>\n <ax-button\n [text]=\"t(vm.selectedTaskType()?.title || 'task-board.all', { scope: rootConfig.config.i18n }) | async\"\n >\n <ax-prefix><ax-icon icon=\"fa-light {{vm.selectedTaskType()?.icon || 'fa-tasks'}}\"></ax-icon></ax-prefix>\n <ax-dropdown-panel>\n <ax-button-item-list class=\"ax-p-2\">\n <ax-button-item\n (onClick)=\"handleSelectedTaskTypeChange(null)\"\n [text]=\"(t('task-board.all', { scope: rootConfig.config.i18n }) | async)!\"\n >\n <ax-prefix><ax-icon icon=\"fa-light fa-tasks\"></ax-icon></ax-prefix>\n </ax-button-item>\n @for(item of vm.taskTypes(); track item.name) {\n <ax-button-item\n (onClick)=\"handleSelectedTaskTypeChange(item)\"\n [text]=\"(t(item.title, { scope: rootConfig.config.i18n }) | async)!\"\n >\n <ax-prefix><ax-icon icon=\"fa-light {{ item.icon }}\"></ax-icon></ax-prefix>\n </ax-button-item>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n\n <div class=\"ax-scheduler-header\">\n <ax-button look=\"blank\" (onClick)=\"schedulerComponent()?.prevClick()\">\n <ax-icon class=\"ax-icon ax-text-xl ax-icon-chevron-left arrow-icon\"></ax-icon>\n </ax-button>\n <ax-button look=\"blank\" [text]=\"schedulerComponent()?.currentDateText()\" #date></ax-button>\n <ax-button look=\"blank\" (onClick)=\"schedulerComponent()?.nextClick()\">\n <ax-icon class=\"ax-icon ax-text-xl ax-icon-chevron-right arrow-icon\"></ax-icon>\n </ax-button>\n <ax-popover [target]=\"date\" [placement]=\"'bottom'\">\n <div class=\"ax-overlay-pane\">\n <ax-calendar\n [type]=\"calendarType()\"\n [ngModel]=\"vm.currentDate()\"\n [depth]=\"schedulerComponent()?.calendarDepth()\"\n (onValueChanged)=\"handleSchedulerDateChanged($event)\"\n ></ax-calendar>\n </div>\n </ax-popover>\n </div>\n </axp-layout-prefix>\n <axp-layout-suffix>\n <ax-button>\n <ax-icon icon=\"fa-light {{ selectedViewMode().icon }}\"></ax-icon>\n <ax-dropdown-panel>\n <ax-button-item-list>\n @for(item of viewsItems(); track item.key) {\n <ax-button-item\n [text]=\"(t('dateTime.duration.' + item.text, { scope: 'common' }) | async)!\"\n [selected]=\"vm.calendarViewMode() === item.key\"\n (onClick)=\"handleCalendarViewChange(item.key)\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-light {{ item.icon }}\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n @if(item.break) {\n <ax-divider></ax-divider>\n } }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n </axp-layout-suffix>\n </axp-page-toolbar>\n <axp-page-content class=\"ax-overflow-hidden\">\n <axm-task-board-calendar-view\n class=\"axp-scheduler-container\"\n [dataSource]=\"dataSource\"\n [startingDate]=\"vm.currentDate()\"\n [selectedView]=\"vm.calendarViewMode()\"\n (component)=\"schedulerComponentChanged($event)\"\n (onTaskRightClick)=\"handleTaskRightClick($event)\"\n (onMonthSlotDblClicked)=\"handleMonthSlotDblClicked($event)\"\n ></axm-task-board-calendar-view>\n <ax-context-menu\n #rootContextMenu\n [closeOn]=\"'leave'\"\n [orientation]=\"'vertical'\"\n (onOpening)=\"handleContextMenuOnOpening($event)\"\n (onItemClick)=\"handleContextMenuItemClick($event)\"\n >\n </ax-context-menu>\n </axp-page-content>\n</axp-page-layout>\n", styles: ["axm-task-board-calendar-view{height:100%}html[dir=rtl] axp-page-layout axp-page-toolbar axp-layout-prefix .ax-scheduler-header .arrow-icon:before{-moz-transform:scale(-1,1);-webkit-transform:scale(-1,1);-o-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scaleX(-1)}\n"] }]
|
302
|
+
}] });
|
303
|
+
|
304
|
+
export { AXMTaskBoardPage };
|
305
|
+
//# sourceMappingURL=acorex-modules-workflow-management-task-board.page-3_Tn2GeA.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"acorex-modules-workflow-management-task-board.page-3_Tn2GeA.mjs","sources":["../../../../libs/modules/workflow-management/src/lib/const.ts","../../../../libs/modules/workflow-management/src/lib/features/task-board/settings.keys.ts","../../../../libs/modules/workflow-management/src/lib/features/task-board/task-board.viewmodel.ts","../../../../libs/modules/workflow-management/src/lib/features/task-board/views/task-board-calendar-view/task-board-calendar-view.page.ts","../../../../libs/modules/workflow-management/src/lib/features/task-board/views/task-board-calendar-view/task-board-calendar-view.page.html","../../../../libs/modules/workflow-management/src/lib/features/task-board/task-board.page.ts","../../../../libs/modules/workflow-management/src/lib/features/task-board/task-board.page.html"],"sourcesContent":["const config = {\n i18n: 'workflow-management',\n};\nexport const RootConfig = {\n config,\n module: {\n module: 'WorkflowManagement',\n name: 'WorkflowManagement',\n title: `t('module-name', {scope:\"${config.i18n}\"})`,\n icon: 'fa-light fa-clipboard-list-check',\n },\n};\n","export enum AXMTaskBoardSettings {\n CalendarViewMode = 'taskboard.calendar.viewMode',\n CurrentDate = 'taskboard.calendar.currentDate',\n SelectedTaskTypeFilter = 'taskboard.filter.selectedTaskType',\n}\n","import { AXSchedulerView } from '@acorex/components/scheduler';\nimport { AXPSettingService } from '@acorex/platform/common';\nimport { AXPPlatformScope } from '@acorex/platform/core';\nimport { AXPWorkflowTaskProvider } from '@acorex/platform/workflow';\nimport { computed, inject } from '@angular/core';\nimport { patchState, signalStore, withComputed, withMethods, withState } from '@ngrx/signals';\nimport { AXMTaskBoardSettings } from './settings.keys';\nimport { AXPTaskBoardService } from './task-board.service';\n\nexport const AXMTaskBoardViewModel = signalStore(\n { providedIn: 'root' },\n withState(() => ({\n isLoading: true, // Start with loading true until initialized\n calendarViewMode: 'month' as AXSchedulerView, // Default value\n currentDate: new Date(), // Default to today\n selectedTaskTypeName: null as string | null, // Store the name/ID of the task type for persistence\n taskTypes: [] as AXPWorkflowTaskProvider[],\n })),\n\n withComputed((store) => ({\n // Computed property to get the actual AXPWorkflowTaskProvider object\n selectedTaskType: computed(() => {\n const name = store.selectedTaskTypeName();\n if (!name) {\n return null;\n }\n return store.taskTypes().find((tt) => tt.name === name) || null;\n }),\n // Example computed (you can add more as needed):\n // isMonthView: computed(() => store.calendarViewMode() === 'month'),\n })),\n\n withMethods(\n (\n store,\n settingService = inject(AXPSettingService), // Inject the main service\n taskBoardService = inject(AXPTaskBoardService),\n ) => ({\n async initialize() {\n patchState(store, { isLoading: true });\n const userScopedSettings = settingService.scope(AXPPlatformScope.User); // Get user scope once\n\n try {\n // 1. Load Task Types first\n const taskTypes = await taskBoardService.getTaskTypes();\n patchState(store, { taskTypes });\n\n // 2. Load Persisted Settings individually\n const [savedViewMode, savedDateString, savedTaskTypeName] = await Promise.all([\n userScopedSettings.get<AXSchedulerView | undefined>(AXMTaskBoardSettings.CalendarViewMode),\n userScopedSettings.get<string | undefined>(AXMTaskBoardSettings.CurrentDate),\n userScopedSettings.get<string | null | undefined>(AXMTaskBoardSettings.SelectedTaskTypeFilter),\n ]);\n\n patchState(store, {\n calendarViewMode: savedViewMode || 'month', // Fallback to default\n currentDate: savedDateString ? new Date(savedDateString) : new Date(), // Parse stored date string\n selectedTaskTypeName: savedTaskTypeName || null, // Load persisted task type name\n isLoading: false,\n });\n } catch (error) {\n console.error('Error initializing TaskBoard ViewModel:', error);\n // Fallback to defaults on error to ensure the app is usable\n patchState(store, {\n calendarViewMode: 'month',\n currentDate: new Date(),\n selectedTaskTypeName: null,\n taskTypes: store.taskTypes(), // Retain loaded task types if any, or empty if error was before taskTypes load\n isLoading: false,\n });\n }\n },\n\n setCalendarViewMode(mode: AXSchedulerView) {\n patchState(store, { calendarViewMode: mode });\n settingService\n .scope(AXPPlatformScope.User)\n .set(AXMTaskBoardSettings.CalendarViewMode, mode)\n .catch((error) => console.error('Error saving calendar view mode:', error));\n },\n\n setCurrentDate(date: Date) {\n patchState(store, { currentDate: new Date(date) }); // Ensure it's a new Date object\n settingService\n .scope(AXPPlatformScope.User)\n .set(AXMTaskBoardSettings.CurrentDate, date.toISOString()) // Store as ISO string\n .catch((error) => console.error('Error saving current date:', error));\n },\n\n setSelectedTaskTypeProvider(taskType: AXPWorkflowTaskProvider | null) {\n const taskTypeName = taskType ? taskType.name : null;\n patchState(store, { selectedTaskTypeName: taskTypeName });\n settingService\n .scope(AXPPlatformScope.User)\n .set(AXMTaskBoardSettings.SelectedTaskTypeFilter, taskTypeName)\n .catch((error) => console.error('Error saving selected task type filter:', error));\n },\n }),\n ),\n);\n","import {\n AXSchedulerAppointmentDataSource,\n AXSchedulerAppointmentMouseEvent,\n AXSchedulerComponent,\n AXSchedulerSlotDropEvent,\n AXSchedulerSlotMouseEvent,\n AXSchedulerView,\n} from '@acorex/components/scheduler';\nimport { AXPTask } from '@acorex/platform/workflow';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n inject,\n input,\n model,\n output,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXPTaskBoardService } from '../../task-board.service';\n\n/**\n * Component for displaying and interacting with an organizational chart.\n */\n@Component({\n selector: 'axm-task-board-calendar-view',\n templateUrl: './task-board-calendar-view.page.html',\n styleUrls: ['./task-board-calendar-view.page.scss'],\n imports: [AXSchedulerComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXMTaskBoardCalendarViewComponent implements AfterViewInit {\n protected readonly taskBoardService = inject(AXPTaskBoardService);\n\n schedulerComponent = viewChild(AXSchedulerComponent);\n\n startingDate = input<Date>(new Date());\n selectedView = model<AXSchedulerView>('day');\n dataSource = input.required<AXSchedulerAppointmentDataSource>();\n\n onTaskChanged = output<AXPTask>();\n onMonthSlotDblClicked = output<Date>();\n component = output<AXSchedulerComponent>();\n onTaskRightClick = output<AXSchedulerAppointmentMouseEvent>();\n\n ngAfterViewInit(): void {\n if (this.schedulerComponent()) {\n this.component.emit(this.schedulerComponent()!);\n }\n }\n\n onTaskDrop(event: AXSchedulerSlotDropEvent) {\n this.taskBoardService\n .updateTask(event.appointment, {\n from: event.slot.startDate.date,\n end: event.slot.endDate.date,\n })\n .then((task) => {\n this.onTaskChanged.emit(task);\n this.schedulerComponent()?.refresh([task]);\n });\n }\n\n onTaskRightClickHandler(event: AXSchedulerAppointmentMouseEvent) {\n this.onTaskRightClick.emit(event);\n }\n\n onSlotDblClicked(event: AXSchedulerSlotMouseEvent) {\n if (event.sender.selectedView() === 'month') {\n this.onMonthSlotDblClicked.emit(event.slot.startDate.date);\n }\n }\n}\n","<ax-scheduler\n [hasHeader]=\"false\"\n [dataSource]=\"dataSource()\"\n [startingDate]=\"startingDate()\"\n [selectedView]=\"selectedView()\"\n (onAppointmentDrop)=\"onTaskDrop($event)\"\n (onSlotDblClicked)=\"onSlotDblClicked($event)\"\n (onAppointmentRightClick)=\"onTaskRightClickHandler($event)\"\n></ax-scheduler>\n","import { AXValueChangedEvent } from '@acorex/cdk/common';\nimport { AXBadgeModule } from '@acorex/components/badge';\nimport { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXCalendarComponent } from '@acorex/components/calendar';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDropdownPanelComponent } from '@acorex/components/dropdown';\nimport { AXDropdownButtonModule } from '@acorex/components/dropdown-button';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport {\n AXContextMenuComponent,\n AXContextMenuItemsClickEvent,\n AXContextMenuOpeningEvent,\n AXMenuModule,\n} from '@acorex/components/menu';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXSchedulerAppointmentMouseEvent, AXSchedulerComponent, AXSchedulerView } from '@acorex/components/scheduler';\nimport { AXLocaleService } from '@acorex/core/locale';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPBreadcrumbItem } from '@acorex/platform/core';\nimport { AXPThemeLayoutBlockComponent } from '@acorex/platform/layout/components';\nimport { AXPPageLayoutBase, AXPPageLayoutBaseComponent, AXPPageLayoutComponent } from '@acorex/platform/layout/views';\nimport { AXPTask, AXPTaskFilter, AXPWorkflowTaskProvider } from '@acorex/platform/workflow';\nimport { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n OnInit,\n signal,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\nimport { RootConfig } from '../../const';\nimport { AXPTaskBoardService } from './task-board.service';\nimport { AXMTaskBoardViewModel } from './task-board.viewmodel'; // <--- IMPORT VIEWMODEL\nimport { AXMTaskBoardCalendarViewComponent } from './views/task-board-calendar-view/task-board-calendar-view.page';\n\n/**\n * Component for displaying and interacting with an organizational chart.\n */\n@Component({\n templateUrl: './task-board.page.html',\n styleUrls: ['./task-board.page.scss'],\n imports: [\n FormsModule,\n CommonModule,\n RouterModule,\n //\n AXMenuModule,\n AXButtonModule,\n AXDropdownButtonModule,\n AXTranslationModule,\n AXDecoratorModule,\n AXLoadingModule,\n AXBreadcrumbsModule,\n AXBadgeModule,\n //\n AXPThemeLayoutBlockComponent,\n AXPPageLayoutComponent,\n AXMTaskBoardCalendarViewComponent,\n AXDropdownPanelComponent,\n AXPopoverModule,\n AXCalendarComponent,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: AXPPageLayoutBase,\n useExisting: AXMTaskBoardPage,\n },\n ],\n})\nexport class AXMTaskBoardPage extends AXPPageLayoutBaseComponent implements OnInit {\n protected readonly rootConfig = RootConfig;\n protected readonly localeService = inject(AXLocaleService);\n protected readonly taskBoardService = inject(AXPTaskBoardService);\n protected readonly vm = inject(AXMTaskBoardViewModel);\n\n private currentTask = signal<AXPTask | null>(null);\n protected schedulerComponent = signal<AXSchedulerComponent | null>(null);\n\n protected readonly viewsItems = signal<{ key: AXSchedulerView; text: string; icon: string; break?: boolean }[]>([\n { key: 'day', text: 'daily', icon: 'fa-light fa-calendar-day' },\n { key: 'week', text: 'weekly', icon: 'fa-light fa-calendar-week' },\n { key: 'month', text: 'monthly', icon: 'fa-light fa-calendar-alt' },\n { key: 'agenda', text: 'agenda', icon: 'fa-light fa-calendar-range' },\n ]);\n\n protected calendarType = computed(() => this.localeService.activeProfile().calendar.system);\n\n private contextMenu = viewChild<AXContextMenuComponent>('rootContextMenu');\n\n protected readonly selectedViewMode = computed(\n () => this.viewsItems().find((item) => item.key === this.vm.calendarViewMode()) || this.viewsItems()[0],\n );\n\n override async ngOnInit() {\n await super.ngOnInit();\n await this.vm.initialize();\n }\n override async getPageTitle(): Promise<string> {\n return await this.translateService.translateAsync('task-board.page-title', { scope: this.rootConfig.config.i18n });\n }\n\n override async getPageBreadcrumbs(): Promise<AXPBreadcrumbItem[]> {\n return [\n {\n title: await this.translateService.translateAsync('root-menu', { scope: this.rootConfig.config.i18n }),\n },\n ];\n }\n\n protected dataSource = (filter?: AXPTaskFilter): Promise<AXPTask[]> => {\n const taskTypeProvider = this.vm.selectedTaskType();\n const types = taskTypeProvider ? [taskTypeProvider.name] : undefined;\n return this.taskBoardService.getTasks({ ...filter, types });\n };\n\n schedulerComponentChanged(component: AXSchedulerComponent) {\n this.schedulerComponent.set(component);\n }\n\n protected handleContextMenuOnOpening(event: AXContextMenuOpeningEvent) {\n for (const item of this.currentTask()?.data?.actions || []) {\n event.items.push({\n text: item.title,\n icon: item.icon,\n data: {\n command: item.command,\n },\n });\n }\n }\n\n protected handleTaskRightClick(event: AXSchedulerAppointmentMouseEvent) {\n this.currentTask.set(event.appointment);\n const x = event.nativeEvent.clientX;\n const y = event.nativeEvent.clientY;\n const element = event.sender.nativeElement;\n this.contextMenu()?.showAt({ x, y }, element);\n }\n\n protected handleMonthSlotDblClicked(date: Date) {\n this.vm.setCurrentDate(date);\n this.vm.setCalendarViewMode('day');\n }\n\n protected handleCalendarViewChange(view: AXSchedulerView) {\n this.vm.setCalendarViewMode(view);\n }\n\n protected handleSelectedTaskTypeChange(taskType: AXPWorkflowTaskProvider | null) {\n this.vm.setSelectedTaskTypeProvider(taskType);\n this.schedulerComponent()?.refresh();\n }\n\n protected handleSchedulerDateChanged(event: AXValueChangedEvent<Date>): void {\n if (this.vm.isLoading()) {\n return;\n }\n const newDate = event.value;\n const currentDateInVm = this.vm.currentDate();\n const dateToSet = newDate || new Date();\n if (!currentDateInVm || currentDateInVm.getTime() !== dateToSet.getTime()) {\n this.vm.setCurrentDate(dateToSet);\n }\n }\n\n protected handleContextMenuItemClick(event: AXContextMenuItemsClickEvent) {\n this.taskBoardService.executeCommand(event.item.data?.command, this.currentTask()?.data?.provider);\n }\n}\n","<axp-page-layout *translate=\"let t\">\n <axp-page-toolbar>\n <axp-layout-prefix>\n <ax-button\n [text]=\"t(vm.selectedTaskType()?.title || 'task-board.all', { scope: rootConfig.config.i18n }) | async\"\n >\n <ax-prefix><ax-icon icon=\"fa-light {{vm.selectedTaskType()?.icon || 'fa-tasks'}}\"></ax-icon></ax-prefix>\n <ax-dropdown-panel>\n <ax-button-item-list class=\"ax-p-2\">\n <ax-button-item\n (onClick)=\"handleSelectedTaskTypeChange(null)\"\n [text]=\"(t('task-board.all', { scope: rootConfig.config.i18n }) | async)!\"\n >\n <ax-prefix><ax-icon icon=\"fa-light fa-tasks\"></ax-icon></ax-prefix>\n </ax-button-item>\n @for(item of vm.taskTypes(); track item.name) {\n <ax-button-item\n (onClick)=\"handleSelectedTaskTypeChange(item)\"\n [text]=\"(t(item.title, { scope: rootConfig.config.i18n }) | async)!\"\n >\n <ax-prefix><ax-icon icon=\"fa-light {{ item.icon }}\"></ax-icon></ax-prefix>\n </ax-button-item>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n\n <div class=\"ax-scheduler-header\">\n <ax-button look=\"blank\" (onClick)=\"schedulerComponent()?.prevClick()\">\n <ax-icon class=\"ax-icon ax-text-xl ax-icon-chevron-left arrow-icon\"></ax-icon>\n </ax-button>\n <ax-button look=\"blank\" [text]=\"schedulerComponent()?.currentDateText()\" #date></ax-button>\n <ax-button look=\"blank\" (onClick)=\"schedulerComponent()?.nextClick()\">\n <ax-icon class=\"ax-icon ax-text-xl ax-icon-chevron-right arrow-icon\"></ax-icon>\n </ax-button>\n <ax-popover [target]=\"date\" [placement]=\"'bottom'\">\n <div class=\"ax-overlay-pane\">\n <ax-calendar\n [type]=\"calendarType()\"\n [ngModel]=\"vm.currentDate()\"\n [depth]=\"schedulerComponent()?.calendarDepth()\"\n (onValueChanged)=\"handleSchedulerDateChanged($event)\"\n ></ax-calendar>\n </div>\n </ax-popover>\n </div>\n </axp-layout-prefix>\n <axp-layout-suffix>\n <ax-button>\n <ax-icon icon=\"fa-light {{ selectedViewMode().icon }}\"></ax-icon>\n <ax-dropdown-panel>\n <ax-button-item-list>\n @for(item of viewsItems(); track item.key) {\n <ax-button-item\n [text]=\"(t('dateTime.duration.' + item.text, { scope: 'common' }) | async)!\"\n [selected]=\"vm.calendarViewMode() === item.key\"\n (onClick)=\"handleCalendarViewChange(item.key)\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-light {{ item.icon }}\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n @if(item.break) {\n <ax-divider></ax-divider>\n } }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n </axp-layout-suffix>\n </axp-page-toolbar>\n <axp-page-content class=\"ax-overflow-hidden\">\n <axm-task-board-calendar-view\n class=\"axp-scheduler-container\"\n [dataSource]=\"dataSource\"\n [startingDate]=\"vm.currentDate()\"\n [selectedView]=\"vm.calendarViewMode()\"\n (component)=\"schedulerComponentChanged($event)\"\n (onTaskRightClick)=\"handleTaskRightClick($event)\"\n (onMonthSlotDblClicked)=\"handleMonthSlotDblClicked($event)\"\n ></axm-task-board-calendar-view>\n <ax-context-menu\n #rootContextMenu\n [closeOn]=\"'leave'\"\n [orientation]=\"'vertical'\"\n (onOpening)=\"handleContextMenuOnOpening($event)\"\n (onItemClick)=\"handleContextMenuItemClick($event)\"\n >\n </ax-context-menu>\n </axp-page-content>\n</axp-page-layout>\n"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,123 @@
|
|
1
|
+
import { AXP_WORKFLOW_TASK_PROVIDER } from '@acorex/platform/workflow';
|
2
|
+
import * as i0 from '@angular/core';
|
3
|
+
import { inject, Injectable, NgModule } from '@angular/core';
|
4
|
+
import { AXPAuthGuard } from '@acorex/platform/auth';
|
5
|
+
import { AXP_ENTITY_CONFIG_TOKEN } from '@acorex/platform/layout/entity';
|
6
|
+
import { ROUTES } from '@angular/router';
|
7
|
+
|
8
|
+
class AXPTaskBoardService {
|
9
|
+
constructor() {
|
10
|
+
this.providers = inject(AXP_WORKFLOW_TASK_PROVIDER, { optional: true });
|
11
|
+
}
|
12
|
+
async getTaskTypes() {
|
13
|
+
if (!this.providers || (this.providers?.length || 0) === 0) {
|
14
|
+
return [];
|
15
|
+
}
|
16
|
+
return this.providers;
|
17
|
+
}
|
18
|
+
async getTasks(options) {
|
19
|
+
if (!this.providers || (this.providers?.length || 0) === 0) {
|
20
|
+
console.warn('No task providers available'); // No providers available
|
21
|
+
return [];
|
22
|
+
}
|
23
|
+
const filteredProviders = this.providers.filter((provider) => (options?.types?.length ?? 0) == 0 || options?.types?.includes(provider.name));
|
24
|
+
const mergeData = [];
|
25
|
+
const promises = filteredProviders.map((provider) => provider
|
26
|
+
.getTasks(options)
|
27
|
+
.then((tasks) => tasks.map((t) => ({ ...t, data: { provider: provider.name, ...t.data } }))));
|
28
|
+
const results = await Promise.all(promises);
|
29
|
+
for (const resultArray of results) {
|
30
|
+
mergeData.push(...resultArray);
|
31
|
+
}
|
32
|
+
return mergeData;
|
33
|
+
}
|
34
|
+
async updateTask(task, range) {
|
35
|
+
if (!task.data?.provider) {
|
36
|
+
throw new Error('Task provider not found');
|
37
|
+
}
|
38
|
+
const provider = this.providers?.find((p) => p.name === task.data?.provider);
|
39
|
+
if (!provider) {
|
40
|
+
throw new Error('Task provider not found');
|
41
|
+
}
|
42
|
+
const updatedTask = await provider.updateTask(task.id, range);
|
43
|
+
return { ...updatedTask, data: { ...task.data, provider: task.data?.provider } };
|
44
|
+
}
|
45
|
+
executeCommand(command, providerName) {
|
46
|
+
const provider = this.providers?.find((p) => p.name === providerName);
|
47
|
+
if (!provider) {
|
48
|
+
throw new Error('Task provider not found');
|
49
|
+
}
|
50
|
+
provider.executeCommand(command);
|
51
|
+
}
|
52
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXPTaskBoardService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
53
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXPTaskBoardService, providedIn: 'root' }); }
|
54
|
+
}
|
55
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXPTaskBoardService, decorators: [{
|
56
|
+
type: Injectable,
|
57
|
+
args: [{
|
58
|
+
providedIn: 'root',
|
59
|
+
}]
|
60
|
+
}] });
|
61
|
+
|
62
|
+
function routesFactory() {
|
63
|
+
const config = inject(AXP_ENTITY_CONFIG_TOKEN);
|
64
|
+
const routes = [
|
65
|
+
{
|
66
|
+
loadComponent: () => {
|
67
|
+
return config.viewers.root();
|
68
|
+
},
|
69
|
+
path: ':app/task-board',
|
70
|
+
canActivate: [AXPAuthGuard],
|
71
|
+
children: [
|
72
|
+
{
|
73
|
+
path: '',
|
74
|
+
loadComponent: () => import('./acorex-modules-workflow-management-task-board.page-3_Tn2GeA.mjs').then((c) => c.AXMTaskBoardPage),
|
75
|
+
},
|
76
|
+
],
|
77
|
+
},
|
78
|
+
];
|
79
|
+
return routes;
|
80
|
+
}
|
81
|
+
class AXPTaskBoardModule {
|
82
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXPTaskBoardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
83
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.10", ngImport: i0, type: AXPTaskBoardModule }); }
|
84
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXPTaskBoardModule, providers: [
|
85
|
+
{
|
86
|
+
provide: ROUTES,
|
87
|
+
multi: true,
|
88
|
+
useFactory: routesFactory,
|
89
|
+
},
|
90
|
+
] }); }
|
91
|
+
}
|
92
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXPTaskBoardModule, decorators: [{
|
93
|
+
type: NgModule,
|
94
|
+
args: [{
|
95
|
+
imports: [],
|
96
|
+
providers: [
|
97
|
+
{
|
98
|
+
provide: ROUTES,
|
99
|
+
multi: true,
|
100
|
+
useFactory: routesFactory,
|
101
|
+
},
|
102
|
+
],
|
103
|
+
}]
|
104
|
+
}] });
|
105
|
+
|
106
|
+
class AXMWorkflowManagementModule {
|
107
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXMWorkflowManagementModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
108
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.10", ngImport: i0, type: AXMWorkflowManagementModule, imports: [AXPTaskBoardModule] }); }
|
109
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXMWorkflowManagementModule, imports: [AXPTaskBoardModule] }); }
|
110
|
+
}
|
111
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXMWorkflowManagementModule, decorators: [{
|
112
|
+
type: NgModule,
|
113
|
+
args: [{
|
114
|
+
imports: [AXPTaskBoardModule],
|
115
|
+
}]
|
116
|
+
}] });
|
117
|
+
|
118
|
+
/**
|
119
|
+
* Generated bundle index. Do not edit.
|
120
|
+
*/
|
121
|
+
|
122
|
+
export { AXMWorkflowManagementModule, AXPTaskBoardModule, AXPTaskBoardService };
|
123
|
+
//# sourceMappingURL=acorex-modules-workflow-management.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"acorex-modules-workflow-management.mjs","sources":["../../../../libs/modules/workflow-management/src/lib/features/task-board/task-board.service.ts","../../../../libs/modules/workflow-management/src/lib/features/task-board/task-board.module.ts","../../../../libs/modules/workflow-management/src/lib/workflow-management.module.ts","../../../../libs/modules/workflow-management/src/acorex-modules-workflow-management.ts"],"sourcesContent":["import { AXSchedulerDateRange } from '@acorex/components/scheduler';\nimport { AXPExecuteCommand } from '@acorex/platform/core';\nimport { AXP_WORKFLOW_TASK_PROVIDER, AXPTask, AXPTaskFilter, AXPWorkflowTaskProvider } from '@acorex/platform/workflow';\nimport { inject, Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPTaskBoardService {\n private providers = inject(AXP_WORKFLOW_TASK_PROVIDER, { optional: true });\n\n async getTaskTypes(): Promise<AXPWorkflowTaskProvider[]> {\n if (!this.providers || (this.providers?.length || 0) === 0) {\n return [];\n }\n return this.providers;\n }\n\n async getTasks(options?: AXPTaskFilter): Promise<AXPTask[]> {\n if (!this.providers || (this.providers?.length || 0) === 0) {\n console.warn('No task providers available'); // No providers available\n return [];\n }\n\n const filteredProviders = this.providers.filter(\n (provider) => (options?.types?.length ?? 0) == 0 || options?.types?.includes(provider.name),\n );\n\n const mergeData: AXPTask[] = [];\n const promises = filteredProviders.map((provider) =>\n provider\n .getTasks(options)\n .then((tasks) => tasks.map((t) => ({ ...t, data: { provider: provider.name, ...t.data } }))),\n );\n const results = await Promise.all(promises);\n for (const resultArray of results) {\n mergeData.push(...resultArray);\n }\n\n return mergeData;\n }\n\n async updateTask(task: AXPTask, range: AXSchedulerDateRange): Promise<AXPTask> {\n if (!task.data?.provider) {\n throw new Error('Task provider not found');\n }\n const provider = this.providers?.find((p) => p.name === task.data?.provider);\n if (!provider) {\n throw new Error('Task provider not found');\n }\n const updatedTask = await provider.updateTask(task.id, range);\n return { ...updatedTask, data: { ...task.data, provider: task.data?.provider } };\n }\n\n executeCommand(command: AXPExecuteCommand, providerName: string) {\n const provider = this.providers?.find((p) => p.name === providerName);\n if (!provider) {\n throw new Error('Task provider not found');\n }\n provider.executeCommand(command);\n }\n}\n","import { AXPAuthGuard } from '@acorex/platform/auth';\nimport { AXP_ENTITY_CONFIG_TOKEN } from '@acorex/platform/layout/entity';\n\nimport { inject, NgModule } from '@angular/core';\nimport { ROUTES, Routes } from '@angular/router';\n\nfunction routesFactory() {\n const config = inject(AXP_ENTITY_CONFIG_TOKEN);\n const routes: Routes = [\n {\n loadComponent: () => {\n return config.viewers.root();\n },\n path: ':app/task-board',\n canActivate: [AXPAuthGuard],\n children: [\n {\n path: '',\n loadComponent: () => import('./task-board.page').then((c) => c.AXMTaskBoardPage),\n },\n ],\n },\n ];\n return routes;\n}\n\n@NgModule({\n imports: [],\n providers: [\n {\n provide: ROUTES,\n multi: true,\n useFactory: routesFactory,\n },\n ],\n})\nexport class AXPTaskBoardModule {}\n","import { AXPTaskBoardModule } from \"./features/task-board/task-board.module\";\n\nimport { NgModule } from \"@angular/core\";\n\nexport { AXPTaskBoardModule } from \"./features/task-board/task-board.module\";\n\n\n@NgModule({\n imports: [AXPTaskBoardModule],\n})\nexport class AXMWorkflowManagementModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@acorex/modules",
|
3
|
-
"version": "19.4.
|
3
|
+
"version": "19.4.5",
|
4
4
|
"peerDependencies": {
|
5
5
|
"@angular/common": ">=19.0.0",
|
6
6
|
"@angular/core": ">=19.0.0",
|
@@ -25,21 +25,13 @@
|
|
25
25
|
"types": "./application-management/index.d.ts",
|
26
26
|
"default": "./fesm2022/acorex-modules-application-management.mjs"
|
27
27
|
},
|
28
|
-
"./auth": {
|
29
|
-
"types": "./auth/index.d.ts",
|
30
|
-
"default": "./fesm2022/acorex-modules-auth.mjs"
|
31
|
-
},
|
32
|
-
"./dashboard-management": {
|
33
|
-
"types": "./dashboard-management/index.d.ts",
|
34
|
-
"default": "./fesm2022/acorex-modules-dashboard-management.mjs"
|
35
|
-
},
|
36
28
|
"./conversation": {
|
37
29
|
"types": "./conversation/index.d.ts",
|
38
30
|
"default": "./fesm2022/acorex-modules-conversation.mjs"
|
39
31
|
},
|
40
|
-
"./
|
41
|
-
"types": "./
|
42
|
-
"default": "./fesm2022/acorex-modules-
|
32
|
+
"./dashboard-management": {
|
33
|
+
"types": "./dashboard-management/index.d.ts",
|
34
|
+
"default": "./fesm2022/acorex-modules-dashboard-management.mjs"
|
43
35
|
},
|
44
36
|
"./document-management": {
|
45
37
|
"types": "./document-management/index.d.ts",
|
@@ -49,6 +41,14 @@
|
|
49
41
|
"types": "./form-template-management/index.d.ts",
|
50
42
|
"default": "./fesm2022/acorex-modules-form-template-management.mjs"
|
51
43
|
},
|
44
|
+
"./auth": {
|
45
|
+
"types": "./auth/index.d.ts",
|
46
|
+
"default": "./fesm2022/acorex-modules-auth.mjs"
|
47
|
+
},
|
48
|
+
"./common": {
|
49
|
+
"types": "./common/index.d.ts",
|
50
|
+
"default": "./fesm2022/acorex-modules-common.mjs"
|
51
|
+
},
|
52
52
|
"./issue-management": {
|
53
53
|
"types": "./issue-management/index.d.ts",
|
54
54
|
"default": "./fesm2022/acorex-modules-issue-management.mjs"
|
@@ -77,14 +77,14 @@
|
|
77
77
|
"types": "./scheduler-job-management/index.d.ts",
|
78
78
|
"default": "./fesm2022/acorex-modules-scheduler-job-management.mjs"
|
79
79
|
},
|
80
|
-
"./security-management": {
|
81
|
-
"types": "./security-management/index.d.ts",
|
82
|
-
"default": "./fesm2022/acorex-modules-security-management.mjs"
|
83
|
-
},
|
84
80
|
"./settings-management": {
|
85
81
|
"types": "./settings-management/index.d.ts",
|
86
82
|
"default": "./fesm2022/acorex-modules-settings-management.mjs"
|
87
83
|
},
|
84
|
+
"./security-management": {
|
85
|
+
"types": "./security-management/index.d.ts",
|
86
|
+
"default": "./fesm2022/acorex-modules-security-management.mjs"
|
87
|
+
},
|
88
88
|
"./text-template-management": {
|
89
89
|
"types": "./text-template-management/index.d.ts",
|
90
90
|
"default": "./fesm2022/acorex-modules-text-template-management.mjs"
|
@@ -92,6 +92,10 @@
|
|
92
92
|
"./training-management": {
|
93
93
|
"types": "./training-management/index.d.ts",
|
94
94
|
"default": "./fesm2022/acorex-modules-training-management.mjs"
|
95
|
+
},
|
96
|
+
"./workflow-management": {
|
97
|
+
"types": "./workflow-management/index.d.ts",
|
98
|
+
"default": "./fesm2022/acorex-modules-workflow-management.mjs"
|
95
99
|
}
|
96
100
|
}
|
97
101
|
}
|