@acorex-platform/module-timesheet-management-client 0.0.30 → 0.0.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/fesm2022/acorex-platform-module-timesheet-management-client-contracts-entities-time-entry.mjs +369 -0
  2. package/fesm2022/acorex-platform-module-timesheet-management-client-contracts-entities-time-entry.mjs.map +1 -0
  3. package/fesm2022/acorex-platform-module-timesheet-management-client-contracts-entities-timesheet-correction.mjs +252 -0
  4. package/fesm2022/acorex-platform-module-timesheet-management-client-contracts-entities-timesheet-correction.mjs.map +1 -0
  5. package/fesm2022/acorex-platform-module-timesheet-management-client-contracts-entities-timesheet-period.mjs +347 -0
  6. package/fesm2022/acorex-platform-module-timesheet-management-client-contracts-entities-timesheet-period.mjs.map +1 -0
  7. package/fesm2022/acorex-platform-module-timesheet-management-client-contracts-entities-timesheet-policy.mjs +281 -0
  8. package/fesm2022/acorex-platform-module-timesheet-management-client-contracts-entities-timesheet-policy.mjs.map +1 -0
  9. package/fesm2022/acorex-platform-module-timesheet-management-client-contracts-entities-work-item.mjs +305 -0
  10. package/fesm2022/acorex-platform-module-timesheet-management-client-contracts-entities-work-item.mjs.map +1 -0
  11. package/fesm2022/acorex-platform-module-timesheet-management-client-contracts-entity-catalog-acorex-platform-module-timesheet-management-client-contracts-entity-catalog-BbB3MCCl.mjs +97 -0
  12. package/fesm2022/acorex-platform-module-timesheet-management-client-contracts-entity-catalog-acorex-platform-module-timesheet-management-client-contracts-entity-catalog-BbB3MCCl.mjs.map +1 -0
  13. package/fesm2022/acorex-platform-module-timesheet-management-client-contracts-entity-catalog-time-entry.entity-CAs7zUnV.mjs +295 -0
  14. package/fesm2022/acorex-platform-module-timesheet-management-client-contracts-entity-catalog-time-entry.entity-CAs7zUnV.mjs.map +1 -0
  15. package/fesm2022/acorex-platform-module-timesheet-management-client-contracts-entity-catalog-timesheet-correction.entity--wZeCM5Q.mjs +178 -0
  16. package/fesm2022/acorex-platform-module-timesheet-management-client-contracts-entity-catalog-timesheet-correction.entity--wZeCM5Q.mjs.map +1 -0
  17. package/fesm2022/acorex-platform-module-timesheet-management-client-contracts-entity-catalog-timesheet-period.entity-BOyfB4YA.mjs +273 -0
  18. package/fesm2022/acorex-platform-module-timesheet-management-client-contracts-entity-catalog-timesheet-period.entity-BOyfB4YA.mjs.map +1 -0
  19. package/fesm2022/acorex-platform-module-timesheet-management-client-contracts-entity-catalog-timesheet-policy.entity-CqqN7Xty.mjs +207 -0
  20. package/fesm2022/acorex-platform-module-timesheet-management-client-contracts-entity-catalog-timesheet-policy.entity-CqqN7Xty.mjs.map +1 -0
  21. package/fesm2022/acorex-platform-module-timesheet-management-client-contracts-entity-catalog-work-item.entity-DilF7u50.mjs +231 -0
  22. package/fesm2022/acorex-platform-module-timesheet-management-client-contracts-entity-catalog-work-item.entity-DilF7u50.mjs.map +1 -0
  23. package/fesm2022/acorex-platform-module-timesheet-management-client-contracts-entity-catalog.mjs +2 -0
  24. package/fesm2022/acorex-platform-module-timesheet-management-client-contracts-entity-catalog.mjs.map +1 -0
  25. package/fesm2022/acorex-platform-module-timesheet-management-client-local-entities.mjs +33 -0
  26. package/fesm2022/acorex-platform-module-timesheet-management-client-local-entities.mjs.map +1 -0
  27. package/package.json +29 -1
  28. package/types/acorex-platform-module-timesheet-management-client-contracts-entities-time-entry.d.ts +8 -0
  29. package/types/acorex-platform-module-timesheet-management-client-contracts-entities-timesheet-correction.d.ts +8 -0
  30. package/types/acorex-platform-module-timesheet-management-client-contracts-entities-timesheet-period.d.ts +8 -0
  31. package/types/acorex-platform-module-timesheet-management-client-contracts-entities-timesheet-policy.d.ts +8 -0
  32. package/types/acorex-platform-module-timesheet-management-client-contracts-entities-work-item.d.ts +8 -0
  33. package/types/acorex-platform-module-timesheet-management-client-contracts-entity-catalog.d.ts +10 -0
  34. package/types/acorex-platform-module-timesheet-management-client-local-entities.d.ts +12 -0
