@acorex/platform 19.1.2 → 19.1.4

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 (162) hide show
  1. package/common/index.d.ts +2 -0
  2. package/common/lib/app/application.types.d.ts +12 -10
  3. package/common/lib/configs/app.config.d.ts +0 -1
  4. package/common/lib/file-storage/file-storage.service.d.ts +13 -0
  5. package/common/lib/file-storage/file-storage.types.d.ts +143 -0
  6. package/common/lib/file-storage/index.d.ts +2 -0
  7. package/common/lib/filters/filters.service.d.ts +8 -0
  8. package/common/lib/filters/filters.types.d.ts +19 -0
  9. package/common/lib/filters/index.d.ts +2 -0
  10. package/common/lib/settings/setting-definition.provider.d.ts +13 -4
  11. package/common/lib/settings/setting.builder.d.ts +7 -8
  12. package/common/lib/settings/settings.provider.d.ts +2 -7
  13. package/common/lib/settings/settings.service.d.ts +19 -7
  14. package/common/lib/settings/settings.types.d.ts +15 -2
  15. package/core/utils/highlighter.d.ts +1 -1
  16. package/fesm2022/acorex-platform-auth.mjs +5 -4
  17. package/fesm2022/acorex-platform-auth.mjs.map +1 -1
  18. package/fesm2022/acorex-platform-common.mjs +264 -87
  19. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  20. package/fesm2022/acorex-platform-core.mjs +2 -2
  21. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  22. package/fesm2022/acorex-platform-layout-builder.mjs +286 -440
  23. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  24. package/fesm2022/acorex-platform-layout-designer.mjs +18 -18
  25. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  26. package/fesm2022/acorex-platform-layout-entity.mjs +335 -232
  27. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  28. package/fesm2022/acorex-platform-layout-filters.mjs +124 -0
  29. package/fesm2022/acorex-platform-layout-filters.mjs.map +1 -0
  30. package/fesm2022/acorex-platform-layout-setting.mjs +219 -132
  31. package/fesm2022/acorex-platform-layout-setting.mjs.map +1 -1
  32. package/fesm2022/acorex-platform-layouts.mjs +4 -5
  33. package/fesm2022/acorex-platform-layouts.mjs.map +1 -1
  34. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-K9B_-q_K.mjs +108 -0
  35. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-K9B_-q_K.mjs.map +1 -0
  36. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DAmHq1bt.mjs +369 -0
  37. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DAmHq1bt.mjs.map +1 -0
  38. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-Cd2gxLZt.mjs +87 -0
  39. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-Cd2gxLZt.mjs.map +1 -0
  40. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-6sZdw013.mjs +130 -0
  41. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-6sZdw013.mjs.map +1 -0
  42. package/fesm2022/acorex-platform-themes-default-setting-page.component-BYpCgHZb.mjs +74 -0
  43. package/fesm2022/acorex-platform-themes-default-setting-page.component-BYpCgHZb.mjs.map +1 -0
  44. package/fesm2022/acorex-platform-themes-default-setting-view.component-CdmIphX1.mjs +73 -0
  45. package/fesm2022/acorex-platform-themes-default-setting-view.component-CdmIphX1.mjs.map +1 -0
  46. package/fesm2022/acorex-platform-themes-default.mjs +40 -114
  47. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  48. package/fesm2022/acorex-platform-themes-shared.mjs +465 -157
  49. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  50. package/fesm2022/{acorex-platform-widgets-checkbox-widget-column.component-05nKV-UV.mjs → acorex-platform-widgets-checkbox-widget-column.component-jeZBOEhl.mjs} +18 -14
  51. package/fesm2022/acorex-platform-widgets-checkbox-widget-column.component-jeZBOEhl.mjs.map +1 -0
  52. package/fesm2022/{acorex-platform-widgets-checkbox-widget-designer.component-juhKoygA.mjs → acorex-platform-widgets-checkbox-widget-designer.component-RCi5IJOR.mjs} +5 -5
  53. package/fesm2022/acorex-platform-widgets-checkbox-widget-designer.component-RCi5IJOR.mjs.map +1 -0
  54. package/fesm2022/acorex-platform-widgets-checkbox-widget-view.component-DU1niJES.mjs +64 -0
  55. package/fesm2022/acorex-platform-widgets-checkbox-widget-view.component-DU1niJES.mjs.map +1 -0
  56. package/fesm2022/{acorex-platform-widgets-color-box-widget-designer.component-B2g0ct24.mjs → acorex-platform-widgets-color-box-widget-designer.component-CWhbgmDV.mjs} +4 -4
  57. package/fesm2022/acorex-platform-widgets-color-box-widget-designer.component-CWhbgmDV.mjs.map +1 -0
  58. package/fesm2022/acorex-platform-widgets.mjs +1396 -286
  59. package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
  60. package/fesm2022/acorex-platform-workflow.mjs +9 -3
  61. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  62. package/layout/builder/lib/builder/builder.module.d.ts +6 -7
  63. package/layout/builder/lib/builder/builder.service.d.ts +9 -10
  64. package/layout/builder/lib/builder/context-store.service.d.ts +33 -0
  65. package/layout/builder/lib/builder/index.d.ts +4 -2
  66. package/layout/builder/lib/builder/widget-catalog.d.ts +1 -1
  67. package/layout/builder/lib/builder/widget-container.component.d.ts +34 -9
  68. package/layout/builder/lib/builder/widget-groups.d.ts +1 -0
  69. package/layout/builder/lib/builder/widget-map.d.ts +43 -0
  70. package/layout/builder/lib/builder/{widget-renderer.component.directive.d.ts → widget-renderer.directive.d.ts} +29 -4
  71. package/layout/builder/lib/builder/widget-status.types.d.ts +14 -0
  72. package/layout/builder/lib/builder/widget.types.d.ts +51 -59
  73. package/layout/designer/lib/preview/preview-viewer.component.d.ts +2 -2
  74. package/layout/designer/lib/property-viewer/widget-property-viewer.component.d.ts +2 -2
  75. package/layout/entity/lib/entity-master-list.viewmodel.d.ts +8 -2
  76. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.d.ts +0 -1
  77. package/layout/entity/lib/workflows/modify-entity.workflow.d.ts +14 -0
  78. package/layout/filters/README.md +3 -0
  79. package/layout/filters/index.d.ts +1 -0
  80. package/layout/filters/lib/filters.viewmodel.d.ts +30 -0
  81. package/layout/setting/lib/convert-setting-data.d.ts +0 -20
  82. package/layout/setting/lib/setting.viewmodel.d.ts +85 -22
  83. package/layouts/lib/admin/entity-layout/entity-details-view/entity-details-view.component.d.ts +15 -5
  84. package/package.json +13 -9
  85. package/themes/default/index.d.ts +0 -1
  86. package/themes/default/lib/layouts/base/simple-page/simple-page.layout.d.ts +20 -10
  87. package/themes/default/lib/layouts/entity-layouts/entity-detail-list-view/entity-detail-list-view.component.d.ts +15 -5
  88. package/themes/default/lib/layouts/entity-layouts/entity-master-create-view/entity-master-create-view.component.d.ts +2 -1
  89. package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.d.ts +17 -6
  90. package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-filters/list-view-option-filters.component.d.ts +14 -0
  91. package/themes/default/lib/layouts/entity-layouts/entity-master-modify-view/entity-master-modify-view.component.d.ts +2 -1
  92. package/themes/default/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.d.ts +15 -5
  93. package/themes/default/lib/layouts/filters-layout/simple-filter-builder/filters-view.component.d.ts +13 -0
  94. package/themes/default/lib/layouts/root-layout/components/header/header.component.d.ts +15 -5
  95. package/themes/default/lib/layouts/root-layout/root-layout.component.d.ts +15 -5
  96. package/themes/default/lib/layouts/setting-layout/setting-page/setting-page.component.d.ts +2 -4
  97. package/themes/default/lib/layouts/setting-layout/setting-view/setting-view.component.d.ts +57 -0
  98. package/themes/shared/index.d.ts +3 -1
  99. package/themes/shared/lib/components/layout-elements/index.d.ts +5 -3
  100. package/themes/shared/lib/components/layout-elements/{layout-page-actions.component.d.ts → layout-actions.component.d.ts} +5 -5
  101. package/themes/shared/lib/components/layout-elements/layout-blocks.component.d.ts +1 -1
  102. package/themes/shared/lib/components/layout-elements/layout-header.component.d.ts +12 -0
  103. package/themes/shared/lib/components/layout-elements/layout-list-component.d.ts +13 -0
  104. package/themes/shared/lib/components/layout-elements/layout-section.component.d.ts +9 -0
  105. package/themes/shared/lib/components/layout-elements/layout-side.component.d.ts +9 -0
  106. package/themes/shared/lib/components/theme-slot.component.d.ts +23 -13
  107. package/themes/shared/lib/palette.provider.d.ts +9 -0
  108. package/themes/shared/lib/setting.keys.d.ts +7 -2
  109. package/themes/shared/lib/setting.provider.d.ts +1 -0
  110. package/themes/shared/lib/shared.module.d.ts +5 -2
  111. package/themes/shared/lib/{services/theme.service.d.ts → theme.service.d.ts} +16 -24
  112. package/themes/shared/lib/theme.types.d.ts +25 -0
  113. package/themes/shared/lib/widgets/theme-color-selection/index.d.ts +2 -0
  114. package/themes/shared/lib/widgets/theme-color-selection/theme-color-selection-widget-edit.component.d.ts +6 -0
  115. package/themes/shared/lib/widgets/theme-color-selection/theme-color-selection-widget.config.d.ts +7 -0
  116. package/widgets/lib/properties/editors.props.d.ts +2 -0
  117. package/widgets/lib/properties/layout.props.d.ts +1 -0
  118. package/widgets/lib/widgets/advance/avatar/avatar-widget-column.component.d.ts +6 -0
  119. package/widgets/lib/widgets/advance/avatar/avatar-widget-designer.component.d.ts +6 -0
  120. package/widgets/lib/widgets/advance/avatar/avatar-widget-edit.component.d.ts +18 -0
  121. package/widgets/lib/widgets/advance/avatar/avatar-widget-print.component.d.ts +6 -0
  122. package/widgets/lib/widgets/advance/avatar/avatar-widget-view.component.d.ts +6 -0
  123. package/widgets/lib/widgets/advance/avatar/avatar-widget.config.d.ts +7 -0
  124. package/widgets/lib/widgets/advance/avatar/index.d.ts +6 -0
  125. package/widgets/lib/widgets/advance/map/map-box-widget-edit.component.d.ts +9 -5
  126. package/widgets/lib/widgets/advance/map/map-box-widget-view.component.d.ts +6 -4
  127. package/widgets/lib/widgets/editors/number/number-box-widget-edit.component.d.ts +1 -7
  128. package/widgets/lib/widgets/editors/select/select-box-widget-edit.component.d.ts +1 -0
  129. package/widgets/lib/widgets/editors/toggle/toggle-widget-edit.component.d.ts +0 -2
  130. package/widgets/lib/widgets/filters/operations/operations.component.d.ts +9 -0
  131. package/widgets/lib/widgets/filters/string-filter/index.d.ts +2 -0
  132. package/widgets/lib/widgets/filters/string-filter/string-filter-widget-edit.component.d.ts +11 -0
  133. package/widgets/lib/widgets/filters/string-filter/string-filter-widget.config.d.ts +7 -0
  134. package/widgets/lib/widgets/index.d.ts +5 -1
  135. package/widgets/lib/widgets/property-editors/border/border-widget-editor.component.d.ts +29 -6
  136. package/widgets/lib/widgets/property-editors/flex-options/flex-options-widget-editor.component.d.ts +31 -0
  137. package/widgets/lib/widgets/property-editors/flex-options/flex-options-widget.config.d.ts +7 -0
  138. package/widgets/lib/widgets/property-editors/flex-options/flex-options-widget.type.d.ts +15 -0
  139. package/widgets/lib/widgets/property-editors/flex-options/index.d.ts +3 -0
  140. package/widgets/lib/widgets/property-editors/property-editor-helper.d.ts +72 -0
  141. package/widgets/lib/widgets/property-editors/property-editor.type.d.ts +35 -0
  142. package/widgets/lib/widgets/property-editors/spacing/index.d.ts +0 -1
  143. package/widgets/lib/widgets/property-editors/spacing/spacing-widget-editor.component.d.ts +20 -7
  144. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-B13KvLX4.mjs +0 -108
  145. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-B13KvLX4.mjs.map +0 -1
  146. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-B6MXHPWi.mjs +0 -305
  147. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-B6MXHPWi.mjs.map +0 -1
  148. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-tKCGSRQT.mjs +0 -87
  149. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-tKCGSRQT.mjs.map +0 -1
  150. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-CHvC0IAV.mjs +0 -130
  151. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-CHvC0IAV.mjs.map +0 -1
  152. package/fesm2022/acorex-platform-widgets-checkbox-widget-column.component-05nKV-UV.mjs.map +0 -1
  153. package/fesm2022/acorex-platform-widgets-checkbox-widget-designer.component-juhKoygA.mjs.map +0 -1
  154. package/fesm2022/acorex-platform-widgets-checkbox-widget-view.component-BkWcZ4K9.mjs +0 -72
  155. package/fesm2022/acorex-platform-widgets-checkbox-widget-view.component-BkWcZ4K9.mjs.map +0 -1
  156. package/fesm2022/acorex-platform-widgets-color-box-widget-designer.component-B2g0ct24.mjs.map +0 -1
  157. package/layout/builder/lib/builder/widget-renderer.component.d.ts +0 -48
  158. package/themes/default/lib/layouts/setting-layout/index.d.ts +0 -1
  159. package/themes/shared/lib/components/layout-elements/layout-page-header.component.d.ts +0 -11
  160. package/themes/shared/lib/components/layout-elements/layout-page-side.component.d.ts +0 -5
  161. package/widgets/lib/widgets/property-editors/border/border-widget-type.d.ts +0 -18
  162. package/widgets/lib/widgets/property-editors/spacing/spacing-widget-type.d.ts +0 -10
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Injectable, provideAppInitializer, inject, RendererFactory2, InjectionToken, Injector, ErrorHandler, NgModule, Inject, Directive, Input, EventEmitter, Output, runInInjectionContext, Optional, Component, ViewEncapsulation, ChangeDetectorRef, ChangeDetectionStrategy, ViewChild } from '@angular/core';
3
- import { kebabCase, merge, cloneDeep, sortBy, assign, isEqual, get, set } from 'lodash-es';
3
+ import { kebabCase, merge, cloneDeep, get, sortBy, assign, isEqual, set } from 'lodash-es';
4
4
  import { AXPopupModule } from '@acorex/components/popup';
