@acorex-platform/module-task-management-client 0.0.32 → 0.0.37
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 → acorex-platform-module-task-management-client-acorex-platform-module-task-management-client-DKeXScX9.mjs} +10 -10
- package/fesm2022/{acorex-platform-module-task-management-client-acorex-platform-module-task-management-client-CIwafWli.mjs.map → acorex-platform-module-task-management-client-acorex-platform-module-task-management-client-DKeXScX9.mjs.map} +1 -1
- package/fesm2022/acorex-platform-module-task-management-client-contracts-entities-task-assignment.mjs +412 -0
- package/fesm2022/acorex-platform-module-task-management-client-contracts-entities-task-assignment.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-task-management-client-contracts-entities-task-checklist-item.mjs +579 -0
- package/fesm2022/acorex-platform-module-task-management-client-contracts-entities-task-checklist-item.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-task-management-client-contracts-entities-task-context.mjs +338 -0
- package/fesm2022/acorex-platform-module-task-management-client-contracts-entities-task-context.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-task-management-client-contracts-entities-task-dependency.mjs +359 -0
- package/fesm2022/acorex-platform-module-task-management-client-contracts-entities-task-dependency.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-task-management-client-contracts-entities-task-status.mjs +643 -0
- package/fesm2022/acorex-platform-module-task-management-client-contracts-entities-task-status.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-task-management-client-contracts-entities-task-template.mjs +472 -0
- package/fesm2022/acorex-platform-module-task-management-client-contracts-entities-task-template.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-task-management-client-contracts-entities-task-type.mjs +441 -0
- package/fesm2022/acorex-platform-module-task-management-client-contracts-entities-task-type.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-task-management-client-contracts-entities-task.mjs +1350 -0
- package/fesm2022/acorex-platform-module-task-management-client-contracts-entities-task.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-task-management-client-contracts-entities-time-log.mjs +483 -0
- package/fesm2022/acorex-platform-module-task-management-client-contracts-entities-time-log.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-task-management-client-contracts-entity-catalog-acorex-platform-module-task-management-client-contracts-entity-catalog-Cy2Pym4E.mjs +119 -0
- package/fesm2022/acorex-platform-module-task-management-client-contracts-entity-catalog-acorex-platform-module-task-management-client-contracts-entity-catalog-Cy2Pym4E.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-task-management-client-contracts-entity-catalog-task-assignment.entity-Cf7Gd67F.mjs +320 -0
- package/fesm2022/acorex-platform-module-task-management-client-contracts-entity-catalog-task-assignment.entity-Cf7Gd67F.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-task-management-client-contracts-entity-catalog-task-checklist-item.entity-DwUvNG7Y.mjs +487 -0
- package/fesm2022/acorex-platform-module-task-management-client-contracts-entity-catalog-task-checklist-item.entity-DwUvNG7Y.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-task-management-client-contracts-entity-catalog-task-context.entity-DVMkanNa.mjs +246 -0
- package/fesm2022/acorex-platform-module-task-management-client-contracts-entity-catalog-task-context.entity-DVMkanNa.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-task-management-client-contracts-entity-catalog-task-dependency.entity-DRj3H2CS.mjs +267 -0
- package/fesm2022/acorex-platform-module-task-management-client-contracts-entity-catalog-task-dependency.entity-DRj3H2CS.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-task-management-client-contracts-entity-catalog-task-status.entity-DVMvNk5C.mjs +551 -0
- package/fesm2022/acorex-platform-module-task-management-client-contracts-entity-catalog-task-status.entity-DVMvNk5C.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-task-management-client-contracts-entity-catalog-task-template.entity-C5OnMGjC.mjs +380 -0
- package/fesm2022/acorex-platform-module-task-management-client-contracts-entity-catalog-task-template.entity-C5OnMGjC.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-task-management-client-contracts-entity-catalog-task-type.entity-W_HUuz4Q.mjs +349 -0
- package/fesm2022/acorex-platform-module-task-management-client-contracts-entity-catalog-task-type.entity-W_HUuz4Q.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-task-management-client-contracts-entity-catalog-task.entity-DYJR8xdq.mjs +1258 -0
- package/fesm2022/acorex-platform-module-task-management-client-contracts-entity-catalog-task.entity-DYJR8xdq.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-task-management-client-contracts-entity-catalog-time-log.entity-rNEYXIrf.mjs +391 -0
- package/fesm2022/acorex-platform-module-task-management-client-contracts-entity-catalog-time-log.entity-rNEYXIrf.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-task-management-client-contracts-entity-catalog.mjs +2 -0
- package/fesm2022/acorex-platform-module-task-management-client-contracts-entity-catalog.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-task-management-client-contracts.mjs.map +1 -1
- package/fesm2022/{acorex-platform-module-task-management-client-list-task-board-assignees.query-Ci8_D4Vs.mjs → acorex-platform-module-task-management-client-list-task-board-assignees.query-VCzu27lk.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-task-management-client-list-task-board-assignees.query-Ci8_D4Vs.mjs.map → acorex-platform-module-task-management-client-list-task-board-assignees.query-VCzu27lk.mjs.map} +1 -1
- package/fesm2022/acorex-platform-module-task-management-client-list-task-board-reporters.query-C3NAYa9b.mjs.map +1 -1
- package/fesm2022/{acorex-platform-module-task-management-client-list-task-types.query-CKLUPrBU.mjs → acorex-platform-module-task-management-client-list-task-types.query-DWCTG6dK.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-task-management-client-list-task-types.query-CKLUPrBU.mjs.map → acorex-platform-module-task-management-client-list-task-types.query-DWCTG6dK.mjs.map} +1 -1
- package/fesm2022/acorex-platform-module-task-management-client-local-entities.mjs +37 -0
- package/fesm2022/acorex-platform-module-task-management-client-local-entities.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-task-management-client-start-task-flow.command-ChCuTFV-.mjs → acorex-platform-module-task-management-client-start-task-flow.command-no0cwb1V.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-task-management-client-start-task-flow.command-ChCuTFV-.mjs.map → acorex-platform-module-task-management-client-start-task-flow.command-no0cwb1V.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-task-management-client-task-board.page-8I8H2pFq.mjs → acorex-platform-module-task-management-client-task-board.page-BkHHyd9s.mjs} +7 -7
- package/fesm2022/{acorex-platform-module-task-management-client-task-board.page-8I8H2pFq.mjs.map → acorex-platform-module-task-management-client-task-board.page-BkHHyd9s.mjs.map} +1 -1
- package/fesm2022/acorex-platform-module-task-management-client.mjs +1 -1
- package/package.json +47 -3
- package/types/acorex-platform-module-task-management-client-contracts-entities-task-assignment.d.ts +5 -0
- package/types/acorex-platform-module-task-management-client-contracts-entities-task-checklist-item.d.ts +5 -0
- package/types/acorex-platform-module-task-management-client-contracts-entities-task-context.d.ts +5 -0
- package/types/acorex-platform-module-task-management-client-contracts-entities-task-dependency.d.ts +5 -0
- package/types/acorex-platform-module-task-management-client-contracts-entities-task-status.d.ts +5 -0
- package/types/acorex-platform-module-task-management-client-contracts-entities-task-template.d.ts +5 -0
- package/types/acorex-platform-module-task-management-client-contracts-entities-task-type.d.ts +5 -0
- package/types/acorex-platform-module-task-management-client-contracts-entities-task.d.ts +5 -0
- package/types/acorex-platform-module-task-management-client-contracts-entities-time-log.d.ts +5 -0
- package/types/acorex-platform-module-task-management-client-contracts-entity-catalog.d.ts +10 -0
- package/types/acorex-platform-module-task-management-client-contracts.d.ts +6 -0
- package/types/acorex-platform-module-task-management-client-local-entities.d.ts +12 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-module-task-management-client-contracts.mjs","sources":["../../../../libs/modules/task-management/contracts/src/catalog-scope.keys.ts","../../../../libs/modules/task-management/contracts/src/commands.keys.ts","../../../../libs/modules/task-management/contracts/src/query.keys.ts","../../../../libs/modules/task-management/contracts/src/menu.keys.ts","../../../../libs/modules/task-management/contracts/src/permission.keys.ts","../../../../libs/modules/task-management/contracts/src/settings.keys.ts","../../../../libs/modules/task-management/contracts/src/subject-type.keys.ts","../../../../libs/modules/task-management/contracts/src/root-config.ts","../../../../libs/modules/task-management/contracts/src/entities/task-type/task-type.types.ts","../../../../libs/modules/task-management/contracts/src/index.ts","../../../../libs/modules/task-management/contracts/src/acorex-platform-module-task-management-client-contracts.ts"],"sourcesContent":["/** Catalog scope for task-management–scoped workflow definitions and related catalogs. */\nexport const TASK_MANAGEMENT_CATALOG_SCOPE_TASKS = 'task-management.tasks';\n","export const AXPTaskManagementCommandKeys = {\n Task: {\n StartFlow: 'TaskManagement.Task:StartFlow',\n },\n TaskBoard: {\n ResetFiltersAssignToCurrentUser: 'TaskManagement.TaskBoard:ResetFiltersAssignToCurrentUser',\n },\n} as const;\n","//#region ---- Query keys ----\n\n/** Task Management platform query registry keys. */\nexport const AXMTaskManagementQueryKeys = {\n ListTaskTypes: 'TaskManagement:ListTaskTypes',\n TaskBoardAssignees: 'TaskManagement:TaskBoard:Assignees',\n TaskBoardReporters: 'TaskManagement:TaskBoard:Reporters',\n} as const;\n\n//#endregion\n","export const AXPTaskManagementMenuKeys = {\n Root: 'task-management:menu',\n TaskBoard: 'task-management:board',\n Tasks: 'task-management:menu:tasks',\n TaskTemplates: 'task-management:menu:task-templates',\n TaskTypes: 'task-management:menu:task-types',\n} as const;\n\n","/**\n * Projects & Work capabilities used by this module.\n * Domain capability keys for this module. Root groups live in `AXPCommonPermissionGroupKeys` (common contracts).\n */\nexport const AXPProjectsWorkPermissionKeys = {\n Access: 'ProjectsWork:Permission:Access',\n MaintainProjects: 'ProjectsWork:Permission:MaintainProjects',\n MaintainTasks: 'ProjectsWork:Permission:MaintainTasks',\n ViewAllTasks: 'ProjectsWork:Permission:ViewAllTasks',\n MaintainTimesheets: 'ProjectsWork:Permission:MaintainTimesheets',\n ManageTimesheetActions: 'ProjectsWork:Permission:ManageTimesheetActions',\n ViewTimesheetReports: 'ProjectsWork:Permission:ViewTimesheetReports',\n Setup: 'ProjectsWork:Permission:Setup',\n} as const;\n\n/** @deprecated Prefer {@link AXPProjectsWorkPermissionKeys}. */\nexport const AXMPermissionsKeys = {\n TaskManagement: {\n Management: AXPProjectsWorkPermissionKeys.Access,\n Task: {\n Management: AXPProjectsWorkPermissionKeys.MaintainTasks,\n ViewAll: AXPProjectsWorkPermissionKeys.ViewAllTasks,\n },\n },\n} as const;\n","export enum AXMTaskBoardSettings {\n /** User preference: show Calendar in the task board view switcher. */\n VisibleCalendar = 'TaskManagement:Setting:TaskBoard.Visible.Calendar',\n /** User preference: show Timeline in the task board view switcher. */\n VisibleTimeline = 'TaskManagement:Setting:TaskBoard.Visible.Timeline',\n /** User preference: show Table in the task board view switcher. */\n VisibleTable = 'TaskManagement:Setting:TaskBoard.Visible.Table',\n /** User preference: show Kanban in the task board view switcher. */\n VisibleKanban = 'TaskManagement:Setting:TaskBoard.Visible.Kanban',\n CalendarLayout = 'taskboard.view.calendarLayout',\n TimelineLayout = 'taskboard.view.timelineLayout',\n TableLayout = 'taskboard.view.tableLayout',\n ViewMode = 'taskboard.viewMode',\n DetailPanel = 'taskboard.DetailPanel',\n DaysCount = 'taskboard.calendar.daysCount',\n CurrentDate = 'taskboard.calendar.currentDate',\n SelectedPriorities = 'taskboard.filter.selectedPriorities',\n SelectedDueStatusKeys = 'taskboard.filter.selectedDueStatusKeys',\n ColorBy = 'taskboard.colorBy',\n SelectedAssigneeIds = 'taskboard.filter.selectedAssigneeIds',\n SelectedReporterIds = 'taskboard.filter.selectedReporterIds',\n SelectedTaskTypeNames = 'taskboard.filter.selectedTaskTypeNames',\n}\n","/** Canonical {@link AXPEntityReference.type} values for common task subjects. */\nexport const AXPTaskManagementSubjectTypes = {\n Project: 'ProjectManagement.Project',\n} as const;\n","const config = {\n i18n: 'task-management',\n module: 'TaskManagement',\n} as const;\n\n/** Dashboard widget type ids for task-management-hosted widgets (`{module}:Widget:Dashboard:{Segment}`). */\nconst dashboardWidgetId = (segment: string): string =>\n `${config.module}:Widget:Dashboard:${segment}`;\n\nexport const RootConfig = {\n config,\n module: {\n name: config.module,\n title: `@${config.i18n}:module.title`,\n icon: 'fa-light fa-tasks',\n },\n entities: {\n taskType: {\n name: 'TaskType',\n title: `@${config.i18n}:task-type.individual-title`,\n titlePlural: `@${config.i18n}:task-type.plural-title`,\n icon: 'fa-light fa-cog',\n },\n taskTypeCategory: {\n name: 'TaskTypeCategory',\n title: `@${config.i18n}:task-type-categories.title`,\n titlePlural: `@${config.i18n}:task-type-categories.plural`,\n icon: 'fa-light fa-layer-group',\n },\n taskStatus: {\n name: 'TaskStatus',\n title: `@${config.i18n}:task-status.individual-title`,\n titlePlural: `@${config.i18n}:task-status.plural-title`,\n icon: 'fa-light fa-flag',\n },\n task: {\n name: 'Task',\n title: `@${config.i18n}:task.individual-title`,\n titlePlural: `@${config.i18n}:task.plural-title`,\n icon: 'fa-light fa-clipboard-check',\n },\n taskChecklistItem: {\n name: 'TaskChecklistItem',\n title: `@${config.i18n}:checklist-item.individual-title`,\n titlePlural: `@${config.i18n}:checklist-item.plural-title`,\n icon: 'fa-light fa-list-check',\n },\n taskAssignment: {\n name: 'TaskAssignment',\n title: `@${config.i18n}:task-assignment.individual-title`,\n titlePlural: `@${config.i18n}:task-assignment.plural-title`,\n icon: 'fa-light fa-user-check',\n },\n timeLog: {\n name: 'TimeLog',\n title: `@${config.i18n}:time-log.individual-title`,\n titlePlural: `@${config.i18n}:time-log.plural-title`,\n icon: 'fa-light fa-clock',\n },\n taskDependency: {\n name: 'TaskDependency',\n title: `@${config.i18n}:task-dependency.individual-title`,\n titlePlural: `@${config.i18n}:task-dependency.plural-title`,\n icon: 'fa-light fa-link',\n },\n taskContext: {\n name: 'TaskContext',\n title: `@${config.i18n}:task-context.individual-title`,\n titlePlural: `@${config.i18n}:task-context.plural-title`,\n icon: 'fa-light fa-sitemap',\n },\n taskTemplate: {\n name: 'TaskTemplate',\n title: `@${config.i18n}:task-template.individual-title`,\n titlePlural: `@${config.i18n}:task-template.plural-title`,\n icon: 'fa-light fa-copy',\n },\n },\n widgets: {\n taskBoard: dashboardWidgetId('TaskBoard'),\n taskBoardShortcut: dashboardWidgetId('TaskBoardShortcut'),\n },\n queries: {\n dashboard: {\n openTasksKpi: `${config.module}:Dashboard:OpenTasksKpi`,\n overdueTasksKpi: `${config.module}:Dashboard:OverdueTasksKpi`,\n myOpenTasksKpi: `${config.module}:Dashboard:MyOpenTasksKpi`,\n taskStatusDonut: `${config.module}:Dashboard:TaskStatusDonut`,\n },\n },\n} as const;\n","import type { AXMMetaDataBuilderValue } from '@acorex-platform/module-data-management-client/contracts';\nimport type { AXPCategoryListItem } from '@acorex-platform/framework-shared/core';\nimport { AXPEntityModel } from '@acorex-platform/framework-shared/entity';\n\n//#region ---- Task type workflow config ----\n\n/** Workflow template binding and admin-configured default inputs for task types. */\nexport interface AXMTaskManagementTaskTypeWorkflowConfig {\n workflowDefinitionId: string;\n workflowName: string;\n defaultInput?: Record<string, unknown>;\n}\n\n//#endregion\n\n//#region ---- Task type model ----\n\nexport interface AXMTaskManagementTaskTypeEntityModel extends AXPEntityModel<string> {\n title: string;\n description?: string;\n icon?: string;\n color?: string;\n isActive: boolean;\n workflowConfig?: AXMTaskManagementTaskTypeWorkflowConfig | null;\n metaDataList?: AXMMetaDataBuilderValue;\n categoryIds?: string[];\n categories?: AXPCategoryListItem[];\n hasChecklist: boolean;\n hasTimeTracking: boolean;\n hasAttachments: boolean;\n hasDependencies: boolean;\n hasSubtasks: boolean;\n documentTypeIds?: string[];\n documentTypes?: Array<{ id: string; name?: string; title?: string }>;\n}\n\n//#endregion\n","//#region ---- Contracts barrel ----\n\nexport * from './catalog-scope.keys';\nexport * from './commands.keys';\nexport * from './query.keys';\nexport * from './menu.keys';\nexport * from './permission.keys';\nexport * from './settings.keys';\nexport * from './subject-type.keys';\n\nexport * from './root-config';\n\n//#endregion\n\nexport * from './entities';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-task-management-client-contracts.mjs","sources":["../../../../libs/modules/task-management/contracts/src/catalog-scope.keys.ts","../../../../libs/modules/task-management/contracts/src/commands.keys.ts","../../../../libs/modules/task-management/contracts/src/query.keys.ts","../../../../libs/modules/task-management/contracts/src/menu.keys.ts","../../../../libs/modules/task-management/contracts/src/permission.keys.ts","../../../../libs/modules/task-management/contracts/src/settings.keys.ts","../../../../libs/modules/task-management/contracts/src/subject-type.keys.ts","../../../../libs/modules/task-management/contracts/src/root-config.ts","../../../../libs/modules/task-management/contracts/src/entities/task-type/task-type.types.ts","../../../../libs/modules/task-management/contracts/src/index.ts","../../../../libs/modules/task-management/contracts/src/acorex-platform-module-task-management-client-contracts.ts"],"sourcesContent":["/** Catalog scope for task-management–scoped workflow definitions and related catalogs. */\nexport const TASK_MANAGEMENT_CATALOG_SCOPE_TASKS = 'task-management.tasks';\n","export const AXPTaskManagementCommandKeys = {\n Task: {\n StartFlow: 'TaskManagement.Task:StartFlow',\n },\n TaskBoard: {\n ResetFiltersAssignToCurrentUser: 'TaskManagement.TaskBoard:ResetFiltersAssignToCurrentUser',\n },\n} as const;\n","//#region ---- Query keys ----\n\n/** Task Management platform query registry keys. */\nexport const AXMTaskManagementQueryKeys = {\n ListTaskTypes: 'TaskManagement:ListTaskTypes',\n TaskBoardAssignees: 'TaskManagement:TaskBoard:Assignees',\n TaskBoardReporters: 'TaskManagement:TaskBoard:Reporters',\n} as const;\n\n//#endregion\n","export const AXPTaskManagementMenuKeys = {\n Root: 'task-management:menu',\n TaskBoard: 'task-management:board',\n Tasks: 'task-management:menu:tasks',\n TaskTemplates: 'task-management:menu:task-templates',\n TaskTypes: 'task-management:menu:task-types',\n} as const;\n\n","/**\n * Projects & Work capabilities used by this module.\n * Domain capability keys for this module. Root groups live in `AXPCommonPermissionGroupKeys` (common contracts).\n */\nexport const AXPProjectsWorkPermissionKeys = {\n Access: 'ProjectsWork:Permission:Access',\n MaintainProjects: 'ProjectsWork:Permission:MaintainProjects',\n MaintainTasks: 'ProjectsWork:Permission:MaintainTasks',\n ViewAllTasks: 'ProjectsWork:Permission:ViewAllTasks',\n MaintainTimesheets: 'ProjectsWork:Permission:MaintainTimesheets',\n ManageTimesheetActions: 'ProjectsWork:Permission:ManageTimesheetActions',\n ViewTimesheetReports: 'ProjectsWork:Permission:ViewTimesheetReports',\n Setup: 'ProjectsWork:Permission:Setup',\n} as const;\n\n/** @deprecated Prefer {@link AXPProjectsWorkPermissionKeys}. */\nexport const AXMPermissionsKeys = {\n TaskManagement: {\n Management: AXPProjectsWorkPermissionKeys.Access,\n Task: {\n Management: AXPProjectsWorkPermissionKeys.MaintainTasks,\n ViewAll: AXPProjectsWorkPermissionKeys.ViewAllTasks,\n },\n },\n} as const;\n","export enum AXMTaskBoardSettings {\n /** User preference: show Calendar in the task board view switcher. */\n VisibleCalendar = 'TaskManagement:Setting:TaskBoard.Visible.Calendar',\n /** User preference: show Timeline in the task board view switcher. */\n VisibleTimeline = 'TaskManagement:Setting:TaskBoard.Visible.Timeline',\n /** User preference: show Table in the task board view switcher. */\n VisibleTable = 'TaskManagement:Setting:TaskBoard.Visible.Table',\n /** User preference: show Kanban in the task board view switcher. */\n VisibleKanban = 'TaskManagement:Setting:TaskBoard.Visible.Kanban',\n CalendarLayout = 'taskboard.view.calendarLayout',\n TimelineLayout = 'taskboard.view.timelineLayout',\n TableLayout = 'taskboard.view.tableLayout',\n ViewMode = 'taskboard.viewMode',\n DetailPanel = 'taskboard.DetailPanel',\n DaysCount = 'taskboard.calendar.daysCount',\n CurrentDate = 'taskboard.calendar.currentDate',\n SelectedPriorities = 'taskboard.filter.selectedPriorities',\n SelectedDueStatusKeys = 'taskboard.filter.selectedDueStatusKeys',\n ColorBy = 'taskboard.colorBy',\n SelectedAssigneeIds = 'taskboard.filter.selectedAssigneeIds',\n SelectedReporterIds = 'taskboard.filter.selectedReporterIds',\n SelectedTaskTypeNames = 'taskboard.filter.selectedTaskTypeNames',\n}\n","/** Canonical {@link AXPEntityReference.type} values for common task subjects. */\nexport const AXPTaskManagementSubjectTypes = {\n Project: 'ProjectManagement.Project',\n} as const;\n","const config = {\n i18n: 'task-management',\n module: 'TaskManagement',\n} as const;\n\n/** Dashboard widget type ids for task-management-hosted widgets (`{module}:Widget:Dashboard:{Segment}`). */\nconst dashboardWidgetId = (segment: string): string =>\n `${config.module}:Widget:Dashboard:${segment}`;\n\nexport const RootConfig = {\n config,\n module: {\n name: config.module,\n title: `@${config.i18n}:module.title`,\n icon: 'fa-light fa-tasks',\n },\n entities: {\n taskType: {\n name: 'TaskType',\n title: `@${config.i18n}:task-type.individual-title`,\n titlePlural: `@${config.i18n}:task-type.plural-title`,\n icon: 'fa-light fa-cog',\n },\n taskTypeCategory: {\n name: 'TaskTypeCategory',\n title: `@${config.i18n}:task-type-categories.title`,\n titlePlural: `@${config.i18n}:task-type-categories.plural`,\n icon: 'fa-light fa-layer-group',\n },\n taskStatus: {\n name: 'TaskStatus',\n title: `@${config.i18n}:task-status.individual-title`,\n titlePlural: `@${config.i18n}:task-status.plural-title`,\n icon: 'fa-light fa-flag',\n },\n task: {\n name: 'Task',\n title: `@${config.i18n}:task.individual-title`,\n titlePlural: `@${config.i18n}:task.plural-title`,\n icon: 'fa-light fa-clipboard-check',\n },\n taskChecklistItem: {\n name: 'TaskChecklistItem',\n title: `@${config.i18n}:checklist-item.individual-title`,\n titlePlural: `@${config.i18n}:checklist-item.plural-title`,\n icon: 'fa-light fa-list-check',\n },\n taskAssignment: {\n name: 'TaskAssignment',\n title: `@${config.i18n}:task-assignment.individual-title`,\n titlePlural: `@${config.i18n}:task-assignment.plural-title`,\n icon: 'fa-light fa-user-check',\n },\n timeLog: {\n name: 'TimeLog',\n title: `@${config.i18n}:time-log.individual-title`,\n titlePlural: `@${config.i18n}:time-log.plural-title`,\n icon: 'fa-light fa-clock',\n },\n taskDependency: {\n name: 'TaskDependency',\n title: `@${config.i18n}:task-dependency.individual-title`,\n titlePlural: `@${config.i18n}:task-dependency.plural-title`,\n icon: 'fa-light fa-link',\n },\n taskContext: {\n name: 'TaskContext',\n title: `@${config.i18n}:task-context.individual-title`,\n titlePlural: `@${config.i18n}:task-context.plural-title`,\n icon: 'fa-light fa-sitemap',\n },\n taskTemplate: {\n name: 'TaskTemplate',\n title: `@${config.i18n}:task-template.individual-title`,\n titlePlural: `@${config.i18n}:task-template.plural-title`,\n icon: 'fa-light fa-copy',\n },\n },\n widgets: {\n taskBoard: dashboardWidgetId('TaskBoard'),\n taskBoardShortcut: dashboardWidgetId('TaskBoardShortcut'),\n },\n queries: {\n dashboard: {\n openTasksKpi: `${config.module}:Dashboard:OpenTasksKpi`,\n overdueTasksKpi: `${config.module}:Dashboard:OverdueTasksKpi`,\n myOpenTasksKpi: `${config.module}:Dashboard:MyOpenTasksKpi`,\n taskStatusDonut: `${config.module}:Dashboard:TaskStatusDonut`,\n },\n },\n} as const;\n","import type { AXMMetaDataBuilderValue } from '@acorex-platform/module-data-management-client/contracts';\nimport type { AXPCategoryListItem } from '@acorex-platform/framework-shared/core';\nimport { AXPEntityModel } from '@acorex-platform/framework-shared/entity';\n\n//#region ---- Task type workflow config ----\n\n/** Workflow template binding and admin-configured default inputs for task types. */\nexport interface AXMTaskManagementTaskTypeWorkflowConfig {\n workflowDefinitionId: string;\n workflowName: string;\n defaultInput?: Record<string, unknown>;\n}\n\n//#endregion\n\n//#region ---- Task type model ----\n\nexport interface AXMTaskManagementTaskTypeEntityModel extends AXPEntityModel<string> {\n title: string;\n description?: string;\n icon?: string;\n color?: string;\n isActive: boolean;\n workflowConfig?: AXMTaskManagementTaskTypeWorkflowConfig | null;\n metaDataList?: AXMMetaDataBuilderValue;\n categoryIds?: string[];\n categories?: AXPCategoryListItem[];\n hasChecklist: boolean;\n hasTimeTracking: boolean;\n hasAttachments: boolean;\n hasDependencies: boolean;\n hasSubtasks: boolean;\n documentTypeIds?: string[];\n documentTypes?: Array<{ id: string; name?: string; title?: string }>;\n /** Expanded from `documentTypeIds` for list/detail grids (multi-lookup join alias). */\n documentTypesList?: Array<{ id: string; name?: string; title?: string }>;\n}\n\n//#endregion\n","//#region ---- Contracts barrel ----\n\nexport * from './catalog-scope.keys';\nexport * from './commands.keys';\nexport * from './query.keys';\nexport * from './menu.keys';\nexport * from './permission.keys';\nexport * from './settings.keys';\nexport * from './subject-type.keys';\n\nexport * from './root-config';\n\n//#endregion\n\nexport * from './entities';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ import { runtimeQuerySuccessCollection, runtimeQueryFailure } from '@acorex-plat
|
|
|
6
6
|
import { AXTranslationService } from '@acorex/core/translation';
|
|
7
7
|
import * as i0 from '@angular/core';
|
|
8
8
|
import { inject, Injectable } from '@angular/core';
|
|
9
|
-
import { o as resolveTaskBoardCurrentUserAssigneeItem, e as canViewAllTaskAssignees, p as AXM_TASK_BOARD_UNASSIGNED_ASSIGNEE_ID, q as isTaskBoardUnassignedAssigneeId } from './acorex-platform-module-task-management-client-acorex-platform-module-task-management-client-
|
|
9
|
+
import { o as resolveTaskBoardCurrentUserAssigneeItem, e as canViewAllTaskAssignees, p as AXM_TASK_BOARD_UNASSIGNED_ASSIGNEE_ID, q as isTaskBoardUnassignedAssigneeId } from './acorex-platform-module-task-management-client-acorex-platform-module-task-management-client-DKeXScX9.mjs';
|
|
10
10
|
|
|
11
11
|
//#endregion
|
|
12
12
|
//#region ---- Helpers ----
|
|
@@ -126,4 +126,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
126
126
|
}] });
|
|
127
127
|
|
|
128
128
|
export { AXMListTaskBoardAssigneesQuery };
|
|
129
|
-
//# sourceMappingURL=acorex-platform-module-task-management-client-list-task-board-assignees.query-
|
|
129
|
+
//# sourceMappingURL=acorex-platform-module-task-management-client-list-task-board-assignees.query-VCzu27lk.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-module-task-management-client-list-task-board-assignees.query-Ci8_D4Vs.mjs","sources":["../../../../libs/modules/task-management/client/src/lib/features/queries/list-task-board-assignees.query.ts"],"sourcesContent":["import { RootConfig as SecurityManagementRootConfig } from '@acorex-platform/module-security-management-client/contracts';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { AXPSessionService } from '@acorex-platform/framework-client/auth';\nimport { applyFilterArray } from '@acorex-platform/framework-client/core';\nimport {\n runtimeQueryFailure,\n runtimeQuerySuccessCollection,\n type AXPQueryRequest,\n} from '@acorex-platform/framework-shared/core';\nimport {\n type AXPCollectionQuery,\n type AXPCollectionQueryInput,\n type AXPQueryCollectionFetchResultPromise,\n} from '@acorex-platform/framework-shared/runtime';\nimport { AXDataSourceFilterOption } from '@acorex/cdk/common';\nimport { AXTranslationService } from '@acorex/core/translation';\n\nimport { Injectable, inject } from '@angular/core';\n\nimport {\n AXM_TASK_BOARD_UNASSIGNED_ASSIGNEE_ID,\n canViewAllTaskAssignees,\n isTaskBoardUnassignedAssigneeId,\n resolveTaskBoardCurrentUserAssigneeItem,\n} from '../task-board/task-board-assignee-access';\nimport { AXPTaskBoardUserOption } from '../task-board/task-board.types';\n\n//#region ---- Types ----\n\nexport type AXMListTaskBoardAssigneesQueryInput = AXPCollectionQueryInput;\n\nexport type AXMListTaskBoardAssigneesQueryItem = AXPTaskBoardUserOption;\n\n//#endregion\n\n//#region ---- Helpers ----\n\nfunction matchesFilter(item: object, filter?: AXDataSourceFilterOption): boolean {\n if (!filter || (!filter.field && !filter.filters?.length)) {\n return true;\n }\n return applyFilterArray([item], [filter], filter.logic ?? 'and').length > 0;\n}\n\nfunction extractEqualIdFilter(filter?: AXDataSourceFilterOption | null): string | null {\n if (!filter) {\n return null;\n }\n if (filter.field === 'id' && filter.operator?.type === 'equal' && filter.value != null && filter.value !== '') {\n return String(filter.value);\n }\n return null;\n}\n\n//#endregion\n\n//#region ---- Query ----\n\n/**\n * Session-aware task-board assignees — replaces the `task-board-assignees` DI data source.\n */\n@Injectable({ providedIn: 'root' })\nexport class AXMListTaskBoardAssigneesQuery\n implements\n AXPCollectionQuery<AXMListTaskBoardAssigneesQueryInput, AXMListTaskBoardAssigneesQueryItem>\n{\n //#region ---- Services & Dependencies ----\n\n private readonly entityService = inject(AXPEntityService);\n private readonly userService = this.entityService\n .withEntity(SecurityManagementRootConfig.module.name, SecurityManagementRootConfig.entities.users.name)\n .data<string, { id: string; displayName: string; username: string }>();\n private readonly sessionService = inject(AXPSessionService);\n private readonly translationService = inject(AXTranslationService);\n\n //#endregion\n\n //#region ---- Query Execution ----\n\n async fetch(\n input?: AXMListTaskBoardAssigneesQueryInput | null,\n ): AXPQueryCollectionFetchResultPromise<AXMListTaskBoardAssigneesQueryItem> {\n try {\n const request = (input ?? { skip: 0, take: 100 }) as AXPQueryRequest;\n const equalId = extractEqualIdFilter(request.filter ?? undefined);\n\n if (equalId != null) {\n const item = await this.resolveOne(equalId);\n return runtimeQuerySuccessCollection({\n items: item ? [item] : [],\n total: item ? 1 : 0,\n });\n }\n\n const page = await this.loadPage(request);\n return runtimeQuerySuccessCollection(page);\n } catch (error) {\n return runtimeQueryFailure(\n error instanceof Error ? error.message : 'Unknown error occurred',\n );\n }\n }\n\n //#endregion\n\n //#region ---- Private Methods ----\n\n private async loadPage(\n request: AXPQueryRequest,\n ): Promise<{ items: AXMListTaskBoardAssigneesQueryItem[]; total: number }> {\n const skip = request.skip ?? 0;\n const selfItem = resolveTaskBoardCurrentUserAssigneeItem(this.sessionService);\n\n if (!canViewAllTaskAssignees(this.sessionService)) {\n if (!selfItem || !matchesFilter(selfItem, request.filter)) {\n return { items: [], total: 0 };\n }\n return { items: skip === 0 ? [selfItem] : [], total: 1 };\n }\n\n const unassignedLabel = await this.translationService.translateAsync(\n '@task-management:task-board.filter.unassigned',\n );\n const unassignedItem: AXPTaskBoardUserOption = {\n id: AXM_TASK_BOARD_UNASSIGNED_ASSIGNEE_ID,\n displayName: unassignedLabel,\n username: '',\n };\n const includeUnassigned = matchesFilter(unassignedItem, request.filter);\n\n const res = await this.userService.query(request ?? { skip: 0, take: 100 });\n const userItems: AXPTaskBoardUserOption[] = res.items.map((item) => ({\n id: item.id,\n displayName: item.displayName,\n username: item.username,\n }));\n\n const items = skip === 0 && includeUnassigned ? [unassignedItem, ...userItems] : userItems;\n const total = res.total + (includeUnassigned ? 1 : 0);\n return { items, total };\n }\n\n private async resolveOne(userId: string): Promise<AXPTaskBoardUserOption | null> {\n const selfItem = resolveTaskBoardCurrentUserAssigneeItem(this.sessionService);\n if (selfItem != null && String(selfItem.id) === userId) {\n return selfItem;\n }\n\n if (isTaskBoardUnassignedAssigneeId(userId)) {\n if (!canViewAllTaskAssignees(this.sessionService)) {\n return null;\n }\n const displayName = await this.translationService.translateAsync(\n '@task-management:task-board.filter.unassigned',\n );\n return {\n id: AXM_TASK_BOARD_UNASSIGNED_ASSIGNEE_ID,\n displayName,\n username: '',\n };\n }\n\n if (!canViewAllTaskAssignees(this.sessionService)) {\n return null;\n }\n\n const user = await this.userService.byKey(userId);\n if (!user) {\n return null;\n }\n\n return {\n id: user.id,\n displayName: user.displayName,\n username: user.username,\n };\n }\n\n //#endregion\n}\n\n//#endregion\n"],"names":["SecurityManagementRootConfig"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-task-management-client-list-task-board-assignees.query-VCzu27lk.mjs","sources":["../../../../libs/modules/task-management/client/src/lib/features/queries/list-task-board-assignees.query.ts"],"sourcesContent":["import { RootConfig as SecurityManagementRootConfig } from '@acorex-platform/module-security-management-client/contracts';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { AXPSessionService } from '@acorex-platform/framework-client/auth';\nimport { applyFilterArray } from '@acorex-platform/framework-client/core';\nimport {\n runtimeQueryFailure,\n runtimeQuerySuccessCollection,\n type AXPQueryRequest,\n} from '@acorex-platform/framework-shared/core';\nimport {\n type AXPCollectionQuery,\n type AXPCollectionQueryInput,\n type AXPQueryCollectionFetchResultPromise,\n} from '@acorex-platform/framework-shared/runtime';\nimport { AXDataSourceFilterOption } from '@acorex/cdk/common';\nimport { AXTranslationService } from '@acorex/core/translation';\n\nimport { Injectable, inject } from '@angular/core';\n\nimport {\n AXM_TASK_BOARD_UNASSIGNED_ASSIGNEE_ID,\n canViewAllTaskAssignees,\n isTaskBoardUnassignedAssigneeId,\n resolveTaskBoardCurrentUserAssigneeItem,\n} from '../task-board/task-board-assignee-access';\nimport { AXPTaskBoardUserOption } from '../task-board/task-board.types';\n\n//#region ---- Types ----\n\nexport type AXMListTaskBoardAssigneesQueryInput = AXPCollectionQueryInput;\n\nexport type AXMListTaskBoardAssigneesQueryItem = AXPTaskBoardUserOption;\n\n//#endregion\n\n//#region ---- Helpers ----\n\nfunction matchesFilter(item: object, filter?: AXDataSourceFilterOption): boolean {\n if (!filter || (!filter.field && !filter.filters?.length)) {\n return true;\n }\n return applyFilterArray([item], [filter], filter.logic ?? 'and').length > 0;\n}\n\nfunction extractEqualIdFilter(filter?: AXDataSourceFilterOption | null): string | null {\n if (!filter) {\n return null;\n }\n if (filter.field === 'id' && filter.operator?.type === 'equal' && filter.value != null && filter.value !== '') {\n return String(filter.value);\n }\n return null;\n}\n\n//#endregion\n\n//#region ---- Query ----\n\n/**\n * Session-aware task-board assignees — replaces the `task-board-assignees` DI data source.\n */\n@Injectable({ providedIn: 'root' })\nexport class AXMListTaskBoardAssigneesQuery\n implements\n AXPCollectionQuery<AXMListTaskBoardAssigneesQueryInput, AXMListTaskBoardAssigneesQueryItem>\n{\n //#region ---- Services & Dependencies ----\n\n private readonly entityService = inject(AXPEntityService);\n private readonly userService = this.entityService\n .withEntity(SecurityManagementRootConfig.module.name, SecurityManagementRootConfig.entities.users.name)\n .data<string, { id: string; displayName: string; username: string }>();\n private readonly sessionService = inject(AXPSessionService);\n private readonly translationService = inject(AXTranslationService);\n\n //#endregion\n\n //#region ---- Query Execution ----\n\n async fetch(\n input?: AXMListTaskBoardAssigneesQueryInput | null,\n ): AXPQueryCollectionFetchResultPromise<AXMListTaskBoardAssigneesQueryItem> {\n try {\n const request = (input ?? { skip: 0, take: 100 }) as AXPQueryRequest;\n const equalId = extractEqualIdFilter(request.filter ?? undefined);\n\n if (equalId != null) {\n const item = await this.resolveOne(equalId);\n return runtimeQuerySuccessCollection({\n items: item ? [item] : [],\n total: item ? 1 : 0,\n });\n }\n\n const page = await this.loadPage(request);\n return runtimeQuerySuccessCollection(page);\n } catch (error) {\n return runtimeQueryFailure(\n error instanceof Error ? error.message : 'Unknown error occurred',\n );\n }\n }\n\n //#endregion\n\n //#region ---- Private Methods ----\n\n private async loadPage(\n request: AXPQueryRequest,\n ): Promise<{ items: AXMListTaskBoardAssigneesQueryItem[]; total: number }> {\n const skip = request.skip ?? 0;\n const selfItem = resolveTaskBoardCurrentUserAssigneeItem(this.sessionService);\n\n if (!canViewAllTaskAssignees(this.sessionService)) {\n if (!selfItem || !matchesFilter(selfItem, request.filter)) {\n return { items: [], total: 0 };\n }\n return { items: skip === 0 ? [selfItem] : [], total: 1 };\n }\n\n const unassignedLabel = await this.translationService.translateAsync(\n '@task-management:task-board.filter.unassigned',\n );\n const unassignedItem: AXPTaskBoardUserOption = {\n id: AXM_TASK_BOARD_UNASSIGNED_ASSIGNEE_ID,\n displayName: unassignedLabel,\n username: '',\n };\n const includeUnassigned = matchesFilter(unassignedItem, request.filter);\n\n const res = await this.userService.query(request ?? { skip: 0, take: 100 });\n const userItems: AXPTaskBoardUserOption[] = res.items.map((item) => ({\n id: item.id,\n displayName: item.displayName,\n username: item.username,\n }));\n\n const items = skip === 0 && includeUnassigned ? [unassignedItem, ...userItems] : userItems;\n const total = res.total + (includeUnassigned ? 1 : 0);\n return { items, total };\n }\n\n private async resolveOne(userId: string): Promise<AXPTaskBoardUserOption | null> {\n const selfItem = resolveTaskBoardCurrentUserAssigneeItem(this.sessionService);\n if (selfItem != null && String(selfItem.id) === userId) {\n return selfItem;\n }\n\n if (isTaskBoardUnassignedAssigneeId(userId)) {\n if (!canViewAllTaskAssignees(this.sessionService)) {\n return null;\n }\n const displayName = await this.translationService.translateAsync(\n '@task-management:task-board.filter.unassigned',\n );\n return {\n id: AXM_TASK_BOARD_UNASSIGNED_ASSIGNEE_ID,\n displayName,\n username: '',\n };\n }\n\n if (!canViewAllTaskAssignees(this.sessionService)) {\n return null;\n }\n\n const user = await this.userService.byKey(userId);\n if (!user) {\n return null;\n }\n\n return {\n id: user.id,\n displayName: user.displayName,\n username: user.username,\n };\n }\n\n //#endregion\n}\n\n//#endregion\n"],"names":["SecurityManagementRootConfig"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-module-task-management-client-list-task-board-reporters.query-C3NAYa9b.mjs","sources":["../../../../libs/modules/task-management/client/src/lib/features/queries/list-task-board-reporters.query.ts"],"sourcesContent":["import { RootConfig as SecurityManagementRootConfig } from '@acorex-platform/module-security-management-client/contracts';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport {\n runtimeQueryFailure,\n runtimeQuerySuccessCollection,\n type AXPQueryRequest,\n} from '@acorex-platform/framework-shared/core';\nimport {\n type AXPCollectionQuery,\n type AXPCollectionQueryInput,\n type AXPQueryCollectionFetchResultPromise,\n} from '@acorex-platform/framework-shared/runtime';\nimport { AXDataSourceFilterOption } from '@acorex/cdk/common';\n\nimport { Injectable, inject } from '@angular/core';\n\nimport { AXPTaskBoardUserOption } from '../task-board/task-board.types';\n\n//#region ---- Types ----\n\nexport type AXMListTaskBoardReportersQueryInput = AXPCollectionQueryInput;\n\nexport type AXMListTaskBoardReportersQueryItem = AXPTaskBoardUserOption;\n\n//#endregion\n\n//#region ---- Helpers ----\n\nfunction extractEqualIdFilter(filter?: AXDataSourceFilterOption | null): string | null {\n if (!filter) {\n return null;\n }\n if (filter.field === 'id' && filter.operator?.type === 'equal' && filter.value != null && filter.value !== '') {\n return String(filter.value);\n }\n return null;\n}\n\n//#endregion\n\n//#region ---- Query ----\n\n/**\n * Task-board reporters from SecurityManagement.User — replaces the `task-board-reporters` DI data source.\n */\n@Injectable({ providedIn: 'root' })\nexport class AXMListTaskBoardReportersQuery\n implements\n AXPCollectionQuery<AXMListTaskBoardReportersQueryInput, AXMListTaskBoardReportersQueryItem>\n{\n //#region ---- Services & Dependencies ----\n\n private readonly entityService = inject(AXPEntityService);\n private readonly userService = this.entityService\n .withEntity(SecurityManagementRootConfig.module.name, SecurityManagementRootConfig.entities.users.name)\n .data<string, { id: string; displayName: string; username: string }>();\n\n //#endregion\n\n //#region ---- Query Execution ----\n\n async fetch(\n input?: AXMListTaskBoardReportersQueryInput | null,\n ): AXPQueryCollectionFetchResultPromise<AXMListTaskBoardReportersQueryItem> {\n try {\n const request = (input ?? { skip: 0, take: 100 }) as AXPQueryRequest;\n const equalId = extractEqualIdFilter(request.filter ?? undefined);\n\n if (equalId != null) {\n const user = await this.userService.byKey(equalId);\n if (!user) {\n return runtimeQuerySuccessCollection({ items: [], total: 0 });\n }\n return runtimeQuerySuccessCollection({\n items: [\n {\n id: user.id,\n displayName: user.displayName,\n username: user.username,\n },\n ],\n total: 1,\n });\n }\n\n const res = await this.userService.query(request);\n return runtimeQuerySuccessCollection({\n items: res.items.map((item) => ({\n id: item.id,\n displayName: item.displayName,\n username: item.username,\n })),\n total: res.total,\n });\n } catch (error) {\n return runtimeQueryFailure(\n error instanceof Error ? error.message : 'Unknown error occurred',\n );\n }\n }\n\n //#endregion\n}\n\n//#endregion\n"],"names":["SecurityManagementRootConfig"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-task-management-client-list-task-board-reporters.query-C3NAYa9b.mjs","sources":["../../../../libs/modules/task-management/client/src/lib/features/queries/list-task-board-reporters.query.ts"],"sourcesContent":["import { RootConfig as SecurityManagementRootConfig } from '@acorex-platform/module-security-management-client/contracts';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport {\n runtimeQueryFailure,\n runtimeQuerySuccessCollection,\n type AXPQueryRequest,\n} from '@acorex-platform/framework-shared/core';\nimport {\n type AXPCollectionQuery,\n type AXPCollectionQueryInput,\n type AXPQueryCollectionFetchResultPromise,\n} from '@acorex-platform/framework-shared/runtime';\nimport { AXDataSourceFilterOption } from '@acorex/cdk/common';\n\nimport { Injectable, inject } from '@angular/core';\n\nimport { AXPTaskBoardUserOption } from '../task-board/task-board.types';\n\n//#region ---- Types ----\n\nexport type AXMListTaskBoardReportersQueryInput = AXPCollectionQueryInput;\n\nexport type AXMListTaskBoardReportersQueryItem = AXPTaskBoardUserOption;\n\n//#endregion\n\n//#region ---- Helpers ----\n\nfunction extractEqualIdFilter(filter?: AXDataSourceFilterOption | null): string | null {\n if (!filter) {\n return null;\n }\n if (filter.field === 'id' && filter.operator?.type === 'equal' && filter.value != null && filter.value !== '') {\n return String(filter.value);\n }\n return null;\n}\n\n//#endregion\n\n//#region ---- Query ----\n\n/**\n * Task-board reporters from SecurityManagement.User — replaces the `task-board-reporters` DI data source.\n */\n@Injectable({ providedIn: 'root' })\nexport class AXMListTaskBoardReportersQuery\n implements\n AXPCollectionQuery<AXMListTaskBoardReportersQueryInput, AXMListTaskBoardReportersQueryItem>\n{\n //#region ---- Services & Dependencies ----\n\n private readonly entityService = inject(AXPEntityService);\n private readonly userService = this.entityService\n .withEntity(SecurityManagementRootConfig.module.name, SecurityManagementRootConfig.entities.users.name)\n .data<string, { id: string; displayName: string; username: string }>();\n\n //#endregion\n\n //#region ---- Query Execution ----\n\n async fetch(\n input?: AXMListTaskBoardReportersQueryInput | null,\n ): AXPQueryCollectionFetchResultPromise<AXMListTaskBoardReportersQueryItem> {\n try {\n const request = (input ?? { skip: 0, take: 100 }) as AXPQueryRequest;\n const equalId = extractEqualIdFilter(request.filter ?? undefined);\n\n if (equalId != null) {\n const user = await this.userService.byKey(equalId);\n if (!user) {\n return runtimeQuerySuccessCollection({ items: [], total: 0 });\n }\n return runtimeQuerySuccessCollection({\n items: [\n {\n id: user.id,\n displayName: user.displayName,\n username: user.username,\n },\n ],\n total: 1,\n });\n }\n\n const res = await this.userService.query(request);\n return runtimeQuerySuccessCollection({\n items: res.items.map((item) => ({\n id: item.id,\n displayName: item.displayName,\n username: item.username,\n })),\n total: res.total,\n });\n } catch (error) {\n return runtimeQueryFailure(\n error instanceof Error ? error.message : 'Unknown error occurred',\n );\n }\n }\n\n //#endregion\n}\n\n//#endregion\n"],"names":["SecurityManagementRootConfig"],"mappings":";;;;;;AAwBA;AAEA;AAEA,SAAS,oBAAoB,CAAC,MAAwC,EAAA;IACpE,IAAI,CAAC,MAAM,EAAE;AACX,QAAA,OAAO,IAAI;IACb;IACA,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI,IAAI,MAAM,CAAC,QAAQ,EAAE,IAAI,KAAK,OAAO,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,KAAK,KAAK,EAAE,EAAE;AAC7G,QAAA,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;IAC7B;AACA,IAAA,OAAO,IAAI;AACb;AAEA;AAEA;AAEA;;AAEG;MAEU,8BAA8B,CAAA;AAD3C,IAAA,WAAA,GAAA;;AAOmB,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC;QACxC,IAAA,CAAA,WAAW,GAAG,IAAI,CAAC;AACjC,aAAA,UAAU,CAACA,UAA4B,CAAC,MAAM,CAAC,IAAI,EAAEA,UAA4B,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI;AACrG,aAAA,IAAI,EAAiE;AA+CzE,IAAA;;;IAzCC,MAAM,KAAK,CACT,KAAkD,EAAA;AAElD,QAAA,IAAI;AACF,YAAA,MAAM,OAAO,IAAI,KAAK,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAoB;YACpE,MAAM,OAAO,GAAG,oBAAoB,CAAC,OAAO,CAAC,MAAM,IAAI,SAAS,CAAC;AAEjE,YAAA,IAAI,OAAO,IAAI,IAAI,EAAE;gBACnB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC;gBAClD,IAAI,CAAC,IAAI,EAAE;AACT,oBAAA,OAAO,6BAA6B,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;gBAC/D;AACA,gBAAA,OAAO,6BAA6B,CAAC;AACnC,oBAAA,KAAK,EAAE;AACL,wBAAA;4BACE,EAAE,EAAE,IAAI,CAAC,EAAE;4BACX,WAAW,EAAE,IAAI,CAAC,WAAW;4BAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACxB,yBAAA;AACF,qBAAA;AACD,oBAAA,KAAK,EAAE,CAAC;AACT,iBAAA,CAAC;YACJ;YAEA,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC;AACjD,YAAA,OAAO,6BAA6B,CAAC;AACnC,gBAAA,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM;oBAC9B,EAAE,EAAE,IAAI,CAAC,EAAE;oBACX,WAAW,EAAE,IAAI,CAAC,WAAW;oBAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACxB,iBAAA,CAAC,CAAC;gBACH,KAAK,EAAE,GAAG,CAAC,KAAK;AACjB,aAAA,CAAC;QACJ;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,mBAAmB,CACxB,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,wBAAwB,CAClE;QACH;IACF;8GArDW,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA9B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,8BAA8B,cADjB,MAAM,EAAA,CAAA,CAAA;;2FACnB,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAD1C,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;"}
|
|
@@ -3,7 +3,7 @@ import { runtimeQuerySuccessCollection, runtimeQueryFailure } from '@acorex-plat
|
|
|
3
3
|
import { applyFilterArray, applySortArray } from '@acorex-platform/framework-client/core';
|
|
4
4
|
import * as i0 from '@angular/core';
|
|
5
5
|
import { inject, Injectable } from '@angular/core';
|
|
6
|
-
import { a as AXPTaskBoardService } from './acorex-platform-module-task-management-client-acorex-platform-module-task-management-client-
|
|
6
|
+
import { a as AXPTaskBoardService } from './acorex-platform-module-task-management-client-acorex-platform-module-task-management-client-DKeXScX9.mjs';
|
|
7
7
|
|
|
8
8
|
//#endregion
|
|
9
9
|
//#region ---- Query ----
|
|
@@ -50,4 +50,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
50
50
|
}] });
|
|
51
51
|
|
|
52
52
|
export { AXMListTaskTypesQuery };
|
|
53
|
-
//# sourceMappingURL=acorex-platform-module-task-management-client-list-task-types.query-
|
|
53
|
+
//# sourceMappingURL=acorex-platform-module-task-management-client-list-task-types.query-DWCTG6dK.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-module-task-management-client-list-task-types.query-
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-task-management-client-list-task-types.query-DWCTG6dK.mjs","sources":["../../../../libs/modules/task-management/client/src/lib/features/queries/list-task-types.query.ts"],"sourcesContent":["import {\n resolveCollectionSkip,\n resolveCollectionTake,\n type AXPCollectionQuery,\n type AXPCollectionQueryInput,\n type AXPQueryCollectionFetchResultPromise,\n} from '@acorex-platform/framework-shared/runtime';\nimport {\n runtimeQueryFailure,\n runtimeQuerySuccessCollection,\n} from '@acorex-platform/framework-shared/core';\nimport { applyFilterArray, applySortArray } from '@acorex-platform/framework-client/core';\n\nimport { Injectable, inject } from '@angular/core';\n\nimport { AXPTaskBoardService } from '../task-board/task-board.service';\n\n//#region ---- Types ----\n\nexport type AXMListTaskTypesQueryInput = AXPCollectionQueryInput;\n\nexport interface AXMListTaskTypesQueryItem {\n /** Workflow task provider key. */\n name: string;\n /** Display title from the provider. */\n title: string;\n /** Optional icon class from the provider. */\n icon: string;\n}\n\n//#endregion\n\n//#region ---- Query ----\n\n/**\n * Resolved workflow task types — replaces the `task-types` DI data source.\n */\n@Injectable({ providedIn: 'root' })\nexport class AXMListTaskTypesQuery\n implements AXPCollectionQuery<AXMListTaskTypesQueryInput, AXMListTaskTypesQueryItem>\n{\n //#region ---- Services & Dependencies ----\n\n private readonly taskBoardService = inject(AXPTaskBoardService);\n\n //#endregion\n\n //#region ---- Query Execution ----\n\n async fetch(\n input?: AXMListTaskTypesQueryInput | null,\n ): AXPQueryCollectionFetchResultPromise<AXMListTaskTypesQueryItem> {\n try {\n const providers = await this.taskBoardService.getTaskTypes();\n let items: AXMListTaskTypesQueryItem[] = await Promise.all(\n providers.map(async (provider) => ({\n name: provider.name,\n title: await provider.getTitle(),\n icon: await provider.getIcon(),\n })),\n );\n\n if (input?.filter) {\n items = applyFilterArray(items, [input.filter]);\n }\n\n const rawSort = Array.isArray(input?.sort) ? input.sort : input?.sort ? [input.sort] : [];\n const sortOpt = rawSort.length > 0 ? rawSort : [{ field: 'name' as const, dir: 'asc' as const }];\n items = applySortArray(items, sortOpt);\n\n const skip = resolveCollectionSkip(input?.skip);\n const take = resolveCollectionTake(input?.take);\n const total = items.length;\n const page = items.slice(skip, skip + take);\n\n return runtimeQuerySuccessCollection({ items: page, total });\n } catch (error) {\n return runtimeQueryFailure(\n error instanceof Error ? error.message : 'Unknown error occurred',\n );\n }\n }\n\n //#endregion\n}\n\n//#endregion\n"],"names":[],"mappings":";;;;;;;AA8BA;AAEA;AAEA;;AAEG;MAEU,qBAAqB,CAAA;AADlC,IAAA,WAAA,GAAA;;AAMmB,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,mBAAmB,CAAC;AAyChE,IAAA;;;IAnCC,MAAM,KAAK,CACT,KAAyC,EAAA;AAEzC,QAAA,IAAI;YACF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE;AAC5D,YAAA,IAAI,KAAK,GAAgC,MAAM,OAAO,CAAC,GAAG,CACxD,SAAS,CAAC,GAAG,CAAC,OAAO,QAAQ,MAAM;gBACjC,IAAI,EAAE,QAAQ,CAAC,IAAI;AACnB,gBAAA,KAAK,EAAE,MAAM,QAAQ,CAAC,QAAQ,EAAE;AAChC,gBAAA,IAAI,EAAE,MAAM,QAAQ,CAAC,OAAO,EAAE;aAC/B,CAAC,CAAC,CACJ;AAED,YAAA,IAAI,KAAK,EAAE,MAAM,EAAE;gBACjB,KAAK,GAAG,gBAAgB,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACjD;AAEA,YAAA,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE;YACzF,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,EAAE,KAAK,EAAE,MAAe,EAAE,GAAG,EAAE,KAAc,EAAE,CAAC;AAChG,YAAA,KAAK,GAAG,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC;YAEtC,MAAM,IAAI,GAAG,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC;YAC/C,MAAM,IAAI,GAAG,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC;AAC/C,YAAA,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM;AAC1B,YAAA,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;YAE3C,OAAO,6BAA6B,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QAC9D;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,mBAAmB,CACxB,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,wBAAwB,CAClE;QACH;IACF;8GA3CW,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,cADR,MAAM,EAAA,CAAA,CAAA;;2FACnB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { provideLocalEntityCatalog } from '@acorex-platform/framework-client/layout/entity';
|
|
2
|
+
import { RootConfig } from '@acorex-platform/module-task-management-client/contracts';
|
|
3
|
+
export { taskManagementLocalEntityCatalog } from '@acorex-platform/module-task-management-client/contracts/entity-catalog';
|
|
4
|
+
|
|
5
|
+
//#region ----- Imports -----
|
|
6
|
+
//#endregion
|
|
7
|
+
//#region ----- Provide local entities -----
|
|
8
|
+
/**
|
|
9
|
+
* Registers task-management layouts on the client from packaged factories.
|
|
10
|
+
* Each `import()` targets a secondary entry so unused entities stay out of the
|
|
11
|
+
* bundle. Do not add this to the demo app; demo continues to load layouts via
|
|
12
|
+
* `Domain:GetEntityLayout`.
|
|
13
|
+
*/
|
|
14
|
+
function provideTaskManagementLocalEntities() {
|
|
15
|
+
return provideLocalEntityCatalog({
|
|
16
|
+
moduleName: RootConfig.module.name,
|
|
17
|
+
loaders: {
|
|
18
|
+
[RootConfig.entities.task.name]: () => import('@acorex-platform/module-task-management-client/contracts/entities/task').then((m) => m.taskFactory()),
|
|
19
|
+
[RootConfig.entities.taskAssignment.name]: () => import('@acorex-platform/module-task-management-client/contracts/entities/task-assignment').then((m) => m.taskAssignmentFactory()),
|
|
20
|
+
[RootConfig.entities.taskChecklistItem.name]: () => import('@acorex-platform/module-task-management-client/contracts/entities/task-checklist-item').then((m) => m.taskChecklistItemFactory()),
|
|
21
|
+
[RootConfig.entities.taskContext.name]: () => import('@acorex-platform/module-task-management-client/contracts/entities/task-context').then((m) => m.taskContextFactory()),
|
|
22
|
+
[RootConfig.entities.taskDependency.name]: () => import('@acorex-platform/module-task-management-client/contracts/entities/task-dependency').then((m) => m.taskDependencyFactory()),
|
|
23
|
+
[RootConfig.entities.taskStatus.name]: () => import('@acorex-platform/module-task-management-client/contracts/entities/task-status').then((m) => m.taskStatusFactory()),
|
|
24
|
+
[RootConfig.entities.taskTemplate.name]: () => import('@acorex-platform/module-task-management-client/contracts/entities/task-template').then((m) => m.taskTemplateFactory()),
|
|
25
|
+
[RootConfig.entities.taskType.name]: () => import('@acorex-platform/module-task-management-client/contracts/entities/task-type').then((m) => m.taskTypeFactory()),
|
|
26
|
+
[RootConfig.entities.timeLog.name]: () => import('@acorex-platform/module-task-management-client/contracts/entities/time-log').then((m) => m.timeLogFactory()),
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
//#endregion
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Generated bundle index. Do not edit.
|
|
34
|
+
*/
|
|
35
|
+
|
|
36
|
+
export { provideTaskManagementLocalEntities };
|
|
37
|
+
//# sourceMappingURL=acorex-platform-module-task-management-client-local-entities.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-task-management-client-local-entities.mjs","sources":["../../../../libs/modules/task-management/client/src/lib/provide-local-entities.ts","../../../../libs/modules/task-management/client/src/lib/acorex-platform-module-task-management-client-local-entities.ts"],"sourcesContent":["//#region ----- Imports -----\n\nimport { provideLocalEntityCatalog } from '@acorex-platform/framework-client/layout/entity';\nimport { RootConfig } from '@acorex-platform/module-task-management-client/contracts';\n\n//#endregion\n\n//#region ----- Provide local entities -----\n\n/**\n * Registers task-management layouts on the client from packaged factories.\n * Each `import()` targets a secondary entry so unused entities stay out of the\n * bundle. Do not add this to the demo app; demo continues to load layouts via\n * `Domain:GetEntityLayout`.\n */\nexport function provideTaskManagementLocalEntities() {\n return provideLocalEntityCatalog({\n moduleName: RootConfig.module.name,\n loaders: {\n [RootConfig.entities.task.name]: () =>\n import('@acorex-platform/module-task-management-client/contracts/entities/task').then((m) => m.taskFactory()),\n [RootConfig.entities.taskAssignment.name]: () =>\n import('@acorex-platform/module-task-management-client/contracts/entities/task-assignment').then((m) => m.taskAssignmentFactory()),\n [RootConfig.entities.taskChecklistItem.name]: () =>\n import('@acorex-platform/module-task-management-client/contracts/entities/task-checklist-item').then((m) => m.taskChecklistItemFactory()),\n [RootConfig.entities.taskContext.name]: () =>\n import('@acorex-platform/module-task-management-client/contracts/entities/task-context').then((m) => m.taskContextFactory()),\n [RootConfig.entities.taskDependency.name]: () =>\n import('@acorex-platform/module-task-management-client/contracts/entities/task-dependency').then((m) => m.taskDependencyFactory()),\n [RootConfig.entities.taskStatus.name]: () =>\n import('@acorex-platform/module-task-management-client/contracts/entities/task-status').then((m) => m.taskStatusFactory()),\n [RootConfig.entities.taskTemplate.name]: () =>\n import('@acorex-platform/module-task-management-client/contracts/entities/task-template').then((m) => m.taskTemplateFactory()),\n [RootConfig.entities.taskType.name]: () =>\n import('@acorex-platform/module-task-management-client/contracts/entities/task-type').then((m) => m.taskTypeFactory()),\n [RootConfig.entities.timeLog.name]: () =>\n import('@acorex-platform/module-task-management-client/contracts/entities/time-log').then((m) => m.timeLogFactory()),\n },\n });\n}\n\nexport { taskManagementLocalEntityCatalog } from '@acorex-platform/module-task-management-client/contracts/entity-catalog';\n\n//#endregion\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './provide-local-entities';\n"],"names":[],"mappings":";;;;AAAA;AAKA;AAEA;AAEA;;;;;AAKG;SACa,kCAAkC,GAAA;AAChD,IAAA,OAAO,yBAAyB,CAAC;AAC/B,QAAA,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI;AAClC,QAAA,OAAO,EAAE;AACP,YAAA,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,GAAG,MAC/B,OAAO,wEAAwE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;AAC/G,YAAA,CAAC,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,GAAG,MACzC,OAAO,mFAAmF,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,qBAAqB,EAAE,CAAC;AACpI,YAAA,CAAC,UAAU,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,GAAG,MAC5C,OAAO,uFAAuF,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,wBAAwB,EAAE,CAAC;AAC3I,YAAA,CAAC,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,GAAG,MACtC,OAAO,gFAAgF,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,kBAAkB,EAAE,CAAC;AAC9H,YAAA,CAAC,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,GAAG,MACzC,OAAO,mFAAmF,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,qBAAqB,EAAE,CAAC;AACpI,YAAA,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,GAAG,MACrC,OAAO,+EAA+E,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,iBAAiB,EAAE,CAAC;AAC5H,YAAA,CAAC,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,GAAG,MACvC,OAAO,iFAAiF,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,mBAAmB,EAAE,CAAC;AAChI,YAAA,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,GAAG,MACnC,OAAO,6EAA6E,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,eAAe,EAAE,CAAC;AACxH,YAAA,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,GAAG,MAClC,OAAO,4EAA4E,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,cAAc,EAAE,CAAC;AACvH,SAAA;AACF,KAAA,CAAC;AACJ;AAIA;;AC3CA;;AAEG;;"}
|
|
@@ -92,7 +92,7 @@ class StartTaskFlowCommand {
|
|
|
92
92
|
if (!projectType) {
|
|
93
93
|
return false;
|
|
94
94
|
}
|
|
95
|
-
const allowedIds = projectType.allowedTaskTypes?.map((row) => row.id).filter(Boolean) ?? [];
|
|
95
|
+
const allowedIds = (projectType.allowedTaskTypesList ?? projectType.allowedTaskTypes)?.map((row) => row.id).filter(Boolean) ?? [];
|
|
96
96
|
if (!isEmpty(allowedIds)) {
|
|
97
97
|
return allowedIds.includes(taskTypeId);
|
|
98
98
|
}
|
|
@@ -111,4 +111,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
111
111
|
const START_TASK_FLOW_COMMAND_KEY = AXPTaskManagementCommandKeys.Task.StartFlow;
|
|
112
112
|
|
|
113
113
|
export { START_TASK_FLOW_COMMAND_KEY, StartTaskFlowCommand };
|
|
114
|
-
//# sourceMappingURL=acorex-platform-module-task-management-client-start-task-flow.command-
|
|
114
|
+
//# sourceMappingURL=acorex-platform-module-task-management-client-start-task-flow.command-no0cwb1V.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-module-task-management-client-start-task-flow.command-ChCuTFV-.mjs","sources":["../../../../libs/modules/task-management/client/src/lib/features/task/commands/start-task-flow.command.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { type AXPEntityReference, AXPRuntimeCommandResult } from '@acorex-platform/framework-shared/core';\nimport { AXToastService } from '@acorex/components/toast';\n\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\n\nimport { AXPWorkflowManager } from '@acorex-platform/framework-client/workflow';\nimport { defaultTo, get, isEmpty, merge } from 'lodash';\nimport { inject, Injectable } from '@angular/core';\nimport { AXPTaskManagementCommandKeys } from '@acorex-platform/module-task-management-client/contracts';\nimport { RootConfig } from '@acorex-platform/module-task-management-client/contracts';\nimport type { AXMTaskManagementTaskTypeEntityModel } from '@acorex-platform/module-task-management-client/contracts';\n\n//#endregion\n\n//#region ---- Types ----\n\nexport interface StartTaskFlowInput {\n workflowId?: string;\n taskTypeId?: string;\n subjectRef?: AXPEntityReference;\n projectTypeId?: string;\n input?: Record<string, unknown>;\n options?: StartTaskFlowOptions;\n}\n\nexport interface StartTaskFlowOptions {\n workflowId: string;\n input: {\n taskTypeId: string;\n subjectRef: AXPEntityReference;\n projectTypeId?: string;\n taskTypeTitle?: string;\n } & Record<string, unknown>;\n}\n\n//#endregion\n\n/**\n * Starts a workflow for a {@link TaskManagement.Task} when the task type defines {@link workflowConfig}.\n */\n@Injectable({ providedIn: 'root' })\nexport class StartTaskFlowCommand implements AXPCommand<StartTaskFlowInput, void> {\n //#region ---- Services & Dependencies ----\n\n private readonly toastService = inject(AXToastService);\n private readonly entityService = inject(AXPEntityService);\n private readonly workflowManager = inject(AXPWorkflowManager);\n\n //#endregion\n\n //#region ---- Command Implementation ----\n\n async execute(input: StartTaskFlowInput): AXPCommandExecuteResultPromise<void> {\n const options = (input?.options ?? input) as StartTaskFlowOptions;\n const flowInput = defaultTo(options?.input, {} as StartTaskFlowOptions['input']);\n const workflowId = (options?.workflowId ?? input?.workflowId)?.trim();\n const taskTypeId = flowInput?.taskTypeId?.trim();\n const subjectRef = flowInput?.subjectRef ?? input?.subjectRef;\n const projectTypeId = flowInput?.projectTypeId?.trim() ?? input?.projectTypeId?.trim();\n\n if (!workflowId || !taskTypeId || !subjectRef?.id || !subjectRef?.type) {\n return { success: false, message: { text: 'Missing workflow, task type, or subject reference.' } };\n }\n\n try {\n const taskType = await this.loadTaskType(taskTypeId);\n if (!taskType) {\n return { success: false, message: { text: 'Task type not found.' } };\n }\n\n if (projectTypeId) {\n const allowed = await this.isTaskTypeAllowedForProjectType(projectTypeId, taskTypeId);\n if (!allowed) {\n return { success: false, message: { text: 'Task type is not allowed for this project type.' } };\n }\n }\n\n const defaultInput = defaultTo(get(taskType, 'workflowConfig.defaultInput'), {});\n const startResult = await this.workflowManager.start(workflowId, merge(\n defaultInput,\n {\n taskTypeId,\n taskTypeTitle: flowInput.taskTypeTitle ?? taskType.title,\n subjectRef,\n ...(projectTypeId ? { projectTypeId } : {}),\n refId: subjectRef.id,\n refType: subjectRef.type,\n correlationId: this.buildCorrelationId(subjectRef.id, taskTypeId, workflowId),\n },\n flowInput,\n ));\n\n if (!startResult.success) {\n this.toastService.show({\n color: 'danger',\n title: 'Workflow Execution Failed',\n content: startResult.error ?? 'Unknown error',\n closeButton: true,\n timeOut: 5000,\n });\n return { success: false, message: { text: startResult.error ?? 'Unknown error' } };\n }\n\n return { success: true, kind: 'object', data: undefined };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Unknown error';\n console.error('[StartTaskFlowCommand]', error);\n this.toastService.show({\n color: 'danger',\n title: 'Workflow Execution Error',\n content: message,\n closeButton: true,\n timeOut: 5000,\n });\n return { success: false, message: { text: message } };\n }\n }\n\n //#endregion\n\n //#region ---- Helpers ----\n\n private async loadTaskType(taskTypeId: string): Promise<AXMTaskManagementTaskTypeEntityModel | null> {\n const row = await this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.taskType.name)\n .data()\n .byKey(taskTypeId);\n return (row ?? null) as AXMTaskManagementTaskTypeEntityModel | null;\n }\n\n private async isTaskTypeAllowedForProjectType(projectTypeId: string, taskTypeId: string): Promise<boolean> {\n const projectType = (await this.entityService\n .withEntity('ProjectManagement', 'ProjectType')\n .data()\n .byKey(projectTypeId)) as {\n allowedTaskTypeIds?: string[];\n allowedTaskTypes?: Array<{ id: string }>;\n } | null;\n\n if (!projectType) {\n return false;\n }\n\n const allowedIds = projectType.allowedTaskTypes?.map((row) => row.id).filter(Boolean) ?? [];\n if (!isEmpty(allowedIds)) {\n return allowedIds.includes(taskTypeId);\n }\n\n return defaultTo(projectType.allowedTaskTypeIds, []).includes(taskTypeId);\n }\n\n private buildCorrelationId(subjectId: string, taskTypeId: string, workflowId: string): string {\n return `${subjectId}:${taskTypeId}:${workflowId}`;\n }\n\n //#endregion\n}\n\nexport const START_TASK_FLOW_COMMAND_KEY = AXPTaskManagementCommandKeys.Task.StartFlow;\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-task-management-client-start-task-flow.command-no0cwb1V.mjs","sources":["../../../../libs/modules/task-management/client/src/lib/features/task/commands/start-task-flow.command.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { type AXPEntityReference, AXPRuntimeCommandResult } from '@acorex-platform/framework-shared/core';\nimport { AXToastService } from '@acorex/components/toast';\n\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\n\nimport { AXPWorkflowManager } from '@acorex-platform/framework-client/workflow';\nimport { defaultTo, get, isEmpty, merge } from 'lodash';\nimport { inject, Injectable } from '@angular/core';\nimport { AXPTaskManagementCommandKeys } from '@acorex-platform/module-task-management-client/contracts';\nimport { RootConfig } from '@acorex-platform/module-task-management-client/contracts';\nimport type { AXMTaskManagementTaskTypeEntityModel } from '@acorex-platform/module-task-management-client/contracts';\n\n//#endregion\n\n//#region ---- Types ----\n\nexport interface StartTaskFlowInput {\n workflowId?: string;\n taskTypeId?: string;\n subjectRef?: AXPEntityReference;\n projectTypeId?: string;\n input?: Record<string, unknown>;\n options?: StartTaskFlowOptions;\n}\n\nexport interface StartTaskFlowOptions {\n workflowId: string;\n input: {\n taskTypeId: string;\n subjectRef: AXPEntityReference;\n projectTypeId?: string;\n taskTypeTitle?: string;\n } & Record<string, unknown>;\n}\n\n//#endregion\n\n/**\n * Starts a workflow for a {@link TaskManagement.Task} when the task type defines {@link workflowConfig}.\n */\n@Injectable({ providedIn: 'root' })\nexport class StartTaskFlowCommand implements AXPCommand<StartTaskFlowInput, void> {\n //#region ---- Services & Dependencies ----\n\n private readonly toastService = inject(AXToastService);\n private readonly entityService = inject(AXPEntityService);\n private readonly workflowManager = inject(AXPWorkflowManager);\n\n //#endregion\n\n //#region ---- Command Implementation ----\n\n async execute(input: StartTaskFlowInput): AXPCommandExecuteResultPromise<void> {\n const options = (input?.options ?? input) as StartTaskFlowOptions;\n const flowInput = defaultTo(options?.input, {} as StartTaskFlowOptions['input']);\n const workflowId = (options?.workflowId ?? input?.workflowId)?.trim();\n const taskTypeId = flowInput?.taskTypeId?.trim();\n const subjectRef = flowInput?.subjectRef ?? input?.subjectRef;\n const projectTypeId = flowInput?.projectTypeId?.trim() ?? input?.projectTypeId?.trim();\n\n if (!workflowId || !taskTypeId || !subjectRef?.id || !subjectRef?.type) {\n return { success: false, message: { text: 'Missing workflow, task type, or subject reference.' } };\n }\n\n try {\n const taskType = await this.loadTaskType(taskTypeId);\n if (!taskType) {\n return { success: false, message: { text: 'Task type not found.' } };\n }\n\n if (projectTypeId) {\n const allowed = await this.isTaskTypeAllowedForProjectType(projectTypeId, taskTypeId);\n if (!allowed) {\n return { success: false, message: { text: 'Task type is not allowed for this project type.' } };\n }\n }\n\n const defaultInput = defaultTo(get(taskType, 'workflowConfig.defaultInput'), {});\n const startResult = await this.workflowManager.start(workflowId, merge(\n defaultInput,\n {\n taskTypeId,\n taskTypeTitle: flowInput.taskTypeTitle ?? taskType.title,\n subjectRef,\n ...(projectTypeId ? { projectTypeId } : {}),\n refId: subjectRef.id,\n refType: subjectRef.type,\n correlationId: this.buildCorrelationId(subjectRef.id, taskTypeId, workflowId),\n },\n flowInput,\n ));\n\n if (!startResult.success) {\n this.toastService.show({\n color: 'danger',\n title: 'Workflow Execution Failed',\n content: startResult.error ?? 'Unknown error',\n closeButton: true,\n timeOut: 5000,\n });\n return { success: false, message: { text: startResult.error ?? 'Unknown error' } };\n }\n\n return { success: true, kind: 'object', data: undefined };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Unknown error';\n console.error('[StartTaskFlowCommand]', error);\n this.toastService.show({\n color: 'danger',\n title: 'Workflow Execution Error',\n content: message,\n closeButton: true,\n timeOut: 5000,\n });\n return { success: false, message: { text: message } };\n }\n }\n\n //#endregion\n\n //#region ---- Helpers ----\n\n private async loadTaskType(taskTypeId: string): Promise<AXMTaskManagementTaskTypeEntityModel | null> {\n const row = await this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.taskType.name)\n .data()\n .byKey(taskTypeId);\n return (row ?? null) as AXMTaskManagementTaskTypeEntityModel | null;\n }\n\n private async isTaskTypeAllowedForProjectType(projectTypeId: string, taskTypeId: string): Promise<boolean> {\n const projectType = (await this.entityService\n .withEntity('ProjectManagement', 'ProjectType')\n .data()\n .byKey(projectTypeId)) as {\n allowedTaskTypeIds?: string[];\n allowedTaskTypes?: Array<{ id: string }>;\n allowedTaskTypesList?: Array<{ id: string }>;\n } | null;\n\n if (!projectType) {\n return false;\n }\n\n const allowedIds =\n (projectType.allowedTaskTypesList ?? projectType.allowedTaskTypes)?.map((row) => row.id).filter(Boolean) ?? [];\n if (!isEmpty(allowedIds)) {\n return allowedIds.includes(taskTypeId);\n }\n\n return defaultTo(projectType.allowedTaskTypeIds, []).includes(taskTypeId);\n }\n\n private buildCorrelationId(subjectId: string, taskTypeId: string, workflowId: string): string {\n return `${subjectId}:${taskTypeId}:${workflowId}`;\n }\n\n //#endregion\n}\n\nexport const START_TASK_FLOW_COMMAND_KEY = AXPTaskManagementCommandKeys.Task.StartFlow;\n"],"names":[],"mappings":"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"}
|