@acorex/platform 20.8.13 → 20.8.14
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/{types/acorex-platform-auth.d.ts → auth/index.d.ts} +2 -14
- package/{types/acorex-platform-common.d.ts → common/index.d.ts} +30 -302
- package/{types/acorex-platform-core.d.ts → core/index.d.ts} +44 -188
- package/{types/acorex-platform-domain.d.ts → domain/index.d.ts} +412 -744
- package/fesm2022/acorex-platform-auth.mjs +27 -125
- package/fesm2022/acorex-platform-auth.mjs.map +1 -1
- package/fesm2022/{acorex-platform-common-common-settings.provider-Bi1RYif5.mjs → acorex-platform-common-common-settings.provider-DVvuLUfF.mjs} +32 -30
- package/fesm2022/acorex-platform-common-common-settings.provider-DVvuLUfF.mjs.map +1 -0
- package/fesm2022/acorex-platform-common.mjs +205 -711
- package/fesm2022/acorex-platform-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-core.mjs +127 -420
- package/fesm2022/acorex-platform-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-domain.mjs +830 -561
- package/fesm2022/acorex-platform-domain.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-builder.mjs +114 -634
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/{acorex-platform-layout-components-binding-expression-editor-popup.component-CXEdvDTf.mjs → acorex-platform-layout-components-binding-expression-editor-popup.component-CSxCnzwU.mjs} +9 -9
- package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-CSxCnzwU.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-components.mjs +877 -3362
- package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-designer.mjs +204 -456
- package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity.mjs +10062 -14672
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-views.mjs +171 -413
- package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-widget-core.mjs +441 -507
- package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
- package/fesm2022/{acorex-platform-layout-widgets-button-widget-designer.component-Dy7jF-oD.mjs → acorex-platform-layout-widgets-button-widget-designer.component-CPBzE96V.mjs} +10 -10
- package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-CPBzE96V.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-file-list-popup.component-CDYAGBku.mjs → acorex-platform-layout-widgets-file-list-popup.component-Dtv6U3df.mjs} +76 -21
- package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-Dtv6U3df.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-image-preview.popup-C_EPAvCU.mjs → acorex-platform-layout-widgets-image-preview.popup-QxJfswhK.mjs} +7 -6
- package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-QxJfswhK.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-page-widget-designer.component-D10yO28c.mjs → acorex-platform-layout-widgets-page-widget-designer.component-CVdssZBD.mjs} +12 -12
- package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-CVdssZBD.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BCxE0RTB.mjs +111 -0
- package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BCxE0RTB.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-DmzNTYiS.mjs → acorex-platform-layout-widgets-tabular-data-edit-popup.component-DVaZN9QN.mjs} +5 -5
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-DVaZN9QN.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-tabular-data-view-popup.component-BNG_588B.mjs → acorex-platform-layout-widgets-tabular-data-view-popup.component-DPGHgXa6.mjs} +4 -4
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-DPGHgXa6.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-text-block-widget-designer.component-Vo4fWHtX.mjs → acorex-platform-layout-widgets-text-block-widget-designer.component-CdiNW691.mjs} +6 -6
- package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-CdiNW691.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-widgets.mjs +3408 -5611
- package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
- package/fesm2022/acorex-platform-native.mjs +7 -8
- package/fesm2022/acorex-platform-native.mjs.map +1 -1
- package/fesm2022/acorex-platform-runtime.mjs +166 -391
- package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-D4hU2SCE.mjs +160 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-D4hU2SCE.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-D2CtNrSn.mjs +1716 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-D2CtNrSn.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BVTklnzs.mjs +120 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BVTklnzs.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-BfCeUU5F.mjs → acorex-platform-themes-default-entity-master-single-view.component-rGsMVAZj.mjs} +23 -16
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-rGsMVAZj.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-error-401.component-C7EYJzSr.mjs → acorex-platform-themes-default-error-401.component-53VB-PS_.mjs} +4 -4
- package/fesm2022/acorex-platform-themes-default-error-401.component-53VB-PS_.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-error-404.component-7MVLMwIa.mjs → acorex-platform-themes-default-error-404.component-DVF9soT5.mjs} +4 -4
- package/fesm2022/acorex-platform-themes-default-error-404.component-DVF9soT5.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-error-offline.component-CwNNHzZn.mjs +19 -0
- package/fesm2022/acorex-platform-themes-default-error-offline.component-CwNNHzZn.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default.mjs +61 -1784
- package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-shared-icon-chooser-column.component-CqkWJYdv.mjs → acorex-platform-themes-shared-icon-chooser-column.component-TJ9PWHMY.mjs} +6 -6
- package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-TJ9PWHMY.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-shared-icon-chooser-view.component-BOTuLdWN.mjs → acorex-platform-themes-shared-icon-chooser-view.component-BHcKkIx0.mjs} +6 -6
- package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-BHcKkIx0.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-shared-settings.provider-DK6R87Lf.mjs → acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs} +25 -24
- package/fesm2022/acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-BUPs84MI.mjs +65 -0
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-BUPs84MI.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-BotknoHn.mjs +64 -0
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-BotknoHn.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-shared.mjs +305 -408
- package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
- package/fesm2022/acorex-platform-workflow.mjs +100 -359
- package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
- package/fesm2022/acorex-platform.mjs.map +1 -1
- package/{types/acorex-platform-layout-builder.d.ts → layout/builder/index.d.ts} +38 -160
- package/{types/acorex-platform-layout-components.d.ts → layout/components/index.d.ts} +125 -854
- package/{types/acorex-platform-layout-designer.d.ts → layout/designer/index.d.ts} +18 -96
- package/{types/acorex-platform-layout-entity.d.ts → layout/entity/index.d.ts} +65 -848
- package/{types/acorex-platform-layout-views.d.ts → layout/views/index.d.ts} +47 -80
- package/{types/acorex-platform-layout-widget-core.d.ts → layout/widget-core/index.d.ts} +197 -274
- package/{types/acorex-platform-layout-widgets.d.ts → layout/widgets/index.d.ts} +124 -608
- package/{types/acorex-platform-native.d.ts → native/index.d.ts} +7 -0
- package/package.json +31 -31
- package/runtime/index.d.ts +307 -0
- package/{types/acorex-platform-themes-default.d.ts → themes/default/index.d.ts} +4 -113
- package/{types/acorex-platform-themes-shared.d.ts → themes/shared/index.d.ts} +4 -5
- package/{types/acorex-platform-workflow.d.ts → workflow/index.d.ts} +81 -162
- package/fesm2022/acorex-platform-common-common-settings.provider-Bi1RYif5.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-CXEdvDTf.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-Dy7jF-oD.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-CDYAGBku.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-C_EPAvCU.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-D10yO28c.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BGO75IMz.mjs +0 -116
- package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BGO75IMz.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-DmzNTYiS.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-BNG_588B.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-Vo4fWHtX.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Cx1lLUaR.mjs +0 -160
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Cx1lLUaR.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-AOrcgjDF.mjs +0 -120
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-AOrcgjDF.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-BfCeUU5F.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-error-401.component-C7EYJzSr.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-error-404.component-7MVLMwIa.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-error-offline.component-DR6G8gPC.mjs +0 -19
- package/fesm2022/acorex-platform-themes-default-error-offline.component-DR6G8gPC.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-CqkWJYdv.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-BOTuLdWN.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-settings.provider-DK6R87Lf.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-D566Kdvy.mjs +0 -94
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-D566Kdvy.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-D7-rCGl7.mjs +0 -86
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-D7-rCGl7.mjs.map +0 -1
- package/types/acorex-platform-runtime.d.ts +0 -571
- /package/{types/acorex-platform.d.ts → index.d.ts} +0 -0
|
@@ -1,20 +1,19 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken, inject, Injectable, Injector,
|
|
2
|
+
import { InjectionToken, inject, Injectable, Injector, makeEnvironmentProviders, NgModule, ErrorHandler, EventEmitter, Input, Output, Directive, Component, ViewEncapsulation, Inject, runInInjectionContext, signal, 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';
|
|
6
6
|
import { Subject, distinctUntilChanged, merge as merge$1 } from 'rxjs';
|
|
7
|
-
import {
|
|
7
|
+
import { AXPPlatformScope, AXPBroadcastEventService, objectKeyValueTransforms, AXPSystemActionType, AXPModuleManifestModule, AXPAppStartUpProvider, AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER, AXPHookService, AXPDataGenerator, AXPModuleManifestRegistry } from '@acorex/platform/core';
|
|
8
|
+
import { AXTranslationService } from '@acorex/core/translation';
|
|
8
9
|
import { AXPWidgetsCatalog } from '@acorex/platform/layout/widget-core';
|
|
9
10
|
import { AXPopupModule, AXPopupService } from '@acorex/components/popup';
|
|
10
11
|
import { AXToastService, AXToastModule } from '@acorex/components/toast';
|
|
11
12
|
import { AXDateTimeModule } from '@acorex/core/date-time';
|
|
12
13
|
import * as i1 from '@acorex/platform/workflow';
|
|
13
14
|
import { AXPWorkflowService, createWorkFlowEvent, AXPWorkflowAction, AXPWorkflowError, AXPWorkflowModule } from '@acorex/platform/workflow';
|
|
14
|
-
import { AXDataSource } from '@acorex/cdk/common';
|
|
15
15
|
import { AXPCommandExecutor, AXPCommandService } from '@acorex/platform/runtime';
|
|
16
16
|
import { signalStore, withState, withMethods, patchState, withHooks } from '@ngrx/signals';
|
|
17
|
-
import { AXTranslationService } from '@acorex/core/translation';
|
|
18
17
|
import { AXFormatService } from '@acorex/core/format';
|
|
19
18
|
import { AXDialogService } from '@acorex/components/dialog';
|
|
20
19
|
import { AXFileService } from '@acorex/core/file';
|
|
@@ -56,10 +55,10 @@ class AXPAppVersionService {
|
|
|
56
55
|
async getAppVersion() {
|
|
57
56
|
return this.provider.provider();
|
|
58
57
|
}
|
|
59
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
60
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
58
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPAppVersionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
59
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPAppVersionService, providedIn: 'root' }); }
|
|
61
60
|
}
|
|
62
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
61
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPAppVersionService, decorators: [{
|
|
63
62
|
type: Injectable,
|
|
64
63
|
args: [{
|
|
65
64
|
providedIn: 'root',
|
|
@@ -128,13 +127,6 @@ function createAllQueryView(params = {
|
|
|
128
127
|
sorts: params.sorts ?? [],
|
|
129
128
|
});
|
|
130
129
|
}
|
|
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 = {}));
|
|
138
130
|
|
|
139
131
|
const EQ_OPER = { name: 'equal', title: '@general:terms.operators.equal', hasValue: true };
|
|
140
132
|
const NOT_EQ_OPER = { name: 'notEqual', title: '@general:terms.operators.not-equal', hasValue: true };
|
|
@@ -209,46 +201,15 @@ const AXP_HOME_PAGE_DEFAULT_KEY = new InjectionToken('AXP_HOME_PAGE_DEFAULT_KEY'
|
|
|
209
201
|
factory: () => 'home'
|
|
210
202
|
});
|
|
211
203
|
|
|
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
204
|
class AXPSettingDefinitionProviderContext {
|
|
243
205
|
constructor() {
|
|
244
206
|
this.rootGroups = [];
|
|
245
207
|
this.groupMap = new Map();
|
|
246
208
|
}
|
|
247
|
-
addGroup(name, title, description, icon
|
|
209
|
+
addGroup(name, title, description, icon) {
|
|
248
210
|
const newGroup = {
|
|
249
211
|
name,
|
|
250
212
|
title,
|
|
251
|
-
pageTitle,
|
|
252
213
|
description,
|
|
253
214
|
icon,
|
|
254
215
|
groups: [],
|
|
@@ -299,11 +260,10 @@ class AXPSettingDefinitionGroupBuilder {
|
|
|
299
260
|
}
|
|
300
261
|
return new AXPSettingDefinitionSectionBuilder(this, foundSection);
|
|
301
262
|
}
|
|
302
|
-
addGroup(name, title, description, icon
|
|
263
|
+
addGroup(name, title, description, icon) {
|
|
303
264
|
const newGroup = {
|
|
304
265
|
name,
|
|
305
266
|
title,
|
|
306
|
-
pageTitle,
|
|
307
267
|
description: description,
|
|
308
268
|
icon,
|
|
309
269
|
groups: [],
|
|
@@ -330,7 +290,6 @@ class AXPSettingDefinitionSectionBuilder {
|
|
|
330
290
|
name: setting.key,
|
|
331
291
|
title: setting.title,
|
|
332
292
|
description: setting.description,
|
|
333
|
-
searchTagKeys: setting.searchTagKeys,
|
|
334
293
|
isRequired: setting.isRequired ?? false,
|
|
335
294
|
isInherited: setting.isInherited ?? false,
|
|
336
295
|
isEncrypted: setting.isEncrypted ?? false,
|
|
@@ -498,10 +457,10 @@ class AXPSettingDefinitionProviderService {
|
|
|
498
457
|
sections: [],
|
|
499
458
|
};
|
|
500
459
|
}
|
|
501
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
502
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
460
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPSettingDefinitionProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
461
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPSettingDefinitionProviderService, providedIn: 'root' }); }
|
|
503
462
|
}
|
|
504
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
463
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPSettingDefinitionProviderService, decorators: [{
|
|
505
464
|
type: Injectable,
|
|
506
465
|
args: [{ providedIn: 'root' }]
|
|
507
466
|
}] });
|
|
@@ -531,78 +490,14 @@ class AXPSettingDefaultValuesAggregatorService {
|
|
|
531
490
|
}
|
|
532
491
|
return merged;
|
|
533
492
|
}
|
|
534
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
535
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
493
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPSettingDefaultValuesAggregatorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
494
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPSettingDefaultValuesAggregatorService, providedIn: 'root' }); }
|
|
536
495
|
}
|
|
537
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
496
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPSettingDefaultValuesAggregatorService, decorators: [{
|
|
538
497
|
type: Injectable,
|
|
539
498
|
args: [{ providedIn: 'root' }]
|
|
540
499
|
}] });
|
|
541
500
|
|
|
542
|
-
//#region ---- Imports ----
|
|
543
|
-
//#endregion
|
|
544
|
-
//#region ---- Kind inference ----
|
|
545
|
-
/**
|
|
546
|
-
* If the payload uses the common `{ value: T }` shape from setting widgets, returns the inner value; otherwise returns `raw`.
|
|
547
|
-
*/
|
|
548
|
-
function peelSettingValueKey(raw) {
|
|
549
|
-
return unwrapValueProperty(raw);
|
|
550
|
-
}
|
|
551
|
-
function coercionKindFromScalarSample(v) {
|
|
552
|
-
if (v === null || v === undefined) {
|
|
553
|
-
return null;
|
|
554
|
-
}
|
|
555
|
-
if (typeof v === 'boolean') {
|
|
556
|
-
return 'boolean';
|
|
557
|
-
}
|
|
558
|
-
if (typeof v === 'number' && Number.isFinite(v)) {
|
|
559
|
-
return 'number';
|
|
560
|
-
}
|
|
561
|
-
if (v instanceof Date) {
|
|
562
|
-
return 'date';
|
|
563
|
-
}
|
|
564
|
-
if (typeof v === 'string') {
|
|
565
|
-
if (v === 'true' || v === 'false') {
|
|
566
|
-
return 'boolean';
|
|
567
|
-
}
|
|
568
|
-
return 'string';
|
|
569
|
-
}
|
|
570
|
-
return null;
|
|
571
|
-
}
|
|
572
|
-
/**
|
|
573
|
-
* Picks a primitive coercion kind from the setting definition default and/or the effective stored value.
|
|
574
|
-
* Type argument `T` on the settings service `get` method is compile-time only; runtime behavior follows this inference.
|
|
575
|
-
*/
|
|
576
|
-
function inferSettingCoercionKind(defaultSample, effective) {
|
|
577
|
-
const fromDefault = coercionKindFromScalarSample(defaultSample);
|
|
578
|
-
if (fromDefault) {
|
|
579
|
-
return fromDefault;
|
|
580
|
-
}
|
|
581
|
-
return coercionKindFromScalarSample(unwrapValueProperty(effective));
|
|
582
|
-
}
|
|
583
|
-
//#endregion
|
|
584
|
-
//#region ---- Value coercion ----
|
|
585
|
-
function coerceAXPSettingRawValueByKind(raw, kind) {
|
|
586
|
-
switch (kind) {
|
|
587
|
-
case 'string':
|
|
588
|
-
return coerceUnknownToTrimmedString(raw);
|
|
589
|
-
case 'boolean':
|
|
590
|
-
return coerceUnknownToBoolean(raw);
|
|
591
|
-
case 'number':
|
|
592
|
-
return coerceUnknownToFiniteNumber(raw);
|
|
593
|
-
case 'date':
|
|
594
|
-
return coerceUnknownToDate(raw);
|
|
595
|
-
default: {
|
|
596
|
-
const _exhaustive = kind;
|
|
597
|
-
return _exhaustive;
|
|
598
|
-
}
|
|
599
|
-
}
|
|
600
|
-
}
|
|
601
|
-
function coerceAXPSettingRawValue(raw, kind) {
|
|
602
|
-
return coerceAXPSettingRawValueByKind(raw, kind);
|
|
603
|
-
}
|
|
604
|
-
//#endregion
|
|
605
|
-
|
|
606
501
|
const AXP_SETTING_VALUE_PROVIDER = new InjectionToken('AXP_SETTING_VALUE_PROVIDER', {
|
|
607
502
|
providedIn: 'root',
|
|
608
503
|
factory: () => {
|
|
@@ -741,42 +636,22 @@ class AXPSettingsService {
|
|
|
741
636
|
throw error;
|
|
742
637
|
}
|
|
743
638
|
}
|
|
744
|
-
/**
|
|
745
|
-
* Returns the effective setting value. Primitive coercion (string, boolean, number, date) is inferred from the
|
|
746
|
-
* definition default and/or the stored shape (including `{ value: ... }`). Type argument `T` is compile-time only;
|
|
747
|
-
* it is not read at runtime—use it to document the expected result (e.g. `get<boolean>(key)`).
|
|
748
|
-
*/
|
|
749
639
|
async get(key) {
|
|
750
|
-
const { effective, defaultSample } = await this.resolveEffectiveAndDefault(key);
|
|
751
|
-
const kind = inferSettingCoercionKind(defaultSample, effective);
|
|
752
|
-
if (kind !== null) {
|
|
753
|
-
return coerceAXPSettingRawValueByKind(effective, kind);
|
|
754
|
-
}
|
|
755
|
-
if (effective === undefined) {
|
|
756
|
-
return effective;
|
|
757
|
-
}
|
|
758
|
-
return cloneDeep(effective);
|
|
759
|
-
}
|
|
760
|
-
/**
|
|
761
|
-
* Effective value (user → tenant → platform) when set; otherwise the definition default. Used for reads and coercion hints.
|
|
762
|
-
*/
|
|
763
|
-
async resolveEffectiveAndDefault(key) {
|
|
764
640
|
if (this.scopedSettingsCache.size === 0) {
|
|
765
641
|
await this.load();
|
|
766
642
|
}
|
|
767
|
-
const defaults = await this.injector.get(AXPSettingDefaultValuesAggregatorService).getDefaults();
|
|
768
|
-
const defaultSample = get(defaults, key);
|
|
769
643
|
const scopeOrder = [AXPPlatformScope.User, AXPPlatformScope.Tenant, AXPPlatformScope.Platform];
|
|
770
644
|
for (const scope of scopeOrder) {
|
|
771
645
|
const scopeCache = this.scopedSettingsCache.get(scope);
|
|
772
646
|
if (scopeCache && scopeCache.has(key)) {
|
|
773
647
|
const value = scopeCache.get(key);
|
|
774
648
|
if (value !== undefined && value !== null) {
|
|
775
|
-
return
|
|
649
|
+
return cloneDeep(value);
|
|
776
650
|
}
|
|
777
651
|
}
|
|
778
652
|
}
|
|
779
|
-
|
|
653
|
+
const defaults = await this.injector.get(AXPSettingDefaultValuesAggregatorService).getDefaults();
|
|
654
|
+
return get(defaults, key); // Fallback if no value is found
|
|
780
655
|
}
|
|
781
656
|
async defaultValues(scope) {
|
|
782
657
|
let scopeOrder = [AXPPlatformScope.Platform, AXPPlatformScope.Tenant, AXPPlatformScope.User].reverse();
|
|
@@ -816,7 +691,10 @@ class AXPSettingsService {
|
|
|
816
691
|
async seedMissingDefaults() {
|
|
817
692
|
const definitionService = this.injector.get(AXPSettingDefinitionProviderService);
|
|
818
693
|
const aggregator = this.injector.get(AXPSettingDefaultValuesAggregatorService);
|
|
819
|
-
const [defaults, scopeByKey] = await Promise.all([
|
|
694
|
+
const [defaults, scopeByKey] = await Promise.all([
|
|
695
|
+
aggregator.getDefaults(),
|
|
696
|
+
definitionService.settingScopeByKey(),
|
|
697
|
+
]);
|
|
820
698
|
const persistedKeysByScope = new Map(await Promise.all(this.providers.map(async (provider) => {
|
|
821
699
|
const stored = await provider.load();
|
|
822
700
|
return [provider.scope, new Set(stored.map((s) => s.key))];
|
|
@@ -836,10 +714,10 @@ class AXPSettingsService {
|
|
|
836
714
|
}
|
|
837
715
|
}
|
|
838
716
|
}
|
|
839
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
840
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
717
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPSettingsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
718
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPSettingsService, providedIn: 'root' }); }
|
|
841
719
|
}
|
|
842
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
720
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPSettingsService, decorators: [{
|
|
843
721
|
type: Injectable,
|
|
844
722
|
args: [{
|
|
845
723
|
providedIn: 'root',
|
|
@@ -854,17 +732,7 @@ class ScopedSettingService {
|
|
|
854
732
|
async get(key) {
|
|
855
733
|
const settings = await this.provider.load();
|
|
856
734
|
const setting = settings.find((s) => s.key === key);
|
|
857
|
-
|
|
858
|
-
const defaults = await this.parent.defaultValues(this.provider.scope);
|
|
859
|
-
const defaultSample = get(defaults, key);
|
|
860
|
-
const kind = inferSettingCoercionKind(defaultSample, effective);
|
|
861
|
-
if (kind !== null) {
|
|
862
|
-
return coerceAXPSettingRawValueByKind(effective, kind);
|
|
863
|
-
}
|
|
864
|
-
if (effective === undefined) {
|
|
865
|
-
return effective;
|
|
866
|
-
}
|
|
867
|
-
return cloneDeep(effective);
|
|
735
|
+
return setting ? cloneDeep(setting.value) : undefined;
|
|
868
736
|
}
|
|
869
737
|
async all() {
|
|
870
738
|
const settings = await this.provider.load();
|
|
@@ -905,219 +773,34 @@ class ScopedSettingService {
|
|
|
905
773
|
}
|
|
906
774
|
}
|
|
907
775
|
|
|
908
|
-
const DEFAULT_APPLY_DEFAULT_MULTILANGUAGE = true;
|
|
909
|
-
/**
|
|
910
|
-
* Synchronous access to default multi-language behavior for named entity fields and widget
|
|
911
|
-
* property bindings. Mirrors {@link AXPLayoutOrderingConfigService}: avoids async in entity
|
|
912
|
-
* modifiers and startup deadlocks.
|
|
913
|
-
*/
|
|
914
|
-
class AXPDefaultMultiLanguageConfigService {
|
|
915
|
-
constructor() {
|
|
916
|
-
this.settingsService = inject(AXPSettingsService);
|
|
917
|
-
this._applyDefault = signal(DEFAULT_APPLY_DEFAULT_MULTILANGUAGE, ...(ngDevMode ? [{ debugName: "_applyDefault" }] : /* istanbul ignore next */ []));
|
|
918
|
-
this.syncScheduled = false;
|
|
919
|
-
this.settingsService.onLoaded.subscribe(() => this.syncFromSettings());
|
|
920
|
-
this.settingsService.onChanged.subscribe(() => this.syncFromSettings());
|
|
921
|
-
}
|
|
922
|
-
getApplyDefaultMultiLanguage() {
|
|
923
|
-
if (!this.syncScheduled) {
|
|
924
|
-
this.syncScheduled = true;
|
|
925
|
-
this.settingsService
|
|
926
|
-
.get(AXPRegionalSetting.MultiLanguageSupport)
|
|
927
|
-
.then((value) => this._applyDefault.set(value ?? DEFAULT_APPLY_DEFAULT_MULTILANGUAGE))
|
|
928
|
-
.catch(() => this._applyDefault.set(DEFAULT_APPLY_DEFAULT_MULTILANGUAGE));
|
|
929
|
-
}
|
|
930
|
-
return this._applyDefault();
|
|
931
|
-
}
|
|
932
|
-
async syncFromSettings() {
|
|
933
|
-
try {
|
|
934
|
-
const value = await this.settingsService.get(AXPRegionalSetting.MultiLanguageSupport);
|
|
935
|
-
this._applyDefault.set(value ?? DEFAULT_APPLY_DEFAULT_MULTILANGUAGE);
|
|
936
|
-
}
|
|
937
|
-
catch {
|
|
938
|
-
this._applyDefault.set(DEFAULT_APPLY_DEFAULT_MULTILANGUAGE);
|
|
939
|
-
}
|
|
940
|
-
}
|
|
941
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPDefaultMultiLanguageConfigService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
942
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPDefaultMultiLanguageConfigService, providedIn: 'root' }); }
|
|
943
|
-
}
|
|
944
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPDefaultMultiLanguageConfigService, decorators: [{
|
|
945
|
-
type: Injectable,
|
|
946
|
-
args: [{ providedIn: 'root' }]
|
|
947
|
-
}], ctorParameters: () => [] });
|
|
948
|
-
|
|
949
|
-
//#region ---- Constants ----
|
|
950
|
-
/**
|
|
951
|
-
* Widget types that support the multiLanguage option (text / rich text editors).
|
|
952
|
-
*/
|
|
953
|
-
const MULTILANGUAGE_CAPABLE_WIDGET_TYPES = new Set([
|
|
954
|
-
'text-editor',
|
|
955
|
-
'large-text-editor',
|
|
956
|
-
'rich-text-editor',
|
|
957
|
-
'template-content-editor',
|
|
958
|
-
]);
|
|
959
|
-
/**
|
|
960
|
-
* Common property names / binding path segments that are usually translatable when the feature is
|
|
961
|
-
* enabled in settings. Explicit `multiLanguage` on the property still wins.
|
|
962
|
-
*/
|
|
963
|
-
const DEFAULT_MULTILANGUAGE_FIELD_NAMES = new Set([
|
|
964
|
-
'title',
|
|
965
|
-
'description',
|
|
966
|
-
'note',
|
|
967
|
-
'content',
|
|
968
|
-
/** e.g. `post.summaryContent` — last path segment */
|
|
969
|
-
'summaryContent',
|
|
970
|
-
'question',
|
|
971
|
-
'summary',
|
|
972
|
-
'body',
|
|
973
|
-
'caption',
|
|
974
|
-
'remarks',
|
|
975
|
-
'subtitle',
|
|
976
|
-
'label',
|
|
977
|
-
'placeholder',
|
|
978
|
-
'message',
|
|
979
|
-
'subject',
|
|
980
|
-
]);
|
|
981
|
-
//#endregion
|
|
982
|
-
//#region ---- Helpers ----
|
|
983
|
-
function interfacePathLastSegment(path) {
|
|
984
|
-
if (path == null || typeof path !== 'string' || !path.length) {
|
|
985
|
-
return null;
|
|
986
|
-
}
|
|
987
|
-
const seg = path.includes('.') ? path.split('.').pop() : path;
|
|
988
|
-
return seg && seg.length ? seg : null;
|
|
989
|
-
}
|
|
990
|
-
function shouldApplyDefaultMultiLanguageToEntityProperty(prop) {
|
|
991
|
-
if (prop.schema.dataType !== 'string') {
|
|
992
|
-
return false;
|
|
993
|
-
}
|
|
994
|
-
if (!DEFAULT_MULTILANGUAGE_FIELD_NAMES.has(prop.name)) {
|
|
995
|
-
return false;
|
|
996
|
-
}
|
|
997
|
-
const widgetType = prop.schema.interface?.type;
|
|
998
|
-
if (typeof widgetType !== 'string' || !MULTILANGUAGE_CAPABLE_WIDGET_TYPES.has(widgetType)) {
|
|
999
|
-
return false;
|
|
1000
|
-
}
|
|
1001
|
-
const opts = prop.schema.interface?.options;
|
|
1002
|
-
if (opts && 'multiLanguage' in opts) {
|
|
1003
|
-
return false;
|
|
1004
|
-
}
|
|
1005
|
-
return true;
|
|
1006
|
-
}
|
|
1007
|
-
function shouldApplyDefaultMultiLanguageToWidgetProperty(prop) {
|
|
1008
|
-
if (prop.schema.dataType !== 'string') {
|
|
1009
|
-
return false;
|
|
1010
|
-
}
|
|
1011
|
-
const key = interfacePathLastSegment(prop.schema.interface.path);
|
|
1012
|
-
if (!key || !DEFAULT_MULTILANGUAGE_FIELD_NAMES.has(key)) {
|
|
1013
|
-
return false;
|
|
1014
|
-
}
|
|
1015
|
-
const widgetType = prop.schema.interface.type;
|
|
1016
|
-
if (typeof widgetType !== 'string' || !MULTILANGUAGE_CAPABLE_WIDGET_TYPES.has(widgetType)) {
|
|
1017
|
-
return false;
|
|
1018
|
-
}
|
|
1019
|
-
const opts = prop.schema.interface.options;
|
|
1020
|
-
if (opts && 'multiLanguage' in opts) {
|
|
1021
|
-
return false;
|
|
1022
|
-
}
|
|
1023
|
-
return true;
|
|
1024
|
-
}
|
|
1025
|
-
/**
|
|
1026
|
-
* Leaf widget nodes in entity `schema.interface` trees (e.g. GridLayout → RichText under `pre` /
|
|
1027
|
-
* `post`) — same path/type rules as {@link shouldApplyDefaultMultiLanguageToWidgetProperty}, without
|
|
1028
|
-
* `schema.dataType` (nodes do not carry entity schema).
|
|
1029
|
-
*/
|
|
1030
|
-
function shouldApplyDefaultMultiLanguageToWidgetNode(node) {
|
|
1031
|
-
const widgetType = node.type;
|
|
1032
|
-
if (typeof widgetType !== 'string' || !MULTILANGUAGE_CAPABLE_WIDGET_TYPES.has(widgetType)) {
|
|
1033
|
-
return false;
|
|
1034
|
-
}
|
|
1035
|
-
const key = interfacePathLastSegment(node.path);
|
|
1036
|
-
if (!key || !DEFAULT_MULTILANGUAGE_FIELD_NAMES.has(key)) {
|
|
1037
|
-
return false;
|
|
1038
|
-
}
|
|
1039
|
-
const opts = node.options;
|
|
1040
|
-
if (opts && 'multiLanguage' in opts) {
|
|
1041
|
-
return false;
|
|
1042
|
-
}
|
|
1043
|
-
return true;
|
|
1044
|
-
}
|
|
1045
|
-
/**
|
|
1046
|
-
* When {@link AXPDefaultMultiLanguageConfigService#getApplyDefaultMultiLanguage} is true, sets
|
|
1047
|
-
* `options.multiLanguage` on eligible editor leaves inside an entity property's widget tree
|
|
1048
|
-
* (including nested layouts). Used by entity middleware so object fields (e.g. `pre`, `post`) are
|
|
1049
|
-
* covered, not only top-level string properties.
|
|
1050
|
-
*/
|
|
1051
|
-
function withDefaultMultiLanguageOnWidgetNodeTree(root, applyDefault) {
|
|
1052
|
-
if (root == null || !applyDefault) {
|
|
1053
|
-
return root ?? undefined;
|
|
1054
|
-
}
|
|
1055
|
-
return visitWidgetNodeForDefaultMultiLanguage(root);
|
|
1056
|
-
}
|
|
1057
|
-
function visitWidgetNodeForDefaultMultiLanguage(node) {
|
|
1058
|
-
let next = node;
|
|
1059
|
-
if (node.children?.length) {
|
|
1060
|
-
const newChildren = node.children.map((child) => visitWidgetNodeForDefaultMultiLanguage(child));
|
|
1061
|
-
if (newChildren.some((c, i) => c !== node.children[i])) {
|
|
1062
|
-
next = { ...node, children: newChildren };
|
|
1063
|
-
}
|
|
1064
|
-
}
|
|
1065
|
-
if (shouldApplyDefaultMultiLanguageToWidgetNode(next)) {
|
|
1066
|
-
return {
|
|
1067
|
-
...next,
|
|
1068
|
-
options: {
|
|
1069
|
-
...(next.options ?? {}),
|
|
1070
|
-
multiLanguage: true,
|
|
1071
|
-
},
|
|
1072
|
-
};
|
|
1073
|
-
}
|
|
1074
|
-
return next;
|
|
1075
|
-
}
|
|
1076
|
-
/**
|
|
1077
|
-
* When {@link AXPDefaultMultiLanguageConfigService#getApplyDefaultMultiLanguage} is true, sets
|
|
1078
|
-
* `schema.interface.options.multiLanguage` for eligible string widget properties (same rules as
|
|
1079
|
-
* entity middleware), unless the property already specifies `multiLanguage`.
|
|
1080
|
-
*/
|
|
1081
|
-
function withDefaultMultiLanguageOnWidgetProperty(prop, applyDefault) {
|
|
1082
|
-
if (!applyDefault || !shouldApplyDefaultMultiLanguageToWidgetProperty(prop)) {
|
|
1083
|
-
return prop;
|
|
1084
|
-
}
|
|
1085
|
-
const iface = prop.schema.interface;
|
|
1086
|
-
const existingOpts = (iface.options ?? {});
|
|
1087
|
-
return {
|
|
1088
|
-
...prop,
|
|
1089
|
-
schema: {
|
|
1090
|
-
...prop.schema,
|
|
1091
|
-
interface: {
|
|
1092
|
-
...iface,
|
|
1093
|
-
options: {
|
|
1094
|
-
...existingOpts,
|
|
1095
|
-
multiLanguage: true,
|
|
1096
|
-
},
|
|
1097
|
-
},
|
|
1098
|
-
},
|
|
1099
|
-
};
|
|
1100
|
-
}
|
|
1101
|
-
//#endregion
|
|
1102
|
-
|
|
1103
|
-
//#region ---- Settings expression scope ----
|
|
1104
776
|
/**
|
|
1105
|
-
*
|
|
1106
|
-
*
|
|
777
|
+
* Regional settings keys for date, time, and locale formatting.
|
|
778
|
+
* These keys are used by platform widgets and components to access regional settings.
|
|
779
|
+
* The actual setting definitions and providers are implemented in the locale-management module.
|
|
1107
780
|
*/
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
781
|
+
var AXPRegionalSetting;
|
|
782
|
+
(function (AXPRegionalSetting) {
|
|
783
|
+
AXPRegionalSetting["LocaleProfile"] = "LocaleManagement:Setting:Regional.LocaleProfile";
|
|
784
|
+
AXPRegionalSetting["TimeZone"] = "LocaleManagement:Setting:Regional.TimeZone";
|
|
785
|
+
AXPRegionalSetting["Language"] = "LocaleManagement:Setting:Regional.Language";
|
|
786
|
+
AXPRegionalSetting["Country"] = "LocaleManagement:Setting:Regional.Country";
|
|
787
|
+
AXPRegionalSetting["Calendar"] = "LocaleManagement:Setting:Regional.Calendar";
|
|
788
|
+
AXPRegionalSetting["FirstDayOfWeek"] = "LocaleManagement:Setting:Regional.FirstDayOfWeek";
|
|
789
|
+
AXPRegionalSetting["WeekendDays"] = "LocaleManagement:Setting:Regional.WeekendDays";
|
|
790
|
+
AXPRegionalSetting["ShortDate"] = "LocaleManagement:Setting:Regional.ShortDate";
|
|
791
|
+
AXPRegionalSetting["MediumDate"] = "LocaleManagement:Setting:Regional.MediumDate";
|
|
792
|
+
AXPRegionalSetting["LongDate"] = "LocaleManagement:Setting:Regional.LongDate";
|
|
793
|
+
AXPRegionalSetting["ShortTime"] = "LocaleManagement:Setting:Regional.ShortTime";
|
|
794
|
+
AXPRegionalSetting["MediumTime"] = "LocaleManagement:Setting:Regional.MediumTime";
|
|
795
|
+
AXPRegionalSetting["LongTime"] = "LocaleManagement:Setting:Regional.LongTime";
|
|
796
|
+
AXPRegionalSetting["MeasurementUnits"] = "LocaleManagement:Setting:Regional.MeasurementUnits";
|
|
797
|
+
AXPRegionalSetting["TemperatureUnits"] = "LocaleManagement:Setting:Regional.TemperatureUnits";
|
|
798
|
+
AXPRegionalSetting["DistanceUnits"] = "LocaleManagement:Setting:Regional.DistanceUnits";
|
|
799
|
+
AXPRegionalSetting["WeightUnits"] = "LocaleManagement:Setting:Regional.WeightUnits";
|
|
800
|
+
AXPRegionalSetting["VolumeUnits"] = "LocaleManagement:Setting:Regional.VolumeUnits";
|
|
801
|
+
AXPRegionalSetting["SpeedUnits"] = "LocaleManagement:Setting:Regional.SpeedUnits";
|
|
802
|
+
AXPRegionalSetting["AreaUnits"] = "LocaleManagement:Setting:Regional.AreaUnits";
|
|
803
|
+
})(AXPRegionalSetting || (AXPRegionalSetting = {}));
|
|
1121
804
|
|
|
1122
805
|
var AXPHomePageSettings;
|
|
1123
806
|
(function (AXPHomePageSettings) {
|
|
@@ -1237,10 +920,10 @@ class AXPHomePageService {
|
|
|
1237
920
|
router.navigate([current.path], { onSameUrlNavigation: 'reload' });
|
|
1238
921
|
}, 100);
|
|
1239
922
|
}
|
|
1240
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1241
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
923
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPHomePageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
924
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPHomePageService, providedIn: 'root' }); }
|
|
1242
925
|
}
|
|
1243
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
926
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPHomePageService, decorators: [{
|
|
1244
927
|
type: Injectable,
|
|
1245
928
|
args: [{
|
|
1246
929
|
providedIn: 'root',
|
|
@@ -1261,27 +944,28 @@ function provideDynamicHomePage() {
|
|
|
1261
944
|
]);
|
|
1262
945
|
}
|
|
1263
946
|
|
|
1264
|
-
const I18N = '@general:settings';
|
|
1265
947
|
class AXPHomePageSettingProvider {
|
|
1266
948
|
constructor(injector) {
|
|
1267
949
|
this.injector = injector;
|
|
950
|
+
this.translateService = this.injector.get(AXTranslationService);
|
|
1268
951
|
this.homePageService = this.injector.get(AXPHomePageService);
|
|
1269
952
|
this.defaultHomePageKey = inject(AXP_HOME_PAGE_DEFAULT_KEY, { optional: true }) ?? 'home';
|
|
1270
953
|
}
|
|
1271
954
|
async provide(context) {
|
|
1272
|
-
const
|
|
955
|
+
const trans = async (key) => await this.translateService.translateAsync(`@general:settings.${key}`);
|
|
956
|
+
const list = await this.homePageService.getRegisteredList().map((c) => ({ id: c.key, title: c.title }));
|
|
1273
957
|
if (list.length === 0) {
|
|
1274
958
|
return;
|
|
1275
959
|
}
|
|
1276
960
|
// Define the 'General Settings' group
|
|
1277
961
|
context
|
|
1278
|
-
.addGroup('general',
|
|
962
|
+
.addGroup('general', await trans('general.title'), await trans('general.description'), 'fa-light fa-palette')
|
|
1279
963
|
// Add the 'Startup' section
|
|
1280
|
-
.addSection('startup',
|
|
964
|
+
.addSection('startup', await trans('general.startup.title'), await trans('general.startup.description'))
|
|
1281
965
|
// Add the 'Home Page' setting
|
|
1282
966
|
.addSetting({
|
|
1283
967
|
key: AXPHomePageSettings.UserHomePath,
|
|
1284
|
-
title:
|
|
968
|
+
title: await trans('general.startup.home-page.title'),
|
|
1285
969
|
scope: AXPPlatformScope.User,
|
|
1286
970
|
isInherited: true,
|
|
1287
971
|
defaultValue: this.defaultHomePageKey || list[0].id,
|
|
@@ -1294,24 +978,24 @@ class AXPHomePageSettingProvider {
|
|
|
1294
978
|
dataSource: list,
|
|
1295
979
|
},
|
|
1296
980
|
},
|
|
1297
|
-
description:
|
|
981
|
+
description: await trans('general.startup.home-page.description'),
|
|
1298
982
|
})
|
|
1299
983
|
// End the 'Startup' section
|
|
1300
984
|
.endSection()
|
|
1301
985
|
// End the 'General Settings' group
|
|
1302
986
|
.endGroup();
|
|
1303
987
|
}
|
|
1304
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1305
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
988
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPHomePageSettingProvider, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
989
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPHomePageSettingProvider }); }
|
|
1306
990
|
}
|
|
1307
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
991
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPHomePageSettingProvider, decorators: [{
|
|
1308
992
|
type: Injectable
|
|
1309
993
|
}], ctorParameters: () => [{ type: i0.Injector }] });
|
|
1310
994
|
|
|
1311
995
|
class AXPHomePageModule {
|
|
1312
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1313
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
1314
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
996
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPHomePageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
997
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.19", ngImport: i0, type: AXPHomePageModule }); }
|
|
998
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPHomePageModule, providers: [
|
|
1315
999
|
{
|
|
1316
1000
|
provide: AXP_SETTING_DEFINITION_PROVIDER,
|
|
1317
1001
|
useClass: AXPHomePageSettingProvider,
|
|
@@ -1319,7 +1003,7 @@ class AXPHomePageModule {
|
|
|
1319
1003
|
},
|
|
1320
1004
|
] }); }
|
|
1321
1005
|
}
|
|
1322
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1006
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPHomePageModule, decorators: [{
|
|
1323
1007
|
type: NgModule,
|
|
1324
1008
|
args: [{
|
|
1325
1009
|
imports: [],
|
|
@@ -1342,10 +1026,10 @@ class AXPCustomOperatorServiceImpl extends AXPCustomOperatorService {
|
|
|
1342
1026
|
getCustomOperators() {
|
|
1343
1027
|
return {};
|
|
1344
1028
|
}
|
|
1345
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1346
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1029
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPCustomOperatorServiceImpl, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1030
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPCustomOperatorServiceImpl }); }
|
|
1347
1031
|
}
|
|
1348
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1032
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPCustomOperatorServiceImpl, decorators: [{
|
|
1349
1033
|
type: Injectable
|
|
1350
1034
|
}] });
|
|
1351
1035
|
|
|
@@ -1390,10 +1074,10 @@ class AXPFilterOperatorMiddlewareServiceImpl extends AXPFilterOperatorMiddleware
|
|
|
1390
1074
|
return acc;
|
|
1391
1075
|
}, {});
|
|
1392
1076
|
}
|
|
1393
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1394
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1077
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPFilterOperatorMiddlewareServiceImpl, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1078
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPFilterOperatorMiddlewareServiceImpl }); }
|
|
1395
1079
|
}
|
|
1396
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1080
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPFilterOperatorMiddlewareServiceImpl, decorators: [{
|
|
1397
1081
|
type: Injectable
|
|
1398
1082
|
}] });
|
|
1399
1083
|
|
|
@@ -1414,10 +1098,10 @@ class AXPErrorHandlerRegistryService {
|
|
|
1414
1098
|
get handlers() {
|
|
1415
1099
|
return this.errorHandlers;
|
|
1416
1100
|
}
|
|
1417
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1418
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1101
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPErrorHandlerRegistryService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1102
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPErrorHandlerRegistryService, providedIn: 'root' }); }
|
|
1419
1103
|
}
|
|
1420
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1104
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPErrorHandlerRegistryService, decorators: [{
|
|
1421
1105
|
type: Injectable,
|
|
1422
1106
|
args: [{
|
|
1423
1107
|
providedIn: 'root'
|
|
@@ -1448,10 +1132,10 @@ class AXPGlobalErrorHandler extends ErrorHandler {
|
|
|
1448
1132
|
}
|
|
1449
1133
|
handleErrorRecursively(0, error);
|
|
1450
1134
|
}
|
|
1451
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1452
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1135
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPGlobalErrorHandler, deps: [{ token: i0.Injector }, { token: AXPErrorHandlerRegistryService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1136
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPGlobalErrorHandler, providedIn: 'root' }); }
|
|
1453
1137
|
}
|
|
1454
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1138
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPGlobalErrorHandler, decorators: [{
|
|
1455
1139
|
type: Injectable,
|
|
1456
1140
|
args: [{ providedIn: 'root' }]
|
|
1457
1141
|
}], ctorParameters: () => [{ type: i0.Injector }, { type: AXPErrorHandlerRegistryService }] });
|
|
@@ -1522,10 +1206,10 @@ class AXPTokenDefinitionService {
|
|
|
1522
1206
|
clearDefinitionsCache() {
|
|
1523
1207
|
this.definitionsByName.clear();
|
|
1524
1208
|
}
|
|
1525
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1526
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1209
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPTokenDefinitionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1210
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPTokenDefinitionService, providedIn: 'root' }); }
|
|
1527
1211
|
}
|
|
1528
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1212
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPTokenDefinitionService, decorators: [{
|
|
1529
1213
|
type: Injectable,
|
|
1530
1214
|
args: [{
|
|
1531
1215
|
providedIn: 'root',
|
|
@@ -1563,24 +1247,32 @@ class AXPStickyDirective {
|
|
|
1563
1247
|
this.stickyOffset = 100;
|
|
1564
1248
|
this.isStickyChange = new EventEmitter();
|
|
1565
1249
|
this._isSticky = false;
|
|
1566
|
-
this.onWindowResize = () => {
|
|
1567
|
-
this.applyStickyStateFromScrollPosition();
|
|
1568
|
-
};
|
|
1569
1250
|
this.onParentScroll = () => {
|
|
1570
|
-
this.
|
|
1251
|
+
this.zone.runOutsideAngular(() => {
|
|
1252
|
+
const scrollTop = this.parentElement === window ? window.scrollY : this.parentElement.scrollTop;
|
|
1253
|
+
const shouldStick = scrollTop + this.stickyOffset >= this.topOffset;
|
|
1254
|
+
if (shouldStick !== this.isSticky) {
|
|
1255
|
+
this.zone.run(() => {
|
|
1256
|
+
this.isSticky = shouldStick;
|
|
1257
|
+
this.toggleStickyClasses(shouldStick);
|
|
1258
|
+
this.cdr.markForCheck();
|
|
1259
|
+
});
|
|
1260
|
+
}
|
|
1261
|
+
});
|
|
1571
1262
|
};
|
|
1572
1263
|
}
|
|
1573
1264
|
ngAfterViewInit() {
|
|
1574
1265
|
this.initSticky();
|
|
1575
1266
|
// Add mutation observer for dynamic content
|
|
1576
1267
|
this.mutationObserver = new MutationObserver(() => {
|
|
1577
|
-
this.
|
|
1268
|
+
this.updateTopOffset();
|
|
1578
1269
|
});
|
|
1579
1270
|
this.mutationObserver.observe(this.element.nativeElement, {
|
|
1580
1271
|
childList: true,
|
|
1581
1272
|
subtree: true,
|
|
1582
1273
|
});
|
|
1583
|
-
|
|
1274
|
+
// Add resize event listener
|
|
1275
|
+
window.addEventListener('resize', this.updateTopOffset.bind(this));
|
|
1584
1276
|
}
|
|
1585
1277
|
initSticky() {
|
|
1586
1278
|
if (this.stickyParent instanceof HTMLElement) {
|
|
@@ -1590,42 +1282,13 @@ class AXPStickyDirective {
|
|
|
1590
1282
|
this.parentElement = document.querySelector(this.stickyParent) || window;
|
|
1591
1283
|
}
|
|
1592
1284
|
this.targetElement = document.querySelector(this.stickyTarget) || this.element.nativeElement;
|
|
1285
|
+
this.updateTopOffset();
|
|
1593
1286
|
this.parentElement.addEventListener('scroll', this.onParentScroll);
|
|
1594
|
-
this.applyStickyStateFromScrollPosition();
|
|
1595
1287
|
}
|
|
1596
|
-
|
|
1597
|
-
return this.parentElement === window ? window.scrollY : this.parentElement.scrollTop;
|
|
1598
|
-
}
|
|
1599
|
-
/**
|
|
1600
|
-
* Toggle stuck styling only while this element is visually pinned (matches `position: sticky; top: 0`).
|
|
1601
|
-
* Scroll-offset thresholds would stay true for every section already passed, so multiple stacked stickies
|
|
1602
|
-
* would all keep `--stuck`; geometry fixes that.
|
|
1603
|
-
*/
|
|
1604
|
-
computeShouldStick() {
|
|
1605
|
-
if (this.getScrollTop() <= 0) {
|
|
1606
|
-
return false;
|
|
1607
|
-
}
|
|
1608
|
-
const tRect = this.targetElement.getBoundingClientRect();
|
|
1609
|
-
const epsilon = 3;
|
|
1610
|
-
let limitY;
|
|
1611
|
-
if (this.parentElement === window) {
|
|
1612
|
-
limitY = this.stickyOffset;
|
|
1613
|
-
}
|
|
1614
|
-
else {
|
|
1615
|
-
limitY = this.parentElement.getBoundingClientRect().top;
|
|
1616
|
-
}
|
|
1617
|
-
return tRect.top <= limitY + epsilon && tRect.top >= limitY - epsilon;
|
|
1618
|
-
}
|
|
1619
|
-
applyStickyStateFromScrollPosition() {
|
|
1288
|
+
updateTopOffset() {
|
|
1620
1289
|
this.zone.runOutsideAngular(() => {
|
|
1621
|
-
const
|
|
1622
|
-
|
|
1623
|
-
this.zone.run(() => {
|
|
1624
|
-
this.isSticky = shouldStick;
|
|
1625
|
-
this.toggleStickyClasses(shouldStick);
|
|
1626
|
-
this.cdr.markForCheck();
|
|
1627
|
-
});
|
|
1628
|
-
}
|
|
1290
|
+
const rect = this.targetElement.getBoundingClientRect();
|
|
1291
|
+
this.topOffset = rect.top + (window.scrollY || 0);
|
|
1629
1292
|
});
|
|
1630
1293
|
}
|
|
1631
1294
|
toggleStickyClasses(isSticky) {
|
|
@@ -1641,15 +1304,15 @@ class AXPStickyDirective {
|
|
|
1641
1304
|
}
|
|
1642
1305
|
ngOnDestroy() {
|
|
1643
1306
|
this.parentElement.removeEventListener('scroll', this.onParentScroll);
|
|
1644
|
-
window.removeEventListener('resize', this.
|
|
1307
|
+
window.removeEventListener('resize', this.updateTopOffset.bind(this));
|
|
1645
1308
|
if (this.mutationObserver) {
|
|
1646
1309
|
this.mutationObserver.disconnect();
|
|
1647
1310
|
}
|
|
1648
1311
|
}
|
|
1649
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1650
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
1312
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPStickyDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
1313
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.19", type: AXPStickyDirective, isStandalone: true, selector: "[axpSticky]", inputs: { stickyClass: ["axpSticky", "stickyClass"], stickyOffset: "stickyOffset", stickyParent: "stickyParent", stickyTarget: "stickyTarget" }, outputs: { isStickyChange: "isStickyChange" }, exportAs: ["axpSticky"], ngImport: i0 }); }
|
|
1651
1314
|
}
|
|
1652
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1315
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPStickyDirective, decorators: [{
|
|
1653
1316
|
type: Directive,
|
|
1654
1317
|
args: [{
|
|
1655
1318
|
selector: '[axpSticky]',
|
|
@@ -1992,10 +1655,10 @@ class AXPMenuMiddlewareRegistry {
|
|
|
1992
1655
|
clear() {
|
|
1993
1656
|
this.manualMiddlewares.clear();
|
|
1994
1657
|
}
|
|
1995
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1996
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1658
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPMenuMiddlewareRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1659
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPMenuMiddlewareRegistry, providedIn: 'root' }); }
|
|
1997
1660
|
}
|
|
1998
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1661
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPMenuMiddlewareRegistry, decorators: [{
|
|
1999
1662
|
type: Injectable,
|
|
2000
1663
|
args: [{ providedIn: 'root' }]
|
|
2001
1664
|
}] });
|
|
@@ -2424,10 +2087,10 @@ class AXPMenuProviderService {
|
|
|
2424
2087
|
}
|
|
2425
2088
|
}
|
|
2426
2089
|
}
|
|
2427
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2428
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
2090
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPMenuProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2091
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPMenuProviderService, providedIn: 'root' }); }
|
|
2429
2092
|
}
|
|
2430
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2093
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPMenuProviderService, decorators: [{
|
|
2431
2094
|
type: Injectable,
|
|
2432
2095
|
args: [{ providedIn: 'root' }]
|
|
2433
2096
|
}] });
|
|
@@ -2447,90 +2110,6 @@ function setMenuItemMeta(items, parentIndex = '', depth = 0) {
|
|
|
2447
2110
|
});
|
|
2448
2111
|
}
|
|
2449
2112
|
|
|
2450
|
-
//#region ---- Imports ----
|
|
2451
|
-
//#endregion
|
|
2452
|
-
//#region ---- Helpers ----
|
|
2453
|
-
function flattenMenuItems(items, depth) {
|
|
2454
|
-
const rows = [];
|
|
2455
|
-
let index = 0;
|
|
2456
|
-
for (const it of items) {
|
|
2457
|
-
const fallback = `menu-${depth}-${index}`;
|
|
2458
|
-
index += 1;
|
|
2459
|
-
const id = it.name ?? it.path ?? fallback;
|
|
2460
|
-
rows.push({ id, title: it.text });
|
|
2461
|
-
if (it.children?.length) {
|
|
2462
|
-
rows.push(...flattenMenuItems(it.children, depth + 1));
|
|
2463
|
-
}
|
|
2464
|
-
}
|
|
2465
|
-
return rows;
|
|
2466
|
-
}
|
|
2467
|
-
//#endregion
|
|
2468
|
-
//#region ---- Menu items data source ----
|
|
2469
|
-
/**
|
|
2470
|
-
* Registered menu items (raw tree flattened) for select widgets via dataSource name {@link MENU_ITEMS_DATASOURCE_NAME}.
|
|
2471
|
-
*/
|
|
2472
|
-
const MENU_ITEMS_DATASOURCE_NAME = 'platform-menu-items';
|
|
2473
|
-
/**
|
|
2474
|
-
* Data source definition for menu items from {@link AXPMenuProviderService#rawItems}.
|
|
2475
|
-
*/
|
|
2476
|
-
class AXPMenuItemsDataSourceDefinition {
|
|
2477
|
-
constructor() {
|
|
2478
|
-
//#region ---- Services & Dependencies ----
|
|
2479
|
-
this.menuProviderService = inject(AXPMenuProviderService);
|
|
2480
|
-
//#endregion
|
|
2481
|
-
}
|
|
2482
|
-
//#endregion
|
|
2483
|
-
//#region ---- Public API ----
|
|
2484
|
-
async items() {
|
|
2485
|
-
return [
|
|
2486
|
-
{
|
|
2487
|
-
name: MENU_ITEMS_DATASOURCE_NAME,
|
|
2488
|
-
title: 'Menu items',
|
|
2489
|
-
source: () => new AXDataSource({
|
|
2490
|
-
key: 'id',
|
|
2491
|
-
load: async () => {
|
|
2492
|
-
const raw = await this.menuProviderService.rawItems();
|
|
2493
|
-
const list = flattenMenuItems(raw, 0);
|
|
2494
|
-
return { items: list, total: list.length };
|
|
2495
|
-
},
|
|
2496
|
-
byKey: async (key) => {
|
|
2497
|
-
const raw = await this.menuProviderService.rawItems();
|
|
2498
|
-
const list = flattenMenuItems(raw, 0);
|
|
2499
|
-
return list.find((item) => item.id === key);
|
|
2500
|
-
},
|
|
2501
|
-
pageSize: 1000,
|
|
2502
|
-
}),
|
|
2503
|
-
columns: [
|
|
2504
|
-
{
|
|
2505
|
-
name: 'id',
|
|
2506
|
-
title: 'ID',
|
|
2507
|
-
datatype: 'string',
|
|
2508
|
-
type: AXPWidgetsCatalog.text,
|
|
2509
|
-
},
|
|
2510
|
-
{
|
|
2511
|
-
name: 'title',
|
|
2512
|
-
title: 'Title',
|
|
2513
|
-
datatype: 'string',
|
|
2514
|
-
type: AXPWidgetsCatalog.text,
|
|
2515
|
-
},
|
|
2516
|
-
],
|
|
2517
|
-
filters: [
|
|
2518
|
-
{
|
|
2519
|
-
field: 'title',
|
|
2520
|
-
title: 'Title',
|
|
2521
|
-
operator: { type: 'equal' },
|
|
2522
|
-
widget: { type: AXPWidgetsCatalog.text },
|
|
2523
|
-
filterType: { advance: true, inline: true },
|
|
2524
|
-
},
|
|
2525
|
-
],
|
|
2526
|
-
textField: { name: 'title', title: 'Title' },
|
|
2527
|
-
valueField: { name: 'id', title: 'ID' },
|
|
2528
|
-
},
|
|
2529
|
-
];
|
|
2530
|
-
}
|
|
2531
|
-
}
|
|
2532
|
-
//#endregion
|
|
2533
|
-
|
|
2534
2113
|
//#region ---- Menu Middleware Provider Helper ----
|
|
2535
2114
|
/**
|
|
2536
2115
|
* Helper function to provide menu middlewares with proper DI setup
|
|
@@ -2825,10 +2404,10 @@ class AXPMenuVisibilityService {
|
|
|
2825
2404
|
// Otherwise, don't render empty menu items
|
|
2826
2405
|
return false;
|
|
2827
2406
|
}
|
|
2828
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2829
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
2407
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPMenuVisibilityService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2408
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPMenuVisibilityService, providedIn: 'root' }); }
|
|
2830
2409
|
}
|
|
2831
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2410
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPMenuVisibilityService, decorators: [{
|
|
2832
2411
|
type: Injectable,
|
|
2833
2412
|
args: [{ providedIn: 'root' }]
|
|
2834
2413
|
}] });
|
|
@@ -2862,23 +2441,21 @@ class AXPMenuSearchProvider {
|
|
|
2862
2441
|
title: item.text, // Use `text` for the `title`
|
|
2863
2442
|
icon: item.icon, // Include the `icon` if present
|
|
2864
2443
|
data: omit(item, ['parent', 'children']), // Include all data except `parent` and `children`
|
|
2865
|
-
command: item.path
|
|
2866
|
-
|
|
2867
|
-
|
|
2444
|
+
command: item.path ? {
|
|
2445
|
+
name: 'navigate',
|
|
2446
|
+
options: {
|
|
2447
|
+
type: 'router',
|
|
2868
2448
|
options: {
|
|
2869
|
-
|
|
2870
|
-
options: {
|
|
2871
|
-
path: item.path,
|
|
2872
|
-
},
|
|
2449
|
+
path: item.path,
|
|
2873
2450
|
},
|
|
2874
2451
|
}
|
|
2875
|
-
|
|
2452
|
+
} : item.command,
|
|
2876
2453
|
parent: item.parent
|
|
2877
2454
|
? {
|
|
2878
2455
|
title: item.parent.text,
|
|
2879
2456
|
}
|
|
2880
2457
|
: undefined,
|
|
2881
|
-
})), [(o) => this.translateService.translateSync(
|
|
2458
|
+
})), [(o) => this.translateService.translateSync(o.title)]);
|
|
2882
2459
|
}
|
|
2883
2460
|
/**
|
|
2884
2461
|
* Recursively searches AXPMenuItem and its children for a matching text.
|
|
@@ -2907,19 +2484,18 @@ class AXPMenuSearchProvider {
|
|
|
2907
2484
|
}
|
|
2908
2485
|
|
|
2909
2486
|
class AXPFooterTextSlotComponent {
|
|
2910
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2911
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
2487
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPFooterTextSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2488
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.19", type: AXPFooterTextSlotComponent, isStandalone: true, selector: "ng-component", inputs: { text: "text" }, ngImport: i0, template: `
|
|
2912
2489
|
<small class="ax-text-sm" [innerHTML]="text"></small>
|
|
2913
|
-
`, isInline: true
|
|
2490
|
+
`, isInline: true }); }
|
|
2914
2491
|
}
|
|
2915
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2492
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPFooterTextSlotComponent, decorators: [{
|
|
2916
2493
|
type: Component,
|
|
2917
2494
|
args: [{
|
|
2918
2495
|
template: `
|
|
2919
2496
|
<small class="ax-text-sm" [innerHTML]="text"></small>
|
|
2920
2497
|
`,
|
|
2921
|
-
standalone: true
|
|
2922
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2498
|
+
standalone: true
|
|
2923
2499
|
}]
|
|
2924
2500
|
}], propDecorators: { text: [{
|
|
2925
2501
|
type: Input
|
|
@@ -2930,8 +2506,8 @@ class AXPNavBarSlotComponent {
|
|
|
2930
2506
|
// if (action)
|
|
2931
2507
|
// this.store.dispatch(action)
|
|
2932
2508
|
}
|
|
2933
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2934
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
2509
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPNavBarSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2510
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: AXPNavBarSlotComponent, isStandalone: true, selector: "ng-component", inputs: { items: "items" }, ngImport: i0, template: `
|
|
2935
2511
|
<div class="ax-flex ax-items-center ax-justify-between ax-gap-5">
|
|
2936
2512
|
@for (link of items; track link) {
|
|
2937
2513
|
<a (click)="handleCommand(link.command)" >{{ link.text }}</a>
|
|
@@ -2939,7 +2515,7 @@ class AXPNavBarSlotComponent {
|
|
|
2939
2515
|
</div>
|
|
2940
2516
|
`, isInline: true, encapsulation: i0.ViewEncapsulation.None }); }
|
|
2941
2517
|
}
|
|
2942
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2518
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPNavBarSlotComponent, decorators: [{
|
|
2943
2519
|
type: Component,
|
|
2944
2520
|
args: [{
|
|
2945
2521
|
template: `
|
|
@@ -3073,21 +2649,17 @@ class AXPSearchDefinitionProviderService {
|
|
|
3073
2649
|
}
|
|
3074
2650
|
return definition;
|
|
3075
2651
|
}
|
|
3076
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3077
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
2652
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPSearchDefinitionProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2653
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPSearchDefinitionProviderService, providedIn: 'root' }); }
|
|
3078
2654
|
}
|
|
3079
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2655
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPSearchDefinitionProviderService, decorators: [{
|
|
3080
2656
|
type: Injectable,
|
|
3081
2657
|
args: [{ providedIn: 'root' }]
|
|
3082
2658
|
}] });
|
|
3083
2659
|
|
|
3084
2660
|
class AXPSearchCommandProvider {
|
|
3085
|
-
constructor() {
|
|
3086
|
-
this.translationService = inject(AXTranslationService);
|
|
3087
|
-
}
|
|
3088
2661
|
async search(text) {
|
|
3089
|
-
|
|
3090
|
-
return this.commands.filter((command) => searchInMultiLanguageString(command.title, text, locale));
|
|
2662
|
+
return this.commands.filter((command) => command.title.toLowerCase().includes(text.toLowerCase()));
|
|
3091
2663
|
}
|
|
3092
2664
|
}
|
|
3093
2665
|
|
|
@@ -3098,7 +2670,6 @@ class AXPSearchService {
|
|
|
3098
2670
|
this.providers = inject(AXP_SEARCH_PROVIDER, { optional: true });
|
|
3099
2671
|
this.definitionService = inject(AXPSearchDefinitionProviderService);
|
|
3100
2672
|
this.formatService = inject(AXFormatService);
|
|
3101
|
-
this.translationService = inject(AXTranslationService);
|
|
3102
2673
|
}
|
|
3103
2674
|
async search(text) {
|
|
3104
2675
|
//TODO better handle this
|
|
@@ -3141,7 +2712,10 @@ class AXPSearchService {
|
|
|
3141
2712
|
(definition.format.description
|
|
3142
2713
|
? this.formatService.format(definition.format.description, 'string', result.data)
|
|
3143
2714
|
: undefined),
|
|
3144
|
-
icon: result.icon ??
|
|
2715
|
+
icon: result.icon ??
|
|
2716
|
+
(result.icon
|
|
2717
|
+
? this.formatService.format(definition.format.icon, 'string', result.data)
|
|
2718
|
+
: definition.icon),
|
|
3145
2719
|
data: result.data,
|
|
3146
2720
|
command: result.command,
|
|
3147
2721
|
actions: definition.actions,
|
|
@@ -3154,17 +2728,11 @@ class AXPSearchService {
|
|
|
3154
2728
|
}
|
|
3155
2729
|
}
|
|
3156
2730
|
}
|
|
3157
|
-
const locale = this.translationService.getActiveLang() ?? 'en-US';
|
|
3158
|
-
const normalizedQuery = text.trim();
|
|
3159
|
-
const visibleData = normalizedQuery.length === 0
|
|
3160
|
-
? mergeData
|
|
3161
|
-
: mergeData.filter((item) => searchInMultiLanguageString(item.title, normalizedQuery, locale) ||
|
|
3162
|
-
searchInMultiLanguageString(item.description, normalizedQuery, locale));
|
|
3163
2731
|
// Group data
|
|
3164
2732
|
const groupedData = [];
|
|
3165
2733
|
const groupMap = {};
|
|
3166
2734
|
// Create groups
|
|
3167
|
-
for (const item of
|
|
2735
|
+
for (const item of mergeData) {
|
|
3168
2736
|
const groupName = item.definitionName; // Change this to the property you want to group by
|
|
3169
2737
|
if (!groupMap[groupName]) {
|
|
3170
2738
|
groupMap[groupName] = {
|
|
@@ -3181,53 +2749,14 @@ class AXPSearchService {
|
|
|
3181
2749
|
groupedData.sort((a, b) => a.order - b.order);
|
|
3182
2750
|
return groupedData;
|
|
3183
2751
|
}
|
|
3184
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3185
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
2752
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPSearchService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2753
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPSearchService, providedIn: 'root' }); }
|
|
3186
2754
|
}
|
|
3187
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2755
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPSearchService, decorators: [{
|
|
3188
2756
|
type: Injectable,
|
|
3189
2757
|
args: [{ providedIn: 'root' }]
|
|
3190
2758
|
}] });
|
|
3191
2759
|
|
|
3192
|
-
/**
|
|
3193
|
-
* Shared utility for creating Entity:Create command options used in search command providers.
|
|
3194
|
-
* Use with command: { name: 'Entity:Create', options: createEntityCommandOptions(...) }
|
|
3195
|
-
*/
|
|
3196
|
-
function createEntityCommandOptions(entityKey, entityInfo) {
|
|
3197
|
-
return {
|
|
3198
|
-
__context__: {
|
|
3199
|
-
entity: entityKey,
|
|
3200
|
-
entityInfo: {
|
|
3201
|
-
name: entityInfo.name,
|
|
3202
|
-
module: entityInfo.module,
|
|
3203
|
-
title: entityInfo.title,
|
|
3204
|
-
parentKey: undefined,
|
|
3205
|
-
source: entityKey,
|
|
3206
|
-
},
|
|
3207
|
-
data: {},
|
|
3208
|
-
options: {},
|
|
3209
|
-
},
|
|
3210
|
-
};
|
|
3211
|
-
}
|
|
3212
|
-
/**
|
|
3213
|
-
* Creates a search command for "Create {Entity}" with consistent i18n pattern.
|
|
3214
|
-
* Use titleKey/descriptionKey from module (e.g. @module:entity.permissions.create.title).
|
|
3215
|
-
* Standard: "Create {Entity}" for title, "Create new {entities}" for description.
|
|
3216
|
-
*/
|
|
3217
|
-
function createEntitySearchCommand(config) {
|
|
3218
|
-
return {
|
|
3219
|
-
id: config.id,
|
|
3220
|
-
group: 'command',
|
|
3221
|
-
title: config.titleKey,
|
|
3222
|
-
description: config.descriptionKey ?? config.titleKey,
|
|
3223
|
-
icon: config.icon,
|
|
3224
|
-
command: {
|
|
3225
|
-
name: 'Entity:Create',
|
|
3226
|
-
options: createEntityCommandOptions(config.entityKey, config.entityInfo),
|
|
3227
|
-
},
|
|
3228
|
-
};
|
|
3229
|
-
}
|
|
3230
|
-
|
|
3231
2760
|
var AXPCommonSettings;
|
|
3232
2761
|
(function (AXPCommonSettings) {
|
|
3233
2762
|
AXPCommonSettings["EnableOperationToasts"] = "Common:Setting:Notifications.EnableOperationToasts";
|
|
@@ -3236,7 +2765,6 @@ var AXPCommonSettings;
|
|
|
3236
2765
|
AXPCommonSettings["ApplyLayoutOrdering"] = "Common:Setting:Entity.ApplyLayoutOrdering";
|
|
3237
2766
|
AXPCommonSettings["RedirectToDetailsAfterCreate"] = "Common:Setting:Entity.RedirectToDetailsAfterCreate";
|
|
3238
2767
|
AXPCommonSettings["ShowPageBadge"] = "Common:Setting:Entity.ShowPageBadge";
|
|
3239
|
-
AXPCommonSettings["DebugMode"] = "PlatformDevTools:Setting:Developer.DebugMode";
|
|
3240
2768
|
AXPCommonSettings["ShowRowIndexColumn"] = "Common:Setting:Entity.ShowRowIndexColumn";
|
|
3241
2769
|
AXPCommonSettings["EntityListPersistenceMode"] = "Common:Setting:Entity.ListPersistenceMode";
|
|
3242
2770
|
})(AXPCommonSettings || (AXPCommonSettings = {}));
|
|
@@ -3263,10 +2791,10 @@ class AXPWorkflowNavigateAction extends AXPWorkflowAction {
|
|
|
3263
2791
|
this.router.navigate([payload.commands], payload.extras);
|
|
3264
2792
|
}
|
|
3265
2793
|
}
|
|
3266
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3267
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
2794
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPWorkflowNavigateAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2795
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPWorkflowNavigateAction }); }
|
|
3268
2796
|
}
|
|
3269
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2797
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPWorkflowNavigateAction, decorators: [{
|
|
3270
2798
|
type: Injectable
|
|
3271
2799
|
}] });
|
|
3272
2800
|
class AXPDialogConfirmAction extends AXPWorkflowAction {
|
|
@@ -3282,10 +2810,10 @@ class AXPDialogConfirmAction extends AXPWorkflowAction {
|
|
|
3282
2810
|
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');
|
|
3283
2811
|
context.setOutput('result', dialogResult.result);
|
|
3284
2812
|
}
|
|
3285
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3286
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
2813
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPDialogConfirmAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2814
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPDialogConfirmAction }); }
|
|
3287
2815
|
}
|
|
3288
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2816
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPDialogConfirmAction, decorators: [{
|
|
3289
2817
|
type: Injectable
|
|
3290
2818
|
}] });
|
|
3291
2819
|
class AXPToastAction extends AXPWorkflowAction {
|
|
@@ -3308,20 +2836,20 @@ class AXPToastAction extends AXPWorkflowAction {
|
|
|
3308
2836
|
});
|
|
3309
2837
|
}
|
|
3310
2838
|
}
|
|
3311
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3312
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
2839
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPToastAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2840
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPToastAction }); }
|
|
3313
2841
|
}
|
|
3314
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2842
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPToastAction, decorators: [{
|
|
3315
2843
|
type: Injectable
|
|
3316
2844
|
}] });
|
|
3317
2845
|
class AXPReloadAction extends AXPWorkflowAction {
|
|
3318
2846
|
async execute(context) {
|
|
3319
2847
|
this.dispatch(AXPReloadEvent({ entity: context.getVariable('entity'), meta: context.getVariable('meta') }));
|
|
3320
2848
|
}
|
|
3321
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3322
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
2849
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPReloadAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2850
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPReloadAction }); }
|
|
3323
2851
|
}
|
|
3324
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2852
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPReloadAction, decorators: [{
|
|
3325
2853
|
type: Injectable
|
|
3326
2854
|
}] });
|
|
3327
2855
|
|
|
@@ -3333,10 +2861,6 @@ class AXPWorkflowRouterNavigateAction extends AXPWorkflowAction {
|
|
|
3333
2861
|
async execute(context) {
|
|
3334
2862
|
const command = context.getVariable();
|
|
3335
2863
|
const path = command.options.path;
|
|
3336
|
-
if (!path) {
|
|
3337
|
-
console.error('Path is required for navigate workflow');
|
|
3338
|
-
return;
|
|
3339
|
-
}
|
|
3340
2864
|
if (path?.toLowerCase()?.startsWith('http') || command.options?.extras?.target === 'blank') {
|
|
3341
2865
|
window.open(path, '_blank');
|
|
3342
2866
|
}
|
|
@@ -3365,10 +2889,10 @@ class AXPWorkflowRouterNavigateAction extends AXPWorkflowAction {
|
|
|
3365
2889
|
return params;
|
|
3366
2890
|
}, {});
|
|
3367
2891
|
}
|
|
3368
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3369
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
2892
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPWorkflowRouterNavigateAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2893
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPWorkflowRouterNavigateAction }); }
|
|
3370
2894
|
}
|
|
3371
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2895
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPWorkflowRouterNavigateAction, decorators: [{
|
|
3372
2896
|
type: Injectable
|
|
3373
2897
|
}] });
|
|
3374
2898
|
const AXPNavigateWorkflow = {
|
|
@@ -3393,10 +2917,10 @@ class AXMWorkflowErrorHandler {
|
|
|
3393
2917
|
next(error);
|
|
3394
2918
|
}
|
|
3395
2919
|
}
|
|
3396
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3397
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
2920
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXMWorkflowErrorHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2921
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXMWorkflowErrorHandler }); }
|
|
3398
2922
|
}
|
|
3399
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2923
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXMWorkflowErrorHandler, decorators: [{
|
|
3400
2924
|
type: Injectable
|
|
3401
2925
|
}] });
|
|
3402
2926
|
|
|
@@ -3441,12 +2965,12 @@ class AXPCommonModule {
|
|
|
3441
2965
|
f();
|
|
3442
2966
|
});
|
|
3443
2967
|
}
|
|
3444
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3445
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
2968
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPCommonModule, deps: [{ token: 'AXPCommonModuleFactory' }], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
2969
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.19", ngImport: i0, type: AXPCommonModule, imports: [i1.AXPWorkflowModule, AXPopupModule,
|
|
3446
2970
|
AXDateTimeModule,
|
|
3447
2971
|
AXToastModule,
|
|
3448
2972
|
AXPModuleManifestModule], exports: [RouterModule] }); }
|
|
3449
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
2973
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPCommonModule, providers: [
|
|
3450
2974
|
AXPAppStartUpProvider,
|
|
3451
2975
|
{
|
|
3452
2976
|
provide: ErrorHandler,
|
|
@@ -3475,16 +2999,11 @@ class AXPCommonModule {
|
|
|
3475
2999
|
useClass: AXPTokenEvaluatorScopeProvider,
|
|
3476
3000
|
multi: true,
|
|
3477
3001
|
},
|
|
3478
|
-
{
|
|
3479
|
-
provide: AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER,
|
|
3480
|
-
useClass: AXPSettingsEvaluatorScopeProvider,
|
|
3481
|
-
multi: true,
|
|
3482
|
-
},
|
|
3483
3002
|
{
|
|
3484
3003
|
provide: AXP_SETTING_DEFINITION_PROVIDER,
|
|
3485
3004
|
useFactory: async () => {
|
|
3486
3005
|
const injector = inject(Injector);
|
|
3487
|
-
const provider = (await import('./acorex-platform-common-common-settings.provider-
|
|
3006
|
+
const provider = (await import('./acorex-platform-common-common-settings.provider-DVvuLUfF.mjs')).AXPCommonSettingProvider;
|
|
3488
3007
|
return new provider(injector);
|
|
3489
3008
|
},
|
|
3490
3009
|
multi: true,
|
|
@@ -3505,7 +3024,7 @@ class AXPCommonModule {
|
|
|
3505
3024
|
AXToastModule,
|
|
3506
3025
|
AXPModuleManifestModule, RouterModule] }); }
|
|
3507
3026
|
}
|
|
3508
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3027
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPCommonModule, decorators: [{
|
|
3509
3028
|
type: NgModule,
|
|
3510
3029
|
args: [{
|
|
3511
3030
|
imports: [
|
|
@@ -3555,16 +3074,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
3555
3074
|
useClass: AXPTokenEvaluatorScopeProvider,
|
|
3556
3075
|
multi: true,
|
|
3557
3076
|
},
|
|
3558
|
-
{
|
|
3559
|
-
provide: AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER,
|
|
3560
|
-
useClass: AXPSettingsEvaluatorScopeProvider,
|
|
3561
|
-
multi: true,
|
|
3562
|
-
},
|
|
3563
3077
|
{
|
|
3564
3078
|
provide: AXP_SETTING_DEFINITION_PROVIDER,
|
|
3565
3079
|
useFactory: async () => {
|
|
3566
3080
|
const injector = inject(Injector);
|
|
3567
|
-
const provider = (await import('./acorex-platform-common-common-settings.provider-
|
|
3081
|
+
const provider = (await import('./acorex-platform-common-common-settings.provider-DVvuLUfF.mjs')).AXPCommonSettingProvider;
|
|
3568
3082
|
return new provider(injector);
|
|
3569
3083
|
},
|
|
3570
3084
|
multi: true,
|
|
@@ -3597,10 +3111,10 @@ function configPlatform(config = AXPPlatformDefaultConfigs) {
|
|
|
3597
3111
|
const AXP_ROOT_CONFIG_TOKEN = new InjectionToken('AXP_ROOT_CONFIG_TOKEN');
|
|
3598
3112
|
|
|
3599
3113
|
class AXPFileStorageService {
|
|
3600
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3601
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
3114
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPFileStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3115
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPFileStorageService }); }
|
|
3602
3116
|
}
|
|
3603
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3117
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPFileStorageService, decorators: [{
|
|
3604
3118
|
type: Injectable
|
|
3605
3119
|
}] });
|
|
3606
3120
|
|
|
@@ -3717,10 +3231,10 @@ class AXPFileActionsService {
|
|
|
3717
3231
|
return false;
|
|
3718
3232
|
});
|
|
3719
3233
|
}
|
|
3720
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3721
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
3234
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPFileActionsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3235
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPFileActionsService, providedIn: 'root' }); }
|
|
3722
3236
|
}
|
|
3723
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3237
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPFileActionsService, decorators: [{
|
|
3724
3238
|
type: Injectable,
|
|
3725
3239
|
args: [{
|
|
3726
3240
|
providedIn: 'root',
|
|
@@ -3790,19 +3304,19 @@ class AXPFileTypeProviderService {
|
|
|
3790
3304
|
async get(name) {
|
|
3791
3305
|
return (await this.items()).find((c) => c.name == name);
|
|
3792
3306
|
}
|
|
3793
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3794
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
3307
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPFileTypeProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3308
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPFileTypeProviderService, providedIn: 'root' }); }
|
|
3795
3309
|
}
|
|
3796
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3310
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPFileTypeProviderService, decorators: [{
|
|
3797
3311
|
type: Injectable,
|
|
3798
3312
|
args: [{ providedIn: 'root' }]
|
|
3799
3313
|
}] });
|
|
3800
3314
|
|
|
3801
3315
|
class AXPLockService {
|
|
3802
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3803
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
3316
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPLockService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3317
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPLockService }); }
|
|
3804
3318
|
}
|
|
3805
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3319
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPLockService, decorators: [{
|
|
3806
3320
|
type: Injectable
|
|
3807
3321
|
}] });
|
|
3808
3322
|
|
|
@@ -3972,7 +3486,7 @@ class AXPStatusDefinitionProviderService {
|
|
|
3972
3486
|
}
|
|
3973
3487
|
else {
|
|
3974
3488
|
// Use default Entity:UpdateStatus command
|
|
3975
|
-
const entity = context['
|
|
3489
|
+
const entity = context['entityName'] ?? context['__meta__']?.config?.name;
|
|
3976
3490
|
if (!entity) {
|
|
3977
3491
|
throw new Error('Entity name is required in context when using default status update command');
|
|
3978
3492
|
}
|
|
@@ -3985,7 +3499,7 @@ class AXPStatusDefinitionProviderService {
|
|
|
3985
3499
|
commandOptions = {
|
|
3986
3500
|
entity,
|
|
3987
3501
|
status: transition.to,
|
|
3988
|
-
statusField: context['statusField'] ??
|
|
3502
|
+
statusField: context['statusField'] ?? 'statusId',
|
|
3989
3503
|
...(id ? { id } : {}),
|
|
3990
3504
|
...(ids ? { ids } : {}),
|
|
3991
3505
|
};
|
|
@@ -3993,8 +3507,7 @@ class AXPStatusDefinitionProviderService {
|
|
|
3993
3507
|
// Execute the command
|
|
3994
3508
|
const result = await this.commandService.execute(commandName, commandOptions);
|
|
3995
3509
|
if (!result?.success) {
|
|
3996
|
-
|
|
3997
|
-
throw new Error(text || 'Failed to execute status transition command');
|
|
3510
|
+
throw new Error(result?.message?.text || 'Failed to execute status transition command');
|
|
3998
3511
|
}
|
|
3999
3512
|
}
|
|
4000
3513
|
/**
|
|
@@ -4004,27 +3517,10 @@ class AXPStatusDefinitionProviderService {
|
|
|
4004
3517
|
isValidTransition(provider, from, to) {
|
|
4005
3518
|
return provider.transitions.some((transition) => transition.from === from && transition.to === to);
|
|
4006
3519
|
}
|
|
4007
|
-
|
|
4008
|
-
|
|
4009
|
-
*/
|
|
4010
|
-
commandMessageTextForError(value) {
|
|
4011
|
-
if (value == null) {
|
|
4012
|
-
return '';
|
|
4013
|
-
}
|
|
4014
|
-
if (typeof value === 'string') {
|
|
4015
|
-
return value;
|
|
4016
|
-
}
|
|
4017
|
-
if (typeof value === 'object' && !Array.isArray(value)) {
|
|
4018
|
-
const values = Object.values(value);
|
|
4019
|
-
const first = values.find((v) => typeof v === 'string' && v.length > 0);
|
|
4020
|
-
return first ?? '';
|
|
4021
|
-
}
|
|
4022
|
-
return String(value);
|
|
4023
|
-
}
|
|
4024
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPStatusDefinitionProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4025
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPStatusDefinitionProviderService, providedIn: 'root' }); }
|
|
3520
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPStatusDefinitionProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3521
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPStatusDefinitionProviderService, providedIn: 'root' }); }
|
|
4026
3522
|
}
|
|
4027
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3523
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPStatusDefinitionProviderService, decorators: [{
|
|
4028
3524
|
type: Injectable,
|
|
4029
3525
|
args: [{ providedIn: 'root' }]
|
|
4030
3526
|
}] });
|
|
@@ -4371,10 +3867,10 @@ class AXPClipBoardService {
|
|
|
4371
3867
|
navigator.clipboard.writeText(value);
|
|
4372
3868
|
this.toast.success(`${title} copied!`);
|
|
4373
3869
|
}
|
|
4374
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
4375
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
3870
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPClipBoardService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3871
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPClipBoardService, providedIn: 'root' }); }
|
|
4376
3872
|
}
|
|
4377
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3873
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPClipBoardService, decorators: [{
|
|
4378
3874
|
type: Injectable,
|
|
4379
3875
|
args: [{
|
|
4380
3876
|
providedIn: 'root',
|
|
@@ -4488,10 +3984,10 @@ class AXPDebugService {
|
|
|
4488
3984
|
console.error('[AXPDebugService] Failed to display user access info:', error);
|
|
4489
3985
|
}
|
|
4490
3986
|
}
|
|
4491
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
4492
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
3987
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPDebugService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3988
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPDebugService, providedIn: 'root' }); }
|
|
4493
3989
|
}
|
|
4494
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3990
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPDebugService, decorators: [{
|
|
4495
3991
|
type: Injectable,
|
|
4496
3992
|
args: [{
|
|
4497
3993
|
providedIn: 'root',
|
|
@@ -4501,15 +3997,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
4501
3997
|
class AXMOrgChartPrintPage extends AXBasePageComponent {
|
|
4502
3998
|
constructor() {
|
|
4503
3999
|
super(...arguments);
|
|
4504
|
-
this.ratio = signal(false, ...(ngDevMode ? [{ debugName: "ratio" }] :
|
|
4505
|
-
this.baseWidth = signal(undefined, ...(ngDevMode ? [{ debugName: "baseWidth" }] :
|
|
4506
|
-
this.baseHeight = signal(undefined, ...(ngDevMode ? [{ debugName: "baseHeight" }] :
|
|
4507
|
-
this.bgcolor = model(...(ngDevMode ? [undefined, { debugName: "bgcolor" }] :
|
|
4508
|
-
this.width = model(...(ngDevMode ? [undefined, { debugName: "width" }] :
|
|
4509
|
-
this.height = model(...(ngDevMode ? [undefined, { debugName: "height" }] :
|
|
4510
|
-
this.quality = model(...(ngDevMode ? [undefined, { debugName: "quality" }] :
|
|
4511
|
-
this.qualityComputed = linkedSignal(() => (this.data.quality ?? 1) * 100, ...(ngDevMode ? [{ debugName: "qualityComputed" }] :
|
|
4512
|
-
this.scale = model(...(ngDevMode ? [undefined, { debugName: "scale" }] :
|
|
4000
|
+
this.ratio = signal(false, ...(ngDevMode ? [{ debugName: "ratio" }] : []));
|
|
4001
|
+
this.baseWidth = signal(undefined, ...(ngDevMode ? [{ debugName: "baseWidth" }] : []));
|
|
4002
|
+
this.baseHeight = signal(undefined, ...(ngDevMode ? [{ debugName: "baseHeight" }] : []));
|
|
4003
|
+
this.bgcolor = model(...(ngDevMode ? [undefined, { debugName: "bgcolor" }] : []));
|
|
4004
|
+
this.width = model(...(ngDevMode ? [undefined, { debugName: "width" }] : []));
|
|
4005
|
+
this.height = model(...(ngDevMode ? [undefined, { debugName: "height" }] : []));
|
|
4006
|
+
this.quality = model(...(ngDevMode ? [undefined, { debugName: "quality" }] : []));
|
|
4007
|
+
this.qualityComputed = linkedSignal(() => (this.data.quality ?? 1) * 100, ...(ngDevMode ? [{ debugName: "qualityComputed" }] : []));
|
|
4008
|
+
this.scale = model(...(ngDevMode ? [undefined, { debugName: "scale" }] : []));
|
|
4513
4009
|
this.#init = afterNextRender(() => {
|
|
4514
4010
|
this.bgcolor.set(this.data.bgcolor);
|
|
4515
4011
|
this.width.set(this.data.width);
|
|
@@ -4546,8 +4042,8 @@ class AXMOrgChartPrintPage extends AXBasePageComponent {
|
|
|
4546
4042
|
isCanceled,
|
|
4547
4043
|
});
|
|
4548
4044
|
}
|
|
4549
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
4550
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "
|
|
4045
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXMOrgChartPrintPage, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
4046
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.19", type: AXMOrgChartPrintPage, isStandalone: true, selector: "ng-component", inputs: { bgcolor: { classPropertyName: "bgcolor", publicName: "bgcolor", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, quality: { classPropertyName: "quality", publicName: "quality", isSignal: true, isRequired: false, transformFunction: null }, scale: { classPropertyName: "scale", publicName: "scale", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { bgcolor: "bgcolorChange", width: "widthChange", height: "heightChange", quality: "qualityChange", scale: "scaleChange" }, usesInheritance: true, ngImport: i0, template: ` <div class="ax-grid ax-grid-cols-[auto_18rem] ax-gap-4 ax-justify-center ax-p-4 ax-items-center">
|
|
4551
4047
|
<ax-label>Resolution (px)</ax-label>
|
|
4552
4048
|
<div class="ax-flex ax-gap-2 ax-items-center">
|
|
4553
4049
|
<ax-number-box
|
|
@@ -4598,7 +4094,7 @@ class AXMOrgChartPrintPage extends AXBasePageComponent {
|
|
|
4598
4094
|
</ax-suffix>
|
|
4599
4095
|
</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"] }] }); }
|
|
4600
4096
|
}
|
|
4601
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4097
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXMOrgChartPrintPage, decorators: [{
|
|
4602
4098
|
type: Component,
|
|
4603
4099
|
args: [{
|
|
4604
4100
|
template: ` <div class="ax-grid ax-grid-cols-[auto_18rem] ax-gap-4 ax-justify-center ax-p-4 ax-items-center">
|
|
@@ -4712,10 +4208,10 @@ class AXPExportService {
|
|
|
4712
4208
|
document.body.removeChild(link);
|
|
4713
4209
|
URL.revokeObjectURL(link.href);
|
|
4714
4210
|
}
|
|
4715
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
4716
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
4211
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPExportService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4212
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPExportService, providedIn: 'root' }); }
|
|
4717
4213
|
}
|
|
4718
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4214
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPExportService, decorators: [{
|
|
4719
4215
|
type: Injectable,
|
|
4720
4216
|
args: [{
|
|
4721
4217
|
providedIn: 'root',
|
|
@@ -4745,8 +4241,6 @@ function AXPCleanNestedFilters(filters) {
|
|
|
4745
4241
|
.filter(Boolean);
|
|
4746
4242
|
}
|
|
4747
4243
|
|
|
4748
|
-
const AXP_LOCALE_MANAGEMENT_PORT = new InjectionToken('AXP_LOCALE_MANAGEMENT_PORT');
|
|
4749
|
-
|
|
4750
4244
|
//#region ---- Versioning Types ----
|
|
4751
4245
|
var AXVChangeType;
|
|
4752
4246
|
(function (AXVChangeType) {
|
|
@@ -4764,5 +4258,5 @@ class AXPVersioningService {
|
|
|
4764
4258
|
* Generated bundle index. Do not edit.
|
|
4765
4259
|
*/
|
|
4766
4260
|
|
|
4767
|
-
export { ALL_DEFAULT_OPERATORS, AXMWorkflowErrorHandler, AXPAppVersionService, AXPCleanNestedFilters, AXPClipBoardService, AXPCommonModule, AXPCommonSettings, AXPCustomOperatorService, AXPCustomOperatorServiceImpl, AXPDataProvider, AXPDebugService,
|
|
4261
|
+
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 };
|
|
4768
4262
|
//# sourceMappingURL=acorex-platform-common.mjs.map
|