@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.
Files changed (123) hide show
  1. package/{types/acorex-platform-auth.d.ts → auth/index.d.ts} +2 -14
  2. package/{types/acorex-platform-common.d.ts → common/index.d.ts} +30 -302
  3. package/{types/acorex-platform-core.d.ts → core/index.d.ts} +44 -188
  4. package/{types/acorex-platform-domain.d.ts → domain/index.d.ts} +412 -744
  5. package/fesm2022/acorex-platform-auth.mjs +27 -125
  6. package/fesm2022/acorex-platform-auth.mjs.map +1 -1
  7. package/fesm2022/{acorex-platform-common-common-settings.provider-Bi1RYif5.mjs → acorex-platform-common-common-settings.provider-DVvuLUfF.mjs} +32 -30
  8. package/fesm2022/acorex-platform-common-common-settings.provider-DVvuLUfF.mjs.map +1 -0
  9. package/fesm2022/acorex-platform-common.mjs +205 -711
  10. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  11. package/fesm2022/acorex-platform-core.mjs +127 -420
  12. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  13. package/fesm2022/acorex-platform-domain.mjs +830 -561
  14. package/fesm2022/acorex-platform-domain.mjs.map +1 -1
  15. package/fesm2022/acorex-platform-layout-builder.mjs +114 -634
  16. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  17. 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
  18. package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-CSxCnzwU.mjs.map +1 -0
  19. package/fesm2022/acorex-platform-layout-components.mjs +877 -3362
  20. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
  21. package/fesm2022/acorex-platform-layout-designer.mjs +204 -456
  22. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  23. package/fesm2022/acorex-platform-layout-entity.mjs +10062 -14672
  24. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  25. package/fesm2022/acorex-platform-layout-views.mjs +171 -413
  26. package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
  27. package/fesm2022/acorex-platform-layout-widget-core.mjs +441 -507
  28. package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
  29. 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
  30. package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-CPBzE96V.mjs.map +1 -0
  31. package/fesm2022/{acorex-platform-layout-widgets-file-list-popup.component-CDYAGBku.mjs → acorex-platform-layout-widgets-file-list-popup.component-Dtv6U3df.mjs} +76 -21
  32. package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-Dtv6U3df.mjs.map +1 -0
  33. package/fesm2022/{acorex-platform-layout-widgets-image-preview.popup-C_EPAvCU.mjs → acorex-platform-layout-widgets-image-preview.popup-QxJfswhK.mjs} +7 -6
  34. package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-QxJfswhK.mjs.map +1 -0
  35. package/fesm2022/{acorex-platform-layout-widgets-page-widget-designer.component-D10yO28c.mjs → acorex-platform-layout-widgets-page-widget-designer.component-CVdssZBD.mjs} +12 -12
  36. package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-CVdssZBD.mjs.map +1 -0
  37. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BCxE0RTB.mjs +111 -0
  38. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BCxE0RTB.mjs.map +1 -0
  39. 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
  40. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-DVaZN9QN.mjs.map +1 -0
  41. 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
  42. package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-DPGHgXa6.mjs.map +1 -0
  43. 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
  44. package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-CdiNW691.mjs.map +1 -0
  45. package/fesm2022/acorex-platform-layout-widgets.mjs +3408 -5611
  46. package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
  47. package/fesm2022/acorex-platform-native.mjs +7 -8
  48. package/fesm2022/acorex-platform-native.mjs.map +1 -1
  49. package/fesm2022/acorex-platform-runtime.mjs +166 -391
  50. package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
  51. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-D4hU2SCE.mjs +160 -0
  52. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-D4hU2SCE.mjs.map +1 -0
  53. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-D2CtNrSn.mjs +1716 -0
  54. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-D2CtNrSn.mjs.map +1 -0
  55. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BVTklnzs.mjs +120 -0
  56. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BVTklnzs.mjs.map +1 -0
  57. 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
  58. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-rGsMVAZj.mjs.map +1 -0
  59. package/fesm2022/{acorex-platform-themes-default-error-401.component-C7EYJzSr.mjs → acorex-platform-themes-default-error-401.component-53VB-PS_.mjs} +4 -4
  60. package/fesm2022/acorex-platform-themes-default-error-401.component-53VB-PS_.mjs.map +1 -0
  61. package/fesm2022/{acorex-platform-themes-default-error-404.component-7MVLMwIa.mjs → acorex-platform-themes-default-error-404.component-DVF9soT5.mjs} +4 -4
  62. package/fesm2022/acorex-platform-themes-default-error-404.component-DVF9soT5.mjs.map +1 -0
  63. package/fesm2022/acorex-platform-themes-default-error-offline.component-CwNNHzZn.mjs +19 -0
  64. package/fesm2022/acorex-platform-themes-default-error-offline.component-CwNNHzZn.mjs.map +1 -0
  65. package/fesm2022/acorex-platform-themes-default.mjs +61 -1784
  66. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  67. package/fesm2022/{acorex-platform-themes-shared-icon-chooser-column.component-CqkWJYdv.mjs → acorex-platform-themes-shared-icon-chooser-column.component-TJ9PWHMY.mjs} +6 -6
  68. package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-TJ9PWHMY.mjs.map +1 -0
  69. package/fesm2022/{acorex-platform-themes-shared-icon-chooser-view.component-BOTuLdWN.mjs → acorex-platform-themes-shared-icon-chooser-view.component-BHcKkIx0.mjs} +6 -6
  70. package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-BHcKkIx0.mjs.map +1 -0
  71. package/fesm2022/{acorex-platform-themes-shared-settings.provider-DK6R87Lf.mjs → acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs} +25 -24
  72. package/fesm2022/acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs.map +1 -0
  73. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-BUPs84MI.mjs +65 -0
  74. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-BUPs84MI.mjs.map +1 -0
  75. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-BotknoHn.mjs +64 -0
  76. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-BotknoHn.mjs.map +1 -0
  77. package/fesm2022/acorex-platform-themes-shared.mjs +305 -408
  78. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  79. package/fesm2022/acorex-platform-workflow.mjs +100 -359
  80. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  81. package/fesm2022/acorex-platform.mjs.map +1 -1
  82. package/{types/acorex-platform-layout-builder.d.ts → layout/builder/index.d.ts} +38 -160
  83. package/{types/acorex-platform-layout-components.d.ts → layout/components/index.d.ts} +125 -854
  84. package/{types/acorex-platform-layout-designer.d.ts → layout/designer/index.d.ts} +18 -96
  85. package/{types/acorex-platform-layout-entity.d.ts → layout/entity/index.d.ts} +65 -848
  86. package/{types/acorex-platform-layout-views.d.ts → layout/views/index.d.ts} +47 -80
  87. package/{types/acorex-platform-layout-widget-core.d.ts → layout/widget-core/index.d.ts} +197 -274
  88. package/{types/acorex-platform-layout-widgets.d.ts → layout/widgets/index.d.ts} +124 -608
  89. package/{types/acorex-platform-native.d.ts → native/index.d.ts} +7 -0
  90. package/package.json +31 -31
  91. package/runtime/index.d.ts +307 -0
  92. package/{types/acorex-platform-themes-default.d.ts → themes/default/index.d.ts} +4 -113
  93. package/{types/acorex-platform-themes-shared.d.ts → themes/shared/index.d.ts} +4 -5
  94. package/{types/acorex-platform-workflow.d.ts → workflow/index.d.ts} +81 -162
  95. package/fesm2022/acorex-platform-common-common-settings.provider-Bi1RYif5.mjs.map +0 -1
  96. package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-CXEdvDTf.mjs.map +0 -1
  97. package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-Dy7jF-oD.mjs.map +0 -1
  98. package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-CDYAGBku.mjs.map +0 -1
  99. package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-C_EPAvCU.mjs.map +0 -1
  100. package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-D10yO28c.mjs.map +0 -1
  101. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BGO75IMz.mjs +0 -116
  102. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BGO75IMz.mjs.map +0 -1
  103. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-DmzNTYiS.mjs.map +0 -1
  104. package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-BNG_588B.mjs.map +0 -1
  105. package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-Vo4fWHtX.mjs.map +0 -1
  106. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Cx1lLUaR.mjs +0 -160
  107. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Cx1lLUaR.mjs.map +0 -1
  108. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-AOrcgjDF.mjs +0 -120
  109. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-AOrcgjDF.mjs.map +0 -1
  110. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-BfCeUU5F.mjs.map +0 -1
  111. package/fesm2022/acorex-platform-themes-default-error-401.component-C7EYJzSr.mjs.map +0 -1
  112. package/fesm2022/acorex-platform-themes-default-error-404.component-7MVLMwIa.mjs.map +0 -1
  113. package/fesm2022/acorex-platform-themes-default-error-offline.component-DR6G8gPC.mjs +0 -19
  114. package/fesm2022/acorex-platform-themes-default-error-offline.component-DR6G8gPC.mjs.map +0 -1
  115. package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-CqkWJYdv.mjs.map +0 -1
  116. package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-BOTuLdWN.mjs.map +0 -1
  117. package/fesm2022/acorex-platform-themes-shared-settings.provider-DK6R87Lf.mjs.map +0 -1
  118. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-D566Kdvy.mjs +0 -94
  119. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-D566Kdvy.mjs.map +0 -1
  120. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-D7-rCGl7.mjs +0 -86
  121. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-D7-rCGl7.mjs.map +0 -1
  122. package/types/acorex-platform-runtime.d.ts +0 -571
  123. /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, signal, makeEnvironmentProviders, NgModule, ErrorHandler, EventEmitter, Input, Output, Directive, ChangeDetectionStrategy, Component, ViewEncapsulation, Inject, runInInjectionContext, model, linkedSignal, afterNextRender } from '@angular/core';
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 { unwrapValueProperty, coerceUnknownToDate, coerceUnknownToFiniteNumber, coerceUnknownToBoolean, coerceUnknownToTrimmedString, AXPPlatformScope, AXPBroadcastEventService, objectKeyValueTransforms, AXPSystemActionType, searchInMultiLanguageString, AXPModuleManifestModule, AXPAppStartUpProvider, AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER, AXPHookService, AXPDataGenerator, AXPModuleManifestRegistry } from '@acorex/platform/core';
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: "21.2.9", ngImport: i0, type: AXPAppVersionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
60
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPAppVersionService, providedIn: 'root' }); }
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: "21.2.9", ngImport: i0, type: AXPAppVersionService, decorators: [{
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, pageTitle) {
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, pageTitle) {
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: "21.2.9", ngImport: i0, type: AXPSettingDefinitionProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
502
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPSettingDefinitionProviderService, providedIn: 'root' }); }
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: "21.2.9", ngImport: i0, type: AXPSettingDefinitionProviderService, decorators: [{
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: "21.2.9", ngImport: i0, type: AXPSettingDefaultValuesAggregatorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
535
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPSettingDefaultValuesAggregatorService, providedIn: 'root' }); }
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: "21.2.9", ngImport: i0, type: AXPSettingDefaultValuesAggregatorService, decorators: [{
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 { effective: value, defaultSample };
649
+ return cloneDeep(value);
776
650
  }
777
651
  }
