@acorex-platform/module-task-management-client 0.0.21
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-platform-module-task-management-client-acorex-platform-module-task-management-client-CIwafWli.mjs +4445 -0
- package/fesm2022/acorex-platform-module-task-management-client-acorex-platform-module-task-management-client-CIwafWli.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-task-management-client-contracts.mjs +183 -0
- package/fesm2022/acorex-platform-module-task-management-client-contracts.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-task-management-client-list-task-board-assignees.query-Ci8_D4Vs.mjs +129 -0
- package/fesm2022/acorex-platform-module-task-management-client-list-task-board-assignees.query-Ci8_D4Vs.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-task-management-client-list-task-board-reporters.query-C3NAYa9b.mjs +76 -0
- package/fesm2022/acorex-platform-module-task-management-client-list-task-board-reporters.query-C3NAYa9b.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-task-management-client-list-task-types.query-CKLUPrBU.mjs +53 -0
- package/fesm2022/acorex-platform-module-task-management-client-list-task-types.query-CKLUPrBU.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-task-management-client-start-task-flow.command-ChCuTFV-.mjs +114 -0
- package/fesm2022/acorex-platform-module-task-management-client-start-task-flow.command-ChCuTFV-.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-task-management-client-task-board.page-8I8H2pFq.mjs +2743 -0
- package/fesm2022/acorex-platform-module-task-management-client-task-board.page-8I8H2pFq.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-task-management-client.mjs +2 -0
- package/fesm2022/acorex-platform-module-task-management-client.mjs.map +1 -0
- package/package.json +28 -0
- package/types/acorex-platform-module-task-management-client-contracts.d.ts +318 -0
- package/types/acorex-platform-module-task-management-client.d.ts +850 -0
|
@@ -0,0 +1,850 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { InputSignal, Type, InjectionToken, ElementRef } from '@angular/core';
|
|
3
|
+
import * as i1$1 from '@angular/common';
|
|
4
|
+
import * as i1 from '@acorex-platform/framework-client/runtime';
|
|
5
|
+
import * as i3 from '@acorex-platform/module-calendar-management-client';
|
|
6
|
+
import * as i4 from '@acorex-platform/framework-client/layout/widget-core';
|
|
7
|
+
import { AXPLayoutBaseWidgetComponent } from '@acorex-platform/framework-client/layout/widget-core';
|
|
8
|
+
import { AXPMenuProvider, AXPMenuProviderContext, AXPSearchCommandProvider, AXPSearchResult, AXPSettingDefinitionProvider, AXPSettingDefinitionProviderContext, AXPSettingsService } from '@acorex-platform/framework-client/common';
|
|
9
|
+
import { AXMSecurityManagementUsersEntityModel } from '@acorex-platform/module-security-management-client/contracts';
|
|
10
|
+
import { AXPUserReference, AXPActionMenuItem, AXPExecuteCommand, AXPWidgetNode, AXPDefinitionCategory } from '@acorex-platform/framework-shared/core';
|
|
11
|
+
import { AXPWidgetColumnNode, AXPWidgetConfig } from '@acorex-platform/framework-shared/widget-core';
|
|
12
|
+
import { AXRange, AXPlacement, AXStyleColorType } from '@acorex/cdk/common';
|
|
13
|
+
import { AXSchedulerResource, AXSchedulerDateRange } from '@acorex/components/scheduler';
|
|
14
|
+
import { AXPCommand, AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';
|
|
15
|
+
import * as _acorex_platform_module_task_management_client from '@acorex-platform/module-task-management-client';
|
|
16
|
+
import * as _acorex_platform_module_dashboard_management_client from '@acorex-platform/module-dashboard-management-client';
|
|
17
|
+
import * as dist_libs_modules_dashboard_management_contracts_src from 'dist/libs/modules/dashboard-management/contracts/src';
|
|
18
|
+
import { AXMCommonDashboardEntityModel } from '@acorex-platform/module-dashboard-management-contracts';
|
|
19
|
+
import { AXPSessionService } from '@acorex-platform/framework-client/auth';
|
|
20
|
+
import { AXHolidayDate } from '@acorex/core/date-time';
|
|
21
|
+
import { Subject } from 'rxjs';
|
|
22
|
+
import { AXRowCommandItem, AXRowCommandItemClickEvent } from '@acorex/components/data-table';
|
|
23
|
+
import { AXFormatService } from '@acorex/core/format';
|
|
24
|
+
import { AXTranslationService } from '@acorex/core/translation';
|
|
25
|
+
|
|
26
|
+
declare class AXPTaskBoardModule {
|
|
27
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPTaskBoardModule, never>;
|
|
28
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AXPTaskBoardModule, never, [typeof i1.AXPRuntimeModule], never>;
|
|
29
|
+
static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXPTaskBoardModule>;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
declare class AXMTaskFeatureModule {
|
|
33
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMTaskFeatureModule, never>;
|
|
34
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AXMTaskFeatureModule, never, [typeof i1$1.CommonModule, typeof i1.AXPRuntimeModule], never>;
|
|
35
|
+
static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXMTaskFeatureModule>;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
declare class AXMTaskManagementModule {
|
|
39
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMTaskManagementModule, never>;
|
|
40
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AXMTaskManagementModule, never, [typeof i1$1.CommonModule, typeof AXPTaskBoardModule, typeof i3.AXMCalendarManagementModule, typeof i4.AXPWidgetCoreModule, typeof AXMTaskFeatureModule], never>;
|
|
41
|
+
static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXMTaskManagementModule>;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
declare class AXMTaskManagementMenuProvider implements AXPMenuProvider {
|
|
45
|
+
private entityService;
|
|
46
|
+
private sessionService;
|
|
47
|
+
private settingsService;
|
|
48
|
+
provide(context: AXPMenuProviderContext): Promise<void>;
|
|
49
|
+
private resolveTaskBoardMenuPath;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
declare class AXMSearchCommandProvider extends AXPSearchCommandProvider {
|
|
53
|
+
commands: AXPSearchResult[];
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
declare class AXMSettingProvider implements AXPSettingDefinitionProvider {
|
|
57
|
+
provide(context: AXPSettingDefinitionProviderContext): Promise<void>;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
type ResetTaskBoardFiltersAssignToCurrentUserInput = Record<string, never>;
|
|
61
|
+
declare const RESET_TASK_BOARD_FILTERS_ASSIGN_TO_CURRENT_USER_COMMAND_KEY: "TaskManagement.TaskBoard:ResetFiltersAssignToCurrentUser";
|
|
62
|
+
/**
|
|
63
|
+
* Clears task-board filters, scopes assignee to the signed-in user, and requests a board refresh.
|
|
64
|
+
*/
|
|
65
|
+
declare class ResetTaskBoardFiltersAssignToCurrentUserCommand implements AXPCommand<ResetTaskBoardFiltersAssignToCurrentUserInput, void> {
|
|
66
|
+
private readonly sessionService;
|
|
67
|
+
private readonly taskBoardService;
|
|
68
|
+
private readonly vm;
|
|
69
|
+
execute(_input?: ResetTaskBoardFiltersAssignToCurrentUserInput): AXPCommandExecuteResultPromise<void>;
|
|
70
|
+
private ensureTaskTypeForGroupedViews;
|
|
71
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ResetTaskBoardFiltersAssignToCurrentUserCommand, never>;
|
|
72
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<ResetTaskBoardFiltersAssignToCurrentUserCommand>;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/** Canonical task priority — matches workflow human-task activity values (normalized to lowercase). */
|
|
76
|
+
type AXPTaskPriority = 'low' | 'normal' | 'high' | 'urgent';
|
|
77
|
+
/** Task board row/card accent color source. */
|
|
78
|
+
type AXPTaskBoardColorBy = 'dueDate' | 'priority' | 'status';
|
|
79
|
+
interface AXPTaskDueStatusPresentation {
|
|
80
|
+
name: string;
|
|
81
|
+
title: string;
|
|
82
|
+
color: string;
|
|
83
|
+
icon?: string;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* A single label/value row rendered in a task popover metadata section.
|
|
87
|
+
*/
|
|
88
|
+
interface AXPTaskPopoverMetadataField {
|
|
89
|
+
name: string;
|
|
90
|
+
title: string;
|
|
91
|
+
node: AXPWidgetNode;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Widget definitions and context values for task popover metadata.
|
|
95
|
+
*/
|
|
96
|
+
interface AXPTaskPopoverMetadata {
|
|
97
|
+
context: Record<string, unknown>;
|
|
98
|
+
fields: AXPTaskPopoverMetadataField[];
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Extended action menu item for task board with priority support.
|
|
102
|
+
* Primary actions are shown as icon-only buttons, secondary actions are shown in a dropdown.
|
|
103
|
+
*/
|
|
104
|
+
type AXPTaskActionMenuItem = AXPActionMenuItem & {
|
|
105
|
+
priority?: 'primary' | 'secondary';
|
|
106
|
+
};
|
|
107
|
+
interface AXPAuditable {
|
|
108
|
+
createdAt?: Date;
|
|
109
|
+
updatedAt?: Date;
|
|
110
|
+
createdBy?: string;
|
|
111
|
+
updatedBy?: string;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Defines the structure of an extra field for a task.
|
|
115
|
+
*/
|
|
116
|
+
interface AXPExtraField {
|
|
117
|
+
title: string;
|
|
118
|
+
description?: string;
|
|
119
|
+
widget: AXPWidgetColumnNode;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Represents a single task in the system.
|
|
123
|
+
* @template T - The type of custom data associated with the task.
|
|
124
|
+
*/
|
|
125
|
+
interface AXPTask<T = Record<string, any>> extends AXPAuditable {
|
|
126
|
+
/**
|
|
127
|
+
* Unique identifier for the task. Should be immutable.
|
|
128
|
+
*/
|
|
129
|
+
readonly id: string | number;
|
|
130
|
+
/**
|
|
131
|
+
* The index of the task.
|
|
132
|
+
*/
|
|
133
|
+
index: number;
|
|
134
|
+
/**
|
|
135
|
+
* The title of the task.
|
|
136
|
+
*/
|
|
137
|
+
title: string;
|
|
138
|
+
/**
|
|
139
|
+
* A detailed description of the task, potentially supporting markdown.
|
|
140
|
+
*/
|
|
141
|
+
description?: string;
|
|
142
|
+
/**
|
|
143
|
+
* The current status of the task.
|
|
144
|
+
*/
|
|
145
|
+
status: {
|
|
146
|
+
id: string | number;
|
|
147
|
+
title: string;
|
|
148
|
+
/** Semantic chip/badge color token (e.g. warning, success). */
|
|
149
|
+
color?: string;
|
|
150
|
+
};
|
|
151
|
+
/**
|
|
152
|
+
* The user who is assigned to work on the task.
|
|
153
|
+
*/
|
|
154
|
+
assignee?: AXPUserReference;
|
|
155
|
+
/**
|
|
156
|
+
* The user who created or reported the task.
|
|
157
|
+
*/
|
|
158
|
+
reporter: AXPUserReference;
|
|
159
|
+
/**
|
|
160
|
+
* Other users involved or watching the task.
|
|
161
|
+
*/
|
|
162
|
+
participants?: AXPUserReference[];
|
|
163
|
+
/**
|
|
164
|
+
* The start date of the task.
|
|
165
|
+
*/
|
|
166
|
+
startDate: Date;
|
|
167
|
+
/**
|
|
168
|
+
* The end date or deadline of the task.
|
|
169
|
+
*/
|
|
170
|
+
endDate: Date;
|
|
171
|
+
/**
|
|
172
|
+
* Canonical task priority (single source with workflow human-task activities).
|
|
173
|
+
*/
|
|
174
|
+
priority?: AXPTaskPriority;
|
|
175
|
+
/**
|
|
176
|
+
* The progress of the task, from 0 to 100.
|
|
177
|
+
*/
|
|
178
|
+
progress?: number;
|
|
179
|
+
/**
|
|
180
|
+
* An array of tags for categorizing and filtering.
|
|
181
|
+
*/
|
|
182
|
+
tags?: string[];
|
|
183
|
+
/**
|
|
184
|
+
* Indicates if the task is an all-day event.
|
|
185
|
+
*/
|
|
186
|
+
allDay?: boolean;
|
|
187
|
+
/**
|
|
188
|
+
* A CSS class to apply to the task for custom styling.
|
|
189
|
+
*/
|
|
190
|
+
cssClass?: string;
|
|
191
|
+
/**
|
|
192
|
+
* Indicates if the task is read-only for the current user.
|
|
193
|
+
*/
|
|
194
|
+
readonly?: boolean;
|
|
195
|
+
/**
|
|
196
|
+
* Custom data associated with the task for extensibility.
|
|
197
|
+
*/
|
|
198
|
+
data?: T;
|
|
199
|
+
/**
|
|
200
|
+
* The name of the provider that owns this task.
|
|
201
|
+
*/
|
|
202
|
+
provider?: string;
|
|
203
|
+
/**
|
|
204
|
+
* The resource id associated with the task.
|
|
205
|
+
*/
|
|
206
|
+
resourceId?: string | number;
|
|
207
|
+
}
|
|
208
|
+
/** Task-board assignee/reporter picker item returned by queries and default loaders. */
|
|
209
|
+
interface AXPTaskBoardUserOption {
|
|
210
|
+
id: string | number;
|
|
211
|
+
displayName: string;
|
|
212
|
+
username?: string;
|
|
213
|
+
}
|
|
214
|
+
/** Due-status filter keys (aligned with {@link AXPDueStatusKey} in due-status module). */
|
|
215
|
+
type AXPTaskDueStatusFilterKey = 'completed' | 'no-due-date' | 'overdue' | 'due-today' | 'due-tomorrow' | 'due-this-week' | 'upcoming';
|
|
216
|
+
/**
|
|
217
|
+
* Defines the filter options for querying tasks.
|
|
218
|
+
*/
|
|
219
|
+
interface AXPTaskFilter {
|
|
220
|
+
range?: AXRange<Date>;
|
|
221
|
+
assigneeIds?: (string | number)[];
|
|
222
|
+
reporterIds?: (string | number)[];
|
|
223
|
+
tags?: string[];
|
|
224
|
+
types?: string[];
|
|
225
|
+
skip?: number;
|
|
226
|
+
take?: number;
|
|
227
|
+
priorities?: Array<AXPTaskPriority | 'no_priority'>;
|
|
228
|
+
dueStatusKeys?: AXPTaskDueStatusFilterKey[];
|
|
229
|
+
/** Filter by {@link AXPEntityReference.type} entity sources (e.g. `ProjectManagement.Project`). */
|
|
230
|
+
subjectRefTypes?: string[];
|
|
231
|
+
/** Filter by {@link AXPEntityReference.id} values. */
|
|
232
|
+
subjectRefIds?: string[];
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Represents an action performed on a task.
|
|
236
|
+
*/
|
|
237
|
+
interface AXPTaskAction {
|
|
238
|
+
nativeEvent: MouseEvent;
|
|
239
|
+
task: AXPTask;
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Represents the status of a task (e.g., a column on a Kanban board).
|
|
243
|
+
*/
|
|
244
|
+
interface AXPTaskStatus {
|
|
245
|
+
key: string;
|
|
246
|
+
index: number;
|
|
247
|
+
title: string;
|
|
248
|
+
color?: string;
|
|
249
|
+
}
|
|
250
|
+
interface AXPResource extends AXSchedulerResource {
|
|
251
|
+
readonly id: string | number;
|
|
252
|
+
title: string;
|
|
253
|
+
description?: string;
|
|
254
|
+
}
|
|
255
|
+
/** Resolved task-board provider metadata for filters, datasources, and display. */
|
|
256
|
+
interface AXPTaskBoardTaskTypeOption {
|
|
257
|
+
name: string;
|
|
258
|
+
title: string;
|
|
259
|
+
icon: string;
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* An abstract class for a workflow task provider, which is responsible for
|
|
263
|
+
* fetching and manipulating task data from a specific source.
|
|
264
|
+
* @template T - The type of custom data associated with the tasks.
|
|
265
|
+
*/
|
|
266
|
+
declare abstract class AXPWorkflowTaskProvider<T = Record<string, any>> {
|
|
267
|
+
/** Stable provider key used for filtering, events, and task.provider. */
|
|
268
|
+
abstract get name(): string;
|
|
269
|
+
abstract getTitle(): Promise<string>;
|
|
270
|
+
abstract getIcon(): Promise<string>;
|
|
271
|
+
private readonly eventService;
|
|
272
|
+
/**
|
|
273
|
+
* Retrieves a list of tasks based on the provided filter options.
|
|
274
|
+
* @param options - The filter options.
|
|
275
|
+
* @returns A promise that resolves with the list of tasks and the total count.
|
|
276
|
+
*/
|
|
277
|
+
abstract getTasks(options?: AXPTaskFilter): Promise<{
|
|
278
|
+
items: AXPTask<T>[];
|
|
279
|
+
total: number;
|
|
280
|
+
}>;
|
|
281
|
+
/**
|
|
282
|
+
* Returns a list of extra fields that can be displayed as columns for this provider's tasks.
|
|
283
|
+
* This defines the schema for custom data.
|
|
284
|
+
*/
|
|
285
|
+
abstract getExtraFields(): Promise<AXPExtraField[]>;
|
|
286
|
+
abstract getActions(context?: AXPTask<T>): Promise<AXPTaskActionMenuItem[]>;
|
|
287
|
+
abstract getStatuses(): Promise<AXPTaskStatus[]>;
|
|
288
|
+
getResources(): Promise<AXPResource[]>;
|
|
289
|
+
/**
|
|
290
|
+
* Updates a list of tasks.
|
|
291
|
+
* @param tasks - The tasks to update.
|
|
292
|
+
* @returns A promise that resolves with the updated tasks.
|
|
293
|
+
*/
|
|
294
|
+
abstract updateTasks(tasks: AXPTask<T>[]): Promise<AXPTask<T>[]>;
|
|
295
|
+
/**
|
|
296
|
+
* Executes a command on the task provider.
|
|
297
|
+
* @param command - The command to execute.
|
|
298
|
+
* @returns A promise that resolves with the result of the command execution.
|
|
299
|
+
*/
|
|
300
|
+
abstract executeCommand(command: AXPExecuteCommand): AXPCommandExecuteResultPromise;
|
|
301
|
+
/**
|
|
302
|
+
* Optional component to display in the task popover instead of the default popover content.
|
|
303
|
+
* The component must implement AXPTaskPopoverComponent interface and accept a task input.
|
|
304
|
+
* @returns A component type or a function that returns a component type (for lazy loading).
|
|
305
|
+
*/
|
|
306
|
+
getComponent?(): Type<AXPTaskPopoverComponent> | (() => Promise<Type<AXPTaskPopoverComponent>>) | null;
|
|
307
|
+
/**
|
|
308
|
+
* Optional metadata for custom task popovers: widget definitions and context values rendered in view mode.
|
|
309
|
+
*/
|
|
310
|
+
getPopoverMetadata?(task: AXPTask<T>): Promise<AXPTaskPopoverMetadata>;
|
|
311
|
+
refresh(): void;
|
|
312
|
+
close(): void;
|
|
313
|
+
/**
|
|
314
|
+
* Opens a task on the task board (after refresh, the board selects this task).
|
|
315
|
+
*/
|
|
316
|
+
protected requestTaskBoardOpenTask(task: AXPTask<T>): void;
|
|
317
|
+
}
|
|
318
|
+
/**
|
|
319
|
+
* Interface that task popover components must implement.
|
|
320
|
+
* Components provided by task providers should implement this interface to receive the task data.
|
|
321
|
+
*/
|
|
322
|
+
declare abstract class AXPTaskPopoverComponent {
|
|
323
|
+
private readonly eventService;
|
|
324
|
+
/**
|
|
325
|
+
* The task/appointment data to display in the popover.
|
|
326
|
+
*/
|
|
327
|
+
abstract task: InputSignal<AXPTask>;
|
|
328
|
+
/**
|
|
329
|
+
* Requests the task board to refresh popover/task data.
|
|
330
|
+
* Provider defaults to the current task provider.
|
|
331
|
+
*/
|
|
332
|
+
protected refreshPopover(provider?: string): void;
|
|
333
|
+
/**
|
|
334
|
+
* Requests the host task board view to close the active popover.
|
|
335
|
+
* Provider defaults to the current task provider.
|
|
336
|
+
*/
|
|
337
|
+
protected closePopover(provider?: string): void;
|
|
338
|
+
}
|
|
339
|
+
interface AXPWorkflowTaskProviderResolveOptions {
|
|
340
|
+
/** When true, clears workflow-definition caches and re-discovers providers. */
|
|
341
|
+
force?: boolean;
|
|
342
|
+
}
|
|
343
|
+
/**
|
|
344
|
+
* Optional resolver registered by workflow-management to discover task providers on demand.
|
|
345
|
+
*/
|
|
346
|
+
declare const AXP_WORKFLOW_TASK_PROVIDER_RESOLVER: InjectionToken<(options?: AXPWorkflowTaskProviderResolveOptions) => Promise<AXPWorkflowTaskProvider[]>>;
|
|
347
|
+
/**
|
|
348
|
+
* Injection token for registering multiple workflow task providers.
|
|
349
|
+
*/
|
|
350
|
+
declare const AXP_WORKFLOW_TASK_PROVIDER: InjectionToken<AXPWorkflowTaskProvider<Record<string, any>>[] | Promise<AXPWorkflowTaskProvider<Record<string, any>>>[]>;
|
|
351
|
+
|
|
352
|
+
type AXPDueStatusKey = 'completed' | 'no-due-date' | 'overdue' | 'due-today' | 'due-tomorrow' | 'due-this-week' | 'upcoming';
|
|
353
|
+
interface AXPDueStatusDefinition {
|
|
354
|
+
name: AXPDueStatusKey;
|
|
355
|
+
title: string;
|
|
356
|
+
color: string;
|
|
357
|
+
icon?: string;
|
|
358
|
+
order: number;
|
|
359
|
+
}
|
|
360
|
+
interface AXPDueStatusEvaluationContext {
|
|
361
|
+
now: Date;
|
|
362
|
+
dueDate?: Date | null;
|
|
363
|
+
hasExplicitDueDate: boolean;
|
|
364
|
+
bookmarkConsumed: boolean;
|
|
365
|
+
weekStartsOn: number;
|
|
366
|
+
}
|
|
367
|
+
interface AXPDueStatusPresentation {
|
|
368
|
+
name: AXPDueStatusKey;
|
|
369
|
+
title: string;
|
|
370
|
+
color: string;
|
|
371
|
+
icon?: string;
|
|
372
|
+
}
|
|
373
|
+
interface AXPDueStatusResolveOptions {
|
|
374
|
+
workflowDefinitionId?: string;
|
|
375
|
+
activityType?: string;
|
|
376
|
+
}
|
|
377
|
+
declare abstract class AXPDueStatusProvider {
|
|
378
|
+
abstract readonly key: string;
|
|
379
|
+
abstract readonly priority: number;
|
|
380
|
+
abstract getDefinitions(): AXPDueStatusDefinition[];
|
|
381
|
+
abstract resolve(context: AXPDueStatusEvaluationContext): AXPDueStatusDefinition | null;
|
|
382
|
+
}
|
|
383
|
+
declare const AXP_DUE_STATUS_PROVIDERS: InjectionToken<AXPDueStatusProvider[]>;
|
|
384
|
+
type AXPDueStatusFilterKey = AXPDueStatusKey;
|
|
385
|
+
declare function getTaskDueStatusKey(task: AXPTask): AXPDueStatusFilterKey | undefined;
|
|
386
|
+
declare function matchesTaskDueStatusFilter(task: AXPTask, dueStatusKeys: AXPDueStatusFilterKey[]): boolean;
|
|
387
|
+
|
|
388
|
+
declare function resolveDueStatusFromDefinitions(definitions: AXPDueStatusDefinition[], context: AXPDueStatusEvaluationContext): AXPDueStatusDefinition | null;
|
|
389
|
+
|
|
390
|
+
declare class AXMDefaultDueStatusProvider extends AXPDueStatusProvider {
|
|
391
|
+
readonly key = "default";
|
|
392
|
+
readonly priority = 0;
|
|
393
|
+
getDefinitions(): AXPDueStatusDefinition[];
|
|
394
|
+
resolve(context: AXPDueStatusEvaluationContext): AXPDueStatusDefinition | null;
|
|
395
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMDefaultDueStatusProvider, never>;
|
|
396
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXMDefaultDueStatusProvider>;
|
|
397
|
+
}
|
|
398
|
+
declare function getDefaultDueStatusDefinitions(): AXPDueStatusDefinition[];
|
|
399
|
+
|
|
400
|
+
declare class AXPDueStatusProviderService {
|
|
401
|
+
private readonly localeService;
|
|
402
|
+
private readonly registeredProviders;
|
|
403
|
+
private readonly fallbackProvider;
|
|
404
|
+
getDefinitions(options?: AXPDueStatusResolveOptions): ReturnType<AXPDueStatusProvider['getDefinitions']>;
|
|
405
|
+
resolveForTask(task: AXPTask, options?: AXPDueStatusResolveOptions): AXPDueStatusPresentation | null;
|
|
406
|
+
attachDueStatusToTask(task: AXPTask, options?: AXPDueStatusResolveOptions): AXPTask;
|
|
407
|
+
private selectProvider;
|
|
408
|
+
private resolveWeekStartsOn;
|
|
409
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPDueStatusProviderService, never>;
|
|
410
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPDueStatusProviderService>;
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
declare function resolveTaskBoardAccentColor(task: AXPTask, colorBy: AXPTaskBoardColorBy): string;
|
|
414
|
+
/** Maps a color token to a static BEM class backed by Tailwind @apply rules in task-board-surface.css. */
|
|
415
|
+
declare function buildTaskSurfaceCssClass(colorToken: string): string;
|
|
416
|
+
/** Accent stripe modifier for dashboard widget rows. */
|
|
417
|
+
declare function buildTaskAccentSurfaceCssClass(colorToken: string): string;
|
|
418
|
+
/** @deprecated Use {@link buildTaskSurfaceCssClass}. */
|
|
419
|
+
declare function buildTaskAccentCssClass(colorToken: string): string;
|
|
420
|
+
|
|
421
|
+
/** Sentinel id for the task-board assignee filter option: tasks with no assignee. */
|
|
422
|
+
declare const AXM_TASK_BOARD_UNASSIGNED_ASSIGNEE_ID = "TaskManagement:TaskBoard:Assignee:Unassigned";
|
|
423
|
+
/** Permission to view and filter tasks across all assignees on the task board. */
|
|
424
|
+
declare const AXM_TASK_VIEW_ALL_PERMISSION: "ProjectsWork:Permission:ViewAllTasks";
|
|
425
|
+
/**
|
|
426
|
+
* Returns whether the current session may filter tasks by any assignee.
|
|
427
|
+
*/
|
|
428
|
+
declare function canViewAllTaskAssignees(sessionService: AXPSessionService): boolean;
|
|
429
|
+
declare function isTaskBoardUnassignedAssigneeId(id: string | number): boolean;
|
|
430
|
+
/** Whether the user has a persisted assignee filter (including an explicit empty selection). */
|
|
431
|
+
declare function hasTaskBoardSavedAssigneePreference(savedAssigneeIds: (string | number)[] | null | undefined): boolean;
|
|
432
|
+
/**
|
|
433
|
+
* Resolves saved assignee ids from settings. When the setting is unset (`undefined`/`null`):
|
|
434
|
+
* - Users with view-all permission default to no assignee filter (all tasks).
|
|
435
|
+
* - Everyone else defaults to the signed-in user only.
|
|
436
|
+
* An explicit empty array means "no assignee filter" only for view-all users;
|
|
437
|
+
* for everyone else it is coerced to the signed-in user.
|
|
438
|
+
*/
|
|
439
|
+
declare function resolveTaskBoardSavedAssigneeIds(sessionService: AXPSessionService, savedAssigneeIds: (string | number)[] | null | undefined): (string | number)[];
|
|
440
|
+
/** Assignee picker item for the signed-in user (used by task-board assignee datasource). */
|
|
441
|
+
declare function resolveTaskBoardCurrentUserAssigneeItem(sessionService: AXPSessionService): {
|
|
442
|
+
id: string;
|
|
443
|
+
displayName: string;
|
|
444
|
+
username: string;
|
|
445
|
+
} | null;
|
|
446
|
+
/**
|
|
447
|
+
* Restricts assignee filter ids to the current user when {@link canViewAllTaskAssignees} is false.
|
|
448
|
+
* Strips the unassigned sentinel for users without view-all permission.
|
|
449
|
+
* Empty selection is only allowed for view-all users (means all assignees).
|
|
450
|
+
*/
|
|
451
|
+
declare function normalizeTaskBoardAssigneeIds(sessionService: AXPSessionService, assigneeIds: (string | number)[]): (string | number)[];
|
|
452
|
+
/**
|
|
453
|
+
* Whether a task matches the selected assignee filter ids (OR semantics).
|
|
454
|
+
* Supports {@link AXM_TASK_BOARD_UNASSIGNED_ASSIGNEE_ID} for tasks without an assignee.
|
|
455
|
+
*/
|
|
456
|
+
declare function matchesTaskBoardAssigneeFilter(assigneeId: string | undefined | null, filterIds: (string | number)[]): boolean;
|
|
457
|
+
/**
|
|
458
|
+
* Whether a workflow task matches assignee filters using assigned/candidate user ids.
|
|
459
|
+
*/
|
|
460
|
+
declare function matchesTaskBoardAssigneeUserIdsFilter(userIds: string[], filterIds: (string | number)[]): boolean;
|
|
461
|
+
|
|
462
|
+
declare class AXPTaskBoardService {
|
|
463
|
+
private calendarService;
|
|
464
|
+
private calendarManagementService;
|
|
465
|
+
private readonly injector;
|
|
466
|
+
private readonly providerResolver;
|
|
467
|
+
private readonly destroyRef;
|
|
468
|
+
private readonly eventService;
|
|
469
|
+
private readonly entityEvents;
|
|
470
|
+
/** Cached resolved providers; set after first call to resolveProviders(). */
|
|
471
|
+
private resolvedProviders;
|
|
472
|
+
/** Cached resolved provider metadata; set together with {@link resolvedProviders}. */
|
|
473
|
+
private resolvedTaskTypeOptions;
|
|
474
|
+
private readonly taskResultCache;
|
|
475
|
+
private readonly taskResultInFlight;
|
|
476
|
+
private readonly taskCacheTtlMs;
|
|
477
|
+
private calendarEventTypesCache;
|
|
478
|
+
private calendarEventTypesInFlight;
|
|
479
|
+
refresh$: Subject<{
|
|
480
|
+
provider?: string;
|
|
481
|
+
}>;
|
|
482
|
+
close$: Subject<{
|
|
483
|
+
provider?: string;
|
|
484
|
+
}>;
|
|
485
|
+
openTask$: Subject<{
|
|
486
|
+
provider?: string;
|
|
487
|
+
task?: AXPTask;
|
|
488
|
+
instanceId?: string;
|
|
489
|
+
activityId?: string;
|
|
490
|
+
bookmarkId?: string;
|
|
491
|
+
}>;
|
|
492
|
+
constructor();
|
|
493
|
+
/**
|
|
494
|
+
* Requests task board refresh through broadcast events.
|
|
495
|
+
*/
|
|
496
|
+
requestRefresh(provider?: string): void;
|
|
497
|
+
/**
|
|
498
|
+
* Requests active task popover close through broadcast events.
|
|
499
|
+
*/
|
|
500
|
+
requestClose(provider?: string): void;
|
|
501
|
+
/**
|
|
502
|
+
* Opens a task on the task board (refresh, then select the task in the active view).
|
|
503
|
+
*/
|
|
504
|
+
requestOpenTask(taskOrRef: AXPTask | {
|
|
505
|
+
instanceId: string;
|
|
506
|
+
activityId: string;
|
|
507
|
+
provider?: string;
|
|
508
|
+
bookmarkId?: string;
|
|
509
|
+
}, provider?: string): void;
|
|
510
|
+
/** Clears cached workflow task providers so the next resolve re-reads DI registrations. */
|
|
511
|
+
clearProviderCache(): void;
|
|
512
|
+
/** Clears cached task query results and calendar metadata. */
|
|
513
|
+
invalidateTaskCache(): void;
|
|
514
|
+
/**
|
|
515
|
+
* Resolves workflow task providers. Uses the optional workflow resolver when registered so discovery
|
|
516
|
+
* can be re-run after workflow definitions become available (first app load before mock seed).
|
|
517
|
+
*/
|
|
518
|
+
resolveProviders(options?: AXPWorkflowTaskProviderResolveOptions): Promise<AXPWorkflowTaskProvider[]>;
|
|
519
|
+
private resolveTaskTypeOptions;
|
|
520
|
+
private getInjectedProviderEntries;
|
|
521
|
+
private flattenProviderEntries;
|
|
522
|
+
getTaskTypes(options?: AXPWorkflowTaskProviderResolveOptions): Promise<AXPWorkflowTaskProvider[]>;
|
|
523
|
+
/**
|
|
524
|
+
* Resolved provider metadata for UI filters and datasources.
|
|
525
|
+
* Call {@link resolveProviders} or {@link getTaskTypes} first.
|
|
526
|
+
*/
|
|
527
|
+
getTaskTypeOptions(): AXPTaskBoardTaskTypeOption[];
|
|
528
|
+
getTaskTypeOption(name: string | undefined): AXPTaskBoardTaskTypeOption | null;
|
|
529
|
+
getTasks(options?: AXPTaskFilter): Promise<{
|
|
530
|
+
items: AXPTask[];
|
|
531
|
+
total: number;
|
|
532
|
+
}>;
|
|
533
|
+
private fetchTasksFromProviders;
|
|
534
|
+
updateTaskDateRange(task: AXPTask, range: AXSchedulerDateRange): Promise<AXPTask>;
|
|
535
|
+
updateTasks(tasks: AXPTask[]): Promise<AXPTask[]>;
|
|
536
|
+
executeCommand(command: AXPExecuteCommand, providerName: string): AXPCommandExecuteResultPromise;
|
|
537
|
+
getStatusName(key: any, providerName: string): Promise<string | null>;
|
|
538
|
+
getEvents(range: AXRange<Date>, eventTypeIds?: string[]): Promise<AXHolidayDate[]>;
|
|
539
|
+
getCalendarEventTypes(): Promise<{
|
|
540
|
+
id: string;
|
|
541
|
+
title: string;
|
|
542
|
+
color?: string;
|
|
543
|
+
icon?: string;
|
|
544
|
+
}[]>;
|
|
545
|
+
/**
|
|
546
|
+
* Returns the provider by name. Uses cached resolved providers; returns null if not resolved yet.
|
|
547
|
+
* Ensure resolveProviders() has been called (e.g. via getTaskTypes() or getTasks()) before using this.
|
|
548
|
+
*/
|
|
549
|
+
getProvider(name: string | undefined): AXPWorkflowTaskProvider | null;
|
|
550
|
+
rangeCalculator(type: string): AXRange<Date> | undefined;
|
|
551
|
+
getResources(providerName: string): Promise<AXPResource[]>;
|
|
552
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPTaskBoardService, never>;
|
|
553
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPTaskBoardService>;
|
|
554
|
+
}
|
|
555
|
+
|
|
556
|
+
declare class AXMTaskBoardDefaultTaskPopoverComponent extends AXPTaskPopoverComponent {
|
|
557
|
+
task: _angular_core.InputSignal<AXPTask<Record<string, any>>>;
|
|
558
|
+
private readonly taskBoardService;
|
|
559
|
+
private readonly calendarService;
|
|
560
|
+
protected readonly taskActions: _angular_core.WritableSignal<AXPTaskActionMenuItem[]>;
|
|
561
|
+
protected readonly primaryActions: _angular_core.Signal<AXPTaskActionMenuItem[]>;
|
|
562
|
+
protected readonly secondaryActions: _angular_core.Signal<AXPTaskActionMenuItem[]>;
|
|
563
|
+
constructor();
|
|
564
|
+
protected getActionColor(action: AXPTaskActionMenuItem): string | null;
|
|
565
|
+
protected executeAction(action: AXPTaskActionMenuItem): Promise<void>;
|
|
566
|
+
protected formatDateRange(task: AXPTask): string;
|
|
567
|
+
private formatTime;
|
|
568
|
+
private formatDate;
|
|
569
|
+
private formatDateTime;
|
|
570
|
+
private isMultiDay;
|
|
571
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMTaskBoardDefaultTaskPopoverComponent, never>;
|
|
572
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXMTaskBoardDefaultTaskPopoverComponent, "axm-task-board-default-task-popover", never, { "task": { "alias": "task"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
573
|
+
}
|
|
574
|
+
/**
|
|
575
|
+
* Resolves the popover component for a task: provider custom component or the default task popover.
|
|
576
|
+
*/
|
|
577
|
+
declare function resolveTaskPopoverComponent(task: AXPTask, taskBoardService: AXPTaskBoardService): Promise<Type<AXPTaskPopoverComponent>>;
|
|
578
|
+
|
|
579
|
+
/** Width for a single icon-only row action column. */
|
|
580
|
+
declare const TASK_BOARD_GRID_ROW_ACTION_COLUMN_WIDTH = "70px";
|
|
581
|
+
/** Icon-only command that opens the task details popover. */
|
|
582
|
+
declare const TASK_BOARD_GRID_ROW_VIEW_ACTION: AXRowCommandItem;
|
|
583
|
+
declare const TASK_BOARD_GRID_ROW_ACTION_ITEMS: AXRowCommandItem[];
|
|
584
|
+
|
|
585
|
+
type AXPPriorityFilterKey = AXPTaskPriority | 'no_priority';
|
|
586
|
+
declare const AXPTASK_PRIORITIES: readonly AXPTaskPriority[];
|
|
587
|
+
declare const TASK_PRIORITY_ORDER: Record<AXPPriorityFilterKey, number>;
|
|
588
|
+
/** Normalizes workflow or legacy task-board priority values to the canonical enum. */
|
|
589
|
+
declare function normalizeTaskPriority(value: unknown): AXPTaskPriority;
|
|
590
|
+
declare function getTaskPriorityColor(priority: AXPTaskPriority): string;
|
|
591
|
+
/** Maps persisted or query-string priority filter keys to the canonical filter enum. */
|
|
592
|
+
declare function normalizePriorityFilterKey(value: unknown): AXPPriorityFilterKey;
|
|
593
|
+
declare function normalizePriorityFilterKeys(values: unknown[] | undefined): AXPPriorityFilterKey[];
|
|
594
|
+
declare function getTaskPriorityFilterKey(task: AXPTask): AXPPriorityFilterKey;
|
|
595
|
+
declare function matchesTaskPriorityFilter(task: AXPTask, priorities: AXPPriorityFilterKey[]): boolean;
|
|
596
|
+
|
|
597
|
+
/** Maps entity status semantic colors to badge/chip tokens (`info` → `accent3`). */
|
|
598
|
+
declare function mapEntityStatusColorForBadge(color: string | undefined, statusId: string | number): string;
|
|
599
|
+
declare function resolveDefaultTaskStatusColor(statusId: string | number): string;
|
|
600
|
+
/** Resolves the chip color for a task row, aligned with workflow popover badge layout. */
|
|
601
|
+
declare function resolveTaskBoardStatusColor(task: AXPTask): string;
|
|
602
|
+
/** Calendar placement for tasks without an explicit due date (received/created day, all-day). */
|
|
603
|
+
declare function resolveTaskBoardCalendarPlacement(task: AXPTask): Pick<AXPTask, 'startDate' | 'endDate' | 'allDay'>;
|
|
604
|
+
/**
|
|
605
|
+
* Returns tasks whose effective scheduling range overlaps the filter range (inclusive).
|
|
606
|
+
* Open tasks without an explicit due date are always included (widget-style visibility).
|
|
607
|
+
*/
|
|
608
|
+
declare function resolveTaskBoardSchedulingRange(task: AXPTask): {
|
|
609
|
+
from: Date;
|
|
610
|
+
end: Date;
|
|
611
|
+
};
|
|
612
|
+
/** Whether a task should appear for the task board's active date navigator range. */
|
|
613
|
+
declare function taskOverlapsFilterRange(task: AXPTask, range?: AXRange<Date>): boolean;
|
|
614
|
+
declare function filterTasksOverlappingRange<T extends AXPTask>(tasks: T[], range?: AXRange<Date>): T[];
|
|
615
|
+
|
|
616
|
+
/** Resolves MLS and formats dates at display time so task labels react to locale changes. */
|
|
617
|
+
declare function formatTaskI18nParamsForTranslate(raw: Record<string, unknown> | undefined, translationService: AXTranslationService, formatService: AXFormatService, settingsService: AXPSettingsService): Promise<Record<string, string>>;
|
|
618
|
+
declare function getTaskTranslationKey(task: AXPTask, field: 'title' | 'description'): string | undefined;
|
|
619
|
+
/** Resolves scheduler/kanban labels; popovers should use the translate pipe with {@link getTaskTranslationKey}. */
|
|
620
|
+
declare function resolveTaskBoardSchedulerLabels(tasks: AXPTask[], translationService: AXTranslationService, formatService: AXFormatService, settingsService: AXPSettingsService): Promise<AXPTask[]>;
|
|
621
|
+
declare function enrichTaskBoardTasks(tasks: AXPTask[], colorBy: AXPTaskBoardColorBy, dueStatusProviderService: AXPDueStatusProviderService): AXPTask[];
|
|
622
|
+
|
|
623
|
+
/** Anchor for overlay positioning: native element, ElementRef, or component host via `getHostElement()`. */
|
|
624
|
+
type AXMTaskPopoverAnchor = Element | ElementRef<HTMLElement>;
|
|
625
|
+
interface AXMOpenTaskPopoverOverlayOptions {
|
|
626
|
+
task: AXPTask;
|
|
627
|
+
anchor: AXMTaskPopoverAnchor;
|
|
628
|
+
/** Default: `bottom-start` (below anchor, aligned to the left / start edge). */
|
|
629
|
+
placement?: AXPlacement;
|
|
630
|
+
offsetX?: number;
|
|
631
|
+
offsetY?: number;
|
|
632
|
+
adaptivityEnabled?: boolean;
|
|
633
|
+
autoFlip?: boolean;
|
|
634
|
+
}
|
|
635
|
+
/**
|
|
636
|
+
* Opens task-board task popovers via {@link AXOverlayService}, matching {@link AXPopoverComponent} anchor positioning.
|
|
637
|
+
*/
|
|
638
|
+
declare class AXMTaskBoardTaskPopoverOverlayService {
|
|
639
|
+
private readonly overlayService;
|
|
640
|
+
private readonly taskBoardService;
|
|
641
|
+
private readonly platform;
|
|
642
|
+
private readonly document;
|
|
643
|
+
private overlayRef;
|
|
644
|
+
private shellRef;
|
|
645
|
+
private activeTask;
|
|
646
|
+
private anchorElement;
|
|
647
|
+
private outsideClickHandler;
|
|
648
|
+
private keydownHandler;
|
|
649
|
+
getActiveTask(): AXPTask | null;
|
|
650
|
+
isOpen(): boolean;
|
|
651
|
+
open(options: AXMOpenTaskPopoverOverlayOptions): Promise<void>;
|
|
652
|
+
refreshTask(task: AXPTask): Promise<void>;
|
|
653
|
+
close(): void;
|
|
654
|
+
/**
|
|
655
|
+
* Normalizes an anchor to a host {@link HTMLElement} for {@link AXOverlayService}.
|
|
656
|
+
*/
|
|
657
|
+
resolveAnchorElement(anchor: AXMTaskPopoverAnchor): HTMLElement | null;
|
|
658
|
+
/**
|
|
659
|
+
* Resolves an overlay anchor from a grid command-column click.
|
|
660
|
+
*/
|
|
661
|
+
resolveAnchorFromCommandClick(event: AXRowCommandItemClickEvent): HTMLElement | undefined;
|
|
662
|
+
/**
|
|
663
|
+
* Resolves an overlay anchor from a native click (e.g. command button in a data table cell).
|
|
664
|
+
*/
|
|
665
|
+
resolveAnchor(nativeEvent?: MouseEvent | null, htmlElement?: HTMLElement | null): HTMLElement | undefined;
|
|
666
|
+
private bindDismissHandlers;
|
|
667
|
+
/** Dropdown menus render outside the popover overlay; ignore those clicks when dismissing. */
|
|
668
|
+
private isInsideTaskPopoverInteractiveSurface;
|
|
669
|
+
private removeDismissHandlers;
|
|
670
|
+
private handleOverlayDisposed;
|
|
671
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMTaskBoardTaskPopoverOverlayService, never>;
|
|
672
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXMTaskBoardTaskPopoverOverlayService>;
|
|
673
|
+
}
|
|
674
|
+
|
|
675
|
+
declare class AXMTaskBoardTaskPopoverShellComponent {
|
|
676
|
+
task: _angular_core.InputSignal<AXPTask<Record<string, any>>>;
|
|
677
|
+
bodyComponent: _angular_core.InputSignal<Type<AXPTaskPopoverComponent>>;
|
|
678
|
+
requestClose: _angular_core.InputSignal<() => void>;
|
|
679
|
+
private readonly localeService;
|
|
680
|
+
private readonly formatService;
|
|
681
|
+
private readonly settingsService;
|
|
682
|
+
private readonly translationService;
|
|
683
|
+
protected readonly i18nParams: _angular_core.WritableSignal<Record<string, string>>;
|
|
684
|
+
protected readonly titleKey: _angular_core.Signal<string | undefined>;
|
|
685
|
+
protected readonly bodyInputs: _angular_core.Signal<{
|
|
686
|
+
task: AXPTask<Record<string, any>>;
|
|
687
|
+
}>;
|
|
688
|
+
private readonly i18nParamsEffect;
|
|
689
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMTaskBoardTaskPopoverShellComponent, never>;
|
|
690
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXMTaskBoardTaskPopoverShellComponent, "axm-task-board-task-popover-shell", never, { "task": { "alias": "task"; "required": true; "isSignal": true; }; "bodyComponent": { "alias": "bodyComponent"; "required": true; "isSignal": true; }; "requestClose": { "alias": "requestClose"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
691
|
+
}
|
|
692
|
+
|
|
693
|
+
/**
|
|
694
|
+
* Feeds the platform task board from persisted {@link TaskManagement.Task} rows.
|
|
695
|
+
*/
|
|
696
|
+
declare class AXPTaskManagementEntityTaskProvider extends AXPWorkflowTaskProvider<Record<string, unknown>> {
|
|
697
|
+
getTitle(): Promise<string>;
|
|
698
|
+
getIcon(): Promise<string>;
|
|
699
|
+
private readonly entityService;
|
|
700
|
+
private readonly calendarService;
|
|
701
|
+
private readonly dueStatusProviderService;
|
|
702
|
+
get name(): string;
|
|
703
|
+
getTasks(options?: AXPTaskFilter): Promise<{
|
|
704
|
+
items: AXPTask<Record<string, unknown>>[];
|
|
705
|
+
total: number;
|
|
706
|
+
}>;
|
|
707
|
+
updateTasks(tasksToUpdate: AXPTask<Record<string, unknown>>[]): Promise<AXPTask<Record<string, unknown>>[]>;
|
|
708
|
+
getStatuses(): Promise<AXPTaskStatus[]>;
|
|
709
|
+
getExtraFields(): Promise<AXPExtraField[]>;
|
|
710
|
+
executeCommand(command: AXPExecuteCommand): AXPCommandExecuteResultPromise;
|
|
711
|
+
getActions(task?: AXPTask<Record<string, unknown>>): Promise<AXPActionMenuItem[]>;
|
|
712
|
+
private mapRowToTask;
|
|
713
|
+
private mapPriority;
|
|
714
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPTaskManagementEntityTaskProvider, never>;
|
|
715
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPTaskManagementEntityTaskProvider>;
|
|
716
|
+
}
|
|
717
|
+
|
|
718
|
+
type TaskPriority = NonNullable<AXPTask['priority']>;
|
|
719
|
+
type PriorityFilterKey = TaskPriority | 'no_priority';
|
|
720
|
+
type Priority = {
|
|
721
|
+
title: string;
|
|
722
|
+
name: PriorityFilterKey;
|
|
723
|
+
};
|
|
724
|
+
type TaskType$1 = {
|
|
725
|
+
name: string;
|
|
726
|
+
title: string;
|
|
727
|
+
icon: string;
|
|
728
|
+
};
|
|
729
|
+
type Assignee$1 = AXMSecurityManagementUsersEntityModel & {
|
|
730
|
+
displayName: string;
|
|
731
|
+
};
|
|
732
|
+
type DateRange = {
|
|
733
|
+
title: string;
|
|
734
|
+
name: string;
|
|
735
|
+
};
|
|
736
|
+
type QueryParam = {
|
|
737
|
+
type?: string[];
|
|
738
|
+
dateRange: string;
|
|
739
|
+
assignee?: string[];
|
|
740
|
+
priority?: PriorityFilterKey[];
|
|
741
|
+
};
|
|
742
|
+
declare class AXPTaskBoardShortcutViewComponent extends AXPLayoutBaseWidgetComponent {
|
|
743
|
+
#private;
|
|
744
|
+
private readonly taskBoardService;
|
|
745
|
+
private readonly sessionService;
|
|
746
|
+
protected tasksCount: _angular_core.WritableSignal<number>;
|
|
747
|
+
protected readonly assignee: _angular_core.Signal<Assignee$1[]>;
|
|
748
|
+
protected readonly priority: _angular_core.Signal<Priority[]>;
|
|
749
|
+
protected readonly selectedTaskTypes: _angular_core.Signal<TaskType$1[]>;
|
|
750
|
+
protected readonly dateRange: _angular_core.Signal<DateRange>;
|
|
751
|
+
protected readonly title: _angular_core.Signal<string>;
|
|
752
|
+
protected readonly queryParams: _angular_core.Signal<QueryParam>;
|
|
753
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPTaskBoardShortcutViewComponent, never>;
|
|
754
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPTaskBoardShortcutViewComponent, "ng-component", never, {}, {}, never, never, true, never>;
|
|
755
|
+
}
|
|
756
|
+
|
|
757
|
+
declare const AXPTaskBoardShortcut: AXPWidgetConfig;
|
|
758
|
+
|
|
759
|
+
type SortBy = {
|
|
760
|
+
title: string;
|
|
761
|
+
name: 'priority' | 'dueDate';
|
|
762
|
+
};
|
|
763
|
+
type TaskType = {
|
|
764
|
+
name: string;
|
|
765
|
+
title: string;
|
|
766
|
+
icon: string;
|
|
767
|
+
};
|
|
768
|
+
type Assignee = AXMSecurityManagementUsersEntityModel & {
|
|
769
|
+
displayName: string;
|
|
770
|
+
};
|
|
771
|
+
declare class AXPTaskBoardWidgetViewComponent extends AXPLayoutBaseWidgetComponent {
|
|
772
|
+
#private;
|
|
773
|
+
taskClick: _angular_core.OutputEmitterRef<AXPTask<Record<string, any>>>;
|
|
774
|
+
private readonly taskBoardService;
|
|
775
|
+
private readonly taskPopoverOverlay;
|
|
776
|
+
private readonly dueStatusProviderService;
|
|
777
|
+
private readonly settingsService;
|
|
778
|
+
private readonly formatService;
|
|
779
|
+
private readonly translationService;
|
|
780
|
+
private readonly localeService;
|
|
781
|
+
private readonly destroyRef;
|
|
782
|
+
protected readonly maxItems: _angular_core.Signal<number>;
|
|
783
|
+
protected readonly assignee: _angular_core.Signal<Assignee[]>;
|
|
784
|
+
protected readonly selectedTaskTypes: _angular_core.Signal<TaskType[]>;
|
|
785
|
+
protected readonly sortBy: _angular_core.Signal<SortBy>;
|
|
786
|
+
protected readonly widgetColorBy: _angular_core.Signal<AXPTaskBoardColorBy | undefined>;
|
|
787
|
+
private readonly globalColorBy;
|
|
788
|
+
private readonly allTasks;
|
|
789
|
+
protected readonly selectedPriorities: _angular_core.WritableSignal<Set<AXPPriorityFilterKey>>;
|
|
790
|
+
protected readonly selectedDueStatuses: _angular_core.WritableSignal<Set<_acorex_platform_module_task_management_client.AXPDueStatusKey>>;
|
|
791
|
+
protected readonly effectiveColorBy: _angular_core.Signal<AXPTaskBoardColorBy>;
|
|
792
|
+
protected readonly filteredTasks: _angular_core.Signal<AXPTask<Record<string, unknown>>[]>;
|
|
793
|
+
protected readonly priorityBadges: _angular_core.Signal<{
|
|
794
|
+
name: AXPPriorityFilterKey;
|
|
795
|
+
label: string;
|
|
796
|
+
count: number;
|
|
797
|
+
color: AXStyleColorType;
|
|
798
|
+
}[]>;
|
|
799
|
+
protected readonly dueStatusBadges: _angular_core.Signal<{
|
|
800
|
+
name: _acorex_platform_module_task_management_client.AXPDueStatusKey;
|
|
801
|
+
label: string;
|
|
802
|
+
count: number;
|
|
803
|
+
color: AXStyleColorType;
|
|
804
|
+
}[]>;
|
|
805
|
+
protected readonly hasFilterToolbar: _angular_core.Signal<boolean>;
|
|
806
|
+
protected readonly hasNarrowedFilters: _angular_core.Signal<boolean>;
|
|
807
|
+
constructor();
|
|
808
|
+
protected onPriorityFilterChange(priorityKey: AXPPriorityFilterKey): void;
|
|
809
|
+
protected onDueStatusFilterChange(dueStatusKey: AXPDueStatusFilterKey): void;
|
|
810
|
+
protected isPriorityFilterActive(priorityKey: AXPPriorityFilterKey): boolean;
|
|
811
|
+
protected isDueStatusFilterActive(dueStatusKey: AXPDueStatusFilterKey): boolean;
|
|
812
|
+
protected resetFilters(): void;
|
|
813
|
+
protected onTaskClick(task: AXPTask, event: MouseEvent): Promise<void>;
|
|
814
|
+
protected getStatusColor(task: AXPTask): AXStyleColorType;
|
|
815
|
+
protected getAccentClass(task: AXPTask): string;
|
|
816
|
+
protected hasExplicitDueDate(task: AXPTask): boolean;
|
|
817
|
+
protected getProviderTitle(task: AXPTask): string | null;
|
|
818
|
+
protected getProviderIcon(task: AXPTask): string;
|
|
819
|
+
private getTypeFilteredTasks;
|
|
820
|
+
private handleBoardRefresh;
|
|
821
|
+
private reloadTasks;
|
|
822
|
+
private compareByPriority;
|
|
823
|
+
private compareByDueDate;
|
|
824
|
+
private sortTasks;
|
|
825
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPTaskBoardWidgetViewComponent, never>;
|
|
826
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPTaskBoardWidgetViewComponent, "ng-component", never, {}, { "taskClick": "taskClick"; }, never, never, true, never>;
|
|
827
|
+
}
|
|
828
|
+
|
|
829
|
+
declare const AXPTaskBoardWidget: AXPWidgetConfig;
|
|
830
|
+
|
|
831
|
+
/**
|
|
832
|
+
* Parent tab for task-management dashboard widgets in the widget gallery.
|
|
833
|
+
*/
|
|
834
|
+
declare const AXP_TASK_MANAGEMENT_DASHBOARD_WIDGET_CATEGORY: AXPDefinitionCategory;
|
|
835
|
+
|
|
836
|
+
declare const AXP_TASK_MANAGEMENT_DASHBOARD_SUB_SHORTCUT: AXPDefinitionCategory;
|
|
837
|
+
declare const AXP_TASK_MANAGEMENT_DASHBOARD_SUB_BOARD: AXPDefinitionCategory;
|
|
838
|
+
|
|
839
|
+
/** Task board list tile. */
|
|
840
|
+
declare const AXP_TASK_BOARD_DIMENSIONS: Required<Partial<Record<dist_libs_modules_dashboard_management_contracts_src.AXMDashboardBreakpoint, _acorex_platform_module_dashboard_management_client.AXPDashboardBreakpointDimensions>>>;
|
|
841
|
+
/** Filtered task-board shortcut launcher. */
|
|
842
|
+
declare const AXP_TASK_BOARD_SHORTCUT_DIMENSIONS: Required<Partial<Record<dist_libs_modules_dashboard_management_contracts_src.AXMDashboardBreakpoint, _acorex_platform_module_dashboard_management_client.AXPDashboardBreakpointDimensions>>>;
|
|
843
|
+
|
|
844
|
+
type DashboardSeedWidget = AXMCommonDashboardEntityModel['widgets'][number];
|
|
845
|
+
type DashboardSeedGridSize = readonly [width: number, height: number];
|
|
846
|
+
declare function buildTaskBoardWidget(id: string, x: number, y: number, size?: DashboardSeedGridSize, title?: string): DashboardSeedWidget;
|
|
847
|
+
declare function buildTaskBoardShortcutWidget(id: string, x: number, y: number, size?: DashboardSeedGridSize): DashboardSeedWidget;
|
|
848
|
+
|
|
849
|
+
export { AXMDefaultDueStatusProvider, AXMSearchCommandProvider, AXMSettingProvider, AXMTaskBoardDefaultTaskPopoverComponent, AXMTaskBoardTaskPopoverOverlayService, AXMTaskBoardTaskPopoverShellComponent, AXMTaskManagementMenuProvider, AXMTaskManagementModule, AXM_TASK_BOARD_UNASSIGNED_ASSIGNEE_ID, AXM_TASK_VIEW_ALL_PERMISSION, AXPDueStatusProvider, AXPDueStatusProviderService, AXPTASK_PRIORITIES, AXPTaskBoardModule, AXPTaskBoardService, AXPTaskBoardShortcut, AXPTaskBoardShortcutViewComponent, AXPTaskBoardWidget, AXPTaskBoardWidgetViewComponent, AXPTaskManagementEntityTaskProvider, AXPTaskPopoverComponent, AXPWorkflowTaskProvider, AXP_DUE_STATUS_PROVIDERS, AXP_TASK_BOARD_DIMENSIONS, AXP_TASK_BOARD_SHORTCUT_DIMENSIONS, AXP_TASK_MANAGEMENT_DASHBOARD_SUB_BOARD, AXP_TASK_MANAGEMENT_DASHBOARD_SUB_SHORTCUT, AXP_TASK_MANAGEMENT_DASHBOARD_WIDGET_CATEGORY, AXP_WORKFLOW_TASK_PROVIDER, AXP_WORKFLOW_TASK_PROVIDER_RESOLVER, RESET_TASK_BOARD_FILTERS_ASSIGN_TO_CURRENT_USER_COMMAND_KEY, ResetTaskBoardFiltersAssignToCurrentUserCommand, TASK_BOARD_GRID_ROW_ACTION_COLUMN_WIDTH, TASK_BOARD_GRID_ROW_ACTION_ITEMS, TASK_BOARD_GRID_ROW_VIEW_ACTION, TASK_PRIORITY_ORDER, buildTaskAccentCssClass, buildTaskAccentSurfaceCssClass, buildTaskBoardShortcutWidget, buildTaskBoardWidget, buildTaskSurfaceCssClass, canViewAllTaskAssignees, enrichTaskBoardTasks, filterTasksOverlappingRange, formatTaskI18nParamsForTranslate, getDefaultDueStatusDefinitions, getTaskDueStatusKey, getTaskPriorityColor, getTaskPriorityFilterKey, getTaskTranslationKey, hasTaskBoardSavedAssigneePreference, isTaskBoardUnassignedAssigneeId, mapEntityStatusColorForBadge, matchesTaskBoardAssigneeFilter, matchesTaskBoardAssigneeUserIdsFilter, matchesTaskDueStatusFilter, matchesTaskPriorityFilter, normalizePriorityFilterKey, normalizePriorityFilterKeys, normalizeTaskBoardAssigneeIds, normalizeTaskPriority, resolveDefaultTaskStatusColor, resolveDueStatusFromDefinitions, resolveTaskBoardAccentColor, resolveTaskBoardCalendarPlacement, resolveTaskBoardCurrentUserAssigneeItem, resolveTaskBoardSavedAssigneeIds, resolveTaskBoardSchedulerLabels, resolveTaskBoardSchedulingRange, resolveTaskBoardStatusColor, resolveTaskPopoverComponent, taskOverlapsFilterRange };
|
|
850
|
+
export type { AXMOpenTaskPopoverOverlayOptions, AXMTaskPopoverAnchor, AXPDueStatusDefinition, AXPDueStatusEvaluationContext, AXPDueStatusFilterKey, AXPDueStatusKey, AXPDueStatusPresentation, AXPDueStatusResolveOptions, AXPExtraField, AXPPriorityFilterKey, AXPResource, AXPTask, AXPTaskAction, AXPTaskActionMenuItem, AXPTaskBoardColorBy, AXPTaskBoardTaskTypeOption, AXPTaskBoardUserOption, AXPTaskDueStatusFilterKey, AXPTaskDueStatusPresentation, AXPTaskFilter, AXPTaskPopoverMetadata, AXPTaskPopoverMetadataField, AXPTaskPriority, AXPTaskStatus, AXPWorkflowTaskProviderResolveOptions, ResetTaskBoardFiltersAssignToCurrentUserInput };
|