5
5
  import { AXToastService, AXToastModule } from '@acorex/components/toast';
6
6
  import { AXDateTimeModule } from '@acorex/core/date-time';
@@ -112,8 +112,10 @@ function resolveActionLook(tr) {
112
112
  return { color: 'primary', icon: 'fa-solid fa-info' };
113
113
  case 'delete':
114
114
  return { color: 'danger', icon: 'fa-solid fa-trash' };
115
+ case 'update':
116
+ return { color: 'primary', icon: 'fa-solid fa-pen-to-square' };
115
117
  case 'print':
116
- return { color: 'secondary', icon: 'fa-solid fa-print' };
118
+ return { color: 'neutral', icon: 'fa-solid fa-print' };
117
119
  case 'confirm':
118
120
  return { color: 'success', icon: 'fa-solid fa-check' };
119
121
  case 'archive':
@@ -670,7 +672,6 @@ class AXPFilterOperatorMiddlewareServiceImpl extends AXPFilterOperatorMiddleware
670
672
  return filters.map((filter) => this.transformFilter(filter));
671
673
  }
672
674
  transformFilter(filter) {
673
- console.log(filter);
674
675
  const { operator, value, filters, field } = filter;
675
676
  // Find the operator (either default or custom)
676
677
  const filterOperator = this.operators[operator?.type] || null;
@@ -763,6 +764,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
763
764
  args: [{ providedIn: 'root' }]
764
765
  }], ctorParameters: () => [{ type: i0.Injector }, { type: AXPErrorHandlerRegistryService }] });