778
652
  }
779
- return { effective: defaultSample, defaultSample };
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([aggregator.getDefaults(), definitionService.settingScopeByKey()]);
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: "21.2.9", ngImport: i0, type: AXPSettingsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
840
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPSettingsService, providedIn: 'root' }); }
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: "21.2.9", ngImport: i0, type: AXPSettingsService, decorators: [{
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
- const effective = setting?.value;
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
- * Exposes platform settings in expression strings, e.g.
1106
- * `{{ settings.get('Common:Setting:Entity.ShowPageBadge') }}`.
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
- class AXPSettingsEvaluatorScopeProvider {
1109
- constructor() {
1110
- this.settingsService = inject(AXPSettingsService);
1111
- }
1112
- async provide(context) {
1113
- context.addScope('settings', {
1114
- get: async (key) => {
1115
- return await this.settingsService.get(key);
1116
- },
1117
- });
1118
- }
1119
- }
1120
- //#endregion
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: "21.2.9", ngImport: i0, type: AXPHomePageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1241
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPHomePageService, providedIn: 'root' }); }
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: "21.2.9", ngImport: i0, type: AXPHomePageService, decorators: [{
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 list = this.homePageService.getRegisteredList().map((c) => ({ id: c.key, title: c.title }));
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', `${I18N}.general.nav-title`, `${I18N}.general.description`, 'fa-light fa-palette', `${I18N}.general.title`)
962
+ .addGroup('general', await trans('general.title'), await trans('general.description'), 'fa-light fa-palette')
1279
963
  // Add the 'Startup' section
1280
- .addSection('startup', `${I18N}.general.startup.title`, `${I18N}.general.startup.description`)
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: `${I18N}.general.startup.home-page.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: `${I18N}.general.startup.home-page.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: "21.2.9", ngImport: i0, type: AXPHomePageSettingProvider, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
1305
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPHomePageSettingProvider }); }
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: "21.2.9", ngImport: i0, type: AXPHomePageSettingProvider, decorators: [{
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: "21.2.9", ngImport: i0, type: AXPHomePageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1313
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.9", ngImport: i0, type: AXPHomePageModule }); }
1314
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPHomePageModule, providers: [
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: "21.2.9", ngImport: i0, type: AXPHomePageModule, decorators: [{
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: "21.2.9", ngImport: i0, type: AXPCustomOperatorServiceImpl, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
1346
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPCustomOperatorServiceImpl }); }
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: "21.2.9", ngImport: i0, type: AXPCustomOperatorServiceImpl, decorators: [{
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: "21.2.9", ngImport: i0, type: AXPFilterOperatorMiddlewareServiceImpl, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
1394
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPFilterOperatorMiddlewareServiceImpl }); }
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: "21.2.9", ngImport: i0, type: AXPFilterOperatorMiddlewareServiceImpl, decorators: [{
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: "21.2.9", ngImport: i0, type: AXPErrorHandlerRegistryService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
1418
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPErrorHandlerRegistryService, providedIn: 'root' }); }
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: "21.2.9", ngImport: i0, type: AXPErrorHandlerRegistryService, decorators: [{
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: "21.2.9", ngImport: i0, type: AXPGlobalErrorHandler, deps: [{ token: i0.Injector }, { token: AXPErrorHandlerRegistryService }], target: i0.ɵɵFactoryTarget.Injectable }); }
1452
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPGlobalErrorHandler, providedIn: 'root' }); }
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: "21.2.9", ngImport: i0, type: AXPGlobalErrorHandler, decorators: [{
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: "21.2.9", ngImport: i0, type: AXPTokenDefinitionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1526
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPTokenDefinitionService, providedIn: 'root' }); }
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: "21.2.9", ngImport: i0, type: AXPTokenDefinitionService, decorators: [{
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.applyStickyStateFromScrollPosition();
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.applyStickyStateFromScrollPosition();
1268
+ this.updateTopOffset();
1578
1269
  });
