@acorex-platform/module-data-management-client 0.0.54 → 0.0.57

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.
@@ -133,8 +133,45 @@ const AXPDataManagementMenuKeys = {
133
133
  Tags: 'DataManagement:Menu:Tags',
134
134
  };
135
135
 
136
- //#endregion
137
- //#region ---- Utility Functions ----
136
+ const AXM_META_DATA_FIELD_APPLIES_TO_DEFAULT = 'document';
137
+ /** Missing, null, or any value other than `folder` resolves to document. */
138
+ function resolveMetaDataFieldAppliesTo(field) {
139
+ const raw = field?.appliesTo ?? field?.configuration?.['appliesTo'];
140
+ return raw === 'folder' ? 'folder' : AXM_META_DATA_FIELD_APPLIES_TO_DEFAULT;
141
+ }
142
+ function filterMetaDataListByAppliesTo(list, appliesTo) {
143
+ const groups = (list?.groups ?? [])
144
+ .map((group) => ({
145
+ ...group,
146
+ fields: (group.fields ?? []).filter((field) => resolveMetaDataFieldAppliesTo(field) === appliesTo),
147
+ }))
148
+ .filter((group) => (group.fields?.length ?? 0) > 0);
149
+ return { groups };
150
+ }
151
+ function hasMetaDataListFields(list) {
152
+ return (list?.groups ?? []).some((group) => (group.fields?.length ?? 0) > 0);
153
+ }
154
+ function mergeMetaDataLists(lists) {
155
+ const groups = [];
156
+ const seenFieldNames = new Set();
157
+ for (const list of lists) {
158
+ for (const group of list?.groups ?? []) {
159
+ const fields = (group.fields ?? []).filter((field) => {
160
+ const name = String(field?.name ?? '').trim();
161
+ if (!name || seenFieldNames.has(name)) {
162
+ return false;
163
+ }
164
+ seenFieldNames.add(name);
165
+ return true;
166
+ });
167
+ if (fields.length === 0) {
168
+ continue;
169
+ }
170
+ groups.push({ ...group, fields });
171
+ }
172
+ }
173
+ return { groups };
174
+ }
138
175
  function convertValueToState(value) {
139
176
  if (!value) {
140
177
  return {
@@ -158,6 +195,7 @@ function convertValueToState(value) {
158
195
  description: item.description,
159
196
  interface: item.interface,
160
197
  configuration: item.configuration,
198
+ appliesTo: resolveMetaDataFieldAppliesTo(item),
161
199
  status: item.status || 'active',
162
200
  order: item.order ?? index,
163
201
  isNewlyAdded: item.isNewlyAdded,
@@ -182,6 +220,7 @@ function convertValueToState(value) {
182
220
  description: field.description,
183
221
  interface: field.interface,
184
222
  configuration: field.configuration,
223
+ appliesTo: resolveMetaDataFieldAppliesTo(field),
185
224
  status: field.status || 'active',
186
225
  order: field.order ?? fieldIndex,
187
226
  isNewlyAdded: field.isNewlyAdded,
@@ -215,6 +254,7 @@ function convertStateToValue(state) {
215
254
  description: field.description,
216
255
  interface: field.interface,
217
256
  configuration: field.configuration,
257
+ appliesTo: resolveMetaDataFieldAppliesTo(field),
218
258
  order: field.order,
219
259
  })),
220
260
  };
@@ -382,5 +422,5 @@ var AXMDataSourceType;
382
422
  * Generated bundle index. Do not edit.
383
423
  */
384
424
 
385
- export { AXMDataManagementFeatureKeys, AXMDataSourceOutputType, AXMDataSourceType, AXMPermissionsKeys, AXM_COLUMN_DEF_WIDGET, AXPDataManagementMenuKeys, AXPInsightsReportingPermissionKeys, DataManagementManifest, RootConfig, convertStateToValue, convertValueToState, createDefaultGroup };
425
+ export { AXMDataManagementFeatureKeys, AXMDataSourceOutputType, AXMDataSourceType, AXMPermissionsKeys, AXM_COLUMN_DEF_WIDGET, AXM_META_DATA_FIELD_APPLIES_TO_DEFAULT, AXPDataManagementMenuKeys, AXPInsightsReportingPermissionKeys, DataManagementManifest, RootConfig, convertStateToValue, convertValueToState, createDefaultGroup, filterMetaDataListByAppliesTo, hasMetaDataListFields, mergeMetaDataLists, resolveMetaDataFieldAppliesTo };
386
426
  //# sourceMappingURL=acorex-platform-module-data-management-client-contracts.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-module-data-management-client-contracts.mjs","sources":["../../../../libs/modules/data-management/contracts/src/column-def.widget.ts","../../../../libs/modules/data-management/contracts/src/features.keys.ts","../../../../libs/modules/data-management/contracts/src/menu.keys.ts","../../../../libs/modules/data-management/contracts/src/meta-data-builder.types.ts","../../../../libs/modules/data-management/contracts/src/permission.keys.ts","../../../../libs/modules/data-management/contracts/src/root-config.ts","../../../../libs/modules/data-management/contracts/src/manifest.ts","../../../../libs/modules/data-management/contracts/src/entities/data-source/data-source.types.ts","../../../../libs/modules/data-management/contracts/src/entities/query/query.types.ts","../../../../libs/modules/data-management/contracts/src/entities/tag/tag.types.ts","../../../../libs/modules/data-management/contracts/src/index.ts","../../../../libs/modules/data-management/contracts/src/acorex-platform-module-data-management-client-contracts.ts"],"sourcesContent":["//#region ---- Column Definition Widget ----\n\nexport const AXM_COLUMN_DEF_WIDGET = [\n {\n type: 'grid-layout',\n mode: 'view',\n options: {\n direction: 'horizontal',\n },\n children: [\n {\n type: 'grid-item-layout',\n mode: 'view',\n options: { colSpan: 3 },\n children: [\n {\n type: 'text-editor',\n mode: 'edit',\n path: 'name',\n options: {\n placeholder: 'Column Name',\n required: true,\n },\n },\n ],\n },\n {\n type: 'grid-item-layout',\n mode: 'view',\n options: { colSpan: 3 },\n children: [\n {\n type: 'text-editor',\n mode: 'edit',\n path: 'title',\n options: {\n placeholder: 'Display Title',\n required: true,\n },\n },\n ],\n },\n {\n type: 'grid-item-layout',\n options: { colSpan: 3 },\n mode: 'view',\n children: [\n {\n type: 'select-editor',\n mode: 'edit',\n path: 'type',\n options: {\n placeholder: 'Widget Type',\n valueField: 'name',\n textField: 'title',\n dataSource: 'PlatformManagement:ListEditorWidgets',\n direction: 'horizontal',\n multiple: false,\n required: true,\n },\n },\n ],\n },\n {\n type: 'grid-item-layout',\n options: { colSpan: 1 },\n mode: 'view',\n children: [\n {\n type: 'checkbox-editor',\n mode: 'edit',\n path: 'isValueField',\n options: {\n tooltip: 'Value Field (only one can be selected)',\n label: 'Value',\n },\n triggers: [\n {\n event: \"{{ events.context('columns.isValueField') }}\",\n action: `{{ context.set('columns.isValueField', context.eval('columns.isValueField')[0]); }}`,\n },\n ],\n },\n ],\n },\n {\n type: 'grid-item-layout',\n options: { colSpan: 1 },\n mode: 'view',\n children: [\n {\n type: 'checkbox-editor',\n mode: 'edit',\n path: 'isTextField',\n options: {\n tooltip: 'Text Field (multiple allowed)',\n label: 'Text',\n },\n },\n ],\n },\n {\n type: 'grid-item-layout',\n options: { colSpan: 1 },\n mode: 'view',\n children: [\n {\n type: 'checkbox-editor',\n mode: 'edit',\n path: 'isRequired',\n options: {\n label: 'Required',\n tooltip: 'Required field',\n },\n },\n ],\n },\n ],\n },\n];\n\n//#endregion\n","export const AXMDataManagementFeatureKeys = {\n Queries: 'DataManagement:Feature:Queries',\n DataSources: 'DataManagement:Feature:DataSources',\n MetaDataDefinitions: 'DataManagement:Feature:MetaDataDefinitions',\n} as const;\n\n","export const AXPDataManagementMenuKeys = {\n Root: 'DataManagement:Menu',\n Queries: 'DataManagement:Menu:Queries',\n DataSources: 'DataManagement:Menu:DataSources',\n MetaDataDefinitions: 'DataManagement:Menu:MetaDataDefinitions',\n Tags: 'DataManagement:Menu:Tags',\n} as const;\n\n","import { AXPMultiLanguageString, AXPOptionsData } from '@acorex-platform/framework-shared/core';\n//#region ---- Meta-Data Builder Field / Group Types ----\n/** Localized or plain string as stored / edited in the builder */\nexport type AXMMetaDataLocalizedString = string | AXPMultiLanguageString;\n\n/** Single metadata field within a group */\nexport interface AXMMetaDataBuilderField {\n id: string;\n name: string;\n title: AXMMetaDataLocalizedString;\n description?: AXMMetaDataLocalizedString;\n interface: string;\n configuration?: {\n isRequired?: boolean;\n placeholder?: string;\n [key: string]: unknown;\n };\n status: 'active' | 'deleted' | 'temporary';\n order: number;\n isNewlyAdded?: boolean;\n}\n\n/** Group of metadata fields */\nexport interface AXMMetaDataBuilderGroup {\n id: string;\n name: string;\n title?: AXMMetaDataLocalizedString;\n description?: AXMMetaDataLocalizedString;\n order: number;\n fields: AXMMetaDataBuilderField[];\n isNewlyAdded?: boolean;\n}\n\n/** Designer state (internal) */\nexport interface AXMMetaDataBuilderState {\n groups: AXMMetaDataBuilderGroup[];\n mode: 'designer' | 'preview';\n selectedFieldId?: string;\n selectedGroupId?: string;\n}\n\n/** Value persisted on the entity */\nexport interface AXMMetaDataBuilderValue {\n groups: Array<{\n name: string;\n title?: AXMMetaDataLocalizedString;\n description?: AXMMetaDataLocalizedString;\n order: number;\n fields: Array<{\n id: string;\n name: string;\n title: AXMMetaDataLocalizedString;\n description?: AXMMetaDataLocalizedString;\n interface: string;\n configuration?: AXPOptionsData;\n order: number;\n }>;\n }>;\n}\n\n//#endregion\n\n//#region ---- Utility Functions ----\n\nexport function convertValueToState(value: unknown): AXMMetaDataBuilderState {\n if (!value) {\n return {\n groups: [createDefaultGroup()],\n mode: 'designer',\n };\n }\n\n if (Array.isArray(value)) {\n return {\n groups: [\n {\n id: 'group-default',\n name: 'default',\n title: 'Default Section',\n description: undefined,\n order: 0,\n fields: value.map((item: any, index: number) => ({\n id: item.id || `field-${index}`,\n name: item.name,\n title: item.title,\n description: item.description,\n interface: item.interface,\n configuration: item.configuration,\n status: item.status || 'active',\n order: item.order ?? index,\n isNewlyAdded: item.isNewlyAdded,\n })),\n },\n ],\n mode: 'designer',\n };\n }\n\n const v = value as { groups?: unknown[] };\n if (v.groups && Array.isArray(v.groups)) {\n const groups = v.groups.map((group: any, groupIndex: number) => ({\n id: group.id || `group-${group.name}`,\n name: group.name,\n title: group.title,\n description: group.description,\n order: group.order ?? groupIndex,\n fields: (group.fields || []).map((field: any, fieldIndex: number) => ({\n id: field.id || `field-${fieldIndex}`,\n name: field.name,\n title: field.title,\n description: field.description,\n interface: field.interface,\n configuration: field.configuration,\n status: field.status || 'active',\n order: field.order ?? fieldIndex,\n isNewlyAdded: field.isNewlyAdded,\n })),\n isNewlyAdded: group.isNewlyAdded,\n }));\n\n const finalGroups = groups.length > 0 ? groups : [createDefaultGroup()];\n\n return {\n groups: finalGroups,\n mode: 'designer',\n };\n }\n\n return {\n groups: [createDefaultGroup()],\n mode: 'designer',\n };\n}\n\nexport function convertStateToValue(state: AXMMetaDataBuilderState): AXMMetaDataBuilderValue {\n return {\n groups: state.groups.map((group) => {\n const activeFields = group.fields.filter((field) => field.status !== 'deleted');\n return {\n name: group.name,\n title: group.title,\n description: group.description,\n order: group.order,\n fields: activeFields.map((field) => ({\n id: field.id,\n name: field.name,\n title: field.title,\n description: field.description,\n interface: field.interface,\n configuration: field.configuration,\n order: field.order,\n })),\n };\n }),\n };\n}\n\nexport function createDefaultGroup(): AXMMetaDataBuilderGroup {\n return {\n id: 'group-default',\n name: 'default',\n title: 'Default Section',\n description: undefined,\n order: 0,\n fields: [],\n isNewlyAdded: true,\n };\n}\n\n//#endregion\n","/**\n * Insights & Reporting capabilities used by this module.\n * Domain capability keys for this module. Root groups live in `AXPCommonPermissionGroupKeys` (common contracts).\n */\nexport const AXPInsightsReportingPermissionKeys = {\n Access: 'InsightsReporting:Permission:Access',\n MaintainReports: 'InsightsReporting:Permission:MaintainReports',\n MaintainData: 'InsightsReporting:Permission:MaintainData',\n ViewActivityInsight: 'InsightsReporting:Permission:ViewActivityInsight',\n ManageActivityInsight: 'InsightsReporting:Permission:ManageActivityInsight',\n Setup: 'InsightsReporting:Permission:Setup',\n} as const;\n\n/**\n * @deprecated Prefer {@link AXPInsightsReportingPermissionKeys}.\n * Legacy nested shape kept so existing imports compile during migration.\n */\nexport const AXMPermissionsKeys = {\n DataManagement: {\n Query: {\n Management: AXPInsightsReportingPermissionKeys.MaintainData,\n },\n DataSource: {\n Management: AXPInsightsReportingPermissionKeys.MaintainData,\n },\n MetaDataDefinition: {\n Management: AXPInsightsReportingPermissionKeys.Setup,\n },\n Equipment: {\n Management: AXPInsightsReportingPermissionKeys.MaintainData,\n },\n Tag: {\n Management: AXPInsightsReportingPermissionKeys.Setup,\n },\n },\n} as const;\n","const config = {\n i18n: 'data-management',\n};\nexport const RootConfig = {\n config,\n module: {\n route: 'data-management',\n name: 'DataManagement',\n title: '@data-management:module.title',\n icon: 'fa-regular fa-database',\n },\n entities: {\n query: {\n name: 'Query',\n title: '@data-management:queries.entities.query.title',\n titlePlural: '@data-management:queries.entities.query.plural',\n icon: 'fa-regular fa-nfc-magnifying-glass',\n },\n queryCategory: {\n name: 'QueryCategory',\n title: '@data-management:queries.terms.category',\n titlePlural: '@data-management:queries.terms.categories',\n icon: 'fa-regular fa-layer-group',\n },\n dataSource: {\n name: 'DataSource',\n title: '@data-management:data-sources.entities.data-source.title',\n titlePlural: '@data-management:data-sources.entities.data-source.plural',\n icon: 'fa-regular fa-database',\n },\n dataSourceCategory: {\n name: 'DataSourceCategory',\n title: '@data-management:data-sources.terms.category',\n titlePlural: '@data-management:data-sources.terms.categories',\n icon: 'fa-regular fa-layer-group',\n },\n metaDataDefinition: {\n name: 'MetaDataDefinition',\n title: '@data-management:metadata-definitions.entities.metadata-definition.title',\n titlePlural: '@data-management:metadata-definitions.entities.metadata-definition.plural',\n icon: 'fa-light fa-server',\n },\n tag: {\n name: 'Tag',\n source: 'DataManagement.Tag',\n title: '@general:terms.common.tag',\n icon: 'fa-light fa-tags',\n },\n equipmentCategory: {\n name: 'EquipmentCategory',\n title: '@data-management:equipments.entities.equipment-category.title',\n titlePlural: '@data-management:equipments.entities.equipment-category.plural',\n icon: 'fa-light fa-folder-tree',\n },\n equipment: {\n name: 'Equipment',\n source: 'DataManagement.Equipment',\n title: '@data-management:equipments.entities.equipment.title',\n titlePlural: '@data-management:equipments.entities.equipment.plural',\n icon: 'fa-light fa-plug',\n },\n },\n} as const;\n","//#region ---- Imports ----\n\nimport { AXPModuleManifest } from '@acorex-platform/framework-shared/core';\nimport { RootConfig } from './root-config';\n\n//#endregion\n\n//#region ---- Manifest Definition ----\n\n/**\n * Data Management Module Manifest.\n * Defines module metadata, features, and provider references.\n */\nexport const DataManagementManifest: AXPModuleManifest = {\n name: RootConfig.module.name,\n version: '1.0.0',\n title: RootConfig.module.title,\n icon: RootConfig.module.icon,\n i18n: RootConfig.config.i18n,\n type: 'platform',\n domain: 'data',\n required : true,\n\n // Module dependencies (optional)\n};\n\n//#endregion\n\n","import { AXPEntityModel } from '@acorex-platform/framework-shared/entity';\n//#region ---- Output Types ----\n\nexport enum AXMDataSourceOutputType {\n Table = 'table',\n SingleObject = 'single_object',\n Value = 'value'\n}\n\nexport interface AXMDataSourceOutputTypeOption {\n name: AXMDataSourceOutputType;\n title: string;\n}\n\n//#endregion\n\n//#region ---- Source Types ----\n\nexport enum AXMDataSourceType {\n Static = 'static',\n Query = 'query',\n // ExternalApi = 'external_api' // TODO: Will be implemented later\n}\n\nexport interface AXMDataSourceTypeOption {\n name: AXMDataSourceType;\n title: string;\n}\n\n//#endregion\n\n//#region ---- Filter Definition ----\n\nexport interface AXMDataSourceFilter {\n columnName: string;\n defaultValue: any;\n isSystemFilter: boolean; // User can enable/disable in report\n isRequired: boolean; // Must be present in report\n}\n\n//#endregion\n\n//#region ---- Main Entity Model ----\n\nexport interface AXMDataSourceEntityModel<T = string> extends AXPEntityModel<T> {\n\n name: string,\n title: string;\n categoryIds?: string[];\n sourceStatic: any[];\n sourceEntity: T;\n sourceType: AXMDataSourceTypeOption;\n outputType: AXMDataSourceOutputTypeOption;\n filters?: AXMDataSourceFilter[];\n}\n\n//#endregion\n","import { AXPCategoryListItem, AXPFilterDefinition } from '@acorex-platform/framework-shared/core';\nimport { AXPEntityModel } from '@acorex-platform/framework-shared/entity';\nimport { AXMDataSourceEntityModel } from '../data-source';\n\n//#region ---- Query Builder Types ----\n\n/**\n * Query output type\n * Defines the expected structure of the query result\n */\nexport type AXPQueryOutputType = 'value' | 'table' | 'object';\n\n/**\n * Sort rule for query builder\n */\nexport interface AXPQuerySortRule {\n field: string;\n dir: 'asc' | 'desc';\n}\n\n/**\n * Aggregate operation in query\n * Represents an aggregate function applied to a field\n * Supports nested aggregates (e.g., CONCAT(MIN(field1), MAX(field2)))\n */\nexport interface AXPAggregateOperation {\n /**\n * Field name to aggregate (optional if nestedAggregates is provided)\n */\n field?: string;\n\n /**\n * Aggregate function name\n */\n function: string;\n\n /**\n * Output alias/name for the aggregated result\n */\n alias?: string;\n\n /**\n * Whether to use DISTINCT modifier\n */\n distinct?: boolean;\n\n /**\n * Nested aggregate operations (for functions like CONCAT that can contain other aggregates)\n * Example: CONCAT(MIN(price), MAX(price)) would have:\n * - function: 'concat'\n * - nestedAggregates: [\n * { function: 'min', field: 'price' },\n * { function: 'max', field: 'price' }\n * ]\n */\n nestedAggregates?: AXPAggregateOperation[];\n}\n\n/**\n * Complete query builder data model\n * Includes all query components: dataSource, columns, where, sort, groupBy, aggregates, and raw query\n */\nexport interface AXPQueryBuilderData {\n /**\n * Data source name (optional, can be set from context)\n */\n dataSource?: string;\n\n /**\n * Selected column names (array of column keys)\n */\n columns: string[];\n\n /**\n * WHERE clause (filter definition with groups and conditions)\n */\n where: AXPFilterDefinition;\n\n /**\n * Sort rules (array of field + direction)\n */\n sort: AXPQuerySortRule[];\n\n /**\n * Group by columns (array of column keys)\n */\n groupBy: string[];\n\n /**\n * Aggregate operations (array of field + function + alias)\n */\n aggregates: AXPAggregateOperation[];\n\n /**\n * Raw SQL/query string (optional, used when user wants to write raw query)\n */\n rawQuery?: string;\n\n /**\n * Query language/dialect for raw query (e.g., 'mysql', 'postgresql', 'mongodb')\n */\n queryLanguage?: string;\n\n /**\n * Expected output type for the query result\n * - 'value': Single value result (e.g., COUNT, SUM, AVG)\n * - 'table': Table result with items array and total\n * - 'object': Custom object structure\n */\n outputType?: AXPQueryOutputType;\n}\n\n//#endregion\n\n//#region ---- Query Execution Result Types ----\n\n/**\n * Query execution result\n * Can be:\n * - A single value (for aggregate queries like SUM, COUNT, etc.)\n * - A table with items and total (for regular queries)\n * - An object with custom structure\n */\nexport type AXPQueryExecutionResult =\n | {\n /**\n * Table result with items array\n */\n items: Record<string, unknown>[];\n total: number;\n metadata?: Record<string, unknown>;\n }\n | {\n /**\n * Single aggregate value result\n */\n value: unknown;\n metadata?: Record<string, unknown>;\n }\n | Record<string, unknown>\n | unknown[];\n\n//#endregion\n\n//#region ---- Entity Types ----\n\nexport interface AXMDataManagementQueryEntityModel extends AXPEntityModel<string> {\n name: string;\n title: string;\n dataSource?: AXMDataSourceEntityModel;\n query?: AXPQueryBuilderData;\n categoryIds?: string[];\n categories?: AXPCategoryListItem[];\n}\n\n// Alias for easier import in mock files\nexport type AXMQueryEntityModel = AXMDataManagementQueryEntityModel;\n\n//#endregion","//#region ---- Tag Entity Types ----\n\n/**\n * Tag entity model\n */\nexport interface AXMTag {\n id: string;\n text: string;\n color: string;\n icon?: string;\n description?: string;\n scope: 'system' | 'tenant' | 'user';\n isReadonly?: boolean;\n createdBy?: string;\n createdAt?: Date;\n updatedAt?: Date;\n}\n\n//#endregion\n\n","//#region ---- Contracts barrel ----\n\nexport * from './column-def.widget';\nexport * from './features.keys';\nexport * from './menu.keys';\nexport * from './meta-data-builder.types';\nexport * from './permission.keys';\n\nexport * from './root-config';\nexport * from './manifest';\n\n//#endregion\n\nexport * from './entities';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-platform-module-data-management-client-contracts.mjs","sources":["../../../../libs/modules/data-management/contracts/src/column-def.widget.ts","../../../../libs/modules/data-management/contracts/src/features.keys.ts","../../../../libs/modules/data-management/contracts/src/menu.keys.ts","../../../../libs/modules/data-management/contracts/src/meta-data-builder.types.ts","../../../../libs/modules/data-management/contracts/src/permission.keys.ts","../../../../libs/modules/data-management/contracts/src/root-config.ts","../../../../libs/modules/data-management/contracts/src/manifest.ts","../../../../libs/modules/data-management/contracts/src/entities/data-source/data-source.types.ts","../../../../libs/modules/data-management/contracts/src/entities/query/query.types.ts","../../../../libs/modules/data-management/contracts/src/entities/tag/tag.types.ts","../../../../libs/modules/data-management/contracts/src/index.ts","../../../../libs/modules/data-management/contracts/src/acorex-platform-module-data-management-client-contracts.ts"],"sourcesContent":["//#region ---- Column Definition Widget ----\n\nexport const AXM_COLUMN_DEF_WIDGET = [\n {\n type: 'grid-layout',\n mode: 'view',\n options: {\n direction: 'horizontal',\n },\n children: [\n {\n type: 'grid-item-layout',\n mode: 'view',\n options: { colSpan: 3 },\n children: [\n {\n type: 'text-editor',\n mode: 'edit',\n path: 'name',\n options: {\n placeholder: 'Column Name',\n required: true,\n },\n },\n ],\n },\n {\n type: 'grid-item-layout',\n mode: 'view',\n options: { colSpan: 3 },\n children: [\n {\n type: 'text-editor',\n mode: 'edit',\n path: 'title',\n options: {\n placeholder: 'Display Title',\n required: true,\n },\n },\n ],\n },\n {\n type: 'grid-item-layout',\n options: { colSpan: 3 },\n mode: 'view',\n children: [\n {\n type: 'select-editor',\n mode: 'edit',\n path: 'type',\n options: {\n placeholder: 'Widget Type',\n valueField: 'name',\n textField: 'title',\n dataSource: 'PlatformManagement:ListEditorWidgets',\n direction: 'horizontal',\n multiple: false,\n required: true,\n },\n },\n ],\n },\n {\n type: 'grid-item-layout',\n options: { colSpan: 1 },\n mode: 'view',\n children: [\n {\n type: 'checkbox-editor',\n mode: 'edit',\n path: 'isValueField',\n options: {\n tooltip: 'Value Field (only one can be selected)',\n label: 'Value',\n },\n triggers: [\n {\n event: \"{{ events.context('columns.isValueField') }}\",\n action: `{{ context.set('columns.isValueField', context.eval('columns.isValueField')[0]); }}`,\n },\n ],\n },\n ],\n },\n {\n type: 'grid-item-layout',\n options: { colSpan: 1 },\n mode: 'view',\n children: [\n {\n type: 'checkbox-editor',\n mode: 'edit',\n path: 'isTextField',\n options: {\n tooltip: 'Text Field (multiple allowed)',\n label: 'Text',\n },\n },\n ],\n },\n {\n type: 'grid-item-layout',\n options: { colSpan: 1 },\n mode: 'view',\n children: [\n {\n type: 'checkbox-editor',\n mode: 'edit',\n path: 'isRequired',\n options: {\n label: 'Required',\n tooltip: 'Required field',\n },\n },\n ],\n },\n ],\n },\n];\n\n//#endregion\n","export const AXMDataManagementFeatureKeys = {\n Queries: 'DataManagement:Feature:Queries',\n DataSources: 'DataManagement:Feature:DataSources',\n MetaDataDefinitions: 'DataManagement:Feature:MetaDataDefinitions',\n} as const;\n\n","export const AXPDataManagementMenuKeys = {\n Root: 'DataManagement:Menu',\n Queries: 'DataManagement:Menu:Queries',\n DataSources: 'DataManagement:Menu:DataSources',\n MetaDataDefinitions: 'DataManagement:Menu:MetaDataDefinitions',\n Tags: 'DataManagement:Menu:Tags',\n} as const;\n\n","import { AXPMultiLanguageString, AXPOptionsData } from '@acorex-platform/framework-shared/core';\n//#region ---- Meta-Data Builder Field / Group Types ----\n/** Localized or plain string as stored / edited in the builder */\nexport type AXMMetaDataLocalizedString = string | AXPMultiLanguageString;\n\n/** Which record a metadata field is collected on. Missing / null means document. */\nexport type AXMMetaDataFieldAppliesTo = 'document' | 'folder';\n\nexport const AXM_META_DATA_FIELD_APPLIES_TO_DEFAULT: AXMMetaDataFieldAppliesTo = 'document';\n\n/** Single metadata field within a group */\nexport interface AXMMetaDataBuilderField {\n id: string;\n name: string;\n title: AXMMetaDataLocalizedString;\n description?: AXMMetaDataLocalizedString;\n interface: string;\n configuration?: {\n isRequired?: boolean;\n placeholder?: string;\n [key: string]: unknown;\n };\n /** When omitted or null, the field applies to the document. */\n appliesTo?: AXMMetaDataFieldAppliesTo | null;\n status: 'active' | 'deleted' | 'temporary';\n order: number;\n isNewlyAdded?: boolean;\n}\n\n/** Group of metadata fields */\nexport interface AXMMetaDataBuilderGroup {\n id: string;\n name: string;\n title?: AXMMetaDataLocalizedString;\n description?: AXMMetaDataLocalizedString;\n order: number;\n fields: AXMMetaDataBuilderField[];\n isNewlyAdded?: boolean;\n}\n\n/** Designer state (internal) */\nexport interface AXMMetaDataBuilderState {\n groups: AXMMetaDataBuilderGroup[];\n mode: 'designer' | 'preview';\n selectedFieldId?: string;\n selectedGroupId?: string;\n}\n\n/** Value persisted on the entity */\nexport interface AXMMetaDataBuilderValue {\n groups: Array<{\n name: string;\n title?: AXMMetaDataLocalizedString;\n description?: AXMMetaDataLocalizedString;\n order: number;\n fields: Array<{\n id: string;\n name: string;\n title: AXMMetaDataLocalizedString;\n description?: AXMMetaDataLocalizedString;\n interface: string;\n configuration?: AXPOptionsData;\n /** When omitted or null, the field applies to the document. */\n appliesTo?: AXMMetaDataFieldAppliesTo | null;\n order: number;\n }>;\n }>;\n}\n\n//#endregion\n\n//#region ---- Utility Functions ----\n\ntype MetaDataAppliesToSource = {\n appliesTo?: unknown;\n configuration?: { appliesTo?: unknown; [key: string]: unknown };\n};\n\n/** Missing, null, or any value other than `folder` resolves to document. */\nexport function resolveMetaDataFieldAppliesTo(field: MetaDataAppliesToSource | null | undefined): AXMMetaDataFieldAppliesTo {\n const raw = field?.appliesTo ?? field?.configuration?.['appliesTo'];\n return raw === 'folder' ? 'folder' : AXM_META_DATA_FIELD_APPLIES_TO_DEFAULT;\n}\n\nexport function filterMetaDataListByAppliesTo(\n list: AXMMetaDataBuilderValue | null | undefined,\n appliesTo: AXMMetaDataFieldAppliesTo,\n): AXMMetaDataBuilderValue {\n const groups = (list?.groups ?? [])\n .map((group) => ({\n ...group,\n fields: (group.fields ?? []).filter((field) => resolveMetaDataFieldAppliesTo(field) === appliesTo),\n }))\n .filter((group) => (group.fields?.length ?? 0) > 0);\n return { groups };\n}\n\nexport function hasMetaDataListFields(list: AXMMetaDataBuilderValue | null | undefined): boolean {\n return (list?.groups ?? []).some((group) => (group.fields?.length ?? 0) > 0);\n}\n\nexport function mergeMetaDataLists(lists: Array<AXMMetaDataBuilderValue | null | undefined>): AXMMetaDataBuilderValue {\n const groups: AXMMetaDataBuilderValue['groups'] = [];\n const seenFieldNames = new Set<string>();\n for (const list of lists) {\n for (const group of list?.groups ?? []) {\n const fields = (group.fields ?? []).filter((field) => {\n const name = String(field?.name ?? '').trim();\n if (!name || seenFieldNames.has(name)) {\n return false;\n }\n seenFieldNames.add(name);\n return true;\n });\n if (fields.length === 0) {\n continue;\n }\n groups.push({ ...group, fields });\n }\n }\n return { groups };\n}\n\nexport function convertValueToState(value: unknown): AXMMetaDataBuilderState {\n if (!value) {\n return {\n groups: [createDefaultGroup()],\n mode: 'designer',\n };\n }\n\n if (Array.isArray(value)) {\n return {\n groups: [\n {\n id: 'group-default',\n name: 'default',\n title: 'Default Section',\n description: undefined,\n order: 0,\n fields: value.map((item: any, index: number) => ({\n id: item.id || `field-${index}`,\n name: item.name,\n title: item.title,\n description: item.description,\n interface: item.interface,\n configuration: item.configuration,\n appliesTo: resolveMetaDataFieldAppliesTo(item),\n status: item.status || 'active',\n order: item.order ?? index,\n isNewlyAdded: item.isNewlyAdded,\n })),\n },\n ],\n mode: 'designer',\n };\n }\n\n const v = value as { groups?: unknown[] };\n if (v.groups && Array.isArray(v.groups)) {\n const groups = v.groups.map((group: any, groupIndex: number) => ({\n id: group.id || `group-${group.name}`,\n name: group.name,\n title: group.title,\n description: group.description,\n order: group.order ?? groupIndex,\n fields: (group.fields || []).map((field: any, fieldIndex: number) => ({\n id: field.id || `field-${fieldIndex}`,\n name: field.name,\n title: field.title,\n description: field.description,\n interface: field.interface,\n configuration: field.configuration,\n appliesTo: resolveMetaDataFieldAppliesTo(field),\n status: field.status || 'active',\n order: field.order ?? fieldIndex,\n isNewlyAdded: field.isNewlyAdded,\n })),\n isNewlyAdded: group.isNewlyAdded,\n }));\n\n const finalGroups = groups.length > 0 ? groups : [createDefaultGroup()];\n\n return {\n groups: finalGroups,\n mode: 'designer',\n };\n }\n\n return {\n groups: [createDefaultGroup()],\n mode: 'designer',\n };\n}\n\nexport function convertStateToValue(state: AXMMetaDataBuilderState): AXMMetaDataBuilderValue {\n return {\n groups: state.groups.map((group) => {\n const activeFields = group.fields.filter((field) => field.status !== 'deleted');\n return {\n name: group.name,\n title: group.title,\n description: group.description,\n order: group.order,\n fields: activeFields.map((field) => ({\n id: field.id,\n name: field.name,\n title: field.title,\n description: field.description,\n interface: field.interface,\n configuration: field.configuration,\n appliesTo: resolveMetaDataFieldAppliesTo(field),\n order: field.order,\n })),\n };\n }),\n };\n}\n\nexport function createDefaultGroup(): AXMMetaDataBuilderGroup {\n return {\n id: 'group-default',\n name: 'default',\n title: 'Default Section',\n description: undefined,\n order: 0,\n fields: [],\n isNewlyAdded: true,\n };\n}\n\n//#endregion\n","/**\n * Insights & Reporting capabilities used by this module.\n * Domain capability keys for this module. Root groups live in `AXPCommonPermissionGroupKeys` (common contracts).\n */\nexport const AXPInsightsReportingPermissionKeys = {\n Access: 'InsightsReporting:Permission:Access',\n MaintainReports: 'InsightsReporting:Permission:MaintainReports',\n MaintainData: 'InsightsReporting:Permission:MaintainData',\n ViewActivityInsight: 'InsightsReporting:Permission:ViewActivityInsight',\n ManageActivityInsight: 'InsightsReporting:Permission:ManageActivityInsight',\n Setup: 'InsightsReporting:Permission:Setup',\n} as const;\n\n/**\n * @deprecated Prefer {@link AXPInsightsReportingPermissionKeys}.\n * Legacy nested shape kept so existing imports compile during migration.\n */\nexport const AXMPermissionsKeys = {\n DataManagement: {\n Query: {\n Management: AXPInsightsReportingPermissionKeys.MaintainData,\n },\n DataSource: {\n Management: AXPInsightsReportingPermissionKeys.MaintainData,\n },\n MetaDataDefinition: {\n Management: AXPInsightsReportingPermissionKeys.Setup,\n },\n Equipment: {\n Management: AXPInsightsReportingPermissionKeys.MaintainData,\n },\n Tag: {\n Management: AXPInsightsReportingPermissionKeys.Setup,\n },\n },\n} as const;\n","const config = {\n i18n: 'data-management',\n};\nexport const RootConfig = {\n config,\n module: {\n route: 'data-management',\n name: 'DataManagement',\n title: '@data-management:module.title',\n icon: 'fa-regular fa-database',\n },\n entities: {\n query: {\n name: 'Query',\n title: '@data-management:queries.entities.query.title',\n titlePlural: '@data-management:queries.entities.query.plural',\n icon: 'fa-regular fa-nfc-magnifying-glass',\n },\n queryCategory: {\n name: 'QueryCategory',\n title: '@data-management:queries.terms.category',\n titlePlural: '@data-management:queries.terms.categories',\n icon: 'fa-regular fa-layer-group',\n },\n dataSource: {\n name: 'DataSource',\n title: '@data-management:data-sources.entities.data-source.title',\n titlePlural: '@data-management:data-sources.entities.data-source.plural',\n icon: 'fa-regular fa-database',\n },\n dataSourceCategory: {\n name: 'DataSourceCategory',\n title: '@data-management:data-sources.terms.category',\n titlePlural: '@data-management:data-sources.terms.categories',\n icon: 'fa-regular fa-layer-group',\n },\n metaDataDefinition: {\n name: 'MetaDataDefinition',\n title: '@data-management:metadata-definitions.entities.metadata-definition.title',\n titlePlural: '@data-management:metadata-definitions.entities.metadata-definition.plural',\n icon: 'fa-light fa-server',\n },\n tag: {\n name: 'Tag',\n source: 'DataManagement.Tag',\n title: '@general:terms.common.tag',\n icon: 'fa-light fa-tags',\n },\n equipmentCategory: {\n name: 'EquipmentCategory',\n title: '@data-management:equipments.entities.equipment-category.title',\n titlePlural: '@data-management:equipments.entities.equipment-category.plural',\n icon: 'fa-light fa-folder-tree',\n },\n equipment: {\n name: 'Equipment',\n source: 'DataManagement.Equipment',\n title: '@data-management:equipments.entities.equipment.title',\n titlePlural: '@data-management:equipments.entities.equipment.plural',\n icon: 'fa-light fa-plug',\n },\n },\n} as const;\n","//#region ---- Imports ----\n\nimport { AXPModuleManifest } from '@acorex-platform/framework-shared/core';\nimport { RootConfig } from './root-config';\n\n//#endregion\n\n//#region ---- Manifest Definition ----\n\n/**\n * Data Management Module Manifest.\n * Defines module metadata, features, and provider references.\n */\nexport const DataManagementManifest: AXPModuleManifest = {\n name: RootConfig.module.name,\n version: '1.0.0',\n title: RootConfig.module.title,\n icon: RootConfig.module.icon,\n i18n: RootConfig.config.i18n,\n type: 'platform',\n domain: 'data',\n required : true,\n\n // Module dependencies (optional)\n};\n\n//#endregion\n\n","import { AXPEntityModel } from '@acorex-platform/framework-shared/entity';\n//#region ---- Output Types ----\n\nexport enum AXMDataSourceOutputType {\n Table = 'table',\n SingleObject = 'single_object',\n Value = 'value'\n}\n\nexport interface AXMDataSourceOutputTypeOption {\n name: AXMDataSourceOutputType;\n title: string;\n}\n\n//#endregion\n\n//#region ---- Source Types ----\n\nexport enum AXMDataSourceType {\n Static = 'static',\n Query = 'query',\n // ExternalApi = 'external_api' // TODO: Will be implemented later\n}\n\nexport interface AXMDataSourceTypeOption {\n name: AXMDataSourceType;\n title: string;\n}\n\n//#endregion\n\n//#region ---- Filter Definition ----\n\nexport interface AXMDataSourceFilter {\n columnName: string;\n defaultValue: any;\n isSystemFilter: boolean; // User can enable/disable in report\n isRequired: boolean; // Must be present in report\n}\n\n//#endregion\n\n//#region ---- Main Entity Model ----\n\nexport interface AXMDataSourceEntityModel<T = string> extends AXPEntityModel<T> {\n\n name: string,\n title: string;\n categoryIds?: string[];\n sourceStatic: any[];\n sourceEntity: T;\n sourceType: AXMDataSourceTypeOption;\n outputType: AXMDataSourceOutputTypeOption;\n filters?: AXMDataSourceFilter[];\n}\n\n//#endregion\n","import { AXPCategoryListItem, AXPFilterDefinition } from '@acorex-platform/framework-shared/core';\nimport { AXPEntityModel } from '@acorex-platform/framework-shared/entity';\nimport { AXMDataSourceEntityModel } from '../data-source';\n\n//#region ---- Query Builder Types ----\n\n/**\n * Query output type\n * Defines the expected structure of the query result\n */\nexport type AXPQueryOutputType = 'value' | 'table' | 'object';\n\n/**\n * Sort rule for query builder\n */\nexport interface AXPQuerySortRule {\n field: string;\n dir: 'asc' | 'desc';\n}\n\n/**\n * Aggregate operation in query\n * Represents an aggregate function applied to a field\n * Supports nested aggregates (e.g., CONCAT(MIN(field1), MAX(field2)))\n */\nexport interface AXPAggregateOperation {\n /**\n * Field name to aggregate (optional if nestedAggregates is provided)\n */\n field?: string;\n\n /**\n * Aggregate function name\n */\n function: string;\n\n /**\n * Output alias/name for the aggregated result\n */\n alias?: string;\n\n /**\n * Whether to use DISTINCT modifier\n */\n distinct?: boolean;\n\n /**\n * Nested aggregate operations (for functions like CONCAT that can contain other aggregates)\n * Example: CONCAT(MIN(price), MAX(price)) would have:\n * - function: 'concat'\n * - nestedAggregates: [\n * { function: 'min', field: 'price' },\n * { function: 'max', field: 'price' }\n * ]\n */\n nestedAggregates?: AXPAggregateOperation[];\n}\n\n/**\n * Complete query builder data model\n * Includes all query components: dataSource, columns, where, sort, groupBy, aggregates, and raw query\n */\nexport interface AXPQueryBuilderData {\n /**\n * Data source name (optional, can be set from context)\n */\n dataSource?: string;\n\n /**\n * Selected column names (array of column keys)\n */\n columns: string[];\n\n /**\n * WHERE clause (filter definition with groups and conditions)\n */\n where: AXPFilterDefinition;\n\n /**\n * Sort rules (array of field + direction)\n */\n sort: AXPQuerySortRule[];\n\n /**\n * Group by columns (array of column keys)\n */\n groupBy: string[];\n\n /**\n * Aggregate operations (array of field + function + alias)\n */\n aggregates: AXPAggregateOperation[];\n\n /**\n * Raw SQL/query string (optional, used when user wants to write raw query)\n */\n rawQuery?: string;\n\n /**\n * Query language/dialect for raw query (e.g., 'mysql', 'postgresql', 'mongodb')\n */\n queryLanguage?: string;\n\n /**\n * Expected output type for the query result\n * - 'value': Single value result (e.g., COUNT, SUM, AVG)\n * - 'table': Table result with items array and total\n * - 'object': Custom object structure\n */\n outputType?: AXPQueryOutputType;\n}\n\n//#endregion\n\n//#region ---- Query Execution Result Types ----\n\n/**\n * Query execution result\n * Can be:\n * - A single value (for aggregate queries like SUM, COUNT, etc.)\n * - A table with items and total (for regular queries)\n * - An object with custom structure\n */\nexport type AXPQueryExecutionResult =\n | {\n /**\n * Table result with items array\n */\n items: Record<string, unknown>[];\n total: number;\n metadata?: Record<string, unknown>;\n }\n | {\n /**\n * Single aggregate value result\n */\n value: unknown;\n metadata?: Record<string, unknown>;\n }\n | Record<string, unknown>\n | unknown[];\n\n//#endregion\n\n//#region ---- Entity Types ----\n\nexport interface AXMDataManagementQueryEntityModel extends AXPEntityModel<string> {\n name: string;\n title: string;\n dataSource?: AXMDataSourceEntityModel;\n query?: AXPQueryBuilderData;\n categoryIds?: string[];\n categories?: AXPCategoryListItem[];\n}\n\n// Alias for easier import in mock files\nexport type AXMQueryEntityModel = AXMDataManagementQueryEntityModel;\n\n//#endregion","//#region ---- Tag Entity Types ----\n\n/**\n * Tag entity model\n */\nexport interface AXMTag {\n id: string;\n text: string;\n color: string;\n icon?: string;\n description?: string;\n scope: 'system' | 'tenant' | 'user';\n isReadonly?: boolean;\n createdBy?: string;\n createdAt?: Date;\n updatedAt?: Date;\n}\n\n//#endregion\n\n","//#region ---- Contracts barrel ----\n\nexport * from './column-def.widget';\nexport * from './features.keys';\nexport * from './menu.keys';\nexport * from './meta-data-builder.types';\nexport * from './permission.keys';\n\nexport * from './root-config';\nexport * from './manifest';\n\n//#endregion\n\nexport * from './entities';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -76,7 +76,14 @@ class AXPMetaDataBuilderPageComponent extends AXPPageLayoutBaseComponent {
76
76
  untracked(() => this.recompute());
77
77
  }, /* @ts-ignore */
78
78
  ...(ngDevMode ? [{ debugName: "#syncFromContext" }] : /* istanbul ignore next */ []));
