@acorex/modules 20.3.0-next.13 → 20.3.0-next.14
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/fesm2022/{acorex-modules-human-capital-management-acorex-modules-human-capital-management-OJboEV8X.mjs → acorex-modules-human-capital-management-acorex-modules-human-capital-management-CtFIJbPo.mjs} +9 -9
- package/fesm2022/{acorex-modules-human-capital-management-acorex-modules-human-capital-management-OJboEV8X.mjs.map → acorex-modules-human-capital-management-acorex-modules-human-capital-management-CtFIJbPo.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-human-capital-management-employee-skill.entity-BhjCMqKV.mjs → acorex-modules-human-capital-management-employee-skill.entity-B4vg0rb5.mjs} +2 -2
- package/fesm2022/{acorex-modules-human-capital-management-employee-skill.entity-BhjCMqKV.mjs.map → acorex-modules-human-capital-management-employee-skill.entity-B4vg0rb5.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-human-capital-management-employee.entity-D4wEAIMk.mjs → acorex-modules-human-capital-management-employee.entity-BrHe53eN.mjs} +3 -3
- package/fesm2022/{acorex-modules-human-capital-management-employee.entity-D4wEAIMk.mjs.map → acorex-modules-human-capital-management-employee.entity-BrHe53eN.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-human-capital-management-employment-type.entity-ddi7bVHJ.mjs → acorex-modules-human-capital-management-employment-type.entity-DUilGRvj.mjs} +2 -2
- package/fesm2022/{acorex-modules-human-capital-management-employment-type.entity-ddi7bVHJ.mjs.map → acorex-modules-human-capital-management-employment-type.entity-DUilGRvj.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-human-capital-management-leave-request.entity-DFMfWFAk.mjs → acorex-modules-human-capital-management-leave-request.entity-Bh8AzJOv.mjs} +2 -2
- package/fesm2022/{acorex-modules-human-capital-management-leave-request.entity-DFMfWFAk.mjs.map → acorex-modules-human-capital-management-leave-request.entity-Bh8AzJOv.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-human-capital-management-leave-type.entity-oDnSiyVB.mjs → acorex-modules-human-capital-management-leave-type.entity-BFRmVDsx.mjs} +2 -2
- package/fesm2022/{acorex-modules-human-capital-management-leave-type.entity-oDnSiyVB.mjs.map → acorex-modules-human-capital-management-leave-type.entity-BFRmVDsx.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-human-capital-management-position-assignment.entity-BFaI6_lN.mjs → acorex-modules-human-capital-management-position-assignment.entity-M0zW0AwU.mjs} +2 -2
- package/fesm2022/{acorex-modules-human-capital-management-position-assignment.entity-BFaI6_lN.mjs.map → acorex-modules-human-capital-management-position-assignment.entity-M0zW0AwU.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-human-capital-management-skill-level.entity-73776DmL.mjs → acorex-modules-human-capital-management-skill-level.entity-XYAMwycx.mjs} +2 -2
- package/fesm2022/{acorex-modules-human-capital-management-skill-level.entity-73776DmL.mjs.map → acorex-modules-human-capital-management-skill-level.entity-XYAMwycx.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-human-capital-management-skill.entity-CZBJsgm6.mjs → acorex-modules-human-capital-management-skill.entity-DkdZedpX.mjs} +2 -2
- package/fesm2022/{acorex-modules-human-capital-management-skill.entity-CZBJsgm6.mjs.map → acorex-modules-human-capital-management-skill.entity-DkdZedpX.mjs.map} +1 -1
- package/fesm2022/acorex-modules-human-capital-management.mjs +1 -1
- package/fesm2022/{acorex-modules-task-management-task-board.page-DUg6XGuT.mjs → acorex-modules-task-management-task-board.page-DSls9l9e.mjs} +92 -12
- package/fesm2022/acorex-modules-task-management-task-board.page-DSls9l9e.mjs.map +1 -0
- package/fesm2022/acorex-modules-task-management.mjs +11 -1
- package/fesm2022/acorex-modules-task-management.mjs.map +1 -1
- package/package.json +9 -9
- package/task-management/index.d.ts +13 -2
- package/fesm2022/acorex-modules-task-management-task-board.page-DUg6XGuT.mjs.map +0 -1
|
@@ -52,6 +52,7 @@ var AXMTaskBoardSettings;
|
|
|
52
52
|
AXMTaskBoardSettings["CurrentDate"] = "taskboard.calendar.currentDate";
|
|
53
53
|
AXMTaskBoardSettings["SelectedPriorities"] = "taskboard.filter.selectedPriorities";
|
|
54
54
|
AXMTaskBoardSettings["SelectedAssigneeIds"] = "taskboard.filter.selectedAssigneeIds";
|
|
55
|
+
AXMTaskBoardSettings["SelectedReporterIds"] = "taskboard.filter.selectedReporterIds";
|
|
55
56
|
AXMTaskBoardSettings["SelectedTaskTypeNames"] = "taskboard.filter.selectedTaskTypeNames";
|
|
56
57
|
})(AXMTaskBoardSettings || (AXMTaskBoardSettings = {}));
|
|
57
58
|
|
|
@@ -67,6 +68,7 @@ const AXMTaskBoardViewModel = signalStore({ providedIn: 'root' }, withState(() =
|
|
|
67
68
|
selectedTaskTypeNames: [],
|
|
68
69
|
selectedAssigneeIds: [],
|
|
69
70
|
selectedPriorities: [],
|
|
71
|
+
selectedReporterIds: [],
|
|
70
72
|
})), withComputed((store) => ({
|
|
71
73
|
selectedTaskTypes: computed(() => {
|
|
72
74
|
const names = store.selectedTaskTypeNames();
|
|
@@ -92,6 +94,9 @@ const AXMTaskBoardViewModel = signalStore({ providedIn: 'root' }, withState(() =
|
|
|
92
94
|
if (store.selectedAssigneeIds().length > 0) {
|
|
93
95
|
count++;
|
|
94
96
|
}
|
|
97
|
+
if (store.selectedReporterIds().length > 0) {
|
|
98
|
+
count++;
|
|
99
|
+
}
|
|
95
100
|
if (store.selectedPriorities().length > 0) {
|
|
96
101
|
count++;
|
|
97
102
|
}
|
|
@@ -105,13 +110,14 @@ const AXMTaskBoardViewModel = signalStore({ providedIn: 'root' }, withState(() =
|
|
|
105
110
|
try {
|
|
106
111
|
const taskTypes = await taskBoardService.getTaskTypes();
|
|
107
112
|
patchState(store, { taskTypes });
|
|
108
|
-
const [savedDaysCount, savedDateString, savedDetailPanel, savedViewMode, savedTaskTypeNames, savedAssigneeIds, savedPriorities,] = await Promise.all([
|
|
113
|
+
const [savedDaysCount, savedDateString, savedDetailPanel, savedViewMode, savedTaskTypeNames, savedAssigneeIds, savedReporterIds, savedPriorities,] = await Promise.all([
|
|
109
114
|
userScopedSettings().get(AXMTaskBoardSettings.DaysCount),
|
|
110
115
|
userScopedSettings().get(AXMTaskBoardSettings.CurrentDate),
|
|
111
116
|
userScopedSettings().get(AXMTaskBoardSettings.DetailPanel),
|
|
112
117
|
userScopedSettings().get(AXMTaskBoardSettings.ViewMode),
|
|
113
118
|
userScopedSettings().get(AXMTaskBoardSettings.SelectedTaskTypeNames),
|
|
114
119
|
userScopedSettings().get(AXMTaskBoardSettings.SelectedAssigneeIds),
|
|
120
|
+
userScopedSettings().get(AXMTaskBoardSettings.SelectedReporterIds),
|
|
115
121
|
userScopedSettings().get(AXMTaskBoardSettings.SelectedPriorities),
|
|
116
122
|
]);
|
|
117
123
|
patchState(store, {
|
|
@@ -121,6 +127,7 @@ const AXMTaskBoardViewModel = signalStore({ providedIn: 'root' }, withState(() =
|
|
|
121
127
|
currentDate: savedDateString ? new Date(savedDateString) : new Date(),
|
|
122
128
|
selectedTaskTypeNames: savedTaskTypeNames || [],
|
|
123
129
|
selectedAssigneeIds: savedAssigneeIds || [],
|
|
130
|
+
selectedReporterIds: savedReporterIds || [],
|
|
124
131
|
selectedPriorities: savedPriorities || [],
|
|
125
132
|
isLoading: false,
|
|
126
133
|
});
|
|
@@ -134,6 +141,7 @@ const AXMTaskBoardViewModel = signalStore({ providedIn: 'root' }, withState(() =
|
|
|
134
141
|
selectedTaskTypeNames: [],
|
|
135
142
|
selectedAssigneeIds: [],
|
|
136
143
|
selectedPriorities: [],
|
|
144
|
+
selectedReporterIds: [],
|
|
137
145
|
taskTypes: store.taskTypes(),
|
|
138
146
|
isLoading: false,
|
|
139
147
|
});
|
|
@@ -176,6 +184,14 @@ const AXMTaskBoardViewModel = signalStore({ providedIn: 'root' }, withState(() =
|
|
|
176
184
|
.set(AXMTaskBoardSettings.SelectedAssigneeIds, assigneeIds)
|
|
177
185
|
.catch((error) => console.error('Error saving selected assignee filter:', error));
|
|
178
186
|
},
|
|
187
|
+
setSelectedReporterIds(reporterIds, isQueryParam = false) {
|
|
188
|
+
patchState(store, { selectedReporterIds: reporterIds });
|
|
189
|
+
if (isQueryParam)
|
|
190
|
+
return;
|
|
191
|
+
userScopedSettings()
|
|
192
|
+
.set(AXMTaskBoardSettings.SelectedReporterIds, reporterIds)
|
|
193
|
+
.catch((error) => console.error('Error saving selected reporter filter:', error));
|
|
194
|
+
},
|
|
179
195
|
setSelectedPriorities(priorities, isQueryParam = false) {
|
|
180
196
|
patchState(store, { selectedPriorities: priorities });
|
|
181
197
|
if (isQueryParam)
|
|
@@ -347,6 +363,22 @@ class AXMTaskBoardFiltersComponent {
|
|
|
347
363
|
title: 'task-board.filter.assignee',
|
|
348
364
|
},
|
|
349
365
|
},
|
|
366
|
+
{
|
|
367
|
+
name: 'reporter',
|
|
368
|
+
path: 'options.reporter',
|
|
369
|
+
type: AXPWidgetsCatalog.select,
|
|
370
|
+
options: {
|
|
371
|
+
multiple: true,
|
|
372
|
+
valueField: 'id',
|
|
373
|
+
allowSearch: true,
|
|
374
|
+
dataSource: 'users',
|
|
375
|
+
textField: 'displayName',
|
|
376
|
+
placeholder: 'Select Reporter',
|
|
377
|
+
},
|
|
378
|
+
meta: {
|
|
379
|
+
title: 'task-board.filter.reporter',
|
|
380
|
+
},
|
|
381
|
+
},
|
|
350
382
|
{
|
|
351
383
|
name: 'priority',
|
|
352
384
|
path: 'options.priority',
|
|
@@ -369,6 +401,7 @@ class AXMTaskBoardFiltersComponent {
|
|
|
369
401
|
resetContextToViewModel() {
|
|
370
402
|
const vmTaskTypeNames = this.vm.selectedTaskTypeNames();
|
|
371
403
|
const vmAssigneeIds = this.vm.selectedAssigneeIds();
|
|
404
|
+
const vmReporterIds = this.vm.selectedReporterIds();
|
|
372
405
|
const vmPriorities = this.vm.selectedPriorities();
|
|
373
406
|
const currentViewIsMulti = this.isMultiSelectEnabled();
|
|
374
407
|
const taskTypeContextValue = currentViewIsMulti
|
|
@@ -380,6 +413,7 @@ class AXMTaskBoardFiltersComponent {
|
|
|
380
413
|
options: {
|
|
381
414
|
priority: vmPriorities,
|
|
382
415
|
assignee: vmAssigneeIds,
|
|
416
|
+
reporter: vmReporterIds,
|
|
383
417
|
taskType: taskTypeContextValue,
|
|
384
418
|
},
|
|
385
419
|
});
|
|
@@ -390,6 +424,7 @@ class AXMTaskBoardFiltersComponent {
|
|
|
390
424
|
handleApply() {
|
|
391
425
|
this.syncTaskTypesToViewModel(this.context()?.options?.taskType);
|
|
392
426
|
this.syncAssigneesToViewModel(this.context()?.options?.assignee);
|
|
427
|
+
this.syncReportersToViewModel(this.context()?.options?.reporter);
|
|
393
428
|
this.syncPrioritiesToViewModel(this.context()?.options?.priority);
|
|
394
429
|
this.applyClicked.emit();
|
|
395
430
|
}
|
|
@@ -418,6 +453,18 @@ class AXMTaskBoardFiltersComponent {
|
|
|
418
453
|
this.vm.setSelectedAssigneeIds(newIds, this.isQueryParam());
|
|
419
454
|
}
|
|
420
455
|
}
|
|
456
|
+
syncReportersToViewModel(selectedReporters) {
|
|
457
|
+
let newIds = [];
|
|
458
|
+
if (Array.isArray(selectedReporters)) {
|
|
459
|
+
newIds = selectedReporters
|
|
460
|
+
.filter((v) => v != null)
|
|
461
|
+
.map((t) => (typeof t === 'string' || typeof t === 'number' ? t : t.id));
|
|
462
|
+
}
|
|
463
|
+
const currentIds = this.vm.selectedReporterIds();
|
|
464
|
+
if (!isEqual(sortBy(currentIds), sortBy(newIds))) {
|
|
465
|
+
this.vm.setSelectedReporterIds(newIds, this.isQueryParam());
|
|
466
|
+
}
|
|
467
|
+
}
|
|
421
468
|
syncPrioritiesToViewModel(selectedPriorities) {
|
|
422
469
|
let newNames = [];
|
|
423
470
|
if (Array.isArray(selectedPriorities)) {
|
|
@@ -466,6 +513,7 @@ class AXMTaskBoardCalendarViewComponent {
|
|
|
466
513
|
this.taskBoardService = inject(AXPTaskBoardService);
|
|
467
514
|
this.settingService = inject(AXPSettingService);
|
|
468
515
|
this.schedulerComponent = viewChild(AXSchedulerComponent, ...(ngDevMode ? [{ debugName: "schedulerComponent" }] : []));
|
|
516
|
+
this.resources = input([], ...(ngDevMode ? [{ debugName: "resources" }] : []));
|
|
469
517
|
this.startingDate = input(new Date(), ...(ngDevMode ? [{ debugName: "startingDate" }] : []));
|
|
470
518
|
this.selectedView = input('month', ...(ngDevMode ? [{ debugName: "selectedView" }] : []));
|
|
471
519
|
this.dataSource = input.required(...(ngDevMode ? [{ debugName: "dataSource" }] : []));
|
|
@@ -547,11 +595,11 @@ class AXMTaskBoardCalendarViewComponent {
|
|
|
547
595
|
this.onTaskClick.emit(event.appointment);
|
|
548
596
|
}
|
|
549
597
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: AXMTaskBoardCalendarViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
550
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.2.4", 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: { onTaskClick: "onTaskClick", onTaskChanged: "onTaskChanged", onMonthSlotDblClicked: "onMonthSlotDblClicked", onActionClick: "onActionClick", component: "component", onTaskRightClick: "onTaskRightClick", onRangeChanged: "onRangeChanged" }, viewQueries: [{ propertyName: "schedulerComponent", first: true, predicate: AXSchedulerComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<ax-scheduler\n [hasHeader]=\"false\"\n [hasActions]=\"true\"\n [holidays]=\"holidays\"\n [dataSource]=\"dataSource()\"\n [startingDate]=\"startingDate()\"\n [selectedView]=\"currentSchedulerView()\"\n [multiDayViewDaysCount]=\"vm.daysCount()\"\n (onAppointmentDrop)=\"onTaskDrop($event)\"\n (onActionClick)=\"handleActionClick($event)\"\n (onRangeChanged)=\"handleRangeChanged($event)\"\n (onSlotDblClicked)=\"onSlotDblClicked($event)\"\n (onAppointmentClicked)=\"onTaskClickHandler($event)\"\n (onAppointmentRightClick)=\"onTaskRightClickHandler($event)\"\n [weekend]=\"weekendDays()\"\n [firstDayOfWeek]=\"firstDayOfWeek()\"\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", "hasActions", "dragStartDelay", "weekend", "allowFullScreen", "multiDayViewDaysCount", "showResourceHeaders", "showCurrentTimeIndicator", "showUnassignedAppointments", "resources", "resourceTemplate", "firstDayOfWeek", "tooltipTemplate", "dataSource", "holidays", "views", "selectedView"], outputs: ["selectedViewChange", "onDataLoaded", "onRangeChanged", "onSlotClicked", "onSlotDblClicked", "onSlotRightClick", "onAppointmentDrop", "onActionClick", "onAppointmentClicked", "onAppointmentDblClicked", "onAppointmentRightClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
598
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.2.4", type: AXMTaskBoardCalendarViewComponent, isStandalone: true, selector: "axm-task-board-calendar-view", inputs: { resources: { classPropertyName: "resources", publicName: "resources", isSignal: true, isRequired: false, transformFunction: null }, 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: { onTaskClick: "onTaskClick", onTaskChanged: "onTaskChanged", onMonthSlotDblClicked: "onMonthSlotDblClicked", onActionClick: "onActionClick", component: "component", onTaskRightClick: "onTaskRightClick", onRangeChanged: "onRangeChanged" }, viewQueries: [{ propertyName: "schedulerComponent", first: true, predicate: AXSchedulerComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<ax-scheduler\n [hasHeader]=\"false\"\n [hasActions]=\"true\"\n [holidays]=\"holidays\"\n [resources]=\"resources()\"\n [dataSource]=\"dataSource()\"\n [startingDate]=\"startingDate()\"\n [selectedView]=\"currentSchedulerView()\"\n [multiDayViewDaysCount]=\"vm.daysCount()\"\n (onAppointmentDrop)=\"onTaskDrop($event)\"\n (onActionClick)=\"handleActionClick($event)\"\n (onRangeChanged)=\"handleRangeChanged($event)\"\n (onSlotDblClicked)=\"onSlotDblClicked($event)\"\n (onAppointmentClicked)=\"onTaskClickHandler($event)\"\n (onAppointmentRightClick)=\"onTaskRightClickHandler($event)\"\n [weekend]=\"weekendDays()\"\n [firstDayOfWeek]=\"firstDayOfWeek()\"\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", "hasActions", "dragStartDelay", "weekend", "allowFullScreen", "multiDayViewDaysCount", "showResourceHeaders", "showCurrentTimeIndicator", "showUnassignedAppointments", "resources", "resourceTemplate", "firstDayOfWeek", "tooltipTemplate", "dataSource", "holidays", "views", "selectedView"], outputs: ["selectedViewChange", "onDataLoaded", "onRangeChanged", "onSlotClicked", "onSlotDblClicked", "onSlotRightClick", "onAppointmentDrop", "onActionClick", "onAppointmentClicked", "onAppointmentDblClicked", "onAppointmentRightClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
551
599
|
}
|
|
552
600
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: AXMTaskBoardCalendarViewComponent, decorators: [{
|
|
553
601
|
type: Component,
|
|
554
|
-
args: [{ selector: 'axm-task-board-calendar-view', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [AXSchedulerComponent], template: "<ax-scheduler\n [hasHeader]=\"false\"\n [hasActions]=\"true\"\n [holidays]=\"holidays\"\n [dataSource]=\"dataSource()\"\n [startingDate]=\"startingDate()\"\n [selectedView]=\"currentSchedulerView()\"\n [multiDayViewDaysCount]=\"vm.daysCount()\"\n (onAppointmentDrop)=\"onTaskDrop($event)\"\n (onActionClick)=\"handleActionClick($event)\"\n (onRangeChanged)=\"handleRangeChanged($event)\"\n (onSlotDblClicked)=\"onSlotDblClicked($event)\"\n (onAppointmentClicked)=\"onTaskClickHandler($event)\"\n (onAppointmentRightClick)=\"onTaskRightClickHandler($event)\"\n [weekend]=\"weekendDays()\"\n [firstDayOfWeek]=\"firstDayOfWeek()\"\n></ax-scheduler>\n", styles: ["ax-scheduler{line-height:1.5;background-color:rgba(var(--ax-sys-color-lightest-surface))!important}\n"] }]
|
|
602
|
+
args: [{ selector: 'axm-task-board-calendar-view', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [AXSchedulerComponent], template: "<ax-scheduler\n [hasHeader]=\"false\"\n [hasActions]=\"true\"\n [holidays]=\"holidays\"\n [resources]=\"resources()\"\n [dataSource]=\"dataSource()\"\n [startingDate]=\"startingDate()\"\n [selectedView]=\"currentSchedulerView()\"\n [multiDayViewDaysCount]=\"vm.daysCount()\"\n (onAppointmentDrop)=\"onTaskDrop($event)\"\n (onActionClick)=\"handleActionClick($event)\"\n (onRangeChanged)=\"handleRangeChanged($event)\"\n (onSlotDblClicked)=\"onSlotDblClicked($event)\"\n (onAppointmentClicked)=\"onTaskClickHandler($event)\"\n (onAppointmentRightClick)=\"onTaskRightClickHandler($event)\"\n [weekend]=\"weekendDays()\"\n [firstDayOfWeek]=\"firstDayOfWeek()\"\n></ax-scheduler>\n", styles: ["ax-scheduler{line-height:1.5;background-color:rgba(var(--ax-sys-color-lightest-surface))!important}\n"] }]
|
|
555
603
|
}] });
|
|
556
604
|
|
|
557
605
|
class AXMTaskBoardGridViewComponent {
|
|
@@ -822,6 +870,7 @@ class AXMTaskBoardPage extends AXPPageLayoutBaseComponent {
|
|
|
822
870
|
this.popover = viewChild('popover', ...(ngDevMode ? [{ debugName: "popover" }] : []));
|
|
823
871
|
this.calendar = viewChild('calendar', ...(ngDevMode ? [{ debugName: "calendar" }] : []));
|
|
824
872
|
this.isReady = signal(false, ...(ngDevMode ? [{ debugName: "isReady" }] : []));
|
|
873
|
+
this.resources = signal([], ...(ngDevMode ? [{ debugName: "resources" }] : []));
|
|
825
874
|
this.isQueryParam = signal(false, ...(ngDevMode ? [{ debugName: "isQueryParam" }] : []));
|
|
826
875
|
this.currentTask = signal(null, ...(ngDevMode ? [{ debugName: "currentTask" }] : []));
|
|
827
876
|
this.currentViewMode = signal('calendar', ...(ngDevMode ? [{ debugName: "currentViewMode" }] : []));
|
|
@@ -838,6 +887,17 @@ class AXMTaskBoardPage extends AXPPageLayoutBaseComponent {
|
|
|
838
887
|
{ key: 'agenda', text: 'agenda', icon: 'fa-light fa-calendar-range' },
|
|
839
888
|
],
|
|
840
889
|
},
|
|
890
|
+
{
|
|
891
|
+
key: 'timeline',
|
|
892
|
+
text: 'timeline',
|
|
893
|
+
icon: 'fa-light fa-list-timeline',
|
|
894
|
+
children: [
|
|
895
|
+
{ key: 'timeline-day', text: 'daily-timeline', icon: 'fa-light fa-calendar-day' },
|
|
896
|
+
{ key: 'timeline-multi-day', text: 'multi-day-timeline', icon: 'fa-light fa-calendar-week' },
|
|
897
|
+
{ key: 'timeline-month', text: 'monthly-timeline', icon: 'fa-light fa-calendar-alt' },
|
|
898
|
+
{ key: 'timeline-year', text: 'yearly-timeline', icon: 'fa-light fa-calendar-range' },
|
|
899
|
+
],
|
|
900
|
+
},
|
|
841
901
|
{
|
|
842
902
|
key: 'table',
|
|
843
903
|
text: 'table',
|
|
@@ -866,6 +926,8 @@ class AXMTaskBoardPage extends AXPPageLayoutBaseComponent {
|
|
|
866
926
|
case 'month':
|
|
867
927
|
case 'timeline-month':
|
|
868
928
|
return 'Current month';
|
|
929
|
+
case 'timeline-year':
|
|
930
|
+
return 'Current year';
|
|
869
931
|
}
|
|
870
932
|
}, ...(ngDevMode ? [{ debugName: "todayButtonText" }] : []));
|
|
871
933
|
this.timeText = computed(() => {
|
|
@@ -910,14 +972,16 @@ class AXMTaskBoardPage extends AXPPageLayoutBaseComponent {
|
|
|
910
972
|
const taskTypeNames = this.vm.selectedTaskTypeNames();
|
|
911
973
|
const types = taskTypeNames.length > 0 ? taskTypeNames : undefined;
|
|
912
974
|
const assigneeIds = this.vm.selectedAssigneeIds();
|
|
975
|
+
const reporterIds = this.vm.selectedReporterIds();
|
|
913
976
|
const priorities = this.vm.selectedPriorities();
|
|
914
977
|
let from = this.calendarService.create(this.vm.currentDate(), this.localeService.activeProfile().calendar.system);
|
|
915
978
|
let end;
|
|
916
979
|
const currentView = this.vm.currentViewMode();
|
|
917
|
-
if (currentView === '
|
|
918
|
-
currentView === '
|
|
919
|
-
currentView === '
|
|
920
|
-
currentView === '
|
|
980
|
+
if (currentView === 'grid' ||
|
|
981
|
+
currentView === 'kanban' ||
|
|
982
|
+
currentView === 'agenda' ||
|
|
983
|
+
currentView === 'timeline-multi-day' ||
|
|
984
|
+
currentView === 'status-grouped-grid') {
|
|
921
985
|
end = from.add('day', this.vm.daysCount() - 1);
|
|
922
986
|
}
|
|
923
987
|
else if (currentView === 'month' || currentView === 'timeline-month') {
|
|
@@ -930,6 +994,7 @@ class AXMTaskBoardPage extends AXPPageLayoutBaseComponent {
|
|
|
930
994
|
return {
|
|
931
995
|
...(types && { types }),
|
|
932
996
|
...(assigneeIds.length > 0 && { assigneeIds }),
|
|
997
|
+
...(reporterIds.length > 0 && { reporterIds }),
|
|
933
998
|
...(priorities.length > 0 && { priorities }),
|
|
934
999
|
range: { from: from.date, end: end.date },
|
|
935
1000
|
};
|
|
@@ -959,6 +1024,7 @@ class AXMTaskBoardPage extends AXPPageLayoutBaseComponent {
|
|
|
959
1024
|
}, ...(ngDevMode ? [{ debugName: "eff" }] : []));
|
|
960
1025
|
this.refreshEffect = effect(() => {
|
|
961
1026
|
this.vm.selectedTaskTypeNames();
|
|
1027
|
+
this.getResources();
|
|
962
1028
|
this.schedulerComponent()?.refresh();
|
|
963
1029
|
}, ...(ngDevMode ? [{ debugName: "refreshEffect" }] : []));
|
|
964
1030
|
this.rangeBasedViews = [
|
|
@@ -1021,6 +1087,7 @@ class AXMTaskBoardPage extends AXPPageLayoutBaseComponent {
|
|
|
1021
1087
|
});
|
|
1022
1088
|
this.taskBoardService.refresh$.subscribe(async () => {
|
|
1023
1089
|
await this.taskResolveHandler();
|
|
1090
|
+
await this.getResources();
|
|
1024
1091
|
});
|
|
1025
1092
|
}
|
|
1026
1093
|
async getPageTitle() {
|
|
@@ -1105,6 +1172,9 @@ class AXMTaskBoardPage extends AXPPageLayoutBaseComponent {
|
|
|
1105
1172
|
case 'timeline-month':
|
|
1106
1173
|
this.vm.setCurrentDate(date.add('month', forward ? 1 : -1).date);
|
|
1107
1174
|
break;
|
|
1175
|
+
case 'timeline-year':
|
|
1176
|
+
this.vm.setCurrentDate(date.add('year', forward ? 1 : -1).date);
|
|
1177
|
+
break;
|
|
1108
1178
|
}
|
|
1109
1179
|
this.popover()?.close();
|
|
1110
1180
|
this.calendar()?.render();
|
|
@@ -1188,11 +1258,13 @@ class AXMTaskBoardPage extends AXPPageLayoutBaseComponent {
|
|
|
1188
1258
|
}
|
|
1189
1259
|
const type = snapshot.getAll('type');
|
|
1190
1260
|
const assignee = snapshot.getAll('assignee');
|
|
1261
|
+
const reporter = snapshot.getAll('reporter');
|
|
1191
1262
|
const priority = snapshot.getAll('priority');
|
|
1192
|
-
if (type.length || assignee.length || priority.length) {
|
|
1263
|
+
if (type.length || assignee.length || priority.length || reporter.length) {
|
|
1193
1264
|
this.isQueryParam.set(true);
|
|
1194
1265
|
this.vm.setSelectedTaskTypeNames(type, true);
|
|
1195
1266
|
this.vm.setSelectedAssigneeIds(assignee, true);
|
|
1267
|
+
this.vm.setSelectedReporterIds(reporter, true);
|
|
1196
1268
|
this.vm.setSelectedPriorities(priority, true);
|
|
1197
1269
|
}
|
|
1198
1270
|
const dateRange = snapshot.get('dateRange');
|
|
@@ -1233,17 +1305,25 @@ class AXMTaskBoardPage extends AXPPageLayoutBaseComponent {
|
|
|
1233
1305
|
}
|
|
1234
1306
|
}
|
|
1235
1307
|
}
|
|
1308
|
+
async getResources() {
|
|
1309
|
+
if (this.vm.selectedTaskTypeNames().length !== 1) {
|
|
1310
|
+
this.resources.set([]);
|
|
1311
|
+
return;
|
|
1312
|
+
}
|
|
1313
|
+
const resources = await this.taskBoardService.getResources(this.vm.selectedTaskTypeNames()[0] ?? '');
|
|
1314
|
+
this.resources.set(resources);
|
|
1315
|
+
}
|
|
1236
1316
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: AXMTaskBoardPage, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
1237
1317
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.4", type: AXMTaskBoardPage, isStandalone: true, selector: "ng-component", providers: [
|
|
1238
1318
|
{
|
|
1239
1319
|
provide: AXPPageLayoutBase,
|
|
1240
1320
|
useExisting: AXMTaskBoardPage,
|
|
1241
1321
|
},
|
|
1242
|
-
], viewQueries: [{ propertyName: "popover", first: true, predicate: ["popover"], descendants: true, isSignal: true }, { propertyName: "calendar", first: true, predicate: ["calendar"], descendants: true, isSignal: true }, { 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 class=\"sm:ax-flex-row ax-flex-col ax-items-start\">\n <ax-button [text]=\"(t('task-board.view.' + selectedViewMode().text, { scope: rootConfig.config.i18n}) | async)!\">\n <ax-prefix><ax-icon [icon]=\"selectedViewMode().icon\"></ax-icon></ax-prefix>\n <ax-dropdown-panel #dropdownPanel>\n <ax-menu [orientation]=\"'vertical'\" class=\"ax-menu-container\">\n @for (category of menuItems(); track category.key) {\n <ng-container>\n @if (category.children && category.children.length > 0) {\n <ax-menu-item>\n <ax-prefix>\n <ax-icon [icon]=\"category.icon\"></ax-icon>\n </ax-prefix>\n <ax-text>{{ (t('task-board.' + category.text, { scope: rootConfig.config.i18n}) | async)! }}</ax-text>\n @for (child of category.children; track child.key) {\n <ax-menu-item (onClick)=\"handleViewChange(child.key,dropdownPanel)\">\n <ax-prefix>\n <ax-icon [icon]=\"child.icon\"></ax-icon>\n </ax-prefix>\n <ax-text\n >{{ (t('task-board.view.' + child.text, { scope: rootConfig.config.i18n}) | async)! }}</ax-text\n >\n </ax-menu-item>\n }\n </ax-menu-item>\n } @else {\n <ax-menu-item (onClick)=\"handleViewChange(category.key,dropdownPanel)\">\n <ax-prefix>\n <ax-icon [icon]=\"category.icon\"></ax-icon>\n </ax-prefix>\n <ax-text>{{ (t('task-board.' + category.text, { scope: rootConfig.config.i18n}) | async)! }}</ax-text>\n </ax-menu-item>\n }\n </ng-container>\n }\n </ax-menu>\n </ax-dropdown-panel>\n <ax-suffix>\n <ax-icon icon=\"fa-light fa-caret-down\"></ax-icon>\n </ax-suffix>\n </ax-button>\n\n <div class=\"ax-scheduler-header ax-w-max ax-sm sm:ax-md\">\n <ax-button look=\"blank\" (onClick)=\"changeDate(false)\">\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]=\"timeText()\" #date></ax-button>\n <ax-button look=\"blank\" (onClick)=\"changeDate(true)\">\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'\" #popover [adaptivityEnabled]=\"true\">\n <div class=\"ax-overlay-pane\">\n <ax-calendar\n #calendar\n [type]=\"calendarType()\"\n [depth]=\"calendarDepth()\"\n [cellClass]=\"getCellClass\"\n [ngModel]=\"vm.currentDate()\"\n class=\"ax-single-range-calendar\"\n (onSlotClick)=\"handleCalendarSlotClick($event)\"\n >\n <ax-footer>\n <ax-button\n look=\"link\"\n color=\"primary\"\n [text]=\"todayButtonText()\"\n (onClick)=\"handleTodayClick()\"\n ></ax-button>\n </ax-footer>\n </ax-calendar>\n </div>\n </ax-popover>\n </div>\n </axp-layout-prefix>\n\n <axp-layout-suffix>\n <ax-button [text]=\"t('task-board.filter.title', { scope: rootConfig.config.i18n }) | async\">\n <ax-prefix><ax-icon icon=\"fa-{{vm.activeFilterCount()?'solid':'light'}} fa-filter\"></ax-icon></ax-prefix>\n <ax-dropdown-panel #filterDropdownPanel (onOpened)=\"filtersComponent.resetContextToViewModel()\">\n <axm-task-board-filters\n #filtersComponent\n [isQueryParam]=\"isQueryParam()\"\n (applyClicked)=\"filterDropdownPanel.close()\"\n ></axm-task-board-filters>\n </ax-dropdown-panel>\n </ax-button>\n\n @if(layoutService.isLarge()) {\n <ax-button (onClick)=\"vm.toggleDetailPanel()\">\n <ax-icon icon=\"{{ vm.isDetailPanelOpen() ? 'fa-solid fa-square-info' : 'fa-light fa-square-info' }}\"></ax-icon>\n </ax-button>\n }\n </axp-layout-suffix>\n </axp-page-toolbar>\n <axp-page-content class=\"ax-flex ax-flex-row ax-gap-2\">\n @if (isReady()) { @switch(vm.currentViewMode()) { @case('kanban') {\n <axm-task-board-kanban-view\n class=\"axp-kanban-container ax-h-full ax-w-full ax-min-w-0\"\n [tasks]=\"resolvedTasks()\"\n (onTaskClick)=\"vm.selectTask($event)\"\n (onActionClick)=\"handleContextMenu($event)\"\n ></axm-task-board-kanban-view>\n } @case('grid') {\n <axm-task-board-grid-view\n class=\"ax-h-full ax-w-full ax-min-w-0\"\n [dataSource]=\"gridDataSource\"\n (onTaskClick)=\"vm.selectTask($event)\"\n (onActionClick)=\"handleContextMenu($event)\"\n ></axm-task-board-grid-view>\n } @case('status-grouped-grid') {\n <axm-task-board-status-grouped-grid-view\n class=\"ax-flex ax-flex-col ax-gap-2 ax-w-full ax-min-w-0\"\n [dataSource]=\"gridDataSource\"\n (onActionClick)=\"handleContextMenu($event)\"\n ></axm-task-board-status-grouped-grid-view>\n } @default {\n <axm-task-board-calendar-view\n class=\"axp-scheduler-container ax-h-full ax-w-full ax-min-w-0\"\n [
|
|
1322
|
+
], viewQueries: [{ propertyName: "popover", first: true, predicate: ["popover"], descendants: true, isSignal: true }, { propertyName: "calendar", first: true, predicate: ["calendar"], descendants: true, isSignal: true }, { 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 class=\"sm:ax-flex-row ax-flex-col ax-items-start\">\n <ax-button [text]=\"(t('task-board.view.' + selectedViewMode().text, { scope: rootConfig.config.i18n}) | async)!\">\n <ax-prefix><ax-icon [icon]=\"selectedViewMode().icon\"></ax-icon></ax-prefix>\n <ax-dropdown-panel #dropdownPanel>\n <ax-menu [orientation]=\"'vertical'\" class=\"ax-menu-container\">\n @for (category of menuItems(); track category.key) {\n <ng-container>\n @if (category.children && category.children.length > 0) {\n <ax-menu-item>\n <ax-prefix>\n <ax-icon [icon]=\"category.icon\"></ax-icon>\n </ax-prefix>\n <ax-text>{{ (t('task-board.' + category.text, { scope: rootConfig.config.i18n}) | async)! }}</ax-text>\n @for (child of category.children; track child.key) {\n <ax-menu-item (onClick)=\"handleViewChange(child.key,dropdownPanel)\">\n <ax-prefix>\n <ax-icon [icon]=\"child.icon\"></ax-icon>\n </ax-prefix>\n <ax-text\n >{{ (t('task-board.view.' + child.text, { scope: rootConfig.config.i18n}) | async)! }}</ax-text\n >\n </ax-menu-item>\n }\n </ax-menu-item>\n } @else {\n <ax-menu-item (onClick)=\"handleViewChange(category.key,dropdownPanel)\">\n <ax-prefix>\n <ax-icon [icon]=\"category.icon\"></ax-icon>\n </ax-prefix>\n <ax-text>{{ (t('task-board.' + category.text, { scope: rootConfig.config.i18n}) | async)! }}</ax-text>\n </ax-menu-item>\n }\n </ng-container>\n }\n </ax-menu>\n </ax-dropdown-panel>\n <ax-suffix>\n <ax-icon icon=\"fa-light fa-caret-down\"></ax-icon>\n </ax-suffix>\n </ax-button>\n\n <div class=\"ax-scheduler-header ax-w-max ax-sm sm:ax-md\">\n <ax-button look=\"blank\" (onClick)=\"changeDate(false)\">\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]=\"timeText()\" #date></ax-button>\n <ax-button look=\"blank\" (onClick)=\"changeDate(true)\">\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'\" #popover [adaptivityEnabled]=\"true\">\n <div class=\"ax-overlay-pane\">\n <ax-calendar\n #calendar\n [type]=\"calendarType()\"\n [depth]=\"calendarDepth()\"\n [cellClass]=\"getCellClass\"\n [ngModel]=\"vm.currentDate()\"\n class=\"ax-single-range-calendar\"\n (onSlotClick)=\"handleCalendarSlotClick($event)\"\n >\n <ax-footer>\n <ax-button\n look=\"link\"\n color=\"primary\"\n [text]=\"todayButtonText()\"\n (onClick)=\"handleTodayClick()\"\n ></ax-button>\n </ax-footer>\n </ax-calendar>\n </div>\n </ax-popover>\n </div>\n </axp-layout-prefix>\n\n <axp-layout-suffix>\n <ax-button [text]=\"t('task-board.filter.title', { scope: rootConfig.config.i18n }) | async\">\n <ax-prefix><ax-icon icon=\"fa-{{vm.activeFilterCount()?'solid':'light'}} fa-filter\"></ax-icon></ax-prefix>\n <ax-dropdown-panel #filterDropdownPanel (onOpened)=\"filtersComponent.resetContextToViewModel()\">\n <axm-task-board-filters\n #filtersComponent\n [isQueryParam]=\"isQueryParam()\"\n (applyClicked)=\"filterDropdownPanel.close()\"\n ></axm-task-board-filters>\n </ax-dropdown-panel>\n </ax-button>\n\n @if(layoutService.isLarge()) {\n <ax-button (onClick)=\"vm.toggleDetailPanel()\">\n <ax-icon icon=\"{{ vm.isDetailPanelOpen() ? 'fa-solid fa-square-info' : 'fa-light fa-square-info' }}\"></ax-icon>\n </ax-button>\n }\n </axp-layout-suffix>\n </axp-page-toolbar>\n <axp-page-content class=\"ax-flex ax-flex-row ax-gap-2\">\n @if (isReady()) { @switch(vm.currentViewMode()) { @case('kanban') {\n <axm-task-board-kanban-view\n class=\"axp-kanban-container ax-h-full ax-w-full ax-min-w-0\"\n [tasks]=\"resolvedTasks()\"\n (onTaskClick)=\"vm.selectTask($event)\"\n (onActionClick)=\"handleContextMenu($event)\"\n ></axm-task-board-kanban-view>\n } @case('grid') {\n <axm-task-board-grid-view\n class=\"ax-h-full ax-w-full ax-min-w-0\"\n [dataSource]=\"gridDataSource\"\n (onTaskClick)=\"vm.selectTask($event)\"\n (onActionClick)=\"handleContextMenu($event)\"\n ></axm-task-board-grid-view>\n } @case('status-grouped-grid') {\n <axm-task-board-status-grouped-grid-view\n class=\"ax-flex ax-flex-col ax-gap-2 ax-w-full ax-min-w-0\"\n [dataSource]=\"gridDataSource\"\n (onActionClick)=\"handleContextMenu($event)\"\n ></axm-task-board-status-grouped-grid-view>\n } @default {\n <axm-task-board-calendar-view\n class=\"axp-scheduler-container ax-h-full ax-w-full ax-min-w-0\"\n [resources]=\"resources()\"\n [startingDate]=\"vm.currentDate()\"\n [dataSource]=\"schedulerDataSource\"\n (onTaskClick)=\"vm.selectTask($event)\"\n [selectedView]=\"vm.currentViewMode()\"\n (onActionClick)=\"handleContextMenu($event)\"\n (onTaskRightClick)=\"handleContextMenu($event)\"\n (component)=\"schedulerComponentChanged($event)\"\n (onMonthSlotDblClicked)=\"handleMonthSlotDblClicked($event)\"\n ></axm-task-board-calendar-view>\n } }\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 @if (vm.isDetailPanelOpen() && layoutService.isLarge()) {\n <axm-task-board-detail-panel></axm-task-board-detail-panel>\n } } @else {\n <div class=\"ax-flex ax-items-center ax-justify-center ax-w-full ax-h-full\">\n <ax-loading></ax-loading>\n </div>\n }\n </axp-page-content>\n</axp-page-layout>\n", styles: ["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)}.ax-single-range-calendar .ax-range-start,.ax-single-range-calendar .ax-range-end{color:rgba(var(--ax-sys-color-on-primary-surface))!important;background-color:rgba(var(--ax-sys-color-primary-surface),.85)!important}.ax-single-range-calendar .ax-range-start:hover,.ax-single-range-calendar .ax-range-end:hover{background-color:rgba(var(--ax-sys-color-primary-surface))!important}.ax-single-range-calendar .ax-range-start.ax-state-holiday,.ax-single-range-calendar .ax-range-end.ax-state-holiday{background-color:rgba(var(--ax-sys-color-danger-surface),.85)!important}.ax-single-range-calendar .ax-range-between{color:rgba(var(--ax-sys-color-on-primary-surface))!important;background-color:rgba(var(--ax-sys-color-primary-surface),.65)}.ax-single-range-calendar .ax-range-between.ax-state-holiday{background-color:rgba(var(--ax-sys-color-danger-surface),.65)}.ax-single-range-calendar ax-footer{display:flex;justify-content:center;border-color:rgba(var(--ax-comp-calendar-view-header-border-color));border-top-width:var(--ax-comp-calendar-view-header-border-width, 1px)}axp-page-content:not(:has(axm-task-board-status-grouped-grid-view,axm-task-board-time-grouped-grid-view)){overflow-y:hidden}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type:
|
|
1243
1323
|
//
|
|
1244
1324
|
AXMenuModule }, { kind: "component", type: i2.AXMenuItemComponent, selector: "ax-menu-item", inputs: ["name", "data", "disabled", "color"], outputs: ["onClick"] }, { kind: "component", type: i2.AXMenuComponent, selector: "ax-menu", inputs: ["orientation", "openOn", "closeOn", "items", "hasArrow"], outputs: ["onItemClick"] }, { kind: "component", type: i2.AXContextMenuComponent, selector: "ax-context-menu", inputs: ["orientation", "openOn", "closeOn", "items", "target"], outputs: ["onItemClick", "onOpening"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i3.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: "ngmodule", type: AXDropdownButtonModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "directive", type: i2$1.AXTranslatorDirective, selector: "[translate]" }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i5.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i5.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: "component", type: i6.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type:
|
|
1245
1325
|
//
|
|
1246
|
-
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: ["onTaskClick", "onTaskChanged", "onMonthSlotDblClicked", "onActionClick", "component", "onTaskRightClick", "onRangeChanged"] }, { kind: "component", type: AXMTaskBoardKanbanViewComponent, selector: "axm-task-board-kanban-view", inputs: ["tasks"], outputs: ["tasksChange", "onTaskClick", "onTaskChanged", "component", "onActionClick"] }, { kind: "component", type: AXMTaskBoardGridViewComponent, selector: "axm-task-board-grid-view", inputs: ["dataSource"], outputs: ["onTaskClick", "onActionClick"] }, { kind: "component", type: AXMTaskBoardStatusGroupedGridViewComponent, selector: "axm-task-board-status-grouped-grid-view", inputs: ["provider", "dataSource"], outputs: ["onActionClick"] }, { kind: "component", type: AXMTaskBoardDetailPanel, selector: "axm-task-board-detail-panel" }, { 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: ["width", "disabled", "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", "dayCellTemplate", "monthCellTemplate", "yearCellTemplate", "cellClass", "showNavigation", "count", "id", "weekend", "weekdays"], outputs: ["onOptionChanged", "valueChange", "onValueChanged", "minValueChange", "maxValueChange", "onBlur", "onFocus", "depthChange", "typeChange", "activeViewChange", "disabledDatesChange", "holidayDatesChange", "onNavigate", "onSlotClick", "countChange"] }, { kind: "component", type: AXMTaskBoardFiltersComponent, selector: "axm-task-board-filters", inputs: ["isQueryParam"], outputs: ["applyClicked"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
1326
|
+
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: ["resources", "startingDate", "selectedView", "dataSource"], outputs: ["onTaskClick", "onTaskChanged", "onMonthSlotDblClicked", "onActionClick", "component", "onTaskRightClick", "onRangeChanged"] }, { kind: "component", type: AXMTaskBoardKanbanViewComponent, selector: "axm-task-board-kanban-view", inputs: ["tasks"], outputs: ["tasksChange", "onTaskClick", "onTaskChanged", "component", "onActionClick"] }, { kind: "component", type: AXMTaskBoardGridViewComponent, selector: "axm-task-board-grid-view", inputs: ["dataSource"], outputs: ["onTaskClick", "onActionClick"] }, { kind: "component", type: AXMTaskBoardStatusGroupedGridViewComponent, selector: "axm-task-board-status-grouped-grid-view", inputs: ["provider", "dataSource"], outputs: ["onActionClick"] }, { kind: "component", type: AXMTaskBoardDetailPanel, selector: "axm-task-board-detail-panel" }, { 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: ["width", "disabled", "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", "dayCellTemplate", "monthCellTemplate", "yearCellTemplate", "cellClass", "showNavigation", "count", "id", "weekend", "weekdays"], outputs: ["onOptionChanged", "valueChange", "onValueChanged", "minValueChange", "maxValueChange", "onBlur", "onFocus", "depthChange", "typeChange", "activeViewChange", "disabledDatesChange", "holidayDatesChange", "onNavigate", "onSlotClick", "countChange"] }, { kind: "component", type: AXMTaskBoardFiltersComponent, selector: "axm-task-board-filters", inputs: ["isQueryParam"], outputs: ["applyClicked"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
1247
1327
|
}
|
|
1248
1328
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: AXMTaskBoardPage, decorators: [{
|
|
1249
1329
|
type: Component,
|
|
@@ -1277,8 +1357,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImpor
|
|
|
1277
1357
|
provide: AXPPageLayoutBase,
|
|
1278
1358
|
useExisting: AXMTaskBoardPage,
|
|
1279
1359
|
},
|
|
1280
|
-
], template: "<axp-page-layout *translate=\"let t\">\n <axp-page-toolbar>\n <axp-layout-prefix class=\"sm:ax-flex-row ax-flex-col ax-items-start\">\n <ax-button [text]=\"(t('task-board.view.' + selectedViewMode().text, { scope: rootConfig.config.i18n}) | async)!\">\n <ax-prefix><ax-icon [icon]=\"selectedViewMode().icon\"></ax-icon></ax-prefix>\n <ax-dropdown-panel #dropdownPanel>\n <ax-menu [orientation]=\"'vertical'\" class=\"ax-menu-container\">\n @for (category of menuItems(); track category.key) {\n <ng-container>\n @if (category.children && category.children.length > 0) {\n <ax-menu-item>\n <ax-prefix>\n <ax-icon [icon]=\"category.icon\"></ax-icon>\n </ax-prefix>\n <ax-text>{{ (t('task-board.' + category.text, { scope: rootConfig.config.i18n}) | async)! }}</ax-text>\n @for (child of category.children; track child.key) {\n <ax-menu-item (onClick)=\"handleViewChange(child.key,dropdownPanel)\">\n <ax-prefix>\n <ax-icon [icon]=\"child.icon\"></ax-icon>\n </ax-prefix>\n <ax-text\n >{{ (t('task-board.view.' + child.text, { scope: rootConfig.config.i18n}) | async)! }}</ax-text\n >\n </ax-menu-item>\n }\n </ax-menu-item>\n } @else {\n <ax-menu-item (onClick)=\"handleViewChange(category.key,dropdownPanel)\">\n <ax-prefix>\n <ax-icon [icon]=\"category.icon\"></ax-icon>\n </ax-prefix>\n <ax-text>{{ (t('task-board.' + category.text, { scope: rootConfig.config.i18n}) | async)! }}</ax-text>\n </ax-menu-item>\n }\n </ng-container>\n }\n </ax-menu>\n </ax-dropdown-panel>\n <ax-suffix>\n <ax-icon icon=\"fa-light fa-caret-down\"></ax-icon>\n </ax-suffix>\n </ax-button>\n\n <div class=\"ax-scheduler-header ax-w-max ax-sm sm:ax-md\">\n <ax-button look=\"blank\" (onClick)=\"changeDate(false)\">\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]=\"timeText()\" #date></ax-button>\n <ax-button look=\"blank\" (onClick)=\"changeDate(true)\">\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'\" #popover [adaptivityEnabled]=\"true\">\n <div class=\"ax-overlay-pane\">\n <ax-calendar\n #calendar\n [type]=\"calendarType()\"\n [depth]=\"calendarDepth()\"\n [cellClass]=\"getCellClass\"\n [ngModel]=\"vm.currentDate()\"\n class=\"ax-single-range-calendar\"\n (onSlotClick)=\"handleCalendarSlotClick($event)\"\n >\n <ax-footer>\n <ax-button\n look=\"link\"\n color=\"primary\"\n [text]=\"todayButtonText()\"\n (onClick)=\"handleTodayClick()\"\n ></ax-button>\n </ax-footer>\n </ax-calendar>\n </div>\n </ax-popover>\n </div>\n </axp-layout-prefix>\n\n <axp-layout-suffix>\n <ax-button [text]=\"t('task-board.filter.title', { scope: rootConfig.config.i18n }) | async\">\n <ax-prefix><ax-icon icon=\"fa-{{vm.activeFilterCount()?'solid':'light'}} fa-filter\"></ax-icon></ax-prefix>\n <ax-dropdown-panel #filterDropdownPanel (onOpened)=\"filtersComponent.resetContextToViewModel()\">\n <axm-task-board-filters\n #filtersComponent\n [isQueryParam]=\"isQueryParam()\"\n (applyClicked)=\"filterDropdownPanel.close()\"\n ></axm-task-board-filters>\n </ax-dropdown-panel>\n </ax-button>\n\n @if(layoutService.isLarge()) {\n <ax-button (onClick)=\"vm.toggleDetailPanel()\">\n <ax-icon icon=\"{{ vm.isDetailPanelOpen() ? 'fa-solid fa-square-info' : 'fa-light fa-square-info' }}\"></ax-icon>\n </ax-button>\n }\n </axp-layout-suffix>\n </axp-page-toolbar>\n <axp-page-content class=\"ax-flex ax-flex-row ax-gap-2\">\n @if (isReady()) { @switch(vm.currentViewMode()) { @case('kanban') {\n <axm-task-board-kanban-view\n class=\"axp-kanban-container ax-h-full ax-w-full ax-min-w-0\"\n [tasks]=\"resolvedTasks()\"\n (onTaskClick)=\"vm.selectTask($event)\"\n (onActionClick)=\"handleContextMenu($event)\"\n ></axm-task-board-kanban-view>\n } @case('grid') {\n <axm-task-board-grid-view\n class=\"ax-h-full ax-w-full ax-min-w-0\"\n [dataSource]=\"gridDataSource\"\n (onTaskClick)=\"vm.selectTask($event)\"\n (onActionClick)=\"handleContextMenu($event)\"\n ></axm-task-board-grid-view>\n } @case('status-grouped-grid') {\n <axm-task-board-status-grouped-grid-view\n class=\"ax-flex ax-flex-col ax-gap-2 ax-w-full ax-min-w-0\"\n [dataSource]=\"gridDataSource\"\n (onActionClick)=\"handleContextMenu($event)\"\n ></axm-task-board-status-grouped-grid-view>\n } @default {\n <axm-task-board-calendar-view\n class=\"axp-scheduler-container ax-h-full ax-w-full ax-min-w-0\"\n [
|
|
1360
|
+
], template: "<axp-page-layout *translate=\"let t\">\n <axp-page-toolbar>\n <axp-layout-prefix class=\"sm:ax-flex-row ax-flex-col ax-items-start\">\n <ax-button [text]=\"(t('task-board.view.' + selectedViewMode().text, { scope: rootConfig.config.i18n}) | async)!\">\n <ax-prefix><ax-icon [icon]=\"selectedViewMode().icon\"></ax-icon></ax-prefix>\n <ax-dropdown-panel #dropdownPanel>\n <ax-menu [orientation]=\"'vertical'\" class=\"ax-menu-container\">\n @for (category of menuItems(); track category.key) {\n <ng-container>\n @if (category.children && category.children.length > 0) {\n <ax-menu-item>\n <ax-prefix>\n <ax-icon [icon]=\"category.icon\"></ax-icon>\n </ax-prefix>\n <ax-text>{{ (t('task-board.' + category.text, { scope: rootConfig.config.i18n}) | async)! }}</ax-text>\n @for (child of category.children; track child.key) {\n <ax-menu-item (onClick)=\"handleViewChange(child.key,dropdownPanel)\">\n <ax-prefix>\n <ax-icon [icon]=\"child.icon\"></ax-icon>\n </ax-prefix>\n <ax-text\n >{{ (t('task-board.view.' + child.text, { scope: rootConfig.config.i18n}) | async)! }}</ax-text\n >\n </ax-menu-item>\n }\n </ax-menu-item>\n } @else {\n <ax-menu-item (onClick)=\"handleViewChange(category.key,dropdownPanel)\">\n <ax-prefix>\n <ax-icon [icon]=\"category.icon\"></ax-icon>\n </ax-prefix>\n <ax-text>{{ (t('task-board.' + category.text, { scope: rootConfig.config.i18n}) | async)! }}</ax-text>\n </ax-menu-item>\n }\n </ng-container>\n }\n </ax-menu>\n </ax-dropdown-panel>\n <ax-suffix>\n <ax-icon icon=\"fa-light fa-caret-down\"></ax-icon>\n </ax-suffix>\n </ax-button>\n\n <div class=\"ax-scheduler-header ax-w-max ax-sm sm:ax-md\">\n <ax-button look=\"blank\" (onClick)=\"changeDate(false)\">\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]=\"timeText()\" #date></ax-button>\n <ax-button look=\"blank\" (onClick)=\"changeDate(true)\">\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'\" #popover [adaptivityEnabled]=\"true\">\n <div class=\"ax-overlay-pane\">\n <ax-calendar\n #calendar\n [type]=\"calendarType()\"\n [depth]=\"calendarDepth()\"\n [cellClass]=\"getCellClass\"\n [ngModel]=\"vm.currentDate()\"\n class=\"ax-single-range-calendar\"\n (onSlotClick)=\"handleCalendarSlotClick($event)\"\n >\n <ax-footer>\n <ax-button\n look=\"link\"\n color=\"primary\"\n [text]=\"todayButtonText()\"\n (onClick)=\"handleTodayClick()\"\n ></ax-button>\n </ax-footer>\n </ax-calendar>\n </div>\n </ax-popover>\n </div>\n </axp-layout-prefix>\n\n <axp-layout-suffix>\n <ax-button [text]=\"t('task-board.filter.title', { scope: rootConfig.config.i18n }) | async\">\n <ax-prefix><ax-icon icon=\"fa-{{vm.activeFilterCount()?'solid':'light'}} fa-filter\"></ax-icon></ax-prefix>\n <ax-dropdown-panel #filterDropdownPanel (onOpened)=\"filtersComponent.resetContextToViewModel()\">\n <axm-task-board-filters\n #filtersComponent\n [isQueryParam]=\"isQueryParam()\"\n (applyClicked)=\"filterDropdownPanel.close()\"\n ></axm-task-board-filters>\n </ax-dropdown-panel>\n </ax-button>\n\n @if(layoutService.isLarge()) {\n <ax-button (onClick)=\"vm.toggleDetailPanel()\">\n <ax-icon icon=\"{{ vm.isDetailPanelOpen() ? 'fa-solid fa-square-info' : 'fa-light fa-square-info' }}\"></ax-icon>\n </ax-button>\n }\n </axp-layout-suffix>\n </axp-page-toolbar>\n <axp-page-content class=\"ax-flex ax-flex-row ax-gap-2\">\n @if (isReady()) { @switch(vm.currentViewMode()) { @case('kanban') {\n <axm-task-board-kanban-view\n class=\"axp-kanban-container ax-h-full ax-w-full ax-min-w-0\"\n [tasks]=\"resolvedTasks()\"\n (onTaskClick)=\"vm.selectTask($event)\"\n (onActionClick)=\"handleContextMenu($event)\"\n ></axm-task-board-kanban-view>\n } @case('grid') {\n <axm-task-board-grid-view\n class=\"ax-h-full ax-w-full ax-min-w-0\"\n [dataSource]=\"gridDataSource\"\n (onTaskClick)=\"vm.selectTask($event)\"\n (onActionClick)=\"handleContextMenu($event)\"\n ></axm-task-board-grid-view>\n } @case('status-grouped-grid') {\n <axm-task-board-status-grouped-grid-view\n class=\"ax-flex ax-flex-col ax-gap-2 ax-w-full ax-min-w-0\"\n [dataSource]=\"gridDataSource\"\n (onActionClick)=\"handleContextMenu($event)\"\n ></axm-task-board-status-grouped-grid-view>\n } @default {\n <axm-task-board-calendar-view\n class=\"axp-scheduler-container ax-h-full ax-w-full ax-min-w-0\"\n [resources]=\"resources()\"\n [startingDate]=\"vm.currentDate()\"\n [dataSource]=\"schedulerDataSource\"\n (onTaskClick)=\"vm.selectTask($event)\"\n [selectedView]=\"vm.currentViewMode()\"\n (onActionClick)=\"handleContextMenu($event)\"\n (onTaskRightClick)=\"handleContextMenu($event)\"\n (component)=\"schedulerComponentChanged($event)\"\n (onMonthSlotDblClicked)=\"handleMonthSlotDblClicked($event)\"\n ></axm-task-board-calendar-view>\n } }\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 @if (vm.isDetailPanelOpen() && layoutService.isLarge()) {\n <axm-task-board-detail-panel></axm-task-board-detail-panel>\n } } @else {\n <div class=\"ax-flex ax-items-center ax-justify-center ax-w-full ax-h-full\">\n <ax-loading></ax-loading>\n </div>\n }\n </axp-page-content>\n</axp-page-layout>\n", styles: ["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)}.ax-single-range-calendar .ax-range-start,.ax-single-range-calendar .ax-range-end{color:rgba(var(--ax-sys-color-on-primary-surface))!important;background-color:rgba(var(--ax-sys-color-primary-surface),.85)!important}.ax-single-range-calendar .ax-range-start:hover,.ax-single-range-calendar .ax-range-end:hover{background-color:rgba(var(--ax-sys-color-primary-surface))!important}.ax-single-range-calendar .ax-range-start.ax-state-holiday,.ax-single-range-calendar .ax-range-end.ax-state-holiday{background-color:rgba(var(--ax-sys-color-danger-surface),.85)!important}.ax-single-range-calendar .ax-range-between{color:rgba(var(--ax-sys-color-on-primary-surface))!important;background-color:rgba(var(--ax-sys-color-primary-surface),.65)}.ax-single-range-calendar .ax-range-between.ax-state-holiday{background-color:rgba(var(--ax-sys-color-danger-surface),.65)}.ax-single-range-calendar ax-footer{display:flex;justify-content:center;border-color:rgba(var(--ax-comp-calendar-view-header-border-color));border-top-width:var(--ax-comp-calendar-view-header-border-width, 1px)}axp-page-content:not(:has(axm-task-board-status-grouped-grid-view,axm-task-board-time-grouped-grid-view)){overflow-y:hidden}\n"] }]
|
|
1281
1361
|
}] });
|
|
1282
1362
|
|
|
1283
1363
|
export { AXMTaskBoardPage };
|
|
1284
|
-
//# sourceMappingURL=acorex-modules-task-management-task-board.page-
|
|
1364
|
+
//# sourceMappingURL=acorex-modules-task-management-task-board.page-DSls9l9e.mjs.map
|