@acorex/modules 20.3.0-next.7 → 20.3.0-next.8

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 (96) hide show
  1. package/common/index.d.ts +1 -0
  2. package/data-management/index.d.ts +22 -3
  3. package/fesm2022/acorex-modules-common.mjs +97 -6
  4. package/fesm2022/acorex-modules-common.mjs.map +1 -1
  5. package/fesm2022/{acorex-modules-contact-management-emergency-contact.entity-D75qsDor.mjs → acorex-modules-contact-management-emergency-contact.entity-3vnkpSvv.mjs} +10 -9
  6. package/fesm2022/acorex-modules-contact-management-emergency-contact.entity-3vnkpSvv.mjs.map +1 -0
  7. package/fesm2022/acorex-modules-contact-management.mjs +1 -1
  8. package/fesm2022/acorex-modules-content-management.mjs +6 -0
  9. package/fesm2022/acorex-modules-content-management.mjs.map +1 -1
  10. package/fesm2022/acorex-modules-conversation.mjs +3 -3
  11. package/fesm2022/acorex-modules-conversation.mjs.map +1 -1
  12. package/fesm2022/acorex-modules-dashboard-management.mjs +11 -11
  13. package/fesm2022/acorex-modules-dashboard-management.mjs.map +1 -1
  14. package/fesm2022/acorex-modules-data-management.mjs +924 -8
  15. package/fesm2022/acorex-modules-data-management.mjs.map +1 -1
  16. package/fesm2022/{acorex-modules-document-management-acorex-modules-document-management-DhEDQZru.mjs → acorex-modules-document-management-acorex-modules-document-management-DUkSbCDD.mjs} +91 -58
  17. package/fesm2022/{acorex-modules-document-management-acorex-modules-document-management-DhEDQZru.mjs.map → acorex-modules-document-management-acorex-modules-document-management-DUkSbCDD.mjs.map} +1 -1
  18. package/fesm2022/{acorex-modules-document-management-attachment-widget.component-Bx2Ps7uX.mjs → acorex-modules-document-management-attachment-widget.component-Ded4rmGD.mjs} +2 -2
  19. package/fesm2022/{acorex-modules-document-management-attachment-widget.component-Bx2Ps7uX.mjs.map → acorex-modules-document-management-attachment-widget.component-Ded4rmGD.mjs.map} +1 -1
  20. package/fesm2022/{acorex-modules-document-management-create-folder-dialog.component-B26m8qWj.mjs → acorex-modules-document-management-create-folder-dialog.component-DdN8ilG4.mjs} +9 -9
  21. package/fesm2022/{acorex-modules-document-management-create-folder-dialog.component-B26m8qWj.mjs.map → acorex-modules-document-management-create-folder-dialog.component-DdN8ilG4.mjs.map} +1 -1
  22. package/fesm2022/{acorex-modules-document-management-details-view.component-3DmulyK_.mjs → acorex-modules-document-management-details-view.component-DkeoYFvx.mjs} +2 -2
  23. package/fesm2022/{acorex-modules-document-management-details-view.component-3DmulyK_.mjs.map → acorex-modules-document-management-details-view.component-DkeoYFvx.mjs.map} +1 -1
  24. package/fesm2022/{acorex-modules-document-management-document-signature-popup.component-DmR6gFdD.mjs → acorex-modules-document-management-document-signature-popup.component-DuPMRUTY.mjs} +2 -2
  25. package/fesm2022/{acorex-modules-document-management-document-signature-popup.component-DmR6gFdD.mjs.map → acorex-modules-document-management-document-signature-popup.component-DuPMRUTY.mjs.map} +1 -1
  26. package/fesm2022/{acorex-modules-document-management-drive-choose.component-BNyPOrzl.mjs → acorex-modules-document-management-drive-choose.component-CKMMZHrc.mjs} +2 -2
  27. package/fesm2022/{acorex-modules-document-management-drive-choose.component-BNyPOrzl.mjs.map → acorex-modules-document-management-drive-choose.component-CKMMZHrc.mjs.map} +1 -1
  28. package/fesm2022/{acorex-modules-document-management-drive.component-D5X_bI5D.mjs → acorex-modules-document-management-drive.component-Dh2hcCpJ.mjs} +2 -2
  29. package/fesm2022/{acorex-modules-document-management-drive.component-D5X_bI5D.mjs.map → acorex-modules-document-management-drive.component-Dh2hcCpJ.mjs.map} +1 -1
  30. package/fesm2022/{acorex-modules-document-management-large-icons-view.component-AzDtXQqt.mjs → acorex-modules-document-management-large-icons-view.component-DGUbA3xa.mjs} +2 -2
  31. package/fesm2022/{acorex-modules-document-management-large-icons-view.component-AzDtXQqt.mjs.map → acorex-modules-document-management-large-icons-view.component-DGUbA3xa.mjs.map} +1 -1
  32. package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-DCG_v9JT.mjs → acorex-modules-document-management-large-tiles-view.component-Bt6Py82M.mjs} +2 -2
  33. package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-DCG_v9JT.mjs.map → acorex-modules-document-management-large-tiles-view.component-Bt6Py82M.mjs.map} +1 -1
  34. package/fesm2022/{acorex-modules-document-management-list-view.component-Cb2OVElN.mjs → acorex-modules-document-management-list-view.component-DQllDW_Q.mjs} +2 -2
  35. package/fesm2022/{acorex-modules-document-management-list-view.component-Cb2OVElN.mjs.map → acorex-modules-document-management-list-view.component-DQllDW_Q.mjs.map} +1 -1
  36. package/fesm2022/{acorex-modules-document-management-meta-choose-popup.component-DsSo9G8S.mjs → acorex-modules-document-management-meta-choose-popup.component-BSYX7W79.mjs} +4 -4
  37. package/fesm2022/acorex-modules-document-management-meta-choose-popup.component-BSYX7W79.mjs.map +1 -0
  38. package/fesm2022/{acorex-modules-document-management-small-icons-view.component-EN4ttbvx.mjs → acorex-modules-document-management-small-icons-view.component-Umh8Z9qn.mjs} +2 -2
  39. package/fesm2022/{acorex-modules-document-management-small-icons-view.component-EN4ttbvx.mjs.map → acorex-modules-document-management-small-icons-view.component-Umh8Z9qn.mjs.map} +1 -1
  40. package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-C-HjbNwe.mjs → acorex-modules-document-management-small-tiles-view.component-CBgWWCdt.mjs} +2 -2
  41. package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-C-HjbNwe.mjs.map → acorex-modules-document-management-small-tiles-view.component-CBgWWCdt.mjs.map} +1 -1
  42. package/fesm2022/acorex-modules-document-management.mjs +1 -1
  43. package/fesm2022/{acorex-modules-human-capital-management-acorex-modules-human-capital-management-BQ_KNd7M.mjs → acorex-modules-human-capital-management-acorex-modules-human-capital-management-CdAtMLlz.mjs} +93 -213
  44. package/fesm2022/acorex-modules-human-capital-management-acorex-modules-human-capital-management-CdAtMLlz.mjs.map +1 -0
  45. package/fesm2022/{acorex-modules-human-capital-management-employee-skill.entity-3wofaUXu.mjs → acorex-modules-human-capital-management-employee-skill.entity-BllN9Giu.mjs} +2 -2
  46. package/fesm2022/{acorex-modules-human-capital-management-employee-skill.entity-3wofaUXu.mjs.map → acorex-modules-human-capital-management-employee-skill.entity-BllN9Giu.mjs.map} +1 -1
  47. package/fesm2022/{acorex-modules-human-capital-management-employee.entity-1fVathnk.mjs → acorex-modules-human-capital-management-employee.entity-CKofleq7.mjs} +2 -2
  48. package/fesm2022/{acorex-modules-human-capital-management-employee.entity-1fVathnk.mjs.map → acorex-modules-human-capital-management-employee.entity-CKofleq7.mjs.map} +1 -1
  49. package/fesm2022/{acorex-modules-human-capital-management-employment-type.entity-BWrwli0P.mjs → acorex-modules-human-capital-management-employment-type.entity-DfrErkOs.mjs} +2 -2
  50. package/fesm2022/{acorex-modules-human-capital-management-employment-type.entity-BWrwli0P.mjs.map → acorex-modules-human-capital-management-employment-type.entity-DfrErkOs.mjs.map} +1 -1
  51. package/fesm2022/{acorex-modules-human-capital-management-leave-request.entity-4ddc6R_K.mjs → acorex-modules-human-capital-management-leave-request.entity-Bz_4gE7D.mjs} +2 -2
  52. package/fesm2022/{acorex-modules-human-capital-management-leave-request.entity-4ddc6R_K.mjs.map → acorex-modules-human-capital-management-leave-request.entity-Bz_4gE7D.mjs.map} +1 -1
  53. package/fesm2022/{acorex-modules-human-capital-management-leave-type.entity-DYYJVRju.mjs → acorex-modules-human-capital-management-leave-type.entity-CFqmKzkn.mjs} +2 -2
  54. package/fesm2022/{acorex-modules-human-capital-management-leave-type.entity-DYYJVRju.mjs.map → acorex-modules-human-capital-management-leave-type.entity-CFqmKzkn.mjs.map} +1 -1
  55. package/fesm2022/{acorex-modules-human-capital-management-position-assignment.entity-DIqdhqk4.mjs → acorex-modules-human-capital-management-position-assignment.entity-BYqhKD95.mjs} +36 -4
  56. package/fesm2022/acorex-modules-human-capital-management-position-assignment.entity-BYqhKD95.mjs.map +1 -0
  57. package/fesm2022/{acorex-modules-human-capital-management-skill-level.entity-BN67pBaa.mjs → acorex-modules-human-capital-management-skill-level.entity-D4WoE6MR.mjs} +2 -2
  58. package/fesm2022/{acorex-modules-human-capital-management-skill-level.entity-BN67pBaa.mjs.map → acorex-modules-human-capital-management-skill-level.entity-D4WoE6MR.mjs.map} +1 -1
  59. package/fesm2022/{acorex-modules-human-capital-management-skill.entity-D4CglCC7.mjs → acorex-modules-human-capital-management-skill.entity-DqUyAAgW.mjs} +2 -2
  60. package/fesm2022/{acorex-modules-human-capital-management-skill.entity-D4CglCC7.mjs.map → acorex-modules-human-capital-management-skill.entity-DqUyAAgW.mjs.map} +1 -1
  61. package/fesm2022/acorex-modules-human-capital-management.mjs +1 -1
  62. package/fesm2022/acorex-modules-notification-management.mjs +5 -5
  63. package/fesm2022/acorex-modules-notification-management.mjs.map +1 -1
  64. package/fesm2022/{acorex-modules-organization-management-org-chart.page-keZ4Gk7y.mjs → acorex-modules-organization-management-org-chart.page-Caboa2La.mjs} +75 -23
  65. package/fesm2022/acorex-modules-organization-management-org-chart.page-Caboa2La.mjs.map +1 -0
  66. package/fesm2022/acorex-modules-organization-management.mjs +5 -2
  67. package/fesm2022/acorex-modules-organization-management.mjs.map +1 -1
  68. package/fesm2022/acorex-modules-project-management-email-jsa.command-DS9XIlQ0.mjs +91 -0
  69. package/fesm2022/acorex-modules-project-management-email-jsa.command-DS9XIlQ0.mjs.map +1 -0
  70. package/fesm2022/acorex-modules-project-management-reassign-jsa.command-DbxxI3e3.mjs +88 -0
  71. package/fesm2022/acorex-modules-project-management-reassign-jsa.command-DbxxI3e3.mjs.map +1 -0
  72. package/fesm2022/acorex-modules-project-management-sign-jsa.command-cRf0DeTE.mjs +75 -0
  73. package/fesm2022/acorex-modules-project-management-sign-jsa.command-cRf0DeTE.mjs.map +1 -0
  74. package/fesm2022/acorex-modules-project-management.mjs +6 -6
  75. package/fesm2022/acorex-modules-report-management.mjs +4 -2
  76. package/fesm2022/acorex-modules-report-management.mjs.map +1 -1
  77. package/fesm2022/acorex-modules-security-management.mjs +347 -3
  78. package/fesm2022/acorex-modules-security-management.mjs.map +1 -1
  79. package/fesm2022/acorex-modules-task-management.mjs +18 -11
  80. package/fesm2022/acorex-modules-task-management.mjs.map +1 -1
  81. package/human-capital-management/index.d.ts +1 -1
  82. package/package.json +1 -1
  83. package/security-management/index.d.ts +42 -3
  84. package/fesm2022/acorex-modules-contact-management-emergency-contact.entity-D75qsDor.mjs.map +0 -1
  85. package/fesm2022/acorex-modules-document-management-meta-choose-popup.component-DsSo9G8S.mjs.map +0 -1
  86. package/fesm2022/acorex-modules-document-management-rename-node-dialog.component-B7gcoDDb.mjs +0 -101
  87. package/fesm2022/acorex-modules-document-management-rename-node-dialog.component-B7gcoDDb.mjs.map +0 -1
  88. package/fesm2022/acorex-modules-human-capital-management-acorex-modules-human-capital-management-BQ_KNd7M.mjs.map +0 -1
  89. package/fesm2022/acorex-modules-human-capital-management-position-assignment.entity-DIqdhqk4.mjs.map +0 -1
  90. package/fesm2022/acorex-modules-organization-management-org-chart.page-keZ4Gk7y.mjs.map +0 -1
  91. package/fesm2022/acorex-modules-project-management-email-jsa.command-BuT5Vj4Y.mjs +0 -115
  92. package/fesm2022/acorex-modules-project-management-email-jsa.command-BuT5Vj4Y.mjs.map +0 -1
  93. package/fesm2022/acorex-modules-project-management-reassign-jsa.command-B3OsacOq.mjs +0 -113
  94. package/fesm2022/acorex-modules-project-management-reassign-jsa.command-B3OsacOq.mjs.map +0 -1
  95. package/fesm2022/acorex-modules-project-management-sign-jsa.command-CJWg6Ntg.mjs +0 -77
  96. package/fesm2022/acorex-modules-project-management-sign-jsa.command-CJWg6Ntg.mjs.map +0 -1