79
- this.groupsOptions = computed(() => ({ hideHeaderActions: true }), /* @ts-ignore */
79
+ this.groupsOptions = computed(() => {
80
+ const plugins = this.entityDef()?.plugins;
81
+ const builder = plugins?.find((plugin) => plugin.name === 'meta-data-builder');
82
+ return {
83
+ hideHeaderActions: true,
84
+ fieldAppliesTo: builder?.options?.fieldAppliesTo === true,
85
+ };
86
+ }, /* @ts-ignore */
80
87
  ...(ngDevMode ? [{ debugName: "groupsOptions" }] : /* istanbul ignore next */ []));
81
88
  effect((onCleanup) => {
82
89
  const moduleName = this.route.snapshot.parent?.paramMap.get('module');
@@ -295,4 +302,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
295
302
  }] });
296
303
 
297
304
  export { AXMMetaDataBuilderPageComponentProvider, AXPMetaDataBuilderPageComponent, META_DATA_BUILDER_ADD_SECTION_COMMAND, META_DATA_BUILDER_DISCARD_COMMAND, META_DATA_BUILDER_PREVIEW_COMMAND, META_DATA_BUILDER_SAVE_COMMAND };
298
- //# sourceMappingURL=acorex-platform-module-data-management-client-index-CMxKYDas.mjs.map
305
+ //# sourceMappingURL=acorex-platform-module-data-management-client-index-C0e7q0jf.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-platform-module-data-management-client-index-C0e7q0jf.mjs","sources":["../../../../libs/modules/data-management/client/src/lib/features/meta-data/meta-data-builder/meta-data-builder-page/meta-data-builder-page.commands.ts","../../../../libs/modules/data-management/client/src/lib/features/meta-data/meta-data-builder/meta-data-builder-page/meta-data-builder-page.component.ts","../../../../libs/modules/data-management/client/src/lib/features/meta-data/meta-data-builder/meta-data-builder-page/meta-data-builder-page-component.provider.ts"],"sourcesContent":["/** Command names used by the meta-data-builder page toolbar actions. */\nexport const META_DATA_BUILDER_ADD_SECTION_COMMAND = 'MetaDataBuilder:AddSection';\nexport const META_DATA_BUILDER_PREVIEW_COMMAND = 'MetaDataBuilder:Preview';\nexport const META_DATA_BUILDER_SAVE_COMMAND = 'MetaDataBuilder:Save';\nexport const META_DATA_BUILDER_DISCARD_COMMAND = 'MetaDataBuilder:Discard';\n","\nimport { AXPEntity } from '@acorex-platform/framework-shared/entity';\nimport { AXPEntityDefinitionRegistryService } from '@acorex-platform/framework-client/layout/entity';\nimport type { AXPLayoutDetailsViewAction } from '@acorex-platform/framework-client/layout/views';\nimport { AXPPageLayoutBase, AXPPageLayoutBaseComponent } from '@acorex-platform/framework-client/layout/views';\n\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n inject,\n input,\n signal,\n untracked,\n viewChild,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { cloneDeep, get, isEqual } from 'lodash';\nimport { AXPMetaDataBuilderGroupsComponent } from '../meta-data-builder-groups.component';\nimport { AXMMetaDataBuilderRecordService } from '../meta-data-builder-record.service';\nimport type { AXMMetaDataBuilderValue } from '@acorex-platform/module-data-management-client/contracts';\nimport {\n META_DATA_BUILDER_ADD_SECTION_COMMAND,\n META_DATA_BUILDER_DISCARD_COMMAND,\n META_DATA_BUILDER_PREVIEW_COMMAND,\n META_DATA_BUILDER_SAVE_COMMAND,\n} from './meta-data-builder-page.commands';\n\n/**\n * Page component that renders the meta-data builder with hideHeaderActions,\n * and exposes Add section, Preview, Save, and Discard as page action commands.\n */\n@Component({\n selector: 'axp-meta-data-builder-page',\n standalone: true,\n imports: [AXPMetaDataBuilderGroupsComponent],\n providers: [\n {\n provide: AXPPageLayoutBase,\n useExisting: AXPMetaDataBuilderPageComponent,\n },\n ],\n template: `\n <axp-meta-data-builder-groups\n #groupsRef\n [value]=\"committedValue()\"\n [options]=\"groupsOptions()\"\n (valueChange)=\"onValueChange($event)\"\n />\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.axp-page-layout-base]': 'true',\n },\n})\nexport class AXPMetaDataBuilderPageComponent extends AXPPageLayoutBaseComponent {\n /** Entity record context from details view; set asynchronously by page-component-renderer. */\n rootContext = input<Record<string, unknown>>();\n\n pageConfig = input<Record<string, unknown>>();\n\n protected groupsRef = viewChild<AXPMetaDataBuilderGroupsComponent>('groupsRef');\n\n private route = inject(ActivatedRoute);\n private entityRegistry = inject(AXPEntityDefinitionRegistryService);\n private recordService = inject(AXMMetaDataBuilderRecordService);\n private hostPageLayout = inject(AXPPageLayoutBase, { optional: true, skipSelf: true });\n\n private entityDef = signal<AXPEntity | null>(null);\n\n private baselineValue = signal<AXMMetaDataBuilderValue | null | undefined>(null);\n protected committedValue = signal<AXMMetaDataBuilderValue | null | undefined>(null);\n\n /** True when committed meta-data differs from last saved / loaded baseline (same pattern as questionnaire questions page). */\n protected isDirty = computed(() => {\n const committed = this.committedValue();\n const baseline = this.baselineValue();\n return !isEqual(committed ?? null, baseline ?? null);\n });\n\n constructor() {\n super();\n effect((onCleanup) => {\n const moduleName = this.route.snapshot.parent?.paramMap.get('module');\n const entityName = this.route.snapshot.paramMap.get('entity');\n if (!moduleName || !entityName) {\n this.entityDef.set(null);\n return;\n }\n let cancelled = false;\n this.entityRegistry.resolve(moduleName, entityName).then((entity) => {\n if (!cancelled) this.entityDef.set(entity);\n });\n onCleanup(() => {\n cancelled = true;\n });\n });\n }\n\n protected context = computed(() => this.rootContext() ?? {});\n\n protected fieldName = computed(() => {\n const config = this.pageConfig();\n return config && typeof (config as { field?: string }).field === 'string'\n ? (config as { field: string }).field\n : 'metaDataList';\n });\n\n protected entityKey = computed(() => {\n const moduleName = this.route.snapshot.parent?.paramMap.get('module');\n const entityName = this.route.snapshot.paramMap.get('entity');\n return moduleName && entityName ? `${moduleName}.${entityName}` : '';\n });\n\n protected recordId = computed(() => {\n const ctx = this.context();\n const id = get(ctx, 'id');\n return id != null ? String(id) : '';\n });\n\n #syncFromContext = effect(() => {\n const ctx = this.rootContext();\n if (ctx == null) {\n return;\n }\n\n const field = this.fieldName();\n const value = field ? (get(ctx, field) as AXMMetaDataBuilderValue) : undefined;\n this.baselineValue.set(value ?? null);\n this.committedValue.set(value ?? null);\n untracked(() => this.recompute());\n });\n\n protected groupsOptions = computed(() => {\n const plugins = this.entityDef()?.plugins as Array<{ name?: string; options?: { fieldAppliesTo?: boolean } }> | undefined;\n const builder = plugins?.find((plugin) => plugin.name === 'meta-data-builder');\n return {\n hideHeaderActions: true,\n fieldAppliesTo: builder?.options?.fieldAppliesTo === true,\n };\n });\n\n protected onValueChange(value: AXMMetaDataBuilderValue): void {\n this.committedValue.set(value);\n this.updateRootContextField(this.fieldName(), value);\n this.recompute();\n }\n\n override getWizardStepContext(): Record<string, unknown> | null {\n const field = this.fieldName();\n const value = this.committedValue();\n if (!field || value == null) {\n return null;\n }\n return { [field]: cloneDeep(value) };\n }\n\n override hasUnsavedChanges(): boolean {\n return this.isDirty();\n }\n\n override async getPrimaryMenuItems(): Promise<AXPLayoutDetailsViewAction[]> {\n const addSectionTitle =\n (await this.translateService.translateAsync('@data-management:metadata-definitions.actions.add-group.title')) ||\n 'Add section';\n const previewTitle =\n (await this.translateService.translateAsync('@data-management:metadata-definitions.actions.preview.title')) ||\n 'Preview';\n const saveTitle = (await this.translateService.translateAsync('@general:actions.save.title')) || 'Save';\n const discardTitle = (await this.translateService.translateAsync('@general:actions.discard.title')) || 'Discard';\n\n return [\n {\n title: addSectionTitle,\n icon: 'fa-light fa-layer-group',\n zone: 'header',\n priority: 'primary',\n color: 'primary',\n command: { name: META_DATA_BUILDER_ADD_SECTION_COMMAND, options: {} },\n },\n {\n title: previewTitle,\n icon: 'fa-light fa-eye',\n zone: 'header',\n priority: 'primary',\n color: 'default',\n command: { name: META_DATA_BUILDER_PREVIEW_COMMAND, options: {} },\n },\n {\n title: discardTitle,\n icon: 'fa-light fa-rotate-left',\n zone: 'footer',\n priority: 'secondary',\n color: 'default',\n visible: this.isDirty(),\n command: { name: META_DATA_BUILDER_DISCARD_COMMAND, options: {} },\n },\n {\n title: saveTitle,\n icon: 'fa-light fa-floppy-disk',\n zone: 'footer',\n priority: 'primary',\n color: 'primary',\n visible: this.isDirty(),\n command: { name: META_DATA_BUILDER_SAVE_COMMAND, options: {} },\n },\n ];\n }\n\n override async execute(command: { name: string; options?: unknown }): Promise<void> {\n const groups = this.groupsRef();\n if (command.name === META_DATA_BUILDER_ADD_SECTION_COMMAND) {\n await groups?.addSection();\n return;\n }\n if (command.name === META_DATA_BUILDER_PREVIEW_COMMAND) {\n await groups?.handlePreviewClick();\n return;\n }\n if (command.name === META_DATA_BUILDER_SAVE_COMMAND) {\n await this.handleSave();\n return;\n }\n if (command.name === META_DATA_BUILDER_DISCARD_COMMAND) {\n this.handleDiscard();\n return;\n }\n }\n\n private async handleSave(): Promise<void> {\n const entity = this.entityKey();\n const id = this.recordId();\n const field = this.fieldName();\n const value = this.committedValue();\n if (!entity || !id || !field) {\n this.toastService.show({\n color: 'danger',\n title: await this.translateService.translateAsync('@general:messages.error.title'),\n content: await this.translateService.translateAsync('@general:messages.entity.invalid-data'),\n });\n return;\n }\n try {\n await this.recordService.updateRecord(entity, id, { [field]: value ?? { groups: [] } });\n const saved = value ?? { groups: [] };\n this.baselineValue.set(saved);\n this.committedValue.set(saved);\n this.updateRootContextField(field, saved);\n this.recompute();\n this.toastService.show({\n color: 'success',\n title: await this.translateService.translateAsync('@general:messages.generic.success.title'),\n content: await this.translateService.translateAsync('@general:messages.generic.success.description'),\n location: 'bottom-center',\n closeButton: true,\n timeOut: 3000,\n timeOutProgress: true,\n });\n } catch {\n this.toastService.show({\n color: 'danger',\n title: await this.translateService.translateAsync('@general:messages.error.title'),\n content: await this.translateService.translateAsync('@general:messages.entity.update-failed'),\n });\n }\n }\n\n private handleDiscard(): void {\n const baseline = this.baselineValue();\n this.committedValue.set(baseline ?? null);\n this.recompute();\n }\n\n protected override recompute(): void {\n super.recompute();\n const maybeLayout = this.hostPageLayout as unknown as { recompute?: () => void };\n maybeLayout?.recompute?.();\n }\n\n /** Keeps details-view `rootContext` in sync so sidebar navigation remounts with latest data. */\n private updateRootContextField(field: string, value: unknown): void {\n const ctx = this.rootContext() as Record<string, unknown> | undefined;\n if (!ctx || typeof ctx !== 'object') {\n return;\n }\n ctx[field] = cloneDeep(value);\n }\n}\n","import {\n AXPPageComponentDefinition,\n AXPPageComponentProvider,\n} from '@acorex-platform/framework-client/layout/components';\nimport { Injectable } from '@angular/core';\nimport { META_DATA_BUILDER_PAGE_COMPONENT_KEY } from '../meta-data-builder.plugin';\n\n@Injectable()\nexport class AXMMetaDataBuilderPageComponentProvider implements AXPPageComponentProvider {\n async components(): Promise<AXPPageComponentDefinition[]> {\n return [\n {\n key: META_DATA_BUILDER_PAGE_COMPONENT_KEY,\n loader: () =>\n import('./meta-data-builder-page.component').then((m) => m.AXPMetaDataBuilderPageComponent),\n },\n ];\n }\n}\n"],"names":[],"mappings":"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"}