@acorex/platform 21.0.0-next.24 → 21.0.0-next.33
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-auth.mjs +121 -27
- package/fesm2022/acorex-platform-auth.mjs.map +1 -1
- package/fesm2022/{acorex-platform-common-common-settings.provider-gyb6ohAE.mjs → acorex-platform-common-common-settings.provider-G9XcXXOG.mjs} +46 -4
- package/fesm2022/acorex-platform-common-common-settings.provider-G9XcXXOG.mjs.map +1 -0
- package/fesm2022/acorex-platform-common.mjs +677 -267
- package/fesm2022/acorex-platform-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-core.mjs +393 -111
- package/fesm2022/acorex-platform-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-domain.mjs +554 -826
- package/fesm2022/acorex-platform-domain.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-builder.mjs +345 -59
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/{acorex-platform-layout-components-binding-expression-editor-popup.component-Cb6Lk4Ch.mjs → acorex-platform-layout-components-binding-expression-editor-popup.component-CXEdvDTf.mjs} +9 -9
- package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-CXEdvDTf.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-components.mjs +3373 -872
- package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-designer.mjs +169 -154
- package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity.mjs +14645 -11533
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-views.mjs +244 -170
- package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-widget-core.mjs +367 -408
- package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
- package/fesm2022/{acorex-platform-layout-widgets-button-widget-designer.component-Dnbx_uY7.mjs → acorex-platform-layout-widgets-button-widget-designer.component-Dy7jF-oD.mjs} +10 -10
- package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-Dy7jF-oD.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-file-list-popup.component-B0omAUil.mjs → acorex-platform-layout-widgets-file-list-popup.component-9uCkMxcc.mjs} +30 -22
- package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-9uCkMxcc.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-image-preview.popup-D-HFZHNZ.mjs → acorex-platform-layout-widgets-image-preview.popup-C_EPAvCU.mjs} +6 -7
- package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-C_EPAvCU.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-page-widget-designer.component-q30grR3z.mjs → acorex-platform-layout-widgets-page-widget-designer.component-D10yO28c.mjs} +12 -12
- package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-D10yO28c.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BGQqY5Mw.mjs +111 -0
- package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BGQqY5Mw.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-BJh1QJqp.mjs → acorex-platform-layout-widgets-tabular-data-edit-popup.component-DmzNTYiS.mjs} +7 -7
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-DmzNTYiS.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-tabular-data-view-popup.component--rzP7scF.mjs → acorex-platform-layout-widgets-tabular-data-view-popup.component-BNG_588B.mjs} +5 -5
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-BNG_588B.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-text-block-widget-designer.component-DHlgsHa7.mjs → acorex-platform-layout-widgets-text-block-widget-designer.component-Vo4fWHtX.mjs} +6 -6
- package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-Vo4fWHtX.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-widgets.mjs +5924 -4049
- package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
- package/fesm2022/acorex-platform-native.mjs +8 -7
- package/fesm2022/acorex-platform-native.mjs.map +1 -1
- package/fesm2022/acorex-platform-runtime.mjs +220 -169
- package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Cvvr4HnL.mjs +160 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Cvvr4HnL.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-TYoLN1Jq.mjs +120 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-TYoLN1Jq.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-di5w_3K2.mjs → acorex-platform-themes-default-entity-master-single-view.component-C2z5Lq9y.mjs} +15 -22
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-C2z5Lq9y.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-error-401.component-D9NZ-6L_.mjs → acorex-platform-themes-default-error-401.component-C7EYJzSr.mjs} +4 -4
- package/fesm2022/acorex-platform-themes-default-error-401.component-C7EYJzSr.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-error-404.component-CgB_tlPU.mjs → acorex-platform-themes-default-error-404.component-7MVLMwIa.mjs} +4 -4
- package/fesm2022/acorex-platform-themes-default-error-404.component-7MVLMwIa.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-error-offline.component-DR6G8gPC.mjs +19 -0
- package/fesm2022/acorex-platform-themes-default-error-offline.component-DR6G8gPC.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default.mjs +1667 -61
- package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-shared-icon-chooser-column.component-Cmju9l91.mjs → acorex-platform-themes-shared-icon-chooser-column.component-CqkWJYdv.mjs} +6 -6
- package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-CqkWJYdv.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-shared-icon-chooser-view.component-Cp5Th57U.mjs → acorex-platform-themes-shared-icon-chooser-view.component-BOTuLdWN.mjs} +6 -6
- package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-BOTuLdWN.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-column.component-BQxoUmYL.mjs → acorex-platform-themes-shared-theme-color-chooser-column.component-CHfrTtol.mjs} +4 -4
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-CHfrTtol.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-view.component-CTGy2kjJ.mjs → acorex-platform-themes-shared-theme-color-chooser-view.component-BSmvnUVq.mjs} +9 -9
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-BSmvnUVq.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-shared.mjs +231 -227
- package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
- package/fesm2022/acorex-platform-workflow.mjs +208 -91
- package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
- package/fesm2022/acorex-platform.mjs.map +1 -1
- package/package.json +34 -34
- package/{auth/index.d.ts → types/acorex-platform-auth.d.ts} +14 -2
- package/{common/index.d.ts → types/acorex-platform-common.d.ts} +189 -16
- package/{core/index.d.ts → types/acorex-platform-core.d.ts} +178 -15
- package/{domain/index.d.ts → types/acorex-platform-domain.d.ts} +719 -413
- package/{layout/builder/index.d.ts → types/acorex-platform-layout-builder.d.ts} +91 -42
- package/{layout/components/index.d.ts → types/acorex-platform-layout-components.d.ts} +893 -138
- package/{layout/designer/index.d.ts → types/acorex-platform-layout-designer.d.ts} +9 -3
- package/{layout/entity/index.d.ts → types/acorex-platform-layout-entity.d.ts} +515 -26
- package/{layout/views/index.d.ts → types/acorex-platform-layout-views.d.ts} +44 -9
- package/{layout/widget-core/index.d.ts → types/acorex-platform-layout-widget-core.d.ts} +146 -95
- package/{layout/widgets/index.d.ts → types/acorex-platform-layout-widgets.d.ts} +506 -98
- package/{native/index.d.ts → types/acorex-platform-native.d.ts} +0 -7
- package/{runtime/index.d.ts → types/acorex-platform-runtime.d.ts} +237 -74
- package/{themes/default/index.d.ts → types/acorex-platform-themes-default.d.ts} +104 -4
- package/{workflow/index.d.ts → types/acorex-platform-workflow.d.ts} +33 -30
- package/fesm2022/acorex-platform-common-common-settings.provider-gyb6ohAE.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-Cb6Lk4Ch.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-Dnbx_uY7.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-B0omAUil.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-D-HFZHNZ.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-q30grR3z.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-fcCirNxz.mjs +0 -111
- package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-fcCirNxz.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-BJh1QJqp.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component--rzP7scF.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-DHlgsHa7.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-D_ex0nL2.mjs +0 -160
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-D_ex0nL2.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-BhDLyC5P.mjs +0 -1611
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-BhDLyC5P.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-CgLUnYRq.mjs +0 -99
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-CgLUnYRq.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-di5w_3K2.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-error-401.component-D9NZ-6L_.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-error-404.component-CgB_tlPU.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-error-offline.component-DlUrqVmj.mjs +0 -19
- package/fesm2022/acorex-platform-themes-default-error-offline.component-DlUrqVmj.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-Cmju9l91.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-Cp5Th57U.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-BQxoUmYL.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-CTGy2kjJ.mjs.map +0 -1
- /package/{themes/shared/index.d.ts → types/acorex-platform-themes-shared.d.ts} +0 -0
- /package/{index.d.ts → types/acorex-platform.d.ts} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken, inject, Injectable, Injector, makeEnvironmentProviders, NgModule, ErrorHandler, EventEmitter, Input, Output, Directive, Component, ViewEncapsulation, Inject, runInInjectionContext,
|
|
2
|
+
import { InjectionToken, inject, Injectable, Injector, signal, makeEnvironmentProviders, NgModule, ErrorHandler, EventEmitter, Input, Output, Directive, ChangeDetectionStrategy, Component, ViewEncapsulation, Inject, runInInjectionContext, model, linkedSignal, afterNextRender } from '@angular/core';
|
|
3
3
|
import { kebabCase, merge, sortBy, cloneDeep, get, omit } from 'lodash-es';
|
|
4
4
|
import { Router, ROUTES, RouterModule } from '@angular/router';
|
|
5
5
|
import { AXPSessionService, AXPSessionStatus } from '@acorex/platform/auth';
|
|
@@ -12,6 +12,7 @@ import { AXToastService, AXToastModule } from '@acorex/components/toast';
|
|
|
12
12
|
import { AXDateTimeModule } from '@acorex/core/date-time';
|
|
13
13
|
import * as i1 from '@acorex/platform/workflow';
|
|
14
14
|
import { AXPWorkflowService, createWorkFlowEvent, AXPWorkflowAction, AXPWorkflowError, AXPWorkflowModule } from '@acorex/platform/workflow';
|
|
15
|
+
import { AXDataSource } from '@acorex/cdk/common';
|
|
15
16
|
import { AXPCommandExecutor, AXPCommandService } from '@acorex/platform/runtime';
|
|
16
17
|
import { signalStore, withState, withMethods, patchState, withHooks } from '@ngrx/signals';
|
|
17
18
|
import { AXFormatService } from '@acorex/core/format';
|
|
@@ -55,10 +56,10 @@ class AXPAppVersionService {
|
|
|
55
56
|
async getAppVersion() {
|
|
56
57
|
return this.provider.provider();
|
|
57
58
|
}
|
|
58
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
59
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
59
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPAppVersionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
60
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPAppVersionService, providedIn: 'root' }); }
|
|
60
61
|
}
|
|
61
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
62
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPAppVersionService, decorators: [{
|
|
62
63
|
type: Injectable,
|
|
63
64
|
args: [{
|
|
64
65
|
providedIn: 'root',
|
|
@@ -127,6 +128,13 @@ function createAllQueryView(params = {
|
|
|
127
128
|
sorts: params.sorts ?? [],
|
|
128
129
|
});
|
|
129
130
|
}
|
|
131
|
+
// new version
|
|
132
|
+
var AXPEntityType;
|
|
133
|
+
(function (AXPEntityType) {
|
|
134
|
+
AXPEntityType[AXPEntityType["Entity"] = 0] = "Entity";
|
|
135
|
+
AXPEntityType[AXPEntityType["AggregateRoot"] = 1] = "AggregateRoot";
|
|
136
|
+
AXPEntityType[AXPEntityType["ValueObject"] = 2] = "ValueObject";
|
|
137
|
+
})(AXPEntityType || (AXPEntityType = {}));
|
|
130
138
|
|
|
131
139
|
const EQ_OPER = { name: 'equal', title: '@general:terms.operators.equal', hasValue: true };
|
|
132
140
|
const NOT_EQ_OPER = { name: 'notEqual', title: '@general:terms.operators.not-equal', hasValue: true };
|
|
@@ -201,6 +209,120 @@ const AXP_HOME_PAGE_DEFAULT_KEY = new InjectionToken('AXP_HOME_PAGE_DEFAULT_KEY'
|
|
|
201
209
|
factory: () => 'home'
|
|
202
210
|
});
|
|
203
211
|
|
|
212
|
+
/**
|
|
213
|
+
* Regional and locale-related setting keys used by platform widgets and components.
|
|
214
|
+
* Most values use the `LocaleManagement:Setting:Regional.*` prefix; definitions live in the locale-management module where applicable.
|
|
215
|
+
*/
|
|
216
|
+
var AXPRegionalSetting;
|
|
217
|
+
(function (AXPRegionalSetting) {
|
|
218
|
+
AXPRegionalSetting["LocaleProfile"] = "LocaleManagement:Setting:Regional.LocaleProfile";
|
|
219
|
+
AXPRegionalSetting["TimeZone"] = "LocaleManagement:Setting:Regional.TimeZone";
|
|
220
|
+
AXPRegionalSetting["Language"] = "LocaleManagement:Setting:Regional.Language";
|
|
221
|
+
AXPRegionalSetting["Country"] = "LocaleManagement:Setting:Regional.Country";
|
|
222
|
+
AXPRegionalSetting["Calendar"] = "LocaleManagement:Setting:Regional.Calendar";
|
|
223
|
+
AXPRegionalSetting["FirstDayOfWeek"] = "LocaleManagement:Setting:Regional.FirstDayOfWeek";
|
|
224
|
+
AXPRegionalSetting["WeekendDays"] = "LocaleManagement:Setting:Regional.WeekendDays";
|
|
225
|
+
AXPRegionalSetting["ShortDate"] = "LocaleManagement:Setting:Regional.ShortDate";
|
|
226
|
+
AXPRegionalSetting["MediumDate"] = "LocaleManagement:Setting:Regional.MediumDate";
|
|
227
|
+
AXPRegionalSetting["LongDate"] = "LocaleManagement:Setting:Regional.LongDate";
|
|
228
|
+
AXPRegionalSetting["ShortTime"] = "LocaleManagement:Setting:Regional.ShortTime";
|
|
229
|
+
AXPRegionalSetting["MediumTime"] = "LocaleManagement:Setting:Regional.MediumTime";
|
|
230
|
+
AXPRegionalSetting["LongTime"] = "LocaleManagement:Setting:Regional.LongTime";
|
|
231
|
+
AXPRegionalSetting["MeasurementUnits"] = "LocaleManagement:Setting:Regional.MeasurementUnits";
|
|
232
|
+
AXPRegionalSetting["TemperatureUnits"] = "LocaleManagement:Setting:Regional.TemperatureUnits";
|
|
233
|
+
AXPRegionalSetting["DistanceUnits"] = "LocaleManagement:Setting:Regional.DistanceUnits";
|
|
234
|
+
AXPRegionalSetting["WeightUnits"] = "LocaleManagement:Setting:Regional.WeightUnits";
|
|
235
|
+
AXPRegionalSetting["VolumeUnits"] = "LocaleManagement:Setting:Regional.VolumeUnits";
|
|
236
|
+
AXPRegionalSetting["SpeedUnits"] = "LocaleManagement:Setting:Regional.SpeedUnits";
|
|
237
|
+
AXPRegionalSetting["AreaUnits"] = "LocaleManagement:Setting:Regional.AreaUnits";
|
|
238
|
+
/** Default multi-language behavior for standard text field names; defined in locale-management `AXMRegionalSettingProvider`. */
|
|
239
|
+
AXPRegionalSetting["MultiLanguageSupport"] = "LocaleManagement:Setting:Regional.MultiLanguageSupport";
|
|
240
|
+
})(AXPRegionalSetting || (AXPRegionalSetting = {}));
|
|
241
|
+
|
|
242
|
+
const AXP_SETTING_VALUE_PROVIDER = new InjectionToken('AXP_SETTING_VALUE_PROVIDER', {
|
|
243
|
+
providedIn: 'root',
|
|
244
|
+
factory: () => {
|
|
245
|
+
const injector = inject(Injector);
|
|
246
|
+
return [
|
|
247
|
+
new AXPSettingValueProviderDefault(AXPPlatformScope.Platform, injector),
|
|
248
|
+
new AXPSettingValueProviderDefault(AXPPlatformScope.Tenant, injector),
|
|
249
|
+
new AXPSettingValueProviderDefault(AXPPlatformScope.User, injector)
|
|
250
|
+
];
|
|
251
|
+
}
|
|
252
|
+
});
|
|
253
|
+
class AXPSettingValueProviderDefault {
|
|
254
|
+
constructor(_scope, injector) {
|
|
255
|
+
this._scope = _scope;
|
|
256
|
+
this.injector = injector;
|
|
257
|
+
this.cache = new Map();
|
|
258
|
+
this.localStorageKey = null;
|
|
259
|
+
this.sessionService = this.injector.get(AXPSessionService);
|
|
260
|
+
// Platform scope doesn't depend on session, initialize immediately
|
|
261
|
+
if (this.scope === AXPPlatformScope.Platform) {
|
|
262
|
+
this.localStorageKey = `AXP_SETTINGS_SCOPE(P)`;
|
|
263
|
+
}
|
|
264
|
+
else {
|
|
265
|
+
this.sessionService.status$.subscribe((status) => {
|
|
266
|
+
if (status === AXPSessionStatus.Authorized || status === AXPSessionStatus.Authenticated) {
|
|
267
|
+
if (this.scope === AXPPlatformScope.User) {
|
|
268
|
+
this.localStorageKey = `AXP_SETTINGS_SCOPE(${this.sessionService.user?.id ?? 'U'})`;
|
|
269
|
+
}
|
|
270
|
+
else if (this.scope === AXPPlatformScope.Tenant) {
|
|
271
|
+
this.localStorageKey = `AXP_SETTINGS_SCOPE(${this.sessionService.tenant?.id ?? 'T'})`;
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
});
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
get scope() {
|
|
278
|
+
return this._scope;
|
|
279
|
+
}
|
|
280
|
+
async load() {
|
|
281
|
+
if (!this.localStorageKey) {
|
|
282
|
+
return Promise.resolve([]);
|
|
283
|
+
}
|
|
284
|
+
// Load settings from localStorage as a single key
|
|
285
|
+
const storedSettings = localStorage.getItem(this.localStorageKey);
|
|
286
|
+
if (storedSettings) {
|
|
287
|
+
const parsedSettings = JSON.parse(storedSettings);
|
|
288
|
+
Object.entries(parsedSettings).forEach(([key, value]) => {
|
|
289
|
+
this.cache.set(key, value);
|
|
290
|
+
});
|
|
291
|
+
return Promise.resolve(Array.from(this.cache.entries()).map(c => ({ key: c[0], value: c[1] })));
|
|
292
|
+
}
|
|
293
|
+
return Promise.resolve([]);
|
|
294
|
+
}
|
|
295
|
+
async set(keyOrValues, value) {
|
|
296
|
+
if (typeof keyOrValues === 'string') {
|
|
297
|
+
// Single value update
|
|
298
|
+
this.cache.set(keyOrValues, value);
|
|
299
|
+
}
|
|
300
|
+
else {
|
|
301
|
+
// Bulk update
|
|
302
|
+
for (const [key, val] of Object.entries(keyOrValues)) {
|
|
303
|
+
this.cache.set(key, val);
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
await this.saveToLocalStorage();
|
|
307
|
+
}
|
|
308
|
+
async saveToLocalStorage() {
|
|
309
|
+
if (!this.localStorageKey) {
|
|
310
|
+
return;
|
|
311
|
+
}
|
|
312
|
+
const settingsObject = {};
|
|
313
|
+
this.cache.forEach((value, key) => {
|
|
314
|
+
settingsObject[key] = value;
|
|
315
|
+
});
|
|
316
|
+
localStorage.setItem(this.localStorageKey, JSON.stringify(settingsObject));
|
|
317
|
+
}
|
|
318
|
+
async clear() {
|
|
319
|
+
if (!this.localStorageKey) {
|
|
320
|
+
return;
|
|
321
|
+
}
|
|
322
|
+
localStorage.removeItem(this.localStorageKey);
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
|
|
204
326
|
class AXPSettingDefinitionProviderContext {
|
|
205
327
|
constructor() {
|
|
206
328
|
this.rootGroups = [];
|
|
@@ -434,10 +556,10 @@ class AXPSettingDefinitionProviderService {
|
|
|
434
556
|
sections: []
|
|
435
557
|
};
|
|
436
558
|
}
|
|
437
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
438
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
559
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPSettingDefinitionProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
560
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPSettingDefinitionProviderService, providedIn: 'root' }); }
|
|
439
561
|
}
|
|
440
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
562
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPSettingDefinitionProviderService, decorators: [{
|
|
441
563
|
type: Injectable,
|
|
442
564
|
args: [{ providedIn: 'root' }]
|
|
443
565
|
}] });
|
|
@@ -467,98 +589,14 @@ class AXPSettingDefaultValuesAggregatorService {
|
|
|
467
589
|
}
|
|
468
590
|
return merged;
|
|
469
591
|
}
|
|
470
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
471
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
592
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPSettingDefaultValuesAggregatorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
593
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPSettingDefaultValuesAggregatorService, providedIn: 'root' }); }
|
|
472
594
|
}
|
|
473
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
595
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPSettingDefaultValuesAggregatorService, decorators: [{
|
|
474
596
|
type: Injectable,
|
|
475
597
|
args: [{ providedIn: 'root' }]
|
|
476
598
|
}] });
|
|
477
599
|
|
|
478
|
-
const AXP_SETTING_VALUE_PROVIDER = new InjectionToken('AXP_SETTING_VALUE_PROVIDER', {
|
|
479
|
-
providedIn: 'root',
|
|
480
|
-
factory: () => {
|
|
481
|
-
const injector = inject(Injector);
|
|
482
|
-
return [
|
|
483
|
-
new AXPSettingValueProviderDefault(AXPPlatformScope.Platform, injector),
|
|
484
|
-
new AXPSettingValueProviderDefault(AXPPlatformScope.Tenant, injector),
|
|
485
|
-
new AXPSettingValueProviderDefault(AXPPlatformScope.User, injector)
|
|
486
|
-
];
|
|
487
|
-
}
|
|
488
|
-
});
|
|
489
|
-
class AXPSettingValueProviderDefault {
|
|
490
|
-
constructor(_scope, injector) {
|
|
491
|
-
this._scope = _scope;
|
|
492
|
-
this.injector = injector;
|
|
493
|
-
this.cache = new Map();
|
|
494
|
-
this.localStorageKey = null;
|
|
495
|
-
this.sessionService = this.injector.get(AXPSessionService);
|
|
496
|
-
// Platform scope doesn't depend on session, initialize immediately
|
|
497
|
-
if (this.scope === AXPPlatformScope.Platform) {
|
|
498
|
-
this.localStorageKey = `AXP_SETTINGS_SCOPE(P)`;
|
|
499
|
-
}
|
|
500
|
-
else {
|
|
501
|
-
this.sessionService.status$.subscribe((status) => {
|
|
502
|
-
if (status === AXPSessionStatus.Authorized || status === AXPSessionStatus.Authenticated) {
|
|
503
|
-
if (this.scope === AXPPlatformScope.User) {
|
|
504
|
-
this.localStorageKey = `AXP_SETTINGS_SCOPE(${this.sessionService.user?.id ?? 'U'})`;
|
|
505
|
-
}
|
|
506
|
-
else if (this.scope === AXPPlatformScope.Tenant) {
|
|
507
|
-
this.localStorageKey = `AXP_SETTINGS_SCOPE(${this.sessionService.tenant?.id ?? 'T'})`;
|
|
508
|
-
}
|
|
509
|
-
}
|
|
510
|
-
});
|
|
511
|
-
}
|
|
512
|
-
}
|
|
513
|
-
get scope() {
|
|
514
|
-
return this._scope;
|
|
515
|
-
}
|
|
516
|
-
async load() {
|
|
517
|
-
if (!this.localStorageKey) {
|
|
518
|
-
return Promise.resolve([]);
|
|
519
|
-
}
|
|
520
|
-
// Load settings from localStorage as a single key
|
|
521
|
-
const storedSettings = localStorage.getItem(this.localStorageKey);
|
|
522
|
-
if (storedSettings) {
|
|
523
|
-
const parsedSettings = JSON.parse(storedSettings);
|
|
524
|
-
Object.entries(parsedSettings).forEach(([key, value]) => {
|
|
525
|
-
this.cache.set(key, value);
|
|
526
|
-
});
|
|
527
|
-
return Promise.resolve(Array.from(this.cache.entries()).map(c => ({ key: c[0], value: c[1] })));
|
|
528
|
-
}
|
|
529
|
-
return Promise.resolve([]);
|
|
530
|
-
}
|
|
531
|
-
async set(keyOrValues, value) {
|
|
532
|
-
if (typeof keyOrValues === 'string') {
|
|
533
|
-
// Single value update
|
|
534
|
-
this.cache.set(keyOrValues, value);
|
|
535
|
-
}
|
|
536
|
-
else {
|
|
537
|
-
// Bulk update
|
|
538
|
-
for (const [key, val] of Object.entries(keyOrValues)) {
|
|
539
|
-
this.cache.set(key, val);
|
|
540
|
-
}
|
|
541
|
-
}
|
|
542
|
-
await this.saveToLocalStorage();
|
|
543
|
-
}
|
|
544
|
-
async saveToLocalStorage() {
|
|
545
|
-
if (!this.localStorageKey) {
|
|
546
|
-
return;
|
|
547
|
-
}
|
|
548
|
-
const settingsObject = {};
|
|
549
|
-
this.cache.forEach((value, key) => {
|
|
550
|
-
settingsObject[key] = value;
|
|
551
|
-
});
|
|
552
|
-
localStorage.setItem(this.localStorageKey, JSON.stringify(settingsObject));
|
|
553
|
-
}
|
|
554
|
-
async clear() {
|
|
555
|
-
if (!this.localStorageKey) {
|
|
556
|
-
return;
|
|
557
|
-
}
|
|
558
|
-
localStorage.removeItem(this.localStorageKey);
|
|
559
|
-
}
|
|
560
|
-
}
|
|
561
|
-
|
|
562
600
|
class AXPSettingsService {
|
|
563
601
|
constructor() {
|
|
564
602
|
this.providers = inject(AXP_SETTING_VALUE_PROVIDER);
|
|
@@ -676,10 +714,10 @@ class AXPSettingsService {
|
|
|
676
714
|
this.onChanged.next(event);
|
|
677
715
|
this.eventService.publish('AXPSettingChangedEvent', event);
|
|
678
716
|
}
|
|
679
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
680
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
717
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPSettingsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
718
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPSettingsService, providedIn: 'root' }); }
|
|
681
719
|
}
|
|
682
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
720
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPSettingsService, decorators: [{
|
|
683
721
|
type: Injectable,
|
|
684
722
|
args: [{
|
|
685
723
|
providedIn: 'root',
|
|
@@ -735,34 +773,219 @@ class ScopedSettingService {
|
|
|
735
773
|
}
|
|
736
774
|
}
|
|
737
775
|
|
|
776
|
+
const DEFAULT_APPLY_DEFAULT_MULTILANGUAGE = true;
|
|
738
777
|
/**
|
|
739
|
-
*
|
|
740
|
-
*
|
|
741
|
-
*
|
|
778
|
+
* Synchronous access to default multi-language behavior for named entity fields and widget
|
|
779
|
+
* property bindings. Mirrors {@link AXPLayoutOrderingConfigService}: avoids async in entity
|
|
780
|
+
* modifiers and startup deadlocks.
|
|
742
781
|
*/
|
|
743
|
-
|
|
744
|
-
(
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
}
|
|
782
|
+
class AXPDefaultMultiLanguageConfigService {
|
|
783
|
+
constructor() {
|
|
784
|
+
this.settingsService = inject(AXPSettingsService);
|
|
785
|
+
this._applyDefault = signal(DEFAULT_APPLY_DEFAULT_MULTILANGUAGE, ...(ngDevMode ? [{ debugName: "_applyDefault" }] : /* istanbul ignore next */ []));
|
|
786
|
+
this.syncScheduled = false;
|
|
787
|
+
this.settingsService.onLoaded.subscribe(() => this.syncFromSettings());
|
|
788
|
+
this.settingsService.onChanged.subscribe(() => this.syncFromSettings());
|
|
789
|
+
}
|
|
790
|
+
getApplyDefaultMultiLanguage() {
|
|
791
|
+
if (!this.syncScheduled) {
|
|
792
|
+
this.syncScheduled = true;
|
|
793
|
+
this.settingsService
|
|
794
|
+
.get(AXPRegionalSetting.MultiLanguageSupport)
|
|
795
|
+
.then((value) => this._applyDefault.set(value ?? DEFAULT_APPLY_DEFAULT_MULTILANGUAGE))
|
|
796
|
+
.catch(() => this._applyDefault.set(DEFAULT_APPLY_DEFAULT_MULTILANGUAGE));
|
|
797
|
+
}
|
|
798
|
+
return this._applyDefault();
|
|
799
|
+
}
|
|
800
|
+
async syncFromSettings() {
|
|
801
|
+
try {
|
|
802
|
+
const value = await this.settingsService.get(AXPRegionalSetting.MultiLanguageSupport);
|
|
803
|
+
this._applyDefault.set(value ?? DEFAULT_APPLY_DEFAULT_MULTILANGUAGE);
|
|
804
|
+
}
|
|
805
|
+
catch {
|
|
806
|
+
this._applyDefault.set(DEFAULT_APPLY_DEFAULT_MULTILANGUAGE);
|
|
807
|
+
}
|
|
808
|
+
}
|
|
809
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPDefaultMultiLanguageConfigService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
810
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPDefaultMultiLanguageConfigService, providedIn: 'root' }); }
|
|
811
|
+
}
|
|
812
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPDefaultMultiLanguageConfigService, decorators: [{
|
|
813
|
+
type: Injectable,
|
|
814
|
+
args: [{ providedIn: 'root' }]
|
|
815
|
+
}], ctorParameters: () => [] });
|
|
816
|
+
|
|
817
|
+
//#region ---- Constants ----
|
|
818
|
+
/**
|
|
819
|
+
* Widget types that support the multiLanguage option (text / rich text editors).
|
|
820
|
+
*/
|
|
821
|
+
const MULTILANGUAGE_CAPABLE_WIDGET_TYPES = new Set([
|
|
822
|
+
'text-editor',
|
|
823
|
+
'large-text-editor',
|
|
824
|
+
'rich-text-editor',
|
|
825
|
+
'template-content-editor',
|
|
826
|
+
]);
|
|
827
|
+
/**
|
|
828
|
+
* Common property names / binding path segments that are usually translatable when the feature is
|
|
829
|
+
* enabled in settings. Explicit `multiLanguage` on the property still wins.
|
|
830
|
+
*/
|
|
831
|
+
const DEFAULT_MULTILANGUAGE_FIELD_NAMES = new Set([
|
|
832
|
+
'title',
|
|
833
|
+
'description',
|
|
834
|
+
'note',
|
|
835
|
+
'content',
|
|
836
|
+
/** e.g. `post.summaryContent` — last path segment */
|
|
837
|
+
'summaryContent',
|
|
838
|
+
'question',
|
|
839
|
+
'summary',
|
|
840
|
+
'body',
|
|
841
|
+
'caption',
|
|
842
|
+
'remarks',
|
|
843
|
+
'subtitle',
|
|
844
|
+
'label',
|
|
845
|
+
'placeholder',
|
|
846
|
+
'message',
|
|
847
|
+
'subject',
|
|
848
|
+
]);
|
|
849
|
+
//#endregion
|
|
850
|
+
//#region ---- Helpers ----
|
|
851
|
+
function interfacePathLastSegment(path) {
|
|
852
|
+
if (path == null || typeof path !== 'string' || !path.length) {
|
|
853
|
+
return null;
|
|
854
|
+
}
|
|
855
|
+
const seg = path.includes('.') ? path.split('.').pop() : path;
|
|
856
|
+
return seg && seg.length ? seg : null;
|
|
857
|
+
}
|
|
858
|
+
function shouldApplyDefaultMultiLanguageToEntityProperty(prop) {
|
|
859
|
+
if (prop.schema.dataType !== 'string') {
|
|
860
|
+
return false;
|
|
861
|
+
}
|
|
862
|
+
if (!DEFAULT_MULTILANGUAGE_FIELD_NAMES.has(prop.name)) {
|
|
863
|
+
return false;
|
|
864
|
+
}
|
|
865
|
+
const widgetType = prop.schema.interface?.type;
|
|
866
|
+
if (typeof widgetType !== 'string' || !MULTILANGUAGE_CAPABLE_WIDGET_TYPES.has(widgetType)) {
|
|
867
|
+
return false;
|
|
868
|
+
}
|
|
869
|
+
const opts = prop.schema.interface?.options;
|
|
870
|
+
if (opts && 'multiLanguage' in opts) {
|
|
871
|
+
return false;
|
|
872
|
+
}
|
|
873
|
+
return true;
|
|
874
|
+
}
|
|
875
|
+
function shouldApplyDefaultMultiLanguageToWidgetProperty(prop) {
|
|
876
|
+
if (prop.schema.dataType !== 'string') {
|
|
877
|
+
return false;
|
|
878
|
+
}
|
|
879
|
+
const key = interfacePathLastSegment(prop.schema.interface.path);
|
|
880
|
+
if (!key || !DEFAULT_MULTILANGUAGE_FIELD_NAMES.has(key)) {
|
|
881
|
+
return false;
|
|
882
|
+
}
|
|
883
|
+
const widgetType = prop.schema.interface.type;
|
|
884
|
+
if (typeof widgetType !== 'string' || !MULTILANGUAGE_CAPABLE_WIDGET_TYPES.has(widgetType)) {
|
|
885
|
+
return false;
|
|
886
|
+
}
|
|
887
|
+
const opts = prop.schema.interface.options;
|
|
888
|
+
if (opts && 'multiLanguage' in opts) {
|
|
889
|
+
return false;
|
|
890
|
+
}
|
|
891
|
+
return true;
|
|
892
|
+
}
|
|
893
|
+
/**
|
|
894
|
+
* Leaf widget nodes in entity `schema.interface` trees (e.g. GridLayout → RichText under `pre` /
|
|
895
|
+
* `post`) — same path/type rules as {@link shouldApplyDefaultMultiLanguageToWidgetProperty}, without
|
|
896
|
+
* `schema.dataType` (nodes do not carry entity schema).
|
|
897
|
+
*/
|
|
898
|
+
function shouldApplyDefaultMultiLanguageToWidgetNode(node) {
|
|
899
|
+
const widgetType = node.type;
|
|
900
|
+
if (typeof widgetType !== 'string' || !MULTILANGUAGE_CAPABLE_WIDGET_TYPES.has(widgetType)) {
|
|
901
|
+
return false;
|
|
902
|
+
}
|
|
903
|
+
const key = interfacePathLastSegment(node.path);
|
|
904
|
+
if (!key || !DEFAULT_MULTILANGUAGE_FIELD_NAMES.has(key)) {
|
|
905
|
+
return false;
|
|
906
|
+
}
|
|
907
|
+
const opts = node.options;
|
|
908
|
+
if (opts && 'multiLanguage' in opts) {
|
|
909
|
+
return false;
|
|
910
|
+
}
|
|
911
|
+
return true;
|
|
912
|
+
}
|
|
913
|
+
/**
|
|
914
|
+
* When {@link AXPDefaultMultiLanguageConfigService#getApplyDefaultMultiLanguage} is true, sets
|
|
915
|
+
* `options.multiLanguage` on eligible editor leaves inside an entity property's widget tree
|
|
916
|
+
* (including nested layouts). Used by entity middleware so object fields (e.g. `pre`, `post`) are
|
|
917
|
+
* covered, not only top-level string properties.
|
|
918
|
+
*/
|
|
919
|
+
function withDefaultMultiLanguageOnWidgetNodeTree(root, applyDefault) {
|
|
920
|
+
if (root == null || !applyDefault) {
|
|
921
|
+
return root ?? undefined;
|
|
922
|
+
}
|
|
923
|
+
return visitWidgetNodeForDefaultMultiLanguage(root);
|
|
924
|
+
}
|
|
925
|
+
function visitWidgetNodeForDefaultMultiLanguage(node) {
|
|
926
|
+
let next = node;
|
|
927
|
+
if (node.children?.length) {
|
|
928
|
+
const newChildren = node.children.map((child) => visitWidgetNodeForDefaultMultiLanguage(child));
|
|
929
|
+
if (newChildren.some((c, i) => c !== node.children[i])) {
|
|
930
|
+
next = { ...node, children: newChildren };
|
|
931
|
+
}
|
|
932
|
+
}
|
|
933
|
+
if (shouldApplyDefaultMultiLanguageToWidgetNode(next)) {
|
|
934
|
+
return {
|
|
935
|
+
...next,
|
|
936
|
+
options: {
|
|
937
|
+
...(next.options ?? {}),
|
|
938
|
+
multiLanguage: true,
|
|
939
|
+
},
|
|
940
|
+
};
|
|
941
|
+
}
|
|
942
|
+
return next;
|
|
943
|
+
}
|
|
944
|
+
/**
|
|
945
|
+
* When {@link AXPDefaultMultiLanguageConfigService#getApplyDefaultMultiLanguage} is true, sets
|
|
946
|
+
* `schema.interface.options.multiLanguage` for eligible string widget properties (same rules as
|
|
947
|
+
* entity middleware), unless the property already specifies `multiLanguage`.
|
|
948
|
+
*/
|
|
949
|
+
function withDefaultMultiLanguageOnWidgetProperty(prop, applyDefault) {
|
|
950
|
+
if (!applyDefault || !shouldApplyDefaultMultiLanguageToWidgetProperty(prop)) {
|
|
951
|
+
return prop;
|
|
952
|
+
}
|
|
953
|
+
const iface = prop.schema.interface;
|
|
954
|
+
const existingOpts = (iface.options ?? {});
|
|
955
|
+
return {
|
|
956
|
+
...prop,
|
|
957
|
+
schema: {
|
|
958
|
+
...prop.schema,
|
|
959
|
+
interface: {
|
|
960
|
+
...iface,
|
|
961
|
+
options: {
|
|
962
|
+
...existingOpts,
|
|
963
|
+
multiLanguage: true,
|
|
964
|
+
},
|
|
965
|
+
},
|
|
966
|
+
},
|
|
967
|
+
};
|
|
968
|
+
}
|
|
969
|
+
//#endregion
|
|
970
|
+
|
|
971
|
+
//#region ---- Settings expression scope ----
|
|
972
|
+
/**
|
|
973
|
+
* Exposes platform settings in expression strings, e.g.
|
|
974
|
+
* `{{ settings.get('Common:Setting:Entity.ShowPageBadge') }}`.
|
|
975
|
+
*/
|
|
976
|
+
class AXPSettingsEvaluatorScopeProvider {
|
|
977
|
+
constructor() {
|
|
978
|
+
this.settingsService = inject(AXPSettingsService);
|
|
979
|
+
}
|
|
980
|
+
async provide(context) {
|
|
981
|
+
context.addScope('settings', {
|
|
982
|
+
get: async (key) => {
|
|
983
|
+
return await this.settingsService.get(key);
|
|
984
|
+
},
|
|
985
|
+
});
|
|
986
|
+
}
|
|
987
|
+
}
|
|
988
|
+
//#endregion
|
|
766
989
|
|
|
767
990
|
var AXPHomePageSettings;
|
|
768
991
|
(function (AXPHomePageSettings) {
|
|
@@ -820,9 +1043,7 @@ class AXPHomePageService {
|
|
|
820
1043
|
{ ...home?.route, ...{ data: { key: home?.key, title: home?.title, path: fullPath } } },
|
|
821
1044
|
];
|
|
822
1045
|
}
|
|
823
|
-
return [
|
|
824
|
-
{ path: '', redirectTo: this.loginPath, pathMatch: 'full' },
|
|
825
|
-
];
|
|
1046
|
+
return [{ path: '', redirectTo: this.loginPath, pathMatch: 'full' }];
|
|
826
1047
|
}
|
|
827
1048
|
getCurrent() {
|
|
828
1049
|
const key = this.userHomePageKey ?? this.defaultHomePageKey;
|
|
@@ -870,30 +1091,24 @@ class AXPHomePageService {
|
|
|
870
1091
|
// Filter the original routes to drop the old home placeholders.
|
|
871
1092
|
// We know your dynamic routes always have path === '' or ':app'
|
|
872
1093
|
// or carry a `data.key` matching one of your home-page keys.
|
|
873
|
-
const otherRoutes = (this.originalConfig ?? [])
|
|
874
|
-
.filter(r => r.path !== '' &&
|
|
875
|
-
r.path !== ':app' &&
|
|
876
|
-
!(r.data && typeof r.data['key'] === 'string'));
|
|
1094
|
+
const otherRoutes = (this.originalConfig ?? []).filter((r) => r.path !== '' && r.path !== ':app' && !(r.data && typeof r.data['key'] === 'string'));
|
|
877
1095
|
// Build the new merged tree
|
|
878
|
-
const merged = [
|
|
879
|
-
...newHomeRoutes,
|
|
880
|
-
...otherRoutes
|
|
881
|
-
];
|
|
1096
|
+
const merged = [...newHomeRoutes, ...otherRoutes];
|
|
882
1097
|
// TODO: check this for custom menu like :app/terms
|
|
883
1098
|
router.resetConfig(merged);
|
|
884
1099
|
}
|
|
885
1100
|
async navigateTo() {
|
|
886
|
-
// wait for the router to be initialized
|
|
1101
|
+
// wait for the router to be initialized
|
|
887
1102
|
setTimeout(() => {
|
|
888
1103
|
const router = this.injector.get(Router);
|
|
889
1104
|
const current = this.getCurrent();
|
|
890
1105
|
router.navigate([current.path], { onSameUrlNavigation: 'reload' });
|
|
891
1106
|
}, 100);
|
|
892
1107
|
}
|
|
893
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
894
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1108
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPHomePageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1109
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPHomePageService, providedIn: 'root' }); }
|
|
895
1110
|
}
|
|
896
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1111
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPHomePageService, decorators: [{
|
|
897
1112
|
type: Injectable,
|
|
898
1113
|
args: [{
|
|
899
1114
|
providedIn: 'root',
|
|
@@ -955,17 +1170,17 @@ class AXPHomePageSettingProvider {
|
|
|
955
1170
|
// End the 'General Settings' group
|
|
956
1171
|
.endGroup();
|
|
957
1172
|
}
|
|
958
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
959
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1173
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPHomePageSettingProvider, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1174
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPHomePageSettingProvider }); }
|
|
960
1175
|
}
|
|
961
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1176
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPHomePageSettingProvider, decorators: [{
|
|
962
1177
|
type: Injectable
|
|
963
1178
|
}], ctorParameters: () => [{ type: i0.Injector }] });
|
|
964
1179
|
|
|
965
1180
|
class AXPHomePageModule {
|
|
966
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
967
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
968
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
1181
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPHomePageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
1182
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.9", ngImport: i0, type: AXPHomePageModule }); }
|
|
1183
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPHomePageModule, providers: [
|
|
969
1184
|
{
|
|
970
1185
|
provide: AXP_SETTING_DEFINITION_PROVIDER,
|
|
971
1186
|
useClass: AXPHomePageSettingProvider,
|
|
@@ -973,7 +1188,7 @@ class AXPHomePageModule {
|
|
|
973
1188
|
},
|
|
974
1189
|
] }); }
|
|
975
1190
|
}
|
|
976
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1191
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPHomePageModule, decorators: [{
|
|
977
1192
|
type: NgModule,
|
|
978
1193
|
args: [{
|
|
979
1194
|
imports: [],
|
|
@@ -996,10 +1211,10 @@ class AXPCustomOperatorServiceImpl extends AXPCustomOperatorService {
|
|
|
996
1211
|
getCustomOperators() {
|
|
997
1212
|
return {};
|
|
998
1213
|
}
|
|
999
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1000
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1214
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPCustomOperatorServiceImpl, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1215
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPCustomOperatorServiceImpl }); }
|
|
1001
1216
|
}
|
|
1002
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1217
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPCustomOperatorServiceImpl, decorators: [{
|
|
1003
1218
|
type: Injectable
|
|
1004
1219
|
}] });
|
|
1005
1220
|
|
|
@@ -1044,10 +1259,10 @@ class AXPFilterOperatorMiddlewareServiceImpl extends AXPFilterOperatorMiddleware
|
|
|
1044
1259
|
return acc;
|
|
1045
1260
|
}, {});
|
|
1046
1261
|
}
|
|
1047
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1048
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1262
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPFilterOperatorMiddlewareServiceImpl, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1263
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPFilterOperatorMiddlewareServiceImpl }); }
|
|
1049
1264
|
}
|
|
1050
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1265
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPFilterOperatorMiddlewareServiceImpl, decorators: [{
|
|
1051
1266
|
type: Injectable
|
|
1052
1267
|
}] });
|
|
1053
1268
|
|
|
@@ -1068,10 +1283,10 @@ class AXPErrorHandlerRegistryService {
|
|
|
1068
1283
|
get handlers() {
|
|
1069
1284
|
return this.errorHandlers;
|
|
1070
1285
|
}
|
|
1071
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1072
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1286
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPErrorHandlerRegistryService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1287
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPErrorHandlerRegistryService, providedIn: 'root' }); }
|
|
1073
1288
|
}
|
|
1074
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1289
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPErrorHandlerRegistryService, decorators: [{
|
|
1075
1290
|
type: Injectable,
|
|
1076
1291
|
args: [{
|
|
1077
1292
|
providedIn: 'root'
|
|
@@ -1102,10 +1317,10 @@ class AXPGlobalErrorHandler extends ErrorHandler {
|
|
|
1102
1317
|
}
|
|
1103
1318
|
handleErrorRecursively(0, error);
|
|
1104
1319
|
}
|
|
1105
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1106
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1320
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPGlobalErrorHandler, deps: [{ token: i0.Injector }, { token: AXPErrorHandlerRegistryService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1321
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPGlobalErrorHandler, providedIn: 'root' }); }
|
|
1107
1322
|
}
|
|
1108
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1323
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPGlobalErrorHandler, decorators: [{
|
|
1109
1324
|
type: Injectable,
|
|
1110
1325
|
args: [{ providedIn: 'root' }]
|
|
1111
1326
|
}], ctorParameters: () => [{ type: i0.Injector }, { type: AXPErrorHandlerRegistryService }] });
|
|
@@ -1176,10 +1391,10 @@ class AXPTokenDefinitionService {
|
|
|
1176
1391
|
clearDefinitionsCache() {
|
|
1177
1392
|
this.definitionsByName.clear();
|
|
1178
1393
|
}
|
|
1179
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1180
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1394
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPTokenDefinitionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1395
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPTokenDefinitionService, providedIn: 'root' }); }
|
|
1181
1396
|
}
|
|
1182
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1397
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPTokenDefinitionService, decorators: [{
|
|
1183
1398
|
type: Injectable,
|
|
1184
1399
|
args: [{
|
|
1185
1400
|
providedIn: 'root',
|
|
@@ -1217,32 +1432,24 @@ class AXPStickyDirective {
|
|
|
1217
1432
|
this.stickyOffset = 100;
|
|
1218
1433
|
this.isStickyChange = new EventEmitter();
|
|
1219
1434
|
this._isSticky = false;
|
|
1435
|
+
this.onWindowResize = () => {
|
|
1436
|
+
this.applyStickyStateFromScrollPosition();
|
|
1437
|
+
};
|
|
1220
1438
|
this.onParentScroll = () => {
|
|
1221
|
-
this.
|
|
1222
|
-
const scrollTop = this.parentElement === window ? window.scrollY : this.parentElement.scrollTop;
|
|
1223
|
-
const shouldStick = scrollTop + this.stickyOffset >= this.topOffset;
|
|
1224
|
-
if (shouldStick !== this.isSticky) {
|
|
1225
|
-
this.zone.run(() => {
|
|
1226
|
-
this.isSticky = shouldStick;
|
|
1227
|
-
this.toggleStickyClasses(shouldStick);
|
|
1228
|
-
this.cdr.markForCheck();
|
|
1229
|
-
});
|
|
1230
|
-
}
|
|
1231
|
-
});
|
|
1439
|
+
this.applyStickyStateFromScrollPosition();
|
|
1232
1440
|
};
|
|
1233
1441
|
}
|
|
1234
1442
|
ngAfterViewInit() {
|
|
1235
1443
|
this.initSticky();
|
|
1236
1444
|
// Add mutation observer for dynamic content
|
|
1237
1445
|
this.mutationObserver = new MutationObserver(() => {
|
|
1238
|
-
this.
|
|
1446
|
+
this.applyStickyStateFromScrollPosition();
|
|
1239
1447
|
});
|
|
1240
1448
|
this.mutationObserver.observe(this.element.nativeElement, {
|
|
1241
1449
|
childList: true,
|
|
1242
1450
|
subtree: true,
|
|
1243
1451
|
});
|
|
1244
|
-
|
|
1245
|
-
window.addEventListener('resize', this.updateTopOffset.bind(this));
|
|
1452
|
+
window.addEventListener('resize', this.onWindowResize);
|
|
1246
1453
|
}
|
|
1247
1454
|
initSticky() {
|
|
1248
1455
|
if (this.stickyParent instanceof HTMLElement) {
|
|
@@ -1252,13 +1459,42 @@ class AXPStickyDirective {
|
|
|
1252
1459
|
this.parentElement = document.querySelector(this.stickyParent) || window;
|
|
1253
1460
|
}
|
|
1254
1461
|
this.targetElement = document.querySelector(this.stickyTarget) || this.element.nativeElement;
|
|
1255
|
-
this.updateTopOffset();
|
|
1256
1462
|
this.parentElement.addEventListener('scroll', this.onParentScroll);
|
|
1463
|
+
this.applyStickyStateFromScrollPosition();
|
|
1464
|
+
}
|
|
1465
|
+
getScrollTop() {
|
|
1466
|
+
return this.parentElement === window ? window.scrollY : this.parentElement.scrollTop;
|
|
1467
|
+
}
|
|
1468
|
+
/**
|
|
1469
|
+
* Toggle stuck styling only while this element is visually pinned (matches `position: sticky; top: 0`).
|
|
1470
|
+
* Scroll-offset thresholds would stay true for every section already passed, so multiple stacked stickies
|
|
1471
|
+
* would all keep `--stuck`; geometry fixes that.
|
|
1472
|
+
*/
|
|
1473
|
+
computeShouldStick() {
|
|
1474
|
+
if (this.getScrollTop() <= 0) {
|
|
1475
|
+
return false;
|
|
1476
|
+
}
|
|
1477
|
+
const tRect = this.targetElement.getBoundingClientRect();
|
|
1478
|
+
const epsilon = 3;
|
|
1479
|
+
let limitY;
|
|
1480
|
+
if (this.parentElement === window) {
|
|
1481
|
+
limitY = this.stickyOffset;
|
|
1482
|
+
}
|
|
1483
|
+
else {
|
|
1484
|
+
limitY = this.parentElement.getBoundingClientRect().top;
|
|
1485
|
+
}
|
|
1486
|
+
return tRect.top <= limitY + epsilon && tRect.top >= limitY - epsilon;
|
|
1257
1487
|
}
|
|
1258
|
-
|
|
1488
|
+
applyStickyStateFromScrollPosition() {
|
|
1259
1489
|
this.zone.runOutsideAngular(() => {
|
|
1260
|
-
const
|
|
1261
|
-
|
|
1490
|
+
const shouldStick = this.computeShouldStick();
|
|
1491
|
+
if (shouldStick !== this.isSticky) {
|
|
1492
|
+
this.zone.run(() => {
|
|
1493
|
+
this.isSticky = shouldStick;
|
|
1494
|
+
this.toggleStickyClasses(shouldStick);
|
|
1495
|
+
this.cdr.markForCheck();
|
|
1496
|
+
});
|
|
1497
|
+
}
|
|
1262
1498
|
});
|
|
1263
1499
|
}
|
|
1264
1500
|
toggleStickyClasses(isSticky) {
|
|
@@ -1274,15 +1510,15 @@ class AXPStickyDirective {
|
|
|
1274
1510
|
}
|
|
1275
1511
|
ngOnDestroy() {
|
|
1276
1512
|
this.parentElement.removeEventListener('scroll', this.onParentScroll);
|
|
1277
|
-
window.removeEventListener('resize', this.
|
|
1513
|
+
window.removeEventListener('resize', this.onWindowResize);
|
|
1278
1514
|
if (this.mutationObserver) {
|
|
1279
1515
|
this.mutationObserver.disconnect();
|
|
1280
1516
|
}
|
|
1281
1517
|
}
|
|
1282
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1283
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
1518
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPStickyDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
1519
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.9", type: AXPStickyDirective, isStandalone: true, selector: "[axpSticky]", inputs: { stickyClass: ["axpSticky", "stickyClass"], stickyOffset: "stickyOffset", stickyParent: "stickyParent", stickyTarget: "stickyTarget" }, outputs: { isStickyChange: "isStickyChange" }, exportAs: ["axpSticky"], ngImport: i0 }); }
|
|
1284
1520
|
}
|
|
1285
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1521
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPStickyDirective, decorators: [{
|
|
1286
1522
|
type: Directive,
|
|
1287
1523
|
args: [{
|
|
1288
1524
|
selector: '[axpSticky]',
|
|
@@ -1625,10 +1861,10 @@ class AXPMenuMiddlewareRegistry {
|
|
|
1625
1861
|
clear() {
|
|
1626
1862
|
this.manualMiddlewares.clear();
|
|
1627
1863
|
}
|
|
1628
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1629
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1864
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPMenuMiddlewareRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1865
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPMenuMiddlewareRegistry, providedIn: 'root' }); }
|
|
1630
1866
|
}
|
|
1631
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1867
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPMenuMiddlewareRegistry, decorators: [{
|
|
1632
1868
|
type: Injectable,
|
|
1633
1869
|
args: [{ providedIn: 'root' }]
|
|
1634
1870
|
}] });
|
|
@@ -1647,6 +1883,7 @@ class AXPMenuProviderService {
|
|
|
1647
1883
|
this.pendingRemovals = [];
|
|
1648
1884
|
this.pendingUpdates = [];
|
|
1649
1885
|
this.pendingAdditions = [];
|
|
1886
|
+
this.pendingMoves = [];
|
|
1650
1887
|
/**
|
|
1651
1888
|
* Observable for menu reload events
|
|
1652
1889
|
* Emits when menu cache is cleared and consumers should reload
|
|
@@ -1732,6 +1969,7 @@ class AXPMenuProviderService {
|
|
|
1732
1969
|
this.pendingRemovals = [];
|
|
1733
1970
|
this.pendingUpdates = [];
|
|
1734
1971
|
this.pendingAdditions = [];
|
|
1972
|
+
this.pendingMoves = [];
|
|
1735
1973
|
// Notify subscribers that menu should be reloaded
|
|
1736
1974
|
this.menuReloadSubject.next();
|
|
1737
1975
|
}
|
|
@@ -1793,7 +2031,14 @@ class AXPMenuProviderService {
|
|
|
1793
2031
|
},
|
|
1794
2032
|
addItems: (newItems) => {
|
|
1795
2033
|
this.pendingAdditions.push({ target, newItems });
|
|
1796
|
-
}
|
|
2034
|
+
},
|
|
2035
|
+
moveTo: (destination, position = 'inside') => {
|
|
2036
|
+
this.pendingMoves.push({
|
|
2037
|
+
source: target,
|
|
2038
|
+
destination,
|
|
2039
|
+
position: position ?? 'inside',
|
|
2040
|
+
});
|
|
2041
|
+
},
|
|
1797
2042
|
};
|
|
1798
2043
|
}
|
|
1799
2044
|
};
|
|
@@ -1900,11 +2145,15 @@ class AXPMenuProviderService {
|
|
|
1900
2145
|
}
|
|
1901
2146
|
}
|
|
1902
2147
|
}
|
|
2148
|
+
for (const move of this.pendingMoves) {
|
|
2149
|
+
this.applyPendingMove(items, move.source, move.destination, move.position);
|
|
2150
|
+
}
|
|
1903
2151
|
// Clear pending operations after applying them
|
|
1904
2152
|
this.pendingInserts = [];
|
|
1905
2153
|
this.pendingRemovals = [];
|
|
1906
2154
|
this.pendingUpdates = [];
|
|
1907
2155
|
this.pendingAdditions = [];
|
|
2156
|
+
this.pendingMoves = [];
|
|
1908
2157
|
}
|
|
1909
2158
|
findItemWithParent(items, target, parentItems = items) {
|
|
1910
2159
|
for (const item of items) {
|
|
@@ -1937,6 +2186,66 @@ class AXPMenuProviderService {
|
|
|
1937
2186
|
}
|
|
1938
2187
|
return null;
|
|
1939
2188
|
}
|
|
2189
|
+
applyPendingMove(items, sourceName, destName, position) {
|
|
2190
|
+
if (sourceName === destName) {
|
|
2191
|
+
console.warn(`moveTo: source and destination are the same ("${sourceName}"), ignored.`);
|
|
2192
|
+
return;
|
|
2193
|
+
}
|
|
2194
|
+
const sourceInfo = this.findItemWithParent(items, sourceName);
|
|
2195
|
+
const { foundItem: sourceItem, parentItems: sourceParent } = sourceInfo;
|
|
2196
|
+
if (!sourceItem) {
|
|
2197
|
+
console.warn(`moveTo: source "${sourceName}" not found.`);
|
|
2198
|
+
return;
|
|
2199
|
+
}
|
|
2200
|
+
const destInfo = this.findItemWithParent(items, destName);
|
|
2201
|
+
const { foundItem: destItem, parentItems: destParent } = destInfo;
|
|
2202
|
+
if (!destItem) {
|
|
2203
|
+
console.warn(`moveTo: destination "${destName}" not found.`);
|
|
2204
|
+
return;
|
|
2205
|
+
}
|
|
2206
|
+
if (this.itemIsInSubtreeOf(sourceItem, destItem)) {
|
|
2207
|
+
console.warn(`moveTo: cannot move "${sourceName}" because "${destName}" is inside the source subtree.`);
|
|
2208
|
+
return;
|
|
2209
|
+
}
|
|
2210
|
+
const sourceIndex = sourceParent.indexOf(sourceItem);
|
|
2211
|
+
if (sourceIndex === -1) {
|
|
2212
|
+
console.warn(`moveTo: source "${sourceName}" not in parent list (inconsistent).`);
|
|
2213
|
+
return;
|
|
2214
|
+
}
|
|
2215
|
+
sourceParent.splice(sourceIndex, 1);
|
|
2216
|
+
if (position === 'inside') {
|
|
2217
|
+
if (!destItem.children) {
|
|
2218
|
+
destItem.children = [];
|
|
2219
|
+
}
|
|
2220
|
+
destItem.children.push(sourceItem);
|
|
2221
|
+
return;
|
|
2222
|
+
}
|
|
2223
|
+
const destIndexInParent = destParent.indexOf(destItem);
|
|
2224
|
+
if (destIndexInParent === -1) {
|
|
2225
|
+
console.warn(`moveTo: destination "${destName}" not in parent list, reverting source removal.`);
|
|
2226
|
+
sourceParent.splice(sourceIndex, 0, sourceItem);
|
|
2227
|
+
return;
|
|
2228
|
+
}
|
|
2229
|
+
const insertIndex = position === 'before' ? destIndexInParent : destIndexInParent + 1;
|
|
2230
|
+
destParent.splice(insertIndex, 0, sourceItem);
|
|
2231
|
+
}
|
|
2232
|
+
itemIsInSubtreeOf(root, candidate) {
|
|
2233
|
+
if (root === candidate) {
|
|
2234
|
+
return true;
|
|
2235
|
+
}
|
|
2236
|
+
if (!root.children?.length) {
|
|
2237
|
+
return false;
|
|
2238
|
+
}
|
|
2239
|
+
for (const child of root.children) {
|
|
2240
|
+
if (child === candidate) {
|
|
2241
|
+
return true;
|
|
2242
|
+
}
|
|
2243
|
+
if (this.itemIsInSubtreeOf(child, candidate)) {
|
|
2244
|
+
return true;
|
|
2245
|
+
}
|
|
2246
|
+
}
|
|
2247
|
+
return false;
|
|
2248
|
+
}
|
|
1940
2249
|
/**
|
|
1941
2250
|
* Merge new item properties into existing item, handling children merge
|
|
1942
2251
|
*/
|
|
@@ -1984,10 +2293,10 @@ class AXPMenuProviderService {
|
|
|
1984
2293
|
}
|
|
1985
2294
|
}
|
|
1986
2295
|
}
|
|
1987
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1988
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
2296
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPMenuProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2297
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPMenuProviderService, providedIn: 'root' }); }
|
|
1989
2298
|
}
|
|
1990
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2299
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPMenuProviderService, decorators: [{
|
|
1991
2300
|
type: Injectable,
|
|
1992
2301
|
args: [{ providedIn: 'root' }]
|
|
1993
2302
|
}] });
|
|
@@ -2007,6 +2316,90 @@ function setMenuItemMeta(items, parentIndex = '', depth = 0) {
|
|
|
2007
2316
|
});
|
|
2008
2317
|
}
|
|
2009
2318
|
|
|
2319
|
+
//#region ---- Imports ----
|
|
2320
|
+
//#endregion
|
|
2321
|
+
//#region ---- Helpers ----
|
|
2322
|
+
function flattenMenuItems(items, depth) {
|
|
2323
|
+
const rows = [];
|
|
2324
|
+
let index = 0;
|
|
2325
|
+
for (const it of items) {
|
|
2326
|
+
const fallback = `menu-${depth}-${index}`;
|
|
2327
|
+
index += 1;
|
|
2328
|
+
const id = it.name ?? it.path ?? fallback;
|
|
2329
|
+
rows.push({ id, title: it.text });
|
|
2330
|
+
if (it.children?.length) {
|
|
2331
|
+
rows.push(...flattenMenuItems(it.children, depth + 1));
|
|
2332
|
+
}
|
|
2333
|
+
}
|
|
2334
|
+
return rows;
|
|
2335
|
+
}
|
|
2336
|
+
//#endregion
|
|
2337
|
+
//#region ---- Menu items data source ----
|
|
2338
|
+
/**
|
|
2339
|
+
* Registered menu items (raw tree flattened) for select widgets via dataSource name {@link MENU_ITEMS_DATASOURCE_NAME}.
|
|
2340
|
+
*/
|
|
2341
|
+
const MENU_ITEMS_DATASOURCE_NAME = 'platform-menu-items';
|
|
2342
|
+
/**
|
|
2343
|
+
* Data source definition for menu items from {@link AXPMenuProviderService#rawItems}.
|
|
2344
|
+
*/
|
|
2345
|
+
class AXPMenuItemsDataSourceDefinition {
|
|
2346
|
+
constructor() {
|
|
2347
|
+
//#region ---- Services & Dependencies ----
|
|
2348
|
+
this.menuProviderService = inject(AXPMenuProviderService);
|
|
2349
|
+
//#endregion
|
|
2350
|
+
}
|
|
2351
|
+
//#endregion
|
|
2352
|
+
//#region ---- Public API ----
|
|
2353
|
+
async items() {
|
|
2354
|
+
return [
|
|
2355
|
+
{
|
|
2356
|
+
name: MENU_ITEMS_DATASOURCE_NAME,
|
|
2357
|
+
title: 'Menu items',
|
|
2358
|
+
source: () => new AXDataSource({
|
|
2359
|
+
key: 'id',
|
|
2360
|
+
load: async () => {
|
|
2361
|
+
const raw = await this.menuProviderService.rawItems();
|
|
2362
|
+
const list = flattenMenuItems(raw, 0);
|
|
2363
|
+
return { items: list, total: list.length };
|
|
2364
|
+
},
|
|
2365
|
+
byKey: async (key) => {
|
|
2366
|
+
const raw = await this.menuProviderService.rawItems();
|
|
2367
|
+
const list = flattenMenuItems(raw, 0);
|
|
2368
|
+
return list.find((item) => item.id === key);
|
|
2369
|
+
},
|
|
2370
|
+
pageSize: 1000,
|
|
2371
|
+
}),
|
|
2372
|
+
columns: [
|
|
2373
|
+
{
|
|
2374
|
+
name: 'id',
|
|
2375
|
+
title: 'ID',
|
|
2376
|
+
datatype: 'string',
|
|
2377
|
+
type: AXPWidgetsCatalog.text,
|
|
2378
|
+
},
|
|
2379
|
+
{
|
|
2380
|
+
name: 'title',
|
|
2381
|
+
title: 'Title',
|
|
2382
|
+
datatype: 'string',
|
|
2383
|
+
type: AXPWidgetsCatalog.text,
|
|
2384
|
+
},
|
|
2385
|
+
],
|
|
2386
|
+
filters: [
|
|
2387
|
+
{
|
|
2388
|
+
field: 'title',
|
|
2389
|
+
title: 'Title',
|
|
2390
|
+
operator: { type: 'equal' },
|
|
2391
|
+
widget: { type: AXPWidgetsCatalog.text },
|
|
2392
|
+
filterType: { advance: true, inline: true },
|
|
2393
|
+
},
|
|
2394
|
+
],
|
|
2395
|
+
textField: { name: 'title', title: 'Title' },
|
|
2396
|
+
valueField: { name: 'id', title: 'ID' },
|
|
2397
|
+
},
|
|
2398
|
+
];
|
|
2399
|
+
}
|
|
2400
|
+
}
|
|
2401
|
+
//#endregion
|
|
2402
|
+
|
|
2010
2403
|
//#region ---- Menu Middleware Provider Helper ----
|
|
2011
2404
|
/**
|
|
2012
2405
|
* Helper function to provide menu middlewares with proper DI setup
|
|
@@ -2301,10 +2694,10 @@ class AXPMenuVisibilityService {
|
|
|
2301
2694
|
// Otherwise, don't render empty menu items
|
|
2302
2695
|
return false;
|
|
2303
2696
|
}
|
|
2304
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2305
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
2697
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPMenuVisibilityService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2698
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPMenuVisibilityService, providedIn: 'root' }); }
|
|
2306
2699
|
}
|
|
2307
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2700
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPMenuVisibilityService, decorators: [{
|
|
2308
2701
|
type: Injectable,
|
|
2309
2702
|
args: [{ providedIn: 'root' }]
|
|
2310
2703
|
}] });
|
|
@@ -2381,18 +2774,19 @@ class AXPMenuSearchProvider {
|
|
|
2381
2774
|
}
|
|
2382
2775
|
|
|
2383
2776
|
class AXPFooterTextSlotComponent {
|
|
2384
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2385
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
2777
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPFooterTextSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2778
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.9", type: AXPFooterTextSlotComponent, isStandalone: true, selector: "ng-component", inputs: { text: "text" }, ngImport: i0, template: `
|
|
2386
2779
|
<small class="ax-text-sm" [innerHTML]="text"></small>
|
|
2387
|
-
`, isInline: true }); }
|
|
2780
|
+
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2388
2781
|
}
|
|
2389
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2782
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPFooterTextSlotComponent, decorators: [{
|
|
2390
2783
|
type: Component,
|
|
2391
2784
|
args: [{
|
|
2392
2785
|
template: `
|
|
2393
2786
|
<small class="ax-text-sm" [innerHTML]="text"></small>
|
|
2394
2787
|
`,
|
|
2395
|
-
standalone: true
|
|
2788
|
+
standalone: true,
|
|
2789
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2396
2790
|
}]
|
|
2397
2791
|
}], propDecorators: { text: [{
|
|
2398
2792
|
type: Input
|
|
@@ -2403,8 +2797,8 @@ class AXPNavBarSlotComponent {
|
|
|
2403
2797
|
// if (action)
|
|
2404
2798
|
// this.store.dispatch(action)
|
|
2405
2799
|
}
|
|
2406
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2407
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
2800
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPNavBarSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2801
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXPNavBarSlotComponent, isStandalone: true, selector: "ng-component", inputs: { items: "items" }, ngImport: i0, template: `
|
|
2408
2802
|
<div class="ax-flex ax-items-center ax-justify-between ax-gap-5">
|
|
2409
2803
|
@for (link of items; track link) {
|
|
2410
2804
|
<a (click)="handleCommand(link.command)" >{{ link.text }}</a>
|
|
@@ -2412,7 +2806,7 @@ class AXPNavBarSlotComponent {
|
|
|
2412
2806
|
</div>
|
|
2413
2807
|
`, isInline: true, encapsulation: i0.ViewEncapsulation.None }); }
|
|
2414
2808
|
}
|
|
2415
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2809
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPNavBarSlotComponent, decorators: [{
|
|
2416
2810
|
type: Component,
|
|
2417
2811
|
args: [{
|
|
2418
2812
|
template: `
|
|
@@ -2546,10 +2940,10 @@ class AXPSearchDefinitionProviderService {
|
|
|
2546
2940
|
}
|
|
2547
2941
|
return definition;
|
|
2548
2942
|
}
|
|
2549
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2550
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
2943
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPSearchDefinitionProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2944
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPSearchDefinitionProviderService, providedIn: 'root' }); }
|
|
2551
2945
|
}
|
|
2552
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2946
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPSearchDefinitionProviderService, decorators: [{
|
|
2553
2947
|
type: Injectable,
|
|
2554
2948
|
args: [{ providedIn: 'root' }]
|
|
2555
2949
|
}] });
|
|
@@ -2644,10 +3038,10 @@ class AXPSearchService {
|
|
|
2644
3038
|
groupedData.sort((a, b) => a.order - b.order);
|
|
2645
3039
|
return groupedData;
|
|
2646
3040
|
}
|
|
2647
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2648
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
3041
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPSearchService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3042
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPSearchService, providedIn: 'root' }); }
|
|
2649
3043
|
}
|
|
2650
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3044
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPSearchService, decorators: [{
|
|
2651
3045
|
type: Injectable,
|
|
2652
3046
|
args: [{ providedIn: 'root' }]
|
|
2653
3047
|
}] });
|
|
@@ -2696,6 +3090,10 @@ var AXPCommonSettings;
|
|
|
2696
3090
|
AXPCommonSettings["EnableOperationToasts"] = "Common:Setting:Notifications.EnableOperationToasts";
|
|
2697
3091
|
AXPCommonSettings["EntityFilterApplyMode"] = "Common:Setting:Entity.FilterApplyMode";
|
|
2698
3092
|
AXPCommonSettings["ShowCategoryColumnsByDefault"] = "Common:Setting:Entity.ShowCategoryColumnsByDefault";
|
|
3093
|
+
AXPCommonSettings["ApplyLayoutOrdering"] = "Common:Setting:Entity.ApplyLayoutOrdering";
|
|
3094
|
+
AXPCommonSettings["RedirectToDetailsAfterCreate"] = "Common:Setting:Entity.RedirectToDetailsAfterCreate";
|
|
3095
|
+
AXPCommonSettings["ShowPageBadge"] = "Common:Setting:Entity.ShowPageBadge";
|
|
3096
|
+
AXPCommonSettings["DebugMode"] = "PlatformDevTools:Setting:Developer.DebugMode";
|
|
2699
3097
|
})(AXPCommonSettings || (AXPCommonSettings = {}));
|
|
2700
3098
|
|
|
2701
3099
|
//TODO Loading, Redirect, Drawer, Show toast
|
|
@@ -2720,10 +3118,10 @@ class AXPWorkflowNavigateAction extends AXPWorkflowAction {
|
|
|
2720
3118
|
this.router.navigate([payload.commands], payload.extras);
|
|
2721
3119
|
}
|
|
2722
3120
|
}
|
|
2723
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2724
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
3121
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowNavigateAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3122
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowNavigateAction }); }
|
|
2725
3123
|
}
|
|
2726
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3124
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowNavigateAction, decorators: [{
|
|
2727
3125
|
type: Injectable
|
|
2728
3126
|
}] });
|
|
2729
3127
|
class AXPDialogConfirmAction extends AXPWorkflowAction {
|
|
@@ -2739,10 +3137,10 @@ class AXPDialogConfirmAction extends AXPWorkflowAction {
|
|
|
2739
3137
|
const dialogResult = await this.dialogService.confirm(await this.translationService.translateAsync(this.title), await this.translationService.translateAsync(this.message), (await this.translationService.translateAsync(this.type)), 'horizontal', false, 'cancel');
|
|
2740
3138
|
context.setOutput('result', dialogResult.result);
|
|
2741
3139
|
}
|
|
2742
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2743
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
3140
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPDialogConfirmAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3141
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPDialogConfirmAction }); }
|
|
2744
3142
|
}
|
|
2745
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3143
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPDialogConfirmAction, decorators: [{
|
|
2746
3144
|
type: Injectable
|
|
2747
3145
|
}] });
|
|
2748
3146
|
class AXPToastAction extends AXPWorkflowAction {
|
|
@@ -2765,20 +3163,20 @@ class AXPToastAction extends AXPWorkflowAction {
|
|
|
2765
3163
|
});
|
|
2766
3164
|
}
|
|
2767
3165
|
}
|
|
2768
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2769
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
3166
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPToastAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3167
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPToastAction }); }
|
|
2770
3168
|
}
|
|
2771
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3169
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPToastAction, decorators: [{
|
|
2772
3170
|
type: Injectable
|
|
2773
3171
|
}] });
|
|
2774
3172
|
class AXPReloadAction extends AXPWorkflowAction {
|
|
2775
3173
|
async execute(context) {
|
|
2776
3174
|
this.dispatch(AXPReloadEvent({ entity: context.getVariable('entity'), meta: context.getVariable('meta') }));
|
|
2777
3175
|
}
|
|
2778
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2779
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
3176
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPReloadAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3177
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPReloadAction }); }
|
|
2780
3178
|
}
|
|
2781
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3179
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPReloadAction, decorators: [{
|
|
2782
3180
|
type: Injectable
|
|
2783
3181
|
}] });
|
|
2784
3182
|
|
|
@@ -2818,10 +3216,10 @@ class AXPWorkflowRouterNavigateAction extends AXPWorkflowAction {
|
|
|
2818
3216
|
return params;
|
|
2819
3217
|
}, {});
|
|
2820
3218
|
}
|
|
2821
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2822
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
3219
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowRouterNavigateAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3220
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowRouterNavigateAction }); }
|
|
2823
3221
|
}
|
|
2824
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3222
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowRouterNavigateAction, decorators: [{
|
|
2825
3223
|
type: Injectable
|
|
2826
3224
|
}] });
|
|
2827
3225
|
const AXPNavigateWorkflow = {
|
|
@@ -2846,10 +3244,10 @@ class AXMWorkflowErrorHandler {
|
|
|
2846
3244
|
next(error);
|
|
2847
3245
|
}
|
|
2848
3246
|
}
|
|
2849
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2850
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
3247
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMWorkflowErrorHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3248
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMWorkflowErrorHandler }); }
|
|
2851
3249
|
}
|
|
2852
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3250
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMWorkflowErrorHandler, decorators: [{
|
|
2853
3251
|
type: Injectable
|
|
2854
3252
|
}] });
|
|
2855
3253
|
|
|
@@ -2894,12 +3292,12 @@ class AXPCommonModule {
|
|
|
2894
3292
|
f();
|
|
2895
3293
|
});
|
|
2896
3294
|
}
|
|
2897
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2898
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
3295
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPCommonModule, deps: [{ token: 'AXPCommonModuleFactory' }], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
3296
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.9", ngImport: i0, type: AXPCommonModule, imports: [i1.AXPWorkflowModule, AXPopupModule,
|
|
2899
3297
|
AXDateTimeModule,
|
|
2900
3298
|
AXToastModule,
|
|
2901
3299
|
AXPModuleManifestModule], exports: [RouterModule] }); }
|
|
2902
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
3300
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPCommonModule, providers: [
|
|
2903
3301
|
AXPAppStartUpProvider,
|
|
2904
3302
|
{
|
|
2905
3303
|
provide: ErrorHandler,
|
|
@@ -2928,11 +3326,16 @@ class AXPCommonModule {
|
|
|
2928
3326
|
useClass: AXPTokenEvaluatorScopeProvider,
|
|
2929
3327
|
multi: true,
|
|
2930
3328
|
},
|
|
3329
|
+
{
|
|
3330
|
+
provide: AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER,
|
|
3331
|
+
useClass: AXPSettingsEvaluatorScopeProvider,
|
|
3332
|
+
multi: true,
|
|
3333
|
+
},
|
|
2931
3334
|
{
|
|
2932
3335
|
provide: AXP_SETTING_DEFINITION_PROVIDER,
|
|
2933
3336
|
useFactory: async () => {
|
|
2934
3337
|
const injector = inject(Injector);
|
|
2935
|
-
const provider = (await import('./acorex-platform-common-common-settings.provider-
|
|
3338
|
+
const provider = (await import('./acorex-platform-common-common-settings.provider-G9XcXXOG.mjs')).AXPCommonSettingProvider;
|
|
2936
3339
|
return new provider(injector);
|
|
2937
3340
|
},
|
|
2938
3341
|
multi: true,
|
|
@@ -2953,7 +3356,7 @@ class AXPCommonModule {
|
|
|
2953
3356
|
AXToastModule,
|
|
2954
3357
|
AXPModuleManifestModule, RouterModule] }); }
|
|
2955
3358
|
}
|
|
2956
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3359
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPCommonModule, decorators: [{
|
|
2957
3360
|
type: NgModule,
|
|
2958
3361
|
args: [{
|
|
2959
3362
|
imports: [
|
|
@@ -3003,11 +3406,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
3003
3406
|
useClass: AXPTokenEvaluatorScopeProvider,
|
|
3004
3407
|
multi: true,
|
|
3005
3408
|
},
|
|
3409
|
+
{
|
|
3410
|
+
provide: AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER,
|
|
3411
|
+
useClass: AXPSettingsEvaluatorScopeProvider,
|
|
3412
|
+
multi: true,
|
|
3413
|
+
},
|
|
3006
3414
|
{
|
|
3007
3415
|
provide: AXP_SETTING_DEFINITION_PROVIDER,
|
|
3008
3416
|
useFactory: async () => {
|
|
3009
3417
|
const injector = inject(Injector);
|
|
3010
|
-
const provider = (await import('./acorex-platform-common-common-settings.provider-
|
|
3418
|
+
const provider = (await import('./acorex-platform-common-common-settings.provider-G9XcXXOG.mjs')).AXPCommonSettingProvider;
|
|
3011
3419
|
return new provider(injector);
|
|
3012
3420
|
},
|
|
3013
3421
|
multi: true,
|
|
@@ -3040,10 +3448,10 @@ function configPlatform(config = AXPPlatformDefaultConfigs) {
|
|
|
3040
3448
|
const AXP_ROOT_CONFIG_TOKEN = new InjectionToken('AXP_ROOT_CONFIG_TOKEN');
|
|
3041
3449
|
|
|
3042
3450
|
class AXPFileStorageService {
|
|
3043
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3044
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
3451
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPFileStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3452
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPFileStorageService }); }
|
|
3045
3453
|
}
|
|
3046
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3454
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPFileStorageService, decorators: [{
|
|
3047
3455
|
type: Injectable
|
|
3048
3456
|
}] });
|
|
3049
3457
|
|
|
@@ -3160,10 +3568,10 @@ class AXPFileActionsService {
|
|
|
3160
3568
|
return false;
|
|
3161
3569
|
});
|
|
3162
3570
|
}
|
|
3163
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3164
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
3571
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPFileActionsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3572
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPFileActionsService, providedIn: 'root' }); }
|
|
3165
3573
|
}
|
|
3166
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3574
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPFileActionsService, decorators: [{
|
|
3167
3575
|
type: Injectable,
|
|
3168
3576
|
args: [{
|
|
3169
3577
|
providedIn: 'root',
|
|
@@ -3233,19 +3641,19 @@ class AXPFileTypeProviderService {
|
|
|
3233
3641
|
async get(name) {
|
|
3234
3642
|
return (await this.items()).find((c) => c.name == name);
|
|
3235
3643
|
}
|
|
3236
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3237
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
3644
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPFileTypeProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3645
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPFileTypeProviderService, providedIn: 'root' }); }
|
|
3238
3646
|
}
|
|
3239
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3647
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPFileTypeProviderService, decorators: [{
|
|
3240
3648
|
type: Injectable,
|
|
3241
3649
|
args: [{ providedIn: 'root' }]
|
|
3242
3650
|
}] });
|
|
3243
3651
|
|
|
3244
3652
|
class AXPLockService {
|
|
3245
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3246
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
3653
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPLockService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3654
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPLockService }); }
|
|
3247
3655
|
}
|
|
3248
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3656
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPLockService, decorators: [{
|
|
3249
3657
|
type: Injectable
|
|
3250
3658
|
}] });
|
|
3251
3659
|
|
|
@@ -3446,10 +3854,10 @@ class AXPStatusDefinitionProviderService {
|
|
|
3446
3854
|
isValidTransition(provider, from, to) {
|
|
3447
3855
|
return provider.transitions.some((transition) => transition.from === from && transition.to === to);
|
|
3448
3856
|
}
|
|
3449
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3450
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
3857
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPStatusDefinitionProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3858
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPStatusDefinitionProviderService, providedIn: 'root' }); }
|
|
3451
3859
|
}
|
|
3452
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3860
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPStatusDefinitionProviderService, decorators: [{
|
|
3453
3861
|
type: Injectable,
|
|
3454
3862
|
args: [{ providedIn: 'root' }]
|
|
3455
3863
|
}] });
|
|
@@ -3796,10 +4204,10 @@ class AXPClipBoardService {
|
|
|
3796
4204
|
navigator.clipboard.writeText(value);
|
|
3797
4205
|
this.toast.success(`${title} copied!`);
|
|
3798
4206
|
}
|
|
3799
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3800
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
4207
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPClipBoardService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4208
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPClipBoardService, providedIn: 'root' }); }
|
|
3801
4209
|
}
|
|
3802
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4210
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPClipBoardService, decorators: [{
|
|
3803
4211
|
type: Injectable,
|
|
3804
4212
|
args: [{
|
|
3805
4213
|
providedIn: 'root',
|
|
@@ -3913,10 +4321,10 @@ class AXPDebugService {
|
|
|
3913
4321
|
console.error('[AXPDebugService] Failed to display user access info:', error);
|
|
3914
4322
|
}
|
|
3915
4323
|
}
|
|
3916
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3917
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
4324
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPDebugService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4325
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPDebugService, providedIn: 'root' }); }
|
|
3918
4326
|
}
|
|
3919
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4327
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPDebugService, decorators: [{
|
|
3920
4328
|
type: Injectable,
|
|
3921
4329
|
args: [{
|
|
3922
4330
|
providedIn: 'root',
|
|
@@ -3926,15 +4334,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
3926
4334
|
class AXMOrgChartPrintPage extends AXBasePageComponent {
|
|
3927
4335
|
constructor() {
|
|
3928
4336
|
super(...arguments);
|
|
3929
|
-
this.ratio = signal(false, ...(ngDevMode ? [{ debugName: "ratio" }] : []));
|
|
3930
|
-
this.baseWidth = signal(undefined, ...(ngDevMode ? [{ debugName: "baseWidth" }] : []));
|
|
3931
|
-
this.baseHeight = signal(undefined, ...(ngDevMode ? [{ debugName: "baseHeight" }] : []));
|
|
3932
|
-
this.bgcolor = model(...(ngDevMode ? [undefined, { debugName: "bgcolor" }] : []));
|
|
3933
|
-
this.width = model(...(ngDevMode ? [undefined, { debugName: "width" }] : []));
|
|
3934
|
-
this.height = model(...(ngDevMode ? [undefined, { debugName: "height" }] : []));
|
|
3935
|
-
this.quality = model(...(ngDevMode ? [undefined, { debugName: "quality" }] : []));
|
|
3936
|
-
this.qualityComputed = linkedSignal(() => (this.data.quality ?? 1) * 100, ...(ngDevMode ? [{ debugName: "qualityComputed" }] : []));
|
|
3937
|
-
this.scale = model(...(ngDevMode ? [undefined, { debugName: "scale" }] : []));
|
|
4337
|
+
this.ratio = signal(false, ...(ngDevMode ? [{ debugName: "ratio" }] : /* istanbul ignore next */ []));
|
|
4338
|
+
this.baseWidth = signal(undefined, ...(ngDevMode ? [{ debugName: "baseWidth" }] : /* istanbul ignore next */ []));
|
|
4339
|
+
this.baseHeight = signal(undefined, ...(ngDevMode ? [{ debugName: "baseHeight" }] : /* istanbul ignore next */ []));
|
|
4340
|
+
this.bgcolor = model(...(ngDevMode ? [undefined, { debugName: "bgcolor" }] : /* istanbul ignore next */ []));
|
|
4341
|
+
this.width = model(...(ngDevMode ? [undefined, { debugName: "width" }] : /* istanbul ignore next */ []));
|
|
4342
|
+
this.height = model(...(ngDevMode ? [undefined, { debugName: "height" }] : /* istanbul ignore next */ []));
|
|
4343
|
+
this.quality = model(...(ngDevMode ? [undefined, { debugName: "quality" }] : /* istanbul ignore next */ []));
|
|
4344
|
+
this.qualityComputed = linkedSignal(() => (this.data.quality ?? 1) * 100, ...(ngDevMode ? [{ debugName: "qualityComputed" }] : /* istanbul ignore next */ []));
|
|
4345
|
+
this.scale = model(...(ngDevMode ? [undefined, { debugName: "scale" }] : /* istanbul ignore next */ []));
|
|
3938
4346
|
this.#init = afterNextRender(() => {
|
|
3939
4347
|
this.bgcolor.set(this.data.bgcolor);
|
|
3940
4348
|
this.width.set(this.data.width);
|
|
@@ -3971,8 +4379,8 @@ class AXMOrgChartPrintPage extends AXBasePageComponent {
|
|
|
3971
4379
|
isCanceled,
|
|
3972
4380
|
});
|
|
3973
4381
|
}
|
|
3974
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3975
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "
|
|
4382
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMOrgChartPrintPage, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
4383
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.9", type: AXMOrgChartPrintPage, isStandalone: true, selector: "ng-component", inputs: { bgcolor: { classPropertyName: "bgcolor", publicName: "bgcolor", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, quality: { classPropertyName: "quality", publicName: "quality", isSignal: true, isRequired: false, transformFunction: null }, scale: { classPropertyName: "scale", publicName: "scale", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { bgcolor: "bgcolorChange", width: "widthChange", height: "heightChange", quality: "qualityChange", scale: "scaleChange" }, usesInheritance: true, ngImport: i0, template: ` <div class="ax-grid ax-grid-cols-[auto_18rem] ax-gap-4 ax-justify-center ax-p-4 ax-items-center">
|
|
3976
4384
|
<ax-label>Resolution (px)</ax-label>
|
|
3977
4385
|
<div class="ax-flex ax-gap-2 ax-items-center">
|
|
3978
4386
|
<ax-number-box
|
|
@@ -4023,7 +4431,7 @@ class AXMOrgChartPrintPage extends AXBasePageComponent {
|
|
|
4023
4431
|
</ax-suffix>
|
|
4024
4432
|
</ax-footer>`, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXCheckBoxModule }, { kind: "ngmodule", type: AXNumberBoxModule }, { kind: "component", type: i2.AXNumberBoxComponent, selector: "ax-number-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "minValue", "maxValue", "showSpinButtons", "thousandsSeparator", "decimals", "changeOnScroll", "step"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress", "thousandsSeparatorChange"] }, { kind: "ngmodule", type: AXTextBoxModule }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i3.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4.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: i5.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: AXColorBoxModule }, { kind: "component", type: i6.AXColorBoxComponent, selector: "ax-color-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "showBadge", "showValue", "showClearButton", "showIcon"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onOpened", "onClosed"] }] }); }
|
|
4025
4433
|
}
|
|
4026
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4434
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMOrgChartPrintPage, decorators: [{
|
|
4027
4435
|
type: Component,
|
|
4028
4436
|
args: [{
|
|
4029
4437
|
template: ` <div class="ax-grid ax-grid-cols-[auto_18rem] ax-gap-4 ax-justify-center ax-p-4 ax-items-center">
|
|
@@ -4137,10 +4545,10 @@ class AXPExportService {
|
|
|
4137
4545
|
document.body.removeChild(link);
|
|
4138
4546
|
URL.revokeObjectURL(link.href);
|
|
4139
4547
|
}
|
|
4140
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
4141
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
4548
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPExportService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4549
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPExportService, providedIn: 'root' }); }
|
|
4142
4550
|
}
|
|
4143
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4551
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPExportService, decorators: [{
|
|
4144
4552
|
type: Injectable,
|
|
4145
4553
|
args: [{
|
|
4146
4554
|
providedIn: 'root',
|
|
@@ -4170,6 +4578,8 @@ function AXPCleanNestedFilters(filters) {
|
|
|
4170
4578
|
.filter(Boolean);
|
|
4171
4579
|
}
|
|
4172
4580
|
|
|
4581
|
+
const AXP_LOCALE_MANAGEMENT_PORT = new InjectionToken('AXP_LOCALE_MANAGEMENT_PORT');
|
|
4582
|
+
|
|
4173
4583
|
//#region ---- Versioning Types ----
|
|
4174
4584
|
var AXVChangeType;
|
|
4175
4585
|
(function (AXVChangeType) {
|
|
@@ -4187,5 +4597,5 @@ class AXPVersioningService {
|
|
|
4187
4597
|
* Generated bundle index. Do not edit.
|
|
4188
4598
|
*/
|
|
4189
4599
|
|
|
4190
|
-
export { ALL_DEFAULT_OPERATORS, AXMWorkflowErrorHandler, AXPAppVersionService, AXPCleanNestedFilters, AXPClipBoardService, AXPCommonModule, AXPCommonSettings, AXPCustomOperatorService, AXPCustomOperatorServiceImpl, AXPDataProvider, AXPDebugService, AXPDialogConfirmAction, AXPEntityCommandScope, AXPEntityQueryType, AXPErrorHandlerRegistryService, AXPExportService, AXPFileActionsService, AXPFileStorageService, AXPFileStorageStatus, AXPFileTypeProviderService, AXPFilterOperatorMiddlewareService, AXPFilterOperatorMiddlewareServiceImpl, AXPFooterTextSlotComponent, AXPGlobalErrorHandler, AXPHomePageModule, AXPHomePageService, AXPLockService, AXPMenuMiddlewareRegistry, AXPMenuProviderService, AXPMenuSearchDefinitionProvider, AXPMenuSearchProvider, AXPMenuService, AXPMenuVisibilityService, AXPNavBarSlotComponent, AXPNavigateWorkflow, AXPPlatformDefaultConfigs, AXPRedirectEvent, AXPRefreshEvent, AXPRegionalSetting, AXPRelationshipCardinality, AXPRelationshipKind, AXPReloadAction, AXPReloadEvent, AXPSearchCommandProvider, AXPSearchDefinitionActionBuilder, AXPSearchDefinitionBuilder, AXPSearchDefinitionProviderContext, AXPSearchDefinitionProviderService, AXPSearchService, AXPSettingDefaultValuesAggregatorService, AXPSettingDefinitionGroupBuilder, AXPSettingDefinitionProviderContext, AXPSettingDefinitionProviderService, AXPSettingDefinitionSectionBuilder, AXPSettingsService, AXPStatusDefinitionProviderService, AXPStatusProvider, AXPStickyDirective, AXPSystemStatusType, AXPSystemStatuses, AXPToastAction, AXPTokenDefinitionService, AXPTokenEvaluatorScopeProvider, AXPVersioningService, AXPWorkflowNavigateAction, AXPWorkflowRouterNavigateAction, AXP_APP_VERSION_PROVIDER, AXP_FILE_ACTION_PROVIDER, AXP_FILE_TYPE_INFO_PROVIDER, AXP_HOME_PAGES, AXP_HOME_PAGE_DEFAULT_KEY, AXP_MENU_MIDDLEWARE, AXP_MENU_PROVIDER, AXP_PLATFORM_CONFIG_TOKEN, AXP_ROOT_CONFIG_TOKEN, AXP_SEARCH_DEFINITION_PROVIDER, AXP_SEARCH_PROVIDER, AXP_SETTING_DEFAULT_VALUES_PROVIDERS, AXP_SETTING_DEFINITION_PROVIDER, AXP_SETTING_VALUE_PROVIDER, AXP_STATUS_PROVIDERS, AXP_TOKEN_DEFINITION_PROVIDER, AXVChangeType, BETWEEN_OPER, BOOLEAN_OPERATORS, CONTAINS_OPER, DATE_OPERATORS, ENDS_WITH_OPER, ENVIRONMENT, EQ_OPER, GTE_OPER, GT_OPER, IN_OPER, IS_EMPTY_OPER, IS_NOT_EMPTY_OPER, LTE_OPER, LT_OPER, NOT_CONTAINS_OPER, NOT_EQ_OPER, NUMBER_OPERATORS, STARTS_WITH_OPER, STRING_OPERATORS, UploadFromComputerActionProvider, configPlatform, createAllQueryView, createEntityCommandOptions, createEntitySearchCommand, createMenuContext, createMenuMiddleware, createQueryView, getEntityInfo, getStatusInfo, getSystemStatus, provideDynamicHomePage, provideMenuMiddleware, resolveStatusLook, systemStatusToDefinition };
|
|
4600
|
+
export { ALL_DEFAULT_OPERATORS, AXMWorkflowErrorHandler, AXPAppVersionService, AXPCleanNestedFilters, AXPClipBoardService, AXPCommonModule, AXPCommonSettings, AXPCustomOperatorService, AXPCustomOperatorServiceImpl, AXPDataProvider, AXPDebugService, AXPDefaultMultiLanguageConfigService, AXPDialogConfirmAction, AXPEntityCommandScope, AXPEntityQueryType, AXPEntityType, AXPErrorHandlerRegistryService, AXPExportService, AXPFileActionsService, AXPFileStorageService, AXPFileStorageStatus, AXPFileTypeProviderService, AXPFilterOperatorMiddlewareService, AXPFilterOperatorMiddlewareServiceImpl, AXPFooterTextSlotComponent, AXPGlobalErrorHandler, AXPHomePageModule, AXPHomePageService, AXPLockService, AXPMenuItemsDataSourceDefinition, AXPMenuMiddlewareRegistry, AXPMenuProviderService, AXPMenuSearchDefinitionProvider, AXPMenuSearchProvider, AXPMenuService, AXPMenuVisibilityService, AXPNavBarSlotComponent, AXPNavigateWorkflow, AXPPlatformDefaultConfigs, AXPRedirectEvent, AXPRefreshEvent, AXPRegionalSetting, AXPRelationshipCardinality, AXPRelationshipKind, AXPReloadAction, AXPReloadEvent, AXPSearchCommandProvider, AXPSearchDefinitionActionBuilder, AXPSearchDefinitionBuilder, AXPSearchDefinitionProviderContext, AXPSearchDefinitionProviderService, AXPSearchService, AXPSettingDefaultValuesAggregatorService, AXPSettingDefinitionGroupBuilder, AXPSettingDefinitionProviderContext, AXPSettingDefinitionProviderService, AXPSettingDefinitionSectionBuilder, AXPSettingsEvaluatorScopeProvider, AXPSettingsService, AXPStatusDefinitionProviderService, AXPStatusProvider, AXPStickyDirective, AXPSystemStatusType, AXPSystemStatuses, AXPToastAction, AXPTokenDefinitionService, AXPTokenEvaluatorScopeProvider, AXPVersioningService, AXPWorkflowNavigateAction, AXPWorkflowRouterNavigateAction, AXP_APP_VERSION_PROVIDER, AXP_FILE_ACTION_PROVIDER, AXP_FILE_TYPE_INFO_PROVIDER, AXP_HOME_PAGES, AXP_HOME_PAGE_DEFAULT_KEY, AXP_LOCALE_MANAGEMENT_PORT, AXP_MENU_MIDDLEWARE, AXP_MENU_PROVIDER, AXP_PLATFORM_CONFIG_TOKEN, AXP_ROOT_CONFIG_TOKEN, AXP_SEARCH_DEFINITION_PROVIDER, AXP_SEARCH_PROVIDER, AXP_SETTING_DEFAULT_VALUES_PROVIDERS, AXP_SETTING_DEFINITION_PROVIDER, AXP_SETTING_VALUE_PROVIDER, AXP_STATUS_PROVIDERS, AXP_TOKEN_DEFINITION_PROVIDER, AXVChangeType, BETWEEN_OPER, BOOLEAN_OPERATORS, CONTAINS_OPER, DATE_OPERATORS, DEFAULT_MULTILANGUAGE_FIELD_NAMES, ENDS_WITH_OPER, ENVIRONMENT, EQ_OPER, GTE_OPER, GT_OPER, IN_OPER, IS_EMPTY_OPER, IS_NOT_EMPTY_OPER, LTE_OPER, LT_OPER, MENU_ITEMS_DATASOURCE_NAME, MULTILANGUAGE_CAPABLE_WIDGET_TYPES, NOT_CONTAINS_OPER, NOT_EQ_OPER, NUMBER_OPERATORS, STARTS_WITH_OPER, STRING_OPERATORS, UploadFromComputerActionProvider, configPlatform, createAllQueryView, createEntityCommandOptions, createEntitySearchCommand, createMenuContext, createMenuMiddleware, createQueryView, getEntityInfo, getStatusInfo, getSystemStatus, provideDynamicHomePage, provideMenuMiddleware, resolveStatusLook, shouldApplyDefaultMultiLanguageToEntityProperty, shouldApplyDefaultMultiLanguageToWidgetNode, shouldApplyDefaultMultiLanguageToWidgetProperty, systemStatusToDefinition, withDefaultMultiLanguageOnWidgetNodeTree, withDefaultMultiLanguageOnWidgetProperty };
|
|
4191
4601
|
//# sourceMappingURL=acorex-platform-common.mjs.map
|