765
766
 
767
+ var AXPSettingScope;
768
+ (function (AXPSettingScope) {
769
+ AXPSettingScope["Environment"] = "C";
770
+ AXPSettingScope["Global"] = "G";
771
+ AXPSettingScope["Tenant"] = "T";
772
+ AXPSettingScope["User"] = "U";
773
+ })(AXPSettingScope || (AXPSettingScope = {}));
774
+ ;
775
+
766
776
  class AXPSettingDefinitionProviderContext {
767
777
  constructor() {
768
778
  this.rootGroups = [];
@@ -861,8 +871,12 @@ class AXPSettingDefinitionSectionBuilder {
861
871
  name: setting.key,
862
872
  path: setting.key,
863
873
  defaultValue: setting.defaultValue,
864
- options: merge(setting.widget.options ?? {}, { label: setting.widget.options?.['label'] ?? setting.title }),
874
+ options: merge(setting.widget.options ?? {}, {
875
+ label: setting.widget.options?.['label'] ?? setting.title,
876
+ validationRules: setting.validationRules ?? [],
877
+ }),
865
878
  valueTransforms: setting.valueTransforms,
879
+ triggers: setting.widget.triggers,
866
880
  },
867
881
  };
868
882
  this.section.settings.push(newSetting);
@@ -880,9 +894,9 @@ class AXPSettingDefinitionProviderService {
880
894
  this.providers = inject(AXP_SETTING_DEFINITION_PROVIDER, { optional: true });
881
895
  this.cache = null;
882
896
  }
883
- async items() {
897
+ async load() {
884
898
  if (this.cache) {
885
- return this.cache;
899
+ return;
886
900
  }
887
901
  const context = new AXPSettingDefinitionProviderContext();
888
902
  if (Array.isArray(this.providers)) {
@@ -891,15 +905,52 @@ class AXPSettingDefinitionProviderService {
891
905
  }
892
906
  }
893
907
  this.cache = context.getGroups();
894
- return this.cache;
895
908
  }
896
- defaultValues(scope) {
909
+ async getListAsync(scope) {
910
+ await this.load();
911
+ return this.getList(scope);
912
+ }
913
+ getList(scope) {
914
+ if (!this.cache) {
915
+ return [];
916
+ }
917
+ const scopeOrder = ['C', 'G', 'T', 'U']; // Scopes hierarchy in ascending order
918
+ const filterByScope = (groups, currentScope) => {
919
+ const currentScopeIndex = scopeOrder.indexOf(currentScope);
920
+ return groups
921
+ .map((group) => ({
922
+ ...group,
923
+ sections: group.sections.map((section) => ({
924
+ ...section,
925
+ settings: section.settings.filter((setting) => {
926
+ const settingScopeIndex = scopeOrder.indexOf(setting.scope);
927
+ // Include settings where:
928
+ // 1. The scope matches the requested scope.
929
+ if (setting.scope === currentScope)
930
+ return true;
931
+ // 2. The setting scope is higher (closer to 'U') and is inherited.
932
+ if (setting.isInherited &&
933
+ settingScopeIndex > currentScopeIndex // Higher scope
934
+ ) {
935
+ return true;
936
+ }
937
+ // 3. Exclude settings with a lower or irrelevant scope.
938
+ return false;
939
+ }),
940
+ })).filter((section) => section.settings.length > 0), // Keep only sections with settings
941
+ groups: filterByScope(group.groups, currentScope), // Recursively filter nested groups
942
+ }))
943
+ .filter((group) => group.sections.length > 0 || group.groups.length > 0); // Keep groups with valid sections or nested groups
944
+ };
945
+ return filterByScope(this.cache, scope);
946
+ }
947
+ async defaultValues() {
897
948
  const defaults = {};
898
949
  const collectDefaults = (groups) => {
899
950
  groups.forEach((group) => {
900
951
  group.sections.forEach((section) => {
901
952
  section.settings.forEach((setting) => {
902
- if (setting.defaultValue !== undefined && (!scope || setting.scope === scope)) {
953
+ if (setting.defaultValue !== undefined) {
903
954
  defaults[setting.name] = setting.defaultValue;
904
955
  }
905
956
  });
@@ -907,16 +958,14 @@ class AXPSettingDefinitionProviderService {
907
958
  collectDefaults(group.groups);
908
959
  });
909
960
  };
910
- if (this.cache) {
911
- collectDefaults(this.cache);
961
+ if (!this.cache) {
962
+ await this.load();
912
963
  }
964
+ collectDefaults(this.cache);
913
965
  return defaults;
914
966
  }
915
- findGroup(groupName) {
916
- if (this.cache) {
917
- return this.searchRecursive(this.cache, groupName, []); // Initialize with an empty breadcrumb
918
- }
919
- return null;
967
+ findGroup(scope, groupName) {
968
+ return this.searchRecursive(this.getList(scope), groupName, []); // Initialize with an empty breadcrumb
920
969
  }
921
970
  searchRecursive(groups, groupName, breadcrumb) {
922
971
  for (const group of groups) {
@@ -931,12 +980,16 @@ class AXPSettingDefinitionProviderService {
931
980
  }
932
981
  // Recursively search in nested groups
933
982
  const nestedResult = this.searchRecursive(group.groups, groupName, currentBreadcrumb);
934
- if (nestedResult) {
983
+ if (nestedResult.breadcrumb.length > 0) {
935
984
  return nestedResult;
936
985
  }
937
986
  }
938
987
  // If no matching group is found
939
- return null;
988
+ return {
989
+ breadcrumb: [],
990
+ groups: [],
991
+ sections: []
992
+ };
940
993
  }
941
994
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPSettingDefinitionProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
942
995
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPSettingDefinitionProviderService, providedIn: 'root' }); }
@@ -945,17 +998,39 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
945
998
  type: Injectable,
946
999
  args: [{ providedIn: 'root' }]
947
1000
  }] });
1001
+ class AXPSettingDefaultValueProvider {
1002
+ constructor() {
1003
+ this.definitionProvider = inject(AXPSettingDefinitionProviderService);
1004
+ }
1005
+ get scope() {
1006
+ return AXPSettingScope.Global;
1007
+ }
1008
+ async load() {
1009
+ return Object.entries(await this.definitionProvider.defaultValues()).map(c => ({ key: c[0], value: c[1] }));
1010
+ }
1011
+ set(key, value) {
1012
+ throw new Error('Method not implemented.');
1013
+ }
1014
+ }
948
1015
 
949
1016
  const AXP_SETTING_VALUE_PROVIDER = new InjectionToken('AXP_SETTING_VALUE_PROVIDER', {
950
1017
  providedIn: 'root',
951
1018
  factory: () => {
952
- return new AXPSettingValueProviderDefault();
1019
+ return [
1020
+ //new AXPSettingDefaultValueProvider(),
1021
+ new AXPSettingValueProviderDefault(AXPSettingScope.Tenant),
1022
+ new AXPSettingValueProviderDefault(AXPSettingScope.User)
1023
+ ];
953
1024
  }
954
1025
  });
955
1026
  class AXPSettingValueProviderDefault {
956
- constructor() {
1027
+ get scope() {
1028
+ return this._scope;
1029
+ }
1030
+ constructor(_scope) {
1031
+ this._scope = _scope;
957
1032
  this.cache = new Map();
958
- this.localStorageKey = 'AXP_SETTINGS';
1033
+ this.localStorageKey = `AXP_SETTINGS_SCOPE(${this.scope})`;
959
1034
  }
960
1035
  async load() {
961
1036
  // Load settings from localStorage as a single key
@@ -993,64 +1068,84 @@ class AXPSettingValueProviderDefault {
993
1068
 
994
1069
  class AXPSettingValueProviderService {
995
1070
  constructor() {
996
- this.settingsProvider = inject(AXP_SETTING_VALUE_PROVIDER);
997
- this.settingsCache = new Map();
1071
+ this.providers = inject(AXP_SETTING_VALUE_PROVIDER);
1072
+ this.definitionService = inject(AXPSettingDefinitionProviderService);
1073
+ this.scopedSettingsCache = new Map();
998
1074
  this.onChanged = new Subject();
1075
+ // Initialize scoped caches for dynamic scopes
1076
+ const staticScopes = [AXPSettingScope.Environment, AXPSettingScope.Global, AXPSettingScope.Tenant, AXPSettingScope.User];
1077
+ staticScopes.forEach((scope) => {
1078
+ if (!this.scopedSettingsCache.has(scope)) {
1079
+ this.scopedSettingsCache.set(scope, new Map());
1080
+ }
1081
+ });
999
1082
  }
1000
1083
  async load() {
1001
1084
  try {
1002
- const settingsList = await this.settingsProvider.load();
1003
- this.settingsCache.clear();
1004
- settingsList.forEach((setting) => {
1005
- this.settingsCache.set(setting.key, setting.value);
1006
- });
1085
+ const settingsList = [];
1086
+ for (const provider of this.providers) {
1087
+ const scopeCache = this.scopedSettingsCache.get(provider.scope);
1088
+ const providerSettings = await provider.load();
1089
+ providerSettings.forEach((setting) => {
1090
+ scopeCache.set(setting.key, setting.value);
1091
+ });
1092
+ settingsList.push(...providerSettings);
1093
+ }
1007
1094
  return settingsList;
1008
1095
  }
1009
1096
  catch (error) {
1010
1097
  console.error('Error loading settings', error);
1011
- throw error; // Re-throw or handle it appropriately
1098
+ throw error;
1012
1099
  }
1013
1100
  }
1014
1101
  async get(key) {
1015
- if (this.settingsCache.size == 0) {
1102
+ if (this.scopedSettingsCache.size === 0) {
1016
1103
  await this.load();
1017
1104
  }
1018
- return cloneDeep(this.settingsCache.get(key));
1019
- }
1020
- async all() {
1021
- if (this.settingsCache.size == 0) {
1022
- await this.load();
1105
+ const scopeOrder = [AXPSettingScope.User, AXPSettingScope.Tenant, AXPSettingScope.Global, AXPSettingScope.Environment];
1106
+ for (const scope of scopeOrder) {
1107
+ const scopeCache = this.scopedSettingsCache.get(scope);
1108
+ if (scopeCache && scopeCache.has(key)) {
1109
+ const value = scopeCache.get(key);
1110
+ if (value !== undefined && value !== null) {
1111
+ return cloneDeep(value);
1112
+ }
1113
+ }
1114
+ }
1115
+ const defaults = await this.definitionService.defaultValues();
1116
+ return get(defaults, key); // Fallback if no value is found
1117
+ }
1118
+ async defaultValues(scope) {
1119
+ // TODO: not work properly
1120
+ debugger;
1121
+ const scopeOrder = [AXPSettingScope.Environment, AXPSettingScope.Global, AXPSettingScope.Tenant, AXPSettingScope.User].reverse();
1122
+ const scopeIndex = scopeOrder.indexOf(scope);
1123
+ if (scopeIndex === -1) {
1124
+ throw new Error(`Invalid scope: ${scope}`);
1125
+ }
1126
+ // Accumulate defaults from the current scope and higher scopes
1127
+ const accumulatedDefaults = {};
1128
+ for (let i = scopeIndex; i < scopeOrder.length; i++) {
1129
+ const currentScope = scopeOrder[i];
1130
+ const scopeCache = this.scopedSettingsCache.get(currentScope);
1131
+ if (scopeCache) {
1132
+ scopeCache.forEach((value, key) => {
1133
+ if (!(key in accumulatedDefaults)) {
1134
+ accumulatedDefaults[key] = value;
1135
+ }
1136
+ });
1137
+ }
1023
1138
  }
1024
- return Object.fromEntries(this.settingsCache);
1139
+ // Merge with global default values from the definition service
1140
+ const globalDefaults = await this.definitionService.defaultValues();
1141
+ return { ...globalDefaults, ...accumulatedDefaults };
1025
1142
  }
1026
- // Implementation
1027
- async set(keyOrValues, value) {
1028
- const changes = {};
1029
- if (typeof keyOrValues === 'string') {
1030
- // Single value update
1031
- const key = keyOrValues;
1032
- this.settingsCache.set(key, value);
1033
- changes[key] = value;
1034
- await this.settingsProvider.set(key, value); // Call single update
1143
+ scope(scope) {
1144
+ const provider = this.providers.find((p) => p.scope === scope);
1145
+ if (!provider) {
1146
+ throw new Error(`No provider found for scope: ${scope}`);
1035
1147
  }
1036
- else {
1037
- // Bulk update
1038
- const values = keyOrValues;
1039
- for (const [key, val] of Object.entries(values)) {
1040
- this.settingsCache.set(key, val);
1041
- changes[key] = val;
1042
- }
1043
- await this.settingsProvider.set(values); // Call bulk update
1044
- }
1045
- // Prepare the detailed change event
1046
- const keys = Object.keys(changes);
1047
- const entries = Array.from(this.settingsCache.entries()).map(([key, value]) => ({ key, value }));
1048
- // Emit the enhanced onChanged event
1049
- this.onChanged.next({
1050
- keys,
1051
- values: changes,
1052
- entries,
1053
- });
1148
+ return new ScopedSettingService(this, provider, this.onChanged, this.scopedSettingsCache.get(scope));
1054
1149
  }
1055
1150
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPSettingValueProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1056
1151
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPSettingValueProviderService, providedIn: 'root' }); }
@@ -1060,7 +1155,52 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
1060
1155
  args: [{
1061
1156
  providedIn: 'root',
1062
1157
  }]
1063
- }] });
1158
+ }], ctorParameters: () => [] });
1159
+ class ScopedSettingService {
1160
+ constructor(parent, provider, onChanged, scopeCache) {
1161
+ this.parent = parent;
1162
+ this.provider = provider;
1163
+ this.onChanged = onChanged;
1164
+ this.scopeCache = scopeCache;
1165
+ }
1166
+ async get(key) {
1167
+ const settings = await this.provider.load();
1168
+ const setting = settings.find((s) => s.key === key);
1169
+ return setting ? cloneDeep(setting.value) : undefined;
1170
+ }
1171
+ async all() {
1172
+ const settings = await this.provider.load();
1173
+ return Object.fromEntries(settings.map((s) => [s.key, cloneDeep(s.value)]));
1174
+ }
1175
+ async defaultValues() {
1176
+ return this.parent.defaultValues(this.provider.scope);
1177
+ }
1178
+ async set(keyOrValues, value) {
1179
+ if (typeof keyOrValues === 'string') {
1180
+ // Single key-value pair
1181
+ await this.provider.set(keyOrValues, value);
1182
+ this.scopeCache.set(keyOrValues, value); // Sync the cache
1183
+ this.onChanged.next({
1184
+ scope: this.provider.scope,
1185
+ keys: [keyOrValues],
1186
+ values: { [keyOrValues]: value },
1187
+ entries: [{ key: keyOrValues, value }],
1188
+ });
1189
+ }
1190
+ else {
1191
+ // Multiple key-value pairs
1192
+ await this.provider.set(keyOrValues);
1193
+ Object.entries(keyOrValues).forEach(([key, val]) => this.scopeCache.set(key, val)); // Sync the cache
1194
+ const entries = Object.entries(keyOrValues).map(([key, val]) => ({ key, value: val }));
1195
+ this.onChanged.next({
1196
+ scope: this.provider.scope,
1197
+ keys: Object.keys(keyOrValues),
1198
+ values: keyOrValues,
1199
+ entries,
1200
+ });
1201
+ }
1202
+ }
1203
+ }
1064
1204
 
1065
1205
  const AXPNavigateAction = createAction('[Navigate] Action', props());
1066
1206
  const AXPSignOutAction = createAction('[SignOut] Action');
@@ -1103,7 +1243,7 @@ class AXPWorkflowNavigateAction extends AXPWorkflowAction {
1103
1243
  this.router.navigate(payload.commands, payload.extras);
1104
1244
  }
1105
1245
  else {
1106
- if (payload.commands.toLowerCase().startsWith('http') || payload.target == "blank") {
1246
+ if (payload.commands.toLowerCase().startsWith('http') || payload.target == 'blank') {
1107
1247
  window.open(payload.commands, '_blank');
1108
1248
  }
1109
1249
  else
@@ -1341,14 +1481,13 @@ const AXP_PLATFORM_CONFIG_TOKEN = new InjectionToken('AXP_PLATFORM_CONFIG_TOKEN'
1341
1481
  },
1342
1482
  });
1343
1483
  const AXPPlatformDefaultConfigs = {
1344
- copyright: 'ACoreX @ 2023',
1484
+ copyright: 'ACoreX @ 2024',
1345
1485
  title: 'ACoreX Platform',
1346
1486
  logo: {
1347
1487
  dark: new AXPTextLogoConfig('ACoreX'),
1348
1488
  light: new AXPTextLogoConfig('ACoreX'),
1349
1489
  colored: new AXPTextLogoConfig('ACoreX'),
1350
1490
  },
1351
- useLocalData: false,
1352
1491
  network: {
1353
1492
  timeOut: 5000,
1354
1493
  }
@@ -1359,6 +1498,23 @@ function configPlatform(config = AXPPlatformDefaultConfigs) {
1359
1498
 
1360
1499
  const AXP_ROOT_CONFIG_TOKEN = new InjectionToken('AXP_ROOT_CONFIG_TOKEN');
1361
1500
 
1501
+ class AXPFiltersProviderService {
1502
+ async getAll() {
1503
+ return Promise.resolve('');
1504
+ }
1505
+ async execute() {
1506
+ return Promise.resolve('');
1507
+ }
1508
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPFiltersProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1509
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPFiltersProviderService, providedIn: 'root' }); }
1510
+ }
1511
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPFiltersProviderService, decorators: [{
1512
+ type: Injectable,
1513
+ args: [{
1514
+ providedIn: 'root',
1515
+ }]
1516
+ }] });
1517
+
1362
1518
  // src/app/directives/grid-layout.directive.ts