package/common/index.d.ts CHANGED
@@ -148,6 +148,7 @@ declare const AXPWidgetsList: {
148
148
  TimeDuration: string;
149
149
  DocumentUploader: string;
150
150
  MetaSelector: string;
151
+ MetaDataForm: string;
151
152
  ColumnFilterSelector: string;
152
153
  DataListFilter: string;
153
154
  };
@@ -6,7 +6,7 @@ import { AXPEntity, AXPMenuProvider, AXPMenuProviderContext, AXPSearchCommandPro
6
6
  import { AXPEntityModel, AXMEntityCrudServiceImpl, AXPEntityDefinitionLoader, AXPEntityDefinitionPreloader, AXPEntityPreloadEntity } from '@acorex/platform/layout/entity';
7
7
  import { AXDataSource } from '@acorex/cdk/common';
8
8
  import { AXDropListDroppedEvent } from '@acorex/cdk/drag-drop';
9
- import { AXPFilterOperation, AXPFilterLogic } from '@acorex/platform/core';
9
+ import { AXPFilterOperation, AXPFilterLogic, AXPExpressionEvaluatorScopeProvider, AXPExpressionEvaluatorScopeProviderContext } from '@acorex/platform/core';
10
10
 
11
11
  declare class AXMQueryEntityModule {
12
12
  static ɵfac: i0.ɵɵFactoryDeclaration<AXMQueryEntityModule, never>;
@@ -26,9 +26,15 @@ declare class AXMMetaDataDefinitionEntityModule {
26
26
  static ɵinj: i0.ɵɵInjectorDeclaration<AXMMetaDataDefinitionEntityModule>;
27
27
  }
28
28
 
29
+ declare class AXMMetaDataFeatureModule {
30
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXMMetaDataFeatureModule, never>;
31
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AXMMetaDataFeatureModule, never, [typeof i1.AXPLayoutBuilderModule], never>;
32
+ static ɵinj: i0.ɵɵInjectorDeclaration<AXMMetaDataFeatureModule>;
33
+ }
34
+
29
35
  declare class AXMDataManagementModule {
30
36
  static ɵfac: i0.ɵɵFactoryDeclaration<AXMDataManagementModule, never>;
31
- static ɵmod: i0.ɵɵNgModuleDeclaration<AXMDataManagementModule, never, [typeof i1.AXPLayoutBuilderModule, typeof AXMQueryEntityModule, typeof AXMDataSourceEntityModule, typeof AXMMetaDataDefinitionEntityModule], never>;
37
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AXMDataManagementModule, never, [typeof i1.AXPLayoutBuilderModule, typeof AXMQueryEntityModule, typeof AXMDataSourceEntityModule, typeof AXMMetaDataDefinitionEntityModule, typeof AXMMetaDataFeatureModule], never>;
32
38
  static ɵinj: i0.ɵɵInjectorDeclaration<AXMDataManagementModule>;
33
39
  }
34
40
 
@@ -495,5 +501,18 @@ declare class AXPQueryBuilderWidgetDesignerComponent extends AXPValueWidgetCompo
495
501
  static ɵcmp: i0.ɵɵComponentDeclaration<AXPQueryBuilderWidgetDesignerComponent, "axp-query-builder-widget-designer", never, {}, {}, never, never, true, never>;
496
502
  }
497
503
 
498
- export { AXMColumnFilterSelectorWidget, AXMColumnFilterSelectorWidgetColumnComponent, AXMColumnFilterSelectorWidgetEditComponent, AXMColumnFilterSelectorWidgetFilterComponent, AXMColumnFilterSelectorWidgetPrintComponent, AXMColumnFilterSelectorWidgetViewComponent, AXMDataManagementModule, AXMDataSourceEntityModule, AXMDataSourceOutputType, AXMDataSourceService, AXMDataSourceServiceImpl, AXMDataSourceType, AXMEntityProvider, AXMMenuProvider, AXMMetaDataDefinitionEntityModule, AXMMetaDataDefinitionService, AXMPMetaDataDefinitionServiceImpl, AXMQueryEntityModule, AXMQueryService, AXMQueryServiceImpl, AXMSearchCommandProvider, AXMSettingProvider, AXM_COLUMN_DEF_WIDGET, AXM_FILTER_DEF_WIDGET, AXPQueryBuilderWidget, AXPQueryBuilderWidgetColumnComponent, AXPQueryBuilderWidgetDesignerComponent, AXPQueryBuilderWidgetEditComponent, AXPQueryBuilderWidgetViewComponent, RootConfig, dataSourceEntityFactory, metaDataDefinitionFactory, queryFactory };
504
+ /**
505
+ * Metadata Evaluator Scope Provider
506
+ *
507
+ * Provides expression evaluation capabilities for metadata operations:
508
+ * - Get category IDs from context/expressions
509
+ * - Retrieve metadata by category IDs
510
+ * - Access category metadata inheritance
511
+ */
512
+ declare class AXMMetadataEvaluatorScopeProvider implements AXPExpressionEvaluatorScopeProvider {
513
+ private readonly queryService;
514
+ provide(context: AXPExpressionEvaluatorScopeProviderContext): Promise<void>;
515
+ }
516
+
517
+ export { AXMColumnFilterSelectorWidget, AXMColumnFilterSelectorWidgetColumnComponent, AXMColumnFilterSelectorWidgetEditComponent, AXMColumnFilterSelectorWidgetFilterComponent, AXMColumnFilterSelectorWidgetPrintComponent, AXMColumnFilterSelectorWidgetViewComponent, AXMDataManagementModule, AXMDataSourceEntityModule, AXMDataSourceOutputType, AXMDataSourceService, AXMDataSourceServiceImpl, AXMDataSourceType, AXMEntityProvider, AXMMenuProvider, AXMMetaDataDefinitionEntityModule, AXMMetaDataDefinitionService, AXMMetaDataFeatureModule, AXMMetadataEvaluatorScopeProvider, AXMPMetaDataDefinitionServiceImpl, AXMQueryEntityModule, AXMQueryService, AXMQueryServiceImpl, AXMSearchCommandProvider, AXMSettingProvider, AXM_COLUMN_DEF_WIDGET, AXM_FILTER_DEF_WIDGET, AXPQueryBuilderWidget, AXPQueryBuilderWidgetColumnComponent, AXPQueryBuilderWidgetDesignerComponent, AXPQueryBuilderWidgetEditComponent, AXPQueryBuilderWidgetViewComponent, RootConfig, dataSourceEntityFactory, metaDataDefinitionFactory, queryFactory };
499
518
  export type { AXMColumnFilterSelectorWidgetConfigType, AXMDataManagementQueryEntityModel, AXMDataSourceEntityModel, AXMDataSourceFilter, AXMDataSourceOutputTypeOption, AXMDataSourceTypeOption, AXMMetaDataDefinitionEntityModel, AXMQueryEntityModel, AXPQueryBuilderWidgetConfigType, ColumnFilterValue, QueryBuilderCondition$2 as QueryBuilderCondition };
@@ -74,6 +74,7 @@ const AXPWidgetsList = {
74
74
  TimeDuration: 'time-duration',
75
75
  DocumentUploader: 'document-uploader',
76
76
  MetaSelector: 'meta-selector-editor',
77
+ MetaDataForm: 'meta-data-form-editor',
77
78
  ColumnFilterSelector: 'column-filter-selector-editor',
78
79
  DataListFilter: 'data-list-filter-editor',
79
80
  },
@@ -1081,6 +1082,8 @@ const categoryPlugin = {
1081
1082
  const categoryEntityName = `${baseEntityName}Category`;
1082
1083
  const propertyName = options?.propertyName?.trim()?.length ? options.propertyName : 'categoryIds';
1083
1084
  const allowMultiple = options?.allowMultiple ?? true;
1085
+ const enableAppearance = options?.enableAppearance ?? false;
1086
+ const enableMetaDataSelector = options?.enableMetaDataSelector ?? false;
1084
1087
  // Ensure group exists (prefer basic-info)
1085
1088
  const groups = ctx.groups.list() ?? [];
1086
1089
  const hasBasic = groups.some((g) => g.id === 'basic-info');
@@ -1153,6 +1156,8 @@ const categoryPlugin = {
1153
1156
  entity: `${moduleName}.${categoryEntityName}`,
1154
1157
  propertyName,
1155
1158
  allowMultiple,
1159
+ enableAppearance,
1160
+ enableMetaDataSelector,
1156
1161
  };
1157
1162
  },
1158
1163
  };
