@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.
Files changed (45) hide show
  1. package/fesm2022/acorex-platform-module-timesheet-management-client-admin-adjust-timesheet-period.command-8lA7h4rI.mjs +57 -0
  2. package/fesm2022/acorex-platform-module-timesheet-management-client-admin-adjust-timesheet-period.command-8lA7h4rI.mjs.map +1 -0
  3. package/fesm2022/acorex-platform-module-timesheet-management-client-approval-inbox.query-Wyz_jjxb.mjs +49 -0
  4. package/fesm2022/acorex-platform-module-timesheet-management-client-approval-inbox.query-Wyz_jjxb.mjs.map +1 -0
  5. package/fesm2022/acorex-platform-module-timesheet-management-client-approve-timesheet-period.command-DlAeGANo.mjs +54 -0
  6. package/fesm2022/acorex-platform-module-timesheet-management-client-approve-timesheet-period.command-DlAeGANo.mjs.map +1 -0
  7. package/fesm2022/acorex-platform-module-timesheet-management-client-compare-attendance-vs-timesheet.query-ZZym5nSx.mjs +91 -0
  8. package/fesm2022/acorex-platform-module-timesheet-management-client-compare-attendance-vs-timesheet.query-ZZym5nSx.mjs.map +1 -0
  9. package/fesm2022/acorex-platform-module-timesheet-management-client-contracts.mjs +200 -0
  10. package/fesm2022/acorex-platform-module-timesheet-management-client-contracts.mjs.map +1 -0
  11. package/fesm2022/acorex-platform-module-timesheet-management-client-create-time-entry.command-DS2EVLym.mjs +59 -0
  12. package/fesm2022/acorex-platform-module-timesheet-management-client-create-time-entry.command-DS2EVLym.mjs.map +1 -0
  13. package/fesm2022/acorex-platform-module-timesheet-management-client-delete-time-entry.command-5_ItHpnx.mjs +59 -0
  14. package/fesm2022/acorex-platform-module-timesheet-management-client-delete-time-entry.command-5_ItHpnx.mjs.map +1 -0
  15. package/fesm2022/acorex-platform-module-timesheet-management-client-lock-timesheet-period.command-D7V7SWUK.mjs +50 -0
  16. package/fesm2022/acorex-platform-module-timesheet-management-client-lock-timesheet-period.command-D7V7SWUK.mjs.map +1 -0
  17. package/fesm2022/acorex-platform-module-timesheet-management-client-my-timesheet-grid.query-DlDY3tdF.mjs +90 -0
  18. package/fesm2022/acorex-platform-module-timesheet-management-client-my-timesheet-grid.query-DlDY3tdF.mjs.map +1 -0
  19. package/fesm2022/acorex-platform-module-timesheet-management-client-reject-timesheet-period.command-CONxKPNm.mjs +56 -0
  20. package/fesm2022/acorex-platform-module-timesheet-management-client-reject-timesheet-period.command-CONxKPNm.mjs.map +1 -0
  21. package/fesm2022/acorex-platform-module-timesheet-management-client-reopen-timesheet-period.command-DRr_c67L.mjs +56 -0
  22. package/fesm2022/acorex-platform-module-timesheet-management-client-reopen-timesheet-period.command-DRr_c67L.mjs.map +1 -0
  23. package/fesm2022/acorex-platform-module-timesheet-management-client-report-billable-summary.query-BeLk4Of7.mjs +57 -0
  24. package/fesm2022/acorex-platform-module-timesheet-management-client-report-billable-summary.query-BeLk4Of7.mjs.map +1 -0
  25. package/fesm2022/acorex-platform-module-timesheet-management-client-report-hours-by-project.query-Sp8cLnTC.mjs +69 -0
  26. package/fesm2022/acorex-platform-module-timesheet-management-client-report-hours-by-project.query-Sp8cLnTC.mjs.map +1 -0
  27. package/fesm2022/acorex-platform-module-timesheet-management-client-report-hours-by-work-item.query-C8RU9Uc0.mjs +70 -0
  28. package/fesm2022/acorex-platform-module-timesheet-management-client-report-hours-by-work-item.query-C8RU9Uc0.mjs.map +1 -0
  29. package/fesm2022/acorex-platform-module-timesheet-management-client-submit-timesheet-period.command-C2qlQVIC.mjs +51 -0
  30. package/fesm2022/acorex-platform-module-timesheet-management-client-submit-timesheet-period.command-C2qlQVIC.mjs.map +1 -0
  31. package/fesm2022/acorex-platform-module-timesheet-management-client-team-timesheets.query-B0QpkVEI.mjs +51 -0
  32. package/fesm2022/acorex-platform-module-timesheet-management-client-team-timesheets.query-B0QpkVEI.mjs.map +1 -0
  33. package/fesm2022/acorex-platform-module-timesheet-management-client-timesheet-validation.service-DMrJn3HU.mjs +263 -0
  34. package/fesm2022/acorex-platform-module-timesheet-management-client-timesheet-validation.service-DMrJn3HU.mjs.map +1 -0
  35. package/fesm2022/acorex-platform-module-timesheet-management-client-update-time-entry.command-Do6s9OrI.mjs +60 -0
  36. package/fesm2022/acorex-platform-module-timesheet-management-client-update-time-entry.command-Do6s9OrI.mjs.map +1 -0
  37. package/fesm2022/acorex-platform-module-timesheet-management-client-work-item-search.query-BA2kvF-S.mjs +68 -0
  38. package/fesm2022/acorex-platform-module-timesheet-management-client-work-item-search.query-BA2kvF-S.mjs.map +1 -0
  39. package/fesm2022/acorex-platform-module-timesheet-management-client-workforce-exception-report.query-0q-AITic.mjs +40 -0
  40. package/fesm2022/acorex-platform-module-timesheet-management-client-workforce-exception-report.query-0q-AITic.mjs.map +1 -0
  41. package/fesm2022/acorex-platform-module-timesheet-management-client.mjs +891 -0
  42. package/fesm2022/acorex-platform-module-timesheet-management-client.mjs.map +1 -0
  43. package/package.json +28 -0
  44. package/types/acorex-platform-module-timesheet-management-client-contracts.d.ts +305 -0
  45. 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 };