1363
1519
  class AXPGridLayoutDirective {
1364
1520
  constructor(el, renderer) {
@@ -1887,7 +2043,7 @@ withMethods((store, router = inject(Router), globalStore = inject(Store)) => {
1887
2043
  }
1888
2044
  if (item.path) {
1889
2045
  // Check if the item path matches the current path
1890
- const matchResult = pathsMatch(item.path, path);
2046
+ const matchResult = pathsMatch(item.path, path, ["list", "view", "edit", "create"]);
1891
2047
  if (matchResult.isMatch) {
1892
2048
  return { item, isPartialMatch: matchResult.isPartial };
1893
2049
  }
@@ -1895,27 +2051,31 @@ withMethods((store, router = inject(Router), globalStore = inject(Store)) => {
1895
2051
  }
1896
2052
  return { item: null, isPartialMatch: false };
1897
2053
  };
1898
- const pathsMatch = (itemPath, currentPath) => {
1899
- // Split both paths into segments
2054
+ const pathsMatch = (itemPath, currentPath, trailingSegmentsToIgnore = []) => {
1900
2055
  const itemSegments = itemPath.split('/').filter(segment => segment.length > 0);
1901
2056
  const pathSegments = currentPath.split('/').filter(segment => segment.length > 0);
1902
- // Determine the minimum number of segments to compare
1903
- const minLength = Math.min(itemSegments.length, pathSegments.length);
1904
- // Compare segments until we find a mismatch
1905
- let commonBaseLength = 0;
1906
- for (let i = 0; i < minLength; i++) {
1907
- if (itemSegments[i] === pathSegments[i]) {
1908
- commonBaseLength++;
1909
- }
1910
- else {
1911
- break; // Stop at the first mismatch
2057
+ const menuLength = itemSegments.length;
2058
+ const pathLength = pathSegments.length;
2059
+ // Identify the effective base length for the menuPath
2060
+ let effectiveMenuLength = menuLength;
2061
+ if (menuLength > 0 &&
2062
+ trailingSegmentsToIgnore.includes(itemSegments[menuLength - 1])) {
2063
+ effectiveMenuLength--; // Exclude trailing non-hierarchical segments
2064
+ }
2065
+ // Check if the menuPath (base segments) is a prefix of browserPath
2066
+ let isPrefix = true;
2067
+ for (let i = 0; i < effectiveMenuLength; i++) {
2068
+ if (itemSegments[i] !== pathSegments[i]) {
2069
+ isPrefix = false;
2070
+ break;
1912
2071
  }
1913
2072
  }
1914
- // Determine if we have a common base of at least 5 segments
1915
- const isPartialMatch = commonBaseLength >= 5 && commonBaseLength < itemSegments.length;
1916
- const isExactMatch = commonBaseLength === itemSegments.length && itemSegments.length === pathSegments.length;
2073
+ // Partial match: menuPath base is a strict prefix of browserPath
2074
+ const isPartialMatch = isPrefix && effectiveMenuLength < pathLength;
2075
+ // Exact match: all segments match completely
2076
+ const isExactMatch = isPrefix && effectiveMenuLength === pathLength;
1917
2077
  return {
1918
- isMatch: isPartialMatch || isExactMatch,
2078
+ isMatch: isExactMatch || isPartialMatch,
1919
2079
  isPartial: isPartialMatch && !isExactMatch,
1920
2080
  };
1921
2081
  };
@@ -1960,14 +2120,14 @@ withMethods((store, router = inject(Router), globalStore = inject(Store)) => {
1960
2120
  class AXPFooterTextSlotComponent {
1961
2121
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPFooterTextSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1962
2122
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: AXPFooterTextSlotComponent, isStandalone: true, selector: "ng-component", inputs: { text: "text" }, ngImport: i0, template: `
1963
- <small class="ax-text-sm ax-text-neutral-400" [innerHTML]="text"></small>
2123
+ <small class="ax-text-sm" [innerHTML]="text"></small>
1964
2124
  `, isInline: true }); }
1965
2125
  }
1966
2126
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPFooterTextSlotComponent, decorators: [{
1967
2127
  type: Component,
1968
2128
  args: [{
1969
2129
  template: `
1970
- <small class="ax-text-sm ax-text-neutral-400" [innerHTML]="text"></small>
2130
+ <small class="ax-text-sm" [innerHTML]="text"></small>
1971
2131
  `,
1972
2132
  standalone: true
1973
2133
  }]
@@ -3146,9 +3306,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
3146
3306
  }]
3147
3307
  }], ctorParameters: () => [{ type: AXPSchemaRegistryService }] });
3148
3308
 
3309
+ class AXPFileStorageService {
3310
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPFileStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
3311
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPFileStorageService }); }
3312
+ }
3313
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPFileStorageService, decorators: [{
3314
+ type: Injectable
3315
+ }] });
3316
+
3317
+ var AXPFileStorageStatus;
3318
+ (function (AXPFileStorageStatus) {
3319
+ AXPFileStorageStatus["Temporary"] = "temporary";
3320
+ AXPFileStorageStatus["Committed"] = "committed";
3321
+ AXPFileStorageStatus["PendingDeletion"] = "pendingDeletion";
3322
+ AXPFileStorageStatus["Archived"] = "archived";
3323
+ AXPFileStorageStatus["Error"] = "error";
3324
+ })(AXPFileStorageStatus || (AXPFileStorageStatus = {}));
3325
+
3149
3326
  /**
3150
3327
  * Generated bundle index. Do not edit.
3151
3328
  */
