@acorex-platform/module-timesheet-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-timesheet-management-client-admin-adjust-timesheet-period.command-8lA7h4rI.mjs +57 -0
- package/fesm2022/acorex-platform-module-timesheet-management-client-admin-adjust-timesheet-period.command-8lA7h4rI.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-timesheet-management-client-approval-inbox.query-Wyz_jjxb.mjs +49 -0
- package/fesm2022/acorex-platform-module-timesheet-management-client-approval-inbox.query-Wyz_jjxb.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-timesheet-management-client-approve-timesheet-period.command-DlAeGANo.mjs +54 -0
- package/fesm2022/acorex-platform-module-timesheet-management-client-approve-timesheet-period.command-DlAeGANo.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-timesheet-management-client-compare-attendance-vs-timesheet.query-ZZym5nSx.mjs +91 -0
- package/fesm2022/acorex-platform-module-timesheet-management-client-compare-attendance-vs-timesheet.query-ZZym5nSx.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-timesheet-management-client-contracts.mjs +200 -0
- package/fesm2022/acorex-platform-module-timesheet-management-client-contracts.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-timesheet-management-client-create-time-entry.command-DS2EVLym.mjs +59 -0
- package/fesm2022/acorex-platform-module-timesheet-management-client-create-time-entry.command-DS2EVLym.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-timesheet-management-client-delete-time-entry.command-5_ItHpnx.mjs +59 -0
- package/fesm2022/acorex-platform-module-timesheet-management-client-delete-time-entry.command-5_ItHpnx.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-timesheet-management-client-lock-timesheet-period.command-D7V7SWUK.mjs +50 -0
- package/fesm2022/acorex-platform-module-timesheet-management-client-lock-timesheet-period.command-D7V7SWUK.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-timesheet-management-client-my-timesheet-grid.query-DlDY3tdF.mjs +90 -0
- package/fesm2022/acorex-platform-module-timesheet-management-client-my-timesheet-grid.query-DlDY3tdF.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-timesheet-management-client-reject-timesheet-period.command-CONxKPNm.mjs +56 -0
- package/fesm2022/acorex-platform-module-timesheet-management-client-reject-timesheet-period.command-CONxKPNm.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-timesheet-management-client-reopen-timesheet-period.command-DRr_c67L.mjs +56 -0
- package/fesm2022/acorex-platform-module-timesheet-management-client-reopen-timesheet-period.command-DRr_c67L.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-timesheet-management-client-report-billable-summary.query-BeLk4Of7.mjs +57 -0
- package/fesm2022/acorex-platform-module-timesheet-management-client-report-billable-summary.query-BeLk4Of7.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-timesheet-management-client-report-hours-by-project.query-Sp8cLnTC.mjs +69 -0
- package/fesm2022/acorex-platform-module-timesheet-management-client-report-hours-by-project.query-Sp8cLnTC.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-timesheet-management-client-report-hours-by-work-item.query-C8RU9Uc0.mjs +70 -0
- package/fesm2022/acorex-platform-module-timesheet-management-client-report-hours-by-work-item.query-C8RU9Uc0.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-timesheet-management-client-submit-timesheet-period.command-C2qlQVIC.mjs +51 -0
- package/fesm2022/acorex-platform-module-timesheet-management-client-submit-timesheet-period.command-C2qlQVIC.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-timesheet-management-client-team-timesheets.query-B0QpkVEI.mjs +51 -0
- package/fesm2022/acorex-platform-module-timesheet-management-client-team-timesheets.query-B0QpkVEI.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-timesheet-management-client-timesheet-validation.service-DMrJn3HU.mjs +263 -0
- package/fesm2022/acorex-platform-module-timesheet-management-client-timesheet-validation.service-DMrJn3HU.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-timesheet-management-client-update-time-entry.command-Do6s9OrI.mjs +60 -0
- package/fesm2022/acorex-platform-module-timesheet-management-client-update-time-entry.command-Do6s9OrI.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-timesheet-management-client-work-item-search.query-BA2kvF-S.mjs +68 -0
- package/fesm2022/acorex-platform-module-timesheet-management-client-work-item-search.query-BA2kvF-S.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-timesheet-management-client-workforce-exception-report.query-0q-AITic.mjs +40 -0
- package/fesm2022/acorex-platform-module-timesheet-management-client-workforce-exception-report.query-0q-AITic.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-timesheet-management-client.mjs +891 -0
- package/fesm2022/acorex-platform-module-timesheet-management-client.mjs.map +1 -0
- package/package.json +28 -0
- package/types/acorex-platform-module-timesheet-management-client-contracts.d.ts +305 -0
- package/types/acorex-platform-module-timesheet-management-client.d.ts +54 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-timesheet-management-client.mjs","sources":["../../../../libs/modules/timesheet-management/client/src/lib/features/my-timesheet/my-timesheet-page.component.ts","../../../../libs/modules/timesheet-management/client/src/lib/features/my-timesheet/my-timesheet-page.component.provider.ts","../../../../libs/modules/timesheet-management/client/src/lib/features/my-timesheet/my-timesheet-page.routes.ts","../../../../libs/modules/timesheet-management/client/src/lib/feature-definition.provider.ts","../../../../libs/modules/timesheet-management/client/src/lib/features/timesheet-correction/timesheet-correction-status.provider.ts","../../../../libs/modules/timesheet-management/client/src/lib/features/timesheet-period/timesheet-period-status.provider.ts","../../../../libs/modules/timesheet-management/client/src/lib/manifest.ts","../../../../libs/modules/timesheet-management/client/src/lib/menu.provider.ts","../../../../libs/modules/timesheet-management/client/src/lib/permission-definition.provider.ts","../../../../libs/modules/timesheet-management/client/src/lib/timesheet-management.module.ts","../../../../libs/modules/timesheet-management/client/src/acorex-platform-module-timesheet-management-client.ts"],"sourcesContent":["import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPSystemStatusType } from '@acorex-platform/framework-shared/core';\nimport { AXPThemeLayoutBlockComponent } from '@acorex-platform/framework-client/layout/components';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport {\n AXPPageLayoutBase,\n AXPPageLayoutBaseComponent,\n AXPPageLayoutComponent,\n} from '@acorex-platform/framework-client/layout/views';\nimport { AXPCommandService } from '@acorex-platform/framework-client/runtime';\nimport { AsyncPipe, CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n OnInit,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { groupBy, sumBy } from 'lodash';\nimport { RootConfig } from '@acorex-platform/module-timesheet-management-client/contracts';\nimport type { AXMTimesheetManagementTimeEntryEntityModel } from '@acorex-platform/module-timesheet-management-client/contracts';\nimport type { AXMTimesheetManagementTimesheetPeriodEntityModel } from '@acorex-platform/module-timesheet-management-client/contracts';\n\n//#region ---- Component ----\n\n@Component({\n selector: 'axm-my-timesheet-page',\n imports: [\n CommonModule,\n AsyncPipe,\n AXButtonModule,\n AXDecoratorModule,\n AXLoadingModule,\n AXTranslationModule,\n AXPPageLayoutComponent,\n AXPThemeLayoutBlockComponent,\n ],\n template: `\n <axp-page-layout>\n <axp-page-content>\n <div class=\"flex flex-col gap-4 p-4\">\n @if (loading()) {\n <ax-loading />\n } @else if (!period()) {\n <p class=\"text-sm text-muted\">\n {{ '@timesheet-management:pages.my-timesheet.empty-period' | translate | async }}\n </p>\n } @else {\n <div class=\"flex flex-wrap items-center justify-between gap-4\">\n <div>\n <p class=\"text-sm font-medium\">\n {{ period()?.startDate }} – {{ period()?.endDate }}\n </p>\n <p class=\"text-xs text-muted\">\n {{ '@timesheet-management:timesheet-periods.entities.timesheet-period.fields.status' | translate | async }}:\n {{ period()?.statusId }}\n </p>\n </div>\n <div class=\"flex items-center gap-3\">\n <p class=\"text-sm\">{{ formatHours(totalSeconds()) }}</p>\n @if (canSubmit()) {\n <ax-button color=\"primary\" (onClick)=\"submitCurrentPeriod()\">\n {{ '@timesheet-management:timesheet-periods.transitions.submit' | translate | async }}\n </ax-button>\n }\n </div>\n </div>\n\n <div class=\"overflow-x-auto rounded border border-surface\">\n <table class=\"w-full text-sm\">\n <thead>\n <tr class=\"border-b border-surface bg-lighter-surface\">\n <th class=\"p-2 text-left\">{{ '@general:terms.date' | translate | async }}</th>\n <th class=\"p-2 text-right\">{{ '@timesheet-management:time-entries.entities.time-entry.fields.duration' | translate | async }}</th>\n <th class=\"p-2 text-left\">{{ '@timesheet-management:work-items.entities.work-item.title' | translate | async }}</th>\n </tr>\n </thead>\n <tbody>\n @for (day of days(); track day.date) {\n <tr class=\"border-b border-lighter-surface\">\n <td class=\"p-2\">{{ day.date }}</td>\n <td class=\"p-2 text-right\">{{ formatHours(day.totalSeconds) }}</td>\n <td class=\"p-2\">{{ day.entries.length }}</td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n }\n </div>\n </axp-page-content>\n </axp-page-layout>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: AXPPageLayoutBase,\n useExisting: AXMMyTimesheetPageComponent,\n },\n ],\n host: { class: 'axm-my-timesheet-page block w-full' },\n})\nexport class AXMMyTimesheetPageComponent extends AXPPageLayoutBaseComponent implements OnInit {\n //#region ---- Services & Dependencies ----\n\n private readonly entityService = inject(AXPEntityService);\n private readonly commandService = inject(AXPCommandService);\n\n //#endregion\n\n //#region ---- State ----\n\n protected readonly loading = signal(false);\n protected readonly period = signal<AXMTimesheetManagementTimesheetPeriodEntityModel | null>(null);\n protected readonly days = signal<{ date: string; totalSeconds: number; entries: AXMTimesheetManagementTimeEntryEntityModel[] }[]>([]);\n protected readonly totalSeconds = signal(0);\n\n protected readonly canSubmit = computed(\n () => this.period()?.statusId === AXPSystemStatusType.Draft,\n );\n\n //#endregion\n\n //#region ---- Lifecycle ----\n\n override async ngOnInit(): Promise<void> {\n await super.ngOnInit();\n await this.loadGrid();\n }\n\n //#endregion\n\n //#region ---- Page metadata ----\n\n override getPageTitle(): string {\n return RootConfig.pages.myTimesheet.title;\n }\n\n //#endregion\n\n //#region ---- UI handlers ----\n\n protected formatHours(totalSeconds: number): string {\n const hours = Math.floor(totalSeconds / 3600);\n const minutes = Math.floor((totalSeconds % 3600) / 60);\n return `${hours}h ${minutes}m`;\n }\n\n //#endregion\n\n //#region ---- Data loading ----\n\n private async loadGrid(): Promise<void> {\n const employeeId = this.sessionService.user?.id;\n if (!employeeId) {\n return;\n }\n\n this.loading.set(true);\n try {\n const periodAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.timesheetPeriod.name)\n .data<string, AXMTimesheetManagementTimesheetPeriodEntityModel>();\n\n const periods = await periodAccessor.query({\n skip: 0,\n take: 1,\n sort: [{ field: 'startDate', dir: 'desc' }],\n filter: {\n field: 'employeeId',\n operator: { type: 'equal' },\n value: employeeId,\n },\n });\n\n const currentPeriod = periods.items[0] ?? null;\n this.period.set(currentPeriod);\n\n if (!currentPeriod) {\n this.days.set([]);\n this.totalSeconds.set(0);\n this.recompute();\n return;\n }\n\n const entryAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.timeEntry.name)\n .data<string, AXMTimesheetManagementTimeEntryEntityModel>();\n\n const entriesResult = await entryAccessor.query({\n skip: 0,\n take: 1000,\n filter: {\n logic: 'and',\n filters: [\n { field: 'employeeId', operator: { type: 'equal' }, value: employeeId },\n { field: 'periodId', operator: { type: 'equal' }, value: currentPeriod.id },\n ],\n },\n });\n\n const grouped = groupBy(entriesResult.items, (row) => row.entryDate);\n const days = Object.keys(grouped)\n .sort()\n .map((date) => ({\n date,\n totalSeconds: sumBy(grouped[date], (row) => row.durationSeconds ?? 0),\n entries: grouped[date],\n }));\n\n this.days.set(days);\n this.totalSeconds.set(sumBy(entriesResult.items, (row) => row.durationSeconds ?? 0));\n this.recompute();\n } finally {\n this.loading.set(false);\n }\n }\n\n /** Submits the current period via the registered command. */\n protected async submitCurrentPeriod(): Promise<void> {\n const id = this.period()?.id;\n if (!id) {\n return;\n }\n\n const result = await this.commandService.execute('TimesheetManagement.TimesheetPeriod:Submit', { id });\n if (result?.success) {\n await this.loadGrid();\n }\n }\n\n //#endregion\n}\n\n//#endregion\n","import {\n AXPPageComponentDefinition,\n AXPPageComponentProvider,\n} from '@acorex-platform/framework-client/layout/components';\nimport { Injectable } from '@angular/core';\n\n//#region ---- Page component key ----\n\nexport const MY_TIMESHEET_PAGE_COMPONENT_KEY = 'timesheet-management-my-timesheet-page';\n\n//#endregion\n\n//#region ---- My Timesheet Page Component Provider ----\n\n@Injectable()\nexport class AXMMyTimesheetPageComponentProvider implements AXPPageComponentProvider {\n async components(): Promise<AXPPageComponentDefinition[]> {\n return [\n {\n key: MY_TIMESHEET_PAGE_COMPONENT_KEY,\n loader: () =>\n import('./my-timesheet-page.component').then((m) => m.AXMMyTimesheetPageComponent),\n },\n ];\n }\n}\n\n//#endregion\n","import { AXP_PROTECTED_ROUTE_GUARDS } from '@acorex-platform/framework-client/common';\nimport { AXPRootLayoutComponent } from '@acorex-platform/framework-client/themes/default';\nimport { Routes } from '@angular/router';\nimport { RootConfig } from '@acorex-platform/module-timesheet-management-client/contracts';\n\n//#region ---- My Timesheet Routes ----\n\nexport const myTimesheetPageRoutes: Routes = [\n {\n path: `:app/${RootConfig.module.route}/${RootConfig.pages.myTimesheet.path}`,\n canActivate: [...AXP_PROTECTED_ROUTE_GUARDS],\n loadComponent: () => AXPRootLayoutComponent,\n children: [\n {\n path: '',\n loadComponent: () =>\n import('./my-timesheet-page.component').then((m) => m.AXMMyTimesheetPageComponent),\n data: { reuse: true },\n },\n ],\n },\n];\n\n//#endregion\n","//#region ---- Imports ----\n\nimport {\n AXPFeatureDefinitionProvider,\n AXPFeatureDefinitionProviderContext,\n} from '@acorex-platform/framework-client/core';\nimport { AXMTimesheetManagementFeatureKeys } from '@acorex-platform/module-timesheet-management-client/contracts';\n\n//#endregion\n\n//#region ---- Feature Definition Provider ----\n\nexport class AXMTimesheetManagementFeatureDefinitionProvider implements AXPFeatureDefinitionProvider {\n async provide(context: AXPFeatureDefinitionProviderContext): Promise<void> {\n context.addFeature(AXMTimesheetManagementFeatureKeys.TimesheetEntry, {\n title: '@timesheet-management:features.timesheet-entry.title',\n description: '@timesheet-management:features.timesheet-entry.description',\n defaultValue: true,\n type: 'boolean',\n });\n\n context.addFeature(AXMTimesheetManagementFeatureKeys.TimesheetApproval, {\n title: '@timesheet-management:features.timesheet-approval.title',\n description: '@timesheet-management:features.timesheet-approval.description',\n defaultValue: true,\n type: 'boolean',\n });\n\n context.addFeature(AXMTimesheetManagementFeatureKeys.TimesheetReporting, {\n title: '@timesheet-management:features.timesheet-reporting.title',\n description: '@timesheet-management:features.timesheet-reporting.description',\n defaultValue: true,\n type: 'boolean',\n });\n }\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXPStatusProvider, AXPStatusTransition, AXPSystemStatusType, systemStatusToDefinition } from '@acorex-platform/framework-shared/core';\n\n//#endregion\n\n//#region ---- Timesheet Correction Status Provider ----\n\nexport class AXMTimesheetCorrectionStatusProvider extends AXPStatusProvider {\n readonly key = 'timesheet-management.status.timesheet-correction';\n\n readonly defaultStatus = AXPSystemStatusType.WaitingApproval;\n\n readonly statuses = [\n systemStatusToDefinition(AXPSystemStatusType.WaitingApproval, {\n title: '@timesheet-management:timesheet-corrections.states.waiting-approval',\n generateView: true,\n }),\n systemStatusToDefinition(AXPSystemStatusType.Approved, {\n title: '@timesheet-management:timesheet-corrections.states.approved',\n generateView: true,\n }),\n systemStatusToDefinition(AXPSystemStatusType.Rejected, {\n title: '@timesheet-management:timesheet-corrections.states.rejected',\n generateView: true,\n }),\n ];\n\n readonly transitions: AXPStatusTransition[] = [\n {\n from: AXPSystemStatusType.WaitingApproval,\n to: AXPSystemStatusType.Approved,\n title: '@general:statuses.transitions.approve',\n requiresApproval: true,\n },\n {\n from: AXPSystemStatusType.WaitingApproval,\n to: AXPSystemStatusType.Rejected,\n title: '@general:statuses.transitions.reject',\n requiresApproval: true,\n },\n ];\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXPStatusProvider, AXPStatusTransition, AXPSystemStatusType, systemStatusToDefinition } from '@acorex-platform/framework-shared/core';\nimport { AXMTimesheetPeriodLockedStatusId } from '@acorex-platform/module-timesheet-management-client/contracts';\n\n//#endregion\n\n//#region ---- Timesheet Period Status Provider ----\n\n/**\n * Timesheet period status provider defining Draft, WaitingApproval, Approved, Rejected, and locked states.\n * Used by the status plugin to manage period submission, approval, rejection, reopen, and lock transitions.\n */\nexport class AXMTimesheetPeriodStatusProvider extends AXPStatusProvider {\n readonly key = 'timesheet-management.status.timesheet-period';\n\n readonly defaultStatus = AXPSystemStatusType.Draft;\n\n readonly statuses = [\n systemStatusToDefinition(AXPSystemStatusType.Draft, {\n title: '@timesheet-management:timesheet-periods.states.draft',\n generateView: true,\n }),\n systemStatusToDefinition(AXPSystemStatusType.WaitingApproval, {\n title: '@timesheet-management:timesheet-periods.states.waiting-approval',\n generateView: true,\n }),\n systemStatusToDefinition(AXPSystemStatusType.Approved, {\n title: '@timesheet-management:timesheet-periods.states.approved',\n generateView: true,\n }),\n systemStatusToDefinition(AXPSystemStatusType.Rejected, {\n title: '@timesheet-management:timesheet-periods.states.rejected',\n generateView: true,\n }),\n {\n name: AXMTimesheetPeriodLockedStatusId,\n title: '@timesheet-management:timesheet-periods.states.locked',\n color: 'neutral',\n icon: 'fa-light fa-lock',\n generateView: true,\n },\n ];\n\n readonly transitions: AXPStatusTransition[] = [\n {\n from: AXPSystemStatusType.Draft,\n to: AXPSystemStatusType.WaitingApproval,\n title: '@timesheet-management:timesheet-periods.transitions.submit',\n requiresApproval: true,\n },\n {\n from: AXPSystemStatusType.WaitingApproval,\n to: AXPSystemStatusType.Approved,\n title: '@timesheet-management:timesheet-periods.transitions.approve',\n requiresApproval: true,\n },\n {\n from: AXPSystemStatusType.WaitingApproval,\n to: AXPSystemStatusType.Rejected,\n title: '@timesheet-management:timesheet-periods.transitions.reject',\n requiresApproval: true,\n },\n {\n from: AXPSystemStatusType.Rejected,\n to: AXPSystemStatusType.Draft,\n title: '@timesheet-management:timesheet-periods.transitions.reopen',\n },\n {\n from: AXPSystemStatusType.Approved,\n to: AXPSystemStatusType.Draft,\n title: '@timesheet-management:timesheet-periods.transitions.reopen',\n requiresApproval: true,\n },\n {\n from: AXPSystemStatusType.Approved,\n to: AXMTimesheetPeriodLockedStatusId,\n title: '@timesheet-management:timesheet-periods.transitions.lock',\n requiresApproval: true,\n },\n ];\n}\n\n//#endregion\n","import { AXPModuleManifest } from '@acorex-platform/framework-client/core';\nimport { RootConfig } from '@acorex-platform/module-timesheet-management-client/contracts';\n\nexport const TimesheetManagementManifest: AXPModuleManifest = {\n name: RootConfig.module.name,\n version: '1.0.0',\n title: RootConfig.module.title,\n icon: RootConfig.module.icon,\n i18n: RootConfig.config.i18n,\n type: 'domain',\n domain: 'human-capital',\n required: false,\n};\n","import { AXPSessionService } from '@acorex-platform/framework-client/auth';\nimport { AXPMenuProvider, AXPMenuProviderContext } from '@acorex-platform/framework-client/common';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport {\n AXPCommonMenuKeys\n} from '@acorex-platform/module-common-client/contracts';\nimport { inject } from '@angular/core';\nimport { firstValueFrom } from 'rxjs';\nimport {\n RootConfig,\n AXPProjectsWorkPermissionKeys\n} from '@acorex-platform/module-timesheet-management-client/contracts';\nimport { AXMTimesheetManagementFeatureKeys } from '@acorex-platform/module-timesheet-management-client/contracts';\nimport { AXMTimesheetManagementMenuKeys } from '@acorex-platform/module-timesheet-management-client/contracts';\n\n//#region ---- Menu Provider ----\n\nexport class AXMTimesheetManagementMenuProvider implements AXPMenuProvider {\n private readonly entityService = inject(AXPEntityService);\n private readonly sessionService = inject(AXPSessionService);\n\n async provide(context: AXPMenuProviderContext): Promise<void> {\n const isAuthorized = await firstValueFrom(this.sessionService.isAuthorized$);\n if (!isAuthorized) {\n return;\n }\n\n const module = RootConfig.module;\n const keys = AXPProjectsWorkPermissionKeys;\n const app = this.sessionService.application?.name ?? ':app';\n\n const organizationMenu = context.find(AXPCommonMenuKeys.Organization);\n if (!organizationMenu.exists) {\n context.addItems([\n {\n name: AXPCommonMenuKeys.Organization,\n priority: 9000,\n text: '@organization-management:module.menus.root.title',\n type: 'menu',\n icon: 'fa-light fa-sitemap',\n children: [],\n },\n ]);\n }\n\n context.find(AXPCommonMenuKeys.Organization).addItems([\n {\n name: AXMTimesheetManagementMenuKeys.MyTimesheet,\n text: RootConfig.pages.myTimesheet.title,\n path: `${app}/${RootConfig.module.route}/${RootConfig.pages.myTimesheet.path}`,\n priority: 25,\n icon: RootConfig.pages.myTimesheet.icon,\n policy: {\n permissions: [keys.MaintainTimesheets],\n features: [AXMTimesheetManagementFeatureKeys.TimesheetEntry],\n },\n },\n {\n name: AXMTimesheetManagementMenuKeys.PeriodHistory,\n text: RootConfig.entities.timesheetPeriod.titlePlural,\n path: this.entityService.createPath(module.name, RootConfig.entities.timesheetPeriod.name),\n priority: 26,\n icon: RootConfig.entities.timesheetPeriod.icon,\n policy: {\n permissions: [keys.MaintainTimesheets],\n features: [AXMTimesheetManagementFeatureKeys.TimesheetEntry],\n },\n },\n {\n name: AXMTimesheetManagementMenuKeys.ApprovalInbox,\n text: RootConfig.pages.approvalInbox.title,\n path: `${app}/${RootConfig.module.route}/${RootConfig.pages.approvalInbox.path}`,\n priority: 27,\n icon: RootConfig.pages.approvalInbox.icon,\n policy: {\n permissions: [keys.ManageTimesheetActions],\n features: [AXMTimesheetManagementFeatureKeys.TimesheetApproval],\n },\n },\n {\n name: AXMTimesheetManagementMenuKeys.TeamTimesheets,\n text: RootConfig.pages.teamTimesheets.title,\n path: `${app}/${RootConfig.module.route}/${RootConfig.pages.teamTimesheets.path}`,\n priority: 28,\n icon: RootConfig.pages.teamTimesheets.icon,\n policy: {\n permissions: [keys.ManageTimesheetActions],\n features: [AXMTimesheetManagementFeatureKeys.TimesheetApproval],\n },\n },\n {\n name: AXMTimesheetManagementMenuKeys.WorkItems,\n text: RootConfig.entities.workItem.titlePlural,\n path: this.entityService.createPath(module.name, RootConfig.entities.workItem.name),\n priority: 29,\n icon: RootConfig.entities.workItem.icon,\n policy: {\n permissions: [keys.MaintainTimesheets],\n features: [AXMTimesheetManagementFeatureKeys.TimesheetEntry],\n },\n },\n ]);\n\n const orgConfigMenu = context.find(AXPCommonMenuKeys.OrganizationConfig);\n if (!orgConfigMenu.exists) {\n context.find(AXPCommonMenuKeys.Configuration).addItems([\n {\n name: AXPCommonMenuKeys.OrganizationConfig,\n priority: 8600,\n text: '@organization-management:module.menus.configuration.title',\n icon: module.icon,\n type: 'menu',\n children: [],\n },\n ]);\n }\n\n context.find(AXPCommonMenuKeys.OrganizationConfig).addItems([\n {\n name: AXMTimesheetManagementMenuKeys.Policies,\n text: RootConfig.entities.timesheetPolicy.titlePlural,\n path: this.entityService.createPath(module.name, RootConfig.entities.timesheetPolicy.name),\n priority: 23,\n icon: RootConfig.entities.timesheetPolicy.icon,\n policy: {\n permissions: [keys.Setup],\n features: [AXMTimesheetManagementFeatureKeys.TimesheetEntry],\n },\n },\n ]);\n }\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport {\n AXPPermissionDefinitionProvider,\n AXPPermissionDefinitionProviderContext,\n} from '@acorex-platform/framework-client/auth';\nimport {\n AXPCommonPermissionGroupKeys\n} from '@acorex-platform/module-common-client/contracts';\nimport {\n AXPProjectsWorkPermissionKeys\n} from '@acorex-platform/module-timesheet-management-client/contracts';\n\nimport { Injectable } from '@angular/core';\n\n//#endregion\n\n//#region ---- Permission Definition Provider ----\n\n/**\n * Registers timesheet capabilities into the shared Projects & Work group.\n */\n@Injectable()\nexport class AXMTimesheetManagementPermissionDefinitionProvider implements AXPPermissionDefinitionProvider {\n async define(context: AXPPermissionDefinitionProviderContext): Promise<void> {\n const keys = AXPProjectsWorkPermissionKeys;\n const groups = AXPCommonPermissionGroupKeys;\n const P = '@common:projects-work.permissions';\n const G = '@common:permission-groups';\n\n context.addGroup(groups.ProjectsWork.Root, `${G}.projects-work.title`, `${G}.projects-work.description`, { order: 60 });\n\n context\n .addGroup(\n groups.ProjectsWork.TimeTracking,\n `${G}.projects-work-time-tracking.title`,\n `${G}.projects-work-time-tracking.description`,\n { parent: groups.ProjectsWork.Root, order: 30 },\n )\n .addPermission(\n keys.MaintainTimesheets,\n `${P}.maintain-timesheets.title`,\n `${P}.maintain-timesheets.description`,\n )\n .endPermission()\n .addPermission(\n keys.ManageTimesheetActions,\n `${P}.manage-timesheet-actions.title`,\n `${P}.manage-timesheet-actions.description`,\n )\n .endPermission()\n .addPermission(\n keys.ViewTimesheetReports,\n `${P}.view-timesheet-reports.title`,\n `${P}.view-timesheet-reports.description`,\n )\n .endPermission()\n .endGroup();\n }\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXP_PERMISSION_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/auth';\nimport { AXP_MENU_PROVIDER, AXP_STATUS_PROVIDERS } from '@acorex-platform/framework-client/common';\nimport { AXP_FEATURE_DEFINITION_PROVIDER, AXP_MODULE_MANIFEST_PROVIDER } from '@acorex-platform/framework-client/core';\nimport { AXP_PAGE_COMPONENT_PROVIDER } from '@acorex-platform/framework-client/layout/components';\nimport { AXPRuntimeModule, provideCommandSetups, provideQuerySetups } from '@acorex-platform/framework-client/runtime';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ROUTES } from '@angular/router';\nimport { AXMTimesheetManagementCommandKeys } from '@acorex-platform/module-timesheet-management-client/contracts';\n\nimport { AXMTimesheetManagementFeatureDefinitionProvider } from './feature-definition.provider';\nimport { AXMMyTimesheetPageComponentProvider } from './features/my-timesheet/my-timesheet-page.component.provider';\nimport { myTimesheetPageRoutes } from './features/my-timesheet/my-timesheet-page.routes';\nimport { AXMTimesheetCorrectionStatusProvider } from './features/timesheet-correction/timesheet-correction-status.provider';\nimport { AXMTimesheetPeriodStatusProvider } from './features/timesheet-period/timesheet-period-status.provider';\nimport { TimesheetManagementManifest } from './manifest';\nimport { AXMTimesheetManagementMenuProvider } from './menu.provider';\nimport { AXMTimesheetManagementPermissionDefinitionProvider } from './permission-definition.provider';\n\n//#endregion\n\n//#region ---- Module ----\n\n@NgModule({\n imports: [CommonModule, AXPRuntimeModule],\n providers: [\n {\n provide: ROUTES,\n multi: true,\n useFactory: () => [...myTimesheetPageRoutes],\n },\n {\n provide: AXP_PAGE_COMPONENT_PROVIDER,\n useClass: AXMMyTimesheetPageComponentProvider,\n multi: true,\n },\n {\n provide: AXP_MODULE_MANIFEST_PROVIDER,\n useValue: TimesheetManagementManifest,\n multi: true,\n },\n {\n provide: AXP_PERMISSION_DEFINITION_PROVIDER,\n useClass: AXMTimesheetManagementPermissionDefinitionProvider,\n multi: true,\n },\n {\n provide: AXP_MENU_PROVIDER,\n useClass: AXMTimesheetManagementMenuProvider,\n multi: true,\n },\n \n {\n provide: AXP_FEATURE_DEFINITION_PROVIDER,\n useClass: AXMTimesheetManagementFeatureDefinitionProvider,\n multi: true,\n },\n {\n provide: AXP_STATUS_PROVIDERS,\n useClass: AXMTimesheetPeriodStatusProvider,\n multi: true,\n },\n {\n provide: AXP_STATUS_PROVIDERS,\n useClass: AXMTimesheetCorrectionStatusProvider,\n multi: true,\n },\n provideCommandSetups([\n // {\n // key: AXMTimesheetManagementCommandKeys.WorkItemResolveFromJira,\n // command: () =>\n // import('./features/work-item/commands/resolve-work-item-from-jira-issue.command').then(\n // (c) => c.ResolveWorkItemFromJiraIssueCommand,\n // ),\n // },\n {\n key: AXMTimesheetManagementCommandKeys.TimeEntryCreate,\n command: () =>\n import('./features/time-entry/commands/create-time-entry.command').then((c) => c.CreateTimeEntryCommand),\n },\n {\n key: AXMTimesheetManagementCommandKeys.TimeEntryUpdate,\n command: () =>\n import('./features/time-entry/commands/update-time-entry.command').then((c) => c.UpdateTimeEntryCommand),\n },\n {\n key: AXMTimesheetManagementCommandKeys.TimeEntryDelete,\n command: () =>\n import('./features/time-entry/commands/delete-time-entry.command').then((c) => c.DeleteTimeEntryCommand),\n },\n {\n key: AXMTimesheetManagementCommandKeys.TimesheetPeriodSubmit,\n command: () =>\n import('./features/timesheet-period/commands/submit-timesheet-period.command').then(\n (c) => c.SubmitTimesheetPeriodCommand,\n ),\n },\n {\n key: AXMTimesheetManagementCommandKeys.TimesheetPeriodApprove,\n command: () =>\n import('./features/timesheet-period/commands/approve-timesheet-period.command').then(\n (c) => c.ApproveTimesheetPeriodCommand,\n ),\n },\n {\n key: AXMTimesheetManagementCommandKeys.TimesheetPeriodReject,\n command: () =>\n import('./features/timesheet-period/commands/reject-timesheet-period.command').then(\n (c) => c.RejectTimesheetPeriodCommand,\n ),\n },\n {\n key: AXMTimesheetManagementCommandKeys.TimesheetPeriodReopen,\n command: () =>\n import('./features/timesheet-period/commands/reopen-timesheet-period.command').then(\n (c) => c.ReopenTimesheetPeriodCommand,\n ),\n },\n {\n key: AXMTimesheetManagementCommandKeys.TimesheetPeriodLock,\n command: () =>\n import('./features/timesheet-period/commands/lock-timesheet-period.command').then(\n (c) => c.LockTimesheetPeriodCommand,\n ),\n },\n {\n key: AXMTimesheetManagementCommandKeys.TimesheetPeriodAdminAdjust,\n command: () =>\n import('./features/timesheet-period/commands/admin-adjust-timesheet-period.command').then(\n (c) => c.AdminAdjustTimesheetPeriodCommand,\n ),\n },\n ]),\n provideQuerySetups([\n {\n key: 'TimesheetManagement:MyTimesheetGrid',\n loader: () =>\n import('./features/reporting/queries/my-timesheet-grid.query').then((c) => c.AXMMyTimesheetGridQuery),\n },\n {\n key: 'TimesheetManagement:TeamTimesheets',\n loader: () =>\n import('./features/reporting/queries/team-timesheets.query').then((c) => c.AXMTeamTimesheetsQuery),\n },\n {\n key: 'TimesheetManagement:ApprovalInbox',\n loader: () => import('./features/reporting/queries/approval-inbox.query').then((c) => c.AXMApprovalInboxQuery),\n },\n {\n key: 'TimesheetManagement:ReportHoursByProject',\n loader: () =>\n import('./features/reporting/queries/report-hours-by-project.query').then(\n (c) => c.AXMReportHoursByProjectQuery,\n ),\n },\n {\n key: 'TimesheetManagement:ReportHoursByWorkItem',\n loader: () =>\n import('./features/reporting/queries/report-hours-by-work-item.query').then(\n (c) => c.AXMReportHoursByWorkItemQuery,\n ),\n },\n {\n key: 'TimesheetManagement:ReportBillableSummary',\n loader: () =>\n import('./features/reporting/queries/report-billable-summary.query').then(\n (c) => c.AXMReportBillableSummaryQuery,\n ),\n },\n {\n key: 'TimesheetManagement:WorkItemSearch',\n loader: () =>\n import('./features/reporting/queries/work-item-search.query').then((c) => c.AXMWorkItemSearchQuery),\n },\n {\n key: 'Workforce:CompareAttendanceVsTimesheet',\n loader: () =>\n import('./features/reporting/queries/compare-attendance-vs-timesheet.query').then(\n (c) => c.AXMCompareAttendanceVsTimesheetQuery,\n ),\n },\n {\n key: 'Workforce:ExceptionReport',\n loader: () =>\n import('./features/reporting/queries/workforce-exception-report.query').then(\n (c) => c.AXMWorkforceExceptionReportQuery,\n ),\n },\n ]),\n ],\n})\nexport class AXMTimesheetManagementModule {}\n\n//#endregion\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@acorex-platform/module-timesheet-management-client",
|
|
3
|
+
"version": "0.0.21",
|
|
4
|
+
"sideEffects": false,
|
|
5
|
+
"peerDependencies": {
|
|
6
|
+
"@angular/common": "^21.0.0",
|
|
7
|
+
"@angular/core": "^21.0.0"
|
|
8
|
+
},
|
|
9
|
+
"dependencies": {
|
|
10
|
+
"tslib": "^2.3.0"
|
|
11
|
+
},
|
|
12
|
+
"module": "fesm2022/acorex-platform-module-timesheet-management-client.mjs",
|
|
13
|
+
"typings": "types/acorex-platform-module-timesheet-management-client.d.ts",
|
|
14
|
+
"exports": {
|
|
15
|
+
"./package.json": {
|
|
16
|
+
"default": "./package.json"
|
|
17
|
+
},
|
|
18
|
+
".": {
|
|
19
|
+
"types": "./types/acorex-platform-module-timesheet-management-client.d.ts",
|
|
20
|
+
"default": "./fesm2022/acorex-platform-module-timesheet-management-client.mjs"
|
|
21
|
+
},
|
|
22
|
+
"./contracts": {
|
|
23
|
+
"types": "./types/acorex-platform-module-timesheet-management-client-contracts.d.ts",
|
|
24
|
+
"default": "./fesm2022/acorex-platform-module-timesheet-management-client-contracts.mjs"
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"type": "module"
|
|
28
|
+
}
|
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
import { AXPSystemStatusType, AXPMultiLanguageString } from '@acorex-platform/framework-shared/core';
|
|
2
|
+
import { AXPEntityModel } from '@acorex-platform/framework-shared/entity';
|
|
3
|
+
|
|
4
|
+
declare const RootConfig: {
|
|
5
|
+
config: {
|
|
6
|
+
i18n: string;
|
|
7
|
+
module: string;
|
|
8
|
+
route: string;
|
|
9
|
+
};
|
|
10
|
+
module: {
|
|
11
|
+
name: string;
|
|
12
|
+
route: string;
|
|
13
|
+
title: string;
|
|
14
|
+
icon: string;
|
|
15
|
+
};
|
|
16
|
+
entities: {
|
|
17
|
+
workItem: {
|
|
18
|
+
name: string;
|
|
19
|
+
source: string;
|
|
20
|
+
title: string;
|
|
21
|
+
titlePlural: string;
|
|
22
|
+
icon: string;
|
|
23
|
+
};
|
|
24
|
+
timesheetPeriod: {
|
|
25
|
+
name: string;
|
|
26
|
+
source: string;
|
|
27
|
+
title: string;
|
|
28
|
+
titlePlural: string;
|
|
29
|
+
icon: string;
|
|
30
|
+
};
|
|
31
|
+
timeEntry: {
|
|
32
|
+
name: string;
|
|
33
|
+
source: string;
|
|
34
|
+
title: string;
|
|
35
|
+
titlePlural: string;
|
|
36
|
+
icon: string;
|
|
37
|
+
};
|
|
38
|
+
timesheetCorrection: {
|
|
39
|
+
name: string;
|
|
40
|
+
source: string;
|
|
41
|
+
title: string;
|
|
42
|
+
titlePlural: string;
|
|
43
|
+
icon: string;
|
|
44
|
+
};
|
|
45
|
+
timesheetPolicy: {
|
|
46
|
+
name: string;
|
|
47
|
+
source: string;
|
|
48
|
+
title: string;
|
|
49
|
+
titlePlural: string;
|
|
50
|
+
icon: string;
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
pages: {
|
|
54
|
+
myTimesheet: {
|
|
55
|
+
path: string;
|
|
56
|
+
title: string;
|
|
57
|
+
icon: string;
|
|
58
|
+
};
|
|
59
|
+
approvalInbox: {
|
|
60
|
+
path: string;
|
|
61
|
+
title: string;
|
|
62
|
+
icon: string;
|
|
63
|
+
};
|
|
64
|
+
teamTimesheets: {
|
|
65
|
+
path: string;
|
|
66
|
+
title: string;
|
|
67
|
+
icon: string;
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Projects & Work capabilities used by this module.
|
|
74
|
+
* Domain capability keys for this module. Root groups live in `AXPCommonPermissionGroupKeys` (common contracts).
|
|
75
|
+
*/
|
|
76
|
+
declare const AXPProjectsWorkPermissionKeys: {
|
|
77
|
+
readonly Access: "ProjectsWork:Permission:Access";
|
|
78
|
+
readonly MaintainProjects: "ProjectsWork:Permission:MaintainProjects";
|
|
79
|
+
readonly MaintainTasks: "ProjectsWork:Permission:MaintainTasks";
|
|
80
|
+
readonly ViewAllTasks: "ProjectsWork:Permission:ViewAllTasks";
|
|
81
|
+
readonly MaintainTimesheets: "ProjectsWork:Permission:MaintainTimesheets";
|
|
82
|
+
readonly ManageTimesheetActions: "ProjectsWork:Permission:ManageTimesheetActions";
|
|
83
|
+
readonly ViewTimesheetReports: "ProjectsWork:Permission:ViewTimesheetReports";
|
|
84
|
+
readonly Setup: "ProjectsWork:Permission:Setup";
|
|
85
|
+
};
|
|
86
|
+
/**
|
|
87
|
+
* @deprecated Prefer {@link AXPProjectsWorkPermissionKeys}.
|
|
88
|
+
* Legacy nested shape kept so existing imports compile during migration.
|
|
89
|
+
*/
|
|
90
|
+
declare const AXMTimesheetManagementPermissions: {
|
|
91
|
+
readonly TimesheetManagement: {
|
|
92
|
+
readonly WorkItem: {
|
|
93
|
+
readonly Management: "ProjectsWork:Permission:Setup";
|
|
94
|
+
readonly View: "ProjectsWork:Permission:MaintainTimesheets";
|
|
95
|
+
readonly Create: "ProjectsWork:Permission:Setup";
|
|
96
|
+
readonly Update: "ProjectsWork:Permission:Setup";
|
|
97
|
+
readonly Delete: "ProjectsWork:Permission:Setup";
|
|
98
|
+
};
|
|
99
|
+
readonly TimesheetPeriod: {
|
|
100
|
+
readonly Management: "ProjectsWork:Permission:MaintainTimesheets";
|
|
101
|
+
readonly View: "ProjectsWork:Permission:MaintainTimesheets";
|
|
102
|
+
readonly Create: "ProjectsWork:Permission:MaintainTimesheets";
|
|
103
|
+
readonly Update: "ProjectsWork:Permission:MaintainTimesheets";
|
|
104
|
+
readonly Delete: "ProjectsWork:Permission:MaintainTimesheets";
|
|
105
|
+
readonly TeamView: "ProjectsWork:Permission:ManageTimesheetActions";
|
|
106
|
+
readonly Approve: "ProjectsWork:Permission:ManageTimesheetActions";
|
|
107
|
+
readonly AdminAdjust: "ProjectsWork:Permission:ManageTimesheetActions";
|
|
108
|
+
};
|
|
109
|
+
readonly TimeEntry: {
|
|
110
|
+
readonly Management: "ProjectsWork:Permission:MaintainTimesheets";
|
|
111
|
+
readonly View: "ProjectsWork:Permission:MaintainTimesheets";
|
|
112
|
+
readonly Create: "ProjectsWork:Permission:MaintainTimesheets";
|
|
113
|
+
readonly Update: "ProjectsWork:Permission:MaintainTimesheets";
|
|
114
|
+
readonly Delete: "ProjectsWork:Permission:MaintainTimesheets";
|
|
115
|
+
};
|
|
116
|
+
readonly TimesheetCorrection: {
|
|
117
|
+
readonly Management: "ProjectsWork:Permission:ManageTimesheetActions";
|
|
118
|
+
readonly View: "ProjectsWork:Permission:ManageTimesheetActions";
|
|
119
|
+
readonly Approve: "ProjectsWork:Permission:ManageTimesheetActions";
|
|
120
|
+
};
|
|
121
|
+
readonly TimesheetPolicy: {
|
|
122
|
+
readonly Management: "ProjectsWork:Permission:Setup";
|
|
123
|
+
readonly View: "ProjectsWork:Permission:Setup";
|
|
124
|
+
};
|
|
125
|
+
readonly TimesheetReport: {
|
|
126
|
+
readonly View: "ProjectsWork:Permission:ViewTimesheetReports";
|
|
127
|
+
readonly Export: "ProjectsWork:Permission:ViewTimesheetReports";
|
|
128
|
+
};
|
|
129
|
+
};
|
|
130
|
+
};
|
|
131
|
+
|
|
132
|
+
declare const AXMTimesheetManagementMenuKeys: {
|
|
133
|
+
Root: string;
|
|
134
|
+
MyTimesheet: string;
|
|
135
|
+
PeriodHistory: string;
|
|
136
|
+
ApprovalInbox: string;
|
|
137
|
+
TeamTimesheets: string;
|
|
138
|
+
WorkItems: string;
|
|
139
|
+
Reports: string;
|
|
140
|
+
Configuration: string;
|
|
141
|
+
Policies: string;
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
declare const AXMTimesheetManagementFeatureKeys: {
|
|
145
|
+
TimesheetEntry: string;
|
|
146
|
+
TimesheetApproval: string;
|
|
147
|
+
TimesheetReporting: string;
|
|
148
|
+
};
|
|
149
|
+
|
|
150
|
+
declare const AXMTimesheetManagementCommandKeys: {
|
|
151
|
+
WorkItemResolveFromJira: string;
|
|
152
|
+
TimeEntryCreate: string;
|
|
153
|
+
TimeEntryUpdate: string;
|
|
154
|
+
TimeEntryDelete: string;
|
|
155
|
+
TimesheetPeriodSubmit: string;
|
|
156
|
+
TimesheetPeriodApprove: string;
|
|
157
|
+
TimesheetPeriodReject: string;
|
|
158
|
+
TimesheetPeriodReopen: string;
|
|
159
|
+
TimesheetPeriodLock: string;
|
|
160
|
+
TimesheetPeriodAdminAdjust: string;
|
|
161
|
+
};
|
|
162
|
+
|
|
163
|
+
/** Statuses that block creating another open period for the same employee and date range. */
|
|
164
|
+
declare const AXMTimesheetPeriodOpenStatusIds: readonly [AXPSystemStatusType.Draft, AXPSystemStatusType.WaitingApproval];
|
|
165
|
+
/** Statuses where time entries cannot be edited. */
|
|
166
|
+
declare const AXMTimesheetPeriodLockedStatusId: "locked";
|
|
167
|
+
declare const AXMTimesheetPeriodLockedStatusIds: readonly [AXPSystemStatusType.Approved, "locked"];
|
|
168
|
+
|
|
169
|
+
type AXMTimesheetWorkItemSourceType = 'Internal' | 'Jira' | 'Task';
|
|
170
|
+
interface AXMTimesheetWorkItemSourceRef {
|
|
171
|
+
system: 'internal' | 'jira' | 'task';
|
|
172
|
+
jiraInstanceId?: string;
|
|
173
|
+
jiraIssueId?: string;
|
|
174
|
+
jiraIssueKey?: string;
|
|
175
|
+
taskId?: string;
|
|
176
|
+
internalCode?: string;
|
|
177
|
+
}
|
|
178
|
+
interface AXMTimesheetWorkItemSnapshot {
|
|
179
|
+
title: string;
|
|
180
|
+
subtitle?: string;
|
|
181
|
+
projectKey?: string;
|
|
182
|
+
statusName?: string;
|
|
183
|
+
capturedAt: string;
|
|
184
|
+
}
|
|
185
|
+
interface AXMTimesheetManagementWorkItemEntityModel extends AXPEntityModel<string> {
|
|
186
|
+
code: string;
|
|
187
|
+
title: AXPMultiLanguageString;
|
|
188
|
+
sourceType: AXMTimesheetWorkItemSourceType;
|
|
189
|
+
sourceRef?: AXMTimesheetWorkItemSourceRef;
|
|
190
|
+
snapshot?: AXMTimesheetWorkItemSnapshot;
|
|
191
|
+
isBillableDefault: boolean;
|
|
192
|
+
isActive: boolean;
|
|
193
|
+
employeeId?: string;
|
|
194
|
+
employee?: {
|
|
195
|
+
id: string;
|
|
196
|
+
employeeCode?: string;
|
|
197
|
+
person?: {
|
|
198
|
+
fullName?: string;
|
|
199
|
+
};
|
|
200
|
+
};
|
|
201
|
+
projectId?: string;
|
|
202
|
+
project?: {
|
|
203
|
+
id: string;
|
|
204
|
+
title?: string;
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
interface AXMTimesheetManagementTimeEntryEntityModel extends AXPEntityModel<string> {
|
|
209
|
+
employeeId: string;
|
|
210
|
+
employee?: {
|
|
211
|
+
id: string;
|
|
212
|
+
employeeCode?: string;
|
|
213
|
+
person?: {
|
|
214
|
+
fullName?: string;
|
|
215
|
+
};
|
|
216
|
+
};
|
|
217
|
+
periodId: string;
|
|
218
|
+
period?: {
|
|
219
|
+
id: string;
|
|
220
|
+
startDate?: string;
|
|
221
|
+
endDate?: string;
|
|
222
|
+
statusId?: string;
|
|
223
|
+
};
|
|
224
|
+
workItemId: string;
|
|
225
|
+
workItem?: {
|
|
226
|
+
id: string;
|
|
227
|
+
code?: string;
|
|
228
|
+
title?: string;
|
|
229
|
+
};
|
|
230
|
+
projectId?: string;
|
|
231
|
+
project?: {
|
|
232
|
+
id: string;
|
|
233
|
+
title?: string;
|
|
234
|
+
};
|
|
235
|
+
startedAt?: string;
|
|
236
|
+
endedAt?: string;
|
|
237
|
+
durationSeconds: number;
|
|
238
|
+
description?: string;
|
|
239
|
+
isBillable: boolean;
|
|
240
|
+
entryDate: string;
|
|
241
|
+
timezone: string;
|
|
242
|
+
workItemSnapshot?: AXMTimesheetWorkItemSnapshot;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
type AXMTimesheetCorrectionStatusId = typeof AXPSystemStatusType.WaitingApproval | typeof AXPSystemStatusType.Approved | typeof AXPSystemStatusType.Rejected;
|
|
246
|
+
interface AXMTimesheetCorrectionChange {
|
|
247
|
+
timeEntryId: string;
|
|
248
|
+
field: string;
|
|
249
|
+
oldValue: unknown;
|
|
250
|
+
newValue: unknown;
|
|
251
|
+
}
|
|
252
|
+
interface AXMTimesheetManagementTimesheetCorrectionEntityModel extends AXPEntityModel<string> {
|
|
253
|
+
periodId: string;
|
|
254
|
+
period?: {
|
|
255
|
+
id: string;
|
|
256
|
+
startDate?: string;
|
|
257
|
+
endDate?: string;
|
|
258
|
+
};
|
|
259
|
+
requestedById: string;
|
|
260
|
+
reason: string;
|
|
261
|
+
statusId: AXMTimesheetCorrectionStatusId;
|
|
262
|
+
changes: AXMTimesheetCorrectionChange[];
|
|
263
|
+
reviewedById?: string;
|
|
264
|
+
reviewedAt?: string;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
type AXMTimesheetPeriodType = 'Weekly' | 'Biweekly' | 'Monthly';
|
|
268
|
+
type AXMTimesheetPeriodStatusId = typeof AXPSystemStatusType.Draft | typeof AXPSystemStatusType.WaitingApproval | typeof AXPSystemStatusType.Approved | typeof AXPSystemStatusType.Rejected | 'locked';
|
|
269
|
+
interface AXMTimesheetManagementTimesheetPeriodEntityModel extends AXPEntityModel<string> {
|
|
270
|
+
employeeId: string;
|
|
271
|
+
employee?: {
|
|
272
|
+
id: string;
|
|
273
|
+
employeeCode?: string;
|
|
274
|
+
person?: {
|
|
275
|
+
fullName?: string;
|
|
276
|
+
};
|
|
277
|
+
};
|
|
278
|
+
periodType: AXMTimesheetPeriodType;
|
|
279
|
+
startDate: string;
|
|
280
|
+
endDate: string;
|
|
281
|
+
statusId: AXMTimesheetPeriodStatusId;
|
|
282
|
+
submittedAt?: string;
|
|
283
|
+
approvedAt?: string;
|
|
284
|
+
approvedById?: string;
|
|
285
|
+
rejectedAt?: string;
|
|
286
|
+
rejectionReason?: string;
|
|
287
|
+
lockedAt?: string;
|
|
288
|
+
totalSeconds?: number;
|
|
289
|
+
timezone: string;
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
type AXMTimesheetOverlapPolicy = 'reject' | 'warn';
|
|
293
|
+
interface AXMTimesheetManagementTimesheetPolicyEntityModel extends AXPEntityModel<string> {
|
|
294
|
+
name: string;
|
|
295
|
+
maxDailyHours?: number;
|
|
296
|
+
maxWeeklyHours?: number;
|
|
297
|
+
requireDescription: boolean;
|
|
298
|
+
allowFutureDates: boolean;
|
|
299
|
+
overlapPolicy: AXMTimesheetOverlapPolicy;
|
|
300
|
+
periodTypeDefault: AXMTimesheetPeriodType;
|
|
301
|
+
isDefault: boolean;
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
export { AXMTimesheetManagementCommandKeys, AXMTimesheetManagementFeatureKeys, AXMTimesheetManagementMenuKeys, AXMTimesheetManagementPermissions, AXMTimesheetPeriodLockedStatusId, AXMTimesheetPeriodLockedStatusIds, AXMTimesheetPeriodOpenStatusIds, AXPProjectsWorkPermissionKeys, RootConfig };
|
|
305
|
+
export type { AXMTimesheetCorrectionChange, AXMTimesheetCorrectionStatusId, AXMTimesheetManagementTimeEntryEntityModel, AXMTimesheetManagementTimesheetCorrectionEntityModel, AXMTimesheetManagementTimesheetPeriodEntityModel, AXMTimesheetManagementTimesheetPolicyEntityModel, AXMTimesheetManagementWorkItemEntityModel, AXMTimesheetOverlapPolicy, AXMTimesheetPeriodStatusId, AXMTimesheetPeriodType, AXMTimesheetWorkItemSnapshot, AXMTimesheetWorkItemSourceRef, AXMTimesheetWorkItemSourceType };
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { OnInit } from '@angular/core';
|
|
3
|
+
import { AXPPageLayoutBaseComponent } from '@acorex-platform/framework-client/layout/views';
|
|
4
|
+
import { AXMTimesheetManagementTimesheetPeriodEntityModel, AXMTimesheetManagementTimeEntryEntityModel } from '@acorex-platform/module-timesheet-management-client/contracts';
|
|
5
|
+
import { AXPPageComponentProvider, AXPPageComponentDefinition } from '@acorex-platform/framework-client/layout/components';
|
|
6
|
+
import { Routes } from '@angular/router';
|
|
7
|
+
import { AXPFeatureDefinitionProvider, AXPFeatureDefinitionProviderContext, AXPModuleManifest } from '@acorex-platform/framework-client/core';
|
|
8
|
+
import * as i1 from '@angular/common';
|
|
9
|
+
import * as i2 from '@acorex-platform/framework-client/runtime';
|
|
10
|
+
|
|
11
|
+
declare class AXMMyTimesheetPageComponent extends AXPPageLayoutBaseComponent implements OnInit {
|
|
12
|
+
private readonly entityService;
|
|
13
|
+
private readonly commandService;
|
|
14
|
+
protected readonly loading: i0.WritableSignal<boolean>;
|
|
15
|
+
protected readonly period: i0.WritableSignal<AXMTimesheetManagementTimesheetPeriodEntityModel | null>;
|
|
16
|
+
protected readonly days: i0.WritableSignal<{
|
|
17
|
+
date: string;
|
|
18
|
+
totalSeconds: number;
|
|
19
|
+
entries: AXMTimesheetManagementTimeEntryEntityModel[];
|
|
20
|
+
}[]>;
|
|
21
|
+
protected readonly totalSeconds: i0.WritableSignal<number>;
|
|
22
|
+
protected readonly canSubmit: i0.Signal<boolean>;
|
|
23
|
+
ngOnInit(): Promise<void>;
|
|
24
|
+
getPageTitle(): string;
|
|
25
|
+
protected formatHours(totalSeconds: number): string;
|
|
26
|
+
private loadGrid;
|
|
27
|
+
/** Submits the current period via the registered command. */
|
|
28
|
+
protected submitCurrentPeriod(): Promise<void>;
|
|
29
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXMMyTimesheetPageComponent, never>;
|
|
30
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AXMMyTimesheetPageComponent, "axm-my-timesheet-page", never, {}, {}, never, never, true, never>;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
declare const MY_TIMESHEET_PAGE_COMPONENT_KEY = "timesheet-management-my-timesheet-page";
|
|
34
|
+
declare class AXMMyTimesheetPageComponentProvider implements AXPPageComponentProvider {
|
|
35
|
+
components(): Promise<AXPPageComponentDefinition[]>;
|
|
36
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXMMyTimesheetPageComponentProvider, never>;
|
|
37
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AXMMyTimesheetPageComponentProvider>;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
declare const myTimesheetPageRoutes: Routes;
|
|
41
|
+
|
|
42
|
+
declare class AXMTimesheetManagementFeatureDefinitionProvider implements AXPFeatureDefinitionProvider {
|
|
43
|
+
provide(context: AXPFeatureDefinitionProviderContext): Promise<void>;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
declare class AXMTimesheetManagementModule {
|
|
47
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXMTimesheetManagementModule, never>;
|
|
48
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<AXMTimesheetManagementModule, never, [typeof i1.CommonModule, typeof i2.AXPRuntimeModule], never>;
|
|
49
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<AXMTimesheetManagementModule>;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
declare const TimesheetManagementManifest: AXPModuleManifest;
|
|
53
|
+
|
|
54
|
+
export { AXMMyTimesheetPageComponent, AXMMyTimesheetPageComponentProvider, AXMTimesheetManagementFeatureDefinitionProvider, AXMTimesheetManagementModule, MY_TIMESHEET_PAGE_COMPONENT_KEY, TimesheetManagementManifest, myTimesheetPageRoutes };
|