@acorex-platform/module-application-management-client 0.0.18 → 0.0.21
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-application-management-client-application-status.provider-DqPlbWuW.mjs → acorex-platform-module-application-management-client-application-status.provider-Bz6cknzi.mjs} +4 -4
- package/fesm2022/{acorex-platform-module-application-management-client-application-status.provider-DqPlbWuW.mjs.map → acorex-platform-module-application-management-client-application-status.provider-Bz6cknzi.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-application-management-client-assign-features.command-R7y4QKhC.mjs → acorex-platform-module-application-management-client-assign-features.command-BG986HtP.mjs} +23 -21
- package/fesm2022/acorex-platform-module-application-management-client-assign-features.command-BG986HtP.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-application-management-client-contracts.mjs +79 -1930
- package/fesm2022/acorex-platform-module-application-management-client-contracts.mjs.map +1 -1
- package/fesm2022/{acorex-platform-module-application-management-client-feature-definition.provider-Depetn50.mjs → acorex-platform-module-application-management-client-feature-definition.provider-V-wfUEZf.mjs} +4 -4
- package/fesm2022/{acorex-platform-module-application-management-client-feature-definition.provider-Depetn50.mjs.map → acorex-platform-module-application-management-client-feature-definition.provider-V-wfUEZf.mjs.map} +1 -1
- package/fesm2022/acorex-platform-module-application-management-client-features-editor.component-B5yrn7eX.mjs +584 -0
- package/fesm2022/acorex-platform-module-application-management-client-features-editor.component-B5yrn7eX.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-application-management-client-features-widget-column.component-CiBGmw6I.mjs → acorex-platform-module-application-management-client-features-widget-column.component-C2OEG0LL.mjs} +7 -8
- package/fesm2022/acorex-platform-module-application-management-client-features-widget-column.component-C2OEG0LL.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-application-management-client-features-widget-designer.component-nStj9BAw.mjs → acorex-platform-module-application-management-client-features-widget-designer.component-CMJwcY5f.mjs} +4 -4
- package/fesm2022/{acorex-platform-module-application-management-client-features-widget-designer.component-nStj9BAw.mjs.map → acorex-platform-module-application-management-client-features-widget-designer.component-CMJwcY5f.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-application-management-client-features-widget-edit.component-BdHYm0Yr.mjs → acorex-platform-module-application-management-client-features-widget-edit.component-D_IBCjfM.mjs} +5 -5
- package/fesm2022/{acorex-platform-module-application-management-client-features-widget-edit.component-BdHYm0Yr.mjs.map → acorex-platform-module-application-management-client-features-widget-edit.component-D_IBCjfM.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-application-management-client-features-widget-print.component-C6Z9uzRr.mjs → acorex-platform-module-application-management-client-features-widget-print.component-CkTEfzcY.mjs} +4 -4
- package/fesm2022/{acorex-platform-module-application-management-client-features-widget-print.component-C6Z9uzRr.mjs.map → acorex-platform-module-application-management-client-features-widget-print.component-CkTEfzcY.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-application-management-client-features-widget-view.component-ysM1jD08.mjs → acorex-platform-module-application-management-client-features-widget-view.component-yKbBTqym.mjs} +12 -8
- package/fesm2022/{acorex-platform-module-application-management-client-features-widget-view.component-ysM1jD08.mjs.map → acorex-platform-module-application-management-client-features-widget-view.component-yKbBTqym.mjs.map} +1 -1
- package/fesm2022/acorex-platform-module-application-management-client-permission-definition.provider-MTs9VAE_.mjs +44 -0
- package/fesm2022/acorex-platform-module-application-management-client-permission-definition.provider-MTs9VAE_.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-application-management-client.mjs +256 -217
- package/fesm2022/acorex-platform-module-application-management-client.mjs.map +1 -1
- package/package.json +1 -1
- package/types/acorex-platform-module-application-management-client-contracts.d.ts +166 -51
- package/types/acorex-platform-module-application-management-client.d.ts +9 -17
- package/fesm2022/acorex-platform-module-application-management-client-assign-features.command-R7y4QKhC.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-application-management-client-features-editor.component-BiYXAqYJ.mjs +0 -548
- package/fesm2022/acorex-platform-module-application-management-client-features-editor.component-BiYXAqYJ.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-application-management-client-features-widget-column.component-CiBGmw6I.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-application-management-client-permission-definition.provider-Dn5WiubC.mjs +0 -32
- package/fesm2022/acorex-platform-module-application-management-client-permission-definition.provider-Dn5WiubC.mjs.map +0 -1
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { AXPSettingsService, AXP_APP_VERSION_PROVIDER,
|
|
2
|
-
import { AXPPlatformScope, AXPWidgetsCatalog } from '@acorex-platform/framework-shared/core';
|
|
1
|
+
import { AXPSettingsService, AXP_APP_VERSION_PROVIDER, AXPPlatformBrandingService, AXP_PLATFORM_BRANDING_SETTING_KEYS, AXP_EXPERIENCE_SETTINGS_GROUP, AXP_EXPERIENCE_SETTINGS_SECTIONS, AXPSearchCommandProvider, createEntityCommandOptions, AXPNavBarSlotComponent, AXP_SETTING_DEFINITION_PROVIDER, AXP_SEARCH_PROVIDER, AXP_STATUS_PROVIDERS, AXP_MENU_PROVIDER } from '@acorex-platform/framework-client/common';
|
|
3
2
|
import * as i2$2 from '@acorex-platform/framework-client/core';
|
|
4
|
-
import { objectKeyValueTransforms, AXPAppStartUpService, AXPComponentSlotModule, AXP_MODULE_MANIFEST_PROVIDER, AXP_CONTEXT_DEFINITION_PROVIDER, provideLazyProvider, AXP_FEATURE_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/core';
|
|
3
|
+
import { objectKeyValueTransforms, AXPAppStartUpService, AXP_APP_STARTUP_PRIORITY, AXPComponentSlotModule, AXP_MODULE_MANIFEST_PROVIDER, AXP_CONTEXT_DEFINITION_PROVIDER, provideLazyProvider, AXP_FEATURE_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/core';
|
|
5
4
|
import { AXPSessionService, AXP_PERMISSION_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/auth';
|
|
6
|
-
import { AXPEntityService, AXP_ENTITY_CONFIG_TOKEN
|
|
5
|
+
import { AXPEntityService, AXP_ENTITY_CONFIG_TOKEN } from '@acorex-platform/framework-client/layout/entity';
|
|
7
6
|
import { AXPCommandService, provideCommandSetups } from '@acorex-platform/framework-client/runtime';
|
|
8
7
|
import * as i0 from '@angular/core';
|
|
9
|
-
import { ChangeDetectionStrategy, Component, inject, Injectable, signal, HostListener, NgModule } from '@angular/core';
|
|
8
|
+
import { ChangeDetectionStrategy, Component, inject, Injectable, signal, DestroyRef, HostListener, NgModule } from '@angular/core';
|
|
10
9
|
import { ROUTES } from '@angular/router';
|
|
11
10
|
import { AXPopupService } from '@acorex/components/popup';
|
|
11
|
+
import { AXPPlatformScope, resolveMultiLanguageString, AXPWidgetsCatalog } from '@acorex-platform/framework-shared/core';
|
|
12
12
|
import * as i4 from '@acorex/components/button';
|
|
13
13
|
import { AXButtonModule } from '@acorex/components/button';
|
|
14
14
|
import * as i2 from '@acorex/components/check-box';
|
|
@@ -23,7 +23,7 @@ import * as i6 from '@acorex/core/translation';
|
|
|
23
23
|
import { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';
|
|
24
24
|
import * as i1$1 from '@angular/common';
|
|
25
25
|
import { CommonModule } from '@angular/common';
|
|
26
|
-
import { RootConfig, AXPApplicationInfoSettings,
|
|
26
|
+
import { RootConfig, AXPApplicationInfoSettings, AXPApplicationsPlatformPermissionKeys, AXPApplicationManagementMenuKeys } from '@acorex-platform/module-application-management-client/contracts';
|
|
27
27
|
import { defineCommand, AXP_COMMAND_DEFINITION_CATEGORY_PLATFORM } from '@acorex-platform/framework-shared/runtime';
|
|
28
28
|
import { DomSanitizer } from '@angular/platform-browser';
|
|
29
29
|
import * as i1$2 from '@acorex/components/time-line';
|
|
@@ -31,6 +31,8 @@ import { AXTimeLineModule } from '@acorex/components/time-line';
|
|
|
31
31
|
import { AXDateTimeModule } from '@acorex/core/date-time';
|
|
32
32
|
import * as i4$1 from '@acorex/core/format';
|
|
33
33
|
import { AXFormatService, AXFormatModule } from '@acorex/core/format';
|
|
34
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
35
|
+
import { merge, filter, combineLatest, distinctUntilChanged, switchMap, EMPTY, from } from 'rxjs';
|
|
34
36
|
import { AXOutlineContainerDirective } from '@acorex/cdk/outline';
|
|
35
37
|
import * as i2$1 from '@acorex/components/side-menu';
|
|
36
38
|
import { AXSideMenuModule, AXOutlineSideMenuDirective } from '@acorex/components/side-menu';
|
|
@@ -39,6 +41,7 @@ import { AXPPageLayoutBaseComponent, AXPPageLayoutComponent, AXPPageLayoutBase }
|
|
|
39
41
|
import { AXPWidgetCoreModule, AXP_WIDGET_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/layout/widget-core';
|
|
40
42
|
import { AXPWidgetGroupEnum } from '@acorex-platform/framework-shared/widget-core';
|
|
41
43
|
import { AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY } from '@acorex-platform/framework-client/layout/widgets';
|
|
44
|
+
import { AXM_APPLICATION_CONTEXT_DEFINITIONS } from '@acorex-platform/module-application-management-contracts';
|
|
42
45
|
|
|
43
46
|
class AXMNotifyAppTermComponent extends AXBasePageComponent {
|
|
44
47
|
constructor() {
|
|
@@ -52,10 +55,10 @@ class AXMNotifyAppTermComponent extends AXBasePageComponent {
|
|
|
52
55
|
send() {
|
|
53
56
|
this.close({ data: this.data });
|
|
54
57
|
}
|
|
55
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
56
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
58
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMNotifyAppTermComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
59
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXMNotifyAppTermComponent, isStandalone: true, selector: "axm-notify-app-term", usesInheritance: true, ngImport: i0, template: "@for (item of data; track $index) {\n <ax-content class=\"block px-4 py-4 font-bold\">{{ item.title }}</ax-content>\n <ax-content\n class=\"block px-4 pb-4 text-base/6\"\n [innerHTML]=\"transformContent(item.content) | safe: 'html'\"\n ></ax-content>\n}\n<ax-footer class=\"flex items-center justify-between p-2\">\n <ax-check-box [(value)]=\"isConfirm\">\n <ax-label>{{ 'agreeTerm' | translate: { scope: i18n } | async }}</ax-label>\n </ax-check-box>\n <ax-button\n (click)=\"send()\"\n [text]=\"'@general:actions.ok.title' | translate | async\"\n [disabled]=\"!isConfirm\"\n color=\"primary\"\n ></ax-button>\n</ax-footer>\n\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i1.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXCheckBoxModule }, { kind: "component", type: i2.AXCheckBoxComponent, selector: "ax-check-box", inputs: ["disabled", "tabIndex", "readonly", "color", "value", "name", "id", "isLoading", "indeterminate"], outputs: ["onBlur", "onFocus", "valueChange", "onValueChanged"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.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: i4.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: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AXSafePipe, name: "safe" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
57
60
|
}
|
|
58
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
61
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMNotifyAppTermComponent, decorators: [{
|
|
59
62
|
type: Component,
|
|
60
63
|
args: [{ selector: 'axm-notify-app-term', imports: [
|
|
61
64
|
CommonModule,
|
|
@@ -93,7 +96,7 @@ class AXMNewTermCommand {
|
|
|
93
96
|
async execute(input = []) {
|
|
94
97
|
const dataList = resolveTerms(input);
|
|
95
98
|
if (dataList.length === 0) {
|
|
96
|
-
return { success: true };
|
|
99
|
+
return { success: true, kind: 'object', data: undefined };
|
|
97
100
|
}
|
|
98
101
|
await this.popupService.open(AXMNotifyAppTermComponent, {
|
|
99
102
|
title: 'New Terms And Conditions',
|
|
@@ -103,12 +106,12 @@ class AXMNewTermCommand {
|
|
|
103
106
|
for (const term of dataList) {
|
|
104
107
|
await this.settingsService.scope(AXPPlatformScope.User).set(`is-confirm-term-${term.id}`, true);
|
|
105
108
|
}
|
|
106
|
-
return { success: true };
|
|
109
|
+
return { success: true, kind: 'object', data: undefined };
|
|
107
110
|
}
|
|
108
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
109
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
111
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMNewTermCommand, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
112
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMNewTermCommand, providedIn: 'root' }); }
|
|
110
113
|
}
|
|
111
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
114
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMNewTermCommand, decorators: [{
|
|
112
115
|
type: Injectable,
|
|
113
116
|
args: [{ providedIn: 'root' }]
|
|
114
117
|
}] });
|
|
@@ -155,12 +158,12 @@ class AXMShowReleaseNotesCommand {
|
|
|
155
158
|
await this.popupService.open(comp, {
|
|
156
159
|
title: await this.translateService.translateAsync('@application-management:application-info.menus.release-notes.title'),
|
|
157
160
|
});
|
|
158
|
-
return { success: true };
|
|
161
|
+
return { success: true, kind: 'object', data: undefined };
|
|
159
162
|
}
|
|
160
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
161
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
163
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMShowReleaseNotesCommand, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
164
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMShowReleaseNotesCommand, providedIn: 'root' }); }
|
|
162
165
|
}
|
|
163
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
166
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMShowReleaseNotesCommand, decorators: [{
|
|
164
167
|
type: Injectable,
|
|
165
168
|
args: [{ providedIn: 'root' }]
|
|
166
169
|
}] });
|
|
@@ -202,10 +205,10 @@ class AXMNotifyAppVersionComponent extends AXBasePageComponent {
|
|
|
202
205
|
send() {
|
|
203
206
|
this.close({ data: this.data, isShowAgain: !this.isShowAgain });
|
|
204
207
|
}
|
|
205
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
206
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
208
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMNotifyAppVersionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
209
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: AXMNotifyAppVersionComponent, isStandalone: true, selector: "axm-notify-app-version", usesInheritance: true, ngImport: i0, template: "<ax-content class=\"block px-4 py-4 text-base/6\" [innerHTML]=\"safeData\"></ax-content>\n<ax-footer class=\"flex items-center justify-between p-2\">\n <ax-check-box [(value)]=\"isShowAgain\">\n <ax-label>Don't Show Again</ax-label>\n </ax-check-box>\n <ax-button color=\"primary\" (click)=\"send()\" [text]=\"'@general:actions.ok.title' | translate | async\"></ax-button>\n</ax-footer>\n\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i1.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXCheckBoxModule }, { kind: "component", type: i2.AXCheckBoxComponent, selector: "ax-check-box", inputs: ["disabled", "tabIndex", "readonly", "color", "value", "name", "id", "isLoading", "indeterminate"], outputs: ["onBlur", "onFocus", "valueChange", "onValueChanged"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.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: i4.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: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
207
210
|
}
|
|
208
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
211
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMNotifyAppVersionComponent, decorators: [{
|
|
209
212
|
type: Component,
|
|
210
213
|
args: [{ selector: 'axm-notify-app-version', imports: [CommonModule, AXLabelModule, AXCheckBoxModule, AXDecoratorModule, AXButtonModule, AXTranslationModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ax-content class=\"block px-4 py-4 text-base/6\" [innerHTML]=\"safeData\"></ax-content>\n<ax-footer class=\"flex items-center justify-between p-2\">\n <ax-check-box [(value)]=\"isShowAgain\">\n <ax-label>Don't Show Again</ax-label>\n </ax-check-box>\n <ax-button color=\"primary\" (click)=\"send()\" [text]=\"'@general:actions.ok.title' | translate | async\"></ax-button>\n</ax-footer>\n\n" }]
|
|
211
214
|
}] });
|
|
@@ -217,7 +220,8 @@ class AXMListVersionComponent extends AXBasePageComponent {
|
|
|
217
220
|
this.appVersionService = this.entityService.withEntity(RootConfig.module.name, RootConfig.entities.appVersion.name).data();
|
|
218
221
|
this.formatService = inject(AXFormatService);
|
|
219
222
|
this.sanitize = inject(DomSanitizer);
|
|
220
|
-
this.versions = signal([],
|
|
223
|
+
this.versions = signal([], /* @ts-ignore */
|
|
224
|
+
...(ngDevMode ? [{ debugName: "versions" }] : /* istanbul ignore next */ []));
|
|
221
225
|
}
|
|
222
226
|
async ngOnInit() {
|
|
223
227
|
const result = await this.appVersionService.query({
|
|
@@ -234,10 +238,10 @@ class AXMListVersionComponent extends AXBasePageComponent {
|
|
|
234
238
|
}));
|
|
235
239
|
this.versions.set(mappedItems);
|
|
236
240
|
}
|
|
237
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
238
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
241
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMListVersionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
242
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXMListVersionComponent, isStandalone: true, selector: "axm-list-version", usesInheritance: true, ngImport: i0, template: "<div class=\"px-12 min-h-96\">\n <ax-time-line>\n @for (version of versions(); track version.id) {\n <ax-time-line-item [text]=\"version.title\" [isCollapsed]=\"$index == 0 ? false : true\">\n <ax-icon class=\"fa-solid fa-flag-checkered\"></ax-icon>\n <ax-content class=\"px-8 py-2 text-base/6\" [innerHtml]=\"version.content\"></ax-content>\n </ax-time-line-item>\n }\n </ax-time-line>\n</div>\n<ax-footer class=\"flex justify-end!\"\n ><ax-button\n [text]=\"'@general:actions.ok.title' | translate | async\"\n color=\"primary\"\n (onClick)=\"this.close()\"\n ></ax-button\n></ax-footer>\n\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXTimeLineModule }, { kind: "component", type: i1$2.AXTimeLineComponent, selector: "ax-time-line", inputs: ["mode"] }, { kind: "component", type: i1$2.AXTimeLineItemComponent, selector: "ax-time-line-item", inputs: ["text", "isActive", "isCollapsed"], outputs: ["isCollapsedChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.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: AXFormatModule }, { kind: "ngmodule", type: AXDateTimeModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i4.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: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
239
243
|
}
|
|
240
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
244
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMListVersionComponent, decorators: [{
|
|
241
245
|
type: Component,
|
|
242
246
|
args: [{ selector: 'axm-list-version', imports: [
|
|
243
247
|
CommonModule,
|
|
@@ -255,57 +259,64 @@ var listVersion_component = /*#__PURE__*/Object.freeze({
|
|
|
255
259
|
AXMListVersionComponent: AXMListVersionComponent
|
|
256
260
|
});
|
|
257
261
|
|
|
262
|
+
//#region ----- Imports -----
|
|
258
263
|
//#endregion
|
|
259
|
-
//#region
|
|
264
|
+
//#region ----- Component -----
|
|
260
265
|
class AXMApplicationInfoSlotComponent {
|
|
266
|
+
//#endregion
|
|
267
|
+
//#region ----- Lifecycle -----
|
|
261
268
|
constructor() {
|
|
269
|
+
//#region ----- Services & Dependencies -----
|
|
262
270
|
this.entityService = inject(AXPEntityService);
|
|
263
|
-
//#region ---- Services & Dependencies ----
|
|
264
271
|
this.versionProvider = inject(AXP_APP_VERSION_PROVIDER);
|
|
265
272
|
this.commandService = inject(AXPCommandService);
|
|
266
273
|
this.sessionService = inject(AXPSessionService);
|
|
267
274
|
this.settingsService = inject(AXPSettingsService);
|
|
268
|
-
this.
|
|
269
|
-
this.
|
|
275
|
+
this.translationService = inject(AXTranslationService);
|
|
276
|
+
this.destroyRef = inject(DestroyRef);
|
|
277
|
+
this.editionService = this.entityService
|
|
278
|
+
.withEntity(RootConfig.module.name, RootConfig.entities.edition.name)
|
|
279
|
+
.data();
|
|
280
|
+
this.applicationService = this.entityService
|
|
281
|
+
.withEntity(RootConfig.module.name, RootConfig.entities.application.name)
|
|
282
|
+
.data();
|
|
270
283
|
//#endregion
|
|
271
|
-
//#region
|
|
272
|
-
this.displayText = signal('',
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
284
|
+
//#region ----- State Signals -----
|
|
285
|
+
this.displayText = signal('', /* @ts-ignore */
|
|
286
|
+
...(ngDevMode ? [{ debugName: "displayText" }] : /* istanbul ignore next */ []));
|
|
287
|
+
merge(this.sessionService.application$, this.translationService.langChanges$)
|
|
288
|
+
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
289
|
+
.subscribe(() => {
|
|
290
|
+
void this.loadDisplayText();
|
|
291
|
+
});
|
|
292
|
+
void this.loadDisplayText();
|
|
278
293
|
}
|
|
279
294
|
//#endregion
|
|
280
|
-
//#region
|
|
295
|
+
//#region ----- Event Handlers -----
|
|
281
296
|
openPopup() {
|
|
282
297
|
void this.commandService.execute('show-release-notes', {});
|
|
283
298
|
}
|
|
284
299
|
//#endregion
|
|
285
|
-
//#region
|
|
300
|
+
//#region ----- Private Helpers -----
|
|
286
301
|
async loadDisplayText() {
|
|
287
302
|
const application = this.sessionService.application;
|
|
288
303
|
if (!application) {
|
|
289
304
|
this.displayText.set('');
|
|
290
305
|
return;
|
|
291
306
|
}
|
|
292
|
-
// Get version
|
|
293
307
|
const versionInfo = await this.versionProvider.provider();
|
|
294
308
|
const version = versionInfo.version;
|
|
295
|
-
|
|
296
|
-
const appTitle = application.title || application.name || '';
|
|
297
|
-
// Check if application has multiple editions
|
|
309
|
+
const locale = this.translationService.getActiveLang();
|
|
310
|
+
const appTitle = resolveMultiLanguageString(application.title, locale).trim() || application.name || '';
|
|
298
311
|
let editionName = '';
|
|
299
312
|
const hasMultipleEditions = await this.checkMultipleEditions(application.id);
|
|
300
313
|
if (hasMultipleEditions && application.edition?.title) {
|
|
301
|
-
editionName = application.edition.title;
|
|
314
|
+
editionName = resolveMultiLanguageString(application.edition.title, locale).trim();
|
|
302
315
|
}
|
|
303
|
-
// Get display pattern from settings
|
|
304
316
|
const pattern = await this.settingsService
|
|
305
317
|
.scope(AXPPlatformScope.Platform)
|
|
306
318
|
.get(AXPApplicationInfoSettings.DisplayPattern);
|
|
307
|
-
const displayPattern = pattern || '{appTitle}
|
|
308
|
-
// Replace placeholders
|
|
319
|
+
const displayPattern = pattern || '{appTitle} v{version}';
|
|
309
320
|
this.displayText.set(displayPattern
|
|
310
321
|
.replace(/\{appTitle\}/g, appTitle)
|
|
311
322
|
.replace(/\{\[editionName\]\}/g, editionName ? `[${editionName}]` : '')
|
|
@@ -315,15 +326,13 @@ class AXMApplicationInfoSlotComponent {
|
|
|
315
326
|
}
|
|
316
327
|
async checkMultipleEditions(applicationId) {
|
|
317
328
|
try {
|
|
318
|
-
|
|
319
|
-
const application = await this.applicationService.byKey(applicationId);
|
|
329
|
+
const application = (await this.applicationService.byKey(applicationId));
|
|
320
330
|
if (!application || !application.editionIds || application.editionIds.length === 0) {
|
|
321
331
|
return false;
|
|
322
332
|
}
|
|
323
|
-
|
|
324
|
-
const editionsResult = await this.editionService.query({
|
|
333
|
+
const editionsResult = (await this.editionService.query({
|
|
325
334
|
skip: 0,
|
|
326
|
-
take: 2,
|
|
335
|
+
take: 2,
|
|
327
336
|
filter: {
|
|
328
337
|
logic: 'and',
|
|
329
338
|
filters: [
|
|
@@ -334,7 +343,7 @@ class AXMApplicationInfoSlotComponent {
|
|
|
334
343
|
},
|
|
335
344
|
],
|
|
336
345
|
},
|
|
337
|
-
});
|
|
346
|
+
}));
|
|
338
347
|
return editionsResult.items.length > 1;
|
|
339
348
|
}
|
|
340
349
|
catch (error) {
|
|
@@ -342,17 +351,66 @@ class AXMApplicationInfoSlotComponent {
|
|
|
342
351
|
return false;
|
|
343
352
|
}
|
|
344
353
|
}
|
|
345
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
346
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
354
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMApplicationInfoSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
355
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: AXMApplicationInfoSlotComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: ` <small class="text-sm cursor-pointer" (click)="openPopup()">{{ displayText() }}</small> `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
347
356
|
}
|
|
348
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
357
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMApplicationInfoSlotComponent, decorators: [{
|
|
349
358
|
type: Component,
|
|
350
359
|
args: [{
|
|
351
360
|
template: ` <small class="text-sm cursor-pointer" (click)="openPopup()">{{ displayText() }}</small> `,
|
|
352
361
|
standalone: true,
|
|
353
362
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
354
363
|
}]
|
|
355
|
-
}] });
|
|
364
|
+
}], ctorParameters: () => [] });
|
|
365
|
+
|
|
366
|
+
//#region ----- Imports -----
|
|
367
|
+
//#endregion
|
|
368
|
+
//#region ----- Component -----
|
|
369
|
+
/**
|
|
370
|
+
* Footer copyright text. Hidden on small (mobile) viewports. Re-resolves when language,
|
|
371
|
+
* tenant, or copyright settings change (slot `options` factories only run once at mount).
|
|
372
|
+
*/
|
|
373
|
+
class AXMCopyrightFooterSlotComponent {
|
|
374
|
+
//#endregion
|
|
375
|
+
//#region ----- Lifecycle -----
|
|
376
|
+
constructor() {
|
|
377
|
+
//#region ----- Services & Dependencies -----
|
|
378
|
+
this.brandingService = inject(AXPPlatformBrandingService);
|
|
379
|
+
this.sessionService = inject(AXPSessionService);
|
|
380
|
+
this.translationService = inject(AXTranslationService);
|
|
381
|
+
this.settingsService = inject(AXPSettingsService);
|
|
382
|
+
this.destroyRef = inject(DestroyRef);
|
|
383
|
+
//#endregion
|
|
384
|
+
//#region ----- State Signals -----
|
|
385
|
+
this.text = signal('', /* @ts-ignore */
|
|
386
|
+
...(ngDevMode ? [{ debugName: "text" }] : /* istanbul ignore next */ []));
|
|
387
|
+
const copyrightKey = AXP_PLATFORM_BRANDING_SETTING_KEYS.copyrightText;
|
|
388
|
+
merge(this.translationService.langChanges$, this.sessionService.tenant$, this.settingsService.onLoaded, this.settingsService.onChanged.pipe(filter((event) => event.keys.includes(copyrightKey))))
|
|
389
|
+
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
390
|
+
.subscribe(() => {
|
|
391
|
+
void this.reload();
|
|
392
|
+
});
|
|
393
|
+
void this.reload();
|
|
394
|
+
}
|
|
395
|
+
//#endregion
|
|
396
|
+
//#region ----- Private Helpers -----
|
|
397
|
+
async reload() {
|
|
398
|
+
this.text.set(await this.brandingService.resolveCopyright());
|
|
399
|
+
}
|
|
400
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMCopyrightFooterSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
401
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: AXMCopyrightFooterSlotComponent, isStandalone: true, selector: "ng-component", host: { classAttribute: "hidden sm:inline" }, ngImport: i0, template: ` <small class="text-sm" [innerHTML]="text()"></small> `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
402
|
+
}
|
|
403
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMCopyrightFooterSlotComponent, decorators: [{
|
|
404
|
+
type: Component,
|
|
405
|
+
args: [{
|
|
406
|
+
template: ` <small class="text-sm" [innerHTML]="text()"></small> `,
|
|
407
|
+
host: {
|
|
408
|
+
class: 'hidden sm:inline',
|
|
409
|
+
},
|
|
410
|
+
standalone: true,
|
|
411
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
412
|
+
}]
|
|
413
|
+
}], ctorParameters: () => [] });
|
|
356
414
|
|
|
357
415
|
class AXMListTermsComponent extends AXPPageLayoutBaseComponent {
|
|
358
416
|
constructor() {
|
|
@@ -360,8 +418,10 @@ class AXMListTermsComponent extends AXPPageLayoutBaseComponent {
|
|
|
360
418
|
this.entityService = inject(AXPEntityService);
|
|
361
419
|
this.service = this.entityService.withEntity(RootConfig.module.name, RootConfig.entities.appTerm.name).data();
|
|
362
420
|
this.terms = [];
|
|
363
|
-
this.loaded = signal(false,
|
|
364
|
-
|
|
421
|
+
this.loaded = signal(false, /* @ts-ignore */
|
|
422
|
+
...(ngDevMode ? [{ debugName: "loaded" }] : /* istanbul ignore next */ []));
|
|
423
|
+
this.showScrollSide = signal(true, /* @ts-ignore */
|
|
424
|
+
...(ngDevMode ? [{ debugName: "showScrollSide" }] : /* istanbul ignore next */ []));
|
|
365
425
|
}
|
|
366
426
|
ngAfterViewInit() {
|
|
367
427
|
this.checkScroll();
|
|
@@ -396,15 +456,15 @@ class AXMListTermsComponent extends AXPPageLayoutBaseComponent {
|
|
|
396
456
|
getPageDescription() {
|
|
397
457
|
return `t("app-term.page-description", {scope:"${RootConfig.config.i18n}"})`;
|
|
398
458
|
}
|
|
399
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
400
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
459
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMListTermsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
460
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXMListTermsComponent, isStandalone: true, selector: "ng-component", host: { listeners: { "window:resize": "onResize()" } }, providers: [
|
|
401
461
|
{
|
|
402
462
|
provide: AXPPageLayoutBase,
|
|
403
463
|
useExisting: AXMListTermsComponent,
|
|
404
464
|
},
|
|
405
|
-
], usesInheritance: true, ngImport: i0, template: "<axp-page-layout *translate=\"let t\">\n @if(loaded()){\n <axp-page-content id=\"contentDiv\" axOutlineContainer target=\"h2\" [scrollableElementId]=\"'axp-page-layout'\"\n [activationOffset]=\"120\" class=\"flex flex-row\">\n <div class=\"flex flex-col\">\n @for (term of terms; track term.id) {\n <div class=\"flex flex-col\">\n <h2 class=\"px-4 font-semibold text-xl\">{{ term.title }}</h2>\n <p class=\"px-4 text-sm leading-5 opacity-65\">\n {{ term.effectiveDate | format : 'datetime' | async }}\n </p>\n <div class=\"pt-3 pb-6 px-4 text-base/6\" [innerHTML]=\"term.content | safe:'html'\"></div>\n </div>\n }\n </div>\n @if(showScrollSide()){\n <div class=\"hidden lg:block min-w-60\">\n <ax-side-menu axOutlineSideMenu look=\"with-line\" class=\"w-full sticky top-24\"></ax-side-menu>\n </div>\n }\n </axp-page-content>\n }\n</axp-page-layout>\n\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXFormatModule }, { 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: "ngmodule", type: AXTranslationModule }, { kind: "directive", type: i6.AXTranslatorDirective, selector: "[translate]" }, { kind: "ngmodule", type: AXSideMenuModule }, { kind: "component", type: i2$1.AXSideMenuComponent, selector: "ax-side-menu", inputs: ["items", "look", "location", "mode"], outputs: ["itemsChange"] }, { kind: "directive", type: i2$1.AXOutlineSideMenuDirective, selector: "[axOutlineSideMenu]", exportAs: ["axOutlineSideMenu"] }, { kind: "component", type: AXPPageLayoutComponent, selector: "axp-page-layout" }, { kind: "directive", type: AXOutlineContainerDirective, selector: "[axOutlineContainer]", inputs: ["target", "smoothScroll", "showHashItem", "activationOffset", "copyUrlOnClick", "activateLastAtBottom", "scrollableElementId"], exportAs: ["axOutlineContainer"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4$1.AXFormatPipe, name: "format" }, { kind: "pipe", type: AXSafePipe, name: "safe" }] }); }
|
|
465
|
+
], usesInheritance: true, ngImport: i0, template: "<axp-page-layout *translate=\"let t\">\n @if(loaded()){\n <axp-page-content id=\"contentDiv\" axOutlineContainer target=\"h2\" [scrollableElementId]=\"'axp-page-layout'\"\n [activationOffset]=\"120\" class=\"flex flex-row\">\n <div class=\"flex flex-col\">\n @for (term of terms; track term.id) {\n <div class=\"flex flex-col\">\n <h2 class=\"px-4 font-semibold text-xl\">{{ term.title }}</h2>\n <p class=\"px-4 text-sm leading-5 opacity-65\">\n {{ term.effectiveDate | format : 'datetime' | async }}\n </p>\n <div class=\"pt-3 pb-6 px-4 text-base/6\" [innerHTML]=\"term.content | safe:'html'\"></div>\n </div>\n }\n </div>\n @if(showScrollSide()){\n <div class=\"hidden lg:block min-w-60\">\n <ax-side-menu axOutlineSideMenu look=\"with-line\" class=\"w-full sticky top-24\"></ax-side-menu>\n </div>\n }\n </axp-page-content>\n }\n</axp-page-layout>\n\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXFormatModule }, { 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: "ngmodule", type: AXTranslationModule }, { kind: "directive", type: i6.AXTranslatorDirective, selector: "[translate]" }, { kind: "ngmodule", type: AXSideMenuModule }, { kind: "component", type: i2$1.AXSideMenuComponent, selector: "ax-side-menu", inputs: ["items", "look", "location", "mode"], outputs: ["itemsChange"] }, { kind: "directive", type: i2$1.AXOutlineSideMenuDirective, selector: "[axOutlineSideMenu]", exportAs: ["axOutlineSideMenu"] }, { kind: "component", type: AXPPageLayoutComponent, selector: "axp-page-layout" }, { kind: "directive", type: AXOutlineContainerDirective, selector: "[axOutlineContainer]", inputs: ["target", "smoothScroll", "showHashItem", "activationOffset", "copyUrlOnClick", "activateLastAtBottom", "scrollableElementId"], exportAs: ["axOutlineContainer"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4$1.AXFormatPipe, name: "format" }, { kind: "pipe", type: AXSafePipe, name: "safe" }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
|
|
406
466
|
}
|
|
407
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
467
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMListTermsComponent, decorators: [{
|
|
408
468
|
type: Component,
|
|
409
469
|
args: [{ imports: [
|
|
410
470
|
CommonModule,
|
|
@@ -417,7 +477,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
417
477
|
AXSafePipe,
|
|
418
478
|
AXOutlineContainerDirective,
|
|
419
479
|
AXOutlineSideMenuDirective,
|
|
420
|
-
], providers: [
|
|
480
|
+
], changeDetection: ChangeDetectionStrategy.Eager, providers: [
|
|
421
481
|
{
|
|
422
482
|
provide: AXPPageLayoutBase,
|
|
423
483
|
useExisting: AXMListTermsComponent,
|
|
@@ -438,15 +498,16 @@ var listTerms_component = /*#__PURE__*/Object.freeze({
|
|
|
438
498
|
//#region ---- Setting Provider ----
|
|
439
499
|
const I18N_APP = '@application-management:application-info.settings';
|
|
440
500
|
const I18N_GENERAL = '@general:settings';
|
|
501
|
+
const I18N_EDITION_MODULES = '@application-management:editions.modules-editor.settings';
|
|
441
502
|
class AXPApplicationInfoSettingProvider {
|
|
442
503
|
async provide(context) {
|
|
443
504
|
// Find the 'Experience' settings group
|
|
444
|
-
const group = context.group(
|
|
505
|
+
const group = context.group(AXP_EXPERIENCE_SETTINGS_GROUP);
|
|
445
506
|
if (!group) {
|
|
446
507
|
return;
|
|
447
508
|
}
|
|
448
509
|
// Find the 'Startup' section
|
|
449
|
-
const section = group.section(
|
|
510
|
+
const section = group.section(AXP_EXPERIENCE_SETTINGS_SECTIONS.Startup);
|
|
450
511
|
if (!section) {
|
|
451
512
|
return;
|
|
452
513
|
}
|
|
@@ -457,7 +518,7 @@ class AXPApplicationInfoSettingProvider {
|
|
|
457
518
|
scope: AXPPlatformScope.Platform,
|
|
458
519
|
overridableAt: [],
|
|
459
520
|
isInherited: false,
|
|
460
|
-
defaultValue: '{appTitle}
|
|
521
|
+
defaultValue: '{appTitle} v{version}',
|
|
461
522
|
widget: {
|
|
462
523
|
type: AXPWidgetsCatalog.text,
|
|
463
524
|
options: {
|
|
@@ -500,57 +561,113 @@ class AXPApplicationInfoSettingProvider {
|
|
|
500
561
|
},
|
|
501
562
|
description: `${I18N_GENERAL}.experience.startup.release-notes.description`,
|
|
502
563
|
});
|
|
564
|
+
section.addSetting({
|
|
565
|
+
key: AXPApplicationInfoSettings.EditionModulesViewMode,
|
|
566
|
+
title: `${I18N_EDITION_MODULES}.view-mode.title`,
|
|
567
|
+
description: `${I18N_EDITION_MODULES}.view-mode.description`,
|
|
568
|
+
scope: AXPPlatformScope.User,
|
|
569
|
+
overridableAt: [],
|
|
570
|
+
isInherited: false,
|
|
571
|
+
defaultValue: 'type',
|
|
572
|
+
widget: {
|
|
573
|
+
type: AXPWidgetsCatalog.select,
|
|
574
|
+
options: {
|
|
575
|
+
valueField: 'value',
|
|
576
|
+
textField: 'text',
|
|
577
|
+
dataSource: [
|
|
578
|
+
{ value: 'type', text: '@application-management:editions.modules-editor.view-mode.type' },
|
|
579
|
+
{ value: 'domain', text: '@application-management:editions.modules-editor.view-mode.domain' },
|
|
580
|
+
],
|
|
581
|
+
},
|
|
582
|
+
},
|
|
583
|
+
});
|
|
503
584
|
section.endSection();
|
|
504
585
|
}
|
|
505
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
506
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
586
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPApplicationInfoSettingProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
587
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPApplicationInfoSettingProvider }); }
|
|
507
588
|
}
|
|
508
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
589
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPApplicationInfoSettingProvider, decorators: [{
|
|
509
590
|
type: Injectable
|
|
510
591
|
}] });
|
|
511
592
|
|
|
593
|
+
//#region ---- Terms check service ----
|
|
512
594
|
class AXMAppTermsCheckService {
|
|
595
|
+
//#endregion
|
|
596
|
+
//#region ----- Lifecycle -----
|
|
513
597
|
constructor() {
|
|
598
|
+
//#region ----- Services & Dependencies -----
|
|
514
599
|
this.entityService = inject(AXPEntityService);
|
|
515
600
|
this.settingsService = inject(AXPSettingsService);
|
|
516
601
|
this.commandService = inject(AXPCommandService);
|
|
517
|
-
this.appTermService = this.entityService.withEntity(RootConfig.module.name, RootConfig.entities.appTerm.name).data();
|
|
518
602
|
this.appInitService = inject(AXPAppStartUpService);
|
|
519
603
|
this.sessionService = inject(AXPSessionService);
|
|
604
|
+
this.destroyRef = inject(DestroyRef);
|
|
605
|
+
this.appTermService = this.entityService
|
|
606
|
+
.withEntity(RootConfig.module.name, RootConfig.entities.appTerm.name)
|
|
607
|
+
.data();
|
|
608
|
+
//#endregion
|
|
609
|
+
//#region ----- State -----
|
|
610
|
+
this.termsCheckGeneration = 0;
|
|
520
611
|
this.appInitService.registerTask({
|
|
521
612
|
name: 'Terms',
|
|
522
613
|
statusText: '@application-management:app-startup.checking-terms',
|
|
523
|
-
priority:
|
|
614
|
+
priority: AXP_APP_STARTUP_PRIORITY.terms,
|
|
524
615
|
run: async () => {
|
|
525
|
-
|
|
526
|
-
if (app != null) {
|
|
527
|
-
const filterTerms = [];
|
|
528
|
-
const terms = await this.appTermService.query();
|
|
529
|
-
for (const term of terms.items) {
|
|
530
|
-
const isConfirm = await this.settingsService
|
|
531
|
-
.scope(AXPPlatformScope.User)
|
|
532
|
-
.get(`is-confirm-term-${term.id}`);
|
|
533
|
-
const isEnableToShow = await this.settingsService
|
|
534
|
-
.scope(AXPPlatformScope.Platform)
|
|
535
|
-
.get(AXPApplicationInfoSettings.ApplicationTerms);
|
|
536
|
-
if (!isConfirm && isEnableToShow) {
|
|
537
|
-
filterTerms.push(term);
|
|
538
|
-
}
|
|
539
|
-
}
|
|
540
|
-
if (filterTerms.length > 0) {
|
|
541
|
-
setTimeout(() => {
|
|
542
|
-
void this.commandService.execute('new-term', filterTerms);
|
|
543
|
-
}, 500);
|
|
544
|
-
}
|
|
545
|
-
}
|
|
546
|
-
});
|
|
616
|
+
// Terms are evaluated reactively once the session is authorized with an application.
|
|
547
617
|
},
|
|
548
618
|
});
|
|
619
|
+
combineLatest([this.sessionService.isAuthorized$, this.sessionService.application$])
|
|
620
|
+
.pipe(distinctUntilChanged(([authorized, app], [previousAuthorized, previousApp]) => authorized === previousAuthorized && app?.id === previousApp?.id), switchMap(([authorized, app]) => {
|
|
621
|
+
// Cookie sessions have no JS-readable access token — use credentials gate.
|
|
622
|
+
if (!authorized || !app || !this.sessionService.hasSessionCredentials()) {
|
|
623
|
+
this.termsCheckGeneration++;
|
|
624
|
+
return EMPTY;
|
|
625
|
+
}
|
|
626
|
+
const generation = this.termsCheckGeneration;
|
|
627
|
+
return from(this.evaluateUnconfirmedTerms(generation));
|
|
628
|
+
}), takeUntilDestroyed(this.destroyRef))
|
|
629
|
+
.subscribe();
|
|
549
630
|
}
|
|
550
|
-
|
|
551
|
-
|
|
631
|
+
//#endregion
|
|
632
|
+
//#region ----- Terms evaluation -----
|
|
633
|
+
async evaluateUnconfirmedTerms(generation) {
|
|
634
|
+
if (!this.canCheckTerms() || generation !== this.termsCheckGeneration) {
|
|
635
|
+
return;
|
|
636
|
+
}
|
|
637
|
+
const filterTerms = [];
|
|
638
|
+
const terms = await this.appTermService.query();
|
|
639
|
+
if (generation !== this.termsCheckGeneration || !this.canCheckTerms()) {
|
|
640
|
+
return;
|
|
641
|
+
}
|
|
642
|
+
for (const term of terms.items) {
|
|
643
|
+
if (generation !== this.termsCheckGeneration || !this.canCheckTerms()) {
|
|
644
|
+
return;
|
|
645
|
+
}
|
|
646
|
+
const isConfirm = await this.settingsService.scope(AXPPlatformScope.User).get(`is-confirm-term-${term.id}`);
|
|
647
|
+
const isEnableToShow = await this.settingsService
|
|
648
|
+
.scope(AXPPlatformScope.Platform)
|
|
649
|
+
.get(AXPApplicationInfoSettings.ApplicationTerms);
|
|
650
|
+
if (!isConfirm && isEnableToShow) {
|
|
651
|
+
filterTerms.push(term);
|
|
652
|
+
}
|
|
653
|
+
}
|
|
654
|
+
if (generation !== this.termsCheckGeneration || !this.canCheckTerms() || filterTerms.length === 0) {
|
|
655
|
+
return;
|
|
656
|
+
}
|
|
657
|
+
setTimeout(() => {
|
|
658
|
+
if (generation !== this.termsCheckGeneration || !this.canCheckTerms()) {
|
|
659
|
+
return;
|
|
660
|
+
}
|
|
661
|
+
void this.commandService.execute('new-term', filterTerms);
|
|
662
|
+
}, 500);
|
|
663
|
+
}
|
|
664
|
+
canCheckTerms() {
|
|
665
|
+
return this.sessionService.isReadyForAppScopedApi;
|
|
666
|
+
}
|
|
667
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMAppTermsCheckService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
668
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMAppTermsCheckService }); }
|
|
552
669
|
}
|
|
553
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
670
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMAppTermsCheckService, decorators: [{
|
|
554
671
|
type: Injectable
|
|
555
672
|
}], ctorParameters: () => [] });
|
|
556
673
|
|
|
@@ -565,19 +682,19 @@ const AXPModuleFeatureEditorWidget = {
|
|
|
565
682
|
properties: [AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY],
|
|
566
683
|
components: {
|
|
567
684
|
view: {
|
|
568
|
-
component: () => import('./acorex-platform-module-application-management-client-features-widget-view.component-
|
|
685
|
+
component: () => import('./acorex-platform-module-application-management-client-features-widget-view.component-yKbBTqym.mjs').then((c) => c.AXPFeaturesWidgetViewComponent),
|
|
569
686
|
},
|
|
570
687
|
edit: {
|
|
571
|
-
component: () => import('./acorex-platform-module-application-management-client-features-widget-edit.component-
|
|
688
|
+
component: () => import('./acorex-platform-module-application-management-client-features-widget-edit.component-D_IBCjfM.mjs').then((c) => c.AXPModuleFeatureEditorWidgetEditComponent),
|
|
572
689
|
},
|
|
573
690
|
column: {
|
|
574
|
-
component: () => import('./acorex-platform-module-application-management-client-features-widget-column.component-
|
|
691
|
+
component: () => import('./acorex-platform-module-application-management-client-features-widget-column.component-C2OEG0LL.mjs').then((c) => c.AXPFeaturesWidgetColumnComponent),
|
|
575
692
|
},
|
|
576
693
|
print: {
|
|
577
|
-
component: () => import('./acorex-platform-module-application-management-client-features-widget-print.component-
|
|
694
|
+
component: () => import('./acorex-platform-module-application-management-client-features-widget-print.component-CkTEfzcY.mjs').then((c) => c.AXPFeaturesWidgetPrintComponent),
|
|
578
695
|
},
|
|
579
696
|
designer: {
|
|
580
|
-
component: () => import('./acorex-platform-module-application-management-client-features-widget-designer.component-
|
|
697
|
+
component: () => import('./acorex-platform-module-application-management-client-features-widget-designer.component-CMJwcY5f.mjs').then((c) => c.AXPFeaturesWidgetDesignerComponent),
|
|
581
698
|
},
|
|
582
699
|
},
|
|
583
700
|
};
|
|
@@ -589,21 +706,21 @@ class AXPFeaturesWidgetsProvider {
|
|
|
589
706
|
getWidgets() {
|
|
590
707
|
return WIDGETS;
|
|
591
708
|
}
|
|
592
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
593
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
709
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPFeaturesWidgetsProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
710
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPFeaturesWidgetsProvider }); }
|
|
594
711
|
}
|
|
595
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
712
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPFeaturesWidgetsProvider, decorators: [{
|
|
596
713
|
type: Injectable
|
|
597
714
|
}] });
|
|
598
715
|
|
|
599
716
|
class AXMFeaturesModule {
|
|
600
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
601
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
602
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
717
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMFeaturesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
718
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: AXMFeaturesModule, imports: [AXPWidgetCoreModule] }); }
|
|
719
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMFeaturesModule, providers: [
|
|
603
720
|
{ provide: AXP_WIDGET_DEFINITION_PROVIDER, useClass: AXPFeaturesWidgetsProvider, multi: true },
|
|
604
721
|
], imports: [AXPWidgetCoreModule] }); }
|
|
605
722
|
}
|
|
606
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
723
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMFeaturesModule, decorators: [{
|
|
607
724
|
type: NgModule,
|
|
608
725
|
args: [{
|
|
609
726
|
imports: [
|
|
@@ -628,6 +745,8 @@ const ApplicationManagementManifest = {
|
|
|
628
745
|
title: RootConfig.module.title,
|
|
629
746
|
icon: RootConfig.module.icon,
|
|
630
747
|
i18n: RootConfig.config.i18n,
|
|
748
|
+
type: 'platform',
|
|
749
|
+
domain: 'platform',
|
|
631
750
|
required: true,
|
|
632
751
|
// Module dependencies (optional)
|
|
633
752
|
};
|
|
@@ -654,56 +773,33 @@ class AXMSearchCommandProvider extends AXPSearchCommandProvider {
|
|
|
654
773
|
},
|
|
655
774
|
];
|
|
656
775
|
}
|
|
657
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
658
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
776
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMSearchCommandProvider, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
777
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMSearchCommandProvider }); }
|
|
659
778
|
}
|
|
660
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
779
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMSearchCommandProvider, decorators: [{
|
|
661
780
|
type: Injectable
|
|
662
781
|
}] });
|
|
663
782
|
|
|
664
783
|
//#region ---- Application context definitions ----
|
|
665
784
|
class AXMApplicationManagementContextDefinitionProvider {
|
|
666
785
|
async items() {
|
|
667
|
-
return
|
|
668
|
-
{
|
|
669
|
-
name: 'applicationId',
|
|
670
|
-
title: 'Application ID',
|
|
671
|
-
description: 'Identifier of the application edition currently selected in the session. Narrows features, menus, and permissions.',
|
|
672
|
-
ai: {
|
|
673
|
-
promptLabel: 'Application id',
|
|
674
|
-
usageHint: 'Scope product-specific behavior to this application unless the user names another app.',
|
|
675
|
-
valueKind: 'string',
|
|
676
|
-
order: 30,
|
|
677
|
-
},
|
|
678
|
-
},
|
|
679
|
-
{
|
|
680
|
-
name: 'applicationTitle',
|
|
681
|
-
title: 'Application title',
|
|
682
|
-
description: 'Display name of the active application from the session (title or name).',
|
|
683
|
-
ai: {
|
|
684
|
-
promptLabel: 'Application title',
|
|
685
|
-
usageHint: 'Use when referring to the product or app shell the user is working in.',
|
|
686
|
-
valueKind: 'string',
|
|
687
|
-
order: 31,
|
|
688
|
-
},
|
|
689
|
-
},
|
|
690
|
-
];
|
|
786
|
+
return AXM_APPLICATION_CONTEXT_DEFINITIONS;
|
|
691
787
|
}
|
|
692
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
693
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
788
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMApplicationManagementContextDefinitionProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
789
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMApplicationManagementContextDefinitionProvider }); }
|
|
694
790
|
}
|
|
695
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
791
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMApplicationManagementContextDefinitionProvider, decorators: [{
|
|
696
792
|
type: Injectable
|
|
697
793
|
}] });
|
|
698
794
|
|
|
699
795
|
class AXMApplicationManagementModule {
|
|
700
796
|
constructor(appTermsCheck) { }
|
|
701
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
702
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
797
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMApplicationManagementModule, deps: [{ token: AXMAppTermsCheckService }], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
798
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: AXMApplicationManagementModule, imports: [
|
|
703
799
|
// Entity Modules
|
|
704
800
|
// Features Modules
|
|
705
801
|
AXMFeaturesModule, i2$2.AXPComponentSlotModule] }); }
|
|
706
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
802
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMApplicationManagementModule, providers: [
|
|
707
803
|
{
|
|
708
804
|
provide: ROUTES,
|
|
709
805
|
multi: true,
|
|
@@ -746,7 +842,7 @@ class AXMApplicationManagementModule {
|
|
|
746
842
|
},
|
|
747
843
|
{
|
|
748
844
|
key: 'assign-features',
|
|
749
|
-
command: () => import('./acorex-platform-module-application-management-client-assign-features.command-
|
|
845
|
+
command: () => import('./acorex-platform-module-application-management-client-assign-features.command-BG986HtP.mjs').then((c) => c.AXMAssignFeaturesCommand),
|
|
750
846
|
},
|
|
751
847
|
]),
|
|
752
848
|
// Module Manifest Provider
|
|
@@ -756,11 +852,10 @@ class AXMApplicationManagementModule {
|
|
|
756
852
|
multi: true,
|
|
757
853
|
},
|
|
758
854
|
// Provider references (now using tokens)
|
|
759
|
-
provideLazyProvider(AXP_STATUS_PROVIDERS, () => import('./acorex-platform-module-application-management-client-application-status.provider-
|
|
760
|
-
provideLazyProvider(AXP_FEATURE_DEFINITION_PROVIDER, () => import('./acorex-platform-module-application-management-client-feature-definition.provider-
|
|
761
|
-
provideLazyProvider(AXP_PERMISSION_DEFINITION_PROVIDER, () => import('./acorex-platform-module-application-management-client-permission-definition.provider-
|
|
855
|
+
provideLazyProvider(AXP_STATUS_PROVIDERS, () => import('./acorex-platform-module-application-management-client-application-status.provider-Bz6cknzi.mjs').then(m => m.AXMApplicationStatusProvider)),
|
|
856
|
+
provideLazyProvider(AXP_FEATURE_DEFINITION_PROVIDER, () => import('./acorex-platform-module-application-management-client-feature-definition.provider-V-wfUEZf.mjs').then(m => m.AXPApplicationManagementFeatureDefinitionProvider)),
|
|
857
|
+
provideLazyProvider(AXP_PERMISSION_DEFINITION_PROVIDER, () => import('./acorex-platform-module-application-management-client-permission-definition.provider-MTs9VAE_.mjs').then(m => m.AXMPermissionDefinitionProvider)),
|
|
762
858
|
provideLazyProvider(AXP_MENU_PROVIDER, () => Promise.resolve().then(function () { return menu_provider; }).then(m => m.AXMApplicationManagmentModuleMenuProvider)),
|
|
763
|
-
provideLazyProvider(AXP_ENTITY_DEFINITION_LOADER, () => Promise.resolve().then(function () { return entity_provider; }).then(m => m.AXMEntityProvider)),
|
|
764
859
|
{
|
|
765
860
|
provide: AXP_SEARCH_PROVIDER,
|
|
766
861
|
useClass: AXMSearchCommandProvider,
|
|
@@ -784,15 +879,7 @@ class AXMApplicationManagementModule {
|
|
|
784
879
|
},
|
|
785
880
|
{
|
|
786
881
|
name: 'copyright',
|
|
787
|
-
component:
|
|
788
|
-
options: async () => {
|
|
789
|
-
const platformConfig = inject(AXP_PLATFORM_CONFIG_TOKEN);
|
|
790
|
-
const settingsService = inject(AXPSettingsService);
|
|
791
|
-
const copyrightText = await settingsService
|
|
792
|
-
.scope(AXPPlatformScope.Tenant)
|
|
793
|
-
.get('organization:copyright-text');
|
|
794
|
-
return { text: copyrightText ?? platformConfig.copyright };
|
|
795
|
-
},
|
|
882
|
+
component: AXMCopyrightFooterSlotComponent,
|
|
796
883
|
priority: 2,
|
|
797
884
|
},
|
|
798
885
|
],
|
|
@@ -804,7 +891,7 @@ class AXMApplicationManagementModule {
|
|
|
804
891
|
],
|
|
805
892
|
})] }); }
|
|
806
893
|
}
|
|
807
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
894
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMApplicationManagementModule, decorators: [{
|
|
808
895
|
type: NgModule,
|
|
809
896
|
args: [{
|
|
810
897
|
imports: [
|
|
@@ -820,15 +907,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
820
907
|
},
|
|
821
908
|
{
|
|
822
909
|
name: 'copyright',
|
|
823
|
-
component:
|
|
824
|
-
options: async () => {
|
|
825
|
-
const platformConfig = inject(AXP_PLATFORM_CONFIG_TOKEN);
|
|
826
|
-
const settingsService = inject(AXPSettingsService);
|
|
827
|
-
const copyrightText = await settingsService
|
|
828
|
-
.scope(AXPPlatformScope.Tenant)
|
|
829
|
-
.get('organization:copyright-text');
|
|
830
|
-
return { text: copyrightText ?? platformConfig.copyright };
|
|
831
|
-
},
|
|
910
|
+
component: AXMCopyrightFooterSlotComponent,
|
|
832
911
|
priority: 2,
|
|
833
912
|
},
|
|
834
913
|
],
|
|
@@ -885,7 +964,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
885
964
|
},
|
|
886
965
|
{
|
|
887
966
|
key: 'assign-features',
|
|
888
|
-
command: () => import('./acorex-platform-module-application-management-client-assign-features.command-
|
|
967
|
+
command: () => import('./acorex-platform-module-application-management-client-assign-features.command-BG986HtP.mjs').then((c) => c.AXMAssignFeaturesCommand),
|
|
889
968
|
},
|
|
890
969
|
]),
|
|
891
970
|
// Module Manifest Provider
|
|
@@ -895,11 +974,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
895
974
|
multi: true,
|
|
896
975
|
},
|
|
897
976
|
// Provider references (now using tokens)
|
|
898
|
-
provideLazyProvider(AXP_STATUS_PROVIDERS, () => import('./acorex-platform-module-application-management-client-application-status.provider-
|
|
899
|
-
provideLazyProvider(AXP_FEATURE_DEFINITION_PROVIDER, () => import('./acorex-platform-module-application-management-client-feature-definition.provider-
|
|
900
|
-
provideLazyProvider(AXP_PERMISSION_DEFINITION_PROVIDER, () => import('./acorex-platform-module-application-management-client-permission-definition.provider-
|
|
977
|
+
provideLazyProvider(AXP_STATUS_PROVIDERS, () => import('./acorex-platform-module-application-management-client-application-status.provider-Bz6cknzi.mjs').then(m => m.AXMApplicationStatusProvider)),
|
|
978
|
+
provideLazyProvider(AXP_FEATURE_DEFINITION_PROVIDER, () => import('./acorex-platform-module-application-management-client-feature-definition.provider-V-wfUEZf.mjs').then(m => m.AXPApplicationManagementFeatureDefinitionProvider)),
|
|
979
|
+
provideLazyProvider(AXP_PERMISSION_DEFINITION_PROVIDER, () => import('./acorex-platform-module-application-management-client-permission-definition.provider-MTs9VAE_.mjs').then(m => m.AXMPermissionDefinitionProvider)),
|
|
901
980
|
provideLazyProvider(AXP_MENU_PROVIDER, () => Promise.resolve().then(function () { return menu_provider; }).then(m => m.AXMApplicationManagmentModuleMenuProvider)),
|
|
902
|
-
provideLazyProvider(AXP_ENTITY_DEFINITION_LOADER, () => Promise.resolve().then(function () { return entity_provider; }).then(m => m.AXMEntityProvider)),
|
|
903
981
|
{
|
|
904
982
|
provide: AXP_SEARCH_PROVIDER,
|
|
905
983
|
useClass: AXMSearchCommandProvider,
|
|
@@ -914,46 +992,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
914
992
|
}]
|
|
915
993
|
}], ctorParameters: () => [{ type: AXMAppTermsCheckService }] });
|
|
916
994
|
|
|
917
|
-
class AXMEntityProvider {
|
|
918
|
-
async get(moduleName, entityName) {
|
|
919
|
-
if (moduleName == RootConfig.module.name) {
|
|
920
|
-
switch (entityName) {
|
|
921
|
-
case RootConfig.entities.application.name: {
|
|
922
|
-
const entity = (await import('@acorex-platform/module-application-management-client/contracts')).applicationEntityFactory;
|
|
923
|
-
return entity();
|
|
924
|
-
}
|
|
925
|
-
case RootConfig.entities.edition.name: {
|
|
926
|
-
const entity = (await import('@acorex-platform/module-application-management-client/contracts')).editionEntityFactory;
|
|
927
|
-
return entity();
|
|
928
|
-
}
|
|
929
|
-
case RootConfig.entities.appVersion.name: {
|
|
930
|
-
const entity = (await import('@acorex-platform/module-application-management-client/contracts')).appVersionEntityEntityFactory;
|
|
931
|
-
return entity();
|
|
932
|
-
}
|
|
933
|
-
case RootConfig.entities.appTerm.name: {
|
|
934
|
-
const entity = (await import('@acorex-platform/module-application-management-client/contracts')).appTermEntityEntityFactory;
|
|
935
|
-
return entity();
|
|
936
|
-
}
|
|
937
|
-
}
|
|
938
|
-
}
|
|
939
|
-
return null;
|
|
940
|
-
}
|
|
941
|
-
async list() {
|
|
942
|
-
const m = RootConfig.module.name;
|
|
943
|
-
return Promise.resolve(Object.values(RootConfig.entities).map((e) => ({ name: e.name, module: m })));
|
|
944
|
-
}
|
|
945
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMEntityProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
946
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMEntityProvider }); }
|
|
947
|
-
}
|
|
948
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMEntityProvider, decorators: [{
|
|
949
|
-
type: Injectable
|
|
950
|
-
}] });
|
|
951
|
-
|
|
952
|
-
var entity_provider = /*#__PURE__*/Object.freeze({
|
|
953
|
-
__proto__: null,
|
|
954
|
-
AXMEntityProvider: AXMEntityProvider
|
|
955
|
-
});
|
|
956
|
-
|
|
957
995
|
class AXMApplicationManagmentModuleMenuProvider {
|
|
958
996
|
constructor() {
|
|
959
997
|
this.entityService = inject(AXPEntityService);
|
|
@@ -963,6 +1001,7 @@ class AXMApplicationManagmentModuleMenuProvider {
|
|
|
963
1001
|
const scope = RootConfig.config.i18n;
|
|
964
1002
|
const module = RootConfig.module;
|
|
965
1003
|
const appName = this.sessionService.application?.name;
|
|
1004
|
+
const maintainApps = AXPApplicationsPlatformPermissionKeys.MaintainApplications;
|
|
966
1005
|
context.find('Common:Menu:Platform').addItems([
|
|
967
1006
|
{
|
|
968
1007
|
name: AXPApplicationManagementMenuKeys.Applications,
|
|
@@ -972,7 +1011,7 @@ class AXMApplicationManagmentModuleMenuProvider {
|
|
|
972
1011
|
priority: 1,
|
|
973
1012
|
policy: {
|
|
974
1013
|
features: [module.name],
|
|
975
|
-
permissions: [
|
|
1014
|
+
permissions: [maintainApps],
|
|
976
1015
|
},
|
|
977
1016
|
},
|
|
978
1017
|
{
|
|
@@ -983,12 +1022,12 @@ class AXMApplicationManagmentModuleMenuProvider {
|
|
|
983
1022
|
icon: RootConfig.entities.appVersion.icon,
|
|
984
1023
|
policy: {
|
|
985
1024
|
features: [module.name],
|
|
986
|
-
permissions: [
|
|
1025
|
+
permissions: [maintainApps],
|
|
987
1026
|
},
|
|
988
1027
|
},
|
|
989
1028
|
{ name: `${AXPApplicationManagementMenuKeys.Root}:divider1`, text: '', type: 'break', priority: 3 },
|
|
990
1029
|
]);
|
|
991
|
-
//#region ----
|
|
1030
|
+
//#region ---- Help Menu Extensions ----
|
|
992
1031
|
// Help menu is created by common module's menu provider
|
|
993
1032
|
context.find('Common:Menu:Help').addItems([
|
|
994
1033
|
{
|
|
@@ -1010,10 +1049,10 @@ class AXMApplicationManagmentModuleMenuProvider {
|
|
|
1010
1049
|
]);
|
|
1011
1050
|
//#endregion
|
|
1012
1051
|
}
|
|
1013
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1014
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1052
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMApplicationManagmentModuleMenuProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1053
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMApplicationManagmentModuleMenuProvider }); }
|
|
1015
1054
|
}
|
|
1016
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1055
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMApplicationManagmentModuleMenuProvider, decorators: [{
|
|
1017
1056
|
type: Injectable
|
|
1018
1057
|
}] });
|
|
1019
1058
|
|
|
@@ -1026,5 +1065,5 @@ var menu_provider = /*#__PURE__*/Object.freeze({
|
|
|
1026
1065
|
* Generated bundle index. Do not edit.
|
|
1027
1066
|
*/
|
|
1028
1067
|
|
|
1029
|
-
export { AXMApplicationManagementModule, AXMApplicationManagmentModuleMenuProvider,
|
|
1068
|
+
export { AXMApplicationManagementModule, AXMApplicationManagmentModuleMenuProvider, AXMSearchCommandProvider };
|
|
1030
1069
|
//# sourceMappingURL=acorex-platform-module-application-management-client.mjs.map
|