@@ -1169,14 +1174,48 @@ class AXMEntityCategoryProvider {
1169
1174
  if (entityName.endsWith('Category')) {
1170
1175
  const fullKey = `${moduleName}.${entityName}`;
1171
1176
  const dataService = runInInjectionContext(this.injector, () => new AXMEntityCrudServiceImpl(fullKey));
1177
+ // Check if base entity has appearance enabled using lazy injection
1178
+ const baseEntityName = entityName.replace('Category', '');
1179
+ let enableAppearance = false;
1180
+ let enableMetaDataSelector = false;
1181
+ try {
1182
+ // Use lazy injection to avoid circular dependency
1183
+ const entityRegistry = runInInjectionContext(this.injector, () => {
1184
+ try {
1185
+ return inject(AXPEntityDefinitionRegistryService);
1186
+ }
1187
+ catch {
1188
+ return null;
1189
+ }
1190
+ });
1191
+ if (entityRegistry) {
1192
+ try {
1193
+ const baseEntity = await entityRegistry.resolve(moduleName, baseEntityName);
1194
+ if (baseEntity?.extensions?.category?.enableAppearance) {
1195
+ enableAppearance = true;
1196
+ }
1197
+ if (baseEntity?.extensions?.category?.enableMetaDataSelector) {
1198
+ enableMetaDataSelector = true;
1199
+ }
1200
+ }
1201
+ catch (error) {
1202
+ // Base entity not found or error loading, continue with default behavior
1203
+ console.warn(`Could not load base entity ${moduleName}.${baseEntityName} to check category plugin configuration:`, error);
1204
+ }
1205
+ }
1206
+ }
1207
+ catch (error) {
1208
+ // Registry not available, continue with default behavior
1209
+ console.warn(`Entity registry not available, using default category configuration:`, error);
1210
+ }
1172
1211
  const entityDef = {
1173
1212
  module: moduleName,
1174
1213
  name: entityName,
1175
1214
  parentKey: 'parentId',
1176
1215
  plugins: [
1177
- // { name: 'history' },
1178
- // { name: 'lock' },
1179
- // { name: 'compare' },
1216
+ // { name: 'lock' },
1217
+ // { name: 'compare' },
1218
+ ...(enableMetaDataSelector ? [{ name: 'meta-data-selector' }] : []),
1180
1219
  ],
1181
1220
  source: '',
1182
1221
  title: '@general:terms.category.individual',
@@ -1191,6 +1230,7 @@ class AXMEntityCategoryProvider {
1191
1230
  relatedEntities: [],
1192
1231
  groups: [
1193
1232
  { id: 'basic-info', title: '@general:terms.basic-info' },
1233
+ ...(enableAppearance ? [{ id: 'appearance', title: '@general:terms.appearance' }] : []),
1194
1234
  ],
1195
1235
  properties: [
1196
1236
  {
@@ -1222,6 +1262,33 @@ class AXMEntityCategoryProvider {
1222
1262
  groupId: 'basic-info',
1223
1263
  schema: { dataType: 'string', interface: { type: AXPWidgetsCatalog.largeText } },
1224
1264
  },
1265
+ // Appearance properties (only if enabled)
1266
+ ...(enableAppearance ? [
1267
+ {
1268
+ name: 'color',
1269
+ title: '@general:terms.color',
1270
+ groupId: 'appearance',
1271
+ schema: {
1272
+ dataType: 'string',
1273
+ interface: {
1274
+ type: AXPWidgetsList.Theme.ThemeColorChooser,
1275
+ options: {},
1276
+ },
1277
+ },
1278
+ },
1279
+ {
1280
+ name: 'icon',
1281
+ title: '@general:terms.icon',
1282
+ groupId: 'appearance',
1283
+ schema: {
1284
+ dataType: 'string',
1285
+ interface: {
1286
+ type: AXPWidgetsList.Theme.IconChooser,
1287
+ options: {},
1288
+ },
1289
+ },
1290
+ },
1291
+ ] : []),
1225
1292
  ],
1226
1293
  columns: [{ name: 'title' }, { name: 'description' }],
1227
1294
  commands: {
@@ -1246,28 +1313,52 @@ class AXMEntityCategoryProvider {
1246
1313
  interfaces: {
1247
1314
  master: {
1248
1315
  create: {
1249
- sections: [{ id: 'basic-info' }],
1316
+ sections: [
1317
+ { id: 'basic-info' },
1318
+ ...(enableAppearance ? [{ id: 'appearance' }] : []),
1319
+ ],
1250
1320
  properties: [
1251
1321
  { name: 'title', layout: { positions: { lg: { colSpan: 12, order: 1 } } } },
1252
1322
  { name: 'parentId', layout: { positions: { lg: { colSpan: 12, order: 2 } } } },
1253
1323
  { name: 'description', layout: { positions: { lg: { colSpan: 12, order: 3 } } } },
1324
+ // Appearance properties (only if enabled)
1325
+ ...(enableAppearance ? [
1326
+ { name: 'color', layout: { positions: { lg: { colSpan: 12, order: 4 } } } },
1327
+ { name: 'icon', layout: { positions: { lg: { colSpan: 12, order: 5 } } } },
1328
+ ] : []),
1254
1329
  ],
1255
1330
  },
1256
1331
  update: {
1257
- sections: [{ id: 'basic-info' }],
1332
+ sections: [
1333
+ { id: 'basic-info' },
1334
+ ...(enableAppearance ? [{ id: 'appearance' }] : []),
1335
+ ],
1258
1336
  properties: [
1259
1337
  { name: 'title', layout: { positions: { lg: { colSpan: 12, order: 1 } } } },
1260
1338
  { name: 'parentId', layout: { positions: { lg: { colSpan: 12, order: 2 } } } },
1261
1339
  { name: 'description', layout: { positions: { lg: { colSpan: 12, order: 3 } } } },
1340
+ // Appearance properties (only if enabled)
1341
+ ...(enableAppearance ? [
1342
+ { name: 'color', layout: { positions: { lg: { colSpan: 12, order: 4 } } } },
1343
+ { name: 'icon', layout: { positions: { lg: { colSpan: 12, order: 5 } } } },
1344
+ ] : []),
1262
1345
  ],
1263
1346
  },
1264
1347
  single: {
1265
1348
  title: '{{title}}',
1266
- sections: [{ id: 'basic-info', layout: { positions: { lg: { colSpan: 12 } } } }],
1349
+ sections: [
1350
+ { id: 'basic-info', layout: { positions: { lg: { colSpan: 12 } } } },
1351
+ ...(enableAppearance ? [{ id: 'appearance', layout: { positions: { lg: { colSpan: 12 } } } }] : []),
1352
+ ],
1267
1353
  properties: [
1268
1354
  { name: 'title', layout: { positions: { lg: { colSpan: 12, order: 1 } } } },
1269
1355
  { name: 'parentId', layout: { positions: { lg: { colSpan: 12, order: 2 } } } },
1270
1356
  { name: 'description', layout: { positions: { lg: { colSpan: 12, order: 3 } } } },
1357
+ // Appearance properties (only if enabled)
1358
+ ...(enableAppearance ? [
1359
+ { name: 'color', layout: { positions: { lg: { colSpan: 12, order: 4 } } } },
1360
+ { name: 'icon', layout: { positions: { lg: { colSpan: 12, order: 5 } } } },
1361
+ ] : []),
1271
1362
  ],
1272
1363
  actions: [entityMasterDeleteAction()],
1273
1364
  },