@acorex-platform/module-project-management-client 0.0.32 → 0.0.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/fesm2022/acorex-platform-module-project-management-client-contracts-entities-project-member.mjs +234 -0
  2. package/fesm2022/acorex-platform-module-project-management-client-contracts-entities-project-member.mjs.map +1 -0
  3. package/fesm2022/acorex-platform-module-project-management-client-contracts-entities-project-type-role-type.mjs +329 -0
  4. package/fesm2022/acorex-platform-module-project-management-client-contracts-entities-project-type-role-type.mjs.map +1 -0
  5. package/fesm2022/acorex-platform-module-project-management-client-contracts-entities-project-type.mjs +359 -0
  6. package/fesm2022/acorex-platform-module-project-management-client-contracts-entities-project-type.mjs.map +1 -0
  7. package/fesm2022/acorex-platform-module-project-management-client-contracts-entities-project.mjs +777 -0
  8. package/fesm2022/acorex-platform-module-project-management-client-contracts-entities-project.mjs.map +1 -0
  9. package/fesm2022/acorex-platform-module-project-management-client-contracts-entity-catalog-acorex-platform-module-project-management-client-contracts-entity-catalog-BGnWVgGc.mjs +84 -0
  10. package/fesm2022/acorex-platform-module-project-management-client-contracts-entity-catalog-acorex-platform-module-project-management-client-contracts-entity-catalog-BGnWVgGc.mjs.map +1 -0
  11. package/fesm2022/acorex-platform-module-project-management-client-contracts-entity-catalog-project-member.entity-7eUAuCCT.mjs +172 -0
  12. package/fesm2022/acorex-platform-module-project-management-client-contracts-entity-catalog-project-member.entity-7eUAuCCT.mjs.map +1 -0
  13. package/fesm2022/acorex-platform-module-project-management-client-contracts-entity-catalog-project-type-role-type.entity-CA2Eu6uU.mjs +267 -0
  14. package/fesm2022/acorex-platform-module-project-management-client-contracts-entity-catalog-project-type-role-type.entity-CA2Eu6uU.mjs.map +1 -0
  15. package/fesm2022/acorex-platform-module-project-management-client-contracts-entity-catalog-project-type.entity-CAlaA4AY.mjs +297 -0
  16. package/fesm2022/acorex-platform-module-project-management-client-contracts-entity-catalog-project-type.entity-CAlaA4AY.mjs.map +1 -0
  17. package/fesm2022/acorex-platform-module-project-management-client-contracts-entity-catalog-project.entity-CNvGTlk_.mjs +715 -0
  18. package/fesm2022/acorex-platform-module-project-management-client-contracts-entity-catalog-project.entity-CNvGTlk_.mjs.map +1 -0
  19. package/fesm2022/acorex-platform-module-project-management-client-contracts-entity-catalog.mjs +2 -0
  20. package/fesm2022/acorex-platform-module-project-management-client-contracts-entity-catalog.mjs.map +1 -0
  21. package/fesm2022/acorex-platform-module-project-management-client-contracts.mjs.map +1 -1
  22. package/fesm2022/acorex-platform-module-project-management-client-local-entities.mjs +32 -0
  23. package/fesm2022/acorex-platform-module-project-management-client-local-entities.mjs.map +1 -0
  24. package/fesm2022/acorex-platform-module-project-management-client.mjs +3 -3
  25. package/fesm2022/acorex-platform-module-project-management-client.mjs.map +1 -1
  26. package/package.json +26 -2
  27. package/types/acorex-platform-module-project-management-client-contracts-entities-project-member.d.ts +5 -0
  28. package/types/acorex-platform-module-project-management-client-contracts-entities-project-type-role-type.d.ts +5 -0
  29. package/types/acorex-platform-module-project-management-client-contracts-entities-project-type.d.ts +5 -0
  30. package/types/acorex-platform-module-project-management-client-contracts-entities-project.d.ts +5 -0
  31. package/types/acorex-platform-module-project-management-client-contracts-entity-catalog.d.ts +10 -0
  32. package/types/acorex-platform-module-project-management-client-contracts.d.ts +13 -0
  33. package/types/acorex-platform-module-project-management-client-local-entities.d.ts +12 -0
