@acorex-platform/module-timesheet-management-client 0.0.33 → 0.0.38
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.map +1 -1
- package/fesm2022/acorex-platform-module-timesheet-management-client-approval-inbox.query-Wyz_jjxb.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-timesheet-management-client-approve-timesheet-period.command-DlAeGANo.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-timesheet-management-client-compare-attendance-vs-timesheet.query-ZZym5nSx.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-timesheet-management-client-contracts-entities-time-entry.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-timesheet-management-client-contracts-entities-timesheet-correction.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-timesheet-management-client-contracts-entities-timesheet-period.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-timesheet-management-client-contracts-entities-timesheet-policy.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-timesheet-management-client-contracts-entities-work-item.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-timesheet-management-client-contracts-entity-catalog-acorex-platform-module-timesheet-management-client-contracts-entity-catalog-BbB3MCCl.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-timesheet-management-client-contracts-entity-catalog-time-entry.entity-CAs7zUnV.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-timesheet-management-client-contracts-entity-catalog-timesheet-correction.entity--wZeCM5Q.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-timesheet-management-client-contracts-entity-catalog-timesheet-period.entity-BOyfB4YA.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-timesheet-management-client-contracts-entity-catalog-timesheet-policy.entity-CqqN7Xty.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-timesheet-management-client-contracts-entity-catalog-work-item.entity-DilF7u50.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-timesheet-management-client-contracts.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-timesheet-management-client-create-time-entry.command-DS2EVLym.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-timesheet-management-client-delete-time-entry.command-5_ItHpnx.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-timesheet-management-client-local-entities.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-timesheet-management-client-lock-timesheet-period.command-D7V7SWUK.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-timesheet-management-client-my-timesheet-grid.query-DlDY3tdF.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-timesheet-management-client-reject-timesheet-period.command-CONxKPNm.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-timesheet-management-client-reopen-timesheet-period.command-DRr_c67L.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-timesheet-management-client-report-billable-summary.query-BeLk4Of7.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-timesheet-management-client-report-hours-by-project.query-Sp8cLnTC.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-timesheet-management-client-report-hours-by-work-item.query-C8RU9Uc0.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-timesheet-management-client-submit-timesheet-period.command-C2qlQVIC.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-timesheet-management-client-team-timesheets.query-B0QpkVEI.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-timesheet-management-client-timesheet-validation.service-DMrJn3HU.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-timesheet-management-client-update-time-entry.command-Do6s9OrI.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-timesheet-management-client-work-item-search.query-BA2kvF-S.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-timesheet-management-client-workforce-exception-report.query-0q-AITic.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-timesheet-management-client.mjs +1 -1
- package/fesm2022/acorex-platform-module-timesheet-management-client.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-module-timesheet-management-client-contracts-entity-catalog-timesheet-policy.entity-CqqN7Xty.mjs","sources":["../../../../libs/modules/timesheet-management/contracts/src/entities/timesheet-policy/timesheet-policy.entity.ts"],"sourcesContent":["import { AXPWidgetsCatalog } from '@acorex-platform/framework-shared/core';\nimport { AXPEntity, createAllQueryView, entityMasterCrudActions, entityMasterRecordActions } from '@acorex-platform/framework-shared/entity';\nimport { RootConfig } from '../../root-config';\n\n//#region ---- Constants ----\n\nconst i18n = RootConfig.config.i18n;\nconst entityI18n = `${i18n}:timesheet-policies.entities.timesheet-policy`;\n\nconst listSortAndFilterOptions = {\n sort: { enabled: true },\n filter: { advance: { enabled: true }, inline: { enabled: true } },\n};\n\nconst OVERLAP_POLICY_OPTIONS = [\n { id: 'reject', title: `@${entityI18n}.fields.overlap-policy.options.reject` },\n { id: 'warn', title: `@${entityI18n}.fields.overlap-policy.options.warn` },\n];\n\nconst PERIOD_TYPE_OPTIONS = [\n { id: 'Weekly', title: `@${entityI18n}.fields.period-type-default.options.weekly` },\n { id: 'Biweekly', title: `@${entityI18n}.fields.period-type-default.options.biweekly` },\n { id: 'Monthly', title: `@${entityI18n}.fields.period-type-default.options.monthly` },\n];\n\n//#endregion\n\n//#region ---- Entity Factory ----\n\n/**\n * Timesheet policy entity factory defining validation rules for time entry capture.\n */\nexport async function factoryTimesheetPolicy(): Promise<AXPEntity | null> {\n const entityDef: AXPEntity = {\n module: RootConfig.module.name,\n name: RootConfig.entities.timesheetPolicy.name,\n title: RootConfig.entities.timesheetPolicy.title,\n icon: RootConfig.entities.timesheetPolicy.icon,\n formats: {\n individual: RootConfig.entities.timesheetPolicy.title,\n plural: RootConfig.entities.timesheetPolicy.titlePlural,\n searchResult: {\n title: '{{ name }}',\n description: '{{ periodTypeDefault }}',\n },\n },\n plugins: [{ name: 'history' }],\n groups: [\n { id: 'basic-info', title: '@general:terms.interface.basic-info' },\n { id: 'limits', title: `@${entityI18n}.groups.limits` },\n { id: 'rules', title: `@${entityI18n}.groups.rules` },\n ],\n properties: [\n {\n name: 'id',\n title: '@general:terms.common.id',\n groupId: 'basic-info',\n schema: { dataType: 'uuid', visible: false, nullable: false, readonly: true, unique: { enabled: true } },\n },\n {\n name: 'name',\n title: '@general:terms.common.name',\n groupId: 'basic-info',\n options: listSortAndFilterOptions,\n schema: {\n dataType: 'string',\n interface: { type: AXPWidgetsCatalog.text },\n },\n validations: [{ rule: 'required' }, { rule: 'unique' }],\n },\n {\n name: 'maxDailyHours',\n title: `@${entityI18n}.fields.max-daily-hours.title`,\n groupId: 'limits',\n options: listSortAndFilterOptions,\n schema: {\n dataType: 'number',\n interface: { type: AXPWidgetsCatalog.number, options: { minValue: 0 } },\n },\n },\n {\n name: 'maxWeeklyHours',\n title: `@${entityI18n}.fields.max-weekly-hours.title`,\n groupId: 'limits',\n options: listSortAndFilterOptions,\n schema: {\n dataType: 'number',\n interface: { type: AXPWidgetsCatalog.number, options: { minValue: 0 } },\n },\n },\n {\n name: 'requireDescription',\n title: `@${entityI18n}.fields.require-description.title`,\n groupId: 'rules',\n schema: {\n dataType: 'boolean',\n defaultValue: false,\n interface: { type: AXPWidgetsCatalog.toggle },\n },\n },\n {\n name: 'allowFutureDates',\n title: `@${entityI18n}.fields.allow-future-dates.title`,\n groupId: 'rules',\n schema: {\n dataType: 'boolean',\n defaultValue: false,\n interface: { type: AXPWidgetsCatalog.toggle },\n },\n },\n {\n name: 'overlapPolicy',\n title: `@${entityI18n}.fields.overlap-policy.title`,\n groupId: 'rules',\n options: listSortAndFilterOptions,\n schema: {\n dataType: 'string',\n defaultValue: 'reject',\n interface: {\n type: AXPWidgetsCatalog.select,\n options: { items: OVERLAP_POLICY_OPTIONS },\n },\n },\n validations: [{ rule: 'required' }],\n },\n {\n name: 'periodTypeDefault',\n title: `@${entityI18n}.fields.period-type-default.title`,\n groupId: 'rules',\n options: listSortAndFilterOptions,\n schema: {\n dataType: 'string',\n defaultValue: 'Weekly',\n interface: {\n type: AXPWidgetsCatalog.select,\n options: { items: PERIOD_TYPE_OPTIONS },\n },\n },\n validations: [{ rule: 'required' }],\n },\n {\n name: 'isDefault',\n title: `@${entityI18n}.fields.is-default.title`,\n groupId: 'basic-info',\n options: listSortAndFilterOptions,\n schema: {\n dataType: 'boolean',\n defaultValue: false,\n interface: { type: AXPWidgetsCatalog.toggle },\n },\n },\n ],\n columns: [\n { name: 'name' },\n { name: 'maxDailyHours' },\n { name: 'maxWeeklyHours' },\n { name: 'overlapPolicy' },\n { name: 'periodTypeDefault' },\n { name: 'isDefault' },\n ],\n interfaces: {\n master: {\n create: {\n sections: [{ id: 'basic-info' }, { id: 'limits' }, { id: 'rules' }],\n properties: [\n { name: 'name', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'isDefault', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'maxDailyHours', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'maxWeeklyHours', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'requireDescription', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'allowFutureDates', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'overlapPolicy', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'periodTypeDefault', layout: { positions: { lg: { colSpan: 6 } } } },\n ],\n },\n update: {\n sections: [{ id: 'basic-info' }, { id: 'limits' }, { id: 'rules' }],\n properties: [\n { name: 'name', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'isDefault', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'maxDailyHours', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'maxWeeklyHours', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'requireDescription', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'allowFutureDates', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'overlapPolicy', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'periodTypeDefault', layout: { positions: { lg: { colSpan: 6 } } } },\n ],\n },\n single: {\n title: '{{ name }}',\n sections: [{ id: 'basic-info' }, { id: 'limits' }, { id: 'rules' }],\n properties: [\n { name: 'name', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'isDefault', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'maxDailyHours', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'maxWeeklyHours', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'overlapPolicy', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'periodTypeDefault', layout: { positions: { lg: { colSpan: 6 } } } },\n ],\n actions: [...entityMasterRecordActions()],\n },\n list: {\n actions: [...entityMasterCrudActions()],\n views: [createAllQueryView({ sorts: [{ name: 'name', dir: 'asc' }] })],\n },\n },\n },\n };\n\n return entityDef;\n}\n\n//#endregion\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-timesheet-management-client-contracts-entity-catalog-timesheet-policy.entity-CqqN7Xty.mjs","sources":["../../../../libs/modules/timesheet-management/contracts/src/entities/timesheet-policy/timesheet-policy.entity.ts"],"sourcesContent":["import { AXPWidgetsCatalog } from '@acorex-platform/framework-shared/core';\nimport { AXPEntity, createAllQueryView, entityMasterCrudActions, entityMasterRecordActions } from '@acorex-platform/framework-shared/entity';\nimport { RootConfig } from '../../root-config';\n\n//#region ---- Constants ----\n\nconst i18n = RootConfig.config.i18n;\nconst entityI18n = `${i18n}:timesheet-policies.entities.timesheet-policy`;\n\nconst listSortAndFilterOptions = {\n sort: { enabled: true },\n filter: { advance: { enabled: true }, inline: { enabled: true } },\n};\n\nconst OVERLAP_POLICY_OPTIONS = [\n { id: 'reject', title: `@${entityI18n}.fields.overlap-policy.options.reject` },\n { id: 'warn', title: `@${entityI18n}.fields.overlap-policy.options.warn` },\n];\n\nconst PERIOD_TYPE_OPTIONS = [\n { id: 'Weekly', title: `@${entityI18n}.fields.period-type-default.options.weekly` },\n { id: 'Biweekly', title: `@${entityI18n}.fields.period-type-default.options.biweekly` },\n { id: 'Monthly', title: `@${entityI18n}.fields.period-type-default.options.monthly` },\n];\n\n//#endregion\n\n//#region ---- Entity Factory ----\n\n/**\n * Timesheet policy entity factory defining validation rules for time entry capture.\n */\nexport async function factoryTimesheetPolicy(): Promise<AXPEntity | null> {\n const entityDef: AXPEntity = {\n module: RootConfig.module.name,\n name: RootConfig.entities.timesheetPolicy.name,\n title: RootConfig.entities.timesheetPolicy.title,\n icon: RootConfig.entities.timesheetPolicy.icon,\n formats: {\n individual: RootConfig.entities.timesheetPolicy.title,\n plural: RootConfig.entities.timesheetPolicy.titlePlural,\n searchResult: {\n title: '{{ name }}',\n description: '{{ periodTypeDefault }}',\n },\n },\n plugins: [{ name: 'history' }],\n groups: [\n { id: 'basic-info', title: '@general:terms.interface.basic-info' },\n { id: 'limits', title: `@${entityI18n}.groups.limits` },\n { id: 'rules', title: `@${entityI18n}.groups.rules` },\n ],\n properties: [\n {\n name: 'id',\n title: '@general:terms.common.id',\n groupId: 'basic-info',\n schema: { dataType: 'uuid', visible: false, nullable: false, readonly: true, unique: { enabled: true } },\n },\n {\n name: 'name',\n title: '@general:terms.common.name',\n groupId: 'basic-info',\n options: listSortAndFilterOptions,\n schema: {\n dataType: 'string',\n interface: { type: AXPWidgetsCatalog.text },\n },\n validations: [{ rule: 'required' }, { rule: 'unique' }],\n },\n {\n name: 'maxDailyHours',\n title: `@${entityI18n}.fields.max-daily-hours.title`,\n groupId: 'limits',\n options: listSortAndFilterOptions,\n schema: {\n dataType: 'number',\n interface: { type: AXPWidgetsCatalog.number, options: { minValue: 0 } },\n },\n },\n {\n name: 'maxWeeklyHours',\n title: `@${entityI18n}.fields.max-weekly-hours.title`,\n groupId: 'limits',\n options: listSortAndFilterOptions,\n schema: {\n dataType: 'number',\n interface: { type: AXPWidgetsCatalog.number, options: { minValue: 0 } },\n },\n },\n {\n name: 'requireDescription',\n title: `@${entityI18n}.fields.require-description.title`,\n groupId: 'rules',\n schema: {\n dataType: 'boolean',\n defaultValue: false,\n interface: { type: AXPWidgetsCatalog.toggle },\n },\n },\n {\n name: 'allowFutureDates',\n title: `@${entityI18n}.fields.allow-future-dates.title`,\n groupId: 'rules',\n schema: {\n dataType: 'boolean',\n defaultValue: false,\n interface: { type: AXPWidgetsCatalog.toggle },\n },\n },\n {\n name: 'overlapPolicy',\n title: `@${entityI18n}.fields.overlap-policy.title`,\n groupId: 'rules',\n options: listSortAndFilterOptions,\n schema: {\n dataType: 'string',\n defaultValue: 'reject',\n interface: {\n type: AXPWidgetsCatalog.select,\n options: { items: OVERLAP_POLICY_OPTIONS },\n },\n },\n validations: [{ rule: 'required' }],\n },\n {\n name: 'periodTypeDefault',\n title: `@${entityI18n}.fields.period-type-default.title`,\n groupId: 'rules',\n options: listSortAndFilterOptions,\n schema: {\n dataType: 'string',\n defaultValue: 'Weekly',\n interface: {\n type: AXPWidgetsCatalog.select,\n options: { items: PERIOD_TYPE_OPTIONS },\n },\n },\n validations: [{ rule: 'required' }],\n },\n {\n name: 'isDefault',\n title: `@${entityI18n}.fields.is-default.title`,\n groupId: 'basic-info',\n options: listSortAndFilterOptions,\n schema: {\n dataType: 'boolean',\n defaultValue: false,\n interface: { type: AXPWidgetsCatalog.toggle },\n },\n },\n ],\n columns: [\n { name: 'name' },\n { name: 'maxDailyHours' },\n { name: 'maxWeeklyHours' },\n { name: 'overlapPolicy' },\n { name: 'periodTypeDefault' },\n { name: 'isDefault' },\n ],\n interfaces: {\n master: {\n create: {\n sections: [{ id: 'basic-info' }, { id: 'limits' }, { id: 'rules' }],\n properties: [\n { name: 'name', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'isDefault', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'maxDailyHours', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'maxWeeklyHours', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'requireDescription', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'allowFutureDates', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'overlapPolicy', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'periodTypeDefault', layout: { positions: { lg: { colSpan: 6 } } } },\n ],\n },\n update: {\n sections: [{ id: 'basic-info' }, { id: 'limits' }, { id: 'rules' }],\n properties: [\n { name: 'name', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'isDefault', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'maxDailyHours', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'maxWeeklyHours', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'requireDescription', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'allowFutureDates', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'overlapPolicy', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'periodTypeDefault', layout: { positions: { lg: { colSpan: 6 } } } },\n ],\n },\n single: {\n title: '{{ name }}',\n sections: [{ id: 'basic-info' }, { id: 'limits' }, { id: 'rules' }],\n properties: [\n { name: 'name', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'isDefault', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'maxDailyHours', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'maxWeeklyHours', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'overlapPolicy', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'periodTypeDefault', layout: { positions: { lg: { colSpan: 6 } } } },\n ],\n actions: [...entityMasterRecordActions()],\n },\n list: {\n actions: [...entityMasterCrudActions()],\n views: [createAllQueryView({ sorts: [{ name: 'name', dir: 'asc' }] })],\n },\n },\n },\n };\n\n return entityDef;\n}\n\n//#endregion\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-module-timesheet-management-client-contracts-entity-catalog-work-item.entity-DilF7u50.mjs","sources":["../../../../libs/modules/timesheet-management/contracts/src/entities/work-item/work-item.entity.ts"],"sourcesContent":["import { AXPWidgetsCatalog } from '@acorex-platform/framework-shared/core';\nimport { AXPEntity, createAllQueryView, entityMasterCrudActions, entityMasterRecordActions } from '@acorex-platform/framework-shared/entity';\nimport { RootConfig } from '../../root-config';\n\n//#region ---- Constants ----\n\nconst i18n = RootConfig.config.i18n;\nconst entityI18n = `${i18n}:work-items.entities.work-item`;\n\nconst listSortAndFilterOptions = {\n sort: { enabled: true },\n filter: { advance: { enabled: true }, inline: { enabled: true } },\n};\n\nconst WORK_ITEM_SOURCE_TYPE_OPTIONS = [\n { id: 'Internal', title: `@${entityI18n}.fields.source-type.options.internal` },\n { id: 'Jira', title: `@${entityI18n}.fields.source-type.options.jira` },\n { id: 'Task', title: `@${entityI18n}.fields.source-type.options.task` },\n];\n\n//#endregion\n\n//#region ---- Entity Factory ----\n\n/**\n * Work item entity factory for billable/non-billable time tracking references.\n */\nexport async function factoryWorkItem(): Promise<AXPEntity | null> {\n const entityDef: AXPEntity = {\n module: RootConfig.module.name,\n name: RootConfig.entities.workItem.name,\n title: RootConfig.entities.workItem.title,\n icon: RootConfig.entities.workItem.icon,\n formats: {\n individual: RootConfig.entities.workItem.title,\n plural: RootConfig.entities.workItem.titlePlural,\n searchResult: {\n title: '{{ code }}',\n description: '{{ title }}',\n },\n },\n plugins: [\n { name: 'history' },\n { name: 'unique-fields', options: { fields: 'code', scope: 'tenant' } },\n ],\n groups: [\n { id: 'basic-info', title: '@general:terms.interface.basic-info' },\n { id: 'source', title: `@${entityI18n}.groups.source` },\n { id: 'assignment', title: `@${entityI18n}.groups.assignment` },\n { id: 'settings', title: '@general:terms.interface.settings' },\n ],\n properties: [\n {\n name: 'id',\n title: '@general:terms.common.id',\n groupId: 'basic-info',\n schema: { dataType: 'uuid', visible: false, nullable: false, readonly: true, unique: { enabled: true } },\n },\n {\n name: 'code',\n title: `@${entityI18n}.fields.code.title`,\n groupId: 'basic-info',\n options: listSortAndFilterOptions,\n schema: {\n dataType: 'string',\n unique: { enabled: true },\n interface: { type: AXPWidgetsCatalog.text },\n },\n validations: [{ rule: 'required' }],\n },\n {\n name: 'title',\n title: '@general:terms.common.title',\n groupId: 'basic-info',\n options: listSortAndFilterOptions,\n schema: {\n dataType: 'string',\n interface: { type: AXPWidgetsCatalog.text, options: { multiLanguage: true } },\n },\n validations: [{ rule: 'required' }],\n },\n {\n name: 'sourceType',\n title: `@${entityI18n}.fields.source-type.title`,\n groupId: 'source',\n options: listSortAndFilterOptions,\n schema: {\n dataType: 'string',\n defaultValue: 'Internal',\n interface: {\n type: AXPWidgetsCatalog.select,\n options: { items: WORK_ITEM_SOURCE_TYPE_OPTIONS },\n },\n },\n validations: [{ rule: 'required' }],\n },\n {\n name: 'sourceRef',\n title: `@${entityI18n}.fields.source-ref.title`,\n groupId: 'source',\n schema: {\n dataType: 'string',\n interface: { type: AXPWidgetsCatalog.largeText, options: { rows: 4 } },\n },\n },\n {\n name: 'isBillableDefault',\n title: `@${entityI18n}.fields.is-billable-default.title`,\n groupId: 'settings',\n options: listSortAndFilterOptions,\n schema: {\n dataType: 'boolean',\n defaultValue: true,\n interface: { type: AXPWidgetsCatalog.toggle },\n },\n },\n {\n name: 'isActive',\n title: `@${entityI18n}.fields.is-active.title`,\n groupId: 'settings',\n options: listSortAndFilterOptions,\n schema: {\n dataType: 'boolean',\n defaultValue: true,\n interface: { type: AXPWidgetsCatalog.toggle },\n },\n },\n {\n name: 'employeeId',\n title: `@${entityI18n}.fields.employee-id.title`,\n groupId: 'assignment',\n options: listSortAndFilterOptions,\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.lookup,\n options: {\n look: 'select',\n entity: 'HumanCapitalManagement.Employee',\n textField: 'person.fullName',\n valueField: 'id',\n expose: [\n { source: 'id', target: 'employee.id' },\n { source: 'employeeCode', target: 'employee.employeeCode' },\n { source: 'person.fullName', target: 'employee.person.fullName' },\n ],\n },\n },\n },\n },\n {\n name: 'projectId',\n title: `@${entityI18n}.fields.project-id.title`,\n groupId: 'assignment',\n options: listSortAndFilterOptions,\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.lookup,\n options: {\n look: 'select',\n entity: 'ProjectManagement.Project',\n textField: 'name',\n valueField: 'id',\n expose: [\n { source: 'id', target: 'project.id' },\n { source: 'title', target: 'project.title' },\n ],\n },\n },\n },\n },\n ],\n columns: [\n { name: 'code' },\n { name: 'title' },\n { name: 'sourceType' },\n { name: 'employeeId', options: { dataPath: 'employee.person.fullName' } },\n { name: 'projectId', options: { dataPath: 'project.title' } },\n { name: 'isBillableDefault' },\n { name: 'isActive' },\n ],\n interfaces: {\n master: {\n create: {\n sections: [{ id: 'basic-info' }, { id: 'source' }, { id: 'assignment' }, { id: 'settings' }],\n properties: [\n { name: 'code', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'title', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'sourceType', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'sourceRef', layout: { positions: { lg: { colSpan: 12 } } } },\n { name: 'employeeId', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'projectId', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'isBillableDefault', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'isActive', layout: { positions: { lg: { colSpan: 6 } } } },\n ],\n },\n update: {\n sections: [{ id: 'basic-info' }, { id: 'source' }, { id: 'assignment' }, { id: 'settings' }],\n properties: [\n { name: 'code', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'title', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'sourceType', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'sourceRef', layout: { positions: { lg: { colSpan: 12 } } } },\n { name: 'employeeId', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'projectId', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'isBillableDefault', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'isActive', layout: { positions: { lg: { colSpan: 6 } } } },\n ],\n },\n single: {\n title: '{{ code }}',\n sections: [{ id: 'basic-info' }, { id: 'source' }, { id: 'assignment' }, { id: 'settings' }],\n properties: [\n { name: 'code', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'title', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'sourceType', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'employeeId', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'projectId', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'isBillableDefault', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'isActive', layout: { positions: { lg: { colSpan: 6 } } } },\n ],\n actions: [...entityMasterRecordActions()],\n },\n list: {\n actions: [...entityMasterCrudActions()],\n views: [createAllQueryView({ sorts: [{ name: 'code', dir: 'asc' }] })],\n },\n },\n },\n };\n\n return entityDef;\n}\n\n//#endregion\n"],"names":[],"mappings":";;;;AAIA;AAEA,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI;AACnC,MAAM,UAAU,GAAG,CAAA,EAAG,IAAI,gCAAgC;AAE1D,MAAM,wBAAwB,GAAG;AAC/B,IAAA,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;AACvB,IAAA,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;CAClE;AAED,MAAM,6BAA6B,GAAG;IACpC,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAA,CAAA,EAAI,UAAU,CAAA,oCAAA,CAAsC,EAAE;IAC/E,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA,CAAA,EAAI,UAAU,CAAA,gCAAA,CAAkC,EAAE;IACvE,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA,CAAA,EAAI,UAAU,CAAA,gCAAA,CAAkC,EAAE;CACxE;AAED;AAEA;AAEA;;AAEG;AACI,eAAe,eAAe,GAAA;AACnC,IAAA,MAAM,SAAS,GAAc;AAC3B,QAAA,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI;AAC9B,QAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI;AACvC,QAAA,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK;AACzC,QAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI;AACvC,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK;AAC9C,YAAA,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW;AAChD,YAAA,YAAY,EAAE;AACZ,gBAAA,KAAK,EAAE,YAAY;AACnB,gBAAA,WAAW,EAAE,aAAa;AAC3B,aAAA;AACF,SAAA;AACD,QAAA,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,SAAS,EAAE;AACnB,YAAA,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;AACxE,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,qCAAqC,EAAE;YAClE,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAA,CAAA,EAAI,UAAU,CAAA,cAAA,CAAgB,EAAE;YACvD,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,CAAA,CAAA,EAAI,UAAU,CAAA,kBAAA,CAAoB,EAAE;AAC/D,YAAA,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,mCAAmC,EAAE;AAC/D,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA;AACE,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,KAAK,EAAE,0BAA0B;AACjC,gBAAA,OAAO,EAAE,YAAY;gBACrB,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;AACzG,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,CAAA,CAAA,EAAI,UAAU,CAAA,kBAAA,CAAoB;AACzC,gBAAA,OAAO,EAAE,YAAY;AACrB,gBAAA,OAAO,EAAE,wBAAwB;AACjC,gBAAA,MAAM,EAAE;AACN,oBAAA,QAAQ,EAAE,QAAQ;AAClB,oBAAA,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;AACzB,oBAAA,SAAS,EAAE,EAAE,IAAI,EAAE,iBAAiB,CAAC,IAAI,EAAE;AAC5C,iBAAA;AACD,gBAAA,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;AACpC,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,OAAO;AACb,gBAAA,KAAK,EAAE,6BAA6B;AACpC,gBAAA,OAAO,EAAE,YAAY;AACrB,gBAAA,OAAO,EAAE,wBAAwB;AACjC,gBAAA,MAAM,EAAE;AACN,oBAAA,QAAQ,EAAE,QAAQ;AAClB,oBAAA,SAAS,EAAE,EAAE,IAAI,EAAE,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE;AAC9E,iBAAA;AACD,gBAAA,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;AACpC,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,YAAY;gBAClB,KAAK,EAAE,CAAA,CAAA,EAAI,UAAU,CAAA,yBAAA,CAA2B;AAChD,gBAAA,OAAO,EAAE,QAAQ;AACjB,gBAAA,OAAO,EAAE,wBAAwB;AACjC,gBAAA,MAAM,EAAE;AACN,oBAAA,QAAQ,EAAE,QAAQ;AAClB,oBAAA,YAAY,EAAE,UAAU;AACxB,oBAAA,SAAS,EAAE;wBACT,IAAI,EAAE,iBAAiB,CAAC,MAAM;AAC9B,wBAAA,OAAO,EAAE,EAAE,KAAK,EAAE,6BAA6B,EAAE;AAClD,qBAAA;AACF,iBAAA;AACD,gBAAA,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;AACpC,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,WAAW;gBACjB,KAAK,EAAE,CAAA,CAAA,EAAI,UAAU,CAAA,wBAAA,CAA0B;AAC/C,gBAAA,OAAO,EAAE,QAAQ;AACjB,gBAAA,MAAM,EAAE;AACN,oBAAA,QAAQ,EAAE,QAAQ;AAClB,oBAAA,SAAS,EAAE,EAAE,IAAI,EAAE,iBAAiB,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE;AACvE,iBAAA;AACF,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,mBAAmB;gBACzB,KAAK,EAAE,CAAA,CAAA,EAAI,UAAU,CAAA,iCAAA,CAAmC;AACxD,gBAAA,OAAO,EAAE,UAAU;AACnB,gBAAA,OAAO,EAAE,wBAAwB;AACjC,gBAAA,MAAM,EAAE;AACN,oBAAA,QAAQ,EAAE,SAAS;AACnB,oBAAA,YAAY,EAAE,IAAI;AAClB,oBAAA,SAAS,EAAE,EAAE,IAAI,EAAE,iBAAiB,CAAC,MAAM,EAAE;AAC9C,iBAAA;AACF,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,CAAA,CAAA,EAAI,UAAU,CAAA,uBAAA,CAAyB;AAC9C,gBAAA,OAAO,EAAE,UAAU;AACnB,gBAAA,OAAO,EAAE,wBAAwB;AACjC,gBAAA,MAAM,EAAE;AACN,oBAAA,QAAQ,EAAE,SAAS;AACnB,oBAAA,YAAY,EAAE,IAAI;AAClB,oBAAA,SAAS,EAAE,EAAE,IAAI,EAAE,iBAAiB,CAAC,MAAM,EAAE;AAC9C,iBAAA;AACF,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,YAAY;gBAClB,KAAK,EAAE,CAAA,CAAA,EAAI,UAAU,CAAA,yBAAA,CAA2B;AAChD,gBAAA,OAAO,EAAE,YAAY;AACrB,gBAAA,OAAO,EAAE,wBAAwB;AACjC,gBAAA,MAAM,EAAE;AACN,oBAAA,QAAQ,EAAE,QAAQ;AAClB,oBAAA,SAAS,EAAE;wBACT,IAAI,EAAE,iBAAiB,CAAC,MAAM;AAC9B,wBAAA,OAAO,EAAE;AACP,4BAAA,IAAI,EAAE,QAAQ;AACd,4BAAA,MAAM,EAAE,iCAAiC;AACzC,4BAAA,SAAS,EAAE,iBAAiB;AAC5B,4BAAA,UAAU,EAAE,IAAI;AAChB,4BAAA,MAAM,EAAE;AACN,gCAAA,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE;AACvC,gCAAA,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,uBAAuB,EAAE;AAC3D,gCAAA,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,0BAA0B,EAAE;AAClE,6BAAA;AACF,yBAAA;AACF,qBAAA;AACF,iBAAA;AACF,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,WAAW;gBACjB,KAAK,EAAE,CAAA,CAAA,EAAI,UAAU,CAAA,wBAAA,CAA0B;AAC/C,gBAAA,OAAO,EAAE,YAAY;AACrB,gBAAA,OAAO,EAAE,wBAAwB;AACjC,gBAAA,MAAM,EAAE;AACN,oBAAA,QAAQ,EAAE,QAAQ;AAClB,oBAAA,SAAS,EAAE;wBACT,IAAI,EAAE,iBAAiB,CAAC,MAAM;AAC9B,wBAAA,OAAO,EAAE;AACP,4BAAA,IAAI,EAAE,QAAQ;AACd,4BAAA,MAAM,EAAE,2BAA2B;AACnC,4BAAA,SAAS,EAAE,MAAM;AACjB,4BAAA,UAAU,EAAE,IAAI;AAChB,4BAAA,MAAM,EAAE;AACN,gCAAA,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE;AACtC,gCAAA,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE;AAC7C,6BAAA;AACF,yBAAA;AACF,qBAAA;AACF,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,MAAM,EAAE;YAChB,EAAE,IAAI,EAAE,OAAO,EAAE;YACjB,EAAE,IAAI,EAAE,YAAY,EAAE;YACtB,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,0BAA0B,EAAE,EAAE;YACzE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE,EAAE;YAC7D,EAAE,IAAI,EAAE,mBAAmB,EAAE;YAC7B,EAAE,IAAI,EAAE,UAAU,EAAE;AACrB,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,MAAM,EAAE;AACN,gBAAA,MAAM,EAAE;oBACN,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC;AAC5F,oBAAA,UAAU,EAAE;AACV,wBAAA,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;AAC/D,wBAAA,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;AAChE,wBAAA,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;AACrE,wBAAA,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACrE,wBAAA,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;AACrE,wBAAA,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;AACpE,wBAAA,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;AAC5E,wBAAA,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;AACpE,qBAAA;AACF,iBAAA;AACD,gBAAA,MAAM,EAAE;oBACN,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC;AAC5F,oBAAA,UAAU,EAAE;AACV,wBAAA,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;AAC/D,wBAAA,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;AAChE,wBAAA,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;AACrE,wBAAA,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACrE,wBAAA,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;AACrE,wBAAA,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;AACpE,wBAAA,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;AAC5E,wBAAA,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;AACpE,qBAAA;AACF,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,KAAK,EAAE,YAAY;oBACnB,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC;AAC5F,oBAAA,UAAU,EAAE;AACV,wBAAA,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;AAC/D,wBAAA,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;AAChE,wBAAA,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;AACrE,wBAAA,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;AACrE,wBAAA,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;AACpE,wBAAA,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;AAC5E,wBAAA,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;AACpE,qBAAA;AACD,oBAAA,OAAO,EAAE,CAAC,GAAG,yBAAyB,EAAE,CAAC;AAC1C,iBAAA;AACD,gBAAA,IAAI,EAAE;AACJ,oBAAA,OAAO,EAAE,CAAC,GAAG,uBAAuB,EAAE,CAAC;oBACvC,KAAK,EAAE,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;AACvE,iBAAA;AACF,aAAA;AACF,SAAA;KACF;AAED,IAAA,OAAO,SAAS;AAClB;AAEA;;;;"}
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-timesheet-management-client-contracts-entity-catalog-work-item.entity-DilF7u50.mjs","sources":["../../../../libs/modules/timesheet-management/contracts/src/entities/work-item/work-item.entity.ts"],"sourcesContent":["import { AXPWidgetsCatalog } from '@acorex-platform/framework-shared/core';\nimport { AXPEntity, createAllQueryView, entityMasterCrudActions, entityMasterRecordActions } from '@acorex-platform/framework-shared/entity';\nimport { RootConfig } from '../../root-config';\n\n//#region ---- Constants ----\n\nconst i18n = RootConfig.config.i18n;\nconst entityI18n = `${i18n}:work-items.entities.work-item`;\n\nconst listSortAndFilterOptions = {\n sort: { enabled: true },\n filter: { advance: { enabled: true }, inline: { enabled: true } },\n};\n\nconst WORK_ITEM_SOURCE_TYPE_OPTIONS = [\n { id: 'Internal', title: `@${entityI18n}.fields.source-type.options.internal` },\n { id: 'Jira', title: `@${entityI18n}.fields.source-type.options.jira` },\n { id: 'Task', title: `@${entityI18n}.fields.source-type.options.task` },\n];\n\n//#endregion\n\n//#region ---- Entity Factory ----\n\n/**\n * Work item entity factory for billable/non-billable time tracking references.\n */\nexport async function factoryWorkItem(): Promise<AXPEntity | null> {\n const entityDef: AXPEntity = {\n module: RootConfig.module.name,\n name: RootConfig.entities.workItem.name,\n title: RootConfig.entities.workItem.title,\n icon: RootConfig.entities.workItem.icon,\n formats: {\n individual: RootConfig.entities.workItem.title,\n plural: RootConfig.entities.workItem.titlePlural,\n searchResult: {\n title: '{{ code }}',\n description: '{{ title }}',\n },\n },\n plugins: [\n { name: 'history' },\n { name: 'unique-fields', options: { fields: 'code', scope: 'tenant' } },\n ],\n groups: [\n { id: 'basic-info', title: '@general:terms.interface.basic-info' },\n { id: 'source', title: `@${entityI18n}.groups.source` },\n { id: 'assignment', title: `@${entityI18n}.groups.assignment` },\n { id: 'settings', title: '@general:terms.interface.settings' },\n ],\n properties: [\n {\n name: 'id',\n title: '@general:terms.common.id',\n groupId: 'basic-info',\n schema: { dataType: 'uuid', visible: false, nullable: false, readonly: true, unique: { enabled: true } },\n },\n {\n name: 'code',\n title: `@${entityI18n}.fields.code.title`,\n groupId: 'basic-info',\n options: listSortAndFilterOptions,\n schema: {\n dataType: 'string',\n unique: { enabled: true },\n interface: { type: AXPWidgetsCatalog.text },\n },\n validations: [{ rule: 'required' }],\n },\n {\n name: 'title',\n title: '@general:terms.common.title',\n groupId: 'basic-info',\n options: listSortAndFilterOptions,\n schema: {\n dataType: 'string',\n interface: { type: AXPWidgetsCatalog.text, options: { multiLanguage: true } },\n },\n validations: [{ rule: 'required' }],\n },\n {\n name: 'sourceType',\n title: `@${entityI18n}.fields.source-type.title`,\n groupId: 'source',\n options: listSortAndFilterOptions,\n schema: {\n dataType: 'string',\n defaultValue: 'Internal',\n interface: {\n type: AXPWidgetsCatalog.select,\n options: { items: WORK_ITEM_SOURCE_TYPE_OPTIONS },\n },\n },\n validations: [{ rule: 'required' }],\n },\n {\n name: 'sourceRef',\n title: `@${entityI18n}.fields.source-ref.title`,\n groupId: 'source',\n schema: {\n dataType: 'string',\n interface: { type: AXPWidgetsCatalog.largeText, options: { rows: 4 } },\n },\n },\n {\n name: 'isBillableDefault',\n title: `@${entityI18n}.fields.is-billable-default.title`,\n groupId: 'settings',\n options: listSortAndFilterOptions,\n schema: {\n dataType: 'boolean',\n defaultValue: true,\n interface: { type: AXPWidgetsCatalog.toggle },\n },\n },\n {\n name: 'isActive',\n title: `@${entityI18n}.fields.is-active.title`,\n groupId: 'settings',\n options: listSortAndFilterOptions,\n schema: {\n dataType: 'boolean',\n defaultValue: true,\n interface: { type: AXPWidgetsCatalog.toggle },\n },\n },\n {\n name: 'employeeId',\n title: `@${entityI18n}.fields.employee-id.title`,\n groupId: 'assignment',\n options: listSortAndFilterOptions,\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.lookup,\n options: {\n look: 'select',\n entity: 'HumanCapitalManagement.Employee',\n textField: 'person.fullName',\n valueField: 'id',\n expose: [\n { source: 'id', target: 'employee.id' },\n { source: 'employeeCode', target: 'employee.employeeCode' },\n { source: 'person.fullName', target: 'employee.person.fullName' },\n ],\n },\n },\n },\n },\n {\n name: 'projectId',\n title: `@${entityI18n}.fields.project-id.title`,\n groupId: 'assignment',\n options: listSortAndFilterOptions,\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.lookup,\n options: {\n look: 'select',\n entity: 'ProjectManagement.Project',\n textField: 'name',\n valueField: 'id',\n expose: [\n { source: 'id', target: 'project.id' },\n { source: 'title', target: 'project.title' },\n ],\n },\n },\n },\n },\n ],\n columns: [\n { name: 'code' },\n { name: 'title' },\n { name: 'sourceType' },\n { name: 'employeeId', options: { dataPath: 'employee.person.fullName' } },\n { name: 'projectId', options: { dataPath: 'project.title' } },\n { name: 'isBillableDefault' },\n { name: 'isActive' },\n ],\n interfaces: {\n master: {\n create: {\n sections: [{ id: 'basic-info' }, { id: 'source' }, { id: 'assignment' }, { id: 'settings' }],\n properties: [\n { name: 'code', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'title', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'sourceType', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'sourceRef', layout: { positions: { lg: { colSpan: 12 } } } },\n { name: 'employeeId', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'projectId', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'isBillableDefault', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'isActive', layout: { positions: { lg: { colSpan: 6 } } } },\n ],\n },\n update: {\n sections: [{ id: 'basic-info' }, { id: 'source' }, { id: 'assignment' }, { id: 'settings' }],\n properties: [\n { name: 'code', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'title', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'sourceType', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'sourceRef', layout: { positions: { lg: { colSpan: 12 } } } },\n { name: 'employeeId', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'projectId', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'isBillableDefault', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'isActive', layout: { positions: { lg: { colSpan: 6 } } } },\n ],\n },\n single: {\n title: '{{ code }}',\n sections: [{ id: 'basic-info' }, { id: 'source' }, { id: 'assignment' }, { id: 'settings' }],\n properties: [\n { name: 'code', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'title', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'sourceType', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'employeeId', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'projectId', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'isBillableDefault', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'isActive', layout: { positions: { lg: { colSpan: 6 } } } },\n ],\n actions: [...entityMasterRecordActions()],\n },\n list: {\n actions: [...entityMasterCrudActions()],\n views: [createAllQueryView({ sorts: [{ name: 'code', dir: 'asc' }] })],\n },\n },\n },\n };\n\n return entityDef;\n}\n\n//#endregion\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-module-timesheet-management-client-contracts.mjs","sources":["../../../../libs/modules/timesheet-management/contracts/src/root-config.ts","../../../../libs/modules/timesheet-management/contracts/src/permission.keys.ts","../../../../libs/modules/timesheet-management/contracts/src/menu.keys.ts","../../../../libs/modules/timesheet-management/contracts/src/features.keys.ts","../../../../libs/modules/timesheet-management/contracts/src/commands.keys.ts","../../../../libs/modules/timesheet-management/contracts/src/timesheet-period-status.constants.ts","../../../../libs/modules/timesheet-management/contracts/src/entities/time-entry/time-entry.types.ts","../../../../libs/modules/timesheet-management/contracts/src/entities/timesheet-correction/timesheet-correction.types.ts","../../../../libs/modules/timesheet-management/contracts/src/entities/timesheet-period/timesheet-period.types.ts","../../../../libs/modules/timesheet-management/contracts/src/entities/timesheet-policy/timesheet-policy.types.ts","../../../../libs/modules/timesheet-management/contracts/src/entities/work-item/work-item.types.ts","../../../../libs/modules/timesheet-management/contracts/src/acorex-platform-module-timesheet-management-client-contracts.ts"],"sourcesContent":["//#region ---- Module Config ----\n\nconst config = {\n i18n: 'timesheet-management',\n module: 'TimesheetManagement',\n route: 'timesheet-management',\n};\n\nexport const RootConfig = {\n config,\n module: {\n name: config.module,\n route: config.route,\n title: `@${config.i18n}:module.title`,\n icon: 'fa-light fa-clock',\n },\n entities: {\n workItem: {\n name: 'WorkItem',\n source: `${config.module}.WorkItem`,\n title: `@${config.i18n}:work-items.entities.work-item.title`,\n titlePlural: `@${config.i18n}:work-items.entities.work-item.plural`,\n icon: 'fa-light fa-list-check',\n },\n timesheetPeriod: {\n name: 'TimesheetPeriod',\n source: `${config.module}.TimesheetPeriod`,\n title: `@${config.i18n}:timesheet-periods.entities.timesheet-period.title`,\n titlePlural: `@${config.i18n}:timesheet-periods.entities.timesheet-period.plural`,\n icon: 'fa-light fa-calendar-week',\n },\n timeEntry: {\n name: 'TimeEntry',\n source: `${config.module}.TimeEntry`,\n title: `@${config.i18n}:time-entries.entities.time-entry.title`,\n titlePlural: `@${config.i18n}:time-entries.entities.time-entry.plural`,\n icon: 'fa-light fa-hourglass-half',\n },\n timesheetCorrection: {\n name: 'TimesheetCorrection',\n source: `${config.module}.TimesheetCorrection`,\n title: `@${config.i18n}:timesheet-corrections.entities.timesheet-correction.title`,\n titlePlural: `@${config.i18n}:timesheet-corrections.entities.timesheet-correction.plural`,\n icon: 'fa-light fa-pen-to-square',\n },\n timesheetPolicy: {\n name: 'TimesheetPolicy',\n source: `${config.module}.TimesheetPolicy`,\n title: `@${config.i18n}:timesheet-policies.entities.timesheet-policy.title`,\n titlePlural: `@${config.i18n}:timesheet-policies.entities.timesheet-policy.plural`,\n icon: 'fa-light fa-sliders',\n },\n },\n pages: {\n myTimesheet: {\n path: 'my-timesheet',\n title: `@${config.i18n}:pages.my-timesheet.title`,\n icon: 'fa-light fa-calendar-week',\n },\n approvalInbox: {\n path: 'approval-inbox',\n title: `@${config.i18n}:pages.approval-inbox.title`,\n icon: 'fa-light fa-inbox',\n },\n teamTimesheets: {\n path: 'team-timesheets',\n title: `@${config.i18n}:pages.team-timesheets.title`,\n icon: 'fa-light fa-users',\n },\n },\n};\n\n//#endregion\n","/**\n * Projects & Work capabilities used by this module.\n * Domain capability keys for this module. Root groups live in `AXPCommonPermissionGroupKeys` (common contracts).\n */\nexport const AXPProjectsWorkPermissionKeys = {\n Access: 'ProjectsWork:Permission:Access',\n MaintainProjects: 'ProjectsWork:Permission:MaintainProjects',\n MaintainTasks: 'ProjectsWork:Permission:MaintainTasks',\n ViewAllTasks: 'ProjectsWork:Permission:ViewAllTasks',\n MaintainTimesheets: 'ProjectsWork:Permission:MaintainTimesheets',\n ManageTimesheetActions: 'ProjectsWork:Permission:ManageTimesheetActions',\n ViewTimesheetReports: 'ProjectsWork:Permission:ViewTimesheetReports',\n Setup: 'ProjectsWork:Permission:Setup',\n} as const;\n\n/**\n * @deprecated Prefer {@link AXPProjectsWorkPermissionKeys}.\n * Legacy nested shape kept so existing imports compile during migration.\n */\nexport const AXMTimesheetManagementPermissions = {\n TimesheetManagement: {\n WorkItem: {\n Management: AXPProjectsWorkPermissionKeys.Setup,\n View: AXPProjectsWorkPermissionKeys.MaintainTimesheets,\n Create: AXPProjectsWorkPermissionKeys.Setup,\n Update: AXPProjectsWorkPermissionKeys.Setup,\n Delete: AXPProjectsWorkPermissionKeys.Setup,\n },\n TimesheetPeriod: {\n Management: AXPProjectsWorkPermissionKeys.MaintainTimesheets,\n View: AXPProjectsWorkPermissionKeys.MaintainTimesheets,\n Create: AXPProjectsWorkPermissionKeys.MaintainTimesheets,\n Update: AXPProjectsWorkPermissionKeys.MaintainTimesheets,\n Delete: AXPProjectsWorkPermissionKeys.MaintainTimesheets,\n TeamView: AXPProjectsWorkPermissionKeys.ManageTimesheetActions,\n Approve: AXPProjectsWorkPermissionKeys.ManageTimesheetActions,\n AdminAdjust: AXPProjectsWorkPermissionKeys.ManageTimesheetActions,\n },\n TimeEntry: {\n Management: AXPProjectsWorkPermissionKeys.MaintainTimesheets,\n View: AXPProjectsWorkPermissionKeys.MaintainTimesheets,\n Create: AXPProjectsWorkPermissionKeys.MaintainTimesheets,\n Update: AXPProjectsWorkPermissionKeys.MaintainTimesheets,\n Delete: AXPProjectsWorkPermissionKeys.MaintainTimesheets,\n },\n TimesheetCorrection: {\n Management: AXPProjectsWorkPermissionKeys.ManageTimesheetActions,\n View: AXPProjectsWorkPermissionKeys.ManageTimesheetActions,\n Approve: AXPProjectsWorkPermissionKeys.ManageTimesheetActions,\n },\n TimesheetPolicy: {\n Management: AXPProjectsWorkPermissionKeys.Setup,\n View: AXPProjectsWorkPermissionKeys.Setup,\n },\n TimesheetReport: {\n View: AXPProjectsWorkPermissionKeys.ViewTimesheetReports,\n Export: AXPProjectsWorkPermissionKeys.ViewTimesheetReports,\n },\n },\n} as const;\n","//#region ---- Menu Keys ----\n\nexport const AXMTimesheetManagementMenuKeys = {\n Root: 'TimesheetManagement:Menu',\n MyTimesheet: 'TimesheetManagement:Menu:MyTimesheet',\n PeriodHistory: 'TimesheetManagement:Menu:PeriodHistory',\n ApprovalInbox: 'TimesheetManagement:Menu:ApprovalInbox',\n TeamTimesheets: 'TimesheetManagement:Menu:TeamTimesheets',\n WorkItems: 'TimesheetManagement:Menu:WorkItems',\n Reports: 'TimesheetManagement:Menu:Reports',\n Configuration: 'TimesheetManagement:Menu:Configuration',\n Policies: 'TimesheetManagement:Menu:Policies',\n};\n\n//#endregion\n","//#region ---- Feature Keys ----\n\nexport const AXMTimesheetManagementFeatureKeys = {\n TimesheetEntry: 'TimesheetManagement:Feature:Timesheet.Entry',\n TimesheetApproval: 'TimesheetManagement:Feature:Timesheet.Approval',\n TimesheetReporting: 'TimesheetManagement:Feature:Timesheet.Reporting',\n};\n\n//#endregion\n","//#region ---- Command Keys ----\n\nexport const AXMTimesheetManagementCommandKeys = {\n WorkItemResolveFromJira: 'TimesheetManagement.WorkItem:ResolveFromJiraIssue',\n TimeEntryCreate: 'TimesheetManagement.TimeEntry:Create',\n TimeEntryUpdate: 'TimesheetManagement.TimeEntry:Update',\n TimeEntryDelete: 'TimesheetManagement.TimeEntry:Delete',\n TimesheetPeriodSubmit: 'TimesheetManagement.TimesheetPeriod:Submit',\n TimesheetPeriodApprove: 'TimesheetManagement.TimesheetPeriod:Approve',\n TimesheetPeriodReject: 'TimesheetManagement.TimesheetPeriod:Reject',\n TimesheetPeriodReopen: 'TimesheetManagement.TimesheetPeriod:Reopen',\n TimesheetPeriodLock: 'TimesheetManagement.TimesheetPeriod:Lock',\n TimesheetPeriodAdminAdjust: 'TimesheetManagement.TimesheetPeriod:AdminAdjust',\n};\n\n//#endregion\n","import { AXPSystemStatusType } from '@acorex-platform/framework-shared/core';\n\n//#region ---- Timesheet period open statuses ----\n\n/** Statuses that block creating another open period for the same employee and date range. */\nexport const AXMTimesheetPeriodOpenStatusIds = [\n AXPSystemStatusType.Draft,\n AXPSystemStatusType.WaitingApproval,\n] as const;\n\n/** Statuses where time entries cannot be edited. */\nexport const AXMTimesheetPeriodLockedStatusId = 'locked' as const;\n\nexport const AXMTimesheetPeriodLockedStatusIds = [\n AXPSystemStatusType.Approved,\n AXMTimesheetPeriodLockedStatusId,\n] as const;\n\n//#endregion\n","import type { AXPEntityModel } from '@acorex-platform/framework-shared/entity';\nimport type { AXMTimesheetWorkItemSnapshot } from '../work-item/work-item.types';\n\n//#region ---- Time Entry Types ----\n\nexport interface AXMTimesheetManagementTimeEntryEntityModel extends AXPEntityModel<string> {\n employeeId: string;\n employee?: { id: string; employeeCode?: string; person?: { fullName?: string } };\n periodId: string;\n period?: { id: string; startDate?: string; endDate?: string; statusId?: string };\n workItemId: string;\n workItem?: { id: string; code?: string; title?: string };\n projectId?: string;\n project?: { id: string; title?: string };\n startedAt?: string;\n endedAt?: string;\n durationSeconds: number;\n description?: string;\n isBillable: boolean;\n entryDate: string;\n timezone: string;\n workItemSnapshot?: AXMTimesheetWorkItemSnapshot;\n}\n\n//#endregion\n","import type { AXPEntityModel } from '@acorex-platform/framework-shared/entity';\nimport { AXPSystemStatusType } from '@acorex-platform/framework-shared/core';\n\n//#region ---- Timesheet Correction Types ----\n\nexport type AXMTimesheetCorrectionStatusId =\n | typeof AXPSystemStatusType.WaitingApproval\n | typeof AXPSystemStatusType.Approved\n | typeof AXPSystemStatusType.Rejected;\n\nexport interface AXMTimesheetCorrectionChange {\n timeEntryId: string;\n field: string;\n oldValue: unknown;\n newValue: unknown;\n}\n\nexport interface AXMTimesheetManagementTimesheetCorrectionEntityModel extends AXPEntityModel<string> {\n periodId: string;\n period?: { id: string; startDate?: string; endDate?: string };\n requestedById: string;\n reason: string;\n statusId: AXMTimesheetCorrectionStatusId;\n changes: AXMTimesheetCorrectionChange[];\n reviewedById?: string;\n reviewedAt?: string;\n}\n\n//#endregion\n","import type { AXPEntityModel } from '@acorex-platform/framework-shared/entity';\nimport { AXPSystemStatusType } from '@acorex-platform/framework-shared/core';\n\n//#region ---- Timesheet Period Types ----\n\nexport type AXMTimesheetPeriodType = 'Weekly' | 'Biweekly' | 'Monthly';\n\nexport type AXMTimesheetPeriodStatusId =\n | typeof AXPSystemStatusType.Draft\n | typeof AXPSystemStatusType.WaitingApproval\n | typeof AXPSystemStatusType.Approved\n | typeof AXPSystemStatusType.Rejected\n | 'locked';\n\nexport interface AXMTimesheetManagementTimesheetPeriodEntityModel extends AXPEntityModel<string> {\n employeeId: string;\n employee?: { id: string; employeeCode?: string; person?: { fullName?: string } };\n periodType: AXMTimesheetPeriodType;\n startDate: string;\n endDate: string;\n statusId: AXMTimesheetPeriodStatusId;\n submittedAt?: string;\n approvedAt?: string;\n approvedById?: string;\n rejectedAt?: string;\n rejectionReason?: string;\n lockedAt?: string;\n totalSeconds?: number;\n timezone: string;\n}\n\n//#endregion\n","import type { AXPEntityModel } from '@acorex-platform/framework-shared/entity';\nimport type { AXMTimesheetPeriodType } from '../timesheet-period/timesheet-period.types';\n\n//#region ---- Timesheet Policy Types ----\n\nexport type AXMTimesheetOverlapPolicy = 'reject' | 'warn';\n\nexport interface AXMTimesheetManagementTimesheetPolicyEntityModel extends AXPEntityModel<string> {\n name: string;\n maxDailyHours?: number;\n maxWeeklyHours?: number;\n requireDescription: boolean;\n allowFutureDates: boolean;\n overlapPolicy: AXMTimesheetOverlapPolicy;\n periodTypeDefault: AXMTimesheetPeriodType;\n isDefault: boolean;\n}\n\n//#endregion\n","import type { AXPMultiLanguageString } from '@acorex-platform/framework-shared/core';\nimport type { AXPEntityModel } from '@acorex-platform/framework-shared/entity';\n\n//#region ---- Work Item Types ----\n\nexport type AXMTimesheetWorkItemSourceType = 'Internal' | 'Jira' | 'Task';\n\nexport interface AXMTimesheetWorkItemSourceRef {\n system: 'internal' | 'jira' | 'task';\n jiraInstanceId?: string;\n jiraIssueId?: string;\n jiraIssueKey?: string;\n taskId?: string;\n internalCode?: string;\n}\n\nexport interface AXMTimesheetWorkItemSnapshot {\n title: string;\n subtitle?: string;\n projectKey?: string;\n statusName?: string;\n capturedAt: string;\n}\n\nexport interface AXMTimesheetManagementWorkItemEntityModel extends AXPEntityModel<string> {\n code: string;\n title: AXPMultiLanguageString;\n sourceType: AXMTimesheetWorkItemSourceType;\n sourceRef?: AXMTimesheetWorkItemSourceRef;\n snapshot?: AXMTimesheetWorkItemSnapshot;\n isBillableDefault: boolean;\n isActive: boolean;\n employeeId?: string;\n employee?: { id: string; employeeCode?: string; person?: { fullName?: string } };\n projectId?: string;\n project?: { id: string; title?: string };\n}\n\n//#endregion\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-timesheet-management-client-contracts.mjs","sources":["../../../../libs/modules/timesheet-management/contracts/src/root-config.ts","../../../../libs/modules/timesheet-management/contracts/src/permission.keys.ts","../../../../libs/modules/timesheet-management/contracts/src/menu.keys.ts","../../../../libs/modules/timesheet-management/contracts/src/features.keys.ts","../../../../libs/modules/timesheet-management/contracts/src/commands.keys.ts","../../../../libs/modules/timesheet-management/contracts/src/timesheet-period-status.constants.ts","../../../../libs/modules/timesheet-management/contracts/src/entities/time-entry/time-entry.types.ts","../../../../libs/modules/timesheet-management/contracts/src/entities/timesheet-correction/timesheet-correction.types.ts","../../../../libs/modules/timesheet-management/contracts/src/entities/timesheet-period/timesheet-period.types.ts","../../../../libs/modules/timesheet-management/contracts/src/entities/timesheet-policy/timesheet-policy.types.ts","../../../../libs/modules/timesheet-management/contracts/src/entities/work-item/work-item.types.ts","../../../../libs/modules/timesheet-management/contracts/src/acorex-platform-module-timesheet-management-client-contracts.ts"],"sourcesContent":["//#region ---- Module Config ----\n\nconst config = {\n i18n: 'timesheet-management',\n module: 'TimesheetManagement',\n route: 'timesheet-management',\n};\n\nexport const RootConfig = {\n config,\n module: {\n name: config.module,\n route: config.route,\n title: `@${config.i18n}:module.title`,\n icon: 'fa-light fa-clock',\n },\n entities: {\n workItem: {\n name: 'WorkItem',\n source: `${config.module}.WorkItem`,\n title: `@${config.i18n}:work-items.entities.work-item.title`,\n titlePlural: `@${config.i18n}:work-items.entities.work-item.plural`,\n icon: 'fa-light fa-list-check',\n },\n timesheetPeriod: {\n name: 'TimesheetPeriod',\n source: `${config.module}.TimesheetPeriod`,\n title: `@${config.i18n}:timesheet-periods.entities.timesheet-period.title`,\n titlePlural: `@${config.i18n}:timesheet-periods.entities.timesheet-period.plural`,\n icon: 'fa-light fa-calendar-week',\n },\n timeEntry: {\n name: 'TimeEntry',\n source: `${config.module}.TimeEntry`,\n title: `@${config.i18n}:time-entries.entities.time-entry.title`,\n titlePlural: `@${config.i18n}:time-entries.entities.time-entry.plural`,\n icon: 'fa-light fa-hourglass-half',\n },\n timesheetCorrection: {\n name: 'TimesheetCorrection',\n source: `${config.module}.TimesheetCorrection`,\n title: `@${config.i18n}:timesheet-corrections.entities.timesheet-correction.title`,\n titlePlural: `@${config.i18n}:timesheet-corrections.entities.timesheet-correction.plural`,\n icon: 'fa-light fa-pen-to-square',\n },\n timesheetPolicy: {\n name: 'TimesheetPolicy',\n source: `${config.module}.TimesheetPolicy`,\n title: `@${config.i18n}:timesheet-policies.entities.timesheet-policy.title`,\n titlePlural: `@${config.i18n}:timesheet-policies.entities.timesheet-policy.plural`,\n icon: 'fa-light fa-sliders',\n },\n },\n pages: {\n myTimesheet: {\n path: 'my-timesheet',\n title: `@${config.i18n}:pages.my-timesheet.title`,\n icon: 'fa-light fa-calendar-week',\n },\n approvalInbox: {\n path: 'approval-inbox',\n title: `@${config.i18n}:pages.approval-inbox.title`,\n icon: 'fa-light fa-inbox',\n },\n teamTimesheets: {\n path: 'team-timesheets',\n title: `@${config.i18n}:pages.team-timesheets.title`,\n icon: 'fa-light fa-users',\n },\n },\n};\n\n//#endregion\n","/**\n * Projects & Work capabilities used by this module.\n * Domain capability keys for this module. Root groups live in `AXPCommonPermissionGroupKeys` (common contracts).\n */\nexport const AXPProjectsWorkPermissionKeys = {\n Access: 'ProjectsWork:Permission:Access',\n MaintainProjects: 'ProjectsWork:Permission:MaintainProjects',\n MaintainTasks: 'ProjectsWork:Permission:MaintainTasks',\n ViewAllTasks: 'ProjectsWork:Permission:ViewAllTasks',\n MaintainTimesheets: 'ProjectsWork:Permission:MaintainTimesheets',\n ManageTimesheetActions: 'ProjectsWork:Permission:ManageTimesheetActions',\n ViewTimesheetReports: 'ProjectsWork:Permission:ViewTimesheetReports',\n Setup: 'ProjectsWork:Permission:Setup',\n} as const;\n\n/**\n * @deprecated Prefer {@link AXPProjectsWorkPermissionKeys}.\n * Legacy nested shape kept so existing imports compile during migration.\n */\nexport const AXMTimesheetManagementPermissions = {\n TimesheetManagement: {\n WorkItem: {\n Management: AXPProjectsWorkPermissionKeys.Setup,\n View: AXPProjectsWorkPermissionKeys.MaintainTimesheets,\n Create: AXPProjectsWorkPermissionKeys.Setup,\n Update: AXPProjectsWorkPermissionKeys.Setup,\n Delete: AXPProjectsWorkPermissionKeys.Setup,\n },\n TimesheetPeriod: {\n Management: AXPProjectsWorkPermissionKeys.MaintainTimesheets,\n View: AXPProjectsWorkPermissionKeys.MaintainTimesheets,\n Create: AXPProjectsWorkPermissionKeys.MaintainTimesheets,\n Update: AXPProjectsWorkPermissionKeys.MaintainTimesheets,\n Delete: AXPProjectsWorkPermissionKeys.MaintainTimesheets,\n TeamView: AXPProjectsWorkPermissionKeys.ManageTimesheetActions,\n Approve: AXPProjectsWorkPermissionKeys.ManageTimesheetActions,\n AdminAdjust: AXPProjectsWorkPermissionKeys.ManageTimesheetActions,\n },\n TimeEntry: {\n Management: AXPProjectsWorkPermissionKeys.MaintainTimesheets,\n View: AXPProjectsWorkPermissionKeys.MaintainTimesheets,\n Create: AXPProjectsWorkPermissionKeys.MaintainTimesheets,\n Update: AXPProjectsWorkPermissionKeys.MaintainTimesheets,\n Delete: AXPProjectsWorkPermissionKeys.MaintainTimesheets,\n },\n TimesheetCorrection: {\n Management: AXPProjectsWorkPermissionKeys.ManageTimesheetActions,\n View: AXPProjectsWorkPermissionKeys.ManageTimesheetActions,\n Approve: AXPProjectsWorkPermissionKeys.ManageTimesheetActions,\n },\n TimesheetPolicy: {\n Management: AXPProjectsWorkPermissionKeys.Setup,\n View: AXPProjectsWorkPermissionKeys.Setup,\n },\n TimesheetReport: {\n View: AXPProjectsWorkPermissionKeys.ViewTimesheetReports,\n Export: AXPProjectsWorkPermissionKeys.ViewTimesheetReports,\n },\n },\n} as const;\n","//#region ---- Menu Keys ----\n\nexport const AXMTimesheetManagementMenuKeys = {\n Root: 'TimesheetManagement:Menu',\n MyTimesheet: 'TimesheetManagement:Menu:MyTimesheet',\n PeriodHistory: 'TimesheetManagement:Menu:PeriodHistory',\n ApprovalInbox: 'TimesheetManagement:Menu:ApprovalInbox',\n TeamTimesheets: 'TimesheetManagement:Menu:TeamTimesheets',\n WorkItems: 'TimesheetManagement:Menu:WorkItems',\n Reports: 'TimesheetManagement:Menu:Reports',\n Configuration: 'TimesheetManagement:Menu:Configuration',\n Policies: 'TimesheetManagement:Menu:Policies',\n};\n\n//#endregion\n","//#region ---- Feature Keys ----\n\nexport const AXMTimesheetManagementFeatureKeys = {\n TimesheetEntry: 'TimesheetManagement:Feature:Timesheet.Entry',\n TimesheetApproval: 'TimesheetManagement:Feature:Timesheet.Approval',\n TimesheetReporting: 'TimesheetManagement:Feature:Timesheet.Reporting',\n};\n\n//#endregion\n","//#region ---- Command Keys ----\n\nexport const AXMTimesheetManagementCommandKeys = {\n WorkItemResolveFromJira: 'TimesheetManagement.WorkItem:ResolveFromJiraIssue',\n TimeEntryCreate: 'TimesheetManagement.TimeEntry:Create',\n TimeEntryUpdate: 'TimesheetManagement.TimeEntry:Update',\n TimeEntryDelete: 'TimesheetManagement.TimeEntry:Delete',\n TimesheetPeriodSubmit: 'TimesheetManagement.TimesheetPeriod:Submit',\n TimesheetPeriodApprove: 'TimesheetManagement.TimesheetPeriod:Approve',\n TimesheetPeriodReject: 'TimesheetManagement.TimesheetPeriod:Reject',\n TimesheetPeriodReopen: 'TimesheetManagement.TimesheetPeriod:Reopen',\n TimesheetPeriodLock: 'TimesheetManagement.TimesheetPeriod:Lock',\n TimesheetPeriodAdminAdjust: 'TimesheetManagement.TimesheetPeriod:AdminAdjust',\n};\n\n//#endregion\n","import { AXPSystemStatusType } from '@acorex-platform/framework-shared/core';\n\n//#region ---- Timesheet period open statuses ----\n\n/** Statuses that block creating another open period for the same employee and date range. */\nexport const AXMTimesheetPeriodOpenStatusIds = [\n AXPSystemStatusType.Draft,\n AXPSystemStatusType.WaitingApproval,\n] as const;\n\n/** Statuses where time entries cannot be edited. */\nexport const AXMTimesheetPeriodLockedStatusId = 'locked' as const;\n\nexport const AXMTimesheetPeriodLockedStatusIds = [\n AXPSystemStatusType.Approved,\n AXMTimesheetPeriodLockedStatusId,\n] as const;\n\n//#endregion\n","import type { AXPEntityModel } from '@acorex-platform/framework-shared/entity';\nimport type { AXMTimesheetWorkItemSnapshot } from '../work-item/work-item.types';\n\n//#region ---- Time Entry Types ----\n\nexport interface AXMTimesheetManagementTimeEntryEntityModel extends AXPEntityModel<string> {\n employeeId: string;\n employee?: { id: string; employeeCode?: string; person?: { fullName?: string } };\n periodId: string;\n period?: { id: string; startDate?: string; endDate?: string; statusId?: string };\n workItemId: string;\n workItem?: { id: string; code?: string; title?: string };\n projectId?: string;\n project?: { id: string; title?: string };\n startedAt?: string;\n endedAt?: string;\n durationSeconds: number;\n description?: string;\n isBillable: boolean;\n entryDate: string;\n timezone: string;\n workItemSnapshot?: AXMTimesheetWorkItemSnapshot;\n}\n\n//#endregion\n","import type { AXPEntityModel } from '@acorex-platform/framework-shared/entity';\nimport { AXPSystemStatusType } from '@acorex-platform/framework-shared/core';\n\n//#region ---- Timesheet Correction Types ----\n\nexport type AXMTimesheetCorrectionStatusId =\n | typeof AXPSystemStatusType.WaitingApproval\n | typeof AXPSystemStatusType.Approved\n | typeof AXPSystemStatusType.Rejected;\n\nexport interface AXMTimesheetCorrectionChange {\n timeEntryId: string;\n field: string;\n oldValue: unknown;\n newValue: unknown;\n}\n\nexport interface AXMTimesheetManagementTimesheetCorrectionEntityModel extends AXPEntityModel<string> {\n periodId: string;\n period?: { id: string; startDate?: string; endDate?: string };\n requestedById: string;\n reason: string;\n statusId: AXMTimesheetCorrectionStatusId;\n changes: AXMTimesheetCorrectionChange[];\n reviewedById?: string;\n reviewedAt?: string;\n}\n\n//#endregion\n","import type { AXPEntityModel } from '@acorex-platform/framework-shared/entity';\nimport { AXPSystemStatusType } from '@acorex-platform/framework-shared/core';\n\n//#region ---- Timesheet Period Types ----\n\nexport type AXMTimesheetPeriodType = 'Weekly' | 'Biweekly' | 'Monthly';\n\nexport type AXMTimesheetPeriodStatusId =\n | typeof AXPSystemStatusType.Draft\n | typeof AXPSystemStatusType.WaitingApproval\n | typeof AXPSystemStatusType.Approved\n | typeof AXPSystemStatusType.Rejected\n | 'locked';\n\nexport interface AXMTimesheetManagementTimesheetPeriodEntityModel extends AXPEntityModel<string> {\n employeeId: string;\n employee?: { id: string; employeeCode?: string; person?: { fullName?: string } };\n periodType: AXMTimesheetPeriodType;\n startDate: string;\n endDate: string;\n statusId: AXMTimesheetPeriodStatusId;\n submittedAt?: string;\n approvedAt?: string;\n approvedById?: string;\n rejectedAt?: string;\n rejectionReason?: string;\n lockedAt?: string;\n totalSeconds?: number;\n timezone: string;\n}\n\n//#endregion\n","import type { AXPEntityModel } from '@acorex-platform/framework-shared/entity';\nimport type { AXMTimesheetPeriodType } from '../timesheet-period/timesheet-period.types';\n\n//#region ---- Timesheet Policy Types ----\n\nexport type AXMTimesheetOverlapPolicy = 'reject' | 'warn';\n\nexport interface AXMTimesheetManagementTimesheetPolicyEntityModel extends AXPEntityModel<string> {\n name: string;\n maxDailyHours?: number;\n maxWeeklyHours?: number;\n requireDescription: boolean;\n allowFutureDates: boolean;\n overlapPolicy: AXMTimesheetOverlapPolicy;\n periodTypeDefault: AXMTimesheetPeriodType;\n isDefault: boolean;\n}\n\n//#endregion\n","import type { AXPMultiLanguageString } from '@acorex-platform/framework-shared/core';\nimport type { AXPEntityModel } from '@acorex-platform/framework-shared/entity';\n\n//#region ---- Work Item Types ----\n\nexport type AXMTimesheetWorkItemSourceType = 'Internal' | 'Jira' | 'Task';\n\nexport interface AXMTimesheetWorkItemSourceRef {\n system: 'internal' | 'jira' | 'task';\n jiraInstanceId?: string;\n jiraIssueId?: string;\n jiraIssueKey?: string;\n taskId?: string;\n internalCode?: string;\n}\n\nexport interface AXMTimesheetWorkItemSnapshot {\n title: string;\n subtitle?: string;\n projectKey?: string;\n statusName?: string;\n capturedAt: string;\n}\n\nexport interface AXMTimesheetManagementWorkItemEntityModel extends AXPEntityModel<string> {\n code: string;\n title: AXPMultiLanguageString;\n sourceType: AXMTimesheetWorkItemSourceType;\n sourceRef?: AXMTimesheetWorkItemSourceRef;\n snapshot?: AXMTimesheetWorkItemSnapshot;\n isBillableDefault: boolean;\n isActive: boolean;\n employeeId?: string;\n employee?: { id: string; employeeCode?: string; person?: { fullName?: string } };\n projectId?: string;\n project?: { id: string; title?: string };\n}\n\n//#endregion\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-module-timesheet-management-client-create-time-entry.command-DS2EVLym.mjs","sources":["../../../../libs/modules/timesheet-management/client/src/lib/features/time-entry/commands/create-time-entry.command.ts"],"sourcesContent":["import { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { AXPRuntimeCommandResult } from '@acorex-platform/framework-shared/core';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\n\nimport { Injectable, inject } from '@angular/core';\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';\nimport { AXMTimesheetValidationService } from '../../timesheet-period/timesheet-validation.service';\n\n//#region ---- Types ----\n\nexport type CreateTimeEntryInput = Omit<AXMTimesheetManagementTimeEntryEntityModel, 'id'>;\n\n//#endregion\n\n/**\n * Creates a time entry after validating the parent timesheet period is editable.\n */\n@Injectable({ providedIn: 'root' })\nexport class CreateTimeEntryCommand implements AXPCommand<CreateTimeEntryInput, AXMTimesheetManagementTimeEntryEntityModel> {\n //#region ---- Services & Dependencies ----\n\n private readonly entityService = inject(AXPEntityService);\n private readonly validationService = inject(AXMTimesheetValidationService);\n\n //#endregion\n\n //#region ---- Command Implementation ----\n\n async execute(\n input: CreateTimeEntryInput,\n ): AXPCommandExecuteResultPromise<AXMTimesheetManagementTimeEntryEntityModel> {\n try {\n await this.assertPeriodEditable(input.periodId);\n\n const dataAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.timeEntry.name)\n .data<string, AXMTimesheetManagementTimeEntryEntityModel>();\n\n const id = await dataAccessor.create(input);\n const entity = await dataAccessor.byKey(id);\n if (!entity) {\n return { success: false, message: { text: 'Time entry not found after creation.' } };\n }\n\n return { success: true, kind: 'object', data: entity };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to create time entry.';\n console.error('[CreateTimeEntryCommand] Error:', error);\n return { success: false, message: { text: message } };\n }\n }\n\n //#endregion\n\n //#region ---- Private helpers ----\n\n private async assertPeriodEditable(periodId: string): Promise<void> {\n const periodAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.timesheetPeriod.name)\n .data<string, AXMTimesheetManagementTimesheetPeriodEntityModel>();\n\n const period = await periodAccessor.byKey(periodId);\n if (!period) {\n throw new Error('Timesheet period not found.');\n }\n this.validationService.assertPeriodAllowsTimeEntryEdits(period);\n }\n\n //#endregion\n}\n"],"names":[],"mappings":";;;;;;AAcA;AAEA;;AAEG;MAEU,sBAAsB,CAAA;AADnC,IAAA,WAAA,GAAA;;AAImB,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACxC,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,6BAA6B,CAAC;AA+C3E,IAAA;;;IAzCC,MAAM,OAAO,CACX,KAA2B,EAAA;AAE3B,QAAA,IAAI;YACF,MAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,QAAQ,CAAC;AAE/C,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC;AACvB,iBAAA,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI;AACrE,iBAAA,IAAI,EAAsD;YAE7D,MAAM,EAAE,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC;YAC3C,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,MAAM,EAAE;AACX,gBAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,sCAAsC,EAAE,EAAE;YACtF;AAEA,YAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE;QACxD;QAAE,OAAO,KAAc,EAAE;AACvB,YAAA,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,8BAA8B;AACvF,YAAA,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC;AACvD,YAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QACvD;IACF;;;IAMQ,MAAM,oBAAoB,CAAC,QAAgB,EAAA;AACjD,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC;AACzB,aAAA,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI;AAC3E,aAAA,IAAI,EAA4D;QAEnE,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC;QACnD,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC;QAChD;AACA,QAAA,IAAI,CAAC,iBAAiB,CAAC,gCAAgC,CAAC,MAAM,CAAC;IACjE;8GAhDW,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cADT,MAAM,EAAA,CAAA,CAAA;;2FACnB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-timesheet-management-client-create-time-entry.command-DS2EVLym.mjs","sources":["../../../../libs/modules/timesheet-management/client/src/lib/features/time-entry/commands/create-time-entry.command.ts"],"sourcesContent":["import { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { AXPRuntimeCommandResult } from '@acorex-platform/framework-shared/core';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\n\nimport { Injectable, inject } from '@angular/core';\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';\nimport { AXMTimesheetValidationService } from '../../timesheet-period/timesheet-validation.service';\n\n//#region ---- Types ----\n\nexport type CreateTimeEntryInput = Omit<AXMTimesheetManagementTimeEntryEntityModel, 'id'>;\n\n//#endregion\n\n/**\n * Creates a time entry after validating the parent timesheet period is editable.\n */\n@Injectable({ providedIn: 'root' })\nexport class CreateTimeEntryCommand implements AXPCommand<CreateTimeEntryInput, AXMTimesheetManagementTimeEntryEntityModel> {\n //#region ---- Services & Dependencies ----\n\n private readonly entityService = inject(AXPEntityService);\n private readonly validationService = inject(AXMTimesheetValidationService);\n\n //#endregion\n\n //#region ---- Command Implementation ----\n\n async execute(\n input: CreateTimeEntryInput,\n ): AXPCommandExecuteResultPromise<AXMTimesheetManagementTimeEntryEntityModel> {\n try {\n await this.assertPeriodEditable(input.periodId);\n\n const dataAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.timeEntry.name)\n .data<string, AXMTimesheetManagementTimeEntryEntityModel>();\n\n const id = await dataAccessor.create(input);\n const entity = await dataAccessor.byKey(id);\n if (!entity) {\n return { success: false, message: { text: 'Time entry not found after creation.' } };\n }\n\n return { success: true, kind: 'object', data: entity };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to create time entry.';\n console.error('[CreateTimeEntryCommand] Error:', error);\n return { success: false, message: { text: message } };\n }\n }\n\n //#endregion\n\n //#region ---- Private helpers ----\n\n private async assertPeriodEditable(periodId: string): Promise<void> {\n const periodAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.timesheetPeriod.name)\n .data<string, AXMTimesheetManagementTimesheetPeriodEntityModel>();\n\n const period = await periodAccessor.byKey(periodId);\n if (!period) {\n throw new Error('Timesheet period not found.');\n }\n this.validationService.assertPeriodAllowsTimeEntryEdits(period);\n }\n\n //#endregion\n}\n"],"names":[],"mappings":";;;;;;AAcA;AAEA;;AAEG;MAEU,sBAAsB,CAAA;AADnC,IAAA,WAAA,GAAA;;AAImB,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACxC,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,6BAA6B,CAAC;AA+C3E,IAAA;;;IAzCC,MAAM,OAAO,CACX,KAA2B,EAAA;AAE3B,QAAA,IAAI;YACF,MAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,QAAQ,CAAC;AAE/C,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC;AACvB,iBAAA,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI;AACrE,iBAAA,IAAI,EAAsD;YAE7D,MAAM,EAAE,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC;YAC3C,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,MAAM,EAAE;AACX,gBAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,sCAAsC,EAAE,EAAE;YACtF;AAEA,YAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE;QACxD;QAAE,OAAO,KAAc,EAAE;AACvB,YAAA,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,8BAA8B;AACvF,YAAA,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC;AACvD,YAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QACvD;IACF;;;IAMQ,MAAM,oBAAoB,CAAC,QAAgB,EAAA;AACjD,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC;AACzB,aAAA,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI;AAC3E,aAAA,IAAI,EAA4D;QAEnE,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC;QACnD,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC;QAChD;AACA,QAAA,IAAI,CAAC,iBAAiB,CAAC,gCAAgC,CAAC,MAAM,CAAC;IACjE;8GAhDW,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cADT,MAAM,EAAA,CAAA,CAAA;;2FACnB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-module-timesheet-management-client-delete-time-entry.command-5_ItHpnx.mjs","sources":["../../../../libs/modules/timesheet-management/client/src/lib/features/time-entry/commands/delete-time-entry.command.ts"],"sourcesContent":["import { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { AXPRuntimeCommandResult } from '@acorex-platform/framework-shared/core';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\n\nimport { Injectable, inject } from '@angular/core';\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';\nimport { AXMTimesheetValidationService } from '../../timesheet-period/timesheet-validation.service';\n\n//#region ---- Types ----\n\nexport interface DeleteTimeEntryInput {\n id: string;\n}\n\n//#endregion\n\n/**\n * Deletes a time entry after validating the parent timesheet period is editable.\n */\n@Injectable({ providedIn: 'root' })\nexport class DeleteTimeEntryCommand implements AXPCommand<DeleteTimeEntryInput, void> {\n //#region ---- Services & Dependencies ----\n\n private readonly entityService = inject(AXPEntityService);\n private readonly validationService = inject(AXMTimesheetValidationService);\n\n //#endregion\n\n //#region ---- Command Implementation ----\n\n async execute(input: DeleteTimeEntryInput): AXPCommandExecuteResultPromise<void> {\n try {\n const dataAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.timeEntry.name)\n .data<string, AXMTimesheetManagementTimeEntryEntityModel>();\n\n const existing = await dataAccessor.byKey(input.id);\n if (!existing) {\n return { success: false, message: { text: 'Time entry not found.' } };\n }\n\n await this.assertPeriodEditable(existing.periodId);\n await dataAccessor.delete(input.id);\n\n return { success: true, kind: 'object', data: undefined };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to delete time entry.';\n console.error('[DeleteTimeEntryCommand] Error:', error);\n return { success: false, message: { text: message } };\n }\n }\n\n //#endregion\n\n //#region ---- Private helpers ----\n\n private async assertPeriodEditable(periodId: string): Promise<void> {\n const periodAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.timesheetPeriod.name)\n .data<string, AXMTimesheetManagementTimesheetPeriodEntityModel>();\n\n const period = await periodAccessor.byKey(periodId);\n if (!period) {\n throw new Error('Timesheet period not found.');\n }\n this.validationService.assertPeriodAllowsTimeEntryEdits(period);\n }\n\n //#endregion\n}\n"],"names":[],"mappings":";;;;;;AAgBA;AAEA;;AAEG;MAEU,sBAAsB,CAAA;AADnC,IAAA,WAAA,GAAA;;AAImB,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACxC,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,6BAA6B,CAAC;AA6C3E,IAAA;;;IAvCC,MAAM,OAAO,CAAC,KAA2B,EAAA;AACvC,QAAA,IAAI;AACF,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC;AACvB,iBAAA,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI;AACrE,iBAAA,IAAI,EAAsD;YAE7D,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACnD,IAAI,CAAC,QAAQ,EAAE;AACb,gBAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,EAAE;YACvE;YAEA,MAAM,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAClD,MAAM,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;AAEnC,YAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;QAC3D;QAAE,OAAO,KAAc,EAAE;AACvB,YAAA,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,8BAA8B;AACvF,YAAA,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC;AACvD,YAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QACvD;IACF;;;IAMQ,MAAM,oBAAoB,CAAC,QAAgB,EAAA;AACjD,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC;AACzB,aAAA,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI;AAC3E,aAAA,IAAI,EAA4D;QAEnE,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC;QACnD,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC;QAChD;AACA,QAAA,IAAI,CAAC,iBAAiB,CAAC,gCAAgC,CAAC,MAAM,CAAC;IACjE;8GA9CW,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cADT,MAAM,EAAA,CAAA,CAAA;;2FACnB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-timesheet-management-client-delete-time-entry.command-5_ItHpnx.mjs","sources":["../../../../libs/modules/timesheet-management/client/src/lib/features/time-entry/commands/delete-time-entry.command.ts"],"sourcesContent":["import { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { AXPRuntimeCommandResult } from '@acorex-platform/framework-shared/core';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\n\nimport { Injectable, inject } from '@angular/core';\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';\nimport { AXMTimesheetValidationService } from '../../timesheet-period/timesheet-validation.service';\n\n//#region ---- Types ----\n\nexport interface DeleteTimeEntryInput {\n id: string;\n}\n\n//#endregion\n\n/**\n * Deletes a time entry after validating the parent timesheet period is editable.\n */\n@Injectable({ providedIn: 'root' })\nexport class DeleteTimeEntryCommand implements AXPCommand<DeleteTimeEntryInput, void> {\n //#region ---- Services & Dependencies ----\n\n private readonly entityService = inject(AXPEntityService);\n private readonly validationService = inject(AXMTimesheetValidationService);\n\n //#endregion\n\n //#region ---- Command Implementation ----\n\n async execute(input: DeleteTimeEntryInput): AXPCommandExecuteResultPromise<void> {\n try {\n const dataAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.timeEntry.name)\n .data<string, AXMTimesheetManagementTimeEntryEntityModel>();\n\n const existing = await dataAccessor.byKey(input.id);\n if (!existing) {\n return { success: false, message: { text: 'Time entry not found.' } };\n }\n\n await this.assertPeriodEditable(existing.periodId);\n await dataAccessor.delete(input.id);\n\n return { success: true, kind: 'object', data: undefined };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to delete time entry.';\n console.error('[DeleteTimeEntryCommand] Error:', error);\n return { success: false, message: { text: message } };\n }\n }\n\n //#endregion\n\n //#region ---- Private helpers ----\n\n private async assertPeriodEditable(periodId: string): Promise<void> {\n const periodAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.timesheetPeriod.name)\n .data<string, AXMTimesheetManagementTimesheetPeriodEntityModel>();\n\n const period = await periodAccessor.byKey(periodId);\n if (!period) {\n throw new Error('Timesheet period not found.');\n }\n this.validationService.assertPeriodAllowsTimeEntryEdits(period);\n }\n\n //#endregion\n}\n"],"names":[],"mappings":";;;;;;AAgBA;AAEA;;AAEG;MAEU,sBAAsB,CAAA;AADnC,IAAA,WAAA,GAAA;;AAImB,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACxC,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,6BAA6B,CAAC;AA6C3E,IAAA;;;IAvCC,MAAM,OAAO,CAAC,KAA2B,EAAA;AACvC,QAAA,IAAI;AACF,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC;AACvB,iBAAA,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI;AACrE,iBAAA,IAAI,EAAsD;YAE7D,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACnD,IAAI,CAAC,QAAQ,EAAE;AACb,gBAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,EAAE;YACvE;YAEA,MAAM,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAClD,MAAM,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;AAEnC,YAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;QAC3D;QAAE,OAAO,KAAc,EAAE;AACvB,YAAA,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,8BAA8B;AACvF,YAAA,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC;AACvD,YAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QACvD;IACF;;;IAMQ,MAAM,oBAAoB,CAAC,QAAgB,EAAA;AACjD,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC;AACzB,aAAA,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI;AAC3E,aAAA,IAAI,EAA4D;QAEnE,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC;QACnD,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC;QAChD;AACA,QAAA,IAAI,CAAC,iBAAiB,CAAC,gCAAgC,CAAC,MAAM,CAAC;IACjE;8GA9CW,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cADT,MAAM,EAAA,CAAA,CAAA;;2FACnB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-module-timesheet-management-client-local-entities.mjs","sources":["../../../../libs/modules/timesheet-management/client/src/lib/provide-local-entities.ts","../../../../libs/modules/timesheet-management/client/src/lib/acorex-platform-module-timesheet-management-client-local-entities.ts"],"sourcesContent":["//#region ----- Imports -----\n\nimport { provideLocalEntityCatalog } from '@acorex-platform/framework-client/layout/entity';\nimport { RootConfig } from '@acorex-platform/module-timesheet-management-client/contracts';\n\n//#endregion\n\n//#region ----- Provide local entities -----\n\n/**\n * Registers timesheet-management layouts on the client from packaged factories.\n * Each `import()` targets a secondary entry so unused entities stay out of the\n * bundle. Do not add this to the demo app; demo continues to load layouts via\n * `Domain:GetEntityLayout`.\n */\nexport function provideTimesheetManagementLocalEntities() {\n return provideLocalEntityCatalog({\n moduleName: RootConfig.module.name,\n loaders: {\n [RootConfig.entities.timeEntry.name]: () =>\n import('@acorex-platform/module-timesheet-management-client/contracts/entities/time-entry').then((m) => m.factoryTimeEntry()),\n [RootConfig.entities.timesheetCorrection.name]: () =>\n import('@acorex-platform/module-timesheet-management-client/contracts/entities/timesheet-correction').then((m) => m.factoryTimesheetCorrection()),\n [RootConfig.entities.timesheetPeriod.name]: () =>\n import('@acorex-platform/module-timesheet-management-client/contracts/entities/timesheet-period').then((m) => m.factoryTimesheetPeriod()),\n [RootConfig.entities.timesheetPolicy.name]: () =>\n import('@acorex-platform/module-timesheet-management-client/contracts/entities/timesheet-policy').then((m) => m.factoryTimesheetPolicy()),\n [RootConfig.entities.workItem.name]: () =>\n import('@acorex-platform/module-timesheet-management-client/contracts/entities/work-item').then((m) => m.factoryWorkItem()),\n },\n });\n}\n\nexport { timesheetManagementLocalEntityCatalog } from '@acorex-platform/module-timesheet-management-client/contracts/entity-catalog';\n\n//#endregion\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './provide-local-entities';\n"],"names":[],"mappings":";;;;AAAA;AAKA;AAEA;AAEA;;;;;AAKG;SACa,uCAAuC,GAAA;AACrD,IAAA,OAAO,yBAAyB,CAAC;AAC/B,QAAA,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI;AAClC,QAAA,OAAO,EAAE;AACP,YAAA,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,GAAG,MACpC,OAAO,mFAAmF,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,gBAAgB,EAAE,CAAC;AAC/H,YAAA,CAAC,UAAU,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,GAAG,MAC9C,OAAO,6FAA6F,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,0BAA0B,EAAE,CAAC;AACnJ,YAAA,CAAC,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,GAAG,MAC1C,OAAO,yFAAyF,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,sBAAsB,EAAE,CAAC;AAC3I,YAAA,CAAC,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,GAAG,MAC1C,OAAO,yFAAyF,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,sBAAsB,EAAE,CAAC;AAC3I,YAAA,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,GAAG,MACnC,OAAO,kFAAkF,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,eAAe,EAAE,CAAC;AAC9H,SAAA;AACF,KAAA,CAAC;AACJ;AAIA;;ACnCA;;AAEG
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-timesheet-management-client-local-entities.mjs","sources":["../../../../libs/modules/timesheet-management/client/src/lib/provide-local-entities.ts","../../../../libs/modules/timesheet-management/client/src/lib/acorex-platform-module-timesheet-management-client-local-entities.ts"],"sourcesContent":["//#region ----- Imports -----\n\nimport { provideLocalEntityCatalog } from '@acorex-platform/framework-client/layout/entity';\nimport { RootConfig } from '@acorex-platform/module-timesheet-management-client/contracts';\n\n//#endregion\n\n//#region ----- Provide local entities -----\n\n/**\n * Registers timesheet-management layouts on the client from packaged factories.\n * Each `import()` targets a secondary entry so unused entities stay out of the\n * bundle. Do not add this to the demo app; demo continues to load layouts via\n * `Domain:GetEntityLayout`.\n */\nexport function provideTimesheetManagementLocalEntities() {\n return provideLocalEntityCatalog({\n moduleName: RootConfig.module.name,\n loaders: {\n [RootConfig.entities.timeEntry.name]: () =>\n import('@acorex-platform/module-timesheet-management-client/contracts/entities/time-entry').then((m) => m.factoryTimeEntry()),\n [RootConfig.entities.timesheetCorrection.name]: () =>\n import('@acorex-platform/module-timesheet-management-client/contracts/entities/timesheet-correction').then((m) => m.factoryTimesheetCorrection()),\n [RootConfig.entities.timesheetPeriod.name]: () =>\n import('@acorex-platform/module-timesheet-management-client/contracts/entities/timesheet-period').then((m) => m.factoryTimesheetPeriod()),\n [RootConfig.entities.timesheetPolicy.name]: () =>\n import('@acorex-platform/module-timesheet-management-client/contracts/entities/timesheet-policy').then((m) => m.factoryTimesheetPolicy()),\n [RootConfig.entities.workItem.name]: () =>\n import('@acorex-platform/module-timesheet-management-client/contracts/entities/work-item').then((m) => m.factoryWorkItem()),\n },\n });\n}\n\nexport { timesheetManagementLocalEntityCatalog } from '@acorex-platform/module-timesheet-management-client/contracts/entity-catalog';\n\n//#endregion\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './provide-local-entities';\n"],"names":[],"mappings":";;;;AAAA;AAKA;AAEA;AAEA;;;;;AAKG;SACa,uCAAuC,GAAA;AACrD,IAAA,OAAO,yBAAyB,CAAC;AAC/B,QAAA,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI;AAClC,QAAA,OAAO,EAAE;AACP,YAAA,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,GAAG,MACpC,OAAO,mFAAmF,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,gBAAgB,EAAE,CAAC;AAC/H,YAAA,CAAC,UAAU,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,GAAG,MAC9C,OAAO,6FAA6F,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,0BAA0B,EAAE,CAAC;AACnJ,YAAA,CAAC,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,GAAG,MAC1C,OAAO,yFAAyF,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,sBAAsB,EAAE,CAAC;AAC3I,YAAA,CAAC,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,GAAG,MAC1C,OAAO,yFAAyF,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,sBAAsB,EAAE,CAAC;AAC3I,YAAA,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,GAAG,MACnC,OAAO,kFAAkF,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,eAAe,EAAE,CAAC;AAC9H,SAAA;AACF,KAAA,CAAC;AACJ;AAIA;;ACnCA;;AAEG;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-module-timesheet-management-client-lock-timesheet-period.command-D7V7SWUK.mjs","sources":["../../../../libs/modules/timesheet-management/client/src/lib/features/timesheet-period/commands/lock-timesheet-period.command.ts"],"sourcesContent":["import { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { AXPRuntimeCommandResult } from '@acorex-platform/framework-shared/core';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\n\nimport { Injectable, inject } from '@angular/core';\nimport { AXMTimesheetPeriodLockedStatusId, RootConfig } from '@acorex-platform/module-timesheet-management-client/contracts';\nimport type { AXMTimesheetManagementTimesheetPeriodEntityModel } from '@acorex-platform/module-timesheet-management-client/contracts';\nimport { AXMTimesheetValidationService } from '../timesheet-validation.service';\n\n//#region ---- Types ----\n\nexport interface LockTimesheetPeriodInput {\n id: string;\n}\n\n//#endregion\n\n/**\n * Locks an approved timesheet period to prevent further edits.\n */\n@Injectable({ providedIn: 'root' })\nexport class LockTimesheetPeriodCommand implements AXPCommand<LockTimesheetPeriodInput, void> {\n //#region ---- Services & Dependencies ----\n\n private readonly entityService = inject(AXPEntityService);\n private readonly validationService = inject(AXMTimesheetValidationService);\n\n //#endregion\n\n //#region ---- Command Implementation ----\n\n async execute(input: LockTimesheetPeriodInput): AXPCommandExecuteResultPromise<void> {\n try {\n const dataAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.timesheetPeriod.name)\n .data<string, AXMTimesheetManagementTimesheetPeriodEntityModel>();\n\n const period = await dataAccessor.byKey(input.id);\n if (!period) {\n return { success: false, message: { text: 'Timesheet period not found.' } };\n }\n\n this.validationService.assertCanLock(period);\n\n await dataAccessor.update(input.id, {\n statusId: AXMTimesheetPeriodLockedStatusId,\n lockedAt: new Date().toISOString(),\n });\n\n return { success: true, kind: 'object', data: undefined };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to lock timesheet period.';\n console.error('[LockTimesheetPeriodCommand] Error:', error);\n return { success: false, message: { text: message } };\n }\n }\n\n //#endregion\n}\n"],"names":[],"mappings":";;;;;;AAeA;AAEA;;AAEG;MAEU,0BAA0B,CAAA;AADvC,IAAA,WAAA,GAAA;;AAImB,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACxC,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,6BAA6B,CAAC;AAiC3E,IAAA;;;IA3BC,MAAM,OAAO,CAAC,KAA+B,EAAA;AAC3C,QAAA,IAAI;AACF,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC;AACvB,iBAAA,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI;AAC3E,iBAAA,IAAI,EAA4D;YAEnE,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,MAAM,EAAE;AACX,gBAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,6BAA6B,EAAE,EAAE;YAC7E;AAEA,YAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,MAAM,CAAC;AAE5C,YAAA,MAAM,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE;AAClC,gBAAA,QAAQ,EAAE,gCAAgC;AAC1C,gBAAA,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;AACnC,aAAA,CAAC;AAEF,YAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;QAC3D;QAAE,OAAO,KAAc,EAAE;AACvB,YAAA,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,kCAAkC;AAC3F,YAAA,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAK,CAAC;AAC3D,YAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QACvD;IACF;8GAlCW,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,cADb,MAAM,EAAA,CAAA,CAAA;;2FACnB,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBADtC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-timesheet-management-client-lock-timesheet-period.command-D7V7SWUK.mjs","sources":["../../../../libs/modules/timesheet-management/client/src/lib/features/timesheet-period/commands/lock-timesheet-period.command.ts"],"sourcesContent":["import { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { AXPRuntimeCommandResult } from '@acorex-platform/framework-shared/core';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\n\nimport { Injectable, inject } from '@angular/core';\nimport { AXMTimesheetPeriodLockedStatusId, RootConfig } from '@acorex-platform/module-timesheet-management-client/contracts';\nimport type { AXMTimesheetManagementTimesheetPeriodEntityModel } from '@acorex-platform/module-timesheet-management-client/contracts';\nimport { AXMTimesheetValidationService } from '../timesheet-validation.service';\n\n//#region ---- Types ----\n\nexport interface LockTimesheetPeriodInput {\n id: string;\n}\n\n//#endregion\n\n/**\n * Locks an approved timesheet period to prevent further edits.\n */\n@Injectable({ providedIn: 'root' })\nexport class LockTimesheetPeriodCommand implements AXPCommand<LockTimesheetPeriodInput, void> {\n //#region ---- Services & Dependencies ----\n\n private readonly entityService = inject(AXPEntityService);\n private readonly validationService = inject(AXMTimesheetValidationService);\n\n //#endregion\n\n //#region ---- Command Implementation ----\n\n async execute(input: LockTimesheetPeriodInput): AXPCommandExecuteResultPromise<void> {\n try {\n const dataAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.timesheetPeriod.name)\n .data<string, AXMTimesheetManagementTimesheetPeriodEntityModel>();\n\n const period = await dataAccessor.byKey(input.id);\n if (!period) {\n return { success: false, message: { text: 'Timesheet period not found.' } };\n }\n\n this.validationService.assertCanLock(period);\n\n await dataAccessor.update(input.id, {\n statusId: AXMTimesheetPeriodLockedStatusId,\n lockedAt: new Date().toISOString(),\n });\n\n return { success: true, kind: 'object', data: undefined };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to lock timesheet period.';\n console.error('[LockTimesheetPeriodCommand] Error:', error);\n return { success: false, message: { text: message } };\n }\n }\n\n //#endregion\n}\n"],"names":[],"mappings":";;;;;;AAeA;AAEA;;AAEG;MAEU,0BAA0B,CAAA;AADvC,IAAA,WAAA,GAAA;;AAImB,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACxC,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,6BAA6B,CAAC;AAiC3E,IAAA;;;IA3BC,MAAM,OAAO,CAAC,KAA+B,EAAA;AAC3C,QAAA,IAAI;AACF,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC;AACvB,iBAAA,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI;AAC3E,iBAAA,IAAI,EAA4D;YAEnE,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,MAAM,EAAE;AACX,gBAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,6BAA6B,EAAE,EAAE;YAC7E;AAEA,YAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,MAAM,CAAC;AAE5C,YAAA,MAAM,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE;AAClC,gBAAA,QAAQ,EAAE,gCAAgC;AAC1C,gBAAA,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;AACnC,aAAA,CAAC;AAEF,YAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;QAC3D;QAAE,OAAO,KAAc,EAAE;AACvB,YAAA,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,kCAAkC;AAC3F,YAAA,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAK,CAAC;AAC3D,YAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QACvD;IACF;8GAlCW,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,cADb,MAAM,EAAA,CAAA,CAAA;;2FACnB,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBADtC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-module-timesheet-management-client-my-timesheet-grid.query-DlDY3tdF.mjs","sources":["../../../../libs/modules/timesheet-management/client/src/lib/features/reporting/queries/my-timesheet-grid.query.ts"],"sourcesContent":["import { AXPQuery, type AXPQueryFetchResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport type { AXDataSourceFilterOption } from '@acorex/cdk/common';\nimport {\n runtimeQueryFailure,\n runtimeQuerySuccessObject,\n type AXPRuntimeQueryResult,\n} from '@acorex-platform/framework-shared/core';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\n\nimport { Injectable, inject } 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 ---- Types ----\n\nexport interface AXMMyTimesheetGridQueryInput {\n employeeId: string;\n periodId?: string;\n startDate?: string;\n endDate?: string;\n}\n\nexport interface AXMMyTimesheetGridDayCell {\n date: string;\n totalSeconds: number;\n entries: AXMTimesheetManagementTimeEntryEntityModel[];\n}\n\nexport interface AXMMyTimesheetGridQueryResult {\n period: AXMTimesheetManagementTimesheetPeriodEntityModel | null;\n days: AXMMyTimesheetGridDayCell[];\n totalSeconds: number;\n}\n\n//#endregion\n\n/**\n * Returns a weekly grid of time entries for the current employee and period.\n */\n@Injectable({ providedIn: 'root' })\nexport class AXMMyTimesheetGridQuery\n implements AXPQuery<AXMMyTimesheetGridQueryInput, AXMMyTimesheetGridQueryResult>\n{\n //#region ---- Services & Dependencies ----\n\n private readonly entityService = inject(AXPEntityService);\n\n //#endregion\n\n //#region ---- Query Execution ----\n\n async fetch(\n input: AXMMyTimesheetGridQueryInput,\n ): AXPQueryFetchResultPromise<AXMMyTimesheetGridQueryResult> {\n try {\n const periodAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.timesheetPeriod.name)\n .data<string, AXMTimesheetManagementTimesheetPeriodEntityModel>();\n\n let period: AXMTimesheetManagementTimesheetPeriodEntityModel | null = null;\n\n if (input.periodId) {\n period = await periodAccessor.byKey(input.periodId);\n } else {\n const periodFilters: AXDataSourceFilterOption[] = [\n { field: 'employeeId', operator: { type: 'equal' }, value: input.employeeId },\n ];\n if (input.startDate) {\n periodFilters.push({ field: 'startDate', operator: { type: 'equal' }, value: input.startDate });\n }\n\n const periods = await periodAccessor.query({\n skip: 0,\n take: 1,\n sort: [{ field: 'startDate', dir: 'desc' }],\n filter: {\n logic: 'and',\n filters: periodFilters,\n },\n });\n period = periods.items[0] ?? null;\n }\n\n if (!period) {\n return runtimeQuerySuccessObject({ period: null, days: [], totalSeconds: 0 });\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: input.employeeId },\n { field: 'periodId', operator: { type: 'equal' }, value: period.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 return runtimeQuerySuccessObject({\n period,\n days,\n totalSeconds: sumBy(entriesResult.items, (row) => row.durationSeconds ?? 0),\n });\n } catch (error) {\n return runtimeQueryFailure(\n error instanceof Error ? error.message : 'Failed to load my timesheet grid.',\n );\n }\n }\n\n //#endregion\n}\n"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-timesheet-management-client-my-timesheet-grid.query-DlDY3tdF.mjs","sources":["../../../../libs/modules/timesheet-management/client/src/lib/features/reporting/queries/my-timesheet-grid.query.ts"],"sourcesContent":["import { AXPQuery, type AXPQueryFetchResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport type { AXDataSourceFilterOption } from '@acorex/cdk/common';\nimport {\n runtimeQueryFailure,\n runtimeQuerySuccessObject,\n type AXPRuntimeQueryResult,\n} from '@acorex-platform/framework-shared/core';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\n\nimport { Injectable, inject } 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 ---- Types ----\n\nexport interface AXMMyTimesheetGridQueryInput {\n employeeId: string;\n periodId?: string;\n startDate?: string;\n endDate?: string;\n}\n\nexport interface AXMMyTimesheetGridDayCell {\n date: string;\n totalSeconds: number;\n entries: AXMTimesheetManagementTimeEntryEntityModel[];\n}\n\nexport interface AXMMyTimesheetGridQueryResult {\n period: AXMTimesheetManagementTimesheetPeriodEntityModel | null;\n days: AXMMyTimesheetGridDayCell[];\n totalSeconds: number;\n}\n\n//#endregion\n\n/**\n * Returns a weekly grid of time entries for the current employee and period.\n */\n@Injectable({ providedIn: 'root' })\nexport class AXMMyTimesheetGridQuery\n implements AXPQuery<AXMMyTimesheetGridQueryInput, AXMMyTimesheetGridQueryResult>\n{\n //#region ---- Services & Dependencies ----\n\n private readonly entityService = inject(AXPEntityService);\n\n //#endregion\n\n //#region ---- Query Execution ----\n\n async fetch(\n input: AXMMyTimesheetGridQueryInput,\n ): AXPQueryFetchResultPromise<AXMMyTimesheetGridQueryResult> {\n try {\n const periodAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.timesheetPeriod.name)\n .data<string, AXMTimesheetManagementTimesheetPeriodEntityModel>();\n\n let period: AXMTimesheetManagementTimesheetPeriodEntityModel | null = null;\n\n if (input.periodId) {\n period = await periodAccessor.byKey(input.periodId);\n } else {\n const periodFilters: AXDataSourceFilterOption[] = [\n { field: 'employeeId', operator: { type: 'equal' }, value: input.employeeId },\n ];\n if (input.startDate) {\n periodFilters.push({ field: 'startDate', operator: { type: 'equal' }, value: input.startDate });\n }\n\n const periods = await periodAccessor.query({\n skip: 0,\n take: 1,\n sort: [{ field: 'startDate', dir: 'desc' }],\n filter: {\n logic: 'and',\n filters: periodFilters,\n },\n });\n period = periods.items[0] ?? null;\n }\n\n if (!period) {\n return runtimeQuerySuccessObject({ period: null, days: [], totalSeconds: 0 });\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: input.employeeId },\n { field: 'periodId', operator: { type: 'equal' }, value: period.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 return runtimeQuerySuccessObject({\n period,\n days,\n totalSeconds: sumBy(entriesResult.items, (row) => row.durationSeconds ?? 0),\n });\n } catch (error) {\n return runtimeQueryFailure(\n error instanceof Error ? error.message : 'Failed to load my timesheet grid.',\n );\n }\n }\n\n //#endregion\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-module-timesheet-management-client-reject-timesheet-period.command-CONxKPNm.mjs","sources":["../../../../libs/modules/timesheet-management/client/src/lib/features/timesheet-period/commands/reject-timesheet-period.command.ts"],"sourcesContent":["\n\nimport { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { AXPRuntimeCommandResult, AXPSystemStatusType } from '@acorex-platform/framework-shared/core';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\n\nimport { Injectable, inject } from '@angular/core';\nimport { isEmpty } from 'lodash';\nimport { RootConfig } from '@acorex-platform/module-timesheet-management-client/contracts';\nimport type { AXMTimesheetManagementTimesheetPeriodEntityModel } from '@acorex-platform/module-timesheet-management-client/contracts';\nimport { AXMTimesheetValidationService } from '../timesheet-validation.service';\n\n//#region ---- Types ----\n\nexport interface RejectTimesheetPeriodInput {\n id: string;\n rejectionReason?: string;\n}\n\n//#endregion\n\n/**\n * Rejects a timesheet period that is awaiting approval.\n */\n@Injectable({ providedIn: 'root' })\nexport class RejectTimesheetPeriodCommand implements AXPCommand<RejectTimesheetPeriodInput, void> {\n //#region ---- Services & Dependencies ----\n\n private readonly entityService = inject(AXPEntityService);\n private readonly validationService = inject(AXMTimesheetValidationService);\n\n //#endregion\n\n //#region ---- Command Implementation ----\n\n async execute(input: RejectTimesheetPeriodInput): AXPCommandExecuteResultPromise<void> {\n try {\n const dataAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.timesheetPeriod.name)\n .data<string, AXMTimesheetManagementTimesheetPeriodEntityModel>();\n\n const period = await dataAccessor.byKey(input.id);\n if (!period) {\n return { success: false, message: { text: 'Timesheet period not found.' } };\n }\n\n this.validationService.assertCanReject(period);\n\n if (isEmpty(input.rejectionReason?.trim())) {\n return { success: false, message: { text: 'A rejection reason is required.' } };\n }\n\n await dataAccessor.update(input.id, {\n statusId: AXPSystemStatusType.Rejected,\n rejectedAt: new Date().toISOString(),\n rejectionReason: input.rejectionReason?.trim(),\n });\n\n return { success: true, kind: 'object', data: undefined };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to reject timesheet period.';\n console.error('[RejectTimesheetPeriodCommand] Error:', error);\n return { success: false, message: { text: message } };\n }\n }\n\n //#endregion\n}\n"],"names":[],"mappings":";;;;;;;;AAmBA;AAEA;;AAEG;MAEU,4BAA4B,CAAA;AADzC,IAAA,WAAA,GAAA;;AAImB,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACxC,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,6BAA6B,CAAC;AAsC3E,IAAA;;;IAhCC,MAAM,OAAO,CAAC,KAAiC,EAAA;AAC7C,QAAA,IAAI;AACF,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC;AACvB,iBAAA,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI;AAC3E,iBAAA,IAAI,EAA4D;YAEnE,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,MAAM,EAAE;AACX,gBAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,6BAA6B,EAAE,EAAE;YAC7E;AAEA,YAAA,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,MAAM,CAAC;YAE9C,IAAI,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC,EAAE;AAC1C,gBAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,iCAAiC,EAAE,EAAE;YACjF;AAEA,YAAA,MAAM,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE;gBAClC,QAAQ,EAAE,mBAAmB,CAAC,QAAQ;AACtC,gBAAA,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;AACpC,gBAAA,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,IAAI,EAAE;AAC/C,aAAA,CAAC;AAEF,YAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;QAC3D;QAAE,OAAO,KAAc,EAAE;AACvB,YAAA,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,oCAAoC;AAC7F,YAAA,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,KAAK,CAAC;AAC7D,YAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QACvD;IACF;8GAvCW,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,cADf,MAAM,EAAA,CAAA,CAAA;;2FACnB,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBADxC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-timesheet-management-client-reject-timesheet-period.command-CONxKPNm.mjs","sources":["../../../../libs/modules/timesheet-management/client/src/lib/features/timesheet-period/commands/reject-timesheet-period.command.ts"],"sourcesContent":["\n\nimport { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { AXPRuntimeCommandResult, AXPSystemStatusType } from '@acorex-platform/framework-shared/core';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\n\nimport { Injectable, inject } from '@angular/core';\nimport { isEmpty } from 'lodash';\nimport { RootConfig } from '@acorex-platform/module-timesheet-management-client/contracts';\nimport type { AXMTimesheetManagementTimesheetPeriodEntityModel } from '@acorex-platform/module-timesheet-management-client/contracts';\nimport { AXMTimesheetValidationService } from '../timesheet-validation.service';\n\n//#region ---- Types ----\n\nexport interface RejectTimesheetPeriodInput {\n id: string;\n rejectionReason?: string;\n}\n\n//#endregion\n\n/**\n * Rejects a timesheet period that is awaiting approval.\n */\n@Injectable({ providedIn: 'root' })\nexport class RejectTimesheetPeriodCommand implements AXPCommand<RejectTimesheetPeriodInput, void> {\n //#region ---- Services & Dependencies ----\n\n private readonly entityService = inject(AXPEntityService);\n private readonly validationService = inject(AXMTimesheetValidationService);\n\n //#endregion\n\n //#region ---- Command Implementation ----\n\n async execute(input: RejectTimesheetPeriodInput): AXPCommandExecuteResultPromise<void> {\n try {\n const dataAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.timesheetPeriod.name)\n .data<string, AXMTimesheetManagementTimesheetPeriodEntityModel>();\n\n const period = await dataAccessor.byKey(input.id);\n if (!period) {\n return { success: false, message: { text: 'Timesheet period not found.' } };\n }\n\n this.validationService.assertCanReject(period);\n\n if (isEmpty(input.rejectionReason?.trim())) {\n return { success: false, message: { text: 'A rejection reason is required.' } };\n }\n\n await dataAccessor.update(input.id, {\n statusId: AXPSystemStatusType.Rejected,\n rejectedAt: new Date().toISOString(),\n rejectionReason: input.rejectionReason?.trim(),\n });\n\n return { success: true, kind: 'object', data: undefined };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to reject timesheet period.';\n console.error('[RejectTimesheetPeriodCommand] Error:', error);\n return { success: false, message: { text: message } };\n }\n }\n\n //#endregion\n}\n"],"names":[],"mappings":";;;;;;;;AAmBA;AAEA;;AAEG;MAEU,4BAA4B,CAAA;AADzC,IAAA,WAAA,GAAA;;AAImB,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACxC,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,6BAA6B,CAAC;AAsC3E,IAAA;;;IAhCC,MAAM,OAAO,CAAC,KAAiC,EAAA;AAC7C,QAAA,IAAI;AACF,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC;AACvB,iBAAA,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI;AAC3E,iBAAA,IAAI,EAA4D;YAEnE,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,MAAM,EAAE;AACX,gBAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,6BAA6B,EAAE,EAAE;YAC7E;AAEA,YAAA,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,MAAM,CAAC;YAE9C,IAAI,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC,EAAE;AAC1C,gBAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,iCAAiC,EAAE,EAAE;YACjF;AAEA,YAAA,MAAM,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE;gBAClC,QAAQ,EAAE,mBAAmB,CAAC,QAAQ;AACtC,gBAAA,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;AACpC,gBAAA,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,IAAI,EAAE;AAC/C,aAAA,CAAC;AAEF,YAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;QAC3D;QAAE,OAAO,KAAc,EAAE;AACvB,YAAA,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,oCAAoC;AAC7F,YAAA,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,KAAK,CAAC;AAC7D,YAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QACvD;IACF;8GAvCW,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,cADf,MAAM,EAAA,CAAA,CAAA;;2FACnB,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBADxC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-module-timesheet-management-client-reopen-timesheet-period.command-DRr_c67L.mjs","sources":["../../../../libs/modules/timesheet-management/client/src/lib/features/timesheet-period/commands/reopen-timesheet-period.command.ts"],"sourcesContent":["\n\nimport { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { AXPRuntimeCommandResult, AXPSystemStatusType } from '@acorex-platform/framework-shared/core';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\n\nimport { Injectable, inject } from '@angular/core';\nimport { RootConfig } from '@acorex-platform/module-timesheet-management-client/contracts';\nimport type { AXMTimesheetManagementTimesheetPeriodEntityModel } from '@acorex-platform/module-timesheet-management-client/contracts';\nimport { AXMTimesheetValidationService } from '../timesheet-validation.service';\n\n//#region ---- Types ----\n\nexport interface ReopenTimesheetPeriodInput {\n id: string;\n}\n\n//#endregion\n\n/**\n * Reopens a rejected or approved timesheet period back to draft.\n */\n@Injectable({ providedIn: 'root' })\nexport class ReopenTimesheetPeriodCommand implements AXPCommand<ReopenTimesheetPeriodInput, void> {\n //#region ---- Services & Dependencies ----\n\n private readonly entityService = inject(AXPEntityService);\n private readonly validationService = inject(AXMTimesheetValidationService);\n\n //#endregion\n\n //#region ---- Command Implementation ----\n\n async execute(input: ReopenTimesheetPeriodInput): AXPCommandExecuteResultPromise<void> {\n try {\n const dataAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.timesheetPeriod.name)\n .data<string, AXMTimesheetManagementTimesheetPeriodEntityModel>();\n\n const period = await dataAccessor.byKey(input.id);\n if (!period) {\n return { success: false, message: { text: 'Timesheet period not found.' } };\n }\n\n this.validationService.assertCanReopen(period);\n\n await dataAccessor.update(input.id, {\n statusId: AXPSystemStatusType.Draft,\n submittedAt: undefined,\n approvedAt: undefined,\n approvedById: undefined,\n rejectedAt: undefined,\n rejectionReason: undefined,\n lockedAt: undefined,\n });\n\n return { success: true, kind: 'object', data: undefined };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to reopen timesheet period.';\n console.error('[ReopenTimesheetPeriodCommand] Error:', error);\n return { success: false, message: { text: message } };\n }\n }\n\n //#endregion\n}\n"],"names":[],"mappings":";;;;;;;AAiBA;AAEA;;AAEG;MAEU,4BAA4B,CAAA;AADzC,IAAA,WAAA,GAAA;;AAImB,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACxC,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,6BAA6B,CAAC;AAsC3E,IAAA;;;IAhCC,MAAM,OAAO,CAAC,KAAiC,EAAA;AAC7C,QAAA,IAAI;AACF,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC;AACvB,iBAAA,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI;AAC3E,iBAAA,IAAI,EAA4D;YAEnE,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,MAAM,EAAE;AACX,gBAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,6BAA6B,EAAE,EAAE;YAC7E;AAEA,YAAA,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,MAAM,CAAC;AAE9C,YAAA,MAAM,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE;gBAClC,QAAQ,EAAE,mBAAmB,CAAC,KAAK;AACnC,gBAAA,WAAW,EAAE,SAAS;AACtB,gBAAA,UAAU,EAAE,SAAS;AACrB,gBAAA,YAAY,EAAE,SAAS;AACvB,gBAAA,UAAU,EAAE,SAAS;AACrB,gBAAA,eAAe,EAAE,SAAS;AAC1B,gBAAA,QAAQ,EAAE,SAAS;AACpB,aAAA,CAAC;AAEF,YAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;QAC3D;QAAE,OAAO,KAAc,EAAE;AACvB,YAAA,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,oCAAoC;AAC7F,YAAA,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,KAAK,CAAC;AAC7D,YAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QACvD;IACF;8GAvCW,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,cADf,MAAM,EAAA,CAAA,CAAA;;2FACnB,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBADxC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-timesheet-management-client-reopen-timesheet-period.command-DRr_c67L.mjs","sources":["../../../../libs/modules/timesheet-management/client/src/lib/features/timesheet-period/commands/reopen-timesheet-period.command.ts"],"sourcesContent":["\n\nimport { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { AXPRuntimeCommandResult, AXPSystemStatusType } from '@acorex-platform/framework-shared/core';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\n\nimport { Injectable, inject } from '@angular/core';\nimport { RootConfig } from '@acorex-platform/module-timesheet-management-client/contracts';\nimport type { AXMTimesheetManagementTimesheetPeriodEntityModel } from '@acorex-platform/module-timesheet-management-client/contracts';\nimport { AXMTimesheetValidationService } from '../timesheet-validation.service';\n\n//#region ---- Types ----\n\nexport interface ReopenTimesheetPeriodInput {\n id: string;\n}\n\n//#endregion\n\n/**\n * Reopens a rejected or approved timesheet period back to draft.\n */\n@Injectable({ providedIn: 'root' })\nexport class ReopenTimesheetPeriodCommand implements AXPCommand<ReopenTimesheetPeriodInput, void> {\n //#region ---- Services & Dependencies ----\n\n private readonly entityService = inject(AXPEntityService);\n private readonly validationService = inject(AXMTimesheetValidationService);\n\n //#endregion\n\n //#region ---- Command Implementation ----\n\n async execute(input: ReopenTimesheetPeriodInput): AXPCommandExecuteResultPromise<void> {\n try {\n const dataAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.timesheetPeriod.name)\n .data<string, AXMTimesheetManagementTimesheetPeriodEntityModel>();\n\n const period = await dataAccessor.byKey(input.id);\n if (!period) {\n return { success: false, message: { text: 'Timesheet period not found.' } };\n }\n\n this.validationService.assertCanReopen(period);\n\n await dataAccessor.update(input.id, {\n statusId: AXPSystemStatusType.Draft,\n submittedAt: undefined,\n approvedAt: undefined,\n approvedById: undefined,\n rejectedAt: undefined,\n rejectionReason: undefined,\n lockedAt: undefined,\n });\n\n return { success: true, kind: 'object', data: undefined };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to reopen timesheet period.';\n console.error('[ReopenTimesheetPeriodCommand] Error:', error);\n return { success: false, message: { text: message } };\n }\n }\n\n //#endregion\n}\n"],"names":[],"mappings":";;;;;;;AAiBA;AAEA;;AAEG;MAEU,4BAA4B,CAAA;AADzC,IAAA,WAAA,GAAA;;AAImB,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACxC,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,6BAA6B,CAAC;AAsC3E,IAAA;;;IAhCC,MAAM,OAAO,CAAC,KAAiC,EAAA;AAC7C,QAAA,IAAI;AACF,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC;AACvB,iBAAA,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI;AAC3E,iBAAA,IAAI,EAA4D;YAEnE,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,MAAM,EAAE;AACX,gBAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,6BAA6B,EAAE,EAAE;YAC7E;AAEA,YAAA,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,MAAM,CAAC;AAE9C,YAAA,MAAM,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE;gBAClC,QAAQ,EAAE,mBAAmB,CAAC,KAAK;AACnC,gBAAA,WAAW,EAAE,SAAS;AACtB,gBAAA,UAAU,EAAE,SAAS;AACrB,gBAAA,YAAY,EAAE,SAAS;AACvB,gBAAA,UAAU,EAAE,SAAS;AACrB,gBAAA,eAAe,EAAE,SAAS;AAC1B,gBAAA,QAAQ,EAAE,SAAS;AACpB,aAAA,CAAC;AAEF,YAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;QAC3D;QAAE,OAAO,KAAc,EAAE;AACvB,YAAA,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,oCAAoC;AAC7F,YAAA,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,KAAK,CAAC;AAC7D,YAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QACvD;IACF;8GAvCW,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,cADf,MAAM,EAAA,CAAA,CAAA;;2FACnB,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBADxC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-module-timesheet-management-client-report-billable-summary.query-BeLk4Of7.mjs","sources":["../../../../libs/modules/timesheet-management/client/src/lib/features/reporting/queries/report-billable-summary.query.ts"],"sourcesContent":["import { AXPQuery, type AXPQueryFetchResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport type { AXDataSourceFilterOption } from '@acorex/cdk/common';\nimport {\n runtimeQueryFailure,\n runtimeQuerySuccessObject,\n type AXPRuntimeQueryResult,\n} from '@acorex-platform/framework-shared/core';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\n\nimport { Injectable, inject } from '@angular/core';\nimport { sumBy } from 'lodash';\nimport { RootConfig } from '@acorex-platform/module-timesheet-management-client/contracts';\nimport type { AXMTimesheetManagementTimeEntryEntityModel } from '@acorex-platform/module-timesheet-management-client/contracts';\n\n//#region ---- Types ----\n\nexport interface AXMReportBillableSummaryQueryInput {\n employeeId?: string;\n startDate: string;\n endDate: string;\n}\n\nexport interface AXMReportBillableSummaryQueryResult {\n billableSeconds: number;\n nonBillableSeconds: number;\n totalSeconds: number;\n}\n\n//#endregion\n\n/**\n * Summarizes billable vs non-billable hours for a date range.\n */\n@Injectable({ providedIn: 'root' })\nexport class AXMReportBillableSummaryQuery\n implements AXPQuery<AXMReportBillableSummaryQueryInput, AXMReportBillableSummaryQueryResult>\n{\n //#region ---- Services & Dependencies ----\n\n private readonly entityService = inject(AXPEntityService);\n\n //#endregion\n\n //#region ---- Query Execution ----\n\n async fetch(\n input: AXMReportBillableSummaryQueryInput,\n ): AXPQueryFetchResultPromise<AXMReportBillableSummaryQueryResult> {\n try {\n const entryAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.timeEntry.name)\n .data<string, AXMTimesheetManagementTimeEntryEntityModel>();\n\n const filters: AXDataSourceFilterOption[] = [\n { field: 'entryDate', operator: { type: 'gte' }, value: input.startDate },\n { field: 'entryDate', operator: { type: 'lte' }, value: input.endDate },\n ];\n\n if (input.employeeId) {\n filters.unshift({ field: 'employeeId', operator: { type: 'equal' }, value: input.employeeId });\n }\n\n const result = await entryAccessor.query({\n skip: 0,\n take: 5000,\n filter: { logic: 'and', filters },\n });\n\n const billableSeconds = sumBy(\n result.items.filter((row) => row.isBillable),\n (row) => row.durationSeconds ?? 0,\n );\n const totalSeconds = sumBy(result.items, (row) => row.durationSeconds ?? 0);\n\n return runtimeQuerySuccessObject({\n billableSeconds,\n nonBillableSeconds: totalSeconds - billableSeconds,\n totalSeconds,\n });\n } catch (error) {\n return runtimeQueryFailure(\n error instanceof Error ? error.message : 'Failed to load billable summary report.',\n );\n }\n }\n\n //#endregion\n}\n"],"names":[],"mappings":";;;;;;;AA4BA;AAEA;;AAEG;MAEU,6BAA6B,CAAA;AAD1C,IAAA,WAAA,GAAA;;AAMmB,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAgD1D,IAAA;;;IA1CC,MAAM,KAAK,CACT,KAAyC,EAAA;AAEzC,QAAA,IAAI;AACF,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC;AACxB,iBAAA,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI;AACrE,iBAAA,IAAI,EAAsD;AAE7D,YAAA,MAAM,OAAO,GAA+B;AAC1C,gBAAA,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE;AACzE,gBAAA,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE;aACxE;AAED,YAAA,IAAI,KAAK,CAAC,UAAU,EAAE;gBACpB,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;YAChG;AAEA,YAAA,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC;AACvC,gBAAA,IAAI,EAAE,CAAC;AACP,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE;AAClC,aAAA,CAAC;AAEF,YAAA,MAAM,eAAe,GAAG,KAAK,CAC3B,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,UAAU,CAAC,EAC5C,CAAC,GAAG,KAAK,GAAG,CAAC,eAAe,IAAI,CAAC,CAClC;AACD,YAAA,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,eAAe,IAAI,CAAC,CAAC;AAE3E,YAAA,OAAO,yBAAyB,CAAC;gBAC/B,eAAe;gBACf,kBAAkB,EAAE,YAAY,GAAG,eAAe;gBAClD,YAAY;AACb,aAAA,CAAC;QACJ;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,mBAAmB,CACxB,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,yCAAyC,CACnF;QACH;IACF;8GAlDW,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,6BAA6B,cADhB,MAAM,EAAA,CAAA,CAAA;;2FACnB,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBADzC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-timesheet-management-client-report-billable-summary.query-BeLk4Of7.mjs","sources":["../../../../libs/modules/timesheet-management/client/src/lib/features/reporting/queries/report-billable-summary.query.ts"],"sourcesContent":["import { AXPQuery, type AXPQueryFetchResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport type { AXDataSourceFilterOption } from '@acorex/cdk/common';\nimport {\n runtimeQueryFailure,\n runtimeQuerySuccessObject,\n type AXPRuntimeQueryResult,\n} from '@acorex-platform/framework-shared/core';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\n\nimport { Injectable, inject } from '@angular/core';\nimport { sumBy } from 'lodash';\nimport { RootConfig } from '@acorex-platform/module-timesheet-management-client/contracts';\nimport type { AXMTimesheetManagementTimeEntryEntityModel } from '@acorex-platform/module-timesheet-management-client/contracts';\n\n//#region ---- Types ----\n\nexport interface AXMReportBillableSummaryQueryInput {\n employeeId?: string;\n startDate: string;\n endDate: string;\n}\n\nexport interface AXMReportBillableSummaryQueryResult {\n billableSeconds: number;\n nonBillableSeconds: number;\n totalSeconds: number;\n}\n\n//#endregion\n\n/**\n * Summarizes billable vs non-billable hours for a date range.\n */\n@Injectable({ providedIn: 'root' })\nexport class AXMReportBillableSummaryQuery\n implements AXPQuery<AXMReportBillableSummaryQueryInput, AXMReportBillableSummaryQueryResult>\n{\n //#region ---- Services & Dependencies ----\n\n private readonly entityService = inject(AXPEntityService);\n\n //#endregion\n\n //#region ---- Query Execution ----\n\n async fetch(\n input: AXMReportBillableSummaryQueryInput,\n ): AXPQueryFetchResultPromise<AXMReportBillableSummaryQueryResult> {\n try {\n const entryAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.timeEntry.name)\n .data<string, AXMTimesheetManagementTimeEntryEntityModel>();\n\n const filters: AXDataSourceFilterOption[] = [\n { field: 'entryDate', operator: { type: 'gte' }, value: input.startDate },\n { field: 'entryDate', operator: { type: 'lte' }, value: input.endDate },\n ];\n\n if (input.employeeId) {\n filters.unshift({ field: 'employeeId', operator: { type: 'equal' }, value: input.employeeId });\n }\n\n const result = await entryAccessor.query({\n skip: 0,\n take: 5000,\n filter: { logic: 'and', filters },\n });\n\n const billableSeconds = sumBy(\n result.items.filter((row) => row.isBillable),\n (row) => row.durationSeconds ?? 0,\n );\n const totalSeconds = sumBy(result.items, (row) => row.durationSeconds ?? 0);\n\n return runtimeQuerySuccessObject({\n billableSeconds,\n nonBillableSeconds: totalSeconds - billableSeconds,\n totalSeconds,\n });\n } catch (error) {\n return runtimeQueryFailure(\n error instanceof Error ? error.message : 'Failed to load billable summary report.',\n );\n }\n }\n\n //#endregion\n}\n"],"names":[],"mappings":";;;;;;;AA4BA;AAEA;;AAEG;MAEU,6BAA6B,CAAA;AAD1C,IAAA,WAAA,GAAA;;AAMmB,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAgD1D,IAAA;;;IA1CC,MAAM,KAAK,CACT,KAAyC,EAAA;AAEzC,QAAA,IAAI;AACF,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC;AACxB,iBAAA,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI;AACrE,iBAAA,IAAI,EAAsD;AAE7D,YAAA,MAAM,OAAO,GAA+B;AAC1C,gBAAA,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE;AACzE,gBAAA,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE;aACxE;AAED,YAAA,IAAI,KAAK,CAAC,UAAU,EAAE;gBACpB,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;YAChG;AAEA,YAAA,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC;AACvC,gBAAA,IAAI,EAAE,CAAC;AACP,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE;AAClC,aAAA,CAAC;AAEF,YAAA,MAAM,eAAe,GAAG,KAAK,CAC3B,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,UAAU,CAAC,EAC5C,CAAC,GAAG,KAAK,GAAG,CAAC,eAAe,IAAI,CAAC,CAClC;AACD,YAAA,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,eAAe,IAAI,CAAC,CAAC;AAE3E,YAAA,OAAO,yBAAyB,CAAC;gBAC/B,eAAe;gBACf,kBAAkB,EAAE,YAAY,GAAG,eAAe;gBAClD,YAAY;AACb,aAAA,CAAC;QACJ;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,mBAAmB,CACxB,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,yCAAyC,CACnF;QACH;IACF;8GAlDW,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,6BAA6B,cADhB,MAAM,EAAA,CAAA,CAAA;;2FACnB,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBADzC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-module-timesheet-management-client-report-hours-by-project.query-Sp8cLnTC.mjs","sources":["../../../../libs/modules/timesheet-management/client/src/lib/features/reporting/queries/report-hours-by-project.query.ts"],"sourcesContent":["import { AXPQuery, type AXPQueryFetchResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport type { AXDataSourceFilterOption } from '@acorex/cdk/common';\nimport {\n runtimeQueryFailure,\n runtimeQuerySuccessObject,\n type AXPRuntimeQueryResult,\n} from '@acorex-platform/framework-shared/core';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\n\nimport { Injectable, inject } 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';\n\n//#region ---- Types ----\n\nexport interface AXMReportHoursByProjectQueryInput {\n employeeId?: string;\n startDate: string;\n endDate: string;\n}\n\nexport interface AXMReportHoursByProjectRow {\n projectId?: string;\n projectName?: string;\n totalSeconds: number;\n}\n\nexport interface AXMReportHoursByProjectQueryResult {\n rows: AXMReportHoursByProjectRow[];\n totalSeconds: number;\n}\n\n//#endregion\n\n/**\n * Aggregates logged hours by project for a date range.\n */\n@Injectable({ providedIn: 'root' })\nexport class AXMReportHoursByProjectQuery\n implements AXPQuery<AXMReportHoursByProjectQueryInput, AXMReportHoursByProjectQueryResult>\n{\n //#region ---- Services & Dependencies ----\n\n private readonly entityService = inject(AXPEntityService);\n\n //#endregion\n\n //#region ---- Query Execution ----\n\n async fetch(\n input: AXMReportHoursByProjectQueryInput,\n ): AXPQueryFetchResultPromise<AXMReportHoursByProjectQueryResult> {\n try {\n const entries = await this.loadEntries(input);\n const grouped = groupBy(entries, (row) => row.projectId ?? '__none__');\n\n const rows = Object.entries(grouped).map(([key, items]) => {\n const first = items[0];\n return {\n projectId: key === '__none__' ? undefined : key,\n projectName: first?.project?.title,\n totalSeconds: sumBy(items, (row) => row.durationSeconds ?? 0),\n };\n });\n\n return runtimeQuerySuccessObject({\n rows,\n totalSeconds: sumBy(entries, (row) => row.durationSeconds ?? 0),\n });\n } catch (error) {\n return runtimeQueryFailure(\n error instanceof Error ? error.message : 'Failed to load hours by project report.',\n );\n }\n }\n\n //#endregion\n\n //#region ---- Private helpers ----\n\n private async loadEntries(input: AXMReportHoursByProjectQueryInput): Promise<AXMTimesheetManagementTimeEntryEntityModel[]> {\n const entryAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.timeEntry.name)\n .data<string, AXMTimesheetManagementTimeEntryEntityModel>();\n\n const filters: AXDataSourceFilterOption[] = [\n { field: 'entryDate', operator: { type: 'gte' }, value: input.startDate },\n { field: 'entryDate', operator: { type: 'lte' }, value: input.endDate },\n ];\n\n if (input.employeeId) {\n filters.unshift({ field: 'employeeId', operator: { type: 'equal' }, value: input.employeeId });\n }\n\n const result = await entryAccessor.query({\n skip: 0,\n take: 5000,\n filter: { logic: 'and', filters },\n });\n\n return result.items;\n }\n\n //#endregion\n}\n"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-timesheet-management-client-report-hours-by-project.query-Sp8cLnTC.mjs","sources":["../../../../libs/modules/timesheet-management/client/src/lib/features/reporting/queries/report-hours-by-project.query.ts"],"sourcesContent":["import { AXPQuery, type AXPQueryFetchResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport type { AXDataSourceFilterOption } from '@acorex/cdk/common';\nimport {\n runtimeQueryFailure,\n runtimeQuerySuccessObject,\n type AXPRuntimeQueryResult,\n} from '@acorex-platform/framework-shared/core';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\n\nimport { Injectable, inject } 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';\n\n//#region ---- Types ----\n\nexport interface AXMReportHoursByProjectQueryInput {\n employeeId?: string;\n startDate: string;\n endDate: string;\n}\n\nexport interface AXMReportHoursByProjectRow {\n projectId?: string;\n projectName?: string;\n totalSeconds: number;\n}\n\nexport interface AXMReportHoursByProjectQueryResult {\n rows: AXMReportHoursByProjectRow[];\n totalSeconds: number;\n}\n\n//#endregion\n\n/**\n * Aggregates logged hours by project for a date range.\n */\n@Injectable({ providedIn: 'root' })\nexport class AXMReportHoursByProjectQuery\n implements AXPQuery<AXMReportHoursByProjectQueryInput, AXMReportHoursByProjectQueryResult>\n{\n //#region ---- Services & Dependencies ----\n\n private readonly entityService = inject(AXPEntityService);\n\n //#endregion\n\n //#region ---- Query Execution ----\n\n async fetch(\n input: AXMReportHoursByProjectQueryInput,\n ): AXPQueryFetchResultPromise<AXMReportHoursByProjectQueryResult> {\n try {\n const entries = await this.loadEntries(input);\n const grouped = groupBy(entries, (row) => row.projectId ?? '__none__');\n\n const rows = Object.entries(grouped).map(([key, items]) => {\n const first = items[0];\n return {\n projectId: key === '__none__' ? undefined : key,\n projectName: first?.project?.title,\n totalSeconds: sumBy(items, (row) => row.durationSeconds ?? 0),\n };\n });\n\n return runtimeQuerySuccessObject({\n rows,\n totalSeconds: sumBy(entries, (row) => row.durationSeconds ?? 0),\n });\n } catch (error) {\n return runtimeQueryFailure(\n error instanceof Error ? error.message : 'Failed to load hours by project report.',\n );\n }\n }\n\n //#endregion\n\n //#region ---- Private helpers ----\n\n private async loadEntries(input: AXMReportHoursByProjectQueryInput): Promise<AXMTimesheetManagementTimeEntryEntityModel[]> {\n const entryAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.timeEntry.name)\n .data<string, AXMTimesheetManagementTimeEntryEntityModel>();\n\n const filters: AXDataSourceFilterOption[] = [\n { field: 'entryDate', operator: { type: 'gte' }, value: input.startDate },\n { field: 'entryDate', operator: { type: 'lte' }, value: input.endDate },\n ];\n\n if (input.employeeId) {\n filters.unshift({ field: 'employeeId', operator: { type: 'equal' }, value: input.employeeId });\n }\n\n const result = await entryAccessor.query({\n skip: 0,\n take: 5000,\n filter: { logic: 'and', filters },\n });\n\n return result.items;\n }\n\n //#endregion\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-module-timesheet-management-client-report-hours-by-work-item.query-C8RU9Uc0.mjs","sources":["../../../../libs/modules/timesheet-management/client/src/lib/features/reporting/queries/report-hours-by-work-item.query.ts"],"sourcesContent":["import { AXPQuery, type AXPQueryFetchResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport type { AXDataSourceFilterOption } from '@acorex/cdk/common';\nimport {\n runtimeQueryFailure,\n runtimeQuerySuccessObject,\n type AXPRuntimeQueryResult,\n} from '@acorex-platform/framework-shared/core';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\n\nimport { Injectable, inject } 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';\n\n//#region ---- Types ----\n\nexport interface AXMReportHoursByWorkItemQueryInput {\n employeeId?: string;\n startDate: string;\n endDate: string;\n}\n\nexport interface AXMReportHoursByWorkItemRow {\n workItemId: string;\n workItemCode?: string;\n workItemTitle?: string;\n totalSeconds: number;\n}\n\nexport interface AXMReportHoursByWorkItemQueryResult {\n rows: AXMReportHoursByWorkItemRow[];\n totalSeconds: number;\n}\n\n//#endregion\n\n/**\n * Aggregates logged hours by work item for a date range.\n */\n@Injectable({ providedIn: 'root' })\nexport class AXMReportHoursByWorkItemQuery\n implements AXPQuery<AXMReportHoursByWorkItemQueryInput, AXMReportHoursByWorkItemQueryResult>\n{\n //#region ---- Services & Dependencies ----\n\n private readonly entityService = inject(AXPEntityService);\n\n //#endregion\n\n //#region ---- Query Execution ----\n\n async fetch(\n input: AXMReportHoursByWorkItemQueryInput,\n ): AXPQueryFetchResultPromise<AXMReportHoursByWorkItemQueryResult> {\n try {\n const entries = await this.loadEntries(input);\n const grouped = groupBy(entries, (row) => row.workItemId);\n\n const rows = Object.entries(grouped).map(([workItemId, items]) => {\n const first = items[0];\n return {\n workItemId,\n workItemCode: first?.workItem?.code ?? first?.workItemSnapshot?.title,\n workItemTitle: first?.workItemSnapshot?.title ?? first?.workItem?.title,\n totalSeconds: sumBy(items, (row) => row.durationSeconds ?? 0),\n };\n });\n\n return runtimeQuerySuccessObject({\n rows,\n totalSeconds: sumBy(entries, (row) => row.durationSeconds ?? 0),\n });\n } catch (error) {\n return runtimeQueryFailure(\n error instanceof Error ? error.message : 'Failed to load hours by work item report.',\n );\n }\n }\n\n //#endregion\n\n //#region ---- Private helpers ----\n\n private async loadEntries(input: AXMReportHoursByWorkItemQueryInput): Promise<AXMTimesheetManagementTimeEntryEntityModel[]> {\n const entryAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.timeEntry.name)\n .data<string, AXMTimesheetManagementTimeEntryEntityModel>();\n\n const filters: AXDataSourceFilterOption[] = [\n { field: 'entryDate', operator: { type: 'gte' }, value: input.startDate },\n { field: 'entryDate', operator: { type: 'lte' }, value: input.endDate },\n ];\n\n if (input.employeeId) {\n filters.unshift({ field: 'employeeId', operator: { type: 'equal' }, value: input.employeeId });\n }\n\n const result = await entryAccessor.query({\n skip: 0,\n take: 5000,\n filter: { logic: 'and', filters },\n });\n\n return result.items;\n }\n\n //#endregion\n}\n"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-timesheet-management-client-report-hours-by-work-item.query-C8RU9Uc0.mjs","sources":["../../../../libs/modules/timesheet-management/client/src/lib/features/reporting/queries/report-hours-by-work-item.query.ts"],"sourcesContent":["import { AXPQuery, type AXPQueryFetchResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport type { AXDataSourceFilterOption } from '@acorex/cdk/common';\nimport {\n runtimeQueryFailure,\n runtimeQuerySuccessObject,\n type AXPRuntimeQueryResult,\n} from '@acorex-platform/framework-shared/core';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\n\nimport { Injectable, inject } 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';\n\n//#region ---- Types ----\n\nexport interface AXMReportHoursByWorkItemQueryInput {\n employeeId?: string;\n startDate: string;\n endDate: string;\n}\n\nexport interface AXMReportHoursByWorkItemRow {\n workItemId: string;\n workItemCode?: string;\n workItemTitle?: string;\n totalSeconds: number;\n}\n\nexport interface AXMReportHoursByWorkItemQueryResult {\n rows: AXMReportHoursByWorkItemRow[];\n totalSeconds: number;\n}\n\n//#endregion\n\n/**\n * Aggregates logged hours by work item for a date range.\n */\n@Injectable({ providedIn: 'root' })\nexport class AXMReportHoursByWorkItemQuery\n implements AXPQuery<AXMReportHoursByWorkItemQueryInput, AXMReportHoursByWorkItemQueryResult>\n{\n //#region ---- Services & Dependencies ----\n\n private readonly entityService = inject(AXPEntityService);\n\n //#endregion\n\n //#region ---- Query Execution ----\n\n async fetch(\n input: AXMReportHoursByWorkItemQueryInput,\n ): AXPQueryFetchResultPromise<AXMReportHoursByWorkItemQueryResult> {\n try {\n const entries = await this.loadEntries(input);\n const grouped = groupBy(entries, (row) => row.workItemId);\n\n const rows = Object.entries(grouped).map(([workItemId, items]) => {\n const first = items[0];\n return {\n workItemId,\n workItemCode: first?.workItem?.code ?? first?.workItemSnapshot?.title,\n workItemTitle: first?.workItemSnapshot?.title ?? first?.workItem?.title,\n totalSeconds: sumBy(items, (row) => row.durationSeconds ?? 0),\n };\n });\n\n return runtimeQuerySuccessObject({\n rows,\n totalSeconds: sumBy(entries, (row) => row.durationSeconds ?? 0),\n });\n } catch (error) {\n return runtimeQueryFailure(\n error instanceof Error ? error.message : 'Failed to load hours by work item report.',\n );\n }\n }\n\n //#endregion\n\n //#region ---- Private helpers ----\n\n private async loadEntries(input: AXMReportHoursByWorkItemQueryInput): Promise<AXMTimesheetManagementTimeEntryEntityModel[]> {\n const entryAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.timeEntry.name)\n .data<string, AXMTimesheetManagementTimeEntryEntityModel>();\n\n const filters: AXDataSourceFilterOption[] = [\n { field: 'entryDate', operator: { type: 'gte' }, value: input.startDate },\n { field: 'entryDate', operator: { type: 'lte' }, value: input.endDate },\n ];\n\n if (input.employeeId) {\n filters.unshift({ field: 'employeeId', operator: { type: 'equal' }, value: input.employeeId });\n }\n\n const result = await entryAccessor.query({\n skip: 0,\n take: 5000,\n filter: { logic: 'and', filters },\n });\n\n return result.items;\n }\n\n //#endregion\n}\n"],"names":[],"mappings":"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"}
|