@acorex/platform 20.8.5 → 21.0.0-beta.1
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-41RhWqb4.mjs → acorex-platform-common-common-settings.provider-G9XcXXOG.mjs} +4 -4
- package/fesm2022/acorex-platform-common-common-settings.provider-G9XcXXOG.mjs.map +1 -0
- package/fesm2022/acorex-platform-common.mjs +669 -268
- package/fesm2022/acorex-platform-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-core.mjs +333 -140
- package/fesm2022/acorex-platform-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-domain.mjs +557 -826
- package/fesm2022/acorex-platform-domain.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-builder.mjs +539 -110
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/{acorex-platform-layout-components-binding-expression-editor-popup.component-CSxCnzwU.mjs → acorex-platform-layout-components-binding-expression-editor-popup.component-CWV4XD36.mjs} +15 -15
- package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-CWV4XD36.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-components.mjs +3285 -1035
- package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-designer.mjs +488 -284
- package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity.mjs +15955 -11978
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-views.mjs +410 -170
- package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-widget-core.mjs +548 -474
- package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
- package/fesm2022/{acorex-platform-layout-widgets-button-widget-designer.component-CPBzE96V.mjs → acorex-platform-layout-widgets-button-widget-designer.component-fLjWiSFE.mjs} +11 -11
- package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-fLjWiSFE.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-file-list-popup.component-Dtv6U3df.mjs → acorex-platform-layout-widgets-file-list-popup.component-3oRAKxTo.mjs} +22 -77
- package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-3oRAKxTo.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-image-preview.popup-QxJfswhK.mjs → acorex-platform-layout-widgets-image-preview.popup-CazpERbX.mjs} +8 -9
- package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-CazpERbX.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-page-widget-designer.component-CVdssZBD.mjs → acorex-platform-layout-widgets-page-widget-designer.component-BQ4G6aYf.mjs} +17 -17
- package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-BQ4G6aYf.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-DWuWxUF_.mjs +116 -0
- package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-DWuWxUF_.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-DVaZN9QN.mjs → acorex-platform-layout-widgets-tabular-data-edit-popup.component-fV94u3t2.mjs} +25 -19
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-fV94u3t2.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-tabular-data-view-popup.component-DPGHgXa6.mjs → acorex-platform-layout-widgets-tabular-data-view-popup.component-DyuvQhgN.mjs} +9 -9
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-DyuvQhgN.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-text-block-widget-designer.component-CdiNW691.mjs → acorex-platform-layout-widgets-text-block-widget-designer.component-EJMMdpIs.mjs} +7 -7
- package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-EJMMdpIs.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-widgets.mjs +6396 -4058
- 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 +328 -166
- package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-CkptOSO3.mjs +160 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-CkptOSO3.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-DXC2qtvK.mjs +120 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-DXC2qtvK.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-rGsMVAZj.mjs → acorex-platform-themes-default-entity-master-single-view.component-DYyunzKZ.mjs} +16 -23
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-DYyunzKZ.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-error-401.component-C5lQECDP.mjs +31 -0
- package/fesm2022/acorex-platform-themes-default-error-401.component-C5lQECDP.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-error-404.component-D5wBXAB-.mjs +25 -0
- package/fesm2022/acorex-platform-themes-default-error-404.component-D5wBXAB-.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-error-offline.component-AhDiY3DI.mjs +19 -0
- package/fesm2022/acorex-platform-themes-default-error-offline.component-AhDiY3DI.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default.mjs +1687 -69
- package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-shared-icon-chooser-column.component-TJ9PWHMY.mjs → acorex-platform-themes-shared-icon-chooser-column.component-QL2-ZUVg.mjs} +8 -8
- package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-QL2-ZUVg.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-shared-icon-chooser-view.component-BHcKkIx0.mjs → acorex-platform-themes-shared-icon-chooser-view.component-BXydqPt_.mjs} +8 -8
- package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-BXydqPt_.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs → acorex-platform-themes-shared-settings.provider-D13QB3Hr.mjs} +2 -2
- package/fesm2022/acorex-platform-themes-shared-settings.provider-D13QB3Hr.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-Cb9iY6k9.mjs +88 -0
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-Cb9iY6k9.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-KP4-BND5.mjs +80 -0
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-KP4-BND5.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-shared.mjs +572 -465
- package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
- package/fesm2022/acorex-platform-workflow.mjs +276 -98
- package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
- package/fesm2022/acorex-platform.mjs.map +1 -1
- package/package.json +38 -38
- package/{auth/index.d.ts → types/acorex-platform-auth.d.ts} +14 -2
- package/{common/index.d.ts → types/acorex-platform-common.d.ts} +261 -24
- package/{core/index.d.ts → types/acorex-platform-core.d.ts} +163 -42
- package/{domain/index.d.ts → types/acorex-platform-domain.d.ts} +744 -412
- package/{layout/builder/index.d.ts → types/acorex-platform-layout-builder.d.ts} +137 -38
- package/{layout/components/index.d.ts → types/acorex-platform-layout-components.d.ts} +808 -131
- package/{layout/designer/index.d.ts → types/acorex-platform-layout-designer.d.ts} +96 -18
- package/{layout/entity/index.d.ts → types/acorex-platform-layout-entity.d.ts} +686 -61
- package/{layout/views/index.d.ts → types/acorex-platform-layout-views.d.ts} +80 -47
- package/{layout/widget-core/index.d.ts → types/acorex-platform-layout-widget-core.d.ts} +274 -197
- package/{layout/widgets/index.d.ts → types/acorex-platform-layout-widgets.d.ts} +583 -104
- package/{native/index.d.ts → types/acorex-platform-native.d.ts} +0 -7
- package/types/acorex-platform-runtime.d.ts +565 -0
- package/{themes/default/index.d.ts → types/acorex-platform-themes-default.d.ts} +105 -4
- package/{themes/shared/index.d.ts → types/acorex-platform-themes-shared.d.ts} +14 -5
- package/{workflow/index.d.ts → types/acorex-platform-workflow.d.ts} +96 -81
- package/fesm2022/acorex-platform-common-common-settings.provider-41RhWqb4.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-CSxCnzwU.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-CPBzE96V.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-Dtv6U3df.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-QxJfswhK.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-CVdssZBD.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BCxE0RTB.mjs +0 -111
- package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BCxE0RTB.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-DVaZN9QN.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-DPGHgXa6.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-CdiNW691.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-D4hU2SCE.mjs +0 -160
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-D4hU2SCE.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-CLDoygoI.mjs +0 -1610
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-CLDoygoI.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BVTklnzs.mjs +0 -120
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BVTklnzs.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-rGsMVAZj.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-error-401.component-53VB-PS_.mjs +0 -31
- package/fesm2022/acorex-platform-themes-default-error-401.component-53VB-PS_.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-error-404.component-DVF9soT5.mjs +0 -25
- package/fesm2022/acorex-platform-themes-default-error-404.component-DVF9soT5.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-error-offline.component-CwNNHzZn.mjs +0 -19
- package/fesm2022/acorex-platform-themes-default-error-offline.component-CwNNHzZn.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-TJ9PWHMY.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-BHcKkIx0.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-BUPs84MI.mjs +0 -65
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-BUPs84MI.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-BotknoHn.mjs +0 -64
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-BotknoHn.mjs.map +0 -1
- package/runtime/index.d.ts +0 -307
- /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) {
|
|
@@ -882,10 +1105,10 @@ class AXPHomePageService {
|
|
|
882
1105
|
router.navigate([current.path], { onSameUrlNavigation: 'reload' });
|
|
883
1106
|
}, 100);
|
|
884
1107
|
}
|
|
885
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
886
|
-
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' }); }
|
|
887
1110
|
}
|
|
888
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1111
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPHomePageService, decorators: [{
|
|
889
1112
|
type: Injectable,
|
|
890
1113
|
args: [{
|
|
891
1114
|
providedIn: 'root',
|
|
@@ -947,17 +1170,17 @@ class AXPHomePageSettingProvider {
|
|
|
947
1170
|
// End the 'General Settings' group
|
|
948
1171
|
.endGroup();
|
|
949
1172
|
}
|
|
950
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
951
|
-
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 }); }
|
|
952
1175
|
}
|
|
953
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1176
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPHomePageSettingProvider, decorators: [{
|
|
954
1177
|
type: Injectable
|
|
955
1178
|
}], ctorParameters: () => [{ type: i0.Injector }] });
|
|
956
1179
|
|
|
957
1180
|
class AXPHomePageModule {
|
|
958
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
959
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
960
|
-
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: [
|
|
961
1184
|
{
|
|
962
1185
|
provide: AXP_SETTING_DEFINITION_PROVIDER,
|
|
963
1186
|
useClass: AXPHomePageSettingProvider,
|
|
@@ -965,7 +1188,7 @@ class AXPHomePageModule {
|
|
|
965
1188
|
},
|
|
966
1189
|
] }); }
|
|
967
1190
|
}
|
|
968
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1191
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPHomePageModule, decorators: [{
|
|
969
1192
|
type: NgModule,
|
|
970
1193
|
args: [{
|
|
971
1194
|
imports: [],
|
|
@@ -988,10 +1211,10 @@ class AXPCustomOperatorServiceImpl extends AXPCustomOperatorService {
|
|
|
988
1211
|
getCustomOperators() {
|
|
989
1212
|
return {};
|
|
990
1213
|
}
|
|
991
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
992
|
-
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 }); }
|
|
993
1216
|
}
|
|
994
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1217
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPCustomOperatorServiceImpl, decorators: [{
|
|
995
1218
|
type: Injectable
|
|
996
1219
|
}] });
|
|
997
1220
|
|
|
@@ -1036,10 +1259,10 @@ class AXPFilterOperatorMiddlewareServiceImpl extends AXPFilterOperatorMiddleware
|
|
|
1036
1259
|
return acc;
|
|
1037
1260
|
}, {});
|
|
1038
1261
|
}
|
|
1039
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1040
|
-
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 }); }
|
|
1041
1264
|
}
|
|
1042
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1265
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPFilterOperatorMiddlewareServiceImpl, decorators: [{
|
|
1043
1266
|
type: Injectable
|
|
1044
1267
|
}] });
|
|
1045
1268
|
|
|
@@ -1060,10 +1283,10 @@ class AXPErrorHandlerRegistryService {
|
|
|
1060
1283
|
get handlers() {
|
|
1061
1284
|
return this.errorHandlers;
|
|
1062
1285
|
}
|
|
1063
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1064
|
-
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' }); }
|
|
1065
1288
|
}
|
|
1066
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1289
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPErrorHandlerRegistryService, decorators: [{
|
|
1067
1290
|
type: Injectable,
|
|
1068
1291
|
args: [{
|
|
1069
1292
|
providedIn: 'root'
|
|
@@ -1094,10 +1317,10 @@ class AXPGlobalErrorHandler extends ErrorHandler {
|
|
|
1094
1317
|
}
|
|
1095
1318
|
handleErrorRecursively(0, error);
|
|
1096
1319
|
}
|
|
1097
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1098
|
-
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' }); }
|
|
1099
1322
|
}
|
|
1100
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1323
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPGlobalErrorHandler, decorators: [{
|
|
1101
1324
|
type: Injectable,
|
|
1102
1325
|
args: [{ providedIn: 'root' }]
|
|
1103
1326
|
}], ctorParameters: () => [{ type: i0.Injector }, { type: AXPErrorHandlerRegistryService }] });
|
|
@@ -1168,10 +1391,10 @@ class AXPTokenDefinitionService {
|
|
|
1168
1391
|
clearDefinitionsCache() {
|
|
1169
1392
|
this.definitionsByName.clear();
|
|
1170
1393
|
}
|
|
1171
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1172
|
-
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' }); }
|
|
1173
1396
|
}
|
|
1174
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1397
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPTokenDefinitionService, decorators: [{
|
|
1175
1398
|
type: Injectable,
|
|
1176
1399
|
args: [{
|
|
1177
1400
|
providedIn: 'root',
|
|
@@ -1209,32 +1432,24 @@ class AXPStickyDirective {
|
|
|
1209
1432
|
this.stickyOffset = 100;
|
|
1210
1433
|
this.isStickyChange = new EventEmitter();
|
|
1211
1434
|
this._isSticky = false;
|
|
1435
|
+
this.onWindowResize = () => {
|
|
1436
|
+
this.applyStickyStateFromScrollPosition();
|
|
1437
|
+
};
|
|
1212
1438
|
this.onParentScroll = () => {
|
|
1213
|
-
this.
|
|
1214
|
-
const scrollTop = this.parentElement === window ? window.scrollY : this.parentElement.scrollTop;
|
|
1215
|
-
const shouldStick = scrollTop + this.stickyOffset >= this.topOffset;
|
|
1216
|
-
if (shouldStick !== this.isSticky) {
|
|
1217
|
-
this.zone.run(() => {
|
|
1218
|
-
this.isSticky = shouldStick;
|
|
1219
|
-
this.toggleStickyClasses(shouldStick);
|
|
1220
|
-
this.cdr.markForCheck();
|
|
1221
|
-
});
|
|
1222
|
-
}
|
|
1223
|
-
});
|
|
1439
|
+
this.applyStickyStateFromScrollPosition();
|
|
1224
1440
|
};
|
|
1225
1441
|
}
|
|
1226
1442
|
ngAfterViewInit() {
|
|
1227
1443
|
this.initSticky();
|
|
1228
1444
|
// Add mutation observer for dynamic content
|
|
1229
1445
|
this.mutationObserver = new MutationObserver(() => {
|
|
1230
|
-
this.
|
|
1446
|
+
this.applyStickyStateFromScrollPosition();
|
|
1231
1447
|
});
|
|
1232
1448
|
this.mutationObserver.observe(this.element.nativeElement, {
|
|
1233
1449
|
childList: true,
|
|
1234
1450
|
subtree: true,
|
|
1235
1451
|
});
|
|
1236
|
-
|
|
1237
|
-
window.addEventListener('resize', this.updateTopOffset.bind(this));
|
|
1452
|
+
window.addEventListener('resize', this.onWindowResize);
|
|
1238
1453
|
}
|
|
1239
1454
|
initSticky() {
|
|
1240
1455
|
if (this.stickyParent instanceof HTMLElement) {
|
|
@@ -1244,13 +1459,42 @@ class AXPStickyDirective {
|
|
|
1244
1459
|
this.parentElement = document.querySelector(this.stickyParent) || window;
|
|
1245
1460
|
}
|
|
1246
1461
|
this.targetElement = document.querySelector(this.stickyTarget) || this.element.nativeElement;
|
|
1247
|
-
this.updateTopOffset();
|
|
1248
1462
|
this.parentElement.addEventListener('scroll', this.onParentScroll);
|
|
1463
|
+
this.applyStickyStateFromScrollPosition();
|
|
1249
1464
|
}
|
|
1250
|
-
|
|
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;
|
|
1487
|
+
}
|
|
1488
|
+
applyStickyStateFromScrollPosition() {
|
|
1251
1489
|
this.zone.runOutsideAngular(() => {
|
|
1252
|
-
const
|
|
1253
|
-
|
|
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
|
+
}
|
|
1254
1498
|
});
|
|
1255
1499
|
}
|
|
1256
1500
|
toggleStickyClasses(isSticky) {
|
|
@@ -1266,15 +1510,15 @@ class AXPStickyDirective {
|
|
|
1266
1510
|
}
|
|
1267
1511
|
ngOnDestroy() {
|
|
1268
1512
|
this.parentElement.removeEventListener('scroll', this.onParentScroll);
|
|
1269
|
-
window.removeEventListener('resize', this.
|
|
1513
|
+
window.removeEventListener('resize', this.onWindowResize);
|
|
1270
1514
|
if (this.mutationObserver) {
|
|
1271
1515
|
this.mutationObserver.disconnect();
|
|
1272
1516
|
}
|
|
1273
1517
|
}
|
|
1274
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1275
|
-
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 }); }
|
|
1276
1520
|
}
|
|
1277
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1521
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPStickyDirective, decorators: [{
|
|
1278
1522
|
type: Directive,
|
|
1279
1523
|
args: [{
|
|
1280
1524
|
selector: '[axpSticky]',
|
|
@@ -1617,10 +1861,10 @@ class AXPMenuMiddlewareRegistry {
|
|
|
1617
1861
|
clear() {
|
|
1618
1862
|
this.manualMiddlewares.clear();
|
|
1619
1863
|
}
|
|
1620
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1621
|
-
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' }); }
|
|
1622
1866
|
}
|
|
1623
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1867
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPMenuMiddlewareRegistry, decorators: [{
|
|
1624
1868
|
type: Injectable,
|
|
1625
1869
|
args: [{ providedIn: 'root' }]
|
|
1626
1870
|
}] });
|
|
@@ -2049,10 +2293,10 @@ class AXPMenuProviderService {
|
|
|
2049
2293
|
}
|
|
2050
2294
|
}
|
|
2051
2295
|
}
|
|
2052
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2053
|
-
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' }); }
|
|
2054
2298
|
}
|
|
2055
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2299
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPMenuProviderService, decorators: [{
|
|
2056
2300
|
type: Injectable,
|
|
2057
2301
|
args: [{ providedIn: 'root' }]
|
|
2058
2302
|
}] });
|
|
@@ -2072,6 +2316,90 @@ function setMenuItemMeta(items, parentIndex = '', depth = 0) {
|
|
|
2072
2316
|
});
|
|
2073
2317
|
}
|
|
2074
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
|
+
|
|
2075
2403
|
//#region ---- Menu Middleware Provider Helper ----
|
|
2076
2404
|
/**
|
|
2077
2405
|
* Helper function to provide menu middlewares with proper DI setup
|
|
@@ -2366,10 +2694,10 @@ class AXPMenuVisibilityService {
|
|
|
2366
2694
|
// Otherwise, don't render empty menu items
|
|
2367
2695
|
return false;
|
|
2368
2696
|
}
|
|
2369
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2370
|
-
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' }); }
|
|
2371
2699
|
}
|
|
2372
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2700
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPMenuVisibilityService, decorators: [{
|
|
2373
2701
|
type: Injectable,
|
|
2374
2702
|
args: [{ providedIn: 'root' }]
|
|
2375
2703
|
}] });
|
|
@@ -2446,18 +2774,19 @@ class AXPMenuSearchProvider {
|
|
|
2446
2774
|
}
|
|
2447
2775
|
|
|
2448
2776
|
class AXPFooterTextSlotComponent {
|
|
2449
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2450
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
2451
|
-
<small class="
|
|
2452
|
-
`, isInline: true }); }
|
|
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: `
|
|
2779
|
+
<small class="text-sm" [innerHTML]="text"></small>
|
|
2780
|
+
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2453
2781
|
}
|
|
2454
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2782
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPFooterTextSlotComponent, decorators: [{
|
|
2455
2783
|
type: Component,
|
|
2456
2784
|
args: [{
|
|
2457
2785
|
template: `
|
|
2458
|
-
<small class="
|
|
2786
|
+
<small class="text-sm" [innerHTML]="text"></small>
|
|
2459
2787
|
`,
|
|
2460
|
-
standalone: true
|
|
2788
|
+
standalone: true,
|
|
2789
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2461
2790
|
}]
|
|
2462
2791
|
}], propDecorators: { text: [{
|
|
2463
2792
|
type: Input
|
|
@@ -2468,20 +2797,20 @@ class AXPNavBarSlotComponent {
|
|
|
2468
2797
|
// if (action)
|
|
2469
2798
|
// this.store.dispatch(action)
|
|
2470
2799
|
}
|
|
2471
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2472
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
2473
|
-
<div class="
|
|
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: `
|
|
2802
|
+
<div class="flex items-center justify-between gap-5">
|
|
2474
2803
|
@for (link of items; track link) {
|
|
2475
2804
|
<a (click)="handleCommand(link.command)" >{{ link.text }}</a>
|
|
2476
2805
|
}
|
|
2477
2806
|
</div>
|
|
2478
2807
|
`, isInline: true, encapsulation: i0.ViewEncapsulation.None }); }
|
|
2479
2808
|
}
|
|
2480
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2809
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPNavBarSlotComponent, decorators: [{
|
|
2481
2810
|
type: Component,
|
|
2482
2811
|
args: [{
|
|
2483
2812
|
template: `
|
|
2484
|
-
<div class="
|
|
2813
|
+
<div class="flex items-center justify-between gap-5">
|
|
2485
2814
|
@for (link of items; track link) {
|
|
2486
2815
|
<a (click)="handleCommand(link.command)" >{{ link.text }}</a>
|
|
2487
2816
|
}
|
|
@@ -2611,10 +2940,10 @@ class AXPSearchDefinitionProviderService {
|
|
|
2611
2940
|
}
|
|
2612
2941
|
return definition;
|
|
2613
2942
|
}
|
|
2614
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2615
|
-
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' }); }
|
|
2616
2945
|
}
|
|
2617
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2946
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPSearchDefinitionProviderService, decorators: [{
|
|
2618
2947
|
type: Injectable,
|
|
2619
2948
|
args: [{ providedIn: 'root' }]
|
|
2620
2949
|
}] });
|
|
@@ -2632,6 +2961,7 @@ class AXPSearchService {
|
|
|
2632
2961
|
this.providers = inject(AXP_SEARCH_PROVIDER, { optional: true });
|
|
2633
2962
|
this.definitionService = inject(AXPSearchDefinitionProviderService);
|
|
2634
2963
|
this.formatService = inject(AXFormatService);
|
|
2964
|
+
this.translationService = inject(AXTranslationService);
|
|
2635
2965
|
}
|
|
2636
2966
|
async search(text) {
|
|
2637
2967
|
//TODO better handle this
|
|
@@ -2674,10 +3004,7 @@ class AXPSearchService {
|
|
|
2674
3004
|
(definition.format.description
|
|
2675
3005
|
? this.formatService.format(definition.format.description, 'string', result.data)
|
|
2676
3006
|
: undefined),
|
|
2677
|
-
icon: result.icon ??
|
|
2678
|
-
(result.icon
|
|
2679
|
-
? this.formatService.format(definition.format.icon, 'string', result.data)
|
|
2680
|
-
: definition.icon),
|
|
3007
|
+
icon: result.icon ?? definition.icon,
|
|
2681
3008
|
data: result.data,
|
|
2682
3009
|
command: result.command,
|
|
2683
3010
|
actions: definition.actions,
|
|
@@ -2711,14 +3038,53 @@ class AXPSearchService {
|
|
|
2711
3038
|
groupedData.sort((a, b) => a.order - b.order);
|
|
2712
3039
|
return groupedData;
|
|
2713
3040
|
}
|
|
2714
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2715
|
-
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' }); }
|
|
2716
3043
|
}
|
|
2717
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3044
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPSearchService, decorators: [{
|
|
2718
3045
|
type: Injectable,
|
|
2719
3046
|
args: [{ providedIn: 'root' }]
|
|
2720
3047
|
}] });
|
|
2721
3048
|
|
|
3049
|
+
/**
|
|
3050
|
+
* Shared utility for creating Entity:Create command options used in search command providers.
|
|
3051
|
+
* Use with command: { name: 'Entity:Create', options: createEntityCommandOptions(...) }
|
|
3052
|
+
*/
|
|
3053
|
+
function createEntityCommandOptions(entityKey, entityInfo) {
|
|
3054
|
+
return {
|
|
3055
|
+
__context__: {
|
|
3056
|
+
entity: entityKey,
|
|
3057
|
+
entityInfo: {
|
|
3058
|
+
name: entityInfo.name,
|
|
3059
|
+
module: entityInfo.module,
|
|
3060
|
+
title: entityInfo.title,
|
|
3061
|
+
parentKey: undefined,
|
|
3062
|
+
source: entityKey,
|
|
3063
|
+
},
|
|
3064
|
+
data: {},
|
|
3065
|
+
options: {},
|
|
3066
|
+
},
|
|
3067
|
+
};
|
|
3068
|
+
}
|
|
3069
|
+
/**
|
|
3070
|
+
* Creates a search command for "Create {Entity}" with consistent i18n pattern.
|
|
3071
|
+
* Use titleKey/descriptionKey from module (e.g. @module:entity.permissions.create.title).
|
|
3072
|
+
* Standard: "Create {Entity}" for title, "Create new {entities}" for description.
|
|
3073
|
+
*/
|
|
3074
|
+
function createEntitySearchCommand(config) {
|
|
3075
|
+
return {
|
|
3076
|
+
id: config.id,
|
|
3077
|
+
group: 'command',
|
|
3078
|
+
title: config.titleKey,
|
|
3079
|
+
description: config.descriptionKey ?? config.titleKey,
|
|
3080
|
+
icon: config.icon,
|
|
3081
|
+
command: {
|
|
3082
|
+
name: 'Entity:Create',
|
|
3083
|
+
options: createEntityCommandOptions(config.entityKey, config.entityInfo),
|
|
3084
|
+
},
|
|
3085
|
+
};
|
|
3086
|
+
}
|
|
3087
|
+
|
|
2722
3088
|
var AXPCommonSettings;
|
|
2723
3089
|
(function (AXPCommonSettings) {
|
|
2724
3090
|
AXPCommonSettings["EnableOperationToasts"] = "Common:Setting:Notifications.EnableOperationToasts";
|
|
@@ -2727,6 +3093,7 @@ var AXPCommonSettings;
|
|
|
2727
3093
|
AXPCommonSettings["ApplyLayoutOrdering"] = "Common:Setting:Entity.ApplyLayoutOrdering";
|
|
2728
3094
|
AXPCommonSettings["RedirectToDetailsAfterCreate"] = "Common:Setting:Entity.RedirectToDetailsAfterCreate";
|
|
2729
3095
|
AXPCommonSettings["ShowPageBadge"] = "Common:Setting:Entity.ShowPageBadge";
|
|
3096
|
+
AXPCommonSettings["DebugMode"] = "PlatformDevTools:Setting:Developer.DebugMode";
|
|
2730
3097
|
})(AXPCommonSettings || (AXPCommonSettings = {}));
|
|
2731
3098
|
|
|
2732
3099
|
//TODO Loading, Redirect, Drawer, Show toast
|
|
@@ -2751,10 +3118,10 @@ class AXPWorkflowNavigateAction extends AXPWorkflowAction {
|
|
|
2751
3118
|
this.router.navigate([payload.commands], payload.extras);
|
|
2752
3119
|
}
|
|
2753
3120
|
}
|
|
2754
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2755
|
-
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 }); }
|
|
2756
3123
|
}
|
|
2757
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3124
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowNavigateAction, decorators: [{
|
|
2758
3125
|
type: Injectable
|
|
2759
3126
|
}] });
|
|
2760
3127
|
class AXPDialogConfirmAction extends AXPWorkflowAction {
|
|
@@ -2770,10 +3137,10 @@ class AXPDialogConfirmAction extends AXPWorkflowAction {
|
|
|
2770
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');
|
|
2771
3138
|
context.setOutput('result', dialogResult.result);
|
|
2772
3139
|
}
|
|
2773
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2774
|
-
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 }); }
|
|
2775
3142
|
}
|
|
2776
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3143
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPDialogConfirmAction, decorators: [{
|
|
2777
3144
|
type: Injectable
|
|
2778
3145
|
}] });
|
|
2779
3146
|
class AXPToastAction extends AXPWorkflowAction {
|
|
@@ -2796,20 +3163,20 @@ class AXPToastAction extends AXPWorkflowAction {
|
|
|
2796
3163
|
});
|
|
2797
3164
|
}
|
|
2798
3165
|
}
|
|
2799
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2800
|
-
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 }); }
|
|
2801
3168
|
}
|
|
2802
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3169
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPToastAction, decorators: [{
|
|
2803
3170
|
type: Injectable
|
|
2804
3171
|
}] });
|
|
2805
3172
|
class AXPReloadAction extends AXPWorkflowAction {
|
|
2806
3173
|
async execute(context) {
|
|
2807
3174
|
this.dispatch(AXPReloadEvent({ entity: context.getVariable('entity'), meta: context.getVariable('meta') }));
|
|
2808
3175
|
}
|
|
2809
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2810
|
-
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 }); }
|
|
2811
3178
|
}
|
|
2812
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3179
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPReloadAction, decorators: [{
|
|
2813
3180
|
type: Injectable
|
|
2814
3181
|
}] });
|
|
2815
3182
|
|
|
@@ -2821,6 +3188,10 @@ class AXPWorkflowRouterNavigateAction extends AXPWorkflowAction {
|
|
|
2821
3188
|
async execute(context) {
|
|
2822
3189
|
const command = context.getVariable();
|
|
2823
3190
|
const path = command.options.path;
|
|
3191
|
+
if (!path) {
|
|
3192
|
+
console.error('Path is required for navigate workflow');
|
|
3193
|
+
return;
|
|
3194
|
+
}
|
|
2824
3195
|
if (path?.toLowerCase()?.startsWith('http') || command.options?.extras?.target === 'blank') {
|
|
2825
3196
|
window.open(path, '_blank');
|
|
2826
3197
|
}
|
|
@@ -2849,10 +3220,10 @@ class AXPWorkflowRouterNavigateAction extends AXPWorkflowAction {
|
|
|
2849
3220
|
return params;
|
|
2850
3221
|
}, {});
|
|
2851
3222
|
}
|
|
2852
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2853
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
3223
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowRouterNavigateAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3224
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowRouterNavigateAction }); }
|
|
2854
3225
|
}
|
|
2855
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3226
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowRouterNavigateAction, decorators: [{
|
|
2856
3227
|
type: Injectable
|
|
2857
3228
|
}] });
|
|
2858
3229
|
const AXPNavigateWorkflow = {
|
|
@@ -2877,10 +3248,10 @@ class AXMWorkflowErrorHandler {
|
|
|
2877
3248
|
next(error);
|
|
2878
3249
|
}
|
|
2879
3250
|
}
|
|
2880
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2881
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
3251
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMWorkflowErrorHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3252
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMWorkflowErrorHandler }); }
|
|
2882
3253
|
}
|
|
2883
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3254
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMWorkflowErrorHandler, decorators: [{
|
|
2884
3255
|
type: Injectable
|
|
2885
3256
|
}] });
|
|
2886
3257
|
|
|
@@ -2925,12 +3296,12 @@ class AXPCommonModule {
|
|
|
2925
3296
|
f();
|
|
2926
3297
|
});
|
|
2927
3298
|
}
|
|
2928
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2929
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
3299
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPCommonModule, deps: [{ token: 'AXPCommonModuleFactory' }], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
3300
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.9", ngImport: i0, type: AXPCommonModule, imports: [i1.AXPWorkflowModule, AXPopupModule,
|
|
2930
3301
|
AXDateTimeModule,
|
|
2931
3302
|
AXToastModule,
|
|
2932
3303
|
AXPModuleManifestModule], exports: [RouterModule] }); }
|
|
2933
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
3304
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPCommonModule, providers: [
|
|
2934
3305
|
AXPAppStartUpProvider,
|
|
2935
3306
|
{
|
|
2936
3307
|
provide: ErrorHandler,
|
|
@@ -2959,11 +3330,16 @@ class AXPCommonModule {
|
|
|
2959
3330
|
useClass: AXPTokenEvaluatorScopeProvider,
|
|
2960
3331
|
multi: true,
|
|
2961
3332
|
},
|
|
3333
|
+
{
|
|
3334
|
+
provide: AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER,
|
|
3335
|
+
useClass: AXPSettingsEvaluatorScopeProvider,
|
|
3336
|
+
multi: true,
|
|
3337
|
+
},
|
|
2962
3338
|
{
|
|
2963
3339
|
provide: AXP_SETTING_DEFINITION_PROVIDER,
|
|
2964
3340
|
useFactory: async () => {
|
|
2965
3341
|
const injector = inject(Injector);
|
|
2966
|
-
const provider = (await import('./acorex-platform-common-common-settings.provider-
|
|
3342
|
+
const provider = (await import('./acorex-platform-common-common-settings.provider-G9XcXXOG.mjs')).AXPCommonSettingProvider;
|
|
2967
3343
|
return new provider(injector);
|
|
2968
3344
|
},
|
|
2969
3345
|
multi: true,
|
|
@@ -2984,7 +3360,7 @@ class AXPCommonModule {
|
|
|
2984
3360
|
AXToastModule,
|
|
2985
3361
|
AXPModuleManifestModule, RouterModule] }); }
|
|
2986
3362
|
}
|
|
2987
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3363
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPCommonModule, decorators: [{
|
|
2988
3364
|
type: NgModule,
|
|
2989
3365
|
args: [{
|
|
2990
3366
|
imports: [
|
|
@@ -3034,11 +3410,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImpo
|
|
|
3034
3410
|
useClass: AXPTokenEvaluatorScopeProvider,
|
|
3035
3411
|
multi: true,
|
|
3036
3412
|
},
|
|
3413
|
+
{
|
|
3414
|
+
provide: AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER,
|
|
3415
|
+
useClass: AXPSettingsEvaluatorScopeProvider,
|
|
3416
|
+
multi: true,
|
|
3417
|
+
},
|
|
3037
3418
|
{
|
|
3038
3419
|
provide: AXP_SETTING_DEFINITION_PROVIDER,
|
|
3039
3420
|
useFactory: async () => {
|
|
3040
3421
|
const injector = inject(Injector);
|
|
3041
|
-
const provider = (await import('./acorex-platform-common-common-settings.provider-
|
|
3422
|
+
const provider = (await import('./acorex-platform-common-common-settings.provider-G9XcXXOG.mjs')).AXPCommonSettingProvider;
|
|
3042
3423
|
return new provider(injector);
|
|
3043
3424
|
},
|
|
3044
3425
|
multi: true,
|
|
@@ -3071,10 +3452,10 @@ function configPlatform(config = AXPPlatformDefaultConfigs) {
|
|
|
3071
3452
|
const AXP_ROOT_CONFIG_TOKEN = new InjectionToken('AXP_ROOT_CONFIG_TOKEN');
|
|
3072
3453
|
|
|
3073
3454
|
class AXPFileStorageService {
|
|
3074
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3075
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
3455
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPFileStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3456
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPFileStorageService }); }
|
|
3076
3457
|
}
|
|
3077
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3458
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPFileStorageService, decorators: [{
|
|
3078
3459
|
type: Injectable
|
|
3079
3460
|
}] });
|
|
3080
3461
|
|
|
@@ -3191,10 +3572,10 @@ class AXPFileActionsService {
|
|
|
3191
3572
|
return false;
|
|
3192
3573
|
});
|
|
3193
3574
|
}
|
|
3194
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3195
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
3575
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPFileActionsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3576
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPFileActionsService, providedIn: 'root' }); }
|
|
3196
3577
|
}
|
|
3197
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3578
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPFileActionsService, decorators: [{
|
|
3198
3579
|
type: Injectable,
|
|
3199
3580
|
args: [{
|
|
3200
3581
|
providedIn: 'root',
|
|
@@ -3264,19 +3645,19 @@ class AXPFileTypeProviderService {
|
|
|
3264
3645
|
async get(name) {
|
|
3265
3646
|
return (await this.items()).find((c) => c.name == name);
|
|
3266
3647
|
}
|
|
3267
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3268
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
3648
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPFileTypeProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3649
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPFileTypeProviderService, providedIn: 'root' }); }
|
|
3269
3650
|
}
|
|
3270
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3651
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPFileTypeProviderService, decorators: [{
|
|
3271
3652
|
type: Injectable,
|
|
3272
3653
|
args: [{ providedIn: 'root' }]
|
|
3273
3654
|
}] });
|
|
3274
3655
|
|
|
3275
3656
|
class AXPLockService {
|
|
3276
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3277
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
3657
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPLockService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3658
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPLockService }); }
|
|
3278
3659
|
}
|
|
3279
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3660
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPLockService, decorators: [{
|
|
3280
3661
|
type: Injectable
|
|
3281
3662
|
}] });
|
|
3282
3663
|
|
|
@@ -3446,7 +3827,7 @@ class AXPStatusDefinitionProviderService {
|
|
|
3446
3827
|
}
|
|
3447
3828
|
else {
|
|
3448
3829
|
// Use default Entity:UpdateStatus command
|
|
3449
|
-
const entity = context['entityName'] ?? context['__meta__']?.config?.name;
|
|
3830
|
+
const entity = context['entity'] ?? context['entityName'] ?? context['__meta__']?.config?.name;
|
|
3450
3831
|
if (!entity) {
|
|
3451
3832
|
throw new Error('Entity name is required in context when using default status update command');
|
|
3452
3833
|
}
|
|
@@ -3459,7 +3840,7 @@ class AXPStatusDefinitionProviderService {
|
|
|
3459
3840
|
commandOptions = {
|
|
3460
3841
|
entity,
|
|
3461
3842
|
status: transition.to,
|
|
3462
|
-
statusField: context['statusField'] ?? 'statusId',
|
|
3843
|
+
statusField: context['statusField'] ?? context['fieldName'] ?? 'statusId',
|
|
3463
3844
|
...(id ? { id } : {}),
|
|
3464
3845
|
...(ids ? { ids } : {}),
|
|
3465
3846
|
};
|
|
@@ -3467,7 +3848,8 @@ class AXPStatusDefinitionProviderService {
|
|
|
3467
3848
|
// Execute the command
|
|
3468
3849
|
const result = await this.commandService.execute(commandName, commandOptions);
|
|
3469
3850
|
if (!result?.success) {
|
|
3470
|
-
|
|
3851
|
+
const text = this.commandMessageTextForError(result?.message?.text);
|
|
3852
|
+
throw new Error(text || 'Failed to execute status transition command');
|
|
3471
3853
|
}
|
|
3472
3854
|
}
|
|
3473
3855
|
/**
|
|
@@ -3477,10 +3859,27 @@ class AXPStatusDefinitionProviderService {
|
|
|
3477
3859
|
isValidTransition(provider, from, to) {
|
|
3478
3860
|
return provider.transitions.some((transition) => transition.from === from && transition.to === to);
|
|
3479
3861
|
}
|
|
3480
|
-
|
|
3481
|
-
|
|
3862
|
+
/**
|
|
3863
|
+
* Best-effort plain string for {@link Error} messages (no i18n lookup).
|
|
3864
|
+
*/
|
|
3865
|
+
commandMessageTextForError(value) {
|
|
3866
|
+
if (value == null) {
|
|
3867
|
+
return '';
|
|
3868
|
+
}
|
|
3869
|
+
if (typeof value === 'string') {
|
|
3870
|
+
return value;
|
|
3871
|
+
}
|
|
3872
|
+
if (typeof value === 'object' && !Array.isArray(value)) {
|
|
3873
|
+
const values = Object.values(value);
|
|
3874
|
+
const first = values.find((v) => typeof v === 'string' && v.length > 0);
|
|
3875
|
+
return first ?? '';
|
|
3876
|
+
}
|
|
3877
|
+
return String(value);
|
|
3878
|
+
}
|
|
3879
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPStatusDefinitionProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3880
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPStatusDefinitionProviderService, providedIn: 'root' }); }
|
|
3482
3881
|
}
|
|
3483
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3882
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPStatusDefinitionProviderService, decorators: [{
|
|
3484
3883
|
type: Injectable,
|
|
3485
3884
|
args: [{ providedIn: 'root' }]
|
|
3486
3885
|
}] });
|
|
@@ -3827,10 +4226,10 @@ class AXPClipBoardService {
|
|
|
3827
4226
|
navigator.clipboard.writeText(value);
|
|
3828
4227
|
this.toast.success(`${title} copied!`);
|
|
3829
4228
|
}
|
|
3830
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3831
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
4229
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPClipBoardService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4230
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPClipBoardService, providedIn: 'root' }); }
|
|
3832
4231
|
}
|
|
3833
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4232
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPClipBoardService, decorators: [{
|
|
3834
4233
|
type: Injectable,
|
|
3835
4234
|
args: [{
|
|
3836
4235
|
providedIn: 'root',
|
|
@@ -3944,10 +4343,10 @@ class AXPDebugService {
|
|
|
3944
4343
|
console.error('[AXPDebugService] Failed to display user access info:', error);
|
|
3945
4344
|
}
|
|
3946
4345
|
}
|
|
3947
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3948
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
4346
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPDebugService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4347
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPDebugService, providedIn: 'root' }); }
|
|
3949
4348
|
}
|
|
3950
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4349
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPDebugService, decorators: [{
|
|
3951
4350
|
type: Injectable,
|
|
3952
4351
|
args: [{
|
|
3953
4352
|
providedIn: 'root',
|
|
@@ -3957,15 +4356,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImpo
|
|
|
3957
4356
|
class AXMOrgChartPrintPage extends AXBasePageComponent {
|
|
3958
4357
|
constructor() {
|
|
3959
4358
|
super(...arguments);
|
|
3960
|
-
this.ratio = signal(false, ...(ngDevMode ? [{ debugName: "ratio" }] : []));
|
|
3961
|
-
this.baseWidth = signal(undefined, ...(ngDevMode ? [{ debugName: "baseWidth" }] : []));
|
|
3962
|
-
this.baseHeight = signal(undefined, ...(ngDevMode ? [{ debugName: "baseHeight" }] : []));
|
|
3963
|
-
this.bgcolor = model(...(ngDevMode ? [undefined, { debugName: "bgcolor" }] : []));
|
|
3964
|
-
this.width = model(...(ngDevMode ? [undefined, { debugName: "width" }] : []));
|
|
3965
|
-
this.height = model(...(ngDevMode ? [undefined, { debugName: "height" }] : []));
|
|
3966
|
-
this.quality = model(...(ngDevMode ? [undefined, { debugName: "quality" }] : []));
|
|
3967
|
-
this.qualityComputed = linkedSignal(() => (this.data.quality ?? 1) * 100, ...(ngDevMode ? [{ debugName: "qualityComputed" }] : []));
|
|
3968
|
-
this.scale = model(...(ngDevMode ? [undefined, { debugName: "scale" }] : []));
|
|
4359
|
+
this.ratio = signal(false, ...(ngDevMode ? [{ debugName: "ratio" }] : /* istanbul ignore next */ []));
|
|
4360
|
+
this.baseWidth = signal(undefined, ...(ngDevMode ? [{ debugName: "baseWidth" }] : /* istanbul ignore next */ []));
|
|
4361
|
+
this.baseHeight = signal(undefined, ...(ngDevMode ? [{ debugName: "baseHeight" }] : /* istanbul ignore next */ []));
|
|
4362
|
+
this.bgcolor = model(...(ngDevMode ? [undefined, { debugName: "bgcolor" }] : /* istanbul ignore next */ []));
|
|
4363
|
+
this.width = model(...(ngDevMode ? [undefined, { debugName: "width" }] : /* istanbul ignore next */ []));
|
|
4364
|
+
this.height = model(...(ngDevMode ? [undefined, { debugName: "height" }] : /* istanbul ignore next */ []));
|
|
4365
|
+
this.quality = model(...(ngDevMode ? [undefined, { debugName: "quality" }] : /* istanbul ignore next */ []));
|
|
4366
|
+
this.qualityComputed = linkedSignal(() => (this.data.quality ?? 1) * 100, ...(ngDevMode ? [{ debugName: "qualityComputed" }] : /* istanbul ignore next */ []));
|
|
4367
|
+
this.scale = model(...(ngDevMode ? [undefined, { debugName: "scale" }] : /* istanbul ignore next */ []));
|
|
3969
4368
|
this.#init = afterNextRender(() => {
|
|
3970
4369
|
this.bgcolor.set(this.data.bgcolor);
|
|
3971
4370
|
this.width.set(this.data.width);
|
|
@@ -4002,10 +4401,10 @@ class AXMOrgChartPrintPage extends AXBasePageComponent {
|
|
|
4002
4401
|
isCanceled,
|
|
4003
4402
|
});
|
|
4004
4403
|
}
|
|
4005
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
4006
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "
|
|
4404
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMOrgChartPrintPage, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
4405
|
+
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="grid grid-cols-[auto_18rem] gap-4 justify-center p-4 items-center">
|
|
4007
4406
|
<ax-label>Resolution (px)</ax-label>
|
|
4008
|
-
<div class="
|
|
4407
|
+
<div class="flex gap-2 items-center">
|
|
4009
4408
|
<ax-number-box
|
|
4010
4409
|
[changeOnScroll]="true"
|
|
4011
4410
|
[decimals]="4"
|
|
@@ -4054,12 +4453,12 @@ class AXMOrgChartPrintPage extends AXBasePageComponent {
|
|
|
4054
4453
|
</ax-suffix>
|
|
4055
4454
|
</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"] }] }); }
|
|
4056
4455
|
}
|
|
4057
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4456
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMOrgChartPrintPage, decorators: [{
|
|
4058
4457
|
type: Component,
|
|
4059
4458
|
args: [{
|
|
4060
|
-
template: ` <div class="
|
|
4459
|
+
template: ` <div class="grid grid-cols-[auto_18rem] gap-4 justify-center p-4 items-center">
|
|
4061
4460
|
<ax-label>Resolution (px)</ax-label>
|
|
4062
|
-
<div class="
|
|
4461
|
+
<div class="flex gap-2 items-center">
|
|
4063
4462
|
<ax-number-box
|
|
4064
4463
|
[changeOnScroll]="true"
|
|
4065
4464
|
[decimals]="4"
|
|
@@ -4168,10 +4567,10 @@ class AXPExportService {
|
|
|
4168
4567
|
document.body.removeChild(link);
|
|
4169
4568
|
URL.revokeObjectURL(link.href);
|
|
4170
4569
|
}
|
|
4171
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
4172
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
4570
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPExportService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4571
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPExportService, providedIn: 'root' }); }
|
|
4173
4572
|
}
|
|
4174
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4573
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPExportService, decorators: [{
|
|
4175
4574
|
type: Injectable,
|
|
4176
4575
|
args: [{
|
|
4177
4576
|
providedIn: 'root',
|
|
@@ -4201,6 +4600,8 @@ function AXPCleanNestedFilters(filters) {
|
|
|
4201
4600
|
.filter(Boolean);
|
|
4202
4601
|
}
|
|
4203
4602
|
|
|
4603
|
+
const AXP_LOCALE_MANAGEMENT_PORT = new InjectionToken('AXP_LOCALE_MANAGEMENT_PORT');
|
|
4604
|
+
|
|
4204
4605
|
//#region ---- Versioning Types ----
|
|
4205
4606
|
var AXVChangeType;
|
|
4206
4607
|
(function (AXVChangeType) {
|
|
@@ -4218,5 +4619,5 @@ class AXPVersioningService {
|
|
|
4218
4619
|
* Generated bundle index. Do not edit.
|
|
4219
4620
|
*/
|
|
4220
4621
|
|
|
4221
|
-
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, createMenuContext, createMenuMiddleware, createQueryView, getEntityInfo, getStatusInfo, getSystemStatus, provideDynamicHomePage, provideMenuMiddleware, resolveStatusLook, systemStatusToDefinition };
|
|
4622
|
+
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 };
|
|
4222
4623
|
//# sourceMappingURL=acorex-platform-common.mjs.map
|