@acorex-platform/module-application-management-client 0.0.15

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 (27) hide show
  1. package/fesm2022/acorex-platform-module-application-management-client-application-status.provider-DqPlbWuW.mjs +71 -0
  2. package/fesm2022/acorex-platform-module-application-management-client-application-status.provider-DqPlbWuW.mjs.map +1 -0
  3. package/fesm2022/acorex-platform-module-application-management-client-assign-features.command-BheloAKT.mjs +151 -0
  4. package/fesm2022/acorex-platform-module-application-management-client-assign-features.command-BheloAKT.mjs.map +1 -0
  5. package/fesm2022/acorex-platform-module-application-management-client-contracts.mjs +2027 -0
  6. package/fesm2022/acorex-platform-module-application-management-client-contracts.mjs.map +1 -0
  7. package/fesm2022/acorex-platform-module-application-management-client-feature-definition.provider-Depetn50.mjs +22 -0
  8. package/fesm2022/acorex-platform-module-application-management-client-feature-definition.provider-Depetn50.mjs.map +1 -0
  9. package/fesm2022/acorex-platform-module-application-management-client-features-editor.component-DNc_GH0v.mjs +548 -0
  10. package/fesm2022/acorex-platform-module-application-management-client-features-editor.component-DNc_GH0v.mjs.map +1 -0
  11. package/fesm2022/acorex-platform-module-application-management-client-features-widget-column.component-CiBGmw6I.mjs +46 -0
  12. package/fesm2022/acorex-platform-module-application-management-client-features-widget-column.component-CiBGmw6I.mjs.map +1 -0
  13. package/fesm2022/acorex-platform-module-application-management-client-features-widget-designer.component-nStj9BAw.mjs +20 -0
  14. package/fesm2022/acorex-platform-module-application-management-client-features-widget-designer.component-nStj9BAw.mjs.map +1 -0
  15. package/fesm2022/acorex-platform-module-application-management-client-features-widget-edit.component-D1MzYI_s.mjs +42 -0
  16. package/fesm2022/acorex-platform-module-application-management-client-features-widget-edit.component-D1MzYI_s.mjs.map +1 -0
  17. package/fesm2022/acorex-platform-module-application-management-client-features-widget-print.component-C6Z9uzRr.mjs +21 -0
  18. package/fesm2022/acorex-platform-module-application-management-client-features-widget-print.component-C6Z9uzRr.mjs.map +1 -0
  19. package/fesm2022/acorex-platform-module-application-management-client-features-widget-view.component-ysM1jD08.mjs +128 -0
  20. package/fesm2022/acorex-platform-module-application-management-client-features-widget-view.component-ysM1jD08.mjs.map +1 -0
  21. package/fesm2022/acorex-platform-module-application-management-client-permission-definition.provider-Dn5WiubC.mjs +32 -0
  22. package/fesm2022/acorex-platform-module-application-management-client-permission-definition.provider-Dn5WiubC.mjs.map +1 -0
  23. package/fesm2022/acorex-platform-module-application-management-client.mjs +1030 -0
  24. package/fesm2022/acorex-platform-module-application-management-client.mjs.map +1 -0
  25. package/package.json +28 -0
  26. package/types/acorex-platform-module-application-management-client-contracts.d.ts +161 -0
  27. package/types/acorex-platform-module-application-management-client.d.ts +57 -0
