@acorex-platform/module-common-client 0.0.18 → 0.0.24
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-common-client-acorex-platform-module-common-client-rqWzT7RI.mjs → acorex-platform-module-common-client-acorex-platform-module-common-client-CkeshVWo.mjs} +765 -417
- package/fesm2022/acorex-platform-module-common-client-acorex-platform-module-common-client-CkeshVWo.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-common-client-archive-entity.command-CKENj9Od.mjs → acorex-platform-module-common-client-archive-entity.command-BZgNdxFS.mjs} +9 -13
- package/fesm2022/acorex-platform-module-common-client-archive-entity.command-BZgNdxFS.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-common-client-archive-entity.command.util-BZrXDNGP.mjs → acorex-platform-module-common-client-archive-entity.command.util-BVrK8ZGy.mjs} +52 -40
- package/fesm2022/acorex-platform-module-common-client-archive-entity.command.util-BVrK8ZGy.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-common-client-audit-info-column.component-DuZUwD31.mjs → acorex-platform-module-common-client-audit-info-column.component-CsqKKwwF.mjs} +27 -16
- package/fesm2022/acorex-platform-module-common-client-audit-info-column.component-CsqKKwwF.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-common-client-audit-info-edit.component-CSsCG6Dz.mjs → acorex-platform-module-common-client-audit-info-edit.component-COMMBgsX.mjs} +20 -18
- package/fesm2022/acorex-platform-module-common-client-audit-info-edit.component-COMMBgsX.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-common-client-audit-info-view.component-WYXsZcLg.mjs → acorex-platform-module-common-client-audit-info-view.component-UOTT-ir_.mjs} +20 -18
- package/fesm2022/acorex-platform-module-common-client-audit-info-view.component-UOTT-ir_.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-common-client-bulk-archive-entity.command-EIlMyuII.mjs +66 -0
- package/fesm2022/acorex-platform-module-common-client-bulk-archive-entity.command-EIlMyuII.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-common-client-bulk-disable-entity.command-DgoZVXQA.mjs +65 -0
- package/fesm2022/acorex-platform-module-common-client-bulk-disable-entity.command-DgoZVXQA.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-common-client-bulk-enable-entity.command-C6fba__g.mjs +65 -0
- package/fesm2022/acorex-platform-module-common-client-bulk-enable-entity.command-C6fba__g.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-common-client-bulk-restore-archive-entity.command-C8T0gUAH.mjs +65 -0
- package/fesm2022/acorex-platform-module-common-client-bulk-restore-archive-entity.command-C8T0gUAH.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-common-client-clone-entity.command-DFgIeWxX.mjs → acorex-platform-module-common-client-clone-entity.command-rTasIhWx.mjs} +26 -27
- package/fesm2022/acorex-platform-module-common-client-clone-entity.command-rTasIhWx.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-common-client-contracts.mjs +420 -8
- package/fesm2022/acorex-platform-module-common-client-contracts.mjs.map +1 -1
- package/fesm2022/{acorex-platform-module-common-client-disable-entity.command-DWyqAAwo.mjs → acorex-platform-module-common-client-disable-entity.command-Bc1uH38V.mjs} +8 -13
- package/fesm2022/acorex-platform-module-common-client-disable-entity.command-Bc1uH38V.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-common-client-disable-entity.command.util-BBwY9Q30.mjs → acorex-platform-module-common-client-disable-entity.command.util-DQl6u2nj.mjs} +49 -44
- package/fesm2022/acorex-platform-module-common-client-disable-entity.command.util-DQl6u2nj.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-common-client-enable-entity.command-BP30gOku.mjs → acorex-platform-module-common-client-enable-entity.command-DeTumWIj.mjs} +8 -13
- package/fesm2022/acorex-platform-module-common-client-enable-entity.command-DeTumWIj.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-common-client-get-current-time.command-B7hJTMzT.mjs → acorex-platform-module-common-client-get-current-time.command-Ck_SC5Bu.mjs} +6 -8
- package/fesm2022/acorex-platform-module-common-client-get-current-time.command-Ck_SC5Bu.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-common-client-restore-archive-entity.command-B0JFf8ms.mjs → acorex-platform-module-common-client-restore-archive-entity.command-Dr1GcC8a.mjs} +8 -13
- package/fesm2022/acorex-platform-module-common-client-restore-archive-entity.command-Dr1GcC8a.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-common-client-search-popup.component-DH0OQYoQ.mjs +139 -0
- package/fesm2022/acorex-platform-module-common-client-search-popup.component-DH0OQYoQ.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-common-client-timeline-version-history-popup.component-BqTLeGtG.mjs +63 -0
- package/fesm2022/acorex-platform-module-common-client-timeline-version-history-popup.component-BqTLeGtG.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-common-client.mjs +1 -1
- package/package.json +3 -3
- package/types/acorex-platform-module-common-client-contracts.d.ts +207 -3
- package/types/acorex-platform-module-common-client.d.ts +9 -13
- package/fesm2022/acorex-platform-module-common-client-acorex-platform-module-common-client-rqWzT7RI.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-common-client-archive-entity.command-CKENj9Od.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-common-client-archive-entity.command.util-BZrXDNGP.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-common-client-audit-info-column.component-DuZUwD31.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-common-client-audit-info-edit.component-CSsCG6Dz.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-common-client-audit-info-view.component-WYXsZcLg.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-common-client-bulk-archive-entity.command-CPqLp9Ci.mjs +0 -75
- package/fesm2022/acorex-platform-module-common-client-bulk-archive-entity.command-CPqLp9Ci.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-common-client-bulk-disable-entity.command-0J4vgsFL.mjs +0 -75
- package/fesm2022/acorex-platform-module-common-client-bulk-disable-entity.command-0J4vgsFL.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-common-client-bulk-enable-entity.command-DsVuaInC.mjs +0 -75
- package/fesm2022/acorex-platform-module-common-client-bulk-enable-entity.command-DsVuaInC.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-common-client-bulk-restore-archive-entity.command-D2y8h15u.mjs +0 -75
- package/fesm2022/acorex-platform-module-common-client-bulk-restore-archive-entity.command-D2y8h15u.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-common-client-clone-entity.command-DFgIeWxX.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-common-client-disable-entity.command-DWyqAAwo.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-common-client-disable-entity.command.util-BBwY9Q30.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-common-client-enable-entity.command-BP30gOku.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-common-client-get-current-time.command-B7hJTMzT.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-common-client-restore-archive-entity.command-B0JFf8ms.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-common-client-search-popup.component-BjGrZHnB.mjs +0 -136
- package/fesm2022/acorex-platform-module-common-client-search-popup.component-BjGrZHnB.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-common-client-timeline-version-history-popup.component-BwGLuNhW.mjs +0 -59
- package/fesm2022/acorex-platform-module-common-client-timeline-version-history-popup.component-BwGLuNhW.mjs.map +0 -1
|
@@ -1,16 +1,18 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AXP_PERMISSION_DEFINITION_PROVIDER, AXPSessionService, AXP_PERMISSION_MODULES_RESOLVER } from '@acorex-platform/framework-client/auth';
|
|
2
|
+
import { AXPVersioningService, AXVChangeType, AXPSettingsService, AXPCommonSettings, AXPLockService, AXPStatusDefinitionProviderService, platformErrorI18nKey, AXPHomePageService, ALL_DEFAULT_OPERATORS, AXP_MENU_PROVIDER, AXP_SETTING_DEFINITION_PROVIDER, AXP_STATUS_PROVIDERS, AXPTabNavigationService, AXPSearchService } from '@acorex-platform/framework-client/common';
|
|
2
3
|
import * as i1$3 from '@acorex-platform/framework-client/core';
|
|
3
|
-
import { AXPCatalogScopeDefinitionProviderService,
|
|
4
|
-
import { provideCommandSetups, provideCommandMiddleware, AXPCommandExecutor } from '@acorex-platform/framework-client/runtime';
|
|
5
|
-
import { RootConfig, AXPCommonCommandKeys, AXPCommonMenuKeys, AXPCommonFeatureKeys, COMMON_CATALOG_SCOPE_GENERAL } from '@acorex-platform/module-common-client/contracts';
|
|
4
|
+
import { AXPCatalogScopeDefinitionProviderService, AXPExpressionEvaluatorService, AXPContextEvalFactory, AXPEntityBroadcastService, AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER, AXP_MODULE_MANIFEST_PROVIDER, AXP_FEATURE_DEFINITION_PROVIDER, AXP_CATALOG_SCOPE_DEFINITION_PROVIDER, AXPKeyboardShortcutRegistry, chordToKbdItemKeys, AXPComponentSlotModule } from '@acorex-platform/framework-client/core';
|
|
5
|
+
import { provideCommandSetups, AXPQueryService, provideCommandMiddleware, AXPCommandExecutor } from '@acorex-platform/framework-client/runtime';
|
|
6
|
+
import { RootConfig, AXPCommonCommandKeys, AXPCommonMenuKeys, AXPCommonFeatureKeys, COMMON_CATALOG_SCOPE_GENERAL, resolvePermissionModules } from '@acorex-platform/module-common-client/contracts';
|
|
6
7
|
import { AXPWidgetsModule } from '@acorex-platform/framework-client/layout/widgets';
|
|
7
8
|
import * as i0 from '@angular/core';
|
|
8
9
|
import { NgModule, InjectionToken, inject, Injectable, input, signal, computed, Injector, ChangeDetectionStrategy, Component, runInInjectionContext, ViewEncapsulation, DestroyRef } from '@angular/core';
|
|
9
|
-
import { ensureListActions, actionExists, AXP_ENTITY_ACTION_PLUGIN, resolveEntityPluginDetailPageOrder, cloneLayoutArrays, ensureLayoutSection, ensureLayoutPropertyView,
|
|
10
|
-
import { AXPEntityCommandScope, createQueryView, createAllQueryView, entityMasterCrudActions, entityMasterDeleteAction, AXPEntityQueryType
|
|
11
|
-
import { AXPWidgetsList, AXPSystemActionType, AXPWidgetsCatalog,
|
|
10
|
+
import { ensureListActions, actionExists, AXP_ENTITY_ACTION_PLUGIN, resolveEntityPluginDetailPageOrder, cloneLayoutArrays, ensureLayoutSection, ensureLayoutPropertyView, AXPEntityDefinitionRegistryService, AXP_APPEARANCE_SECTION_ORDER, AXP_CLASSIFICATION_SECTION_ORDER, AXMEntityCrudServiceImpl, AXP_ENTITY_DEFINITION_LOADER, AXPMiddlewareAbortError, AXP_ENTITY_STORAGE_MIDDLEWARE, AXPEntityService, AXPMultiSourceType, AXP_MULTI_SOURCE_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/layout/entity';
|
|
11
|
+
import { AXPEntityCommandScope, createQueryView, createAllQueryView, entityMasterCrudActions, entityMasterDeleteAction, AXPEntityQueryType } from '@acorex-platform/framework-shared/entity';
|
|
12
|
+
import { AXPWidgetsList, runtimeQueryPayloadData, runtimeQueryCollectionData, resolveMultiLanguageString, AXPSystemActionType, AXPWidgetsCatalog, getSmart, AXPStatusProvider, AXPSystemStatuses, AXPSystemStatusType, formatAddressData, AXPKeyboardShortcutPriority, AXPPlatformScope } from '@acorex-platform/framework-shared/core';
|
|
12
13
|
import { AXP_PAGE_COMPONENT_PROVIDER, AXPActivityLogComponent, AXPCompareViewComponent, AXPThemeLayoutBlockComponent, AXPResourceAppointmentComponent } from '@acorex-platform/framework-client/layout/components';
|
|
13
14
|
import { AXP_WIDGET_DEFINITION_PROVIDER, AXPWidgetRegistryService } from '@acorex-platform/framework-client/layout/widget-core';
|
|
15
|
+
import { pickInputOrOptionsField, ENTITY_GET_BY_ID_DEFAULT, ENTITY_QUERY_DEFAULT, resolveEntityActionCommandInput, entityActionDataRows, resolveEntityActionRef, ENTITY_INSERT_DEFAULT, ENTITY_UPDATE_DEFAULT, ENTITY_DELETE_DEFAULT, AUTH_SIGN_IN_DEFAULT, AUTH_REGISTER_DEFAULT, AUTH_UPDATE_SESSION_DEFAULT, AUTH_REFRESH_DEFAULT, AUTH_LOGOUT_DEFAULT } from '@acorex-platform/framework-shared/runtime';
|
|
14
16
|
import { AXPopupService } from '@acorex/components/popup';
|
|
15
17
|
import * as i4 from '@acorex/core/translation';
|
|
16
18
|
import { AXTranslationService, AXTranslationModule, createMultiLanguageString } from '@acorex/core/translation';
|
|
@@ -21,7 +23,6 @@ import { AXDecoratorModule } from '@acorex/components/decorators';
|
|
|
21
23
|
import { AXLoadingModule } from '@acorex/components/loading';
|
|
22
24
|
import { AXPPageLayoutBaseComponent, AXPPageLayoutBase, AXPPageLayoutComponent } from '@acorex-platform/framework-client/layout/views';
|
|
23
25
|
import { isNumber, isString, get, orderBy, castArray, isArray, set, unset, isEmpty } from 'lodash';
|
|
24
|
-
import { AXP_PERMISSION_DEFINITION_PROVIDER, AXPSessionService } from '@acorex-platform/framework-client/auth';
|
|
25
26
|
import * as i1$1 from '@angular/common';
|
|
26
27
|
import { CommonModule, AsyncPipe } from '@angular/common';
|
|
27
28
|
import * as i2 from '@acorex/components/button';
|
|
@@ -30,12 +31,12 @@ import { AXBasePageComponent } from '@acorex/components/page';
|
|
|
30
31
|
import { AXFormatService } from '@acorex/core/format';
|
|
31
32
|
import { AXPLayoutBuilderService } from '@acorex-platform/framework-client/layout/builder';
|
|
32
33
|
import { AXToastService } from '@acorex/components/toast';
|
|
33
|
-
import { AXPWorkflowEventService } from '@acorex-platform/framework-client/workflow';
|
|
34
34
|
import { AXDialogService } from '@acorex/components/dialog';
|
|
35
35
|
import * as i1$2 from '@acorex/core/validation';
|
|
36
36
|
import { AXValidationModule } from '@acorex/core/validation';
|
|
37
37
|
import { AXCalendarService } from '@acorex/core/date-time';
|
|
38
38
|
import { firstValueFrom, Subject } from 'rxjs';
|
|
39
|
+
import { AXPVersionHistorySettings, AXP_VERSION_HISTORY_SETTING_DEFAULTS } from '@acorex-platform/module-common-client/contracts';
|
|
39
40
|
import { AXKBDComponent, AXKBDItemComponent } from '@acorex/components/kbd';
|
|
40
41
|
|
|
41
42
|
//#region ---- Imports ----
|
|
@@ -51,6 +52,8 @@ const CommonManifest = {
|
|
|
51
52
|
title: RootConfig.module.title,
|
|
52
53
|
icon: RootConfig.module.icon,
|
|
53
54
|
i18n: RootConfig.config.i18n,
|
|
55
|
+
type: 'platform',
|
|
56
|
+
domain: 'platform',
|
|
54
57
|
required: true,
|
|
55
58
|
// Module dependencies (optional)
|
|
56
59
|
};
|
|
@@ -256,31 +259,31 @@ const archivePlugin = {
|
|
|
256
259
|
};
|
|
257
260
|
|
|
258
261
|
class AXPArchivePluginModule {
|
|
259
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
260
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
261
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
262
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPArchivePluginModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
263
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: AXPArchivePluginModule }); }
|
|
264
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPArchivePluginModule, providers: [
|
|
262
265
|
{ provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: archivePlugin },
|
|
263
266
|
provideCommandSetups([
|
|
264
267
|
{
|
|
265
268
|
key: AXPCommonCommandKeys.Archive.Archive,
|
|
266
|
-
command: () => import('./acorex-platform-module-common-client-archive-entity.command-
|
|
269
|
+
command: () => import('./acorex-platform-module-common-client-archive-entity.command-BZgNdxFS.mjs').then((m) => m.AXPArchiveEntityCommand),
|
|
267
270
|
},
|
|
268
271
|
{
|
|
269
272
|
key: AXPCommonCommandKeys.Archive.Restore,
|
|
270
|
-
command: () => import('./acorex-platform-module-common-client-restore-archive-entity.command-
|
|
273
|
+
command: () => import('./acorex-platform-module-common-client-restore-archive-entity.command-Dr1GcC8a.mjs').then((m) => m.AXPRestoreArchiveEntityCommand),
|
|
271
274
|
},
|
|
272
275
|
{
|
|
273
276
|
key: AXPCommonCommandKeys.Archive.BulkArchive,
|
|
274
|
-
command: () => import('./acorex-platform-module-common-client-bulk-archive-entity.command-
|
|
277
|
+
command: () => import('./acorex-platform-module-common-client-bulk-archive-entity.command-EIlMyuII.mjs').then((m) => m.AXPBulkArchiveEntityCommand),
|
|
275
278
|
},
|
|
276
279
|
{
|
|
277
280
|
key: AXPCommonCommandKeys.Archive.BulkRestore,
|
|
278
|
-
command: () => import('./acorex-platform-module-common-client-bulk-restore-archive-entity.command-
|
|
281
|
+
command: () => import('./acorex-platform-module-common-client-bulk-restore-archive-entity.command-C8T0gUAH.mjs').then((m) => m.AXPBulkRestoreArchiveEntityCommand),
|
|
279
282
|
},
|
|
280
283
|
]),
|
|
281
284
|
] }); }
|
|
282
285
|
}
|
|
283
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
286
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPArchivePluginModule, decorators: [{
|
|
284
287
|
type: NgModule,
|
|
285
288
|
args: [{
|
|
286
289
|
providers: [
|
|
@@ -288,19 +291,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
288
291
|
provideCommandSetups([
|
|
289
292
|
{
|
|
290
293
|
key: AXPCommonCommandKeys.Archive.Archive,
|
|
291
|
-
command: () => import('./acorex-platform-module-common-client-archive-entity.command-
|
|
294
|
+
command: () => import('./acorex-platform-module-common-client-archive-entity.command-BZgNdxFS.mjs').then((m) => m.AXPArchiveEntityCommand),
|
|
292
295
|
},
|
|
293
296
|
{
|
|
294
297
|
key: AXPCommonCommandKeys.Archive.Restore,
|
|
295
|
-
command: () => import('./acorex-platform-module-common-client-restore-archive-entity.command-
|
|
298
|
+
command: () => import('./acorex-platform-module-common-client-restore-archive-entity.command-Dr1GcC8a.mjs').then((m) => m.AXPRestoreArchiveEntityCommand),
|
|
296
299
|
},
|
|
297
300
|
{
|
|
298
301
|
key: AXPCommonCommandKeys.Archive.BulkArchive,
|
|
299
|
-
command: () => import('./acorex-platform-module-common-client-bulk-archive-entity.command-
|
|
302
|
+
command: () => import('./acorex-platform-module-common-client-bulk-archive-entity.command-EIlMyuII.mjs').then((m) => m.AXPBulkArchiveEntityCommand),
|
|
300
303
|
},
|
|
301
304
|
{
|
|
302
305
|
key: AXPCommonCommandKeys.Archive.BulkRestore,
|
|
303
|
-
command: () => import('./acorex-platform-module-common-client-bulk-restore-archive-entity.command-
|
|
306
|
+
command: () => import('./acorex-platform-module-common-client-bulk-restore-archive-entity.command-C8T0gUAH.mjs').then((m) => m.AXPBulkRestoreArchiveEntityCommand),
|
|
304
307
|
},
|
|
305
308
|
]),
|
|
306
309
|
],
|
|
@@ -501,7 +504,6 @@ const historyPlugin = {
|
|
|
501
504
|
|
|
502
505
|
/**
|
|
503
506
|
* Opens the version history timeline popup for a given entity reference.
|
|
504
|
-
* Opens the version history popup for an entity record.
|
|
505
507
|
*/
|
|
506
508
|
class ShowVersionHistoryPopupCommand {
|
|
507
509
|
constructor() {
|
|
@@ -518,7 +520,7 @@ class ShowVersionHistoryPopupCommand {
|
|
|
518
520
|
},
|
|
519
521
|
};
|
|
520
522
|
}
|
|
521
|
-
const comp = (await import('./acorex-platform-module-common-client-timeline-version-history-popup.component-
|
|
523
|
+
const comp = (await import('./acorex-platform-module-common-client-timeline-version-history-popup.component-BqTLeGtG.mjs')).AXMTimelineVersionHistoryPopupComponent;
|
|
522
524
|
this.popupService.open(comp, {
|
|
523
525
|
title: await this.translate.translateAsync('@activity-log:actions.view-history.title'),
|
|
524
526
|
data: {
|
|
@@ -531,25 +533,23 @@ class ShowVersionHistoryPopupCommand {
|
|
|
531
533
|
offset: opts.offset,
|
|
532
534
|
},
|
|
533
535
|
});
|
|
534
|
-
return { success: true };
|
|
536
|
+
return { success: true, kind: 'object', data: undefined };
|
|
535
537
|
}
|
|
536
538
|
normalizeInput(input) {
|
|
537
|
-
const ctx = input.__context__;
|
|
538
|
-
const options = input.options ?? ctx?.options ?? {};
|
|
539
539
|
return {
|
|
540
|
-
refId: input
|
|
541
|
-
refType: input
|
|
542
|
-
fieldTitles: input
|
|
543
|
-
fromDate: input
|
|
544
|
-
toDate: input
|
|
545
|
-
limit: input
|
|
546
|
-
offset: input
|
|
540
|
+
refId: pickInputOrOptionsField(input, 'refId'),
|
|
541
|
+
refType: pickInputOrOptionsField(input, 'refType'),
|
|
542
|
+
fieldTitles: pickInputOrOptionsField(input, 'fieldTitles'),
|
|
543
|
+
fromDate: pickInputOrOptionsField(input, 'fromDate'),
|
|
544
|
+
toDate: pickInputOrOptionsField(input, 'toDate'),
|
|
545
|
+
limit: pickInputOrOptionsField(input, 'limit'),
|
|
546
|
+
offset: pickInputOrOptionsField(input, 'offset'),
|
|
547
547
|
};
|
|
548
548
|
}
|
|
549
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
550
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
549
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ShowVersionHistoryPopupCommand, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
550
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ShowVersionHistoryPopupCommand, providedIn: 'root' }); }
|
|
551
551
|
}
|
|
552
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
552
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ShowVersionHistoryPopupCommand, decorators: [{
|
|
553
553
|
type: Injectable,
|
|
554
554
|
args: [{ providedIn: 'root' }]
|
|
555
555
|
}] });
|
|
@@ -569,10 +569,10 @@ class AXMVersionHistoryPageComponentProvider {
|
|
|
569
569
|
},
|
|
570
570
|
];
|
|
571
571
|
}
|
|
572
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
573
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
572
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMVersionHistoryPageComponentProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
573
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMVersionHistoryPageComponentProvider }); }
|
|
574
574
|
}
|
|
575
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
575
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMVersionHistoryPageComponentProvider, decorators: [{
|
|
576
576
|
type: Injectable
|
|
577
577
|
}] });
|
|
578
578
|
|
|
@@ -586,13 +586,13 @@ const AXPHistoryAuditInfoWidget = {
|
|
|
586
586
|
properties: [],
|
|
587
587
|
components: {
|
|
588
588
|
view: {
|
|
589
|
-
component: () => import('./acorex-platform-module-common-client-audit-info-view.component-
|
|
589
|
+
component: () => import('./acorex-platform-module-common-client-audit-info-view.component-UOTT-ir_.mjs').then((c) => c.AXPAuditInfoViewComponent),
|
|
590
590
|
},
|
|
591
591
|
edit: {
|
|
592
|
-
component: () => import('./acorex-platform-module-common-client-audit-info-edit.component-
|
|
592
|
+
component: () => import('./acorex-platform-module-common-client-audit-info-edit.component-COMMBgsX.mjs').then((c) => c.AXPAuditInfoEditComponent),
|
|
593
593
|
},
|
|
594
594
|
column: {
|
|
595
|
-
component: () => import('./acorex-platform-module-common-client-audit-info-column.component-
|
|
595
|
+
component: () => import('./acorex-platform-module-common-client-audit-info-column.component-CsqKKwwF.mjs').then((c) => c.AXPAuditInfoColumnComponent),
|
|
596
596
|
},
|
|
597
597
|
},
|
|
598
598
|
};
|
|
@@ -603,10 +603,10 @@ class AXPAuditInfoWidgetsProvider {
|
|
|
603
603
|
getWidgets() {
|
|
604
604
|
return [AXPHistoryAuditInfoWidget];
|
|
605
605
|
}
|
|
606
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
607
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
606
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPAuditInfoWidgetsProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
607
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPAuditInfoWidgetsProvider }); }
|
|
608
608
|
}
|
|
609
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
609
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPAuditInfoWidgetsProvider, decorators: [{
|
|
610
610
|
type: Injectable
|
|
611
611
|
}] });
|
|
612
612
|
|
|
@@ -614,15 +614,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
614
614
|
const VERSION_STREAM_ENTITY = 'Common.VersionStream';
|
|
615
615
|
/** Must match {@link VERSION_ENTRY_ENTITY} on the server. */
|
|
616
616
|
const VERSION_ENTRY_ENTITY = 'Common.VersionEntry';
|
|
617
|
+
const USER_ENTITY = 'SecurityManagement.User';
|
|
618
|
+
//#region ----- Client versioning service -----
|
|
617
619
|
class AXPClientVersioningService extends AXPVersioningService {
|
|
618
620
|
constructor() {
|
|
619
621
|
super(...arguments);
|
|
620
|
-
this.
|
|
622
|
+
this.queryService = inject(AXPQueryService);
|
|
623
|
+
this.translation = inject(AXTranslationService);
|
|
621
624
|
}
|
|
622
625
|
async getStreamIdIfExists(entityType, entityId) {
|
|
623
626
|
const id = `${entityType}:${entityId}`;
|
|
624
627
|
try {
|
|
625
|
-
await this.
|
|
628
|
+
const result = await this.queryService.fetch(ENTITY_GET_BY_ID_DEFAULT, {
|
|
629
|
+
entity: VERSION_STREAM_ENTITY,
|
|
630
|
+
id,
|
|
631
|
+
});
|
|
632
|
+
if (runtimeQueryPayloadData(result) == null) {
|
|
633
|
+
return null;
|
|
634
|
+
}
|
|
626
635
|
return id;
|
|
627
636
|
}
|
|
628
637
|
catch {
|
|
@@ -630,7 +639,8 @@ class AXPClientVersioningService extends AXPVersioningService {
|
|
|
630
639
|
}
|
|
631
640
|
}
|
|
632
641
|
async listEntries(streamId, options) {
|
|
633
|
-
const result = await this.
|
|
642
|
+
const result = await this.queryService.fetch(ENTITY_QUERY_DEFAULT, {
|
|
643
|
+
entity: VERSION_ENTRY_ENTITY,
|
|
634
644
|
skip: options?.offset ?? 0,
|
|
635
645
|
take: options?.limit ?? 50,
|
|
636
646
|
filter: {
|
|
@@ -640,7 +650,10 @@ class AXPClientVersioningService extends AXPVersioningService {
|
|
|
640
650
|
},
|
|
641
651
|
sort: [{ field: 'versionNumber', dir: 'desc' }],
|
|
642
652
|
});
|
|
643
|
-
|
|
653
|
+
const items = (runtimeQueryCollectionData(result)?.items ?? []);
|
|
654
|
+
const entries = items.map((item) => this.mapEntry(item));
|
|
655
|
+
// New writes carry changedByName. Legacy rows may still need a one-shot user lookup.
|
|
656
|
+
return this.fillMissingChangedByNames(entries);
|
|
644
657
|
}
|
|
645
658
|
async getUiFriendlyDiff(_streamId, _v1, _v2) {
|
|
646
659
|
return [];
|
|
@@ -652,24 +665,111 @@ class AXPClientVersioningService extends AXPVersioningService {
|
|
|
652
665
|
versionNumber: Number(item['versionNumber'] ?? 0),
|
|
653
666
|
changeType: item['changeType'] ?? AXVChangeType.Update,
|
|
654
667
|
changedBy: String(item['changedBy'] ?? 'system'),
|
|
668
|
+
changedByName: typeof item['changedByName'] === 'string' && item['changedByName'].trim()
|
|
669
|
+
? item['changedByName'].trim()
|
|
670
|
+
: undefined,
|
|
655
671
|
changedAt: String(item['changedAt'] ?? new Date().toISOString()),
|
|
656
672
|
snapshotJson: item['snapshotJson'],
|
|
657
673
|
patchFromPrevJson: item['patchFromPrevJson'] ?? [],
|
|
658
|
-
summary:
|
|
674
|
+
summary: this.resolveSummary(item['summary']),
|
|
675
|
+
changeLines: this.mapChangeLines(item['changeLines']),
|
|
659
676
|
metadataJson: item['metadataJson'],
|
|
660
677
|
};
|
|
661
678
|
}
|
|
662
|
-
|
|
663
|
-
|
|
679
|
+
/**
|
|
680
|
+
* `undefined` = legacy entry (build from patch).
|
|
681
|
+
* `[]` = intentional empty sub-rows (Create/Delete).
|
|
682
|
+
*/
|
|
683
|
+
mapChangeLines(raw) {
|
|
684
|
+
if (!Array.isArray(raw)) {
|
|
685
|
+
return undefined;
|
|
686
|
+
}
|
|
687
|
+
return raw
|
|
688
|
+
.map((line) => {
|
|
689
|
+
if (!line || typeof line !== 'object') {
|
|
690
|
+
return null;
|
|
691
|
+
}
|
|
692
|
+
const row = line;
|
|
693
|
+
const path = typeof row['path'] === 'string' ? row['path'] : '';
|
|
694
|
+
const field = row['field'];
|
|
695
|
+
const text = row['text'];
|
|
696
|
+
if (!path || field == null || text == null) {
|
|
697
|
+
return null;
|
|
698
|
+
}
|
|
699
|
+
return {
|
|
700
|
+
path,
|
|
701
|
+
field: field,
|
|
702
|
+
text: text,
|
|
703
|
+
};
|
|
704
|
+
})
|
|
705
|
+
.filter((line) => !!line);
|
|
706
|
+
}
|
|
707
|
+
resolveSummary(raw) {
|
|
708
|
+
if (raw == null) {
|
|
709
|
+
return undefined;
|
|
710
|
+
}
|
|
711
|
+
if (typeof raw === 'string') {
|
|
712
|
+
return raw;
|
|
713
|
+
}
|
|
714
|
+
if (typeof raw === 'object') {
|
|
715
|
+
const locale = this.translation.getActiveLang?.() ?? 'en-US';
|
|
716
|
+
const resolved = resolveMultiLanguageString(raw, locale);
|
|
717
|
+
return resolved || undefined;
|
|
718
|
+
}
|
|
719
|
+
return String(raw);
|
|
720
|
+
}
|
|
721
|
+
/** Only for legacy entries missing server-stamped `changedByName`. */
|
|
722
|
+
async fillMissingChangedByNames(entries) {
|
|
723
|
+
const missingIds = [
|
|
724
|
+
...new Set(entries
|
|
725
|
+
.filter((entry) => !entry.changedByName && entry.changedBy && entry.changedBy !== 'system')
|
|
726
|
+
.map((entry) => entry.changedBy)),
|
|
727
|
+
];
|
|
728
|
+
if (!missingIds.length) {
|
|
729
|
+
return entries;
|
|
730
|
+
}
|
|
731
|
+
const names = new Map();
|
|
732
|
+
try {
|
|
733
|
+
const result = await this.queryService.fetch(ENTITY_QUERY_DEFAULT, {
|
|
734
|
+
entity: USER_ENTITY,
|
|
735
|
+
skip: 0,
|
|
736
|
+
take: missingIds.length,
|
|
737
|
+
filter: {
|
|
738
|
+
field: 'id',
|
|
739
|
+
operator: { type: 'in' },
|
|
740
|
+
value: missingIds,
|
|
741
|
+
},
|
|
742
|
+
});
|
|
743
|
+
const items = (runtimeQueryCollectionData(result)?.items ?? []);
|
|
744
|
+
for (const item of items) {
|
|
745
|
+
const id = String(item['id'] ?? '');
|
|
746
|
+
if (!id) {
|
|
747
|
+
continue;
|
|
748
|
+
}
|
|
749
|
+
const display = (typeof item['displayName'] === 'string' && item['displayName'].trim()) ||
|
|
750
|
+
(typeof item['username'] === 'string' && item['username'].trim()) ||
|
|
751
|
+
id;
|
|
752
|
+
names.set(id, display);
|
|
753
|
+
}
|
|
754
|
+
}
|
|
755
|
+
catch {
|
|
756
|
+
return entries;
|
|
757
|
+
}
|
|
758
|
+
return entries.map((entry) => entry.changedByName || !names.has(entry.changedBy)
|
|
759
|
+
? entry
|
|
760
|
+
: { ...entry, changedByName: names.get(entry.changedBy) });
|
|
761
|
+
}
|
|
762
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPClientVersioningService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
763
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPClientVersioningService }); }
|
|
664
764
|
}
|
|
665
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
765
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPClientVersioningService, decorators: [{
|
|
666
766
|
type: Injectable
|
|
667
767
|
}] });
|
|
668
768
|
|
|
669
769
|
class AXPHistoryModule {
|
|
670
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
671
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
672
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
770
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPHistoryModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
771
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: AXPHistoryModule }); }
|
|
772
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPHistoryModule, providers: [
|
|
673
773
|
{ provide: AXPVersioningService, useClass: AXPClientVersioningService },
|
|
674
774
|
{ provide: AXP_PAGE_COMPONENT_PROVIDER, multi: true, useClass: AXMVersionHistoryPageComponentProvider },
|
|
675
775
|
{ provide: AXP_WIDGET_DEFINITION_PROVIDER, useClass: AXPAuditInfoWidgetsProvider, multi: true },
|
|
@@ -687,7 +787,7 @@ class AXPHistoryModule {
|
|
|
687
787
|
]),
|
|
688
788
|
] }); }
|
|
689
789
|
}
|
|
690
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
790
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPHistoryModule, decorators: [{
|
|
691
791
|
type: NgModule,
|
|
692
792
|
args: [{
|
|
693
793
|
imports: [],
|
|
@@ -800,6 +900,7 @@ async function openActivityLogVersionCompare(injector, event) {
|
|
|
800
900
|
|
|
801
901
|
//#region ---- Version History Utils ----
|
|
802
902
|
const ACTIVITY_LOG_CHANGES_SCOPE = '@activity-log:changes';
|
|
903
|
+
const LOOKUP_DISPLAY_KEYS = ['title', 'name', 'displayName', 'label', 'fullName', 'code'];
|
|
803
904
|
/** Removes field names from summary to avoid repetition (e.g. "Fields changed: 3 (title, desc)" → "Fields changed: 3"). */
|
|
804
905
|
function stripFieldNamesFromSummary(summary) {
|
|
805
906
|
return summary.replace(/Fields changed:\s*(\d+)\s*\([^)]+\)/g, 'Fields changed: $1');
|
|
@@ -908,9 +1009,47 @@ function humanizeChange(path, op, fieldTitles) {
|
|
|
908
1009
|
return `${fieldLabel}: updated`;
|
|
909
1010
|
}
|
|
910
1011
|
}
|
|
911
|
-
const MAX_SUMMARY_VALUE_LENGTH =
|
|
1012
|
+
const MAX_SUMMARY_VALUE_LENGTH = 48;
|
|
1013
|
+
function isPlainObject(value) {
|
|
1014
|
+
return !!value && typeof value === 'object' && !Array.isArray(value);
|
|
1015
|
+
}
|
|
1016
|
+
function formatObjectDisplay(value, locale) {
|
|
1017
|
+
for (const key of LOOKUP_DISPLAY_KEYS) {
|
|
1018
|
+
const raw = value[key];
|
|
1019
|
+
if (raw == null) {
|
|
1020
|
+
continue;
|
|
1021
|
+
}
|
|
1022
|
+
if (typeof raw === 'string' || typeof raw === 'number' || typeof raw === 'boolean') {
|
|
1023
|
+
const text = String(raw).trim();
|
|
1024
|
+
if (text && text !== '[object Object]') {
|
|
1025
|
+
return text;
|
|
1026
|
+
}
|
|
1027
|
+
continue;
|
|
1028
|
+
}
|
|
1029
|
+
if (isPlainObject(raw)) {
|
|
1030
|
+
const mls = resolveMultiLanguageString(raw, locale);
|
|
1031
|
+
if (mls && mls !== '[object Object]') {
|
|
1032
|
+
return mls;
|
|
1033
|
+
}
|
|
1034
|
+
}
|
|
1035
|
+
}
|
|
1036
|
+
const asMls = resolveMultiLanguageString(value, locale);
|
|
1037
|
+
if (asMls && asMls !== '[object Object]') {
|
|
1038
|
+
return asMls;
|
|
1039
|
+
}
|
|
1040
|
+
return undefined;
|
|
1041
|
+
}
|
|
912
1042
|
/** Converts a value to a short display string for notification-style summary. */
|
|
913
|
-
function toShortDisplayString(val) {
|
|
1043
|
+
function toShortDisplayString(val, meta, side, locale = 'en-US') {
|
|
1044
|
+
if (side === 'old' && typeof meta?.['displayOld'] === 'string' && meta['displayOld'].trim()) {
|
|
1045
|
+
return trimDisplay(meta['displayOld']);
|
|
1046
|
+
}
|
|
1047
|
+
if (side === 'new' && typeof meta?.['displayNew'] === 'string' && meta['displayNew'].trim()) {
|
|
1048
|
+
return trimDisplay(meta['displayNew']);
|
|
1049
|
+
}
|
|
1050
|
+
if (typeof meta?.['fileName'] === 'string' && meta['fileName'].trim()) {
|
|
1051
|
+
return trimDisplay(meta['fileName']);
|
|
1052
|
+
}
|
|
914
1053
|
if (val == null)
|
|
915
1054
|
return '—';
|
|
916
1055
|
if (typeof val === 'boolean')
|
|
@@ -918,71 +1057,141 @@ function toShortDisplayString(val) {
|
|
|
918
1057
|
if (typeof val === 'number')
|
|
919
1058
|
return String(val);
|
|
920
1059
|
if (val instanceof Date)
|
|
921
|
-
return val.
|
|
922
|
-
if (typeof val === '
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
return
|
|
926
|
-
|
|
927
|
-
if (
|
|
928
|
-
|
|
929
|
-
|
|
1060
|
+
return val.toISOString();
|
|
1061
|
+
if (typeof val === 'string') {
|
|
1062
|
+
if (!val.trim() || val === '[object Object]')
|
|
1063
|
+
return '—';
|
|
1064
|
+
return trimDisplay(val);
|
|
1065
|
+
}
|
|
1066
|
+
if (Array.isArray(val)) {
|
|
1067
|
+
if (val.length === 0)
|
|
1068
|
+
return '—';
|
|
1069
|
+
const parts = val
|
|
1070
|
+
.map((item) => toShortDisplayString(item, null, undefined, locale))
|
|
1071
|
+
.filter((part) => part && part !== '—');
|
|
1072
|
+
return parts.length ? trimDisplay(parts.join(', ')) : '—';
|
|
1073
|
+
}
|
|
1074
|
+
if (isPlainObject(val)) {
|
|
1075
|
+
const formatted = formatObjectDisplay(val, locale);
|
|
1076
|
+
if (formatted) {
|
|
1077
|
+
return trimDisplay(formatted);
|
|
1078
|
+
}
|
|
1079
|
+
}
|
|
1080
|
+
return '—';
|
|
1081
|
+
}
|
|
1082
|
+
function trimDisplay(value) {
|
|
1083
|
+
if (value.length > MAX_SUMMARY_VALUE_LENGTH) {
|
|
1084
|
+
return `${value.slice(0, MAX_SUMMARY_VALUE_LENGTH)}…`;
|
|
1085
|
+
}
|
|
1086
|
+
return value;
|
|
930
1087
|
}
|
|
931
1088
|
/** Builds a short, human-readable notification-style summary for a change. */
|
|
932
|
-
function buildChangeSummary(op, oldVal, newVal) {
|
|
933
|
-
const oldStr = toShortDisplayString(oldVal);
|
|
934
|
-
const newStr = toShortDisplayString(newVal);
|
|
1089
|
+
function buildChangeSummary(op, oldVal, newVal, meta, locale = 'en-US') {
|
|
1090
|
+
const oldStr = toShortDisplayString(oldVal, meta, 'old', locale);
|
|
1091
|
+
const newStr = toShortDisplayString(newVal, meta, 'new', locale);
|
|
935
1092
|
switch (op) {
|
|
936
1093
|
case 'add':
|
|
937
|
-
return newStr !== '—' ? `Added
|
|
1094
|
+
return newStr !== '—' ? `Added ${newStr}` : 'Added';
|
|
938
1095
|
case 'remove':
|
|
939
|
-
return oldStr !== '—' ? `Removed
|
|
1096
|
+
return oldStr !== '—' ? `Removed ${oldStr}` : 'Removed';
|
|
940
1097
|
case 'replace':
|
|
941
1098
|
if (oldStr !== '—' && newStr !== '—')
|
|
942
1099
|
return `${oldStr} → ${newStr}`;
|
|
943
1100
|
if (newStr !== '—')
|
|
944
|
-
return `Updated to
|
|
1101
|
+
return `Updated to ${newStr}`;
|
|
945
1102
|
if (oldStr !== '—')
|
|
946
|
-
return `Cleared (was
|
|
1103
|
+
return `Cleared (was ${oldStr})`;
|
|
947
1104
|
return 'Updated';
|
|
948
1105
|
default:
|
|
949
|
-
return newStr !== '—' ? `Updated
|
|
1106
|
+
return newStr !== '—' ? `Updated ${newStr}` : 'Updated';
|
|
1107
|
+
}
|
|
1108
|
+
}
|
|
1109
|
+
function resolveActivityUser(entry) {
|
|
1110
|
+
const id = (entry.changedBy || 'system').trim() || 'system';
|
|
1111
|
+
if (id === 'system') {
|
|
1112
|
+
return { id: 'system', name: 'System', title: 'System' };
|
|
950
1113
|
}
|
|
1114
|
+
const name = (entry.changedByName || id).trim() || id;
|
|
1115
|
+
return { id, name, title: name };
|
|
951
1116
|
}
|
|
952
|
-
function
|
|
1117
|
+
function resolveMls(value, locale) {
|
|
1118
|
+
if (typeof value === 'string') {
|
|
1119
|
+
return value;
|
|
1120
|
+
}
|
|
1121
|
+
return resolveMultiLanguageString(value, locale) || '';
|
|
1122
|
+
}
|
|
1123
|
+
function mapServerChangeLines(lines, getHistoryLayout, locale) {
|
|
1124
|
+
return lines.slice(0, 20).map((line) => {
|
|
1125
|
+
const pathStr = line.path;
|
|
1126
|
+
const layout = getHistoryLayout?.(pathStr);
|
|
1127
|
+
const fieldLabel = resolveMls(line.field, locale);
|
|
1128
|
+
const summary = resolveMls(line.text, locale);
|
|
1129
|
+
return {
|
|
1130
|
+
type: AXPSystemActionType.Update,
|
|
1131
|
+
description: summary || fieldLabel,
|
|
1132
|
+
fieldLabel: fieldLabel || undefined,
|
|
1133
|
+
summary: summary || undefined,
|
|
1134
|
+
...(layout != null && { layout }),
|
|
1135
|
+
};
|
|
1136
|
+
});
|
|
1137
|
+
}
|
|
1138
|
+
/** Legacy fallback when older entries have no stamped changeLines. */
|
|
1139
|
+
function mapPatchChanges(rawChanges, fieldTitles, getHistoryLayout, locale) {
|
|
1140
|
+
const seenFields = new Set();
|
|
1141
|
+
const changes = [];
|
|
1142
|
+
for (const c of rawChanges.slice(0, 20)) {
|
|
1143
|
+
const { fieldKey, actionKey, fieldKeyParams } = humanizeChangeToKeys(c.path, c.op, fieldTitles);
|
|
1144
|
+
const pathStr = typeof c.path === 'string' ? c.path : String(c.path ?? '');
|
|
1145
|
+
const dedupeKey = `${pathStr}|${c.op}|${JSON.stringify(c.newValue ?? c.oldValue ?? null)}`;
|
|
1146
|
+
if (seenFields.has(dedupeKey))
|
|
1147
|
+
continue;
|
|
1148
|
+
seenFields.add(dedupeKey);
|
|
1149
|
+
const layout = getHistoryLayout?.(pathStr);
|
|
1150
|
+
const summary = buildChangeSummary(c.op, c.oldValue, c.newValue, c.meta, locale);
|
|
1151
|
+
const fallbackDesc = `${humanizeKeyAsFallback(resolvePathKey(c.path))}: ${c.op}`;
|
|
1152
|
+
const fieldLabel = (fieldKeyParams?.['name']
|
|
1153
|
+
? humanizeKeyAsFallback(fieldKeyParams['name'])
|
|
1154
|
+
: undefined) ||
|
|
1155
|
+
(fieldTitles?.[toCamelCase$2(resolvePathKey(c.path))] ??
|
|
1156
|
+
fieldTitles?.[resolvePathKey(c.path)] ??
|
|
1157
|
+
humanizeKeyAsFallback(resolvePathKey(c.path)));
|
|
1158
|
+
changes.push({
|
|
1159
|
+
type: mapOpToAction(c.op),
|
|
1160
|
+
description: fallbackDesc,
|
|
1161
|
+
fieldKey,
|
|
1162
|
+
fieldKeyParams,
|
|
1163
|
+
actionKey,
|
|
1164
|
+
fieldLabel,
|
|
1165
|
+
oldValue: c.oldValue,
|
|
1166
|
+
newValue: c.newValue,
|
|
1167
|
+
summary,
|
|
1168
|
+
...(layout != null && { layout }),
|
|
1169
|
+
});
|
|
1170
|
+
}
|
|
1171
|
+
return changes;
|
|
1172
|
+
}
|
|
1173
|
+
function versionEntriesToActivityLogs(entries, refId, refType, fieldTitles, getHistoryLayout, locale = 'en-US') {
|
|
953
1174
|
return entries.map((e) => {
|
|
954
|
-
|
|
955
|
-
const
|
|
956
|
-
const changes =
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
type: mapOpToAction(c.op),
|
|
969
|
-
description: fallbackDesc,
|
|
970
|
-
fieldKey,
|
|
971
|
-
fieldKeyParams,
|
|
972
|
-
actionKey,
|
|
973
|
-
oldValue: c.oldValue,
|
|
974
|
-
newValue: c.newValue,
|
|
975
|
-
summary,
|
|
976
|
-
...(layout != null && { layout }),
|
|
977
|
-
});
|
|
978
|
-
}
|
|
979
|
-
const rawTitle = e.summary ?? `${e.changeType} v${e.versionNumber}`;
|
|
1175
|
+
// Present (even empty) = server-stamped; missing = legacy fallback from patch.
|
|
1176
|
+
const hasServerLines = Array.isArray(e.changeLines);
|
|
1177
|
+
const changes = hasServerLines
|
|
1178
|
+
? mapServerChangeLines(e.changeLines, getHistoryLayout, locale)
|
|
1179
|
+
: mapPatchChanges((e.patchFromPrevJson ?? []), fieldTitles, getHistoryLayout, locale);
|
|
1180
|
+
const rawSummary = typeof e.summary === 'string'
|
|
1181
|
+
? e.summary
|
|
1182
|
+
: e.summary && typeof e.summary === 'object'
|
|
1183
|
+
? String(e.summary[locale] ??
|
|
1184
|
+
e.summary['en-US'] ??
|
|
1185
|
+
Object.values(e.summary)[0] ??
|
|
1186
|
+
'')
|
|
1187
|
+
: '';
|
|
1188
|
+
const rawTitle = rawSummary || `${e.changeType} v${e.versionNumber}`;
|
|
980
1189
|
const title = stripFieldNamesFromSummary(rawTitle);
|
|
981
1190
|
return {
|
|
982
1191
|
id: e.id,
|
|
983
1192
|
title,
|
|
984
1193
|
date: new Date(e.changedAt),
|
|
985
|
-
user:
|
|
1194
|
+
user: resolveActivityUser(e),
|
|
986
1195
|
reference: { id: refId, type: refType },
|
|
987
1196
|
changeType: mapChangeType(e.changeType),
|
|
988
1197
|
data: e.snapshotJson,
|
|
@@ -1000,25 +1209,34 @@ function versionEntriesToActivityLogs(entries, refId, refType, fieldTitles, getH
|
|
|
1000
1209
|
class AXMVersionHistoryPageComponent extends AXPPageLayoutBaseComponent {
|
|
1001
1210
|
constructor() {
|
|
1002
1211
|
super(...arguments);
|
|
1003
|
-
this.rootContext = input.required(
|
|
1004
|
-
|
|
1005
|
-
this.
|
|
1006
|
-
|
|
1007
|
-
this.
|
|
1212
|
+
this.rootContext = input.required(/* @ts-ignore */
|
|
1213
|
+
...(ngDevMode ? [{ debugName: "rootContext" }] : /* istanbul ignore next */ []));
|
|
1214
|
+
this.pageConfig = input(/* @ts-ignore */
|
|
1215
|
+
...(ngDevMode ? [undefined, { debugName: "pageConfig" }] : /* istanbul ignore next */ []));
|
|
1216
|
+
this.options = input({}, /* @ts-ignore */
|
|
1217
|
+
...(ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []));
|
|
1218
|
+
this.isBusy = signal(false, /* @ts-ignore */
|
|
1219
|
+
...(ngDevMode ? [{ debugName: "isBusy" }] : /* istanbul ignore next */ []));
|
|
1220
|
+
this.versions = signal([], /* @ts-ignore */
|
|
1221
|
+
...(ngDevMode ? [{ debugName: "versions" }] : /* istanbul ignore next */ []));
|
|
1008
1222
|
this.activities = computed(() => {
|
|
1009
1223
|
const props = this.entityProperties();
|
|
1010
1224
|
const getHistoryLayout = (path) => this.resolveHistoryLayout(path, props);
|
|
1011
|
-
|
|
1012
|
-
|
|
1225
|
+
const locale = this.translation.getActiveLang?.() ?? 'en-US';
|
|
1226
|
+
return versionEntriesToActivityLogs(this.versions(), this.refId, this.refType, this.fieldTitles, getHistoryLayout, locale);
|
|
1227
|
+
}, /* @ts-ignore */
|
|
1228
|
+
...(ngDevMode ? [{ debugName: "activities" }] : /* istanbul ignore next */ []));
|
|
1013
1229
|
this.refId = '';
|
|
1014
1230
|
this.refType = '';
|
|
1015
1231
|
this.fieldTitles = {};
|
|
1016
|
-
this.entityProperties = signal([],
|
|
1232
|
+
this.entityProperties = signal([], /* @ts-ignore */
|
|
1233
|
+
...(ngDevMode ? [{ debugName: "entityProperties" }] : /* istanbul ignore next */ []));
|
|
1017
1234
|
this.versioning = inject(AXPVersioningService);
|
|
1018
1235
|
this.entityRegistry = inject(AXPEntityDefinitionRegistryService);
|
|
1019
1236
|
this.widgetRegistry = inject(AXPWidgetRegistryService);
|
|
1020
1237
|
this.injector = inject(Injector);
|
|
1021
1238
|
this.route = inject(ActivatedRoute);
|
|
1239
|
+
this.translation = inject(AXTranslationService);
|
|
1022
1240
|
}
|
|
1023
1241
|
/** Resolves custom history layout for a change path via property -> widget config -> historyLayout. */
|
|
1024
1242
|
resolveHistoryLayout(path, properties) {
|
|
@@ -1104,8 +1322,8 @@ class AXMVersionHistoryPageComponent extends AXPPageLayoutBaseComponent {
|
|
|
1104
1322
|
async onCompareRequested(event) {
|
|
1105
1323
|
await openActivityLogVersionCompare(this.injector, event);
|
|
1106
1324
|
}
|
|
1107
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1108
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "
|
|
1325
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMVersionHistoryPageComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
1326
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.8", type: AXMVersionHistoryPageComponent, isStandalone: true, selector: "axm-version-history-page", inputs: { rootContext: { classPropertyName: "rootContext", publicName: "rootContext", isSignal: true, isRequired: true, transformFunction: null }, pageConfig: { classPropertyName: "pageConfig", publicName: "pageConfig", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
|
|
1109
1327
|
{
|
|
1110
1328
|
provide: AXPPageLayoutBase,
|
|
1111
1329
|
useExisting: AXMVersionHistoryPageComponent,
|
|
@@ -1116,12 +1334,13 @@ class AXMVersionHistoryPageComponent extends AXPPageLayoutBaseComponent {
|
|
|
1116
1334
|
[activities]="activities()"
|
|
1117
1335
|
[loading]="isBusy()"
|
|
1118
1336
|
[enableCompare]="true"
|
|
1337
|
+
[showActionType]="false"
|
|
1119
1338
|
(compareRequested)="onCompareRequested($event)"
|
|
1120
1339
|
></axp-activity-log>
|
|
1121
1340
|
</div>
|
|
1122
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: AXPActivityLogComponent, selector: "axp-activity-log", inputs: ["activities", "loading", "enableCompare"], outputs: ["compareRequested"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1341
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: AXPActivityLogComponent, selector: "axp-activity-log", inputs: ["activities", "loading", "enableCompare", "showActionType"], outputs: ["compareRequested"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1123
1342
|
}
|
|
1124
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1343
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMVersionHistoryPageComponent, decorators: [{
|
|
1125
1344
|
type: Component,
|
|
1126
1345
|
args: [{
|
|
1127
1346
|
selector: 'axm-version-history-page',
|
|
@@ -1138,6 +1357,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
1138
1357
|
[activities]="activities()"
|
|
1139
1358
|
[loading]="isBusy()"
|
|
1140
1359
|
[enableCompare]="true"
|
|
1360
|
+
[showActionType]="false"
|
|
1141
1361
|
(compareRequested)="onCompareRequested($event)"
|
|
1142
1362
|
></axp-activity-log>
|
|
1143
1363
|
</div>
|
|
@@ -1368,11 +1588,11 @@ const avatarPlugin = {
|
|
|
1368
1588
|
};
|
|
1369
1589
|
|
|
1370
1590
|
class AXPAvatarPluginModule {
|
|
1371
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1372
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
1373
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
1591
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPAvatarPluginModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
1592
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: AXPAvatarPluginModule }); }
|
|
1593
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPAvatarPluginModule, providers: [{ provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: avatarPlugin }] }); }
|
|
1374
1594
|
}
|
|
1375
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1595
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPAvatarPluginModule, decorators: [{
|
|
1376
1596
|
type: NgModule,
|
|
1377
1597
|
args: [{
|
|
1378
1598
|
declarations: [],
|
|
@@ -1419,7 +1639,7 @@ const categoryPlugin = {
|
|
|
1419
1639
|
title: '@general:terms.classification.categories',
|
|
1420
1640
|
groupId: groupId,
|
|
1421
1641
|
schema: {
|
|
1422
|
-
dataType: '
|
|
1642
|
+
dataType: 'array',
|
|
1423
1643
|
interface: {
|
|
1424
1644
|
type: AXPWidgetsList.Editors.EntityCategory,
|
|
1425
1645
|
options: {
|
|
@@ -1623,6 +1843,16 @@ class AXMEntityCategoryProvider {
|
|
|
1623
1843
|
groupId: 'basic-info',
|
|
1624
1844
|
schema: { dataType: 'string', interface: { type: AXPWidgetsCatalog.largeText } },
|
|
1625
1845
|
},
|
|
1846
|
+
{
|
|
1847
|
+
name: 'childrenCount',
|
|
1848
|
+
title: '@general:terms.classification.children-count',
|
|
1849
|
+
groupId: 'basic-info',
|
|
1850
|
+
schema: {
|
|
1851
|
+
dataType: 'number',
|
|
1852
|
+
readonly: true,
|
|
1853
|
+
interface: { type: AXPWidgetsList.Editors.NumberBox },
|
|
1854
|
+
},
|
|
1855
|
+
},
|
|
1626
1856
|
// Appearance properties (only if enabled)
|
|
1627
1857
|
...(enableAppearance ? [
|
|
1628
1858
|
...(appearanceConfig?.color !== false ? [
|
|
@@ -1751,17 +1981,17 @@ class AXMEntityCategoryProvider {
|
|
|
1751
1981
|
async list() {
|
|
1752
1982
|
return Promise.resolve([]);
|
|
1753
1983
|
}
|
|
1754
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1755
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1984
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMEntityCategoryProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1985
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMEntityCategoryProvider }); }
|
|
1756
1986
|
}
|
|
1757
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1987
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMEntityCategoryProvider, decorators: [{
|
|
1758
1988
|
type: Injectable
|
|
1759
1989
|
}] });
|
|
1760
1990
|
|
|
1761
1991
|
class AXPCategoryModule {
|
|
1762
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1763
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
1764
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
1992
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPCategoryModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
1993
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: AXPCategoryModule }); }
|
|
1994
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPCategoryModule, providers: [
|
|
1765
1995
|
{ provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: categoryPlugin },
|
|
1766
1996
|
{
|
|
1767
1997
|
provide: AXP_PERMISSION_DEFINITION_PROVIDER,
|
|
@@ -1785,7 +2015,7 @@ class AXPCategoryModule {
|
|
|
1785
2015
|
},
|
|
1786
2016
|
] }); }
|
|
1787
2017
|
}
|
|
1788
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2018
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPCategoryModule, decorators: [{
|
|
1789
2019
|
type: NgModule,
|
|
1790
2020
|
args: [{
|
|
1791
2021
|
providers: [
|
|
@@ -1816,16 +2046,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
1816
2046
|
|
|
1817
2047
|
//#region ---- Imports ----
|
|
1818
2048
|
//#endregion
|
|
2049
|
+
//#region ---- Types ----
|
|
2050
|
+
const DEFAULT_CATALOG_SCOPES_QUERY = 'PlatformManagement:ListCatalogScopes';
|
|
2051
|
+
//#endregion
|
|
1819
2052
|
//#region ---- Plugin ----
|
|
1820
2053
|
const catalogScopePlugin = {
|
|
1821
2054
|
name: 'catalog-scope',
|
|
1822
2055
|
order: 46,
|
|
1823
2056
|
apply: (ctx, options) => {
|
|
1824
|
-
const propertyName = options?.propertyName?.trim()?.length
|
|
1825
|
-
? options.propertyName.trim()
|
|
1826
|
-
: 'catalogScopeKeys';
|
|
2057
|
+
const propertyName = options?.propertyName?.trim()?.length ? options.propertyName.trim() : 'catalogScopeKeys';
|
|
1827
2058
|
const allowMultiple = options?.allowMultiple ?? true;
|
|
1828
|
-
const dataSource = options?.dataSource?.trim() ||
|
|
2059
|
+
const dataSource = options?.dataSource?.trim() || DEFAULT_CATALOG_SCOPES_QUERY;
|
|
1829
2060
|
const showInList = options?.showInList ?? false;
|
|
1830
2061
|
const groupId = options?.groupId?.trim() || 'classification';
|
|
1831
2062
|
const layoutOrder = options?.layoutOrder ?? 14;
|
|
@@ -1855,9 +2086,7 @@ const catalogScopePlugin = {
|
|
|
1855
2086
|
allowSearch: true,
|
|
1856
2087
|
storeValueFieldOnly: true,
|
|
1857
2088
|
dataSource,
|
|
1858
|
-
...(options?.allowedScopeKeys?.length
|
|
1859
|
-
? { allowedScopeKeys: options.allowedScopeKeys }
|
|
1860
|
-
: {}),
|
|
2089
|
+
...(options?.allowedScopeKeys?.length ? { allowedScopeKeys: options.allowedScopeKeys } : {}),
|
|
1861
2090
|
},
|
|
1862
2091
|
},
|
|
1863
2092
|
},
|
|
@@ -1939,10 +2168,10 @@ class AXPCatalogScopeEnrichmentService {
|
|
|
1939
2168
|
}
|
|
1940
2169
|
return items;
|
|
1941
2170
|
}
|
|
1942
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1943
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
2171
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPCatalogScopeEnrichmentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2172
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPCatalogScopeEnrichmentService, providedIn: 'root' }); }
|
|
1944
2173
|
}
|
|
1945
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2174
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPCatalogScopeEnrichmentService, decorators: [{
|
|
1946
2175
|
type: Injectable,
|
|
1947
2176
|
args: [{ providedIn: 'root' }]
|
|
1948
2177
|
}] });
|
|
@@ -2161,15 +2390,10 @@ const catalogScopeValidationMiddleware = {
|
|
|
2161
2390
|
//#endregion
|
|
2162
2391
|
//#region ---- Module ----
|
|
2163
2392
|
class AXPCatalogScopePluginModule {
|
|
2164
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2165
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
2166
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
2393
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPCatalogScopePluginModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
2394
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: AXPCatalogScopePluginModule }); }
|
|
2395
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPCatalogScopePluginModule, providers: [
|
|
2167
2396
|
{ provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: catalogScopePlugin },
|
|
2168
|
-
{
|
|
2169
|
-
provide: AXP_DATASOURCE_DEFINITION_PROVIDER,
|
|
2170
|
-
useClass: AXPCatalogScopeDefinitionsDataSourceDefinition,
|
|
2171
|
-
multi: true,
|
|
2172
|
-
},
|
|
2173
2397
|
{
|
|
2174
2398
|
provide: AXP_ENTITY_STORAGE_MIDDLEWARE,
|
|
2175
2399
|
multi: true,
|
|
@@ -2182,16 +2406,11 @@ class AXPCatalogScopePluginModule {
|
|
|
2182
2406
|
},
|
|
2183
2407
|
] }); }
|
|
2184
2408
|
}
|
|
2185
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2409
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPCatalogScopePluginModule, decorators: [{
|
|
2186
2410
|
type: NgModule,
|
|
2187
2411
|
args: [{
|
|
2188
2412
|
providers: [
|
|
2189
2413
|
{ provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: catalogScopePlugin },
|
|
2190
|
-
{
|
|
2191
|
-
provide: AXP_DATASOURCE_DEFINITION_PROVIDER,
|
|
2192
|
-
useClass: AXPCatalogScopeDefinitionsDataSourceDefinition,
|
|
2193
|
-
multi: true,
|
|
2194
|
-
},
|
|
2195
2414
|
{
|
|
2196
2415
|
provide: AXP_ENTITY_STORAGE_MIDDLEWARE,
|
|
2197
2416
|
multi: true,
|
|
@@ -2255,19 +2474,19 @@ const clonePlugin = {
|
|
|
2255
2474
|
};
|
|
2256
2475
|
|
|
2257
2476
|
class AXPClonePluginModule {
|
|
2258
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2259
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
2260
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
2477
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPClonePluginModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
2478
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: AXPClonePluginModule }); }
|
|
2479
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPClonePluginModule, providers: [
|
|
2261
2480
|
{ provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: clonePlugin },
|
|
2262
2481
|
provideCommandSetups([
|
|
2263
2482
|
{
|
|
2264
2483
|
key: AXPCommonCommandKeys.Clone.Clone,
|
|
2265
|
-
command: () => import('./acorex-platform-module-common-client-clone-entity.command-
|
|
2484
|
+
command: () => import('./acorex-platform-module-common-client-clone-entity.command-rTasIhWx.mjs').then((m) => m.AXPCloneEntityCommand),
|
|
2266
2485
|
},
|
|
2267
2486
|
]),
|
|
2268
2487
|
] }); }
|
|
2269
2488
|
}
|
|
2270
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2489
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPClonePluginModule, decorators: [{
|
|
2271
2490
|
type: NgModule,
|
|
2272
2491
|
args: [{
|
|
2273
2492
|
providers: [
|
|
@@ -2275,7 +2494,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
2275
2494
|
provideCommandSetups([
|
|
2276
2495
|
{
|
|
2277
2496
|
key: AXPCommonCommandKeys.Clone.Clone,
|
|
2278
|
-
command: () => import('./acorex-platform-module-common-client-clone-entity.command-
|
|
2497
|
+
command: () => import('./acorex-platform-module-common-client-clone-entity.command-rTasIhWx.mjs').then((m) => m.AXPCloneEntityCommand),
|
|
2279
2498
|
},
|
|
2280
2499
|
]),
|
|
2281
2500
|
],
|
|
@@ -2361,11 +2580,11 @@ const colorPlugin = {
|
|
|
2361
2580
|
};
|
|
2362
2581
|
|
|
2363
2582
|
class AXPColorPluginModule {
|
|
2364
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2365
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
2366
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
2583
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPColorPluginModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
2584
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: AXPColorPluginModule }); }
|
|
2585
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPColorPluginModule, providers: [{ provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: colorPlugin }] }); }
|
|
2367
2586
|
}
|
|
2368
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2587
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPColorPluginModule, decorators: [{
|
|
2369
2588
|
type: NgModule,
|
|
2370
2589
|
args: [{
|
|
2371
2590
|
declarations: [],
|
|
@@ -2378,23 +2597,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
2378
2597
|
class AXPComparePopupComponent extends AXBasePageComponent {
|
|
2379
2598
|
constructor() {
|
|
2380
2599
|
super(...arguments);
|
|
2381
|
-
this.inputs = input(
|
|
2382
|
-
|
|
2383
|
-
this.
|
|
2600
|
+
this.inputs = input(/* @ts-ignore */
|
|
2601
|
+
...(ngDevMode ? [undefined, { debugName: "inputs" }] : /* istanbul ignore next */ []));
|
|
2602
|
+
this.isBusy = signal(false, /* @ts-ignore */
|
|
2603
|
+
...(ngDevMode ? [{ debugName: "isBusy" }] : /* istanbul ignore next */ []));
|
|
2604
|
+
this.mode = input('compare', /* @ts-ignore */
|
|
2605
|
+
...(ngDevMode ? [{ debugName: "mode" }] : /* istanbul ignore next */ []));
|
|
2384
2606
|
}
|
|
2385
2607
|
ngOnInit() {
|
|
2386
2608
|
super.ngOnInit();
|
|
2387
2609
|
}
|
|
2388
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2389
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "
|
|
2610
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPComparePopupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
2611
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.8", type: AXPComparePopupComponent, isStandalone: true, selector: "axp-compare-popup", inputs: { inputs: { classPropertyName: "inputs", publicName: "inputs", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null } }, providers: [], usesInheritance: true, ngImport: i0, template: "<ax-content>\n <div class=\"p-6 min-h-[30vh] overflow-y-auto\">\n <axp-compare-view [inputs]=\"inputs()\" [mode]=\"mode()\"></axp-compare-view>\n </div>\n</ax-content>\n<ax-footer>\n <ax-prefix></ax-prefix>\n <ax-suffix>\n <ax-button\n [text]=\"'@general:actions.close.title' | translate | async\"\n look=\"solid\"\n color=\"primary\"\n (onClick)=\"close()\"\n >\n </ax-button>\n </ax-suffix>\n</ax-footer>\n", dependencies: [{ kind: "ngmodule", type:
|
|
2390
2612
|
// Angular
|
|
2391
2613
|
CommonModule }, { kind: "ngmodule", type:
|
|
2392
2614
|
// ACoreX
|
|
2393
2615
|
AXDecoratorModule }, { kind: "component", type: i1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "component", type:
|
|
2394
2616
|
// Compare View
|
|
2395
|
-
AXPCompareViewComponent, selector: "axp-compare-view", inputs: ["inputs", "mode"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.AXTranslatorPipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
2617
|
+
AXPCompareViewComponent, selector: "axp-compare-view", inputs: ["inputs", "mode"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.Eager, encapsulation: i0.ViewEncapsulation.None }); }
|
|
2396
2618
|
}
|
|
2397
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2619
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPComparePopupComponent, decorators: [{
|
|
2398
2620
|
type: Component,
|
|
2399
2621
|
args: [{ selector: 'axp-compare-popup', standalone: true, imports: [
|
|
2400
2622
|
// Angular
|
|
@@ -2405,7 +2627,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
2405
2627
|
AXTranslationModule,
|
|
2406
2628
|
// Compare View
|
|
2407
2629
|
AXPCompareViewComponent
|
|
2408
|
-
], encapsulation: ViewEncapsulation.None, providers: [], template: "<ax-content>\n <div class=\"p-6 min-h-[30vh] overflow-y-auto\">\n <axp-compare-view [inputs]=\"inputs()\" [mode]=\"mode()\"></axp-compare-view>\n </div>\n</ax-content>\n<ax-footer>\n <ax-prefix></ax-prefix>\n <ax-suffix>\n <ax-button\n [text]=\"'@general:actions.close.title' | translate | async\"\n look=\"solid\"\n color=\"primary\"\n (onClick)=\"close()\"\n >\n </ax-button>\n </ax-suffix>\n</ax-footer>\n" }]
|
|
2630
|
+
], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Eager, providers: [], template: "<ax-content>\n <div class=\"p-6 min-h-[30vh] overflow-y-auto\">\n <axp-compare-view [inputs]=\"inputs()\" [mode]=\"mode()\"></axp-compare-view>\n </div>\n</ax-content>\n<ax-footer>\n <ax-prefix></ax-prefix>\n <ax-suffix>\n <ax-button\n [text]=\"'@general:actions.close.title' | translate | async\"\n look=\"solid\"\n color=\"primary\"\n (onClick)=\"close()\"\n >\n </ax-button>\n </ax-suffix>\n</ax-footer>\n" }]
|
|
2409
2631
|
}], propDecorators: { inputs: [{ type: i0.Input, args: [{ isSignal: true, alias: "inputs", required: false }] }], mode: [{ type: i0.Input, args: [{ isSignal: true, alias: "mode", required: false }] }] } });
|
|
2410
2632
|
|
|
2411
2633
|
var comparePopup_component = /*#__PURE__*/Object.freeze({
|
|
@@ -2414,22 +2636,18 @@ var comparePopup_component = /*#__PURE__*/Object.freeze({
|
|
|
2414
2636
|
});
|
|
2415
2637
|
|
|
2416
2638
|
function normalizeCompareEntityRecordsInput(input) {
|
|
2417
|
-
const
|
|
2418
|
-
const
|
|
2419
|
-
const
|
|
2420
|
-
const refType = String(input['entity'] ??
|
|
2421
|
-
ctx?.['entity'] ??
|
|
2422
|
-
ctx?.['entityInfo']?.['source'] ??
|
|
2423
|
-
'');
|
|
2639
|
+
const resolved = resolveEntityActionCommandInput(input);
|
|
2640
|
+
const records = entityActionDataRows(resolved.data);
|
|
2641
|
+
const refType = String(resolved.entity ?? resolved.entityInfo?.source ?? '');
|
|
2424
2642
|
if (!refType || records.length === 0) {
|
|
2425
2643
|
return null;
|
|
2426
2644
|
}
|
|
2427
2645
|
return { refType, records };
|
|
2428
2646
|
}
|
|
2429
2647
|
function normalizeCompareEntityRecordVersionsInput(input) {
|
|
2430
|
-
const
|
|
2431
|
-
const data = (
|
|
2432
|
-
const refType = String(data['refType'] ??
|
|
2648
|
+
const resolved = resolveEntityActionCommandInput(input);
|
|
2649
|
+
const data = (entityActionDataRows(resolved.data)[0] ?? {});
|
|
2650
|
+
const refType = String(data['refType'] ?? resolved.entity ?? '');
|
|
2433
2651
|
const refId = String(data['refId'] ?? '');
|
|
2434
2652
|
const ids = (data['ids'] ?? input['ids']);
|
|
2435
2653
|
if (!refType || !refId || !ids?.length) {
|
|
@@ -2470,12 +2688,17 @@ class AXPCompareEntityRecordsCommand {
|
|
|
2470
2688
|
const fields = await buildCompareFields({ entityRegistry }, context.refType);
|
|
2471
2689
|
const objects = await buildCompareRecordObjects({ entityRegistry }, context.refType, ids);
|
|
2472
2690
|
await openComparePopup({ popupService, translate }, { fields, objects }, 'compare');
|
|
2473
|
-
return {
|
|
2691
|
+
return {
|
|
2692
|
+
success: true,
|
|
2693
|
+
kind: 'object',
|
|
2694
|
+
data: undefined,
|
|
2695
|
+
metadata: { refresh: false },
|
|
2696
|
+
};
|
|
2474
2697
|
}
|
|
2475
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2476
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
2698
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPCompareEntityRecordsCommand, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2699
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPCompareEntityRecordsCommand }); }
|
|
2477
2700
|
}
|
|
2478
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2701
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPCompareEntityRecordsCommand, decorators: [{
|
|
2479
2702
|
type: Injectable
|
|
2480
2703
|
}] });
|
|
2481
2704
|
|
|
@@ -2507,12 +2730,17 @@ class AXPCompareEntityRecordVersionsCommand {
|
|
|
2507
2730
|
const fields = await buildCompareFields({ entityRegistry }, context.refType);
|
|
2508
2731
|
const objects = await buildCompareVersionObjects({ versioning, translate, formatService }, context.refType, context.refId, context.ids);
|
|
2509
2732
|
await openComparePopup({ popupService, translate }, { fields, objects }, 'changes');
|
|
2510
|
-
return {
|
|
2733
|
+
return {
|
|
2734
|
+
success: true,
|
|
2735
|
+
kind: 'object',
|
|
2736
|
+
data: undefined,
|
|
2737
|
+
metadata: { refresh: false },
|
|
2738
|
+
};
|
|
2511
2739
|
}
|
|
2512
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2513
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
2740
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPCompareEntityRecordVersionsCommand, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2741
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPCompareEntityRecordVersionsCommand }); }
|
|
2514
2742
|
}
|
|
2515
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2743
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPCompareEntityRecordVersionsCommand, decorators: [{
|
|
2516
2744
|
type: Injectable
|
|
2517
2745
|
}] });
|
|
2518
2746
|
|
|
@@ -2544,9 +2772,9 @@ const comparePlugin = {
|
|
|
2544
2772
|
};
|
|
2545
2773
|
|
|
2546
2774
|
class AXPCompareModule {
|
|
2547
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2548
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
2549
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
2775
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPCompareModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
2776
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: AXPCompareModule, imports: [AXPComparePopupComponent], exports: [AXPComparePopupComponent] }); }
|
|
2777
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPCompareModule, providers: [
|
|
2550
2778
|
{ provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: comparePlugin },
|
|
2551
2779
|
provideCommandSetups([
|
|
2552
2780
|
{
|
|
@@ -2560,7 +2788,7 @@ class AXPCompareModule {
|
|
|
2560
2788
|
]),
|
|
2561
2789
|
], imports: [AXPComparePopupComponent] }); }
|
|
2562
2790
|
}
|
|
2563
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2791
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPCompareModule, decorators: [{
|
|
2564
2792
|
type: NgModule,
|
|
2565
2793
|
args: [{
|
|
2566
2794
|
imports: [AXPComparePopupComponent],
|
|
@@ -2643,7 +2871,7 @@ function defaultIdField(dataPath) {
|
|
|
2643
2871
|
const computedPropertiesMiddleware = {
|
|
2644
2872
|
target: { ops: ['getOne', 'getAll', 'query'], order: 12 },
|
|
2645
2873
|
execute: async (ctx, next) => {
|
|
2646
|
-
const backend =
|
|
2874
|
+
const backend = ctx.entities;
|
|
2647
2875
|
const registry = inject(AXPEntityDefinitionRegistryService);
|
|
2648
2876
|
const expressionEvaluator = inject(AXPExpressionEvaluatorService);
|
|
2649
2877
|
const contextEvalFactory = inject(AXPContextEvalFactory);
|
|
@@ -2863,14 +3091,14 @@ const computedPropertiesPlugin = {
|
|
|
2863
3091
|
//#endregion
|
|
2864
3092
|
|
|
2865
3093
|
class AXPComputedPropertiesModule {
|
|
2866
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2867
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
2868
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
3094
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPComputedPropertiesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
3095
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: AXPComputedPropertiesModule }); }
|
|
3096
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPComputedPropertiesModule, providers: [
|
|
2869
3097
|
{ provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: computedPropertiesPlugin },
|
|
2870
3098
|
{ provide: AXP_ENTITY_STORAGE_MIDDLEWARE, multi: true, useValue: computedPropertiesMiddleware },
|
|
2871
3099
|
] }); }
|
|
2872
3100
|
}
|
|
2873
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3101
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPComputedPropertiesModule, decorators: [{
|
|
2874
3102
|
type: NgModule,
|
|
2875
3103
|
args: [{
|
|
2876
3104
|
providers: [
|
|
@@ -2960,11 +3188,11 @@ const descriptionPlugin = {
|
|
|
2960
3188
|
};
|
|
2961
3189
|
|
|
2962
3190
|
class AXPDescriptionPluginModule {
|
|
2963
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2964
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
2965
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
3191
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPDescriptionPluginModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
3192
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: AXPDescriptionPluginModule }); }
|
|
3193
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPDescriptionPluginModule, providers: [{ provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: descriptionPlugin }] }); }
|
|
2966
3194
|
}
|
|
2967
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3195
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPDescriptionPluginModule, decorators: [{
|
|
2968
3196
|
type: NgModule,
|
|
2969
3197
|
args: [{
|
|
2970
3198
|
declarations: [],
|
|
@@ -3215,31 +3443,31 @@ const disablePlugin = {
|
|
|
3215
3443
|
};
|
|
3216
3444
|
|
|
3217
3445
|
class AXPDisablePluginModule {
|
|
3218
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3219
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
3220
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
3446
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPDisablePluginModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
3447
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: AXPDisablePluginModule }); }
|
|
3448
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPDisablePluginModule, providers: [
|
|
3221
3449
|
{ provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: disablePlugin },
|
|
3222
3450
|
provideCommandSetups([
|
|
3223
3451
|
{
|
|
3224
3452
|
key: AXPCommonCommandKeys.Disable.Disable,
|
|
3225
|
-
command: () => import('./acorex-platform-module-common-client-disable-entity.command-
|
|
3453
|
+
command: () => import('./acorex-platform-module-common-client-disable-entity.command-Bc1uH38V.mjs').then((m) => m.AXPDisableEntityCommand),
|
|
3226
3454
|
},
|
|
3227
3455
|
{
|
|
3228
3456
|
key: AXPCommonCommandKeys.Disable.Enable,
|
|
3229
|
-
command: () => import('./acorex-platform-module-common-client-enable-entity.command-
|
|
3457
|
+
command: () => import('./acorex-platform-module-common-client-enable-entity.command-DeTumWIj.mjs').then((m) => m.AXPEnableEntityCommand),
|
|
3230
3458
|
},
|
|
3231
3459
|
{
|
|
3232
3460
|
key: AXPCommonCommandKeys.Disable.BulkDisable,
|
|
3233
|
-
command: () => import('./acorex-platform-module-common-client-bulk-disable-entity.command-
|
|
3461
|
+
command: () => import('./acorex-platform-module-common-client-bulk-disable-entity.command-DgoZVXQA.mjs').then((m) => m.AXPBulkDisableEntityCommand),
|
|
3234
3462
|
},
|
|
3235
3463
|
{
|
|
3236
3464
|
key: AXPCommonCommandKeys.Disable.BulkEnable,
|
|
3237
|
-
command: () => import('./acorex-platform-module-common-client-bulk-enable-entity.command-
|
|
3465
|
+
command: () => import('./acorex-platform-module-common-client-bulk-enable-entity.command-C6fba__g.mjs').then((m) => m.AXPBulkEnableEntityCommand),
|
|
3238
3466
|
},
|
|
3239
3467
|
]),
|
|
3240
3468
|
] }); }
|
|
3241
3469
|
}
|
|
3242
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3470
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPDisablePluginModule, decorators: [{
|
|
3243
3471
|
type: NgModule,
|
|
3244
3472
|
args: [{
|
|
3245
3473
|
providers: [
|
|
@@ -3247,19 +3475,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
3247
3475
|
provideCommandSetups([
|
|
3248
3476
|
{
|
|
3249
3477
|
key: AXPCommonCommandKeys.Disable.Disable,
|
|
3250
|
-
command: () => import('./acorex-platform-module-common-client-disable-entity.command-
|
|
3478
|
+
command: () => import('./acorex-platform-module-common-client-disable-entity.command-Bc1uH38V.mjs').then((m) => m.AXPDisableEntityCommand),
|
|
3251
3479
|
},
|
|
3252
3480
|
{
|
|
3253
3481
|
key: AXPCommonCommandKeys.Disable.Enable,
|
|
3254
|
-
command: () => import('./acorex-platform-module-common-client-enable-entity.command-
|
|
3482
|
+
command: () => import('./acorex-platform-module-common-client-enable-entity.command-DeTumWIj.mjs').then((m) => m.AXPEnableEntityCommand),
|
|
3255
3483
|
},
|
|
3256
3484
|
{
|
|
3257
3485
|
key: AXPCommonCommandKeys.Disable.BulkDisable,
|
|
3258
|
-
command: () => import('./acorex-platform-module-common-client-bulk-disable-entity.command-
|
|
3486
|
+
command: () => import('./acorex-platform-module-common-client-bulk-disable-entity.command-DgoZVXQA.mjs').then((m) => m.AXPBulkDisableEntityCommand),
|
|
3259
3487
|
},
|
|
3260
3488
|
{
|
|
3261
3489
|
key: AXPCommonCommandKeys.Disable.BulkEnable,
|
|
3262
|
-
command: () => import('./acorex-platform-module-common-client-bulk-enable-entity.command-
|
|
3490
|
+
command: () => import('./acorex-platform-module-common-client-bulk-enable-entity.command-C6fba__g.mjs').then((m) => m.AXPBulkEnableEntityCommand),
|
|
3263
3491
|
},
|
|
3264
3492
|
]),
|
|
3265
3493
|
],
|
|
@@ -3343,11 +3571,11 @@ const defaultPlugin = {
|
|
|
3343
3571
|
};
|
|
3344
3572
|
|
|
3345
3573
|
class AXPDefaultPluginModule {
|
|
3346
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3347
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
3348
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
3574
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPDefaultPluginModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
3575
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: AXPDefaultPluginModule }); }
|
|
3576
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPDefaultPluginModule, providers: [{ provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: defaultPlugin }] }); }
|
|
3349
3577
|
}
|
|
3350
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3578
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPDefaultPluginModule, decorators: [{
|
|
3351
3579
|
type: NgModule,
|
|
3352
3580
|
args: [{
|
|
3353
3581
|
declarations: [],
|
|
@@ -3432,11 +3660,11 @@ const derivedNamePlugin = {
|
|
|
3432
3660
|
//#endregion
|
|
3433
3661
|
|
|
3434
3662
|
class AXPDerivedNamePluginModule {
|
|
3435
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3436
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
3437
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
3663
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPDerivedNamePluginModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
3664
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: AXPDerivedNamePluginModule }); }
|
|
3665
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPDerivedNamePluginModule, providers: [{ provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: derivedNamePlugin }] }); }
|
|
3438
3666
|
}
|
|
3439
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3667
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPDerivedNamePluginModule, decorators: [{
|
|
3440
3668
|
type: NgModule,
|
|
3441
3669
|
args: [{
|
|
3442
3670
|
providers: [{ provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: derivedNamePlugin }],
|
|
@@ -3509,11 +3737,11 @@ const iconPlugin = {
|
|
|
3509
3737
|
};
|
|
3510
3738
|
|
|
3511
3739
|
class AXPIconPluginModule {
|
|
3512
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3513
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
3514
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
3740
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPIconPluginModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
3741
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: AXPIconPluginModule }); }
|
|
3742
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPIconPluginModule, providers: [{ provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: iconPlugin }] }); }
|
|
3515
3743
|
}
|
|
3516
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3744
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPIconPluginModule, decorators: [{
|
|
3517
3745
|
type: NgModule,
|
|
3518
3746
|
args: [{
|
|
3519
3747
|
declarations: [],
|
|
@@ -3528,7 +3756,7 @@ class AXPLockEntityCommandHelper {
|
|
|
3528
3756
|
this.translationService = inject(AXTranslationService);
|
|
3529
3757
|
this.toastService = inject(AXToastService);
|
|
3530
3758
|
this.settingsService = inject(AXPSettingsService);
|
|
3531
|
-
this.
|
|
3759
|
+
this.entityEvents = inject(AXPEntityBroadcastService);
|
|
3532
3760
|
}
|
|
3533
3761
|
async showSuccessToast(titleKey, contentKey) {
|
|
3534
3762
|
const enabled = await this.settingsService.get(AXPCommonSettings.EnableOperationToasts);
|
|
@@ -3542,25 +3770,22 @@ class AXPLockEntityCommandHelper {
|
|
|
3542
3770
|
});
|
|
3543
3771
|
}
|
|
3544
3772
|
dispatchLockChanged(refType, meta) {
|
|
3545
|
-
this.
|
|
3773
|
+
this.entityEvents.publishLayoutRefresh(refType, meta);
|
|
3546
3774
|
}
|
|
3547
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3548
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
3775
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPLockEntityCommandHelper, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3776
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPLockEntityCommandHelper, providedIn: 'root' }); }
|
|
3549
3777
|
}
|
|
3550
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3778
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPLockEntityCommandHelper, decorators: [{
|
|
3551
3779
|
type: Injectable,
|
|
3552
3780
|
args: [{ providedIn: 'root' }]
|
|
3553
3781
|
}] });
|
|
3554
3782
|
|
|
3555
3783
|
function normalizeLockInput(input) {
|
|
3556
|
-
const
|
|
3557
|
-
|
|
3558
|
-
const refType = String(options['refType'] ?? input['refType'] ?? ctx?.['entity'] ?? '');
|
|
3559
|
-
const rawId = options['refId'] ?? input['refId'];
|
|
3560
|
-
if (!refType || rawId == null || rawId === '') {
|
|
3784
|
+
const resolved = resolveEntityActionRef(input);
|
|
3785
|
+
if (!resolved) {
|
|
3561
3786
|
return null;
|
|
3562
3787
|
}
|
|
3563
|
-
return { refId:
|
|
3788
|
+
return { refId: resolved.refId, refType: resolved.refType };
|
|
3564
3789
|
}
|
|
3565
3790
|
|
|
3566
3791
|
class AXPLockEntityCommand {
|
|
@@ -3638,7 +3863,10 @@ class AXPLockEntityCommand {
|
|
|
3638
3863
|
const action = dialogRef.action();
|
|
3639
3864
|
if (action === 'cancel') {
|
|
3640
3865
|
dialogRef.close();
|
|
3641
|
-
return {
|
|
3866
|
+
return {
|
|
3867
|
+
success: false,
|
|
3868
|
+
message: { details: { locked: false } },
|
|
3869
|
+
};
|
|
3642
3870
|
}
|
|
3643
3871
|
const form = dialogRef.context();
|
|
3644
3872
|
const selected = form?.duration ?? '1h';
|
|
@@ -3660,8 +3888,7 @@ class AXPLockEntityCommand {
|
|
|
3660
3888
|
dialogRef.close();
|
|
3661
3889
|
this.helper.dispatchLockChanged(context.refType);
|
|
3662
3890
|
await this.helper.showSuccessToast('@general:workflow.entity-modified-title', '@general:workflow.entity-modified-body');
|
|
3663
|
-
return {
|
|
3664
|
-
success: true,
|
|
3891
|
+
return { success: true, kind: 'object',
|
|
3665
3892
|
data: {
|
|
3666
3893
|
locked: true,
|
|
3667
3894
|
lockDuration: form?.duration ?? '1h',
|
|
@@ -3669,10 +3896,10 @@ class AXPLockEntityCommand {
|
|
|
3669
3896
|
},
|
|
3670
3897
|
};
|
|
3671
3898
|
}
|
|
3672
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3673
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
3899
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPLockEntityCommand, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3900
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPLockEntityCommand, providedIn: 'root' }); }
|
|
3674
3901
|
}
|
|
3675
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3902
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPLockEntityCommand, decorators: [{
|
|
3676
3903
|
type: Injectable,
|
|
3677
3904
|
args: [{ providedIn: 'root' }]
|
|
3678
3905
|
}] });
|
|
@@ -3701,7 +3928,10 @@ class AXPUnlockEntityCommand {
|
|
|
3701
3928
|
}
|
|
3702
3929
|
const dialogResult = await this.dialogService.confirm(await this.translationService.translateAsync('@lock-system:components.unlock-dialog.title'), await this.translationService.translateAsync('@lock-system:components.unlock-dialog.description'), 'warning', 'horizontal', false, 'cancel');
|
|
3703
3930
|
if (!dialogResult.result) {
|
|
3704
|
-
return {
|
|
3931
|
+
return {
|
|
3932
|
+
success: false,
|
|
3933
|
+
message: { details: { unlocked: false } },
|
|
3934
|
+
};
|
|
3705
3935
|
}
|
|
3706
3936
|
try {
|
|
3707
3937
|
await this.lockService.unlock({
|
|
@@ -3711,24 +3941,23 @@ class AXPUnlockEntityCommand {
|
|
|
3711
3941
|
});
|
|
3712
3942
|
this.helper.dispatchLockChanged(context.refType);
|
|
3713
3943
|
await this.helper.showSuccessToast('@general:workflow.entity-modified-title', '@general:workflow.entity-modified-body');
|
|
3714
|
-
return { success: true, data: { unlocked: true } };
|
|
3944
|
+
return { success: true, kind: 'object', data: { unlocked: true } };
|
|
3715
3945
|
}
|
|
3716
3946
|
catch (error) {
|
|
3717
3947
|
console.error('Unlock failed:', error);
|
|
3718
3948
|
await this.dialogService.alert(await this.translationService.translateAsync('@lock-system:messages.error.unlock.title'), await this.translationService.translateAsync('@lock-system:messages.error.unlock.description'), 'danger');
|
|
3719
3949
|
return {
|
|
3720
3950
|
success: false,
|
|
3721
|
-
|
|
3722
|
-
message: {
|
|
3951
|
+
message: { details: { unlocked: false },
|
|
3723
3952
|
text: error instanceof Error ? error.message : 'Unlock failed',
|
|
3724
3953
|
},
|
|
3725
3954
|
};
|
|
3726
3955
|
}
|
|
3727
3956
|
}
|
|
3728
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3729
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
3957
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPUnlockEntityCommand, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3958
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPUnlockEntityCommand, providedIn: 'root' }); }
|
|
3730
3959
|
}
|
|
3731
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3960
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPUnlockEntityCommand, decorators: [{
|
|
3732
3961
|
type: Injectable,
|
|
3733
3962
|
args: [{ providedIn: 'root' }]
|
|
3734
3963
|
}] });
|
|
@@ -3759,29 +3988,11 @@ class AXMLockEvaluatorScopeProvider {
|
|
|
3759
3988
|
}
|
|
3760
3989
|
}
|
|
3761
3990
|
|
|
3762
|
-
const lockGuardMiddleware = {
|
|
3763
|
-
target: { ops: ['update', 'delete'], order: 10 },
|
|
3764
|
-
execute: async (ctx, next) => {
|
|
3765
|
-
const lockService = inject(AXPLockService);
|
|
3766
|
-
const session = inject(AXPSessionService);
|
|
3767
|
-
const lock = await lockService.check({ refId: ctx.id, refType: ctx.entityName });
|
|
3768
|
-
if (lock) {
|
|
3769
|
-
const info = await lockService.getInfo({ refId: ctx.id, refType: ctx.entityName });
|
|
3770
|
-
if (info && session.user && info.lockedBy.id !== session.user.id) {
|
|
3771
|
-
throw new Error('This record is locked and cannot be edited.');
|
|
3772
|
-
}
|
|
3773
|
-
}
|
|
3774
|
-
await next();
|
|
3775
|
-
},
|
|
3776
|
-
};
|
|
3777
|
-
|
|
3778
3991
|
class AXMLockSystemModule {
|
|
3779
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3780
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
3781
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
3992
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMLockSystemModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
3993
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: AXMLockSystemModule }); }
|
|
3994
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMLockSystemModule, providers: [
|
|
3782
3995
|
{ provide: AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER, multi: true, useClass: AXMLockEvaluatorScopeProvider },
|
|
3783
|
-
// { provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: lockPlugin },
|
|
3784
|
-
{ provide: AXP_ENTITY_STORAGE_MIDDLEWARE, multi: true, useValue: lockGuardMiddleware },
|
|
3785
3996
|
AXPLockEntityCommand,
|
|
3786
3997
|
AXPUnlockEntityCommand,
|
|
3787
3998
|
provideCommandSetups([
|
|
@@ -3796,14 +4007,12 @@ class AXMLockSystemModule {
|
|
|
3796
4007
|
]),
|
|
3797
4008
|
] }); }
|
|
3798
4009
|
}
|
|
3799
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4010
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMLockSystemModule, decorators: [{
|
|
3800
4011
|
type: NgModule,
|
|
3801
4012
|
args: [{
|
|
3802
4013
|
imports: [],
|
|
3803
4014
|
providers: [
|
|
3804
4015
|
{ provide: AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER, multi: true, useClass: AXMLockEvaluatorScopeProvider },
|
|
3805
|
-
// { provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: lockPlugin },
|
|
3806
|
-
{ provide: AXP_ENTITY_STORAGE_MIDDLEWARE, multi: true, useValue: lockGuardMiddleware },
|
|
3807
4016
|
AXPLockEntityCommand,
|
|
3808
4017
|
AXPUnlockEntityCommand,
|
|
3809
4018
|
provideCommandSetups([
|
|
@@ -3905,11 +4114,11 @@ const namePlugin = {
|
|
|
3905
4114
|
};
|
|
3906
4115
|
|
|
3907
4116
|
class AXPNamePluginModule {
|
|
3908
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3909
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
3910
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
4117
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPNamePluginModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
4118
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: AXPNamePluginModule }); }
|
|
4119
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPNamePluginModule, providers: [{ provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: namePlugin }] }); }
|
|
3911
4120
|
}
|
|
3912
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4121
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPNamePluginModule, decorators: [{
|
|
3913
4122
|
type: NgModule,
|
|
3914
4123
|
args: [{
|
|
3915
4124
|
declarations: [],
|
|
@@ -3999,11 +4208,11 @@ const notesPlugin = {
|
|
|
3999
4208
|
};
|
|
4000
4209
|
|
|
4001
4210
|
class AXPNotesPluginModule {
|
|
4002
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
4003
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
4004
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
4211
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPNotesPluginModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
4212
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: AXPNotesPluginModule }); }
|
|
4213
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPNotesPluginModule, providers: [{ provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: notesPlugin }] }); }
|
|
4005
4214
|
}
|
|
4006
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4215
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPNotesPluginModule, decorators: [{
|
|
4007
4216
|
type: NgModule,
|
|
4008
4217
|
args: [{
|
|
4009
4218
|
declarations: [],
|
|
@@ -4151,9 +4360,9 @@ const primaryPlugin = {
|
|
|
4151
4360
|
};
|
|
4152
4361
|
|
|
4153
4362
|
class AXPPrimaryPluginModule {
|
|
4154
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
4155
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
4156
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
4363
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPPrimaryPluginModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
4364
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: AXPPrimaryPluginModule }); }
|
|
4365
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPPrimaryPluginModule, providers: [
|
|
4157
4366
|
// Register the primary plugin
|
|
4158
4367
|
{
|
|
4159
4368
|
provide: AXP_ENTITY_ACTION_PLUGIN,
|
|
@@ -4162,7 +4371,7 @@ class AXPPrimaryPluginModule {
|
|
|
4162
4371
|
},
|
|
4163
4372
|
] }); }
|
|
4164
4373
|
}
|
|
4165
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4374
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPPrimaryPluginModule, decorators: [{
|
|
4166
4375
|
type: NgModule,
|
|
4167
4376
|
args: [{
|
|
4168
4377
|
providers: [
|
|
@@ -4351,9 +4560,9 @@ const statusPlugin = {
|
|
|
4351
4560
|
* backend (e.g. connectivity/mock status-default.middleware) for security.
|
|
4352
4561
|
*/
|
|
4353
4562
|
class AXPStatusPluginModule {
|
|
4354
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
4355
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
4356
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
4563
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPStatusPluginModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
4564
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: AXPStatusPluginModule }); }
|
|
4565
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPStatusPluginModule, providers: [
|
|
4357
4566
|
{
|
|
4358
4567
|
provide: AXP_ENTITY_ACTION_PLUGIN,
|
|
4359
4568
|
multi: true,
|
|
@@ -4361,7 +4570,7 @@ class AXPStatusPluginModule {
|
|
|
4361
4570
|
},
|
|
4362
4571
|
] }); }
|
|
4363
4572
|
}
|
|
4364
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4573
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPStatusPluginModule, decorators: [{
|
|
4365
4574
|
type: NgModule,
|
|
4366
4575
|
args: [{
|
|
4367
4576
|
declarations: [],
|
|
@@ -4693,11 +4902,11 @@ const titlePlugin = {
|
|
|
4693
4902
|
};
|
|
4694
4903
|
|
|
4695
4904
|
class AXPTitlePluginModule {
|
|
4696
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
4697
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
4698
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
4905
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPTitlePluginModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
4906
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: AXPTitlePluginModule }); }
|
|
4907
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPTitlePluginModule, providers: [{ provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: titlePlugin }] }); }
|
|
4699
4908
|
}
|
|
4700
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4909
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPTitlePluginModule, decorators: [{
|
|
4701
4910
|
type: NgModule,
|
|
4702
4911
|
args: [{
|
|
4703
4912
|
declarations: [],
|
|
@@ -4754,9 +4963,16 @@ const uniqueFieldsPlugin = {
|
|
|
4754
4963
|
console.warn('[unique-fields-plugin] Parent scope requires parentField option. Plugin will not be applied.');
|
|
4755
4964
|
return;
|
|
4756
4965
|
}
|
|
4757
|
-
// Verify
|
|
4966
|
+
// Verify fields exist — dotted paths (e.g. scopeInfo.tenantId) match the root property
|
|
4967
|
+
// or the platform ownership bag (always valid on AXPEntityModel).
|
|
4758
4968
|
const props = ctx.properties.list();
|
|
4759
|
-
const missingFields = fields.filter(field
|
|
4969
|
+
const missingFields = fields.filter((field) => {
|
|
4970
|
+
if (field === 'scopeInfo' || field.startsWith('scopeInfo.')) {
|
|
4971
|
+
return false;
|
|
4972
|
+
}
|
|
4973
|
+
const rootName = field.split('.')[0];
|
|
4974
|
+
return !props.some((p) => p.name === field || p.name === rootName);
|
|
4975
|
+
});
|
|
4760
4976
|
if (missingFields.length > 0) {
|
|
4761
4977
|
console.warn(`[unique-fields-plugin] Fields not found in entity: ${missingFields.join(', ')}. Plugin will not be applied.`);
|
|
4762
4978
|
return;
|
|
@@ -4788,9 +5004,9 @@ const uniqueFieldsPlugin = {
|
|
|
4788
5004
|
//#endregion
|
|
4789
5005
|
|
|
4790
5006
|
class AXPUniqueFieldsPluginModule {
|
|
4791
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
4792
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
4793
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
5007
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPUniqueFieldsPluginModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
5008
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: AXPUniqueFieldsPluginModule }); }
|
|
5009
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPUniqueFieldsPluginModule, providers: [
|
|
4794
5010
|
{
|
|
4795
5011
|
provide: AXP_ENTITY_ACTION_PLUGIN,
|
|
4796
5012
|
useValue: uniqueFieldsPlugin,
|
|
@@ -4798,7 +5014,7 @@ class AXPUniqueFieldsPluginModule {
|
|
|
4798
5014
|
},
|
|
4799
5015
|
] }); }
|
|
4800
5016
|
}
|
|
4801
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
5017
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPUniqueFieldsPluginModule, decorators: [{
|
|
4802
5018
|
type: NgModule,
|
|
4803
5019
|
args: [{
|
|
4804
5020
|
providers: [
|
|
@@ -4833,10 +5049,10 @@ class AtLeastOneOfValidationRule {
|
|
|
4833
5049
|
value,
|
|
4834
5050
|
};
|
|
4835
5051
|
}
|
|
4836
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
4837
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
5052
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AtLeastOneOfValidationRule, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
5053
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AtLeastOneOfValidationRule }); }
|
|
4838
5054
|
}
|
|
4839
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
5055
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AtLeastOneOfValidationRule, decorators: [{
|
|
4840
5056
|
type: Injectable
|
|
4841
5057
|
}] });
|
|
4842
5058
|
|
|
@@ -4869,10 +5085,10 @@ class UniqueValidationRule {
|
|
|
4869
5085
|
value,
|
|
4870
5086
|
};
|
|
4871
5087
|
}
|
|
4872
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
4873
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
5088
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: UniqueValidationRule, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
5089
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: UniqueValidationRule }); }
|
|
4874
5090
|
}
|
|
4875
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
5091
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: UniqueValidationRule, decorators: [{
|
|
4876
5092
|
type: Injectable
|
|
4877
5093
|
}] });
|
|
4878
5094
|
|
|
@@ -4979,10 +5195,10 @@ class VariableNameValidationRule {
|
|
|
4979
5195
|
value: value,
|
|
4980
5196
|
};
|
|
4981
5197
|
}
|
|
4982
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
4983
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
5198
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: VariableNameValidationRule, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
5199
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: VariableNameValidationRule }); }
|
|
4984
5200
|
}
|
|
4985
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
5201
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: VariableNameValidationRule, decorators: [{
|
|
4986
5202
|
type: Injectable
|
|
4987
5203
|
}] });
|
|
4988
5204
|
|
|
@@ -5005,13 +5221,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
5005
5221
|
* ```
|
|
5006
5222
|
*/
|
|
5007
5223
|
class AXPValidationRulesModule {
|
|
5008
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
5009
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
5010
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
5224
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPValidationRulesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
5225
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: AXPValidationRulesModule, imports: [i1$2.AXValidationModule] }); }
|
|
5226
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPValidationRulesModule, imports: [AXValidationModule.forChild({
|
|
5011
5227
|
rules: [VariableNameValidationRule, UniqueValidationRule, AtLeastOneOfValidationRule],
|
|
5012
5228
|
})] }); }
|
|
5013
5229
|
}
|
|
5014
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
5230
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPValidationRulesModule, decorators: [{
|
|
5015
5231
|
type: NgModule,
|
|
5016
5232
|
args: [{
|
|
5017
5233
|
imports: [
|
|
@@ -5104,58 +5320,104 @@ class AXPUtilsEvaluatorScopeProvider {
|
|
|
5104
5320
|
}
|
|
5105
5321
|
//#endregion
|
|
5106
5322
|
|
|
5323
|
+
//#region ---- Constants ----
|
|
5324
|
+
/** Low-level CRUD keys — feature commands (archive/delete/…) own their UX. */
|
|
5325
|
+
const SILENT_TOAST_COMMAND_KEYS = new Set([
|
|
5326
|
+
ENTITY_INSERT_DEFAULT,
|
|
5327
|
+
ENTITY_UPDATE_DEFAULT,
|
|
5328
|
+
ENTITY_DELETE_DEFAULT,
|
|
5329
|
+
// Auth session binds run while sessionService.isLoading is true; never toast / load settings here.
|
|
5330
|
+
AUTH_SIGN_IN_DEFAULT,
|
|
5331
|
+
AUTH_REGISTER_DEFAULT,
|
|
5332
|
+
AUTH_UPDATE_SESSION_DEFAULT,
|
|
5333
|
+
AUTH_REFRESH_DEFAULT,
|
|
5334
|
+
AUTH_LOGOUT_DEFAULT,
|
|
5335
|
+
]);
|
|
5336
|
+
//#endregion
|
|
5107
5337
|
//#region ---- Middleware ----
|
|
5108
5338
|
/**
|
|
5109
5339
|
* Displays a toast based on command execution outcome.
|
|
5340
|
+
* Prefers `message.text` (@i18n or plain); falls back to platform `message.code` → i18n.
|
|
5110
5341
|
*/
|
|
5111
|
-
const commandMessageToastMiddleware = async (
|
|
5342
|
+
const commandMessageToastMiddleware = async (context, next) => {
|
|
5343
|
+
if (SILENT_TOAST_COMMAND_KEYS.has(context.key)) {
|
|
5344
|
+
return await next(context);
|
|
5345
|
+
}
|
|
5112
5346
|
const toastService = inject(AXToastService);
|
|
5113
5347
|
const translationService = inject(AXTranslationService);
|
|
5114
5348
|
const settingService = inject(AXPSettingsService);
|
|
5115
|
-
//
|
|
5116
|
-
|
|
5117
|
-
|
|
5118
|
-
|
|
5119
|
-
|
|
5120
|
-
|
|
5121
|
-
const
|
|
5122
|
-
const
|
|
5123
|
-
|
|
5349
|
+
// Non-blocking read only. `settingsService.get()` → ensureLoaded → awaitSessionReady waits for
|
|
5350
|
+
// !session.isLoading; Auth/session commands set isLoading=true, which caused a ~15s deadlock.
|
|
5351
|
+
const enableOperationToasts = settingService.peekCached(AXPCommonSettings.EnableOperationToasts);
|
|
5352
|
+
if (enableOperationToasts === false) {
|
|
5353
|
+
return await next(context);
|
|
5354
|
+
}
|
|
5355
|
+
const result = await next(context);
|
|
5356
|
+
const message = result.message;
|
|
5357
|
+
const color = message?.type ?? (result.success ? 'success' : 'danger');
|
|
5358
|
+
let content = null;
|
|
5359
|
+
const text = message?.text;
|
|
5360
|
+
if (typeof text === 'string' && text.trim()) {
|
|
5361
|
+
content = text.startsWith('@') ? await translationService.translateAsync(text) : text;
|
|
5362
|
+
}
|
|
5363
|
+
else if (text && typeof text === 'object') {
|
|
5364
|
+
content = translationService.resolve(text);
|
|
5365
|
+
}
|
|
5366
|
+
else {
|
|
5367
|
+
const codeKey = platformErrorI18nKey(message?.code);
|
|
5368
|
+
if (codeKey) {
|
|
5369
|
+
content = await translationService.translateAsync(codeKey);
|
|
5370
|
+
}
|
|
5371
|
+
}
|
|
5372
|
+
if (content) {
|
|
5124
5373
|
const title = result.success
|
|
5125
5374
|
? await translationService.translateAsync('@general:messages.generic.success.title')
|
|
5126
5375
|
: await translationService.translateAsync('@general:messages.generic.error.title');
|
|
5127
|
-
const content = typeof message === 'string'
|
|
5128
|
-
? message.startsWith('@')
|
|
5129
|
-
? await translationService.translateAsync(message)
|
|
5130
|
-
: message
|
|
5131
|
-
: translationService.resolve(message);
|
|
5132
5376
|
toastService.show({
|
|
5133
5377
|
color: color,
|
|
5134
|
-
title
|
|
5135
|
-
content
|
|
5378
|
+
title,
|
|
5379
|
+
content,
|
|
5136
5380
|
});
|
|
5137
5381
|
}
|
|
5138
5382
|
return result;
|
|
5139
5383
|
};
|
|
5140
5384
|
//#endregion
|
|
5141
5385
|
|
|
5386
|
+
//#region ---- Helpers ----
|
|
5387
|
+
/** True when the command completed without a persisted change that needs a list reload. */
|
|
5388
|
+
function shouldSkipLayoutRefresh(result) {
|
|
5389
|
+
if (!result.success) {
|
|
5390
|
+
return true;
|
|
5391
|
+
}
|
|
5392
|
+
if (result.metadata?.['refresh'] === false) {
|
|
5393
|
+
return true;
|
|
5394
|
+
}
|
|
5395
|
+
const metaOutcome = result.metadata?.['outcome'];
|
|
5396
|
+
if (typeof metaOutcome === 'string' && metaOutcome.toLowerCase() === 'cancelled') {
|
|
5397
|
+
return true;
|
|
5398
|
+
}
|
|
5399
|
+
const data = result.data;
|
|
5400
|
+
if (data != null && typeof data === 'object' && !Array.isArray(data)) {
|
|
5401
|
+
const outcome = data.outcome;
|
|
5402
|
+
if (typeof outcome === 'string' && outcome.toLowerCase() === 'cancelled') {
|
|
5403
|
+
return true;
|
|
5404
|
+
}
|
|
5405
|
+
}
|
|
5406
|
+
return false;
|
|
5407
|
+
}
|
|
5408
|
+
//#endregion
|
|
5142
5409
|
//#region ---- Middleware ----
|
|
5143
5410
|
/**
|
|
5144
5411
|
* Dispatches an entity refresh event after successful command execution.
|
|
5412
|
+
* Skips cancel/dismiss and commands that opt out via `metadata.refresh: false`.
|
|
5145
5413
|
*/
|
|
5146
|
-
const commandRefreshMiddleware = async (
|
|
5147
|
-
const
|
|
5148
|
-
const result = await next(
|
|
5149
|
-
if (result
|
|
5150
|
-
const
|
|
5151
|
-
|
|
5152
|
-
|
|
5153
|
-
if (entity) {
|
|
5154
|
-
const meta = context ? context['meta'] : undefined;
|
|
5155
|
-
broadcastEventService.publish(AXPEntityEventsKeys.REFRESH_LAYOUT, {
|
|
5156
|
-
name: entity,
|
|
5157
|
-
...(meta !== undefined ? { meta } : {}),
|
|
5158
|
-
});
|
|
5414
|
+
const commandRefreshMiddleware = async (context, next) => {
|
|
5415
|
+
const entityEvents = inject(AXPEntityBroadcastService);
|
|
5416
|
+
const result = await next(context);
|
|
5417
|
+
if (!shouldSkipLayoutRefresh(result)) {
|
|
5418
|
+
const resolved = resolveEntityActionCommandInput(context.input);
|
|
5419
|
+
if (resolved.entity) {
|
|
5420
|
+
entityEvents.publishLayoutRefresh(resolved.entity, resolved.meta);
|
|
5159
5421
|
}
|
|
5160
5422
|
}
|
|
5161
5423
|
return result;
|
|
@@ -5163,13 +5425,13 @@ const commandRefreshMiddleware = async (input, next) => {
|
|
|
5163
5425
|
//#endregion
|
|
5164
5426
|
|
|
5165
5427
|
class AXMCommonMiddlewaresModule {
|
|
5166
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
5167
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
5168
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
5428
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMCommonMiddlewaresModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
5429
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: AXMCommonMiddlewaresModule }); }
|
|
5430
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMCommonMiddlewaresModule, providers: [
|
|
5169
5431
|
provideCommandMiddleware([commandMessageToastMiddleware, commandRefreshMiddleware]),
|
|
5170
5432
|
] }); }
|
|
5171
5433
|
}
|
|
5172
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
5434
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMCommonMiddlewaresModule, decorators: [{
|
|
5173
5435
|
type: NgModule,
|
|
5174
5436
|
args: [{
|
|
5175
5437
|
providers: [
|
|
@@ -5310,19 +5572,7 @@ class AXMMenuProvider {
|
|
|
5310
5572
|
},
|
|
5311
5573
|
]);
|
|
5312
5574
|
}
|
|
5313
|
-
|
|
5314
|
-
if (!aiManagementConfigMenu.exists) {
|
|
5315
|
-
context.find(AXPCommonMenuKeys.Configuration).addItems([
|
|
5316
|
-
{
|
|
5317
|
-
name: AXPCommonMenuKeys.AiManagementConfig,
|
|
5318
|
-
priority: 8941,
|
|
5319
|
-
text: '@general:menus.ai-management.title',
|
|
5320
|
-
icon: 'fa-light fa-robot',
|
|
5321
|
-
type: 'menu',
|
|
5322
|
-
children: [],
|
|
5323
|
-
},
|
|
5324
|
-
]);
|
|
5325
|
-
}
|
|
5575
|
+
// Intelligence config shell is owned by ai-management (Platform Console feature policy).
|
|
5326
5576
|
const contactsMenu = context.find(AXPCommonMenuKeys.Contacts);
|
|
5327
5577
|
if (!contactsMenu.exists) {
|
|
5328
5578
|
context.addItems([
|
|
@@ -5376,6 +5626,19 @@ class AXMMenuProvider {
|
|
|
5376
5626
|
},
|
|
5377
5627
|
]);
|
|
5378
5628
|
}
|
|
5629
|
+
const administrationMonitoringMenu = context.find(AXPCommonMenuKeys.Monitoring);
|
|
5630
|
+
if (!administrationMonitoringMenu.exists) {
|
|
5631
|
+
context.find(AXPCommonMenuKeys.Administration).addItems([
|
|
5632
|
+
{
|
|
5633
|
+
name: AXPCommonMenuKeys.Monitoring,
|
|
5634
|
+
priority: 12,
|
|
5635
|
+
text: '@general:menus.monitoring.title',
|
|
5636
|
+
icon: 'fa-light fa-chart-line',
|
|
5637
|
+
type: 'menu',
|
|
5638
|
+
children: [],
|
|
5639
|
+
},
|
|
5640
|
+
]);
|
|
5641
|
+
}
|
|
5379
5642
|
const administrationWorkflowsMenu = context.find(AXPCommonMenuKeys.Workflows);
|
|
5380
5643
|
if (!administrationWorkflowsMenu.exists) {
|
|
5381
5644
|
context.find(AXPCommonMenuKeys.Administration).addItems([
|
|
@@ -5455,14 +5718,83 @@ class AXMMenuProvider {
|
|
|
5455
5718
|
}
|
|
5456
5719
|
}
|
|
5457
5720
|
|
|
5721
|
+
//#region ----- Common / version history settings -----
|
|
5458
5722
|
class AXMSettingProvider {
|
|
5459
|
-
async provide(
|
|
5460
|
-
|
|
5723
|
+
async provide(context) {
|
|
5724
|
+
const retentionVisibility = `{{ context.eval('${AXPVersionHistorySettings.RetentionEnabled}') }}`;
|
|
5725
|
+
context
|
|
5726
|
+
.addGroup('version-history', '@common:version-history.settings.group.title', '@common:version-history.settings.group.description', 'fa-light fa-clock-rotate-left', undefined, 920)
|
|
5727
|
+
.addSection('retention', '@common:version-history.settings.retention.title', '@common:version-history.settings.retention.description')
|
|
5728
|
+
.addSetting({
|
|
5729
|
+
key: AXPVersionHistorySettings.RetentionEnabled,
|
|
5730
|
+
title: '@common:version-history.settings.retention.items.enabled.title',
|
|
5731
|
+
description: '@common:version-history.settings.retention.items.enabled.description',
|
|
5732
|
+
scope: 'P',
|
|
5733
|
+
overridableAt: [],
|
|
5734
|
+
isInherited: false,
|
|
5735
|
+
defaultValue: AXP_VERSION_HISTORY_SETTING_DEFAULTS[AXPVersionHistorySettings.RetentionEnabled],
|
|
5736
|
+
widget: { type: AXPWidgetsList.Editors.ToggleSwitch },
|
|
5737
|
+
})
|
|
5738
|
+
.addSetting({
|
|
5739
|
+
key: AXPVersionHistorySettings.RetentionPeriodDays,
|
|
5740
|
+
title: '@common:version-history.settings.retention.items.period.title',
|
|
5741
|
+
description: '@common:version-history.settings.retention.items.period.description',
|
|
5742
|
+
scope: 'P',
|
|
5743
|
+
overridableAt: [],
|
|
5744
|
+
isInherited: false,
|
|
5745
|
+
defaultValue: AXP_VERSION_HISTORY_SETTING_DEFAULTS[AXPVersionHistorySettings.RetentionPeriodDays],
|
|
5746
|
+
widget: {
|
|
5747
|
+
type: AXPWidgetsList.Editors.NumberBox,
|
|
5748
|
+
options: { minValue: 1, maxValue: 3650, visibility: retentionVisibility },
|
|
5749
|
+
},
|
|
5750
|
+
validationRules: [{ rule: 'required' }],
|
|
5751
|
+
})
|
|
5752
|
+
.addSetting({
|
|
5753
|
+
key: AXPVersionHistorySettings.RetentionBatchSize,
|
|
5754
|
+
title: '@common:version-history.settings.retention.items.batch-size.title',
|
|
5755
|
+
description: '@common:version-history.settings.retention.items.batch-size.description',
|
|
5756
|
+
scope: 'P',
|
|
5757
|
+
overridableAt: [],
|
|
5758
|
+
isInherited: false,
|
|
5759
|
+
defaultValue: AXP_VERSION_HISTORY_SETTING_DEFAULTS[AXPVersionHistorySettings.RetentionBatchSize],
|
|
5760
|
+
widget: {
|
|
5761
|
+
type: AXPWidgetsList.Editors.NumberBox,
|
|
5762
|
+
options: { minValue: 1, maxValue: 5000, visibility: retentionVisibility },
|
|
5763
|
+
},
|
|
5764
|
+
validationRules: [{ rule: 'required' }],
|
|
5765
|
+
})
|
|
5766
|
+
.addSetting({
|
|
5767
|
+
key: AXPVersionHistorySettings.RetentionPurgeCron,
|
|
5768
|
+
title: '@common:version-history.settings.retention.items.purge-cron.title',
|
|
5769
|
+
description: '@common:version-history.settings.retention.items.purge-cron.description',
|
|
5770
|
+
scope: 'P',
|
|
5771
|
+
overridableAt: [],
|
|
5772
|
+
isInherited: false,
|
|
5773
|
+
defaultValue: AXP_VERSION_HISTORY_SETTING_DEFAULTS[AXPVersionHistorySettings.RetentionPurgeCron],
|
|
5774
|
+
widget: {
|
|
5775
|
+
type: AXPWidgetsList.Editors.TextBox,
|
|
5776
|
+
options: { visibility: retentionVisibility },
|
|
5777
|
+
},
|
|
5778
|
+
})
|
|
5779
|
+
.endSection()
|
|
5780
|
+
.addSection('capture', '@common:version-history.settings.capture.title', '@common:version-history.settings.capture.description')
|
|
5781
|
+
.addSetting({
|
|
5782
|
+
key: AXPVersionHistorySettings.SkipEmptyPatches,
|
|
5783
|
+
title: '@common:version-history.settings.capture.items.skip-empty.title',
|
|
5784
|
+
description: '@common:version-history.settings.capture.items.skip-empty.description',
|
|
5785
|
+
scope: 'P',
|
|
5786
|
+
overridableAt: [],
|
|
5787
|
+
isInherited: false,
|
|
5788
|
+
defaultValue: AXP_VERSION_HISTORY_SETTING_DEFAULTS[AXPVersionHistorySettings.SkipEmptyPatches],
|
|
5789
|
+
widget: { type: AXPWidgetsList.Editors.ToggleSwitch },
|
|
5790
|
+
})
|
|
5791
|
+
.endSection()
|
|
5792
|
+
.endGroup();
|
|
5461
5793
|
}
|
|
5462
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
5463
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
5794
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMSettingProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
5795
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMSettingProvider }); }
|
|
5464
5796
|
}
|
|
5465
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
5797
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMSettingProvider, decorators: [{
|
|
5466
5798
|
type: Injectable
|
|
5467
5799
|
}] });
|
|
5468
5800
|
|
|
@@ -5639,10 +5971,10 @@ class AXCAssignmentMultiSourceDefinitionProvider {
|
|
|
5639
5971
|
};
|
|
5640
5972
|
context.addDefinition(definition);
|
|
5641
5973
|
}
|
|
5642
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
5643
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
5974
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXCAssignmentMultiSourceDefinitionProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
5975
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXCAssignmentMultiSourceDefinitionProvider }); }
|
|
5644
5976
|
}
|
|
5645
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
5977
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXCAssignmentMultiSourceDefinitionProvider, decorators: [{
|
|
5646
5978
|
type: Injectable
|
|
5647
5979
|
}] });
|
|
5648
5980
|
|
|
@@ -5674,18 +6006,18 @@ class AXPCommonCatalogScopeDefinitionProvider {
|
|
|
5674
6006
|
},
|
|
5675
6007
|
];
|
|
5676
6008
|
}
|
|
5677
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
5678
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
6009
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPCommonCatalogScopeDefinitionProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
6010
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPCommonCatalogScopeDefinitionProvider }); }
|
|
5679
6011
|
}
|
|
5680
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
6012
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPCommonCatalogScopeDefinitionProvider, decorators: [{
|
|
5681
6013
|
type: Injectable
|
|
5682
6014
|
}] });
|
|
5683
6015
|
|
|
5684
6016
|
//#region ---- Platform Imports ----
|
|
5685
6017
|
//#endregion
|
|
5686
6018
|
class AXMCommonModule {
|
|
5687
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
5688
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
6019
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMCommonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6020
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: AXMCommonModule, imports: [
|
|
5689
6021
|
//#region ---- Extension & System Plugins ----
|
|
5690
6022
|
AXPCategoryModule,
|
|
5691
6023
|
AXPCatalogScopePluginModule,
|
|
@@ -5722,7 +6054,13 @@ class AXMCommonModule {
|
|
|
5722
6054
|
//#region ---- Platform Modules ----
|
|
5723
6055
|
AXPWidgetsModule,
|
|
5724
6056
|
AXMCommonMiddlewaresModule] }); }
|
|
5725
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
6057
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMCommonModule, providers: [
|
|
6058
|
+
//#region ---- Permission → module map (edition filtering) ----
|
|
6059
|
+
{
|
|
6060
|
+
provide: AXP_PERMISSION_MODULES_RESOLVER,
|
|
6061
|
+
useValue: resolvePermissionModules,
|
|
6062
|
+
},
|
|
6063
|
+
//#endregion
|
|
5726
6064
|
//#region ---- Menu Provider ----
|
|
5727
6065
|
{
|
|
5728
6066
|
provide: AXP_MENU_PROVIDER,
|
|
@@ -5813,7 +6151,7 @@ class AXMCommonModule {
|
|
|
5813
6151
|
provideCommandSetups([
|
|
5814
6152
|
{
|
|
5815
6153
|
key: 'common.get_current_time',
|
|
5816
|
-
command: () => import('./acorex-platform-module-common-client-get-current-time.command-
|
|
6154
|
+
command: () => import('./acorex-platform-module-common-client-get-current-time.command-Ck_SC5Bu.mjs').then((m) => m.CommonGetCurrentTimeCommand),
|
|
5817
6155
|
},
|
|
5818
6156
|
]),
|
|
5819
6157
|
//#endregion
|
|
@@ -5855,7 +6193,7 @@ class AXMCommonModule {
|
|
|
5855
6193
|
AXPWidgetsModule,
|
|
5856
6194
|
AXMCommonMiddlewaresModule] }); }
|
|
5857
6195
|
}
|
|
5858
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
6196
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMCommonModule, decorators: [{
|
|
5859
6197
|
type: NgModule,
|
|
5860
6198
|
args: [{
|
|
5861
6199
|
imports: [
|
|
@@ -5900,6 +6238,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
5900
6238
|
exports: [],
|
|
5901
6239
|
declarations: [],
|
|
5902
6240
|
providers: [
|
|
6241
|
+
//#region ---- Permission → module map (edition filtering) ----
|
|
6242
|
+
{
|
|
6243
|
+
provide: AXP_PERMISSION_MODULES_RESOLVER,
|
|
6244
|
+
useValue: resolvePermissionModules,
|
|
6245
|
+
},
|
|
6246
|
+
//#endregion
|
|
5903
6247
|
//#region ---- Menu Provider ----
|
|
5904
6248
|
{
|
|
5905
6249
|
provide: AXP_MENU_PROVIDER,
|
|
@@ -5990,7 +6334,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
5990
6334
|
provideCommandSetups([
|
|
5991
6335
|
{
|
|
5992
6336
|
key: 'common.get_current_time',
|
|
5993
|
-
command: () => import('./acorex-platform-module-common-client-get-current-time.command-
|
|
6337
|
+
command: () => import('./acorex-platform-module-common-client-get-current-time.command-Ck_SC5Bu.mjs').then((m) => m.CommonGetCurrentTimeCommand),
|
|
5994
6338
|
},
|
|
5995
6339
|
]),
|
|
5996
6340
|
//#endregion
|
|
@@ -6002,7 +6346,6 @@ const AXP_GLOBAL_SEARCH_CONFIG_TOKEN = new InjectionToken('AXP_GLOBAL_SEARCH_CON
|
|
|
6002
6346
|
|
|
6003
6347
|
/**
|
|
6004
6348
|
* Opens the global search popup and executes the command selected by the user.
|
|
6005
|
-
* Opens the global search popup and runs the selected command.
|
|
6006
6349
|
*/
|
|
6007
6350
|
class AXPGlobalSearchCommand {
|
|
6008
6351
|
constructor() {
|
|
@@ -6011,14 +6354,14 @@ class AXPGlobalSearchCommand {
|
|
|
6011
6354
|
this.config = inject(AXP_GLOBAL_SEARCH_CONFIG_TOKEN);
|
|
6012
6355
|
}
|
|
6013
6356
|
async execute(input) {
|
|
6014
|
-
const
|
|
6357
|
+
const text = pickInputOrOptionsField(input, 'text');
|
|
6015
6358
|
const component = await this.config.window();
|
|
6016
6359
|
const popup = await this.popupService.open(component, {
|
|
6017
6360
|
title: 'Search...',
|
|
6018
6361
|
size: 'fit',
|
|
6019
6362
|
closeOnBackdropClick: true,
|
|
6020
6363
|
data: {
|
|
6021
|
-
text
|
|
6364
|
+
text,
|
|
6022
6365
|
},
|
|
6023
6366
|
header: false,
|
|
6024
6367
|
});
|
|
@@ -6030,19 +6373,12 @@ class AXPGlobalSearchCommand {
|
|
|
6030
6373
|
await this.commandExecutor.execute(commandName, commandOptions);
|
|
6031
6374
|
}
|
|
6032
6375
|
}
|
|
6033
|
-
return { success: true };
|
|
6034
|
-
}
|
|
6035
|
-
normalizeInput(input) {
|
|
6036
|
-
const ctx = input.__context__;
|
|
6037
|
-
const options = input.options ?? ctx?.options ?? {};
|
|
6038
|
-
return {
|
|
6039
|
-
text: input.text ?? options.text,
|
|
6040
|
-
};
|
|
6376
|
+
return { success: true, kind: 'object', data: undefined };
|
|
6041
6377
|
}
|
|
6042
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
6043
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
6378
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPGlobalSearchCommand, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
6379
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPGlobalSearchCommand, providedIn: 'root' }); }
|
|
6044
6380
|
}
|
|
6045
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
6381
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPGlobalSearchCommand, decorators: [{
|
|
6046
6382
|
type: Injectable,
|
|
6047
6383
|
args: [{ providedIn: 'root' }]
|
|
6048
6384
|
}] });
|
|
@@ -6062,7 +6398,8 @@ class AXPGlobalSearchSlotComponent {
|
|
|
6062
6398
|
this.destroyRef = inject(DestroyRef);
|
|
6063
6399
|
this.tabNavigation = inject(AXPTabNavigationService);
|
|
6064
6400
|
this.searchShortcutKeys = chordToKbdItemKeys('ctrl+k');
|
|
6065
|
-
this.compactSearch = computed(() => this.tabNavigation.effectiveMode() === 'tabular',
|
|
6401
|
+
this.compactSearch = computed(() => this.tabNavigation.effectiveMode() === 'tabular', /* @ts-ignore */
|
|
6402
|
+
...(ngDevMode ? [{ debugName: "compactSearch" }] : /* istanbul ignore next */ []));
|
|
6066
6403
|
this.shortcutRegistry.register({
|
|
6067
6404
|
owner: this.destroyRef,
|
|
6068
6405
|
id: 'global-search',
|
|
@@ -6085,8 +6422,8 @@ class AXPGlobalSearchSlotComponent {
|
|
|
6085
6422
|
async startSearch() {
|
|
6086
6423
|
await this.commandExecutor.execute(AXPCommonCommandKeys.GlobalSearch.Open, {});
|
|
6087
6424
|
}
|
|
6088
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
6089
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
6425
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPGlobalSearchSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6426
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPGlobalSearchSlotComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: `
|
|
6090
6427
|
@if (compactSearch()) {
|
|
6091
6428
|
<ax-button
|
|
6092
6429
|
color="primary"
|
|
@@ -6122,7 +6459,7 @@ class AXPGlobalSearchSlotComponent {
|
|
|
6122
6459
|
}
|
|
6123
6460
|
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: AXKBDComponent, selector: "ax-kbd", inputs: ["look"] }, { kind: "component", type: AXKBDItemComponent, selector: "ax-kbd-item", inputs: ["keys", "join", "look"], outputs: ["lookChange"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i4.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
6124
6461
|
}
|
|
6125
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
6462
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPGlobalSearchSlotComponent, decorators: [{
|
|
6126
6463
|
type: Component,
|
|
6127
6464
|
args: [{
|
|
6128
6465
|
template: `
|
|
@@ -6173,13 +6510,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
6173
6510
|
}], ctorParameters: () => [] });
|
|
6174
6511
|
|
|
6175
6512
|
class AXPGlobalSearchModule {
|
|
6176
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
6177
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
6178
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
6513
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPGlobalSearchModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6514
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: AXPGlobalSearchModule, imports: [i1$3.AXPComponentSlotModule] }); }
|
|
6515
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPGlobalSearchModule, providers: [
|
|
6179
6516
|
{
|
|
6180
6517
|
provide: AXP_GLOBAL_SEARCH_CONFIG_TOKEN,
|
|
6181
6518
|
useValue: {
|
|
6182
|
-
window: () => import('./acorex-platform-module-common-client-search-popup.component-
|
|
6519
|
+
window: () => import('./acorex-platform-module-common-client-search-popup.component-DH0OQYoQ.mjs').then((c) => c.AXPGlobalSearchPopupComponent),
|
|
6183
6520
|
},
|
|
6184
6521
|
},
|
|
6185
6522
|
AXPGlobalSearchCommand,
|
|
@@ -6200,7 +6537,7 @@ class AXPGlobalSearchModule {
|
|
|
6200
6537
|
],
|
|
6201
6538
|
})] }); }
|
|
6202
6539
|
}
|
|
6203
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
6540
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPGlobalSearchModule, decorators: [{
|
|
6204
6541
|
type: NgModule,
|
|
6205
6542
|
args: [{
|
|
6206
6543
|
imports: [
|
|
@@ -6221,7 +6558,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
6221
6558
|
{
|
|
6222
6559
|
provide: AXP_GLOBAL_SEARCH_CONFIG_TOKEN,
|
|
6223
6560
|
useValue: {
|
|
6224
|
-
window: () => import('./acorex-platform-module-common-client-search-popup.component-
|
|
6561
|
+
window: () => import('./acorex-platform-module-common-client-search-popup.component-DH0OQYoQ.mjs').then((c) => c.AXPGlobalSearchPopupComponent),
|
|
6225
6562
|
},
|
|
6226
6563
|
},
|
|
6227
6564
|
AXPGlobalSearchCommand,
|
|
@@ -6243,20 +6580,30 @@ class AXPGlobalSearchViewModel {
|
|
|
6243
6580
|
};
|
|
6244
6581
|
this.searchService = inject(AXPSearchService);
|
|
6245
6582
|
this.settingsService = inject(AXPSettingsService);
|
|
6246
|
-
this._text = signal(null,
|
|
6583
|
+
this._text = signal(null, /* @ts-ignore */
|
|
6584
|
+
...(ngDevMode ? [{ debugName: "_text" }] : /* istanbul ignore next */ []));
|
|
6247
6585
|
this.text = this._text.asReadonly();
|
|
6248
|
-
this._results = signal([],
|
|
6586
|
+
this._results = signal([], /* @ts-ignore */
|
|
6587
|
+
...(ngDevMode ? [{ debugName: "_results" }] : /* istanbul ignore next */ []));
|
|
6249
6588
|
this.results = this._results.asReadonly();
|
|
6250
|
-
this._isBusy = signal(false,
|
|
6589
|
+
this._isBusy = signal(false, /* @ts-ignore */
|
|
6590
|
+
...(ngDevMode ? [{ debugName: "_isBusy" }] : /* istanbul ignore next */ []));
|
|
6251
6591
|
this.isBusy = this._isBusy.asReadonly();
|
|
6252
|
-
this.isEmpty = computed(() => this.text() && this.results().length == 0,
|
|
6253
|
-
|
|
6254
|
-
this.
|
|
6255
|
-
|
|
6256
|
-
this.
|
|
6257
|
-
|
|
6592
|
+
this.isEmpty = computed(() => this.text() && this.results().length == 0, /* @ts-ignore */
|
|
6593
|
+
...(ngDevMode ? [{ debugName: "isEmpty" }] : /* istanbul ignore next */ []));
|
|
6594
|
+
this.isValid = computed(() => (this.text()?.length ?? 0) > 2, /* @ts-ignore */
|
|
6595
|
+
...(ngDevMode ? [{ debugName: "isValid" }] : /* istanbul ignore next */ []));
|
|
6596
|
+
this.isStart = computed(() => !this.isEmpty() && this.results().length == 0, /* @ts-ignore */
|
|
6597
|
+
...(ngDevMode ? [{ debugName: "isStart" }] : /* istanbul ignore next */ []));
|
|
6598
|
+
this.isWelcome = computed(() => this.isStart() && this.pinnedItems().length == 0 && this.recentItems().length == 0, /* @ts-ignore */
|
|
6599
|
+
...(ngDevMode ? [{ debugName: "isWelcome" }] : /* istanbul ignore next */ []));
|
|
6600
|
+
this._recentItems = signal([], /* @ts-ignore */
|
|
6601
|
+
...(ngDevMode ? [{ debugName: "_recentItems" }] : /* istanbul ignore next */ []));
|
|
6602
|
+
this._pinnedItems = signal([], /* @ts-ignore */
|
|
6603
|
+
...(ngDevMode ? [{ debugName: "_pinnedItems" }] : /* istanbul ignore next */ []));
|
|
6258
6604
|
this.pinnedItems = this._pinnedItems.asReadonly();
|
|
6259
|
-
this.recentItems = computed(() => this.getTopRecentItems(),
|
|
6605
|
+
this.recentItems = computed(() => this.getTopRecentItems(), /* @ts-ignore */
|
|
6606
|
+
...(ngDevMode ? [{ debugName: "recentItems" }] : /* istanbul ignore next */ []));
|
|
6260
6607
|
this.onItemSelected = new Subject();
|
|
6261
6608
|
this.loadSettings();
|
|
6262
6609
|
}
|
|
@@ -6354,7 +6701,8 @@ class AXPResourceAppointmentPageComponent extends AXPPageLayoutBaseComponent {
|
|
|
6354
6701
|
//#endregion
|
|
6355
6702
|
//#region ---- Route / Params ----
|
|
6356
6703
|
/** Active provider name from route param 'provider-name'. */
|
|
6357
|
-
this.providerName = signal(undefined,
|
|
6704
|
+
this.providerName = signal(undefined, /* @ts-ignore */
|
|
6705
|
+
...(ngDevMode ? [{ debugName: "providerName" }] : /* istanbul ignore next */ []));
|
|
6358
6706
|
}
|
|
6359
6707
|
//#endregion
|
|
6360
6708
|
//#region ---- Computed / Config ----
|
|
@@ -6406,15 +6754,15 @@ class AXPResourceAppointmentPageComponent extends AXPPageLayoutBaseComponent {
|
|
|
6406
6754
|
async getPageBreadcrumbs() {
|
|
6407
6755
|
return this.config?.breadcrumbs ?? [];
|
|
6408
6756
|
}
|
|
6409
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
6410
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
6757
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPResourceAppointmentPageComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
6758
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: AXPResourceAppointmentPageComponent, isStandalone: true, selector: "axp-resource-appointment-page", providers: [
|
|
6411
6759
|
{
|
|
6412
6760
|
provide: AXPPageLayoutBase,
|
|
6413
6761
|
useExisting: AXPResourceAppointmentPageComponent,
|
|
6414
6762
|
},
|
|
6415
|
-
], usesInheritance: true, ngImport: i0, template: "<axp-page-layout>\n <!-- <axp-layout-start-side class=\"border-e lightest-surface h-full min-w-0\">\n <axp-layout-header class=\"flex flex-row! items-center justify-center gap-2 border-b\">\n <span class=\"text-sm font-medium\">\n {{ title() || ('@general:terms.resource-appointment' | translate | async) || 'Resource appointment' }}\n </span>\n </axp-layout-header>\n </axp-layout-start-side> -->\n\n <axp-page-content class=\"flex flex-col min-h-0\">\n <axp-resource-appointment\n [showResourceHeaders]=\"showResourceHeaders\"\n [showUnassignedAppointments]=\"showUnassignedAppointments\"\n [providerName]=\"providerName()\"\n class=\"axp-resource-appointment-page__board flex-1 min-h-0\"\n />\n </axp-page-content>\n</axp-page-layout>\n", styles: [":host{display:block;height:100%}.axp-resource-appointment-page .axp-resource-appointment-page__board{display:block}\n/*! tailwindcss v4.3.
|
|
6763
|
+
], usesInheritance: true, ngImport: i0, template: "<axp-page-layout>\n <!-- <axp-layout-start-side class=\"border-e lightest-surface h-full min-w-0\">\n <axp-layout-header class=\"flex flex-row! items-center justify-center gap-2 border-b\">\n <span class=\"text-sm font-medium\">\n {{ title() || ('@general:terms.resource-appointment' | translate | async) || 'Resource appointment' }}\n </span>\n </axp-layout-header>\n </axp-layout-start-side> -->\n\n <axp-page-content class=\"flex flex-col min-h-0\">\n <axp-resource-appointment\n [showResourceHeaders]=\"showResourceHeaders\"\n [showUnassignedAppointments]=\"showUnassignedAppointments\"\n [providerName]=\"providerName()\"\n class=\"axp-resource-appointment-page__board flex-1 min-h-0\"\n />\n </axp-page-content>\n</axp-page-layout>\n", styles: [":host{display:block;height:100%}.axp-resource-appointment-page .axp-resource-appointment-page__board{display:block}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: AXTranslationModule }, { kind: "component", type: AXPPageLayoutComponent, selector: "axp-page-layout" }, { kind: "component", type: AXPThemeLayoutBlockComponent, selector: " axp-page-content, axp-page-footer-container, axp-page-footer, axp-page-header, axp-page-header-container, axp-page-toolbar, axp-layout-content, axp-layout-page-content, axp-layout-sections, axp-layout-body, axp-layout-page-body, axp-layout-prefix, axp-layout-suffix, axp-layout-title-bar, axp-layout-title, axp-layout-title-actions, axp-layout-nav-button, axp-layout-description, axp-layout-breadcrumbs, axp-layout-list-action, " }, { kind: "component", type: AXPResourceAppointmentComponent, selector: "axp-resource-appointment", inputs: ["showResourceHeaders", "showUnassignedAppointments", "providerName"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
6416
6764
|
}
|
|
6417
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
6765
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPResourceAppointmentPageComponent, decorators: [{
|
|
6418
6766
|
type: Component,
|
|
6419
6767
|
args: [{ selector: 'axp-resource-appointment-page', imports: [
|
|
6420
6768
|
AXTranslationModule,
|
|
@@ -6426,7 +6774,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
6426
6774
|
provide: AXPPageLayoutBase,
|
|
6427
6775
|
useExisting: AXPResourceAppointmentPageComponent,
|
|
6428
6776
|
},
|
|
6429
|
-
], template: "<axp-page-layout>\n <!-- <axp-layout-start-side class=\"border-e lightest-surface h-full min-w-0\">\n <axp-layout-header class=\"flex flex-row! items-center justify-center gap-2 border-b\">\n <span class=\"text-sm font-medium\">\n {{ title() || ('@general:terms.resource-appointment' | translate | async) || 'Resource appointment' }}\n </span>\n </axp-layout-header>\n </axp-layout-start-side> -->\n\n <axp-page-content class=\"flex flex-col min-h-0\">\n <axp-resource-appointment\n [showResourceHeaders]=\"showResourceHeaders\"\n [showUnassignedAppointments]=\"showUnassignedAppointments\"\n [providerName]=\"providerName()\"\n class=\"axp-resource-appointment-page__board flex-1 min-h-0\"\n />\n </axp-page-content>\n</axp-page-layout>\n", styles: [":host{display:block;height:100%}.axp-resource-appointment-page .axp-resource-appointment-page__board{display:block}\n/*! tailwindcss v4.3.
|
|
6777
|
+
], template: "<axp-page-layout>\n <!-- <axp-layout-start-side class=\"border-e lightest-surface h-full min-w-0\">\n <axp-layout-header class=\"flex flex-row! items-center justify-center gap-2 border-b\">\n <span class=\"text-sm font-medium\">\n {{ title() || ('@general:terms.resource-appointment' | translate | async) || 'Resource appointment' }}\n </span>\n </axp-layout-header>\n </axp-layout-start-side> -->\n\n <axp-page-content class=\"flex flex-col min-h-0\">\n <axp-resource-appointment\n [showResourceHeaders]=\"showResourceHeaders\"\n [showUnassignedAppointments]=\"showUnassignedAppointments\"\n [providerName]=\"providerName()\"\n class=\"axp-resource-appointment-page__board flex-1 min-h-0\"\n />\n </axp-page-content>\n</axp-page-layout>\n", styles: [":host{display:block;height:100%}.axp-resource-appointment-page .axp-resource-appointment-page__board{display:block}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"] }]
|
|
6430
6778
|
}] });
|
|
6431
6779
|
|
|
6432
6780
|
/**
|
|
@@ -6434,4 +6782,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
6434
6782
|
*/
|
|
6435
6783
|
|
|
6436
6784
|
export { statusPlugin as $, AXP_ENTITY_ARCHIVE_OVERRIDES as A, StateStatusProvider as B, CommonManifest as C, VariableNameValidationRule as D, aggregateVersionHistoryBarChartItems as E, archivePlugin as F, buildEntityFieldHistoryLineChartSeries as G, HISTORY_PAGE_COMPONENT_KEY as H, buildProductBasePriceHistoryLineChartSeries as I, derivedNamePlugin as J, disablePlugin as K, getActiveStatuses as L, getFinalStatuses as M, getInitialStatuses as N, getStatusByName as O, getTransitionsFromStatus as P, getTransitionsToStatus as Q, historyPlugin as R, ShowVersionHistoryPopupCommand as S, TaskStatusProvider as T, UniqueValidationRule as U, VARIABLE_NAME_VALIDATION_PATTERN as V, humanizeChange as W, isValidTransition as X, mapChangeType as Y, mapOpToAction as Z, resolvePathKey as _, AXPGlobalSearchViewModel as a, uniqueFieldsPlugin as a0, AXMCommonModule as b, AXMMenuProvider as c, AXMSettingProvider as d, AXMVersionHistoryPageComponent as e, AXPArchivePluginModule as f, AXPCommonFeatureDefinitionProvider as g, AXPDerivedNamePluginModule as h, isValidVariableName as i, AXPDisablePluginModule as j, AXPGlobalSearchModule as k, AXPHistoryAuditInfoWidget as l, AXPHistoryModule as m, AXPLockEntityCommand as n, openActivityLogVersionCompare as o, AXPResourceAppointmentPageComponent as p, AXPStatusPluginModule as q, AXPUniqueFieldsPluginModule as r, AXPUnlockEntityCommand as s, toVariableName as t, AXPValidationRulesModule as u, versionEntriesToActivityLogs as v, AXP_GLOBAL_SEARCH_CONFIG_TOKEN as w, AXP_RESOURCE_APPOINTMENT_PAGE_CONFIG as x, ApprovalStatusProvider as y, AtLeastOneOfValidationRule as z };
|
|
6437
|
-
//# sourceMappingURL=acorex-platform-module-common-client-acorex-platform-module-common-client-
|
|
6785
|
+
//# sourceMappingURL=acorex-platform-module-common-client-acorex-platform-module-common-client-CkeshVWo.mjs.map
|