@acorex-platform/module-data-management-client 0.0.57 → 0.0.58
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.
- package/fesm2022/acorex-platform-module-data-management-client-acorex-platform-module-data-management-client-CIbuatSh.mjs +8998 -0
- package/fesm2022/acorex-platform-module-data-management-client-acorex-platform-module-data-management-client-CIbuatSh.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-data-management-client-contracts.mjs +3 -0
- package/fesm2022/acorex-platform-module-data-management-client-contracts.mjs.map +1 -1
- package/fesm2022/{acorex-platform-module-data-management-client-index-C0e7q0jf.mjs → acorex-platform-module-data-management-client-index-BcixqRpB.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-data-management-client-index-C0e7q0jf.mjs.map → acorex-platform-module-data-management-client-index-BcixqRpB.mjs.map} +1 -1
- package/fesm2022/acorex-platform-module-data-management-client-index-pdq6oaHN.mjs +297 -0
- package/fesm2022/acorex-platform-module-data-management-client-index-pdq6oaHN.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-data-management-client.mjs +1 -8581
- package/fesm2022/acorex-platform-module-data-management-client.mjs.map +1 -1
- package/i18n/en-AU/data-management.json +18 -1
- package/i18n/en-US/data-management.json +18 -1
- package/i18n/fa-IR/data-management.json +16 -1
- package/package.json +1 -1
- package/types/acorex-platform-module-data-management-client-contracts.d.ts +4 -1
- package/types/acorex-platform-module-data-management-client.d.ts +27 -6
|
@@ -195,6 +195,7 @@ function convertValueToState(value) {
|
|
|
195
195
|
description: item.description,
|
|
196
196
|
interface: item.interface,
|
|
197
197
|
configuration: item.configuration,
|
|
198
|
+
layout: item.layout,
|
|
198
199
|
appliesTo: resolveMetaDataFieldAppliesTo(item),
|
|
199
200
|
status: item.status || 'active',
|
|
200
201
|
order: item.order ?? index,
|
|
@@ -220,6 +221,7 @@ function convertValueToState(value) {
|
|
|
220
221
|
description: field.description,
|
|
221
222
|
interface: field.interface,
|
|
222
223
|
configuration: field.configuration,
|
|
224
|
+
layout: field.layout,
|
|
223
225
|
appliesTo: resolveMetaDataFieldAppliesTo(field),
|
|
224
226
|
status: field.status || 'active',
|
|
225
227
|
order: field.order ?? fieldIndex,
|
|
@@ -254,6 +256,7 @@ function convertStateToValue(state) {
|
|
|
254
256
|
description: field.description,
|
|
255
257
|
interface: field.interface,
|
|
256
258
|
configuration: field.configuration,
|
|
259
|
+
...(field.layout ? { layout: field.layout } : {}),
|
|
257
260
|
appliesTo: resolveMetaDataFieldAppliesTo(field),
|
|
258
261
|
order: field.order,
|
|
259
262
|
})),
|
|
@@ -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/** 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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"}
|
|
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 { AXPGridLayoutOptions, 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 /** Column placement on the record form. `positions.lg.colSpan` is the width in a 12-column row. */\n layout?: AXPGridLayoutOptions;\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 layout?: AXPGridLayoutOptions;\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 layout: item.layout,\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 layout: field.layout,\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 ...(field.layout ? { layout: field.layout } : {}),\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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"}
|
|
@@ -4,7 +4,7 @@ import * as i0 from '@angular/core';
|
|
|
4
4
|
import { input, viewChild, inject, signal, computed, effect, untracked, ChangeDetectionStrategy, Component, Injectable } from '@angular/core';
|
|
5
5
|
import { ActivatedRoute } from '@angular/router';
|
|
6
6
|
import { isEqual, get, cloneDeep } from 'lodash';
|
|
7
|
-
import { AXMMetaDataBuilderRecordService, AXPMetaDataBuilderGroupsComponent, META_DATA_BUILDER_PAGE_COMPONENT_KEY } from './acorex-platform-module-data-management-client.mjs';
|
|
7
|
+
import { A as AXMMetaDataBuilderRecordService, a as AXPMetaDataBuilderGroupsComponent, M as META_DATA_BUILDER_PAGE_COMPONENT_KEY } from './acorex-platform-module-data-management-client-acorex-platform-module-data-management-client-CIbuatSh.mjs';
|
|
8
8
|
|
|
9
9
|
/** Command names used by the meta-data-builder page toolbar actions. */
|
|
10
10
|
const META_DATA_BUILDER_ADD_SECTION_COMMAND = 'MetaDataBuilder:AddSection';
|
|
@@ -302,4 +302,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
302
302
|
}] });
|
|
303
303
|
|
|
304
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 };
|
|
305
|
-
//# sourceMappingURL=acorex-platform-module-data-management-client-index-
|
|
305
|
+
//# sourceMappingURL=acorex-platform-module-data-management-client-index-BcixqRpB.mjs.map
|
|
@@ -1 +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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"}
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-data-management-client-index-BcixqRpB.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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"}
|
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
import { AXPPageLayoutBaseComponent, AXPPageLayoutBase } from '@acorex-platform/framework-client/layout/views';
|
|
2
|
+
import * as i3 from '@acorex-platform/framework-client/layout/widget-core';
|
|
3
|
+
import { AXPWidgetCoreModule } from '@acorex-platform/framework-client/layout/widget-core';
|
|
4
|
+
import { AXPEntityDefinitionRegistryService } from '@acorex-platform/framework-client/layout/entity';
|
|
5
|
+
import * as i0 from '@angular/core';
|
|
6
|
+
import { input, inject, signal, computed, effect, ChangeDetectionStrategy, Component, Injectable } from '@angular/core';
|
|
7
|
+
import { ActivatedRoute } from '@angular/router';
|
|
8
|
+
import { merge, get, isEqual } from 'lodash';
|
|
9
|
+
import { b as META_DATA_FORM_FIELD, c as META_DATA_FORM_PAGE_COMPONENT_KEY } from './acorex-platform-module-data-management-client-acorex-platform-module-data-management-client-CIbuatSh.mjs';
|
|
10
|
+
|
|
11
|
+
const META_DATA_FORM_PAGE_SAVE_COMMAND = 'EntityMetaDataFormPage:Save';
|
|
12
|
+
const META_DATA_FORM_PAGE_DISCARD_COMMAND = 'EntityMetaDataFormPage:Discard';
|
|
13
|
+
const META_DATA_FORM_SECTION_LOOKS = ['card', 'fieldset', 'group', 'container'];
|
|
14
|
+
function readPageSectionLook(entity, field) {
|
|
15
|
+
const extensions = entity.extensions;
|
|
16
|
+
const metaDataForm = extensions?.['metaDataForm'];
|
|
17
|
+
const look = metaDataForm?.[field]?.display?.page?.look;
|
|
18
|
+
if (typeof look === 'string' && META_DATA_FORM_SECTION_LOOKS.includes(look)) {
|
|
19
|
+
return look;
|
|
20
|
+
}
|
|
21
|
+
return 'card';
|
|
22
|
+
}
|
|
23
|
+
//#region ----- Component -----
|
|
24
|
+
/**
|
|
25
|
+
* Page component that renders the meta-data form on the record detail side menu.
|
|
26
|
+
* Used when the meta-data-form plugin has display: 'page'.
|
|
27
|
+
*/
|
|
28
|
+
class AXPMetaDataFormPageComponent extends AXPPageLayoutBaseComponent {
|
|
29
|
+
//#endregion
|
|
30
|
+
//#region ----- Lifecycle -----
|
|
31
|
+
constructor() {
|
|
32
|
+
super();
|
|
33
|
+
//#region ----- Inputs -----
|
|
34
|
+
/** Default `{}`: avoid NG0950 before page-component-renderer calls setInput. */
|
|
35
|
+
this.rootContext = input({}, /* @ts-ignore */
|
|
36
|
+
...(ngDevMode ? [{ debugName: "rootContext" }] : /* istanbul ignore next */ []));
|
|
37
|
+
this.pageConfig = input(/* @ts-ignore */
|
|
38
|
+
...(ngDevMode ? [undefined, { debugName: "pageConfig" }] : /* istanbul ignore next */ []));
|
|
39
|
+
//#endregion
|
|
40
|
+
//#region ----- Services & Dependencies -----
|
|
41
|
+
this.route = inject(ActivatedRoute);
|
|
42
|
+
this.entityRegistry = inject(AXPEntityDefinitionRegistryService);
|
|
43
|
+
this.hostPageLayout = inject(AXPPageLayoutBase, { optional: true, skipSelf: true });
|
|
44
|
+
//#endregion
|
|
45
|
+
//#region ----- State Signals -----
|
|
46
|
+
this.entityDef = signal(null, /* @ts-ignore */
|
|
47
|
+
...(ngDevMode ? [{ debugName: "entityDef" }] : /* istanbul ignore next */ []));
|
|
48
|
+
this.localContext = signal(null, /* @ts-ignore */
|
|
49
|
+
...(ngDevMode ? [{ debugName: "localContext" }] : /* istanbul ignore next */ []));
|
|
50
|
+
this.isDirty = signal(false, /* @ts-ignore */
|
|
51
|
+
...(ngDevMode ? [{ debugName: "isDirty" }] : /* istanbul ignore next */ []));
|
|
52
|
+
this.isSaving = signal(false, /* @ts-ignore */
|
|
53
|
+
...(ngDevMode ? [{ debugName: "isSaving" }] : /* istanbul ignore next */ []));
|
|
54
|
+
this.previousRecordId = signal(undefined, /* @ts-ignore */
|
|
55
|
+
...(ngDevMode ? [{ debugName: "previousRecordId" }] : /* istanbul ignore next */ []));
|
|
56
|
+
/** Recreates the inner widget container on discard so the form resets. */
|
|
57
|
+
this.widgetRenderKey = signal(0, /* @ts-ignore */
|
|
58
|
+
...(ngDevMode ? [{ debugName: "widgetRenderKey" }] : /* istanbul ignore next */ []));
|
|
59
|
+
//#endregion
|
|
60
|
+
//#region ----- Computed Properties -----
|
|
61
|
+
this.context = computed(() => {
|
|
62
|
+
const local = this.localContext();
|
|
63
|
+
if (local != null) {
|
|
64
|
+
return local;
|
|
65
|
+
}
|
|
66
|
+
return this.rootContext() ?? {};
|
|
67
|
+
}, /* @ts-ignore */
|
|
68
|
+
...(ngDevMode ? [{ debugName: "context" }] : /* istanbul ignore next */ []));
|
|
69
|
+
this.fieldName = computed(() => {
|
|
70
|
+
const config = this.pageConfig();
|
|
71
|
+
return config && typeof config.field === 'string'
|
|
72
|
+
? config.field
|
|
73
|
+
: META_DATA_FORM_FIELD;
|
|
74
|
+
}, /* @ts-ignore */
|
|
75
|
+
...(ngDevMode ? [{ debugName: "fieldName" }] : /* istanbul ignore next */ []));
|
|
76
|
+
this.recordId = computed(() => {
|
|
77
|
+
const id = this.rootContext()?.['id'];
|
|
78
|
+
if (typeof id === 'string' && id.length > 0) {
|
|
79
|
+
return id;
|
|
80
|
+
}
|
|
81
|
+
if (typeof id === 'number' && !Number.isNaN(id)) {
|
|
82
|
+
return String(id);
|
|
83
|
+
}
|
|
84
|
+
return undefined;
|
|
85
|
+
}, /* @ts-ignore */
|
|
86
|
+
...(ngDevMode ? [{ debugName: "recordId" }] : /* istanbul ignore next */ []));
|
|
87
|
+
this.node = computed(() => {
|
|
88
|
+
const field = this.fieldName();
|
|
89
|
+
const entity = this.entityDef();
|
|
90
|
+
if (!entity?.properties) {
|
|
91
|
+
return null;
|
|
92
|
+
}
|
|
93
|
+
const prop = entity.properties.find((p) => p.name === field);
|
|
94
|
+
if (!prop?.schema?.interface) {
|
|
95
|
+
return null;
|
|
96
|
+
}
|
|
97
|
+
const widget = prop.schema.interface;
|
|
98
|
+
return {
|
|
99
|
+
type: widget.type,
|
|
100
|
+
path: field,
|
|
101
|
+
name: field,
|
|
102
|
+
children: widget.children,
|
|
103
|
+
valueTransforms: widget.valueTransforms,
|
|
104
|
+
options: merge({}, widget.options, { look: readPageSectionLook(entity, field) }),
|
|
105
|
+
};
|
|
106
|
+
}, /* @ts-ignore */
|
|
107
|
+
...(ngDevMode ? [{ debugName: "node" }] : /* istanbul ignore next */ []));
|
|
108
|
+
effect((onCleanup) => {
|
|
109
|
+
const moduleName = this.route.snapshot.parent?.paramMap.get('module');
|
|
110
|
+
const entityName = this.route.snapshot.paramMap.get('entity');
|
|
111
|
+
if (!moduleName || !entityName) {
|
|
112
|
+
this.entityDef.set(null);
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
let cancelled = false;
|
|
116
|
+
this.entityRegistry.resolve(moduleName, entityName).then((entity) => {
|
|
117
|
+
if (!cancelled) {
|
|
118
|
+
this.entityDef.set(entity);
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
onCleanup(() => {
|
|
122
|
+
cancelled = true;
|
|
123
|
+
});
|
|
124
|
+
});
|
|
125
|
+
effect(() => {
|
|
126
|
+
const recordId = this.recordId();
|
|
127
|
+
if (!recordId || recordId === this.previousRecordId()) {
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
this.previousRecordId.set(recordId);
|
|
131
|
+
this.localContext.set(null);
|
|
132
|
+
this.isDirty.set(false);
|
|
133
|
+
this.widgetRenderKey.update((key) => key + 1);
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
//#endregion
|
|
137
|
+
//#region ----- Unsaved Changes -----
|
|
138
|
+
hasUnsavedChanges() {
|
|
139
|
+
return this.isDirty();
|
|
140
|
+
}
|
|
141
|
+
//#endregion
|
|
142
|
+
//#region ----- Event Handlers -----
|
|
143
|
+
async getPrimaryMenuItems() {
|
|
144
|
+
const dirty = this.isDirty();
|
|
145
|
+
const saving = this.isSaving();
|
|
146
|
+
const saveTitle = (await this.translateService.translateAsync('@general:actions.save.title')) || 'Save';
|
|
147
|
+
const discardTitle = (await this.translateService.translateAsync('@general:actions.discard.title')) || 'Discard';
|
|
148
|
+
return [
|
|
149
|
+
{
|
|
150
|
+
title: discardTitle,
|
|
151
|
+
icon: 'fa-light fa-rotate-left',
|
|
152
|
+
zone: 'footer',
|
|
153
|
+
priority: 'secondary',
|
|
154
|
+
color: 'default',
|
|
155
|
+
visible: dirty,
|
|
156
|
+
disabled: saving,
|
|
157
|
+
command: { name: META_DATA_FORM_PAGE_DISCARD_COMMAND, options: {} },
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
title: saveTitle,
|
|
161
|
+
icon: 'fa-light fa-floppy-disk',
|
|
162
|
+
zone: 'footer',
|
|
163
|
+
priority: 'primary',
|
|
164
|
+
color: 'primary',
|
|
165
|
+
visible: dirty,
|
|
166
|
+
disabled: saving,
|
|
167
|
+
command: { name: META_DATA_FORM_PAGE_SAVE_COMMAND, options: {} },
|
|
168
|
+
},
|
|
169
|
+
];
|
|
170
|
+
}
|
|
171
|
+
onContextChanged(event) {
|
|
172
|
+
if (event.state !== 'changed' || this.isSaving()) {
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
const field = this.fieldName();
|
|
176
|
+
const metaData = get(event.data, field);
|
|
177
|
+
const base = this.localContext() ?? this.rootContext() ?? {};
|
|
178
|
+
this.localContext.set({ ...base, [field]: metaData });
|
|
179
|
+
this.isDirty.set(!isEqual(metaData ?? null, get(this.rootContext(), field) ?? null));
|
|
180
|
+
this.recompute();
|
|
181
|
+
}
|
|
182
|
+
execute(command) {
|
|
183
|
+
if (command.name === META_DATA_FORM_PAGE_DISCARD_COMMAND) {
|
|
184
|
+
this.handleDiscard();
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
187
|
+
if (command.name !== META_DATA_FORM_PAGE_SAVE_COMMAND) {
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
return this.handleSave();
|
|
191
|
+
}
|
|
192
|
+
//#endregion
|
|
193
|
+
//#region ----- Persistence -----
|
|
194
|
+
handleDiscard() {
|
|
195
|
+
this.localContext.set(null);
|
|
196
|
+
this.isDirty.set(false);
|
|
197
|
+
this.widgetRenderKey.update((key) => key + 1);
|
|
198
|
+
this.recompute();
|
|
199
|
+
}
|
|
200
|
+
async handleSave() {
|
|
201
|
+
const field = this.fieldName();
|
|
202
|
+
const id = this.recordId();
|
|
203
|
+
const entity = this.entityDef();
|
|
204
|
+
const updateExec = entity?.commands?.update?.execute;
|
|
205
|
+
const ctx = this.localContext() ?? this.rootContext() ?? {};
|
|
206
|
+
const metaData = get(ctx, field);
|
|
207
|
+
if (!field || !id || !updateExec) {
|
|
208
|
+
return {
|
|
209
|
+
success: false,
|
|
210
|
+
message: {
|
|
211
|
+
text: await this.translateService.translateAsync('@general:messages.entity.invalid-data'),
|
|
212
|
+
},
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
this.isSaving.set(true);
|
|
216
|
+
this.recompute();
|
|
217
|
+
try {
|
|
218
|
+
await updateExec({ id, [field]: metaData });
|
|
219
|
+
const root = this.rootContext();
|
|
220
|
+
if (root && typeof root === 'object') {
|
|
221
|
+
root[field] = metaData;
|
|
222
|
+
}
|
|
223
|
+
this.localContext.set({ ...(root ?? {}), [field]: metaData });
|
|
224
|
+
this.isDirty.set(false);
|
|
225
|
+
this.recompute();
|
|
226
|
+
this.toastService.show({
|
|
227
|
+
color: 'success',
|
|
228
|
+
title: await this.translateService.translateAsync('@general:messages.generic.success.title'),
|
|
229
|
+
content: await this.translateService.translateAsync('@general:messages.generic.success.description'),
|
|
230
|
+
location: 'bottom-center',
|
|
231
|
+
closeButton: true,
|
|
232
|
+
timeOut: 3000,
|
|
233
|
+
timeOutProgress: true,
|
|
234
|
+
});
|
|
235
|
+
return { success: true, kind: 'object', data: undefined };
|
|
236
|
+
}
|
|
237
|
+
catch {
|
|
238
|
+
this.toastService.show({
|
|
239
|
+
color: 'danger',
|
|
240
|
+
title: await this.translateService.translateAsync('@general:messages.error.title'),
|
|
241
|
+
content: await this.translateService.translateAsync('@general:messages.entity.update-failed'),
|
|
242
|
+
});
|
|
243
|
+
return { success: false };
|
|
244
|
+
}
|
|
245
|
+
finally {
|
|
246
|
+
this.isSaving.set(false);
|
|
247
|
+
this.recompute();
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
recompute() {
|
|
251
|
+
super.recompute();
|
|
252
|
+
const maybeLayout = this.hostPageLayout;
|
|
253
|
+
maybeLayout?.recompute?.();
|
|
254
|
+
}
|
|
255
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPMetaDataFormPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
256
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPMetaDataFormPageComponent, isStandalone: true, selector: "axp-meta-data-form-page", inputs: { rootContext: { classPropertyName: "rootContext", publicName: "rootContext", isSignal: true, isRequired: false, transformFunction: null }, pageConfig: { classPropertyName: "pageConfig", publicName: "pageConfig", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.axp-page-layout-base": "true" } }, providers: [
|
|
257
|
+
{
|
|
258
|
+
provide: AXPPageLayoutBase,
|
|
259
|
+
useExisting: AXPMetaDataFormPageComponent,
|
|
260
|
+
},
|
|
261
|
+
], usesInheritance: true, ngImport: i0, template: "@for (renderKey of [widgetRenderKey()]; track renderKey) {\n <axp-widgets-container [context]=\"context()\" (onContextChanged)=\"onContextChanged($event)\">\n <!--------------------------------------------------------------->\n <!-- ----- Metadata form widget when the field node is resolved ----- -->\n @if (node(); as n) {\n <ng-container axp-widget-renderer [node]=\"n\" [mode]=\"'edit'\"></ng-container>\n }\n </axp-widgets-container>\n}\n", dependencies: [{ kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "component", type: i3.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "functions"], outputs: ["onContextChanged"] }, { kind: "directive", type: i3.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], outputs: ["onOptionsChanged", "onValueChanged", "onLoad"], exportAs: ["widgetRenderer"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
262
|
+
}
|
|
263
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPMetaDataFormPageComponent, decorators: [{
|
|
264
|
+
type: Component,
|
|
265
|
+
args: [{ selector: 'axp-meta-data-form-page', standalone: true, imports: [AXPWidgetCoreModule], providers: [
|
|
266
|
+
{
|
|
267
|
+
provide: AXPPageLayoutBase,
|
|
268
|
+
useExisting: AXPMetaDataFormPageComponent,
|
|
269
|
+
},
|
|
270
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
271
|
+
'[class.axp-page-layout-base]': 'true',
|
|
272
|
+
}, template: "@for (renderKey of [widgetRenderKey()]; track renderKey) {\n <axp-widgets-container [context]=\"context()\" (onContextChanged)=\"onContextChanged($event)\">\n <!--------------------------------------------------------------->\n <!-- ----- Metadata form widget when the field node is resolved ----- -->\n @if (node(); as n) {\n <ng-container axp-widget-renderer [node]=\"n\" [mode]=\"'edit'\"></ng-container>\n }\n </axp-widgets-container>\n}\n" }]
|
|
273
|
+
}], ctorParameters: () => [], propDecorators: { rootContext: [{ type: i0.Input, args: [{ isSignal: true, alias: "rootContext", required: false }] }], pageConfig: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageConfig", required: false }] }] } });
|
|
274
|
+
|
|
275
|
+
var metaDataFormPage_component = /*#__PURE__*/Object.freeze({
|
|
276
|
+
__proto__: null,
|
|
277
|
+
AXPMetaDataFormPageComponent: AXPMetaDataFormPageComponent
|
|
278
|
+
});
|
|
279
|
+
|
|
280
|
+
class AXMMetaDataFormPageComponentProvider {
|
|
281
|
+
async components() {
|
|
282
|
+
return [
|
|
283
|
+
{
|
|
284
|
+
key: META_DATA_FORM_PAGE_COMPONENT_KEY,
|
|
285
|
+
loader: () => Promise.resolve().then(function () { return metaDataFormPage_component; }).then((m) => m.AXPMetaDataFormPageComponent),
|
|
286
|
+
},
|
|
287
|
+
];
|
|
288
|
+
}
|
|
289
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMMetaDataFormPageComponentProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
290
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMMetaDataFormPageComponentProvider }); }
|
|
291
|
+
}
|
|
292
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMMetaDataFormPageComponentProvider, decorators: [{
|
|
293
|
+
type: Injectable
|
|
294
|
+
}] });
|
|
295
|
+
|
|
296
|
+
export { AXMMetaDataFormPageComponentProvider, AXPMetaDataFormPageComponent };
|
|
297
|
+
//# sourceMappingURL=acorex-platform-module-data-management-client-index-pdq6oaHN.mjs.map
|