1579
1270
  this.mutationObserver.observe(this.element.nativeElement, {
1580
1271
  childList: true,
1581
1272
  subtree: true,
1582
1273
  });
1583
- window.addEventListener('resize', this.onWindowResize);
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
- getScrollTop() {
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 shouldStick = this.computeShouldStick();
1622
- if (shouldStick !== this.isSticky) {
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.onWindowResize);
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: "21.2.9", ngImport: i0, type: AXPStickyDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
1650
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.9", type: AXPStickyDirective, isStandalone: true, selector: "[axpSticky]", inputs: { stickyClass: ["axpSticky", "stickyClass"], stickyOffset: "stickyOffset", stickyParent: "stickyParent", stickyTarget: "stickyTarget" }, outputs: { isStickyChange: "isStickyChange" }, exportAs: ["axpSticky"], ngImport: i0 }); }
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: "21.2.9", ngImport: i0, type: AXPStickyDirective, decorators: [{
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: "21.2.9", ngImport: i0, type: AXPMenuMiddlewareRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1996
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPMenuMiddlewareRegistry, providedIn: 'root' }); }
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: "21.2.9", ngImport: i0, type: AXPMenuMiddlewareRegistry, decorators: [{
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: "21.2.9", ngImport: i0, type: AXPMenuProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2428
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPMenuProviderService, providedIn: 'root' }); }
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: "21.2.9", ngImport: i0, type: AXPMenuProviderService, decorators: [{
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: "21.2.9", ngImport: i0, type: AXPMenuVisibilityService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2829
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPMenuVisibilityService, providedIn: 'root' }); }
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: "21.2.9", ngImport: i0, type: AXPMenuVisibilityService, decorators: [{
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
- name: 'navigate',
2444
+ command: item.path ? {
2445
+ name: 'navigate',
2446
+ options: {
2447
+ type: 'router',
2868
2448
  options: {
2869
- type: 'router',
2870
- options: {
2871
- path: item.path,
2872
- },
2449
+ path: item.path,
2873
2450
  },
2874
2451
  }
2875
- : item.command,
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(String(o.title ?? ''))]);
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: "21.2.9", ngImport: i0, type: AXPFooterTextSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2911
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.9", type: AXPFooterTextSlotComponent, isStandalone: true, selector: "ng-component", inputs: { text: "text" }, ngImport: i0, template: `
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, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2490
+ `, isInline: true }); }
2914
2491
  }
2915
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPFooterTextSlotComponent, decorators: [{
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: "21.2.9", ngImport: i0, type: AXPNavBarSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2934
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXPNavBarSlotComponent, isStandalone: true, selector: "ng-component", inputs: { items: "items" }, ngImport: i0, template: `
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: "21.2.9", ngImport: i0, type: AXPNavBarSlotComponent, decorators: [{
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: "21.2.9", ngImport: i0, type: AXPSearchDefinitionProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
3077
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPSearchDefinitionProviderService, providedIn: 'root' }); }
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: "21.2.9", ngImport: i0, type: AXPSearchDefinitionProviderService, decorators: [{
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
- const locale = this.translationService.getActiveLang() ?? 'en-US';
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 ?? definition.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 visibleData) {
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: "21.2.9", ngImport: i0, type: AXPSearchService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
3185
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPSearchService, providedIn: 'root' }); }
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: "21.2.9", ngImport: i0, type: AXPSearchService, decorators: [{
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: "21.2.9", ngImport: i0, type: AXPWorkflowNavigateAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
3267
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowNavigateAction }); }
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: "21.2.9", ngImport: i0, type: AXPWorkflowNavigateAction, decorators: [{
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: "21.2.9", ngImport: i0, type: AXPDialogConfirmAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
3286
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPDialogConfirmAction }); }
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: "21.2.9", ngImport: i0, type: AXPDialogConfirmAction, decorators: [{
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: "21.2.9", ngImport: i0, type: AXPToastAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
3312
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPToastAction }); }
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: "21.2.9", ngImport: i0, type: AXPToastAction, decorators: [{
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: "21.2.9", ngImport: i0, type: AXPReloadAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
3322
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPReloadAction }); }
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: "21.2.9", ngImport: i0, type: AXPReloadAction, decorators: [{
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: "21.2.9", ngImport: i0, type: AXPWorkflowRouterNavigateAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
3369
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowRouterNavigateAction }); }
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: "21.2.9", ngImport: i0, type: AXPWorkflowRouterNavigateAction, decorators: [{
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: "21.2.9", ngImport: i0, type: AXMWorkflowErrorHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
3397
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMWorkflowErrorHandler }); }
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: "21.2.9", ngImport: i0, type: AXMWorkflowErrorHandler, decorators: [{
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: "21.2.9", ngImport: i0, type: AXPCommonModule, deps: [{ token: 'AXPCommonModuleFactory' }], target: i0.ɵɵFactoryTarget.NgModule }); }
3445
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.9", ngImport: i0, type: AXPCommonModule, imports: [i1.AXPWorkflowModule, AXPopupModule,
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: "21.2.9", ngImport: i0, type: AXPCommonModule, providers: [
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-Bi1RYif5.mjs')).AXPCommonSettingProvider;
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: "21.2.9", ngImport: i0, type: AXPCommonModule, decorators: [{
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-Bi1RYif5.mjs')).AXPCommonSettingProvider;
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: "21.2.9", ngImport: i0, type: AXPFileStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
3601
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPFileStorageService }); }
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: "21.2.9", ngImport: i0, type: AXPFileStorageService, decorators: [{
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: "21.2.9", ngImport: i0, type: AXPFileActionsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
3721
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPFileActionsService, providedIn: 'root' }); }
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: "21.2.9", ngImport: i0, type: AXPFileActionsService, decorators: [{
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: "21.2.9", ngImport: i0, type: AXPFileTypeProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
3794
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPFileTypeProviderService, providedIn: 'root' }); }
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: "21.2.9", ngImport: i0, type: AXPFileTypeProviderService, decorators: [{
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: "21.2.9", ngImport: i0, type: AXPLockService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
3803
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPLockService }); }
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: "21.2.9", ngImport: i0, type: AXPLockService, decorators: [{
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['entity'] ?? context['entityName'] ?? context['__meta__']?.config?.name;
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'] ?? context['fieldName'] ?? 'statusId',
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
- const text = this.commandMessageTextForError(result?.message?.text);
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
- * Best-effort plain string for {@link Error} messages (no i18n lookup).
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: "21.2.9", ngImport: i0, type: AXPStatusDefinitionProviderService, decorators: [{
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: "21.2.9", ngImport: i0, type: AXPClipBoardService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4375
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPClipBoardService, providedIn: 'root' }); }
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: "21.2.9", ngImport: i0, type: AXPClipBoardService, decorators: [{
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: "21.2.9", ngImport: i0, type: AXPDebugService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4492
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPDebugService, providedIn: 'root' }); }
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: "21.2.9", ngImport: i0, type: AXPDebugService, decorators: [{
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" }] : /* istanbul ignore next */ []));
4505
- this.baseWidth = signal(undefined, ...(ngDevMode ? [{ debugName: "baseWidth" }] : /* istanbul ignore next */ []));
4506
- this.baseHeight = signal(undefined, ...(ngDevMode ? [{ debugName: "baseHeight" }] : /* istanbul ignore next */ []));
4507
- this.bgcolor = model(...(ngDevMode ? [undefined, { debugName: "bgcolor" }] : /* istanbul ignore next */ []));
4508
- this.width = model(...(ngDevMode ? [undefined, { debugName: "width" }] : /* istanbul ignore next */ []));
4509
- this.height = model(...(ngDevMode ? [undefined, { debugName: "height" }] : /* istanbul ignore next */ []));
4510
- this.quality = model(...(ngDevMode ? [undefined, { debugName: "quality" }] : /* istanbul ignore next */ []));
4511
- this.qualityComputed = linkedSignal(() => (this.data.quality ?? 1) * 100, ...(ngDevMode ? [{ debugName: "qualityComputed" }] : /* istanbul ignore next */ []));
4512
- this.scale = model(...(ngDevMode ? [undefined, { debugName: "scale" }] : /* istanbul ignore next */ []));
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: "21.2.9", ngImport: i0, type: AXMOrgChartPrintPage, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
4550
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.9", type: AXMOrgChartPrintPage, isStandalone: true, selector: "ng-component", inputs: { bgcolor: { classPropertyName: "bgcolor", publicName: "bgcolor", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, quality: { classPropertyName: "quality", publicName: "quality", isSignal: true, isRequired: false, transformFunction: null }, scale: { classPropertyName: "scale", publicName: "scale", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { bgcolor: "bgcolorChange", width: "widthChange", height: "heightChange", quality: "qualityChange", scale: "scaleChange" }, usesInheritance: true, ngImport: i0, template: ` <div class="ax-grid ax-grid-cols-[auto_18rem] ax-gap-4 ax-justify-center ax-p-4 ax-items-center">
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: "21.2.9", ngImport: i0, type: AXMOrgChartPrintPage, decorators: [{
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: "21.2.9", ngImport: i0, type: AXPExportService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4716
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPExportService, providedIn: 'root' }); }
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: "21.2.9", ngImport: i0, type: AXPExportService, decorators: [{
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, AXPDefaultMultiLanguageConfigService, AXPDialogConfirmAction, AXPEntityCommandScope, AXPEntityQueryType, AXPEntityType, AXPErrorHandlerRegistryService, AXPExportService, AXPFileActionsService, AXPFileStorageService, AXPFileStorageStatus, AXPFileTypeProviderService, AXPFilterOperatorMiddlewareService, AXPFilterOperatorMiddlewareServiceImpl, AXPFooterTextSlotComponent, AXPGlobalErrorHandler, AXPHomePageModule, AXPHomePageService, AXPLockService, AXPMenuItemsDataSourceDefinition, AXPMenuMiddlewareRegistry, AXPMenuProviderService, AXPMenuSearchDefinitionProvider, AXPMenuSearchProvider, AXPMenuService, AXPMenuVisibilityService, AXPNavBarSlotComponent, AXPNavigateWorkflow, AXPPlatformDefaultConfigs, AXPRedirectEvent, AXPRefreshEvent, AXPRegionalSetting, AXPRelationshipCardinality, AXPRelationshipKind, AXPReloadAction, AXPReloadEvent, AXPSearchCommandProvider, AXPSearchDefinitionActionBuilder, AXPSearchDefinitionBuilder, AXPSearchDefinitionProviderContext, AXPSearchDefinitionProviderService, AXPSearchService, AXPSettingDefaultValuesAggregatorService, AXPSettingDefinitionGroupBuilder, AXPSettingDefinitionProviderContext, AXPSettingDefinitionProviderService, AXPSettingDefinitionSectionBuilder, AXPSettingsEvaluatorScopeProvider, AXPSettingsService, AXPStatusDefinitionProviderService, AXPStatusProvider, AXPStickyDirective, AXPSystemStatusType, AXPSystemStatuses, AXPToastAction, AXPTokenDefinitionService, AXPTokenEvaluatorScopeProvider, AXPVersioningService, AXPWorkflowNavigateAction, AXPWorkflowRouterNavigateAction, AXP_APP_VERSION_PROVIDER, AXP_FILE_ACTION_PROVIDER, AXP_FILE_TYPE_INFO_PROVIDER, AXP_HOME_PAGES, AXP_HOME_PAGE_DEFAULT_KEY, AXP_LOCALE_MANAGEMENT_PORT, AXP_MENU_MIDDLEWARE, AXP_MENU_PROVIDER, AXP_PLATFORM_CONFIG_TOKEN, AXP_ROOT_CONFIG_TOKEN, AXP_SEARCH_DEFINITION_PROVIDER, AXP_SEARCH_PROVIDER, AXP_SETTING_DEFAULT_VALUES_PROVIDERS, AXP_SETTING_DEFINITION_PROVIDER, AXP_SETTING_VALUE_PROVIDER, AXP_STATUS_PROVIDERS, AXP_TOKEN_DEFINITION_PROVIDER, AXVChangeType, BETWEEN_OPER, BOOLEAN_OPERATORS, CONTAINS_OPER, DATE_OPERATORS, DEFAULT_MULTILANGUAGE_FIELD_NAMES, ENDS_WITH_OPER, ENVIRONMENT, EQ_OPER, GTE_OPER, GT_OPER, IN_OPER, IS_EMPTY_OPER, IS_NOT_EMPTY_OPER, LTE_OPER, LT_OPER, MENU_ITEMS_DATASOURCE_NAME, MULTILANGUAGE_CAPABLE_WIDGET_TYPES, NOT_CONTAINS_OPER, NOT_EQ_OPER, NUMBER_OPERATORS, STARTS_WITH_OPER, STRING_OPERATORS, UploadFromComputerActionProvider, coerceAXPSettingRawValue, coerceAXPSettingRawValueByKind, configPlatform, createAllQueryView, createEntityCommandOptions, createEntitySearchCommand, createMenuContext, createMenuMiddleware, createQueryView, getEntityInfo, getStatusInfo, getSystemStatus, inferSettingCoercionKind, peelSettingValueKey, provideDynamicHomePage, provideMenuMiddleware, resolveStatusLook, shouldApplyDefaultMultiLanguageToEntityProperty, shouldApplyDefaultMultiLanguageToWidgetNode, shouldApplyDefaultMultiLanguageToWidgetProperty, systemStatusToDefinition, withDefaultMultiLanguageOnWidgetNodeTree, withDefaultMultiLanguageOnWidgetProperty };
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