3152
3329
 
3153
- export { ALL_DEFAULT_OPERATORS, AXEntityLoaderDefault, AXMEntityCrudService, AXMEntityCrudServiceImpl, AXMWorkflowErrorHandler, AXPAppStartUpProvider, AXPAppStartUpService, AXPClipBoardService, AXPCommonEffects, AXPCommonModule, AXPCommonWidgetModule, AXPComponentLogoConfig, AXPComponentSlotDirective, AXPComponentSlotLoaderService, AXPComponentSlotModule, AXPComponentSlotRegistryService, AXPCustomOperatorService, AXPCustomOperatorServiceImpl, AXPDataGenerator, AXPDataProvider, AXPDataSeederService, AXPDexieEntityStorageService, AXPDialogConfirmAction, AXPEntityCommandScope, AXPEntityDataProvider, AXPEntityDataProviderImpl, AXPEntityListViewConfigEmpty, AXPEntityQueryType, AXPEntityRegistryService, AXPEntityStorageService, AXPErrorHandlerRegistryService, AXPFilterOperatorMiddlewareService, AXPFilterOperatorMiddlewareServiceImpl, AXPFontIconLogoConfig, AXPFooterTextSlotComponent, AXPGlobalErrorHandler, AXPGridLayoutDirective, AXPImageUrlLogoConfig, AXPLogoComponent, AXPMenuProviderService, AXPMenuService, AXPNavBarSlotComponent, AXPNavigateAction, AXPPdfPageSize, AXPPdfService, AXPPlatformDefaultConfigs, AXPRedirectEvent, AXPRelationshipCardinality, AXPRelationshipKind, AXPSchemaModule, AXPSchemaRegistryService, AXPSettingDefinitionGroupBuilder, AXPSettingDefinitionProviderContext, AXPSettingDefinitionProviderService, AXPSettingDefinitionSectionBuilder, AXPSettingValueProviderService, AXPSignInAction, AXPSignOutAction, AXPStickyDirective, AXPTextLogoConfig, AXPToastAction, AXPWidgetBase, AXPWidgetColumnRendererComponent, AXPWidgetEditBase, AXPWidgetFilterBase, AXPWidgetFilterRendererComponent, AXPWidgetRendererComponent, AXPWorkflowNavigateAction, AXP_DATA_SEEDER_TOKEN, AXP_ENTITY_LOADER, AXP_MENU_PROVIDER, AXP_PLATFORM_CONFIG_TOKEN, AXP_ROOT_CONFIG_TOKEN, AXP_SETTING_DEFINITION_PROVIDER, AXP_SETTING_VALUE_PROVIDER, AXP_WIDGET_TOKEN, BETWEEN_OPER, BOOLEAN_OPERATORS, CONTAINS_OPER, DATE_OPERATORS, ENDS_WITH_OPER, ENVIRONMENT, EQ_OPER, GTE_OPER, GT_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, configPlatform, convertPropertiesToColumns, convertPropertyToColumn, getEntityInfo, resolveActionLook, widgetSchemas };
3330
+ export { ALL_DEFAULT_OPERATORS, AXEntityLoaderDefault, AXMEntityCrudService, AXMEntityCrudServiceImpl, AXMWorkflowErrorHandler, AXPAppStartUpProvider, AXPAppStartUpService, AXPClipBoardService, AXPCommonEffects, AXPCommonModule, AXPCommonWidgetModule, AXPComponentLogoConfig, AXPComponentSlotDirective, AXPComponentSlotLoaderService, AXPComponentSlotModule, AXPComponentSlotRegistryService, AXPCustomOperatorService, AXPCustomOperatorServiceImpl, AXPDataGenerator, AXPDataProvider, AXPDataSeederService, AXPDexieEntityStorageService, AXPDialogConfirmAction, AXPEntityCommandScope, AXPEntityDataProvider, AXPEntityDataProviderImpl, AXPEntityListViewConfigEmpty, AXPEntityQueryType, AXPEntityRegistryService, AXPEntityStorageService, AXPErrorHandlerRegistryService, AXPFileStorageService, AXPFileStorageStatus, AXPFilterOperatorMiddlewareService, AXPFilterOperatorMiddlewareServiceImpl, AXPFiltersProviderService, AXPFontIconLogoConfig, AXPFooterTextSlotComponent, AXPGlobalErrorHandler, AXPGridLayoutDirective, AXPImageUrlLogoConfig, AXPLogoComponent, AXPMenuProviderService, AXPMenuService, AXPNavBarSlotComponent, AXPNavigateAction, AXPPdfPageSize, AXPPdfService, AXPPlatformDefaultConfigs, AXPRedirectEvent, AXPRelationshipCardinality, AXPRelationshipKind, AXPSchemaModule, AXPSchemaRegistryService, AXPSettingDefaultValueProvider, AXPSettingDefinitionGroupBuilder, AXPSettingDefinitionProviderContext, AXPSettingDefinitionProviderService, AXPSettingDefinitionSectionBuilder, AXPSettingScope, AXPSettingValueProviderService, AXPSignInAction, AXPSignOutAction, AXPStickyDirective, AXPTextLogoConfig, AXPToastAction, AXPWidgetBase, AXPWidgetColumnRendererComponent, AXPWidgetEditBase, AXPWidgetFilterBase, AXPWidgetFilterRendererComponent, AXPWidgetRendererComponent, AXPWorkflowNavigateAction, AXP_DATA_SEEDER_TOKEN, AXP_ENTITY_LOADER, AXP_MENU_PROVIDER, AXP_PLATFORM_CONFIG_TOKEN, AXP_ROOT_CONFIG_TOKEN, AXP_SETTING_DEFINITION_PROVIDER, AXP_SETTING_VALUE_PROVIDER, AXP_WIDGET_TOKEN, BETWEEN_OPER, BOOLEAN_OPERATORS, CONTAINS_OPER, DATE_OPERATORS, ENDS_WITH_OPER, ENVIRONMENT, EQ_OPER, GTE_OPER, GT_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, configPlatform, convertPropertiesToColumns, convertPropertyToColumn, getEntityInfo, resolveActionLook, widgetSchemas };
3154
3331
  //# sourceMappingURL=acorex-platform-common.mjs.map