@acorex-platform/module-data-management-client 0.0.53 → 0.0.56
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-contracts.mjs +43 -3
- package/fesm2022/acorex-platform-module-data-management-client-contracts.mjs.map +1 -1
- package/fesm2022/{acorex-platform-module-data-management-client-index-CMxKYDas.mjs → acorex-platform-module-data-management-client-index-C0e7q0jf.mjs} +9 -2
- package/fesm2022/acorex-platform-module-data-management-client-index-C0e7q0jf.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-data-management-client.mjs +157 -14
- package/fesm2022/acorex-platform-module-data-management-client.mjs.map +1 -1
- package/i18n/en-AU/data-management.json +689 -0
- package/i18n/en-US/data-management.json +689 -0
- package/i18n/fa-IR/data-management.json +693 -0
- package/package.json +1 -1
- package/types/acorex-platform-module-data-management-client-contracts.d.ts +21 -2
- package/types/acorex-platform-module-data-management-client.d.ts +17 -1
- package/fesm2022/acorex-platform-module-data-management-client-index-CMxKYDas.mjs.map +0 -1
package/package.json
CHANGED
|
@@ -95,6 +95,9 @@ declare const AXPDataManagementMenuKeys: {
|
|
|
95
95
|
|
|
96
96
|
/** Localized or plain string as stored / edited in the builder */
|
|
97
97
|
type AXMMetaDataLocalizedString = string | AXPMultiLanguageString;
|
|
98
|
+
/** Which record a metadata field is collected on. Missing / null means document. */
|
|
99
|
+
type AXMMetaDataFieldAppliesTo = 'document' | 'folder';
|
|
100
|
+
declare const AXM_META_DATA_FIELD_APPLIES_TO_DEFAULT: AXMMetaDataFieldAppliesTo;
|
|
98
101
|
/** Single metadata field within a group */
|
|
99
102
|
interface AXMMetaDataBuilderField {
|
|
100
103
|
id: string;
|
|
@@ -107,6 +110,8 @@ interface AXMMetaDataBuilderField {
|
|
|
107
110
|
placeholder?: string;
|
|
108
111
|
[key: string]: unknown;
|
|
109
112
|
};
|
|
113
|
+
/** When omitted or null, the field applies to the document. */
|
|
114
|
+
appliesTo?: AXMMetaDataFieldAppliesTo | null;
|
|
110
115
|
status: 'active' | 'deleted' | 'temporary';
|
|
111
116
|
order: number;
|
|
112
117
|
isNewlyAdded?: boolean;
|
|
@@ -142,10 +147,24 @@ interface AXMMetaDataBuilderValue {
|
|
|
142
147
|
description?: AXMMetaDataLocalizedString;
|
|
143
148
|
interface: string;
|
|
144
149
|
configuration?: AXPOptionsData;
|
|
150
|
+
/** When omitted or null, the field applies to the document. */
|
|
151
|
+
appliesTo?: AXMMetaDataFieldAppliesTo | null;
|
|
145
152
|
order: number;
|
|
146
153
|
}>;
|
|
147
154
|
}>;
|
|
148
155
|
}
|
|
156
|
+
type MetaDataAppliesToSource = {
|
|
157
|
+
appliesTo?: unknown;
|
|
158
|
+
configuration?: {
|
|
159
|
+
appliesTo?: unknown;
|
|
160
|
+
[key: string]: unknown;
|
|
161
|
+
};
|
|
162
|
+
};
|
|
163
|
+
/** Missing, null, or any value other than `folder` resolves to document. */
|
|
164
|
+
declare function resolveMetaDataFieldAppliesTo(field: MetaDataAppliesToSource | null | undefined): AXMMetaDataFieldAppliesTo;
|
|
165
|
+
declare function filterMetaDataListByAppliesTo(list: AXMMetaDataBuilderValue | null | undefined, appliesTo: AXMMetaDataFieldAppliesTo): AXMMetaDataBuilderValue;
|
|
166
|
+
declare function hasMetaDataListFields(list: AXMMetaDataBuilderValue | null | undefined): boolean;
|
|
167
|
+
declare function mergeMetaDataLists(lists: Array<AXMMetaDataBuilderValue | null | undefined>): AXMMetaDataBuilderValue;
|
|
149
168
|
declare function convertValueToState(value: unknown): AXMMetaDataBuilderState;
|
|
150
169
|
declare function convertStateToValue(state: AXMMetaDataBuilderState): AXMMetaDataBuilderValue;
|
|
151
170
|
declare function createDefaultGroup(): AXMMetaDataBuilderGroup;
|
|
@@ -431,5 +450,5 @@ interface AXMTag {
|
|
|
431
450
|
updatedAt?: Date;
|
|
432
451
|
}
|
|
433
452
|
|
|
434
|
-
export { AXMDataManagementFeatureKeys, AXMDataSourceOutputType, AXMDataSourceType, AXMPermissionsKeys, AXM_COLUMN_DEF_WIDGET, AXPDataManagementMenuKeys, AXPInsightsReportingPermissionKeys, DataManagementManifest, RootConfig, convertStateToValue, convertValueToState, createDefaultGroup };
|
|
435
|
-
export type { AXMDataManagementQueryEntityModel, AXMDataSourceEntityModel, AXMDataSourceFilter, AXMDataSourceOutputTypeOption, AXMDataSourceTypeOption, AXMMetaDataBuilderField, AXMMetaDataBuilderGroup, AXMMetaDataBuilderState, AXMMetaDataBuilderValue, AXMMetaDataDefinitionEntityModel, AXMMetaDataLocalizedString, AXMQueryEntityModel, AXMTag, AXPAggregateOperation, AXPQueryBuilderData, AXPQueryExecutionResult, AXPQueryOutputType, AXPQuerySortRule };
|
|
453
|
+
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 };
|
|
454
|
+
export type { AXMDataManagementQueryEntityModel, AXMDataSourceEntityModel, AXMDataSourceFilter, AXMDataSourceOutputTypeOption, AXMDataSourceTypeOption, AXMMetaDataBuilderField, AXMMetaDataBuilderGroup, AXMMetaDataBuilderState, AXMMetaDataBuilderValue, AXMMetaDataDefinitionEntityModel, AXMMetaDataFieldAppliesTo, AXMMetaDataLocalizedString, AXMQueryEntityModel, AXMTag, AXPAggregateOperation, AXPQueryBuilderData, AXPQueryExecutionResult, AXPQueryOutputType, AXPQuerySortRule };
|
|
@@ -1438,14 +1438,24 @@ type AXPMetaDataFormWidgetConfigType = {
|
|
|
1438
1438
|
layoutDirection?: 'vertical' | 'horizontal' | 'grid';
|
|
1439
1439
|
groupByCategory?: boolean;
|
|
1440
1440
|
showCategoryHeaders?: boolean;
|
|
1441
|
+
/** Context path of `{ metaDataList }` rows (for example folder `documentTypes`). */
|
|
1442
|
+
sourcePath?: string;
|
|
1443
|
+
/** When `sourcePath` is set, keep fields whose appliesTo matches. */
|
|
1444
|
+
appliesTo?: 'document' | 'folder';
|
|
1445
|
+
/** Lookup rows used when the selected value is a key or omits `metaDataList`. */
|
|
1446
|
+
sourceCatalog?: unknown[];
|
|
1447
|
+
/** Hide the empty-state message when no fields apply. Defaults true with `sourcePath`. */
|
|
1448
|
+
hideEmpty?: boolean;
|
|
1441
1449
|
};
|
|
1442
1450
|
|
|
1443
1451
|
declare class AXPMetaDataFormWidgetEditComponent extends AXPValueWidgetComponent implements OnInit {
|
|
1444
1452
|
#private;
|
|
1445
1453
|
/**
|
|
1446
|
-
* Groups structure from meta-data-selector or
|
|
1454
|
+
* Groups structure from meta-data-selector, evaluated expression, or a sibling context path
|
|
1455
|
+
* of `{ metaDataList }` rows (for example folder dialog `documentTypes`).
|
|
1447
1456
|
*/
|
|
1448
1457
|
groups: _angular_core.Signal<AXPDynamicFormGroupDefinition[]>;
|
|
1458
|
+
protected hideEmpty: _angular_core.Signal<boolean>;
|
|
1449
1459
|
/** Inherits parent widget render mode (`view` on Entity:View / single forms). */
|
|
1450
1460
|
protected get layoutRenderMode(): AXPDynamicFormMode;
|
|
1451
1461
|
/**
|
|
@@ -1600,6 +1610,7 @@ declare class AXPMetaDataBuilderGroupsComponent {
|
|
|
1600
1610
|
protected readonly standardConfig: _angular_core.Signal<AXPStandardSectionItemsBuilderConfig>;
|
|
1601
1611
|
protected hideHeaderActions: _angular_core.Signal<boolean>;
|
|
1602
1612
|
protected readonly: _angular_core.Signal<boolean>;
|
|
1613
|
+
protected fieldAppliesToEnabled: _angular_core.Signal<boolean>;
|
|
1603
1614
|
protected previewGroups: _angular_core.Signal<{
|
|
1604
1615
|
name: string;
|
|
1605
1616
|
title: _acorex_platform_module_data_management_client_contracts.AXMMetaDataLocalizedString | undefined;
|
|
@@ -1671,6 +1682,11 @@ type MetaDataBuilderPluginOptions = {
|
|
|
1671
1682
|
display?: MetaDataBuilderDisplay;
|
|
1672
1683
|
/** If true, each metadata group becomes a separate entity section (TODO) */
|
|
1673
1684
|
renderGroupsAsSections?: boolean;
|
|
1685
|
+
/**
|
|
1686
|
+
* When true, each metadata field can be scoped to document or folder.
|
|
1687
|
+
* Used by Document Type; other builders leave this off.
|
|
1688
|
+
*/
|
|
1689
|
+
fieldAppliesTo?: boolean;
|
|
1674
1690
|
};
|
|
1675
1691
|
/**
|
|
1676
1692
|
* meta-data-builder plugin
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-module-data-management-client-index-CMxKYDas.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(() => ({ hideHeaderActions: true }));\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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"}
|