@@ -0,0 +1,715 @@
1
+ import { AXPWidgetsCatalog, AXPWidgetsList } from '@acorex-platform/framework-shared/core';
2
+ import { createAllQueryView, entityMasterCrudActions, entityMasterRecordActions, AXPEntityCommandScope, entityDetailsCrudActions } from '@acorex-platform/framework-shared/entity';
3
+ import { R as RootConfig } from './acorex-platform-module-project-management-client-contracts-entity-catalog-acorex-platform-module-project-management-client-contracts-entity-catalog-BGnWVgGc.mjs';
4
+
5
+ /** Catalog scope for project-management workflows and related catalogs. */
6
+ const PM_CATALOG_SCOPE = 'project-management.pm';
7
+ /** Canonical entity source for {@link AXPEntityReference.type} on project subjects. */
8
+ const PM_PROJECT_ENTITY_SOURCE = 'ProjectManagement.Project';
9
+
10
+ async function projectFactory() {
11
+ const entityDef = {
12
+ module: RootConfig.module.name,
13
+ name: RootConfig.entities.project.name,
14
+ title: RootConfig.entities.project.title,
15
+ icon: RootConfig.entities.project.icon,
16
+ formats: {
17
+ individual: RootConfig.entities.project.title,
18
+ plural: RootConfig.entities.project.titlePlural,
19
+ searchResult: {
20
+ title: '{{ title }}',
21
+ description: RootConfig.module.title,
22
+ },
23
+ },
24
+ plugins: [
25
+ { name: 'comments', options: { display: 'page' } },
26
+ { name: 'history' },
27
+ { name: 'archive' },
28
+ { name: 'identifier', options: { field: 'code', rule: 'project-code' } },
29
+ {
30
+ name: 'documents',
31
+ options: {
32
+ documentTypeNames: `{{ await ${RootConfig.module.name}.resolveDocumentTypeNames(context.eval("id")) }}`,
33
+ },
34
+ },
35
+ { name: 'unique-fields', options: { fields: 'code', scope: 'global' } },
36
+ {
37
+ name: 'status',
38
+ options: {
39
+ field: 'projectStatusId',
40
+ definition: 'project-management.status.projectStatus',
41
+ generate: {
42
+ actions: {
43
+ enabled: false,
44
+ },
45
+ },
46
+ },
47
+ },
48
+ {
49
+ name: 'meta-data-form',
50
+ options: {
51
+ path: 'projectTypeId',
52
+ title: '@project-management:projects.entities.project.components.meta-data-form.title',
53
+ },
54
+ },
55
+ { name: 'reports' },
56
+ ],
57
+ relatedEntities: [
58
+ {
59
+ entity: `${RootConfig.module.name}.${RootConfig.entities.projectMember.name}`,
60
+ title: RootConfig.entities.projectMember.titlePlural,
61
+ columns: ['employeeId', 'projectTypeRoleTypeId'],
62
+ conditions: [{ name: 'projectId', operator: { type: 'equal' }, value: '{{ context.eval("id") }}' }],
63
+ actions: [
64
+ {
65
+ title: '@general:actions.create.title',
66
+ command: {
67
+ name: 'Entity:Create',
68
+ options: {
69
+ process: {
70
+ redirect: false,
71
+ canCreateNewOne: true,
72
+ data: {
73
+ projectId: '{{ context.eval("id") }}',
74
+ projectTypeId: '{{ context.eval("projectType.id") }}',
75
+ },
76
+ },
77
+ },
78
+ },
79
+ priority: 'primary',
80
+ type: 'create',
81
+ scope: AXPEntityCommandScope.TypeLevel,
82
+ },
83
+ ...entityDetailsCrudActions('projectId', { create: false }),
84
+ ],
85
+ excludeProperties: ['projectId'],
86
+ layout: {
87
+ type: 'page-list',
88
+ },
89
+ },
90
+ {
91
+ entity: 'TaskManagement.Task',
92
+ title: '@task-management:task.plural-title',
93
+ columns: ['title', 'taskTypeId', 'dueDate', 'progress', 'statusId', 'assigneeId'],
94
+ conditions: [
95
+ { name: 'subjectRef.type', operator: { type: 'equal' }, value: PM_PROJECT_ENTITY_SOURCE },
96
+ { name: 'subjectRef.id', operator: { type: 'equal' }, value: '{{ context.eval("id") }}' },
97
+ ],
98
+ excludeProperties: ['subjectRef'],
99
+ actions: [
100
+ {
101
+ title: '@project-management:projects.entities.project.related-entities.task-start.title',
102
+ icon: 'fa-light fa-play',
103
+ command: {
104
+ name: 'Entity:Create',
105
+ options: {
106
+ process: {
107
+ redirect: false,
108
+ canCreateNewOne: true,
109
+ data: {},
110
+ },
111
+ },
112
+ },
113
+ priority: 'primary',
114
+ type: 'create',
115
+ scope: AXPEntityCommandScope.TypeLevel,
116
+ items: `{{ await ${RootConfig.module.name}.AllowedTaskTypes(context.eval("projectType.id")) }}`,
117
+ },
118
+ ...entityDetailsCrudActions('subjectRef.id', { create: false, edit: true, delete: true, view: true }),
119
+ ],
120
+ layout: { type: 'page-list', position: 'after', order: 10 },
121
+ },
122
+ ],
123
+ groups: [
124
+ { id: 'basic-info', title: `@general:terms.interface.basic-info` },
125
+ { id: 'organization-parties', title: `@project-management:projects.groups.organization-parties` },
126
+ { id: 'schedule', title: `@project-management:projects.groups.schedule` },
127
+ ],
128
+ properties: [
129
+ {
130
+ name: 'code',
131
+ title: '@general:terms.common.code',
132
+ groupId: 'basic-info',
133
+ options: {
134
+ sort: {
135
+ enabled: true,
136
+ },
137
+ filter: {
138
+ advance: {
139
+ enabled: true,
140
+ },
141
+ inline: {
142
+ enabled: true,
143
+ },
144
+ },
145
+ },
146
+ schema: {
147
+ dataType: 'string',
148
+ unique: { enabled: true },
149
+ readonly: '{{ !!context.eval("id") }}',
150
+ interface: {
151
+ type: AXPWidgetsCatalog.text,
152
+ },
153
+ },
154
+ validations: [{ rule: 'required' }],
155
+ },
156
+ {
157
+ name: 'title',
158
+ title: '@general:terms.common.title',
159
+ groupId: 'basic-info',
160
+ options: {
161
+ sort: {
162
+ enabled: true,
163
+ },
164
+ filter: {
165
+ advance: {
166
+ enabled: true,
167
+ },
168
+ inline: {
169
+ enabled: true,
170
+ },
171
+ },
172
+ },
173
+ schema: {
174
+ dataType: 'string',
175
+ interface: {
176
+ type: AXPWidgetsCatalog.text,
177
+ },
178
+ },
179
+ validations: [{ rule: 'required' }],
180
+ },
181
+ {
182
+ name: 'projectTypeId',
183
+ title: '@general:terms.common.type',
184
+ groupId: 'basic-info',
185
+ options: {
186
+ sort: {
187
+ enabled: true,
188
+ },
189
+ filter: {
190
+ advance: {
191
+ enabled: true,
192
+ },
193
+ inline: {
194
+ enabled: false,
195
+ },
196
+ },
197
+ },
198
+ schema: {
199
+ dataType: 'string',
200
+ readonly: '{{ context.eval("id") }}',
201
+ defaultValue: "{{ settings.get('ProjectManagementExtension:Setting:DefaultProjectTypeId') }}",
202
+ interface: {
203
+ type: AXPWidgetsCatalog.lookup,
204
+ options: {
205
+ look: 'select',
206
+ entity: `${RootConfig.module.name}.${RootConfig.entities.projectType.name}`,
207
+ expose: [
208
+ { source: 'id', target: 'projectType.id' },
209
+ { source: 'title', target: 'projectType.title' },
210
+ ],
211
+ },
212
+ },
213
+ },
214
+ validations: [{ rule: 'required' }],
215
+ },
216
+ {
217
+ name: 'customerId',
218
+ title: '@project-management:projects.terms.customerId',
219
+ groupId: 'organization-parties',
220
+ options: {
221
+ sort: { enabled: true },
222
+ filter: { advance: { enabled: true }, inline: { enabled: true } },
223
+ },
224
+ schema: {
225
+ dataType: 'string',
226
+ interface: {
227
+ type: AXPWidgetsList.Editors.LookupBox,
228
+ options: {
229
+ entity: 'CustomerManagement.Customer',
230
+ textField: 'party.title',
231
+ valueField: 'id',
232
+ look: 'select',
233
+ columns: ['party.code', 'party.title', { name: 'partyId', visible: false }],
234
+ expose: [
235
+ { source: 'id', target: 'customer.id' },
236
+ { source: 'party.title', target: 'customer.title' },
237
+ { source: 'partyId', target: 'customer.partyId' },
238
+ ],
239
+ },
240
+ },
241
+ },
242
+ },
243
+ {
244
+ name: 'contactAssignmentId',
245
+ title: '@project-management:projects.terms.contactAssignmentId',
246
+ groupId: 'organization-parties',
247
+ options: {
248
+ sort: { enabled: true },
249
+ filter: { advance: { enabled: true }, inline: { enabled: false } },
250
+ },
251
+ schema: {
252
+ dataType: 'string',
253
+ nullable: true,
254
+ interface: {
255
+ type: AXPWidgetsList.Editors.LookupBox,
256
+ options: {
257
+ entity: 'PersonCore.ContactAssignment',
258
+ textField: 'person.fullName',
259
+ valueField: 'id',
260
+ look: 'select',
261
+ disabled: '{{ !context.eval("customerId") }}',
262
+ columns: ['person.fullName', 'role.title'],
263
+ expose: [
264
+ { source: 'id', target: 'contactAssignment.id' },
265
+ { source: 'person.fullName', target: 'contactAssignment.person.fullName' },
266
+ { source: 'role.title', target: 'contactAssignment.role.title' },
267
+ ],
268
+ filter: {
269
+ logic: 'and',
270
+ filters: [
271
+ {
272
+ field: 'partyId',
273
+ operator: { type: 'equal' },
274
+ /**
275
+ * Keep a concrete value so cascade cleanup does not disable the lookup.
276
+ * Falls back to an impossible id until customer.partyId is exposed.
277
+ */
278
+ value: '{{ context.eval("customer.partyId") || "00000000-0000-0000-0000-000000000000" }}',
279
+ },
280
+ ],
281
+ },
282
+ },
283
+ triggers: [
284
+ {
285
+ event: "{{ events.context('customerId') }}",
286
+ action: "{{ widget.setValue(null); context.set('contactAssignmentId', null); context.set('contactAssignment', null); widget.refresh(); }}",
287
+ },
288
+ {
289
+ event: "{{ events.context('customer.partyId') }}",
290
+ action: '{{ widget.refresh(); }}',
291
+ },
292
+ ],
293
+ },
294
+ },
295
+ },
296
+ {
297
+ name: 'locationAssignmentId',
298
+ title: '@project-management:projects.terms.location',
299
+ groupId: 'organization-parties',
300
+ options: {
301
+ sort: { enabled: true },
302
+ filter: { advance: { enabled: true }, inline: { enabled: false } },
303
+ },
304
+ schema: {
305
+ dataType: 'string',
306
+ interface: {
307
+ type: AXPWidgetsList.Editors.LookupBox,
308
+ options: {
309
+ entity: 'LocationManagement.LocationAssignment',
310
+ textField: 'location.title',
311
+ valueField: 'id',
312
+ look: 'select',
313
+ disabled: '{{ !context.eval("customerId") }}',
314
+ columns: ['location.title', 'role.title', 'location.street1', 'location.city.title'],
315
+ expose: [
316
+ { source: 'id', target: 'locationAssignment.id' },
317
+ { source: 'location.title', target: 'locationAssignment.title' },
318
+ { source: 'location.street1', target: 'locationAssignment.location.street1' },
319
+ { source: 'location.city.title', target: 'locationAssignment.location.city.title' },
320
+ ],
321
+ filter: {
322
+ logic: 'and',
323
+ filters: [
324
+ {
325
+ field: 'ownerRef.type',
326
+ operator: { type: 'equal' },
327
+ value: 'CustomerManagement.Customer',
328
+ },
329
+ {
330
+ field: 'ownerRef.id',
331
+ operator: { type: 'equal' },
332
+ value: '{{ context.eval("customerId") }}',
333
+ },
334
+ ],
335
+ },
336
+ },
337
+ triggers: [
338
+ {
339
+ event: "{{ events.context('customerId') }}",
340
+ action: "{{ widget.setValue(null); context.set('locationAssignmentId', null); context.set('locationAssignment', null); widget.refresh(); }}",
341
+ },
342
+ ],
343
+ },
344
+ },
345
+ },
346
+ {
347
+ name: 'description',
348
+ title: '@project-management:projects.terms.description',
349
+ groupId: 'basic-info',
350
+ options: {
351
+ sort: {
352
+ enabled: false,
353
+ },
354
+ filter: {
355
+ advance: {
356
+ enabled: false,
357
+ },
358
+ inline: {
359
+ enabled: false,
360
+ },
361
+ },
362
+ },
363
+ schema: {
364
+ dataType: 'string',
365
+ interface: {
366
+ type: AXPWidgetsCatalog.richText,
367
+ options: {
368
+ height: 200,
369
+ },
370
+ },
371
+ },
372
+ },
373
+ {
374
+ name: 'dueDate',
375
+ title: '@project-management:projects.terms.duedate',
376
+ groupId: 'schedule',
377
+ options: {
378
+ sort: {
379
+ enabled: true,
380
+ },
381
+ filter: {
382
+ advance: {
383
+ enabled: true,
384
+ },
385
+ inline: {
386
+ enabled: true,
387
+ },
388
+ },
389
+ },
390
+ schema: {
391
+ dataType: 'date',
392
+ interface: {
393
+ type: AXPWidgetsCatalog.dateTime,
394
+ options: {
395
+ showTime: false,
396
+ minValue: '{{ context.eval("startDate") }}',
397
+ },
398
+ triggers: [{ event: "{{ events.context('startDate') }}", action: `{{ widget.refresh() }}` }],
399
+ },
400
+ },
401
+ validations: [
402
+ {
403
+ rule: 'greaterThan',
404
+ message: '@project-management:projects.messages.date-on-or-after-start-date',
405
+ options: {
406
+ value: '{{ context.eval("startDate") }}',
407
+ inclusive: true,
408
+ },
409
+ },
410
+ ],
411
+ },
412
+ {
413
+ name: 'startDate',
414
+ title: '@project-management:projects.terms.startDate',
415
+ groupId: 'schedule',
416
+ options: {
417
+ sort: { enabled: true },
418
+ filter: { advance: { enabled: true }, inline: { enabled: true } },
419
+ },
420
+ schema: {
421
+ dataType: 'date',
422
+ interface: {
423
+ type: AXPWidgetsCatalog.dateTime,
424
+ options: { showTime: false },
425
+ },
426
+ },
427
+ },
428
+ {
429
+ name: 'endDate',
430
+ title: '@project-management:projects.terms.endDate',
431
+ groupId: 'schedule',
432
+ options: {
433
+ sort: { enabled: true },
434
+ filter: { advance: { enabled: true }, inline: { enabled: true } },
435
+ },
436
+ schema: {
437
+ dataType: 'date',
438
+ interface: {
439
+ type: AXPWidgetsCatalog.dateTime,
440
+ options: {
441
+ showTime: false,
442
+ minValue: '{{ context.eval("startDate") }}',
443
+ },
444
+ triggers: [{ event: "{{ events.context('startDate') }}", action: `{{ widget.refresh() }}` }],
445
+ },
446
+ },
447
+ validations: [
448
+ {
449
+ rule: 'greaterThan',
450
+ message: '@project-management:projects.messages.date-on-or-after-start-date',
451
+ options: {
452
+ value: '{{ context.eval("startDate") }}',
453
+ inclusive: true,
454
+ },
455
+ },
456
+ ],
457
+ },
458
+ {
459
+ name: 'actualStartDate',
460
+ title: '@project-management:projects.terms.actualStartDate',
461
+ groupId: 'schedule',
462
+ options: {
463
+ sort: { enabled: true },
464
+ filter: { advance: { enabled: true }, inline: { enabled: false } },
465
+ },
466
+ schema: {
467
+ dataType: 'date',
468
+ interface: {
469
+ type: AXPWidgetsCatalog.dateTime,
470
+ options: { showTime: false },
471
+ },
472
+ },
473
+ },
474
+ {
475
+ name: 'actualEndDate',
476
+ title: '@project-management:projects.terms.actualEndDate',
477
+ groupId: 'schedule',
478
+ options: {
479
+ sort: { enabled: true },
480
+ filter: { advance: { enabled: true }, inline: { enabled: false } },
481
+ },
482
+ schema: {
483
+ dataType: 'date',
484
+ interface: {
485
+ type: AXPWidgetsCatalog.dateTime,
486
+ options: {
487
+ showTime: false,
488
+ minValue: '{{ context.eval("actualStartDate") }}',
489
+ },
490
+ triggers: [{ event: "{{ events.context('actualStartDate') }}", action: `{{ widget.refresh() }}` }],
491
+ },
492
+ },
493
+ validations: [
494
+ {
495
+ rule: 'greaterThan',
496
+ message: '@project-management:projects.messages.date-on-or-after-actual-start-date',
497
+ options: {
498
+ value: '{{ context.eval("actualStartDate") }}',
499
+ inclusive: true,
500
+ },
501
+ },
502
+ ],
503
+ },
504
+ {
505
+ name: 'integrationRef',
506
+ title: '@project-management:projects.terms.integrationRef',
507
+ groupId: 'basic-info',
508
+ schema: {
509
+ dataType: 'object',
510
+ visible: false,
511
+ nullable: true,
512
+ readonly: true,
513
+ },
514
+ },
515
+ ],
516
+ columns: [
517
+ { name: 'code' },
518
+ { name: 'title' },
519
+ { name: 'customerId', options: { dataPath: 'customer.party.title' } },
520
+ {
521
+ name: 'contactAssignmentId',
522
+ title: '@project-management:projects.terms.contactAssignmentId',
523
+ options: { dataPath: 'contactAssignment.person.fullName' },
524
+ },
525
+ { name: 'dueDate' },
526
+ { name: 'description' },
527
+ { name: 'projectTypeId', options: { dataPath: 'projectType' } },
528
+ ],
529
+ interfaces: {
530
+ master: {
531
+ create: {
532
+ sections: [
533
+ { id: 'basic-info' },
534
+ { id: 'organization-parties' },
535
+ { id: 'schedule' },
536
+ ],
537
+ properties: [
538
+ {
539
+ name: 'code',
540
+ layout: { positions: { lg: { colSpan: 2, order: 1 } } },
541
+ },
542
+ {
543
+ name: 'title',
544
+ layout: { positions: { lg: { colSpan: 6, order: 2 } } },
545
+ },
546
+ {
547
+ name: 'projectTypeId',
548
+ layout: { positions: { lg: { colSpan: 4, order: 3 } } },
549
+ },
550
+ {
551
+ name: 'description',
552
+ layout: { positions: { lg: { colSpan: 12, order: 4 } } },
553
+ },
554
+ {
555
+ name: 'customerId',
556
+ layout: { order: 1, positions: { lg: { colSpan: 6, colStart: 1, order: 1 } } },
557
+ },
558
+ {
559
+ name: 'contactAssignmentId',
560
+ layout: { order: 2, positions: { lg: { colSpan: 6, colStart: 7, order: 2 } } },
561
+ },
562
+ {
563
+ name: 'locationAssignmentId',
564
+ layout: { order: 3, positions: { lg: { colSpan: 6, colStart: 1, order: 3 } } },
565
+ },
566
+ {
567
+ name: 'dueDate',
568
+ layout: { order: 1, positions: { lg: { colSpan: 4, order: 1 } } },
569
+ },
570
+ {
571
+ name: 'startDate',
572
+ layout: { order: 2, positions: { lg: { colSpan: 4, order: 2 } } },
573
+ },
574
+ {
575
+ name: 'endDate',
576
+ layout: { order: 3, positions: { lg: { colSpan: 4, order: 3 } } },
577
+ },
578
+ {
579
+ name: 'actualStartDate',
580
+ layout: { order: 4, positions: { lg: { colSpan: 4, colStart: 1, order: 4 } } },
581
+ },
582
+ {
583
+ name: 'actualEndDate',
584
+ layout: { order: 5, positions: { lg: { colSpan: 4, colStart: 5, order: 5 } } },
585
+ },
586
+ ],
587
+ },
588
+ update: {
589
+ sections: [
590
+ { id: 'basic-info' },
591
+ { id: 'organization-parties' },
592
+ { id: 'schedule' },
593
+ ],
594
+ properties: [
595
+ {
596
+ name: 'code',
597
+ layout: { positions: { lg: { colSpan: 2, order: 1 } } },
598
+ },
599
+ {
600
+ name: 'title',
601
+ layout: { positions: { lg: { colSpan: 6, order: 2 } } },
602
+ },
603
+ {
604
+ name: 'description',
605
+ layout: { positions: { lg: { colSpan: 12, order: 3 } } },
606
+ },
607
+ {
608
+ name: 'customerId',
609
+ layout: { order: 1, positions: { lg: { colSpan: 6, colStart: 1, order: 1 } } },
610
+ },
611
+ {
612
+ name: 'contactAssignmentId',
613
+ layout: { order: 2, positions: { lg: { colSpan: 6, colStart: 7, order: 2 } } },
614
+ },
615
+ {
616
+ name: 'locationAssignmentId',
617
+ layout: { order: 3, positions: { lg: { colSpan: 6, colStart: 1, order: 3 } } },
618
+ },
619
+ {
620
+ name: 'dueDate',
621
+ layout: { order: 1, positions: { lg: { colSpan: 4, order: 1 } } },
622
+ },
623
+ {
624
+ name: 'startDate',
625
+ layout: { order: 2, positions: { lg: { colSpan: 4, order: 2 } } },
626
+ },
627
+ {
628
+ name: 'endDate',
629
+ layout: { order: 3, positions: { lg: { colSpan: 4, order: 3 } } },
630
+ },
631
+ {
632
+ name: 'actualStartDate',
633
+ layout: { order: 4, positions: { lg: { colSpan: 4, order: 4 } } },
634
+ },
635
+ {
636
+ name: 'actualEndDate',
637
+ layout: { order: 5, positions: { lg: { colSpan: 4, order: 5 } } },
638
+ },
639
+ ],
640
+ },
641
+ single: {
642
+ title: '{{title}}',
643
+ sections: [
644
+ { id: 'basic-info' },
645
+ { id: 'organization-parties' },
646
+ { id: 'schedule' },
647
+ ],
648
+ properties: [
649
+ {
650
+ name: 'code',
651
+ layout: { positions: { lg: { colSpan: 2, order: 1 } } },
652
+ },
653
+ {
654
+ name: 'title',
655
+ layout: { positions: { lg: { colSpan: 6, order: 2 } } },
656
+ },
657
+ {
658
+ name: 'projectTypeId',
659
+ layout: { positions: { lg: { colSpan: 4, order: 3 } } },
660
+ },
661
+ {
662
+ name: 'description',
663
+ layout: { positions: { lg: { colSpan: 12, order: 4 } } },
664
+ },
665
+ {
666
+ name: 'customerId',
667
+ layout: { order: 1, positions: { lg: { colSpan: 6, colStart: 1, order: 1 } } },
668
+ },
669
+ {
670
+ name: 'contactAssignmentId',
671
+ layout: { order: 2, positions: { lg: { colSpan: 6, colStart: 7, order: 2 } } },
672
+ },
673
+ {
674
+ name: 'locationAssignmentId',
675
+ layout: { order: 3, positions: { lg: { colSpan: 6, colStart: 1, order: 3 } } },
676
+ },
677
+ {
678
+ name: 'dueDate',
679
+ layout: { order: 1, positions: { lg: { colSpan: 4, order: 1 } } },
680
+ },
681
+ {
682
+ name: 'startDate',
683
+ layout: { order: 2, positions: { lg: { colSpan: 4, order: 2 } } },
684
+ },
685
+ {
686
+ name: 'endDate',
687
+ layout: { order: 3, positions: { lg: { colSpan: 4, order: 3 } } },
688
+ },
689
+ {
690
+ name: 'actualStartDate',
691
+ layout: { order: 4, positions: { lg: { colSpan: 4, order: 4 } } },
692
+ },
693
+ {
694
+ name: 'actualEndDate',
695
+ layout: { order: 5, positions: { lg: { colSpan: 4, order: 5 } } },
696
+ },
697
+ ],
698
+ actions: [...entityMasterRecordActions()],
699
+ },
700
+ list: {
701
+ actions: [...entityMasterCrudActions()],
702
+ views: [
703
+ createAllQueryView({
704
+ sorts: [{ name: 'title', dir: 'asc' }],
705
+ }),
706
+ ],
707
+ },
708
+ },
709
+ },
710
+ };
711
+ return entityDef;
712
+ }
713
+
714
+ export { projectFactory };
715
+ //# sourceMappingURL=acorex-platform-module-project-management-client-contracts-entity-catalog-project.entity-CNvGTlk_.mjs.map