@@ -0,0 +1,273 @@
1
+ import { AXPWidgetsCatalog, AXPRegionalSetting } from '@acorex-platform/framework-shared/core';
2
+ import { createAllQueryView, entityMasterCrudActions, entityMasterRecordActions, entityDetailsCrudActions, entityDetailsSimpleCondition } from '@acorex-platform/framework-shared/entity';
3
+ import { R as RootConfig } from './acorex-platform-module-timesheet-management-client-contracts-entity-catalog-acorex-platform-module-timesheet-management-client-contracts-entity-catalog-BbB3MCCl.mjs';
4
+
5
+ //#region ---- Constants ----
6
+ const i18n = RootConfig.config.i18n;
7
+ const entityI18n = `${i18n}:timesheet-periods.entities.timesheet-period`;
8
+ const listSortAndFilterOptions = {
9
+ sort: { enabled: true },
10
+ filter: { advance: { enabled: true }, inline: { enabled: true } },
11
+ };
12
+ const PERIOD_TYPE_OPTIONS = [
13
+ { id: 'Weekly', title: `@${entityI18n}.fields.period-type.options.weekly` },
14
+ { id: 'Biweekly', title: `@${entityI18n}.fields.period-type.options.biweekly` },
15
+ { id: 'Monthly', title: `@${entityI18n}.fields.period-type.options.monthly` },
16
+ ];
17
+ //#endregion
18
+ //#region ---- Entity Factory ----
19
+ /**
20
+ * Timesheet period entity factory grouping time entries for approval workflows.
21
+ */
22
+ async function factoryTimesheetPeriod() {
23
+ const entityDef = {
24
+ module: RootConfig.module.name,
25
+ name: RootConfig.entities.timesheetPeriod.name,
26
+ title: RootConfig.entities.timesheetPeriod.title,
27
+ icon: RootConfig.entities.timesheetPeriod.icon,
28
+ formats: {
29
+ individual: RootConfig.entities.timesheetPeriod.title,
30
+ plural: RootConfig.entities.timesheetPeriod.titlePlural,
31
+ searchResult: {
32
+ title: '{{ employee.person.fullName }}',
33
+ description: '{{ startDate | date:"mediumDate" }} — {{ endDate | date:"mediumDate" }}',
34
+ },
35
+ },
36
+ plugins: [
37
+ { name: 'history' },
38
+ {
39
+ name: 'status',
40
+ options: {
41
+ field: 'statusId',
42
+ definition: 'timesheet-management.status.timesheet-period',
43
+ },
44
+ },
45
+ { name: 'lock' },
46
+ ],
47
+ relatedEntities: [
48
+ {
49
+ entity: `${RootConfig.module.name}.${RootConfig.entities.timeEntry.name}`,
50
+ title: RootConfig.entities.timeEntry.titlePlural,
51
+ columns: ['workItemId', 'entryDate', 'durationSeconds', 'isBillable', 'description'],
52
+ conditions: [entityDetailsSimpleCondition('periodId')],
53
+ actions: [...entityDetailsCrudActions('periodId')],
54
+ layout: { type: 'page-list' },
55
+ excludeProperties: ['periodId', 'employeeId'],
56
+ },
57
+ ],
58
+ groups: [
59
+ { id: 'basic-info', title: '@general:terms.interface.basic-info' },
60
+ { id: 'period', title: `@${entityI18n}.groups.period` },
61
+ { id: 'totals', title: `@${entityI18n}.groups.totals` },
62
+ { id: 'approval', title: `@${entityI18n}.groups.approval` },
63
+ ],
64
+ properties: [
65
+ {
66
+ name: 'id',
67
+ title: '@general:terms.common.id',
68
+ groupId: 'basic-info',
69
+ schema: { dataType: 'uuid', visible: false, nullable: false, readonly: true, unique: { enabled: true } },
70
+ },
71
+ {
72
+ name: 'employeeId',
73
+ title: `@${entityI18n}.fields.employee-id.title`,
74
+ groupId: 'basic-info',
75
+ options: listSortAndFilterOptions,
76
+ schema: {
77
+ dataType: 'string',
78
+ interface: {
79
+ type: AXPWidgetsCatalog.lookup,
80
+ options: {
81
+ look: 'select',
82
+ entity: 'HumanCapitalManagement.Employee',
83
+ textField: 'person.fullName',
84
+ valueField: 'id',
85
+ expose: [
86
+ { source: 'id', target: 'employee.id' },
87
+ { source: 'employeeCode', target: 'employee.employeeCode' },
88
+ { source: 'person.fullName', target: 'employee.person.fullName' },
89
+ ],
90
+ },
91
+ },
92
+ },
93
+ validations: [{ rule: 'required' }],
94
+ },
95
+ {
96
+ name: 'periodType',
97
+ title: `@${entityI18n}.fields.period-type.title`,
98
+ groupId: 'period',
99
+ options: listSortAndFilterOptions,
100
+ schema: {
101
+ dataType: 'string',
102
+ defaultValue: 'Weekly',
103
+ interface: {
104
+ type: AXPWidgetsCatalog.select,
105
+ options: { items: PERIOD_TYPE_OPTIONS },
106
+ },
107
+ },
108
+ validations: [{ rule: 'required' }],
109
+ },
110
+ {
111
+ name: 'startDate',
112
+ title: `@${entityI18n}.fields.start-date.title`,
113
+ groupId: 'period',
114
+ options: listSortAndFilterOptions,
115
+ schema: {
116
+ dataType: 'date',
117
+ interface: { type: AXPWidgetsCatalog.dateTime, options: { format: 'date' } },
118
+ },
119
+ validations: [{ rule: 'required' }],
120
+ },
121
+ {
122
+ name: 'endDate',
123
+ title: `@${entityI18n}.fields.end-date.title`,
124
+ groupId: 'period',
125
+ options: listSortAndFilterOptions,
126
+ schema: {
127
+ dataType: 'date',
128
+ interface: { type: AXPWidgetsCatalog.dateTime, options: { format: 'date' } },
129
+ },
130
+ validations: [{ rule: 'required' }],
131
+ },
132
+ {
133
+ name: 'statusId',
134
+ title: `@${entityI18n}.fields.status-id.title`,
135
+ groupId: 'approval',
136
+ options: listSortAndFilterOptions,
137
+ schema: {
138
+ dataType: 'string',
139
+ readonly: true,
140
+ visible: false,
141
+ interface: { type: AXPWidgetsCatalog.text },
142
+ },
143
+ },
144
+ {
145
+ name: 'totalSeconds',
146
+ title: `@${entityI18n}.fields.total-seconds.title`,
147
+ groupId: 'totals',
148
+ options: listSortAndFilterOptions,
149
+ schema: {
150
+ dataType: 'number',
151
+ readonly: true,
152
+ interface: { type: AXPWidgetsCatalog.number, options: { minValue: 0 } },
153
+ },
154
+ },
155
+ {
156
+ name: 'timezone',
157
+ title: `@${entityI18n}.fields.timezone.title`,
158
+ groupId: 'period',
159
+ schema: {
160
+ dataType: 'string',
161
+ defaultValue: `{{ settings.get('${AXPRegionalSetting.TimeZone}') }}`,
162
+ interface: {
163
+ type: AXPWidgetsCatalog.lookup,
164
+ options: {
165
+ entity: 'LocaleManagement.Timezones',
166
+ look: 'select',
167
+ allowSearch: true,
168
+ valueField: 'code',
169
+ textField: 'title',
170
+ filter: {
171
+ logic: 'and',
172
+ filters: [{ field: 'isActive', operator: { type: 'equal' }, value: true }],
173
+ },
174
+ },
175
+ },
176
+ },
177
+ validations: [{ rule: 'required' }],
178
+ },
179
+ {
180
+ name: 'submittedAt',
181
+ title: `@${entityI18n}.fields.submitted-at.title`,
182
+ groupId: 'approval',
183
+ schema: {
184
+ dataType: 'date',
185
+ readonly: true,
186
+ interface: { type: AXPWidgetsCatalog.dateTime },
187
+ },
188
+ },
189
+ {
190
+ name: 'approvedAt',
191
+ title: `@${entityI18n}.fields.approved-at.title`,
192
+ groupId: 'approval',
193
+ schema: {
194
+ dataType: 'date',
195
+ readonly: true,
196
+ interface: { type: AXPWidgetsCatalog.dateTime },
197
+ },
198
+ },
199
+ {
200
+ name: 'rejectionReason',
201
+ title: `@${entityI18n}.fields.rejection-reason.title`,
202
+ groupId: 'approval',
203
+ schema: {
204
+ dataType: 'string',
205
+ readonly: true,
206
+ interface: { type: AXPWidgetsCatalog.largeText, options: { rows: 3 } },
207
+ },
208
+ },
209
+ ],
210
+ columns: [
211
+ { name: 'employeeId', options: { dataPath: 'employee.person.fullName' } },
212
+ { name: 'periodType' },
213
+ { name: 'startDate' },
214
+ { name: 'endDate' },
215
+ { name: 'statusId' },
216
+ { name: 'totalSeconds' },
217
+ { name: 'submittedAt' },
218
+ ],
219
+ interfaces: {
220
+ master: {
221
+ create: {
222
+ sections: [{ id: 'basic-info' }, { id: 'period' }],
223
+ properties: [
224
+ { name: 'employeeId', layout: { positions: { lg: { colSpan: 6 } } } },
225
+ { name: 'periodType', layout: { positions: { lg: { colSpan: 6 } } } },
226
+ { name: 'startDate', layout: { positions: { lg: { colSpan: 6 } } } },
227
+ { name: 'endDate', layout: { positions: { lg: { colSpan: 6 } } } },
228
+ { name: 'timezone', layout: { positions: { lg: { colSpan: 6 } } } },
229
+ ],
230
+ },
231
+ update: {
232
+ sections: [{ id: 'basic-info' }, { id: 'period' }, { id: 'totals' }, { id: 'approval' }],
233
+ properties: [
234
+ { name: 'employeeId', layout: { positions: { lg: { colSpan: 6 } } } },
235
+ { name: 'periodType', layout: { positions: { lg: { colSpan: 6 } } } },
236
+ { name: 'startDate', layout: { positions: { lg: { colSpan: 6 } } } },
237
+ { name: 'endDate', layout: { positions: { lg: { colSpan: 6 } } } },
238
+ { name: 'timezone', layout: { positions: { lg: { colSpan: 6 } } } },
239
+ { name: 'totalSeconds', layout: { positions: { lg: { colSpan: 6 } } } },
240
+ { name: 'submittedAt', layout: { positions: { lg: { colSpan: 6 } } } },
241
+ { name: 'approvedAt', layout: { positions: { lg: { colSpan: 6 } } } },
242
+ { name: 'rejectionReason', layout: { positions: { lg: { colSpan: 12 } } } },
243
+ ],
244
+ },
245
+ single: {
246
+ title: '{{ employee.person.fullName }}',
247
+ sections: [{ id: 'basic-info' }, { id: 'period' }, { id: 'totals' }, { id: 'approval' }],
248
+ properties: [
249
+ { name: 'employeeId', layout: { positions: { lg: { colSpan: 6 } } } },
250
+ { name: 'periodType', layout: { positions: { lg: { colSpan: 6 } } } },
251
+ { name: 'startDate', layout: { positions: { lg: { colSpan: 6 } } } },
252
+ { name: 'endDate', layout: { positions: { lg: { colSpan: 6 } } } },
253
+ { name: 'totalSeconds', layout: { positions: { lg: { colSpan: 6 } } } },
254
+ { name: 'timezone', layout: { positions: { lg: { colSpan: 6 } } } },
255
+ { name: 'submittedAt', layout: { positions: { lg: { colSpan: 6 } } } },
256
+ { name: 'approvedAt', layout: { positions: { lg: { colSpan: 6 } } } },
257
+ { name: 'rejectionReason', layout: { positions: { lg: { colSpan: 12 } } } },
258
+ ],
259
+ actions: [...entityMasterRecordActions()],
260
+ },
261
+ list: {
262
+ actions: [...entityMasterCrudActions()],
263
+ views: [createAllQueryView({ sorts: [{ name: 'startDate', dir: 'desc' }] })],
264
+ },
265
+ },
266
+ },
267
+ };
268
+ return entityDef;
269
+ }
270
+ //#endregion
271
+
272
+ export { factoryTimesheetPeriod };
273
+ //# sourceMappingURL=acorex-platform-module-timesheet-management-client-contracts-entity-catalog-timesheet-period.entity-BOyfB4YA.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-platform-module-timesheet-management-client-contracts-entity-catalog-timesheet-period.entity-BOyfB4YA.mjs","sources":["../../../../libs/modules/timesheet-management/contracts/src/entities/timesheet-period/timesheet-period.entity.ts"],"sourcesContent":["import { AXPRegionalSetting, AXPWidgetsCatalog } from '@acorex-platform/framework-shared/core';\nimport { AXPEntity, createAllQueryView, entityDetailsCrudActions, entityDetailsSimpleCondition, 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-periods.entities.timesheet-period`;\n\nconst listSortAndFilterOptions = {\n sort: { enabled: true },\n filter: { advance: { enabled: true }, inline: { enabled: true } },\n};\n\nconst PERIOD_TYPE_OPTIONS = [\n { id: 'Weekly', title: `@${entityI18n}.fields.period-type.options.weekly` },\n { id: 'Biweekly', title: `@${entityI18n}.fields.period-type.options.biweekly` },\n { id: 'Monthly', title: `@${entityI18n}.fields.period-type.options.monthly` },\n];\n\n//#endregion\n\n//#region ---- Entity Factory ----\n\n/**\n * Timesheet period entity factory grouping time entries for approval workflows.\n */\nexport async function factoryTimesheetPeriod(): Promise<AXPEntity | null> {\n const entityDef: AXPEntity = {\n module: RootConfig.module.name,\n name: RootConfig.entities.timesheetPeriod.name,\n title: RootConfig.entities.timesheetPeriod.title,\n icon: RootConfig.entities.timesheetPeriod.icon,\n formats: {\n individual: RootConfig.entities.timesheetPeriod.title,\n plural: RootConfig.entities.timesheetPeriod.titlePlural,\n searchResult: {\n title: '{{ employee.person.fullName }}',\n description: '{{ startDate | date:\"mediumDate\" }} — {{ endDate | date:\"mediumDate\" }}',\n },\n },\n plugins: [\n { name: 'history' },\n {\n name: 'status',\n options: {\n field: 'statusId',\n definition: 'timesheet-management.status.timesheet-period',\n },\n },\n { name: 'lock' },\n ],\n relatedEntities: [\n {\n entity: `${RootConfig.module.name}.${RootConfig.entities.timeEntry.name}`,\n title: RootConfig.entities.timeEntry.titlePlural,\n columns: ['workItemId', 'entryDate', 'durationSeconds', 'isBillable', 'description'],\n conditions: [entityDetailsSimpleCondition('periodId')],\n actions: [...entityDetailsCrudActions('periodId')],\n layout: { type: 'page-list' },\n excludeProperties: ['periodId', 'employeeId'],\n },\n ],\n groups: [\n { id: 'basic-info', title: '@general:terms.interface.basic-info' },\n { id: 'period', title: `@${entityI18n}.groups.period` },\n { id: 'totals', title: `@${entityI18n}.groups.totals` },\n { id: 'approval', title: `@${entityI18n}.groups.approval` },\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: 'employeeId',\n title: `@${entityI18n}.fields.employee-id.title`,\n groupId: 'basic-info',\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 validations: [{ rule: 'required' }],\n },\n {\n name: 'periodType',\n title: `@${entityI18n}.fields.period-type.title`,\n groupId: 'period',\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: 'startDate',\n title: `@${entityI18n}.fields.start-date.title`,\n groupId: 'period',\n options: listSortAndFilterOptions,\n schema: {\n dataType: 'date',\n interface: { type: AXPWidgetsCatalog.dateTime, options: { format: 'date' } },\n },\n validations: [{ rule: 'required' }],\n },\n {\n name: 'endDate',\n title: `@${entityI18n}.fields.end-date.title`,\n groupId: 'period',\n options: listSortAndFilterOptions,\n schema: {\n dataType: 'date',\n interface: { type: AXPWidgetsCatalog.dateTime, options: { format: 'date' } },\n },\n validations: [{ rule: 'required' }],\n },\n {\n name: 'statusId',\n title: `@${entityI18n}.fields.status-id.title`,\n groupId: 'approval',\n options: listSortAndFilterOptions,\n schema: {\n dataType: 'string',\n readonly: true,\n visible: false,\n interface: { type: AXPWidgetsCatalog.text },\n },\n },\n {\n name: 'totalSeconds',\n title: `@${entityI18n}.fields.total-seconds.title`,\n groupId: 'totals',\n options: listSortAndFilterOptions,\n schema: {\n dataType: 'number',\n readonly: true,\n interface: { type: AXPWidgetsCatalog.number, options: { minValue: 0 } },\n },\n },\n {\n name: 'timezone',\n title: `@${entityI18n}.fields.timezone.title`,\n groupId: 'period',\n schema: {\n dataType: 'string',\n defaultValue: `{{ settings.get('${AXPRegionalSetting.TimeZone}') }}`,\n interface: {\n type: AXPWidgetsCatalog.lookup,\n options: {\n entity: 'LocaleManagement.Timezones',\n look: 'select',\n allowSearch: true,\n valueField: 'code',\n textField: 'title',\n filter: {\n logic: 'and',\n filters: [{ field: 'isActive', operator: { type: 'equal' }, value: true }],\n },\n },\n },\n },\n validations: [{ rule: 'required' }],\n },\n {\n name: 'submittedAt',\n title: `@${entityI18n}.fields.submitted-at.title`,\n groupId: 'approval',\n schema: {\n dataType: 'date',\n readonly: true,\n interface: { type: AXPWidgetsCatalog.dateTime },\n },\n },\n {\n name: 'approvedAt',\n title: `@${entityI18n}.fields.approved-at.title`,\n groupId: 'approval',\n schema: {\n dataType: 'date',\n readonly: true,\n interface: { type: AXPWidgetsCatalog.dateTime },\n },\n },\n {\n name: 'rejectionReason',\n title: `@${entityI18n}.fields.rejection-reason.title`,\n groupId: 'approval',\n schema: {\n dataType: 'string',\n readonly: true,\n interface: { type: AXPWidgetsCatalog.largeText, options: { rows: 3 } },\n },\n },\n ],\n columns: [\n { name: 'employeeId', options: { dataPath: 'employee.person.fullName' } },\n { name: 'periodType' },\n { name: 'startDate' },\n { name: 'endDate' },\n { name: 'statusId' },\n { name: 'totalSeconds' },\n { name: 'submittedAt' },\n ],\n interfaces: {\n master: {\n create: {\n sections: [{ id: 'basic-info' }, { id: 'period' }],\n properties: [\n { name: 'employeeId', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'periodType', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'startDate', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'endDate', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'timezone', layout: { positions: { lg: { colSpan: 6 } } } },\n ],\n },\n update: {\n sections: [{ id: 'basic-info' }, { id: 'period' }, { id: 'totals' }, { id: 'approval' }],\n properties: [\n { name: 'employeeId', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'periodType', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'startDate', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'endDate', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'timezone', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'totalSeconds', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'submittedAt', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'approvedAt', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'rejectionReason', layout: { positions: { lg: { colSpan: 12 } } } },\n ],\n },\n single: {\n title: '{{ employee.person.fullName }}',\n sections: [{ id: 'basic-info' }, { id: 'period' }, { id: 'totals' }, { id: 'approval' }],\n properties: [\n { name: 'employeeId', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'periodType', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'startDate', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'endDate', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'totalSeconds', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'timezone', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'submittedAt', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'approvedAt', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'rejectionReason', layout: { positions: { lg: { colSpan: 12 } } } },\n ],\n actions: [...entityMasterRecordActions()],\n },\n list: {\n actions: [...entityMasterCrudActions()],\n views: [createAllQueryView({ sorts: [{ name: 'startDate', dir: 'desc' }] })],\n },\n },\n },\n };\n\n return entityDef;\n}\n\n//#endregion\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,207 @@
1
+ import { AXPWidgetsCatalog } from '@acorex-platform/framework-shared/core';
2
+ import { createAllQueryView, entityMasterCrudActions, entityMasterRecordActions } from '@acorex-platform/framework-shared/entity';
3
+ import { R as RootConfig } from './acorex-platform-module-timesheet-management-client-contracts-entity-catalog-acorex-platform-module-timesheet-management-client-contracts-entity-catalog-BbB3MCCl.mjs';
4
+
5
+ //#region ---- Constants ----
6
+ const i18n = RootConfig.config.i18n;
7
+ const entityI18n = `${i18n}:timesheet-policies.entities.timesheet-policy`;
8
+ const listSortAndFilterOptions = {
9
+ sort: { enabled: true },
10
+ filter: { advance: { enabled: true }, inline: { enabled: true } },
11
+ };
12
+ const OVERLAP_POLICY_OPTIONS = [
13
+ { id: 'reject', title: `@${entityI18n}.fields.overlap-policy.options.reject` },
14
+ { id: 'warn', title: `@${entityI18n}.fields.overlap-policy.options.warn` },
15
+ ];
16
+ const PERIOD_TYPE_OPTIONS = [
17
+ { id: 'Weekly', title: `@${entityI18n}.fields.period-type-default.options.weekly` },
18
+ { id: 'Biweekly', title: `@${entityI18n}.fields.period-type-default.options.biweekly` },
19
+ { id: 'Monthly', title: `@${entityI18n}.fields.period-type-default.options.monthly` },
20
+ ];
21
+ //#endregion
22
+ //#region ---- Entity Factory ----
23
+ /**
24
+ * Timesheet policy entity factory defining validation rules for time entry capture.
25
+ */
26
+ async function factoryTimesheetPolicy() {
27
+ const entityDef = {
28
+ module: RootConfig.module.name,
29
+ name: RootConfig.entities.timesheetPolicy.name,
30
+ title: RootConfig.entities.timesheetPolicy.title,
31
+ icon: RootConfig.entities.timesheetPolicy.icon,
32
+ formats: {
33
+ individual: RootConfig.entities.timesheetPolicy.title,
34
+ plural: RootConfig.entities.timesheetPolicy.titlePlural,
35
+ searchResult: {
36
+ title: '{{ name }}',
37
+ description: '{{ periodTypeDefault }}',
38
+ },
39
+ },
40
+ plugins: [{ name: 'history' }],
41
+ groups: [
42
+ { id: 'basic-info', title: '@general:terms.interface.basic-info' },
43
+ { id: 'limits', title: `@${entityI18n}.groups.limits` },
44
+ { id: 'rules', title: `@${entityI18n}.groups.rules` },
45
+ ],
46
+ properties: [
47
+ {
48
+ name: 'id',
49
+ title: '@general:terms.common.id',
50
+ groupId: 'basic-info',
51
+ schema: { dataType: 'uuid', visible: false, nullable: false, readonly: true, unique: { enabled: true } },
52
+ },
53
+ {
54
+ name: 'name',
55
+ title: '@general:terms.common.name',
56
+ groupId: 'basic-info',
57
+ options: listSortAndFilterOptions,
58
+ schema: {
59
+ dataType: 'string',
60
+ interface: { type: AXPWidgetsCatalog.text },
61
+ },
62
+ validations: [{ rule: 'required' }, { rule: 'unique' }],
63
+ },
64
+ {
65
+ name: 'maxDailyHours',
66
+ title: `@${entityI18n}.fields.max-daily-hours.title`,
67
+ groupId: 'limits',
68
+ options: listSortAndFilterOptions,
69
+ schema: {
70
+ dataType: 'number',
71
+ interface: { type: AXPWidgetsCatalog.number, options: { minValue: 0 } },
72
+ },
73
+ },
74
+ {
75
+ name: 'maxWeeklyHours',
76
+ title: `@${entityI18n}.fields.max-weekly-hours.title`,
77
+ groupId: 'limits',
78
+ options: listSortAndFilterOptions,
79
+ schema: {
80
+ dataType: 'number',
81
+ interface: { type: AXPWidgetsCatalog.number, options: { minValue: 0 } },
82
+ },
83
+ },
84
+ {
85
+ name: 'requireDescription',
86
+ title: `@${entityI18n}.fields.require-description.title`,
87
+ groupId: 'rules',
88
+ schema: {
89
+ dataType: 'boolean',
90
+ defaultValue: false,
91
+ interface: { type: AXPWidgetsCatalog.toggle },
92
+ },
93
+ },
94
+ {
95
+ name: 'allowFutureDates',
96
+ title: `@${entityI18n}.fields.allow-future-dates.title`,
97
+ groupId: 'rules',
98
+ schema: {
99
+ dataType: 'boolean',
100
+ defaultValue: false,
101
+ interface: { type: AXPWidgetsCatalog.toggle },
102
+ },
103
+ },
104
+ {
105
+ name: 'overlapPolicy',
106
+ title: `@${entityI18n}.fields.overlap-policy.title`,
107
+ groupId: 'rules',
108
+ options: listSortAndFilterOptions,
109
+ schema: {
110
+ dataType: 'string',
111
+ defaultValue: 'reject',
112
+ interface: {
113
+ type: AXPWidgetsCatalog.select,
114
+ options: { items: OVERLAP_POLICY_OPTIONS },
115
+ },
116
+ },
117
+ validations: [{ rule: 'required' }],
118
+ },
119
+ {
120
+ name: 'periodTypeDefault',
121
+ title: `@${entityI18n}.fields.period-type-default.title`,
122
+ groupId: 'rules',
123
+ options: listSortAndFilterOptions,
124
+ schema: {
125
+ dataType: 'string',
126
+ defaultValue: 'Weekly',
127
+ interface: {
128
+ type: AXPWidgetsCatalog.select,
129
+ options: { items: PERIOD_TYPE_OPTIONS },
130
+ },
131
+ },
132
+ validations: [{ rule: 'required' }],
133
+ },
134
+ {
135
+ name: 'isDefault',
136
+ title: `@${entityI18n}.fields.is-default.title`,
137
+ groupId: 'basic-info',
138
+ options: listSortAndFilterOptions,
139
+ schema: {
140
+ dataType: 'boolean',
141
+ defaultValue: false,
142
+ interface: { type: AXPWidgetsCatalog.toggle },
143
+ },
144
+ },
145
+ ],
146
+ columns: [
147
+ { name: 'name' },
148
+ { name: 'maxDailyHours' },
149
+ { name: 'maxWeeklyHours' },
150
+ { name: 'overlapPolicy' },
151
+ { name: 'periodTypeDefault' },
152
+ { name: 'isDefault' },
153
+ ],
154
+ interfaces: {
155
+ master: {
156
+ create: {
157
+ sections: [{ id: 'basic-info' }, { id: 'limits' }, { id: 'rules' }],
158
+ properties: [
159
+ { name: 'name', layout: { positions: { lg: { colSpan: 6 } } } },
160
+ { name: 'isDefault', layout: { positions: { lg: { colSpan: 6 } } } },
161
+ { name: 'maxDailyHours', layout: { positions: { lg: { colSpan: 6 } } } },
162
+ { name: 'maxWeeklyHours', layout: { positions: { lg: { colSpan: 6 } } } },
163
+ { name: 'requireDescription', layout: { positions: { lg: { colSpan: 6 } } } },
164
+ { name: 'allowFutureDates', layout: { positions: { lg: { colSpan: 6 } } } },
165
+ { name: 'overlapPolicy', layout: { positions: { lg: { colSpan: 6 } } } },
166
+ { name: 'periodTypeDefault', layout: { positions: { lg: { colSpan: 6 } } } },
167
+ ],
168
+ },
169
+ update: {
170
+ sections: [{ id: 'basic-info' }, { id: 'limits' }, { id: 'rules' }],
171
+ properties: [
172
+ { name: 'name', layout: { positions: { lg: { colSpan: 6 } } } },
173
+ { name: 'isDefault', layout: { positions: { lg: { colSpan: 6 } } } },
174
+ { name: 'maxDailyHours', layout: { positions: { lg: { colSpan: 6 } } } },
175
+ { name: 'maxWeeklyHours', layout: { positions: { lg: { colSpan: 6 } } } },
176
+ { name: 'requireDescription', layout: { positions: { lg: { colSpan: 6 } } } },
177
+ { name: 'allowFutureDates', layout: { positions: { lg: { colSpan: 6 } } } },
178
+ { name: 'overlapPolicy', layout: { positions: { lg: { colSpan: 6 } } } },
179
+ { name: 'periodTypeDefault', layout: { positions: { lg: { colSpan: 6 } } } },
180
+ ],
181
+ },
182
+ single: {
183
+ title: '{{ name }}',
184
+ sections: [{ id: 'basic-info' }, { id: 'limits' }, { id: 'rules' }],
185
+ properties: [
186
+ { name: 'name', layout: { positions: { lg: { colSpan: 6 } } } },
187
+ { name: 'isDefault', layout: { positions: { lg: { colSpan: 6 } } } },
188
+ { name: 'maxDailyHours', layout: { positions: { lg: { colSpan: 6 } } } },
189
+ { name: 'maxWeeklyHours', layout: { positions: { lg: { colSpan: 6 } } } },
190
+ { name: 'overlapPolicy', layout: { positions: { lg: { colSpan: 6 } } } },
191
+ { name: 'periodTypeDefault', layout: { positions: { lg: { colSpan: 6 } } } },
192
+ ],
193
+ actions: [...entityMasterRecordActions()],
194
+ },
195
+ list: {
196
+ actions: [...entityMasterCrudActions()],
197
+ views: [createAllQueryView({ sorts: [{ name: 'name', dir: 'asc' }] })],
198
+ },
199
+ },
200
+ },
201
+ };
202
+ return entityDef;
203
+ }
204
+ //#endregion
205
+
206
+ export { factoryTimesheetPolicy };
207
+ //# sourceMappingURL=acorex-platform-module-timesheet-management-client-contracts-entity-catalog-timesheet-policy.entity-CqqN7Xty.mjs.map
@@ -0,0 +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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"}