@@ -0,0 +1,2027 @@
1
+ import { AXPWidgetsList, AXPWidgetsCatalog } from '@acorex-platform/framework-shared/core';
2
+ import { createAllQueryView, AXPEntityCommandScope, entityMasterCrudActions, entityMasterRecordActions, entityDetailsCrudActions } from '@acorex-platform/framework-shared/entity';
3
+
4
+ // Management feature removed - module name is used directly as feature key
5
+ const AXMApplicationManagementFeatureKeys = {};
6
+
7
+ const AXPApplicationManagementMenuKeys = {
8
+ Root: 'ApplicationManagement:Menu',
9
+ Applications: 'ApplicationManagement:Menu:Applications',
10
+ AppTerms: 'ApplicationManagement:Menu:AppTerms',
11
+ ReleaseNotes: 'ApplicationManagement:Menu:ReleaseNotes',
12
+ HelpRoot: 'ApplicationManagement:Menu:Help',
13
+ HelpReleaseNotes: 'ApplicationManagement:Menu:Help.ReleaseNotes',
14
+ HelpTerms: 'ApplicationManagement:Menu:Help.Terms',
15
+ };
16
+
17
+ const AXMPermissionsKeys = {
18
+ ApplicationManagement: {
19
+ Root: 'ApplicationManagement:Permission:Applications.Management',
20
+ Applications: 'ApplicationManagement:Permission:Applications.Management',
21
+ ReleaseNotes: 'ApplicationManagement:Permission:ReleaseNotes.Management',
22
+ AppTerms: 'ApplicationManagement:Permission:AppTerms.Management',
23
+ },
24
+ };
25
+
26
+ //#region ---- Application Info Settings ----
27
+ var AXPApplicationInfoSettings;
28
+ (function (AXPApplicationInfoSettings) {
29
+ // Application Info
30
+ AXPApplicationInfoSettings["DisplayPattern"] = "ApplicationManagement:Setting:ApplicationInfo.DisplayPattern";
31
+ // Application Terms
32
+ AXPApplicationInfoSettings["ApplicationTerms"] = "ApplicationManagement:Setting:Startup.ApplicationTerms";
33
+ // App Version
34
+ AXPApplicationInfoSettings["InitVersion"] = "ApplicationManagement:Setting:AppVersion.InitVersion";
35
+ // Release Notes
36
+ AXPApplicationInfoSettings["ReleaseNotes"] = "ApplicationManagement:Setting:Startup.ReleaseNotes";
37
+ })(AXPApplicationInfoSettings || (AXPApplicationInfoSettings = {}));
38
+ /**
39
+ * Get the setting key for tracking if a specific version has been seen
40
+ * @param versionNumber The version number to check
41
+ * @returns The setting key for that version
42
+ */
43
+ function getAppVersionSeenKey(versionNumber) {
44
+ return `ApplicationManagement:Setting:AppVersion.IsSeen.${versionNumber}`;
45
+ }
46
+ //#endregion
47
+
48
+ const config = {
49
+ i18n: 'application-management',
50
+ module: 'ApplicationManagement',
51
+ };
52
+ const RootConfig = {
53
+ config,
54
+ module: {
55
+ route: 'application-management',
56
+ name: config.module,
57
+ title: `@${config.i18n}:module.title`,
58
+ icon: 'fa-light fa-cogs',
59
+ },
60
+ entities: {
61
+ application: {
62
+ name: 'Application',
63
+ title: `@${config.i18n}:applications.entities.application.title`,
64
+ titlePlural: `@${config.i18n}:applications.entities.application.plural`,
65
+ icon: 'fa-light fa-cube',
66
+ },
67
+ edition: {
68
+ name: 'Edition',
69
+ title: `@${config.i18n}:editions.entities.edition.title`,
70
+ titlePlural: `@${config.i18n}:editions.entities.edition.plural`,
71
+ icon: 'fa-light fa-layer-group',
72
+ },
73
+ appVersion: {
74
+ name: 'AppVersion',
75
+ title: `@${config.i18n}:app-versions.entities.app-version.title`,
76
+ titlePlural: `@${config.i18n}:app-versions.entities.app-version.plural`,
77
+ icon: 'fa-light fa-code-branch',
78
+ },
79
+ appTerm: {
80
+ name: 'AppTerm',
81
+ title: `@${config.i18n}:app-terms.entities.app-term.title`,
82
+ titlePlural: `@${config.i18n}:app-terms.entities.app-term.plural`,
83
+ pageTitle: `@${config.i18n}:app-terms.pages.terms-page.title`,
84
+ pageDescription: `@${config.i18n}:app-terms.pages.terms-page.description`,
85
+ icon: 'fa-light fa-scale-balanced',
86
+ },
87
+ },
88
+ };
89
+ // Keep the old export for backward compatibility
90
+ const AXMApplicationManagementModuleConst = {
91
+ moduleName: 'ApplicationManagement',
92
+ moduleRoute: 'application-management',
93
+ i18n: 'platform-management',
94
+ };
95
+
96
+ //#endregion
97
+ //#region ---- App Term Entity Factory ----
98
+ async function appTermEntityEntityFactory() {
99
+ const entityDef = {
100
+ module: RootConfig.module.name,
101
+ name: RootConfig.entities.appTerm.name,
102
+ title: RootConfig.entities.appTerm.title,
103
+ icon: RootConfig.entities.appTerm.icon,
104
+ formats: {
105
+ individual: RootConfig.entities.appTerm.title,
106
+ plural: RootConfig.entities.appTerm.titlePlural,
107
+ searchResult: {
108
+ title: '{{ title }}',
109
+ description: RootConfig.module.title,
110
+ },
111
+ },
112
+ relatedEntities: [],
113
+ groups: [
114
+ {
115
+ id: 'section',
116
+ title: RootConfig.entities.appTerm.title,
117
+ },
118
+ ],
119
+ properties: [
120
+ {
121
+ name: 'applicationId',
122
+ title: `@${RootConfig.config.i18n}:applications.entities.application.title`,
123
+ groupId: 'section',
124
+ options: {
125
+ filter: {
126
+ advance: {
127
+ enabled: true,
128
+ },
129
+ inline: {
130
+ enabled: true,
131
+ },
132
+ },
133
+ sort: {
134
+ enabled: true,
135
+ },
136
+ },
137
+ schema: {
138
+ dataType: 'string',
139
+ interface: {
140
+ type: AXPWidgetsList.Editors.LookupBox,
141
+ options: {
142
+ entity: `${RootConfig.module.name}.${RootConfig.entities.application.name}`,
143
+ textField: 'title',
144
+ valueField: 'id',
145
+ look: 'select',
146
+ columns: ['title', 'code'],
147
+ expose: [
148
+ { source: 'id', target: 'application.id' },
149
+ { source: 'title', target: 'application.title' },
150
+ { source: 'code', target: 'application.code' },
151
+ ],
152
+ },
153
+ },
154
+ },
155
+ validations: [
156
+ {
157
+ rule: 'required',
158
+ },
159
+ ],
160
+ },
161
+ {
162
+ name: 'type',
163
+ title: '@general:terms.common.type',
164
+ groupId: 'section',
165
+ schema: {
166
+ dataType: 'string',
167
+ interface: {
168
+ type: AXPWidgetsCatalog.text,
169
+ },
170
+ },
171
+ validations: [
172
+ {
173
+ rule: 'required',
174
+ },
175
+ ],
176
+ },
177
+ {
178
+ name: 'title',
179
+ title: '@general:terms.common.title',
180
+ groupId: 'section',
181
+ schema: {
182
+ dataType: 'string',
183
+ interface: {
184
+ type: AXPWidgetsCatalog.text,
185
+ },
186
+ },
187
+ options: {
188
+ filter: {
189
+ advance: {
190
+ enabled: true,
191
+ },
192
+ inline: {
193
+ enabled: true,
194
+ },
195
+ },
196
+ sort: {
197
+ enabled: true,
198
+ },
199
+ },
200
+ validations: [
201
+ {
202
+ rule: 'required',
203
+ },
204
+ ],
205
+ },
206
+ {
207
+ name: 'content',
208
+ title: `@${RootConfig.config.i18n}:app-terms.entities.app-term.fields.content.title`,
209
+ groupId: 'section',
210
+ schema: {
211
+ dataType: 'string',
212
+ interface: {
213
+ type: AXPWidgetsCatalog.richText,
214
+ options: {
215
+ minLineCount: 5,
216
+ maxLineCount: 17,
217
+ isFitLine: true,
218
+ },
219
+ },
220
+ },
221
+ validations: [
222
+ {
223
+ rule: 'required',
224
+ },
225
+ ],
226
+ },
227
+ {
228
+ name: 'version',
229
+ title: `@${RootConfig.config.i18n}:app-terms.entities.app-term.fields.version.title`,
230
+ groupId: 'section',
231
+ schema: {
232
+ dataType: 'number',
233
+ interface: {
234
+ type: AXPWidgetsCatalog.number,
235
+ },
236
+ },
237
+ options: {
238
+ filter: {
239
+ advance: {
240
+ enabled: true,
241
+ },
242
+ },
243
+ sort: {
244
+ enabled: true,
245
+ },
246
+ },
247
+ validations: [
248
+ {
249
+ rule: 'required',
250
+ },
251
+ ],
252
+ },
253
+ {
254
+ name: 'effectiveDate',
255
+ title: `@${RootConfig.config.i18n}:app-terms.entities.app-term.fields.effective-date.title`,
256
+ groupId: 'section',
257
+ schema: {
258
+ dataType: 'dateTime',
259
+ interface: {
260
+ type: AXPWidgetsCatalog.dateTime,
261
+ },
262
+ },
263
+ options: {
264
+ filter: {
265
+ advance: {
266
+ enabled: true,
267
+ },
268
+ },
269
+ sort: {
270
+ enabled: true,
271
+ },
272
+ },
273
+ validations: [
274
+ {
275
+ rule: 'required',
276
+ },
277
+ ],
278
+ },
279
+ ],
280
+ columns: [
281
+ { name: 'title' },
282
+ { name: 'applicationId', options: { dataPath: 'application.title' } },
283
+ { name: 'content' },
284
+ { name: 'version' },
285
+ { name: 'effectiveDate' },
286
+ ],
287
+ interfaces: {
288
+ master: {
289
+ create: {
290
+ sections: [
291
+ {
292
+ id: 'section',
293
+ },
294
+ ],
295
+ properties: [
296
+ {
297
+ name: 'applicationId',
298
+ layout: {
299
+ positions: {
300
+ lg: {
301
+ colSpan: 12,
302
+ order: 1,
303
+ },
304
+ },
305
+ },
306
+ },
307
+ {
308
+ name: 'title',
309
+ layout: {
310
+ positions: {
311
+ lg: {
312
+ colSpan: 12,
313
+ order: 2,
314
+ },
315
+ },
316
+ },
317
+ },
318
+ {
319
+ name: 'type',
320
+ layout: {
321
+ positions: {
322
+ lg: {
323
+ colSpan: 4,
324
+ order: 3,
325
+ },
326
+ },
327
+ },
328
+ },
329
+ {
330
+ name: 'version',
331
+ layout: {
332
+ positions: {
333
+ lg: {
334
+ colSpan: 4,
335
+ order: 4,
336
+ },
337
+ },
338
+ },
339
+ },
340
+ {
341
+ name: 'content',
342
+ layout: {
343
+ positions: {
344
+ lg: {
345
+ colSpan: 12,
346
+ order: 10,
347
+ },
348
+ },
349
+ },
350
+ },
351
+ {
352
+ name: 'effectiveDate',
353
+ layout: {
354
+ positions: {
355
+ lg: {
356
+ colSpan: 4,
357
+ order: 5,
358
+ },
359
+ },
360
+ },
361
+ },
362
+ ],
363
+ },
364
+ update: {
365
+ sections: [
366
+ {
367
+ id: 'section',
368
+ },
369
+ ],
370
+ properties: [
371
+ {
372
+ name: 'applicationId',
373
+ layout: {
374
+ positions: {
375
+ lg: {
376
+ colSpan: 12,
377
+ order: 1,
378
+ },
379
+ },
380
+ },
381
+ },
382
+ {
383
+ name: 'title',
384
+ layout: {
385
+ positions: {
386
+ lg: {
387
+ colSpan: 12,
388
+ order: 2,
389
+ },
390
+ },
391
+ },
392
+ },
393
+ {
394
+ name: 'type',
395
+ layout: {
396
+ positions: {
397
+ lg: {
398
+ colSpan: 4,
399
+ order: 3,
400
+ },
401
+ },
402
+ },
403
+ },
404
+ {
405
+ name: 'version',
406
+ layout: {
407
+ positions: {
408
+ lg: {
409
+ colSpan: 4,
410
+ order: 4,
411
+ },
412
+ },
413
+ },
414
+ },
415
+ {
416
+ name: 'content',
417
+ layout: {
418
+ positions: {
419
+ lg: {
420
+ colSpan: 12,
421
+ order: 10,
422
+ },
423
+ },
424
+ },
425
+ },
426
+ {
427
+ name: 'effectiveDate',
428
+ layout: {
429
+ positions: {
430
+ lg: {
431
+ colSpan: 4,
432
+ order: 5,
433
+ },
434
+ },
435
+ },
436
+ },
437
+ ],
438
+ },
439
+ single: {
440
+ title: '{{title}}',
441
+ sections: [
442
+ {
443
+ id: 'section',
444
+ },
445
+ ],
446
+ properties: [
447
+ {
448
+ name: 'title',
449
+ layout: {
450
+ positions: {
451
+ lg: {
452
+ colSpan: 6,
453
+ order: 1,
454
+ },
455
+ },
456
+ },
457
+ },
458
+ {
459
+ name: 'applicationId',
460
+ layout: {
461
+ positions: {
462
+ lg: {
463
+ colSpan: 6,
464
+ order: 2,
465
+ },
466
+ },
467
+ },
468
+ },
469
+ {
470
+ name: 'type',
471
+ layout: {
472
+ positions: {
473
+ lg: {
474
+ colSpan: 6,
475
+ order: 3,
476
+ },
477
+ },
478
+ },
479
+ },
480
+ {
481
+ name: 'version',
482
+ layout: {
483
+ positions: {
484
+ lg: {
485
+ colSpan: 6,
486
+ order: 4,
487
+ },
488
+ },
489
+ },
490
+ },
491
+ {
492
+ name: 'content',
493
+ layout: {
494
+ positions: {
495
+ lg: {
496
+ colSpan: 12,
497
+ order: 10,
498
+ },
499
+ },
500
+ },
501
+ },
502
+ {
503
+ name: 'effectiveDate',
504
+ layout: {
505
+ positions: {
506
+ lg: {
507
+ colSpan: 6,
508
+ order: 5,
509
+ },
510
+ },
511
+ },
512
+ },
513
+ ],
514
+ actions: [],
515
+ },
516
+ list: {
517
+ actions: [
518
+ {
519
+ title: '@general:actions.create.title',
520
+ command: 'Entity:Create',
521
+ priority: 'primary',
522
+ type: 'create',
523
+ scope: AXPEntityCommandScope.TypeLevel,
524
+ },
525
+ {
526
+ title: '@general:actions.delete-items.title',
527
+ command: 'Entity:Delete',
528
+ priority: 'primary',
529
+ type: 'delete',
530
+ scope: AXPEntityCommandScope.Selected,
531
+ },
532
+ {
533
+ title: '@general:actions.detail.title',
534
+ command: 'Entity:OpenDetails',
535
+ priority: 'secondary',
536
+ type: 'view',
537
+ scope: AXPEntityCommandScope.Individual,
538
+ },
539
+ {
540
+ title: '@general:actions.delete.title',
541
+ command: 'Entity:Delete',
542
+ priority: 'secondary',
543
+ type: 'delete',
544
+ scope: AXPEntityCommandScope.Individual,
545
+ },
546
+ ],
547
+ views: [createAllQueryView({ sorts: [{ name: 'title', dir: 'asc' }] })],
548
+ },
549
+ },
550
+ },
551
+ };
552
+ return entityDef;
553
+ }
554
+ //#endregion
555
+
556
+ async function appVersionEntityEntityFactory() {
557
+ const i18n = RootConfig.config.i18n;
558
+ const entityDef = {
559
+ module: RootConfig.module.name,
560
+ name: RootConfig.entities.appVersion.name,
561
+ title: RootConfig.entities.appVersion.title,
562
+ icon: RootConfig.entities.appVersion.icon,
563
+ formats: {
564
+ individual: RootConfig.entities.appVersion.title,
565
+ plural: RootConfig.entities.appVersion.title,
566
+ searchResult: {
567
+ title: '{{ versionNumber }}',
568
+ description: RootConfig.module.title,
569
+ },
570
+ },
571
+ relatedEntities: [],
572
+ groups: [
573
+ {
574
+ id: 'section',
575
+ title: RootConfig.entities.appVersion.title,
576
+ },
577
+ ],
578
+ properties: [
579
+ {
580
+ name: 'versionNumber',
581
+ title: `t("versionNumber", { scope: "${i18n}" })`,
582
+ groupId: 'section',
583
+ schema: {
584
+ dataType: 'string',
585
+ interface: {
586
+ type: AXPWidgetsCatalog.text,
587
+ },
588
+ },
589
+ options: {
590
+ filter: {
591
+ advance: {
592
+ enabled: true,
593
+ },
594
+ inline: {
595
+ enabled: true,
596
+ },
597
+ },
598
+ sort: {
599
+ enabled: true,
600
+ },
601
+ },
602
+ validations: [
603
+ {
604
+ rule: 'required',
605
+ },
606
+ ],
607
+ },
608
+ {
609
+ name: 'changeLog',
610
+ title: `t("changeLogs", { scope: "${i18n}" })`,
611
+ groupId: 'section',
612
+ schema: {
613
+ dataType: 'string',
614
+ interface: {
615
+ type: AXPWidgetsCatalog.richText,
616
+ options: {
617
+ minLineCount: 5,
618
+ maxLineCount: 17,
619
+ isFitLine: true,
620
+ },
621
+ },
622
+ },
623
+ validations: [
624
+ {
625
+ rule: 'required',
626
+ },
627
+ ],
628
+ },
629
+ {
630
+ name: 'publishDate',
631
+ title: `t("publishDate", { scope: "${i18n}" })`,
632
+ groupId: 'section',
633
+ schema: {
634
+ dataType: 'dateTime',
635
+ interface: {
636
+ type: AXPWidgetsCatalog.dateTime,
637
+ },
638
+ },
639
+ options: {
640
+ filter: {
641
+ advance: {
642
+ enabled: true,
643
+ },
644
+ },
645
+ sort: {
646
+ enabled: true,
647
+ },
648
+ },
649
+ validations: [
650
+ {
651
+ rule: 'required',
652
+ },
653
+ ],
654
+ },
655
+ {
656
+ name: 'showFirstTimePopup',
657
+ title: `t("notifyUser", { scope: "${i18n}" })`,
658
+ groupId: 'section',
659
+ schema: {
660
+ dataType: 'boolean',
661
+ interface: {
662
+ type: AXPWidgetsCatalog.checkbox,
663
+ },
664
+ },
665
+ },
666
+ ],
667
+ columns: [
668
+ { name: 'versionNumber' },
669
+ { name: 'changeLog' },
670
+ { name: 'publishDate' },
671
+ { name: 'showFirstTimePopup' },
672
+ ],
673
+ interfaces: {
674
+ master: {
675
+ create: {
676
+ sections: [
677
+ {
678
+ id: 'section',
679
+ },
680
+ ],
681
+ properties: [
682
+ {
683
+ name: 'versionNumber',
684
+ layout: {
685
+ positions: {
686
+ lg: {
687
+ order: 1,
688
+ colSpan: 4,
689
+ },
690
+ },
691
+ },
692
+ },
693
+ {
694
+ name: 'publishDate',
695
+ layout: {
696
+ positions: {
697
+ lg: {
698
+ order: 2,
699
+ colSpan: 4,
700
+ },
701
+ },
702
+ },
703
+ },
704
+ {
705
+ name: 'showFirstTimePopup',
706
+ layout: {
707
+ positions: {
708
+ lg: {
709
+ colSpan: 4,
710
+ order: 3,
711
+ },
712
+ },
713
+ },
714
+ },
715
+ {
716
+ name: 'changeLog',
717
+ layout: {
718
+ positions: {
719
+ lg: {
720
+ order: 10,
721
+ colSpan: 12,
722
+ },
723
+ },
724
+ },
725
+ },
726
+ ],
727
+ },
728
+ update: {
729
+ sections: [
730
+ {
731
+ id: 'section',
732
+ },
733
+ ],
734
+ properties: [
735
+ {
736
+ name: 'versionNumber',
737
+ layout: {
738
+ positions: {
739
+ lg: {
740
+ colSpan: 4,
741
+ order: 1,
742
+ },
743
+ },
744
+ },
745
+ },
746
+ {
747
+ name: 'publishDate',
748
+ layout: {
749
+ positions: {
750
+ lg: {
751
+ colSpan: 4,
752
+ order: 2,
753
+ },
754
+ },
755
+ },
756
+ },
757
+ {
758
+ name: 'showFirstTimePopup',
759
+ layout: {
760
+ positions: {
761
+ lg: {
762
+ colSpan: 4,
763
+ order: 3,
764
+ },
765
+ },
766
+ },
767
+ },
768
+ {
769
+ name: 'changeLog',
770
+ layout: {
771
+ positions: {
772
+ lg: {
773
+ colSpan: 12,
774
+ order: 4,
775
+ },
776
+ },
777
+ },
778
+ },
779
+ ],
780
+ },
781
+ single: {
782
+ title: '{{versionNumber}}',
783
+ sections: [
784
+ {
785
+ id: 'section',
786
+ },
787
+ ],
788
+ properties: [
789
+ {
790
+ name: 'versionNumber',
791
+ layout: {
792
+ positions: {
793
+ lg: {
794
+ colSpan: 4,
795
+ },
796
+ },
797
+ },
798
+ },
799
+ {
800
+ name: 'publishDate',
801
+ layout: {
802
+ positions: {
803
+ lg: {
804
+ colSpan: 4,
805
+ },
806
+ },
807
+ },
808
+ },
809
+ {
810
+ name: 'showFirstTimePopup',
811
+ layout: {
812
+ positions: {
813
+ lg: {
814
+ colSpan: 4,
815
+ },
816
+ },
817
+ },
818
+ },
819
+ {
820
+ name: 'changeLog',
821
+ layout: {
822
+ positions: {
823
+ lg: {
824
+ colSpan: 8,
825
+ },
826
+ },
827
+ },
828
+ },
829
+ ],
830
+ actions: [],
831
+ },
832
+ list: {
833
+ actions: [
834
+ {
835
+ title: 'Create New',
836
+ command: 'Entity:Create',
837
+ priority: 'primary',
838
+ type: 'create',
839
+ scope: AXPEntityCommandScope.TypeLevel,
840
+ },
841
+ {
842
+ title: 'Delete Items',
843
+ command: 'Entity:Delete',
844
+ priority: 'primary',
845
+ type: 'delete',
846
+ scope: AXPEntityCommandScope.Selected,
847
+ },
848
+ {
849
+ title: 'Details',
850
+ command: 'Entity:OpenDetails',
851
+ priority: 'secondary',
852
+ type: 'view',
853
+ scope: AXPEntityCommandScope.Individual,
854
+ },
855
+ {
856
+ title: 'Delete',
857
+ command: 'Entity:Delete',
858
+ priority: 'secondary',
859
+ type: 'delete',
860
+ scope: AXPEntityCommandScope.Individual,
861
+ },
862
+ ],
863
+ views: [createAllQueryView({ sorts: [{ name: 'versionNumber', dir: 'desc' }] })],
864
+ },
865
+ },
866
+ },
867
+ };
868
+ return entityDef;
869
+ }
870
+
871
+ //#endregion
872
+ //#region ---- Application Entity Factory ----
873
+ async function applicationEntityFactory() {
874
+ const i18n = RootConfig.config.i18n + ':applications.entities.application';
875
+ const entityDef = {
876
+ module: RootConfig.module.name,
877
+ name: RootConfig.entities.application.name,
878
+ icon: RootConfig.entities.application.icon,
879
+ title: RootConfig.entities.application.title,
880
+ plugins: [
881
+ { name: 'history' },
882
+ {
883
+ name: 'status',
884
+ options: {
885
+ field: 'statusId',
886
+ definition: 'application-management.status.application',
887
+ },
888
+ },
889
+ {
890
+ name: 'category',
891
+ options: {
892
+ appearance: { icon: true, color: true },
893
+ },
894
+ },
895
+ {
896
+ name: 'color',
897
+ options: {
898
+ group: 'branding',
899
+ }
900
+ },
901
+ ],
902
+ formats: {
903
+ individual: RootConfig.entities.application.title,
904
+ plural: RootConfig.entities.application.titlePlural,
905
+ searchResult: {
906
+ title: '{{ title }}',
907
+ description: RootConfig.module.title,
908
+ },
909
+ },
910
+ relatedEntities: [
911
+ {
912
+ entity: `${RootConfig.module.name}.${RootConfig.entities.edition.name}`,
913
+ title: `@${i18n}.groups.editions`,
914
+ conditions: [{ name: 'id', operator: { type: 'in' }, value: '{{ context.eval("editionIds") }}' }],
915
+ actions: [...entityDetailsCrudActions('editionIds')],
916
+ layout: { type: 'page-list', position: 'after', order: 1 },
917
+ persistence: {
918
+ dataPath: 'editions',
919
+ strategy: 'referenced',
920
+ idField: 'editionIds',
921
+ },
922
+ },
923
+ {
924
+ entity: `${RootConfig.module.name}.${RootConfig.entities.appTerm.name}`,
925
+ title: `@${RootConfig.config.i18n}:app-terms.entities.app-term.plural`,
926
+ icon: RootConfig.entities.appTerm.icon,
927
+ conditions: [{ name: 'applicationId', operator: { type: 'equal' }, value: '{{ context.eval("id") }}' }],
928
+ actions: [...entityDetailsCrudActions('applicationId')],
929
+ layout: { type: 'page-list', position: 'after', order: 2 },
930
+ columns: ['title', 'version', 'effectiveDate'],
931
+ },
932
+ ],
933
+ groups: [
934
+ {
935
+ id: 'basic-info',
936
+ title: `@${i18n}.groups.basic-info`,
937
+ },
938
+ {
939
+ id: 'branding',
940
+ title: `@${i18n}.groups.branding`,
941
+ },
942
+ {
943
+ id: 'links',
944
+ title: `@${i18n}.groups.links`,
945
+ },
946
+ {
947
+ id: 'metadata',
948
+ title: `@${i18n}.groups.metadata`,
949
+ },
950
+ {
951
+ id: 'edition-assignment',
952
+ title: `@${i18n}.groups.edition-assignment`,
953
+ },
954
+ ],
955
+ properties: [
956
+ {
957
+ name: 'code',
958
+ title: `@${i18n}.fields.code.title`,
959
+ groupId: 'basic-info',
960
+ options: {
961
+ sort: {
962
+ enabled: true,
963
+ },
964
+ filter: {
965
+ advance: {
966
+ enabled: true,
967
+ },
968
+ inline: {
969
+ enabled: true,
970
+ },
971
+ },
972
+ },
973
+ schema: {
974
+ dataType: 'string',
975
+ interface: {
976
+ type: AXPWidgetsCatalog.text,
977
+ },
978
+ },
979
+ },
980
+ {
981
+ name: 'title',
982
+ title: `@${i18n}.fields.title.title`,
983
+ groupId: 'basic-info',
984
+ options: {
985
+ sort: {
986
+ enabled: true,
987
+ },
988
+ filter: {
989
+ advance: {
990
+ enabled: true,
991
+ },
992
+ inline: {
993
+ enabled: false,
994
+ },
995
+ },
996
+ },
997
+ schema: {
998
+ dataType: 'string',
999
+ interface: {
1000
+ type: AXPWidgetsCatalog.text,
1001
+ },
1002
+ },
1003
+ validations: [
1004
+ {
1005
+ rule: 'required',
1006
+ },
1007
+ ],
1008
+ },
1009
+ {
1010
+ name: 'description',
1011
+ title: `@${i18n}.fields.description.title`,
1012
+ groupId: 'basic-info',
1013
+ options: {
1014
+ sort: {
1015
+ enabled: true,
1016
+ },
1017
+ filter: {
1018
+ advance: {
1019
+ enabled: true,
1020
+ },
1021
+ inline: {
1022
+ enabled: false,
1023
+ },
1024
+ },
1025
+ },
1026
+ schema: {
1027
+ dataType: 'string',
1028
+ interface: {
1029
+ type: AXPWidgetsCatalog.largeText,
1030
+ },
1031
+ },
1032
+ },
1033
+ {
1034
+ name: 'version',
1035
+ title: `@${i18n}.fields.version.title`,
1036
+ groupId: 'basic-info',
1037
+ options: {
1038
+ sort: {
1039
+ enabled: true,
1040
+ },
1041
+ filter: {
1042
+ advance: {
1043
+ enabled: true,
1044
+ },
1045
+ inline: {
1046
+ enabled: false,
1047
+ },
1048
+ },
1049
+ },
1050
+ schema: {
1051
+ dataType: 'string',
1052
+ interface: {
1053
+ type: AXPWidgetsCatalog.text,
1054
+ },
1055
+ },
1056
+ },
1057
+ {
1058
+ name: 'tags',
1059
+ title: `@${i18n}.fields.tags.title`,
1060
+ groupId: 'basic-info',
1061
+ options: {
1062
+ sort: {
1063
+ enabled: false,
1064
+ },
1065
+ filter: {
1066
+ advance: {
1067
+ enabled: true,
1068
+ },
1069
+ inline: {
1070
+ enabled: false,
1071
+ },
1072
+ },
1073
+ },
1074
+ schema: {
1075
+ dataType: 'string',
1076
+ interface: {
1077
+ type: AXPWidgetsCatalog.text,
1078
+ },
1079
+ },
1080
+ },
1081
+ {
1082
+ name: 'icon',
1083
+ title: `@${i18n}.fields.icon.title`,
1084
+ groupId: 'branding',
1085
+ options: {
1086
+ sort: {
1087
+ enabled: false,
1088
+ },
1089
+ filter: {
1090
+ advance: {
1091
+ enabled: false,
1092
+ },
1093
+ inline: {
1094
+ enabled: false,
1095
+ },
1096
+ },
1097
+ },
1098
+ schema: {
1099
+ dataType: 'string',
1100
+ interface: {
1101
+ type: AXPWidgetsCatalog.iconChooser,
1102
+ },
1103
+ },
1104
+ },
1105
+ {
1106
+ name: 'logo',
1107
+ title: `@${i18n}.fields.logo.title`,
1108
+ groupId: 'branding',
1109
+ options: {
1110
+ sort: {
1111
+ enabled: false,
1112
+ },
1113
+ filter: {
1114
+ advance: {
1115
+ enabled: false,
1116
+ },
1117
+ inline: {
1118
+ enabled: false,
1119
+ },
1120
+ },
1121
+ },
1122
+ schema: {
1123
+ dataType: 'string',
1124
+ interface: {
1125
+ type: AXPWidgetsCatalog.image,
1126
+ },
1127
+ },
1128
+ },
1129
+ {
1130
+ name: 'url',
1131
+ title: `@${i18n}.fields.url.title`,
1132
+ groupId: 'links',
1133
+ options: {
1134
+ sort: {
1135
+ enabled: false,
1136
+ },
1137
+ filter: {
1138
+ advance: {
1139
+ enabled: true,
1140
+ },
1141
+ inline: {
1142
+ enabled: false,
1143
+ },
1144
+ },
1145
+ },
1146
+ schema: {
1147
+ dataType: 'string',
1148
+ interface: {
1149
+ type: AXPWidgetsCatalog.text,
1150
+ },
1151
+ },
1152
+ },
1153
+ {
1154
+ name: 'documentationUrl',
1155
+ title: `@${i18n}.fields.documentation-url.title`,
1156
+ groupId: 'links',
1157
+ options: {
1158
+ sort: {
1159
+ enabled: false,
1160
+ },
1161
+ filter: {
1162
+ advance: {
1163
+ enabled: false,
1164
+ },
1165
+ inline: {
1166
+ enabled: false,
1167
+ },
1168
+ },
1169
+ },
1170
+ schema: {
1171
+ dataType: 'string',
1172
+ interface: {
1173
+ type: AXPWidgetsCatalog.text,
1174
+ },
1175
+ },
1176
+ },
1177
+ {
1178
+ name: 'supportEmail',
1179
+ title: `@${i18n}.fields.support-email.title`,
1180
+ groupId: 'links',
1181
+ options: {
1182
+ sort: {
1183
+ enabled: false,
1184
+ },
1185
+ filter: {
1186
+ advance: {
1187
+ enabled: true,
1188
+ },
1189
+ inline: {
1190
+ enabled: false,
1191
+ },
1192
+ },
1193
+ },
1194
+ schema: {
1195
+ dataType: 'string',
1196
+ interface: {
1197
+ type: AXPWidgetsCatalog.text,
1198
+ },
1199
+ },
1200
+ },
1201
+ {
1202
+ name: 'releaseDate',
1203
+ title: `@${i18n}.fields.release-date.title`,
1204
+ groupId: 'metadata',
1205
+ options: {
1206
+ sort: {
1207
+ enabled: true,
1208
+ },
1209
+ filter: {
1210
+ advance: {
1211
+ enabled: true,
1212
+ },
1213
+ inline: {
1214
+ enabled: false,
1215
+ },
1216
+ },
1217
+ },
1218
+ schema: {
1219
+ dataType: 'date',
1220
+ interface: {
1221
+ type: AXPWidgetsCatalog.dateTime,
1222
+ },
1223
+ },
1224
+ },
1225
+ {
1226
+ name: 'isPublic',
1227
+ title: `@${i18n}.fields.is-public.title`,
1228
+ groupId: 'metadata',
1229
+ options: {
1230
+ sort: {
1231
+ enabled: true,
1232
+ },
1233
+ filter: {
1234
+ advance: {
1235
+ enabled: true,
1236
+ },
1237
+ inline: {
1238
+ enabled: true,
1239
+ },
1240
+ },
1241
+ },
1242
+ schema: {
1243
+ dataType: 'boolean',
1244
+ interface: {
1245
+ type: AXPWidgetsCatalog.toggle,
1246
+ },
1247
+ },
1248
+ },
1249
+ ],
1250
+ columns: [{ name: 'code' }, { name: 'title' }, { name: 'version' }, { name: 'statusId' }],
1251
+ interfaces: {
1252
+ master: {
1253
+ create: {
1254
+ sections: [
1255
+ {
1256
+ id: 'basic-info',
1257
+ },
1258
+ {
1259
+ id: 'branding',
1260
+ },
1261
+ {
1262
+ id: 'links',
1263
+ },
1264
+ {
1265
+ id: 'metadata',
1266
+ },
1267
+ ],
1268
+ properties: [
1269
+ {
1270
+ name: 'code',
1271
+ layout: {
1272
+ positions: {
1273
+ lg: {
1274
+ colSpan: 6,
1275
+ order: 1,
1276
+ },
1277
+ },
1278
+ },
1279
+ },
1280
+ {
1281
+ name: 'title',
1282
+ layout: {
1283
+ positions: {
1284
+ lg: {
1285
+ colSpan: 6,
1286
+ order: 2,
1287
+ },
1288
+ },
1289
+ },
1290
+ },
1291
+ {
1292
+ name: 'description',
1293
+ layout: {
1294
+ positions: {
1295
+ lg: {
1296
+ colSpan: 12,
1297
+ order: 3,
1298
+ },
1299
+ },
1300
+ },
1301
+ },
1302
+ {
1303
+ name: 'version',
1304
+ layout: {
1305
+ positions: {
1306
+ lg: {
1307
+ colSpan: 4,
1308
+ order: 4,
1309
+ },
1310
+ },
1311
+ },
1312
+ },
1313
+ {
1314
+ name: 'tags',
1315
+ layout: {
1316
+ positions: {
1317
+ lg: {
1318
+ colSpan: 4,
1319
+ order: 5,
1320
+ },
1321
+ },
1322
+ },
1323
+ },
1324
+ {
1325
+ name: 'icon',
1326
+ layout: {
1327
+ positions: {
1328
+ lg: {
1329
+ colSpan: 6,
1330
+ order: 7,
1331
+ },
1332
+ },
1333
+ },
1334
+ },
1335
+ {
1336
+ name: 'logo',
1337
+ layout: {
1338
+ positions: {
1339
+ lg: {
1340
+ colSpan: 6,
1341
+ order: 8,
1342
+ },
1343
+ },
1344
+ },
1345
+ },
1346
+ {
1347
+ name: 'url',
1348
+ layout: {
1349
+ positions: {
1350
+ lg: {
1351
+ colSpan: 12,
1352
+ order: 9,
1353
+ },
1354
+ },
1355
+ },
1356
+ },
1357
+ {
1358
+ name: 'documentationUrl',
1359
+ layout: {
1360
+ positions: {
1361
+ lg: {
1362
+ colSpan: 6,
1363
+ order: 10,
1364
+ },
1365
+ },
1366
+ },
1367
+ },
1368
+ {
1369
+ name: 'supportEmail',
1370
+ layout: {
1371
+ positions: {
1372
+ lg: {
1373
+ colSpan: 6,
1374
+ order: 11,
1375
+ },
1376
+ },
1377
+ },
1378
+ },
1379
+ {
1380
+ name: 'releaseDate',
1381
+ layout: {
1382
+ positions: {
1383
+ lg: {
1384
+ colSpan: 6,
1385
+ order: 12,
1386
+ },
1387
+ },
1388
+ },
1389
+ },
1390
+ {
1391
+ name: 'isPublic',
1392
+ layout: {
1393
+ positions: {
1394
+ lg: {
1395
+ colSpan: 6,
1396
+ order: 13,
1397
+ },
1398
+ },
1399
+ },
1400
+ },
1401
+ ],
1402
+ },
1403
+ update: {
1404
+ sections: [
1405
+ {
1406
+ id: 'basic-info',
1407
+ },
1408
+ {
1409
+ id: 'branding',
1410
+ },
1411
+ {
1412
+ id: 'links',
1413
+ },
1414
+ {
1415
+ id: 'metadata',
1416
+ },
1417
+ ],
1418
+ properties: [
1419
+ {
1420
+ name: 'code',
1421
+ layout: {
1422
+ positions: {
1423
+ lg: {
1424
+ colSpan: 6,
1425
+ order: 1,
1426
+ },
1427
+ },
1428
+ },
1429
+ },
1430
+ {
1431
+ name: 'title',
1432
+ layout: {
1433
+ positions: {
1434
+ lg: {
1435
+ colSpan: 6,
1436
+ order: 2,
1437
+ },
1438
+ },
1439
+ },
1440
+ },
1441
+ {
1442
+ name: 'description',
1443
+ layout: {
1444
+ positions: {
1445
+ lg: {
1446
+ colSpan: 12,
1447
+ order: 3,
1448
+ },
1449
+ },
1450
+ },
1451
+ },
1452
+ {
1453
+ name: 'version',
1454
+ layout: {
1455
+ positions: {
1456
+ lg: {
1457
+ colSpan: 4,
1458
+ order: 4,
1459
+ },
1460
+ },
1461
+ },
1462
+ },
1463
+ {
1464
+ name: 'tags',
1465
+ layout: {
1466
+ positions: {
1467
+ lg: {
1468
+ colSpan: 4,
1469
+ order: 5,
1470
+ },
1471
+ },
1472
+ },
1473
+ },
1474
+ {
1475
+ name: 'icon',
1476
+ layout: {
1477
+ positions: {
1478
+ lg: {
1479
+ colSpan: 6,
1480
+ order: 7,
1481
+ },
1482
+ },
1483
+ },
1484
+ },
1485
+ {
1486
+ name: 'logo',
1487
+ layout: {
1488
+ positions: {
1489
+ lg: {
1490
+ colSpan: 6,
1491
+ order: 8,
1492
+ },
1493
+ },
1494
+ },
1495
+ },
1496
+ {
1497
+ name: 'url',
1498
+ layout: {
1499
+ positions: {
1500
+ lg: {
1501
+ colSpan: 12,
1502
+ order: 9,
1503
+ },
1504
+ },
1505
+ },
1506
+ },
1507
+ {
1508
+ name: 'documentationUrl',
1509
+ layout: {
1510
+ positions: {
1511
+ lg: {
1512
+ colSpan: 6,
1513
+ order: 10,
1514
+ },
1515
+ },
1516
+ },
1517
+ },
1518
+ {
1519
+ name: 'supportEmail',
1520
+ layout: {
1521
+ positions: {
1522
+ lg: {
1523
+ colSpan: 6,
1524
+ order: 11,
1525
+ },
1526
+ },
1527
+ },
1528
+ },
1529
+ {
1530
+ name: 'releaseDate',
1531
+ layout: {
1532
+ positions: {
1533
+ lg: {
1534
+ colSpan: 6,
1535
+ order: 12,
1536
+ },
1537
+ },
1538
+ },
1539
+ },
1540
+ {
1541
+ name: 'isPublic',
1542
+ layout: {
1543
+ positions: {
1544
+ lg: {
1545
+ colSpan: 6,
1546
+ order: 13,
1547
+ },
1548
+ },
1549
+ },
1550
+ },
1551
+ ],
1552
+ },
1553
+ single: {
1554
+ title: '{{title}}',
1555
+ sections: [
1556
+ {
1557
+ id: 'basic-info',
1558
+ layout: {
1559
+ positions: {
1560
+ lg: {
1561
+ colSpan: 12,
1562
+ },
1563
+ },
1564
+ },
1565
+ },
1566
+ {
1567
+ id: 'branding',
1568
+ layout: {
1569
+ positions: {
1570
+ lg: {
1571
+ colSpan: 12,
1572
+ },
1573
+ },
1574
+ },
1575
+ },
1576
+ {
1577
+ id: 'links',
1578
+ layout: {
1579
+ positions: {
1580
+ lg: {
1581
+ colSpan: 12,
1582
+ },
1583
+ },
1584
+ },
1585
+ },
1586
+ {
1587
+ id: 'metadata',
1588
+ layout: {
1589
+ positions: {
1590
+ lg: {
1591
+ colSpan: 12,
1592
+ },
1593
+ },
1594
+ },
1595
+ },
1596
+ ],
1597
+ properties: [
1598
+ {
1599
+ name: 'code',
1600
+ layout: {
1601
+ positions: {
1602
+ lg: {
1603
+ colSpan: 6,
1604
+ order: 1,
1605
+ },
1606
+ },
1607
+ },
1608
+ },
1609
+ {
1610
+ name: 'title',
1611
+ layout: {
1612
+ positions: {
1613
+ lg: {
1614
+ colSpan: 6,
1615
+ order: 2,
1616
+ },
1617
+ },
1618
+ },
1619
+ },
1620
+ {
1621
+ name: 'description',
1622
+ layout: {
1623
+ positions: {
1624
+ lg: {
1625
+ colSpan: 12,
1626
+ order: 3,
1627
+ },
1628
+ },
1629
+ },
1630
+ },
1631
+ {
1632
+ name: 'version',
1633
+ layout: {
1634
+ positions: {
1635
+ lg: {
1636
+ colSpan: 4,
1637
+ order: 4,
1638
+ },
1639
+ },
1640
+ },
1641
+ },
1642
+ {
1643
+ name: 'tags',
1644
+ layout: {
1645
+ positions: {
1646
+ lg: {
1647
+ colSpan: 4,
1648
+ order: 5,
1649
+ },
1650
+ },
1651
+ },
1652
+ },
1653
+ {
1654
+ name: 'icon',
1655
+ layout: {
1656
+ positions: {
1657
+ lg: {
1658
+ colSpan: 6,
1659
+ order: 7,
1660
+ },
1661
+ },
1662
+ },
1663
+ },
1664
+ {
1665
+ name: 'logo',
1666
+ layout: {
1667
+ positions: {
1668
+ lg: {
1669
+ colSpan: 6,
1670
+ order: 8,
1671
+ },
1672
+ },
1673
+ },
1674
+ },
1675
+ {
1676
+ name: 'url',
1677
+ layout: {
1678
+ positions: {
1679
+ lg: {
1680
+ colSpan: 12,
1681
+ order: 9,
1682
+ },
1683
+ },
1684
+ },
1685
+ },
1686
+ {
1687
+ name: 'documentationUrl',
1688
+ layout: {
1689
+ positions: {
1690
+ lg: {
1691
+ colSpan: 6,
1692
+ order: 10,
1693
+ },
1694
+ },
1695
+ },
1696
+ },
1697
+ {
1698
+ name: 'supportEmail',
1699
+ layout: {
1700
+ positions: {
1701
+ lg: {
1702
+ colSpan: 6,
1703
+ order: 11,
1704
+ },
1705
+ },
1706
+ },
1707
+ },
1708
+ {
1709
+ name: 'releaseDate',
1710
+ layout: {
1711
+ positions: {
1712
+ lg: {
1713
+ colSpan: 6,
1714
+ order: 12,
1715
+ },
1716
+ },
1717
+ },
1718
+ },
1719
+ {
1720
+ name: 'isPublic',
1721
+ layout: {
1722
+ positions: {
1723
+ lg: {
1724
+ colSpan: 6,
1725
+ order: 13,
1726
+ },
1727
+ },
1728
+ },
1729
+ },
1730
+ ],
1731
+ actions: [...entityMasterRecordActions()],
1732
+ },
1733
+ list: {
1734
+ actions: [...entityMasterCrudActions()],
1735
+ views: [
1736
+ createAllQueryView({
1737
+ sorts: [{ name: 'title', dir: 'asc' }],
1738
+ }),
1739
+ ],
1740
+ },
1741
+ },
1742
+ },
1743
+ };
1744
+ return entityDef;
1745
+ }
1746
+ //#endregion
1747
+
1748
+ //#endregion
1749
+ //#region ---- Edition Entity Factory ----
1750
+ async function editionEntityFactory() {
1751
+ const i18n = RootConfig.config.i18n + ':editions.entities.edition';
1752
+ const entityDef = {
1753
+ module: RootConfig.module.name,
1754
+ name: RootConfig.entities.edition.name,
1755
+ icon: RootConfig.entities.edition.icon,
1756
+ title: RootConfig.entities.edition.title,
1757
+ formats: {
1758
+ individual: RootConfig.entities.edition.title,
1759
+ plural: RootConfig.entities.edition.titlePlural,
1760
+ searchResult: {
1761
+ title: '{{ title }}',
1762
+ description: RootConfig.module.title,
1763
+ },
1764
+ },
1765
+ relatedEntities: [
1766
+ {
1767
+ entity: `${"SubscriptionManagement"}.${"Subscription"}`,
1768
+ title: `@${RootConfig.config.i18n}:editions.entities.related-entities.subscriptions.title`,
1769
+ icon: "fa-light fa-credit-card",
1770
+ columns: ['planId', 'statusId', 'startDate', 'endDate'],
1771
+ conditions: [
1772
+ { name: 'subscriberType', operator: { type: 'equal' }, value: 'ApplicationEdition' },
1773
+ { name: 'subscriberId', operator: { type: 'equal' }, value: '{{ context.eval("id") }}' },
1774
+ ],
1775
+ actions: [...entityDetailsCrudActions('subscriberId')],
1776
+ layout: { type: 'page-list', position: 'after', order: 1 },
1777
+ },
1778
+ ],
1779
+ groups: [
1780
+ {
1781
+ id: 'basic-info',
1782
+ title: `@${i18n}.groups.basic-info`,
1783
+ },
1784
+ ],
1785
+ properties: [
1786
+ {
1787
+ name: 'title',
1788
+ title: `@${i18n}.fields.title.title`,
1789
+ groupId: 'basic-info',
1790
+ options: {
1791
+ sort: {
1792
+ enabled: true,
1793
+ },
1794
+ filter: {
1795
+ advance: {
1796
+ enabled: true,
1797
+ },
1798
+ inline: {
1799
+ enabled: false,
1800
+ },
1801
+ },
1802
+ },
1803
+ schema: {
1804
+ dataType: 'string',
1805
+ interface: {
1806
+ type: AXPWidgetsCatalog.text,
1807
+ },
1808
+ },
1809
+ validations: [
1810
+ {
1811
+ rule: 'required',
1812
+ },
1813
+ ],
1814
+ },
1815
+ {
1816
+ name: 'description',
1817
+ title: `@${i18n}.fields.description.title`,
1818
+ groupId: 'basic-info',
1819
+ options: {
1820
+ sort: {
1821
+ enabled: true,
1822
+ },
1823
+ filter: {
1824
+ advance: {
1825
+ enabled: true,
1826
+ },
1827
+ inline: {
1828
+ enabled: false,
1829
+ },
1830
+ },
1831
+ },
1832
+ schema: {
1833
+ dataType: 'string',
1834
+ interface: {
1835
+ type: AXPWidgetsCatalog.largeText,
1836
+ },
1837
+ },
1838
+ },
1839
+ {
1840
+ name: 'modulesAndFeatures',
1841
+ title: `@${i18n}.fields.modules-and-features.title`,
1842
+ groupId: 'basic-info',
1843
+ schema: {
1844
+ dataType: 'object',
1845
+ interface: {
1846
+ type: 'module-feature-editor',
1847
+ },
1848
+ },
1849
+ },
1850
+ ],
1851
+ columns: [{ name: 'title' }, { name: 'description' }],
1852
+ interfaces: {
1853
+ master: {
1854
+ create: {
1855
+ sections: [
1856
+ {
1857
+ id: 'basic-info',
1858
+ },
1859
+ ],
1860
+ properties: [
1861
+ {
1862
+ name: 'title',
1863
+ layout: {
1864
+ positions: {
1865
+ lg: {
1866
+ colSpan: 12,
1867
+ order: 1,
1868
+ },
1869
+ },
1870
+ },
1871
+ },
1872
+ {
1873
+ name: 'description',
1874
+ layout: {
1875
+ positions: {
1876
+ lg: {
1877
+ colSpan: 12,
1878
+ order: 2,
1879
+ },
1880
+ },
1881
+ },
1882
+ },
1883
+ {
1884
+ name: 'modulesAndFeatures',
1885
+ layout: {
1886
+ positions: {
1887
+ lg: {
1888
+ colSpan: 12,
1889
+ order: 3,
1890
+ },
1891
+ },
1892
+ },
1893
+ },
1894
+ ],
1895
+ },
1896
+ update: {
1897
+ sections: [
1898
+ {
1899
+ id: 'basic-info',
1900
+ },
1901
+ ],
1902
+ properties: [
1903
+ {
1904
+ name: 'title',
1905
+ layout: {
1906
+ positions: {
1907
+ lg: {
1908
+ colSpan: 12,
1909
+ order: 1,
1910
+ },
1911
+ },
1912
+ },
1913
+ },
1914
+ {
1915
+ name: 'description',
1916
+ layout: {
1917
+ positions: {
1918
+ lg: {
1919
+ colSpan: 12,
1920
+ order: 2,
1921
+ },
1922
+ },
1923
+ },
1924
+ },
1925
+ {
1926
+ name: 'modulesAndFeatures',
1927
+ layout: {
1928
+ positions: {
1929
+ lg: {
1930
+ colSpan: 12,
1931
+ order: 3,
1932
+ },
1933
+ },
1934
+ },
1935
+ },
1936
+ ],
1937
+ },
1938
+ single: {
1939
+ title: '{{title}}',
1940
+ sections: [
1941
+ {
1942
+ id: 'basic-info',
1943
+ layout: {
1944
+ positions: {
1945
+ lg: {
1946
+ colSpan: 12,
1947
+ },
1948
+ },
1949
+ },
1950
+ },
1951
+ ],
1952
+ properties: [
1953
+ {
1954
+ name: 'title',
1955
+ layout: {
1956
+ positions: {
1957
+ lg: {
1958
+ colSpan: 12,
1959
+ order: 1,
1960
+ },
1961
+ },
1962
+ },
1963
+ },
1964
+ {
1965
+ name: 'description',
1966
+ layout: {
1967
+ positions: {
1968
+ lg: {
1969
+ colSpan: 12,
1970
+ order: 2,
1971
+ },
1972
+ },
1973
+ },
1974
+ },
1975
+ {
1976
+ name: 'modulesAndFeatures',
1977
+ layout: {
1978
+ positions: {
1979
+ lg: {
1980
+ colSpan: 12,
1981
+ order: 3,
1982
+ },
1983
+ },
1984
+ },
1985
+ },
1986
+ ],
1987
+ actions: [...entityMasterRecordActions()],
1988
+ },
1989
+ list: {
1990
+ actions: [
1991
+ ...entityMasterCrudActions(),
1992
+ {
1993
+ title: '@platform-management:menu-management.actions.customize-menu.title',
1994
+ icon: 'fa-light fa-bars',
1995
+ command: {
1996
+ name: 'customize-menu',
1997
+ options: {
1998
+ scopePrefix: 'edition',
1999
+ },
2000
+ },
2001
+ priority: 'secondary',
2002
+ type: 'view',
2003
+ scope: AXPEntityCommandScope.Individual,
2004
+ },
2005
+ ],
2006
+ views: [
2007
+ createAllQueryView({
2008
+ sorts: [{ name: 'title', dir: 'asc' }],
2009
+ }),
2010
+ ],
2011
+ },
2012
+ },
2013
+ },
2014
+ };
2015
+ return entityDef;
2016
+ }
2017
+ //#endregion
2018
+
2019
+ //#region ---- Contracts barrel ----
2020
+ //#endregion
2021
+
2022
+ /**
2023
+ * Generated bundle index. Do not edit.
2024
+ */
2025
+
2026
+ export { AXMApplicationManagementFeatureKeys, AXMApplicationManagementModuleConst, AXMPermissionsKeys, AXPApplicationInfoSettings, AXPApplicationManagementMenuKeys, RootConfig, appTermEntityEntityFactory, appVersionEntityEntityFactory, applicationEntityFactory, editionEntityFactory, getAppVersionSeenKey };
2027
+ //# sourceMappingURL=acorex-platform-module-application-management-client-contracts.mjs.map